Author: markt Date: Fri Mar 4 15:00:09 2016 New Revision: 1733602 URL: http://svn.apache.org/viewvc?rev=1733602&view=rev Log: When a Host is configured with an appBase that does not exist, create the appBase before trying to expand an external WAR file into it.
Modified: tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java tomcat/trunk/webapps/docs/changelog.xml Modified: tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java?rev=1733602&r1=1733601&r2=1733602&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java (original) +++ tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java Fri Mar 4 15:00:09 2016 @@ -278,6 +278,8 @@ public class HostConfig implements Lifec // Process the event that has occurred if (event.getType().equals(Lifecycle.PERIODIC_EVENT)) { check(); + } else if (event.getType().equals(Lifecycle.BEFORE_START_EVENT)) { + beforeStart(); } else if (event.getType().equals(Lifecycle.START_EVENT)) { start(); } else if (event.getType().equals(Lifecycle.STOP_EVENT)) { @@ -1508,6 +1510,18 @@ public class HostConfig implements Lifec } + public void beforeStart() { + if (host.getCreateDirs()) { + File[] dirs = new File[] {host.getAppBaseFile(),host.getConfigBaseFile()}; + for (int i=0; i<dirs.length; i++) { + if (!dirs[i].mkdirs() && !dirs[i].isDirectory()) { + log.error(sm.getString("hostConfig.createDirs",dirs[i])); + } + } + } + } + + /** * Process a "start" event for this Host. */ @@ -1526,15 +1540,6 @@ public class HostConfig implements Lifec log.error(sm.getString("hostConfig.jmx.register", oname), e); } - if (host.getCreateDirs()) { - File[] dirs = new File[] {host.getAppBaseFile(),host.getConfigBaseFile()}; - for (int i=0; i<dirs.length; i++) { - if (!dirs[i].mkdirs() && !dirs[i].isDirectory()) { - log.error(sm.getString("hostConfig.createDirs",dirs[i])); - } - } - } - if (!host.getAppBaseFile().isDirectory()) { log.error(sm.getString("hostConfig.appBase", host.getName(), host.getAppBaseFile().getPath())); Modified: tomcat/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1733602&r1=1733601&r2=1733602&view=diff ============================================================================== --- tomcat/trunk/webapps/docs/changelog.xml (original) +++ tomcat/trunk/webapps/docs/changelog.xml Fri Mar 4 15:00:09 2016 @@ -145,6 +145,11 @@ on non-Windows systems implemented in <code>catalina.sh</code> so it works correctly with Cygwin. Patch provided by Ed Randall. (markt) </fix> + <fix> + When a Host is configured with an appBase that does not exist, create + the appBase before trying to expand an external WAR file into it. + (markt) + </fix> </changelog> </subsection> <subsection name="Coyote"> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org