From abc66a7bb57b34c17dc5237d85a9c6266a0a68e3 Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Tue, 22 Jan 2013 17:23:01 -0800 Subject: [PATCH] Refactor to prevent database locks --- api/src/com/todoroo/andlib/data/DatabaseDao.java | 11 ++++++----- astrid/src/com/todoroo/astrid/dao/MetadataDao.java | 1 - 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/api/src/com/todoroo/andlib/data/DatabaseDao.java b/api/src/com/todoroo/andlib/data/DatabaseDao.java index 3928dc89f..43fe0cdb0 100644 --- a/api/src/com/todoroo/andlib/data/DatabaseDao.java +++ b/api/src/com/todoroo/andlib/data/DatabaseDao.java @@ -263,15 +263,17 @@ public class DatabaseDao { try { result.set(op.makeChange()); if(result.get()) { - if (recordOutstanding) - createOutstandingEntries(item.getId(), values); // Create entries for setValues in outstanding table - onModelUpdated(item); - item.markSaved(); + if (recordOutstanding && createOutstandingEntries(item.getId(), values)) // Create entries for setValues in outstanding table + database.getDatabase().setTransactionSuccessful(); } } finally { if (recordOutstanding) // commit transaction database.getDatabase().endTransaction(); } + if (result.get()) { + onModelUpdated(item); + item.markSaved(); + } return result.get(); } @@ -346,7 +348,6 @@ public class DatabaseDao { database.insert(outstandingTable.name, null, m.getSetValues()); } } - database.getDatabase().setTransactionSuccessful(); return true; } diff --git a/astrid/src/com/todoroo/astrid/dao/MetadataDao.java b/astrid/src/com/todoroo/astrid/dao/MetadataDao.java index 9677793ef..18a01cd95 100644 --- a/astrid/src/com/todoroo/astrid/dao/MetadataDao.java +++ b/astrid/src/com/todoroo/astrid/dao/MetadataDao.java @@ -102,7 +102,6 @@ public class MetadataDao extends DatabaseDao { m.setValue(OutstandingEntry.COLUMN_STRING_PROPERTY, addedOrRemoved); m.setValue(OutstandingEntry.VALUE_STRING_PROPERTY, tagUuid); database.insert(outstandingTable.name, null, m.getSetValues()); - database.getDatabase().setTransactionSuccessful(); return true; }