From eba2bc1dadc4bae68ce4b7f0e641e112e5272352 Mon Sep 17 00:00:00 2001 From: fhanik Date: Thu, 14 Dec 2006 17:19:24 +0000 Subject: [PATCH] Use a concurrent hashmap as a base class instead git-svn-id: https://svn.apache.org/repos/asf/tomcat/tc6.0.x/trunk@487262 13f79535-47bb-0310-9956-ffa450edef68 --- java/org/apache/catalina/ha/context/ReplicatedContext.java | 7 ++++--- java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/java/org/apache/catalina/ha/context/ReplicatedContext.java b/java/org/apache/catalina/ha/context/ReplicatedContext.java index ec23373a8..d1ab8ca79 100644 --- a/java/org/apache/catalina/ha/context/ReplicatedContext.java +++ b/java/org/apache/catalina/ha/context/ReplicatedContext.java @@ -27,6 +27,7 @@ import org.apache.catalina.Globals; import javax.servlet.ServletContext; import java.util.HashMap; import org.apache.catalina.tribes.tipis.LazyReplicatedMap; +import java.util.AbstractMap; /** * @author Filip Hanik @@ -113,10 +114,10 @@ public class ReplicatedContext extends StandardContext { return super.getFacade(); } - public HashMap getAttributeMap() { - return (HashMap)this.attributes; + public AbstractMap getAttributeMap() { + return (AbstractMap)this.attributes; } - public void setAttributeMap(HashMap map) { + public void setAttributeMap(AbstractMap map) { this.attributes = map; } diff --git a/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java b/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java index a17379e95..737e13265 100644 --- a/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java +++ b/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java @@ -47,13 +47,14 @@ import org.apache.catalina.tribes.util.Arrays; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; import java.util.ConcurrentModificationException; +import java.util.concurrent.ConcurrentHashMap; /** * * @author Filip Hanik * @version 1.0 */ -public abstract class AbstractReplicatedMap extends LinkedHashMap implements RpcCallback, ChannelListener, MembershipListener, Heartbeat { +public abstract class AbstractReplicatedMap extends ConcurrentHashMap implements RpcCallback, ChannelListener, MembershipListener, Heartbeat { protected static Log log = LogFactory.getLog(AbstractReplicatedMap.class); /** @@ -159,7 +160,7 @@ public abstract class AbstractReplicatedMap extends LinkedHashMap implements Rpc float loadFactor, int channelSendOptions, ClassLoader[] cls) { - super(initialCapacity, loadFactor); + super(initialCapacity, loadFactor, 15); init(owner, channel, mapContextName, timeout, channelSendOptions, cls); } @@ -958,7 +959,7 @@ public abstract class AbstractReplicatedMap extends LinkedHashMap implements Rpc //todo, implement a counter variable instead //only count active members in this node int counter = 0; - Iterator it = Collections.unmodifiableSet(super.entrySet()).iterator(); + Iterator it = super.entrySet().iterator(); while (it.hasNext() ) { Map.Entry e = (Map.Entry) it.next(); if ( e != null ) { -- 2.11.0