Revision: 8227
Author: [email protected]
Date: Mon Nov  2 07:10:41 2009
Log: Bug fix + Non regression test for Issue 1025 : SipServletListener.servletInitialized is called twice after redeployment application on tomcat
http://code.google.com/p/mobicents/source/detail?r=8227

Modified:
/trunk/servers/sip-servlets/sip-servlets-impl/src/main/java/org/mobicents/servlet/sip/core/session/SipListenersHolder.java /trunk/servers/sip-servlets/sip-servlets-jboss5/src/main/java/org/mobicents/servlet/sip/startup/SipStandardContext.java /trunk/servers/sip-servlets/sip-servlets-test-suite/testsuite/src/test/java/org/mobicents/servlet/sip/testsuite/simple/ShootistSipServletTest.java /trunk/servers/sip-servlets/sip-servlets-tomcat-jboss4/src/main/java/org/mobicents/servlet/sip/startup/SipStandardContext.java

=======================================
--- /trunk/servers/sip-servlets/sip-servlets-impl/src/main/java/org/mobicents/servlet/sip/core/session/SipListenersHolder.java Tue Oct 27 08:16:41 2009 +++ /trunk/servers/sip-servlets/sip-servlets-impl/src/main/java/org/mobicents/servlet/sip/core/session/SipListenersHolder.java Mon Nov 2 07:10:41 2009
@@ -254,7 +254,7 @@
        }

        public void setTimerListener(TimerListener listener) {
-               if(timerListener != null) {
+               if(this.timerListener != null) {
                        throw new IllegalArgumentException(
"the time listener has already been set ("+timerListener.getClass().getName() +
                                        "), There may be at most one TimerListener 
defined !");
@@ -372,6 +372,7 @@
                this.sipErrorListeners.clear();
                this.servletContextListeners.clear();
                this.sipConnectorListeners.clear();
+               this.listenerServlets.clear();
                this.timerListener = null;
        }

=======================================
--- /trunk/servers/sip-servlets/sip-servlets-jboss5/src/main/java/org/mobicents/servlet/sip/startup/SipStandardContext.java Fri Oct 30 08:48:45 2009 +++ /trunk/servers/sip-servlets/sip-servlets-jboss5/src/main/java/org/mobicents/servlet/sip/startup/SipStandardContext.java Mon Nov 2 07:10:41 2009
@@ -450,6 +450,10 @@
logger.warn("number of active sip application sessions : " + ((SipManager)manager).getActiveSipApplicationSessions());
                }
                sipListeners.deallocateServletsActingAsListeners();
+               sipApplicationListeners.clear();
+               sipServletMappings.clear();
+               childrenMap.clear();
+               childrenMapByClassName.clear();
                super.stop();
// this should happen after so that applications can still do some processing // in destroy methods to notify that context is getting destroyed and app removed
=======================================
--- /trunk/servers/sip-servlets/sip-servlets-test-suite/testsuite/src/test/java/org/mobicents/servlet/sip/testsuite/simple/ShootistSipServletTest.java Mon Nov 2 06:36:35 2009 +++ /trunk/servers/sip-servlets/sip-servlets-test-suite/testsuite/src/test/java/org/mobicents/servlet/sip/testsuite/simple/ShootistSipServletTest.java Mon Nov 2 07:10:41 2009
@@ -237,9 +237,12 @@
                Thread.sleep(TIMEOUT);
                tomcat.undeployContext(context);
                Thread.sleep(TIMEOUT);
-               deployApplicationServletListenerTest();
+               context = deployApplicationServletListenerTest();
                Thread.sleep(TIMEOUT);
                assertEquals(2, receiver.getAllMessagesContent().size());
+               context.reload();
+               Thread.sleep(TIMEOUT);
+               assertEquals(3, receiver.getAllMessagesContent().size());
        }


=======================================
--- /trunk/servers/sip-servlets/sip-servlets-tomcat-jboss4/src/main/java/org/mobicents/servlet/sip/startup/SipStandardContext.java Wed Oct 28 08:03:59 2009 +++ /trunk/servers/sip-servlets/sip-servlets-tomcat-jboss4/src/main/java/org/mobicents/servlet/sip/startup/SipStandardContext.java Mon Nov 2 07:10:41 2009
@@ -463,7 +463,7 @@
         }

         // TODO Annotation processing check super class on tomcat 6
-
+
         sipListeners.clean();

         return ok;
@@ -510,6 +510,10 @@
logger.info("number of active sip application sessions : " + ((SipManager)manager).getActiveSipApplicationSessions());
                }
                sipListeners.deallocateServletsActingAsListeners();
+               sipApplicationListeners.clear();
+               sipServletMappings.clear();
+               childrenMap.clear();
+               childrenMapByClassName.clear();
                super.stop();
// this should happen after so that applications can still do some processing // in destroy methods to notify that context is getting destroyed and app removed

Reply via email to