summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/RuntimeInvoker.java19
1 files changed, 10 insertions, 9 deletions
diff --git a/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/RuntimeInvoker.java b/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/RuntimeInvoker.java
index 62593ba895..34c00dbb94 100644
--- a/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/RuntimeInvoker.java
+++ b/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/RuntimeInvoker.java
@@ -178,10 +178,7 @@ public class RuntimeInvoker implements Invoker, InvokerAsyncRequest {
// temporary fix to swallow the dummy exception that's
// thrown back to get past the response chain processing.
if (!(ex instanceof AsyncResponseException)){
- // send the exception in through the
- // async response processing path
- msg.setFaultBody(ex);
- invokeAsyncResponse(msg);
+ throw new ServiceRuntimeException(ex);
}
}
} finally {
@@ -200,11 +197,15 @@ public class RuntimeInvoker implements Invoker, InvokerAsyncRequest {
public void invokeAsyncResponse(Message msg) {
InvocationChain chain = invocable.getInvocationChain(msg.getOperation());
Invoker tailInvoker = chain.getTailInvoker();
- ((InvokerAsyncResponse)tailInvoker).invokeAsyncResponse(msg);
+ try {
+ ((InvokerAsyncResponse)tailInvoker).invokeAsyncResponse(msg);
+ } catch (Throwable ex) {
+ throw new ServiceRuntimeException(ex);
+ }
} // end method invokeAsyncResponse
- @Override
- public void invokeAsyncRequest(Message msg) throws Throwable {
- invokeAsync(msg);
- } // end method invokeAsyncRequest
+ @Override
+ public void invokeAsyncRequest(Message msg) throws Throwable {
+ invokeAsync(msg);
+ } // end method invokeAsyncRequest
}