diff options
Diffstat (limited to 'sca-java-2.x/trunk/modules/core/src')
-rw-r--r-- | sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/JDKInvocationHandler.java | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/JDKInvocationHandler.java b/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/JDKInvocationHandler.java index 03853a2883..afdad37e2d 100644 --- a/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/JDKInvocationHandler.java +++ b/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/JDKInvocationHandler.java @@ -123,12 +123,15 @@ public class JDKInvocationHandler implements InvocationHandler, Serializable { holderPattern = true; // Pop results and place in holder (demote). Holder holder = (Holder) args[ i ]; - Object[] resultArray = (Object[])result; - holder.value = resultArray[++resultIdx]; + + Object[] results = (Object[])result; + if ( result != null ) { + holder.value = results[++resultIdx]; + } } } } - if ( holderPattern ) + if ( holderPattern && result != null) return ((Object[])result)[0]; else return result; |