From 99bd1a153363471bcaddeb086ca5cc528a3d555c Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Wed, 13 May 2020 23:35:17 +0200 Subject: [PATCH] Defensive null check against name parameter in AutowireMode#from See gh-24285 --- .../test/context/TestConstructor.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/spring-test/src/main/java/org/springframework/test/context/TestConstructor.java b/spring-test/src/main/java/org/springframework/test/context/TestConstructor.java index c850306724..3956f6f585 100644 --- a/spring-test/src/main/java/org/springframework/test/context/TestConstructor.java +++ b/spring-test/src/main/java/org/springframework/test/context/TestConstructor.java @@ -133,12 +133,9 @@ public @interface TestConstructor { ANNOTATED; - private static final Log logger = LogFactory.getLog(AutowireMode.class); - /** * Get the {@code AutowireMode} enum constant with the supplied name, * ignoring case. - * * @param name the name of the enum constant to retrieve * @return the corresponding enum constant or {@code null} if not found * @since 5.3 @@ -146,16 +143,19 @@ public @interface TestConstructor { */ @Nullable public static AutowireMode from(@Nullable String name) { + if (name == null) { + return null; + } try { return AutowireMode.valueOf(name.trim().toUpperCase()); } - catch (Exception ex) { + catch (IllegalArgumentException ex) { + Log logger = LogFactory.getLog(AutowireMode.class); if (logger.isDebugEnabled()) { - logger.debug(String.format("Failed to parse autowire mode from '%s': %s", name, - ex.getMessage())); + logger.debug(String.format("Failed to parse autowire mode from '%s': %s", name, ex.getMessage())); } + return null; } - return null; } }