From b0ac8df13e53049e5dee22f7598b9a05f9ce45bb Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Tue, 27 Jan 2026 20:55:01 +0100 Subject: [PATCH] Consistent delegation to target ValidatorFactory --- .../LocalValidatorFactoryBean.java | 30 +++++++++---------- .../MessageSourceResourceBundleLocator.java | 4 ++- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/spring-context/src/main/java/org/springframework/validation/beanvalidation/LocalValidatorFactoryBean.java b/spring-context/src/main/java/org/springframework/validation/beanvalidation/LocalValidatorFactoryBean.java index 9c5a90cd87d..34e1b78bc04 100644 --- a/spring-context/src/main/java/org/springframework/validation/beanvalidation/LocalValidatorFactoryBean.java +++ b/spring-context/src/main/java/org/springframework/validation/beanvalidation/LocalValidatorFactoryBean.java @@ -261,7 +261,7 @@ public class LocalValidatorFactoryBean extends SpringValidatorAdapter configuration = bootstrap.configure(); } - // Try Hibernate Validator 5.2's externalClassLoader(ClassLoader) method + // Try Hibernate Validator's externalClassLoader(ClassLoader) method if (this.applicationContext != null) { try { Method eclMethod = configuration.getClass().getMethod("externalClassLoader", ClassLoader.class); @@ -269,7 +269,7 @@ public class LocalValidatorFactoryBean extends SpringValidatorAdapter ReflectionUtils.invokeMethod(eclMethod, configuration, this.applicationContext.getClassLoader()); } catch (NoSuchMethodException ignored) { - // no Hibernate Validator 5.2+ or similar provider + // no Hibernate Validator or similar provider } } @@ -370,47 +370,45 @@ public class LocalValidatorFactoryBean extends SpringValidatorAdapter protected void postProcessConfiguration(Configuration configuration) { } + private ValidatorFactory obtainValidatorFactory() { + Assert.state(this.validatorFactory != null, "No target ValidatorFactory set"); + return this.validatorFactory; + } + @Override public Validator getValidator() { - Assert.state(this.validatorFactory != null, "No target ValidatorFactory set"); - return this.validatorFactory.getValidator(); + return obtainValidatorFactory().getValidator(); } @Override public ValidatorContext usingContext() { - Assert.state(this.validatorFactory != null, "No target ValidatorFactory set"); - return this.validatorFactory.usingContext(); + return obtainValidatorFactory().usingContext(); } @Override public MessageInterpolator getMessageInterpolator() { - Assert.state(this.validatorFactory != null, "No target ValidatorFactory set"); - return this.validatorFactory.getMessageInterpolator(); + return obtainValidatorFactory().getMessageInterpolator(); } @Override public TraversableResolver getTraversableResolver() { - Assert.state(this.validatorFactory != null, "No target ValidatorFactory set"); - return this.validatorFactory.getTraversableResolver(); + return obtainValidatorFactory().getTraversableResolver(); } @Override public ConstraintValidatorFactory getConstraintValidatorFactory() { - Assert.state(this.validatorFactory != null, "No target ValidatorFactory set"); - return this.validatorFactory.getConstraintValidatorFactory(); + return obtainValidatorFactory().getConstraintValidatorFactory(); } @Override public ParameterNameProvider getParameterNameProvider() { - Assert.state(this.validatorFactory != null, "No target ValidatorFactory set"); - return this.validatorFactory.getParameterNameProvider(); + return obtainValidatorFactory().getParameterNameProvider(); } @Override public ClockProvider getClockProvider() { - Assert.state(this.validatorFactory != null, "No target ValidatorFactory set"); - return this.validatorFactory.getClockProvider(); + return obtainValidatorFactory().getClockProvider(); } @Override diff --git a/spring-context/src/main/java/org/springframework/validation/beanvalidation/MessageSourceResourceBundleLocator.java b/spring-context/src/main/java/org/springframework/validation/beanvalidation/MessageSourceResourceBundleLocator.java index 8e34503d301..13041c45dac 100644 --- a/spring-context/src/main/java/org/springframework/validation/beanvalidation/MessageSourceResourceBundleLocator.java +++ b/spring-context/src/main/java/org/springframework/validation/beanvalidation/MessageSourceResourceBundleLocator.java @@ -26,7 +26,7 @@ import org.springframework.context.support.MessageSourceResourceBundle; import org.springframework.util.Assert; /** - * Implementation of Hibernate Validator 4.3/5.x's {@link ResourceBundleLocator} interface, + * Implementation of Hibernate Validator's {@link ResourceBundleLocator} interface, * exposing a Spring {@link MessageSource} as localized {@link MessageSourceResourceBundle}. * * @author Juergen Hoeller @@ -39,6 +39,7 @@ public class MessageSourceResourceBundleLocator implements ResourceBundleLocator private final MessageSource messageSource; + /** * Build a MessageSourceResourceBundleLocator for the given MessageSource. * @param messageSource the Spring MessageSource to wrap @@ -48,6 +49,7 @@ public class MessageSourceResourceBundleLocator implements ResourceBundleLocator this.messageSource = messageSource; } + @Override public ResourceBundle getResourceBundle(Locale locale) { return new MessageSourceResourceBundle(this.messageSource, locale);