If I remember correctly, PrettyFaces will first try to convert the query parameter value into the required target type before calling the validator. As something like 213gsdfgsd cannot be converted to an integer, the validation fails before your validator is called.
Do you play Magic?
Get TopDecked MTG, the #1 Magic App, built by players, for players. Free to use, forever.