This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch backport/23567-to-camel-4.18.x in repository https://gitbox.apache.org/repos/asf/camel.git
commit 8360795d6efae2799e11cf262957959ee4a32231 Author: Xadhoodin <[email protected]> AuthorDate: Wed May 27 20:45:33 2026 +0200 CAMEL-23627: Fix response error check in SlackProducer Move the Slack API error response check inside the try block so the exception is set on the exchange before callback.done(true) fires. Previously the check happened after the callback, causing onException policies to miss the error. Also fix both methods to return true since SlackProducer is fully synchronous. Closes #23567 --- .../apache/camel/component/slack/SlackProducer.java | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/components/camel-slack/src/main/java/org/apache/camel/component/slack/SlackProducer.java b/components/camel-slack/src/main/java/org/apache/camel/component/slack/SlackProducer.java index 1768f82bb2f7..30112e14f614 100644 --- a/components/camel-slack/src/main/java/org/apache/camel/component/slack/SlackProducer.java +++ b/components/camel-slack/src/main/java/org/apache/camel/component/slack/SlackProducer.java @@ -84,6 +84,10 @@ public class SlackProducer extends DefaultAsyncProducer { slackMessage.setText(exchange.getIn().getBody(String.class)); response = sendLegacySlackMessage(slackMessage); } + if (!response.isOk()) { + exchange.setException( + new CamelExchangeException("Error POSTing to Slack API: " + response, exchange)); + } } catch (Exception e) { exchange.setException(e); return true; @@ -91,11 +95,7 @@ public class SlackProducer extends DefaultAsyncProducer { callback.done(true); } - if (!response.isOk()) { - exchange.setException(new CamelExchangeException("Error POSTing to Slack API: " + response.toString(), exchange)); - } - - return false; + return true; } private ChatPostMessageResponse sendLegacySlackMessage(SlackMessage slackMessage) throws IOException, SlackApiException { @@ -134,6 +134,10 @@ public class SlackProducer extends DefaultAsyncProducer { WebhookResponse response; try { response = slack.send(slackEndpoint.getWebhookUrl(), json); + if (response.getCode() < 200 || response.getCode() > 299) { + exchange.setException( + new CamelExchangeException("Error POSTing to Slack API: " + response, exchange)); + } } catch (IOException e) { exchange.setException(e); return true; @@ -141,11 +145,7 @@ public class SlackProducer extends DefaultAsyncProducer { callback.done(true); } - if (response.getCode() < 200 || response.getCode() > 299) { - exchange.setException(new CamelExchangeException("Error POSTing to Slack API: " + response.toString(), exchange)); - } - - return false; + return true; } private Message addEndPointOptions(Message slackMessage) {
