[hibernate-issues] [Hibernate-JIRA] Closed: (HV-293) Annotation processor fails in Eclipse when evaluating custom constraints not defined in the current project

Gunnar Morling (JIRA) noreply at atlassian.com
Thu May 27 02:42:54 EDT 2010


     [ http://opensource.atlassian.com/projects/hibernate/browse/HV-293?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gunnar Morling closed HV-293.
-----------------------------

    Resolution: Fixed

With rev. [19324|http://fisheye.jboss.org/changelog/Hibernate/validator/trunk/hibernate-validator-annotation-processor/src/main?cs=19324] constraints for which the allowed types can't be determined within Eclipse won't cause the entire AP to fail any more but are simply ignored. Will close this issue therefor now.

Unfortunately that means that constraint errors can't be detected in these cases. For instance an @Email constraint at a date field wouldn't show up as error within the Eclipse editor. Added an item to the "AP known bugs" section of the ref guide describing this issue.

Will add another JIRA issue for this which either can be resolved if the Eclipse bug I entered is fixed or if we find another way to determine the types supported by a given validator in these cases.

> Annotation processor fails in Eclipse when evaluating custom constraints not defined in the current project
> -----------------------------------------------------------------------------------------------------------
>
>                 Key: HV-293
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HV-293
>             Project: Hibernate Validator
>          Issue Type: Bug
>          Components: annotation-processor
>    Affects Versions: 4.1.0.Beta1
>            Reporter: Gunnar Morling
>            Assignee: Gunnar Morling
>             Fix For: 4.1.0
>
>
> In certain situations the AP fails when being integrated in Eclipse with the following exception:
> java.lang.AssertionError: Class org.hibernate.validator.constraints.impl.LengthValidator specified in @Constraint.validatedBy doesn't implement ConstraintValidator.
> at org.hibernate.validator.ap.util.ConstraintHelper.getConstraintValidatorSuperType(ConstraintHelper.java:497)
> at org.hibernate.validator.ap.util.ConstraintHelper.getSupportedType(ConstraintHelper.java:426)
> at org.hibernate.validator.ap.util.ConstraintHelper.getSupportedTypes(ConstraintHelper.java:402)
> at org.hibernate.validator.ap.util.ConstraintHelper.checkCustomConstraint(ConstraintHelper.java:356)
> at org.hibernate.validator.ap.util.ConstraintHelper.checkConstraint(ConstraintHelper.java:295)
> at org.hibernate.validator.ap.ConstraintAnnotationVisitor.checkConstraintAtField(ConstraintAnnotationVisitor.java:290)
> at org.hibernate.validator.ap.ConstraintAnnotationVisitor.visitVariableAsField(ConstraintAnnotationVisitor.java:174)
> at org.hibernate.validator.ap.ConstraintAnnotationVisitor.visitVariableAsField(ConstraintAnnotationVisitor.java:45)
> at javax.lang.model.util.ElementKindVisitor6.visitVariable(ElementKindVisitor6.java:199)
> at org.eclipse.jdt.internal.compiler.apt.model.VariableElementImpl.accept(VariableElementImpl.java:55)
> at org.hibernate.validator.ap.ConstraintValidationProcessor.process(ConstraintValidationProcessor.java:84)
> at org.eclipse.jdt.internal.compiler.apt.dispatch.RoundDispatcher.handleProcessor(RoundDispatcher.java:139)
> at org.eclipse.jdt.internal.compiler.apt.dispatch.RoundDispatcher.round(RoundDispatcher.java:121)
> at org.eclipse.jdt.internal.compiler.apt.dispatch.BaseAnnotationProcessorManager.processAnnotations(BaseAnnotationProcessorManager.java:159)
> at org.eclipse.jdt.internal.apt.pluggable.core.dispatch.IdeAnnotationProcessorManager.processAnnotations(IdeAnnotationProcessorManager.java:134)
> at org.eclipse.jdt.internal.compiler.Compiler.processAnnotations(Compiler.java:810)
> at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:428)
> at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:364)
> at org.eclipse.jdt.internal.core.builder.IncrementalImageBuilder.compile(IncrementalImageBuilder.java:321)
> at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:301)
> at org.eclipse.jdt.internal.core.builder.IncrementalImageBuilder.build(IncrementalImageBuilder.java:134)
> at org.eclipse.jdt.internal.core.builder.JavaBuilder.buildDeltas(JavaBuilder.java:265)
> at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:193)
> at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:627)
> at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
> at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:170)
> at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:201)
> at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:253)
> at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
> at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:256)
> at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:309)
> at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:341)
> at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:140)
> at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:238)
> at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
> This happens, if the AP examines a constraint annotation, which is not defined in the currently built project itself, but is imported from some other JAR (e.g. @Length from HV):
> public class TestModel {
> 	@Length
> 	private String test;
> }
> The problem occurs, regardless whether the JAR containing the constraint is on the AP classpath or not.
> The AP works as expected when running on javac.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the hibernate-issues mailing list