This is an automated email from the ASF dual-hosted git repository.

elharo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-wagon.git


The following commit(s) were added to refs/heads/master by this push:
     new 0ae52a99 Handle no parent directory case (#179)
0ae52a99 is described below

commit 0ae52a99cf3df4a1b48c1410ac0b3e04ceb2db76
Author: Elliotte Rusty Harold <[email protected]>
AuthorDate: Sat Jun 21 20:04:31 2025 +0000

    Handle no parent directory case (#179)
    
    * Handle no parent directory case
    * move test
---
 .../src/main/java/org/apache/maven/wagon/AbstractWagon.java | 13 +++++++------
 .../test/java/org/apache/maven/wagon/AbstractWagonTest.java |  5 +++++
 2 files changed, 12 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..50ee7d4c 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,18 @@ 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);
-            }
+        destinationDirectory.mkdirs();
+        if (!destinationDirectory.exists()) {
+            throw new TransferFailedException(
+                    "Specified destination directory cannot be created: " + 
destinationDirectory);
         }
     }
 
diff --git 
a/wagon-provider-api/src/test/java/org/apache/maven/wagon/AbstractWagonTest.java
 
b/wagon-provider-api/src/test/java/org/apache/maven/wagon/AbstractWagonTest.java
index 1ae8a6ea..aff719ff 100644
--- 
a/wagon-provider-api/src/test/java/org/apache/maven/wagon/AbstractWagonTest.java
+++ 
b/wagon-provider-api/src/test/java/org/apache/maven/wagon/AbstractWagonTest.java
@@ -95,6 +95,11 @@ protected void setUp() throws Exception {
         wagon.addTransferListener(transferListener);
     }
 
+    // https://github.com/apache/maven-wagon/issues/178
+    public void testCreateParentDirectories() throws TransferFailedException {
+        wagon.createParentDirectories(new File("foo")); // file has no parent
+    }
+
     public void testCalculationOfTransferBufferSize() {
         // 1 KiB -> Default buffer size (4 KiB)
         assertEquals(4096, wagon.getBufferCapacityForTransfer(1024L));

Reply via email to