This is an automated email from the ASF dual-hosted git repository.

chia7712 pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/kafka.git


The following commit(s) were added to refs/heads/trunk by this push:
     new cb9e7fe1c63 MINOR: Upgrade Spotbugs to 4.9.1 (#20294)
cb9e7fe1c63 is described below

commit cb9e7fe1c639d6f3014f6d5ffeaaf82ffc950cbf
Author: Stig Døssing <stigdoess...@gmail.com>
AuthorDate: Mon Aug 4 20:50:47 2025 +0200

    MINOR: Upgrade Spotbugs to 4.9.1 (#20294)
    
    Add exclusions for new warnings to allow this upgrade.
    
    Reviewers: Chia-Ping Tsai <chia7...@gmail.com>
---
 build.gradle                |   2 +-
 gradle/dependencies.gradle  |   5 +-
 gradle/spotbugs-exclude.xml | 169 ++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 174 insertions(+), 2 deletions(-)

diff --git a/build.gradle b/build.gradle
index 5f9e81789cc..2b4f1294e9c 100644
--- a/build.gradle
+++ b/build.gradle
@@ -37,7 +37,7 @@ plugins {
   id 'org.nosphere.apache.rat' version "0.8.1"
   id "io.swagger.core.v3.swagger-gradle-plugin" version "${swaggerVersion}"
 
-  id "com.github.spotbugs" version '6.0.25' apply false
+  id "com.github.spotbugs" version '6.2.3' apply false
   id 'org.scoverage' version '8.0.3' apply false
   id 'com.gradleup.shadow' version '8.3.6' apply false
   id 'com.diffplug.spotless' version "6.25.0"
diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle
index 04119d57704..d1f14922d5a 100644
--- a/gradle/dependencies.gradle
+++ b/gradle/dependencies.gradle
@@ -123,7 +123,10 @@ versions += [
   scoverage: "2.0.11",
   slf4j: "1.7.36",
   snappy: "1.1.10.7",
-  spotbugs: "4.8.6",
+  // While Spotbugs 4.9.3 exists at the time of writing,
+  // Spotbugs 4.9.1 is the latest version not affected by 
https://github.com/spotbugs/spotbugs/pull/3311,
+  // which breaks the build, so we're sticking with that version until 4.9.4 
is released.
+  spotbugs: "4.9.1",
   mockOAuth2Server: "2.2.1",
   zinc: "1.9.2",
   // When updating the zstd version, please do as well in 
docker/native/native-image-configs/resource-config.json
diff --git a/gradle/spotbugs-exclude.xml b/gradle/spotbugs-exclude.xml
index 080681e8db3..550432601b8 100644
--- a/gradle/spotbugs-exclude.xml
+++ b/gradle/spotbugs-exclude.xml
@@ -550,4 +550,173 @@ For a detailed description of spotbugs bug categories, 
see https://spotbugs.read
         <Bug pattern="SING_SINGLETON_HAS_NONPRIVATE_CONSTRUCTOR"/>
     </Match>
 
+    <Match>
+        <!-- New warning type added when we upgraded from spotbugs 4.8.6 to 
4.9.1.
+        These are possibly real bugs, and have not been evaluated, they were 
just bulk excluded to unblock upgrading Spotbugs.
+         -->
+        <Or>
+            <Class name="org.apache.kafka.clients.producer.MockProducer"/>
+            <Class 
name="org.apache.kafka.clients.producer.internals.ProducerBatch"/>
+            <Class name="org.apache.kafka.common.utils.ChunkedBytesStream"/>
+            <Class 
name="org.apache.kafka.common.security.authenticator.LoginManager"/>
+            <Class 
name="org.apache.kafka.storage.internals.log.AbstractIndex"/>
+            <Class name="org.apache.kafka.server.AssignmentsManager"/>
+            <Class name="org.apache.kafka.connect.file.FileStreamSourceTask"/>
+            <Class 
name="org.apache.kafka.streams.processor.internals.DefaultStateUpdater$StateUpdaterThread"/>
+            <Class 
name="org.apache.kafka.streams.processor.internals.StreamThread"/>
+            <Class 
name="org.apache.kafka.streams.processor.internals.StreamsProducer"/>
+            <Class 
name="org.apache.kafka.streams.state.internals.AbstractDualSchemaRocksDBSegmentedBytesStore"/>
+            <Class 
name="org.apache.kafka.streams.state.internals.AbstractRocksDBSegmentedBytesStore"/>
+            <Class 
name="org.apache.kafka.streams.state.internals.InMemorySessionStore"/>
+            <Class 
name="org.apache.kafka.streams.state.internals.InMemoryTimeOrderedKeyValueChangeBuffer"/>
+            <Class 
name="org.apache.kafka.streams.state.internals.InMemoryWindowStore"/>
+            <Class 
name="org.apache.kafka.streams.state.internals.ThreadCache"/>
+            <Class name="org.apache.kafka.connect.runtime.WorkerSinkTask"/>
+            <Class name="org.apache.kafka.tools.VerifiableProducer"/>
+            <Class name="kafka.coordinator.transaction.TransactionMetadata"/>
+            <Class name="org.apache.kafka.tools.VerifiableShareConsumer"/>
+            <Class name="org.apache.kafka.server.quota.ClientQuotaManager"/>
+            <Class name="kafka.log.LogManager"/>
+            <Class name="kafka.server.DelayedFetch"/>
+            <Class name="kafka.server.KafkaApis"/>
+            <Class name="kafka.server.metadata.KRaftMetadataCache"/>
+            <Class 
name="org.apache.kafka.streams.processor.internals.InternalTopologyBuilder"/>
+        </Or>
+        <Bug pattern="AT_NONATOMIC_OPERATIONS_ON_SHARED_VARIABLE"/>
+    </Match>
+
+    <Match>
+        <!-- New warning type added when we upgraded from spotbugs 4.8.6 to 
4.9.1.
+        These are possibly real bugs, and have not been evaluated, they were 
just bulk excluded to unblock upgrading Spotbugs.
+         -->
+        <Or>
+            <Class 
name="org.apache.kafka.clients.producer.internals.ProducerBatch"/>
+            <Class 
name="org.apache.kafka.clients.producer.internals.RecordAccumulator"/>
+            <Class 
name="org.apache.kafka.common.security.kerberos.KerberosLogin"/>
+            <Class name="org.apache.kafka.server.util.timer.TimingWheel"/>
+            <Class 
name="org.apache.kafka.server.log.remote.metadata.storage.ConsumerTask"/>
+            <Class name="org.apache.kafka.storage.internals.log.LogSegment"/>
+            <Class 
name="org.apache.kafka.storage.internals.log.ProducerStateManager"/>
+            <Class name="org.apache.kafka.image.publisher.SnapshotGenerator"/>
+            <Class 
name="org.apache.kafka.image.publisher.SnapshotGenerator$Builder"/>
+            <Class name="org.apache.kafka.connect.file.FileStreamSourceTask"/>
+            <Class 
name="org.apache.kafka.streams.processor.internals.DefaultStateUpdater$StateUpdaterThread"/>
+            <Class 
name="org.apache.kafka.streams.processor.internals.StreamThread"/>
+            <Class 
name="org.apache.kafka.streams.processor.internals.StreamsProducer"/>
+            <Class 
name="org.apache.kafka.streams.state.internals.InMemoryTimeOrderedKeyValueChangeBuffer"/>
+            <Class name="org.apache.kafka.connect.runtime.WorkerSinkTask"/>
+            <Class 
name="org.apache.kafka.tools.ConsumerPerformance$ConsumerPerfRebListener"/>
+            <Class name="kafka.coordinator.transaction.TransactionMetadata"/>
+            <Class name="kafka.server.BrokerLifecycleManager"/>
+            <Class name="kafka.server.CachedPartition"/>
+            <Class name="kafka.server.ControllerRegistrationManager"/>
+            <Class name="kafka.server.FetchSession"/>
+            <Class name="kafka.server.share.SharePartition"/>
+            <Class name="kafka.cluster.Partition"/>
+            <Class 
name="kafka.coordinator.transaction.TransactionCoordinator"/>
+            <Class 
name="kafka.coordinator.transaction.TransactionStateManager"/>
+            <Class name="kafka.log.LogManager"/>
+            <Class name="kafka.server.ReplicaManager"/>
+        </Or>
+        <Bug pattern="AT_NONATOMIC_64BIT_PRIMITIVE"/>
+    </Match>
+
+    <Match>
+        <!-- New warning type added when we upgraded from spotbugs 4.8.6 to 
4.9.1.
+        These are possibly real bugs, and have not been evaluated, they were 
just bulk excluded to unblock upgrading Spotbugs.
+         -->
+        <Or>
+            <Class name="org.apache.kafka.clients.consumer.MockConsumer"/>
+            <Class 
name="org.apache.kafka.clients.consumer.internals.AbstractMembershipManager"/>
+            <Class 
name="org.apache.kafka.clients.consumer.internals.AsyncKafkaConsumer"/>
+            <Class 
name="org.apache.kafka.clients.consumer.internals.ClassicKafkaConsumer"/>
+            <Class 
name="org.apache.kafka.clients.consumer.internals.ConsumerCoordinator"/>
+            <Class 
name="org.apache.kafka.clients.consumer.internals.ShareConsumeRequestManager"/>
+            <Class 
name="org.apache.kafka.clients.consumer.internals.StreamsMembershipManager"/>
+            <Class name="org.apache.kafka.clients.producer.MockProducer"/>
+            <Class 
name="org.apache.kafka.clients.producer.internals.ProducerBatch"/>
+            <Class 
name="org.apache.kafka.clients.producer.internals.TransactionManager"/>
+            <Class name="org.apache.kafka.common.network.Selector"/>
+            <Class 
name="org.apache.kafka.common.security.authenticator.LoginManager"/>
+            <Class 
name="org.apache.kafka.common.security.authenticator.SaslClientAuthenticator"/>
+            <Class 
name="org.apache.kafka.common.security.kerberos.KerberosLogin"/>
+            <Class 
name="org.apache.kafka.common.security.oauthbearer.OAuthBearerValidatorCallbackHandler"/>
+            <Class 
name="org.apache.kafka.common.security.oauthbearer.internals.secured.RefreshingHttpsJwks"/>
+            <Class name="org.apache.kafka.common.utils.ChunkedBytesStream"/>
+            <Class name="org.apache.kafka.common.utils.Shell"/>
+            <Class 
name="org.apache.kafka.clients.producer.internals.TransactionManager$TxnRequestHandler"/>
+            <Class 
name="org.apache.kafka.server.log.remote.metadata.storage.ConsumerTask"/>
+            <Class name="org.apache.kafka.storage.internals.log.LogSegment"/>
+            <Class 
name="org.apache.kafka.image.publisher.SnapshotGenerator$Builder"/>
+            <Class name="org.apache.kafka.server.AssignmentsManager"/>
+            <Class name="org.apache.kafka.connect.file.FileStreamSourceTask"/>
+            <Class 
name="org.apache.kafka.streams.processor.internals.InternalTopologyBuilder"/>
+            <Class 
name="org.apache.kafka.streams.processor.internals.StreamsPartitionAssignor"/>
+            <Class 
name="org.apache.kafka.streams.processor.internals.StreamsProducer"/>
+            <Class 
name="org.apache.kafka.streams.processor.internals.TaskManager"/>
+            <Class 
name="org.apache.kafka.streams.state.internals.AbstractRocksDBSegmentedBytesStore"/>
+            <Class 
name="org.apache.kafka.streams.state.internals.InMemoryTimeOrderedKeyValueChangeBuffer"/>
+            <Class 
name="org.apache.kafka.streams.state.internals.RocksDBStore"/>
+            <Class 
name="org.apache.kafka.streams.state.internals.TimeOrderedCachingWindowStore"/>
+            <Class 
name="org.apache.kafka.connect.runtime.AbstractWorkerSourceTask"/>
+            <Class 
name="org.apache.kafka.connect.runtime.ExactlyOnceWorkerSourceTask"/>
+            <Class name="org.apache.kafka.connect.runtime.WorkerSinkTask"/>
+            <Class 
name="org.apache.kafka.connect.runtime.distributed.DistributedHerder"/>
+            <Class 
name="org.apache.kafka.connect.runtime.distributed.WorkerCoordinator"/>
+            <Class 
name="org.apache.kafka.connect.runtime.distributed.WorkerGroupMember"/>
+            <Class name="org.apache.kafka.connect.util.KafkaBasedLog"/>
+            <Class name="org.apache.kafka.tools.VerifiableProducer"/>
+            <Class name="kafka.coordinator.transaction.TransactionMetadata"/>
+            <Class name="kafka.network.Acceptor"/>
+            <Class name="kafka.network.Processor"/>
+            <Class name="kafka.server.BrokerLifecycleManager"/>
+            <Class name="kafka.server.BrokerServer"/>
+            <Class name="kafka.server.CachedPartition"/>
+            <Class name="kafka.server.ControllerRegistrationManager"/>
+            <Class name="kafka.server.FetchSession"/>
+            <Class name="kafka.server.KafkaConfig"/>
+            <Class name="kafka.server.metadata.BrokerMetadataPublisher"/>
+            <Class name="kafka.server.metadata.DelegationTokenPublisher"/>
+            <Class 
name="org.apache.kafka.connect.mirror.MirrorSourceConnector"/>
+            <Class name="org.apache.kafka.raft.LeaderState"/>
+            <Class 
name="kafka.coordinator.transaction.TransactionCoordinator"/>
+            <Class 
name="kafka.coordinator.transaction.TransactionMarkerRequestCompletionHandler"/>
+            <Class 
name="kafka.coordinator.transaction.TransactionStateManager"/>
+            <Class name="kafka.log.LogManager"/>
+            <Class name="kafka.server.KafkaApis"/>
+            <Class name="kafka.server.ReplicaManager"/>
+            <Class 
name="org.apache.kafka.trogdor.coordinator.NodeManager$NodeHeartbeat"/>
+            <Class 
name="org.apache.kafka.connect.runtime.distributed.DistributedHerder$RebalanceListener"/>
+        </Or>
+        <Bug pattern="AT_STALE_THREAD_WRITE_OF_PRIMITIVE"/>
+    </Match>
+
+    <Match>
+        <!-- New warning type added when we upgraded from spotbugs 4.8.6 to 
4.9.1.
+        These are possibly real bugs, and have not been evaluated, they were 
just bulk excluded to unblock upgrading Spotbugs.
+         -->
+        <Or>
+            <Class name="kafka.coordinator.transaction.CompleteCommit"/>
+            <Class name="kafka.coordinator.transaction.CompleteAbort"/>
+            <Class name="kafka.coordinator.transaction.Dead"/>
+            <Class name="kafka.coordinator.transaction.Empty"/>
+            <Class name="kafka.coordinator.transaction.Ongoing"/>
+            <Class name="kafka.coordinator.transaction.PrepareAbort"/>
+            <Class name="kafka.coordinator.transaction.PrepareCommit"/>
+            <Class name="kafka.coordinator.transaction.PrepareEpochFence"/>
+            <Class name="kafka.server.Fetching"/>
+            <Class name="kafka.server.Truncating"/>
+            <Class name="kafka.server.addPartition"/>
+            <Class name="kafka.server.defaultError"/>
+            <Class name="kafka.server.genericErrorSupported"/>
+            <Class name="kafka.server.metadata.DefaultClientIdEntity"/>
+            <Class name="kafka.server.metadata.DefaultIpEntity"/>
+            <Class 
name="kafka.server.metadata.DefaultUserDefaultClientIdEntity"/>
+            <Class name="kafka.server.metadata.DefaultUserEntity"/>
+            <Class 
name="org.apache.kafka.connect.runtime.SinkConnectorConfig"/>
+            <Class 
name="org.apache.kafka.connect.runtime.SourceConnectorConfig"/>
+        </Or>
+        <Bug pattern="HSM_HIDING_METHOD"/>
+    </Match>
+
 </FindBugsFilter>

Reply via email to