This is an automated email from the ASF dual-hosted git repository. robbie pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/qpid-jms.git
commit 9cad42da6fae11811ec1aea140705b3c59ac88cd Author: Robbie Gemmell <rob...@apache.org> AuthorDate: Tue Sep 24 17:04:27 2019 +0100 QPIDJMS-473: improve handling/logging of exceptions during async completion --- .../main/java/org/apache/qpid/jms/JmsSession.java | 25 ++++++++++++++-------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsSession.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsSession.java index d3b30c5..7015a6f 100644 --- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsSession.java +++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsSession.java @@ -1485,6 +1485,7 @@ public class JmsSession implements AutoCloseable, Session, QueueSession, TopicSe try { completion.signalCompletion(); } catch (Throwable error) { + LOG.error("Failure while performing completion for send: {}", completion.envelope, error); } finally { LOG.trace("Signaled completion of send: {}", completion.envelope); } @@ -1526,8 +1527,7 @@ public class JmsSession implements AutoCloseable, Session, QueueSession, TopicSe } completion.signalCompletion(); } catch (Throwable error) { - LOG.trace("Failed while performing send completion: {}", envelope); - // TODO - What now? + LOG.error("Failure while performing completion for send: {}", envelope, error); } // Signal any trailing completions that have been marked complete @@ -1539,8 +1539,7 @@ public class JmsSession implements AutoCloseable, Session, QueueSession, TopicSe try { completion.signalCompletion(); } catch (Throwable error) { - LOG.trace("Failed while performing send completion: {}", envelope); - // TODO - What now? + LOG.error("Failure while performing completion for send: {}", envelope, error); } finally { pending.remove(); } @@ -1564,8 +1563,7 @@ public class JmsSession implements AutoCloseable, Session, QueueSession, TopicSe } } } catch (Exception ex) { - LOG.debug("Send completion task encounted unexpected error: {}", ex.getMessage()); - // TODO - What now + LOG.error("Async completion task encountered unexpected failure", ex); } } } @@ -1597,12 +1595,21 @@ public class JmsSession implements AutoCloseable, Session, QueueSession, TopicSe } public void signalCompletion() { - envelope.getMessage().onSendComplete(); // Ensure message is returned as readable. + JmsMessage message = envelope.getMessage(); + message.onSendComplete(); // Ensure message is returned as readable. if (failureCause == null) { - listener.onCompletion(envelope.getMessage()); + try { + listener.onCompletion(message); + } catch (Exception ex) { + LOG.trace("CompletionListener threw exception from onCompletion for send {}", envelope, ex); + } } else { - listener.onException(envelope.getMessage(), failureCause); + try { + listener.onException(message, failureCause); + } catch (Exception ex) { + LOG.trace("CompletionListener threw exception from onException for send {}", envelope, ex); + } } } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org