You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@bval.apache.org by "Daniel Drachau (JIRA)" <ji...@apache.org> on 2010/09/07 16:22:34 UTC
[jira] Created: (BVAL-82) Validation of inherited methods causes
ValidationException
Validation of inherited methods causes ValidationException
----------------------------------------------------------
Key: BVAL-82
URL: https://issues.apache.org/jira/browse/BVAL-82
Project: BeanValidation
Issue Type: Bug
Components: jsr303
Affects Versions: 0.2-incubating, 0.1-incubating
Reporter: Daniel Drachau
Fix For: 0.3-incubating
MethodValidationImpl throws an exception if it tries to verify an inherited method (definition in the abstract superclass).
public <T> Set<ConstraintViolation<T>> validateParameter(Class<T> clazz, Method method,
Object parameter,
int parameterIndex,
Class<?>... groupArray) {
MethodBeanDescriptorImpl beanDesc =
(MethodBeanDescriptorImpl) getConstraintsForClass(clazz);
MethodDescriptorImpl methodDescriptor =
(MethodDescriptorImpl) beanDesc.getConstraintsForMethod(method);
if ( methodDescriptor == null ) {
--> throw new ValidationException("Method " + method + " doesn't belong to class " + clazz);
}
a possible fix might be to collect the method declarations of the parent classes as well (in the MethodValidatorMetaBeanFactory). I cannot decide if this really fix the problem or just one symptom.
private void buildMethodConstraints(MethodBeanDescriptorImpl beanDesc)
throws InvocationTargetException, IllegalAccessException {
beanDesc.setMethodConstraints(new HashMap<Method, MethodDescriptor>());
### new ###
ArrayList<Method> methods = new ArrayList<Method>();
for (Method m : beanDesc.getMetaBean().getBeanClass().getDeclaredMethods()) {
methods.add(m);
}
Class clazz = beanDesc.getMetaBean().getBeanClass();
while (clazz.getSuperclass() != null) {
clazz = clazz.getSuperclass();
for (Method m : clazz.getDeclaredMethods()) {
methods.add(m);
}
}
for (Method method : methods) {
### end new ###
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.