incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From aaron morton <aa...@thelastpickle.com>
Subject Re: Astyanax InstantiationException when accessing ColumnList
Date Wed, 12 Sep 2012 22:28:00 GMT
Was there more to the error message ? Looks likes there should be a caused by exception there
https://github.com/Netflix/astyanax/blob/master/src/main/java/com/netflix/astyanax/serializers/AnnotatedCompositeSerializer.java#L114

The InstationError is being raised when it tries to create an instance of the column type

https://github.com/Netflix/astyanax/blob/master/src/main/java/com/netflix/astyanax/serializers/AnnotatedCompositeSerializer.java#L166

I would check everything is in the class path and create an issue on https://github.com/Netflix/astyanax/issues
if you get stuck. 

Cheers



-----------------
Aaron Morton
Freelance Developer
@aaronmorton
http://www.thelastpickle.com

On 12/09/2012, at 2:04 PM, Ran User <ranuser99@gmail.com> wrote:

> 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