incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ran User <ranuse...@gmail.com>
Subject Astyanax InstantiationException when accessing ColumnList
Date Tue, 11 Sep 2012 05:54:29 GMT
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