Fix regression in the PropagateDirectory::slotSubJobsFinished.
authorallexzander <blackslayer4@gmail.com>
Fri, 5 Aug 2022 08:31:26 +0000 (11:31 +0300)
committerMatthieu Gallien <matthieu_gallien@yahoo.fr>
Sat, 17 Sep 2022 07:47:15 +0000 (09:47 +0200)
Signed-off-by: allexzander <blackslayer4@gmail.com>
src/libsync/owncloudpropagator.cpp

index 9ed5662d373ee35247cda974326b74c5282cf52e..aba3f437f300b412db3c5fb5e6eb902cffc0935d 100644 (file)
@@ -1196,11 +1196,15 @@ void PropagateDirectory::slotSubJobsFinished(SyncFileItem::Status status)
     if (!_item->isEmpty() && status == SyncFileItem::Success) {
         // If a directory is renamed, recursively delete any stale items
         // that may still exist below the old path.
-        if (_item->_instruction == CSYNC_INSTRUCTION_RENAME
-            && _item->_originalFile != _item->_renameTarget) {
-
+        if (_item->_instruction == CSYNC_INSTRUCTION_RENAME && _item->_originalFile != _item->_renameTarget) {
             if (!propagator()->_journal->deleteFileRecord(_item->_originalFile, true)) {
                 qCWarning(lcDirectory) << "could not delete file from local DB" << _item->_originalFile;
+                _state = Finished;
+                status = _item->_status = SyncFileItem::FatalError;
+                _item->_errorString = tr("could not delete file %1 from local DB").arg(_item->_originalFile);
+                qCInfo(lcPropagator) << "PropagateDirectory::slotSubJobsFinished"
+                                     << "emit finished" << status;
+                emit finished(status);
                 return;
             }
         }