From f0808f810ed5852c0bbde1e1764cbda9686e3f49 Mon Sep 17 00:00:00 2001 From: Vasu Nori Date: Fri, 8 Oct 2010 14:48:48 -0700 Subject: [PATCH] when printing requery on UI warning, include additional info this hsould help figure out which module is doing query on UI thread. Change-Id: If3062a35fa1fb50063b678c3c9311d6b1504fa9b --- core/java/android/database/sqlite/SQLiteCursor.java | 6 ++++-- core/java/android/database/sqlite/SQLiteDatabase.java | 9 ++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/core/java/android/database/sqlite/SQLiteCursor.java b/core/java/android/database/sqlite/SQLiteCursor.java index 89e8ab78c23f1..aba37a457fe98 100644 --- a/core/java/android/database/sqlite/SQLiteCursor.java +++ b/core/java/android/database/sqlite/SQLiteCursor.java @@ -416,8 +416,10 @@ public class SQLiteCursor extends AbstractWindowedCursor { // BEGIN STOPSHIP remove the following line t = new RequeryOnUiThreadException(packageName); // END STOPSHIP - Log.w(TAG, "should not attempt requery on main (UI) thread: app = " + - packageName == null ? "'unknown'" : packageName, t); + String s = packageName == null ? "'unknown'" : packageName; + Log.w(TAG, "should not attempt requery on main (UI) thread: app = " + s + + " (database: " + mQuery.mDatabase.getPath() + + ", query: " + mQuery.mSql + ")", t); } } } diff --git a/core/java/android/database/sqlite/SQLiteDatabase.java b/core/java/android/database/sqlite/SQLiteDatabase.java index a98a3057282c7..0e921e941ad9f 100644 --- a/core/java/android/database/sqlite/SQLiteDatabase.java +++ b/core/java/android/database/sqlite/SQLiteDatabase.java @@ -2114,7 +2114,14 @@ public class SQLiteDatabase extends SQLiteClosable { return; } - if (!mCacheFullWarning && mCompiledQueries.size() == mMaxSqlCacheSize) { + int maxCacheSz = (mConnectionNum == 0) ? mMaxSqlCacheSize : + mParentConnObj.mMaxSqlCacheSize; + boolean printWarning = + (mConnectionNum == 0) + ? (!mCacheFullWarning && mCompiledQueries.size() == maxCacheSz) + : (!mParentConnObj.mCacheFullWarning && + mParentConnObj.mCompiledQueries.size() == maxCacheSz); + if (printWarning) { /* * cache size of {@link #mMaxSqlCacheSize} is not enough for this app. * log a warning.