Henning Kropp created CASSANDRA-6180:
----------------------------------------

             Summary: NPE in CqlRecordWriter: Related to 
AbstractCassandraStorage handling null values
                 Key: CASSANDRA-6180
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6180
             Project: Cassandra
          Issue Type: Bug
          Components: Hadoop
         Environment: Pig, CqlStorage
            Reporter: Henning Kropp


I encountered an issue with the {{CqlStorage}} and it's handling of null 
values. The {{CqlRecordWriter}} throws an NPE when a value is null. I found a 
related ticket CASSANDRA-5885 and applied the there state fix to the 
{{AbstractCassandraStorage}}.
Instead of converting {{null}} values to {{ByteBuffer.wrap(new byte[0])}} 
{{AbstractCassandraStorage}} returns {{(ByteBuffer)null}}

This issue can be reproduced with the attached files: {{test_null.cql}}, 
{{test_null_data}}, {{null_test.pig}}

A fix can be found in the attached patch.

{code}
java.io.IOException: java.lang.NullPointerException
        at 
org.apache.cassandra.hadoop.cql3.CqlRecordWriter$RangeClient.run(CqlRecordWriter.java:248)
Caused by: java.lang.NullPointerException
        at 
org.apache.thrift.protocol.TBinaryProtocol.writeBinary(TBinaryProtocol.java:194)
        at 
org.apache.cassandra.thrift.Cassandra$execute_prepared_cql3_query_args.write(Cassandra.java:41253)
        at org.apache.thrift.TServiceClient.sendBase(TServiceClient.java:63)
        at 
org.apache.cassandra.thrift.Cassandra$Client.send_execute_prepared_cql3_query(Cassandra.java:1683)
        at 
org.apache.cassandra.thrift.Cassandra$Client.execute_prepared_cql3_query(Cassandra.java:1673)
        at 
org.apache.cassandra.hadoop.cql3.CqlRecordWriter$RangeClient.run(CqlRecordWriter.java:232)
{code}



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to