diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/RootBeanDefinition.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/RootBeanDefinition.java index 99eb8f50204..bbbf6cce509 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/RootBeanDefinition.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/RootBeanDefinition.java @@ -541,23 +541,12 @@ public class RootBeanDefinition extends AbstractBeanDefinition { if (isExternallyManagedInitMethod(initMethod)) { return true; } - if (this.externallyManagedInitMethods != null) { - for (String candidate : this.externallyManagedInitMethods) { - int indexOfDot = candidate.lastIndexOf('.'); - if (indexOfDot >= 0) { - String methodName = candidate.substring(indexOfDot + 1); - if (methodName.equals(initMethod)) { - return true; - } - } - } - } - return false; + return hasAnyExternallyManagedMethod(this.externallyManagedInitMethods, initMethod); } } /** - * Return all externally managed initialization methods (as an immutable Set). + * Get all externally managed initialization methods (as an immutable Set). *

See {@link #registerExternallyManagedInitMethod} for details * regarding the format for the initialization methods in the returned set. * @since 5.3.11 @@ -627,19 +616,23 @@ public class RootBeanDefinition extends AbstractBeanDefinition { if (isExternallyManagedDestroyMethod(destroyMethod)) { return true; } - if (this.externallyManagedDestroyMethods != null) { - for (String candidate : this.externallyManagedDestroyMethods) { - int indexOfDot = candidate.lastIndexOf('.'); - if (indexOfDot >= 0) { - String methodName = candidate.substring(indexOfDot + 1); - if (methodName.equals(destroyMethod)) { - return true; - } + return hasAnyExternallyManagedMethod(this.externallyManagedDestroyMethods, destroyMethod); + } + } + + private static boolean hasAnyExternallyManagedMethod(Set candidates, String methodName) { + if (candidates != null) { + for (String candidate : candidates) { + int indexOfDot = candidate.lastIndexOf('.'); + if (indexOfDot > 0) { + String candidateMethodName = candidate.substring(indexOfDot + 1); + if (candidateMethodName.equals(methodName)) { + return true; } } } - return false; } + return false; } /**