summaryrefslogtreecommitdiffstats
path: root/branches
diff options
context:
space:
mode:
authornash <nash@13f79535-47bb-0310-9956-ffa450edef68>2009-09-03 08:58:55 +0000
committernash <nash@13f79535-47bb-0310-9956-ffa450edef68>2009-09-03 08:58:55 +0000
commit06f51bda3bd98c0f791639dfb355027b1260fbfe (patch)
tree436bce62c1b941977ce16fffd967bc189b758fb8 /branches
parent41eac9b769b7a9ba6ad725adabc6e3480f529821 (diff)
Fix interface compatibility checking for callback operations (TUSCANY-3251)
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@810833 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'branches')
-rw-r--r--branches/sca-java-1.5.1/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractMapperImpl.java5
1 files changed, 2 insertions, 3 deletions
diff --git a/branches/sca-java-1.5.1/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractMapperImpl.java b/branches/sca-java-1.5.1/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractMapperImpl.java
index 149e6306e5..9aeeafe6b9 100644
--- a/branches/sca-java-1.5.1/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractMapperImpl.java
+++ b/branches/sca-java-1.5.1/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractMapperImpl.java
@@ -209,8 +209,7 @@ public class InterfaceContractMapperImpl implements InterfaceContractMapper {
}
for (Operation operation : source.getCallbackInterface().getOperations()) {
- Operation targetOperation =
- getOperation(target.getCallbackInterface().getOperations(), operation.getName());
+ Operation targetOperation = map(target.getCallbackInterface(), operation);
if (targetOperation == null) {
if (!silent) {
throw new IncompatibleInterfaceContractException("Callback operation not found on target", source,
@@ -221,7 +220,7 @@ public class InterfaceContractMapperImpl implements InterfaceContractMapper {
}
if (!source.getCallbackInterface().isRemotable()) {
// FIXME: for remotable operation, only compare name for now
- if (!operation.equals(targetOperation)) {
+ if (!isCompatible(operation, targetOperation, false)) {
if (!silent) {
throw new IncompatibleInterfaceContractException("Target callback operation is not compatible",
source, target, operation, targetOperation);