Skip to content

Commit 141df52

Browse files
nstdiorstoyanchev
authored andcommitted
Prevent NoClassDefFoundError when Jetty Reactive HttpClient not on classpath
Closes gh-35608 Signed-off-by: Edgar Asatryan <nstdio@gmail.com>
1 parent dcfe33f commit 141df52

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

spring-test/src/main/java/org/springframework/test/web/reactive/server/DefaultWebTestClientBuilder.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,9 @@ class DefaultWebTestClientBuilder implements WebTestClient.Builder {
6767
ClassLoader loader = DefaultWebTestClientBuilder.class.getClassLoader();
6868
reactorNettyClientPresent = ClassUtils.isPresent("reactor.netty.http.client.HttpClient", loader);
6969
reactorNetty2ClientPresent = ClassUtils.isPresent("reactor.netty5.http.client.HttpClient", loader);
70-
jettyClientPresent = ClassUtils.isPresent("org.eclipse.jetty.client.HttpClient", loader);
70+
jettyClientPresent =
71+
ClassUtils.isPresent("org.eclipse.jetty.client.HttpClient", loader) &&
72+
ClassUtils.isPresent("org.eclipse.jetty.reactive.client.ReactiveRequest", loader);
7173
httpComponentsClientPresent =
7274
ClassUtils.isPresent("org.apache.hc.client5.http.impl.async.CloseableHttpAsyncClient", loader) &&
7375
ClassUtils.isPresent("org.apache.hc.core5.reactive.ReactiveDataConsumer", loader);

spring-webflux/src/main/java/org/springframework/web/reactive/function/client/DefaultWebClientBuilder.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,9 @@ final class DefaultWebClientBuilder implements WebClient.Builder {
6767
ClassLoader loader = DefaultWebClientBuilder.class.getClassLoader();
6868
reactorNettyClientPresent = ClassUtils.isPresent("reactor.netty.http.client.HttpClient", loader);
6969
reactorNetty2ClientPresent = ClassUtils.isPresent("reactor.netty5.http.client.HttpClient", loader);
70-
jettyClientPresent = ClassUtils.isPresent("org.eclipse.jetty.client.HttpClient", loader);
70+
jettyClientPresent =
71+
ClassUtils.isPresent("org.eclipse.jetty.client.HttpClient", loader) &&
72+
ClassUtils.isPresent("org.eclipse.jetty.reactive.client.ReactiveRequest", loader);
7173
httpComponentsClientPresent =
7274
ClassUtils.isPresent("org.apache.hc.client5.http.impl.async.CloseableHttpAsyncClient", loader) &&
7375
ClassUtils.isPresent("org.apache.hc.core5.reactive.ReactiveDataConsumer", loader);

0 commit comments

Comments
 (0)