import javax.servlet.ServletContext;
import java.util.HashMap;
import org.apache.catalina.tribes.tipis.LazyReplicatedMap;
+import java.util.AbstractMap;
/**
* @author Filip Hanik
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;
}
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);
/**
float loadFactor,
int channelSendOptions,
ClassLoader[] cls) {
- super(initialCapacity, loadFactor);
+ super(initialCapacity, loadFactor, 15);
init(owner, channel, mapContextName, timeout, channelSendOptions, cls);
}
//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 ) {