avro4k icon indicating copy to clipboard operation
avro4k copied to clipboard

encodeToByteArray() fails when applied with primitives

Open geomagilles opened this issue 5 years ago • 1 comments

for example:

Avro.default.encodeToByteArray(String.serializer(), "foo"))

triggers

Exception in thread "main" kotlinx.serialization.SerializationException: Non-serializable class kotlin.String is not supported by class com.sksamuel.avro4k.encoder.RootRecordEncoder encoder
	at kotlinx.serialization.encoding.AbstractEncoder.encodeValue(AbstractEncoder.kt:36)
	at kotlinx.serialization.encoding.AbstractEncoder.encodeString(AbstractEncoder.kt:50)
	at kotlinx.serialization.internal.StringSerializer.serialize(Primitives.kt:139)
	at kotlinx.serialization.internal.StringSerializer.serialize(Primitives.kt:137)
	at kotlinx.serialization.encoding.Encoder$DefaultImpls.encodeSerializableValue(Encoding.kt:259)
	at kotlinx.serialization.encoding.AbstractEncoder.encodeSerializableValue(AbstractEncoder.kt:18)
	at com.sksamuel.avro4k.Avro.toRecord(Avro.kt:220)
	at com.sksamuel.avro4k.Avro$openOutputStream$builder$1$1.invoke(Avro.kt:199)
	at com.sksamuel.avro4k.Avro$openOutputStream$builder$1$1.invoke(Avro.kt:104)
	at com.sksamuel.avro4k.io.AvroDataOutputStream.write(AvroDataOutputStream.kt:44)
	at com.sksamuel.avro4k.Avro.encodeToByteArray(Avro.kt:179)
	at io.infinitic.common.MainKt.main(main.kt:18)

geomagilles avatar Nov 06 '20 09:11 geomagilles

I lost a few hours with this issue the other day! I tried to encode an enum class as a byte array and got an error of the form Non-serializable class kotlin.Int is not supported by class com.sksamuel.avro4k.encoder.RootRecordEncoder encoder. Would be great to fix this or at least improve the error message. I spent a long time thinking that I wasn't calling the right method to serialize my data...

cgadski avatar Nov 30 '21 16:11 cgadski

See https://github.com/avro-kotlin/avro4k/issues/148

Chuckame avatar Jun 16 '23 16:06 Chuckame

Currently WIP, will fixed available in next weeks

Chuckame avatar Aug 28 '23 22:08 Chuckame

Closing this issue, as it will be covered by https://github.com/avro-kotlin/avro4k/issues/187

Chuckame avatar Feb 08 '24 14:02 Chuckame