You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2011/06/20 21:26:45 UTC
svn commit: r1137753 - in /tomcat/trunk:
java/org/apache/catalina/startup/ContextConfig.java
webapps/docs/changelog.xml
Author: markt
Date: Mon Jun 20 19:26:45 2011
New Revision: 1137753
URL: http://svn.apache.org/viewvc?rev=1137753&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=51395
Fix memory leak triggered when an application that includes a SAXParserFactory is the first web application to be loaded.
Modified:
tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java
tomcat/trunk/webapps/docs/changelog.xml
Modified: tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java?rev=1137753&r1=1137752&r2=1137753&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java Mon Jun 20 19:26:45 2011
@@ -229,6 +229,32 @@ public class ContextConfig
new LoginConfig("NONE", null, null, null);
+ static {
+ webDigesters[0] = DigesterFactory.newDigester(false, false, webRuleSet);
+ webDigesters[0].getParser();
+ webFragmentDigesters[0] = DigesterFactory.newDigester(false, false,
+ webFragmentRuleSet);
+ webFragmentDigesters[0].getParser();
+
+ webDigesters[1] = DigesterFactory.newDigester(true, false, webRuleSet);
+ webDigesters[1].getParser();
+ webFragmentDigesters[1] = DigesterFactory.newDigester(true, false,
+ webFragmentRuleSet);
+ webFragmentDigesters[1].getParser();
+
+ webDigesters[2] = DigesterFactory.newDigester(false, true, webRuleSet);
+ webDigesters[2].getParser();
+ webFragmentDigesters[2] = DigesterFactory.newDigester(false, true,
+ webFragmentRuleSet);
+ webFragmentDigesters[2].getParser();
+
+ webDigesters[3] = DigesterFactory.newDigester(true, true, webRuleSet);
+ webDigesters[3].getParser();
+ webFragmentDigesters[3] = DigesterFactory.newDigester(true, true,
+ webFragmentRuleSet);
+ webFragmentDigesters[3].getParser();
+ }
+
// ------------------------------------------------------------- Properties
@@ -475,46 +501,22 @@ public class ContextConfig
* Create (if necessary) and return a Digester configured to process the
* web application deployment descriptor (web.xml).
*/
- public void createWebXmlDigester(boolean namespaceAware,
+ protected void createWebXmlDigester(boolean namespaceAware,
boolean validation) {
if (!namespaceAware && !validation) {
- if (webDigesters[0] == null) {
- webDigesters[0] = DigesterFactory.newDigester(validation,
- namespaceAware, webRuleSet);
- webFragmentDigesters[0] = DigesterFactory.newDigester(validation,
- namespaceAware, webFragmentRuleSet);
- }
webDigester = webDigesters[0];
webFragmentDigester = webFragmentDigesters[0];
} else if (!namespaceAware && validation) {
- if (webDigesters[1] == null) {
- webDigesters[1] = DigesterFactory.newDigester(validation,
- namespaceAware, webRuleSet);
- webFragmentDigesters[1] = DigesterFactory.newDigester(validation,
- namespaceAware, webFragmentRuleSet);
- }
webDigester = webDigesters[1];
webFragmentDigester = webFragmentDigesters[1];
} else if (namespaceAware && !validation) {
- if (webDigesters[2] == null) {
- webDigesters[2] = DigesterFactory.newDigester(validation,
- namespaceAware, webRuleSet);
- webFragmentDigesters[2] = DigesterFactory.newDigester(validation,
- namespaceAware, webFragmentRuleSet);
- }
webDigester = webDigesters[2];
webFragmentDigester = webFragmentDigesters[2];
} else {
- if (webDigesters[3] == null) {
- webDigesters[3] = DigesterFactory.newDigester(validation,
- namespaceAware, webRuleSet);
- webFragmentDigesters[3] = DigesterFactory.newDigester(validation,
- namespaceAware, webFragmentRuleSet);
- }
webDigester = webDigesters[3];
webFragmentDigester = webFragmentDigesters[3];
}
Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1137753&r1=1137752&r2=1137753&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Mon Jun 20 19:26:45 2011
@@ -85,6 +85,11 @@
include leading zeros and formatting any parameters present.
(kolinko/markt)
</fix>
+ <fix>
+ <bug>51395</bug>: Fix memory leak triggered when an application that
+ includes a SAXParserFactory is the first web application to be loaded.
+ (markt)
+ </fix>
</changelog>
</subsection>
<subsection name="Coyote">
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org