After a fight with some code intended to set contact photos in the
contacts DB on 2.2, the contacts are now unable to sync - I get:

android.database.sqlite.SQLiteException: unknown error: Unable to
convert BLOB to string

every time the contact provider attempts a sync, and a popup telling
me that com.google.process.gapps  has died.

I think this means that there is duff data in ContactsContract.DATA
somewhere. Is there any way to work out which mimetypes correspond to
which columns and types in the DATA table, so i can sanitise it ?

Thanks,

Richard

Here's the stack from the crash:

10-05 18:32:31.606: ERROR/DatabaseUtils(216): Writing exception to
parcel
10-05 18:32:31.606: ERROR/DatabaseUtils(216):
android.database.sqlite.SQLiteException: unknown error: Unable to
convert BLOB to string
10-05 18:32:31.606: ERROR/DatabaseUtils(216):     at
android.database.CursorWindow.getString_native(Native Method)
10-05 18:32:31.606: ERROR/DatabaseUtils(216):     at
android.database.CursorWindow.getString(CursorWindow.java:329)
10-05 18:32:31.606: ERROR/DatabaseUtils(216):     at
android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:
49)
10-05 18:32:31.606: ERROR/DatabaseUtils(216):     at
com.android.providers.contacts.ContactsProvider2$DataRowHandler.getAugmentedValues(ContactsProvider2.java:
1111)
10-05 18:32:31.606: ERROR/DatabaseUtils(216):     at
com.android.providers.contacts.ContactsProvider2$StructuredNameRowHandler.update(ContactsProvider2.java:
1171)
10-05 18:32:31.606: ERROR/DatabaseUtils(216):     at
com.android.providers.contacts.ContactsProvider2.updateData(ContactsProvider2.java:
3839)
10-05 18:32:31.606: ERROR/DatabaseUtils(216):     at
com.android.providers.contacts.ContactsProvider2.updateData(ContactsProvider2.java:
3823)
10-05 18:32:31.606: ERROR/DatabaseUtils(216):     at
com.android.providers.contacts.ContactsProvider2.updateInTransaction(ContactsProvider2.java:
3509)
10-05 18:32:31.606: ERROR/DatabaseUtils(216):     at
com.android.providers.contacts.SQLiteContentProvider.update(SQLiteContentProvider.java:
155)
10-05 18:32:31.606: ERROR/DatabaseUtils(216):     at
com.android.providers.contacts.ContactsProvider2.update(ContactsProvider2.java:
2259)
10-05 18:32:31.606: ERROR/DatabaseUtils(216):     at
android.content.ContentProviderOperation.apply(ContentProviderOperation.java:
225)
10-05 18:32:31.606: ERROR/DatabaseUtils(216):     at
com.android.providers.contacts.SQLiteContentProvider.applyBatch(SQLiteContentProvider.java:
216)
10-05 18:32:31.606: ERROR/DatabaseUtils(216):     at
com.android.providers.contacts.ContactsProvider2.applyBatch(ContactsProvider2.java:
2272)
10-05 18:32:31.606: ERROR/DatabaseUtils(216):     at
android.content.ContentProvider
$Transport.applyBatch(ContentProvider.java:193)
10-05 18:32:31.606: ERROR/DatabaseUtils(216):     at
android.content.ContentProviderNative.onTransact(ContentProviderNative.java:
173)
10-05 18:32:31.606: ERROR/DatabaseUtils(216):     at
android.os.Binder.execTransact(Binder.java:288)
10-05 18:32:31.606: ERROR/DatabaseUtils(216):     at
dalvik.system.NativeStart.run(Native Method)
10-05 18:32:31.626: WARN/dalvikvm(199): threadid=20: thread exiting
with uncaught exception (group=0x4001d7f0)
10-05 18:32:31.756: ERROR/AndroidRuntime(199): FATAL EXCEPTION:
SyncAdapterThread-1
10-05 18:32:31.756: ERROR/AndroidRuntime(199):
android.database.sqlite.SQLiteException: unknown error: Unable to
convert BLOB to string
10-05 18:32:31.756: ERROR/AndroidRuntime(199):     at
android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:
158)
10-05 18:32:31.756: ERROR/AndroidRuntime(199):     at
android.database.DatabaseUtils.readExceptionWithOperationApplicationExceptionFromParcel(DatabaseUtils.java:
137)
10-05 18:32:31.756: ERROR/AndroidRuntime(199):     at
android.content.ContentProviderProxy.applyBatch(ContentProviderNative.java:
449)
10-05 18:32:31.756: ERROR/AndroidRuntime(199):     at
android.content.ContentProviderClient.applyBatch(ContentProviderClient.java:
95)
10-05 18:32:31.756: ERROR/AndroidRuntime(199):     at
com.google.android.syncadapters.contacts.ContactsSyncAdapter.sendEntityToServer(ContactsSyncAdapter.java:
621)
10-05 18:32:31.756: ERROR/AndroidRuntime(199):     at
com.google.android.syncadapters.contacts.ContactsSyncAdapter.processLocalChanges(ContactsSyncAdapter.java:
553)
10-05 18:32:31.756: ERROR/AndroidRuntime(199):     at
com.google.android.syncadapters.contacts.ContactsSyncAdapter.innerPerformSync(ContactsSyncAdapter.java:
248)
10-05 18:32:31.756: ERROR/AndroidRuntime(199):     at
com.google.android.syncadapters.contacts.ContactsSyncAdapter.onPerformLoggedSync(ContactsSyncAdapter.java:
130)
10-05 18:32:31.756: ERROR/AndroidRuntime(199):     at
com.google.android.common.LoggingThreadedSyncAdapter.onPerformSync(LoggingThreadedSyncAdapter.java:
27)
10-05 18:32:31.756: ERROR/AndroidRuntime(199):     at
android.content.AbstractThreadedSyncAdapter
$SyncThread.run(AbstractThreadedSyncAdapter.java:163)
10-05 18:32:36.606: DEBUG/dalvikvm(199): GC_EXPLICIT freed 2304
objects / 184176 bytes in 76ms
10-05 18:32:41.666: INFO/Process(199): Sending signal. PID: 199 SIG: 9
10-05 18:32:41.686: WARN/InputManagerService(90): Window already
focused, ignoring focus gain of:
android.view.inputmethod.inputmethodmanage...@44c89f68
10-05 18:32:41.716: INFO/ActivityManager(90): Process
com.google.process.gapps (pid 199) has died.

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to