[
https://issues.apache.org/jira/browse/HBASE-21617?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16725720#comment-16725720
]
apcahephoenix commented on HBASE-21617:
---------------------------------------
Thanks Zheng Hu, reviews link is
[https://reviews.apache.org/r/69611/][^Bytes_HBASE_21617.patch]
> HBase Bytes.putBigDecimal error
> -------------------------------
>
> Key: HBASE-21617
> URL: https://issues.apache.org/jira/browse/HBASE-21617
> Project: HBase
> Issue Type: Bug
> Components: util
> Affects Versions: 2.1.0, 2.0.0, 2.1.1
> Environment: JDK 1.8
> Reporter: apcahephoenix
> Priority: Major
> Attachments: Bytes.java, Bytes_HBASE_21617.patch, TestBytes.java,
> TestBytes_HBASE_21617.patch
>
>
> *hbase-common/*
> *org.apache.hadoop.hbase.util.Bytes:*
> public static int putBigDecimal(byte[] bytes, int offset, BigDecimal val) {
> if (bytes == null){
> return offset;
> }
> byte[] valueBytes = val.unscaledValue().toByteArray();
> byte[] result = new byte[valueBytes.length + SIZEOF_INT];
> offset = putInt(result, offset, val.scale());
> {color:#d04437}return putBytes(result, offset, valueBytes, 0,
> valueBytes.length); // this one, bytes is not used{color}
> }
> *Test:*
> byte[] bytes = new byte[64];
> BigDecimal bigDecimal = new BigDecimal("100.10");
> Bytes.putBigDecimal(bytes, 4, bigDecimal);
> System.out.println(Arrays.toString(bytes)); // invalid
> *Suggest:*
> public static int putBigDecimal(byte[] bytes, int offset, BigDecimal val) {
> byte[] valueBytes = toBytes(val);
> return putBytes(bytes, offset, valueBytes, 0, valueBytes.length);
> }
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)