incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ran User <ranuse...@gmail.com>
Subject Re: Astyanax InstantiationException when accessing ColumnList
Date Wed, 12 Sep 2012 02:04:19 GMT
Oops, forgot to mention Cassandra version - 1.1.4

On Tue, Sep 11, 2012 at 5:54 AM, Ran User <ranuser99@gmail.com> wrote:

> Stuck for hours on this one, thanks in advance!
>
> -  Scala 2.9.2
> - Astyanax 1.0.6 (also tried 1.0.5)
> - Using CompositeRowKey, CompositeColumnName
> - No problem inserting into Cassandra
> - Can read a row, ColumnList.size() returns correct count however any
> attempt to access ColumnList (i.e. iterate, access iterate ColumnList,
> getColumnByIndex(), getColumnByName(), etc) will throw the following
> exception:
>
> Exception:
>
> java.lang.RuntimeException: java.lang.InstantiationException
>
> relevant stack trace:
>
> java.lang.RuntimeException: java.lang.InstantiationException:
> shops.integration.db.scalaquery.ReportingDao$MetricsLogFileCompositeColumn
>             at
> com.netflix.astyanax.serializers.AnnotatedCompositeSerializer.fromByteBuffer(AnnotatedCompositeSerializer.java:136)
>             at
> com.netflix.astyanax.serializers.AbstractSerializer.fromBytes(AbstractSerializer.java:40)
>             at
> com.netflix.astyanax.thrift.model.ThriftColumnOrSuperColumnListImpl.constructMap(ThriftColumnOrSuperColumnListImpl.java:201)
>             at
> com.netflix.astyanax.thrift.model.ThriftColumnOrSuperColumnListImpl.getColumn(ThriftColumnOrSuperColumnListImpl.java:189)
>             at
> com.netflix.astyanax.thrift.model.ThriftColumnOrSuperColumnListImpl.getColumnByName(ThriftColumnOrSuperColumnListImpl.java:103)
>
> Relevant sample code:
>
> class TestCompositeColumn(@(Component @field) var logFileId: Long,
> @(Component @field) var dt: String, @(Component @field) var dk: String)
> extends Ordered[TestCompositeColumn] {
>         def this() = this(0l, "", "")
>         //equals, hashCode, compare all implemented
>     }
>
> I've also tried this variation on the class:
>
>     class TestCompositeColumn(idIn: Long, key1In: String, key2In: String)
> extends Ordered[TestCompositeColumn] {
>         @Component(ordinal = 0) var id: Long = idIn
>         @Component(ordinal = 1) var key1: String = key1In
>         @Component(ordinal = 2) var key2: String = key2In
>
>         def this() = this(0, null, null)
>         //equals, hashCode, compare all implemented
>     }
> val TEST_COLUMN_FAMILY = new ColumnFamily[TestRowKey, TestCompositeColumn](
>         "test_column_family",
>         new AnnotatedCompositeSerializer[TestRowKey](classOf[TestRowKey]),
>         new
> AnnotatedCompositeSerializer[TestCompositeColumn](classOf[TestCompositeColumn]),
>         BytesArraySerializer.get());
>
> var columnList = keyspace.prepareQuery(TEST_COLUMN_FAMILY)
>         .getKey(TestRowKey(1l, 2012090100))
>         .execute().getResult()
>
> // OK - will return 6 for example, also verified via cassandra-cli
> println(columnList.size())
>
> // ERROR - will throw exception above.  Iterating, or any type of access
> will also throw same exception
> println(columnList.getColumnByIndex(0).getStringValue())
>
> Thank you!!!
>
>
>

Mime
View raw message