[ 
https://issues.apache.org/jira/browse/QPID-4906?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Rajith Attapattu updated QPID-4906:
-----------------------------------

    Attachment: QPID-4906.patch

If close() or closed() is called while the dispatcher thread is inside the 
onMessage(), the client keeps track of it and executes it ones it returns from 
onMessage().

Please note the patch depends on "msgDeliveryInProgress" which is introduced as 
part of the fix proposed in https://reviews.apache.org/r/10738/
                
> If Session close() or closed() method is invoked while inside onMessage(), 
> they should be excuted after onMessage() has completed.
> ----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: QPID-4906
>                 URL: https://issues.apache.org/jira/browse/QPID-4906
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Client
>            Reporter: Rajith Attapattu
>            Assignee: Rajith Attapattu
>         Attachments: QPID-4906.patch
>
>
> If Session close() or [closed() via the IO thread when a protocol close() is 
> received) is called while inside onMessage(), it deadlocks.
> As per the JMS spec, the session cannot be closed() until onMessage() method 
> returns.
> Therefore the best solution is to mark that close() or closed() has been 
> called and then execute those method once the thread returns from onMessage().

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

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

Reply via email to