This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new b8fc2d58df8f CAMEL-23627: Fix response error check in SlackProducer
b8fc2d58df8f is described below
commit b8fc2d58df8fa0cdfed8623f8b08dfaa0be84712
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) {