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

相关推荐
東雪木3 分钟前
java学习—— 8 种基本数据类型 vs 包装类、自动装箱 / 拆箱底层原理
java·开发语言·java面试
Lyyaoo.5 分钟前
【JAVA基础面经】JVM、JRE、JDK
java·开发语言·jvm
liulilittle6 分钟前
SQLite3增删改查(C
c语言·开发语言·数据库·c++·sqlite
Astro_ChaoXu7 分钟前
GAMSE使用日志与教程(高分辨率光谱数据缩减)
linux·数据库·python
左左右右左右摇晃7 分钟前
ConcurrentHashMap 设计原理笔记
java·开发语言·笔记
人工智能培训11 分钟前
基于知识图谱的故障推理方法与算法
人工智能·python·深度学习·机器学习·知识图谱·故障诊断
于先生吖39 分钟前
国际语言适配拼车系统 JAVA 后端源码 + 同城顺风车功能全解析
java·开发语言
ID_180079054731 小时前
超详细:Python 调用淘宝商品详情 API 完整教程
开发语言·python
小恶魔巴巴塔1 小时前
C语言避免头文件循环
c语言·开发语言
西西学代码1 小时前
Flutter---构造函数
开发语言·javascript·flutter