Browse Source

Add nullability annotations to module/spring-boot-validation

See gh-46587
pull/47390/head
Moritz Halbritter 4 months ago
parent
commit
9a485959c4
  1. 8
      module/spring-boot-validation/src/main/java/org/springframework/boot/validation/autoconfigure/PrimaryDefaultValidatorPostProcessor.java
  2. 9
      module/spring-boot-validation/src/main/java/org/springframework/boot/validation/autoconfigure/ValidatorAdapter.java
  3. 3
      module/spring-boot-validation/src/main/java/org/springframework/boot/validation/autoconfigure/package-info.java

8
module/spring-boot-validation/src/main/java/org/springframework/boot/validation/autoconfigure/PrimaryDefaultValidatorPostProcessor.java

@ -16,6 +16,8 @@ @@ -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; @@ -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 @@ -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 @@ -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 @@ -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);

9
module/spring-boot-validation/src/main/java/org/springframework/boot/validation/autoconfigure/ValidatorAdapter.java

@ -17,6 +17,7 @@ @@ -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; @@ -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 @@ -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 @@ -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 @@ -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;
}

3
module/spring-boot-validation/src/main/java/org/springframework/boot/validation/autoconfigure/package-info.java

@ -17,4 +17,7 @@ @@ -17,4 +17,7 @@
/**
* Auto-configuration for (JSR-303) Validation.
*/
@NullMarked
package org.springframework.boot.validation.autoconfigure;
import org.jspecify.annotations.NullMarked;

Loading…
Cancel
Save