diff --git a/src/org/apache/cassandra/db/EfficientBidiMap.java b/src/org/apache/cassandra/db/EfficientBidiMap.java index 616de5e105..cba957c378 100644 --- a/src/org/apache/cassandra/db/EfficientBidiMap.java +++ b/src/org/apache/cassandra/db/EfficientBidiMap.java @@ -19,10 +19,14 @@ package org.apache.cassandra.db; import java.io.Serializable; -import java.util.*; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentSkipListSet; +import java.util.Map; +import java.util.SortedSet; +import java.util.Comparator; +import java.util.TreeSet; import org.apache.cassandra.db.ColumnComparatorFactory.ComparatorType; -import org.apache.cassandra.service.StorageService; /** @@ -31,19 +35,13 @@ import org.apache.cassandra.service.StorageService; class EfficientBidiMap implements Serializable { - private Map map_ = new HashMap(); + private Map map_; private SortedSet sortedSet_; private Comparator columnComparator_; - EfficientBidiMap() - { - this(ColumnComparatorFactory.getComparator(ComparatorType.TIMESTAMP)); - } - EfficientBidiMap(Comparator columnComparator) { - columnComparator_ = columnComparator; - sortedSet_ = new TreeSet(columnComparator); + this(new ConcurrentHashMap(), new ConcurrentSkipListSet(columnComparator), columnComparator); } EfficientBidiMap(Map map, SortedSet set, Comparator comparator) @@ -53,18 +51,6 @@ class EfficientBidiMap implements Serializable columnComparator_ = comparator; } - EfficientBidiMap(Object[] objects, Comparator columnComparator) - { - columnComparator_ = columnComparator; - sortedSet_ = new TreeSet(columnComparator); - for ( Object object : objects ) - { - IColumn column = (IColumn)object; - sortedSet_.add(column); - map_.put(column.name(), column); - } - } - public Comparator getComparator() { return columnComparator_; @@ -116,8 +102,8 @@ class EfficientBidiMap implements Serializable EfficientBidiMap cloneMe() { - Map map = new HashMap(map_); - SortedSet set = new TreeSet(sortedSet_); + Map map = new ConcurrentHashMap(map_); + SortedSet set = new ConcurrentSkipListSet(sortedSet_); return new EfficientBidiMap(map, set, columnComparator_); } }