summaryrefslogtreecommitdiff
path: root/src/main/java/com/amazon/carbonado/raw/GenericEncodingStrategy.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/amazon/carbonado/raw/GenericEncodingStrategy.java')
-rw-r--r--src/main/java/com/amazon/carbonado/raw/GenericEncodingStrategy.java5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/main/java/com/amazon/carbonado/raw/GenericEncodingStrategy.java b/src/main/java/com/amazon/carbonado/raw/GenericEncodingStrategy.java
index b7356d7..dcc8d45 100644
--- a/src/main/java/com/amazon/carbonado/raw/GenericEncodingStrategy.java
+++ b/src/main/java/com/amazon/carbonado/raw/GenericEncodingStrategy.java
@@ -1906,7 +1906,10 @@ public class GenericEncodingStrategy<S extends Storable> {
a.invokeStatic(DataDecoder.class.getName(), "decodeSingle",
byteArrayType, params);
} else {
- // Just store raw property value.
+ // Always clone the byte array as some implementations
+ // reuse the byte array (e.g. iterating using a cursor).
+ a.invokeVirtual(TypeDesc.OBJECT, "clone", TypeDesc.OBJECT, null);
+ a.checkCast(byteArrayType);
}
storePropertyValue(a, info, useWriteMethods, instanceVar, adapterInstanceClass);