fixed. Thanks for review.
On 7 November 2013 17:56, Konstantin Kolinko <knst.koli...@gmail.com> wrote: > 2013/11/6 <ol...@apache.org>: >> Author: olamy >> Date: Wed Nov 6 01:31:25 2013 >> New Revision: 1539209 >> >> URL: http://svn.apache.org/r1539209 >> Log: >> [MTOMCAT-211] The .war file is not extracted from executable war >> >> Modified: >> >> tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java >> >> Modified: >> tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java >> URL: >> http://svn.apache.org/viewvc/tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java?rev=1539209&r1=1539208&r2=1539209&view=diff >> ============================================================================== >> --- >> tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java >> (original) >> +++ >> tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java >> Wed Nov 6 01:31:25 2013 >> @@ -560,28 +560,35 @@ public class Tomcat7Runner >> 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() ); >> + } > > The above mkdirs() call returns "false" if those directories already exist. > > Can webappWarPerContext.entrySet() contain several wars? If so then I > expect the code to throw the above exception when processing the > second war. > > In Tomcat such code is usually written like this: > quoting from o.a.c.core.StandardContext > [[[ > if (!dir.mkdirs() && !dir.isDirectory()) { > log.warn(sm.getString("standardContext.workCreateFail", dir, > getName())); > } > ]]] > >> + >> + expand( inputStream, expandFile ); >> + >> } >> finally >> { >> > > Best regards, > Konstantin Kolinko > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org > For additional commands, e-mail: dev-h...@tomcat.apache.org > -- Olivier Lamy Ecetera: http://ecetera.com.au http://twitter.com/olamy | http://linkedin.com/in/olamy --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org