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