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

        Keith Wall made changes -
        Status Ready To Review [ 10006 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Alex Rudyy made changes -
        Fix Version/s 0.15 [ 12319043 ]
        Keith Wall made changes -
        Fix Version/s 0.14 [ 12316855 ]
        Alex Rudyy made changes -
        Assignee Alex Rudyy [ alex.rufous ] Keith Wall [ k-wall ]
        Alex Rudyy made changes -
        Status In Progress [ 3 ] Ready To Review [ 10006 ]
        Alex Rudyy made changes -
        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 -
        Status Open [ 1 ] In Progress [ 3 ]
        Alex Rudyy made changes -
        Field Original Value New Value
        Assignee Alex Rudyy [ alex.rufous ]
        Robbie Gemmell created issue -

          People

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

            Dates

            • Created:
              Updated:
              Resolved:

              Development