diff options
author | Kenny Root <kenny@the-b.org> | 2015-09-07 12:38:53 -0700 |
---|---|---|
committer | Kenny Root <kenny@the-b.org> | 2015-09-07 12:38:53 -0700 |
commit | 1505987f9d090829e63cee3b6f60b2d8605701c0 (patch) | |
tree | c53fce9708bf9beb700f1b08974c48b209ce08ef /app/src/main/java/org/connectbot/util | |
parent | f70fef25cbb10fc358598816870305400bb4d17b (diff) | |
download | connectbot-1505987f9d090829e63cee3b6f60b2d8605701c0.tar.gz connectbot-1505987f9d090829e63cee3b6f60b2d8605701c0.tar.bz2 connectbot-1505987f9d090829e63cee3b6f60b2d8605701c0.zip |
Wrap pubkey database writes in transactions
Diffstat (limited to 'app/src/main/java/org/connectbot/util')
-rw-r--r-- | app/src/main/java/org/connectbot/util/PubkeyDatabase.java | 35 |
1 files changed, 25 insertions, 10 deletions
diff --git a/app/src/main/java/org/connectbot/util/PubkeyDatabase.java b/app/src/main/java/org/connectbot/util/PubkeyDatabase.java index 3423f4b..a8f8175 100644 --- a/app/src/main/java/org/connectbot/util/PubkeyDatabase.java +++ b/app/src/main/java/org/connectbot/util/PubkeyDatabase.java @@ -102,7 +102,13 @@ public class PubkeyDatabase extends RobustSQLiteOpenHelper { hostdb.stopUsingPubkey(pubkey.getId()); SQLiteDatabase db = getWritableDatabase(); - db.delete(TABLE_PUBKEYS, "_id = ?", new String[] { Long.toString(pubkey.getId()) }); + db.beginTransaction(); + try { + db.delete(TABLE_PUBKEYS, "_id = ?", new String[] {Long.toString(pubkey.getId())}); + db.setTransactionSuccessful(); + } finally { + db.endTransaction(); + } } /** @@ -301,17 +307,26 @@ public class PubkeyDatabase extends RobustSQLiteOpenHelper { ContentValues values = pubkey.getValues(); - if (pubkey.getId() > 0) { - values.remove("_id"); - if (db.update(TABLE_PUBKEYS, values, "_id = ?", new String[] { String.valueOf(pubkey.getId()) }) > 0) - success = true; - } + db.beginTransaction(); + try { + if (pubkey.getId() > 0) { + values.remove("_id"); + if (db.update(TABLE_PUBKEYS, values, "_id = ?", new String[] {String.valueOf(pubkey.getId())}) > 0) + success = true; + } - if (!success) { - long id = db.insert(TABLE_PUBKEYS, null, pubkey.getValues()); - pubkey.setId(id); - } + if (!success) { + long id = db.insert(TABLE_PUBKEYS, null, pubkey.getValues()); + if (id != -1) { + // TODO add some error handling here? + pubkey.setId(id); + } + } + db.setTransactionSuccessful(); + } finally { + db.endTransaction(); + } return pubkey; } } |