Merge "in GB requery() didn't throw exceptions (mostly). replicate that in HC" into honeycomb

This commit is contained in:
Vasu Nori
2011-01-06 16:52:35 -08:00
committed by Android (Google) Code Review

View File

@@ -407,15 +407,29 @@ public class SQLiteCursor extends AbstractWindowedCursor {
mWindow.clear(); mWindow.clear();
} }
mPos = -1; 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)) { if (!db.equals(mQuery.mDatabase)) {
// since we need to use a different database connection handle, // since we need to use a different database connection handle,
// re-compile the query // re-compile the query
db.lock(); try {
db.lock();
} catch (IllegalStateException e) {
// for backwards compatibility, just return false
return false;
}
try { try {
// close the old mQuery object and open a new one // close the old mQuery object and open a new one
mQuery.close(); mQuery.close();
mQuery = new SQLiteQuery(db, mQuery); mQuery = new SQLiteQuery(db, mQuery);
} catch (IllegalStateException e) {
// for backwards compatibility, just return false
return false;
} finally { } finally {
db.unlock(); db.unlock();
} }
@@ -427,6 +441,9 @@ public class SQLiteCursor extends AbstractWindowedCursor {
queryThreadLock(); queryThreadLock();
try { try {
mQuery.requery(); mQuery.requery();
} catch (IllegalStateException e) {
// for backwards compatibility, just return false
return false;
} finally { } finally {
queryThreadUnlock(); queryThreadUnlock();
} }
@@ -437,7 +454,12 @@ public class SQLiteCursor extends AbstractWindowedCursor {
Log.v(TAG, "--- Requery()ed cursor " + this + ": " + mQuery); 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) { if (Config.LOGV) {
long timeEnd = System.currentTimeMillis(); long timeEnd = System.currentTimeMillis();
Log.v(TAG, "requery (" + (timeEnd - timeStart) + " ms): " + mDriver.toString()); Log.v(TAG, "requery (" + (timeEnd - timeStart) + " ms): " + mDriver.toString());