[
https://issues.apache.org/activemq/browse/CAMEL-1467?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=50713#action_50713
]
Orton Huang commented on CAMEL-1467:
------------------------------------
Hi Claus,
Good to hear from you again. Hope you're doing well
Sorry bout the confusion.
In XmppPrivateChatProducer, the method that needs to be updated is:
I added the chat.nextMessage() after the chat.sendMessage(message) (line 73)
below:
Thanks!
------
public void process(Exchange exchange) {
String threadId = exchange.getExchangeId();
try {
ChatManager chatManager = endpoint.getConnection().getChatManager();
Chat chat = chatManager.getThreadChat(threadId);
if (chat == null) {
chat = chatManager.createChat(getParticipant(), threadId, new
MessageListener() {
public void processMessage(Chat chat, Message message) {
// not here to do conversation
}
});
}
// TODO it would be nice if we could reuse the message from the
exchange
Message message = new Message();
message.setTo(participant);
message.setThread(threadId);
message.setType(Message.Type.normal);
endpoint.getBinding().populateXmppMessage(message, exchange);
if (LOG.isDebugEnabled()) {
LOG.debug(">>>> message: " + message.getBody());
}
chat.sendMessage(message);
// receive the return message here - orton
chat.nextMessage();
} catch (XMPPException e) {
throw new RuntimeXmppException(e);
}
}
> OutOfMemory Exception in XMPP Component
> ---------------------------------------
>
> Key: CAMEL-1467
> URL: https://issues.apache.org/activemq/browse/CAMEL-1467
> Project: Apache Camel
> Issue Type: Bug
> Components: camel-xmpp
> Environment: Mac OS 10.4.11, Java 1.5, Smack 3.0.4/3.1.0
> Reporter: Orton Huang
> Assignee: Claus Ibsen
> Fix For: 2.0.0, 1.6.1
>
> Original Estimate: 5 minutes
> Remaining Estimate: 5 minutes
>
> on publishing messages lots of messages using XMPP component (layered on top
> of Smack 3.0.4/3.1.0 client), Out of Memory Exception occurs.
> With standard JVM settings, client runs out of memory at around 6600 messages
> sent. With -Xmx1024M set, client runs out at ~110K messages sent.
> Appears that on a
> chat.sendMessage(message);
> The server sends the message back and the messages needs to be processed on
> the client side or the client will continue filling its local queue until it
> runs out of memory
> FIX:
> For XmppPrivateChatProducer and XmppGroupChatProducer, need to insert
> chat.nextMessage() after chat.sendMessage()
> public void process(Exchange exchange) {
> ...
> try {
> chat.sendMessage(message);
> chat.nextMessage();
> } catch (XMPPException e) {
> throw new RuntimeXmppException(e);
> }
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.