AVRO-1895. Fix deepCopy() to get correct logical type conversion. (cherry picked from commit 9456db01859dd3619fb09a6d4205ab433b357b02)
Project: http://git-wip-us.apache.org/repos/asf/avro/repo Commit: http://git-wip-us.apache.org/repos/asf/avro/commit/9cfd3387 Tree: http://git-wip-us.apache.org/repos/asf/avro/tree/9cfd3387 Diff: http://git-wip-us.apache.org/repos/asf/avro/diff/9cfd3387 Branch: refs/heads/master Commit: 9cfd33870092d5c16a35b523305950215d1feabe Parents: 973aa71 Author: Doug Cutting <[email protected]> Authored: Wed Aug 31 16:45:21 2016 -0700 Committer: Sean Busbey <[email protected]> Committed: Thu Sep 1 08:45:37 2016 -0500 ---------------------------------------------------------------------- .../avro/src/main/java/org/apache/avro/generic/GenericData.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/avro/blob/9cfd3387/lang/java/avro/src/main/java/org/apache/avro/generic/GenericData.java ---------------------------------------------------------------------- diff --git a/lang/java/avro/src/main/java/org/apache/avro/generic/GenericData.java b/lang/java/avro/src/main/java/org/apache/avro/generic/GenericData.java index 9f3cc4d..76eb625 100644 --- a/lang/java/avro/src/main/java/org/apache/avro/generic/GenericData.java +++ b/lang/java/avro/src/main/java/org/apache/avro/generic/GenericData.java @@ -1030,7 +1030,7 @@ public class GenericData { LogicalType logicalType = schema.getLogicalType(); if (logicalType == null) // not a logical type -- use raw copy return (T)deepCopyRaw(schema, value); - Conversion conversion = getConversionByClass(value.getClass()); + Conversion conversion = getConversionByClass(value.getClass(), logicalType); if (conversion == null) // no conversion defined -- try raw copy return (T)deepCopyRaw(schema, value); // logical type with conversion: convert to raw, copy, then convert back to logical
