in finalizer warnings, use a better exception - NOT Exception()

finalizer warnings should use a more descriptive exception instead of
Exception() so it is clearer to the developers as to why this
warning is output.
This commit is contained in:
Vasu Nori
2010-03-03 10:05:16 -08:00
parent 687c44f2f0
commit 08b448ea39
4 changed files with 35 additions and 3 deletions

View File

@@ -0,0 +1,32 @@
/*
* Copyright (C) 2006 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.database.sqlite;
/**
* An exception that indicates that garbage-collector is finalizing a database object
* that is not explicitly closed
*/
public class DatabaseObjectNotClosedException extends RuntimeException
{
private static final String s = "Application did not close the cursor or database object " +
"that was opened here";
public DatabaseObjectNotClosedException()
{
super(s);
}
}

View File

@@ -56,7 +56,7 @@ import android.util.Log;
/* package */ SQLiteCompiledSql(SQLiteDatabase db, String sql) {
mDatabase = db;
mSqlStmt = sql;
mStackTrace = new Exception().fillInStackTrace();
mStackTrace = new DatabaseObjectNotClosedException().fillInStackTrace();
this.nHandle = db.mNativeHandle;
compile(sql, true);
}

View File

@@ -207,7 +207,7 @@ public class SQLiteCursor extends AbstractWindowedCursor {
String editTable, SQLiteQuery query) {
// The AbstractCursor constructor needs to do some setup.
super();
mStackTrace = new Exception().fillInStackTrace();
mStackTrace = new DatabaseObjectNotClosedException().fillInStackTrace();
mDatabase = db;
mDriver = driver;
mEditTable = editTable;

View File

@@ -1749,7 +1749,7 @@ public class SQLiteDatabase extends SQLiteClosable {
mFlags = flags;
mPath = path;
mSlowQueryThreshold = SystemProperties.getInt(LOG_SLOW_QUERIES_PROPERTY, -1);
mStackTrace = new Exception().fillInStackTrace();
mStackTrace = new DatabaseObjectNotClosedException().fillInStackTrace();
mFactory = factory;
dbopen(mPath, mFlags);
if (SQLiteDebug.DEBUG_SQL_CACHE) {