Author: markt Date: Fri May 17 11:32:28 2013 New Revision: 1483743 URL: http://svn.apache.org/r1483743 Log: Add warning about 'hidden' DIRs in the appBase
Modified: tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties 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=1483743&r1=1483742&r2=1483743&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java (original) +++ tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java Fri May 17 11:32:28 2013 @@ -677,13 +677,34 @@ public class HostConfig if (files[i].equalsIgnoreCase("WEB-INF")) continue; File war = new File(appBase, files[i]); - if (files[i].toLowerCase(Locale.ENGLISH).endsWith(".war") && war.isFile() - && !invalidWars.contains(files[i]) ) { + if (files[i].toLowerCase(Locale.ENGLISH).endsWith(".war") && + war.isFile() && !invalidWars.contains(files[i]) ) { ContextName cn = new ContextName(files[i]); - if (isServiced(cn.getName()) || deploymentExists(cn.getName())) + if (isServiced(cn.getName())) { continue; + } + if (deploymentExists(cn.getName())) { + DeployedApplication app = deployed.get(cn.getName()); + if (!unpackWARs && app != null) { + // Need to check for a directory that should not be + // there + File dir = new File(appBase, cn.getBaseName()); + if (dir.exists()) { + if (!app.loggedDirWarning) { + log.warn(sm.getString( + "hostConfig.deployWar.hiddenDir", + dir.getAbsoluteFile(), + war.getAbsoluteFile())); + app.loggedDirWarning = true; + } + } else { + app.loggedDirWarning = false; + } + } + continue; + } // Check for WARs with /../ /./ or similar sequences in the name if (!validateContextPath(appBase, cn.getBaseName())) { @@ -1612,6 +1633,14 @@ public class HostConfig * Instant where the application was last put in service. */ public long timestamp = System.currentTimeMillis(); + + /** + * In some circumstances, such as when unpackWARs is true, a directory + * may be added to the appBase that is ignored. This flag indicates that + * the user has been warned so that the warning is not logged on every + * run of the auto deployer. + */ + public boolean loggedDirWarning = false; } private static class DeployDescriptor implements Runnable { Modified: tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties?rev=1483743&r1=1483742&r2=1483743&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties (original) +++ tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties Fri May 17 11:32:28 2013 @@ -92,6 +92,7 @@ hostConfig.deployDir.error=Error deployi hostConfig.deployDir.threaded.error=Error waiting for multi-thread deployment of directories to completehostConfig.deployWar=Deploying web application archive {0} hostConfig.deployWar=Deploying web application archive {0} hostConfig.deployWar.error=Error deploying web application archive {0} +hostConfig.deployWar.hiddenDir=The directory [{0}] will be ignored because the WAR [{1}] takes priority and unpackWARs is false hostConfig.deployWar.threaded.error=Error waiting for multi-thread deployment of WAR files to complete hostConfig.deploy.error=Exception while deploying web application directory {0} hostConfig.deploying=Deploying discovered web applications --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org