diff --git a/src/main/java/org/qortal/controller/Controller.java b/src/main/java/org/qortal/controller/Controller.java index 829f0b00..f351cfbe 100644 --- a/src/main/java/org/qortal/controller/Controller.java +++ b/src/main/java/org/qortal/controller/Controller.java @@ -1,5 +1,6 @@ package org.qortal.controller; +import java.io.File; import java.io.IOException; import java.io.InputStream; import java.security.SecureRandom; @@ -99,7 +100,7 @@ public class Controller extends Thread { private static final long MISBEHAVIOUR_COOLOFF = 10 * 60 * 1000L; // ms private static final int MAX_BLOCKCHAIN_TIP_AGE = 5; // blocks private static final Object shutdownLock = new Object(); - private static final String repositoryUrlTemplate = "jdbc:hsqldb:file:%s/blockchain;create=true;hsqldb.full_log_replay=true"; + private static final String repositoryUrlTemplate = "jdbc:hsqldb:file:%s" + File.separator + "blockchain;create=true;hsqldb.full_log_replay=true"; private static final long ARBITRARY_REQUEST_TIMEOUT = 5 * 1000L; // ms private static final long REPOSITORY_BACKUP_PERIOD = 123 * 60 * 1000L; // ms private static final long NTP_PRE_SYNC_CHECK_PERIOD = 5 * 1000L; // ms diff --git a/src/main/java/org/qortal/repository/hsqldb/HSQLDBRepository.java b/src/main/java/org/qortal/repository/hsqldb/HSQLDBRepository.java index b0359218..da3bc5fb 100644 --- a/src/main/java/org/qortal/repository/hsqldb/HSQLDBRepository.java +++ b/src/main/java/org/qortal/repository/hsqldb/HSQLDBRepository.java @@ -337,8 +337,8 @@ public class HSQLDBRepository implements Repository { Path oldRepoFilePath = oldRepoPath.getFileName(); // Try to open backup. We need to remove "create=true" and insert "backup" dir before final filename. - String backupUrlTemplate = "jdbc:hsqldb:file:%s/backup/%s;create=false;hsqldb.full_log_replay=true"; - return String.format(backupUrlTemplate, oldRepoDirPath.toString(), oldRepoFilePath.toString()); + String backupUrlTemplate = "jdbc:hsqldb:file:%s%sbackup%s%s;create=false;hsqldb.full_log_replay=true"; + return String.format(backupUrlTemplate, oldRepoDirPath.toString(), File.separator, File.separator, oldRepoFilePath.toString()); } /* package */ static void attemptRecovery(String connectionUrl) throws DataException { @@ -361,8 +361,8 @@ public class HSQLDBRepository implements Repository { .forEach(File::delete); try (Statement stmt = connection.createStatement()) { - // Now "backup" the backup back to original repository location (the parent) - // NOTE: trailing / is OK because HSQLDB checks for both / and O/S-specific separator + // Now "backup" the backup back to original repository location (the parent). + // NOTE: trailing / is OK because HSQLDB checks for both / and O/S-specific separator. // textdb.allow_full_path connection property is required to be able to use '..' stmt.execute("BACKUP DATABASE TO '../' BLOCKING AS FILES"); } catch (SQLException e) {