private void setDatabase(ISQLiteDatabase db) { synchronized (databaseInstanceLock) { // If we're already holding a reference to the same object, don't need to update or recalculate the version if (database != null && db != null && db.getWrappedObject() == database.getWrappedObject()) { return; } sqliteVersion = db != null ? readSqliteVersionLocked(db) : null; database = db; } }
/** * @return true if a connection to the {@link ISQLiteDatabase} is open, false otherwise */ public final boolean isOpen() { synchronized (databaseInstanceLock) { return database != null && database.isOpen(); } }
acquireNonExclusiveLock(); try { getDatabase().beginTransactionNonExclusive(); transactionSuccessState.get().beginTransaction(); } catch (RuntimeException e) {
acquireNonExclusiveLock(); try { getDatabase().beginTransactionWithListener(listener); transactionSuccessState.get().beginTransaction(); } catch (RuntimeException e) {
acquireNonExclusiveLock(); try { getDatabase().beginTransactionWithListenerNonExclusive(listener); transactionSuccessState.get().beginTransaction(); } catch (RuntimeException e) {
/** * Execute a raw SQL statement. May throw a runtime exception if there is an error parsing the SQL or some other * error * * @param sql the statement to execute * @see ISQLiteDatabase#execSQL(String) */ public void execSqlOrThrow(String sql) { acquireNonExclusiveLock(); try { getDatabase().execSQL(sql); } finally { releaseNonExclusiveLock(); } }
private void ensureSqlCompiles(String sql) { acquireNonExclusiveLock(); try { getDatabase().ensureSqlCompiles(sql); } finally { releaseNonExclusiveLock(); } }
private void closeAndDeleteInternal(boolean deleteAfterClose) { clearPreparedStatementCache(); if (isOpen()) { onClose(database); database.close(); } setDatabase(null); if (deleteAfterClose) { getOpenHelper().deleteDatabase(); } helper = null; }
/** * End the current transaction * * @see ISQLiteDatabase#endTransaction() */ public void endTransaction() { TransactionSuccessState successState = transactionSuccessState.get(); try { getDatabase().endTransaction(); } catch (RuntimeException e) { successState.unsetTransactionSuccessful(); throw e; } finally { releaseNonExclusiveLock(); successState.endTransaction(); if (!successState.inTransaction()) { flushAccumulatedNotifications(successState.outerTransactionSuccess); successState.reset(); } } }
acquireNonExclusiveLock(); try { getDatabase().beginTransaction(); transactionSuccessState.get().beginTransaction(); } catch (RuntimeException e) {
/** * Execute a raw SQL statement with optional arguments. The sql string may contain '?' placeholders for the * arguments. May throw a runtime exception if there is an error parsing the SQL or some other error * * @param sql the statement to execute * @param bindArgs the arguments to bind to the statement * @see ISQLiteDatabase#execSQL(String, Object[]) */ public void execSqlOrThrow(String sql, Object[] bindArgs) { acquireNonExclusiveLock(); try { getDatabase().execSQL(sql, bindArgs); } finally { releaseNonExclusiveLock(); } }
acquireNonExclusiveLock(); try { getDatabase().beginTransactionWithListener(listener); transactionSuccessState.get().beginTransaction(); } catch (RuntimeException e) {
acquireNonExclusiveLock(); try { getDatabase().beginTransactionWithListenerNonExclusive(listener); transactionSuccessState.get().beginTransaction(); } catch (RuntimeException e) {
private void ensureSqlCompiles(String sql) { acquireNonExclusiveLock(); try { getDatabase().ensureSqlCompiles(sql); } finally { releaseNonExclusiveLock(); } }
private void closeAndDeleteInternal(boolean deleteAfterClose) { clearPreparedStatementCache(); if (isOpen()) { onClose(database); database.close(); } setDatabase(null); if (deleteAfterClose) { getOpenHelper().deleteDatabase(); } helper = null; }
/** * End the current transaction * * @see ISQLiteDatabase#endTransaction() */ public void endTransaction() { TransactionSuccessState successState = transactionSuccessState.get(); try { getDatabase().endTransaction(); } catch (RuntimeException e) { successState.unsetTransactionSuccessful(); throw e; } finally { releaseNonExclusiveLock(); successState.endTransaction(); if (!successState.inTransaction()) { flushAccumulatedNotifications(successState.outerTransactionSuccess); successState.reset(); } } }
acquireNonExclusiveLock(); try { getDatabase().beginTransaction(); transactionSuccessState.get().beginTransaction(); } catch (RuntimeException e) {
acquireNonExclusiveLock(); try { getDatabase().beginTransactionNonExclusive(); transactionSuccessState.get().beginTransaction(); } catch (RuntimeException e) {
@Override protected void onConfigure(ISQLiteDatabase db) { /** @see AttachDetachTest#testAttacherInTransactionOnAnotherThread() */ Object wrappedObject = db.getWrappedObject(); if (wrappedObject instanceof SQLiteDatabase) { ((SQLiteDatabase) wrappedObject).enableWriteAheadLogging(); } else if (wrappedObject instanceof android.database.sqlite.SQLiteDatabase) { ((android.database.sqlite.SQLiteDatabase) wrappedObject).enableWriteAheadLogging(); } } }