NPE if a required annotation attribute is missing for @Jpf.ValidateRequired
---------------------------------------------------------------------------

         Key: BEEHIVE-831
         URL: http://issues.apache.org/jira/browse/BEEHIVE-831
     Project: Beehive
        Type: Bug
  Components: NetUI  
    Versions: v1m1    
    Reporter: Rich Feit
 Assigned to: Rich Feit 
     Fix For: V1


Repro:
    - Add the following annotation to a form bean getter on an inner class of a 
page flow:
        @Jpf.ValidatableProperty(
            [EMAIL PROTECTED]()
        )

    - Build the page flow.

EXPECTED: an error that says the 'chars' attribute is required for 
@Jpf.ValidateMinLength
ACTUAL: the following exception:

    java.lang.NullPointerException
        at 
org.apache.beehive.netui.compiler.genmodel.DefaultValidatorRuleFactory.getFieldRule(DefaultValidatorRuleFactory.java:85)
        at 
org.apache.beehive.netui.compiler.genmodel.GenValidationModel.getFieldRule(GenValidationModel.java:369)
        at 
org.apache.beehive.netui.compiler.genmodel.GenValidationModel.addFieldRuleFromAnnotation(GenValidationModel.java:352)
        at 
org.apache.beehive.netui.compiler.genmodel.GenValidationModel.addFieldRules(GenValidationModel.java:331)
        at 
org.apache.beehive.netui.compiler.genmodel.GenValidationModel.addRulesFromAnnotation(GenValidationModel.java:161)
        at 
org.apache.beehive.netui.compiler.genmodel.GenValidationModel.addRulesFromBeanClass(GenValidationModel.java:133)
        at 
org.apache.beehive.netui.compiler.genmodel.GenValidationModel.addRulesFromBeans(GenValidationModel.java:94)
        at 
org.apache.beehive.netui.compiler.genmodel.GenValidationModel.<init>(GenValidationModel.java:72)
        at 
org.apache.beehive.netui.compiler.FlowControllerGenerator.generate(FlowControllerGenerator.java:61)
        at 
org.apache.beehive.netui.compiler.processor.BaseAnnotationProcessor.generate(BaseAnnotationProcessor.java:99)
        at 
org.apache.beehive.netui.compiler.processor.TwoPhaseAnnotationProcessor.generate(TwoPhaseAnnotationProcessor.java:144)
        at 
org.apache.beehive.netui.compiler.processor.TwoPhaseAnnotationProcessor.process(TwoPhaseAnnotationProcessor.java:89)
        at 
org.apache.beehive.netui.compiler.processor.BaseAnnotationProcessor.process(BaseAnnotationProcessor.java:106)
        at 
org.apache.beehive.netui.compiler.apt.BaseAnnotationProcessorFactory$DelegatingAnnotationProcessor.process(BaseAnnotationProcessorFactory.java:64)
        at 
com.sun.mirror.apt.AnnotationProcessors$CompositeAnnotationProcessor.process(AnnotationProcessors.java:60)
        at com.sun.tools.apt.comp.Apt.main(Apt.java:404)
        at com.sun.tools.apt.main.JavaCompiler.compile(JavaCompiler.java:440)
        at com.sun.tools.apt.main.Main.compile(Main.java:1017)
        at com.sun.tools.apt.main.Main.compile(Main.java:907)
        at com.sun.tools.apt.Main.compile(Main.java:41)
        at com.sun.tools.apt.Main.main(Main.java:32)

This is happening because javac runs *after* annotation processing, so that 
missing annotation members don't fail the build in time.

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

Reply via email to