diff options
Diffstat (limited to 'core/java')
-rw-r--r-- | core/java/android/content/ContentProviderClient.java | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/core/java/android/content/ContentProviderClient.java b/core/java/android/content/ContentProviderClient.java index 39b453d..0650798 100644 --- a/core/java/android/content/ContentProviderClient.java +++ b/core/java/android/content/ContentProviderClient.java @@ -26,6 +26,8 @@ import android.os.RemoteException; import android.os.ParcelFileDescriptor; import android.content.res.AssetFileDescriptor; +import dalvik.system.CloseGuard; + import java.io.FileNotFoundException; import java.util.ArrayList; @@ -49,6 +51,8 @@ public class ContentProviderClient { private final boolean mStable; private boolean mReleased; + private final CloseGuard mGuard = CloseGuard.get(); + /** * @hide */ @@ -58,6 +62,7 @@ public class ContentProviderClient { mContentResolver = contentResolver; mPackageName = contentResolver.mPackageName; mStable = stable; + mGuard.open("release"); } /** See {@link ContentProvider#query ContentProvider.query} */ @@ -324,6 +329,7 @@ public class ContentProviderClient { throw new IllegalStateException("Already released"); } mReleased = true; + mGuard.close(); if (mStable) { return mContentResolver.releaseProvider(mContentProvider); } else { @@ -332,6 +338,13 @@ public class ContentProviderClient { } } + @Override + protected void finalize() throws Throwable { + if (mGuard != null) { + mGuard.warnIfOpen(); + } + } + /** * Get a reference to the {@link ContentProvider} that is associated with this * client. If the {@link ContentProvider} is running in a different process then |