Qpid
  1. Qpid
  2. QPID-3490

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

    Details

    • Type: Bug Bug
    • Status: Closed
    • 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

          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
          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
          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.
          Hide
          Keith Wall added a comment -

          Patch applied.

          Show
          Keith Wall added a comment - Patch applied.

            People

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

              Dates

              • Created:
                Updated:
                Resolved:

                Development