diff options
author | slaws <slaws@13f79535-47bb-0310-9956-ffa450edef68> | 2009-02-05 18:27:01 +0000 |
---|---|---|
committer | slaws <slaws@13f79535-47bb-0310-9956-ffa450edef68> | 2009-02-05 18:27:01 +0000 |
commit | 84ef34efa534032fbf89a7c1b30258a73c69a71b (patch) | |
tree | c1d2fd1cdb6bc5c576ee45e842a115cb28cc20b1 /branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsobject/runtime | |
parent | 8e208f9a7f2fa251e777658bdf6381d1050e4d95 (diff) |
TUSCANY-2799 - don't return responses inside arrays. Generally reorg the code so that the message processors only worry about getting data in and out of JMS message while the interceptors worry about whether the data should be wrapped as an array. In this way the forward path can do array wrapping in order to keep databinding happy while the response path can omit array wrapping
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@741219 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to '')
2 files changed, 11 insertions, 6 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/WireFormatJMSObjectReferenceInterceptor.java b/branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsobject/runtime/WireFormatJMSObjectReferenceInterceptor.java index e0df4f2296..5b56de5574 100644 --- a/branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsobject/runtime/WireFormatJMSObjectReferenceInterceptor.java +++ b/branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsobject/runtime/WireFormatJMSObjectReferenceInterceptor.java @@ -91,9 +91,9 @@ public class WireFormatJMSObjectReferenceInterceptor implements Interceptor { public Message invokeResponse(Message msg) { if (msg.getBody() != null){ - Object[] response = (Object[])responseMessageProcessor.extractPayloadFromJMSMessage((javax.jms.Message)msg.getBody()); - if (response != null && response.length > 0){ - msg.setBody(response[0]); + Object response = responseMessageProcessor.extractPayloadFromJMSMessage((javax.jms.Message)msg.getBody()); + if (response != null){ + msg.setBody(response); } else { msg.setBody(null); } 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); } |