I'm finding that once I add an index to a column family that I start getting
exceptions as I try to add rows to it.  It works fine if I don't define the
column metadata.  Any ideas what would cause this?

ERROR 12:44:21,477 Error in ThreadPoolExecutor
java.lang.RuntimeException: java.lang.ArrayIndexOutOfBoundsException: -70
    at
org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:34)
    at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:637)
Caused by: java.lang.ArrayIndexOutOfBoundsException: -70
    at org.apache.cassandra.db.Table.apply(Table.java:389)
    at org.apache.cassandra.db.RowMutation.apply(RowMutation.java:196)
    at
org.apache.cassandra.service.StorageProxy$1.runMayThrow(StorageProxy.java:194)
    at
org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:30)
    ... 3 more


This is what the code looks like that's creating the keyspace, cf, and
index:

ColumnDef cd = new ColumnDef("type".getBytes(), "UTF8Type");
cd.setIndex_name("type");
cd.setIndex_type(IndexType.KEYS);

List<ColumnDef> columns = new ArrayList<ColumnDef>();
columns.add(cd);

CfDef cf_def = new CfDef();
cf_def.setKeyspace("Domain_00000000_0000_0000_0000_000000000001");
cf_def.setName("Entity_Fields");
cf_def.setComparator_type("BytesType");
cf_def.setColumn_metadata(columns);

List<CfDef> cf_defs = new ArrayList<CfDef>();
cf_defs.add(cf_def);

KsDef ks_def = new KsDef();
ks_def.setName("Domain_00000000_0000_0000_0000_000000000001");
ks_def.setStrategy_class("org.apache.cassandra.locator.SimpleStrategy");
ks_def.setReplication_factor(1);
ks_def.setCf_defs(cf_defs);

thrift_cassandra.system_add_keyspace(ks_def);

Reply via email to