Return-Path: X-Original-To: apmail-camel-commits-archive@www.apache.org Delivered-To: apmail-camel-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id EE7B12CA3 for ; Fri, 29 Apr 2011 18:56:44 +0000 (UTC) Received: (qmail 66646 invoked by uid 500); 29 Apr 2011 18:56:44 -0000 Delivered-To: apmail-camel-commits-archive@camel.apache.org Received: (qmail 66617 invoked by uid 500); 29 Apr 2011 18:56:44 -0000 Mailing-List: contact commits-help@camel.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@camel.apache.org Delivered-To: mailing list commits@camel.apache.org Received: (qmail 66610 invoked by uid 99); 29 Apr 2011 18:56:44 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 29 Apr 2011 18:56:44 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 29 Apr 2011 18:56:43 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 6792223889C5; Fri, 29 Apr 2011 18:56:23 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1097912 - in /camel/trunk/components/camel-cxf/src: main/java/org/apache/camel/component/cxf/converter/CxfPayloadConverter.java test/java/org/apache/camel/component/cxf/converter/CxfPayloadConverterTest.java Date: Fri, 29 Apr 2011 18:56:23 -0000 To: commits@camel.apache.org From: davsclaus@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20110429185623.6792223889C5@eris.apache.org> Author: davsclaus Date: Fri Apr 29 18:56:22 2011 New Revision: 1097912 URL: http://svn.apache.org/viewvc?rev=1097912&view=rev Log: CAMEL-3917: Fixed issue with CxfPayloadConverter. Thanks to Aki Yoshida for patch. Modified: camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfPayloadConverter.java camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/converter/CxfPayloadConverterTest.java Modified: camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfPayloadConverter.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfPayloadConverter.java?rev=1097912&r1=1097911&r2=1097912&view=diff ============================================================================== --- camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfPayloadConverter.java (original) +++ camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfPayloadConverter.java Fri Apr 29 18:56:22 2011 @@ -32,12 +32,13 @@ import org.apache.camel.TypeConverter; import org.apache.camel.component.cxf.CxfPayload; import org.apache.camel.spi.TypeConverterRegistry; - @Converter public final class CxfPayloadConverter { + private CxfPayloadConverter() { // Helper class } + @Converter public static CxfPayload documentToCxfPayload(Document doc, Exchange exchange) { return elementToCxfPayload(doc.getDocumentElement(), exchange); @@ -87,7 +88,7 @@ public final class CxfPayloadConverter { return (T) documentToCxfPayload(document, exchange); } // maybe we can convert via an InputStream - CxfPayload p = null; + CxfPayload p; p = convertVia(InputStream.class, exchange, value, registry); if (p != null) { return (T) p; @@ -97,6 +98,8 @@ public final class CxfPayloadConverter { if (p != null) { return (T) p; } + // no we could not do it currently + return (T) Void.TYPE; } // Convert a CxfPayload into something else if (CxfPayload.class.isAssignableFrom(value.getClass())) { @@ -111,6 +114,9 @@ public final class CxfPayloadConverter { NodeList nodeList = cxfPayloadToNodeList((CxfPayload) value, exchange); if (nodeList.getLength() > 0) { return tc.convertTo(type, nodeList.item(0)); + } else { + // no we could not do it currently + return (T) Void.TYPE; } } } Modified: camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/converter/CxfPayloadConverterTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/converter/CxfPayloadConverterTest.java?rev=1097912&r1=1097911&r2=1097912&view=diff ============================================================================== --- camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/converter/CxfPayloadConverterTest.java (original) +++ camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/converter/CxfPayloadConverterTest.java Fri Apr 29 18:56:22 2011 @@ -27,6 +27,7 @@ import javax.xml.parsers.DocumentBuilder import org.w3c.dom.Document; import org.w3c.dom.Element; +import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.apache.camel.component.cxf.CxfPayload; @@ -37,6 +38,7 @@ import org.junit.Test; public class CxfPayloadConverterTest extends ExchangeTestSupport { private Document document; private CxfPayload payload; + private CxfPayload emptyPayload; private FileInputStream inputStream; @Override @@ -51,6 +53,7 @@ public class CxfPayloadConverterTest ext List body = new ArrayList(); body.add(document.getDocumentElement()); payload = new CxfPayload(new ArrayList(), body); + emptyPayload = new CxfPayload(new ArrayList(), new ArrayList()); inputStream = new FileInputStream(file); } @@ -92,4 +95,22 @@ public class CxfPayloadConverterTest ext assertTrue(inputStream instanceof InputStream); } + @Test + public void testCxfPayloadToNode() { + // call the payload conversion that works + exchange.getIn().setBody(payload); + Node node = exchange.getIn().getBody(Node.class); + assertNotNull(node); + + // do the empty conversion + exchange.getIn().setBody(emptyPayload); + node = exchange.getIn().getBody(Node.class); + assertNull(node); + + // do the same one that worked before + exchange.getIn().setBody(payload); + node = exchange.getIn().getBody(Node.class); + assertNotNull(node); + } + }