[jboss-cvs] JBossAS SVN: r87516 - branches/Branch_5_x/cluster/src/main/org/jboss/profileservice/cluster/repository.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Apr 17 15:16:35 EDT 2009


Author: bstansberry at jboss.com
Date: 2009-04-17 15:16:35 -0400 (Fri, 17 Apr 2009)
New Revision: 87516

Modified:
   branches/Branch_5_x/cluster/src/main/org/jboss/profileservice/cluster/repository/DefaultSynchronizationPolicy.java
Log:
[JBAS-5552] Further avoid NPE when sender discrepancy is unknown

Modified: branches/Branch_5_x/cluster/src/main/org/jboss/profileservice/cluster/repository/DefaultSynchronizationPolicy.java
===================================================================
--- branches/Branch_5_x/cluster/src/main/org/jboss/profileservice/cluster/repository/DefaultSynchronizationPolicy.java	2009-04-17 18:43:09 UTC (rev 87515)
+++ branches/Branch_5_x/cluster/src/main/org/jboss/profileservice/cluster/repository/DefaultSynchronizationPolicy.java	2009-04-17 19:16:35 UTC (rev 87516)
@@ -70,7 +70,7 @@
       }
       else
       {
-         TimestampDiscrepancy addDiscrepancy = timestampService.getTimestampDiscrepancy(toAdd.getOriginatingNode(), false);         
+         TimestampDiscrepancy addDiscrepancy = getTimestampDiscrepancy(toAdd.getOriginatingNode(), false);
          long adjustedTimestamp = addDiscrepancy.getMinLocalTimestamp(toAdd.getTimestamp());
          return adjustedTimestamp > System.currentTimeMillis() - getRemovalTrackingTime();
       }
@@ -84,8 +84,8 @@
    protected boolean acceptReincarnation(RepositoryItemMetadata reincarnation, RepositoryItemMetadata current,
          boolean merge)
    {
-      TimestampDiscrepancy addDiscrepancy = timestampService.getTimestampDiscrepancy(reincarnation.getOriginatingNode(), false); 
-      TimestampDiscrepancy deadDiscrepancy = timestampService.getTimestampDiscrepancy(current.getOriginatingNode(), false); 
+      TimestampDiscrepancy addDiscrepancy = getTimestampDiscrepancy(reincarnation.getOriginatingNode(), false); 
+      TimestampDiscrepancy deadDiscrepancy = getTimestampDiscrepancy(current.getOriginatingNode(), false); 
       return isChangeMoreRecent(reincarnation, current, addDiscrepancy, deadDiscrepancy, false);
    }
 
@@ -103,8 +103,8 @@
          return false;
       }
 
-      TimestampDiscrepancy senderTimestampDiscrepancy = timestampService.getTimestampDiscrepancy(sendersView.getOriginatingNode(), false); 
-      TimestampDiscrepancy currentTimestampDiscrepancy = timestampService.getTimestampDiscrepancy(current.getOriginatingNode(), false);
+      TimestampDiscrepancy senderTimestampDiscrepancy = getTimestampDiscrepancy(sendersView.getOriginatingNode(), false); 
+      TimestampDiscrepancy currentTimestampDiscrepancy = getTimestampDiscrepancy(current.getOriginatingNode(), false);
       
       return isChangeMoreRecent(sendersView, current, senderTimestampDiscrepancy, currentTimestampDiscrepancy, true);
    }
@@ -117,8 +117,8 @@
    protected boolean acceptUpdate(RepositoryItemMetadata update, RepositoryItemMetadata current,
          boolean merge)
    {
-      TimestampDiscrepancy updateDiscrepancy = timestampService.getTimestampDiscrepancy(update.getOriginatingNode(), false); 
-      TimestampDiscrepancy currentTimestampDiscrepancy = timestampService.getTimestampDiscrepancy(current.getOriginatingNode(), false);
+      TimestampDiscrepancy updateDiscrepancy = getTimestampDiscrepancy(update.getOriginatingNode(), false); 
+      TimestampDiscrepancy currentTimestampDiscrepancy = getTimestampDiscrepancy(current.getOriginatingNode(), false);
       
       return isChangeMoreRecent(update, current, updateDiscrepancy, currentTimestampDiscrepancy, false);
    }
@@ -152,5 +152,12 @@
       }
       return equalAllowed ? senderTime > currentTime :senderTime > currentTime;
    }
+   
+   private TimestampDiscrepancy getTimestampDiscrepancy(String originatingNode, boolean allowStatusCheck)
+   {
+      TimestampDiscrepancy td = timestampService.getTimestampDiscrepancy(originatingNode, allowStatusCheck);
+      // If we don't have a record for the originator, use NO_DISCREPANCY and hope for the best
+      return td == null ? TimestampDiscrepancy.NO_DISCREPANCY : td;
+   }
 
 }




More information about the jboss-cvs-commits mailing list