diff --git a/module/spring-boot-http-client/build.gradle b/module/spring-boot-http-client/build.gradle index 2c24bc77d21..6e9f356449c 100644 --- a/module/spring-boot-http-client/build.gradle +++ b/module/spring-boot-http-client/build.gradle @@ -44,5 +44,11 @@ dependencies { testImplementation("org.springframework:spring-webflux") testImplementation("io.micrometer:micrometer-observation-test") + testCompileOnly("com.google.code.findbugs:jsr305:3.0.2") + testRuntimeOnly("ch.qos.logback:logback-classic") } + +tasks.named("compileTestJava") { + options.nullability.checking = "tests" +} diff --git a/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/AbstractClientHttpRequestFactoryBuilderTests.java b/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/AbstractClientHttpRequestFactoryBuilderTests.java index 0312620c452..9495fab3049 100644 --- a/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/AbstractClientHttpRequestFactoryBuilderTests.java +++ b/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/AbstractClientHttpRequestFactoryBuilderTests.java @@ -30,6 +30,7 @@ import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; +import org.jspecify.annotations.Nullable; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; @@ -168,7 +169,7 @@ abstract class AbstractClientHttpRequestFactoryBuilderTests expectedStatusForMethod) throws URISyntaxException, IOException { HttpStatus expectedStatus = expectedStatusForMethod.apply(httpMethod); TomcatServletWebServerFactory webServerFactory = new TomcatServletWebServerFactory(0); diff --git a/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/ClientHttpRequestFactoryBuilderTests.java b/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/ClientHttpRequestFactoryBuilderTests.java index dc8468b551a..4b9e3698326 100644 --- a/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/ClientHttpRequestFactoryBuilderTests.java +++ b/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/ClientHttpRequestFactoryBuilderTests.java @@ -129,6 +129,7 @@ class ClientHttpRequestFactoryBuilderTests { } @Test + @SuppressWarnings("NullAway") // Test null check void ofWithSupplierWhenSupplierIsNullThrowsException() { assertThatIllegalArgumentException() .isThrownBy(() -> ClientHttpRequestFactoryBuilder.of((Supplier) null)) diff --git a/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/HttpComponentsClientHttpRequestFactoryBuilderTests.java b/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/HttpComponentsClientHttpRequestFactoryBuilderTests.java index fe95692165b..026d5a3c405 100644 --- a/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/HttpComponentsClientHttpRequestFactoryBuilderTests.java +++ b/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/HttpComponentsClientHttpRequestFactoryBuilderTests.java @@ -103,7 +103,9 @@ class HttpComponentsClientHttpRequestFactoryBuilderTests @Override protected long connectTimeout(HttpComponentsClientHttpRequestFactory requestFactory) { - return (long) ReflectionTestUtils.getField(requestFactory, "connectTimeout"); + Object field = ReflectionTestUtils.getField(requestFactory, "connectTimeout"); + assertThat(field).isNotNull(); + return (long) field; } @Override @@ -111,9 +113,11 @@ class HttpComponentsClientHttpRequestFactoryBuilderTests protected long readTimeout(HttpComponentsClientHttpRequestFactory requestFactory) { HttpClient httpClient = requestFactory.getHttpClient(); Object connectionManager = ReflectionTestUtils.getField(httpClient, "connManager"); - SocketConfig socketConfig = ((Resolver) ReflectionTestUtils.getField(connectionManager, - "socketConfigResolver")) - .resolve(null); + assertThat(connectionManager).isNotNull(); + Resolver socketConfigResolver = (Resolver) ReflectionTestUtils + .getField(connectionManager, "socketConfigResolver"); + assertThat(socketConfigResolver).isNotNull(); + SocketConfig socketConfig = socketConfigResolver.resolve(null); return socketConfig.getSoTimeout().toMilliseconds(); } diff --git a/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/JdkClientHttpRequestFactoryBuilderTests.java b/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/JdkClientHttpRequestFactoryBuilderTests.java index df4621a185c..41c7b9f7720 100644 --- a/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/JdkClientHttpRequestFactoryBuilderTests.java +++ b/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/JdkClientHttpRequestFactoryBuilderTests.java @@ -57,6 +57,7 @@ class JdkClientHttpRequestFactoryBuilderTests Executor executor = new SimpleAsyncTaskExecutor(); JdkClientHttpRequestFactory factory = ClientHttpRequestFactoryBuilder.jdk().withExecutor(executor).build(); HttpClient httpClient = (HttpClient) ReflectionTestUtils.getField(factory, "httpClient"); + assertThat(httpClient).isNotNull(); assertThat(httpClient.executor()).containsSame(executor); } @@ -70,12 +71,14 @@ class JdkClientHttpRequestFactoryBuilderTests @Override protected long connectTimeout(JdkClientHttpRequestFactory requestFactory) { HttpClient httpClient = (HttpClient) ReflectionTestUtils.getField(requestFactory, "httpClient"); + assertThat(httpClient).isNotNull(); return httpClient.connectTimeout().get().toMillis(); } @Override protected long readTimeout(JdkClientHttpRequestFactory requestFactory) { Duration readTimeout = (Duration) ReflectionTestUtils.getField(requestFactory, "readTimeout"); + assertThat(readTimeout).isNotNull(); return readTimeout.toMillis(); } diff --git a/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/JettyClientHttpRequestFactoryBuilderTests.java b/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/JettyClientHttpRequestFactoryBuilderTests.java index 3c346c7763b..bc29518ef7e 100644 --- a/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/JettyClientHttpRequestFactoryBuilderTests.java +++ b/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/JettyClientHttpRequestFactoryBuilderTests.java @@ -77,12 +77,16 @@ class JettyClientHttpRequestFactoryBuilderTests @Override protected long connectTimeout(JettyClientHttpRequestFactory requestFactory) { - return ((HttpClient) ReflectionTestUtils.getField(requestFactory, "httpClient")).getConnectTimeout(); + HttpClient httpClient = (HttpClient) ReflectionTestUtils.getField(requestFactory, "httpClient"); + assertThat(httpClient).isNotNull(); + return httpClient.getConnectTimeout(); } @Override protected long readTimeout(JettyClientHttpRequestFactory requestFactory) { - return (long) ReflectionTestUtils.getField(requestFactory, "readTimeout"); + Object field = ReflectionTestUtils.getField(requestFactory, "readTimeout"); + assertThat(field).isNotNull(); + return (long) field; } static class TestHttpClientTransport extends HttpClientTransportOverHTTP { diff --git a/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/ReactorClientHttpRequestFactoryBuilderTests.java b/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/ReactorClientHttpRequestFactoryBuilderTests.java index a801cc279e2..6ae0e4676d6 100644 --- a/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/ReactorClientHttpRequestFactoryBuilderTests.java +++ b/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/ReactorClientHttpRequestFactoryBuilderTests.java @@ -100,14 +100,18 @@ class ReactorClientHttpRequestFactoryBuilderTests @Override protected long connectTimeout(ReactorClientHttpRequestFactory requestFactory) { - return (int) ((HttpClient) ReflectionTestUtils.getField(requestFactory, "httpClient")).configuration() - .options() - .get(ChannelOption.CONNECT_TIMEOUT_MILLIS); + HttpClient httpClient = (HttpClient) ReflectionTestUtils.getField(requestFactory, "httpClient"); + assertThat(httpClient).isNotNull(); + Object connectTimeout = httpClient.configuration().options().get(ChannelOption.CONNECT_TIMEOUT_MILLIS); + assertThat(connectTimeout).isNotNull(); + return (int) connectTimeout; } @Override protected long readTimeout(ReactorClientHttpRequestFactory requestFactory) { - return ((Duration) ReflectionTestUtils.getField(requestFactory, "readTimeout")).toMillis(); + Duration readTimeout = (Duration) ReflectionTestUtils.getField(requestFactory, "readTimeout"); + assertThat(readTimeout).isNotNull(); + return readTimeout.toMillis(); } } diff --git a/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/ReflectiveComponentsClientHttpRequestFactoryBuilderTests.java b/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/ReflectiveComponentsClientHttpRequestFactoryBuilderTests.java index fc2afabf867..1b847c2f5b7 100644 --- a/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/ReflectiveComponentsClientHttpRequestFactoryBuilderTests.java +++ b/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/ReflectiveComponentsClientHttpRequestFactoryBuilderTests.java @@ -20,6 +20,7 @@ import java.net.URI; import java.time.Duration; import org.eclipse.jetty.client.HttpClient; +import org.jspecify.annotations.Nullable; import org.junit.jupiter.api.Test; import org.springframework.http.HttpMethod; @@ -179,12 +180,16 @@ class ReflectiveComponentsClientHttpRequestFactoryBuilderTests @Override protected long connectTimeout(ClientHttpRequestFactory requestFactory) { - return ((HttpClient) ReflectionTestUtils.getField(requestFactory, "httpClient")).getConnectTimeout(); + HttpClient httpClient = (HttpClient) ReflectionTestUtils.getField(requestFactory, "httpClient"); + assertThat(httpClient).isNotNull(); + return httpClient.getConnectTimeout(); } @Override protected long readTimeout(ClientHttpRequestFactory requestFactory) { - return (long) ReflectionTestUtils.getField(requestFactory, "readTimeout"); + Object field = ReflectionTestUtils.getField(requestFactory, "readTimeout"); + assertThat(field).isNotNull(); + return (long) field; } public static class TestClientHttpRequestFactory implements ClientHttpRequestFactory { @@ -244,9 +249,9 @@ class ReflectiveComponentsClientHttpRequestFactoryBuilderTests private int connectTimeout; - private Duration readTimeoutDuration; + private @Nullable Duration readTimeoutDuration; - private Duration connectTimeoutDuration; + private @Nullable Duration connectTimeoutDuration; @Override public ClientHttpRequest createRequest(URI uri, HttpMethod httpMethod) { @@ -261,11 +266,11 @@ class ReflectiveComponentsClientHttpRequestFactoryBuilderTests this.readTimeout = timeout; } - public void setConnectTimeout(Duration timeout) { + public void setConnectTimeout(@Nullable Duration timeout) { this.connectTimeoutDuration = timeout; } - public void setReadTimeout(Duration timeout) { + public void setReadTimeout(@Nullable Duration timeout) { this.readTimeoutDuration = timeout; } diff --git a/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/SimpleClientHttpRequestFactoryBuilderTests.java b/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/SimpleClientHttpRequestFactoryBuilderTests.java index a9c952ffef2..1b134981adf 100644 --- a/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/SimpleClientHttpRequestFactoryBuilderTests.java +++ b/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/SimpleClientHttpRequestFactoryBuilderTests.java @@ -24,6 +24,7 @@ import org.springframework.http.HttpStatus; import org.springframework.http.client.SimpleClientHttpRequestFactory; import org.springframework.test.util.ReflectionTestUtils; +import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatIllegalStateException; /** @@ -41,12 +42,16 @@ class SimpleClientHttpRequestFactoryBuilderTests @Override protected long connectTimeout(SimpleClientHttpRequestFactory requestFactory) { - return (int) ReflectionTestUtils.getField(requestFactory, "connectTimeout"); + Object field = ReflectionTestUtils.getField(requestFactory, "connectTimeout"); + assertThat(field).isNotNull(); + return (int) field; } @Override protected long readTimeout(SimpleClientHttpRequestFactory requestFactory) { - return (int) ReflectionTestUtils.getField(requestFactory, "readTimeout"); + Object field = ReflectionTestUtils.getField(requestFactory, "readTimeout"); + assertThat(field).isNotNull(); + return (int) field; } @Override diff --git a/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/autoconfigure/HttpClientAutoConfigurationTests.java b/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/autoconfigure/HttpClientAutoConfigurationTests.java index 9caed31996d..63955e5e21c 100644 --- a/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/autoconfigure/HttpClientAutoConfigurationTests.java +++ b/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/autoconfigure/HttpClientAutoConfigurationTests.java @@ -35,6 +35,7 @@ import org.springframework.boot.http.client.JdkClientHttpRequestFactoryBuilder; import org.springframework.boot.http.client.JettyClientHttpRequestFactoryBuilder; import org.springframework.boot.http.client.ReactorClientHttpRequestFactoryBuilder; import org.springframework.boot.http.client.SimpleClientHttpRequestFactoryBuilder; +import org.springframework.boot.ssl.SslBundle; import org.springframework.boot.test.context.FilteredClassLoader; import org.springframework.boot.test.context.runner.ApplicationContextRunner; import org.springframework.boot.test.context.runner.ReactiveWebApplicationContextRunner; @@ -81,7 +82,9 @@ class HttpClientAutoConfigurationTests { assertThat(settings.redirects()).isEqualTo(HttpRedirects.DONT_FOLLOW); assertThat(settings.connectTimeout()).isEqualTo(Duration.ofSeconds(10)); assertThat(settings.readTimeout()).isEqualTo(Duration.ofSeconds(20)); - assertThat(settings.sslBundle().getKey().getAlias()).isEqualTo("alias1"); + SslBundle sslBundle = settings.sslBundle(); + assertThat(sslBundle).isNotNull(); + assertThat(sslBundle.getKey().getAlias()).isEqualTo("alias1"); }); } @@ -95,7 +98,9 @@ class HttpClientAutoConfigurationTests { assertThat(settings.redirects()).isEqualTo(HttpRedirects.DONT_FOLLOW); assertThat(settings.connectTimeout()).isEqualTo(Duration.ofSeconds(10)); assertThat(settings.readTimeout()).isEqualTo(Duration.ofSeconds(20)); - assertThat(settings.sslBundle().getKey().getAlias()).isEqualTo("alias1"); + SslBundle sslBundle = settings.sslBundle(); + assertThat(sslBundle).isNotNull(); + assertThat(sslBundle.getKey().getAlias()).isEqualTo("alias1"); }); } @@ -158,6 +163,7 @@ class HttpClientAutoConfigurationTests { .run((context) -> { ClientHttpRequestFactory factory = context.getBean(ClientHttpRequestFactoryBuilder.class).build(); HttpClient httpClient = (HttpClient) ReflectionTestUtils.getField(factory, "httpClient"); + assertThat(httpClient).isNotNull(); assertThat(httpClient.executor()).containsInstanceOf(VirtualThreadTaskExecutor.class); }); } diff --git a/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/autoconfigure/PropertiesApiVersionInserterTests.java b/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/autoconfigure/PropertiesApiVersionInserterTests.java index a57aeace1fe..cfb8ea6b706 100644 --- a/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/autoconfigure/PropertiesApiVersionInserterTests.java +++ b/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/autoconfigure/PropertiesApiVersionInserterTests.java @@ -49,6 +49,7 @@ class PropertiesApiVersionInserterTests { @Test void getWhenNoPropertiesAndDelegateUsesDelegate() throws Exception { ApiVersionInserter inserter = PropertiesApiVersionInserter.get(ApiVersionInserter.useQueryParam("v"), null); + assertThat(inserter).isNotNull(); URI uri = new URI("https://example.com"); assertThat(inserter.insertVersion("123", uri)).hasToString("https://example.com?v=123"); } @@ -63,13 +64,16 @@ class PropertiesApiVersionInserterTests { properties2.getInsert().setPathSegment(1); properties2.getInsert().setMediaTypeParameter("mtp"); ApiVersionInserter inserter = PropertiesApiVersionInserter.get(null, null, properties1, properties2); + assertThat(inserter).isNotNull(); URI uri = new URI("https://example.com/foo/bar"); assertThat(inserter.insertVersion("123", uri)).hasToString("https://example.com/foo/123/bar?v1=123&v2=123"); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); inserter.insertVersion("123", headers); assertThat(headers.get("x-test")).containsExactly("123"); - assertThat(headers.getContentType().getParameters()).containsEntry("mtp", "123"); + MediaType contentType = headers.getContentType(); + assertThat(contentType).isNotNull(); + assertThat(contentType.getParameters()).containsEntry("mtp", "123"); } @Test @@ -78,6 +82,7 @@ class PropertiesApiVersionInserterTests { ApiversionProperties properties = new ApiversionProperties(); properties.getInsert().setQueryParameter("v"); ApiVersionInserter inserter = PropertiesApiVersionInserter.get(delegate, null, properties); + assertThat(inserter).isNotNull(); assertThat(inserter.insertVersion("123", new URI("https://example.com"))) .hasToString("https://example.com?d=123&v=123"); } @@ -88,6 +93,7 @@ class PropertiesApiVersionInserterTests { properties1.getInsert().setQueryParameter("v"); ApiVersionFormatter formatter = (version) -> String.valueOf(version).toUpperCase(Locale.ROOT); ApiVersionInserter inserter = PropertiesApiVersionInserter.get(null, formatter, properties1); + assertThat(inserter).isNotNull(); URI uri = new URI("https://example.com"); assertThat(inserter.insertVersion("latest", uri)).hasToString("https://example.com?v=LATEST"); } diff --git a/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/autoconfigure/reactive/ClientHttpConnectorAutoConfigurationTests.java b/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/autoconfigure/reactive/ClientHttpConnectorAutoConfigurationTests.java index c3005a6ac0b..35549c05886 100644 --- a/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/autoconfigure/reactive/ClientHttpConnectorAutoConfigurationTests.java +++ b/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/autoconfigure/reactive/ClientHttpConnectorAutoConfigurationTests.java @@ -36,6 +36,7 @@ import org.springframework.boot.http.client.reactive.ClientHttpConnectorSettings import org.springframework.boot.http.client.reactive.JdkClientHttpConnectorBuilder; import org.springframework.boot.http.client.reactive.JettyClientHttpConnectorBuilder; import org.springframework.boot.http.client.reactive.ReactorClientHttpConnectorBuilder; +import org.springframework.boot.ssl.SslBundle; import org.springframework.boot.test.context.FilteredClassLoader; import org.springframework.boot.test.context.runner.ApplicationContextRunner; import org.springframework.context.annotation.Bean; @@ -160,7 +161,9 @@ class ClientHttpConnectorAutoConfigurationTests { assertThat(settings.redirects()).isEqualTo(HttpRedirects.DONT_FOLLOW); assertThat(settings.connectTimeout()).isEqualTo(Duration.ofSeconds(10)); assertThat(settings.readTimeout()).isEqualTo(Duration.ofSeconds(20)); - assertThat(settings.sslBundle().getKey().getAlias()).isEqualTo("alias1"); + SslBundle sslBundle = settings.sslBundle(); + assertThat(sslBundle).isNotNull(); + assertThat(sslBundle.getKey().getAlias()).isEqualTo("alias1"); }); } @@ -184,6 +187,7 @@ class ClientHttpConnectorAutoConfigurationTests { ClientHttpConnector connector = context.getBean(ClientHttpConnectorBuilder.class).build(); java.net.http.HttpClient httpClient = (java.net.http.HttpClient) ReflectionTestUtils.getField(connector, "httpClient"); + assertThat(httpClient).isNotNull(); assertThat(httpClient.executor()).containsInstanceOf(VirtualThreadTaskExecutor.class); }); } diff --git a/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/reactive/AbstractClientHttpConnectorBuilderTests.java b/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/reactive/AbstractClientHttpConnectorBuilderTests.java index 3fbc886cfe9..54559d121a5 100644 --- a/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/reactive/AbstractClientHttpConnectorBuilderTests.java +++ b/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/reactive/AbstractClientHttpConnectorBuilderTests.java @@ -29,6 +29,7 @@ import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; +import org.jspecify.annotations.Nullable; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; @@ -172,7 +173,7 @@ abstract class AbstractClientHttpConnectorBuilderTests expectedStatusForMethod) throws URISyntaxException { HttpStatus expectedStatus = expectedStatusForMethod.apply(httpMethod); TomcatServletWebServerFactory webServerFactory = new TomcatServletWebServerFactory(0); @@ -204,7 +205,9 @@ abstract class AbstractClientHttpConnectorBuilderTests bundles = new ArrayList<>(); - Function tlsSocketStrategyFactory = (bundle) -> { + Function<@Nullable SslBundle, @Nullable TlsStrategy> tlsSocketStrategyFactory = (bundle) -> { bundles.add(bundle); return (sessionLayer, host, localAddress, remoteAddress, attachment, handshakeTimeout) -> false; }; @@ -115,10 +116,13 @@ class HttpComponentsClientHttpConnectorBuilderTests @SuppressWarnings("unchecked") private ConnectionConfig getConnectorConfig(HttpComponentsClientHttpConnector connector) { HttpAsyncClient httpClient = (HttpAsyncClient) ReflectionTestUtils.getField(connector, "client"); + assertThat(httpClient).isNotNull(); Object manager = ReflectionTestUtils.getField(httpClient, "manager"); - ConnectionConfig connectorConfig = ((Resolver) ReflectionTestUtils - .getField(manager, "connectionConfigResolver")).resolve(null); - return connectorConfig; + assertThat(manager).isNotNull(); + Resolver connectionConfigResolver = (Resolver) ReflectionTestUtils + .getField(manager, "connectionConfigResolver"); + assertThat(connectionConfigResolver).isNotNull(); + return connectionConfigResolver.resolve(null); } } diff --git a/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/reactive/JdkClientHttpConnectorBuilderTests.java b/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/reactive/JdkClientHttpConnectorBuilderTests.java index 6752e77870a..4af086153a5 100644 --- a/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/reactive/JdkClientHttpConnectorBuilderTests.java +++ b/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/reactive/JdkClientHttpConnectorBuilderTests.java @@ -57,6 +57,7 @@ class JdkClientHttpConnectorBuilderTests extends AbstractClientHttpConnectorBuil Executor executor = new SimpleAsyncTaskExecutor(); JdkClientHttpConnector connector = ClientHttpConnectorBuilder.jdk().withExecutor(executor).build(); HttpClient httpClient = (HttpClient) ReflectionTestUtils.getField(connector, "httpClient"); + assertThat(httpClient).isNotNull(); assertThat(httpClient.executor()).containsSame(executor); } @@ -70,12 +71,14 @@ class JdkClientHttpConnectorBuilderTests extends AbstractClientHttpConnectorBuil @Override protected long connectTimeout(JdkClientHttpConnector connector) { HttpClient httpClient = (HttpClient) ReflectionTestUtils.getField(connector, "httpClient"); + assertThat(httpClient).isNotNull(); return httpClient.connectTimeout().get().toMillis(); } @Override protected long readTimeout(JdkClientHttpConnector connector) { Duration readTimeout = (Duration) ReflectionTestUtils.getField(connector, "readTimeout"); + assertThat(readTimeout).isNotNull(); return readTimeout.toMillis(); } diff --git a/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/reactive/JettyClientHttpConnectorBuilderTests.java b/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/reactive/JettyClientHttpConnectorBuilderTests.java index 660f14f9b2d..ef4ae1e6709 100644 --- a/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/reactive/JettyClientHttpConnectorBuilderTests.java +++ b/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/reactive/JettyClientHttpConnectorBuilderTests.java @@ -78,13 +78,18 @@ class JettyClientHttpConnectorBuilderTests extends AbstractClientHttpConnectorBu @Override protected long connectTimeout(JettyClientHttpConnector connector) { - return ((HttpClient) ReflectionTestUtils.getField(connector, "httpClient")).getConnectTimeout(); + HttpClient httpClient = (HttpClient) ReflectionTestUtils.getField(connector, "httpClient"); + assertThat(httpClient).isNotNull(); + return httpClient.getConnectTimeout(); } @Override protected long readTimeout(JettyClientHttpConnector connector) { HttpClient httpClient = (HttpClient) ReflectionTestUtils.getField(connector, "httpClient"); - return ((Duration) ReflectionTestUtils.getField(httpClient, "readTimeout")).toMillis(); + assertThat(httpClient).isNotNull(); + Object field = ReflectionTestUtils.getField(httpClient, "readTimeout"); + assertThat(field).isNotNull(); + return ((Duration) field).toMillis(); } static class TestHttpClientTransport extends HttpClientTransportOverHTTP { diff --git a/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/reactive/ReactorClientHttpConnectorBuilderTests.java b/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/reactive/ReactorClientHttpConnectorBuilderTests.java index 082276e62ed..f35af8af49a 100644 --- a/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/reactive/ReactorClientHttpConnectorBuilderTests.java +++ b/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/reactive/ReactorClientHttpConnectorBuilderTests.java @@ -16,6 +16,7 @@ package org.springframework.boot.http.client.reactive; +import java.time.Duration; import java.util.ArrayList; import java.util.List; import java.util.function.Supplier; @@ -99,16 +100,20 @@ class ReactorClientHttpConnectorBuilderTests @Override protected long connectTimeout(ReactorClientHttpConnector connector) { - return (int) ((HttpClient) ReflectionTestUtils.getField(connector, "httpClient")).configuration() - .options() - .get(ChannelOption.CONNECT_TIMEOUT_MILLIS); + HttpClient httpClient = (HttpClient) ReflectionTestUtils.getField(connector, "httpClient"); + assertThat(httpClient).isNotNull(); + Object connectTimeout = httpClient.configuration().options().get(ChannelOption.CONNECT_TIMEOUT_MILLIS); + assertThat(connectTimeout).isNotNull(); + return (int) connectTimeout; } @Override protected long readTimeout(ReactorClientHttpConnector connector) { - return (int) ((HttpClient) ReflectionTestUtils.getField(connector, "httpClient")).configuration() - .responseTimeout() - .toMillis(); + HttpClient httpClient = (HttpClient) ReflectionTestUtils.getField(connector, "httpClient"); + assertThat(httpClient).isNotNull(); + Duration responseTimeout = httpClient.configuration().responseTimeout(); + assertThat(responseTimeout).isNotNull(); + return (int) responseTimeout.toMillis(); } }