diff options
Diffstat (limited to 'branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsobject/runtime/WireFormatJMSObjectServiceInterceptor.java')
-rw-r--r-- | branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsobject/runtime/WireFormatJMSObjectServiceInterceptor.java | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsobject/runtime/WireFormatJMSObjectServiceInterceptor.java b/branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsobject/runtime/WireFormatJMSObjectServiceInterceptor.java index b06886fae0..bb3c036287 100644 --- a/branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsobject/runtime/WireFormatJMSObjectServiceInterceptor.java +++ b/branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsobject/runtime/WireFormatJMSObjectServiceInterceptor.java @@ -78,8 +78,13 @@ public class WireFormatJMSObjectServiceInterceptor implements Interceptor { javax.jms.Message jmsMsg = context.getJmsMsg(); Object requestPayload = requestMessageProcessor.extractPayloadFromJMSMessage(jmsMsg); - msg.setBody(requestPayload); - + + if (requestPayload != null && requestPayload.getClass().isArray()) { + msg.setBody(requestPayload); + } else { + msg.setBody(new Object[] {requestPayload}); + } + return msg; } @@ -92,7 +97,7 @@ public class WireFormatJMSObjectServiceInterceptor implements Interceptor { if (msg.isFault()) { responseJMSMsg = responseMessageProcessor.createFaultMessage(session, (Throwable)msg.getBody()); } else { - Object[] response = {msg.getBody()}; + Object response = msg.getBody(); responseJMSMsg = responseMessageProcessor.insertPayloadIntoJMSMessage(session, response); } |