Revision: 5e35880e5fed
Author: Tom Uijldert <[email protected]>
Date: Thu Dec 13 06:53:23 2012
Log: Bug-fix: end activities when sessions end.
http://code.google.com/p/jain-slee/source/detail?r=5e35880e5fed&repo=msrp
Modified:
/resources/msrp/pom.xml
/resources/msrp/ra/src/main/java/org/mobicents/slee/resource/msrp/BasicMsrpSession.java
/resources/msrp/ra/src/main/java/org/mobicents/slee/resource/msrp/MsrpResourceAdaptor.java
/resources/msrp/ra/src/main/java/org/mobicents/slee/resource/msrp/MsrpSessionListener.java
=======================================
--- /resources/msrp/pom.xml Tue Dec 11 00:52:17 2012
+++ /resources/msrp/pom.xml Thu Dec 13 06:53:23 2012
@@ -28,7 +28,7 @@
<jain-sip-ri.version>1.2.170</jain-sip-ri.version>
<docs.ra.name>MSRP Resource Adaptor</docs.ra.name>
<docs.ra.dirname>msrp-ra</docs.ra.dirname>
- <docs.bookid>MsrpRA</docs.bookid>
+ <docs.bookid>MSRP</docs.bookid>
</properties>
<build>
=======================================
---
/resources/msrp/ra/src/main/java/org/mobicents/slee/resource/msrp/BasicMsrpSession.java
Tue Dec 11 00:52:17 2012
+++
/resources/msrp/ra/src/main/java/org/mobicents/slee/resource/msrp/BasicMsrpSession.java
Thu Dec 13 06:53:23 2012
@@ -58,14 +58,16 @@
private static final long serialVersionUID = 1L;
+ private MsrpResourceAdaptor ra;
private String sessionId;
private Session session;
private final String toString;
private ArrayList<URI> toList;
- public BasicMsrpSession(String sessionId, Session session) {
+ public BasicMsrpSession(String sessionId, Session session,
MsrpResourceAdaptor ra) {
this.sessionId = sessionId;
this.session = session;
+ this.ra = ra;
this.toString = "MsrpSession {
connectionId="+sessionId+",connection="+session.toString()+"}";
}
@@ -180,7 +182,10 @@
* @see org.mobicents.slee.resource.msrp.MsrpSession#disconnect()
*/
public void disconnect() {
- session.tearDown();
+ if (session != null)
+ session.tearDown();
+ if (sessionId != null)
+ ra.endActivity(sessionId);
}
public String getSessionId() { return sessionId; }
=======================================
---
/resources/msrp/ra/src/main/java/org/mobicents/slee/resource/msrp/MsrpResourceAdaptor.java
Tue Dec 11 00:52:17 2012
+++
/resources/msrp/ra/src/main/java/org/mobicents/slee/resource/msrp/MsrpResourceAdaptor.java
Thu Dec 13 06:53:23 2012
@@ -247,7 +247,7 @@
ActivityAlreadyExistsException,
NullPointerException,
IllegalStateException, SLEEException,
StartActivityException {
- MsrpSession activity = new BasicMsrpSession(sessionId, session);
+ MsrpSession activity = new BasicMsrpSession(sessionId, session,
this);
// lookup the activity and check if already exists
if (activities.get(handle) == null) {
activities.put(handle, activity);
@@ -261,7 +261,15 @@
return activity;
}
- public void fireEvent(Object event, MsrpActivityHandle handle) {
+ void endActivity(String sessionId) {
+ MsrpActivityHandle handle = new MsrpActivityHandle(sessionId);
+ if (activities.get(handle) != null) {
+ activities.remove(handle);
+ endActivity(handle);
+ }
+ }
+
+ public void fireEvent(Object event, MsrpActivityHandle handle) {
if (trc.isFineEnabled())
trc.fine("New Msrp-RA event: " + event.getClass().getName());
=======================================
---
/resources/msrp/ra/src/main/java/org/mobicents/slee/resource/msrp/MsrpSessionListener.java
Tue Dec 11 00:52:17 2012
+++
/resources/msrp/ra/src/main/java/org/mobicents/slee/resource/msrp/MsrpSessionListener.java
Thu Dec 13 06:53:23 2012
@@ -20,7 +20,7 @@
*/
package org.mobicents.slee.resource.msrp;
-import javax.slee.facilities.Tracer;
+//import javax.slee.facilities.Tracer;
import javax.net.msrp.*;
import javax.net.msrp.events.MessageAbortedEvent;
@@ -37,13 +37,13 @@
*/
class MsrpSessionListener implements SessionListener {
private MsrpResourceAdaptor ra;
- private final Tracer trc;
+// private final Tracer trc;
private MsrpSession session;
public MsrpSessionListener(MsrpResourceAdaptor ra, MsrpSession session)
{
this.ra = ra;
- this.trc = ra.getTracer();
+// this.trc = ra.getTracer();
this.session = session;
}
@@ -104,6 +104,7 @@
MsrpActivityHandle handle = new
MsrpActivityHandle(this.session.getSessionId());
ConnectionLostEvent event = new ConnectionLostEvent(session,
cause);
ra.fireEvent(event, handle);
+ ra.endActivity(this.session.getSessionId());
}
/* (non-Javadoc)