[ https://issues.apache.org/jira/browse/AVRO-1847?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15327644#comment-15327644 ]
Sean Busbey commented on AVRO-1847: ----------------------------------- {code} + + public static <T> Object convertToRawType(Schema schema, LogicalType logicalType, + Conversion<T> conversion, Object datum) { + if (conversion == null) { + return datum; + } + Class<T> fromClass = conversion.getConvertedType(); + switch (schema.getType()) { + case RECORD: return conversion.toRecord(fromClass.cast(datum), schema, logicalType); + case ENUM: return conversion.toEnumSymbol(fromClass.cast(datum), schema, logicalType); + case ARRAY: return conversion.toArray(fromClass.cast(datum), schema, logicalType); + case MAP: return conversion.toMap(fromClass.cast(datum), schema, logicalType); + case FIXED: return conversion.toFixed(fromClass.cast(datum), schema, logicalType); + case STRING: return conversion.toCharSequence(fromClass.cast(datum), schema, logicalType); + case BYTES: return conversion.toBytes(fromClass.cast(datum), schema, logicalType); + case INT: return conversion.toInt(fromClass.cast(datum), schema, logicalType); + case LONG: return conversion.toLong(fromClass.cast(datum), schema, logicalType); + case FLOAT: return conversion.toFloat(fromClass.cast(datum), schema, logicalType); + case DOUBLE: return conversion.toDouble(fromClass.cast(datum), schema, logicalType); + case BOOLEAN: return conversion.toBoolean(fromClass.cast(datum), schema, logicalType); + } + return datum; + } {code} There should be a try/catch block for ClassCastException here. > IDL compiler uses ByteBuffer for decimal type even if logical type is > supported > -------------------------------------------------------------------------------- > > Key: AVRO-1847 > URL: https://issues.apache.org/jira/browse/AVRO-1847 > Project: Avro > Issue Type: Bug > Components: java > Affects Versions: 1.8.0 > Reporter: Yibing Shi > Attachments: AVRO-1847.1.patch, AVRO-1847.2.patch, AVRO-1847.3.patch, > AVRO-1847.4.patch > > > Version 1.8.0 has added the support of logical types. A conversion class > (Conversions.DecimalConversion) has also been added for decimal type. > However, the IDL compiler still uses ByteBuffer for decimal types, which is > not the same behaviour as data, time or timestamp type (added in AVRO-1684). -- This message was sent by Atlassian JIRA (v6.3.4#6332)