Author: markt
Date: Mon Feb 14 19:05:25 2011
New Revision: 1070609

URL: http://svn.apache.org/viewvc?rev=1070609&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=50700
Ensure that the override attribute of context parameters is correctly followed.

Modified:
    tomcat/trunk/java/org/apache/catalina/core/StandardContext.java
    tomcat/trunk/webapps/docs/changelog.xml

Modified: tomcat/trunk/java/org/apache/catalina/core/StandardContext.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardContext.java?rev=1070609&r1=1070608&r2=1070609&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/StandardContext.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/StandardContext.java Mon Feb 14 
19:05:25 2011
@@ -5270,24 +5270,30 @@ public class StandardContext extends Con
      * the application parameters appropriately.
      */
     private void mergeParameters() {
-        ServletContext sc = getServletContext();
+        Map<String,String> mergedParams = new HashMap<String,String>();
         
         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<String,String> entry : mergedParams.entrySet()) {
+            sc.setInitParameter(entry.getKey(), entry.getValue());
+        }
+
     }
 
 

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1070609&r1=1070608&r2=1070609&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Mon Feb 14 19:05:25 2011
@@ -64,6 +64,10 @@
         the expected state transitions. (markt)
       </add>
       <fix>
+        <bug>50700</bug>: Ensure that the override attribute of context
+        parameters is correctly followed. (markt)
+      </fix>
+      <fix>
         <bug>50721</bug>: Correctly handle URL decoding where the URL ends in
         %nn. Patch provided by Christof Marti. (markt)
       </fix>



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to