[MTOMCAT-211] The .war file is not extracted from executable war
git-svn-id: https://svn.apache.org/repos/asf/tomcat/maven-plugin/trunk@1539209 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java b/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java
index 4174acf..050fd49 100644
--- a/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java
+++ b/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java
@@ -560,28 +560,35 @@
InputStream inputStream = null;
try
{
+ File expandFile = null;
inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream( entry.getValue() );
if ( !useServerXml() )
{
if ( entry.getKey().equals( "/" ) )
{
- File expandFile = new File( extractDirectory, "webapps/ROOT.war" );
- debugMessage( "expand to file:" + expandFile.getPath() );
- expand( inputStream, expandFile );
+ expandFile = new File( extractDirectory, "webapps/ROOT.war" );
}
else
{
- File expandFile = new File( extractDirectory, "webapps/" + entry.getValue() );
- debugMessage( "expand to file:" + expandFile.getPath() );
- expand( inputStream, expandFile );
+ expandFile = new File( extractDirectory, "webapps/" + entry.getValue() );
}
}
else
{
- File expandFile = new File( extractDirectory, "webapps/" + entry.getValue() );
- debugMessage( "expand to file:" + expandFile.getPath() );
- expand( inputStream, new File( extractDirectory, "webapps/" + entry.getValue() ) );
+ expandFile = new File( extractDirectory, "webapps/" + entry.getValue() );
}
+
+ debugMessage( "expand to file:" + expandFile.getPath() );
+
+ // MTOMCAT-211 ensure parent directories created
+
+ if ( !expandFile.getParentFile().mkdirs() )
+ {
+ throw new Exception( "FATAL: impossible to create directories:" + expandFile.getParentFile() );
+ }
+
+ expand( inputStream, expandFile );
+
}
finally
{