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();