Details
-
Bug
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
1.5.3
-
None
Description
AjaxEditableLabel<Integer> label = new AjaxEditableLabel<Integer>("label", new PropertyModel<Integer>(this, "value"));
form.add(label);
label.setRequired(true);
label.add(new RangeValidator<Integer>(1, 10));
Using a RangeValidator<Integer> on an AjaxEditableLabel<Integer> causes an ClassCastException after editing the label.
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
This can be avoided by setting the type explicit on the AjaxEditableLabel.
label.setType(Integer.class);
But this wasn't necessary in Wicket 1.4.19. In this version all works fine without setting the type explicit.
I found out, that AbstractTextComponent.resolveType() is not able to get the type of the DefaultModel of the AjaxEditableLabel in Wicket 1.5.3.
I will attach two QuickStarts to demonstrate the bug. One with wicket 1.4.19 and the other with Wicket 1.5.3