rdifrango commented on PR #2389:
URL: https://github.com/apache/avro/pull/2389#issuecomment-2598522945

   > Hi @clesaec
   > 
   > I looks like this change broke the Avro deserialization of arrays of items 
using logicalTypes in Quarkus.
   > 
   > In our existing solution, we now get this error after bumping the Quarkus 
version to a version using 1.12.0.
   > 
   > `2024-09-06 14:14:44,674 ERROR [io.sma.rea.mes.kafka] 
(smallrye-kafka-consumer-thread-0) SRMSG18249: Unable to recover from the 
deserialization failure (topic: testobject), configure a 
DeserializationFailureHandler to recover from errors.: 
java.lang.ClassCastException: class java.time.Instant cannot be cast to class 
java.lang.Long (java.time.Instant and java.lang.Long are in module java.base of 
loader 'bootstrap') at 
org.apache.avro.generic.PrimitivesArrays$LongArray.add(PrimitivesArrays.java:132)
 at java.base/java.util.AbstractList.add(AbstractList.java:113) at 
org.apache.avro.generic.GenericDatumReader.addToArray(GenericDatumReader.java:333)
 at 
org.apache.avro.generic.GenericDatumReader.readArray(GenericDatumReader.java:294)
 at 
org.apache.avro.generic.GenericDatumReader.readWithoutConversion(GenericDatumReader.java:184)
 at 
org.apache.avro.specific.SpecificDatumReader.readField(SpecificDatumReader.java:181)
 at org.apache.avro.generic.GenericDatumReader.readRecord(GenericDatumRe
 ader.java:248) at 
org.apache.avro.specific.SpecificDatumReader.readRecord(SpecificDatumReader.java:168)
 at 
org.apache.avro.generic.GenericDatumReader.readWithoutConversion(GenericDatumReader.java:180)
 at 
org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:161) at 
org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:154) at 
io.apicurio.registry.serde.avro.AvroKafkaDeserializer.readData(AvroKafkaDeserializer.java:117)
 at 
io.apicurio.registry.serde.AbstractKafkaDeserializer.readData(AbstractKafkaDeserializer.java:142)
 at 
io.apicurio.registry.serde.AbstractKafkaDeserializer.deserialize(AbstractKafkaDeserializer.java:122)
 at 
io.smallrye.reactive.messaging.kafka.fault.DeserializerWrapper.lambda$deserialize$1(DeserializerWrapper.java:77)
 at 
io.smallrye.reactive.messaging.kafka.fault.DeserializerWrapper.wrapDeserialize(DeserializerWrapper.java:109)
 at 
io.smallrye.reactive.messaging.kafka.fault.DeserializerWrapper.deserialize(DeserializerWrapper.java:77
 ) at 
org.apache.kafka.common.serialization.Deserializer.deserialize(Deserializer.java:73)
 at 
org.apache.kafka.clients.consumer.internals.CompletedFetch.parseRecord(CompletedFetch.java:321)
 at 
org.apache.kafka.clients.consumer.internals.CompletedFetch.fetchRecords(CompletedFetch.java:283)
 at 
org.apache.kafka.clients.consumer.internals.FetchCollector.fetchRecords(FetchCollector.java:168)
 at 
org.apache.kafka.clients.consumer.internals.FetchCollector.collectFetch(FetchCollector.java:134)
 at 
org.apache.kafka.clients.consumer.internals.Fetcher.collectFetch(Fetcher.java:145)
 at 
org.apache.kafka.clients.consumer.internals.LegacyKafkaConsumer.pollForFetches(LegacyKafkaConsumer.java:693)
 at 
org.apache.kafka.clients.consumer.internals.LegacyKafkaConsumer.poll(LegacyKafkaConsumer.java:617)
 at 
org.apache.kafka.clients.consumer.internals.LegacyKafkaConsumer.poll(LegacyKafkaConsumer.java:590)
 at 
org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:874) at 
io.smallrye.reactive.me
 
ssaging.kafka.impl.ReactiveKafkaConsumer.lambda$poll$4(ReactiveKafkaConsumer.java:199)
 at 
io.smallrye.context.impl.wrappers.SlowContextualFunction.apply(SlowContextualFunction.java:21)
 at 
io.smallrye.mutiny.operators.uni.UniOnItemTransform$UniOnItemTransformProcessor.onItem(UniOnItemTransform.java:36)
 at 
io.smallrye.mutiny.operators.uni.UniOperatorProcessor.onItem(UniOperatorProcessor.java:47)
 at 
io.smallrye.mutiny.operators.uni.UniMemoizeOp.forwardTo(UniMemoizeOp.java:123) 
at 
io.smallrye.mutiny.operators.uni.UniMemoizeOp.subscribe(UniMemoizeOp.java:67) 
at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:36) at 
io.smallrye.mutiny.operators.uni.UniRunSubscribeOn.lambda$subscribe$0(UniRunSubscribeOn.java:27)
 at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
 at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolEx
 ecutor.java:304) at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
 at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
 at java.base/java.lang.Thread.run(Thread.java:1583)`
   
   I noticed the same thing when working with the 
   
   The ones not working at all are:
   
   * Shorts `java.lang.ClassCastException: class java.lang.Short cannot be cast 
to class java.lang.Integer (java.lang.Short and java.lang.Integer are in module 
java.base of loader 'bootstrap')`
   
   * Characters `java.lang.ClassCastException: class java.lang.Character cannot 
be cast to class java.lang.Integer (java.lang.Character and java.lang.Integer 
are in module java.base of loader 'bootstrap')`
   
   * Bytes - `java.lang.ClassCastException: class java.lang.Byte cannot be cast 
to class java.lang.Integer (java.lang.Byte and java.lang.Integer are in module 
java.base of loader 'bootstrap')`
   
   See:
   
   https://github.com/FasterXML/jackson-dataformats-binary/issues/514
   
   Hence my one PR to fix an issue just with Doubles:
   
   https://github.com/apache/avro/pull/3292


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to