From 72a2f20ca4c68fdbc509c6fed51f187b3f75f607 Mon Sep 17 00:00:00 2001 From: sijun-yang Date: Sat, 12 Sep 2026 21:29:31 +0900 Subject: [PATCH 1/2] Improve null safety See gh-1838 Signed-off-by: sijun-yang --- .../contributor/MultipleResourcesProjectContributor.java | 5 ++++- .../contributor/SingleResourceProjectContributor.java | 5 ++++- .../main/java/io/spring/initializr/metadata/Repository.java | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/initializr-generator/src/main/java/io/spring/initializr/generator/project/contributor/MultipleResourcesProjectContributor.java b/initializr-generator/src/main/java/io/spring/initializr/generator/project/contributor/MultipleResourcesProjectContributor.java index c3437dae52..b16ef44a35 100644 --- a/initializr-generator/src/main/java/io/spring/initializr/generator/project/contributor/MultipleResourcesProjectContributor.java +++ b/initializr-generator/src/main/java/io/spring/initializr/generator/project/contributor/MultipleResourcesProjectContributor.java @@ -66,7 +66,10 @@ public void contribute(Path projectRoot) throws IOException { String filename = extractFileName(root.getURI(), resource.getURI()); Path output = projectRoot.resolve(filename); if (!Files.exists(output)) { - Files.createDirectories(output.getParent()); + Path parent = output.getParent(); + if (parent != null) { + Files.createDirectories(parent); + } Files.createFile(output); } FileCopyUtils.copy(resource.getInputStream(), Files.newOutputStream(output)); diff --git a/initializr-generator/src/main/java/io/spring/initializr/generator/project/contributor/SingleResourceProjectContributor.java b/initializr-generator/src/main/java/io/spring/initializr/generator/project/contributor/SingleResourceProjectContributor.java index d64c497847..4e601664d4 100644 --- a/initializr-generator/src/main/java/io/spring/initializr/generator/project/contributor/SingleResourceProjectContributor.java +++ b/initializr-generator/src/main/java/io/spring/initializr/generator/project/contributor/SingleResourceProjectContributor.java @@ -57,7 +57,10 @@ public SingleResourceProjectContributor(String relativePath, String resourcePatt public void contribute(Path projectRoot) throws IOException { Path output = projectRoot.resolve(this.relativePath); if (!Files.exists(output)) { - Files.createDirectories(output.getParent()); + Path parent = output.getParent(); + if (parent != null) { + Files.createDirectories(parent); + } Files.createFile(output); } Resource resource = this.resolver.getResource(this.resourcePattern); diff --git a/initializr-metadata/src/main/java/io/spring/initializr/metadata/Repository.java b/initializr-metadata/src/main/java/io/spring/initializr/metadata/Repository.java index b15eb1e41e..c650f8740b 100644 --- a/initializr-metadata/src/main/java/io/spring/initializr/metadata/Repository.java +++ b/initializr-metadata/src/main/java/io/spring/initializr/metadata/Repository.java @@ -84,7 +84,7 @@ public void setSnapshotsEnabled(boolean snapshotsEnabled) { } @Override - public boolean equals(Object obj) { + public boolean equals(@Nullable Object obj) { if (this == obj) { return true; } From f8382418a7528d98c3382fbb7d73c4726a187f16 Mon Sep 17 00:00:00 2001 From: Moritz Halbritter Date: Tue, 15 Sep 2026 11:27:21 +0200 Subject: [PATCH 2/2] Polish "Improve null safety" See gh-1838 --- .../properties/AbstractApplicationPropertiesContributor.java | 5 ++++- .../generator/language/java/JavaSourceCodeWriter.java | 5 ++++- .../generator/language/kotlin/KotlinSourceCodeWriter.java | 5 ++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/initializr-generator-spring/src/main/java/io/spring/initializr/generator/spring/properties/AbstractApplicationPropertiesContributor.java b/initializr-generator-spring/src/main/java/io/spring/initializr/generator/spring/properties/AbstractApplicationPropertiesContributor.java index 99dc5c14db..e4eabee3de 100644 --- a/initializr-generator-spring/src/main/java/io/spring/initializr/generator/spring/properties/AbstractApplicationPropertiesContributor.java +++ b/initializr-generator-spring/src/main/java/io/spring/initializr/generator/spring/properties/AbstractApplicationPropertiesContributor.java @@ -94,7 +94,10 @@ private void writeFile(SourceStructure sourceStructure, ProfileName profile, App throws IOException { Path output = resolveOutputFile(sourceStructure, profile); if (!Files.exists(output)) { - Files.createDirectories(output.getParent()); + Path parent = output.getParent(); + if (parent != null) { + Files.createDirectories(parent); + } Files.createFile(output); } try (PrintWriter writer = new PrintWriter(Files.newOutputStream(output, StandardOpenOption.APPEND), false, diff --git a/initializr-generator/src/main/java/io/spring/initializr/generator/language/java/JavaSourceCodeWriter.java b/initializr-generator/src/main/java/io/spring/initializr/generator/language/java/JavaSourceCodeWriter.java index 6c75a1af23..ae01219719 100644 --- a/initializr-generator/src/main/java/io/spring/initializr/generator/language/java/JavaSourceCodeWriter.java +++ b/initializr-generator/src/main/java/io/spring/initializr/generator/language/java/JavaSourceCodeWriter.java @@ -107,7 +107,10 @@ public void writeTo(SourceStructure structure, JavaSourceCode sourceCode) throws private void writeTo(SourceStructure structure, JavaCompilationUnit compilationUnit) throws IOException { Path output = structure.createSourceFile(compilationUnit.getPackageName(), compilationUnit.getName()); - Files.createDirectories(output.getParent()); + Path parent = output.getParent(); + if (parent != null) { + Files.createDirectories(parent); + } try (IndentingWriter writer = this.indentingWriterFactory.createIndentingWriter("java", Files.newBufferedWriter(output))) { writer.println("package " + compilationUnit.getPackageName() + ";"); diff --git a/initializr-generator/src/main/java/io/spring/initializr/generator/language/kotlin/KotlinSourceCodeWriter.java b/initializr-generator/src/main/java/io/spring/initializr/generator/language/kotlin/KotlinSourceCodeWriter.java index f22cdd9fa7..d13d156f6b 100644 --- a/initializr-generator/src/main/java/io/spring/initializr/generator/language/kotlin/KotlinSourceCodeWriter.java +++ b/initializr-generator/src/main/java/io/spring/initializr/generator/language/kotlin/KotlinSourceCodeWriter.java @@ -83,7 +83,10 @@ public void writeTo(SourceStructure structure, KotlinSourceCode sourceCode) thro private void writeTo(SourceStructure structure, KotlinCompilationUnit compilationUnit) throws IOException { Path output = structure.createSourceFile(compilationUnit.getPackageName(), compilationUnit.getName()); - Files.createDirectories(output.getParent()); + Path parent = output.getParent(); + if (parent != null) { + Files.createDirectories(parent); + } try (IndentingWriter writer = this.indentingWriterFactory.createIndentingWriter("kotlin", Files.newBufferedWriter(output))) { writer.println("package " + escapeKotlinKeywords(compilationUnit.getPackageName()));