You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Martin Ritchie (JIRA)" <qp...@incubator.apache.org> on 2007/01/15 12:34:27 UTC

[jira] Created: (QPID-293) setting MessageListener after connection has started can cause messages to be "lost" on a internal delivery queue.

setting MessageListener after connection has started can cause messages to be "lost" on a internal delivery queue.
------------------------------------------------------------------------------------------------------------------

                 Key: QPID-293
                 URL: https://issues.apache.org/jira/browse/QPID-293
             Project: Qpid
          Issue Type: Bug
          Components: Java Client
            Reporter: Martin Ritchie
         Assigned To: Martin Ritchie
            Priority: Blocker


The message delivery process:

Mina puts a message on _queue in AMQSession and the dispatcher thread take()s from here and dispatches to the _consumers. If the _consumer doesn't have a message listener set at connection start then messages are stored on _synchronousQueue (which needs to be > 1 to pass JMS TCK as multiple consumers on a session can run in any order and a synchronous put/poll will block the dispatcher). 

When setting the message listener later the _synchronousQueue is just poll()'ed and the first message delivered the remaining messages will be left on the queue and lost, subsequent messages on the session will arrive first.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Reopened: (QPID-293) setting MessageListener after connection has started can cause messages to be "lost" on a internal delivery queue.

Posted by "Martin Ritchie (JIRA)" <qp...@incubator.apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-293?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martin Ritchie reopened QPID-293:
---------------------------------


MessageListenerTest - augmented with test that demonstrates problem ..Regression as of r501004


> setting MessageListener after connection has started can cause messages to be "lost" on a internal delivery queue.
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: QPID-293
>                 URL: https://issues.apache.org/jira/browse/QPID-293
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Client
>            Reporter: Martin Ritchie
>         Assigned To: Martin Ritchie
>            Priority: Blocker
>
> The message delivery process:
> Mina puts a message on _queue in AMQSession and the dispatcher thread take()s from here and dispatches to the _consumers. If the _consumer doesn't have a message listener set at connection start then messages are stored on _synchronousQueue (which needs to be > 1 to pass JMS TCK as multiple consumers on a session can run in any order and a synchronous put/poll will block the dispatcher). 
> When setting the message listener later the _synchronousQueue is just poll()'ed and the first message delivered the remaining messages will be left on the queue and lost, subsequent messages on the session will arrive first.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (QPID-293) setting MessageListener after connection has started can cause messages to be "lost" on a internal delivery queue.

Posted by "Aidan Skinner (JIRA)" <qp...@incubator.apache.org>.
    [ https://issues.apache.org/jira/browse/QPID-293?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12611199#action_12611199 ] 

Aidan Skinner commented on QPID-293:
------------------------------------

MessageListener.testRecieveThenUseMessageListener requires some parts of it to be uncommented out to demonstrate this issue.

> setting MessageListener after connection has started can cause messages to be "lost" on a internal delivery queue.
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: QPID-293
>                 URL: https://issues.apache.org/jira/browse/QPID-293
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Client
>    Affects Versions: M1, M2
>            Reporter: Martin Ritchie
>            Assignee: Aidan Skinner
>            Priority: Blocker
>             Fix For: M3
>
>
> The message delivery process:
> Mina puts a message on _queue in AMQSession and the dispatcher thread take()s from here and dispatches to the _consumers. If the _consumer doesn't have a message listener set at connection start then messages are stored on _synchronousQueue (which needs to be > 1 to pass JMS TCK as multiple consumers on a session can run in any order and a synchronous put/poll will block the dispatcher). 
> When setting the message listener later the _synchronousQueue is just poll()'ed and the first message delivered the remaining messages will be left on the queue and lost, subsequent messages on the session will arrive first.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (QPID-293) setting MessageListener after connection has started can cause messages to be "lost" on a internal delivery queue.

Posted by "Martin Ritchie (JIRA)" <qp...@incubator.apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-293?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martin Ritchie updated QPID-293:
--------------------------------

        Fix Version/s: M3
             Assignee:     (was: Martin Ritchie)
    Affects Version/s: M2
                       M1

> setting MessageListener after connection has started can cause messages to be "lost" on a internal delivery queue.
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: QPID-293
>                 URL: https://issues.apache.org/jira/browse/QPID-293
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Client
>    Affects Versions: M1, M2
>            Reporter: Martin Ritchie
>            Priority: Blocker
>             Fix For: M3
>
>
> The message delivery process:
> Mina puts a message on _queue in AMQSession and the dispatcher thread take()s from here and dispatches to the _consumers. If the _consumer doesn't have a message listener set at connection start then messages are stored on _synchronousQueue (which needs to be > 1 to pass JMS TCK as multiple consumers on a session can run in any order and a synchronous put/poll will block the dispatcher). 
> When setting the message listener later the _synchronousQueue is just poll()'ed and the first message delivered the remaining messages will be left on the queue and lost, subsequent messages on the session will arrive first.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (QPID-293) setting MessageListener after connection has started can cause messages to be "lost" on a internal delivery queue.

Posted by "Martin Ritchie (JIRA)" <qp...@incubator.apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-293?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martin Ritchie resolved QPID-293.
---------------------------------

    Resolution: Fixed

Completed: At revision: 496641  


> setting MessageListener after connection has started can cause messages to be "lost" on a internal delivery queue.
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: QPID-293
>                 URL: https://issues.apache.org/jira/browse/QPID-293
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Client
>            Reporter: Martin Ritchie
>         Assigned To: Martin Ritchie
>            Priority: Blocker
>
> The message delivery process:
> Mina puts a message on _queue in AMQSession and the dispatcher thread take()s from here and dispatches to the _consumers. If the _consumer doesn't have a message listener set at connection start then messages are stored on _synchronousQueue (which needs to be > 1 to pass JMS TCK as multiple consumers on a session can run in any order and a synchronous put/poll will block the dispatcher). 
> When setting the message listener later the _synchronousQueue is just poll()'ed and the first message delivered the remaining messages will be left on the queue and lost, subsequent messages on the session will arrive first.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Assigned: (QPID-293) setting MessageListener after connection has started can cause messages to be "lost" on a internal delivery queue.

Posted by "Aidan Skinner (JIRA)" <qp...@incubator.apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-293?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Aidan Skinner reassigned QPID-293:
----------------------------------

    Assignee: Aidan Skinner

> setting MessageListener after connection has started can cause messages to be "lost" on a internal delivery queue.
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: QPID-293
>                 URL: https://issues.apache.org/jira/browse/QPID-293
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Client
>    Affects Versions: M1, M2
>            Reporter: Martin Ritchie
>            Assignee: Aidan Skinner
>            Priority: Blocker
>             Fix For: M3
>
>
> The message delivery process:
> Mina puts a message on _queue in AMQSession and the dispatcher thread take()s from here and dispatches to the _consumers. If the _consumer doesn't have a message listener set at connection start then messages are stored on _synchronousQueue (which needs to be > 1 to pass JMS TCK as multiple consumers on a session can run in any order and a synchronous put/poll will block the dispatcher). 
> When setting the message listener later the _synchronousQueue is just poll()'ed and the first message delivered the remaining messages will be left on the queue and lost, subsequent messages on the session will arrive first.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (QPID-293) setting MessageListener after connection has started can cause messages to be "lost" on a internal delivery queue.

Posted by "Aidan Skinner (JIRA)" <qp...@incubator.apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-293?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Aidan Skinner resolved QPID-293.
--------------------------------

    Resolution: Fixed

> setting MessageListener after connection has started can cause messages to be "lost" on a internal delivery queue.
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: QPID-293
>                 URL: https://issues.apache.org/jira/browse/QPID-293
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Client
>    Affects Versions: M1, M2
>            Reporter: Martin Ritchie
>            Assignee: Aidan Skinner
>            Priority: Blocker
>             Fix For: M3
>
>
> The message delivery process:
> Mina puts a message on _queue in AMQSession and the dispatcher thread take()s from here and dispatches to the _consumers. If the _consumer doesn't have a message listener set at connection start then messages are stored on _synchronousQueue (which needs to be > 1 to pass JMS TCK as multiple consumers on a session can run in any order and a synchronous put/poll will block the dispatcher). 
> When setting the message listener later the _synchronousQueue is just poll()'ed and the first message delivered the remaining messages will be left on the queue and lost, subsequent messages on the session will arrive first.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.