diff --git a/src/main/java/org/codehaus/plexus/archiver/AbstractArchiver.java b/src/main/java/org/codehaus/plexus/archiver/AbstractArchiver.java index eae95e0c1..e99155296 100755 --- a/src/main/java/org/codehaus/plexus/archiver/AbstractArchiver.java +++ b/src/main/java/org/codehaus/plexus/archiver/AbstractArchiver.java @@ -669,7 +669,7 @@ public void setDestFile( final File destFile ) { this.destFile = destFile; - if ( destFile != null ) + if ( destFile != null && destFile.getParentFile() != null ) { destFile.getParentFile().mkdirs(); } diff --git a/src/test/java/org/codehaus/plexus/archiver/AbstractArchiverTest.java b/src/test/java/org/codehaus/plexus/archiver/AbstractArchiverTest.java index c6ce19e3f..92c52a1d7 100644 --- a/src/test/java/org/codehaus/plexus/archiver/AbstractArchiverTest.java +++ b/src/test/java/org/codehaus/plexus/archiver/AbstractArchiverTest.java @@ -1,5 +1,6 @@ package org.codehaus.plexus.archiver; +import java.io.File; import java.io.IOException; import junit.framework.TestCase; @@ -89,4 +90,8 @@ public void testOverridesCanBeReset() assertEquals( -1, archiver.getOverrideDirectoryMode() ); } + public void testSetDestFileInTheWorkingDir() { + archiver.setDestFile( new File( "archive" ) ); + } + }