You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Jan Normann Nielsen <li...@dubbekarl.dk> on 2005/10/04 13:53:05 UTC

ClassCastException with StringValidator

Hey

I don't quite understand how this is possible. I have a component in my 
page:

    <component id="nameField" type="TextField">
        <binding name="value" value="ognl:name" />
        <binding name="validators" 
value="validator:string,required,minimumLength=3" />
        <binding name="displayName" value="literal:name" />
    </component>

but when the form rewinds, I get this exception:

java.lang.ClassCastException: org.apache.tapestry.valid.StringValidator
# 
org.apache.tapestry.form.ValidatableFieldSupportImpl.validate(ValidatableFieldSupportImpl.java:89)
# 
$ValidatableFieldSupport_106bb5cdfa5.validate($ValidatableFieldSupport_106bb5cdfa5.java)
# org.apache.tapestry.form.TextField.rewindFormComponent(TextField.java:84)
# 
org.apache.tapestry.form.AbstractFormComponent.renderComponent(AbstractFormComponent.java:115)
[snip]

That is very strange. Line 89 in ValidatableFieldSupportImpl.java says:

            Validator validator = (Validator) validators.next();

But how can this generate a ClassCastException for StringValidator? 
StringValidator implements Validator as far as I know.

Best wishes,
Jan Nielsen

---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-user-help@jakarta.apache.org


Re: ClassCastException with StringValidator

Posted by Jan Normann Nielsen <li...@dubbekarl.dk>.
Jan Normann Nielsen wrote:

> Hey
>
> I don't quite understand how this is possible.

I see the problem. I didn't realize that there were two BaseValidator 
classes, one that implements Validator, and one that implements 
IValidator. StringValidator extends the last one which means it can't be 
used where I want it to.

Best wishes,
Jan

> I have a component in my page:
>
>    <component id="nameField" type="TextField">
>        <binding name="value" value="ognl:name" />
>        <binding name="validators" 
> value="validator:string,required,minimumLength=3" />
>        <binding name="displayName" value="literal:name" />
>    </component>
>
> but when the form rewinds, I get this exception:
>
> java.lang.ClassCastException: org.apache.tapestry.valid.StringValidator
> # 
> org.apache.tapestry.form.ValidatableFieldSupportImpl.validate(ValidatableFieldSupportImpl.java:89) 
>
> # 
> $ValidatableFieldSupport_106bb5cdfa5.validate($ValidatableFieldSupport_106bb5cdfa5.java) 
>
> # 
> org.apache.tapestry.form.TextField.rewindFormComponent(TextField.java:84)
> # 
> org.apache.tapestry.form.AbstractFormComponent.renderComponent(AbstractFormComponent.java:115) 
>
> [snip]
>
> That is very strange. Line 89 in ValidatableFieldSupportImpl.java says:
>
>            Validator validator = (Validator) validators.next();
>
> But how can this generate a ClassCastException for StringValidator? 
> StringValidator implements Validator as far as I know.


---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-user-help@jakarta.apache.org