rmannibucau commented on code in PR #191: URL: https://github.com/apache/bval/pull/191#discussion_r2095960317
########## bval-jsr/src/main/java/org/apache/bval/cdi/BValExtension.java: ########## @@ -132,28 +134,31 @@ public <A> void processAnnotatedType(final @Observes ProcessAnnotatedType<A> pat final int modifiers = javaClass.getModifiers(); if (!javaClass.isInterface() && !javaClass.isAnonymousClass() && !Modifier.isFinal(modifiers) && !Modifier.isAbstract(modifiers)) { try { - Queue<Class<?>> toProcess = new LinkedList<>(); - toProcess.add(annotatedType.getJavaClass()); + Queue<AnnotatedType<?>> toProcess = new LinkedList<>(); + toProcess.add(annotatedType); while (!toProcess.isEmpty()) { - Class<?> now = toProcess.poll(); - Executable[] methods = now.getMethods(); - Executable[] constructors = now.getConstructors(); + AnnotatedType<?> now = toProcess.poll(); + Set<? extends AnnotatedMethod<?>> methods = now.getMethods(); + Set<? extends AnnotatedConstructor<?>> constructors = now.getConstructors(); if (hasValidation(now) - || hasValidation(methods) || hasValidation(constructors) - || hasParamsWithValidation(methods) || hasParamsWithValidation(constructors)) { + || methods.stream().anyMatch(this::hasValidation) + || constructors.stream().anyMatch(this::hasValidation) + || methods.stream().anyMatch(this::hasParamsWithValidation) + || constructors.stream().anyMatch(this::hasParamsWithValidation)) { pat.setAnnotatedType(new BValAnnotatedType<>(annotatedType)); - break; } - // Nothing found, collect superclass/interface and repeat (See BVAL-222) - if (now.getSuperclass() != Object.class && now.getSuperclass() != null) { - toProcess.add(now.getSuperclass()); + Class<?> superclass = now.getJavaClass().getSuperclass(); Review Comment: I assume it was copied from a tck? how do you remove the constraint if you have to respect the parent mode? Last time I checked the spec the liskov principle was enforced and a child can relax a parent constraint (not the opposite) so a not null param in an interface can be null in a class so we should really stick to CDI model and ensure parent annotations are there using CDI cause like that you can just end up in unpracticable cases no? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: dev-unsubscr...@bval.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org