Browse Source

Improve DisconnectedClientHelper to better guard ClassNotFoundException

Before this commit, WebClientException is ignored if RestClientException is not present.

Signed-off-by: Yanming Zhou <zhouyanming@gmail.com>
pull/36169/head
Yanming Zhou 3 weeks ago committed by Rossen Stoyanchev
parent
commit
a784eb0ab4
  1. 23
      spring-web/src/main/java/org/springframework/web/util/DisconnectedClientHelper.java

23
spring-web/src/main/java/org/springframework/web/util/DisconnectedClientHelper.java

@ -36,6 +36,7 @@ import org.springframework.util.ClassUtils;
* error stacktrace at TRACE level. * error stacktrace at TRACE level.
* *
* @author Rossen Stoyanchev * @author Rossen Stoyanchev
* @author Yanming Zhou
* @since 6.1 * @since 6.1
*/ */
public class DisconnectedClientHelper { public class DisconnectedClientHelper {
@ -50,16 +51,8 @@ public class DisconnectedClientHelper {
private static final Set<Class<?>> CLIENT_EXCEPTION_TYPES = new HashSet<>(2); private static final Set<Class<?>> CLIENT_EXCEPTION_TYPES = new HashSet<>(2);
static { static {
try { registerClientExceptionType("org.springframework.web.client.RestClientException");
ClassLoader classLoader = DisconnectedClientHelper.class.getClassLoader(); registerClientExceptionType("org.springframework.web.reactive.function.client.WebClientException");
CLIENT_EXCEPTION_TYPES.add(ClassUtils.forName(
"org.springframework.web.client.RestClientException", classLoader));
CLIENT_EXCEPTION_TYPES.add(ClassUtils.forName(
"org.springframework.web.reactive.function.client.WebClientException", classLoader));
}
catch (ClassNotFoundException ex) {
// ignore
}
} }
@ -135,4 +128,14 @@ public class DisconnectedClientHelper {
return false; return false;
} }
private static void registerClientExceptionType(String type) {
try {
ClassLoader classLoader = DisconnectedClientHelper.class.getClassLoader();
CLIENT_EXCEPTION_TYPES.add(ClassUtils.forName(type, classLoader));
}
catch (ClassNotFoundException ex) {
// ignore
}
}
} }

Loading…
Cancel
Save