diff options
| author | TreeHugger Robot <treehugger-gerrit@google.com> | 2020-11-06 00:31:32 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2020-11-06 00:31:32 +0000 |
| commit | 772223ccfe104dc032e1794b44e76f49cc1966e1 (patch) | |
| tree | e5c82d73eb5502f15d727cd3f8686c35e7a54907 /core/java/android/database/sqlite | |
| parent | dd6d27ec2b9b346a41aa51b3cd483eb7ef58905b (diff) | |
| parent | be5bebafabd509df9a1abcbf4c54a60c24504c5c (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.java | 22 |
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(); |
