[ 
https://issues.apache.org/jira/browse/PIG-4506?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14542819#comment-14542819
 ] 

Rohini Palaniswamy commented on PIG-4506:
-----------------------------------------

For the test, could you just add biginteger and bigdecimal to 
TestEvalPipeline2.testBinStorageByteArrayCastsSimple instead of adding a new 
one in TestStore. That is a more logical fit place for the test as it already 
tests other datatypes for BinStorage there.

> 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
>            Assignee: Savvas Savvides
>             Fix For: 0.15.0
>
>         Attachments: PIG-4506-1.patch
>
>   Original Estimate: 5m
>  Remaining Estimate: 5m
>
> 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