From 367f381feaa581e5610864aba01dbc3fd1ef1837 Mon Sep 17 00:00:00 2001 From: Spring Builds Date: Thu, 15 Jun 2023 08:31:33 +0000 Subject: [PATCH 1/2] Next development version (v6.0.11-SNAPSHOT) --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index b08009073fc..af03a7731dc 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -version=6.0.10-SNAPSHOT +version=6.0.11-SNAPSHOT org.gradle.caching=true org.gradle.jvmargs=-Xmx2048m From 5672284f53dd9437df70b5f4bfbb4f43bbebc3d3 Mon Sep 17 00:00:00 2001 From: Sam Brannen Date: Thu, 15 Jun 2023 14:59:33 +0200 Subject: [PATCH 2/2] Remove code duplication in RootBeanDefinition --- .../factory/support/RootBeanDefinition.java | 37 ++++++++----------- 1 file changed, 15 insertions(+), 22 deletions(-) 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; } /**