From 46a8851360de255a4a63a0bdf61987a89e1d8e73 Mon Sep 17 00:00:00 2001 From: Brian Muramatsu Date: Fri, 12 Nov 2010 13:53:57 -0800 Subject: Fix NPE in SQLiteDatabase#updateWithOnConflict Bug 3188586 ...to restore old behavior of throwing IllegalArgumentException when values is null. Change-Id: Ic2df542b2cdbdb7571080eb7f0fc6a4fe1678446 --- core/java/android/database/sqlite/SQLiteDatabase.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/core/java/android/database/sqlite/SQLiteDatabase.java b/core/java/android/database/sqlite/SQLiteDatabase.java index 41bb364e58dd..7efb7fdc1ac1 100644 --- a/core/java/android/database/sqlite/SQLiteDatabase.java +++ b/core/java/android/database/sqlite/SQLiteDatabase.java @@ -1081,7 +1081,7 @@ public class SQLiteDatabase extends SQLiteClosable { mConnectionPool.close(); } } finally { - unlock(); + unlock(); } } @@ -1772,8 +1772,7 @@ public class SQLiteDatabase extends SQLiteClosable { */ public int updateWithOnConflict(String table, ContentValues values, String whereClause, String[] whereArgs, int conflictAlgorithm) { - int setValuesSize = values.size(); - if (values == null || setValuesSize == 0) { + if (values == null || values.size() == 0) { throw new IllegalArgumentException("Empty values"); } @@ -1784,6 +1783,7 @@ public class SQLiteDatabase extends SQLiteClosable { sql.append(" SET "); // move all bind args to one array + int setValuesSize = values.size(); int bindArgsSize = (whereArgs == null) ? setValuesSize : (setValuesSize + whereArgs.length); Object[] bindArgs = new Object[bindArgsSize]; int i = 0; @@ -2118,7 +2118,7 @@ public class SQLiteDatabase extends SQLiteClosable { int maxCacheSz = (mConnectionNum == 0) ? mMaxSqlCacheSize : mParentConnObj.mMaxSqlCacheSize; - + if (SQLiteDebug.DEBUG_SQL_CACHE) { boolean printWarning = (mConnectionNum == 0) ? (!mCacheFullWarning && mCompiledQueries.size() == maxCacheSz) -- cgit v1.2.3-59-g8ed1b