Ah. Yes. That looks like an issue. receive(...) probably should take the inMessage and populate it instead of modifying the outMessage. Very interesting. receive needs the inMessage to query the timeouts and stuff from it, but it shouldn't modify it.
The result of the current code is that the headers are a "merged" set of headers that went out and headers that came in. Probably not what it should be. Dan On Wednesday 20 August 2008 11:11:45 am Freeman Fang wrote: > Hi Dan, > > My comment inline. > > Daniel Kulp wrote: > > Freeman, > > > > Why would you copy the headers from the outgoing message to the incoming > > message? That seems very bizzare to me. What if you DON'T send with > > MTOM, but the server responds with MTOM. This doesn't seem like the > > right fix. > > > > To me, you need to get the headers copied into the JMS Message when > > sending, and the copied out of the JMS message when receiving. > > Agree, actually the code do what you want. > Look at the populateIncomingContext method of JMSTransportBase class, > this method copy headers out of the jms message to cxf message when > receiving the response, but the cxf message used in this method is the > outgoing message( > Please see response = receive(pooledSession, outMessage); in > JBIConduit.handleResponse(), this invoke populateIncomingContext() > I'm not sure why here use the outgoing message, should be incoming > message instead?), so I just copy the property from the outgoing message > to incoming message. > > Freeman > > > Dan > > > > On Wednesday 20 August 2008 10:43:11 am [EMAIL PROTECTED] wrote: > >> Author: ffang > >> Date: Wed Aug 20 07:43:11 2008 > >> New Revision: 687359 > >> > >> URL: http://svn.apache.org/viewvc?rev=687359&view=rev > >> Log: > >> [CXF-1755]JMSConduit need copy protocol headers to response in Message > >> > >> Modified: > >> > >> cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/ > >>tra nsport/jms/JMSConduit.java > >> > >> Modified: > >> cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/ > >>tra nsport/jms/JMSConduit.java URL: > >> http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/transports/jms/ > >>src > >> /main/java/org/apache/cxf/transport/jms/JMSConduit.java?rev=687359&r1=68 > >>7358 &r2=687359&view=diff > >> ======================================================================== > >>=== === --- > >> cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/ > >>tra nsport/jms/JMSConduit.java (original) +++ > >> cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/ > >>tra nsport/jms/JMSConduit.java Wed Aug 20 07:43:11 2008 @@ -374,6 +374,7 > >> @@ inMessage.put(JMSConstants.JMS_CLIENT_RESPONSE_HEADERS, > >> > >> outMessage.get(JMSConstants.JMS_CLIENT_RESPONSE_HEADERS)); > >> > >> + inMessage.put(Message.PROTOCOL_HEADERS, > >> outMessage.get(Message.PROTOCOL_HEADERS)); getLogger().log(Level.FINE, > >> "The Response Message is : [" + response + "]"); > >> > >> // setup the inMessage response stream -- Daniel Kulp [EMAIL PROTECTED] http://www.dankulp.com/blog
