diff --git a/src/main/java/org/qortal/repository/Bootstrap.java b/src/main/java/org/qortal/repository/Bootstrap.java index d68e206e..e3629cd1 100644 --- a/src/main/java/org/qortal/repository/Bootstrap.java +++ b/src/main/java/org/qortal/repository/Bootstrap.java @@ -273,18 +273,20 @@ public class Bootstrap { ); } - LOGGER.info("Compressing..."); - String compressedOutputPath = String.format("%s%s", Settings.getInstance().getBootstrapFilenamePrefix(), this.getFilename()); + LOGGER.info("Preparing output path..."); + Path compressedOutputPath = this.getBootstrapOutputPath(); try { - Files.delete(Paths.get(compressedOutputPath)); + Files.delete(compressedOutputPath); } catch (NoSuchFileException e) { // Doesn't exist, so no need to delete } - SevenZ.compress(compressedOutputPath, outputPath.toFile()); + + LOGGER.info("Compressing..."); + SevenZ.compress(compressedOutputPath.toString(), outputPath.toFile()); // Return the path to the compressed bootstrap file - Path finalPath = Paths.get(compressedOutputPath); - return finalPath.toAbsolutePath().toString(); + LOGGER.info("Bootstrap creation complete. Output file: {}", compressedOutputPath.toAbsolutePath().toString()); + return compressedOutputPath.toAbsolutePath().toString(); } catch (TimeoutException e) { @@ -493,6 +495,13 @@ public class Bootstrap { } } + public Path getBootstrapOutputPath() { + Path initialPath = Paths.get(Settings.getInstance().getRepositoryPath()).toAbsolutePath().getParent(); + String compressedFilename = String.format("%s%s", Settings.getInstance().getBootstrapFilenamePrefix(), this.getFilename()); + Path compressedOutputPath = Paths.get(initialPath.toString(), compressedFilename); + return compressedOutputPath; + } + private void updateStatus(String text) { LOGGER.info(text); SplashFrame.getInstance().updateStatus(text); diff --git a/src/test/java/org/qortal/test/BootstrapTests.java b/src/test/java/org/qortal/test/BootstrapTests.java index cc29794c..bc1512e2 100644 --- a/src/test/java/org/qortal/test/BootstrapTests.java +++ b/src/test/java/org/qortal/test/BootstrapTests.java @@ -68,7 +68,6 @@ public class BootstrapTests extends Common { @Test public void testCreateAndImportBootstrap() throws DataException, InterruptedException, TransformationException, IOException { - Path bootstrapPath = Paths.get(String.format("%s%s", Settings.getInstance().getBootstrapFilenamePrefix(), "bootstrap-archive.7z")); Path archivePath = Paths.get(Settings.getInstance().getRepositoryPath(), "archive", "2-900.dat"); BlockData block1000; byte[] originalArchiveContents; @@ -76,10 +75,13 @@ public class BootstrapTests extends Common { try (final Repository repository = RepositoryManager.getRepository()) { this.buildDummyBlockchain(repository); + Bootstrap bootstrap = new Bootstrap(repository); + Path bootstrapPath = bootstrap.getBootstrapOutputPath(); + // Ensure the compressed bootstrap doesn't exist assertFalse(Files.exists(bootstrapPath)); - Bootstrap bootstrap = new Bootstrap(repository); + // Create bootstrap bootstrap.create(); // Ensure the compressed bootstrap exists