summaryrefslogtreecommitdiffstats
path: root/java/sca
diff options
context:
space:
mode:
Diffstat (limited to 'java/sca')
-rw-r--r--java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicPojoProcessor.java12
1 files changed, 9 insertions, 3 deletions
diff --git a/java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicPojoProcessor.java b/java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicPojoProcessor.java
index fc4d27e752..ff5be90889 100644
--- a/java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicPojoProcessor.java
+++ b/java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicPojoProcessor.java
@@ -552,6 +552,8 @@ public class HeuristicPojoProcessor extends BaseJavaClassVisitor {
} catch (InvalidInterfaceException e1) {
throw new IntrospectionException(e1);
}
+
+ // FIXME: This part seems to have already been taken care above!!
try {
processCallback(paramType, reference);
} catch (InvalidServiceType e) {
@@ -584,9 +586,13 @@ public class HeuristicPojoProcessor extends BaseJavaClassVisitor {
Callback callback = interfaze.getAnnotation(Callback.class);
if (callback != null && !Void.class.equals(callback.value())) {
Class<?> callbackClass = callback.value();
- JavaInterface javaInterface = javaFactory.createJavaInterface();
- javaInterface.setJavaClass(callbackClass);
- contract.getInterfaceContract().setCallbackInterface(javaInterface);
+ JavaInterface javaInterface;
+ try {
+ javaInterface = javaFactory.createJavaInterface(callbackClass);
+ contract.getInterfaceContract().setCallbackInterface(javaInterface);
+ } catch (InvalidInterfaceException e) {
+ throw new InvalidServiceType("Invalid callback interface "+callbackClass, interfaze);
+ }
} else if (callback != null && Void.class.equals(callback.value())) {
throw new InvalidServiceType("No callback interface specified on annotation", interfaze);
}