Qpid
  1. Qpid
  2. QPID-2752

Cannot create LVQ's using the JMS client.

    Details

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

      Description

      A JMS client should be able to create an LVQ using the new addressing format.
      However currently it's not possible due to a bug in extracting the right information.
      It would also be nice to add test cases from the JMS client side to avoid any regressions in the future.

        Activity

        Hide
        Martin Ritchie added a comment -

        Hi,
        As far as I can see if you set the following properties/arguments on your queue declare then it should work:
        "qpid.last_value_queue"
        "qpid.last_value_queue_key"

        Sounds like the bug is in the new addressing format processing if it cannot correctly pull out properties.

        I see ConflationQueueTest is excluded from the CPP broker. Would be good to make it work.

        Show
        Martin Ritchie added a comment - Hi, As far as I can see if you set the following properties/arguments on your queue declare then it should work: "qpid.last_value_queue" "qpid.last_value_queue_key" Sounds like the bug is in the new addressing format processing if it cannot correctly pull out properties. I see ConflationQueueTest is excluded from the CPP broker. Would be good to make it work.
        Hide
        Rajith Attapattu added a comment -

        Unfortunately the C++ broker implementation slightly differs as the key is hard coded to "qpid.LVQ_key".
        Other than that it should work.
        I think the c++ side should behave the same as the Java broker and allow to specify the key.

        Another reason why I didn't want to use the existing test is bcos I wanted to write a test using the new addressing syntax.
        So I just wrote a single test method, it would have been nice had I been able to reuse the existing test.
        Also the fact that the ConflationQueueTest is placed under o.a.q.server.queue gives the impression that it's meant for the java broker.

        Once the C++ broker allows to specify the key, then we should use a single test, but use the new addressing syntax.

        As a side note, we should also ensure that the systests only contains test cases that tests a broker from the client side allowing us to use them against any broker (barring version issues).
        I believe all the tests in systests are like that, all though we have name spaces like "sever" ..etc.
        I am not too worried about the package names, just want to ensure that we use systests for what it's intended for.

        Show
        Rajith Attapattu added a comment - Unfortunately the C++ broker implementation slightly differs as the key is hard coded to "qpid.LVQ_key". Other than that it should work. I think the c++ side should behave the same as the Java broker and allow to specify the key. Another reason why I didn't want to use the existing test is bcos I wanted to write a test using the new addressing syntax. So I just wrote a single test method, it would have been nice had I been able to reuse the existing test. Also the fact that the ConflationQueueTest is placed under o.a.q.server.queue gives the impression that it's meant for the java broker. Once the C++ broker allows to specify the key, then we should use a single test, but use the new addressing syntax. As a side note, we should also ensure that the systests only contains test cases that tests a broker from the client side allowing us to use them against any broker (barring version issues). I believe all the tests in systests are like that, all though we have name spaces like "sever" ..etc. I am not too worried about the package names, just want to ensure that we use systests for what it's intended for.
        Hide
        Robbie Gemmell added a comment -

        From the commits I recall seeing at the time I believe the Java client falls back to setting "qpid.LVQ_key" as the key if you dont specify something using the properties, precisely so that it will work with the C++ broker.

        Show
        Robbie Gemmell added a comment - From the commits I recall seeing at the time I believe the Java client falls back to setting "qpid.LVQ_key" as the key if you dont specify something using the properties, precisely so that it will work with the C++ broker.
        Hide
        Rajith Attapattu added a comment -

        Fixed along with a test case.

        Show
        Rajith Attapattu added a comment - Fixed along with a test case.

          People

          • Assignee:
            Rajith Attapattu
            Reporter:
            Rajith Attapattu
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development