------------------------------------------------------------ revno: 408 fixes bug: https://launchpad.net/bugs/937991 committer: Michal Hruby <michal....@gmail.com> branch nick: bluebird timestamp: Tue 2012-02-21 19:17:16 +0100 message: Make sure we clean up transactions properly modified: src/engine.vala src/sql.vala
-- lp:zeitgeist https://code.launchpad.net/~zeitgeist/zeitgeist/bluebird Your team Zeitgeist Framework Team is subscribed to branch lp:zeitgeist. To unsubscribe from this branch go to https://code.launchpad.net/~zeitgeist/zeitgeist/bluebird/+edit-subscription
=== modified file 'src/engine.vala' --- src/engine.vala 2012-02-10 13:35:02 +0000 +++ src/engine.vala 2012-02-21 18:17:16 +0000 @@ -72,13 +72,24 @@ extension_collection.call_pre_insert_events (events, sender); uint32[] event_ids = new uint32[events.length]; + EngineError? err = null; database.begin_transaction (); - for (int i = 0; i < events.length; ++i) - { - if (events[i] != null) - event_ids[i] = insert_event (events[i]); - } - database.end_transaction (); + try + { + for (int i = 0; i < events.length; ++i) + { + if (events[i] != null) + event_ids[i] = insert_event (events[i]); + } + database.end_transaction (); + } + catch (EngineError e) + { + err = e; + database.abort_transaction (); + } + if (err != null) throw err; + extension_collection.call_post_insert_events (events, sender); return event_ids; } === modified file 'src/sql.vala' --- src/sql.vala 2012-02-10 11:28:05 +0000 +++ src/sql.vala 2012-02-21 18:17:16 +0000 @@ -277,6 +277,12 @@ assert_query_success (rc, "Can't commit transaction"); } + public void abort_transaction () throws EngineError + { + int rc = database.exec ("ROLLBACK"); + assert_query_success (rc, "Can't rollback transaction"); + } + public void close () { // SQLite connection is implicitly closed upon destruction
_______________________________________________ Mailing list: https://launchpad.net/~zeitgeist Post to : zeitgeist@lists.launchpad.net Unsubscribe : https://launchpad.net/~zeitgeist More help : https://help.launchpad.net/ListHelp