Author: kkolinko
Date: Thu Jul 17 22:34:53 2014
New Revision: 1611495

URL: http://svn.apache.org/r1611495
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=56717
Fix duplicate registration of MapperListener during repeated starts of embedded 
Tomcat.
Properly unregister it when Tomcat stops.

It is backport of r1610562.

Added:
    
tomcat/tc7.0.x/trunk/test/org/apache/catalina/connector/TestMapperListener.java
      - copied, changed from r1610562, 
tomcat/trunk/test/org/apache/catalina/mapper/TestMapperListener.java
Modified:
    tomcat/tc7.0.x/trunk/java/org/apache/catalina/connector/MapperListener.java
    tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml

Modified: 
tomcat/tc7.0.x/trunk/java/org/apache/catalina/connector/MapperListener.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/connector/MapperListener.java?rev=1611495&r1=1611494&r2=1611495&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/org/apache/catalina/connector/MapperListener.java 
(original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/connector/MapperListener.java 
Thu Jul 17 22:34:53 2014
@@ -124,6 +124,9 @@ public class MapperListener extends Life
     @Override
     public void stopInternal() throws LifecycleException {
         setState(LifecycleState.STOPPING);
+
+        Engine engine = (Engine) connector.getService().getContainer();
+        removeListeners(engine);
     }
 
 

Copied: 
tomcat/tc7.0.x/trunk/test/org/apache/catalina/connector/TestMapperListener.java 
(from r1610562, 
tomcat/trunk/test/org/apache/catalina/mapper/TestMapperListener.java)
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/catalina/connector/TestMapperListener.java?p2=tomcat/tc7.0.x/trunk/test/org/apache/catalina/connector/TestMapperListener.java&p1=tomcat/trunk/test/org/apache/catalina/mapper/TestMapperListener.java&r1=1610562&r2=1611495&rev=1611495&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/mapper/TestMapperListener.java 
(original)
+++ 
tomcat/tc7.0.x/trunk/test/org/apache/catalina/connector/TestMapperListener.java 
Thu Jul 17 22:34:53 2014
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.catalina.mapper;
+package org.apache.catalina.connector;
 
 import java.io.File;
 import java.io.IOException;
@@ -27,13 +27,11 @@ import org.junit.Test;
 
 import org.apache.catalina.Container;
 import org.apache.catalina.ContainerListener;
-import org.apache.catalina.Context;
 import org.apache.catalina.LifecycleException;
 import org.apache.catalina.LifecycleListener;
 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;
 
 public class TestMapperListener extends TomcatBaseTest {
 
@@ -49,9 +47,7 @@ public class TestMapperListener extends 
 
         File appDir = new File(getBuildDirectory(), "webapps/examples");
         // app dir is relative to server home
-        Context ctxt = tomcat.addWebapp(null, "/examples",
-                appDir.getAbsolutePath());
-        ctxt.addApplicationListener(WsContextListener.class.getName());
+        tomcat.addWebapp(null, "/examples", appDir.getAbsolutePath());
         tomcat.start();
 
         ByteChunk res;
@@ -61,7 +57,7 @@ public class TestMapperListener extends 
         text = res.toString();
         Assert.assertTrue(text, text.contains("<h1>Hello World!</h1>"));
 
-        List<ListenersInfo> listenersFirst = new ArrayList<>();
+        List<ListenersInfo> listenersFirst = new ArrayList<ListenersInfo>();
         populateListenersInfo(listenersFirst, tomcat.getEngine());
 
         tomcat.stop();
@@ -72,7 +68,7 @@ public class TestMapperListener extends 
         text = res.toString();
         Assert.assertTrue(text, text.contains("<h1>Hello World!</h1>"));
 
-        List<ListenersInfo> listenersSecond = new ArrayList<>();
+        List<ListenersInfo> listenersSecond = new ArrayList<ListenersInfo>();
         populateListenersInfo(listenersSecond, tomcat.getEngine());
 
         Assert.assertEquals(listenersFirst.size(), listenersSecond.size());

Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1611495&r1=1611494&r2=1611495&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Thu Jul 17 22:34:53 2014
@@ -167,6 +167,11 @@
         <bug>56712</bug>: Fix session idle time calculations in
         <code>PersistenceManager</code>. (kkolinko)
       </fix>
+      <fix>
+        <bug>56717</bug>: Fix duplicate registration of
+        <code>MapperListener</code> during repeated starts of embedded Tomcat.
+        (kkolinko)
+      </fix>
     </changelog>
   </subsection>
   <subsection name="Coyote">



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

Reply via email to