You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@bval.apache.org by "viktor (JIRA)" <ji...@apache.org> on 2014/03/21 14:57:43 UTC

[jira] [Created] (BVAL-125) "No validator could be found for type ..." for overloaded methods with more specific return type

viktor created BVAL-125:
---------------------------

             Summary: "No validator could be found for type ..." for overloaded methods with more specific return type
                 Key: BVAL-125
                 URL: https://issues.apache.org/jira/browse/BVAL-125
             Project: BVal
          Issue Type: Bug
    Affects Versions: 0.5
         Environment: Java(TM) SE Runtime Environment (build 1.8.0-b132)
Linux 3.11.10-7-desktop x86_64
            Reporter: viktor


Example:

import java.lang.reflect.Method;
import java.util.Set;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.ValidatorFactory;

public class App {
  public static interface Identifiable {
    Object getId();
  }
  public static class Test implements Identifiable {
    @javax.validation.constraints.Pattern(regexp = "\\w+")
    public String getId() {
      return "ok";
    }
  }
  public static void main(String[] args) {
    ValidatorFactory vf = Validation.buildDefaultValidatorFactory();
    Test test = new Test();
    System.out.println("methods: ");
    for(Method m: test.getClass().getMethods()) {
      System.out.println("  " + m);
    }
    Set<ConstraintViolation<Test>> set = vf.getValidator().validate(test);
    System.out.println("set:" + set);
  }
}

Print to ouput stream: 

methods: 
  public java.lang.String ru.kih.test.App$Test.getId()
  public java.lang.Object ru.kih.test.App$Test.getId()
  ... other methods was skipped ...
Exception in thread "main" javax.validation.UnexpectedTypeException: No validator could be found for type java.lang.Object. See: @Pattern at public java.lang.Object ru.kih.test.App$Test.getId()
	at org.apache.bval.jsr303.AnnotationProcessor.checkOneType(AnnotationProcessor.java:326)
	at org.apache.bval.jsr303.AnnotationProcessor.getConstraintValidator(AnnotationProcessor.java:301)
	at org.apache.bval.jsr303.AnnotationProcessor.applyConstraint(AnnotationProcessor.java:241)
	at org.apache.bval.jsr303.AnnotationProcessor.processAnnotation(AnnotationProcessor.java:149)
	at org.apache.bval.jsr303.AnnotationProcessor.processAnnotations(AnnotationProcessor.java:90)
	at org.apache.bval.jsr303.Jsr303MetaBeanFactory.processClass(Jsr303MetaBeanFactory.java:156)
	at org.apache.bval.jsr303.Jsr303MetaBeanFactory.buildMetaBean(Jsr303MetaBeanFactory.java:95)
	at org.apache.bval.MetaBeanBuilder.buildForClass(MetaBeanBuilder.java:131)
	at org.apache.bval.MetaBeanManager.findForClass(MetaBeanManager.java:102)
	at org.apache.bval.jsr303.ClassValidator.validate(ClassValidator.java:140)
	at ru.kih.test.App.main(App.java:34)




--
This message was sent by Atlassian JIRA
(v6.2#6252)