Savvas Savvides created PIG-4506:
------------------------------------

             Summary: binstorage fails to write biginteger
                 Key: PIG-4506
                 URL: https://issues.apache.org/jira/browse/PIG-4506
             Project: Pig
          Issue Type: Bug
          Components: data, impl
            Reporter: Savvas Savvides


When trying to store a biginteger using binstorage the following error is 
issued (The error might manifest elsewhere too):
java.lang.RuntimeException: Unexpected data type -1 found in stream

This is caused by a bug in the writeDatum method of the DataReaderWriter.java 
class. When writeDatum is called with a BigInteger as a argument, the 
BigInteger is converted to a byte[] and the writeDatum method is recursively 
called on the byte[]. writeDatum cannon handle byte[] objects but instead 
expects DataByteArray objects.

Suggested fix - wrap byte[] to DataByteArray:
change this line:
_writeDatum(out, ((BigInteger)val).toByteArray());_
to this:
_writeDatum(out, new DataByteArray(((BigInteger)val).toByteArray()));_



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to