Browse Source

Improve DisconnectedClientHelper to better guard ClassNotFoundException

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

Closes gh-36150

Signed-off-by: Yanming Zhou <zhouyanming@gmail.com>
6.2.x
Yanming Zhou 1 week ago committed by rstoyanchev
parent
commit
05a9cc26ae
  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; @@ -36,6 +36,7 @@ import org.springframework.util.ClassUtils;
* error stacktrace at TRACE level.
*
* @author Rossen Stoyanchev
* @author Yanming Zhou
* @since 6.1
*/
public class DisconnectedClientHelper {
@ -50,16 +51,8 @@ public class DisconnectedClientHelper { @@ -50,16 +51,8 @@ public class DisconnectedClientHelper {
private static final Set<Class<?>> CLIENT_EXCEPTION_TYPES = new HashSet<>(2);
static {
try {
ClassLoader classLoader = DisconnectedClientHelper.class.getClassLoader();
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
}
registerClientExceptionType("org.springframework.web.client.RestClientException");
registerClientExceptionType("org.springframework.web.reactive.function.client.WebClientException");
}
@ -135,4 +128,14 @@ public class DisconnectedClientHelper { @@ -135,4 +128,14 @@ public class DisconnectedClientHelper {
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