You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "apcahephoenix (JIRA)" <ji...@apache.org> on 2018/12/20 09:51:00 UTC

[jira] [Comment Edited] (HBASE-21617) HBase Bytes.putBigDecimal error

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

apcahephoenix edited comment on HBASE-21617 at 12/20/18 9:50 AM:
-----------------------------------------------------------------

Thanks Zheng Hu, reviews link is [https://reviews.apache.org/r/69611/]


was (Author: apcahephoenix):
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)