diff --git a/syncany-lib/src/main/java/org/syncany/operations/up/UpOperation.java b/syncany-lib/src/main/java/org/syncany/operations/up/UpOperation.java index b99ca0149..13007af05 100644 --- a/syncany-lib/src/main/java/org/syncany/operations/up/UpOperation.java +++ b/syncany-lib/src/main/java/org/syncany/operations/up/UpOperation.java @@ -112,6 +112,9 @@ public UpOperationResult execute() throws Exception { logger.log(Level.INFO, "Running 'Sync up' at client " + config.getMachineName() + " ..."); logger.log(Level.INFO, "--------------------------------------------"); + // TODO [medium/high] Remove this and construct mechanism to resume uploads + transferManager.cleanTransactions(config.getMachineName()); + if (!checkPreconditions()) { return result; } diff --git a/syncany-lib/src/test/java/org/syncany/tests/operations/CleanupOperationTest.java b/syncany-lib/src/test/java/org/syncany/tests/operations/CleanupOperationTest.java index f2a67c6d9..34081d251 100644 --- a/syncany-lib/src/test/java/org/syncany/tests/operations/CleanupOperationTest.java +++ b/syncany-lib/src/test/java/org/syncany/tests/operations/CleanupOperationTest.java @@ -365,17 +365,12 @@ public void testCleanupAfterFailedUpOperation() throws Exception { // List of failing operations (regex) // Format: abs= rel= op= - "rel=[345].+upload.+multichunk" // << 3 retries! + "rel=[456].+upload.+multichunk" // << 3 retries! })); TestClient clientA = new TestClient("A", testConnection); TestClient clientB = new TestClient("B", testConnection); - CleanupOperationOptions removeOldCleanupOperationOptions = new CleanupOperationOptions(); - removeOldCleanupOperationOptions.setMergeRemoteFiles(false); - removeOldCleanupOperationOptions.setRemoveOldVersions(true); - removeOldCleanupOperationOptions.setKeepVersionsCount(2); - StatusOperationOptions forceChecksumStatusOperationOptions = new StatusOperationOptions(); forceChecksumStatusOperationOptions.setForceChecksum(true); @@ -400,7 +395,8 @@ public void testCleanupAfterFailedUpOperation() throws Exception { File repoActionsDir = new File(testConnection.getRepositoryPath() + "/actions"); assertTrue(operationFailed); - assertEquals(1, repoMultiChunkDir.listFiles().length); + // Atomic operation, so multichunk is not yet present at location + assertEquals(0, repoMultiChunkDir.listFiles().length); assertEquals(1, repoActionsDir.listFiles().length); // 2. Call A.cleanup(); this does not run, because there are local changes @@ -417,18 +413,17 @@ public void testCleanupAfterFailedUpOperation() throws Exception { // 5. Call 'up' again, this uploads previously crashed stuff, and then runs cleanup. // The cleanup then removes the old multichunk and the old action files. - File oldMultiChunkFile = repoMultiChunkDir.listFiles()[0]; + UpOperationResult secondUpResult = clientA.up(); assertEquals(UpResultCode.OK_CHANGES_UPLOADED, secondUpResult.getResultCode()); - assertEquals(3, repoMultiChunkDir.listFiles().length); + assertEquals(2, repoMultiChunkDir.listFiles().length); assertEquals(0, repoActionsDir.listFiles().length); - // 6. Call 'cleanup' manually + // 6. Call 'cleanup' manually (Nothing happens, since transaction was cleaned on second up) CleanupOperationResult cleanupOperationResult = clientA.cleanup(); - assertEquals(CleanupOperationResult.CleanupResultCode.OK, cleanupOperationResult.getResultCode()); - assertEquals(1, cleanupOperationResult.getRemovedMultiChunks().size()); - assertFalse(oldMultiChunkFile.exists()); + assertEquals(CleanupOperationResult.CleanupResultCode.OK_NOTHING_DONE, cleanupOperationResult.getResultCode()); + assertEquals(0, cleanupOperationResult.getRemovedMultiChunks().size()); assertEquals(0, repoActionsDir.listFiles().length); // Tear down diff --git a/syncany-lib/src/test/java/org/syncany/tests/plugins/unreliable_local/UploadInterruptedTest.java b/syncany-lib/src/test/java/org/syncany/tests/plugins/unreliable_local/UploadInterruptedTest.java index 5b498690f..5d4b699e1 100644 --- a/syncany-lib/src/test/java/org/syncany/tests/plugins/unreliable_local/UploadInterruptedTest.java +++ b/syncany-lib/src/test/java/org/syncany/tests/plugins/unreliable_local/UploadInterruptedTest.java @@ -44,7 +44,7 @@ public void testUnreliableUpload() throws Exception { // Format: abs= rel= op= // 1st upload (= multichunk) fails - "rel=[456] .+upload.+multichunk", // << 3 retries!! + "rel=[345] .+upload.+multichunk", // << 3 retries!! // Make fourth upload fail "rel=(8|9|10) .+upload" // << 3 retries!!