Qpid
  1. Qpid
  2. QPID-3597

Python Headers Exchange tests fail against Java Broker

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 0.12
    • Fix Version/s: 0.15
    • Labels:
      None

      Description

      Python Headers Exchange tests fail against Java Broker

      qpid_tests.broker_0_10.exchange.HeadersExchangeTests.*
      qpid_tests.broker_0_10.queue.QueueTests.test_unbind_headers
      qpid_tests.broker_0_10.exchange.RecommendedTypesRuleTests.testHeaders
      qpid_tests.broker_0_10.exchange.RequiredInstancesRuleTests.testAmqMatch
      qpid_tests.broker_0_10.query.QueryTests.test_exchange_bound_header

        Activity

        Hide
        Rob Godfrey added a comment -

        A number of different fixes required here

        1) The broker was always trying to turn argument maps into field tables, but maps can have a greater range of valid values (and thus field table conversion was failing)

        2) The code to actually remove a headers binding was cleverly wrapped inside a _logger.isDebugEnabled() block

        3) There was a bug in the common transport for AMQP 0-10 whereby a messageTransfer with no headers and no body was never actually emitted to the application layer by the Assembler. The Python headers tests seem to be the only place that attempt to send such empty messages

        4) The implementation of ExchangeBound with respect to matching arguments was incomplete 9and probably still is)

        Show
        Rob Godfrey added a comment - A number of different fixes required here 1) The broker was always trying to turn argument maps into field tables, but maps can have a greater range of valid values (and thus field table conversion was failing) 2) The code to actually remove a headers binding was cleverly wrapped inside a _logger.isDebugEnabled() block 3) There was a bug in the common transport for AMQP 0-10 whereby a messageTransfer with no headers and no body was never actually emitted to the application layer by the Assembler. The Python headers tests seem to be the only place that attempt to send such empty messages 4) The implementation of ExchangeBound with respect to matching arguments was incomplete 9and probably still is)
        Hide
        Rob Godfrey added a comment -

        Robbie - can you review?

        Show
        Rob Godfrey added a comment - Robbie - can you review?
        Hide
        Robbie Gemmell added a comment -

        Looks good to me (but then so did 2. when I fluffed it, apparently... :S)

        Show
        Robbie Gemmell added a comment - Looks good to me (but then so did 2. when I fluffed it, apparently... :S)

          People

          • Assignee:
            Robbie Gemmell
            Reporter:
            Andrew MacBean
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development