[jira] [Commented] (CASSANDRA-4496) NPE on creating secondary index

2012-08-14 Thread David Semeria (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-4496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13434566#comment-13434566
 ] 

David Semeria commented on CASSANDRA-4496:
--

Ok, false alarm. AbstractType changed underneath me thus breaking my cutsom 
comparator.
Might I suggest that on the creation of a new column family (an infrequent 
event) core executes a suite of simple tests on the supplied comparator(s) just 
to make sure they perform to spec.
This would make catching similar situations in the future much easier. 
Keep up the excellent work!

> NPE on creating secondary index
> ---
>
> Key: CASSANDRA-4496
> URL: https://issues.apache.org/jira/browse/CASSANDRA-4496
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
>Affects Versions: 1.1.2, 1.1.3
> Environment: Ubuntu 12.4 
> Linux 3.2.0-27-generic #43-Ubuntu SMP Fri Jul 6 14:25:57 UTC 2012 x86_64 
> x86_64 x86_64 GNU/Linux
> java version "1.7.0"
> Java(TM) SE Runtime Environment (build 1.7.0-b147)
> Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode)
>Reporter: David Semeria
>Assignee: Pavel Yaskevich
> Attachments: hector-core-1.0-3.jar, jellyfish.jar, 
> JNameComparator.java, JSerializer.java, JValueComparator.java
>
>
> The following code has been working fine up to and including 1.0.x
> public static String createIndexedColumnFamily(String cf){
> 
> Cluster cluster = HectorConfig.cluster;
> ComparatorType ctName = 
> ComparatorType.getByClassName(JNameComparator.class.getName());
> 
> try{
>   cluster.dropColumnFamily(HectorConfig.dfltKeyspaceName, cf );
> } catch (Exception e){}
>   
> List cdL = new ArrayList();
> BasicColumnDefinition cd;
> 
> cd = new BasicColumnDefinition();
> cd.setName(ss.toByteBuffer("id"));
> cd.setIndexName("id");
> cd.setIndexType(ColumnIndexType.KEYS);
> cd.setValidationClass(JValueComparator.class.getName());
> cdL.add(cd);
> ThriftCfDef cfd= new ThriftCfDef(HectorConfig.dfltKeyspaceName, cf, 
> ctName, cdL); 
> cfd.setKeyValidationClass(ComparatorType.UTF8TYPE.getClassName());
> cfd.setDefaultValidationClass(JValueComparator.class.getName());
> cluster.addColumnFamily(cfd); 
> 
> return "created: " + cf;
>   }
> }
> I'm inclined to exclude the presence of the custom comparator since:
> (1) there is no issue using it if the cf doesn't have a secondary index
> (2) the stack trace (see below) doesn't include the comparator 
> The above code throws the following error in Cassandra 1.1.2 and 1.1.3
> david@vlap1:~/opt/cassandra$ sudo bin/cassandra -f
> xss =  -ea -javaagent:/usr/share/cassandra/lib/jamm-0.2.5.jar 
> -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -Xms128M -Xmx128M 
> -Xmn32M -XX:+HeapDumpOnOutOfMemoryError -Xss160k
>  INFO 23:15:31,333 Logging initialized
>  INFO 23:15:31,337 JVM vendor/version: Java HotSpot(TM) 64-Bit Server VM/1.7.0
>  INFO 23:15:31,338 Heap size: 130875392/130875392
>  INFO 23:15:31,338 Classpath: 
> /etc/cassandra:/usr/share/cassandra/lib/antlr-3.2.jar:/usr/share/cassandra/lib/avro-1.4.0-fixes.jar:/usr/share/cassandra/lib/avro-1.4.0-sources-fixes.jar:/usr/share/cassandra/lib/commons-cli-1.1.jar:/usr/share/cassandra/lib/commons-codec-1.2.jar:/usr/share/cassandra/lib/commons-lang-2.4.jar:/usr/share/cassandra/lib/compress-lzf-0.8.4.jar:/usr/share/cassandra/lib/concurrentlinkedhashmap-lru-1.3.jar:/usr/share/cassandra/lib/guava-r08.jar:/usr/share/cassandra/lib/hector-core-1.0-3.jar:/usr/share/cassandra/lib/high-scale-lib-1.1.2.jar:/usr/share/cassandra/lib/jackson-core-asl-1.9.2.jar:/usr/share/cassandra/lib/jackson-mapper-asl-1.9.2.jar:/usr/share/cassandra/lib/jamm-0.2.5.jar:/usr/share/cassandra/lib/jellyfish.jar:/usr/share/cassandra/lib/jline-0.9.94.jar:/usr/share/cassandra/lib/json-simple-1.1.jar:/usr/share/cassandra/lib/libthrift-0.7.0.jar:/usr/share/cassandra/lib/log4j-1.2.16.jar:/usr/share/cassandra/lib/metrics-core-2.0.3.jar:/usr/share/cassandra/lib/servlet-api-2.5-20081211.jar:/usr/share/cassandra/lib/slf4j-api-1.6.1.jar:/usr/share/cassandra/lib/slf4j-log4j12-1.6.1.jar:/usr/share/cassandra/lib/snakeyaml-1.6.jar:/usr/share/cassandra/lib/snappy-java-1.0.4.1.jar:/usr/share/cassandra/lib/snaptree-0.1.jar:/usr/share/cassandra/apache-cassandra-1.1.2.jar:/usr/share/cassandra/apache-cassandra-thrift-1.1.2.jar:/usr/share/cassandra/apache-cassandra.jar:/usr/share/cassandra/stress.jar:/usr/share/cassandra/lib/jamm-0.2.5.jar
>  INFO 23:15:31,340 JNA not found. Native methods will be disabled.
>  INFO 23:15:31,351 Loading settings from file:/etc/cassandra/cassandra.yaml
>  INFO 23:15:31,566 DiskAccessMode 'auto' determined to be mmap, 
> indexAccessMode is mmap
>  INFO 23:15:31,875 Global memtable threshold is enabled at 41MB
>  INFO 23:15:32,380 In

[jira] [Commented] (CASSANDRA-4496) NPE on creating secondary index

2012-08-10 Thread David Semeria (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-4496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13432703#comment-13432703
 ] 

David Semeria commented on CASSANDRA-4496:
--

Ok, something must have changed between 1.0 and 1.1
I'll fix the comparator and confirm the problem was at my end (this may take a 
few days)

> NPE on creating secondary index
> ---
>
> Key: CASSANDRA-4496
> URL: https://issues.apache.org/jira/browse/CASSANDRA-4496
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
>Affects Versions: 1.1.2, 1.1.3
> Environment: Ubuntu 12.4 
> Linux 3.2.0-27-generic #43-Ubuntu SMP Fri Jul 6 14:25:57 UTC 2012 x86_64 
> x86_64 x86_64 GNU/Linux
> java version "1.7.0"
> Java(TM) SE Runtime Environment (build 1.7.0-b147)
> Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode)
>Reporter: David Semeria
>Assignee: Pavel Yaskevich
> Attachments: JNameComparator.java, JSerializer.java, 
> JValueComparator.java, hector-core-1.0-3.jar, jellyfish.jar
>
>
> The following code has been working fine up to and including 1.0.x
> public static String createIndexedColumnFamily(String cf){
> 
> Cluster cluster = HectorConfig.cluster;
> ComparatorType ctName = 
> ComparatorType.getByClassName(JNameComparator.class.getName());
> 
> try{
>   cluster.dropColumnFamily(HectorConfig.dfltKeyspaceName, cf );
> } catch (Exception e){}
>   
> List cdL = new ArrayList();
> BasicColumnDefinition cd;
> 
> cd = new BasicColumnDefinition();
> cd.setName(ss.toByteBuffer("id"));
> cd.setIndexName("id");
> cd.setIndexType(ColumnIndexType.KEYS);
> cd.setValidationClass(JValueComparator.class.getName());
> cdL.add(cd);
> ThriftCfDef cfd= new ThriftCfDef(HectorConfig.dfltKeyspaceName, cf, 
> ctName, cdL); 
> cfd.setKeyValidationClass(ComparatorType.UTF8TYPE.getClassName());
> cfd.setDefaultValidationClass(JValueComparator.class.getName());
> cluster.addColumnFamily(cfd); 
> 
> return "created: " + cf;
>   }
> }
> I'm inclined to exclude the presence of the custom comparator since:
> (1) there is no issue using it if the cf doesn't have a secondary index
> (2) the stack trace (see below) doesn't include the comparator 
> The above code throws the following error in Cassandra 1.1.2 and 1.1.3
> david@vlap1:~/opt/cassandra$ sudo bin/cassandra -f
> xss =  -ea -javaagent:/usr/share/cassandra/lib/jamm-0.2.5.jar 
> -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -Xms128M -Xmx128M 
> -Xmn32M -XX:+HeapDumpOnOutOfMemoryError -Xss160k
>  INFO 23:15:31,333 Logging initialized
>  INFO 23:15:31,337 JVM vendor/version: Java HotSpot(TM) 64-Bit Server VM/1.7.0
>  INFO 23:15:31,338 Heap size: 130875392/130875392
>  INFO 23:15:31,338 Classpath: 
> /etc/cassandra:/usr/share/cassandra/lib/antlr-3.2.jar:/usr/share/cassandra/lib/avro-1.4.0-fixes.jar:/usr/share/cassandra/lib/avro-1.4.0-sources-fixes.jar:/usr/share/cassandra/lib/commons-cli-1.1.jar:/usr/share/cassandra/lib/commons-codec-1.2.jar:/usr/share/cassandra/lib/commons-lang-2.4.jar:/usr/share/cassandra/lib/compress-lzf-0.8.4.jar:/usr/share/cassandra/lib/concurrentlinkedhashmap-lru-1.3.jar:/usr/share/cassandra/lib/guava-r08.jar:/usr/share/cassandra/lib/hector-core-1.0-3.jar:/usr/share/cassandra/lib/high-scale-lib-1.1.2.jar:/usr/share/cassandra/lib/jackson-core-asl-1.9.2.jar:/usr/share/cassandra/lib/jackson-mapper-asl-1.9.2.jar:/usr/share/cassandra/lib/jamm-0.2.5.jar:/usr/share/cassandra/lib/jellyfish.jar:/usr/share/cassandra/lib/jline-0.9.94.jar:/usr/share/cassandra/lib/json-simple-1.1.jar:/usr/share/cassandra/lib/libthrift-0.7.0.jar:/usr/share/cassandra/lib/log4j-1.2.16.jar:/usr/share/cassandra/lib/metrics-core-2.0.3.jar:/usr/share/cassandra/lib/servlet-api-2.5-20081211.jar:/usr/share/cassandra/lib/slf4j-api-1.6.1.jar:/usr/share/cassandra/lib/slf4j-log4j12-1.6.1.jar:/usr/share/cassandra/lib/snakeyaml-1.6.jar:/usr/share/cassandra/lib/snappy-java-1.0.4.1.jar:/usr/share/cassandra/lib/snaptree-0.1.jar:/usr/share/cassandra/apache-cassandra-1.1.2.jar:/usr/share/cassandra/apache-cassandra-thrift-1.1.2.jar:/usr/share/cassandra/apache-cassandra.jar:/usr/share/cassandra/stress.jar:/usr/share/cassandra/lib/jamm-0.2.5.jar
>  INFO 23:15:31,340 JNA not found. Native methods will be disabled.
>  INFO 23:15:31,351 Loading settings from file:/etc/cassandra/cassandra.yaml
>  INFO 23:15:31,566 DiskAccessMode 'auto' determined to be mmap, 
> indexAccessMode is mmap
>  INFO 23:15:31,875 Global memtable threshold is enabled at 41MB
>  INFO 23:15:32,380 Initializing key cache with capacity of 6 MBs.
>  INFO 23:15:32,394 Scheduling key cache save to each 14400 seconds (going to 
> save all keys).
>  INFO 23:15:32,395 Initializing row cache with capacity of 0 MBs and provider 
> org.apache.ca

[jira] [Commented] (CASSANDRA-4496) NPE on creating secondary index

2012-08-10 Thread Pavel Yaskevich (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-4496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13432702#comment-13432702
 ] 

Pavel Yaskevich commented on CASSANDRA-4496:


Ok, I have tested with your classes and it is actually the problem with your 
JNameComparator, when columns are created note that "Column Name" returned by 
CLI is _empty_ which means that comparator is broken, also if I change 
comparator to UTF8Type for indexed2 (or any other statement) it works just fine.

> NPE on creating secondary index
> ---
>
> Key: CASSANDRA-4496
> URL: https://issues.apache.org/jira/browse/CASSANDRA-4496
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
>Affects Versions: 1.1.2, 1.1.3
> Environment: Ubuntu 12.4 
> Linux 3.2.0-27-generic #43-Ubuntu SMP Fri Jul 6 14:25:57 UTC 2012 x86_64 
> x86_64 x86_64 GNU/Linux
> java version "1.7.0"
> Java(TM) SE Runtime Environment (build 1.7.0-b147)
> Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode)
>Reporter: David Semeria
>Assignee: Pavel Yaskevich
> Attachments: JNameComparator.java, JSerializer.java, 
> JValueComparator.java, hector-core-1.0-3.jar, jellyfish.jar
>
>
> The following code has been working fine up to and including 1.0.x
> public static String createIndexedColumnFamily(String cf){
> 
> Cluster cluster = HectorConfig.cluster;
> ComparatorType ctName = 
> ComparatorType.getByClassName(JNameComparator.class.getName());
> 
> try{
>   cluster.dropColumnFamily(HectorConfig.dfltKeyspaceName, cf );
> } catch (Exception e){}
>   
> List cdL = new ArrayList();
> BasicColumnDefinition cd;
> 
> cd = new BasicColumnDefinition();
> cd.setName(ss.toByteBuffer("id"));
> cd.setIndexName("id");
> cd.setIndexType(ColumnIndexType.KEYS);
> cd.setValidationClass(JValueComparator.class.getName());
> cdL.add(cd);
> ThriftCfDef cfd= new ThriftCfDef(HectorConfig.dfltKeyspaceName, cf, 
> ctName, cdL); 
> cfd.setKeyValidationClass(ComparatorType.UTF8TYPE.getClassName());
> cfd.setDefaultValidationClass(JValueComparator.class.getName());
> cluster.addColumnFamily(cfd); 
> 
> return "created: " + cf;
>   }
> }
> I'm inclined to exclude the presence of the custom comparator since:
> (1) there is no issue using it if the cf doesn't have a secondary index
> (2) the stack trace (see below) doesn't include the comparator 
> The above code throws the following error in Cassandra 1.1.2 and 1.1.3
> david@vlap1:~/opt/cassandra$ sudo bin/cassandra -f
> xss =  -ea -javaagent:/usr/share/cassandra/lib/jamm-0.2.5.jar 
> -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -Xms128M -Xmx128M 
> -Xmn32M -XX:+HeapDumpOnOutOfMemoryError -Xss160k
>  INFO 23:15:31,333 Logging initialized
>  INFO 23:15:31,337 JVM vendor/version: Java HotSpot(TM) 64-Bit Server VM/1.7.0
>  INFO 23:15:31,338 Heap size: 130875392/130875392
>  INFO 23:15:31,338 Classpath: 
> /etc/cassandra:/usr/share/cassandra/lib/antlr-3.2.jar:/usr/share/cassandra/lib/avro-1.4.0-fixes.jar:/usr/share/cassandra/lib/avro-1.4.0-sources-fixes.jar:/usr/share/cassandra/lib/commons-cli-1.1.jar:/usr/share/cassandra/lib/commons-codec-1.2.jar:/usr/share/cassandra/lib/commons-lang-2.4.jar:/usr/share/cassandra/lib/compress-lzf-0.8.4.jar:/usr/share/cassandra/lib/concurrentlinkedhashmap-lru-1.3.jar:/usr/share/cassandra/lib/guava-r08.jar:/usr/share/cassandra/lib/hector-core-1.0-3.jar:/usr/share/cassandra/lib/high-scale-lib-1.1.2.jar:/usr/share/cassandra/lib/jackson-core-asl-1.9.2.jar:/usr/share/cassandra/lib/jackson-mapper-asl-1.9.2.jar:/usr/share/cassandra/lib/jamm-0.2.5.jar:/usr/share/cassandra/lib/jellyfish.jar:/usr/share/cassandra/lib/jline-0.9.94.jar:/usr/share/cassandra/lib/json-simple-1.1.jar:/usr/share/cassandra/lib/libthrift-0.7.0.jar:/usr/share/cassandra/lib/log4j-1.2.16.jar:/usr/share/cassandra/lib/metrics-core-2.0.3.jar:/usr/share/cassandra/lib/servlet-api-2.5-20081211.jar:/usr/share/cassandra/lib/slf4j-api-1.6.1.jar:/usr/share/cassandra/lib/slf4j-log4j12-1.6.1.jar:/usr/share/cassandra/lib/snakeyaml-1.6.jar:/usr/share/cassandra/lib/snappy-java-1.0.4.1.jar:/usr/share/cassandra/lib/snaptree-0.1.jar:/usr/share/cassandra/apache-cassandra-1.1.2.jar:/usr/share/cassandra/apache-cassandra-thrift-1.1.2.jar:/usr/share/cassandra/apache-cassandra.jar:/usr/share/cassandra/stress.jar:/usr/share/cassandra/lib/jamm-0.2.5.jar
>  INFO 23:15:31,340 JNA not found. Native methods will be disabled.
>  INFO 23:15:31,351 Loading settings from file:/etc/cassandra/cassandra.yaml
>  INFO 23:15:31,566 DiskAccessMode 'auto' determined to be mmap, 
> indexAccessMode is mmap
>  INFO 23:15:31,875 Global memtable threshold is enabled at 41MB
>  INFO 23:15:32,380 Initializing key cache with capacity of 6 MBs.
>  INFO 23:15:32,394 S

[jira] [Commented] (CASSANDRA-4496) NPE on creating secondary index

2012-08-09 Thread David Semeria (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-4496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13432350#comment-13432350
 ] 

David Semeria commented on CASSANDRA-4496:
--

Bear in mind the jars were built, and my tests run, under Sun Java 7

> NPE on creating secondary index
> ---
>
> Key: CASSANDRA-4496
> URL: https://issues.apache.org/jira/browse/CASSANDRA-4496
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
>Affects Versions: 1.1.2, 1.1.3
> Environment: Ubuntu 12.4 
> Linux 3.2.0-27-generic #43-Ubuntu SMP Fri Jul 6 14:25:57 UTC 2012 x86_64 
> x86_64 x86_64 GNU/Linux
> java version "1.7.0"
> Java(TM) SE Runtime Environment (build 1.7.0-b147)
> Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode)
>Reporter: David Semeria
>Assignee: Pavel Yaskevich
> Attachments: JNameComparator.java, JSerializer.java, 
> JValueComparator.java, hector-core-1.0-3.jar, jellyfish.jar
>
>
> The following code has been working fine up to and including 1.0.x
> public static String createIndexedColumnFamily(String cf){
> 
> Cluster cluster = HectorConfig.cluster;
> ComparatorType ctName = 
> ComparatorType.getByClassName(JNameComparator.class.getName());
> 
> try{
>   cluster.dropColumnFamily(HectorConfig.dfltKeyspaceName, cf );
> } catch (Exception e){}
>   
> List cdL = new ArrayList();
> BasicColumnDefinition cd;
> 
> cd = new BasicColumnDefinition();
> cd.setName(ss.toByteBuffer("id"));
> cd.setIndexName("id");
> cd.setIndexType(ColumnIndexType.KEYS);
> cd.setValidationClass(JValueComparator.class.getName());
> cdL.add(cd);
> ThriftCfDef cfd= new ThriftCfDef(HectorConfig.dfltKeyspaceName, cf, 
> ctName, cdL); 
> cfd.setKeyValidationClass(ComparatorType.UTF8TYPE.getClassName());
> cfd.setDefaultValidationClass(JValueComparator.class.getName());
> cluster.addColumnFamily(cfd); 
> 
> return "created: " + cf;
>   }
> }
> I'm inclined to exclude the presence of the custom comparator since:
> (1) there is no issue using it if the cf doesn't have a secondary index
> (2) the stack trace (see below) doesn't include the comparator 
> The above code throws the following error in Cassandra 1.1.2 and 1.1.3
> david@vlap1:~/opt/cassandra$ sudo bin/cassandra -f
> xss =  -ea -javaagent:/usr/share/cassandra/lib/jamm-0.2.5.jar 
> -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -Xms128M -Xmx128M 
> -Xmn32M -XX:+HeapDumpOnOutOfMemoryError -Xss160k
>  INFO 23:15:31,333 Logging initialized
>  INFO 23:15:31,337 JVM vendor/version: Java HotSpot(TM) 64-Bit Server VM/1.7.0
>  INFO 23:15:31,338 Heap size: 130875392/130875392
>  INFO 23:15:31,338 Classpath: 
> /etc/cassandra:/usr/share/cassandra/lib/antlr-3.2.jar:/usr/share/cassandra/lib/avro-1.4.0-fixes.jar:/usr/share/cassandra/lib/avro-1.4.0-sources-fixes.jar:/usr/share/cassandra/lib/commons-cli-1.1.jar:/usr/share/cassandra/lib/commons-codec-1.2.jar:/usr/share/cassandra/lib/commons-lang-2.4.jar:/usr/share/cassandra/lib/compress-lzf-0.8.4.jar:/usr/share/cassandra/lib/concurrentlinkedhashmap-lru-1.3.jar:/usr/share/cassandra/lib/guava-r08.jar:/usr/share/cassandra/lib/hector-core-1.0-3.jar:/usr/share/cassandra/lib/high-scale-lib-1.1.2.jar:/usr/share/cassandra/lib/jackson-core-asl-1.9.2.jar:/usr/share/cassandra/lib/jackson-mapper-asl-1.9.2.jar:/usr/share/cassandra/lib/jamm-0.2.5.jar:/usr/share/cassandra/lib/jellyfish.jar:/usr/share/cassandra/lib/jline-0.9.94.jar:/usr/share/cassandra/lib/json-simple-1.1.jar:/usr/share/cassandra/lib/libthrift-0.7.0.jar:/usr/share/cassandra/lib/log4j-1.2.16.jar:/usr/share/cassandra/lib/metrics-core-2.0.3.jar:/usr/share/cassandra/lib/servlet-api-2.5-20081211.jar:/usr/share/cassandra/lib/slf4j-api-1.6.1.jar:/usr/share/cassandra/lib/slf4j-log4j12-1.6.1.jar:/usr/share/cassandra/lib/snakeyaml-1.6.jar:/usr/share/cassandra/lib/snappy-java-1.0.4.1.jar:/usr/share/cassandra/lib/snaptree-0.1.jar:/usr/share/cassandra/apache-cassandra-1.1.2.jar:/usr/share/cassandra/apache-cassandra-thrift-1.1.2.jar:/usr/share/cassandra/apache-cassandra.jar:/usr/share/cassandra/stress.jar:/usr/share/cassandra/lib/jamm-0.2.5.jar
>  INFO 23:15:31,340 JNA not found. Native methods will be disabled.
>  INFO 23:15:31,351 Loading settings from file:/etc/cassandra/cassandra.yaml
>  INFO 23:15:31,566 DiskAccessMode 'auto' determined to be mmap, 
> indexAccessMode is mmap
>  INFO 23:15:31,875 Global memtable threshold is enabled at 41MB
>  INFO 23:15:32,380 Initializing key cache with capacity of 6 MBs.
>  INFO 23:15:32,394 Scheduling key cache save to each 14400 seconds (going to 
> save all keys).
>  INFO 23:15:32,395 Initializing row cache with capacity of 0 MBs and provider 
> org.apache.cassandra.cache.SerializingCacheProvider
>  INFO 23:15:32,400 Scheduling ro

[jira] [Commented] (CASSANDRA-4496) NPE on creating secondary index

2012-08-09 Thread Pavel Yaskevich (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-4496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13432304#comment-13432304
 ] 

Pavel Yaskevich commented on CASSANDRA-4496:


Can you attach your comparator classes to the ticket so I can test with them?

> NPE on creating secondary index
> ---
>
> Key: CASSANDRA-4496
> URL: https://issues.apache.org/jira/browse/CASSANDRA-4496
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
>Affects Versions: 1.1.2, 1.1.3
> Environment: Ubuntu 12.4 
> Linux 3.2.0-27-generic #43-Ubuntu SMP Fri Jul 6 14:25:57 UTC 2012 x86_64 
> x86_64 x86_64 GNU/Linux
> java version "1.7.0"
> Java(TM) SE Runtime Environment (build 1.7.0-b147)
> Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode)
>Reporter: David Semeria
>Assignee: Pavel Yaskevich
>
> The following code has been working fine up to and including 1.0.x
> public static String createIndexedColumnFamily(String cf){
> 
> Cluster cluster = HectorConfig.cluster;
> ComparatorType ctName = 
> ComparatorType.getByClassName(JNameComparator.class.getName());
> 
> try{
>   cluster.dropColumnFamily(HectorConfig.dfltKeyspaceName, cf );
> } catch (Exception e){}
>   
> List cdL = new ArrayList();
> BasicColumnDefinition cd;
> 
> cd = new BasicColumnDefinition();
> cd.setName(ss.toByteBuffer("id"));
> cd.setIndexName("id");
> cd.setIndexType(ColumnIndexType.KEYS);
> cd.setValidationClass(JValueComparator.class.getName());
> cdL.add(cd);
> ThriftCfDef cfd= new ThriftCfDef(HectorConfig.dfltKeyspaceName, cf, 
> ctName, cdL); 
> cfd.setKeyValidationClass(ComparatorType.UTF8TYPE.getClassName());
> cfd.setDefaultValidationClass(JValueComparator.class.getName());
> cluster.addColumnFamily(cfd); 
> 
> return "created: " + cf;
>   }
> }
> I'm inclined to exclude the presence of the custom comparator since:
> (1) there is no issue using it if the cf doesn't have a secondary index
> (2) the stack trace (see below) doesn't include the comparator 
> The above code throws the following error in Cassandra 1.1.2 and 1.1.3
> david@vlap1:~/opt/cassandra$ sudo bin/cassandra -f
> xss =  -ea -javaagent:/usr/share/cassandra/lib/jamm-0.2.5.jar 
> -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -Xms128M -Xmx128M 
> -Xmn32M -XX:+HeapDumpOnOutOfMemoryError -Xss160k
>  INFO 23:15:31,333 Logging initialized
>  INFO 23:15:31,337 JVM vendor/version: Java HotSpot(TM) 64-Bit Server VM/1.7.0
>  INFO 23:15:31,338 Heap size: 130875392/130875392
>  INFO 23:15:31,338 Classpath: 
> /etc/cassandra:/usr/share/cassandra/lib/antlr-3.2.jar:/usr/share/cassandra/lib/avro-1.4.0-fixes.jar:/usr/share/cassandra/lib/avro-1.4.0-sources-fixes.jar:/usr/share/cassandra/lib/commons-cli-1.1.jar:/usr/share/cassandra/lib/commons-codec-1.2.jar:/usr/share/cassandra/lib/commons-lang-2.4.jar:/usr/share/cassandra/lib/compress-lzf-0.8.4.jar:/usr/share/cassandra/lib/concurrentlinkedhashmap-lru-1.3.jar:/usr/share/cassandra/lib/guava-r08.jar:/usr/share/cassandra/lib/hector-core-1.0-3.jar:/usr/share/cassandra/lib/high-scale-lib-1.1.2.jar:/usr/share/cassandra/lib/jackson-core-asl-1.9.2.jar:/usr/share/cassandra/lib/jackson-mapper-asl-1.9.2.jar:/usr/share/cassandra/lib/jamm-0.2.5.jar:/usr/share/cassandra/lib/jellyfish.jar:/usr/share/cassandra/lib/jline-0.9.94.jar:/usr/share/cassandra/lib/json-simple-1.1.jar:/usr/share/cassandra/lib/libthrift-0.7.0.jar:/usr/share/cassandra/lib/log4j-1.2.16.jar:/usr/share/cassandra/lib/metrics-core-2.0.3.jar:/usr/share/cassandra/lib/servlet-api-2.5-20081211.jar:/usr/share/cassandra/lib/slf4j-api-1.6.1.jar:/usr/share/cassandra/lib/slf4j-log4j12-1.6.1.jar:/usr/share/cassandra/lib/snakeyaml-1.6.jar:/usr/share/cassandra/lib/snappy-java-1.0.4.1.jar:/usr/share/cassandra/lib/snaptree-0.1.jar:/usr/share/cassandra/apache-cassandra-1.1.2.jar:/usr/share/cassandra/apache-cassandra-thrift-1.1.2.jar:/usr/share/cassandra/apache-cassandra.jar:/usr/share/cassandra/stress.jar:/usr/share/cassandra/lib/jamm-0.2.5.jar
>  INFO 23:15:31,340 JNA not found. Native methods will be disabled.
>  INFO 23:15:31,351 Loading settings from file:/etc/cassandra/cassandra.yaml
>  INFO 23:15:31,566 DiskAccessMode 'auto' determined to be mmap, 
> indexAccessMode is mmap
>  INFO 23:15:31,875 Global memtable threshold is enabled at 41MB
>  INFO 23:15:32,380 Initializing key cache with capacity of 6 MBs.
>  INFO 23:15:32,394 Scheduling key cache save to each 14400 seconds (going to 
> save all keys).
>  INFO 23:15:32,395 Initializing row cache with capacity of 0 MBs and provider 
> org.apache.cassandra.cache.SerializingCacheProvider
>  INFO 23:15:32,400 Scheduling row cache save to each 0 seconds (going to save 
> all keys).
>  INFO 23:15:32,661 Couldn't detect any schema definit

[jira] [Commented] (CASSANDRA-4496) NPE on creating secondary index

2012-08-09 Thread David Semeria (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-4496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13432303#comment-13432303
 ] 

David Semeria commented on CASSANDRA-4496:
--

Actually I did test in 1.1.3 but I ran the tests below in 1.1.3 just to be sure:

Your example does indeed work:

[default@test] create column family indexed1
... with comparator=UTF8Type
... and column_metadata=[{column_name:id1, validation_class: UTF8Type, 
index_type: KEYS, index_name:id1}];
d2a41783-2323-3aa0-a812-25f22269573b
Waiting for schema agreement...
... schemas agree across the cluster

Whereas this example with custom comparators does not:

[default@test] create column family indexed2
... with comparator='org.jellyfish.core.db.cassandra.JNameComparator'
... and column_metadata=[{column_name:id2, validation_class: 
'org.jellyfish.core.db.cassandra.JValueComparator', index_type: KEYS, 
index_name:id2}];
org.apache.thrift.transport.TTransportException

This throws the same core NPE exception as outlined in the OP.
But before we blame the comparator, consider the following (after wiping and 
resetting core)

default@test] create column family indexed3
... with comparator='org.jellyfish.core.db.cassandra.JNameComparator'
... and column_metadata=[{column_name: id, validation_class: 
'org.jellyfish.core.db.cassandra.JValueComparator', index_type: KEYS}];
c4303975-4b8f-31a8-b0aa-6f8fca1336a2
Waiting for schema agreement...
... schemas agree across the cluster

BTW, the two comparators have been running fine in various versions up to and 
including 1.0 
Perhaps it's the *combination* of custom comparator and named index?



> NPE on creating secondary index
> ---
>
> Key: CASSANDRA-4496
> URL: https://issues.apache.org/jira/browse/CASSANDRA-4496
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
>Affects Versions: 1.1.2, 1.1.3
> Environment: Ubuntu 12.4 
> Linux 3.2.0-27-generic #43-Ubuntu SMP Fri Jul 6 14:25:57 UTC 2012 x86_64 
> x86_64 x86_64 GNU/Linux
> java version "1.7.0"
> Java(TM) SE Runtime Environment (build 1.7.0-b147)
> Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode)
>Reporter: David Semeria
>Assignee: Pavel Yaskevich
>
> The following code has been working fine up to and including 1.0.x
> public static String createIndexedColumnFamily(String cf){
> 
> Cluster cluster = HectorConfig.cluster;
> ComparatorType ctName = 
> ComparatorType.getByClassName(JNameComparator.class.getName());
> 
> try{
>   cluster.dropColumnFamily(HectorConfig.dfltKeyspaceName, cf );
> } catch (Exception e){}
>   
> List cdL = new ArrayList();
> BasicColumnDefinition cd;
> 
> cd = new BasicColumnDefinition();
> cd.setName(ss.toByteBuffer("id"));
> cd.setIndexName("id");
> cd.setIndexType(ColumnIndexType.KEYS);
> cd.setValidationClass(JValueComparator.class.getName());
> cdL.add(cd);
> ThriftCfDef cfd= new ThriftCfDef(HectorConfig.dfltKeyspaceName, cf, 
> ctName, cdL); 
> cfd.setKeyValidationClass(ComparatorType.UTF8TYPE.getClassName());
> cfd.setDefaultValidationClass(JValueComparator.class.getName());
> cluster.addColumnFamily(cfd); 
> 
> return "created: " + cf;
>   }
> }
> I'm inclined to exclude the presence of the custom comparator since:
> (1) there is no issue using it if the cf doesn't have a secondary index
> (2) the stack trace (see below) doesn't include the comparator 
> The above code throws the following error in Cassandra 1.1.2 and 1.1.3
> david@vlap1:~/opt/cassandra$ sudo bin/cassandra -f
> xss =  -ea -javaagent:/usr/share/cassandra/lib/jamm-0.2.5.jar 
> -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -Xms128M -Xmx128M 
> -Xmn32M -XX:+HeapDumpOnOutOfMemoryError -Xss160k
>  INFO 23:15:31,333 Logging initialized
>  INFO 23:15:31,337 JVM vendor/version: Java HotSpot(TM) 64-Bit Server VM/1.7.0
>  INFO 23:15:31,338 Heap size: 130875392/130875392
>  INFO 23:15:31,338 Classpath: 
> /etc/cassandra:/usr/share/cassandra/lib/antlr-3.2.jar:/usr/share/cassandra/lib/avro-1.4.0-fixes.jar:/usr/share/cassandra/lib/avro-1.4.0-sources-fixes.jar:/usr/share/cassandra/lib/commons-cli-1.1.jar:/usr/share/cassandra/lib/commons-codec-1.2.jar:/usr/share/cassandra/lib/commons-lang-2.4.jar:/usr/share/cassandra/lib/compress-lzf-0.8.4.jar:/usr/share/cassandra/lib/concurrentlinkedhashmap-lru-1.3.jar:/usr/share/cassandra/lib/guava-r08.jar:/usr/share/cassandra/lib/hector-core-1.0-3.jar:/usr/share/cassandra/lib/high-scale-lib-1.1.2.jar:/usr/share/cassandra/lib/jackson-core-asl-1.9.2.jar:/usr/share/cassandra/lib/jackson-mapper-asl-1.9.2.jar:/usr/share/cassandra/lib/jamm-0.2.5.jar:/usr/share/cassandra/lib/jellyfish.jar:/usr/share/cassandra/lib/jline-0.9.94.jar:/usr/share/cassandra/lib/json-simple-1.1.

[jira] [Commented] (CASSANDRA-4496) NPE on creating secondary index

2012-08-09 Thread Pavel Yaskevich (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-4496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13431825#comment-13431825
 ] 

Pavel Yaskevich commented on CASSANDRA-4496:


Commands you posted run without errors for me (I have changed comparator and 
validation_class to UTF8Type but that is not related to the problem anyway), 
it's most luckily fixed by CASSANDRA-4439. Can you try to upgrade to 1.1.3 
(which includes 4439) and test if that works for you as well?



> NPE on creating secondary index
> ---
>
> Key: CASSANDRA-4496
> URL: https://issues.apache.org/jira/browse/CASSANDRA-4496
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
>Affects Versions: 1.1.2, 1.1.3
> Environment: Ubuntu 12.4 
> Linux 3.2.0-27-generic #43-Ubuntu SMP Fri Jul 6 14:25:57 UTC 2012 x86_64 
> x86_64 x86_64 GNU/Linux
> java version "1.7.0"
> Java(TM) SE Runtime Environment (build 1.7.0-b147)
> Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode)
>Reporter: David Semeria
>Assignee: Pavel Yaskevich
>
> The following code has been working fine up to and including 1.0.x
> public static String createIndexedColumnFamily(String cf){
> 
> Cluster cluster = HectorConfig.cluster;
> ComparatorType ctName = 
> ComparatorType.getByClassName(JNameComparator.class.getName());
> 
> try{
>   cluster.dropColumnFamily(HectorConfig.dfltKeyspaceName, cf );
> } catch (Exception e){}
>   
> List cdL = new ArrayList();
> BasicColumnDefinition cd;
> 
> cd = new BasicColumnDefinition();
> cd.setName(ss.toByteBuffer("id"));
> cd.setIndexName("id");
> cd.setIndexType(ColumnIndexType.KEYS);
> cd.setValidationClass(JValueComparator.class.getName());
> cdL.add(cd);
> ThriftCfDef cfd= new ThriftCfDef(HectorConfig.dfltKeyspaceName, cf, 
> ctName, cdL); 
> cfd.setKeyValidationClass(ComparatorType.UTF8TYPE.getClassName());
> cfd.setDefaultValidationClass(JValueComparator.class.getName());
> cluster.addColumnFamily(cfd); 
> 
> return "created: " + cf;
>   }
> }
> I'm inclined to exclude the presence of the custom comparator since:
> (1) there is no issue using it if the cf doesn't have a secondary index
> (2) the stack trace (see below) doesn't include the comparator 
> The above code throws the following error in Cassandra 1.1.2 and 1.1.3
> david@vlap1:~/opt/cassandra$ sudo bin/cassandra -f
> xss =  -ea -javaagent:/usr/share/cassandra/lib/jamm-0.2.5.jar 
> -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -Xms128M -Xmx128M 
> -Xmn32M -XX:+HeapDumpOnOutOfMemoryError -Xss160k
>  INFO 23:15:31,333 Logging initialized
>  INFO 23:15:31,337 JVM vendor/version: Java HotSpot(TM) 64-Bit Server VM/1.7.0
>  INFO 23:15:31,338 Heap size: 130875392/130875392
>  INFO 23:15:31,338 Classpath: 
> /etc/cassandra:/usr/share/cassandra/lib/antlr-3.2.jar:/usr/share/cassandra/lib/avro-1.4.0-fixes.jar:/usr/share/cassandra/lib/avro-1.4.0-sources-fixes.jar:/usr/share/cassandra/lib/commons-cli-1.1.jar:/usr/share/cassandra/lib/commons-codec-1.2.jar:/usr/share/cassandra/lib/commons-lang-2.4.jar:/usr/share/cassandra/lib/compress-lzf-0.8.4.jar:/usr/share/cassandra/lib/concurrentlinkedhashmap-lru-1.3.jar:/usr/share/cassandra/lib/guava-r08.jar:/usr/share/cassandra/lib/hector-core-1.0-3.jar:/usr/share/cassandra/lib/high-scale-lib-1.1.2.jar:/usr/share/cassandra/lib/jackson-core-asl-1.9.2.jar:/usr/share/cassandra/lib/jackson-mapper-asl-1.9.2.jar:/usr/share/cassandra/lib/jamm-0.2.5.jar:/usr/share/cassandra/lib/jellyfish.jar:/usr/share/cassandra/lib/jline-0.9.94.jar:/usr/share/cassandra/lib/json-simple-1.1.jar:/usr/share/cassandra/lib/libthrift-0.7.0.jar:/usr/share/cassandra/lib/log4j-1.2.16.jar:/usr/share/cassandra/lib/metrics-core-2.0.3.jar:/usr/share/cassandra/lib/servlet-api-2.5-20081211.jar:/usr/share/cassandra/lib/slf4j-api-1.6.1.jar:/usr/share/cassandra/lib/slf4j-log4j12-1.6.1.jar:/usr/share/cassandra/lib/snakeyaml-1.6.jar:/usr/share/cassandra/lib/snappy-java-1.0.4.1.jar:/usr/share/cassandra/lib/snaptree-0.1.jar:/usr/share/cassandra/apache-cassandra-1.1.2.jar:/usr/share/cassandra/apache-cassandra-thrift-1.1.2.jar:/usr/share/cassandra/apache-cassandra.jar:/usr/share/cassandra/stress.jar:/usr/share/cassandra/lib/jamm-0.2.5.jar
>  INFO 23:15:31,340 JNA not found. Native methods will be disabled.
>  INFO 23:15:31,351 Loading settings from file:/etc/cassandra/cassandra.yaml
>  INFO 23:15:31,566 DiskAccessMode 'auto' determined to be mmap, 
> indexAccessMode is mmap
>  INFO 23:15:31,875 Global memtable threshold is enabled at 41MB
>  INFO 23:15:32,380 Initializing key cache with capacity of 6 MBs.
>  INFO 23:15:32,394 Scheduling key cache save to each 14400 seconds (going to 
> save all keys).
>  INFO 23:15:32,395 Initializing row cache with capacity of 0 MBs

[jira] [Commented] (CASSANDRA-4496) NPE on creating secondary index

2012-08-06 Thread David Semeria (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-4496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13429647#comment-13429647
 ] 

David Semeria commented on CASSANDRA-4496:
--

It would appear that it's index_name that's causing the problem:
The final cli command throws exactly the same NPE in core as described in the 
OP.


[default@test] create column family basic
... with comparator='org.jellyfish.core.db.cassandra.JNameComparator'
... and column_metadata=[{column_name: id, validation_class: 
'org.jellyfish.core.db.cassandra.JValueComparator'}];
fc9fa3e4-db1b-3860-aa60-667462f258b1
Waiting for schema agreement...
... schemas agree across the cluster
[default@test] 
[default@test] 
[default@test] describe;
Keyspace: test:
  Replication Strategy: org.apache.cassandra.locator.NetworkTopologyStrategy
  Durable Writes: true
Options: [datacenter1:1]
  Column Families:
ColumnFamily: basic
  Key Validation Class: org.apache.cassandra.db.marshal.BytesType
  Default column value validator: org.apache.cassandra.db.marshal.BytesType
  Columns sorted by: org.jellyfish.core.db.cassandra.JNameComparator
  GC grace seconds: 864000
  Compaction min/max thresholds: 4/32
  Read repair chance: 0.1
  DC Local Read repair chance: 0.0
  Replicate on write: true
  Caching: KEYS_ONLY
  Bloom Filter FP chance: default
  Built indexes: []
  Column Metadata:
Column Name: id
  Validation Class: org.jellyfish.core.db.cassandra.JValueComparator
Column Name: 
  Validation Class: org.jellyfish.core.db.cassandra.JValueComparator
  Compaction Strategy: 
org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy
  Compression Options:
sstable_compression: org.apache.cassandra.io.compress.SnappyCompressor
[default@test] 
[default@test] 
[default@test] 
[default@test] create column family indexed1
... with comparator='org.jellyfish.core.db.cassandra.JNameComparator'
... and column_metadata=[{column_name: id, validation_class: 
'org.jellyfish.core.db.cassandra.JValueComparator', index_type: KEYS}];
1332a21e-d716-343d-bc54-04ac020c6300
Waiting for schema agreement...
... schemas agree across the cluster
[default@test] 
[default@test] 
[default@test] describe;
Keyspace: test:
  Replication Strategy: org.apache.cassandra.locator.NetworkTopologyStrategy
  Durable Writes: true
Options: [datacenter1:1]
  Column Families:
ColumnFamily: basic
  Key Validation Class: org.apache.cassandra.db.marshal.BytesType
  Default column value validator: org.apache.cassandra.db.marshal.BytesType
  Columns sorted by: org.jellyfish.core.db.cassandra.JNameComparator
  GC grace seconds: 864000
  Compaction min/max thresholds: 4/32
  Read repair chance: 0.1
  DC Local Read repair chance: 0.0
  Replicate on write: true
  Caching: KEYS_ONLY
  Bloom Filter FP chance: default
  Built indexes: []
  Column Metadata:
Column Name: 
  Validation Class: org.jellyfish.core.db.cassandra.JValueComparator
Column Name: 
  Validation Class: org.jellyfish.core.db.cassandra.JValueComparator
  Compaction Strategy: 
org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy
  Compression Options:
sstable_compression: org.apache.cassandra.io.compress.SnappyCompressor
ColumnFamily: indexed1
  Key Validation Class: org.apache.cassandra.db.marshal.BytesType
  Default column value validator: org.apache.cassandra.db.marshal.BytesType
  Columns sorted by: org.jellyfish.core.db.cassandra.JNameComparator
  GC grace seconds: 864000
  Compaction min/max thresholds: 4/32
  Read repair chance: 0.1
  DC Local Read repair chance: 0.0
  Replicate on write: true
  Caching: KEYS_ONLY
  Bloom Filter FP chance: default
  Built indexes: [indexed1.indexed1_id_idx]
  Column Metadata:
Column Name: 
  Validation Class: org.jellyfish.core.db.cassandra.JValueComparator
  Index Name: indexed1_id_idx
  Index Type: KEYS
  Compaction Strategy: 
org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy
  Compression Options:
sstable_compression: org.apache.cassandra.io.compress.SnappyCompressor
[default@test] 
[default@test] 
[default@test] create column family indexed2
... with comparator='org.jellyfish.core.db.cassandra.JNameComparator'
... and column_metadata=[{column_name:id2, validation_class: 
'org.jellyfish.core.db.cassandra.JValueComparator', index_type: KEYS, 
index_name:id2}];
org.apache.thrift.transport.TTransportException



> NPE on creating secondary index
> ---
>
> Key: CASSANDRA-4496
> URL: https://issues.apache.org/jira/browse/CASSANDRA-4496
> Project: Cassandra
>  Issue Type: Bu

[jira] [Commented] (CASSANDRA-4496) NPE on creating secondary index

2012-08-06 Thread Jonathan Ellis (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-4496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13429610#comment-13429610
 ] 

Jonathan Ellis commented on CASSANDRA-4496:
---

Can you reproduce from cli or cqlsh?

> NPE on creating secondary index
> ---
>
> Key: CASSANDRA-4496
> URL: https://issues.apache.org/jira/browse/CASSANDRA-4496
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
>Affects Versions: 1.1.2, 1.1.3
> Environment: Ubuntu 12.4 
> Linux 3.2.0-27-generic #43-Ubuntu SMP Fri Jul 6 14:25:57 UTC 2012 x86_64 
> x86_64 x86_64 GNU/Linux
> java version "1.7.0"
> Java(TM) SE Runtime Environment (build 1.7.0-b147)
> Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode)
>Reporter: David Semeria
>
> The following code has been working fine up to and including 1.0.x
> public static String createIndexedColumnFamily(String cf){
> 
> Cluster cluster = HectorConfig.cluster;
> ComparatorType ctName = 
> ComparatorType.getByClassName(JNameComparator.class.getName());
> 
> try{
>   cluster.dropColumnFamily(HectorConfig.dfltKeyspaceName, cf );
> } catch (Exception e){}
>   
> List cdL = new ArrayList();
> BasicColumnDefinition cd;
> 
> cd = new BasicColumnDefinition();
> cd.setName(ss.toByteBuffer("id"));
> cd.setIndexName("id");
> cd.setIndexType(ColumnIndexType.KEYS);
> cd.setValidationClass(JValueComparator.class.getName());
> cdL.add(cd);
> ThriftCfDef cfd= new ThriftCfDef(HectorConfig.dfltKeyspaceName, cf, 
> ctName, cdL); 
> cfd.setKeyValidationClass(ComparatorType.UTF8TYPE.getClassName());
> cfd.setDefaultValidationClass(JValueComparator.class.getName());
> cluster.addColumnFamily(cfd); 
> 
> return "created: " + cf;
>   }
> }
> I'm inclined to exclude the presence of the custom comparator since:
> (1) there is no issue using it if the cf doesn't have a secondary index
> (2) the stack trace (see below) doesn't include the comparator 
> The above code throws the following error in Cassandra 1.1.2 and 1.1.3
> david@vlap1:~/opt/cassandra$ sudo bin/cassandra -f
> xss =  -ea -javaagent:/usr/share/cassandra/lib/jamm-0.2.5.jar 
> -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -Xms128M -Xmx128M 
> -Xmn32M -XX:+HeapDumpOnOutOfMemoryError -Xss160k
>  INFO 23:15:31,333 Logging initialized
>  INFO 23:15:31,337 JVM vendor/version: Java HotSpot(TM) 64-Bit Server VM/1.7.0
>  INFO 23:15:31,338 Heap size: 130875392/130875392
>  INFO 23:15:31,338 Classpath: 
> /etc/cassandra:/usr/share/cassandra/lib/antlr-3.2.jar:/usr/share/cassandra/lib/avro-1.4.0-fixes.jar:/usr/share/cassandra/lib/avro-1.4.0-sources-fixes.jar:/usr/share/cassandra/lib/commons-cli-1.1.jar:/usr/share/cassandra/lib/commons-codec-1.2.jar:/usr/share/cassandra/lib/commons-lang-2.4.jar:/usr/share/cassandra/lib/compress-lzf-0.8.4.jar:/usr/share/cassandra/lib/concurrentlinkedhashmap-lru-1.3.jar:/usr/share/cassandra/lib/guava-r08.jar:/usr/share/cassandra/lib/hector-core-1.0-3.jar:/usr/share/cassandra/lib/high-scale-lib-1.1.2.jar:/usr/share/cassandra/lib/jackson-core-asl-1.9.2.jar:/usr/share/cassandra/lib/jackson-mapper-asl-1.9.2.jar:/usr/share/cassandra/lib/jamm-0.2.5.jar:/usr/share/cassandra/lib/jellyfish.jar:/usr/share/cassandra/lib/jline-0.9.94.jar:/usr/share/cassandra/lib/json-simple-1.1.jar:/usr/share/cassandra/lib/libthrift-0.7.0.jar:/usr/share/cassandra/lib/log4j-1.2.16.jar:/usr/share/cassandra/lib/metrics-core-2.0.3.jar:/usr/share/cassandra/lib/servlet-api-2.5-20081211.jar:/usr/share/cassandra/lib/slf4j-api-1.6.1.jar:/usr/share/cassandra/lib/slf4j-log4j12-1.6.1.jar:/usr/share/cassandra/lib/snakeyaml-1.6.jar:/usr/share/cassandra/lib/snappy-java-1.0.4.1.jar:/usr/share/cassandra/lib/snaptree-0.1.jar:/usr/share/cassandra/apache-cassandra-1.1.2.jar:/usr/share/cassandra/apache-cassandra-thrift-1.1.2.jar:/usr/share/cassandra/apache-cassandra.jar:/usr/share/cassandra/stress.jar:/usr/share/cassandra/lib/jamm-0.2.5.jar
>  INFO 23:15:31,340 JNA not found. Native methods will be disabled.
>  INFO 23:15:31,351 Loading settings from file:/etc/cassandra/cassandra.yaml
>  INFO 23:15:31,566 DiskAccessMode 'auto' determined to be mmap, 
> indexAccessMode is mmap
>  INFO 23:15:31,875 Global memtable threshold is enabled at 41MB
>  INFO 23:15:32,380 Initializing key cache with capacity of 6 MBs.
>  INFO 23:15:32,394 Scheduling key cache save to each 14400 seconds (going to 
> save all keys).
>  INFO 23:15:32,395 Initializing row cache with capacity of 0 MBs and provider 
> org.apache.cassandra.cache.SerializingCacheProvider
>  INFO 23:15:32,400 Scheduling row cache save to each 0 seconds (going to save 
> all keys).
>  INFO 23:15:32,661 Couldn't detect any schema definitions in local storage.
>  INFO 23:15:32,665 Found table data in data directories.