[jboss-remoting-commits] JBoss Remoting SVN: r5196 - remoting2/branches/2.2/src/main/org/jboss/remoting.
jboss-remoting-commits at lists.jboss.org
jboss-remoting-commits at lists.jboss.org
Tue May 12 01:56:17 EDT 2009
Author: ron.sigal at jboss.com
Date: 2009-05-12 01:56:17 -0400 (Tue, 12 May 2009)
New Revision: 5196
Modified:
remoting2/branches/2.2/src/main/org/jboss/remoting/Lease.java
Log:
JBREM-1129: Changed to be compatible with older versions that don't use leasePingerId and time stamp.
Modified: remoting2/branches/2.2/src/main/org/jboss/remoting/Lease.java
===================================================================
--- remoting2/branches/2.2/src/main/org/jboss/remoting/Lease.java 2009-05-10 07:07:06 UTC (rev 5195)
+++ remoting2/branches/2.2/src/main/org/jboss/remoting/Lease.java 2009-05-12 05:56:17 UTC (rev 5196)
@@ -55,6 +55,7 @@
private boolean leaseUpdated = false;
private long lastUpdate;
+ private boolean useClientConnectionIdentity;
private static final Logger log = Logger.getLogger(Lease.class);
private static final boolean isTraceEnabled = log.isTraceEnabled();
@@ -70,8 +71,13 @@
{
this.requestPayload = (Map)requestPayload.get(ClientHolder.CLIENT_HOLDER_KEY);
this.leasePingerId = (String) requestPayload.get(LeasePinger.LEASE_PINGER_ID);
- this.lastUpdate = Long.valueOf((String) requestPayload.get(LeasePinger.TIME_STAMP)).longValue();
- if (isTraceEnabled) log.trace(this + " initialized with lastUpdate: " + lastUpdate);
+ String s = (String) requestPayload.get(LeasePinger.TIME_STAMP);
+ if (s != null)
+ {
+ this.lastUpdate = Long.valueOf(s).longValue();
+ this.useClientConnectionIdentity = true;
+ if (isTraceEnabled) log.trace(this + " initialized with lastUpdate: " + lastUpdate);
+ }
if (isTraceEnabled) log.trace(this + " initialized with requestPayload: " + this.requestPayload);
if (isTraceEnabled) log.trace("leasePingerId: " + leasePingerId);
}
@@ -94,41 +100,31 @@
{
if(requestMap != null)
{
- if (isTraceEnabled) log.trace(this + " requestMap: " + requestMap);
- long time = 0;
- String timeString = (String) requestMap.get(LeasePinger.TIME_STAMP);
- if (isTraceEnabled) log.trace(this + " timeString: " + timeString);
- time = Long.valueOf(timeString).longValue();
- if (isTraceEnabled) log.trace(this + " last update: " + lastUpdate + ", this update: " + time);
-
- if (time > lastUpdate)
+ synchronized (lock)
{
- synchronized (lock)
+ if (useClientConnectionIdentity)
{
- this.requestPayload = (Map)requestMap.get(ClientHolder.CLIENT_HOLDER_KEY);
-
- if (isTraceEnabled) log.trace(this + " updating: new Client list:");
- Collection clientHoldersCol = requestPayload.values();
- Iterator itr = clientHoldersCol.iterator();
- while (itr.hasNext())
+ if (isTraceEnabled) log.trace(this + " requestMap: " + requestMap);
+ long time = 0;
+ String timeString = (String) requestMap.get(LeasePinger.TIME_STAMP);
+ time = Long.valueOf(timeString).longValue();
+ if (isTraceEnabled) log.trace(this + " last update: " + lastUpdate + ", this update: " + time);
+ if (time > lastUpdate)
{
- Object val = itr.next();
- if (val != null && val instanceof ClientHolder)
- {
- ClientHolder clientHolder = (ClientHolder) val;
- if (isTraceEnabled) log.trace(leasePingerId + ": " + clientHolder.getSessionId());
- }
+ lastUpdate = time;
+ doUpdate(requestMap);
}
-
- lastUpdate = time;
- updateLease(leasePeriod);
+ else
+ {
+ if (isTraceEnabled) log.trace(this + " updating lease but not client list");
+ leaseUpdated = true;
+ }
}
+ else
+ {
+ doUpdate(requestMap);
+ }
}
- else
- {
- if (isTraceEnabled) log.trace(this + " updating lease but not client list");
- leaseUpdated = true;
- }
}
else
{
@@ -365,6 +361,28 @@
leaseTimerTask.cancel();
}
+ private void doUpdate(Map requestMap)
+ {
+ this.requestPayload = (Map)requestMap.get(ClientHolder.CLIENT_HOLDER_KEY);
+ if (isTraceEnabled)
+ {
+ log.trace(this + " updating: new Client list:");
+ Collection clientHoldersCol = requestPayload.values();
+ Iterator itr = clientHoldersCol.iterator();
+ while (itr.hasNext())
+ {
+ Object val = itr.next();
+ if (val != null && val instanceof ClientHolder)
+ {
+ ClientHolder clientHolder = (ClientHolder) val;
+ log.trace(leasePingerId + ": " + clientHolder.getSessionId());
+ }
+ }
+ }
+ updateLease(leasePeriod);
+ }
+
+
private class LeaseTimerTask extends TimerTask
{
More information about the jboss-remoting-commits
mailing list