[ 
https://issues.apache.org/jira/browse/CAMEL-14194?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Johan Pramming updated CAMEL-14194:
-----------------------------------
    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): 
{code:java}
java.lang.IllegalArgumentException: The input 
'xxxx.xxx.xx@chat:[email protected]:camel' is not a valid JID domain part: 
Contains non-LDH characters.
{code}
 

The issue can be fixed by removing the thread name when the JID is created: 
{code:java}
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 {
{code}

  was:
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):

 
{code:java}
java.lang.IllegalArgumentException: The input 
'xxxx.xxx.xx@chat:[email protected]:camel' is not a valid JID domain part: 
Contains non-LDH characters.
{code}
 

The issue can be fixed by removing the thread name when the JID is created:

 
{code:java}
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 {
{code}


> Invalid JID is generated for private chat in XMPP component
> -----------------------------------------------------------
>
>                 Key: CAMEL-14194
>                 URL: https://issues.apache.org/jira/browse/CAMEL-14194
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-xmpp
>    Affects Versions: 2.24.2, 3.0.0.RC3
>            Reporter: Johan Pramming
>            Priority: Major
>
> 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): 
> {code:java}
> java.lang.IllegalArgumentException: The input 
> 'xxxx.xxx.xx@chat:[email protected]:camel' is not a valid JID domain part: 
> Contains non-LDH characters.
> {code}
>  
> The issue can be fixed by removing the thread name when the JID is created: 
> {code:java}
> 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 {
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to