You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by xe...@apache.org on 2011/11/24 21:54:11 UTC

svn commit: r1205977 - in /cassandra/branches/cassandra-1.0: CHANGES.txt src/java/org/apache/cassandra/config/Schema.java

Author: xedin
Date: Thu Nov 24 20:54:10 2011
New Revision: 1205977

URL: http://svn.apache.org/viewvc?rev=1205977&view=rev
Log:
fix ConcurrentModificationException in Table.all()
patch by Jonathan Ellis; reviewed by Pavel Yaskevich for CASSANDRA-3529

Modified:
    cassandra/branches/cassandra-1.0/CHANGES.txt
    cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/config/Schema.java

Modified: cassandra/branches/cassandra-1.0/CHANGES.txt
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/CHANGES.txt?rev=1205977&r1=1205976&r2=1205977&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/CHANGES.txt (original)
+++ cassandra/branches/cassandra-1.0/CHANGES.txt Thu Nov 24 20:54:10 2011
@@ -15,7 +15,7 @@ Merged from 0.8:
  * fix array out of bounds error in counter shard removal (CASSANDRA-3514)
  * avoid dropping tombstones when they might still be needed to shadow
    data in a different sstable (CASSANDRA-2786)
-
+ * fix ConcurrentModificationException in Table.all() (CASSANDRA-3529)
 
 1.0.3
  * revert name-based query defragmentation aka CASSANDRA-2503 (CASSANDRA-3491)

Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/config/Schema.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/config/Schema.java?rev=1205977&r1=1205976&r2=1205977&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/config/Schema.java (original)
+++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/config/Schema.java Thu Nov 24 20:54:10 2011
@@ -49,13 +49,13 @@ public class Schema
     private final AtomicInteger cfIdGen = new AtomicInteger(MIN_CF_ID);
 
     /* metadata map for faster table lookup */
-    private final Map<String, KSMetaData> tables;
+    private final Map<String, KSMetaData> tables = new NonBlockingHashMap<String, KSMetaData>();
 
     /* Table objects, one per keyspace. Only one instance should ever exist for any given keyspace. */
-    private final Map<String, Table> tableInstances;
+    private final Map<String, Table> tableInstances = new NonBlockingHashMap<String, Table>();
 
     /* metadata map for faster ColumnFamily lookup */
-    private final BiMap<Pair<String, String>, Integer> cfIdMap;
+    private final BiMap<Pair<String, String>, Integer> cfIdMap = HashBiMap.create();
 
     private volatile UUID version;
 
@@ -65,9 +65,6 @@ public class Schema
      */
     public Schema(UUID initialVersion)
     {
-        tables = new HashMap<String, KSMetaData>();
-        tableInstances = new NonBlockingHashMap<String, Table>();
-        cfIdMap = HashBiMap.create();
         version = initialVersion;
     }