Qpid
  1. Qpid
  2. QPID-3519

Refactor the logic behind sending of the selector arguments during subscription creation

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.15
    • Component/s: Java Client
    • Labels:
      None

      Description

      In current implementation the FieldTable with JMS selector is created in AMQSession#createConsumerImpl.

      The 0-8 MessageConsumer code creates a new FieldTable objects when sending its BasicConsime method.

      The 0-10 AMQSession code does send an arguments map sourced from the consumer when doing the 'sendConsume' method.

      Also, both clients send FieldTable with the selector argument they do it using different FieldTable objects.

      This needs to be improved to allow both clients to reuse the same code.

        Activity

        Robbie Gemmell created issue -
        Alex Rudyy made changes -
        Field Original Value New Value
        Assignee Alex Rudyy [ alex.rufous ]
        Alex Rudyy made changes -
        Status Open [ 1 ] In Progress [ 3 ]
        Hide
        Alex Rudyy added a comment -

        Attached a patch refactoring consumer argument handling

        Show
        Alex Rudyy added a comment - Attached a patch refactoring consumer argument handling
        Alex Rudyy made changes -
        Attachment 0001-QPID-3519-refactor-consumer-argument-handling.patch [ 12502767 ]
        Alex Rudyy made changes -
        Summary the 0-10 client does not send the selector argument during subscription creation Refactor the logic behind sending of the selector arguments during subscription creation
        Fix Version/s 0.14 [ 12316855 ]
        Fix Version/s 0.13 [ 12316854 ]
        Description It appears that the client only sends the selector argument when binding queues during consumer creation, meaning only the topic exchange will do any server-side selector filtering (the other exchanges dont have such functionality). The subscription based selector argument is not sent, meaning the behaviour when using queues not bound to the topic exchange with regular consumers will result in the 0-10 client receiving all messages and then having to release and not acquire the ones it doesnt want (relating to QPID-2848, where it is seen such functionality is currently broken). The client should send the selector argument at subscription time also, to prevent it being sent messages it doesnt want by brokers which support server-side selectors. In current implementation the FieldTable with JMS selector is created in AMQSession#createConsumerImpl.

        The 0-8 MessageConsumer code creates a new FieldTable objects when sending its BasicConsime method.

        The 0-10 AMQSession code does send an arguments map sourced from the consumer when doing the 'sendConsume' method.

        Also, both clients send FieldTable with the selector argument they do it using different FieldTable objects.

        This needs to be improved to allow both clients to reuse the same code.
        Alex Rudyy made changes -
        Attachment 0001-QPID-3519-refactor-consumer-argument-handling.patch [ 12502767 ]
        Alex Rudyy made changes -
        Alex Rudyy made changes -
        Status In Progress [ 3 ] Ready To Review [ 10006 ]
        Hide
        Alex Rudyy added a comment -

        Keith,
        could you please review and commit attached patch?

        Show
        Alex Rudyy added a comment - Keith, could you please review and commit attached patch?
        Alex Rudyy made changes -
        Assignee Alex Rudyy [ alex.rufous ] Keith Wall [ k-wall ]
        Keith Wall made changes -
        Fix Version/s 0.14 [ 12316855 ]
        Alex Rudyy made changes -
        Fix Version/s 0.15 [ 12319043 ]
        Hide
        Keith Wall added a comment -

        No comments, patch applied.

        Show
        Keith Wall added a comment - No comments, patch applied.
        Keith Wall made changes -
        Status Ready To Review [ 10006 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Transition Time In Source Status Execution Times Last Executer Last Execution Date
        Open Open In Progress In Progress
        33d 7h 2m 1 Alex Rudyy 07/Nov/11 16:55
        In Progress In Progress Reviewable Reviewable
        31m 50s 1 Alex Rudyy 07/Nov/11 17:26
        Reviewable Reviewable Resolved Resolved
        1d 15h 31m 1 Keith Wall 09/Nov/11 08:58

          People

          • Assignee:
            Keith Wall
            Reporter:
            Robbie Gemmell
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development