summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/com/android/mtp/MtpDatabase.java5
-rw-r--r--tests/src/com/android/mtp/MtpDatabaseTest.java11
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")