Hi Claus,

Thanks for pointing that out, I just commit a quick fix for it.

Willem

On 3/7/11 1:28 PM, Claus Ibsen wrote:
Hi Willem

You added by mistake this import which is not needed:
+import java.security.InvalidParameterException;




On Mon, Mar 7, 2011 at 5:43 AM,<ningji...@apache.org>  wrote:
Author: ningjiang
Date: Mon Mar  7 04:43:35 2011
New Revision: 1078684

URL: http://svn.apache.org/viewvc?rev=1078684&view=rev
Log:
CAMEL-3761 Throw exception when CXFProducer can't set right payload parameters 
according to the BindingOperationInfo

Modified:
    
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java
    
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfProducerRouterTest.java

Modified: 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java?rev=1078684&r1=1078683&r2=1078684&view=diff
==============================================================================
--- 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java
 (original)
+++ 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java
 Mon Mar  7 04:43:35 2011
@@ -17,6 +17,7 @@
  package org.apache.camel.component.cxf;

  import java.lang.reflect.Proxy;
+import java.security.InvalidParameterException;
  import java.util.Collection;
  import java.util.List;
  import java.util.concurrent.atomic.AtomicBoolean;
@@ -623,6 +624,11 @@ public class CxfEndpoint extends Default
                         content.put(partInfo, elements.get(i++));
                     }
                 }
+
+                if (content.size()<  elements.size()) {
+                    LOG.warn("Cannot set right payload paremeters. Please check the 
BindingOperation and PayLoadMessage.");
+                    throw new IllegalArgumentException("The PayLoad elements cannot 
fit with the message parts of the BindingOperation. Please check the BindingOperation and 
PayLoadMessage.");
+                }

                 message.setContent(List.class, content);
                 message.put(Header.HEADER_LIST, payload.getHeaders());

Modified: 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfProducerRouterTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfProducerRouterTest.java?rev=1078684&r1=1078683&r2=1078684&view=diff
==============================================================================
--- 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfProducerRouterTest.java
 (original)
+++ 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfProducerRouterTest.java
 Mon Mar  7 04:43:35 2011
@@ -139,6 +139,14 @@ public class CxfProducerRouterTest exten
         String response = out.getBody(String.class);
         assertTrue("It should has the echo message", response.indexOf("echo " + 
TEST_MESSAGE)>  0);
         assertTrue("It should has the echoResponse tag", 
response.indexOf("echoResponse")>  0);
+
+        senderExchange = new DefaultExchange(context, ExchangePattern.InOut);
+        senderExchange.getIn().setBody(REQUEST_PAYLOAD);
+        // Don't specify operation information here
+        exchange = template.send("direct:EndpointC", senderExchange);
+
+        assertNotNull("Expect exception here.", exchange.getException());
+        assertTrue(exchange.getException() instanceof 
IllegalArgumentException);

     }









--
Willem
----------------------------------
FuseSource
Web: http://www.fusesource.com
Blog:    http://willemjiang.blogspot.com (English)
         http://jnn.javaeye.com (Chinese)
Twitter: willemjiang

Reply via email to