Пользовательский валидатор не показывает правильное значение
Я создаю собственный валидатор в этом клиентском пакете: это код:
@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
@Retention(RUNTIME)
@Documented
@Constraint(validatedBy = {CustomDateValidator.class })
public @interface CustomDateConstraint {
String message() default "{message}";
Class<?>[] groups() default { };
Class<? extends Payload>[] payload() default { };
@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
@Retention(RUNTIME)
@Documented
@interface List {
CustomDateConstraint[] value();
}
}
вальдиатор:
public class CustomDateValidator implements ConstraintValidator<CustomDateConstraint, Date> {
@Override
public void initialize(CustomDateConstraint constraintAnnotation) {
}
@Override
public boolean isValid(Date data, ConstraintValidatorContext context) {
if(data==null) {
return false;
}
//this in an example if it works fine or not
return true;
}
}
Я помещаю новое ограничение в свой компонент:
@Temporal(TemporalType.TIMESTAMP)
@CustomDateConstraint(message = "Date not null")
private Date date;
Проблема в том, что когда я устанавливаю этот пользовательский валидатор, мой проект не компилируется. Не знаю, почему при компиляции я получаю это исключение:
[ERROR] Unexpected internal compiler error
java.lang.ArrayIndexOutOfBoundsException: 9216
at org.objectweb.asm.ClassReader.readUTF8(Unknown Source)
at org.objectweb.asm.ClassReader.accept(Unknown Source)
at org.objectweb.asm.ClassReader.accept(Unknown Source)
at com.google.gwt.dev.javac.BytecodeSignatureMaker.visitCompileDependenciesInBytecode(BytecodeSignatureMaker.java:228)
at com.google.gwt.dev.javac.BytecodeSignatureMaker.getCompileDependencySignature(BytecodeSignatureMaker.java:209)
at com.google.gwt.dev.javac.CompiledClass.getSignatureHash(CompiledClass.java:166)
at com.google.gwt.dev.javac.Dependencies$Ref.<init>(Dependencies.java:42)
at com.google.gwt.dev.javac.Dependencies$Ref.<init>(Dependencies.java:37)
at com.google.gwt.dev.javac.Dependencies.resolve(Dependencies.java:114)
at com.google.gwt.dev.javac.CompilationStateBuilder$CompileMoreLater.compile(CompilationStateBuilder.java:366)
at com.google.gwt.dev.javac.CompilationStateBuilder.doBuildFrom(CompilationStateBuilder.java:580)
at com.google.gwt.dev.javac.CompilationStateBuilder.buildFrom(CompilationStateBuilder.java:513)
at com.google.gwt.dev.javac.CompilationStateBuilder.buildFrom(CompilationStateBuilder.java:499)
at com.google.gwt.dev.cfg.ModuleDef.getCompilationState(ModuleDef.java:668)
at com.google.gwt.dev.Precompile.precompile(Precompile.java:255)
at com.google.gwt.dev.Precompile.precompile(Precompile.java:229)
at com.google.gwt.dev.Precompile.precompile(Precompile.java:145)
at com.google.gwt.dev.Compiler.run(Compiler.java:206)
at com.google.gwt.dev.Compiler.run(Compiler.java:158)
at com.google.gwt.dev.Compiler$1.run(Compiler.java:120)
at com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner.java:55)
at com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger(CompileTaskRunner.java:50)
at com.google.gwt.dev.Compiler.main(Compiler.java:127)
Не знаю, в чем проблема. Кто-нибудь может мне помочь?