From 1870dc6e36d71e9ab6d22f9f38bf476cfec8ecfc Mon Sep 17 00:00:00 2001 From: Tran Ngoc Nhan Date: Sat, 2 Aug 2025 00:57:39 +0700 Subject: [PATCH 1/3] GH-10083: Apply Nullability to syslog module Signed-off-by: Tran Ngoc Nhan --- .../syslog/DefaultMessageConverter.java | 4 +++- .../syslog/RFC5424SyslogParser.java | 4 ++++ ...logReceivingChannelAdapterFactoryBean.java | 22 ++++++++++--------- .../syslog/config/package-info.java | 1 + .../TcpSyslogReceivingChannelAdapter.java | 5 ++++- .../UdpSyslogReceivingChannelAdapter.java | 1 + .../syslog/inbound/package-info.java | 1 + .../integration/syslog/package-info.java | 1 + 8 files changed, 27 insertions(+), 12 deletions(-) diff --git a/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/DefaultMessageConverter.java b/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/DefaultMessageConverter.java index 73f91e0cdf9..d9eec28be00 100644 --- a/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/DefaultMessageConverter.java +++ b/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/DefaultMessageConverter.java @@ -23,6 +23,8 @@ import java.util.Map.Entry; import java.util.Set; +import org.jspecify.annotations.Nullable; + import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.BeanFactoryAware; import org.springframework.integration.support.DefaultMessageBuilderFactory; @@ -53,7 +55,7 @@ public class DefaultMessageConverter implements MessageConverter, BeanFactoryAwa private volatile boolean asMap = true; - private BeanFactory beanFactory; + private @Nullable BeanFactory beanFactory; /** * Set false will leave the payload as the original complete syslog. diff --git a/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/RFC5424SyslogParser.java b/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/RFC5424SyslogParser.java index 0a275a816cd..045d2c89612 100644 --- a/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/RFC5424SyslogParser.java +++ b/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/RFC5424SyslogParser.java @@ -21,6 +21,8 @@ import java.util.List; import java.util.Map; +import org.jspecify.annotations.Nullable; + import org.springframework.integration.JavaUtils; import org.springframework.util.Assert; @@ -131,6 +133,7 @@ public RFC5424SyslogParser(boolean retainOriginal) { * @param r the reader. * @return the timestamp. */ + @Nullable protected Object getTimestamp(Reader r) { int c = r.getc(); @@ -152,6 +155,7 @@ protected Object getTimestamp(Reader r) { return dateBuilder.toString(); } + @Nullable private Object getStructuredData(Reader r) { if (r.is(NILVALUE)) { r.getc(); diff --git a/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/config/SyslogReceivingChannelAdapterFactoryBean.java b/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/config/SyslogReceivingChannelAdapterFactoryBean.java index 95faa6205a2..b3daea3fbc8 100644 --- a/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/config/SyslogReceivingChannelAdapterFactoryBean.java +++ b/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/config/SyslogReceivingChannelAdapterFactoryBean.java @@ -16,6 +16,8 @@ package org.springframework.integration.syslog.config; +import org.jspecify.annotations.Nullable; + import org.springframework.beans.factory.BeanNameAware; import org.springframework.beans.factory.config.AbstractFactoryBean; import org.springframework.context.ApplicationEventPublisher; @@ -47,31 +49,31 @@ public enum Protocol { udp, tcp } - private volatile SyslogReceivingChannelAdapterSupport syslogAdapter; + private volatile @Nullable SyslogReceivingChannelAdapterSupport syslogAdapter; private final Protocol protocol; - private volatile MessageChannel outputChannel; + private volatile @Nullable MessageChannel outputChannel; private volatile boolean autoStartup = true; - private volatile MessageChannel errorChannel; + private volatile @Nullable MessageChannel errorChannel; private volatile int phase; - private volatile Long sendTimeout; + private volatile @Nullable Long sendTimeout; - private volatile AbstractServerConnectionFactory connectionFactory; + private volatile @Nullable AbstractServerConnectionFactory connectionFactory; - private volatile UnicastReceivingChannelAdapter udpAdapter; + private volatile @Nullable UnicastReceivingChannelAdapter udpAdapter; - private volatile Integer port; + private volatile @Nullable Integer port; - private volatile MessageConverter converter; + private volatile @Nullable MessageConverter converter; - private volatile String beanName; + private volatile @Nullable String beanName; - private volatile ApplicationEventPublisher applicationEventPublisher; + private volatile @Nullable ApplicationEventPublisher applicationEventPublisher; /** * Instantiates a factory bean that creates a {@link UdpSyslogReceivingChannelAdapter} diff --git a/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/config/package-info.java b/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/config/package-info.java index b273511912b..f85c03b8ea9 100644 --- a/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/config/package-info.java +++ b/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/config/package-info.java @@ -1,4 +1,5 @@ /** * Provides classes for configuration - parsers, namespace handlers, factory beans. */ +@org.jspecify.annotations.NullMarked package org.springframework.integration.syslog.config; diff --git a/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/inbound/TcpSyslogReceivingChannelAdapter.java b/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/inbound/TcpSyslogReceivingChannelAdapter.java index 19197f490b6..6d63be1c79d 100644 --- a/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/inbound/TcpSyslogReceivingChannelAdapter.java +++ b/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/inbound/TcpSyslogReceivingChannelAdapter.java @@ -16,6 +16,8 @@ package org.springframework.integration.syslog.inbound; +import org.jspecify.annotations.Nullable; + import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.ApplicationEventPublisherAware; import org.springframework.integration.ip.tcp.connection.AbstractServerConnectionFactory; @@ -36,9 +38,10 @@ public class TcpSyslogReceivingChannelAdapter extends SyslogReceivingChannelAdapterSupport implements TcpListener, ApplicationEventPublisherAware { + @SuppressWarnings("NullAway.Init") private volatile AbstractServerConnectionFactory connectionFactory; - private volatile ApplicationEventPublisher applicationEventPublisher; + private volatile @Nullable ApplicationEventPublisher applicationEventPublisher; /** * @param connectionFactory The connection factory. diff --git a/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/inbound/UdpSyslogReceivingChannelAdapter.java b/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/inbound/UdpSyslogReceivingChannelAdapter.java index 54a5c0b93af..d12647a1826 100644 --- a/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/inbound/UdpSyslogReceivingChannelAdapter.java +++ b/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/inbound/UdpSyslogReceivingChannelAdapter.java @@ -30,6 +30,7 @@ */ public class UdpSyslogReceivingChannelAdapter extends SyslogReceivingChannelAdapterSupport { + @SuppressWarnings("NullAway.Init") private volatile UnicastReceivingChannelAdapter udpAdapter; private volatile boolean udpAdapterSet; diff --git a/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/inbound/package-info.java b/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/inbound/package-info.java index 43717a49f15..7f0826ffc2a 100644 --- a/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/inbound/package-info.java +++ b/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/inbound/package-info.java @@ -1,4 +1,5 @@ /** * Provides classes for inbound endpoints. */ +@org.jspecify.annotations.NullMarked package org.springframework.integration.syslog.inbound; diff --git a/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/package-info.java b/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/package-info.java index 44e5bb83483..c222e3f06e6 100644 --- a/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/package-info.java +++ b/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/package-info.java @@ -1,4 +1,5 @@ /** * Base package for Syslog Support. */ +@org.jspecify.annotations.NullMarked package org.springframework.integration.syslog; From 63ca8b1047a776af07c7a3be3caf5d66160ee765 Mon Sep 17 00:00:00 2001 From: Tran Ngoc Nhan Date: Sat, 2 Aug 2025 03:14:00 +0700 Subject: [PATCH 2/3] Addressing PR review Signed-off-by: Tran Ngoc Nhan --- .../integration/syslog/RFC5424SyslogParser.java | 3 +-- .../syslog/inbound/TcpSyslogReceivingChannelAdapter.java | 5 ++--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/RFC5424SyslogParser.java b/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/RFC5424SyslogParser.java index 045d2c89612..3c2521f3db3 100644 --- a/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/RFC5424SyslogParser.java +++ b/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/RFC5424SyslogParser.java @@ -155,8 +155,7 @@ protected Object getTimestamp(Reader r) { return dateBuilder.toString(); } - @Nullable - private Object getStructuredData(Reader r) { + private @Nullable Object getStructuredData(Reader r) { if (r.is(NILVALUE)) { r.getc(); return null; diff --git a/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/inbound/TcpSyslogReceivingChannelAdapter.java b/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/inbound/TcpSyslogReceivingChannelAdapter.java index 6d63be1c79d..fbab5d63893 100644 --- a/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/inbound/TcpSyslogReceivingChannelAdapter.java +++ b/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/inbound/TcpSyslogReceivingChannelAdapter.java @@ -16,8 +16,6 @@ package org.springframework.integration.syslog.inbound; -import org.jspecify.annotations.Nullable; - import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.ApplicationEventPublisherAware; import org.springframework.integration.ip.tcp.connection.AbstractServerConnectionFactory; @@ -41,7 +39,8 @@ public class TcpSyslogReceivingChannelAdapter extends SyslogReceivingChannelAdap @SuppressWarnings("NullAway.Init") private volatile AbstractServerConnectionFactory connectionFactory; - private volatile @Nullable ApplicationEventPublisher applicationEventPublisher; + @SuppressWarnings("NullAway.Init") + private volatile ApplicationEventPublisher applicationEventPublisher; /** * @param connectionFactory The connection factory. From 79656911a9f213a3ea9180803f90db5fc8b1c792 Mon Sep 17 00:00:00 2001 From: Tran Ngoc Nhan Date: Sat, 2 Aug 2025 13:01:33 +0700 Subject: [PATCH 3/3] Addressing PR review Signed-off-by: Tran Ngoc Nhan --- .../integration/syslog/RFC5424SyslogParser.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/RFC5424SyslogParser.java b/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/RFC5424SyslogParser.java index 3c2521f3db3..fa37ece5598 100644 --- a/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/RFC5424SyslogParser.java +++ b/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/RFC5424SyslogParser.java @@ -133,8 +133,7 @@ public RFC5424SyslogParser(boolean retainOriginal) { * @param r the reader. * @return the timestamp. */ - @Nullable - protected Object getTimestamp(Reader r) { + protected @Nullable Object getTimestamp(Reader r) { int c = r.getc();