This is an automated email from the ASF dual-hosted git repository. elharo pushed a commit to branch 178 in repository https://gitbox.apache.org/repos/asf/maven-wagon.git
commit 7ce3a011fba8b1401d19ce88b87267fba5327958 Author: Elliotte Rusty Harold <elh...@ibiblio.org> AuthorDate: Sun Jun 15 09:01:16 2025 -0400 Handle no parent directory case --- .../src/main/java/org/apache/maven/wagon/AbstractWagon.java | 12 ++++++------ .../test/java/org/apache/maven/wagon/StreamWagonTest.java | 5 +++++ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/wagon-provider-api/src/main/java/org/apache/maven/wagon/AbstractWagon.java b/wagon-provider-api/src/main/java/org/apache/maven/wagon/AbstractWagon.java index 10a5acaa..ee8e95ad 100644 --- a/wagon-provider-api/src/main/java/org/apache/maven/wagon/AbstractWagon.java +++ b/wagon-provider-api/src/main/java/org/apache/maven/wagon/AbstractWagon.java @@ -228,17 +228,17 @@ public void disconnect() throws ConnectionException { protected void createParentDirectories(File destination) throws TransferFailedException { File destinationDirectory = destination.getParentFile(); + if (destinationDirectory == null) { + return; + } try { destinationDirectory = destinationDirectory.getCanonicalFile(); } catch (IOException e) { // not essential to have a canonical file } - if (destinationDirectory != null && !destinationDirectory.exists()) { - destinationDirectory.mkdirs(); - if (!destinationDirectory.exists()) { - throw new TransferFailedException( - "Specified destination directory cannot be created: " + destinationDirectory); - } + if (!destinationDirectory.mkdirs()) { + throw new TransferFailedException( + "Specified destination directory cannot be created: " + destinationDirectory); } } diff --git a/wagon-provider-api/src/test/java/org/apache/maven/wagon/StreamWagonTest.java b/wagon-provider-api/src/test/java/org/apache/maven/wagon/StreamWagonTest.java index b4b73572..2d873e22 100644 --- a/wagon-provider-api/src/test/java/org/apache/maven/wagon/StreamWagonTest.java +++ b/wagon-provider-api/src/test/java/org/apache/maven/wagon/StreamWagonTest.java @@ -49,6 +49,11 @@ protected void openConnectionInternal() throws ConnectionException, Authenticati private Repository repository = new Repository("id", "url"); + public void testCreateParentDirectories() throws TransferFailedException { + TestWagon wagon = new TestWagon(); + wagon.createParentDirectories(new File("foo")); // file has no parent + } + public void testNullInputStream() throws Exception { StreamingWagon wagon = new TestWagon() { public void fillInputData(InputData inputData) {