Refactor to prevent database locks

pull/14/head
Sam Bosley 12 years ago
parent fa87caffc8
commit abc66a7bb5

@ -263,15 +263,17 @@ public class DatabaseDao<TYPE extends AbstractModel> {
try { try {
result.set(op.makeChange()); result.set(op.makeChange());
if(result.get()) { if(result.get()) {
if (recordOutstanding) if (recordOutstanding && createOutstandingEntries(item.getId(), values)) // Create entries for setValues in outstanding table
createOutstandingEntries(item.getId(), values); // Create entries for setValues in outstanding table database.getDatabase().setTransactionSuccessful();
onModelUpdated(item);
item.markSaved();
} }
} finally { } finally {
if (recordOutstanding) // commit transaction if (recordOutstanding) // commit transaction
database.getDatabase().endTransaction(); database.getDatabase().endTransaction();
} }
if (result.get()) {
onModelUpdated(item);
item.markSaved();
}
return result.get(); return result.get();
} }
@ -346,7 +348,6 @@ public class DatabaseDao<TYPE extends AbstractModel> {
database.insert(outstandingTable.name, null, m.getSetValues()); database.insert(outstandingTable.name, null, m.getSetValues());
} }
} }
database.getDatabase().setTransactionSuccessful();
return true; return true;
} }

@ -102,7 +102,6 @@ public class MetadataDao extends DatabaseDao<Metadata> {
m.setValue(OutstandingEntry.COLUMN_STRING_PROPERTY, addedOrRemoved); m.setValue(OutstandingEntry.COLUMN_STRING_PROPERTY, addedOrRemoved);
m.setValue(OutstandingEntry.VALUE_STRING_PROPERTY, tagUuid); m.setValue(OutstandingEntry.VALUE_STRING_PROPERTY, tagUuid);
database.insert(outstandingTable.name, null, m.getSetValues()); database.insert(outstandingTable.name, null, m.getSetValues());
database.getDatabase().setTransactionSuccessful();
return true; return true;
} }

Loading…
Cancel
Save