Author: rajith
Date: Sat Aug 25 08:42:40 2007
New Revision: 569691
URL: http://svn.apache.org/viewvc?rev=569691&view=rev
Log:
Corrected logic to check message listener
Modified:
incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/jms/MessageConsumerImpl.java
Modified:
incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/jms/MessageConsumerImpl.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/jms/MessageConsumerImpl.java?rev=569691&r1=569690&r2=569691&view=diff
==============================================================================
---
incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/jms/MessageConsumerImpl.java
(original)
+++
incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/jms/MessageConsumerImpl.java
Sat Aug 25 08:42:40 2007
@@ -437,16 +437,21 @@
try
{
QpidMessage jmsMessage = MessageFactory.getQpidMessage(message);
- if (_messageListener == null)
+ if (checkPreConditions(jmsMessage))
{
- _queue.offer(jmsMessage);
- }
- else
- {
- // I still think we don't need that additional thread in
SessionImpl
- // if the Application blocks on a message thats fine
- // getSession().dispatchMessage(getMessageActorID(),
jmsMessage);
- notifyMessageListener(jmsMessage);
+ preApplicationProcessing(jmsMessage);
+
+ if (_messageListener == null)
+ {
+ _queue.offer(jmsMessage);
+ }
+ else
+ {
+ // I still think we don't need that additional thread in
SessionImpl
+ // if the Application blocks on a message thats fine
+ // getSession().dispatchMessage(getMessageActorID(),
jmsMessage);
+ notifyMessageListener(jmsMessage);
+ }
}
}
catch (Exception e)
@@ -460,40 +465,35 @@
{
try
{
- boolean messageOk = checkPreConditions(message);
-
- // only deliver the message if it is valid
- if (messageOk)
+ _messageAsyncrhonouslyReceived++;
+ if (_messageAsyncrhonouslyReceived >= MAX_MESSAGE_TRANSFERRED)
+ {
+ // ask the server for the delivery of MAX_MESSAGE_TRANSFERRED
more messages
+ resetAsynchMessageReceived();
+ }
+
+
+ // The JMS specs says:
+ /* The result of a listener throwing a RuntimeException depends on
the session?s
+ * acknowledgment mode.
+ ? --- AUTO_ACKNOWLEDGE or DUPS_OK_ACKNOWLEDGE - the message
+ * will be immediately redelivered. The number of times a JMS
provider will
+ * redeliver the same message before giving up is
provider-dependent.
+ ? --- CLIENT_ACKNOWLEDGE - the next message for the listener is
delivered.
+ * --- Transacted Session - the next message for the listener is
delivered.
+ *
+ * The number of time we try redelivering the message is 0
+ **/
+ try
{
- _messageAsyncrhonouslyReceived++;
- if (_messageAsyncrhonouslyReceived >= MAX_MESSAGE_TRANSFERRED)
- {
- // ask the server for the delivery of
MAX_MESSAGE_TRANSFERRED more messages
- resetAsynchMessageReceived();
- }
- preApplicationProcessing(message);
- // The JMS specs says:
- /* The result of a listener throwing a RuntimeException
depends on the session?s
- * acknowledgment mode.
- ? --- AUTO_ACKNOWLEDGE or DUPS_OK_ACKNOWLEDGE - the message
- * will be immediately redelivered. The number of times a JMS
provider will
- * redeliver the same message before giving up is
provider-dependent.
- ? --- CLIENT_ACKNOWLEDGE - the next message for the listener
is delivered.
- * --- Transacted Session - the next message for the listener
is delivered.
- *
- * The number of time we try redelivering the message is 0
- **/
- try
- {
-
- _messageListener.onMessage((Message) message);
- }
- catch (RuntimeException re)
- {
- // do nothing as this message will not be redelivered
- }
+ _messageListener.onMessage((Message) message);
}
+ catch (RuntimeException re)
+ {
+ // do nothing as this message will not be redelivered
+ }
+
}
catch (Exception e)
@@ -533,6 +533,7 @@
{
System.out.println("Message not OK, releasing");
releaseMessage(message);
+ return false;
}
}