diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/transformer/MethodInvokingTransformer.java b/org.springframework.integration/src/main/java/org/springframework/integration/transformer/MethodInvokingTransformer.java index ec68562372..9975893d15 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/transformer/MethodInvokingTransformer.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/transformer/MethodInvokingTransformer.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2008 the original author or authors. + * Copyright 2002-2009 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -49,6 +49,9 @@ public class MethodInvokingTransformer implements Transformer { public Message transform(Message message) { Object result = this.invoker.invokeMethod(message); + if (result == null) { + return null; + } if (result instanceof Message) { return (Message) result; } diff --git a/org.springframework.integration/src/test/java/org/springframework/integration/transformer/MethodInvokingTransformerTests.java b/org.springframework.integration/src/test/java/org/springframework/integration/transformer/MethodInvokingTransformerTests.java index c4542b06f2..fc6e19c855 100644 --- a/org.springframework.integration/src/test/java/org/springframework/integration/transformer/MethodInvokingTransformerTests.java +++ b/org.springframework.integration/src/test/java/org/springframework/integration/transformer/MethodInvokingTransformerTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2008 the original author or authors. + * Copyright 2002-2009 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -233,6 +233,15 @@ public class MethodInvokingTransformerTests { assertNull(result.getHeaders().get("prop3")); } + @Test + public void nullReturningMethod() { + TestBean testBean = new TestBean(); + MethodInvokingTransformer transformer = new MethodInvokingTransformer(testBean, "nullReturnValueTest"); + StringMessage message = new StringMessage("test"); + Message result = transformer.transform(message); + assertNull(result); + } + private static class TestBean { @@ -269,6 +278,10 @@ public class MethodInvokingTransformerTests { public Message messageReturnValueTest(Message message) { return message; } + + public Object nullReturnValueTest(Message message) { + return null; + } } }