From c8dd567ff6ea5b0fa2296b3819fb138e8ccc2b93 Mon Sep 17 00:00:00 2001 From: rfeng Date: Fri, 16 Jul 2010 23:25:36 +0000 Subject: Fix the regression caused by r963624 for overloaded local methods git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@964980 13f79535-47bb-0310-9956-ffa450edef68 --- .../sca/core/assembly/impl/RuntimeEndpointImpl.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'sca-java-2.x/trunk') diff --git a/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeEndpointImpl.java b/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeEndpointImpl.java index ce50c6223e..fe9e437650 100644 --- a/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeEndpointImpl.java +++ b/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeEndpointImpl.java @@ -230,9 +230,18 @@ public class RuntimeEndpointImpl extends EndpointImpl implements RuntimeEndpoint // chain is created. As the chain operations are the real interface types // they may be incompatible just because they are described in different // IDLs - if (operation.getName().equals(op.getName())) { - invocationChainMap.put(operation, chain); - return chain; + if (operation.getInterface().isRemotable()) { + if (operation.getName().equals(op.getName())) { + invocationChainMap.put(operation, chain); + return chain; + } + } else { + // [rfeng] We need to run the compatibility check for local operations as they + // can be overloaded + if (interfaceContractMapper.isCompatible(operation, op, Compatibility.SUBSET)) { + invocationChainMap.put(operation, chain); + return chain; + } } } // Cache it with the NULL_CHAIN to avoid NPE -- cgit v1.2.3