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

Rob Godfrey commented on QPID-5439:
-----------------------------------

I have applied the change as per Gordon's suggestion (though the previous 
behaviour of the JMS client was also correct in as much as the client ensures 
there is no state at the endpoint before detaching).  

> [AMQP 1.0 JMS client] Client hangs during connection.close()
> ------------------------------------------------------------
>
>                 Key: QPID-5439
>                 URL: https://issues.apache.org/jira/browse/QPID-5439
>             Project: Qpid
>          Issue Type: Bug
>          Components: C++ Broker, Java Client
>    Affects Versions: 0.27
>         Environment: qpid-cpp 0.27 (latest trunk), amqp-1-0-client-jms 
> 0.28-SNAPSHOT (latest trunk).
>            Reporter: Ulrich Romahn
>            Priority: Blocker
>         Attachments: threaddump-1388121261214.tdump
>
>
> I am connecting to a cpp broker via the amqp-1-0-client-jms client and send 
> 1000 simple text messages to a queue on the broker. After that, I am opening 
> a second session to receive those 1000 messages.
> When trying to close the connection (calling connection.close()), the client 
> "hangs". When I look at the broker (qpid-tool, list connection) I am still 
> seeing this connection open.
> Debugging through the code, shows that there is a lock in the class 
> org.apache.qpid.amqp_1_0.client.Sender at the following code in method 
> close():
> ...
>         _session.removeSender(this);
>         _endpoint.setSource(null);
>         _endpoint.detach();
>         _closed = true;
>         synchronized(_endpoint.getLock())
>         {
>             while(!_endpoint.isDetached())
>             {
>                 try
>                 {
>                     _endpoint.getLock().wait();
>                 }
>                 catch (InterruptedException e)
>                 {
>                     throw new SenderClosingException(e);
>                 }
>             }
>         }
> It actually seems to hang at the line " _endpoint.getLock().wait(); "
> NOTE: the exact same code works when running against a Java broker 0.24.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

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

Reply via email to