From c811428512ffd04d41e558dbbc672382079ced2c Mon Sep 17 00:00:00 2001 From: Sam Brannen Date: Fri, 7 Apr 2023 13:58:49 +0200 Subject: [PATCH] Ignore nonexistent default-destroy-method in XML config Prior to this commit, DisposableBeanAdapter attempted to invoke a configured default-destroy-method on every bean, including beans that do not declare the named destroy method, resulting in a NullPointerException being thrown and logged at WARN level. This commit addresses this by effectively ignoring any nonexistent destroy method. Closes gh-30301 --- .../beans/factory/support/DisposableBeanAdapter.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/DisposableBeanAdapter.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/DisposableBeanAdapter.java index 4b02c869cd..fd5459b80e 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/DisposableBeanAdapter.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/DisposableBeanAdapter.java @@ -236,7 +236,9 @@ class DisposableBeanAdapter implements DisposableBean, Runnable, Serializable { } else if (this.destroyMethods != null) { for (Method destroyMethod : this.destroyMethods) { - invokeCustomDestroyMethod(destroyMethod); + if (destroyMethod != null) { + invokeCustomDestroyMethod(destroyMethod); + } } } else if (this.destroyMethodNames != null) {