Add nullability annotations to module/spring-boot-validation
See gh-46587
This commit is contained in:
parent
e327eb7b45
commit
9a485959c4
|
|
@ -16,6 +16,8 @@
|
|||
|
||||
package org.springframework.boot.validation.autoconfigure;
|
||||
|
||||
import org.jspecify.annotations.Nullable;
|
||||
|
||||
import org.springframework.beans.BeansException;
|
||||
import org.springframework.beans.factory.BeanFactory;
|
||||
import org.springframework.beans.factory.BeanFactoryAware;
|
||||
|
|
@ -24,6 +26,7 @@ import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
|
|||
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
|
||||
import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
|
||||
import org.springframework.core.type.AnnotationMetadata;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.validation.Validator;
|
||||
import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean;
|
||||
|
||||
|
|
@ -46,7 +49,7 @@ class PrimaryDefaultValidatorPostProcessor implements ImportBeanDefinitionRegist
|
|||
*/
|
||||
private static final String VALIDATOR_BEAN_NAME = "defaultValidator";
|
||||
|
||||
private ConfigurableListableBeanFactory beanFactory;
|
||||
private @Nullable ConfigurableListableBeanFactory beanFactory;
|
||||
|
||||
@Override
|
||||
public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
|
||||
|
|
@ -63,7 +66,7 @@ class PrimaryDefaultValidatorPostProcessor implements ImportBeanDefinitionRegist
|
|||
}
|
||||
}
|
||||
|
||||
private BeanDefinition getAutoConfiguredValidator(BeanDefinitionRegistry registry) {
|
||||
private @Nullable BeanDefinition getAutoConfiguredValidator(BeanDefinitionRegistry registry) {
|
||||
if (registry.containsBeanDefinition(VALIDATOR_BEAN_NAME)) {
|
||||
BeanDefinition definition = registry.getBeanDefinition(VALIDATOR_BEAN_NAME);
|
||||
if (definition.getRole() == BeanDefinition.ROLE_INFRASTRUCTURE
|
||||
|
|
@ -79,6 +82,7 @@ class PrimaryDefaultValidatorPostProcessor implements ImportBeanDefinitionRegist
|
|||
}
|
||||
|
||||
private boolean hasPrimarySpringValidator() {
|
||||
Assert.state(this.beanFactory != null, "'beanFactory' must not be null");
|
||||
String[] validatorBeans = this.beanFactory.getBeanNamesForType(Validator.class, false, false);
|
||||
for (String validatorBean : validatorBeans) {
|
||||
BeanDefinition definition = this.beanFactory.getBeanDefinition(validatorBean);
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@
|
|||
package org.springframework.boot.validation.autoconfigure;
|
||||
|
||||
import jakarta.validation.ValidationException;
|
||||
import org.jspecify.annotations.Nullable;
|
||||
|
||||
import org.springframework.beans.BeansException;
|
||||
import org.springframework.beans.factory.DisposableBean;
|
||||
|
|
@ -26,6 +27,7 @@ import org.springframework.boot.validation.MessageInterpolatorFactory;
|
|||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.ApplicationContextAware;
|
||||
import org.springframework.context.MessageSource;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.validation.Errors;
|
||||
import org.springframework.validation.SmartValidator;
|
||||
import org.springframework.validation.Validator;
|
||||
|
|
@ -104,7 +106,7 @@ public class ValidatorAdapter implements SmartValidator, ApplicationContextAware
|
|||
* @param validator an existing validator to use or {@code null}
|
||||
* @return the validator to use
|
||||
*/
|
||||
public static Validator get(ApplicationContext applicationContext, Validator validator) {
|
||||
public static Validator get(ApplicationContext applicationContext, @Nullable Validator validator) {
|
||||
if (validator != null) {
|
||||
return wrap(validator, false);
|
||||
}
|
||||
|
|
@ -119,7 +121,7 @@ public class ValidatorAdapter implements SmartValidator, ApplicationContextAware
|
|||
return create(applicationContext);
|
||||
}
|
||||
|
||||
private static Validator getExisting(ApplicationContext applicationContext) {
|
||||
private static @Nullable Validator getExisting(ApplicationContext applicationContext) {
|
||||
try {
|
||||
jakarta.validation.Validator validatorBean = applicationContext.getBean(jakarta.validation.Validator.class);
|
||||
if (validatorBean instanceof Validator validator) {
|
||||
|
|
@ -156,7 +158,8 @@ public class ValidatorAdapter implements SmartValidator, ApplicationContextAware
|
|||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public <T> T unwrap(Class<T> type) {
|
||||
public <T> @Nullable T unwrap(@Nullable Class<T> type) {
|
||||
Assert.state(type != null, "'type' must not be null");
|
||||
if (type.isInstance(this.target)) {
|
||||
return (T) this.target;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,4 +17,7 @@
|
|||
/**
|
||||
* Auto-configuration for (JSR-303) Validation.
|
||||
*/
|
||||
@NullMarked
|
||||
package org.springframework.boot.validation.autoconfigure;
|
||||
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
|
|
|||
Loading…
Reference in New Issue