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