Author: clebert.suconic(a)jboss.com
Date: 2011-03-21 13:36:06 -0400 (Mon, 21 Mar 2011)
New Revision: 10349
Modified:
branches/Branch_2_2_EAP/src/main/org/hornetq/jms/client/HornetQMessageConsumer.java
Log:
https://issues.jboss.org/browse/JBPAPP-6110 - dealing with IndexOutOfBoundsException
during communication errors
Modified:
branches/Branch_2_2_EAP/src/main/org/hornetq/jms/client/HornetQMessageConsumer.java
===================================================================
---
branches/Branch_2_2_EAP/src/main/org/hornetq/jms/client/HornetQMessageConsumer.java 2011-03-21
16:19:54 UTC (rev 10348)
+++
branches/Branch_2_2_EAP/src/main/org/hornetq/jms/client/HornetQMessageConsumer.java 2011-03-21
17:36:06 UTC (rev 10349)
@@ -228,8 +228,6 @@
if (message != null)
{
- message.acknowledge();
-
msg = HornetQMessage.createMessage(message,
ackMode == Session.CLIENT_ACKNOWLEDGE ?
session.getCoreSession() : null);
@@ -237,12 +235,16 @@
{
msg.doBeforeReceive();
}
- catch (Exception e)
+ catch (Throwable e)
{
HornetQMessageConsumer.log.error("Failed to prepare message for
delivery", e);
return null;
}
+
+ // We Do the ack after doBeforeRecive, as in the case of large messages, this
may fail so we don't want messages redelivered
+ //
https://issues.jboss.org/browse/JBPAPP-6110
+ message.acknowledge();
}
return msg;