diff --git a/module/spring-boot-webservices/src/main/java/org/springframework/boot/webservices/autoconfigure/WebServicesAutoConfiguration.java b/module/spring-boot-webservices/src/main/java/org/springframework/boot/webservices/autoconfigure/WebServicesAutoConfiguration.java index e1694d926f5..beb56ff20a4 100644 --- a/module/spring-boot-webservices/src/main/java/org/springframework/boot/webservices/autoconfigure/WebServicesAutoConfiguration.java +++ b/module/spring-boot-webservices/src/main/java/org/springframework/boot/webservices/autoconfigure/WebServicesAutoConfiguration.java @@ -44,6 +44,7 @@ import org.springframework.context.annotation.Conditional; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Role; import org.springframework.core.io.Resource; +import org.springframework.util.Assert; import org.springframework.util.StringUtils; import org.springframework.ws.config.annotation.EnableWs; import org.springframework.ws.config.annotation.WsConfigurationSupport; @@ -96,6 +97,7 @@ public final class WebServicesAutoConfiguration { static class WsdlDefinitionBeanFactoryPostProcessor implements BeanDefinitionRegistryPostProcessor, ApplicationContextAware { + @SuppressWarnings("NullAway.Init") private ApplicationContext applicationContext; @Override @@ -125,8 +127,9 @@ public final class WebServicesAutoConfiguration { BeanDefinition beanDefinition = BeanDefinitionBuilder .rootBeanDefinition(type, () -> beanSupplier.apply(resource)) .getBeanDefinition(); - registry.registerBeanDefinition(StringUtils.stripFilenameExtension(resource.getFilename()), - beanDefinition); + String filename = resource.getFilename(); + Assert.state(filename != null, "'filename' must not be null"); + registry.registerBeanDefinition(StringUtils.stripFilenameExtension(filename), beanDefinition); } } diff --git a/module/spring-boot-webservices/src/main/java/org/springframework/boot/webservices/autoconfigure/client/package-info.java b/module/spring-boot-webservices/src/main/java/org/springframework/boot/webservices/autoconfigure/client/package-info.java index 886110ca10c..9b5ef745397 100644 --- a/module/spring-boot-webservices/src/main/java/org/springframework/boot/webservices/autoconfigure/client/package-info.java +++ b/module/spring-boot-webservices/src/main/java/org/springframework/boot/webservices/autoconfigure/client/package-info.java @@ -17,4 +17,7 @@ /** * Auto-configuration for Spring Web Services Clients. */ +@NullMarked package org.springframework.boot.webservices.autoconfigure.client; + +import org.jspecify.annotations.NullMarked; diff --git a/module/spring-boot-webservices/src/main/java/org/springframework/boot/webservices/autoconfigure/package-info.java b/module/spring-boot-webservices/src/main/java/org/springframework/boot/webservices/autoconfigure/package-info.java index 344d4fd28cb..4be1bc2484e 100644 --- a/module/spring-boot-webservices/src/main/java/org/springframework/boot/webservices/autoconfigure/package-info.java +++ b/module/spring-boot-webservices/src/main/java/org/springframework/boot/webservices/autoconfigure/package-info.java @@ -17,4 +17,7 @@ /** * Auto-configuration for Spring Web Services. */ +@NullMarked package org.springframework.boot.webservices.autoconfigure; + +import org.jspecify.annotations.NullMarked; diff --git a/module/spring-boot-webservices/src/main/java/org/springframework/boot/webservices/client/WebServiceMessageSenderFactory.java b/module/spring-boot-webservices/src/main/java/org/springframework/boot/webservices/client/WebServiceMessageSenderFactory.java index b915c695283..a1d9c836edc 100644 --- a/module/spring-boot-webservices/src/main/java/org/springframework/boot/webservices/client/WebServiceMessageSenderFactory.java +++ b/module/spring-boot-webservices/src/main/java/org/springframework/boot/webservices/client/WebServiceMessageSenderFactory.java @@ -16,6 +16,8 @@ package org.springframework.boot.webservices.client; +import org.jspecify.annotations.Nullable; + import org.springframework.boot.http.client.ClientHttpRequestFactoryBuilder; import org.springframework.boot.http.client.ClientHttpRequestFactorySettings; import org.springframework.http.client.ClientHttpRequestFactory; @@ -66,7 +68,7 @@ public interface WebServiceMessageSenderFactory { * @return a new {@link WebServiceMessageSenderFactory} */ static WebServiceMessageSenderFactory http(ClientHttpRequestFactoryBuilder requestFactoryBuilder, - ClientHttpRequestFactorySettings requestFactorySettings) { + @Nullable ClientHttpRequestFactorySettings requestFactorySettings) { Assert.notNull(requestFactoryBuilder, "'requestFactoryBuilder' must not be null"); return () -> new ClientHttpRequestMessageSender(requestFactoryBuilder.build(requestFactorySettings)); } diff --git a/module/spring-boot-webservices/src/main/java/org/springframework/boot/webservices/client/WebServiceTemplateBuilder.java b/module/spring-boot-webservices/src/main/java/org/springframework/boot/webservices/client/WebServiceTemplateBuilder.java index e5f110fdd9a..fb2f9886a56 100644 --- a/module/spring-boot-webservices/src/main/java/org/springframework/boot/webservices/client/WebServiceTemplateBuilder.java +++ b/module/spring-boot-webservices/src/main/java/org/springframework/boot/webservices/client/WebServiceTemplateBuilder.java @@ -25,6 +25,8 @@ import java.util.Set; import javax.xml.transform.TransformerFactory; +import org.jspecify.annotations.Nullable; + import org.springframework.beans.BeanUtils; import org.springframework.boot.context.properties.PropertyMapper; import org.springframework.oxm.Marshaller; @@ -56,27 +58,27 @@ import org.springframework.ws.transport.WebServiceMessageSender; */ public class WebServiceTemplateBuilder { - private final WebServiceMessageSenderFactory httpMessageSenderFactory; + private final @Nullable WebServiceMessageSenderFactory httpMessageSenderFactory; private final boolean detectHttpMessageSender; - private final Set interceptors; + private final @Nullable Set interceptors; - private final Set internalCustomizers; + private final @Nullable Set internalCustomizers; private final Set customizers; private final WebServiceMessageSenders messageSenders; - private final Marshaller marshaller; + private final @Nullable Marshaller marshaller; - private final Unmarshaller unmarshaller; + private final @Nullable Unmarshaller unmarshaller; - private final DestinationProvider destinationProvider; + private final @Nullable DestinationProvider destinationProvider; - private final Class transformerFactoryClass; + private final @Nullable Class transformerFactoryClass; - private final WebServiceMessageFactory messageFactory; + private final @Nullable WebServiceMessageFactory messageFactory; public WebServiceTemplateBuilder(WebServiceTemplateCustomizer... customizers) { this.httpMessageSenderFactory = null; @@ -92,12 +94,14 @@ public class WebServiceTemplateBuilder { this.messageFactory = null; } - private WebServiceTemplateBuilder(WebServiceMessageSenderFactory messageSenderFactory, - boolean detectHttpMessageSender, Set interceptors, - Set internalCustomizers, Set customizers, - WebServiceMessageSenders messageSenders, Marshaller marshaller, Unmarshaller unmarshaller, - DestinationProvider destinationProvider, Class transformerFactoryClass, - WebServiceMessageFactory messageFactory) { + private WebServiceTemplateBuilder(@Nullable WebServiceMessageSenderFactory messageSenderFactory, + boolean detectHttpMessageSender, @Nullable Set interceptors, + @Nullable Set internalCustomizers, + Set customizers, WebServiceMessageSenders messageSenders, + @Nullable Marshaller marshaller, @Nullable Unmarshaller unmarshaller, + @Nullable DestinationProvider destinationProvider, + @Nullable Class transformerFactoryClass, + @Nullable WebServiceMessageFactory messageFactory) { this.httpMessageSenderFactory = messageSenderFactory; this.detectHttpMessageSender = detectHttpMessageSender; this.interceptors = interceptors; @@ -497,7 +501,7 @@ public class WebServiceTemplateBuilder { } private void applyCustomizers(WebServiceTemplate webServiceTemplate, - Set customizers) { + @Nullable Set customizers) { if (!CollectionUtils.isEmpty(customizers)) { for (WebServiceTemplateCustomizer customizer : customizers) { customizer.customize(webServiceTemplate); @@ -520,11 +524,11 @@ public class WebServiceTemplateBuilder { } } - private Set append(Set set, T addition) { + private Set append(@Nullable Set set, T addition) { return append(set, Collections.singleton(addition)); } - private static Set append(Set set, Collection additions) { + private static Set append(@Nullable Set set, @Nullable Collection additions) { Set result = new LinkedHashSet<>((set != null) ? set : Collections.emptySet()); result.addAll((additions != null) ? additions : Collections.emptyList()); return Collections.unmodifiableSet(result); diff --git a/module/spring-boot-webservices/src/main/java/org/springframework/boot/webservices/client/package-info.java b/module/spring-boot-webservices/src/main/java/org/springframework/boot/webservices/client/package-info.java index 2da5647e9aa..b4a13e83930 100644 --- a/module/spring-boot-webservices/src/main/java/org/springframework/boot/webservices/client/package-info.java +++ b/module/spring-boot-webservices/src/main/java/org/springframework/boot/webservices/client/package-info.java @@ -17,4 +17,7 @@ /** * Web Services client utilities. */ +@NullMarked package org.springframework.boot.webservices.client; + +import org.jspecify.annotations.NullMarked;