From 031b6d74e7e026f4e75cca25fcc06de6bec33d5c Mon Sep 17 00:00:00 2001 From: Kenneth Skovhede Date: Sat, 31 Aug 2013 15:29:07 +0200 Subject: [PATCH] Prevent folder auto-create after an upload has succeeded --- Duplicati/Library/Main/BackendManager.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Duplicati/Library/Main/BackendManager.cs b/Duplicati/Library/Main/BackendManager.cs index 0a7e58f5a..503d6e6cd 100644 --- a/Duplicati/Library/Main/BackendManager.cs +++ b/Duplicati/Library/Main/BackendManager.cs @@ -372,6 +372,7 @@ namespace Duplicati.Library.Main private void ThreadRun() { + var uploadSuccess = false; while (!m_queue.Completed) { var item = m_queue.Dequeue(); @@ -392,12 +393,17 @@ namespace Duplicati.Library.Main if (m_backend == null) m_backend = DynamicLoader.BackendLoader.GetBackend(m_backendurl, m_options.RawOptions); + if (m_backend == null) + throw new Exception("Backend failed to re-load"); using(new Logging.Timer(string.Format("RemoteOperation{0}", item.Operation))) switch (item.Operation) { case OperationType.Put: DoPut(item); + // We do not auto create folders, + // because we know the folder exists + uploadSuccess = true; break; case OperationType.Get: DoGet(item); @@ -427,7 +433,7 @@ namespace Duplicati.Library.Main m_statwriter.SendEvent(item.BackendActionType, retries < m_options.NumberOfRetries ? BackendEventType.Retrying : BackendEventType.Failed, item.RemoteFilename, item.Size); bool recovered = false; - if (ex is Duplicati.Library.Interface.FolderMissingException && m_options.AutocreateFolders) + if (!uploadSuccess && ex is Duplicati.Library.Interface.FolderMissingException && m_options.AutocreateFolders) { try {