From 41a9a1c1b2328a4d2516ae6016323d31bc722c0d Mon Sep 17 00:00:00 2001 From: Marc Hermans Date: Sun, 24 Aug 2025 10:50:23 +0200 Subject: [PATCH 1/2] Ensure parent directories are created before writing files in FolderFileSink --- .../main/java/net/neoforged/jst/cli/io/FolderFileSink.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cli/src/main/java/net/neoforged/jst/cli/io/FolderFileSink.java b/cli/src/main/java/net/neoforged/jst/cli/io/FolderFileSink.java index 5c943cb..d26bf07 100644 --- a/cli/src/main/java/net/neoforged/jst/cli/io/FolderFileSink.java +++ b/cli/src/main/java/net/neoforged/jst/cli/io/FolderFileSink.java @@ -17,6 +17,10 @@ public void putDirectory(String relativePath) throws IOException { @Override public void putFile(String relativePath, FileTime lastModified, byte[] content) throws IOException { var targetPath = path.resolve(relativePath); + + if (!Files.isDirectory(targetPath.getParent())) + Files.createDirectories(targetPath.getParent()); + Files.write(targetPath, content); Files.setLastModifiedTime(targetPath, lastModified); } From f4dc6c34a94ae7d971a03acddabb60deb144af1a Mon Sep 17 00:00:00 2001 From: Marc Hermans Date: Sun, 24 Aug 2025 11:26:12 +0200 Subject: [PATCH 2/2] Double-check the nullability --- cli/src/main/java/net/neoforged/jst/cli/io/FolderFileSink.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/src/main/java/net/neoforged/jst/cli/io/FolderFileSink.java b/cli/src/main/java/net/neoforged/jst/cli/io/FolderFileSink.java index d26bf07..054b93a 100644 --- a/cli/src/main/java/net/neoforged/jst/cli/io/FolderFileSink.java +++ b/cli/src/main/java/net/neoforged/jst/cli/io/FolderFileSink.java @@ -18,7 +18,7 @@ public void putDirectory(String relativePath) throws IOException { public void putFile(String relativePath, FileTime lastModified, byte[] content) throws IOException { var targetPath = path.resolve(relativePath); - if (!Files.isDirectory(targetPath.getParent())) + if (targetPath.getParent() != null && !Files.isDirectory(targetPath.getParent())) Files.createDirectories(targetPath.getParent()); Files.write(targetPath, content);