[
https://issues.apache.org/jira/browse/CASSANDRA-6524?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
David Viet updated CASSANDRA-6524:
----------------------------------
Description:
I follow the Trigger example of Cassandra.
*My test Column Family*
CREATE TABLE test (
key text,
value text,
PRIMARY KEY (key)
)
*My index for test Column Family*
CREATE TABLE sampleindex (
name text,
value text,
PRIMARY KEY (name)
)
I try to add (key, key) to this index CF.
*mutation.add("sampleindex", key, key ,System.currentTimeMillis());*
This line of code always cause error:
WARN 14:19:00,854 Exception
java.lang.IllegalArgumentException
at java.nio.Buffer.limit(Buffer.java:267)
at
org.apache.cassandra.db.marshal.AbstractCompositeType.getBytes(AbstractCompositeType.java:55)
at
org.apache.cassandra.db.marshal.AbstractCompositeType.getWithShortLength(AbstractCompositeType.java:64)
at
org.apache.cassandra.db.marshal.AbstractCompositeType.compare(AbstractCompositeType.java:82)
at
org.apache.cassandra.db.marshal.AbstractCompositeType.compare(AbstractCompositeType.java:35)
at java.util.TreeMap.compare(TreeMap.java:1188)
at java.util.TreeMap.put(TreeMap.java:531)
at
org.apache.cassandra.db.TreeMapBackedSortedColumns.addColumn(TreeMapBackedSortedColumns.java:90)
at org.apache.cassandra.db.ColumnFamily.addColumn(ColumnFamily.java:116)
at org.apache.cassandra.db.ColumnFamily.addColumn(ColumnFamily.java:128)
at org.apache.cassandra.db.RowMutation.add(RowMutation.java:144)
at org.apache.cassandra.db.RowMutation.add(RowMutation.java:154)
at
org.apache.cassandra.triggers.InvertedIndex.augment(InvertedIndex.java:83)
at
org.apache.cassandra.triggers.TriggerExecutor.execute(TriggerExecutor.java:123)
at
org.apache.cassandra.triggers.TriggerExecutor.execute(TriggerExecutor.java:73)
at
org.apache.cassandra.service.StorageProxy.mutateWithTriggers(StorageProxy.java:567)
at
org.apache.cassandra.cql3.statements.ModificationStatement.executeWithoutCondition(ModificationStatement.java:379)
at
org.apache.cassandra.cql3.statements.ModificationStatement.execute(ModificationStatement.java:363)
at
org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:129)
at
org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:145)
at
org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:136)
at
org.apache.cassandra.thrift.CassandraServer.execute_cql3_query(CassandraServer.java:1936)
at
org.apache.cassandra.thrift.Cassandra$Processor$execute_cql3_query.getResult(Cassandra.java:4394)
at
org.apache.cassandra.thrift.Cassandra$Processor$execute_cql3_query.getResult(Cassandra.java:4378)
at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39)
at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)
at
org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:194)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
I think the main reason is from
https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/db/marshal/AbstractCompositeType.java
public static ByteBuffer getBytes(ByteBuffer bb, int length)
{
ByteBuffer copy = bb.duplicate();
copy.limit(copy.position() + length);
bb.position(bb.position() + length);
return copy;
}
Please consider this problem.
was:
I follow the Trigger example of Cassandra.
*My test Column Family*
CREATE TABLE test (
key text,
value text,
PRIMARY KEY (key)
)
*My index for test Column Family*
CREATE TABLE sampleindex (
name text,
value text,
PRIMARY KEY (name)
)
I try to add (key, key) to this index CF.
*mutation.add("sampleindex", key, key ,System.currentTimeMillis());*
WARN 14:19:00,854 Exception
java.lang.IllegalArgumentException
at java.nio.Buffer.limit(Buffer.java:267)
at
org.apache.cassandra.db.marshal.AbstractCompositeType.getBytes(AbstractCompositeType.java:55)
at
org.apache.cassandra.db.marshal.AbstractCompositeType.getWithShortLength(AbstractCompositeType.java:64)
at
org.apache.cassandra.db.marshal.AbstractCompositeType.compare(AbstractCompositeType.java:82)
at
org.apache.cassandra.db.marshal.AbstractCompositeType.compare(AbstractCompositeType.java:35)
at java.util.TreeMap.compare(TreeMap.java:1188)
at java.util.TreeMap.put(TreeMap.java:531)
at
org.apache.cassandra.db.TreeMapBackedSortedColumns.addColumn(TreeMapBackedSortedColumns.java:90)
at org.apache.cassandra.db.ColumnFamily.addColumn(ColumnFamily.java:116)
at org.apache.cassandra.db.ColumnFamily.addColumn(ColumnFamily.java:128)
at org.apache.cassandra.db.RowMutation.add(RowMutation.java:144)
at org.apache.cassandra.db.RowMutation.add(RowMutation.java:154)
at
org.apache.cassandra.triggers.InvertedIndex.augment(InvertedIndex.java:83)
at
org.apache.cassandra.triggers.TriggerExecutor.execute(TriggerExecutor.java:123)
at
org.apache.cassandra.triggers.TriggerExecutor.execute(TriggerExecutor.java:73)
at
org.apache.cassandra.service.StorageProxy.mutateWithTriggers(StorageProxy.java:567)
at
org.apache.cassandra.cql3.statements.ModificationStatement.executeWithoutCondition(ModificationStatement.java:379)
at
org.apache.cassandra.cql3.statements.ModificationStatement.execute(ModificationStatement.java:363)
at
org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:129)
at
org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:145)
at
org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:136)
at
org.apache.cassandra.thrift.CassandraServer.execute_cql3_query(CassandraServer.java:1936)
at
org.apache.cassandra.thrift.Cassandra$Processor$execute_cql3_query.getResult(Cassandra.java:4394)
at
org.apache.cassandra.thrift.Cassandra$Processor$execute_cql3_query.getResult(Cassandra.java:4378)
at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39)
at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)
at
org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:194)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
> Trigger
> --------
>
> Key: CASSANDRA-6524
> URL: https://issues.apache.org/jira/browse/CASSANDRA-6524
> Project: Cassandra
> Issue Type: Bug
> Environment: Cassandra 2.0.2 - Windows 7 64bit
> Reporter: David Viet
>
> I follow the Trigger example of Cassandra.
> *My test Column Family*
> CREATE TABLE test (
> key text,
> value text,
> PRIMARY KEY (key)
> )
> *My index for test Column Family*
> CREATE TABLE sampleindex (
> name text,
> value text,
> PRIMARY KEY (name)
> )
> I try to add (key, key) to this index CF.
> *mutation.add("sampleindex", key, key ,System.currentTimeMillis());*
> This line of code always cause error:
> WARN 14:19:00,854 Exception
> java.lang.IllegalArgumentException
> at java.nio.Buffer.limit(Buffer.java:267)
> at
> org.apache.cassandra.db.marshal.AbstractCompositeType.getBytes(AbstractCompositeType.java:55)
> at
> org.apache.cassandra.db.marshal.AbstractCompositeType.getWithShortLength(AbstractCompositeType.java:64)
> at
> org.apache.cassandra.db.marshal.AbstractCompositeType.compare(AbstractCompositeType.java:82)
> at
> org.apache.cassandra.db.marshal.AbstractCompositeType.compare(AbstractCompositeType.java:35)
> at java.util.TreeMap.compare(TreeMap.java:1188)
> at java.util.TreeMap.put(TreeMap.java:531)
> at
> org.apache.cassandra.db.TreeMapBackedSortedColumns.addColumn(TreeMapBackedSortedColumns.java:90)
> at
> org.apache.cassandra.db.ColumnFamily.addColumn(ColumnFamily.java:116)
> at
> org.apache.cassandra.db.ColumnFamily.addColumn(ColumnFamily.java:128)
> at org.apache.cassandra.db.RowMutation.add(RowMutation.java:144)
> at org.apache.cassandra.db.RowMutation.add(RowMutation.java:154)
> at
> org.apache.cassandra.triggers.InvertedIndex.augment(InvertedIndex.java:83)
> at
> org.apache.cassandra.triggers.TriggerExecutor.execute(TriggerExecutor.java:123)
> at
> org.apache.cassandra.triggers.TriggerExecutor.execute(TriggerExecutor.java:73)
> at
> org.apache.cassandra.service.StorageProxy.mutateWithTriggers(StorageProxy.java:567)
> at
> org.apache.cassandra.cql3.statements.ModificationStatement.executeWithoutCondition(ModificationStatement.java:379)
> at
> org.apache.cassandra.cql3.statements.ModificationStatement.execute(ModificationStatement.java:363)
> at
> org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:129)
> at
> org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:145)
> at
> org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:136)
> at
> org.apache.cassandra.thrift.CassandraServer.execute_cql3_query(CassandraServer.java:1936)
> at
> org.apache.cassandra.thrift.Cassandra$Processor$execute_cql3_query.getResult(Cassandra.java:4394)
> at
> org.apache.cassandra.thrift.Cassandra$Processor$execute_cql3_query.getResult(Cassandra.java:4378)
> at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39)
> at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)
> at
> org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:194)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> at java.lang.Thread.run(Thread.java:722)
> I think the main reason is from
> https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/db/marshal/AbstractCompositeType.java
> public static ByteBuffer getBytes(ByteBuffer bb, int length)
> {
> ByteBuffer copy = bb.duplicate();
> copy.limit(copy.position() + length);
> bb.position(bb.position() + length);
> return copy;
> }
> Please consider this problem.
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)