使用Redis Stream偶发空指针问题

**问题描述:**使用redission客户端封装的stream消息队列,在进行消息轮询时,偶发出现空指针问题。

java 复制代码
[2024-11-13 09:59:20]  [] [] [redis-stream-consumer-thread-1 ] [lambda$streamMessageListenerContainer$1] [ERROR] [c.r.c.r.s.config.RedisStreamConfig] Cannot invoke "java.util.List.iterator()" because "records" is null
java.lang.NullPointerException: Cannot invoke "java.util.List.iterator()" because "records" is null
	at org.springframework.data.redis.stream.StreamPollTask.deserializeAndEmitRecords(StreamPollTask.java:151)
	at org.springframework.data.redis.stream.StreamPollTask.doLoop(StreamPollTask.java:128)
	at org.springframework.data.redis.stream.StreamPollTask.run(StreamPollTask.java:112)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:842)

解决方案: 可以看到redission官网在3.30.0版本解决了这个问题

使用redission封装的redis stream时遇到这个问题,只需要升级redission到3.30.0之后的版本即可。

相关推荐
Darkershadow2 分钟前
Python学习之使用pycharts
开发语言·python
晚秋大魔王7 分钟前
C语言-宏的基础、进阶、高级、内置宏的用法
c语言·开发语言·
写代码的【黑咖啡】9 分钟前
Python 中的控制流程:掌握程序的逻辑跳转
服务器·javascript·python
moxiaoran575312 分钟前
Go语言的递归函数
开发语言·后端·golang
水坚石青12 分钟前
Java+Swing+Mysql实现物业管理系统
java·开发语言·数据库·mysql·swing
尼古拉斯·纯情暖男·天真·阿玮12 分钟前
[JavaEE初阶] Thread类的基本用法
java·开发语言
特立独行的猫a16 分钟前
C++开发中的构建工具:现代CMake实战速成
开发语言·c++·cmake·入门教程
朝花不迟暮22 分钟前
Go基础-闭包
android·开发语言·golang
Wpa.wk28 分钟前
自动化测试(java) - PO模式了解
java·开发语言·python·测试工具·自动化·po模式
徐先生 @_@|||30 分钟前
Java/Maven 对比 Python/PyPI
开发语言·python