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)

Reply via email to