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

相关推荐
爱上妖精的尾巴8 小时前
7-13 WPS JS宏 this 用构造函数自定义类-2,调用内部对象必须用this
开发语言·javascript·wps·jsa
wm10438 小时前
代码随想录第十天 栈和队列
开发语言·python
Java后端的Ai之路8 小时前
【Java教程】- 并发编程核心知识解读
java·开发语言·并发编程
Sheep Shaun8 小时前
C++11核心特性详解:从右值引用到现代C++编程
开发语言·数据结构·c++·算法
飞Link8 小时前
PyTorch 核心 API 完全手册:从基础张量到模型部署
人工智能·pytorch·python·深度学习·机器学习
Dontla8 小时前
Mybatis Introduction (Java ORM Framework)
java·开发语言·mybatis
信码由缰8 小时前
JExten:基于Java模块系统(JPMS)构建健壮的插件架构
java·开发语言·架构
Dxy12393102168 小时前
Python使用Playwright入门教程:从环境搭建到实战应用
开发语言·python·playwright
云深麋鹿8 小时前
三.栈和队列
开发语言·数据结构·c++·算法
墨抒颖 msy.plus8 小时前
如何构建现代Agent以OpenManus为例
python·ai编程