Fix modification logic, still busted though
authorfhanik <fhanik@13f79535-47bb-0310-9956-ffa450edef68>
Mon, 9 Oct 2006 18:56:06 +0000 (18:56 +0000)
committerfhanik <fhanik@13f79535-47bb-0310-9956-ffa450edef68>
Mon, 9 Oct 2006 18:56:06 +0000 (18:56 +0000)
git-svn-id: https://svn.apache.org/repos/asf/tomcat/tc6.0.x/trunk@454457 13f79535-47bb-0310-9956-ffa450edef68

java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java

index 8460e85..d0d665f 100644 (file)
@@ -664,8 +664,10 @@ public abstract class AbstractReplicatedMap extends LinkedHashMap implements Rpc
         MapEntry entry = (MapEntry)super.remove(key);
 
         try {
-            MapMessage msg = new MapMessage(getMapContextName(),MapMessage.MSG_REMOVE,false,(Serializable)key,null,null,null);
-            getChannel().send(getMapMembers(), msg,getChannelSendOptions());
+            if (getMapMembers().length > 0 ) {
+                MapMessage msg = new MapMessage(getMapContextName(), MapMessage.MSG_REMOVE, false, (Serializable) key, null, null, null);
+                getChannel().send(getMapMembers(), msg, getChannelSendOptions());
+            }
         } catch ( ChannelException x ) {
             log.error("Unable to replicate out data for a LazyReplicatedMap.remove operation",x);
         }
@@ -863,9 +865,9 @@ public abstract class AbstractReplicatedMap extends LinkedHashMap implements Rpc
             //todo, implement a counter variable instead
             //only count active members in this node
             int counter = 0;
-            Object[] items = super.entrySet().toArray();
-            for (int i=0; i<items.length; i++ ) {
-                Map.Entry e = (Map.Entry) items[i];
+            Iterator it = super.entrySet().iterator();
+            while (it.hasNext() ) {
+                Map.Entry e = (Map.Entry) it.next();
                 if ( e != null ) {
                     MapEntry entry = (MapEntry) e.getValue();
                     if (entry.isPrimary() && entry.getValue() != null) counter++;
@@ -883,7 +885,7 @@ public abstract class AbstractReplicatedMap extends LinkedHashMap implements Rpc
         }
     
         public Collection values() {
-            ArrayList values = new ArrayList(super.size());
+            ArrayList values = new ArrayList();
             Iterator i = super.entrySet().iterator();
             while ( i.hasNext() ) {
                 Map.Entry e = (Map.Entry)i.next();