[ https://issues.apache.org/jira/browse/MYFACES-2827?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12889870#action_12889870 ]
Jan-Kees van Andel commented on MYFACES-2827: --------------------------------------------- I see I made a mistake. I guess that's what you get when looking at code through a web interface instead of an IDE... ;-) valueProperty must be a String because we need to pass it to the validateValue() method as a String. This is the JSR303 API, so we can't change this. For reference: http://download.oracle.com/docs/cd/E17410_01/javaee/6/api/javax/validation/Validator.html#validateValue(java.lang.Class, java.lang.String, java.lang.Object, java.lang.Class...) With regards ot Jakob's comment: "check if reference.getProperty() is a String before doing the whole initialisation" We can do this, but what do we do in this case? Just skip the call to validateValue()? I must say, it sounds reasonable on first thought, because we can't validate it anyway. Also, this situation should never occur in the case of a Bean, since the property name in a Bean is always a String. If it's not a String ==> it's not a Bean ==> we don't have to "Bean-validate" it... So +1, but I'm probably not seeing all consequences right now. I guess we should just fix it this way and see how it turns out in practice. Mark can do the regression testing. ;-) > CCE if component values are not of type String > ---------------------------------------------- > > Key: MYFACES-2827 > URL: https://issues.apache.org/jira/browse/MYFACES-2827 > Project: MyFaces Core > Issue Type: Bug > Affects Versions: 2.0.1 > Reporter: Mark Struberg > Assignee: Jakob Korherr > Attachments: MYFACES-2827.patch > > > Somehow I did get a Long into my component. This leads to the following > Exception: > java.lang.ClassCastException: java.lang.Long cannot be cast to > java.lang.String > at javax.faces.validator.BeanValidator.validate(BeanValidator.java:145) > at > javax.faces.component._ComponentUtils.callValidators(_ComponentUtils.java:173) > at javax.faces.component.UIInput.validateValue(UIInput.java:425) > at javax.faces.component.UIInput.validate(UIInput.java:537) > at javax.faces.component.UIInput.processValidators(UIInput.java:240) > at javax.faces.component.UIData.process(UIData.java:1043) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.