qiujiayu / AutoLoadCache

AutoLoadCache 是基于AOP+Annotation等技术实现的高效的缓存管理解决方案,实现缓存与业务逻辑的解耦,并增加异步刷新及“拿来主义机制”,以适应高并发环境下的使用。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AutoLoadCache整合Redisson后,分布式锁空指针问题

Pickacat opened this issue · comments

commented

autoload-cache-spring-boot-starter 7.0.6 版本。
采用Redisson做Redis客户端时,分布式锁空指针。

异常堆栈:
image

debug发现:
image

image
SpringRedisLock 类37行拿到的stringCommands 为 RedissonConnection,而RedissonConnection执行 set key value [EX | PX] [NX | XX] 因条件不满足而无法设值成功会返回null(参见官网文档 https://redis.io/commands/set)。导致37行拆箱时空指针异常。

建议解决办法,redisConnection.stringCommands().set 的返回值判断一下,如果为null时转为false。