Ok, I reverted the change, but now it is registered from src/main/conf/META-INF/standard-faces-config-base.xml, so I'm happy with that.
But checking the spec javadoc something is not right. See jsf 2.0 spec section 3.5.3 For example:
"....Any configuration resource that declares a list of default validators overrides any list provided in a previously processed
configuration resource. If an empty <default-validators/> element is found in a configuration resource, the list
of default validators must be cleared...."
But the code in DigesterFacesConfigDispenserImpl do this:
There is no check for that condition. We are not saving the difference between no <default-validators/> and empty <default-validators/>.
Now, this paragraph is not clear:
"....The runtime must guarantee that the validator id javax.faces.Bean is included in the result from a call to
Application.getDefaultValidatorInfo() (see Section 18.104.22.168 "Default Validator Ids"), regardless of any
configuration found in the application configuration resources or via the @FacesValidator annotation..."
That means, no matter what happen with defaultValidatorIds, javax.faces.Bean should be included. If defaultValidatorIds is empty, but javax.faces.validator.DISABLE_DEFAULT_BEAN_VALIDATOR is false, javax.faces.Bean should be included.
Jakob, could you take a look at this one?