| If you throw an error directly from PredefinedScopeBeanMetaDataManager such as:
@SuppressWarnings("unchecked")
@Override
public <T> BeanMetaData<T> getBeanMetaData(Class<T> beanClass) {
BeanMetaData<T> beanMetaData = (BeanMetaData<T>) beanMetaDataMap.get( beanClass.getName() );
if ( beanMetaData == null ) {
throw LOG.uninitializedBeanMetaData( beanClass );
}
return beanMetaData;
}
you end up with the following error:
javax.validation.ValidationException: HV000249: Uninitialized bean metadata for class: java.lang.String. Please register your bean class as a class to initialize when initializing your ValidatorFactory.
at org.hibernate.validator.internal.metadata.PredefinedScopeBeanMetaDataManager.getBeanMetaData(PredefinedScopeBeanMetaDataManager.java:99)
at org.hibernate.validator.internal.engine.ValueContext.getLocalExecutionContext(ValueContext.java:79)
at org.hibernate.validator.internal.engine.ValidatorImpl.validateReturnValueInContext(ValidatorImpl.java:1023)
at org.hibernate.validator.internal.engine.ValidatorImpl.validateReturnValue(ValidatorImpl.java:283)
at org.hibernate.validator.internal.engine.ValidatorImpl.validateReturnValue(ValidatorImpl.java:245)
at org.hibernate.validator.test.predefinedscope.PredefinedScopeValidatorFactoryTest.testValidation(PredefinedScopeValidatorFactoryTest.java:53)
This does not sound like something we should do. I mean what would be the bean metadata for Object[]? And if the return value is not marked with @Valid, we can consider it's not a bean. |