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

        Transition Time In Source Status Execution Times Last Executer Last Execution Date
        Open Open Resolved Resolved
        2h 58m 1 Gordon Sim 11/Aug/11 13:12
        Resolved Resolved Closed Closed
        718d 5h 41m 1 Justin Ross 29/Jul/13 18:53
        Justin Ross made changes -
        Status Resolved [ 5 ] Closed [ 6 ]
        Gordon Sim made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Fix Version/s 0.13 [ 12316854 ]
        Resolution Fixed [ 1 ]
        Gordon Sim made changes -
        Summary Python and C++ clients translate address differently Python and C++ clients use link name option differently
        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.
        Gordon Sim made changes -
        Field Original Value New Value
        Assignee Gordon Sim [ gsim ]
        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)
        Tomas Soltys created issue -

          People

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

            Dates

            • Created:
              Updated:
              Resolved:

              Development