Author: markt
Date: Thu Mar  6 16:19:44 2014
New Revision: 1574943

URL: http://svn.apache.org/r1574943
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=56223
Throw an IllegalStateException if a call is made to 
ServletContext.setInitParameter() after the ServletContext has been initialized

Modified:
    tomcat/trunk/java/org/apache/catalina/core/ApplicationContext.java
    tomcat/trunk/java/org/apache/catalina/core/LocalStrings.properties
    tomcat/trunk/test/org/apache/catalina/core/TestApplicationContext.java
    tomcat/trunk/webapps/docs/changelog.xml

Modified: tomcat/trunk/java/org/apache/catalina/core/ApplicationContext.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/ApplicationContext.java?rev=1574943&r1=1574942&r2=1574943&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/ApplicationContext.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/core/ApplicationContext.java Thu Mar  
6 16:19:44 2014
@@ -1200,6 +1200,12 @@ public class ApplicationContext
 
     @Override
     public boolean setInitParameter(String name, String value) {
+        if (!context.getState().equals(LifecycleState.STARTING_PREP)) {
+            throw new IllegalStateException(
+                    sm.getString("applicationContext.setInitParam.ise",
+                            getContextPath()));
+        }
+
         return parameters.putIfAbsent(name, value) == null;
     }
 

Modified: tomcat/trunk/java/org/apache/catalina/core/LocalStrings.properties
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/LocalStrings.properties?rev=1574943&r1=1574942&r2=1574943&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/LocalStrings.properties 
(original)
+++ tomcat/trunk/java/org/apache/catalina/core/LocalStrings.properties Thu Mar  
6 16:19:44 2014
@@ -29,6 +29,7 @@ applicationContext.resourcePaths.iae=Pat
 applicationContext.role.iae=An individual role to declare for context [{0}] 
may not be null nor the empty string
 applicationContext.roles.iae=Array of roles to declare for context [{0}] 
cannot be null
 applicationContext.setAttribute.namenull=Name cannot be null
+applicationContext.setInitParam.ise=Initialization parameters can not be set 
after the context has been initialized
 applicationContext.setSessionTracking.ise=The session tracking modes for 
context {0} cannot be set whilst the context is running
 applicationContext.setSessionTracking.iae.invalid=The session tracking mode 
{0} requested for context {1} is not supported by that context
 applicationContext.setSessionTracking.iae.ssl=The session tracking modes 
requested for context {0} included SSL and at least one other mode. SSL may not 
be configured with other modes.

Modified: tomcat/trunk/test/org/apache/catalina/core/TestApplicationContext.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/core/TestApplicationContext.java?rev=1574943&r1=1574942&r2=1574943&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/core/TestApplicationContext.java 
(original)
+++ tomcat/trunk/test/org/apache/catalina/core/TestApplicationContext.java Thu 
Mar  6 16:19:44 2014
@@ -157,4 +157,11 @@ public class TestApplicationContext exte
 
         return standardContext.getServletContext();
     }
+
+
+    @Test(expected = IllegalStateException.class)
+    public void testSetInitParameter() throws Exception {
+        getTomcatInstance().start();
+        getServletContext().setInitParameter("name", "value");
+    }
 }

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1574943&r1=1574942&r2=1574943&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Thu Mar  6 16:19:44 2014
@@ -128,6 +128,11 @@
         <bug>56199</bug>: Restore validateXml option for JspC which determines
         if web.xml will be parsed with a validating parser. (markt)
       </fix>
+      <fix>
+        <bug>56223</bug>: Throw an <code>IllegalStateException</code> if a call
+        is made to <code>ServletContext.setInitParameter()</code> after the
+        ServletContext has been initialized. (markt)
+      </fix>
     </changelog>
   </subsection>
   <subsection name="WebSocket">



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

Reply via email to