+1 for Sylvain's answer. This normally happens, if validation class for column value(s) differs.
-Vivek On Thu, Jul 18, 2013 at 12:08 PM, Sylvain Lebresne <sylv...@datastax.com>wrote: > I don't know Hector very much really, but I highly suspect that > "ts.toString()" is wrong, since composite column names are not strings. So > again, not a Hector expert, but I can't really see how converting the > composite into string could work. > > -- > Sylvain > > > On Wed, Jul 17, 2013 at 11:14 PM, Rahul Gupta <rgu...@dekaresearch.com>wrote: > >> Getting error while trying to persist data in a Column Family having a >> CompositeType comparator**** >> >> ** ** >> >> *Using Cassandra ver 1.1.9.7* >> >> *Hector Core ver 1.1.5 API ( which uses Thrift 1.1.10)* >> >> ** ** >> >> *Created Column Family using cassandra-cli:* >> >> ** ** >> >> create column family event_counts**** >> >> with comparator = 'CompositeType(DateType,UTF8Type)'**** >> >> and key_validation_class = 'UUIDType'**** >> >> and default_validation_class = 'CounterColumnType';**** >> >> ** ** >> >> *Persistence Code(*sumLoad.java):**** >> >> ** ** >> >> *import* me.prettyprint.cassandra.serializers.StringSerializer;**** >> >> *import* me.prettyprint.cassandra.serializers.DateSerializer;**** >> >> *import* me.prettyprint.cassandra.service.CassandraHostConfigurator;**** >> >> *import* me.prettyprint.hector.api.Cluster;**** >> >> *import* me.prettyprint.hector.api.Keyspace;**** >> >> *import* me.prettyprint.hector.api.beans.Composite;**** >> >> *import* me.prettyprint.hector.api.beans.HCounterColumn;**** >> >> *import* me.prettyprint.hector.api.factory.HFactory;**** >> >> *import* me.prettyprint.hector.api.mutation.Mutator;**** >> >> *import* java.sql.Date;**** >> >> *import* java.util.logging.Level;**** >> >> ** ** >> >> *public* *class* sumLoad { **** >> >> **** >> >> *final* *static* Cluster *cluster* = HFactory.* >> getOrCreateCluster*("Dev", *new* CassandraHostConfigurator(" >> 100.10.0.6:9160"));**** >> >> *final* *static* Keyspace *keyspace* = HFactory.* >> createKeyspace*("Events", *cluster*);**** >> >> *final* *static* StringSerializer *ss* = >> StringSerializer.*get*();**** >> >> ** ** >> >> *private* *boolean* storeCounts(String vKey, String >> counterCF, Date dateStr, String vStr, *long* value)**** >> >> {**** >> >> *try***** >> >> {**** >> >> Mutator<String> m1 = HFactory.*createMutator*(* >> keyspace*, StringSerializer.*get*());**** >> >> **** >> >> Composite ts = *new* Composite();**** >> >> ts.addComponent(dateStr, DateSerializer.*get*());* >> *** >> >> ts.addComponent(vStr, StringSerializer.*get*());** >> ** >> >> HCounterColumn<String> hColumn_ts = HFactory.* >> createCounterColumn*(ts.toString(), value, StringSerializer.*get*());**** >> >> **** >> >> m1.insertCounter(vKey, counterCF, hColumn_ts);**** >> >> m1.execute(); **** >> >> *return* *true*;**** >> >> }**** >> >> *catch*(Exception ex)**** >> >> {**** >> >> LOGGER.*log*(Level.*WARNING*, "Unable >> to store record", ex); **** >> >> }**** >> >> *return* *false*;**** >> >> } **** >> >> ** ** >> >> *public* *static* *void* main(String[] args) {**** >> >> ** ** >> >> Date vDate = *new* Date(0);**** >> >> sumLoad SumLoad = *new* sumLoad();**** >> >> SumLoad.storeCounts("b9874e3e-4a0e-4e60-ae23-c3f1e575af93", >> "event_counts", vDate, "StoreThisString", 673);**** >> >> }**** >> >> ** ** >> >> }**** >> >> ** ** >> >> *Error:* >> >> ** ** >> >> [main] INFO me.prettyprint.cassandra.service.JmxMonitor - Registering JMX >> me.prettyprint.cassandra.service_Dev:ServiceType=hector,MonitorType=hector >> **** >> >> Unable to store record**** >> >> *me.prettyprint.hector.api.exceptions.HInvalidRequestException*: >> InvalidRequestException(why:Not enough bytes to read value of component 0) >> **** >> >> ** ** >> >> ** ** >> >> *Rahul Gupta* >> This e-mail and the information, including any attachments, it contains >> are intended to be a confidential communication only to the person or >> entity to whom it is addressed and may contain information that is >> privileged. If the reader of this message is not the intended recipient, >> you are hereby notified that any dissemination, distribution or copying of >> this communication is strictly prohibited. If you have received this >> communication in error, please immediately notify the sender and destroy >> the original message.**** >> >> ** ** >> >> ------------------------------ >> This e-mail and the information, including any attachments, it contains >> are intended to be a confidential communication only to the person or >> entity to whom it is addressed and may contain information that is >> privileged. If the reader of this message is not the intended recipient, >> you are hereby notified that any dissemination, distribution or copying of >> this communication is strictly prohibited. If you have received this >> communication in error, please immediately notify the sender and destroy >> the original message. >> >> Thank you. >> >> Please consider the environment before printing this email. >> > >