You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2020/11/27 16:06:00 UTC

[jira] [Commented] (QPIDJMS-521) ExceptionListener fired due to async dispatch failure is unable to close the Session/Connection

    [ https://issues.apache.org/jira/browse/QPIDJMS-521?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17239764#comment-17239764 ] 

ASF subversion and git services commented on QPIDJMS-521:
---------------------------------------------------------

Commit 8fea843e9b46457f4dda3b21b35c3c16558b723f in qpid-jms's branch refs/heads/master from Robbie Gemmell
[ https://gitbox.apache.org/repos/asf?p=qpid-jms.git;h=8fea843 ]

QPIDJMS-521: ensure ExceptionListener called during unexpected async dispatch failure is allowed to close the Session/Connection


> ExceptionListener fired due to async dispatch failure is unable to close the Session/Connection
> -----------------------------------------------------------------------------------------------
>
>                 Key: QPIDJMS-521
>                 URL: https://issues.apache.org/jira/browse/QPIDJMS-521
>             Project: Qpid JMS
>          Issue Type: Task
>          Components: qpid-jms-client
>    Affects Versions: 0.55.0
>            Reporter: Robbie Gemmell
>            Assignee: Robbie Gemmell
>            Priority: Major
>             Fix For: 0.56.0
>
>
> **When an unexpected failure occurs during the process of dispatching a message to an asynchronous consumer (i.e the work surrounding, but not including, onMessage), the connection ExceptionListener is fired as a result. If the ExceptionListener attempts to close the consumers containing Session or Connection it will currently fail with an javax.jms.IllegalStateException noting an "Illegal invocation from MessageListener callback".
> This happens because the session async dispatch thread is ordinarily not allowed to call these methods, is in keeping with the impl and their API definitions. However, in this case it is not firing onMessage at the time but is rather actually firing onException instead (and has relinquished the session delivery lock). As such the "Illegal invocation" exception is incorrect and the thread calling those operations should be permitted during this scenario.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org