[ https://issues.apache.org/jira/browse/QPID-397?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Martin Ritchie reassigned QPID-397: ----------------------------------- Assignee: (was: Martin Ritchie) A test for this issue needs to be written to ensure it is confined to the M2 code base. > Client closeure can be processed before final message ack. > ---------------------------------------------------------- > > Key: QPID-397 > URL: https://issues.apache.org/jira/browse/QPID-397 > Project: Qpid > Issue Type: Bug > Components: Java Broker, Java Client > Affects Versions: M1, M2 > Reporter: Martin Ritchie > > We may need an AMQ protocol change to sort out this issue. > Because the Qpid client uses a dispatcher thread to handle the sending of the > ack during auto-ack. There is no guarantee it will send the Ack before a > different thread calls consumer.close while the ack is in the process of > sending to the broker. > Perhaps. > Lock whilst receiving message on consumer so the close cannot be sent first. > Imagine test case.. > onMessage() > { > if(messageType == "Close") > { > _consumer.close(); > } > } > Would be good if this could work. > the close() call should stop receive calls but cannot wait for the receive > call to finish. So if there is lock out on receiving request that the person > relinquishing the lock performs a close. > This would allow the close call to return... question is does JMS allow the > close() call to return without the connection actually closing? > Here is a thread trace: > AnonymousIoService-8 2007-03-02 15:58:42,187 DEBUG > [qpid.client.protocol.AMQProtocolHandler] Sent frame Frame channelId: 1, > bodyFrame: class org.apache.qpid.framing.BasicCancelBody Class: 60 Method: 30 > consumerTag: 1 nowait: false > pool-1-thread-1 2007-03-02 15:58:42,187 DEBUG > [qpid.server.protocol.AMQProtocolSession] Method frame received: Frame > channelId: 1, bodyFrame: class org.apache.qpid.framing.BasicCancelBody Class: > 60 Method: 30 consumerTag: 1 nowait: false > Dispatcher-Channel-1 2007-03-02 15:58:42,187 DEBUG > [apache.qpid.client.AMQSession] Sending ack for delivery tag 12 on channel 1 -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.