From bb482047b1bd100170de522d9d0663c2be5fad4f Mon Sep 17 00:00:00 2001 From: Taloth Saldono Date: Fri, 9 Oct 2015 00:00:28 +0200 Subject: [PATCH] Fixed removing partials before trying to copy files. --- .../DiskTests/DiskTransferServiceFixture.cs | 17 +++++++++++++++-- src/NzbDrone.Common/Disk/DiskTransferService.cs | 6 ++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/NzbDrone.Common.Test/DiskTests/DiskTransferServiceFixture.cs b/src/NzbDrone.Common.Test/DiskTests/DiskTransferServiceFixture.cs index 3b51dd97a..1b30efbc7 100644 --- a/src/NzbDrone.Common.Test/DiskTests/DiskTransferServiceFixture.cs +++ b/src/NzbDrone.Common.Test/DiskTests/DiskTransferServiceFixture.cs @@ -378,7 +378,7 @@ namespace NzbDrone.Common.Test.DiskTests } [Test] - public void mode_transactional_should_delete_old_backup() + public void mode_transactional_should_delete_old_backup_on_move() { Subject.VerificationMode = DiskTransferVerificationMode.Transactional; @@ -393,7 +393,7 @@ namespace NzbDrone.Common.Test.DiskTests } [Test] - public void mode_transactional_should_delete_old_partial() + public void mode_transactional_should_delete_old_partial_on_move() { Subject.VerificationMode = DiskTransferVerificationMode.Transactional; @@ -407,6 +407,19 @@ namespace NzbDrone.Common.Test.DiskTests .Verify(v => v.DeleteFile(_tempTargetPath), Times.Once()); } + [Test] + public void mode_transactional_should_delete_old_partial_on_copy() + { + Subject.VerificationMode = DiskTransferVerificationMode.Transactional; + + WithExistingFile(_tempTargetPath); + + Subject.TransferFile(_sourcePath, _targetPath, TransferMode.Copy); + + Mocker.GetMock() + .Verify(v => v.DeleteFile(_tempTargetPath), Times.Once()); + } + [Test] public void mode_transactional_should_hardlink_before_move() { diff --git a/src/NzbDrone.Common/Disk/DiskTransferService.cs b/src/NzbDrone.Common/Disk/DiskTransferService.cs index 0a2e20218..130bed7f5 100644 --- a/src/NzbDrone.Common/Disk/DiskTransferService.cs +++ b/src/NzbDrone.Common/Disk/DiskTransferService.cs @@ -316,6 +316,12 @@ namespace NzbDrone.Common.Disk var tempTargetPath = targetPath + ".partial~"; + if (_diskProvider.FileExists(tempTargetPath)) + { + _logger.Trace("Removing old partial."); + _diskProvider.DeleteFile(tempTargetPath); + } + try { for (var i = 0; i <= RetryCount; i++)