diff --git a/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/ClientProxyGenerator.java b/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/ClientProxyGenerator.java index 4410f808f41d8..5720e8a930296 100644 --- a/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/ClientProxyGenerator.java +++ b/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/ClientProxyGenerator.java @@ -33,6 +33,7 @@ import org.jboss.jandex.ClassInfo; import org.jboss.jandex.DotName; import org.jboss.jandex.FieldInfo; +import org.jboss.jandex.IndexView; import org.jboss.jandex.MethodInfo; import org.jboss.jandex.Type; import org.jboss.jandex.TypeVariable; @@ -310,11 +311,12 @@ void implementGetBean(ClassCreator clientProxy, FieldDescriptor beanField) { Collection getDelegatingMethods(BeanInfo bean, Consumer bytecodeTransformerConsumer, boolean transformUnproxyableClasses) { Map methods = new HashMap<>(); + IndexView index = bean.getDeployment().getBeanArchiveIndex(); if (bean.isClassBean()) { Set methodsFromWhichToRemoveFinal = new HashSet<>(); ClassInfo classInfo = bean.getTarget().get().asClass(); - Methods.addDelegatingMethods(bean.getDeployment().getBeanArchiveIndex(), classInfo, + Methods.addDelegatingMethods(index, classInfo, methods, methodsFromWhichToRemoveFinal, transformUnproxyableClasses); if (!methodsFromWhichToRemoveFinal.isEmpty()) { String className = classInfo.name().toString(); @@ -323,16 +325,16 @@ Collection getDelegatingMethods(BeanInfo bean, Consumer methods, Set methodsFromWhichToRemoveFinal, boolean transformUnproxyableClasses) { - // TODO support interfaces default methods if (classInfo != null) { + // First methods declared on the class for (MethodInfo method : classInfo.methods()) { if (skipForClientProxy(method, transformUnproxyableClasses, methodsFromWhichToRemoveFinal)) { continue; @@ -88,14 +88,7 @@ static void addDelegatingMethods(IndexView index, ClassInfo classInfo, Map