Quantcast
Channel: Active questions tagged redis+java - Stack Overflow
Viewing all articles
Browse latest Browse all 2204

Serialization when adding to RedisAggregationRepository

$
0
0

I am having troubles with the serialization of the record that contains enum inside.So my record looks like this (simplified):

@Builder@Jacksonizedpublic record NotificationData(...        @NotNull        Type type,...)  {    public enum Type {        INTERNAL, EXTERNAL    }}

And I have a route where I use RedisAggregationRepository and the NotificationData is a body of the exchange. When adding to Redis is performed the following exception is happening:

Exception caught: java.lang.IllegalArgumentException: java.io.IOException: java.lang.UnsupportedOperationException: can't get field offset on a record class: private final NotificationData$Type NotificationData.type    at org.redisson.command.CommandAsyncService.encodeMapValue(CommandAsyncService.java:732)    at org.redisson.RedissonObject.encodeMapValue(RedissonObject.java:310)    at org.redisson.RedissonMap.putOperationAsync(RedissonMap.java:1372)    at org.redisson.RedissonMap.putAsync(RedissonMap.java:1358)    at org.redisson.RedissonMap.put(RedissonMap.java:664)    at org.apache.camel.component.redis.processor.aggregate.RedisAggregationRepository.add(RedisAggregationRepository.java:134)...Caused by: java.lang.UnsupportedOperationException: can't get field offset on a record class: private final NotificationData$Type NotificationData.type    at jdk.unsupported/sun.misc.Unsafe.objectFieldOffset(Unsafe.java:648)    at org.jboss.marshalling.reflect.SerializableField.<init>(SerializableField.java:58)    at org.jboss.marshalling.reflect.SerializableClass.getSerializableFields(SerializableClass.java:121)    at org.jboss.marshalling.reflect.SerializableClass.<init>(SerializableClass.java:88)    at org.jboss.marshalling.reflect.SerializableClassRegistry$1.computeValue(SerializableClassRegistry.java:62)    at org.jboss.marshalling.reflect.SerializableClassRegistry$1.computeValue(SerializableClassRegistry.java:59)    at java.base/java.lang.ClassValue.getFromHashMap(ClassValue.java:228)    at java.base/java.lang.ClassValue.getFromBackup(ClassValue.java:210)    at java.base/java.lang.ClassValue.get(ClassValue.java:116)    at org.jboss.marshalling.reflect.SerializableClassRegistry.lookup(SerializableClassRegistry.java:83)    at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:180)    at org.jboss.marshalling.river.BlockMarshaller.doWriteObject(BlockMarshaller.java:65)    at org.jboss.marshalling.river.BlockMarshaller.writeObject(BlockMarshaller.java:56)    at org.jboss.marshalling.MarshallerObjectOutputStream.writeObjectOverride(MarshallerObjectOutputStream.java:50)    at org.jboss.marshalling.river.RiverObjectOutputStream.writeObjectOverride(RiverObjectOutputStream.java:179)    at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)    at java.base/java.util.CollSer.writeObject(ImmutableCollections.java:1465)    at org.jboss.marshalling.reflect.JDKSpecific$SerMethods.callWriteObject(JDKSpecific.java:89)    at org.jboss.marshalling.reflect.SerializableClass.callWriteObject(SerializableClass.java:193)    at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1089)    at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:268)    at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1143)    at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1101)    at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:268)    at org.jboss.marshalling.AbstractObjectOutput.writeObject(AbstractObjectOutput.java:58)    at org.jboss.marshalling.AbstractMarshaller.writeObject(AbstractMarshaller.java:111)    at org.redisson.codec.MarshallingCodec.lambda$new$1(MarshallingCodec.java:161)    ... 170 moreCaused by: an exception which occurred:    in field org.apache.camel.support.DefaultExchangeHolder.inBody    in object org.apache.camel.support.DefaultExchangeHolder@901212    in object org.apache.camel.support.DefaultExchangeHolder@901212

Am I doing something wrong or this is not supported?


Viewing all articles
Browse latest Browse all 2204

Trending Articles