summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/database/sqlite/SQLiteCursor.java28
1 files changed, 25 insertions, 3 deletions
diff --git a/core/java/android/database/sqlite/SQLiteCursor.java b/core/java/android/database/sqlite/SQLiteCursor.java
index 5a6c66782028..26a14403a5e3 100644
--- a/core/java/android/database/sqlite/SQLiteCursor.java
+++ b/core/java/android/database/sqlite/SQLiteCursor.java
@@ -407,15 +407,29 @@ public class SQLiteCursor extends AbstractWindowedCursor {
mWindow.clear();
}
mPos = -1;
- SQLiteDatabase db = mQuery.mDatabase.getDatabaseHandle(mQuery.mSql);
+ SQLiteDatabase db = null;
+ try {
+ db = mQuery.mDatabase.getDatabaseHandle(mQuery.mSql);
+ } catch (IllegalStateException e) {
+ // for backwards compatibility, just return false
+ return false;
+ }
if (!db.equals(mQuery.mDatabase)) {
// since we need to use a different database connection handle,
// re-compile the query
- db.lock();
+ try {
+ db.lock();
+ } catch (IllegalStateException e) {
+ // for backwards compatibility, just return false
+ return false;
+ }
try {
// close the old mQuery object and open a new one
mQuery.close();
mQuery = new SQLiteQuery(db, mQuery);
+ } catch (IllegalStateException e) {
+ // for backwards compatibility, just return false
+ return false;
} finally {
db.unlock();
}
@@ -427,6 +441,9 @@ public class SQLiteCursor extends AbstractWindowedCursor {
queryThreadLock();
try {
mQuery.requery();
+ } catch (IllegalStateException e) {
+ // for backwards compatibility, just return false
+ return false;
} finally {
queryThreadUnlock();
}
@@ -437,7 +454,12 @@ public class SQLiteCursor extends AbstractWindowedCursor {
Log.v(TAG, "--- Requery()ed cursor " + this + ": " + mQuery);
}
- boolean result = super.requery();
+ boolean result = false;
+ try {
+ result = super.requery();
+ } catch (IllegalStateException e) {
+ // for backwards compatibility, just return false
+ }
if (Config.LOGV) {
long timeEnd = System.currentTimeMillis();
Log.v(TAG, "requery (" + (timeEnd - timeStart) + " ms): " + mDriver.toString());