Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
2.24.2, 3.0.0.RC3
-
None
-
Unknown
Description
An invalid JID, containing non-LDH characters, is created for the receiver (participant) when a private chat is started. As a result it is not possible to send chat messages directly to an user.
Group chats are not affected by the issue.
See: https://stackoverflow.com/questions/58168566/problem-sending-messages-from-camel-xmpp-jid-malformed
Exception seen in Openfire (4.4.3):
java.lang.IllegalArgumentException: The input 'xxxx.xxx.xx@chat:xxxxx@xxxx.xxx.xx:camel' is not a valid JID domain part: Contains non-LDH characters.
The issue can be fixed by removing the thread name when the JID is created:
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 b1b30a117ed..6eb1b9cb59c 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 @@ -97,7 +97,7 @@ public class XmppPrivateChatProducer extends DefaultProducer { private Chat getOrCreateChat(ChatManager chatManager, final String participant, String thread) throws XmppStringprepException { // this starts a new chat or retrieves the pre-existing one in a threadsafe manner - return chatManager.chatWith(JidCreate.entityBareFrom(participant + "@" + thread)); + return chatManager.chatWith(JidCreate.entityBareFrom(participant)); } private synchronized void reconnect() throws InterruptedException, IOException, SmackException, XMPPException {
Attachments
Issue Links
- links to