First, let me thank Igor Vaynberg for being so responsive updating the 
net.ftlines.wicket-bean-validation<http://mvnrepository.com/artifact/net.ftlines.wicket-bean-validation>
 project.

I still have one final problem configuring it. I have a test that checks that 
setting a field to a value that violates an @Size constraint should fail 
validation. I get the following stacktrace:

codeMustBeAtMost4Chars(com.example.wicket.components.classification.CategoryPanelTest)
  Time elapsed: 0.344 sec  <<< ERROR!
org.apache.wicket.WicketRuntimeException: Method onFormSubmitted of interface 
org.apache.wicket.markup.html.form.IFormSubmitListener targeted at 
[ValidationForm [Component id = form]] on component [ValidationForm [Component 
id = form]] threw an exception
      at 
org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:270)
      at 
org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:216)
      at 
org.apache.wicket.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:248)
      at 
org.apache.wicket.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234)
      at 
org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:750)
      at 
org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
      at 
org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:252)
      at 
org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:209)
      at 
org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:280)
      at 
org.apache.wicket.util.tester.BaseWicketTester.processRequest(BaseWicketTester.java:626)
      at 
org.apache.wicket.util.tester.BaseWicketTester.processRequest(BaseWicketTester.java:546)
      at 
org.apache.wicket.util.tester.BaseWicketTester.processRequest(BaseWicketTester.java:518)
      at 
org.apache.wicket.util.tester.BaseWicketTester.submitForm(BaseWicketTester.java:1900)
      at org.apache.wicket.util.tester.FormTester.submit(FormTester.java:755)
      at 
com.example.wicket.components.classification.CategoryPanelTest.codeMustBeAtMost4Chars(CategoryPanelTest.java:81)
      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:597)
      at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
      at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
      at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
      at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
      at 
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
      at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
      at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
      at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
      at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
      at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
      at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
      at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
      at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
      at 
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
      at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
      at 
org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
      at 
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
      at 
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
      at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
      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:597)
      at 
org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345)
      at 
org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
Caused by: java.lang.reflect.InvocationTargetException
      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:597)
      at 
org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:260)
      ... 43 more
Caused by: java.util.MissingResourceException: Unable to find property: 
'javax.validation.constraints.Size.message' for component: testObject:form 
[class=net.ftlines.wicket.validation.bean.ValidationForm]
      at org.apache.wicket.Localizer.getString(Localizer.java:239)
      at org.apache.wicket.Localizer.getString(Localizer.java:130)
      at org.apache.wicket.Component.getString(Component.java:1889)
      at org.apache.wicket.Component.getString(Component.java:1876)
      at 
net.ftlines.wicket.validation.bean.ValidationForm$FormErrorSource.getMessage(ValidationForm.java:231)
      at 
org.apache.wicket.validation.ValidationError.getErrorMessage(ValidationError.java:150)
      at 
net.ftlines.wicket.validation.bean.ValidationForm.validateFormModelObject(ValidationForm.java:215)
      at 
net.ftlines.wicket.validation.bean.ValidationForm.onValidateModelObjects(ValidationForm.java:198)
      at org.apache.wicket.markup.html.form.Form.process(Form.java:830)
      at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:762)
      at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:692)
      ... 48 more

The Hibernate Validator documentation states:

# In order to resolve these parameters Hibernate Validator's default 
MessageInterpolator first recursively
# resolves parameters against a custom ResourceBundle called 
ValidationMessages.properties at the
# root of the classpath (It is up to you to create this file). If no further 
replacements are possible against the
# custom bundle the default ResourceBundle under
# /org/hibernate/validator/ValidationMessages.properties gets evaluated.

So, something is causing the validator to not search its normal locations. 
Version 4.2.0.Final of the Hibernate Validator jar is a transitive Maven 
dependency

Respectfully,
Eric Jablow

This communication, along with any attachments, is covered by federal and state 
law governing electronic communications and may contain company proprietary and 
legally privileged information.  If the reader of this message is not the 
intended recipient, you are hereby notified that any dissemination, 
distribution, use or copying of this message is strictly prohibited.  If you 
have received this in error, please reply immediately to the sender and delete 
this message.  Thank you.

Reply via email to