diff --git a/application/src/main/java/run/halo/app/migration/impl/MigrationServiceImpl.java b/application/src/main/java/run/halo/app/migration/impl/MigrationServiceImpl.java index 27bb87214..9e3a668ba 100644 --- a/application/src/main/java/run/halo/app/migration/impl/MigrationServiceImpl.java +++ b/application/src/main/java/run/halo/app/migration/impl/MigrationServiceImpl.java @@ -26,6 +26,7 @@ import org.springframework.core.io.Resource; import org.springframework.core.io.buffer.DataBuffer; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; import org.springframework.web.server.ServerWebInputException; import reactor.core.Exceptions; import reactor.core.publisher.Flux; @@ -145,7 +146,8 @@ public class MigrationServiceImpl implements MigrationService { public Mono cleanup(Backup backup) { return Mono.create(sink -> { var status = backup.getStatus(); - if (status == null || status.getFilename() == null) { + if (status == null || !StringUtils.hasText(status.getFilename())) { + sink.success(); return; } var filename = status.getFilename(); diff --git a/application/src/test/java/run/halo/app/migration/impl/MigrationServiceImplTest.java b/application/src/test/java/run/halo/app/migration/impl/MigrationServiceImplTest.java index 1bbac7df3..808ae0c65 100644 --- a/application/src/test/java/run/halo/app/migration/impl/MigrationServiceImplTest.java +++ b/application/src/test/java/run/halo/app/migration/impl/MigrationServiceImplTest.java @@ -153,6 +153,15 @@ class MigrationServiceImplTest { assertTrue(Files.notExists(backupFile)); } + @Test + void cleanupBackupWithNoFilename() { + var backup = createSucceededBackup("fake-backup", null); + StepVerifier.create(migrationService.cleanup(backup)) + .verifyComplete(); + verify(haloProperties, never()).getWorkDir(); + verify(backupRoot, never()).get(); + } + @Test void downloadBackupTest() throws IOException { var backupFile = tempDir.resolve("workdir").resolve("backups").resolve("backup.zip");