[Jboss-cvs] JBossAS SVN: r56227 - trunk/cluster/src/main/org/jboss/ha/framework/interfaces

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Aug 24 16:48:31 EDT 2006


Author: bstansberry at jboss.com
Date: 2006-08-24 16:48:30 -0400 (Thu, 24 Aug 2006)
New Revision: 56227

Modified:
   trunk/cluster/src/main/org/jboss/ha/framework/interfaces/ClusteringTargetsRepository.java
   trunk/cluster/src/main/org/jboss/ha/framework/interfaces/FamilyClusterInfoImpl.java
Log:
[JBAS-3427] FCI method param types are List not ArrayList

Modified: trunk/cluster/src/main/org/jboss/ha/framework/interfaces/ClusteringTargetsRepository.java
===================================================================
--- trunk/cluster/src/main/org/jboss/ha/framework/interfaces/ClusteringTargetsRepository.java	2006-08-24 19:54:02 UTC (rev 56226)
+++ trunk/cluster/src/main/org/jboss/ha/framework/interfaces/ClusteringTargetsRepository.java	2006-08-24 20:48:30 UTC (rev 56227)
@@ -21,8 +21,8 @@
   */
 package org.jboss.ha.framework.interfaces;
 
+import java.util.Hashtable;
 import java.util.List;
-import java.util.Hashtable;
 
 /**
  * JVM singleton that associates a list of targets (+ other info) 

Modified: trunk/cluster/src/main/org/jboss/ha/framework/interfaces/FamilyClusterInfoImpl.java
===================================================================
--- trunk/cluster/src/main/org/jboss/ha/framework/interfaces/FamilyClusterInfoImpl.java	2006-08-24 19:54:02 UTC (rev 56226)
+++ trunk/cluster/src/main/org/jboss/ha/framework/interfaces/FamilyClusterInfoImpl.java	2006-08-24 20:48:30 UTC (rev 56227)
@@ -42,7 +42,7 @@
    // Attributes ----------------------------------------------------
    
    public String familyName = null;
-   List targets = null;
+   ArrayList targets = null;
    long currentViewId = 0;
    boolean isViewMembersInSyncWithViewId = false;
    
@@ -58,11 +58,7 @@
    protected FamilyClusterInfoImpl (String familyName, List targets, long viewId)
    {
       this.familyName = familyName;
-      this.targets = new ArrayList();
-      synchronized (targets)
-      {
-         this.targets.addAll(targets);
-      }
+      this.targets = cloneList(targets);
       this.currentViewId = viewId;
       
       this.isViewMembersInSyncWithViewId = false;
@@ -93,11 +89,7 @@
    {
       synchronized (this)
       {
-         ArrayList tmp = new ArrayList();
-         synchronized (targets)
-         {
-            tmp.addAll(targets);
-         }
+         ArrayList tmp = (ArrayList) targets.clone();
          tmp.remove (target);
          this.targets = tmp;
          this.isViewMembersInSyncWithViewId = false;
@@ -109,11 +101,7 @@
    {
       synchronized (this)
       {
-         this.targets = new ArrayList();
-         synchronized (targets)
-         {
-            this.targets.addAll(targets);
-         }
+         this.targets = cloneList(targets);
          this.currentViewId = viewId;
          this.isViewMembersInSyncWithViewId = true;
          return Collections.unmodifiableList(this.targets);
@@ -178,4 +166,21 @@
    
    // Inner classes -------------------------------------------------
 
+   private static ArrayList cloneList(List toClone)
+   {
+      if (toClone instanceof ArrayList)
+      {
+      	 synchronized (toClone)
+      	 {
+         	return (ArrayList) ((ArrayList) toClone).clone();
+         }
+      }
+      
+      ArrayList clone = new ArrayList(toClone.size());
+      synchronized (toClone)
+      {
+      	clone.addAll(toClone);
+      }
+      return clone;      
+   }
 }




More information about the jboss-cvs-commits mailing list