Author: mcombellack
Date: Mon Apr 14 04:41:35 2008
New Revision: 647737
URL: http://svn.apache.org/viewvc?rev=647737&view=rev
Log:
TUSCANY-2225 - Added code to handle the case where an Exception is thrown by a
@OneWay method so the exception is not just silently ignored
Modified:
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/NonBlockingInterceptor.java
incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/wire/NonBlockingInterceptorTestCase.java
Modified:
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/NonBlockingInterceptor.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/NonBlockingInterceptor.java?rev=647737&r1=647736&r2=647737&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/NonBlockingInterceptor.java
(original)
+++
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/NonBlockingInterceptor.java
Mon Apr 14 04:41:35 2008
@@ -68,7 +68,15 @@
public void run() {
Message context =
ThreadMessageContext.setMessageContext(msg);
try {
- next.invoke(msg);
+ Message response = next.invoke(msg);
+
+ // Tuscany-2225 - Did the @OneWay method complete
successfully?
+ // (i.e. no exceptions)
+ if (response != null && response.isFault()) {
+ // The @OneWay method threw an Exception.
+ Throwable t = (Throwable) response.getBody();
+ throw new ServiceRuntimeException("Exception from
@OneWay invocation", t);
+ }
} finally {
ThreadMessageContext.setMessageContext(context);
}
Modified:
incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/wire/NonBlockingInterceptorTestCase.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/wire/NonBlockingInterceptorTestCase.java?rev=647737&r1=647736&r2=647737&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/wire/NonBlockingInterceptorTestCase.java
(original)
+++
incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/wire/NonBlockingInterceptorTestCase.java
Mon Apr 14 04:41:35 2008
@@ -61,6 +61,7 @@
//msg.setConversationID(convID);
Interceptor next = EasyMock.createMock(Interceptor.class);
EasyMock.expect(next.invoke(EasyMock.eq(msg))).andReturn(msg);
+ EasyMock.expect(msg.isFault()).andReturn(false);
EasyMock.replay(next);
EasyMock.replay(msg);
Interceptor interceptor = new NonBlockingInterceptor(scheduler, next);
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]