Browse Source

fixed pre closing database

Julien Clauter 9 years ago
parent
commit
dee31a540e

+ 13 - 5
src/de/tudarmstadt/informatik/hostage/persistence/HostageDBOpenHelper.java

@@ -319,12 +319,12 @@ public class HostageDBOpenHelper extends SQLiteOpenHelper {
             cursor.close();
         }
         {
-            ArrayList<SyncDevice> allDevices = this.getSyncDevices();
+            ArrayList<SyncDevice> allDevices = this.getSyncDevices(db);
             for (SyncDevice device : allDevices){
                 long sync_id = deviceIDmap.get(device.getDeviceID());
                 device.setHighest_attack_id(sync_id);
             }
-            this.updateSyncDevices(allDevices);
+            this.updateSyncDevices(allDevices, db);
         }
 
     }
@@ -947,6 +947,11 @@ public class HostageDBOpenHelper extends SQLiteOpenHelper {
 
     public void updateSyncDevices(ArrayList<SyncDevice> devices){
         SQLiteDatabase db = this.getReadableDatabase();
+        this.updateSyncDevices(devices, db);
+        db.close();
+    }
+
+    public void updateSyncDevices(ArrayList<SyncDevice> devices, SQLiteDatabase db){
         db.beginTransaction();
 
         try {
@@ -961,8 +966,6 @@ public class HostageDBOpenHelper extends SQLiteOpenHelper {
         } finally {
             db.endTransaction();
         }
-
-        db.close();
     }
 
     /**
@@ -1009,6 +1012,11 @@ public class HostageDBOpenHelper extends SQLiteOpenHelper {
      */
     public synchronized ArrayList<SyncDevice> getSyncDevices(){
         SQLiteDatabase db = this.getReadableDatabase();
+        ArrayList<SyncDevice> devices = this.getSyncDevices(db);
+        db.close();
+        return devices;
+    }
+    public synchronized ArrayList<SyncDevice> getSyncDevices(SQLiteDatabase db){
         ArrayList<SyncDevice> devices = new ArrayList<SyncDevice>();
 
         String query = "SELECT  * FROM " + SyncDeviceEntry.TABLE_NAME;
@@ -1021,7 +1029,7 @@ public class HostageDBOpenHelper extends SQLiteOpenHelper {
             } while (cursor.moveToNext());
         }
         cursor.close();
-        db.close();
+
         return devices;
     }