Description of problem: Sending QMFv2 requests from the Java client fails because the the app-id is not set. Version-Release number of selected component (if applicable): qpid-java-0.10-6 How reproducible: 100% Steps to Reproduce: Write a java client app to send a map message QMFv2 request to the broker. Actual results: Broker ignores request. Expected results: Broker acts on request. Additional info: The Java client needs to set the x-amqp-0-10.app-id property. See https://issues.apache.org/jira/browse/QPID-3302 for the patch.
Hi Mike, could you write some short example, that reproduces failure ?
Hi Rajith, you wrote at JIRA, that you fixed this bug with some test case. We found you commit r1153274 and there was no test case attached. Would you kindly post a link or upload this test case to bugzilla ? Thank you.
This issue is tracked in upstream via QPID-3302 A fix is committed in upstream, details as follows, http://svn.apache.org/viewvc?view=rev&rev=1140412 test case, http://svn.apache.org/viewvc?view=rev&rev=1140413
Hi Zdenek, The test case is committed at http://svn.apache.org/viewvc?view=rev&rev=1140413 It's a junit test case that is run as part of the java build. The basic idea of the test case is, 1. Create a JMS connection, session and a message consumer & producer. Connection con = new AMQConnection("amqp://username:password@clientid/test?brokerlist='tcp://localhost:5672'"); con.start(); Session ssn = (AMQSession) con.createSession(false, Session.CLIENT_ACKNOWLEDGE); Topic topic = ssn.createTopic("test"); MessageConsumer consumer = ssn.createConsumer(topic); MessageProducer prod = ssn.createProducer(topic); 2. Create a message and set the app id as follows, Message m = ssn.createMessage(); m.setObjectProperty("x-amqp-0-10.app-id", "my-app-id"); 3. Send the msg and try to receive it. prod.send(m); Message msg = consumer.receive(1000); 4. Verify that you can retrieve the app id from the message and verify it. msg.getStringProperty("x-amqp-0-10.app-id")
Created attachment 521012 [details] Example of QMF usage Hi Rajith, I took the new testcase and compile it with other unit tests, but the test case is already passing with the old version, which it should not. I think the new 'testApplicationProperties()' in .../JMSPropertiesTest.java does not testing exactly the bug. But I found an example of QMF usage and it looks like to be a good reproducer. Could you please look at it and check it, if it's correct ? Source: http://apache-qpid-users.2158936.n2.nabble.com/QMF-java-example-td6462608.html
Created attachment 522148 [details] Simple reproducer
Zdenek, That QMF example is correct and you could use that to verify it. I also attached a simple reproducer that tests specifically for this. Feel free to use both to verify the fixes. Ping me on irc if u have questions. Regards, Rajith
Fix was tested on: RHEL 5.7 x86/x64 qpid-java-common-0.10-9.el5 qpid-java-client-0.10-9.el5 qpid-java-jca-0.10-9.el5 qpid-java-example-0.10-9.el5 RHEL 6.1 x86/x64 qpid-java-jca-0.10-9.el6.noarch qpid-java-common-0.10-9.el6.noarch qpid-java-example-0.10-9.el6.noarch qpid-java-client-0.10-9.el6.noarch changing to VERIFIED
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHBA-2011-1339.html