| Index: android_webview/java/src/org/chromium/android_webview/HttpAuthDatabase.java
|
| diff --git a/android_webview/java/src/org/chromium/android_webview/HttpAuthDatabase.java b/android_webview/java/src/org/chromium/android_webview/HttpAuthDatabase.java
|
| index 6e65e060a7033ecacafdebf90f8060e191e987fe..8102e1fc959bde04f4dd025010a35b4b53cd9fe9 100644
|
| --- a/android_webview/java/src/org/chromium/android_webview/HttpAuthDatabase.java
|
| +++ b/android_webview/java/src/org/chromium/android_webview/HttpAuthDatabase.java
|
| @@ -52,6 +52,8 @@ public class HttpAuthDatabase {
|
| */
|
| private boolean mInitialized = false;
|
|
|
| + private final Object mInitializedLock = new Object();
|
| +
|
| /**
|
| * Create an instance of HttpAuthDatabase for the named file, and kick-off background
|
| * initialization of that database.
|
| @@ -74,16 +76,18 @@ public class HttpAuthDatabase {
|
| * @param context the Context to use for opening the database
|
| * @param databaseFile Name of the file to be initialized.
|
| */
|
| - private synchronized void initOnBackgroundThread(Context context, String databaseFile) {
|
| - if (mInitialized) {
|
| - return;
|
| - }
|
| + private void initOnBackgroundThread(Context context, String databaseFile) {
|
| + synchronized (mInitializedLock) {
|
| + if (mInitialized) {
|
| + return;
|
| + }
|
|
|
| - initDatabase(context, databaseFile);
|
| + initDatabase(context, databaseFile);
|
|
|
| - // Thread done, notify.
|
| - mInitialized = true;
|
| - notifyAll();
|
| + // Thread done, notify.
|
| + mInitialized = true;
|
| + mInitializedLock.notifyAll();
|
| + }
|
| }
|
|
|
| /**
|
| @@ -138,10 +142,10 @@ public class HttpAuthDatabase {
|
| * @return true if the database was initialized, false otherwise
|
| */
|
| private boolean waitForInit() {
|
| - synchronized (this) {
|
| + synchronized (mInitializedLock) {
|
| while (!mInitialized) {
|
| try {
|
| - wait();
|
| + mInitializedLock.wait();
|
| } catch (InterruptedException e) {
|
| Log.e(LOGTAG, "Caught exception while checking initialization", e);
|
| }
|
|
|