Revision: ded8d9e5ee52
Author:   Alexandre Mendonça <ammendonca>
Date:     Sat Jan 12 18:33:26 2013
Log: Diameter Stack HA: Unboxing to primitive type throws NPE when session data does not exist (ie, is null)

Update Issue 33
Status: Fixed
Created util methods to handle null properly. Fixed the return methods in several applications.

http://code.google.com/p/jdiameter/source/detail?r=ded8d9e5ee52

Modified:
/core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/client/auth/ClientAuthSessionDataReplicatedImpl.java /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/client/cca/ClientCCASessionDataReplicatedImpl.java /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/client/gx/ClientGxSessionDataReplicatedImpl.java /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/client/ro/ClientRoSessionDataReplicatedImpl.java /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/client/rx/ClientRxSessionDataReplicatedImpl.java /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/common/AppSessionDataReplicatedImpl.java /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/server/acc/ServerAccSessionDataReplicatedImpl.java /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/server/auth/ServerAuthSessionDataReplicatedImpl.java /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/server/cca/ServerCCASessionDataReplicatedImpl.java /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/server/gx/ServerGxSessionDataReplicatedImpl.java /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/server/rf/ServerRfSessionDataReplicatedImpl.java /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/server/ro/ServerRoSessionDataReplicatedImpl.java /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/server/rx/ServerRxSessionDataReplicatedImpl.java /core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/auth/ClientAuthSessionDataLocalImpl.java /core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/cca/ClientCCASessionDataLocalImpl.java /core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/cca/ClientCCASessionImpl.java /core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/gx/ClientGxSessionDataLocalImpl.java /core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/gx/ClientGxSessionImpl.java /core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/ro/ClientRoSessionDataLocalImpl.java /core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/ro/ClientRoSessionImpl.java /core/jdiameter/impl/src/main/java/org/jdiameter/common/api/app/IAppSessionData.java /core/jdiameter/impl/src/main/java/org/jdiameter/server/impl/app/acc/ServerAccSessionDataLocalImpl.java /core/jdiameter/impl/src/main/java/org/jdiameter/server/impl/app/acc/ServerAccSessionImpl.java /core/jdiameter/impl/src/main/java/org/jdiameter/server/impl/app/auth/ServerAuthSessionDataLocalImpl.java /core/jdiameter/impl/src/main/java/org/jdiameter/server/impl/app/auth/ServerAuthSessionImpl.java /core/jdiameter/impl/src/main/java/org/jdiameter/server/impl/app/gq/GqServerSessionImpl.java /core/jdiameter/impl/src/main/java/org/jdiameter/server/impl/app/rf/ServerRfSessionDataLocalImpl.java /core/jdiameter/impl/src/main/java/org/jdiameter/server/impl/app/rf/ServerRfSessionImpl.java

=======================================
--- /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/client/auth/ClientAuthSessionDataReplicatedImpl.java Wed Apr 27 04:53:52 2011 +++ /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/client/auth/ClientAuthSessionDataReplicatedImpl.java Sat Jan 12 18:33:26 2013
@@ -107,7 +107,7 @@
   @Override
   public boolean isStateless() {
     if (exists()) {
-      return (Boolean) getNode().get(STATELESS);
+      return toPrimitive((Boolean) getNode().get(STATELESS), true);
     }
     else {
       throw new IllegalStateException();
=======================================
--- /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/client/cca/ClientCCASessionDataReplicatedImpl.java Wed Apr 27 04:53:52 2011 +++ /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/client/cca/ClientCCASessionDataReplicatedImpl.java Sat Jan 12 18:33:26 2013
@@ -89,7 +89,7 @@

   public boolean isEventBased() {
     if (exists()) {
-      return (Boolean) getNode().get(EVENT_BASED);
+      return toPrimitive((Boolean) getNode().get(EVENT_BASED), true);
     }
     else {
       throw new IllegalStateException();
@@ -107,7 +107,7 @@

   public boolean isRequestTypeSet() {
     if (exists()) {
-      return (Boolean) getNode().get(REQUEST_TYPE);
+      return toPrimitive((Boolean) getNode().get(REQUEST_TYPE), false);
     }
     else {
       throw new IllegalStateException();
@@ -234,7 +234,7 @@

   public int getGatheredRequestedAction() {
     if (exists()) {
-      return (Integer) getNode().get(GRA);
+      return toPrimitive((Integer) getNode().get(GRA));
     }
     else {
       throw new IllegalStateException();
@@ -252,7 +252,7 @@

   public int getGatheredCCFH() {
     if (exists()) {
-      return (Integer) getNode().get(GCCFH);
+      return toPrimitive((Integer) getNode().get(GCCFH));
     }
     else {
       throw new IllegalStateException();
@@ -270,7 +270,7 @@

   public int getGatheredDDFH() {
     if (exists()) {
-      return (Integer) getNode().get(GDDFH);
+      return toPrimitive((Integer) getNode().get(GDDFH));
     }
     else {
       throw new IllegalStateException();
=======================================
--- /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/client/gx/ClientGxSessionDataReplicatedImpl.java Wed Apr 27 04:53:52 2011 +++ /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/client/gx/ClientGxSessionDataReplicatedImpl.java Sat Jan 12 18:33:26 2013
@@ -89,7 +89,7 @@

   public boolean isEventBased() {
     if (exists()) {
-      return (Boolean) getNode().get(EVENT_BASED);
+      return toPrimitive((Boolean) getNode().get(EVENT_BASED), true);
     }
     else {
       throw new IllegalStateException();
@@ -107,7 +107,7 @@

   public boolean isRequestTypeSet() {
     if (exists()) {
-      return (Boolean) getNode().get(REQUEST_TYPE);
+      return toPrimitive((Boolean) getNode().get(REQUEST_TYPE), false);
     }
     else {
       throw new IllegalStateException();
@@ -236,7 +236,7 @@

   public int getGatheredRequestedAction() {
     if (exists()) {
-      return (Integer) getNode().get(GRA);
+      return toPrimitive((Integer) getNode().get(GRA));
     }
     else {
       throw new IllegalStateException();
@@ -254,7 +254,7 @@

   public int getGatheredCCFH() {
     if (exists()) {
-      return (Integer) getNode().get(GCCFH);
+      return toPrimitive((Integer) getNode().get(GCCFH));
     }
     else {
       throw new IllegalStateException();
@@ -272,7 +272,7 @@

   public int getGatheredDDFH() {
     if (exists()) {
-      return (Integer) getNode().get(GDDFH);
+      return toPrimitive((Integer) getNode().get(GDDFH));
     }
     else {
       throw new IllegalStateException();
=======================================
--- /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/client/ro/ClientRoSessionDataReplicatedImpl.java Wed Apr 27 04:53:52 2011 +++ /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/client/ro/ClientRoSessionDataReplicatedImpl.java Sat Jan 12 18:33:26 2013
@@ -89,7 +89,7 @@

   public boolean isEventBased() {
     if (exists()) {
-      return (Boolean) getNode().get(EVENT_BASED);
+      return toPrimitive((Boolean) getNode().get(EVENT_BASED), true);
     }
     else {
       throw new IllegalStateException();
@@ -107,7 +107,7 @@

   public boolean isRequestTypeSet() {
     if (exists()) {
-      return (Boolean) getNode().get(REQUEST_TYPE);
+      return toPrimitive((Boolean) getNode().get(REQUEST_TYPE), false);
     }
     else {
       throw new IllegalStateException();
@@ -233,7 +233,7 @@

   public int getGatheredRequestedAction() {
     if (exists()) {
-      return (Integer) getNode().get(GRA);
+      return toPrimitive((Integer) getNode().get(GRA));
     }
     else {
       throw new IllegalStateException();
@@ -251,7 +251,7 @@

   public int getGatheredCCFH() {
     if (exists()) {
-      return (Integer) getNode().get(GCCFH);
+      return toPrimitive((Integer) getNode().get(GCCFH));
     }
     else {
       throw new IllegalStateException();
@@ -269,7 +269,7 @@

   public int getGatheredDDFH() {
     if (exists()) {
-      return (Integer) getNode().get(GDDFH);
+      return toPrimitive((Integer) getNode().get(GDDFH));
     }
     else {
       throw new IllegalStateException();
=======================================
--- /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/client/rx/ClientRxSessionDataReplicatedImpl.java Mon Mar 12 10:25:57 2012 +++ /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/client/rx/ClientRxSessionDataReplicatedImpl.java Sat Jan 12 18:33:26 2013
@@ -68,7 +68,7 @@
     @Override
     public boolean isEventBased() {
         if (exists()) {
-            return (Boolean) getNode().get(EVENT_BASED);
+            return toPrimitive((Boolean) getNode().get(EVENT_BASED), true);
         } else {
             throw new IllegalStateException();
         }
@@ -86,7 +86,7 @@
     @Override
     public boolean isRequestTypeSet() {
         if (exists()) {
-            return (Boolean) getNode().get(REQUEST_TYPE);
+ return toPrimitive((Boolean) getNode().get(REQUEST_TYPE), false);
         } else {
             throw new IllegalStateException();
         }
=======================================
--- /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/common/AppSessionDataReplicatedImpl.java Wed Apr 27 04:53:52 2011 +++ /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/common/AppSessionDataReplicatedImpl.java Sat Jan 12 18:33:26 2013
@@ -89,5 +89,19 @@
       throw new IllegalStateException();
     }
   }
+
+  // Some util methods for handling primitives
+
+  protected boolean toPrimitive(Boolean b, boolean _default) {
+    return b == null ? _default : b;
+  }
+
+  protected int toPrimitive(Integer i) {
+    return i == null ? NON_INITIALIZED : i;
+  }
+
+  protected long toPrimitive(Long l) {
+    return l == null ? NON_INITIALIZED : l;
+  }

 }
=======================================
--- /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/server/acc/ServerAccSessionDataReplicatedImpl.java Wed Apr 27 04:53:52 2011 +++ /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/server/acc/ServerAccSessionDataReplicatedImpl.java Sat Jan 12 18:33:26 2013
@@ -75,7 +75,7 @@
   @Override
   public boolean isStateless() {
     if (exists()) {
-      return (Boolean) getNode().get(STATELESS);
+      return toPrimitive((Boolean) getNode().get(STATELESS), true);
     }
     else {
       throw new IllegalStateException();
@@ -141,7 +141,7 @@
   @Override
   public long getTsTimeout() {
     if (exists()) {
-      return (Long) getNode().get(TS_TIMEOUT);
+      return toPrimitive((Long) getNode().get(TS_TIMEOUT));
     }
     else {
       throw new IllegalStateException();
=======================================
--- /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/server/auth/ServerAuthSessionDataReplicatedImpl.java Wed Apr 27 04:53:52 2011 +++ /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/server/auth/ServerAuthSessionDataReplicatedImpl.java Sat Jan 12 18:33:26 2013
@@ -75,7 +75,7 @@
   @Override
   public boolean isStateless() {
     if (exists()) {
-      return (Boolean) getNode().get(STATELESS);
+      return toPrimitive((Boolean) getNode().get(STATELESS), true);
     }
     else {
       throw new IllegalStateException();
@@ -141,7 +141,7 @@
   @Override
   public long getTsTimeout() {
     if (exists()) {
-      return (Long) getNode().get(TS_TIMEOUT);
+      return toPrimitive((Long) getNode().get(TS_TIMEOUT));
     }
     else {
       throw new IllegalStateException();
=======================================
--- /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/server/cca/ServerCCASessionDataReplicatedImpl.java Wed Apr 27 04:53:52 2011 +++ /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/server/cca/ServerCCASessionDataReplicatedImpl.java Sat Jan 12 18:33:26 2013
@@ -74,7 +74,7 @@
   @Override
   public boolean isStateless() {
     if (exists()) {
-      return (Boolean) getNode().get(STATELESS);
+      return toPrimitive((Boolean) getNode().get(STATELESS), true);
     }
     else {
       throw new IllegalStateException();
=======================================
--- /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/server/gx/ServerGxSessionDataReplicatedImpl.java Wed Apr 27 04:53:52 2011 +++ /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/server/gx/ServerGxSessionDataReplicatedImpl.java Sat Jan 12 18:33:26 2013
@@ -74,7 +74,7 @@
   @Override
   public boolean isStateless() {
     if (exists()) {
-      return (Boolean) getNode().get(STATELESS);
+      return toPrimitive((Boolean) getNode().get(STATELESS), true);
     }
     else {
       throw new IllegalStateException();
=======================================
--- /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/server/rf/ServerRfSessionDataReplicatedImpl.java Wed Apr 27 04:53:52 2011 +++ /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/server/rf/ServerRfSessionDataReplicatedImpl.java Sat Jan 12 18:33:26 2013
@@ -75,7 +75,7 @@
   @Override
   public boolean isStateless() {
     if (exists()) {
-      return (Boolean) getNode().get(STATELESS);
+      return toPrimitive((Boolean) getNode().get(STATELESS), true);
     }
     else {
       throw new IllegalStateException();
@@ -166,7 +166,7 @@
   @Override
   public long getTsTimeout() {
     if (exists()) {
-      return (Long) getNode().get(TS_TIMEOUT);
+      return toPrimitive((Long) getNode().get(TS_TIMEOUT));
     }
     else {
       throw new IllegalStateException();
=======================================
--- /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/server/ro/ServerRoSessionDataReplicatedImpl.java Wed Apr 27 04:53:52 2011 +++ /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/server/ro/ServerRoSessionDataReplicatedImpl.java Sat Jan 12 18:33:26 2013
@@ -74,7 +74,7 @@
   @Override
   public boolean isStateless() {
     if (exists()) {
-      return (Boolean) getNode().get(STATELESS);
+      return toPrimitive((Boolean) getNode().get(STATELESS), true);
     }
     else {
       throw new IllegalStateException();
=======================================
--- /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/server/rx/ServerRxSessionDataReplicatedImpl.java Mon Mar 12 10:25:57 2012 +++ /core/jdiameter-ha/impl/src/main/java/org/mobicents/diameter/impl/ha/server/rx/ServerRxSessionDataReplicatedImpl.java Sat Jan 12 18:33:26 2013
@@ -71,7 +71,7 @@
     @Override
     public boolean isStateless() {
         if (exists()) {
-            return (Boolean) getNode().get(STATELESS);
+            return toPrimitive((Boolean) getNode().get(STATELESS), true);
         } else {
             throw new IllegalStateException();
         }
=======================================
--- /core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/auth/ClientAuthSessionDataLocalImpl.java Mon Mar 12 14:23:47 2012 +++ /core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/auth/ClientAuthSessionDataLocalImpl.java Sat Jan 12 18:33:26 2013
@@ -35,7 +35,7 @@
public class ClientAuthSessionDataLocalImpl extends AppSessionDataLocalImpl implements IClientAuthSessionData {

   protected ClientAuthSessionState state = ClientAuthSessionState.IDLE;
-  protected boolean stateless;
+  protected boolean stateless = true;
   protected String destinationHost;
   protected String destinationRealm;
   protected Serializable tsTimerId;
=======================================
--- /core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/cca/ClientCCASessionDataLocalImpl.java Mon Mar 12 14:23:47 2012 +++ /core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/cca/ClientCCASessionDataLocalImpl.java Sat Jan 12 18:33:26 2013
@@ -46,10 +46,10 @@
   //protected Message buffer = null;
   protected Request buffer;

- protected int gatheredRequestedAction = ClientCCASessionImpl.NON_INITIALIZED;
+  protected int gatheredRequestedAction = NON_INITIALIZED;

-  protected int gatheredCCFH = ClientCCASessionImpl.NON_INITIALIZED;
-  protected int gatheredDDFH = ClientCCASessionImpl.NON_INITIALIZED;
+  protected int gatheredCCFH = NON_INITIALIZED;
+  protected int gatheredDDFH = NON_INITIALIZED;

   /**
    *
=======================================
--- /core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/cca/ClientCCASessionImpl.java Sat Jan 12 10:10:57 2013 +++ /core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/cca/ClientCCASessionImpl.java Sat Jan 12 18:33:26 2013
@@ -95,9 +95,6 @@

   protected long[] authAppIds = new long[] { 4 };

- // Requested Action + Credit-Control and Direct-Debiting Failure-Handling ---
-  public static final int NON_INITIALIZED = -300;
-
   protected static final int CCFH_TERMINATE = 0;
   protected static final int CCFH_CONTINUE = 1;
   protected static final int CCFH_RETRY_AND_TERMINATE = 2;
=======================================
--- /core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/gx/ClientGxSessionDataLocalImpl.java Mon Mar 12 14:23:47 2012 +++ /core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/gx/ClientGxSessionDataLocalImpl.java Sat Jan 12 18:33:26 2013
@@ -46,10 +46,10 @@
   //protected Message buffer = null;
   protected Request buffer;

- protected int gatheredRequestedAction = ClientGxSessionImpl.NON_INITIALIZED;
+  protected int gatheredRequestedAction = NON_INITIALIZED;

-  protected int gatheredCCFH = ClientGxSessionImpl.NON_INITIALIZED;
-  protected int gatheredDDFH = ClientGxSessionImpl.NON_INITIALIZED;
+  protected int gatheredCCFH = NON_INITIALIZED;
+  protected int gatheredDDFH = NON_INITIALIZED;

   /**
    *
=======================================
--- /core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/gx/ClientGxSessionImpl.java Sat Jan 12 10:10:57 2013 +++ /core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/gx/ClientGxSessionImpl.java Sat Jan 12 18:33:26 2013
@@ -89,8 +89,7 @@
protected static final long TX_TIMER_DEFAULT_VALUE = 30 * 60 * 1000; // miliseconds

     protected long[] authAppIds = new long[]{4};
- // Requested Action + Credit-Control and Direct-Debiting Failure-Handling ---
-    static final int NON_INITIALIZED = -300;
+
     protected static final int CCFH_TERMINATE = 0;
     protected static final int CCFH_CONTINUE = 1;
     protected static final int CCFH_RETRY_AND_TERMINATE = 2;
=======================================
--- /core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/ro/ClientRoSessionDataLocalImpl.java Mon Mar 12 14:23:47 2012 +++ /core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/ro/ClientRoSessionDataLocalImpl.java Sat Jan 12 18:33:26 2013
@@ -46,10 +46,10 @@
   //protected Message buffer = null;
   protected Request buffer;

- protected int gatheredRequestedAction = ClientRoSessionImpl.NON_INITIALIZED;
+  protected int gatheredRequestedAction = NON_INITIALIZED;

-  protected int gatheredCCFH = ClientRoSessionImpl.NON_INITIALIZED;
-  protected int gatheredDDFH = ClientRoSessionImpl.NON_INITIALIZED;
+  protected int gatheredCCFH = NON_INITIALIZED;
+  protected int gatheredDDFH = NON_INITIALIZED;

   /**
    *
=======================================
--- /core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/ro/ClientRoSessionImpl.java Sat Jan 12 10:10:57 2013 +++ /core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/ro/ClientRoSessionImpl.java Sat Jan 12 18:33:26 2013
@@ -97,8 +97,6 @@
   protected long[] authAppIds = new long[] { 4 };

// Requested Action + Credit-Control and Direct-Debiting Failure-Handling ---
-  public static final int NON_INITIALIZED = -300;
-
   protected static final int CCFH_TERMINATE = 0;
   protected static final int CCFH_CONTINUE = 1;
   protected static final int CCFH_RETRY_AND_TERMINATE = 2;
=======================================
--- /core/jdiameter/impl/src/main/java/org/jdiameter/common/api/app/IAppSessionData.java Fri Jul 1 17:08:58 2011 +++ /core/jdiameter/impl/src/main/java/org/jdiameter/common/api/app/IAppSessionData.java Sat Jan 12 18:33:26 2013
@@ -32,6 +32,8 @@
  */
 public interface IAppSessionData {

+  public static final int NON_INITIALIZED = Integer.MIN_VALUE;
+
   /**
    * Returns the session-id of the session to which this data belongs to.
    * @return a string representing the session-id
=======================================
--- /core/jdiameter/impl/src/main/java/org/jdiameter/server/impl/app/acc/ServerAccSessionDataLocalImpl.java Mon Mar 19 19:16:58 2012 +++ /core/jdiameter/impl/src/main/java/org/jdiameter/server/impl/app/acc/ServerAccSessionDataLocalImpl.java Sat Jan 12 18:33:26 2013
@@ -36,7 +36,7 @@

   protected ServerAccSessionState state = ServerAccSessionState.IDLE;
   protected boolean stateles = true;
-  protected long tsTimeout;
+  protected long tsTimeout = NON_INITIALIZED;
   protected Serializable tsTimerId;

   /**
=======================================
--- /core/jdiameter/impl/src/main/java/org/jdiameter/server/impl/app/acc/ServerAccSessionImpl.java Tue Apr 10 11:05:24 2012 +++ /core/jdiameter/impl/src/main/java/org/jdiameter/server/impl/app/acc/ServerAccSessionImpl.java Sat Jan 12 18:33:26 2013
@@ -356,7 +356,7 @@

     try{
       sendAndStateLock.lock();
-      if(sessionData.getTsTimeout() != 0) {
+      if(sessionData.getTsTimeout() > 0) {
Serializable tsTid = super.timerFacility.schedule(sessionData.getSessionId(), TIMER_NAME_TS, sessionData.getTsTimeout());
         sessionData.setTsTimerId(tsTid);
       }
=======================================
--- /core/jdiameter/impl/src/main/java/org/jdiameter/server/impl/app/auth/ServerAuthSessionDataLocalImpl.java Mon Mar 19 19:16:58 2012 +++ /core/jdiameter/impl/src/main/java/org/jdiameter/server/impl/app/auth/ServerAuthSessionDataLocalImpl.java Sat Jan 12 18:33:26 2013
@@ -36,8 +36,8 @@

   protected ServerAuthSessionState state = ServerAuthSessionState.IDLE;
   protected Serializable tsTimerId;
-  protected long tsTimeout;
-  protected boolean stateless;
+  protected long tsTimeout = NON_INITIALIZED;
+  protected boolean stateless = true;

   /**
    *
=======================================
--- /core/jdiameter/impl/src/main/java/org/jdiameter/server/impl/app/auth/ServerAuthSessionImpl.java Tue Apr 10 11:05:24 2012 +++ /core/jdiameter/impl/src/main/java/org/jdiameter/server/impl/app/auth/ServerAuthSessionImpl.java Sat Jan 12 18:33:26 2013
@@ -392,7 +392,9 @@
   protected void startTsTimer() {
     try {
       sendAndStateLock.lock();
- sessionData.setTsTimerId(super.timerFacility.schedule(sessionData.getSessionId(), TIMER_NAME_TS, sessionData.getTsTimeout()));
+      if (sessionData.getTsTimeout() > 0) {
+ sessionData.setTsTimerId(super.timerFacility.schedule(sessionData.getSessionId(), TIMER_NAME_TS, sessionData.getTsTimeout()));
+      }
     }
     finally {
       sendAndStateLock.unlock();
=======================================
--- /core/jdiameter/impl/src/main/java/org/jdiameter/server/impl/app/gq/GqServerSessionImpl.java Mon Mar 19 19:16:58 2012 +++ /core/jdiameter/impl/src/main/java/org/jdiameter/server/impl/app/gq/GqServerSessionImpl.java Sat Jan 12 18:33:26 2013
@@ -417,7 +417,9 @@
   protected void startTsTimer() {
     try {
       sendAndStateLock.lock();
- sessionData.setTsTimerId(super.timerFacility.schedule(sessionData.getSessionId(), TIMER_NAME_TS, sessionData.getTsTimeout()));
+      if (sessionData.getTsTimeout() > 0) {
+ sessionData.setTsTimerId(super.timerFacility.schedule(sessionData.getSessionId(), TIMER_NAME_TS, sessionData.getTsTimeout()));
+      }
     }
     finally {
       sendAndStateLock.unlock();
=======================================
--- /core/jdiameter/impl/src/main/java/org/jdiameter/server/impl/app/rf/ServerRfSessionDataLocalImpl.java Mon Mar 19 19:16:58 2012 +++ /core/jdiameter/impl/src/main/java/org/jdiameter/server/impl/app/rf/ServerRfSessionDataLocalImpl.java Sat Jan 12 18:33:26 2013
@@ -37,7 +37,7 @@
   protected boolean stateless = true;
   protected ServerRfSessionState state = ServerRfSessionState.IDLE;
   protected Serializable tsTimerId;
-  protected long tsTimeout;
+  protected long tsTimeout = NON_INITIALIZED;

   /**
    *
=======================================
--- /core/jdiameter/impl/src/main/java/org/jdiameter/server/impl/app/rf/ServerRfSessionImpl.java Tue Apr 10 11:05:24 2012 +++ /core/jdiameter/impl/src/main/java/org/jdiameter/server/impl/app/rf/ServerRfSessionImpl.java Sat Jan 12 18:33:26 2013
@@ -341,7 +341,9 @@
     //    }, tsTimeout, TimeUnit.MILLISECONDS);
     try {
       sendAndStateLock.lock();
- this.sessionData.setTsTimerId(super.timerFacility.schedule(getSessionId(), TIMER_NAME_TS, this.sessionData.getTsTimeout()));
+      if(sessionData.getTsTimeout() > 0) {
+ this.sessionData.setTsTimerId(super.timerFacility.schedule(getSessionId(), TIMER_NAME_TS, this.sessionData.getTsTimeout()));
+      }
     }
     finally {
       sendAndStateLock.unlock();

Reply via email to