From: markt Date: Mon, 14 Feb 2011 19:05:25 +0000 (+0000) Subject: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=50700 X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=95e9c8a127cd2bc64d822ce6a38c71fa81e0e521;p=tomcat7.0 Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=50700 Ensure that the override attribute of context parameters is correctly followed. git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1070609 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/java/org/apache/catalina/core/StandardContext.java b/java/org/apache/catalina/core/StandardContext.java index e6598cfdb..2091b1100 100644 --- a/java/org/apache/catalina/core/StandardContext.java +++ b/java/org/apache/catalina/core/StandardContext.java @@ -5270,24 +5270,30 @@ public class StandardContext extends ContainerBase * the application parameters appropriately. */ private void mergeParameters() { - ServletContext sc = getServletContext(); + Map mergedParams = new HashMap(); String names[] = findParameters(); for (int i = 0; i < names.length; i++) { - sc.setInitParameter(names[i], findParameter(names[i])); + mergedParams.put(names[i], findParameter(names[i])); } ApplicationParameter params[] = findApplicationParameters(); for (int i = 0; i < params.length; i++) { if (params[i].getOverride()) { - if (sc.getInitParameter(params[i].getName()) == null) { - sc.setInitParameter(params[i].getName(), + if (mergedParams.get(params[i].getName()) == null) { + mergedParams.put(params[i].getName(), params[i].getValue()); } } else { - sc.setInitParameter(params[i].getName(), params[i].getValue()); + mergedParams.put(params[i].getName(), params[i].getValue()); } } + + ServletContext sc = getServletContext(); + for (Map.Entry entry : mergedParams.entrySet()) { + sc.setInitParameter(entry.getKey(), entry.getValue()); + } + } diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 2b3b36d08..2dc466c54 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -64,6 +64,10 @@ the expected state transitions. (markt) + 50700: Ensure that the override attribute of context + parameters is correctly followed. (markt) + + 50721: Correctly handle URL decoding where the URL ends in %nn. Patch provided by Christof Marti. (markt)