2011/10/14  <ma...@apache.org>:
> Author: markt
> Date: Thu Oct 13 22:28:22 2011
> New Revision: 1183142
>
> URL: http://svn.apache.org/viewvc?rev=1183142&view=rev
> Log:
> Cache the result of parsing global and host defaults for web.xml to speed up 
> web application start.
> This change reduces applciation start time by ~15% with trunk and the TCK web 
> apps
>
> Modified:
>    tomcat/trunk/java/org/apache/catalina/startup/Constants.java
>    tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java
>    tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties
>
> Modified: tomcat/trunk/java/org/apache/catalina/startup/Constants.java
> URL: 
> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/Constants.java?rev=1183142&r1=1183141&r2=1183142&view=diff
> ==============================================================================
> --- tomcat/trunk/java/org/apache/catalina/startup/Constants.java (original)
> +++ tomcat/trunk/java/org/apache/catalina/startup/Constants.java Thu Oct 13 
> 22:28:22 2011
> @@ -34,7 +34,7 @@ public final class Constants {
>     public static final String ApplicationContextXml = "META-INF/context.xml";
>     public static final String ApplicationWebXml = "/WEB-INF/web.xml";
>     public static final String DefaultContextXml = "conf/context.xml";
> -    public static final String DefaultWebXml = "conf/web.xml";
> +    public static final String DefaultWebXml = "web.xml";
>     public static final String HostContextXml = "context.xml.default";
>     public static final String HostWebXml = "web.xml.default";

1. Regarding the above change to DefaultWebXml  constant:

Looking where it is used:
1) it is returned by ContextConfig#getDefaultWebXml()
2) ContextConfig#getGlobalWebXml() calls
  a) ContextConfig#getDefaultWebXml()
  b) ((StandardContext) context).getDefaultWebXml()

so that the value could be overwritten in StandardContext.

Javadoc for StandardContext#setDefaultContextXml() says that the value
is relative to catalina.base.  This is now broken.


2. Later in ContextConfig#getGlobalWebXml() :
+        return new File(basePath, defaultWebXml);
and elsewhere
+        return new File(basePath, resourceName);

The above does not work if defaultWebXml is absolute. The simple jsp below
prints C:\workspace\C:\workspace  on JDK 6u26 on WinXP:
<%= new java.io.File("C:\\workspace", "C:\\workspace") %>

So absolute paths for StandardContext defaultWebXml setting are broken as well.

Best regards,
Konstantin Kolinko

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to