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

nicoloboschi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git


The following commit(s) were added to refs/heads/master by this push:
     new b880b1d240a [improve][build] Upgrade Spotbugs to a version with JDK 17 
compatibility (#19315)
b880b1d240a is described below

commit b880b1d240ade864181935aa360bfca03a5aa67f
Author: Lari Hotari <[email protected]>
AuthorDate: Tue Jan 24 17:05:56 2023 +0200

    [improve][build] Upgrade Spotbugs to a version with JDK 17 compatibility 
(#19315)
---
 pom.xml                                            |   4 +-
 pulsar-client-1x-base/pulsar-client-1x/pom.xml     |   3 +
 .../src/main/resources/findbugsExclude.xml         |  29 +-
 .../src/main/resources/findbugsExclude.xml         | 891 ++++++++++++++++++++-
 .../apache/pulsar/common/naming/NamespaceName.java |   2 +
 .../org/apache/pulsar/common/naming/TopicName.java |   2 +
 .../src/main/resources/findbugsExclude.xml         |  20 +
 .../src/main/resources/findbugsExclude.xml         | 580 ++++++++++++--
 .../src/main/resources/findbugsExclude.xml         |  41 +-
 .../secrets/src/main/resources/findbugsExclude.xml |  10 +
 .../src/main/resources/findbugsExclude.xml         |  31 +
 .../hdfs2/src/main/resources/findbugsExclude.xml   |  38 +-
 .../hdfs3/src/main/resources/findbugsExclude.xml   |  38 +-
 .../kafka/src/main/resources/findbugsExclude.xml   | 120 ++-
 .../core/src/main/resources/findbugsExclude.xml    |  16 +
 .../src/main/resources/findbugsExclude.xml         |  64 +-
 .../src/main/resources/findbugsExclude.xml         | 167 ++++
 tiered-storage/file-system/pom.xml                 |   2 +-
 .../src/main/resources/findbugsExclude.xml         |  19 +-
 tiered-storage/jcloud/pom.xml                      |   4 +-
 .../jcloud/src/main/resources/findbugsExclude.xml  |  48 ++
 tiered-storage/pom.xml                             |  22 -
 .../src/main/resources/findbugsExclude.xml         |  26 -
 23 files changed, 2016 insertions(+), 161 deletions(-)

diff --git a/pom.xml b/pom.xml
index 7bb283f5e29..a2e14fb0c6b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -282,8 +282,8 @@ flexible messaging model and an intuitive client 
API.</description>
     <wagon-ssh-external.version>3.4.3</wagon-ssh-external.version>
     <os-maven-plugin.version>1.7.0</os-maven-plugin.version>
     <jacoco-maven-plugin.version>0.8.8</jacoco-maven-plugin.version>
-    <spotbugs-maven-plugin.version>4.2.2</spotbugs-maven-plugin.version>
-    <spotbugs.version>4.2.2</spotbugs.version>
+    <spotbugs-maven-plugin.version>4.7.3.0</spotbugs-maven-plugin.version>
+    <spotbugs.version>4.7.3</spotbugs.version>
     <errorprone.version>2.5.1</errorprone.version>
     <errorprone.javac.version>9+181-r4173-1</errorprone.javac.version>
     <errorprone-slf4j.version>0.1.4</errorprone-slf4j.version>
diff --git a/pulsar-client-1x-base/pulsar-client-1x/pom.xml 
b/pulsar-client-1x-base/pulsar-client-1x/pom.xml
index dfb78032bc8..5be477dde09 100644
--- a/pulsar-client-1x-base/pulsar-client-1x/pom.xml
+++ b/pulsar-client-1x-base/pulsar-client-1x/pom.xml
@@ -75,6 +75,9 @@
         <groupId>com.github.spotbugs</groupId>
         <artifactId>spotbugs-maven-plugin</artifactId>
         <version>${spotbugs-maven-plugin.version}</version>
+        <configuration>
+          
<excludeFilterFile>${basedir}/src/main/resources/findbugsExclude.xml</excludeFilterFile>
+        </configuration>
         <executions>
           <execution>
             <id>spotbugs</id>
diff --git a/pulsar-websocket/src/main/resources/findbugsExclude.xml 
b/pulsar-client-1x-base/pulsar-client-1x/src/main/resources/findbugsExclude.xml
similarity index 50%
copy from pulsar-websocket/src/main/resources/findbugsExclude.xml
copy to 
pulsar-client-1x-base/pulsar-client-1x/src/main/resources/findbugsExclude.xml
index 1121d71df9b..7938e60bf43 100644
--- a/pulsar-websocket/src/main/resources/findbugsExclude.xml
+++ 
b/pulsar-client-1x-base/pulsar-client-1x/src/main/resources/findbugsExclude.xml
@@ -19,17 +19,30 @@
 
 -->
 <FindBugsFilter>
-  <!-- these public fields may be used in other modules -->
+  <!-- Ignore violations that were present when the rule was enabled -->
   <Match>
-    <Class name="org.apache.pulsar.websocket.data.ConsumerMessage"/>
-    <Bug pattern="URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD"/>
+    <Class name="org.apache.pulsar.client.api.ClientConfiguration"/>
+    <Method name="getConfigurationData"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
   </Match>
   <Match>
-    <Class 
name="org.apache.pulsar.websocket.stats.ProxyTopicStat$ConsumerStats"/>
-    <Bug pattern="URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD"/>
+    <Class name="org.apache.pulsar.client.api.ConsumerConfiguration"/>
+    <Method name="getConfigurationData"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
   </Match>
   <Match>
-    <Class 
name="org.apache.pulsar.websocket.stats.ProxyTopicStat$ProducerStats"/>
-    <Bug pattern="URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD"/>
+    <Class name="org.apache.pulsar.client.api.ProducerConfiguration"/>
+    <Method name="getProducerConfigurationData"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
   </Match>
-</FindBugsFilter>
\ No newline at end of file
+  <Match>
+    <Class name="org.apache.pulsar.client.api.ReaderConfiguration"/>
+    <Method name="getReaderConfigurationData"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.client.impl.v1.ProducerV1Impl"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+</FindBugsFilter>
diff --git a/pulsar-client/src/main/resources/findbugsExclude.xml 
b/pulsar-client/src/main/resources/findbugsExclude.xml
index 39ed71bb2d6..e5f8babe841 100644
--- a/pulsar-client/src/main/resources/findbugsExclude.xml
+++ b/pulsar-client/src/main/resources/findbugsExclude.xml
@@ -69,7 +69,7 @@
         <Class name="org.apache.pulsar.client.impl.schema.BooleanSchema"/>
         <Bug pattern="NP_BOOLEAN_RETURN_NULL"/>
     </Match>
-    
+
     <Match>
         <Class name="org.apache.pulsar.client.impl.schema.SchemaInfoImpl"/>
         <Bug pattern="EI_EXPOSE_REP"/>
@@ -84,7 +84,7 @@
       <Class 
name="org.apache.pulsar.client.impl.schema.SchemaInfoImpl$SchemaInfoImplBuilder"/>
       <Bug pattern="EI_EXPOSE_REP2"/>
     </Match>
-    
+
 
     <Match>
         <Class name="~org.apache.pulsar.client.impl.ConsumerImpl.*"/>
@@ -120,4 +120,891 @@
         <Class name="org.apache.pulsar.client.impl.Hash"/>
         <Bug pattern="NM_SAME_SIMPLE_NAME_AS_INTERFACE"/>
     </Match>
+
+    <!-- Allow existing EI_EXPOSE_REP and EI_EXPOSE_REP2 warnings -->
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.AbstractBatchMessageContainer"/>
+        <Method name="setProducer"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.auth.AuthenticationDataKeyStoreTls"/>
+        <Method name="getTlsKeyStoreParams"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.auth.AuthenticationDataKeyStoreTls"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.auth.oauth2.protocol.TokenExchangeException"/>
+        <Method name="getError"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.auth.oauth2.protocol.TokenExchangeException"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.AutoClusterFailover"/>
+        <Method name="getPulsarClient"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.AutoClusterFailover"/>
+        <Method name="getSecondary"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.AutoClusterFailover"/>
+        <Method name="getSecondaryAuthentications"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.AutoClusterFailover"/>
+        <Method name="getSecondaryTlsTrustCertsFilePaths"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.AutoClusterFailover"/>
+        <Method name="getSecondaryTlsTrustStorePasswords"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.AutoClusterFailover"/>
+        <Method name="getSecondaryTlsTrustStorePaths"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.AutoClusterFailover"/>
+        <Method name="initialize"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.AutoClusterFailover"/>
+        <Method name="setPulsarClient"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.AutoClusterFailover"/>
+        <Method name="setSecondaryTlsTrustStorePasswords"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.AutoClusterFailover"/>
+        <Method name="setSecondaryTlsTrustStorePaths"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.AutoClusterFailover$AutoClusterFailoverBuilderImpl"/>
+        <Method name="secondary"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.AutoClusterFailover$AutoClusterFailoverBuilderImpl"/>
+        <Method name="secondaryAuthentication"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.AutoClusterFailover$AutoClusterFailoverBuilderImpl"/>
+        <Method name="secondaryTlsTrustCertsFilePath"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.AutoClusterFailover$AutoClusterFailoverBuilderImpl"/>
+        <Method name="secondaryTlsTrustStorePassword"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.AutoClusterFailover$AutoClusterFailoverBuilderImpl"/>
+        <Method name="secondaryTlsTrustStorePath"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.BatchMessageIdImpl"/>
+        <Method name="getAcker"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.BatchMessageIdImpl"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.BinaryProtoLookupService"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.ChunkMessageIdImpl"/>
+        <Method name="getFirstChunkMessageId"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.ChunkMessageIdImpl"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.ClientBuilderImpl"/>
+        <Method name="getClientConfigurationData"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.ClientBuilderImpl"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.ClientCnx"/>
+        <Method name="getPendingRequests"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.ClientCnxIdleState"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.ClientConfigurationData"/>
+        <Method name="getAuthParamMap"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.ClientConfigurationData"/>
+        <Method name="getTlsCiphers"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.ClientConfigurationData"/>
+        <Method name="getTlsProtocols"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.ClientConfigurationData"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.ClientConfigurationData"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.ClientConfigurationData"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.ClientConfigurationData"/>
+        <Method name="setAuthParamMap"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.ClientConfigurationData"/>
+        <Method name="setTlsCiphers"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.ClientConfigurationData"/>
+        <Method name="setTlsProtocols"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.ConsumerConfigurationData"/>
+        <Method name="getDeadLetterPolicy"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.ConsumerConfigurationData"/>
+        <Method name="getMessageCrypto"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.ConsumerConfigurationData"/>
+        <Method name="getSubscriptionProperties"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.ConsumerConfigurationData"/>
+        <Method name="getTopicConfigurations"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.ConsumerConfigurationData"/>
+        <Method name="getTopicNames"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.ConsumerConfigurationData"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.ConsumerConfigurationData"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.ConsumerConfigurationData"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.ConsumerConfigurationData"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.ConsumerConfigurationData"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.ConsumerConfigurationData"/>
+        <Method name="setDeadLetterPolicy"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.ConsumerConfigurationData"/>
+        <Method name="setMessageCrypto"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.ConsumerConfigurationData"/>
+        <Method name="setSubscriptionProperties"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.ConsumerConfigurationData"/>
+        <Method name="setTopicConfigurations"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.ConsumerConfigurationData"/>
+        <Method name="setTopicNames"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.DefaultCryptoKeyReaderConfigurationData"/>
+        <Method name="getPrivateKeys"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.DefaultCryptoKeyReaderConfigurationData"/>
+        <Method name="getPublicKeys"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.DefaultCryptoKeyReaderConfigurationData"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.DefaultCryptoKeyReaderConfigurationData"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.DefaultCryptoKeyReaderConfigurationData"/>
+        <Method name="setPrivateKeys"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.DefaultCryptoKeyReaderConfigurationData"/>
+        <Method name="setPublicKeys"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.ProducerConfigurationData"/>
+        <Method name="getEncryptionKeys"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.ProducerConfigurationData"/>
+        <Method name="getMessageCrypto"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.ProducerConfigurationData"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.ProducerConfigurationData"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.ProducerConfigurationData"/>
+        <Method name="setEncryptionKeys"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.ProducerConfigurationData"/>
+        <Method name="setMessageCrypto"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.ReaderConfigurationData"/>
+        <Method name="getKeyHashRanges"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.ReaderConfigurationData"/>
+        <Method name="getReaderInterceptorList"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.ReaderConfigurationData"/>
+        <Method name="getTopicNames"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.ReaderConfigurationData"/>
+        <Method name="setKeyHashRanges"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.ReaderConfigurationData"/>
+        <Method name="setReaderInterceptorList"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.ReaderConfigurationData"/>
+        <Method name="setTopicNames"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.conf.ReaderConfigurationData"/>
+        <Method name="clone"/>
+        <Bug pattern="MC_OVERRIDABLE_METHOD_CALL_IN_CLONE"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.ConnectionPool"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.ConsumerBase"/>
+        <Method name="subscribeFuture"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.ConsumerBuilderImpl"/>
+        <Method name="getClient"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.ConsumerBuilderImpl"/>
+        <Method name="getConf"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.ConsumerBuilderImpl"/>
+        <Method name="getInterceptorList"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.ConsumerBuilderImpl"/>
+        <Method name="getSchema"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.ConsumerImpl"/>
+        <Method name="getConnectionHandler"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.ConsumerImpl"/>
+        <Method name="getPossibleSendToDeadLetterTopicMessages"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.ConsumerImpl"/>
+        <Method name="getUnAckedMessageTracker"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.ConsumerInterceptors"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.ConsumerStatsRecorderImpl"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.ControlledClusterFailover"/>
+        <Method name="initialize"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.ControlledClusterFailover$ControlledClusterFailoverBuilderImpl"/>
+        <Method name="urlProviderHeader"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.MessageImpl"/>
+        <Method name="getBrokerEntryMetadata"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.MessageImpl"/>
+        <Method name="getCnx"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.MessageImpl"/>
+        <Method name="getDataBuffer"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.MessageImpl"/>
+        <Method name="getMessageBuilder"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.MessageImpl"/>
+        <Method name="getProperties"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.MessageImpl"/>
+        <Method name="getSchemaInternal"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.MessageImpl"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.MessageImpl"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.MessageImpl"/>
+        <Method name="setBrokerEntryMetadata"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.MessagePayloadImpl"/>
+        <Method name="getByteBuf"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.MultiMessageIdImpl"/>
+        <Method name="getMap"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.MultiTopicConsumerStatsRecorderImpl"/>
+        <Method name="getPartitionStats"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.MultiTopicsConsumerImpl"/>
+        <Method name="getUnAckedMessageTracker"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.MultiTopicsReaderImpl"/>
+        <Method name="getMultiTopicsConsumer"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.NonPersistentAcknowledgmentGroupingTracker"/>
+        <Method name="of"/>
+        <Bug pattern="MS_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.PartitionedProducerImpl"/>
+        <Method name="getPartitionsAutoUpdateFuture"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.PartitionedTopicProducerStatsRecorderImpl"/>
+        <Method name="getPartitionStats"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.PersistentAcknowledgmentsGroupingTracker"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.ProducerBase"/>
+        <Method name="getConfiguration"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.ProducerBase"/>
+        <Method name="producerCreatedFuture"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.ProducerBuilderImpl"/>
+        <Method name="getClient"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.ProducerBuilderImpl"/>
+        <Method name="getConf"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.ProducerBuilderImpl"/>
+        <Method name="getInterceptorList"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.ProducerBuilderImpl"/>
+        <Method name="getSchema"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.ProducerBuilderImpl"/>
+        <Method name="schema"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.ProducerImpl"/>
+        <Method name="getConnectionHandler"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.ProducerInterceptors"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.ProducerStatsRecorderImpl"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.ProducerStatsRecorderImpl"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.PulsarClientImpl"/>
+        <Method name="getConfiguration"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.PulsarClientImpl"/>
+        <Method name="getState"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.PulsarClientImpl"/>
+        <Method name="getTcClient"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.PulsarClientImpl$PulsarClientImplBuilder"/>
+        <Method name="conf"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.ReaderBuilderImpl"/>
+        <Method name="getClient"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.ReaderBuilderImpl"/>
+        <Method name="getConf"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.ReaderBuilderImpl"/>
+        <Method name="getSchema"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.ReaderImpl"/>
+        <Method name="getConsumer"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.ResetCursorData"/>
+        <Method name="getProperties"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.ResetCursorData"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.ResetCursorData"/>
+        <Method name="setProperties"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.schema.AutoProduceBytesSchema"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.schema.AutoProduceBytesSchema"/>
+        <Method name="setSchema"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.schema.AvroBaseStructSchema"/>
+        <Method name="getAvroSchema"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.schema.generic.GenericAvroRecord"/>
+        <Method name="getAvroRecord"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.schema.generic.GenericAvroRecord"/>
+        <Method name="getNativeObject"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.schema.generic.GenericProtobufNativeRecord"/>
+        <Method name="getNativeObject"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.schema.generic.GenericProtobufNativeRecord"/>
+        <Method name="getProtobufRecord"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.schema.generic.GenericProtobufNativeSchema"/>
+        <Method name="getProtobufNativeSchema"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.schema.generic.GenericSchemaImpl"/>
+        <Method name="getFields"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.schema.generic.MultiVersionSchemaInfoProvider"/>
+        <Method name="getPulsarClient"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.schema.KeyValueSchemaImpl"/>
+        <Method name="getKeySchema"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.schema.KeyValueSchemaImpl"/>
+        <Method name="getValueSchema"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.schema.KeyValueSchemaImpl"/>
+        <Method name="kvBytes"/>
+        <Bug pattern="MS_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.schema.NativeAvroBytesSchema"/>
+        <Method name="setSchema"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.schema.ProtobufNativeSchema$ProtoBufParsingInfo"/>
+        <Method name="getDefinition"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.schema.ProtobufNativeSchema$ProtoBufParsingInfo"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.schema.ProtobufSchema$ProtoBufParsingInfo"/>
+        <Method name="getDefinition"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.schema.ProtobufSchema$ProtoBufParsingInfo"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.schema.reader.AbstractMultiVersionAvroBaseReader"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.schema.reader.AbstractMultiVersionReader"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.schema.reader.AvroReader"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.schema.reader.AvroReader"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.schema.reader.AvroReader"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.schema.reader.MultiVersionAvroReader"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.schema.SchemaDefinitionBuilderImpl"/>
+        <Method name="withClassLoader"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.schema.SchemaDefinitionBuilderImpl"/>
+        <Method name="withProperties"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.schema.SchemaDefinitionBuilderImpl"/>
+        <Method name="withSchemaReader"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.schema.SchemaDefinitionBuilderImpl"/>
+        <Method name="withSchemaWriter"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.schema.SchemaDefinitionImpl"/>
+        <Method name="getClassLoader"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.schema.SchemaDefinitionImpl"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.schema.SchemaDefinitionImpl"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.schema.SchemaDefinitionImpl"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.schema.SchemaDefinitionImpl"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.schema.StructSchema"/>
+        <Method name="getAvroSchema"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.schema.writer.AvroWriter"/>
+        <Method name="getEncoder"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.schema.writer.JacksonJsonWriter"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.schema.writer.JsonWriter"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.TopicListWatcher"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.transaction.TransactionBuilderImpl"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.transaction.TransactionBuilderImpl"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.transaction.TransactionCoordinatorClientImpl"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.transaction.TransactionImpl"/>
+        <Method name="getClient"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.transaction.TransactionImpl"/>
+        <Method name="getOpFuture"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.transaction.TransactionImpl"/>
+        <Method name="getRegisterPartitionMap"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.transaction.TransactionImpl"/>
+        <Method name="getRegisterSubscriptionMap"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.transaction.TransactionImpl"/>
+        <Method name="getTcClient"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.impl.TransactionMetaStoreHandler"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.TypedMessageBuilderImpl"/>
+        <Method name="getContent"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.TypedMessageBuilderImpl"/>
+        <Method name="getMetadataBuilder"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.TypedMessageBuilderImpl"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class name="org.apache.pulsar.client.impl.TypedMessageBuilderImpl"/>
+        <Method name="&lt;init&gt;"/>
+        <Bug pattern="EI_EXPOSE_REP2"/>
+    </Match>
+    <Match>
+        <Class 
name="org.apache.pulsar.client.util.ExecutorProvider$ExtendedThreadFactory"/>
+        <Method name="getThread"/>
+        <Bug pattern="EI_EXPOSE_REP"/>
+    </Match>
 </FindBugsFilter>
diff --git 
a/pulsar-common/src/main/java/org/apache/pulsar/common/naming/NamespaceName.java
 
b/pulsar-common/src/main/java/org/apache/pulsar/common/naming/NamespaceName.java
index 0e8fd9b8f07..a804e7b6506 100644
--- 
a/pulsar-common/src/main/java/org/apache/pulsar/common/naming/NamespaceName.java
+++ 
b/pulsar-common/src/main/java/org/apache/pulsar/common/naming/NamespaceName.java
@@ -22,6 +22,7 @@ import com.google.common.cache.CacheBuilder;
 import com.google.common.cache.CacheLoader;
 import com.google.common.cache.LoadingCache;
 import com.google.common.util.concurrent.UncheckedExecutionException;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.util.Objects;
 import java.util.Optional;
 import java.util.concurrent.ExecutionException;
@@ -89,6 +90,7 @@ public class NamespaceName implements ServiceUnitId {
         return Optional.of(get(namespace));
     }
 
+    @SuppressFBWarnings("DCN_NULLPOINTER_EXCEPTION")
     private NamespaceName(String namespace) {
         // Verify it's a proper namespace
         // The namespace name is composed of <tenant>/<namespace>
diff --git 
a/pulsar-common/src/main/java/org/apache/pulsar/common/naming/TopicName.java 
b/pulsar-common/src/main/java/org/apache/pulsar/common/naming/TopicName.java
index 7987a546304..bab9c443cea 100644
--- a/pulsar-common/src/main/java/org/apache/pulsar/common/naming/TopicName.java
+++ b/pulsar-common/src/main/java/org/apache/pulsar/common/naming/TopicName.java
@@ -23,6 +23,7 @@ import com.google.common.cache.CacheBuilder;
 import com.google.common.cache.CacheLoader;
 import com.google.common.cache.LoadingCache;
 import com.google.common.util.concurrent.UncheckedExecutionException;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.util.List;
 import java.util.Objects;
 import java.util.concurrent.ExecutionException;
@@ -101,6 +102,7 @@ public class TopicName implements ServiceUnitId {
         }
     }
 
+    @SuppressFBWarnings("DCN_NULLPOINTER_EXCEPTION")
     private TopicName(String completeTopicName) {
         try {
             // The topic name can be in two different forms, one is fully 
qualified topic name,
diff --git a/pulsar-functions/api-java/src/main/resources/findbugsExclude.xml 
b/pulsar-functions/api-java/src/main/resources/findbugsExclude.xml
index ddde8120ba5..9638cfcca8d 100644
--- a/pulsar-functions/api-java/src/main/resources/findbugsExclude.xml
+++ b/pulsar-functions/api-java/src/main/resources/findbugsExclude.xml
@@ -19,4 +19,24 @@
 
 -->
 <FindBugsFilter>
+  <Match>
+    <Class name="org.apache.pulsar.functions.api.utils.FunctionRecord"/>
+    <Method name="getProperties"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.api.utils.FunctionRecord"/>
+    <Method name="getSchema"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.api.utils.FunctionRecord$FunctionRecordBuilder"/>
+    <Method name="properties"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.api.utils.FunctionRecord$FunctionRecordBuilder"/>
+    <Method name="schema"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
 </FindBugsFilter>
\ No newline at end of file
diff --git a/pulsar-functions/instance/src/main/resources/findbugsExclude.xml 
b/pulsar-functions/instance/src/main/resources/findbugsExclude.xml
index 5be0700820b..027affbfeb2 100644
--- a/pulsar-functions/instance/src/main/resources/findbugsExclude.xml
+++ b/pulsar-functions/instance/src/main/resources/findbugsExclude.xml
@@ -19,61 +19,527 @@
 
 -->
 <FindBugsFilter>
-    <!-- these public fields may be used in other modules -->
-    <Match>
-        <Class 
name="org.apache.pulsar.functions.instance.ContextImpl$MessageBuilderImpl"/>
-        <Bug pattern="RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT"/>
-    </Match>
-    <Match>
-        <Class 
name="org.apache.pulsar.functions.instance.JavaInstanceRunnable"/>
-        <Bug pattern="IS2_INCONSISTENT_SYNC"/>
-    </Match>
-    <Match>
-        <Class name="org.apache.pulsar.functions.sink.PulsarSink"/>
-        <Bug pattern="RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT"/>
-    </Match>
-    <Match>
-        <Class 
name="org.apache.pulsar.functions.sink.PulsarSink$PulsarSinkEffectivelyOnceProcessor"/>
-        <Bug pattern="RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT"/>
-    </Match>
-    <Match>
-        <Class 
name="org.apache.pulsar.functions.instance.stats.ComponentStatsManager"/>
-        <Bug pattern="MS_MUTABLE_ARRAY"/>
-    </Match>
-    <Match>
-        <Class 
name="org.apache.pulsar.functions.instance.stats.ComponentStatsManager"/>
-        <Bug pattern="EI_EXPOSE_REP2"/>
-    </Match>
-    <Match>
-        <Class 
name="org.apache.pulsar.functions.instance.stats.ComponentStatsManager"/>
-        <Bug pattern="MS_PKGPROTECT"/>
-    </Match>
-    <Match>
-        <Class 
name="org.apache.pulsar.functions.sink.PulsarSink$Crypto$CryptoBuilder"/>
-        <Bug pattern="EI_EXPOSE_REP2"/>
-    </Match>
-    <Match>
-        <Class 
name="org.apache.pulsar.functions.source.batch.BatchSourceExecutor"/>
-        <Bug pattern="UC_USELESS_OBJECT"/>
-    </Match>
-    <Match>
-        <Class name="org.apache.pulsar.functions.source.PulsarSource"/>
-        <Bug pattern="SE_BAD_FIELD"/>
-    </Match>
-    <Match>
-        <Class 
name="org.apache.pulsar.functions.source.MultiConsumerPulsarSource"/>
-        <Bug pattern="SE_BAD_FIELD"/>
-    </Match>
-    <Match>
-        <Class 
name="org.apache.pulsar.functions.source.SingleConsumerPulsarSource"/>
-        <Bug pattern="SE_BAD_FIELD"/>
-    </Match>
-    <Match>
-        <Class 
name="org.apache.pulsar.functions.source.batch.BatchSourceExecutor"/>
-        <Bug pattern="RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT"/>
-    </Match>
-    <Match>
-        <Class name="org.apache.pulsar.functions.source.SerDeSchema"/>
-        <Bug pattern="CN_IDIOM_NO_SUPER_CALL"/>
-    </Match>
+  <!-- these public fields may be used in other modules -->
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.instance.ContextImpl$MessageBuilderImpl"/>
+    <Bug pattern="RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.instance.JavaInstanceRunnable"/>
+    <Bug pattern="IS2_INCONSISTENT_SYNC"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.sink.PulsarSink"/>
+    <Bug pattern="RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.sink.PulsarSink$PulsarSinkEffectivelyOnceProcessor"/>
+    <Bug pattern="RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.instance.stats.ComponentStatsManager"/>
+    <Bug pattern="MS_MUTABLE_ARRAY"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.instance.stats.ComponentStatsManager"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.instance.stats.ComponentStatsManager"/>
+    <Bug pattern="MS_PKGPROTECT"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.sink.PulsarSink$Crypto$CryptoBuilder"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.source.batch.BatchSourceExecutor"/>
+    <Bug pattern="UC_USELESS_OBJECT"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.source.PulsarSource"/>
+    <Bug pattern="SE_BAD_FIELD"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.source.MultiConsumerPulsarSource"/>
+    <Bug pattern="SE_BAD_FIELD"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.source.SingleConsumerPulsarSource"/>
+    <Bug pattern="SE_BAD_FIELD"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.source.batch.BatchSourceExecutor"/>
+    <Bug pattern="RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.source.SerDeSchema"/>
+    <Bug pattern="CN_IDIOM_NO_SUPER_CALL"/>
+  </Match>
+  <!-- Ignore violations that were present when the rule was enabled -->
+  <Match>
+    <Class name="org.apache.pulsar.functions.instance.InstanceConfig"/>
+    <Method name="getAdditionalJavaRuntimeArguments"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.instance.InstanceConfig"/>
+    <Method name="getFunctionAuthenticationSpec"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.instance.InstanceConfig"/>
+    <Method name="getFunctionDetails"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.instance.InstanceConfig"/>
+    <Method name="setAdditionalJavaRuntimeArguments"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.instance.InstanceConfig"/>
+    <Method name="setFunctionAuthenticationSpec"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.instance.InstanceConfig"/>
+    <Method name="setFunctionDetails"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.instance.JavaExecutionResult"/>
+    <Method name="getSystemException"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.instance.JavaExecutionResult"/>
+    <Method name="getUserException"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.instance.JavaExecutionResult"/>
+    <Method name="setSystemException"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.instance.JavaExecutionResult"/>
+    <Method name="setUserException"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.instance.JavaInstance"/>
+    <Method name="getPendingAsyncRequests"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.instance.JavaInstance"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.instance.JavaInstance"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.instance.JavaInstance$AsyncFuncRequest"/>
+    <Method name="getProcessResult"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.instance.JavaInstance$AsyncFuncRequest"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.instance.JavaInstanceRunnable"/>
+    <Method name="getDeathException"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.instance.JavaInstanceRunnable"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.instance.JavaInstanceRunnable"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.instance.JavaInstanceRunnable"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.instance.JavaInstanceRunnable"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.instance.JavaInstanceRunnable"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.instance.OutputRecordSinkRecord"/>
+    <Method name="getSchema"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.instance.stats.FunctionStatsManager"/>
+    <Method name="getLatestSinkExceptions"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.instance.stats.FunctionStatsManager"/>
+    <Method name="getLatestSourceExceptions"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.instance.stats.FunctionStatsManager"/>
+    <Method name="getLatestSystemExceptions"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.instance.stats.FunctionStatsManager"/>
+    <Method name="getLatestUserExceptions"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.instance.stats.FunctionStatsManager"/>
+    <Method name="getSinkExceptions"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.instance.stats.FunctionStatsManager"/>
+    <Method name="getSourceExceptions"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.instance.stats.FunctionStatsManager"/>
+    <Method name="getStatProcessLatency"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.instance.stats.FunctionStatsManager"/>
+    <Method name="getStatProcessLatency1min"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.instance.stats.FunctionStatsManager"/>
+    <Method name="getStatTotalProcessedSuccessfully"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.instance.stats.FunctionStatsManager"/>
+    <Method name="getStatTotalProcessedSuccessfully1min"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.instance.stats.FunctionStatsManager"/>
+    <Method name="getStatTotalRecordsReceived"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.instance.stats.FunctionStatsManager"/>
+    <Method name="getStatTotalRecordsReceived1min"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.instance.stats.FunctionStatsManager"/>
+    <Method name="getStatTotalSysExceptions"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.instance.stats.FunctionStatsManager"/>
+    <Method name="getStatTotalSysExceptions1min"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.instance.stats.FunctionStatsManager"/>
+    <Method name="getStatTotalUserExceptions"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.instance.stats.FunctionStatsManager"/>
+    <Method name="getStatTotalUserExceptions1min"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.instance.stats.FunctionStatsManager"/>
+    <Method name="getStatlastInvocation"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.instance.stats.FunctionStatsManager"/>
+    <Method name="getStatlastInvocationChild"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.instance.stats.FunctionStatsManager"/>
+    <Method name="getSysExceptionRateLimiter"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.instance.stats.FunctionStatsManager"/>
+    <Method name="getSysExceptions"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.instance.stats.FunctionStatsManager"/>
+    <Method name="getUserExceptionRateLimiter"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.instance.stats.FunctionStatsManager"/>
+    <Method name="getUserExceptions"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.instance.stats.FunctionStatsManager"/>
+    <Method name="setLatestSystemExceptions"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.instance.stats.FunctionStatsManager"/>
+    <Method name="setLatestUserExceptions"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.instance.stats.SinkStatsManager"/>
+    <Method name="getLatestSinkExceptions"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.instance.stats.SinkStatsManager"/>
+    <Method name="getLatestSourceExceptions"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.instance.stats.SinkStatsManager"/>
+    <Method name="getLatestSystemExceptions"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.instance.stats.SinkStatsManager"/>
+    <Method name="getLatestUserExceptions"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.instance.stats.SourceStatsManager"/>
+    <Method name="getLatestSourceExceptions"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.instance.stats.SourceStatsManager"/>
+    <Method name="getLatestSystemExceptions"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.sink.PulsarSink"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.sink.PulsarSink"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.sink.PulsarSink"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.sink.PulsarSink"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.sink.PulsarSinkConfig"/>
+    <Method name="getProducerConfig"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.sink.PulsarSinkConfig"/>
+    <Method name="getSchemaProperties"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.sink.PulsarSinkConfig"/>
+    <Method name="setProducerConfig"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.sink.PulsarSinkConfig"/>
+    <Method name="setSchemaProperties"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.source.batch.BatchSourceExecutor"/>
+    <Method name="open"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.source.MultiConsumerPulsarSource"/>
+    <Method name="getInputConsumers"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.source.MultiConsumerPulsarSource"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.source.MultiConsumerPulsarSource"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.source.MultiConsumerPulsarSourceConfig"/>
+    <Method name="getTopicSchema"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.source.MultiConsumerPulsarSourceConfig"/>
+    <Method name="setTopicSchema"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.source.PulsarFunctionRecord"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.source.PulsarRecord"/>
+    <Method name="getSchema"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.source.PulsarRecord$PulsarRecordBuilder"/>
+    <Method name="schema"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.source.PulsarSourceConsumerConfig$PulsarSourceConsumerConfigBuilder"/>
+    <Method name="consumerProperties"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.source.PulsarSourceConsumerConfig$PulsarSourceConsumerConfigBuilder"/>
+    <Method name="schema"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.source.SingleConsumerPulsarSource"/>
+    <Method name="getInputConsumers"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.source.SingleConsumerPulsarSource"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.source.SingleConsumerPulsarSource"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.source.SingleConsumerPulsarSource"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.source.SingleConsumerPulsarSourceConfig"/>
+    <Method name="getConsumerConfig"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.source.SingleConsumerPulsarSourceConfig"/>
+    <Method name="setConsumerConfig"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.windowing.triggers.CountTriggerPolicy"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.windowing.triggers.TimeTriggerPolicy"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.windowing.triggers.WatermarkCountTriggerPolicy"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.windowing.triggers.WatermarkCountTriggerPolicy"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.windowing.triggers.WatermarkTimeTriggerPolicy"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.windowing.triggers.WatermarkTimeTriggerPolicy"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.windowing.WaterMarkEventGenerator"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.windowing.WaterMarkEventGenerator"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.windowing.WindowImpl"/>
+    <Method name="get"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.windowing.WindowImpl"/>
+    <Method name="getExpired"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.windowing.WindowImpl"/>
+    <Method name="getNew"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.windowing.WindowImpl"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.windowing.WindowImpl"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.windowing.WindowImpl"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.windowing.WindowManager"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.windowing.WindowManager"/>
+    <Method name="setEvictionPolicy"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
 </FindBugsFilter>
diff --git a/pulsar-functions/localrun/src/main/resources/findbugsExclude.xml 
b/pulsar-functions/localrun/src/main/resources/findbugsExclude.xml
index 719b711d656..ad183eb5d94 100644
--- a/pulsar-functions/localrun/src/main/resources/findbugsExclude.xml
+++ b/pulsar-functions/localrun/src/main/resources/findbugsExclude.xml
@@ -19,8 +19,39 @@
 
 -->
 <FindBugsFilter>
-    <Match>
-        <Class name="org.apache.pulsar.functions.LocalRunner"/>
-        <Bug pattern="REC_CATCH_EXCEPTION"/>
-    </Match>
-</FindBugsFilter>
\ No newline at end of file
+  <Match>
+    <Class name="org.apache.pulsar.functions.LocalRunner"/>
+    <Bug pattern="REC_CATCH_EXCEPTION"/>
+  </Match>
+  <!-- Ignore violations that were present when the rule was enabled -->
+  <Match>
+    <Class name="org.apache.pulsar.functions.LocalRunner"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.LocalRunner"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.LocalRunner"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.LocalRunner$LocalRunnerBuilder"/>
+    <Method name="functionConfig"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.LocalRunner$LocalRunnerBuilder"/>
+    <Method name="sinkConfig"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.functions.LocalRunner$LocalRunnerBuilder"/>
+    <Method name="sourceConfig"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+</FindBugsFilter>
diff --git a/pulsar-functions/secrets/src/main/resources/findbugsExclude.xml 
b/pulsar-functions/secrets/src/main/resources/findbugsExclude.xml
index ddde8120ba5..0cab8ae6a41 100644
--- a/pulsar-functions/secrets/src/main/resources/findbugsExclude.xml
+++ b/pulsar-functions/secrets/src/main/resources/findbugsExclude.xml
@@ -19,4 +19,14 @@
 
 -->
 <FindBugsFilter>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.secretsproviderconfigurator.NameAndConfigBasedSecretsProviderConfigurator"/>
+    <Method name="getSecretsProviderConfig"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.functions.secretsproviderconfigurator.NameAndConfigBasedSecretsProviderConfigurator"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
 </FindBugsFilter>
\ No newline at end of file
diff --git 
a/pulsar-io/batch-data-generator/src/main/resources/findbugsExclude.xml 
b/pulsar-io/batch-data-generator/src/main/resources/findbugsExclude.xml
index 07f4609cfff..0b1652ef628 100644
--- a/pulsar-io/batch-data-generator/src/main/resources/findbugsExclude.xml
+++ b/pulsar-io/batch-data-generator/src/main/resources/findbugsExclude.xml
@@ -19,4 +19,35 @@
 
 -->
 <FindBugsFilter>
+  <!-- Ignore violations that were present when the rule was enabled -->
+  <Match>
+    <Class name="org.apache.pulsar.io.batchdatagenerator.Person"/>
+    <Method name="getAddress"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.io.batchdatagenerator.Person"/>
+    <Method name="getCompany"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.io.batchdatagenerator.Person"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.io.batchdatagenerator.Person"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.io.batchdatagenerator.Person"/>
+    <Method name="setAddress"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.io.batchdatagenerator.Person"/>
+    <Method name="setCompany"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
 </FindBugsFilter>
diff --git a/pulsar-io/hdfs2/src/main/resources/findbugsExclude.xml 
b/pulsar-io/hdfs2/src/main/resources/findbugsExclude.xml
index ddde8120ba5..980349c4d8d 100644
--- a/pulsar-io/hdfs2/src/main/resources/findbugsExclude.xml
+++ b/pulsar-io/hdfs2/src/main/resources/findbugsExclude.xml
@@ -19,4 +19,40 @@
 
 -->
 <FindBugsFilter>
-</FindBugsFilter>
\ No newline at end of file
+  <!-- Ignore violations that were present when the rule was enabled -->
+  <Match>
+    <Class name="org.apache.pulsar.io.hdfs2.HdfsResources"/>
+    <Method name="getConfiguration"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.io.hdfs2.HdfsResources"/>
+    <Method name="getFileSystem"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.io.hdfs2.HdfsResources"/>
+    <Method name="getUserGroupInformation"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.io.hdfs2.HdfsResources"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.io.hdfs2.HdfsResources"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.io.hdfs2.HdfsResources"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.io.hdfs2.sink.HdfsSyncThread"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+</FindBugsFilter>
diff --git a/pulsar-io/hdfs3/src/main/resources/findbugsExclude.xml 
b/pulsar-io/hdfs3/src/main/resources/findbugsExclude.xml
index ddde8120ba5..2dce75b3451 100644
--- a/pulsar-io/hdfs3/src/main/resources/findbugsExclude.xml
+++ b/pulsar-io/hdfs3/src/main/resources/findbugsExclude.xml
@@ -19,4 +19,40 @@
 
 -->
 <FindBugsFilter>
-</FindBugsFilter>
\ No newline at end of file
+  <!-- Ignore violations that were present when the rule was enabled -->
+  <Match>
+    <Class name="org.apache.pulsar.io.hdfs3.HdfsResources"/>
+    <Method name="getConfiguration"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.io.hdfs3.HdfsResources"/>
+    <Method name="getFileSystem"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.io.hdfs3.HdfsResources"/>
+    <Method name="getUserGroupInformation"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.io.hdfs3.HdfsResources"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.io.hdfs3.HdfsResources"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.io.hdfs3.HdfsResources"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.io.hdfs3.sink.HdfsSyncThread"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+</FindBugsFilter>
diff --git a/pulsar-io/kafka/src/main/resources/findbugsExclude.xml 
b/pulsar-io/kafka/src/main/resources/findbugsExclude.xml
index f49ff86c90c..3fc8f67c864 100644
--- a/pulsar-io/kafka/src/main/resources/findbugsExclude.xml
+++ b/pulsar-io/kafka/src/main/resources/findbugsExclude.xml
@@ -1,22 +1,98 @@
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-
--->
-<FindBugsFilter>
-</FindBugsFilter>
\ No newline at end of file
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<FindBugsFilter>
+  <!-- Ignore violations that were present when the rule was enabled -->
+  <Match>
+    <Class name="org.apache.pulsar.io.kafka.BytesWithKafkaSchema"/>
+    <Method name="getValue"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.io.kafka.BytesWithKafkaSchema"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.io.kafka.KafkaAbstractSource$KafkaRecord"/>
+    <Method name="getCompletableFuture"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.io.kafka.KafkaAbstractSource$KafkaRecord"/>
+    <Method name="getProperties"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.io.kafka.KafkaAbstractSource$KafkaRecord"/>
+    <Method name="getSchema"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.io.kafka.KafkaAbstractSource$KafkaRecord"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.io.kafka.KafkaAbstractSource$KafkaRecord"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.io.kafka.KafkaAbstractSource$KeyValueKafkaRecord"/>
+    <Method name="getKeySchema"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.io.kafka.KafkaAbstractSource$KeyValueKafkaRecord"/>
+    <Method name="getValueSchema"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.io.kafka.KafkaAbstractSource$KeyValueKafkaRecord"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.io.kafka.KafkaAbstractSource$KeyValueKafkaRecord"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.io.kafka.KafkaSinkConfig"/>
+    <Method name="getProducerConfigProperties"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.io.kafka.KafkaSinkConfig"/>
+    <Method name="setProducerConfigProperties"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.io.kafka.KafkaSourceConfig"/>
+    <Method name="getConsumerConfigProperties"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.io.kafka.KafkaSourceConfig"/>
+    <Method name="setConsumerConfigProperties"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+</FindBugsFilter>
diff --git 
a/pulsar-package-management/core/src/main/resources/findbugsExclude.xml 
b/pulsar-package-management/core/src/main/resources/findbugsExclude.xml
index 07f4609cfff..3a2e998dce9 100644
--- a/pulsar-package-management/core/src/main/resources/findbugsExclude.xml
+++ b/pulsar-package-management/core/src/main/resources/findbugsExclude.xml
@@ -19,4 +19,20 @@
 
 -->
 <FindBugsFilter>
+  <!-- Ignore violations that were present when the rule was enabled -->
+  <Match>
+    <Class 
name="org.apache.pulsar.packages.management.core.impl.DefaultPackagesStorageConfiguration"/>
+    <Method name="getProperties"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.packages.management.core.impl.DefaultPackagesStorageConfiguration"/>
+    <Method name="setProperty"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.packages.management.core.impl.PackagesManagementImpl"/>
+    <Method name="initialize"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
 </FindBugsFilter>
diff --git 
a/pulsar-transaction/coordinator/src/main/resources/findbugsExclude.xml 
b/pulsar-transaction/coordinator/src/main/resources/findbugsExclude.xml
index 32fd17d259e..a81fce11f4d 100644
--- a/pulsar-transaction/coordinator/src/main/resources/findbugsExclude.xml
+++ b/pulsar-transaction/coordinator/src/main/resources/findbugsExclude.xml
@@ -19,8 +19,64 @@
 
 -->
 <FindBugsFilter>
-    <Match>
-        <Class name="~org.apache.pulsar.transaction.coordinator.proto.*"/>
-        <Bug pattern="UUF_UNUSED_FIELD"/>
-    </Match>
+  <Match>
+    <Class name="~org.apache.pulsar.transaction.coordinator.proto.*"/>
+    <Bug pattern="UUF_UNUSED_FIELD"/>
+  </Match>
+  <!-- Ignore violations that were present when the rule was enabled -->
+  <Match>
+    <Class 
name="org.apache.pulsar.transaction.coordinator.impl.MLTransactionLogImpl"/>
+    <Method name="getManagedLedger"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.transaction.coordinator.impl.MLTransactionLogImpl"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.transaction.coordinator.impl.MLTransactionLogImpl"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.transaction.coordinator.impl.MLTransactionLogImpl"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.transaction.coordinator.impl.MLTransactionMetadataStore"/>
+    <Method name="getMetadataStoreStats"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.transaction.coordinator.impl.MLTransactionMetadataStore"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.transaction.coordinator.impl.MLTransactionMetadataStore"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.transaction.coordinator.impl.TxnLogBufferedWriter"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.transaction.coordinator.impl.TxnLogBufferedWriterMetricsStats"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.transaction.coordinator.proto.BatchedTransactionMetadataEntry"/>
+    <Method name="parseFrom"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.transaction.coordinator.proto.TransactionMetadataEntry"/>
+    <Method name="parseFrom"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
 </FindBugsFilter>
diff --git a/pulsar-websocket/src/main/resources/findbugsExclude.xml 
b/pulsar-websocket/src/main/resources/findbugsExclude.xml
index 1121d71df9b..b7f6b0bf31d 100644
--- a/pulsar-websocket/src/main/resources/findbugsExclude.xml
+++ b/pulsar-websocket/src/main/resources/findbugsExclude.xml
@@ -32,4 +32,171 @@
     <Class 
name="org.apache.pulsar.websocket.stats.ProxyTopicStat$ProducerStats"/>
     <Bug pattern="URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD"/>
   </Match>
+
+  <!-- ignore existing violations when the rule was enabled -->
+  <Match>
+    <Class name="org.apache.pulsar.websocket.AbstractWebSocketHandler"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.websocket.admin.WebSocketWebResource"/>
+    <Method name="authData"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.websocket.data.ProducerAcks"/>
+    <Method name="getMessagePublishResults"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.websocket.data.ProducerAcks"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.websocket.data.ProducerAcks"/>
+    <Method name="setMessagePublishResults"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.websocket.data.ProducerMessages"/>
+    <Method name="getMessages"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.websocket.data.ProducerMessages"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.websocket.data.ProducerMessages"/>
+    <Method name="setMessages"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.websocket.ProducerHandler"/>
+    <Method name="onWebSocketText"/>
+    <Bug pattern="DCN_NULLPOINTER_EXCEPTION"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.websocket.ProducerHandler"/>
+    <Method name="getPublishLatencyStatsUSec"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.websocket.ProducerHandler"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.websocket.service.ProxyServer"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.websocket.service.WebSocketProxyConfiguration"/>
+    <Method name="getAuthenticationProviders"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.websocket.service.WebSocketProxyConfiguration"/>
+    <Method name="getProperties"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.websocket.service.WebSocketProxyConfiguration"/>
+    <Method name="getSuperUserRoles"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.websocket.service.WebSocketProxyConfiguration"/>
+    <Method name="getWebServiceTlsCiphers"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.websocket.service.WebSocketProxyConfiguration"/>
+    <Method name="getWebServiceTlsProtocols"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.websocket.service.WebSocketProxyConfiguration"/>
+    <Method name="setAuthenticationProviders"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.websocket.service.WebSocketProxyConfiguration"/>
+    <Method name="setProperties"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.websocket.service.WebSocketProxyConfiguration"/>
+    <Method name="setSuperUserRoles"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.websocket.service.WebSocketProxyConfiguration"/>
+    <Method name="setWebServiceTlsCiphers"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.pulsar.websocket.service.WebSocketProxyConfiguration"/>
+    <Method name="setWebServiceTlsProtocols"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.websocket.stats.ProxyStats"/>
+    <Method name="getMetrics"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.websocket.stats.ProxyStats"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.websocket.WebSocketConsumerServlet"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.websocket.WebSocketPingPongServlet"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.websocket.WebSocketProducerServlet"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.websocket.WebSocketReaderServlet"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.websocket.WebSocketService"/>
+    <Method name="getConfig"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.websocket.WebSocketService"/>
+    <Method name="getConsumers"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.websocket.WebSocketService"/>
+    <Method name="getProducers"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.websocket.WebSocketService"/>
+    <Method name="getReaders"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class name="org.apache.pulsar.websocket.WebSocketService"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
 </FindBugsFilter>
\ No newline at end of file
diff --git a/tiered-storage/file-system/pom.xml 
b/tiered-storage/file-system/pom.xml
index 04d67c33e55..117267305e4 100644
--- a/tiered-storage/file-system/pom.xml
+++ b/tiered-storage/file-system/pom.xml
@@ -152,7 +152,7 @@
                 <artifactId>spotbugs-maven-plugin</artifactId>
                 <version>${spotbugs-maven-plugin.version}</version>
                 <configuration>
-                    
<excludeFilterFile>${basedir}/../src/main/resources/findbugsExclude.xml</excludeFilterFile>
+                    
<excludeFilterFile>${basedir}/src/main/resources/findbugsExclude.xml</excludeFilterFile>
                 </configuration>
                 <executions>
                     <execution>
diff --git a/pulsar-websocket/src/main/resources/findbugsExclude.xml 
b/tiered-storage/file-system/src/main/resources/findbugsExclude.xml
similarity index 58%
copy from pulsar-websocket/src/main/resources/findbugsExclude.xml
copy to tiered-storage/file-system/src/main/resources/findbugsExclude.xml
index 1121d71df9b..051f0e68e25 100644
--- a/pulsar-websocket/src/main/resources/findbugsExclude.xml
+++ b/tiered-storage/file-system/src/main/resources/findbugsExclude.xml
@@ -19,17 +19,20 @@
 
 -->
 <FindBugsFilter>
-  <!-- these public fields may be used in other modules -->
+  <!-- Ignore violations that were present when the rule was enabled -->
   <Match>
-    <Class name="org.apache.pulsar.websocket.data.ConsumerMessage"/>
-    <Bug pattern="URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD"/>
+    <Class 
name="org.apache.bookkeeper.mledger.offload.filesystem.impl.FileSystemManagedLedgerOffloader"/>
+    <Method name="getOffloadPolicies"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
   </Match>
   <Match>
-    <Class 
name="org.apache.pulsar.websocket.stats.ProxyTopicStat$ConsumerStats"/>
-    <Bug pattern="URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD"/>
+    <Class 
name="org.apache.bookkeeper.mledger.offload.filesystem.impl.FileSystemManagedLedgerOffloader"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
   </Match>
   <Match>
-    <Class 
name="org.apache.pulsar.websocket.stats.ProxyTopicStat$ProducerStats"/>
-    <Bug pattern="URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD"/>
+    <Class 
name="org.apache.bookkeeper.mledger.offload.filesystem.impl.FileSystemManagedLedgerOffloader"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
   </Match>
-</FindBugsFilter>
\ No newline at end of file
+</FindBugsFilter>
diff --git a/tiered-storage/jcloud/pom.xml b/tiered-storage/jcloud/pom.xml
index 4936d3eaf86..c1c1ca76f10 100644
--- a/tiered-storage/jcloud/pom.xml
+++ b/tiered-storage/jcloud/pom.xml
@@ -115,7 +115,7 @@
       </exclusions>
       <scope>runtime</scope>
     </dependency>
-    
+
     <dependency>
       <groupId>com.sun.activation</groupId>
       <artifactId>javax.activation</artifactId>
@@ -135,7 +135,7 @@
         <artifactId>spotbugs-maven-plugin</artifactId>
         <version>${spotbugs-maven-plugin.version}</version>
         <configuration>
-          
<excludeFilterFile>${basedir}/../src/main/resources/findbugsExclude.xml</excludeFilterFile>
+          
<excludeFilterFile>${basedir}/src/main/resources/findbugsExclude.xml</excludeFilterFile>
         </configuration>
         <executions>
           <execution>
diff --git a/tiered-storage/jcloud/src/main/resources/findbugsExclude.xml 
b/tiered-storage/jcloud/src/main/resources/findbugsExclude.xml
new file mode 100644
index 00000000000..a8a9b9aae92
--- /dev/null
+++ b/tiered-storage/jcloud/src/main/resources/findbugsExclude.xml
@@ -0,0 +1,48 @@
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<FindBugsFilter>
+  <!-- Ignore violations that were present when the rule was enabled -->
+  <Match>
+    <Class 
name="org.apache.bookkeeper.mledger.offload.jcloud.impl.BlobStoreBackedInputStreamImpl"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.bookkeeper.mledger.offload.jcloud.impl.BlobStoreManagedLedgerOffloader"/>
+    <Method name="streamingOffload"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.bookkeeper.mledger.offload.jcloud.impl.BufferedOffloadStream"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.bookkeeper.mledger.offload.jcloud.provider.TieredStorageConfiguration"/>
+    <Method name="getConfigProperties"/>
+    <Bug pattern="EI_EXPOSE_REP"/>
+  </Match>
+  <Match>
+    <Class 
name="org.apache.bookkeeper.mledger.offload.jcloud.provider.TieredStorageConfiguration"/>
+    <Method name="&lt;init&gt;"/>
+    <Bug pattern="EI_EXPOSE_REP2"/>
+  </Match>
+</FindBugsFilter>
diff --git a/tiered-storage/pom.xml b/tiered-storage/pom.xml
index ac5d21a990b..cc55203a234 100644
--- a/tiered-storage/pom.xml
+++ b/tiered-storage/pom.xml
@@ -40,26 +40,4 @@
     <module>jcloud</module>
     <module>file-system</module>
   </modules>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>com.github.spotbugs</groupId>
-        <artifactId>spotbugs-maven-plugin</artifactId>
-        <version>${spotbugs-maven-plugin.version}</version>
-        <configuration>
-          
<excludeFilterFile>${basedir}/src/main/resources/findbugsExclude.xml</excludeFilterFile>
-        </configuration>
-        <executions>
-          <execution>
-            <id>spotbugs</id>
-            <phase>verify</phase>
-            <goals>
-              <goal>check</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
 </project>
diff --git a/tiered-storage/src/main/resources/findbugsExclude.xml 
b/tiered-storage/src/main/resources/findbugsExclude.xml
deleted file mode 100644
index 5a9926c0e81..00000000000
--- a/tiered-storage/src/main/resources/findbugsExclude.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-
--->
-<FindBugsFilter>
-    <Match>
-        <Class name="~org.apache.zookeeper.*"/>
-        <Bug pattern="DM_EXIT,DM_DEFAULT_ENCODING"/>
-    </Match>
-</FindBugsFilter>


Reply via email to