You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "akshat (JIRA)" <ji...@apache.org> on 2013/12/26 07:42:50 UTC

[jira] [Commented] (CASSANDRA-6524) Trigger ERROR with java.lang.IllegalArgumentException at java.nio.Buffer.limit(Buffer.java:267)

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

akshat commented on CASSANDRA-6524:
-----------------------------------

Hi David,

I noticed this error while doing "RowMutation" on column family having CompositeType comparator. This error was not observed on column family having comparator "UTF8Type". 
Does it mean that ITrigger with RowMutation feature only support for non CompositeType columns as of now?
This can be improved in stable release.

Thanks,
Akshat

> Trigger ERROR with java.lang.IllegalArgumentException at java.nio.Buffer.limit(Buffer.java:267)
> -----------------------------------------------------------------------------------------------
>
>                 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)
> )
> Instead of cell.name(), I use ByteBufferUtil.bytes("value"): 
> *mutation.add("sampleindex", ByteBufferUtil.bytes("value"), 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
> {code:title=AbstractCompositeType.java|borderStyle=solid}
> public static ByteBuffer getBytes(ByteBuffer bb, int length)
> {
> ByteBuffer copy = bb.duplicate();
> copy.limit(copy.position() + length);
> bb.position(bb.position() + length);
> return copy;
> }
> {code}
> Please consider this problem. Thank you.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)