Qpid
  1. Qpid
  2. QPID-3412

Python and C++ clients use link name option differently

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 0.10
    • Fix Version/s: 0.13
    • Component/s: C++ Client
    • Labels:
      None
    • Environment:

      Linux

      Description

      I have a following address string
      "response/response.hey_Joe; { create: never, link: { name: 'response.hey_Joe', durable: false, x-declare: { auto-delete: true, exclusive: true, arguments:

      { 'qpid.max_count': 1000, 'qpid.max_size': 1000000, 'qpid.policy_type': ring }

      } } }"

      When using python client everything works as expected, but with C++ client address "response/response.hey_Joe" is incorrectly translated to "response_response.hey_Joe".

        Activity

        Hide
        Gordon Sim added a comment -

        To illustrate the point in previous comment, consider the following address:

        my-exchange/my-subject; {link:{name: my-link}}

        Here the c++ client would create and bind a queue named my-exchange_my-link, whereas python would simply use my-link as the subscription queue name. The rationale for the c++ client behaviour was a desire to provide some logical grouping between links from the same node. However when the application controls the name, it can of course do that itself in some way.

        Show
        Gordon Sim added a comment - To illustrate the point in previous comment, consider the following address: my-exchange/my-subject; {link:{name: my-link}} Here the c++ client would create and bind a queue named my-exchange_my-link, whereas python would simply use my-link as the subscription queue name. The rationale for the c++ client behaviour was a desire to provide some logical grouping between links from the same node. However when the application controls the name, it can of course do that itself in some way.
        Hide
        Gordon Sim added a comment -

        "response/response.hey_Joe" is not translated to "response_response.hey_Joe", what happens is that the name of the node (i.e. the response exchange) is prefixed to the link name (as specified by the address option) as the resulting subscription queue name

        python by contrast simply uses the link name directly for the queue (which appears to be the behaviour you expect)

        Show
        Gordon Sim added a comment - "response/response.hey_Joe" is not translated to "response_response.hey_Joe", what happens is that the name of the node (i.e. the response exchange) is prefixed to the link name (as specified by the address option) as the resulting subscription queue name python by contrast simply uses the link name directly for the queue (which appears to be the behaviour you expect)

          People

          • Assignee:
            Gordon Sim
            Reporter:
            Tomas Soltys
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development