Author: kfujino
Date: Tue Jan 20 02:07:41 2015
New Revision: 1653181

URL: http://svn.apache.org/r1653181
Log:
Copy node does not need to send the entry data.
It is enough to send only the node information of the entry.

Modified:
    
tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java

Modified: 
tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java?rev=1653181&r1=1653180&r2=1653181&view=diff
==============================================================================
--- 
tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java 
(original)
+++ 
tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java 
Tue Jan 20 02:07:41 2015
@@ -695,6 +695,14 @@ public abstract class AbstractReplicated
                 }
             }
         }
+
+        if (mapmsg.getMsgType() == MapMessage.MSG_NOTIFY_MAPMEMBER) {
+            MapEntry<K, V> entry = innerMap.get(mapmsg.getKey());
+            if (entry != null) {
+                entry.setBackupNodes(mapmsg.getBackupNodes());
+                entry.setPrimary(mapmsg.getPrimary());
+            }
+        }
     }
 
     @Override
@@ -929,8 +937,12 @@ public abstract class AbstractReplicated
                         val.setOwner(getMapOwner());
                     }
                 } else if ( entry.isCopy() ) {
-                    // TODO no need to send the entry data.
-                    backup = publishEntryInfo(key, entry.getValue());
+                    backup = getMapMembers();
+                    if (backup.length > 0) {
+                        msg = new MapMessage(getMapContextName(), 
MapMessage.MSG_NOTIFY_MAPMEMBER,false,
+                                
(Serializable)key,null,null,channel.getLocalMember(false),backup);
+                        getChannel().send(backup, msg, 
getChannelSendOptions());
+                    }
                 }
                 entry.setPrimary(channel.getLocalMember(false));
                 entry.setBackupNodes(backup);
@@ -1319,6 +1331,7 @@ public abstract class AbstractReplicated
         public static final int MSG_COPY = 9;
         public static final int MSG_STATE_COPY = 10;
         public static final int MSG_ACCESS = 11;
+        public static final int MSG_NOTIFY_MAPMEMBER = 12;
 
         private final byte[] mapId;
         private final int msgtype;
@@ -1357,6 +1370,7 @@ public abstract class AbstractReplicated
                 case MSG_STATE_COPY: return "MSG_STATE_COPY";
                 case MSG_COPY: return "MSG_COPY";
                 case MSG_ACCESS: return "MSG_ACCESS";
+                case MSG_NOTIFY_MAPMEMBER: return "MSG_NOTIFY_MAPMEMBER";
                 default : return "UNKNOWN";
             }
         }



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to