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) {

Reply via email to