Author: cschneider Date: Mon Jul 4 13:25:16 2011 New Revision: 1142654 URL: http://svn.apache.org/viewvc?rev=1142654&view=rev Log: CAMEL-4173 Fixed Nullpointer Exception when sending null body, added test, removed 2 unused imports
Modified: camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/DetermineContentTypeIssueTest.java camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailCustomContentTypeTest.java camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailProducerUnsupportedCharsetTest.java Modified: camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java?rev=1142654&r1=1142653&r2=1142654&view=diff ============================================================================== --- camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java (original) +++ camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java Mon Jul 4 13:25:16 2011 @@ -184,9 +184,14 @@ public class MailBinding { String contentType = determineContentType(configuration, exchange); LOG.trace("Using Content-Type {} for MimeMessage: {}", contentType, part); + + String body = exchange.getIn().getBody(String.class); + if (body == null) { + body = ""; + } // always store content in a byte array data store to avoid various content type and charset issues - DataSource ds = new ByteArrayDataSource(exchange.getIn().getBody(String.class), contentType); + DataSource ds = new ByteArrayDataSource(body, contentType); part.setDataHandler(new DataHandler(ds)); // set the content type header afterwards Modified: camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/DetermineContentTypeIssueTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/DetermineContentTypeIssueTest.java?rev=1142654&r1=1142653&r2=1142654&view=diff ============================================================================== --- camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/DetermineContentTypeIssueTest.java (original) +++ camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/DetermineContentTypeIssueTest.java Mon Jul 4 13:25:16 2011 @@ -17,7 +17,6 @@ package org.apache.camel.component.mail; import org.apache.camel.Exchange; -import org.apache.camel.converter.IOConverter; import org.apache.camel.test.junit4.ExchangeTestSupport; import org.junit.Test; Modified: camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailCustomContentTypeTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailCustomContentTypeTest.java?rev=1142654&r1=1142653&r2=1142654&view=diff ============================================================================== --- camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailCustomContentTypeTest.java (original) +++ camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailCustomContentTypeTest.java Mon Jul 4 13:25:16 2011 @@ -56,6 +56,18 @@ public class MailCustomContentTypeTest e assertEquals("text/html; charset=iso-8859-1", msg.getContentType()); assertEquals("<html><body><h1>Hello</h1>World</body></html>", msg.getContent()); } + + @Test + public void testNullBody() throws Exception { + Mailbox.clearAll(); + + template.sendBodyAndHeader("direct:b", null, "contentType", "text/plain; charset=iso-8859-1"); + + Mailbox box = Mailbox.get("claus@localhost"); + Message msg = box.get(0); + assertEquals("text/plain; charset=iso-8859-1", msg.getContentType()); + assertEquals("", msg.getContent()); + } @Test public void testSendPlainMailContentTypeInHeader() throws Exception { Modified: camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailProducerUnsupportedCharsetTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailProducerUnsupportedCharsetTest.java?rev=1142654&r1=1142653&r2=1142654&view=diff ============================================================================== --- camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailProducerUnsupportedCharsetTest.java (original) +++ camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailProducerUnsupportedCharsetTest.java Mon Jul 4 13:25:16 2011 @@ -23,7 +23,6 @@ import java.util.Map; import org.apache.camel.RuntimeCamelException; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.mock.MockEndpoint; -import org.apache.camel.converter.IOConverter; import org.apache.camel.test.junit4.CamelTestSupport; import org.junit.Test; import org.jvnet.mock_javamail.Mailbox;