AVRO-1869: Java: Fix Decimal conversion from ByteBuffer.
diff --git a/CHANGES.txt b/CHANGES.txt
index 37ff25c..0dfbdfc 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -15,6 +15,8 @@
AVRO-1741: Python3: Fix error when codec is not in the header.
(Matthew Hayes via blue)
+ AVRO-1869: Java: Fix Decimal conversion from ByteBuffer. (blue)
+
Avro 1.8.1 (14 May 2016)
INCOMPATIBLE CHANGES
diff --git a/lang/java/avro/src/main/java/org/apache/avro/Conversions.java b/lang/java/avro/src/main/java/org/apache/avro/Conversions.java
index bf429ea..e95add7 100644
--- a/lang/java/avro/src/main/java/org/apache/avro/Conversions.java
+++ b/lang/java/avro/src/main/java/org/apache/avro/Conversions.java
@@ -80,7 +80,8 @@
public BigDecimal fromBytes(ByteBuffer value, Schema schema, LogicalType type) {
int scale = ((LogicalTypes.Decimal) type).getScale();
// always copy the bytes out because BigInteger has no offset/length ctor
- byte[] bytes = value.get(new byte[value.remaining()]).array();
+ byte[] bytes = new byte[value.remaining()];
+ value.get(bytes);
return new BigDecimal(new BigInteger(bytes), scale);
}