You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by kf...@apache.org on 2015/02/17 03:17:17 UTC
svn commit: r1660265 -
/tomcat/trunk/java/org/apache/catalina/tribes/tipis/ReplicatedMap.java
Author: kfujino
Date: Tue Feb 17 02:17:16 2015
New Revision: 1660265
URL: http://svn.apache.org/r1660265
Log:
Make sure that add to the backup node of the map entry when map member has been added to ReplicatedMap.
Modified:
tomcat/trunk/java/org/apache/catalina/tribes/tipis/ReplicatedMap.java
Modified: tomcat/trunk/java/org/apache/catalina/tribes/tipis/ReplicatedMap.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/tipis/ReplicatedMap.java?rev=1660265&r1=1660264&r2=1660265&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/tribes/tipis/ReplicatedMap.java (original)
+++ tomcat/trunk/java/org/apache/catalina/tribes/tipis/ReplicatedMap.java Tue Feb 17 02:17:16 2015
@@ -203,4 +203,29 @@ public class ReplicatedMap<K,V> extends
long complete = System.currentTimeMillis() - start;
if (log.isInfoEnabled()) log.info("Relocation of map entries was complete in " + complete + " ms.");
}
+
+ public void mapMemberAdded(Member member) {
+ if ( member.equals(getChannel().getLocalMember(false)) ) return;
+ boolean memberAdded = false;
+ synchronized (mapMembers) {
+ if (!mapMembers.containsKey(member) ) {
+ mapMembers.put(member, new Long(System.currentTimeMillis()));
+ memberAdded = true;
+ }
+ }
+ if ( memberAdded ) {
+ synchronized (stateMutex) {
+ Member[] backup = getMapMembers();
+ Iterator<Map.Entry<K,MapEntry<K,V>>> i = innerMap.entrySet().iterator();
+ while (i.hasNext()) {
+ Map.Entry<K,MapEntry<K,V>> e = i.next();
+ MapEntry<K,V> entry = innerMap.get(e.getKey());
+ if ( entry == null ) continue;
+ if (entry.isPrimary() && !inSet(member,entry.getBackupNodes())) {
+ entry.setBackupNodes(backup);
+ }
+ }
+ }
+ }
+ }
}
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org