Author: fhanik Date: Thu Dec 14 09:19:24 2006 New Revision: 487262 URL: http://svn.apache.org/viewvc?view=rev&rev=487262 Log: Use a concurrent hashmap as a base class instead
Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/context/ReplicatedContext.java tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/context/ReplicatedContext.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/context/ReplicatedContext.java?view=diff&rev=487262&r1=487261&r2=487262 ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/context/ReplicatedContext.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/context/ReplicatedContext.java Thu Dec 14 09:19:24 2006 @@ -27,6 +27,7 @@ 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 @@ 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; } Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java?view=diff&rev=487262&r1=487261&r2=487262 ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java Thu Dec 14 09:19:24 2006 @@ -47,13 +47,14 @@ 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 @@ float loadFactor, int channelSendOptions, ClassLoader[] cls) { - super(initialCapacity, loadFactor); + super(initialCapacity, loadFactor, 15); init(owner, channel, mapContextName, timeout, channelSendOptions, cls); } @@ -958,7 +959,7 @@ //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 ) { --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]