Bug 738352

Summary: Can't send QMFv2 requests from JMS due to inability to set app-id
Product: Red Hat Enterprise MRG Reporter: Justin Ross <jross>
Component: qpid-javaAssignee: messaging-bugs <messaging-bugs>
Status: CLOSED ERRATA QA Contact: MRG Quality Engineering <mrgqe-bugs>
Severity: high Docs Contact:
Priority: high    
Version: 2.0CC: jneedle, jross, mcressma, tross, zkraus
Target Milestone: 2.0.3   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: qpid-java-0.10-9 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 732534 Environment:
Last Closed: 2011-09-28 15:53:10 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 732534    
Bug Blocks:    

Description Justin Ross 2011-09-14 15:31:43 UTC
+++ This bug was initially created as a clone of Bug #732534 +++

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.

--- Additional comment from zkraus on 2011-08-26 05:21:49 EDT ---

Hi Mike,

could you write some short example, that reproduces failure ?

--- Additional comment from zkraus on 2011-08-29 05:39:03 EDT ---

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.

--- Additional comment from rattapat on 2011-08-30 14:02:12 EDT ---

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

--- Additional comment from rattapat on 2011-08-30 14:10:09 EDT ---

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")

--- Additional comment from zkraus on 2011-09-01 09:27:01 EDT ---

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

--- Additional comment from rattapat on 2011-09-08 11:29:06 EDT ---

Created attachment 522148 [details]
Simple reproducer

--- Additional comment from rattapat on 2011-09-08 11:34:55 EDT ---

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

--- Additional comment from zkraus on 2011-09-14 08:00:36 EDT ---

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

Comment 1 errata-xmlrpc 2011-09-28 15:53:10 UTC
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-1340.html