diff options
-rw-r--r-- | src/com/android/mtp/MtpDatabase.java | 5 | ||||
-rw-r--r-- | tests/src/com/android/mtp/MtpDatabaseTest.java | 11 |
2 files changed, 15 insertions, 1 deletions
diff --git a/src/com/android/mtp/MtpDatabase.java b/src/com/android/mtp/MtpDatabase.java index bfb5cb8..f3b1549 100644 --- a/src/com/android/mtp/MtpDatabase.java +++ b/src/com/android/mtp/MtpDatabase.java @@ -535,7 +535,8 @@ class MtpDatabase { // TODO Remove mappingState. return deleted != 0; } catch (SQLiteException exSql) { - Log.w(TAG, "SQLiteException:" + selection, exSql); + Log.w(TAG, "deleteDocumentsAndRoots.SQLiteException (bypassed): " + + selection + ", dump:", exSql); return false; } finally { mDatabase.endTransaction(); @@ -684,6 +685,8 @@ class MtpDatabase { deleteDocumentsAndRoots( Document.COLUMN_DOCUMENT_ID + " NOT IN " + getIdList(ids), null); mDatabase.setTransactionSuccessful(); + } catch (IllegalArgumentException exArg) { + Log.w(TAG, "cleanDatabase.IllegalArgumentException (bypassed), dump:", exArg); } finally { mDatabase.endTransaction(); } diff --git a/tests/src/com/android/mtp/MtpDatabaseTest.java b/tests/src/com/android/mtp/MtpDatabaseTest.java index 32b169e..05d7b23 100644 --- a/tests/src/com/android/mtp/MtpDatabaseTest.java +++ b/tests/src/com/android/mtp/MtpDatabaseTest.java @@ -1055,6 +1055,17 @@ public class MtpDatabaseTest extends AndroidTestCase { mDatabase.getMapper().startAddingDocuments(null); mDatabase.getMapper().stopAddingDocuments(null); + // Clean database with error column + mDatabase.cleanDatabase(new Uri[] { + DocumentsContract.buildDocumentUri(MtpDocumentsProvider.AUTHORITY, + "wrong_id_test") + }); + + // Clean database with error uri + mDatabase.cleanDatabase(new Uri[] { + Uri.parse("content://com.android.providers.downloads.documents/wrong_uri_test") + }); + // Clean database. mDatabase.cleanDatabase(new Uri[] { DocumentsContract.buildDocumentUri(MtpDocumentsProvider.AUTHORITY, "3") |