diff --git a/src/libsync/owncloudpropagator.cpp b/src/libsync/owncloudpropagator.cpp index c93e65dff..ae98423bd 100644 --- a/src/libsync/owncloudpropagator.cpp +++ b/src/libsync/owncloudpropagator.cpp @@ -834,10 +834,13 @@ void PropagatorCompositeJob::slotSubJobFinished(SyncFileItem::Status status) ASSERT(i >= 0); _runningJobs.remove(i); + // Any sub job error will cause the whole composite to fail. This is important + // for knowing whether to update the etag in PropagateDirectory, for example. if (status == SyncFileItem::FatalError || status == SyncFileItem::NormalError || status == SyncFileItem::SoftError - || status == SyncFileItem::DetailError) { + || status == SyncFileItem::DetailError + || status == SyncFileItem::BlacklistedError) { _hasError = status; } diff --git a/src/libsync/syncfileitem.h b/src/libsync/syncfileitem.h index 244f77a6d..461627ba3 100644 --- a/src/libsync/syncfileitem.h +++ b/src/libsync/syncfileitem.h @@ -75,10 +75,9 @@ public: /** For files whose errors were blacklisted * * If an file is blacklisted due to an error it isn't even reattempted. These - * errors should appear in the issues tab, but not on the account settings and - * should not cause the sync run to fail. + * errors should appear in the issues tab but should be silent otherwise. * - * A DetailError that doesn't cause sync failure. + * A SoftError caused by blacklisting. */ BlacklistedError };