diff options
Diffstat (limited to 'core/java/android/webkit/WebViewDatabaseClassic.java')
-rw-r--r-- | core/java/android/webkit/WebViewDatabaseClassic.java | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/core/java/android/webkit/WebViewDatabaseClassic.java b/core/java/android/webkit/WebViewDatabaseClassic.java index c804b90..be01028 100644 --- a/core/java/android/webkit/WebViewDatabaseClassic.java +++ b/core/java/android/webkit/WebViewDatabaseClassic.java @@ -52,6 +52,7 @@ final class WebViewDatabaseClassic extends WebViewDatabase { // implemented for b/5265606. private static WebViewDatabaseClassic sInstance = null; + private static final Object sInstanceLock = new Object(); private static SQLiteDatabase sDatabase = null; @@ -99,7 +100,7 @@ final class WebViewDatabaseClassic extends WebViewDatabase { // Initially true until the background thread completes. private boolean mInitialized = false; - WebViewDatabaseClassic(final Context context) { + private WebViewDatabaseClassic(final Context context) { JniUtil.setContext(context); new Thread() { @Override @@ -111,11 +112,13 @@ final class WebViewDatabaseClassic extends WebViewDatabase { // Singleton only, use getInstance() } - public static synchronized WebViewDatabaseClassic getInstance(Context context) { - if (sInstance == null) { - sInstance = new WebViewDatabaseClassic(context); + public static WebViewDatabaseClassic getInstance(Context context) { + synchronized (sInstanceLock) { + if (sInstance == null) { + sInstance = new WebViewDatabaseClassic(context); + } + return sInstance; } - return sInstance; } private synchronized void init(Context context) { |