Qpid
  1. Qpid
  2. QPID-3490

the default exchange should not be implemented as just a regular direct exchange

    Details

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

      Description

      the default exchange should not be implemented as just a regular direct exchange

      Currently there are various places that queues are created [using the queue factory], which then require that a binding be performed to the default exchange, and in some cases this is not actually done (e.g. the createQueue JMX operation). The implementation of the default exchange should be updated such that it is not just a regular direct exchange (e.g. to prevent it having an MBean or at least a custom MBean, since no operations should actually be able to be performed on it given it is to just be a direct mapping to the available queues), and its bindings should be handled directly through the Queue factory to ensure they are applied uniformly across the broker.

      Additionally, the current implementation of the default exchange has a name <<default>> when it should really be nameless, and it is possible to delete it (and amq.* exchanges) via the JMX interface as a result which it shouldnt be.

        Issue Links

        There are no Sub-Tasks for this issue.

          Activity

          Rob Godfrey made changes -
          Link This issue relates to QPID-4832 [ QPID-4832 ]
          Hide
          Keith Wall added a comment -

          Patch applied.

          Show
          Keith Wall added a comment - Patch applied.
          Keith Wall made changes -
          Status Ready To Review [ 10006 ] Resolved [ 5 ]
          Fix Version/s 0.15 [ 12319043 ]
          Fix Version/s Future [ 12315490 ]
          Resolution Fixed [ 1 ]
          Hide
          Keith Wall added a comment -

          This commit addresses only:

          a) ensures that queues created via JMX are always bound to the default exchange.
          b) prevents the removal of the default exchange (as allowing this would cause the Broker to NPE in many places)
          c) prevents a NPE when trying to delete an exchange with a name that does not exist.

          The other parts of this defect are delegated to the subtask: refactoring, the prevent of deletion of the amp.* exchanges etc.

          Show
          Keith Wall added a comment - This commit addresses only: a) ensures that queues created via JMX are always bound to the default exchange. b) prevents the removal of the default exchange (as allowing this would cause the Broker to NPE in many places) c) prevents a NPE when trying to delete an exchange with a name that does not exist. The other parts of this defect are delegated to the subtask: refactoring, the prevent of deletion of the amp.* exchanges etc.
          Alex Rudyy made changes -
          Comment [ Attached a patch to a sub-task JIRA QPID-3609 ]
          Alex Rudyy made changes -
          Assignee Alex Rudyy [ alex.rufous ] Keith Wall [ k-wall ]
          Hide
          Alex Rudyy added a comment -

          Keith, could you please review and commit the patch attached

          Show
          Alex Rudyy added a comment - Keith, could you please review and commit the patch attached
          Alex Rudyy made changes -
          Status In Progress [ 3 ] Ready To Review [ 10006 ]
          Alex Rudyy made changes -
          Status Open [ 1 ] In Progress [ 3 ]
          Alex Rudyy made changes -
          Alex Rudyy made changes -
          Attachment 0001-QPID-3490-creating-queue-via-JMX-now-binds-the-queue.patch [ 12503257 ]
          Alex Rudyy made changes -
          Comment [ Keith,
          could you please review and commit the patch? ]
          Alex Rudyy made changes -
          Status Ready To Review [ 10006 ] Open [ 1 ]
          Assignee Keith Wall [ k-wall ] Alex Rudyy [ alex.rufous ]
          Hide
          Alex Rudyy added a comment -

          Only queue binding to a default exchange is fixed

          Show
          Alex Rudyy added a comment - Only queue binding to a default exchange is fixed
          Keith Wall made changes -
          Summary the default exchange should not be implemented as jsut a regular direct exchange the default exchange should not be implemented as just a regular direct exchange
          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 -
          Attachment 0001-QPID-3490-creating-queue-via-JMX-now-binds-the-queue.patch [ 12503257 ]
          Alex Rudyy made changes -
          Status Open [ 1 ] In Progress [ 3 ]
          Alex Rudyy made changes -
          Assignee Alex Rudyy [ alex.rufous ]
          Robbie Gemmell made changes -
          Field Original Value New Value
          Description the default exchange should not be implemented as just a regular direct exchange

          Currently there are various places that queues are created [using the queue factory], which then require that a binding be performed to the default exchange, and in some cases this is not actually done (e.g. the createQueue JMX operation). The implementation of the default exchange should be updated such that it is not just a regular direct exchange (e.g. to prevent it having an MBean or at least a custom MBean, since no operations should actually be able to be performed on it given it is to just be a direct mapping to the available queues), and its bindings should be handled directly through the Queue factory to ensure they are applied uniformly across the broker.
          the default exchange should not be implemented as just a regular direct exchange

          Currently there are various places that queues are created [using the queue factory], which then require that a binding be performed to the default exchange, and in some cases this is not actually done (e.g. the createQueue JMX operation). The implementation of the default exchange should be updated such that it is not just a regular direct exchange (e.g. to prevent it having an MBean or at least a custom MBean, since no operations should actually be able to be performed on it given it is to just be a direct mapping to the available queues), and its bindings should be handled directly through the Queue factory to ensure they are applied uniformly across the broker.

          Additionally, the current implementation of the default exchange has a name <<default>> when it should really be nameless, and it is possible to delete it (and amq.* exchanges) via the JMX interface as a result which it shouldnt be.
          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