You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "apcahephoenix (JIRA)" <ji...@apache.org> on 2018/12/19 02:55:00 UTC
[jira] [Created] (HBASE-21617) HBase Bytes.putBigDecimal error
apcahephoenix created HBASE-21617:
-------------------------------------
Summary: 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.1, 2.0.0, 2.1.0
Environment: JDK 1.8
Reporter: apcahephoenix
*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)