From 334620f36ea7c2c576d76edbe7669f3bf8044e60 Mon Sep 17 00:00:00 2001 From: Artem Bilan Date: Fri, 25 Oct 2024 16:52:27 -0400 Subject: [PATCH] GH-9597: Fix `Mqttv5PahoMessageHandler.publish()` for concurrency Fixes: #9597 Issue link: https://github.com/spring-projects/spring-integration/issues/9597 When input channel for the endpoint with a `Mqttv5PahoMessageHandler` is an `ExecutorChannel` and a lot of concurrent messages are sent, the `Connect already in progress (32110)` exception can be thrown * Wrap `this.mqttClient.connect()` in the `Mqttv5PahoMessageHandler.publish()` into a `Lock` **Auto-cherry-pick to `6.3.x` & `6.2.x`** --- .../mqtt/outbound/Mqttv5PahoMessageHandler.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/spring-integration-mqtt/src/main/java/org/springframework/integration/mqtt/outbound/Mqttv5PahoMessageHandler.java b/spring-integration-mqtt/src/main/java/org/springframework/integration/mqtt/outbound/Mqttv5PahoMessageHandler.java index 3b0af69ff2..c7ec7536d0 100644 --- a/spring-integration-mqtt/src/main/java/org/springframework/integration/mqtt/outbound/Mqttv5PahoMessageHandler.java +++ b/spring-integration-mqtt/src/main/java/org/springframework/integration/mqtt/outbound/Mqttv5PahoMessageHandler.java @@ -241,7 +241,15 @@ public class Mqttv5PahoMessageHandler extends AbstractMqttMessageHandler