Hello,I have a converter which I can verify is being called, but when the validator is being called it is not being called on the String value but the object which causes a ClassCastException.
Here is my converter: @Override protected IConverterLocator newConverterLocator() { ConverterLocator locator = new ConverterLocator(); locator.set(types.thing.wc.microsoft.com.CodableValue.class, new IConverter() { public Object convertToObject(String arg0, Locale arg1) { types.thing.wc.microsoft.com.CodableValue cv = new types.thing.wc.microsoft.com.CodableValue(); cv.setText(arg0); return cv; } public String convertToString(Object arg0, Locale arg1) { return ((types.thing.wc.microsoft.com.CodableValue) arg0).getText(); } }); return locator; } Here is my form: TextField treatment = new TextField("treatment", new PropertyModel(allergy, "treatment")); treatment.setType(CodableValue.class); treatment.add(StringValidator.lengthBetween(2, 200)); add(treatment); Here is the error: org.apache.wicket.WicketRuntimeException: Exception 'java.lang.ClassCastException: types.thing.wc.microsoft.com.CodableValue' occurred during validation org.apache.wicket.validation.validator.StringValidator$LengthBetweenValidator on component 4:border:addAllergy:treatment at org.apache.wicket.markup.html.form.FormComponent.validateValidators(FormComponent.java:1510) at org.apache.wicket.markup.html.form.FormComponent.validate(FormComponent.java:1102) at org.apache.wicket.markup.html.form.Form$21.validate(Form.java:1876) at org.apache.wicket.markup.html.form.Form$ValidationVisitor.formComponent(Form.java:165) at org.apache.wicket.markup.html.form.FormComponent.visitFormComponentsPostOrderHelper(FormComponent.java:421) at org.apache.wicket.markup.html.form.FormComponent.visitFormComponentsPostOrderHelper(FormComponent.java:408) at org.apache.wicket.markup.html.form.FormComponent.visitFormComponentsPostOrder(FormComponent.java:385)