summaryrefslogtreecommitdiff
path: root/core/java/android/database/sqlite
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2020-11-06 00:31:32 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2020-11-06 00:31:32 +0000
commit772223ccfe104dc032e1794b44e76f49cc1966e1 (patch)
treee5c82d73eb5502f15d727cd3f8686c35e7a54907 /core/java/android/database/sqlite
parentdd6d27ec2b9b346a41aa51b3cd483eb7ef58905b (diff)
parentbe5bebafabd509df9a1abcbf4c54a60c24504c5c (diff)
Merge "Use CloseGuard for cursor leak detection"
Diffstat (limited to 'core/java/android/database/sqlite')
-rw-r--r--core/java/android/database/sqlite/SQLiteCursor.java22
1 files changed, 7 insertions, 15 deletions
diff --git a/core/java/android/database/sqlite/SQLiteCursor.java b/core/java/android/database/sqlite/SQLiteCursor.java
index 3bfbe7e7b93b..7ba63e6462f1 100644
--- a/core/java/android/database/sqlite/SQLiteCursor.java
+++ b/core/java/android/database/sqlite/SQLiteCursor.java
@@ -62,9 +62,6 @@ public class SQLiteCursor extends AbstractWindowedCursor {
/** A mapping of column names to column indices, to speed up lookups */
private Map<String, Integer> mColumnNameMap;
- /** Used to find out where a cursor was allocated in case it never got released. */
- private final Throwable mStackTrace;
-
/** Controls fetching of rows relative to requested position **/
private boolean mFillWindowForwardOnly;
@@ -102,11 +99,6 @@ public class SQLiteCursor extends AbstractWindowedCursor {
if (query == null) {
throw new IllegalArgumentException("query object cannot be null");
}
- if (StrictMode.vmSqliteObjectLeaksEnabled()) {
- mStackTrace = new DatabaseObjectNotClosedException().fillInStackTrace();
- } else {
- mStackTrace = null;
- }
mDriver = driver;
mEditTable = editTable;
mColumnNameMap = null;
@@ -283,17 +275,17 @@ public class SQLiteCursor extends AbstractWindowedCursor {
try {
// if the cursor hasn't been closed yet, close it first
if (mWindow != null) {
- if (mStackTrace != null) {
+ // Report original sql statement
+ if (StrictMode.vmSqliteObjectLeaksEnabled()) {
String sql = mQuery.getSql();
int len = sql.length();
StrictMode.onSqliteObjectLeaked(
- "Finalizing a Cursor that has not been deactivated or closed. " +
- "database = " + mQuery.getDatabase().getLabel() +
- ", table = " + mEditTable +
- ", query = " + sql.substring(0, (len > 1000) ? 1000 : len),
- mStackTrace);
+ "Finalizing a Cursor that has not been deactivated or closed. "
+ + "database = " + mQuery.getDatabase().getLabel()
+ + ", table = " + mEditTable
+ + ", query = " + sql.substring(0, (len > 1000) ? 1000 : len),
+ null);
}
- close();
}
} finally {
super.finalize();