Merge "Don't manually close the database."
diff --git a/src/com/android/providers/contacts/ContactsDatabaseHelper.java b/src/com/android/providers/contacts/ContactsDatabaseHelper.java
index 905a87a..256abd4 100644
--- a/src/com/android/providers/contacts/ContactsDatabaseHelper.java
+++ b/src/com/android/providers/contacts/ContactsDatabaseHelper.java
@@ -746,8 +746,6 @@
private final CountryMonitor mCountryMonitor;
private StringBuilder mSb = new StringBuilder();
- private boolean mReopenDatabase = false;
-
private static ContactsDatabaseHelper sSingleton = null;
private boolean mUseStrictPhoneNumberComparison;
@@ -765,11 +763,11 @@
}
/**
- * Private constructor, callers except unit tests should obtain an instance through
- * {@link #getInstance(android.content.Context)} instead.
+ * Returns a new instance for unit tests.
*/
- ContactsDatabaseHelper(Context context) {
- this(context, null, false);
+ @NeededForTesting
+ static ContactsDatabaseHelper getNewInstanceForTest(Context context) {
+ return new ContactsDatabaseHelper(context, null, false);
}
protected ContactsDatabaseHelper(
@@ -1336,11 +1334,6 @@
db.execSQL("ANALYZE;");
updateSqliteStats(db);
-
- // We need to close and reopen the database connection so that the stats are
- // taken into account. Make a note of it and do the actual reopening in the
- // getWritableDatabase method.
- mReopenDatabase = true;
}
ContentResolver.requestSync(null /* all accounts */,
@@ -2390,7 +2383,6 @@
createContactsIndexes(db);
updateSqliteStats(db);
upgradeLegacyApiSupport = true;
- mReopenDatabase = true;
}
if (upgradeLegacyApiSupport) {
@@ -3877,6 +3869,8 @@
updateIndexStats(db, "search_index_segdir",
"sqlite_autoindex_search_index_segdir_1", "9 5 1");
+ // Force sqlite to reload sqlite_stat1.
+ db.execSQL("ANALYZE sqlite_master;");
} catch (SQLException e) {
Log.e(TAG, "Could not update index stats", e);
}
@@ -3902,17 +3896,6 @@
new String[] { table, index, stats });
}
- @Override
- public synchronized SQLiteDatabase getWritableDatabase() {
- SQLiteDatabase db = super.getWritableDatabase();
- if (mReopenDatabase) {
- mReopenDatabase = false;
- close();
- db = super.getWritableDatabase();
- }
- return db;
- }
-
/**
* Wipes all data except mime type and package lookup tables.
*/
diff --git a/src/com/android/providers/contacts/ContactsUpgradeReceiver.java b/src/com/android/providers/contacts/ContactsUpgradeReceiver.java
index 1439c21..e259ffe 100644
--- a/src/com/android/providers/contacts/ContactsUpgradeReceiver.java
+++ b/src/com/android/providers/contacts/ContactsUpgradeReceiver.java
@@ -74,11 +74,9 @@
}
helper.getWritableDatabase();
}
- helper.close();
ProfileDatabaseHelper profileHelper = ProfileDatabaseHelper.getInstance(context);
profileHelper.getWritableDatabase();
- helper.close();
// Log the total time taken for the receiver to perform the operation
EventLogTags.writeContactsUpgradeReceiver(System.currentTimeMillis() - startTime);
diff --git a/src/com/android/providers/contacts/ProfileDatabaseHelper.java b/src/com/android/providers/contacts/ProfileDatabaseHelper.java
index e2e5c90..9b707a3 100644
--- a/src/com/android/providers/contacts/ProfileDatabaseHelper.java
+++ b/src/com/android/providers/contacts/ProfileDatabaseHelper.java
@@ -16,6 +16,8 @@
package com.android.providers.contacts;
+import com.android.providers.contacts.util.NeededForTesting;
+
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
@@ -37,11 +39,11 @@
private static ProfileDatabaseHelper sSingleton = null;
/**
- * Private constructor, callers except unit tests should obtain an instance through
- * {@link #getInstance(android.content.Context)} instead.
+ * Returns a new instance for unit tests.
*/
- ProfileDatabaseHelper(Context context) {
- this(context, null, false);
+ @NeededForTesting
+ public static ProfileDatabaseHelper getNewInstanceForTest(Context context) {
+ return new ProfileDatabaseHelper(context, null, false);
}
private ProfileDatabaseHelper(
diff --git a/tests/src/com/android/providers/contacts/BaseVoicemailProviderTest.java b/tests/src/com/android/providers/contacts/BaseVoicemailProviderTest.java
index 6a45872..bd0e814 100644
--- a/tests/src/com/android/providers/contacts/BaseVoicemailProviderTest.java
+++ b/tests/src/com/android/providers/contacts/BaseVoicemailProviderTest.java
@@ -157,7 +157,7 @@
@Override
protected ContactsDatabaseHelper getDatabaseHelper(Context context) {
- return new ContactsDatabaseHelper(context);
+ return ContactsDatabaseHelper.getNewInstanceForTest(context);
}
@Override
diff --git a/tests/src/com/android/providers/contacts/CallLogProviderTest.java b/tests/src/com/android/providers/contacts/CallLogProviderTest.java
index b005d5d..02aebb7 100644
--- a/tests/src/com/android/providers/contacts/CallLogProviderTest.java
+++ b/tests/src/com/android/providers/contacts/CallLogProviderTest.java
@@ -337,7 +337,7 @@
@Override
protected ContactsDatabaseHelper getDatabaseHelper(final Context context) {
if (mDbHelper == null) {
- mDbHelper = new ContactsDatabaseHelper(context);
+ mDbHelper = ContactsDatabaseHelper.getNewInstanceForTest(context);
}
return mDbHelper;
}
diff --git a/tests/src/com/android/providers/contacts/SynchronousContactsProvider2.java b/tests/src/com/android/providers/contacts/SynchronousContactsProvider2.java
index 39293c5..5dc5cdf 100644
--- a/tests/src/com/android/providers/contacts/SynchronousContactsProvider2.java
+++ b/tests/src/com/android/providers/contacts/SynchronousContactsProvider2.java
@@ -40,7 +40,7 @@
@Override
protected ContactsDatabaseHelper getDatabaseHelper(final Context context) {
if (mDbHelper == null) {
- mDbHelper = new ContactsDatabaseHelper(context);
+ mDbHelper = ContactsDatabaseHelper.getNewInstanceForTest(context);
}
return mDbHelper;
}
diff --git a/tests/src/com/android/providers/contacts/SynchronousProfileProvider.java b/tests/src/com/android/providers/contacts/SynchronousProfileProvider.java
index 6c55f5d..bde6dc9 100644
--- a/tests/src/com/android/providers/contacts/SynchronousProfileProvider.java
+++ b/tests/src/com/android/providers/contacts/SynchronousProfileProvider.java
@@ -35,7 +35,7 @@
@Override
protected ProfileDatabaseHelper getDatabaseHelper(final Context context) {
if (mDbHelper == null) {
- mDbHelper = new ProfileDatabaseHelper(context);
+ mDbHelper = ProfileDatabaseHelper.getNewInstanceForTest(context);
}
return mDbHelper;
}