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