使用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之后的版本即可。

相关推荐
m0_527034332 分钟前
异步任务审核系统设计:消息队列、超时重试与失败补偿
java·大数据·开发语言
一朵好运莲27 分钟前
智能体使用 Chrome DevTools MCP 调试浏览器
开发语言·javascript·react.js
zzzll111130 分钟前
Loop Engineering:循环工程的原理、实践与应用
java·数据库·python
秋田君31 分钟前
QT_JSON文件操作
开发语言·qt·json
老赵的博客32 分钟前
可维护性 可扩展性 可复用性
开发语言·c++
sibylyue40 分钟前
工作流表单和流程设计前端
开发语言·javascript·开源
一个游离的指针1 小时前
JS中的对象的相关概念
开发语言·javascript·原型模式
jaysee-sjc1 小时前
【JavaWeb】Tlias智能学习辅助系统|后端Web实战(登录认证)
java·开发语言·前端·学习·mybatis
刘新洲1 小时前
别再只做会聊天的 Agent:我用 1 天把工具调用做成了可验证、可评测的工程系统
人工智能·python·openai