diff --git a/common/src/main/java/ctbrec/Config.java b/common/src/main/java/ctbrec/Config.java index 3b54e0f8..75f5bf63 100644 --- a/common/src/main/java/ctbrec/Config.java +++ b/common/src/main/java/ctbrec/Config.java @@ -90,6 +90,10 @@ public class Config { } else { src = new File(configDirectory, previousVersion.toString()); } + if (!src.exists()) { + // new installation + return; + } if (!Objects.equals(previousVersion, currentVersion)) { LOG.debug("Version update {} -> {}", previousVersion, currentVersion); LOG.debug("Copying config from {} to {}", src, target); @@ -98,11 +102,16 @@ public class Config { } private Version getPreviousVersion(File configDirectory) { - Optional previousVersion = Arrays.stream(configDirectory.listFiles((dir, name) -> name.matches("\\d+\\.\\d+\\.\\d+"))) - .map(File::getName) - .map(Version::of) - .max(Comparator.naturalOrder()); - return previousVersion.orElse(Version.of("4.7.5")); + File[] versionDirectories = configDirectory.listFiles((dir, name) -> name.matches("\\d+\\.\\d+\\.\\d+")); + if (versionDirectories != null) { + Optional previousVersion = Arrays.stream(versionDirectories) + .map(File::getName) + .map(Version::of) + .max(Comparator.naturalOrder()); + return previousVersion.orElse(Version.of("4.7.5")); + } else { + return Version.of("4.7.5"); + } } private void load() throws IOException {