summaryrefslogtreecommitdiffstats
path: root/core/java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/content/ContentProviderClient.java13
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