From 4abaee7736bb2ecdbe2d5c357120910130dcf4a3 Mon Sep 17 00:00:00 2001 From: Christian Kamm Date: Tue, 6 Sep 2016 10:42:59 +0200 Subject: [PATCH] Recall: Copy instead of move recalled file #5150 That was an unintentional change in 2662203fb7277d5d1a57cef556279f8cd3b974f5 Also expand the test case to cover this. (cherry picked from commit af9c4d0e2fe1a42e1faf14779ca5ef1088bd1314) --- csync/tests/ownCloud/t_recall.pl | 4 ++++ src/libsync/propagatedownload.cpp | 5 +++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/csync/tests/ownCloud/t_recall.pl b/csync/tests/ownCloud/t_recall.pl index 008cad8fd3..244618cf85 100755 --- a/csync/tests/ownCloud/t_recall.pl +++ b/csync/tests/ownCloud/t_recall.pl @@ -64,6 +64,10 @@ csync(); assert( -e glob(localDir().'dir/file2_.sys.admin#recall#-*.dat' ) ); assert( -e glob(localDir().'dir/file3_.sys.admin#recall#-*.dat' ) ); +# verify that the original files still exist +assert( -e glob(localDir().'dir/file2.dat' ) ); +assert( -e glob(localDir().'dir/file3.dat' ) ); + #Remove the recall file unlink(localDir() . ".sys.admin#recall#"); diff --git a/src/libsync/propagatedownload.cpp b/src/libsync/propagatedownload.cpp index 306788388b..27a214d75f 100644 --- a/src/libsync/propagatedownload.cpp +++ b/src/libsync/propagatedownload.cpp @@ -638,8 +638,9 @@ static void handleRecallFile(const QString &fn) QString rpath = makeRecallFileName(fpath); qDebug() << "Copy recall file: " << fpath << " -> " << rpath; - QString error; - FileSystem::uncheckedRenameReplace(fpath, rpath, &error); + // Remove the target first, QFile::copy will not overwrite it. + FileSystem::remove(rpath); + QFile::copy(fpath, rpath); } }