diff --git a/centurion-avro/src/main/kotlin/com/sksamuel/centurion/avro/encoders/collections.kt b/centurion-avro/src/main/kotlin/com/sksamuel/centurion/avro/encoders/collections.kt index 94d1f46..b4510b1 100644 --- a/centurion-avro/src/main/kotlin/com/sksamuel/centurion/avro/encoders/collections.kt +++ b/centurion-avro/src/main/kotlin/com/sksamuel/centurion/avro/encoders/collections.kt @@ -11,7 +11,7 @@ class GenericArrayArrayEncoder(private val encoder: Encoder) : Encoder): Any { require(schema.type == Schema.Type.ARRAY) val elements = value.map { encoder.encode(schema.elementType, it) } - return GenericData.Array(elements.size, schema).also { it.addAll(elements as Collection) } + return GenericData.Array(schema, elements) } } @@ -22,7 +22,7 @@ class GenericArrayListEncoder(private val encoder: Encoder) : Encoder): Any { require(schema.type == Schema.Type.ARRAY) val elements = value.map { encoder.encode(schema.elementType, it) } - return GenericData.Array(elements.size, schema).also { it.addAll(elements as Collection) } + return GenericData.Array(schema, elements) } } @@ -33,9 +33,7 @@ class GenericArraySetEncoder(private val encoder: Encoder) : Encoder): GenericArray { require(schema.type == Schema.Type.ARRAY) val elements = value.map { encoder.encode(schema.elementType, it) } - val array = GenericData.get().newArray(null, elements.size, schema) as GenericArray - array.addAll(elements) - return array + return GenericData.Array(schema, elements) } }