Loading core/java/android/database/sqlite/SQLiteClosable.java +3 −15 Original line number Original line Diff line number Diff line Loading @@ -23,14 +23,12 @@ import android.database.CursorWindow; */ */ public abstract class SQLiteClosable { public abstract class SQLiteClosable { private int mReferenceCount = 1; private int mReferenceCount = 1; private Object mLock = new Object(); // STOPSHIP remove this line protected abstract void onAllReferencesReleased(); protected abstract void onAllReferencesReleased(); protected void onAllReferencesReleasedFromContainer() {} protected void onAllReferencesReleasedFromContainer() {} public void acquireReference() { public void acquireReference() { synchronized(mLock) { // STOPSHIP change 'mLock' to 'this' synchronized(this) { checkRefCount(); if (mReferenceCount <= 0) { if (mReferenceCount <= 0) { throw new IllegalStateException( throw new IllegalStateException( "attempt to re-open an already-closed object: " + getObjInfo()); "attempt to re-open an already-closed object: " + getObjInfo()); Loading @@ -40,8 +38,7 @@ public abstract class SQLiteClosable { } } public void releaseReference() { public void releaseReference() { synchronized(mLock) { // STOPSHIP change 'mLock' to 'this' synchronized(this) { checkRefCount(); mReferenceCount--; mReferenceCount--; if (mReferenceCount == 0) { if (mReferenceCount == 0) { onAllReferencesReleased(); onAllReferencesReleased(); Loading @@ -50,8 +47,7 @@ public abstract class SQLiteClosable { } } public void releaseReferenceFromContainer() { public void releaseReferenceFromContainer() { synchronized(mLock) { // STOPSHIP change 'mLock' to 'this' synchronized(this) { checkRefCount(); mReferenceCount--; mReferenceCount--; if (mReferenceCount == 0) { if (mReferenceCount == 0) { onAllReferencesReleasedFromContainer(); onAllReferencesReleasedFromContainer(); Loading @@ -76,12 +72,4 @@ public abstract class SQLiteClosable { buff.append(") "); buff.append(") "); return buff.toString(); return buff.toString(); } } // STOPSHIP remove this method before shipping private void checkRefCount() { if (mReferenceCount > 1000) { throw new IllegalStateException("bad refcount: " + mReferenceCount + ". file bug against frameworks->database" + getObjInfo()); } } } } Loading
core/java/android/database/sqlite/SQLiteClosable.java +3 −15 Original line number Original line Diff line number Diff line Loading @@ -23,14 +23,12 @@ import android.database.CursorWindow; */ */ public abstract class SQLiteClosable { public abstract class SQLiteClosable { private int mReferenceCount = 1; private int mReferenceCount = 1; private Object mLock = new Object(); // STOPSHIP remove this line protected abstract void onAllReferencesReleased(); protected abstract void onAllReferencesReleased(); protected void onAllReferencesReleasedFromContainer() {} protected void onAllReferencesReleasedFromContainer() {} public void acquireReference() { public void acquireReference() { synchronized(mLock) { // STOPSHIP change 'mLock' to 'this' synchronized(this) { checkRefCount(); if (mReferenceCount <= 0) { if (mReferenceCount <= 0) { throw new IllegalStateException( throw new IllegalStateException( "attempt to re-open an already-closed object: " + getObjInfo()); "attempt to re-open an already-closed object: " + getObjInfo()); Loading @@ -40,8 +38,7 @@ public abstract class SQLiteClosable { } } public void releaseReference() { public void releaseReference() { synchronized(mLock) { // STOPSHIP change 'mLock' to 'this' synchronized(this) { checkRefCount(); mReferenceCount--; mReferenceCount--; if (mReferenceCount == 0) { if (mReferenceCount == 0) { onAllReferencesReleased(); onAllReferencesReleased(); Loading @@ -50,8 +47,7 @@ public abstract class SQLiteClosable { } } public void releaseReferenceFromContainer() { public void releaseReferenceFromContainer() { synchronized(mLock) { // STOPSHIP change 'mLock' to 'this' synchronized(this) { checkRefCount(); mReferenceCount--; mReferenceCount--; if (mReferenceCount == 0) { if (mReferenceCount == 0) { onAllReferencesReleasedFromContainer(); onAllReferencesReleasedFromContainer(); Loading @@ -76,12 +72,4 @@ public abstract class SQLiteClosable { buff.append(") "); buff.append(") "); return buff.toString(); return buff.toString(); } } // STOPSHIP remove this method before shipping private void checkRefCount() { if (mReferenceCount > 1000) { throw new IllegalStateException("bad refcount: " + mReferenceCount + ". file bug against frameworks->database" + getObjInfo()); } } } }