aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/org/connectbot/util
diff options
context:
space:
mode:
authorKenny Root <kenny@the-b.org>2015-09-07 12:38:53 -0700
committerKenny Root <kenny@the-b.org>2015-09-07 12:38:53 -0700
commit1505987f9d090829e63cee3b6f60b2d8605701c0 (patch)
treec53fce9708bf9beb700f1b08974c48b209ce08ef /app/src/main/java/org/connectbot/util
parentf70fef25cbb10fc358598816870305400bb4d17b (diff)
downloadconnectbot-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.java35
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;
}
}