You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2010/07/17 01:25:36 UTC

svn commit: r964980 - /tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeEndpointImpl.java

Author: rfeng
Date: Fri Jul 16 23:25:36 2010
New Revision: 964980

URL: http://svn.apache.org/viewvc?rev=964980&view=rev
Log:
Fix the regression caused by r963624 for overloaded local methods

Modified:
    tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeEndpointImpl.java

Modified: tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeEndpointImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeEndpointImpl.java?rev=964980&r1=964979&r2=964980&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeEndpointImpl.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeEndpointImpl.java Fri Jul 16 23:25:36 2010
@@ -230,9 +230,18 @@ public class RuntimeEndpointImpl extends
                 // 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



Re: svn commit: r964980 - /tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeEndpointImpl.java

Posted by Simon Laws <si...@googlemail.com>.
On Sat, Jul 17, 2010 at 12:25 AM,  <rf...@apache.org> wrote:
> Author: rfeng
> Date: Fri Jul 16 23:25:36 2010
> New Revision: 964980
>
> URL: http://svn.apache.org/viewvc?rev=964980&view=rev
> Log:
> Fix the regression caused by r963624 for overloaded local methods
>
> Modified:
>    tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeEndpointImpl.java
>
> Modified: tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeEndpointImpl.java
> URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeEndpointImpl.java?rev=964980&r1=964979&r2=964980&view=diff
> ==============================================================================
> --- tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeEndpointImpl.java (original)
> +++ tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeEndpointImpl.java Fri Jul 16 23:25:36 2010
> @@ -230,9 +230,18 @@ public class RuntimeEndpointImpl extends
>                 // 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
>
>
>

Hi Raymond

Which test was it that alerted you to the regression? I didn't spot
the problem when I made the original change which worries me a bit.

Simon

-- 
Apache Tuscany committer: tuscany.apache.org
Co-author of a book about Tuscany and SCA: tuscanyinaction.com