Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / android_webview / java / src / org / chromium / android_webview / HttpAuthDatabase.java
index 6e65e06..8102e1f 100644 (file)
@@ -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);
                 }