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

Robbie Gemmell commented on QPID-5868:
--------------------------------------

Like Keith, I wondered what exactly the original issue was, as its not clear 
the title/description fully conveys the required detail for the suggested 
change, though I think my comments below typed while looking at it mean I 
figured it out...

Looking at what happens when an ExecutionException is received, it sets the 
exception on the Session, closes the session (but only after notifying the 
AMQSession_0_10 and ExceptionListener), takes the command lock and does a 
notify on it. That seems to point to any previously waiting thread in sync 
eventually being woken up, determining the session was closed, and throwing the 
exception. However, it is a bit iffy around what happens when notifying the 
AMQSession_0_10 and ExceptionListener before it actually marks the transport 
Session closed and wakes the waiting thread, which might make it possible for 
it to report a timeout rather the ExecutionException that caused it all. The 
change suggested would stop around that by tripping the boolean while setting 
the exception and causing the waiting thread to be woken before going near the 
AMQSession_0_10 or ExceptionListener, though it also means the Session will 
still marked open when the exception gets thrown by the waiter, rather than 
closed as it would have been before.

> Java client ignores exceptions when waiting on sync
> ---------------------------------------------------
>
>                 Key: QPID-5868
>                 URL: https://issues.apache.org/jira/browse/QPID-5868
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Client
>    Affects Versions: 0.27
>            Reporter: Rajith Attapattu
>             Fix For: 0.29
>
>         Attachments: QPID-5868.patch
>
>
> The java client will wait on the sync command even if an execution exception 
> is received from the broker.
> It will then proceed to throw a timeout exception and the execution exception 
> is not reported properly to the application.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to