Author: markt Date: Tue Mar 3 17:55:04 2015 New Revision: 1663754 URL: http://svn.apache.org/r1663754 Log: Follow-up to r1663715 - use correct method to get the last modified time of the WAR - set the directory last modified time after it has been updated - test the correct files to see if an expanded context.xml file should be used
Modified: tomcat/trunk/java/org/apache/catalina/startup/ExpandWar.java tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java Modified: tomcat/trunk/java/org/apache/catalina/startup/ExpandWar.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/ExpandWar.java?rev=1663754&r1=1663753&r2=1663754&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/startup/ExpandWar.java (original) +++ tomcat/trunk/java/org/apache/catalina/startup/ExpandWar.java Tue Mar 3 17:55:04 2015 @@ -84,7 +84,7 @@ public class ExpandWar { try (JarFile jarFile = juc.getJarFile()) { // Get the last modified time for the WAR - long warLastModified = juc.getContentLengthLong(); + long warLastModified = juc.getLastModified(); // Check to see of the WAR has been expanded previously if (docBase.exists()) { @@ -99,9 +99,8 @@ public class ExpandWar { return (docBase.getAbsolutePath()); } - log.info(sm.getString("expandWar.deleteOld", docBase)); - // WAR must have been modified. Remove expanded directory. + log.info(sm.getString("expandWar.deleteOld", docBase)); if (!delete(docBase)) { throw new IOException(sm.getString("expandWar.deleteFailed", docBase)); } @@ -112,10 +111,6 @@ public class ExpandWar { throw new IOException(sm.getString("expandWar.createFailed", docBase)); } - // Align the last modified time of the directory with the WAR so - // changes to the WAR while Tomcat is stopped can be detected - docBase.setLastModified(warLastModified); - // Expand the WAR into the new document base directory String canonicalDocBasePrefix = docBase.getCanonicalPath(); if (!canonicalDocBasePrefix.endsWith(File.separator)) { @@ -161,6 +156,10 @@ public class ExpandWar { expandedFile.setLastModified(lastModified); } } + + // Align the last modified time of the directory with the WAR so + // changes to the WAR while Tomcat is stopped can be detected + docBase.setLastModified(warLastModified); } success = true; } catch (IOException e) { 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=1663754&r1=1663753&r2=1663754&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java (original) +++ tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java Tue Mar 3 17:55:04 2015 @@ -793,7 +793,10 @@ public class HostConfig // should only be used if the directory is not out of date and // unpackWARs is true. Note the code below may apply further limits boolean useXml = false; - if (xml.exists() && unpackWARs && xml.lastModified() == war.lastModified()) { + File expandedDir = new File(host.getAppBaseFile(), cn.getBaseName()); + // If the xml file exists then expandedDir must exists so no need to + // test that here + if (xml.exists() && unpackWARs && expandedDir.lastModified() == war.lastModified()) { useXml = true; } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org