[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