From 9911d91f088a7e9e36ff4a9fbeec0a303c0dcea2 Mon Sep 17 00:00:00 2001 From: Sam Brannen Date: Mon, 21 Aug 2023 15:16:49 +0200 Subject: [PATCH] Add implementation note See gh-31083 --- .../support/DynamicPropertiesContextCustomizerFactory.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/spring-test/src/main/java/org/springframework/test/context/support/DynamicPropertiesContextCustomizerFactory.java b/spring-test/src/main/java/org/springframework/test/context/support/DynamicPropertiesContextCustomizerFactory.java index 1f8e531a76d..7f9e3da7798 100644 --- a/spring-test/src/main/java/org/springframework/test/context/support/DynamicPropertiesContextCustomizerFactory.java +++ b/spring-test/src/main/java/org/springframework/test/context/support/DynamicPropertiesContextCustomizerFactory.java @@ -55,6 +55,11 @@ class DynamicPropertiesContextCustomizerFactory implements ContextCustomizerFact } private void findMethods(Class testClass, Set methods) { + // Beginning with Java 16, inner classes may contain static members. + // We therefore need to search for @DynamicPropertySource methods in the + // current class after searching enclosing classes so that a local + // @DynamicPropertySource method can override properties registered in + // an enclosing class. if (TestContextAnnotationUtils.searchEnclosingClass(testClass)) { findMethods(testClass.getEnclosingClass(), methods); }