apache / rocketmq-spring

Apache RocketMQ Spring Integration
https://rocketmq.apache.org/
Apache License 2.0
2.09k stars 894 forks source link

[ISSUE #632 ] Fix NPE caused by using @ ExtRocketMQTemplateConfiguration annotation extension to send messages #634

Closed lilinjiang closed 6 months ago

lilinjiang commented 6 months ago

What is the purpose of the change Close https://github.com/apache/rocketmq-spring/issues/632

问题现象: 修复应用启动时,监听RocketMQ消息后使用@ExtRocketMQTemplateConfiguration注解扩展的RocketMQTemplate发送消息导致的空指针异常问题。 问题原因: Listener 启动时机比 @ExtRocketMQTemplateConfiguration注解扩展的RocketMQTemplate中producer 实例化的早,导致Listener监听到消息时 RocketMQTemplate中producer 还未实例化,此时使用未实例化producer属性的RocketMQTemplate发送消息将导致空指针异常。 (@RocketMQMessageListener 与 Spring Cloud Stream 的生产者一起使用时同样存在一样的问题,都是因为Listener的启动时机太早) 解决方案: 推迟了Listener 的启动时机 详情见commits

lilinjiang commented 6 months ago

@panzhi33

panzhi33 commented 6 months ago

@panzhi33

@panzhi33

Please help to see if the v5 client also has this problem. If so, please help to submit a PR to fix it.