diff options
author | Arnaud Simon <arnaudsimon@apache.org> | 2007-08-20 13:03:14 +0000 |
---|---|---|
committer | Arnaud Simon <arnaudsimon@apache.org> | 2007-08-20 13:03:14 +0000 |
commit | 6fa2905ef4f0e605aedc57eba221bbf0f6a7b063 (patch) | |
tree | 523395483bd9535ea2d0d253e4d6cf7c42c03f40 | |
parent | b941e6328557317c45a150447beab7f97a18bedb (diff) | |
download | qpid-python-6fa2905ef4f0e605aedc57eba221bbf0f6a7b063.tar.gz |
updated sync
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@567678 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | qpid/java/client/src/main/java/org/apache/qpidity/jms/MessageConsumerImpl.java | 18 | ||||
-rw-r--r-- | qpid/java/client/src/main/java/org/apache/qpidity/jms/SessionImpl.java | 41 |
2 files changed, 44 insertions, 15 deletions
diff --git a/qpid/java/client/src/main/java/org/apache/qpidity/jms/MessageConsumerImpl.java b/qpid/java/client/src/main/java/org/apache/qpidity/jms/MessageConsumerImpl.java index 57b7b7e7ac..e726288f89 100644 --- a/qpid/java/client/src/main/java/org/apache/qpidity/jms/MessageConsumerImpl.java +++ b/qpid/java/client/src/main/java/org/apache/qpidity/jms/MessageConsumerImpl.java @@ -401,6 +401,7 @@ public class MessageConsumerImpl extends MessageActor implements MessageConsumer // We now release any message received for this consumer _isReceiving = false; _isNoWaitIsReceiving = false; + getSession().testQpidException(); } return result; } @@ -583,8 +584,7 @@ public class MessageConsumerImpl extends MessageActor implements MessageConsumer RangeSet ranges = new RangeSet(); ranges.add(message.getMessageTransferId()); getSession().getQpidSession().messageRelease(ranges); - getSession().getQpidSession().sync(); - testQpidException(); + getSession().testQpidException(); } } @@ -611,7 +611,7 @@ public class MessageConsumerImpl extends MessageActor implements MessageConsumer { result = true; } - testQpidException(); + getSession().testQpidException(); } return result; } @@ -629,17 +629,7 @@ public class MessageConsumerImpl extends MessageActor implements MessageConsumer RangeSet ranges = new RangeSet(); ranges.add(message.getMessageTransferId()); getSession().getQpidSession().messageAcknowledge(ranges); - getSession().getQpidSession().sync(); - testQpidException(); - } - } - - private void testQpidException() throws QpidException - { - QpidException qe = getSession().getCurrentException(); - if (qe != null) - { - throw qe; + getSession().testQpidException(); } } } diff --git a/qpid/java/client/src/main/java/org/apache/qpidity/jms/SessionImpl.java b/qpid/java/client/src/main/java/org/apache/qpidity/jms/SessionImpl.java index 5994650f34..57a69277a7 100644 --- a/qpid/java/client/src/main/java/org/apache/qpidity/jms/SessionImpl.java +++ b/qpid/java/client/src/main/java/org/apache/qpidity/jms/SessionImpl.java @@ -156,7 +156,7 @@ public class SessionImpl implements Session { _qpidSession.txSelect(); } - + testQpidException(); // init the message dispatcher. initMessageDispatcherThread(); } @@ -319,6 +319,14 @@ public class SessionImpl implements Session } // commit the underlying Qpid Session _qpidSession.txCommit(); + try + { + testQpidException(); + } + catch (QpidException e) + { + throw ExceptionHelper.convertQpidExceptionToJMSException(e); + } } /** @@ -342,6 +350,14 @@ public class SessionImpl implements Session } // rollback the underlying Qpid Session _qpidSession.txRollback(); + try + { + testQpidException(); + } + catch (QpidException e) + { + throw ExceptionHelper.convertQpidExceptionToJMSException(e); + } } /** @@ -401,6 +417,14 @@ public class SessionImpl implements Session } // close the underlaying QpidSession _qpidSession.sessionClose(); + try + { + testQpidException(); + } + catch (QpidException e) + { + throw ExceptionHelper.convertQpidExceptionToJMSException(e); + } } } @@ -1083,6 +1107,21 @@ public class SessionImpl implements Session return _connection; } + /** + * sync and return the potential exception + * + * @throws QpidException If an exception has been thrown by the broker. + */ + protected void testQpidException() throws QpidException + { + _qpidSession.sync(); + QpidException qe = getCurrentException(); + if (qe != null) + { + throw qe; + } + } + //------ Private Methods /** * Close the producer and the consumers of this session |