Skip to content

Commit 156e267

Browse files
authored
Prevent NPE in tryCreateParentDirectories (#40)
* Prevent NPE in tryCreateParentDirectories * Fix tryCreateParentDirectories test case
1 parent 531285f commit 156e267

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

configlib-yaml/src/main/java/de/exlll/configlib/YamlConfigurationStore.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,9 @@ public void save(T configuration, Path configurationFile) {
8989
yamlFileWriter.writeYaml(dumpedYaml, extractedCommentNodes);
9090
}
9191

92-
private void tryCreateParentDirectories(Path configurationFile) {
92+
void tryCreateParentDirectories(Path configurationFile) {
9393
Path parent = configurationFile.getParent();
94-
if (!Files.exists(parent) && properties.createParentDirectories()) {
94+
if (properties.createParentDirectories() && parent != null && !Files.exists(parent)) {
9595
try {
9696
Files.createDirectories(parent);
9797
} catch (IOException e) {

configlib-yaml/src/test/java/de/exlll/configlib/YamlConfigurationStoreTest.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -557,4 +557,19 @@ void updateResolvesEnvVarsIfFileDoesOrDoesNotExist(boolean createFile) {
557557
assertThat(config.s, is("S2"));
558558
assertThat(config.i, is(10));
559559
}
560+
561+
@ParameterizedTest
562+
@ValueSource(booleans = {true, false})
563+
void tryCreateParentDirectoriesDoesNotThrowIfParentIsNull(boolean createParentDirectories) {
564+
YamlConfigurationProperties properties = YamlConfigurationProperties.newBuilder()
565+
.createParentDirectories(createParentDirectories)
566+
.build();
567+
YamlConfigurationStore<A> store = new YamlConfigurationStore<>(
568+
A.class,
569+
properties
570+
);
571+
572+
Path path = fs.getPath("config.yml");
573+
assertDoesNotThrow(() -> store.tryCreateParentDirectories(path));
574+
}
560575
}

0 commit comments

Comments
 (0)