Skip to content

Commit 6a457ca

Browse files
author
Phu Tran
committed
Fixed Fatal Exception: android.database.sqlite.SQLiteDatabaseLockedException
1 parent 7eedf07 commit 6a457ca

File tree

3 files changed

+16
-4
lines changed

3 files changed

+16
-4
lines changed

aws-android-sdk-appsync/src/main/java/com/amazonaws/mobileconnectors/appsync/AWSAppSyncClient.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -891,7 +891,7 @@ private void clearDeltaSyncStore() {
891891
Log.d(TAG, "Clearing the delta sync store.");
892892

893893
AWSAppSyncDeltaSyncSqlHelper awsAppSyncDeltaSyncSqlHelper =
894-
new AWSAppSyncDeltaSyncSqlHelper(
894+
AWSAppSyncDeltaSyncSqlHelper.create(
895895
applicationContext,
896896
deltaSyncSqlStoreName);
897897
new AWSAppSyncDeltaSyncDBOperations(awsAppSyncDeltaSyncSqlHelper)

aws-android-sdk-appsync/src/main/java/com/amazonaws/mobileconnectors/appsync/AWSAppSyncDeltaSync.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ private void initializeIfRequired() {
115115
if (awsAppSyncDeltaSyncSqlHelper == null) {
116116
//Setup up the local store
117117
Log.d(TAG, "Initializing the database");
118-
awsAppSyncDeltaSyncSqlHelper = new AWSAppSyncDeltaSyncSqlHelper(mContext,
118+
awsAppSyncDeltaSyncSqlHelper = AWSAppSyncDeltaSyncSqlHelper.create(mContext,
119119
awsAppSyncClient.deltaSyncSqlStoreName);
120120
}
121121

aws-android-sdk-appsync/src/main/java/com/amazonaws/mobileconnectors/appsync/AWSAppSyncDeltaSyncSqlHelper.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
import android.database.sqlite.SQLiteDatabase;
1313
import android.database.sqlite.SQLiteOpenHelper;
1414

15+
import java.util.Hashtable;
16+
1517
/*
1618
Delta Sync Database Helper
1719
*/
@@ -25,6 +27,8 @@ class AWSAppSyncDeltaSyncSqlHelper extends SQLiteOpenHelper {
2527
private static final String DATABASE_NAME = "appsync_deltasync_db";
2628
private static final int DATABASE_VERSION = 1;
2729

30+
private static Hashtable<String, AWSAppSyncDeltaSyncSqlHelper> sInstances = new Hashtable<>();
31+
2832
//Database Create Statement
2933
private static final String DATABASE_CREATE = String.format(
3034
"create table %s( %s integer primary key autoincrement, %s text not null, %s Integer);",
@@ -35,15 +39,23 @@ class AWSAppSyncDeltaSyncSqlHelper extends SQLiteOpenHelper {
3539

3640

3741
//Constructor
38-
public AWSAppSyncDeltaSyncSqlHelper(Context context) {
42+
private AWSAppSyncDeltaSyncSqlHelper(Context context) {
3943
super(context, DATABASE_NAME, null, DATABASE_VERSION);
4044
}
4145

4246
//Constructor
43-
public AWSAppSyncDeltaSyncSqlHelper(Context context, String databaseName) {
47+
private AWSAppSyncDeltaSyncSqlHelper(Context context, String databaseName) {
4448
super(context, databaseName, null, DATABASE_VERSION);
4549
}
4650

51+
synchronized public static AWSAppSyncDeltaSyncSqlHelper create(Context context, String databaseName) {
52+
AWSAppSyncDeltaSyncSqlHelper instance = sInstances.get(databaseName);
53+
if (instance == null) {
54+
instance = new AWSAppSyncDeltaSyncSqlHelper(context);
55+
sInstances.put(databaseName, instance);
56+
}
57+
return instance;
58+
}
4759

4860
@Override
4961
/*

0 commit comments

Comments
 (0)