You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2012/02/01 05:44:26 UTC

svn commit: r1238937 - /camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfClientCallback.java

Author: ningjiang
Date: Wed Feb  1 04:44:25 2012
New Revision: 1238937

URL: http://svn.apache.org/viewvc?rev=1238937&view=rev
Log:
CAMEL-4945 avoiding to call the done for oneway operation

Modified:
    camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfClientCallback.java

Modified: camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfClientCallback.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfClientCallback.java?rev=1238937&r1=1238936&r2=1238937&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfClientCallback.java (original)
+++ camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfClientCallback.java Wed Feb  1 04:44:25 2012
@@ -50,16 +50,19 @@ public class CxfClientCallback extends C
         try {
             super.handleResponse(ctx, res);            
         } finally {
-            // bind the CXF response to Camel exchange
+            // bind the CXF response to Camel exchange and
+            // call camel callback
+            // for one way messages callback is already called in 
+            // process method of org.apache.camel.component.cxf.CxfProducer
             if (!boi.getOperationInfo().isOneWay()) {
                 // copy the InMessage header to OutMessage header
                 camelExchange.getOut().getHeaders().putAll(camelExchange.getIn().getHeaders());
                 binding.populateExchangeFromCxfResponse(camelExchange, cxfExchange, ctx);
+                camelAsyncCallback.done(false);
             }
             if (LOG.isDebugEnabled()) {
                 LOG.debug("{} calling handleResponse", Thread.currentThread().getName());
             }
-            camelAsyncCallback.done(false);
         }
     }
     
@@ -68,16 +71,19 @@ public class CxfClientCallback extends C
             super.handleException(ctx, ex);
             camelExchange.setException(ex);
         } finally {
-            // copy the context information
+            // copy the context information and 
+            // call camel callback
+            // for one way messages callback is already called in 
+            // process method of org.apache.camel.component.cxf.CxfProducer
             if (!boi.getOperationInfo().isOneWay()) {
                 // copy the InMessage header to OutMessage header
                 camelExchange.getOut().getHeaders().putAll(camelExchange.getIn().getHeaders());
                 binding.populateExchangeFromCxfResponse(camelExchange, cxfExchange, ctx);
+                camelAsyncCallback.done(false);
             }
             if (LOG.isDebugEnabled()) {
                 LOG.debug("{} calling handleException", Thread.currentThread().getName());
             }
-            camelAsyncCallback.done(false);
         }
     }