[ https://issues.apache.org/jira/browse/AVRO-1895?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15453495#comment-15453495 ]
Ryan Blue commented on AVRO-1895: --------------------------------- I think this should use the {{getConversionByClass}} method for generic. I'd be fine with assuming the right class is used for specific, but generic allows users to set objects and I don't think we should require that the class is always the "right" one if there is a way to choose the right conversion for the object that gets passed in. > DeepCopy does not work with logical types > ----------------------------------------- > > Key: AVRO-1895 > URL: https://issues.apache.org/jira/browse/AVRO-1895 > Project: Avro > Issue Type: Improvement > Components: logical types > Affects Versions: 1.8.1 > Reporter: Taras Bobrovytsky > Assignee: Doug Cutting > Priority: Critical > Attachments: AVRO-1895.patch, AVRO-1895.patch, AVRO-1895.patch > > > AvroSchema is taken from a compiled avsc file which contains a decimal field. > {code} > AvroSchema.Builder builder = AvroSchema.newBuilder(); > BigDecimal bd = new BigDecimal(new BigInteger("155"), 3); > campaignBuilder.setDecimalField(bd); > AvroSchema source = builder.build(); > //This line causes an exception > AvroSchema.Builder builder1 = AvroSchema.newBuilder(source); > {code} > Exception: > {code} > InvocationTargetException: java.math.BigDecimal cannot be cast to > java.nio.ByteBuffer > {code} > The same failure happens with GenericData as well: > {code} > GenericRecord copy = GenericData.get().deepCopy(AvroSchema.getClassSchema(), > source); > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)