You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by or...@apache.org on 2024/01/15 13:21:10 UTC
(camel) 10/10: CAMEL-20297 camel-xmpp: do not swallow interrupted exceptions
This is an automated email from the ASF dual-hosted git repository.
orpiske pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 221f78a761a9e9090fe5ad132ad448d52cc1c74e
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Mon Jan 15 11:12:38 2024 +0100
CAMEL-20297 camel-xmpp: do not swallow interrupted exceptions
---
.../java/org/apache/camel/component/xmpp/XmppDirectProducer.java | 7 ++++---
.../org/apache/camel/component/xmpp/XmppGroupChatProducer.java | 9 +++++++++
.../org/apache/camel/component/xmpp/XmppPrivateChatProducer.java | 9 +++++++++
3 files changed, 22 insertions(+), 3 deletions(-)
diff --git a/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppDirectProducer.java b/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppDirectProducer.java
index 3b9f0bc6bc5..20fad1159d3 100644
--- a/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppDirectProducer.java
+++ b/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppDirectProducer.java
@@ -75,11 +75,12 @@ public class XmppDirectProducer extends DefaultProducer {
} else {
throw new Exception("Body does not contain Stanza/Stanza[] object(s)");
}
- } catch (XMPPException xmppe) {
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
throw new RuntimeExchangeException(
- "Cannot send XMPP direct: from " + endpoint.getUser() + " to: "
+ "Interrupted while sending XMPP direct: from " + endpoint.getUser() + " to: "
+ XmppEndpoint.getConnectionMessage(connection),
- exchange, xmppe);
+ exchange, e);
} catch (Exception e) {
throw new RuntimeExchangeException(
diff --git a/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppGroupChatProducer.java b/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppGroupChatProducer.java
index 4b22dc03c06..c6ad065fe2c 100644
--- a/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppGroupChatProducer.java
+++ b/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppGroupChatProducer.java
@@ -52,6 +52,9 @@ public class XmppGroupChatProducer extends DefaultProducer {
if (connection == null) {
try {
connection = endpoint.createConnection();
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ throw new RuntimeExchangeException("Interrupted while connecting to XMPP server.", exchange, e);
} catch (Exception e) {
throw new RuntimeExchangeException("Could not connect to XMPP server.", exchange, e);
}
@@ -60,6 +63,9 @@ public class XmppGroupChatProducer extends DefaultProducer {
if (chat == null) {
try {
initializeChat();
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ throw new RuntimeExchangeException("Interrupted while initializing XMPP chat.", exchange, e);
} catch (Exception e) {
throw new RuntimeExchangeException("Could not initialize XMPP chat.", exchange, e);
}
@@ -84,6 +90,9 @@ public class XmppGroupChatProducer extends DefaultProducer {
// must invoke nextMessage to consume the response from the server
// otherwise the client local queue will fill up (CAMEL-1467)
chat.pollMessage();
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ throw new RuntimeExchangeException("Interrupted while sending XMPP message: " + message, exchange, e);
} catch (Exception e) {
throw new RuntimeExchangeException("Could not send XMPP message: " + message, exchange, e);
}
diff --git a/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppPrivateChatProducer.java b/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppPrivateChatProducer.java
index 8da40f6dddf..bcd36d4f6d2 100644
--- a/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppPrivateChatProducer.java
+++ b/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppPrivateChatProducer.java
@@ -61,6 +61,9 @@ public class XmppPrivateChatProducer extends DefaultProducer {
if (!connection.isConnected()) {
this.reconnect();
}
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ throw new RuntimeCamelException("Interrupted while connecting to XMPP server.", e);
} catch (Exception e) {
throw new RuntimeCamelException("Could not connect to XMPP server.", e);
}
@@ -88,6 +91,12 @@ public class XmppPrivateChatProducer extends DefaultProducer {
LOG.debug("Sending XMPP message to {} from {} : {}", participant, endpoint.getUser(), message.getBody());
}
chat.send(message);
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ throw new RuntimeExchangeException(
+ "Interrupted while sending XMPP message to " + participant + " from " + endpoint.getUser() + " : " + message
+ + " to: " + XmppEndpoint.getConnectionMessage(connection),
+ exchange, e);
} catch (Exception e) {
throw new RuntimeExchangeException(
"Could not send XMPP message to " + participant + " from " + endpoint.getUser() + " : " + message