You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@bval.apache.org by "Matt Benson (JIRA)" <ji...@apache.org> on 2016/10/20 15:37:58 UTC

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

     [ https://issues.apache.org/jira/browse/BVAL-125?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Matt Benson closed BVAL-125.
----------------------------
    Resolution: Won't Fix

method validation standardized with bean validation 1.1

> "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.3.4#6332)