[ http://issues.apache.org/jira/browse/BEEHIVE-207?page=history ]
Hoi Lam resolved BEEHIVE-207:
-----------------------------
Resolution: Fixed
An annotation processor was created to validate control member type
annotations. If an invalid minValue or maxValue is specified for the
ControlMemberTypes.Data annotation, it will be caught at build time.
> control property constraint: invalid minValue/maxValue
> ------------------------------------------------------
>
> Key: BEEHIVE-207
> URL: http://issues.apache.org/jira/browse/BEEHIVE-207
> Project: Beehive
> Type: Bug
> Components: Controls
> Versions: V1Beta
> Reporter: James Song
> Assignee: Hoi Lam
> Priority: Minor
> Fix For: V1Beta
>
> When I assign a invalid minValue for Date like the following:
> "2007/01/32", I don't get a compile/build error, but I get a runtime error
> when trying to assign a "valid" value to the property.
> What is expected: a compile/build error, or a correct runtime error.
> Test driver: driver.property.DrivePropertyConstraint2
> Test control:controls.property.constraint.PersonControl
> repro:
> comment out line 118/119 of DrivePropertyConstraint2 and run checkin.tests
> The stacktrace is as the following:
> java.lang.IllegalArgumentException: Value assigned to a date property must be
> in the form 'YYYY/MM/DD'
> at
> org.apache.beehive.controls.runtime.bean.AnnotationConstraintValidator.error(AnnotationConstraintValidator.java:665)
> at
> org.apache.beehive.controls.runtime.bean.AnnotationConstraintValidator.error(AnnotationConstraintValidator.java:660)
> at
> org.apache.beehive.controls.runtime.bean.AnnotationConstraintValidator.validateDate(AnnotationConstraintValidator.java:510)
> at
> org.apache.beehive.controls.runtime.bean.AnnotationConstraintValidator.validate(AnnotationConstraintValidator.java:340)
> at
> org.apache.beehive.controls.runtime.bean.AnnotationConstraintValidator.validate(AnnotationConstraintValidator.java:86)
> at
> org.apache.beehive.controls.runtime.bean.ControlBean.setControlProperty(ControlBean.java:618)
> at
> org.apache.beehive.controls.test.controls.property.constraint.PersonControlBean.setExpirydate(PersonControlBean.java:178)
> at
> org.apache.beehive.controls.test.driver.property.DrivePropertyConstraint2.testPropertyConstraint(DrivePropertyConstraint2.java:110)
> at
> milton.pageflows.property.DrivePropertyConstraint2.Controller.testPropertyConstraint(Controller.java:32)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at
> org.apache.beehive.netui.pageflow.FlowController.invokeActionMethod(FlowController.java:807)
> at
> org.apache.beehive.netui.pageflow.FlowController.getActionMethodForward(FlowController.java:737)
> at
> org.apache.beehive.netui.pageflow.FlowController.internalExecute(FlowController.java:430)
> at
> org.apache.beehive.netui.pageflow.PageFlowController.internalExecute(PageFlowController.java:245)
> at
> org.apache.beehive.netui.pageflow.FlowController.execute(FlowController.java:312)
> at
> org.apache.beehive.netui.pageflow.internal.FlowControllerAction.execute(FlowControllerAction.java:48)
> at
> org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
> at
> org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.processActionPerform(PageFlowRequestProcessor.java:1878)
> at
> org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
> at
> org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.processInternal(PageFlowRequestProcessor.java:574)
> at
> org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.process(PageFlowRequestProcessor.java:781)
> at
> org.apache.beehive.netui.pageflow.AutoRegisterActionServlet.process(AutoRegisterActionServlet.java:618)
> at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at
> org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
> at
> org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:793)
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:702)
> at
> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:571)
> at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:644)
> at java.lang.Thread.run(Thread.java:595)
--
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
-
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira