Hi,
As said Hardy, an example of code will be useful :)
I've made an example with a custom constraint and it works as expected. I've tried to reproduce your behavior and I've seen that, if the error message defined in the custom constraint is a "constant" (look at the following example), only one error is returned. But if the error message is parametrized like "{value} is invalid" all errors are returned.
Code:
public @interface FooConstraint {
String value();
String message() default "is invalid";
//...
}
--
Kevin