diff --git a/parquet-avro/src/main/java/org/apache/parquet/avro/AvroConverters.java b/parquet-avro/src/main/java/org/apache/parquet/avro/AvroConverters.java index e34cc9b0b2..bf9bde0df1 100644 --- a/parquet-avro/src/main/java/org/apache/parquet/avro/AvroConverters.java +++ b/parquet-avro/src/main/java/org/apache/parquet/avro/AvroConverters.java @@ -18,16 +18,11 @@ */ package org.apache.parquet.avro; -import java.lang.reflect.Constructor; -import java.lang.reflect.InvocationTargetException; -import java.math.BigDecimal; -import java.math.BigInteger; import java.nio.ByteBuffer; import org.apache.avro.Schema; import org.apache.avro.generic.GenericData; import org.apache.avro.util.Utf8; import org.apache.parquet.column.Dictionary; -import org.apache.parquet.io.ParquetDecodingException; import org.apache.parquet.io.api.Binary; import org.apache.parquet.io.api.GroupConverter; import org.apache.parquet.io.api.PrimitiveConverter; @@ -273,30 +268,6 @@ public Utf8 convert(Binary binary) { } } - static final class FieldStringableConverter extends BinaryConverter { - private final String stringableName; - private final Constructor ctor; - - public FieldStringableConverter(ParentValueContainer parent, Class stringableClass) { - super(parent); - stringableName = stringableClass.getName(); - try { - this.ctor = stringableClass.getConstructor(String.class); - } catch (NoSuchMethodException e) { - throw new ParquetDecodingException("Unable to get String constructor for " + stringableName, e); - } - } - - @Override - public Object convert(Binary binary) { - try { - return ctor.newInstance(binary.toStringUsingUTF8()); - } catch (InstantiationException | IllegalAccessException | InvocationTargetException e) { - throw new ParquetDecodingException("Cannot convert binary to " + stringableName, e); - } - } - } - static final class FieldEnumConverter extends BinaryConverter { private final Schema schema; private final GenericData model; diff --git a/parquet-avro/src/main/java/org/apache/parquet/avro/AvroRecordConverter.java b/parquet-avro/src/main/java/org/apache/parquet/avro/AvroRecordConverter.java index 66ffe64f6b..fdc8e50ef7 100644 --- a/parquet-avro/src/main/java/org/apache/parquet/avro/AvroRecordConverter.java +++ b/parquet-avro/src/main/java/org/apache/parquet/avro/AvroRecordConverter.java @@ -52,12 +52,10 @@ import org.apache.avro.reflect.AvroIgnore; import org.apache.avro.reflect.AvroName; import org.apache.avro.reflect.ReflectData; -import org.apache.avro.reflect.Stringable; import org.apache.avro.specific.SpecificData; import org.apache.avro.util.ClassUtils; import org.apache.parquet.Preconditions; import org.apache.parquet.avro.AvroConverters.FieldStringConverter; -import org.apache.parquet.avro.AvroConverters.FieldStringableConverter; import org.apache.parquet.io.InvalidRecordException; import org.apache.parquet.io.api.Converter; import org.apache.parquet.io.api.GroupConverter; @@ -150,18 +148,6 @@ public void add(Object value) { converters[parquetFieldIndex] = newConverter(nonNullSchema, parquetField, this.model, fieldClass, container, validator); - // @Stringable doesn't affect the reflected schema; must be enforced here - if (recordClass != null && converters[parquetFieldIndex] instanceof FieldStringConverter) { - try { - Field field = recordClass.getDeclaredField(avroField.name()); - if (field.isAnnotationPresent(Stringable.class)) { - converters[parquetFieldIndex] = new FieldStringableConverter(container, field.getType()); - } - } catch (NoSuchFieldException e) { - // must not be stringable - } - } - parquetFieldIndex += 1; } @@ -444,7 +430,7 @@ private static Converter newStringConverter( } else if (stringableClass == CharSequence.class) { return new AvroConverters.FieldUTF8Converter(parent); } - return new FieldStringableConverter(parent, stringableClass); + return null; } private static Class getStringableClass(Schema schema, GenericData model, ReflectClassValidator validator) {