diff options
author | Arnaud Simon <arnaudsimon@apache.org> | 2007-10-19 15:02:40 +0000 |
---|---|---|
committer | Arnaud Simon <arnaudsimon@apache.org> | 2007-10-19 15:02:40 +0000 |
commit | 0d1241b9ff64467c23a5146e9614202026536adc (patch) | |
tree | 939244ea7d4e52d434ae3991968963d84c3febc7 | |
parent | 5ba7bf8e827c0279cb6bedc4ff022bf22085e8f8 (diff) | |
download | qpid-python-0d1241b9ff64467c23a5146e9614202026536adc.tar.gz |
Changed to handle exception correctly in onMessage
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@586491 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer_0_10.java | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer_0_10.java b/java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer_0_10.java index eb414abea5..024558eaaf 100644 --- a/java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer_0_10.java +++ b/java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer_0_10.java @@ -127,8 +127,14 @@ public class BasicMessageConsumer_0_10 extends BasicMessageConsumer<Struct[], By getSession().getAMQConnection().getExceptionListener() .onException(new JMSAMQException("Error when receiving message", e)); } - catch (JMSException e1) + catch (Exception e1) { + // the receiver may be waiting for a message + if( _messageCounter.get() >= 0) + { + _messageCounter.decrementAndGet(); + _synchronousQueue.add(new NullTocken()); + } // we should silently log thie exception as it only hanppens when the connection is closed _logger.error("Exception when receiving message", e1); } @@ -261,7 +267,7 @@ public class BasicMessageConsumer_0_10 extends BasicMessageConsumer<Struct[], By // TODO Use a tag for fiding out if message filtering is done here or by the broker. try { - if (getMessageSelector() != null) + if (getMessageSelector() != null && ! getMessageSelector().equals("")) { messageOk = _filter.matches(message); } |