Author: kkolinko
Date: Sun Jul 13 13:02:45 2014
New Revision: 1610186

URL: http://svn.apache.org/r1610186
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=56658#c3
Fix regression that context reloads were broken.
Correct changelog entries.
Added:
    tomcat/trunk/test/org/apache/catalina/mapper/TestMapperWebapps.java   (with 
props)
Modified:
    tomcat/trunk/java/org/apache/catalina/mapper/Mapper.java
    tomcat/trunk/webapps/docs/changelog.xml

Modified: tomcat/trunk/java/org/apache/catalina/mapper/Mapper.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/mapper/Mapper.java?rev=1610186&r1=1610185&r2=1610186&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/mapper/Mapper.java (original)
+++ tomcat/trunk/java/org/apache/catalina/mapper/Mapper.java Sun Jul 13 
13:02:45 2014
@@ -278,6 +278,13 @@ public final class Mapper {
                         newContextVersion)) {
                     mappedContext.versions = newContextVersions;
                     contextObjectToContextVersionMap.put(context, 
newContextVersion);
+                } else {
+                    // Re-registration after Context.reload()
+                    // Replace ContextVersion with the new one
+                    int pos = find(contextVersions, version);
+                    if (pos >= 0 && contextVersions[pos].name.equals(version)) 
{
+                        contextVersions[pos] = newContextVersion;
+                    }
                 }
             }
         }

Added: tomcat/trunk/test/org/apache/catalina/mapper/TestMapperWebapps.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/mapper/TestMapperWebapps.java?rev=1610186&view=auto
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/mapper/TestMapperWebapps.java (added)
+++ tomcat/trunk/test/org/apache/catalina/mapper/TestMapperWebapps.java Sun Jul 
13 13:02:45 2014
@@ -0,0 +1,80 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.catalina.mapper;
+
+import java.io.File;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import org.apache.catalina.startup.Tomcat;
+import org.apache.catalina.startup.TomcatBaseTest;
+import org.apache.tomcat.util.buf.ByteChunk;
+import org.apache.tomcat.websocket.server.WsContextListener;
+
+/**
+ * Mapper tests that use real web applications on a running Tomcat.
+ */
+public class TestMapperWebapps extends TomcatBaseTest{
+
+    @Test
+    public void testContextReload_56658() throws Exception {
+        Tomcat tomcat = getTomcatInstance();
+
+        File appDir = new File(getBuildDirectory(), "webapps/examples");
+        // app dir is relative to server home
+        org.apache.catalina.Context ctxt  = tomcat.addWebapp(
+                null, "/examples", appDir.getAbsolutePath());
+        ctxt.addApplicationListener(WsContextListener.class.getName());
+        tomcat.start();
+
+        // The tests are from TestTomcat#testSingleWebapp(), #testJsps()
+        // We reload the context and verify that the pages are still accessible
+        ByteChunk res;
+        String text;
+
+        res = getUrl("http://localhost:"; + getPort()
+                + "/examples/servlets/servlet/HelloWorldExample");
+        text = res.toString();
+        Assert.assertTrue(text, text.contains("<h1>Hello World!</h1>"));
+
+        res = getUrl("http://localhost:"; + getPort()
+                + "/examples/jsp/jsp2/el/basic-arithmetic.jsp");
+        text = res.toString();
+        Assert.assertTrue(text, text.contains("<td>${(1==2) ? 3 : 4}</td>"));
+
+        res = getUrl("http://localhost:"; + getPort() + "/examples/index.html");
+        text = res.toString();
+        Assert.assertTrue(text, text.contains("<title>Apache Tomcat 
Examples</title>"));
+
+        ctxt.reload();
+
+        res = getUrl("http://localhost:"; + getPort()
+                + "/examples/servlets/servlet/HelloWorldExample");
+        text = res.toString();
+        Assert.assertTrue(text, text.contains("<h1>Hello World!</h1>"));
+
+        res = getUrl("http://localhost:"; + getPort()
+                + "/examples/jsp/jsp2/el/basic-arithmetic.jsp");
+        text = res.toString();
+        Assert.assertTrue(text, text.contains("<td>${(1==2) ? 3 : 4}</td>"));
+
+        res = getUrl("http://localhost:"; + getPort() + "/examples/index.html");
+        text = res.toString();
+        Assert.assertTrue(text, text.contains("<title>Apache Tomcat 
Examples</title>"));
+    }
+}

Propchange: tomcat/trunk/test/org/apache/catalina/mapper/TestMapperWebapps.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1610186&r1=1610185&r2=1610186&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Sun Jul 13 13:02:45 2014
@@ -45,6 +45,18 @@
   issues to not "pop up" wrt. others).
 -->
 <section name="Tomcat 8.0.11 (markt)">
+  <subsection name="Catalina">
+    <changelog>
+      <fix>
+        <bug>56658</bug>: Fix regression that a context was inaccessible after
+        reload. (kkolinko)
+      </fix>
+      <fix>
+        <bug>56712</bug>: Fix session idle time calculations in
+        <code>PersistenceManager</code>. (kkolinko)
+      </fix>
+    </changelog>
+  </subsection>
   <subsection name="Coyote">
     <changelog>
       <fix>
@@ -71,10 +83,6 @@
         defined as <code>HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5</code> so
         that no weak ciphers are enabled by default. (remm)
       </fix>
-      <fix>
-        <bug>56712</bug>: Fix session idle time calculations in
-        <code>PersistenceManager</code>. (kkolinko)
-      </fix>
     </changelog>
   </subsection>
   <subsection name="Jasper">
@@ -86,7 +94,7 @@
     </changelog>
   </subsection>
 </section>
-<section name="Tomcat 8.0.10 (markt)">
+<section name="Tomcat 8.0.10 (markt)" rtext="not released">
   <subsection name="Catalina">
     <changelog>
       <fix>



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

Reply via email to