bmatthias / kolab-android

Automatically exported from code.google.com/p/kolab-android
Other
0 stars 0 forks source link

adress book - sync fails #22

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
Android 2.1 on Samsung Galaxy 9000:

Initial/Repeated address book sync fails with:

illegalArgumentException: the bind value at index 1 in null

kolab-android version 0.0.4.

any more info I provide to help tracking this down ?

Cheers,

Mathias

Original issue reported on code.google.com by mathias....@gmail.com on 7 Dec 2010 at 7:41

GoogleCodeExporter commented 8 years ago
upgraded phone to froyo. problem still exists - phone address book is/was empty.

Original comment by mathias....@gmail.com on 9 Dec 2010 at 6:06

GoogleCodeExporter commented 8 years ago
Hi!

Can you provide an "adb logcat"?

When does this happens exactly? In the settings screen? During Sync?

Original comment by arthur.z...@gmail.com on 9 Dec 2010 at 6:23

GoogleCodeExporter commented 8 years ago
Hi,

so, here's what I did (I just repeated it):

1) deleted all items
=> success

2) clicked on 'sync all'
=> processing meassage 3...301
=> error while synchronizing: java.lang.IllegalArgumentException: the bind 
value at one is null

3) opened 'contacts'
=> it now contains two entries !  (hm, didn't notice them before)
=> only email address and birthday appear to be present
=> phone numbers are missing

4) clicked on 'sync all' again
=> same error message as above

5) clicked on 'sync calendar only'
=> success

How do I run 'adb logcat' ?
As fas as Android is concerned, I'm just a dumb user :)

Cheers,

Mathias

Original comment by mathias....@gmail.com on 9 Dec 2010 at 9:01

GoogleCodeExporter commented 8 years ago
forgot to mention, importing the contacts via a vcard v3 file works fine 
(exported with kmail).

Original comment by mathias....@gmail.com on 9 Dec 2010 at 9:04

GoogleCodeExporter commented 8 years ago
Please upgrade to 0.0.5 and send an error report.

Original comment by arthur.z...@gmail.com on 19 Dec 2010 at 1:59

GoogleCodeExporter commented 8 years ago
I got a similar error message with version 0.0.5:

W/System.err(23332): java.lang.IllegalArgumentException
W/System.err(23332):    at 
javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:154)
W/System.err(23332):    at at.dasz.KolabDroid.Utils.getDocument(Utils.java:236)
W/System.err(23332):    at 
at.dasz.KolabDroid.ContactsContract.SyncContactsHandler.createLocalItemFromServe
r(SyncContactsHandler.java:181)
W/System.err(23332):    at 
at.dasz.KolabDroid.Sync.SyncWorker.sync(SyncWorker.java:257)
W/System.err(23332):    at 
at.dasz.KolabDroid.Sync.SyncWorker.runWorker(SyncWorker.java:101)
W/System.err(23332):    at 
at.dasz.KolabDroid.Sync.BaseWorker.start(BaseWorker.java:65)
W/System.err(23332):    at 
at.dasz.KolabDroid.Sync.SyncService.doWakefulWork(SyncService.java:61)
W/System.err(23332):    at 
com.commonsware.cwac.wakeful.WakefulIntentService.onHandleIntent(WakefulIntentSe
rvice.java:79)
W/System.err(23332):    at 
android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:30)
W/System.err(23332):    at android.os.Handler.dispatchMessage(Handler.java:99)
W/System.err(23332):    at android.os.Looper.loop(Looper.java:123)
W/System.err(23332):    at android.os.HandlerThread.run(HandlerThread.java:60)
I/Service (23332): sync finished
I/Service (23332): Service stopped

And i found several lines like this:
D/sync    (23332): 2. Checking message KRxNJvti9J
I/sync    (23332): 6. found no local entry => save
D/sync    (23332): Downloading item ...
W/sync    (23332): createLocalItemFromServer returned a null object! See 
Logfile for parsing errors

Cheers,
Andreas

Original comment by rot...@gmail.com on 19 Dec 2010 at 3:42

GoogleCodeExporter commented 8 years ago
It looks like, that the XML documents have another format as expected. Can you 
post some? Without anonymous content?

Thx!

Original comment by arthur.z...@gmail.com on 19 Dec 2010 at 3:56

GoogleCodeExporter commented 8 years ago
<?xml version="1.0" encoding="UTF-8"?>
<contact version="1.0" >
 <product-id>KAddressBook 3.3, Kolab resource</product-id>
 <uid>KRxNJvti9J</uid>
 <creation-date>2005-12-04T20:12:00Z</creation-date>
 <last-modification-date>2005-12-04T20:12:00Z</last-modification-date>
 <sensitivity>public</sensitivity>
 <name>
  <given-name>Chip</given-name>
  <last-name>support</last-name>
  <full-name>Chip support</full-name>
 </name>
 <email>
  <display-name>Chip support</display-name>
  <smtp-address>support@chip.de</smtp-address>
 </email>
 <preferred-address>home</preferred-address>
</contact>

Original comment by rot...@gmail.com on 19 Dec 2010 at 4:39

GoogleCodeExporter commented 8 years ago
problems persist with 0.0.5.

calendar sync works. contact sync fails as described before.

example XML contact:

<?xml version="1.0" encoding="UTF-8"?>
<contact version="1.0" >
 <product-id>KAddressBook 3.3, Kolab resource</product-id>
 <uid>FFFE9nsq0K</uid>
 <creation-date>2007-12-26T10:32:40Z</creation-date>
 <last-modification-date>2007-12-26T10:32:40Z</last-modification-date>
 <sensitivity>public</sensitivity>
 <name>
  <given-name>AAA</given-name>
  <last-name>BBB</last-name>
  <full-name>AAA BBB</full-name>
 </name>
 <birthday>9999-08-30</birthday>
 <preferred-address>home</preferred-address>
</contact>

Original comment by mathias....@gmail.com on 19 Dec 2010 at 5:49

GoogleCodeExporter commented 8 years ago
OK. Finally got around to install the SDK. Android version is now 2.2.1.

Any other info I can provide to help tracking this ?

Happy New Year,

Mathias

D/sync    ( 4463): 2. Checking message null
W/System.err( 4463): java.lang.IllegalArgumentException: the bind value at 
index 1 is null
W/System.err( 4463):    at 
android.database.sqlite.SQLiteProgram.bindString(SQLiteProgram.java:234)
W/System.err( 4463):    at 
android.database.sqlite.SQLiteQuery.bindString(SQLiteQuery.java:182)
W/System.err( 4463):    at 
android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.
java:48)
W/System.err( 4463):    at 
android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1
454)
W/System.err( 4463):    at 
android.database.sqlite.SQLiteQueryBuilder.query(SQLiteQueryBuilder.java:330)
W/System.err( 4463):    at 
android.database.sqlite.SQLiteQueryBuilder.query(SQLiteQueryBuilder.java:280)
W/System.err( 4463):    at 
at.dasz.KolabDroid.Provider.LocalCacheProvider.getCursor(LocalCacheProvider.java
:93)
W/System.err( 4463):    at 
at.dasz.KolabDroid.Provider.LocalCacheProvider.getEntry(LocalCacheProvider.java:
127)
W/System.err( 4463):    at 
at.dasz.KolabDroid.Provider.LocalCacheProvider.getEntryFromRemoteId(LocalCachePr
ovider.java:113)
W/System.err( 4463):    at 
at.dasz.KolabDroid.Sync.SyncWorker.sync(SyncWorker.java:252)
W/System.err( 4463):    at 
at.dasz.KolabDroid.Sync.SyncWorker.runWorker(SyncWorker.java:101)
W/System.err( 4463):    at 
at.dasz.KolabDroid.Sync.BaseWorker.start(BaseWorker.java:65)
W/System.err( 4463):    at 
at.dasz.KolabDroid.Sync.SyncService.doWakefulWork(SyncService.java:61)
W/System.err( 4463):    at 
com.commonsware.cwac.wakeful.WakefulIntentService.onHandleIntent(WakefulIntentSe
rvice.java:79)
W/System.err( 4463):    at 
android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:59)
W/System.err( 4463):    at android.os.Handler.dispatchMessage(Handler.java:99)
W/System.err( 4463):    at android.os.Looper.loop(Looper.java:123)
W/System.err( 4463):    at android.os.HandlerThread.run(HandlerThread.java:60)
I/Service ( 4463): sync finished
I/Service ( 4463): Service stopped

Original comment by mathias....@gmail.com on 31 Dec 2010 at 10:19

GoogleCodeExporter commented 8 years ago
Hi Mathias,

do you have a logcat from that run?

Right before that exception occurs there is:
Log.d("sync", "2. Checking message " + subject);

And "subject" is the id of the entry the cache is looking for, maybe there is 
something wrong with that one.

Regards,

Stefan

Original comment by STrille...@googlemail.com on 31 Dec 2010 at 10:30

GoogleCodeExporter commented 8 years ago
Hi Stefan,

the subject is "null": 

D/sync    ( 6170): 2. Checking message null

hm.....

I can mail you the log. It's a bit long for a post....

Original comment by mathias....@gmail.com on 31 Dec 2010 at 12:45

GoogleCodeExporter commented 8 years ago
Upps.

Null isn't any good, this is supposed to be the subject of the email and 
according to:

http://www.kolab.org/doc/kolabformat-2.0rc7-html/c99.html#AEN105

it should be:

"The subject of the mail must be set to the UID of the object."

So can you please check why your email subject is null (empty)?

I agree that she should catch that error and present a proper error message, 
but for now it looks to me that it's a bug in your kolab program on the "other 
side", i.e. the one which created that email.

Regards,

Stefan

Original comment by STrille...@googlemail.com on 31 Dec 2010 at 12:56

GoogleCodeExporter commented 8 years ago
Hi Stefan,

ok. I thought subject 'null' was kind of strange.

I haven't really looked into my 'Contacts' folder in ages (as a mail folger), I 
only used the 'Contacts' component of 'kontact'.

Anyway, I found five messages with '(no subject)' there. After deleting them, 
'sync all' made it up to item 101 of 300 and failed with a different error.
Will send you the logs soon.

It might make sense to just ignore 'no subject' items and to print an 
error/warning message so that people get a hint what to look for.

-Mathias

Original comment by mathias....@gmail.com on 31 Dec 2010 at 12:57

GoogleCodeExporter commented 8 years ago
Great that this is sorted out.

BUT, I _really_ recommend you NOT to use the 0.0.5 version from trunk for 
production use on your phone if you're not familiar with sqlite databases and 
haven't rooted your phone (yet).

Since we are not yet using android syncadapters the whole contacts2.db gets 
messed up at the moment. There's already a working version in the froyo-branch 
which "just" needs some testing and an account manager to help users fixing 
their db.

Regards,

Stefan

Original comment by STrille...@googlemail.com on 31 Dec 2010 at 1:10

GoogleCodeExporter commented 8 years ago
Hi Stefan,

just to bring this to an end. I could finally sync from kolab and back !

On the way, I lost 13 contacts...well, I have a backup :)

At some point 'kolab-android' got confused and created items with the name 
'null, null' locally which also got pushed back to kolab - so it seems.
After deleting them on the kolab side and a fresh 'reset' on the phone, the 
sync went through.

I guess, I won't touch the contacts again for now :)

Let me know, when you have new version and need someone to test ist.

And, yes, my phone is rooted by now. And, also yes, I could figure figure out 
how to fix sqlite. But, I don't have the time for really getting into android 
development...although, rooting the phone was the first step into that 
direction :)

Cheers,

Mathias

Original comment by mathias....@gmail.com on 31 Dec 2010 at 1:50

GoogleCodeExporter commented 8 years ago
Fixed in newest version of branch on gitorious: we ignore messages with no 
subject

Original comment by STrille...@googlemail.com on 10 Jan 2011 at 10:37