From d3fe30134edbe17094a5b9ef21aa6662de451001 Mon Sep 17 00:00:00 2001 From: Vasu Nori Date: Thu, 18 Feb 2010 15:27:03 -0800 Subject: add diagnostic info to help debug bug:2427686 --- .../android/database/sqlite/SQLiteClosable.java | 26 ++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) (limited to 'core/java') diff --git a/core/java/android/database/sqlite/SQLiteClosable.java b/core/java/android/database/sqlite/SQLiteClosable.java index 7776520..e589f34 100644 --- a/core/java/android/database/sqlite/SQLiteClosable.java +++ b/core/java/android/database/sqlite/SQLiteClosable.java @@ -16,6 +16,8 @@ package android.database.sqlite; +import android.database.CursorWindow; + /** * An object create from a SQLiteDatabase that can be closed. */ @@ -29,9 +31,9 @@ public abstract class SQLiteClosable { synchronized(mLock) { if (mReferenceCount <= 0) { throw new IllegalStateException( - "attempt to acquire a reference on an already-closed SQLiteClosable obj."); + "attempt to acquire a reference on an already-closed " + getObjInfo()); } - mReferenceCount++; + mReferenceCount++; } } @@ -52,4 +54,24 @@ public abstract class SQLiteClosable { } } } + + private String getObjInfo() { + StringBuilder buff = new StringBuilder(); + buff.append(this.getClass().getName()); + buff.append(" Obj"); + buff.append(" ("); + if (this instanceof SQLiteDatabase) { + buff.append("database = "); + buff.append(((SQLiteDatabase)this).getPath()); + } else if (this instanceof SQLiteProgram || this instanceof SQLiteStatement || + this instanceof SQLiteQuery) { + buff.append("mSql = "); + buff.append(((SQLiteProgram)this).mSql); + } else if (this instanceof CursorWindow) { + buff.append("mStartPos = "); + buff.append(((CursorWindow)this).getStartPosition()); + } + buff.append(") "); + return buff.toString(); + } } -- cgit v1.1