diff --git a/src/libsync/owncloudpropagator.cpp b/src/libsync/owncloudpropagator.cpp index bb23e2843..9ca0756d9 100644 --- a/src/libsync/owncloudpropagator.cpp +++ b/src/libsync/owncloudpropagator.cpp @@ -217,9 +217,12 @@ static void blacklistUpdate(SyncJournalDb *journal, SyncFileItem &item) void PropagateItemJob::done(SyncFileItem::Status statusArg, const QString &errorString) { + // Duplicate calls to done() are a logic error + ENFORCE(_state != Finished); + _state = Finished; + _item->_status = statusArg; - _state = Finished; if (_item->_isRestoration) { if (_item->_status == SyncFileItem::Success || _item->_status == SyncFileItem::Conflict) { @@ -829,7 +832,7 @@ void PropagatorCompositeJob::slotSubJobFinished(SyncFileItem::Status status) // Delete the job and remove it from our list of jobs. subJob->deleteLater(); int i = _runningJobs.indexOf(subJob); - ASSERT(i >= 0); + ENFORCE(i >= 0); // should only happen if this function is called more than once _runningJobs.remove(i); // Any sub job error will cause the whole composite to fail. This is important