diff --git a/module/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/AbstractClientHttpRequestFactoryBuilder.java b/module/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/AbstractClientHttpRequestFactoryBuilder.java index 07c1c4c8fc1..fb34423aed2 100644 --- a/module/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/AbstractClientHttpRequestFactoryBuilder.java +++ b/module/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/AbstractClientHttpRequestFactoryBuilder.java @@ -48,7 +48,7 @@ abstract class AbstractClientHttpRequestFactoryBuilder> mergedCustomizers(Consumer customizer) { - Assert.notNull(this.customizers, "'customizer' must not be null"); + Assert.notNull(customizer, "'customizer' must not be null"); return merge(this.customizers, List.of(customizer)); } diff --git a/module/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/reactive/AbstractClientHttpConnectorBuilder.java b/module/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/reactive/AbstractClientHttpConnectorBuilder.java index a9e8d0f9e04..573becc5b2d 100644 --- a/module/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/reactive/AbstractClientHttpConnectorBuilder.java +++ b/module/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/reactive/AbstractClientHttpConnectorBuilder.java @@ -49,7 +49,7 @@ abstract class AbstractClientHttpConnectorBuilder } protected final List> mergedCustomizers(Consumer customizer) { - Assert.notNull(this.customizers, "'customizer' must not be null"); + Assert.notNull(customizer, "'customizer' must not be null"); return merge(this.customizers, List.of(customizer)); } diff --git a/module/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/reactive/ClientHttpConnectorBuilder.java b/module/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/reactive/ClientHttpConnectorBuilder.java index 5ea306737f5..c892754be59 100644 --- a/module/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/reactive/ClientHttpConnectorBuilder.java +++ b/module/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/reactive/ClientHttpConnectorBuilder.java @@ -139,7 +139,7 @@ public interface ClientHttpConnectorBuilder { */ @SuppressWarnings("unchecked") static ClientHttpConnectorBuilder of(Class clientHttpConnectorType) { - Assert.notNull(clientHttpConnectorType, "'requestFactoryType' must not be null"); + Assert.notNull(clientHttpConnectorType, "'clientHttpConnectorType' must not be null"); Assert.isTrue(clientHttpConnectorType != ClientHttpConnector.class, "'clientHttpConnectorType' must be an implementation of ClientHttpConnector"); if (clientHttpConnectorType == ReactorClientHttpConnector.class) { diff --git a/module/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/reactive/HttpComponentsClientHttpConnectorBuilder.java b/module/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/reactive/HttpComponentsClientHttpConnectorBuilder.java index d47f8c424ed..6eff3a3c598 100644 --- a/module/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/reactive/HttpComponentsClientHttpConnectorBuilder.java +++ b/module/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/reactive/HttpComponentsClientHttpConnectorBuilder.java @@ -66,7 +66,7 @@ public final class HttpComponentsClientHttpConnectorBuilder */ public HttpComponentsClientHttpConnectorBuilder withHttpClientCustomizer( Consumer httpClientCustomizer) { - Assert.notNull(httpClientCustomizer, "'customizer' must not be null"); + Assert.notNull(httpClientCustomizer, "'httpClientCustomizer' must not be null"); return new HttpComponentsClientHttpConnectorBuilder(getCustomizers(), this.httpClientBuilder.withCustomizer(httpClientCustomizer)); } 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 1b134981adf..191d5f5b237 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 @@ -16,6 +16,7 @@ package org.springframework.boot.http.client; +import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; @@ -25,6 +26,7 @@ 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.assertThatIllegalArgumentException; import static org.assertj.core.api.Assertions.assertThatIllegalStateException; /** @@ -81,6 +83,14 @@ class SimpleClientHttpRequestFactoryBuilderTests super.redirectDontFollow(httpMethod); } + @Test + @SuppressWarnings("NullAway") // Test null check + void withCustomizerWhenCustomizerIsNullThrowsException() { + assertThatIllegalArgumentException() + .isThrownBy(() -> ClientHttpRequestFactoryBuilder.simple().withCustomizer(null)) + .withMessage("'customizer' must not be null"); + } + @Override protected HttpStatus getExpectedRedirect(HttpMethod httpMethod) { return (httpMethod != HttpMethod.GET) ? HttpStatus.FOUND : HttpStatus.OK; diff --git a/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/reactive/HttpComponentsClientHttpConnectorBuilderTests.java b/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/reactive/HttpComponentsClientHttpConnectorBuilderTests.java index 0b5a7857478..e6b250fe56b 100644 --- a/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/reactive/HttpComponentsClientHttpConnectorBuilderTests.java +++ b/module/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/reactive/HttpComponentsClientHttpConnectorBuilderTests.java @@ -39,6 +39,7 @@ import org.springframework.http.client.reactive.HttpComponentsClientHttpConnecto import org.springframework.test.util.ReflectionTestUtils; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException; /** * Tests for {@link HttpComponentsClientHttpConnectorBuilder} and @@ -80,6 +81,14 @@ class HttpComponentsClientHttpConnectorBuilderTests defaultRequestConfigCustomizer1.assertCalled(); } + @Test + @SuppressWarnings("NullAway") // Test null check + void withHttpClientCustomizerWhenCustomizerIsNullThrowsException() { + assertThatIllegalArgumentException() + .isThrownBy(() -> ClientHttpConnectorBuilder.httpComponents().withHttpClientCustomizer(null)) + .withMessage("'httpClientCustomizer' must not be null"); + } + @Test @WithPackageResources("test.jks") void withTlsSocketStrategyFactory() { 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 4af086153a5..23c802a6d71 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 @@ -28,6 +28,7 @@ import org.springframework.http.client.reactive.JdkClientHttpConnector; import org.springframework.test.util.ReflectionTestUtils; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException; /** * Tests for {@link JdkClientHttpConnectorBuilder} and {@link JdkHttpClientBuilder}. @@ -52,6 +53,13 @@ class JdkClientHttpConnectorBuilderTests extends AbstractClientHttpConnectorBuil httpClientCustomizer2.assertCalled(); } + @Test + @SuppressWarnings("NullAway") // Test null check + void withCustomizerWhenCustomizerIsNullThrowsException() { + assertThatIllegalArgumentException().isThrownBy(() -> ClientHttpConnectorBuilder.jdk().withCustomizer(null)) + .withMessage("'customizer' must not be null"); + } + @Test void withExecutor() { Executor executor = new SimpleAsyncTaskExecutor();