Author: dkulp Date: Thu Oct 9 13:04:41 2008 New Revision: 703243 URL: http://svn.apache.org/viewvc?rev=703243&view=rev Log: Merged revisions 703242 via svnmerge from https://svn.apache.org/repos/asf/cxf/branches/2.1.x-fixes
................ r703242 | dkulp | 2008-10-09 16:00:20 -0400 (Thu, 09 Oct 2008) | 9 lines Merged revisions 703239 via svnmerge from https://svn.apache.org/repos/asf/cxf/trunk ........ r703239 | dkulp | 2008-10-09 15:58:24 -0400 (Thu, 09 Oct 2008) | 2 lines Fix potential race condition where a response COULD come back before the waiting thread was waiting for it. ........ ................ Modified: cxf/branches/2.0.x-fixes/ (props changed) cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConduit.java Propchange: cxf/branches/2.0.x-fixes/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Oct 9 13:04:41 2008 @@ -1,3 +1,3 @@ -/cxf/branches/2.1.x-fixes:673548,674485,674547,674551,674562,674601,674649,674764,674887,675644,675653,677048,677385,678004,678009,678559,678629,678808,678852,678891,678893,679248,679597,680435,681060,681165,681813,681816,682902,682951,683089,683290,683318,684099,684790-684793,684842,684862,684895-684918,685205,685253,686237,686283,686299,686333-686364,686765,686827,687097,687464-687465,689109,689112,689122,691316,691357,691491,691711,691715,691745,692162-692163,692468,692500,694466-694469,694472,694717,694748-694749,694870,695503,695509,695553,695555,695563,695875-695877,695940,695980,696436,696455,696721,697086,698129,701526,701634,702275,702443,702527,702582,702604,702610,702642-702643,702649,702760,702870,702873,702959,703193 -/cxf/trunk:651669-686342,686344-686363,686764,686820,687096,687387,687463,688086,688102,688735,691271,691355,691488,691602,691706,691728,692116,692157,692466,692499,693653,693819,694179,694263,694417,694716,694744,694747,694869,695396,695484,695537,695552,695561,695619,695684,695835,695935,695977,696094,696433,696720,697085,698128,700261,700602,701783,701830,701862,702267,702580,702602,702609,702616,702656,702957,703191 +/cxf/branches/2.1.x-fixes:673548,674485,674547,674551,674562,674601,674649,674764,674887,675644,675653,677048,677385,678004,678009,678559,678629,678808,678852,678891,678893,679248,679597,680435,681060,681165,681813,681816,682902,682951,683089,683290,683318,684099,684790-684793,684842,684862,684895-684918,685205,685253,686237,686283,686299,686333-686364,686765,686827,687097,687464-687465,689109,689112,689122,691316,691357,691491,691711,691715,691745,692162-692163,692468,692500,694466-694469,694472,694717,694748-694749,694870,695503,695509,695553,695555,695563,695875-695877,695940,695980,696436,696455,696721,697086,698129,701526,701634,702275,702443,702527,702582,702604,702610,702642-702643,702649,702760,702870,702873,702959,703193,703242 +/cxf/trunk:651669-686342,686344-686363,686764,686820,687096,687387,687463,688086,688102,688735,691271,691355,691488,691602,691706,691728,692116,692157,692466,692499,693653,693819,694179,694263,694417,694716,694744,694747,694869,695396,695484,695537,695552,695561,695619,695684,695835,695935,695977,696094,696433,696720,697085,698128,700261,700602,701783,701830,701862,702267,702580,702602,702609,702616,702656,702957,703191,703239 /incubator/cxf/trunk:434594-651668 Propchange: cxf/branches/2.0.x-fixes/ ------------------------------------------------------------------------------ Binary property 'svnmerge-integrated' - no diff available. Modified: cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/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=703243&r1=703242&r2=703243&view=diff ============================================================================== --- cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConduit.java (original) +++ cxf/branches/2.0.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConduit.java Thu Oct 9 13:04:41 2008 @@ -109,13 +109,8 @@ final String correlationId = (headers != null && headers.isSetJMSCorrelationID()) ? headers .getJMSCorrelationID() : JMSUtils.generateCorrelationId(); - // String selector = "JMSCorrelationID = '" + correlationId + "'"; - Message inMessage = null; - if (!exchange.isOneWay()) { - inMessage = new MessageImpl(); - correlationMap.put(correlationId, inMessage); - } - jmsTemplate.send(jmsConfig.getTargetDestination(), new MessageCreator() { + + MessageCreator messageCreator = new MessageCreator() { public javax.jms.Message createMessage(Session session) throws JMSException { String messageType = jmsConfig.getMessageType(); final javax.jms.Message jmsMessage; @@ -125,7 +120,7 @@ LOG.log(Level.FINE, "client sending request: ", jmsMessage); return jmsMessage; } - }); + }; /** * If the message is not oneWay we will expect to receive a reply on the listener. To receive this @@ -133,10 +128,14 @@ * fill to Message and notify this thread */ if (!exchange.isOneWay()) { + Message inMessage = new MessageImpl(); synchronized (inMessage) { + correlationMap.put(correlationId, inMessage); + jmsTemplate.send(jmsConfig.getTargetDestination(), messageCreator); try { inMessage.wait(jmsTemplate.getReceiveTimeout()); } catch (InterruptedException e) { + correlationMap.remove(correlationId); throw new RuntimeException(e); } correlationMap.remove(correlationId); @@ -149,6 +148,8 @@ if (incomingObserver != null) { incomingObserver.onMessage(inMessage); } + } else { + jmsTemplate.send(jmsConfig.getTargetDestination(), messageCreator); } }
