diff --git a/jni/Android.mk b/jni/Android.mk index 85018dc0..e8e008b5 100644 --- a/jni/Android.mk +++ b/jni/Android.mk @@ -28,7 +28,7 @@ LOCAL_SRC_FILES:= \ net_sqlcipher_database_SQLiteStatement.cpp \ net_sqlcipher_CursorWindow.cpp \ CursorWindow.cpp -# info_guardianproject_database_sqlcipher_SQLiteDebug.cpp +# net_sqlcipher_database_sqlcipher_SQLiteDebug.cpp LOCAL_C_INCLUDES += \ $(JNI_H_INCLUDE) \ diff --git a/jni/net_sqlcipher_database_SQLiteDatabase.cpp b/jni/net_sqlcipher_database_SQLiteDatabase.cpp index 3cbfe6f6..812388d7 100644 --- a/jni/net_sqlcipher_database_SQLiteDatabase.cpp +++ b/jni/net_sqlcipher_database_SQLiteDatabase.cpp @@ -585,7 +585,7 @@ void throw_sqlite3_exception(JNIEnv* env, int errcode, exceptionClass = "net/sqlcipher/database/SQLiteMisuseException"; break; default: - exceptionClass = "info/guardianproject/database/sqlcipher/SQLiteException"; + exceptionClass = "net/sqlcipher/database/sqlcipher/SQLiteException"; break; } diff --git a/src/net/sqlcipher/database/SQLiteCursor.java b/src/net/sqlcipher/database/SQLiteCursor.java index d4cf2b47..4f293519 100644 --- a/src/net/sqlcipher/database/SQLiteCursor.java +++ b/src/net/sqlcipher/database/SQLiteCursor.java @@ -612,7 +612,7 @@ public void fillWindow(int startPos, android.database.CursorWindow window) { /* window.setStartPosition(startPos); - mCount = mQuery.fillWindow((info.guardianproject.database.CursorWindow)window, mInitialRead, 0); + mCount = mQuery.fillWindow((net.sqlcipher.database.CursorWindow)window, mInitialRead, 0); // return -1 means not finished if (mCount == NO_COUNT){ mCount = startPos + mInitialRead; diff --git a/src/net/sqlcipher/database/SQLiteOpenHelper.java b/src/net/sqlcipher/database/SQLiteOpenHelper.java index 56dd5c0f..05402437 100644 --- a/src/net/sqlcipher/database/SQLiteOpenHelper.java +++ b/src/net/sqlcipher/database/SQLiteOpenHelper.java @@ -39,7 +39,7 @@ public abstract class SQLiteOpenHelper { private final CursorFactory mFactory; private final int mNewVersion; - private SQLiteDatabase mDatabase = null; + private SQLiteDatabase mDatabaseRO, mDatabaseRW = null; private boolean mIsInitializing = false; /** @@ -75,8 +75,8 @@ public SQLiteOpenHelper(Context context, String name, CursorFactory factory, int * @return a read/write database object valid until {@link #close} is called */ public synchronized SQLiteDatabase getWritableDatabase(String password) { - if (mDatabase != null && mDatabase.isOpen() && !mDatabase.isReadOnly()) { - return mDatabase; // The database is already open for business + if (mDatabaseRW != null && mDatabaseRW.isOpen()) { + return mDatabaseRW; // The database is already open for business } if (mIsInitializing) { @@ -91,7 +91,7 @@ public synchronized SQLiteDatabase getWritableDatabase(String password) { boolean success = false; SQLiteDatabase db = null; - if (mDatabase != null) mDatabase.lock(); + if (mDatabaseRW != null) mDatabaseRW.lock(); try { mIsInitializing = true; if (mName == null) { @@ -135,13 +135,13 @@ public synchronized SQLiteDatabase getWritableDatabase(String password) { } finally { mIsInitializing = false; if (success) { - if (mDatabase != null) { - try { mDatabase.close(); } catch (Exception e) { } - mDatabase.unlock(); + if (mDatabaseRW != null) { + try { mDatabaseRW.close(); } catch (Exception e) { } + mDatabaseRW.unlock(); } - mDatabase = db; + mDatabaseRW = db; } else { - if (mDatabase != null) mDatabase.unlock(); + if (mDatabaseRW != null) mDatabaseRW.unlock(); if (db != null) db.close(); } } @@ -161,21 +161,14 @@ public synchronized SQLiteDatabase getWritableDatabase(String password) { * or {@link #close} is called. */ public synchronized SQLiteDatabase getReadableDatabase(String password) { - if (mDatabase != null && mDatabase.isOpen()) { - return mDatabase; // The database is already open for business + if (mDatabaseRO != null && mDatabaseRO.isOpen()) { + return mDatabaseRO; // The database is already open for business } if (mIsInitializing) { throw new IllegalStateException("getReadableDatabase called recursively"); } - try { - return getWritableDatabase(password); - } catch (SQLiteException e) { - if (mName == null) throw e; // Can't open a temp database read-only! - Log.e(TAG, "Couldn't open " + mName + " for writing (will try read-only):", e); - } - SQLiteDatabase db = null; try { mIsInitializing = true; @@ -188,11 +181,11 @@ public synchronized SQLiteDatabase getReadableDatabase(String password) { onOpen(db); Log.w(TAG, "Opened " + mName + " in read-only mode"); - mDatabase = db; - return mDatabase; + mDatabaseRO = db; + return mDatabaseRO; } finally { mIsInitializing = false; - if (db != null && db != mDatabase) db.close(); + if (db != null && db != mDatabaseRO) db.close(); } } @@ -202,9 +195,14 @@ public synchronized SQLiteDatabase getReadableDatabase(String password) { public synchronized void close() { if (mIsInitializing) throw new IllegalStateException("Closed during initialization"); - if (mDatabase != null && mDatabase.isOpen()) { - mDatabase.close(); - mDatabase = null; + if (mDatabaseRO != null && mDatabaseRO.isOpen()) { + mDatabaseRO.close(); + mDatabaseRO = null; + } + + if (mDatabaseRW != null && mDatabaseRW.isOpen()) { + mDatabaseRW.close(); + mDatabaseRW = null; } }