alibaba / jetcache

JetCache is a Java cache framework.
Apache License 2.0
5.03k stars 1.05k forks source link

更新com.esotericsoftware.kryo大版本号为 5 #802

Closed milo-xiaomeng closed 1 year ago

milo-xiaomeng commented 1 year ago

目前 jetcache 中 kryo 版本过旧 最新版已经更新到 5.5.0 在新版kryo 序列化中会出现如下异常

2023-08-07 16:13:13.648 ERROR 15231 --- [           main] com.alicp.jetcache.AbstractCache         : jetcache(RedissonCache) PUT error. key=[1]

com.alicp.jetcache.support.CacheEncodeException: Kryo Encode error. msg=Class is not registered: com.alicp.jetcache.CacheValueHolder
Note: To register this class use: kryo.register(com.alicp.jetcache.CacheValueHolder.class);
    at com.alicp.jetcache.support.KryoValueEncoder.apply(KryoValueEncoder.java:65) ~[jetcache-core-2.7.3.jar:na]
    at com.alicp.jetcache.support.KryoValueEncoder.apply(KryoValueEncoder.java:15) ~[jetcache-core-2.7.3.jar:na]
    at com.alicp.jetcache.redisson.RedissonCache.encoder(RedissonCache.java:63) ~[jetcache-redisson-2.7.3.jar:na]
    at com.alicp.jetcache.redisson.RedissonCache.do_PUT(RedissonCache.java:172) ~[jetcache-redisson-2.7.3.jar:na]
    at com.alicp.jetcache.AbstractCache.PUT(AbstractCache.java:255) ~[jetcache-core-2.7.3.jar:na]
    at com.alicp.jetcache.MultiLevelCache.PUT_caches(MultiLevelCache.java:180) ~[jetcache-core-2.7.3.jar:na]
    at com.alicp.jetcache.MultiLevelCache.do_PUT(MultiLevelCache.java:154) ~[jetcache-core-2.7.3.jar:na]
    at com.alicp.jetcache.AbstractCache.PUT(AbstractCache.java:255) ~[jetcache-core-2.7.3.jar:na]
    at com.alicp.jetcache.MultiLevelCache.PUT(MultiLevelCache.java:67) ~[jetcache-core-2.7.3.jar:na]
    at com.alicp.jetcache.AbstractCache.lambda$computeIfAbsentImpl$2(AbstractCache.java:155) ~[jetcache-core-2.7.3.jar:na]
    at com.alicp.jetcache.AbstractCache.computeIfAbsentImpl(AbstractCache.java:165) ~[jetcache-core-2.7.3.jar:na]
    at com.alicp.jetcache.AbstractCache.computeIfAbsent(AbstractCache.java:114) ~[jetcache-core-2.7.3.jar:na]
    at com.alicp.jetcache.Cache.computeIfAbsent(Cache.java:312) ~[jetcache-core-2.7.3.jar:na]
    at com.alicp.jetcache.anno.method.CacheHandler.invokeWithCached(CacheHandler.java:264) ~[jetcache-anno-2.7.3.jar:na]
    at com.alicp.jetcache.anno.method.CacheHandler.doInvoke(CacheHandler.java:107) ~[jetcache-anno-2.7.3.jar:na]
    at com.alicp.jetcache.anno.method.CacheHandler.invoke(CacheHandler.java:99) ~[jetcache-anno-2.7.3.jar:na]
areyouok commented 1 year ago

现在jetcache的pom中kryo5的版本是5.3.0,不是很旧,我试了一下,5.5.0也能通过单元测试。

milo-xiaomeng commented 1 year ago

现在jetcache的pom中kryo5的版本是5.3.0,不是很旧,我试了一下,5.5.0也能通过单元测试。

抱歉啊,我不是指kryo5 我是指 com.esotericsoftware.kryo:4.0.2

areyouok commented 1 year ago

kryo4和5是完全不兼容的,现在4和5都支持。你想用kryo5光升maven版本号是不行的,yml里面valueEncoder/Decoder要设置成kryo5