You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by pe...@apache.org on 2021/09/09 06:58:57 UTC

[pulsar] branch branch-2.8 updated (ffbb658 -> 0873c09)

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

penghui pushed a change to branch branch-2.8
in repository https://gitbox.apache.org/repos/asf/pulsar.git.


    from ffbb658  Bump version to 2.8.2-SNAPSHOT (#11949)
     new 77d305f  fix improper class/method/field modifiers (#10837)
     new 3d57af1  Increase the test stability of transactionTest (#11541)
     new 5d0ec65  [C++] Fixing use-after-free and constructor bugs in UnAckedMessageTrackerEnabled (#11630)
     new 054f25a  [Security] Upgrade Jetty to 9.4.43.v20210629 (#11660)
     new 26cb0cd  Check null or empty instead of catch NPE (#11655) (#11655)
     new 21350c9  Avoid to cal getMaximumRolloverTimeMs everytime (#11513)
     new 0873c09  Fix race condition in concurrent schema deletion (#11606)

The 7 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 build/docker/protobuf.patch                        |  2 +-
 .../src/main/resources/pulsar/checkstyle.xml       |  1 +
 distribution/server/src/assemble/LICENSE.bin.txt   | 38 ++++++++--------
 .../impl/EntryCacheDefaultEvictionPolicy.java      |  2 +-
 .../bookkeeper/mledger/impl/EntryCacheImpl.java    |  2 +-
 .../bookkeeper/mledger/impl/ManagedLedgerImpl.java |  8 ++--
 pom.xml                                            |  2 +-
 .../broker/authentication/SaslRoleToken.java       |  2 +-
 .../AuthenticationProviderBasic.java               |  4 +-
 .../AuthenticationProviderToken.java               | 20 ++++----
 .../broker/loadbalance/impl/OverloadShedder.java   |  2 +-
 .../broker/loadbalance/impl/ThresholdShedder.java  |  2 +-
 .../broker/resourcegroup/ResourceGroupService.java | 21 +++------
 .../pulsar/broker/service/AbstractTopic.java       |  3 +-
 .../pulsar/broker/service/BrokerService.java       |  2 +-
 .../ReplicatedSubscriptionsController.java         |  2 +-
 .../ReplicatedSubscriptionsSnapshotBuilder.java    |  2 +-
 .../service/schema/AlwaysSchemaValidator.java      |  2 +-
 .../service/schema/BookkeeperSchemaStorage.java    | 52 +++++++++++++++++----
 .../service/schema/NeverSchemaValidator.java       |  4 +-
 .../broker/stats/ClusterReplicationMetrics.java    |  2 +-
 .../stats/prometheus/TransactionAggregator.java    |  4 +-
 .../timeout/TransactionTimeoutTrackerImpl.java     |  2 +-
 .../apache/pulsar/client/impl/RawMessageImpl.java  |  2 +-
 .../apache/pulsar/client/impl/RawReaderImpl.java   |  2 +-
 .../pulsar/compaction/CompactedTopicImpl.java      |  6 +--
 .../pulsar/broker/auth/MockAuthentication.java     |  2 +-
 .../OwnerShipCacheForCurrentServerTest.java        |  6 +--
 .../OwnerShipForCurrentServerTestBase.java         |  2 +-
 .../broker/service/PersistentTopicE2ETest.java     | 27 +++++++++++
 .../pulsar/broker/service/ReplicatorTestBase.java  |  4 +-
 .../service/persistent/MessageDuplicationTest.java |  6 +--
 .../broker/service/schema/SchemaServiceTest.java   | 14 +++---
 .../TopicTransactionBufferRecoverTest.java         | 23 ++++++----
 .../TransactionClientReconnectTest.java            |  8 ++--
 .../broker/transaction/TransactionConsumeTest.java |  6 +--
 .../broker/transaction/TransactionProduceTest.java | 25 +++++-----
 .../pulsar/broker/transaction/TransactionTest.java |  4 +-
 .../broker/transaction/TransactionTestBase.java    | 26 +++++++----
 .../buffer/TransactionLowWaterMarkTest.java        |  6 +--
 .../buffer/TransactionStablePositionTest.java      |  6 +--
 .../pendingack/PendingAckInMemoryDeleteTest.java   | 23 +++-------
 .../pendingack/PendingAckPersistentTest.java       |  6 +--
 .../api/AuthorizationProducerConsumerTest.java     |  4 +-
 .../client/impl/ConsumerAckResponseTest.java       |  2 +-
 .../client/impl/TransactionEndToEndTest.java       | 19 ++++----
 .../pulsar/schema/PartitionedTopicSchemaTest.java  |  6 +--
 .../java/org/apache/pulsar/schema/SchemaTest.java  |  2 +-
 .../SchemaCompatibilityCheckTest.java              |  2 +-
 .../SchemaTypeCompatibilityCheckTest.java          |  8 ++--
 .../data/loadbalancer/NamespaceBundleStats.java    |  8 ++--
 .../pulsar/client/admin/internal/TopicsImpl.java   |  4 +-
 .../client/impl/auth/AuthenticationSasl.java       |  4 +-
 pulsar-client-cpp/lib/ClientImpl.cc                |  2 +-
 .../lib/UnAckedMessageTrackerEnabled.cc            | 19 ++++----
 .../lib/UnAckedMessageTrackerEnabled.h             |  2 +-
 .../org/apache/pulsar/admin/cli/CliCommand.java    |  2 +-
 .../org/apache/pulsar/client/impl/HttpClient.java  |  4 +-
 .../org/apache/pulsar/client/impl/MessageImpl.java |  4 +-
 .../client/impl/auth/AuthenticationDataBasic.java  |  2 +-
 .../client/impl/auth/AuthenticationDataToken.java  |  2 +-
 .../impl/auth/AuthenticationKeyStoreTls.java       | 10 ++--
 .../pulsar/client/impl/auth/AuthenticationTls.java |  2 +-
 .../impl/auth/oauth2/protocol/TokenClient.java     |  4 +-
 .../impl/schema/generic/GenericAvroSchema.java     |  2 +-
 .../pulsar/client/util/RetryMessageUtil.java       | 16 +++----
 .../pulsar/client/impl/ConnectionTimeoutTest.java  |  2 +-
 .../generic/GenericProtobufNativeReaderTest.java   |  4 +-
 .../generic/GenericProtobufNativeSchemaTest.java   |  4 +-
 .../org/apache/pulsar/common/functions/Utils.java  |  6 +--
 .../apache/pulsar/common/naming/NamespaceName.java | 53 ++++++----------------
 .../common/policies/data/OffloadPoliciesImpl.java  | 26 +++++------
 .../apache/pulsar/common/protocol/Commands.java    |  4 +-
 .../common/protocol/schema/BytesSchemaVersion.java |  2 +-
 .../org/apache/pulsar/common/stats/JvmMetrics.java |  2 +-
 .../pulsar/common/util/SimpleTextOutputStream.java |  2 +-
 .../common/util/collections/BitSetRecyclable.java  |  6 +--
 .../util/collections/ConcurrentLongPairSet.java    |  2 +-
 .../util/collections/ConcurrentOpenHashMap.java    |  2 +-
 .../util/collections/ConcurrentOpenHashSet.java    |  2 +-
 .../collections/GrowableArrayBlockingQueue.java    |  2 +-
 .../collections/GrowablePriorityLongPairQueue.java |  2 +-
 .../collections/ConcurrentLongHashMapTest.java     |  6 +--
 .../collections/ConcurrentOpenHashMapTest.java     |  6 +--
 .../discovery/service/DiscoveryServiceTest.java    |  4 +-
 .../pulsar/functions/instance/ContextImpl.java     |  2 +-
 .../instance/stats/ComponentStatsManager.java      |  2 +-
 .../pulsar/functions/source/PulsarSourceTest.java  |  4 +-
 .../BasicKubernetesManifestCustomizer.java         |  2 +-
 .../apache/pulsar/io/debezium/DebeziumSource.java  |  8 ++--
 .../io/debezium/mongodb/DebeziumMongoDbSource.java |  2 +-
 .../io/debezium/mysql/DebeziumMysqlSource.java     |  2 +-
 .../debezium/postgres/DebeziumPostgresSource.java  |  2 +-
 .../pulsar/io/kafka/connect/KafkaConnectSink.java  |  1 +
 .../io/kafka/connect/KafkaConnectSource.java       |  2 +-
 .../apache/pulsar/io/kinesis/KinesisSinkTest.java  |  6 +--
 .../bookkeeper/BookKeeperPackagesStorage.java      |  2 +-
 .../bookkeeper/bookkeeper/test/ZooKeeperUtil.java  |  2 +-
 pulsar-sql/presto-distribution/LICENSE             | 32 ++++++-------
 .../pulsar/sql/presto/PulsarColumnMetadata.java    |  2 +-
 .../pulsar/sql/presto/TestPulsarConnector.java     |  4 +-
 .../pulsar/sql/presto/TestPulsarRecordCursor.java  |  4 +-
 .../sql/presto/decoder/DecoderTestMessage.java     |  4 +-
 .../socket/client/SimpleTestProducerSocket.java    |  2 +-
 .../pulsar/testclient/LoadSimulationClient.java    |  2 +-
 .../testclient/LoadSimulationController.java       |  4 +-
 .../coordinator/impl/MLTransactionLogImpl.java     |  4 +-
 .../WebSocketHttpServletRequestWrapper.java        |  6 +--
 .../WebSocketHttpServletRequestWrapperTest.java    |  4 +-
 .../tests/integration/cli/HealthCheckTest.java     |  2 +-
 .../tests/integration/cli/PackagesCliTest.java     |  2 +-
 .../tests/integration/cli/PulsarVersionTest.java   |  2 +-
 .../integration/cli/SchemaUpdateStrategyTest.java  |  2 +-
 .../tests/integration/io/sources/SourceTester.java |  8 ++--
 .../pulsar/tests/integration/proxy/TestProxy.java  |  2 +-
 .../integration/proxy/TestProxyWithWebSocket.java  |  2 +-
 .../integration/suites/PulsarSQLTestSuite.java     |  8 ++--
 .../offload/jcloud/impl/DataBlockHeaderImpl.java   |  4 +-
 .../offload/jcloud/impl/OffloadIndexBlockImpl.java |  2 +-
 .../jcloud/impl/StreamingDataBlockHeaderImpl.java  |  4 +-
 .../mledger/offload/jcloud/BlobStoreTestBase.java  |  2 +-
 .../impl/BlobStoreManagedLedgerOffloaderBase.java  |  2 +-
 122 files changed, 418 insertions(+), 381 deletions(-)

[pulsar] 01/07: fix improper class/method/field modifiers (#10837)

Posted by pe...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

penghui pushed a commit to branch branch-2.8
in repository https://gitbox.apache.org/repos/asf/pulsar.git

commit 77d305fb9ff669f993cd188adf018fa2d3244f74
Author: hangc0276 <ch...@apache.org>
AuthorDate: Mon Jun 7 20:41:12 2021 +0800

    fix improper class/method/field modifiers (#10837)
    
    (cherry picked from commit f25b4a520bb82c6a09d373c9d314ca8e55d1f57b)
---
 build/docker/protobuf.patch                        |  2 +-
 .../src/main/resources/pulsar/checkstyle.xml       |  1 +
 .../impl/EntryCacheDefaultEvictionPolicy.java      |  2 +-
 .../bookkeeper/mledger/impl/EntryCacheImpl.java    |  2 +-
 .../bookkeeper/mledger/impl/ManagedLedgerImpl.java |  6 ++---
 .../broker/authentication/SaslRoleToken.java       |  2 +-
 .../AuthenticationProviderBasic.java               |  4 ++--
 .../AuthenticationProviderToken.java               | 20 ++++++++---------
 .../broker/loadbalance/impl/OverloadShedder.java   |  2 +-
 .../broker/loadbalance/impl/ThresholdShedder.java  |  2 +-
 .../broker/resourcegroup/ResourceGroupService.java |  4 ++--
 .../pulsar/broker/service/BrokerService.java       |  2 +-
 .../ReplicatedSubscriptionsController.java         |  2 +-
 .../ReplicatedSubscriptionsSnapshotBuilder.java    |  2 +-
 .../service/schema/AlwaysSchemaValidator.java      |  2 +-
 .../service/schema/NeverSchemaValidator.java       |  4 ++--
 .../broker/stats/ClusterReplicationMetrics.java    |  2 +-
 .../stats/prometheus/TransactionAggregator.java    |  4 ++--
 .../timeout/TransactionTimeoutTrackerImpl.java     |  2 +-
 .../apache/pulsar/client/impl/RawMessageImpl.java  |  2 +-
 .../apache/pulsar/client/impl/RawReaderImpl.java   |  2 +-
 .../pulsar/compaction/CompactedTopicImpl.java      |  6 ++---
 .../pulsar/broker/auth/MockAuthentication.java     |  2 +-
 .../OwnerShipCacheForCurrentServerTest.java        |  6 ++---
 .../OwnerShipForCurrentServerTestBase.java         |  2 +-
 .../pulsar/broker/service/ReplicatorTestBase.java  |  4 ++--
 .../service/persistent/MessageDuplicationTest.java |  6 ++---
 .../broker/service/schema/SchemaServiceTest.java   | 14 ++++++------
 .../TopicTransactionBufferRecoverTest.java         | 14 ++++++------
 .../TransactionClientReconnectTest.java            |  2 +-
 .../broker/transaction/TransactionConsumeTest.java |  6 ++---
 .../broker/transaction/TransactionProduceTest.java | 16 ++++++-------
 .../broker/transaction/TransactionTestBase.java    |  2 +-
 .../buffer/TransactionLowWaterMarkTest.java        |  6 ++---
 .../buffer/TransactionStablePositionTest.java      |  6 ++---
 .../pendingack/PendingAckInMemoryDeleteTest.java   |  4 ++--
 .../pendingack/PendingAckPersistentTest.java       |  3 ---
 .../api/AuthorizationProducerConsumerTest.java     |  4 ++--
 .../client/impl/ConsumerAckResponseTest.java       |  2 +-
 .../client/impl/TransactionEndToEndTest.java       | 10 ++++-----
 .../pulsar/schema/PartitionedTopicSchemaTest.java  |  6 ++---
 .../java/org/apache/pulsar/schema/SchemaTest.java  |  2 +-
 .../SchemaCompatibilityCheckTest.java              |  2 +-
 .../SchemaTypeCompatibilityCheckTest.java          |  8 +++----
 .../data/loadbalancer/NamespaceBundleStats.java    |  8 +++----
 .../pulsar/client/admin/internal/TopicsImpl.java   |  4 ++--
 .../client/impl/auth/AuthenticationSasl.java       |  4 ++--
 .../org/apache/pulsar/admin/cli/CliCommand.java    |  2 +-
 .../org/apache/pulsar/client/impl/HttpClient.java  |  4 ++--
 .../org/apache/pulsar/client/impl/MessageImpl.java |  4 ++--
 .../client/impl/auth/AuthenticationDataBasic.java  |  2 +-
 .../client/impl/auth/AuthenticationDataToken.java  |  2 +-
 .../impl/auth/AuthenticationKeyStoreTls.java       | 10 ++++-----
 .../pulsar/client/impl/auth/AuthenticationTls.java |  2 +-
 .../impl/auth/oauth2/protocol/TokenClient.java     |  4 ++--
 .../impl/schema/generic/GenericAvroSchema.java     |  2 +-
 .../pulsar/client/util/RetryMessageUtil.java       | 16 ++++++-------
 .../pulsar/client/impl/ConnectionTimeoutTest.java  |  2 +-
 .../generic/GenericProtobufNativeReaderTest.java   |  4 ++--
 .../generic/GenericProtobufNativeSchemaTest.java   |  4 ++--
 .../org/apache/pulsar/common/functions/Utils.java  |  6 ++---
 .../common/policies/data/OffloadPoliciesImpl.java  | 26 +++++++++++-----------
 .../apache/pulsar/common/protocol/Commands.java    |  4 ++--
 .../common/protocol/schema/BytesSchemaVersion.java |  2 +-
 .../org/apache/pulsar/common/stats/JvmMetrics.java |  2 +-
 .../pulsar/common/util/SimpleTextOutputStream.java |  2 +-
 .../common/util/collections/BitSetRecyclable.java  |  6 ++---
 .../util/collections/ConcurrentLongPairSet.java    |  2 +-
 .../util/collections/ConcurrentOpenHashMap.java    |  2 +-
 .../util/collections/ConcurrentOpenHashSet.java    |  2 +-
 .../collections/GrowableArrayBlockingQueue.java    |  2 +-
 .../collections/GrowablePriorityLongPairQueue.java |  2 +-
 .../collections/ConcurrentLongHashMapTest.java     |  6 ++---
 .../collections/ConcurrentOpenHashMapTest.java     |  6 ++---
 .../discovery/service/DiscoveryServiceTest.java    |  4 ++--
 .../pulsar/functions/instance/ContextImpl.java     |  2 +-
 .../instance/stats/ComponentStatsManager.java      |  2 +-
 .../pulsar/functions/source/PulsarSourceTest.java  |  4 ++--
 .../BasicKubernetesManifestCustomizer.java         |  2 +-
 .../apache/pulsar/io/debezium/DebeziumSource.java  |  8 +++----
 .../io/debezium/mongodb/DebeziumMongoDbSource.java |  2 +-
 .../io/debezium/mysql/DebeziumMysqlSource.java     |  2 +-
 .../debezium/postgres/DebeziumPostgresSource.java  |  2 +-
 .../pulsar/io/kafka/connect/KafkaConnectSink.java  |  1 +
 .../io/kafka/connect/KafkaConnectSource.java       |  2 +-
 .../apache/pulsar/io/kinesis/KinesisSinkTest.java  |  6 ++---
 .../bookkeeper/BookKeeperPackagesStorage.java      |  2 +-
 .../bookkeeper/bookkeeper/test/ZooKeeperUtil.java  |  2 +-
 .../pulsar/sql/presto/PulsarColumnMetadata.java    |  2 +-
 .../pulsar/sql/presto/TestPulsarConnector.java     |  4 ++--
 .../pulsar/sql/presto/TestPulsarRecordCursor.java  |  4 ++--
 .../sql/presto/decoder/DecoderTestMessage.java     |  4 ++--
 .../socket/client/SimpleTestProducerSocket.java    |  2 +-
 .../pulsar/testclient/LoadSimulationClient.java    |  2 +-
 .../testclient/LoadSimulationController.java       |  4 ++--
 .../coordinator/impl/MLTransactionLogImpl.java     |  4 ++--
 .../WebSocketHttpServletRequestWrapper.java        |  6 ++---
 .../WebSocketHttpServletRequestWrapperTest.java    |  4 ++--
 .../tests/integration/cli/HealthCheckTest.java     |  2 +-
 .../tests/integration/cli/PackagesCliTest.java     |  2 +-
 .../tests/integration/cli/PulsarVersionTest.java   |  2 +-
 .../integration/cli/SchemaUpdateStrategyTest.java  |  2 +-
 .../tests/integration/io/sources/SourceTester.java |  8 +++----
 .../pulsar/tests/integration/proxy/TestProxy.java  |  2 +-
 .../integration/proxy/TestProxyWithWebSocket.java  |  2 +-
 .../integration/suites/PulsarSQLTestSuite.java     |  8 +++----
 .../offload/jcloud/impl/DataBlockHeaderImpl.java   |  4 ++--
 .../offload/jcloud/impl/OffloadIndexBlockImpl.java |  2 +-
 .../jcloud/impl/StreamingDataBlockHeaderImpl.java  |  4 ++--
 .../mledger/offload/jcloud/BlobStoreTestBase.java  |  2 +-
 .../impl/BlobStoreManagedLedgerOffloaderBase.java  |  2 +-
 111 files changed, 233 insertions(+), 234 deletions(-)

diff --git a/build/docker/protobuf.patch b/build/docker/protobuf.patch
index 9623ef7..fe8bf66 100644
--- a/build/docker/protobuf.patch
+++ b/build/docker/protobuf.patch
@@ -604,7 +604,7 @@ index 4c087db5..3ae1c14c 100644
 +    "  this.handle = handle;\n"
      "  maybeForceBuilderInitialization();\n"
      "}\n"
-+    "private final static io.netty.util.Recycler<Builder> RECYCLER = new io.netty.util.Recycler<Builder>() {\n"
++    "private static final io.netty.util.Recycler<Builder> RECYCLER = new io.netty.util.Recycler<Builder>() {\n"
 +    "   protected Builder newObject(io.netty.util.Recycler.Handle handle) {\n"
 +    "         return new Builder(handle);\n"
 +    "       }\n"
diff --git a/buildtools/src/main/resources/pulsar/checkstyle.xml b/buildtools/src/main/resources/pulsar/checkstyle.xml
index 82dd052..bb1e86e 100644
--- a/buildtools/src/main/resources/pulsar/checkstyle.xml
+++ b/buildtools/src/main/resources/pulsar/checkstyle.xml
@@ -425,6 +425,7 @@ page at http://checkstyle.sourceforge.net/config.html -->
             <property name="severity" value="error"/>
         </module>
 
+        <module name="ModifierOrder"/>
 
     </module>
 </module>
diff --git a/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/EntryCacheDefaultEvictionPolicy.java b/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/EntryCacheDefaultEvictionPolicy.java
index 682acbb..df70188 100644
--- a/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/EntryCacheDefaultEvictionPolicy.java
+++ b/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/EntryCacheDefaultEvictionPolicy.java
@@ -37,7 +37,7 @@ import org.slf4j.LoggerFactory;
  */
 public class EntryCacheDefaultEvictionPolicy implements EntryCacheEvictionPolicy {
 
-    private final static double PercentOfSizeToConsiderForEviction = 0.5;
+    private static final double PercentOfSizeToConsiderForEviction = 0.5;
 
     @Override
     public void doEviction(List<EntryCache> caches, long sizeToFree) {
diff --git a/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/EntryCacheImpl.java b/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/EntryCacheImpl.java
index a0b0faa..43ba31c1 100644
--- a/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/EntryCacheImpl.java
+++ b/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/EntryCacheImpl.java
@@ -71,7 +71,7 @@ public class EntryCacheImpl implements EntryCache {
         return ml.getName();
     }
 
-    public final static PooledByteBufAllocator ALLOCATOR = new PooledByteBufAllocator(true, // preferDirect
+    public static final PooledByteBufAllocator ALLOCATOR = new PooledByteBufAllocator(true, // preferDirect
             0, // nHeapArenas,
             PooledByteBufAllocator.defaultNumDirectArena(), // nDirectArena
             PooledByteBufAllocator.defaultPageSize(), // pageSize
diff --git a/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedLedgerImpl.java b/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedLedgerImpl.java
index 5a070e7..6936593 100644
--- a/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedLedgerImpl.java
+++ b/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedLedgerImpl.java
@@ -140,9 +140,9 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 public class ManagedLedgerImpl implements ManagedLedger, CreateCallback {
-    private final static long MegaByte = 1024 * 1024;
+    private static final long MegaByte = 1024 * 1024;
 
-    protected final static int AsyncOperationTimeoutSeconds = 30;
+    protected static final int AsyncOperationTimeoutSeconds = 30;
 
     protected final BookKeeper bookKeeper;
     protected final String name;
@@ -200,7 +200,7 @@ public class ManagedLedgerImpl implements ManagedLedger, CreateCallback {
     private final CallbackMutex trimmerMutex = new CallbackMutex();
 
     private final CallbackMutex offloadMutex = new CallbackMutex();
-    private final static CompletableFuture<PositionImpl> NULL_OFFLOAD_PROMISE = CompletableFuture
+    private static final CompletableFuture<PositionImpl> NULL_OFFLOAD_PROMISE = CompletableFuture
             .completedFuture(PositionImpl.latest);
     private volatile LedgerHandle currentLedger;
     private long currentLedgerEntries = 0;
diff --git a/pulsar-broker-auth-sasl/src/main/java/org/apache/pulsar/broker/authentication/SaslRoleToken.java b/pulsar-broker-auth-sasl/src/main/java/org/apache/pulsar/broker/authentication/SaslRoleToken.java
index f95bc6a..64a2512 100644
--- a/pulsar-broker-auth-sasl/src/main/java/org/apache/pulsar/broker/authentication/SaslRoleToken.java
+++ b/pulsar-broker-auth-sasl/src/main/java/org/apache/pulsar/broker/authentication/SaslRoleToken.java
@@ -43,7 +43,7 @@ public class SaslRoleToken implements Principal {
     private static final String EXPIRES = "e";
     private static final String SESSION = "i";
 
-    private final static Set<String> ATTRIBUTES =
+    private static final Set<String> ATTRIBUTES =
         new HashSet<String>(Arrays.asList(USER_ROLE,  EXPIRES,  SESSION));
 
     private String userRole;
diff --git a/pulsar-broker-common/src/main/java/org/apache/pulsar/broker/authentication/AuthenticationProviderBasic.java b/pulsar-broker-common/src/main/java/org/apache/pulsar/broker/authentication/AuthenticationProviderBasic.java
index 48d867f..b564f8a 100644
--- a/pulsar-broker-common/src/main/java/org/apache/pulsar/broker/authentication/AuthenticationProviderBasic.java
+++ b/pulsar-broker-common/src/main/java/org/apache/pulsar/broker/authentication/AuthenticationProviderBasic.java
@@ -35,8 +35,8 @@ import java.io.IOException;
 import java.util.*;
 
 public class AuthenticationProviderBasic implements AuthenticationProvider {
-    private final static String HTTP_HEADER_NAME = "Authorization";
-    private final static String CONF_SYSTEM_PROPERTY_KEY = "pulsar.auth.basic.conf";
+    private static final String HTTP_HEADER_NAME = "Authorization";
+    private static final String CONF_SYSTEM_PROPERTY_KEY = "pulsar.auth.basic.conf";
     private Map<String, String> users;
 
     @Override
diff --git a/pulsar-broker-common/src/main/java/org/apache/pulsar/broker/authentication/AuthenticationProviderToken.java b/pulsar-broker-common/src/main/java/org/apache/pulsar/broker/authentication/AuthenticationProviderToken.java
index 5654033..21bda4c 100644
--- a/pulsar-broker-common/src/main/java/org/apache/pulsar/broker/authentication/AuthenticationProviderToken.java
+++ b/pulsar-broker-common/src/main/java/org/apache/pulsar/broker/authentication/AuthenticationProviderToken.java
@@ -50,31 +50,31 @@ import io.jsonwebtoken.security.SignatureException;
 
 public class AuthenticationProviderToken implements AuthenticationProvider {
 
-    final static String HTTP_HEADER_NAME = "Authorization";
-    final static String HTTP_HEADER_VALUE_PREFIX = "Bearer ";
+    static final String HTTP_HEADER_NAME = "Authorization";
+    static final String HTTP_HEADER_VALUE_PREFIX = "Bearer ";
 
     // When symmetric key is configured
-    final static String CONF_TOKEN_SETTING_PREFIX = "";
+    static final String CONF_TOKEN_SETTING_PREFIX = "";
 
     // When symmetric key is configured
-    final static String CONF_TOKEN_SECRET_KEY = "tokenSecretKey";
+    static final String CONF_TOKEN_SECRET_KEY = "tokenSecretKey";
 
     // When public/private key pair is configured
-    final static String CONF_TOKEN_PUBLIC_KEY = "tokenPublicKey";
+    static final String CONF_TOKEN_PUBLIC_KEY = "tokenPublicKey";
 
     // The token's claim that corresponds to the "role" string
-    final static String CONF_TOKEN_AUTH_CLAIM = "tokenAuthClaim";
+    static final String CONF_TOKEN_AUTH_CLAIM = "tokenAuthClaim";
 
     // When using public key's, the algorithm of the key
-    final static String CONF_TOKEN_PUBLIC_ALG = "tokenPublicAlg";
+    static final String CONF_TOKEN_PUBLIC_ALG = "tokenPublicAlg";
 
     // The token audience "claim" name, e.g. "aud", that will be used to get the audience from token.
-    final static String CONF_TOKEN_AUDIENCE_CLAIM = "tokenAudienceClaim";
+    static final String CONF_TOKEN_AUDIENCE_CLAIM = "tokenAudienceClaim";
 
     // The token audience stands for this broker. The field `tokenAudienceClaim` of a valid token, need contains this.
-    final static String CONF_TOKEN_AUDIENCE = "tokenAudience";
+    static final String CONF_TOKEN_AUDIENCE = "tokenAudience";
 
-    final static String TOKEN = "token";
+    static final String TOKEN = "token";
 
     private static final Counter expiredTokenMetrics = Counter.build()
             .name("pulsar_expired_token_count")
diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/impl/OverloadShedder.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/impl/OverloadShedder.java
index d1b05b4..89e3204 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/impl/OverloadShedder.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/impl/OverloadShedder.java
@@ -47,7 +47,7 @@ public class OverloadShedder implements LoadSheddingStrategy {
 
     private final Multimap<String, String> selectedBundlesCache = ArrayListMultimap.create();
 
-    private final static double ADDITIONAL_THRESHOLD_PERCENT_MARGIN = 0.05;
+    private static final double ADDITIONAL_THRESHOLD_PERCENT_MARGIN = 0.05;
 
     /**
      * Attempt to shed some bundles off every broker which is overloaded.
diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/impl/ThresholdShedder.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/impl/ThresholdShedder.java
index 29734d6..e9c0aa0 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/impl/ThresholdShedder.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/impl/ThresholdShedder.java
@@ -40,7 +40,7 @@ public class ThresholdShedder implements LoadSheddingStrategy {
 
     private final Multimap<String, String> selectedBundlesCache = ArrayListMultimap.create();
 
-    private final static double ADDITIONAL_THRESHOLD_PERCENT_MARGIN = 0.05;
+    private static final double ADDITIONAL_THRESHOLD_PERCENT_MARGIN = 0.05;
 
     private static final double MB = 1024 * 1024;
 
diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/resourcegroup/ResourceGroupService.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/resourcegroup/ResourceGroupService.java
index 682fbc0..364e22f 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/resourcegroup/ResourceGroupService.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/resourcegroup/ResourceGroupService.java
@@ -594,7 +594,7 @@ public class ResourceGroupService {
     // set the value to 4.
     // Setting this to 0 will make us report in every round.
     // Don't set to negative values; behavior will be "undefined".
-    protected final static int MaxUsageReportSuppressRounds = 5;
+    protected static final int MaxUsageReportSuppressRounds = 5;
 
     // Convenient shorthand, for MaxUsageReportSuppressRounds converted to a time interval in milliseconds.
     protected static long maxIntervalForSuppressingReportsMSecs;
@@ -602,5 +602,5 @@ public class ResourceGroupService {
     // The percentage difference that is considered "within limits" to suppress usage reporting.
     // Setting this to 0 will also make us report in every round.
     // Don't set it to negative values; behavior will be "undefined".
-    protected final static float UsageReportSuppressionTolerancePercentage = 5;
+    protected static final float UsageReportSuppressionTolerancePercentage = 5;
 }
diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BrokerService.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BrokerService.java
index 2c8c660..abc673a 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BrokerService.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BrokerService.java
@@ -237,7 +237,7 @@ public class BrokerService implements Closeable, ZooKeeperCacheListener<Policies
 
     private DistributedIdGenerator producerNameGenerator;
 
-    public final static String PRODUCER_NAME_GENERATOR_PATH = "/counters/producer-name";
+    public static final String PRODUCER_NAME_GENERATOR_PATH = "/counters/producer-name";
 
     private final BacklogQuotaManager backlogQuotaManager;
 
diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/ReplicatedSubscriptionsController.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/ReplicatedSubscriptionsController.java
index 9a25420..dc03962 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/ReplicatedSubscriptionsController.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/ReplicatedSubscriptionsController.java
@@ -66,7 +66,7 @@ public class ReplicatedSubscriptionsController implements AutoCloseable, Topic.P
     private final ConcurrentMap<String, ReplicatedSubscriptionsSnapshotBuilder> pendingSnapshots =
             new ConcurrentHashMap<>();
 
-    private final static Gauge pendingSnapshotsMetric = Gauge
+    private static final Gauge pendingSnapshotsMetric = Gauge
             .build("pulsar_replicated_subscriptions_pending_snapshots",
                     "Counter of currently pending snapshots")
             .register();
diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/ReplicatedSubscriptionsSnapshotBuilder.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/ReplicatedSubscriptionsSnapshotBuilder.java
index d9a41c4..42c6138 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/ReplicatedSubscriptionsSnapshotBuilder.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/ReplicatedSubscriptionsSnapshotBuilder.java
@@ -53,7 +53,7 @@ public class ReplicatedSubscriptionsSnapshotBuilder {
 
     private final Clock clock;
 
-    private final static Summary snapshotMetric = Summary.build("pulsar_replicated_subscriptions_snapshot_ms",
+    private static final Summary snapshotMetric = Summary.build("pulsar_replicated_subscriptions_snapshot_ms",
             "Time taken to create a consistent snapshot across clusters").register();
 
     public ReplicatedSubscriptionsSnapshotBuilder(ReplicatedSubscriptionsController controller,
diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/schema/AlwaysSchemaValidator.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/schema/AlwaysSchemaValidator.java
index ed5b4b4..58146e3 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/schema/AlwaysSchemaValidator.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/schema/AlwaysSchemaValidator.java
@@ -25,7 +25,7 @@ import org.apache.avro.SchemaValidator;
  * A schema validator that always reports as compatible.
  */
 class AlwaysSchemaValidator implements SchemaValidator {
-    final static AlwaysSchemaValidator INSTANCE = new AlwaysSchemaValidator();
+    static final AlwaysSchemaValidator INSTANCE = new AlwaysSchemaValidator();
 
     @Override
     public void validate(Schema toValidate, Iterable<Schema> existing) {
diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/schema/NeverSchemaValidator.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/schema/NeverSchemaValidator.java
index 81ef0d7..6218892 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/schema/NeverSchemaValidator.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/schema/NeverSchemaValidator.java
@@ -28,8 +28,8 @@ import org.slf4j.LoggerFactory;
  * An avro schema validator that always reports as incompatible, if there is an existing schema.
  */
 class NeverSchemaValidator implements SchemaValidator {
-    private final static Logger log = LoggerFactory.getLogger(NeverSchemaValidator.class);
-    final static NeverSchemaValidator INSTANCE = new NeverSchemaValidator();
+    private static final Logger log = LoggerFactory.getLogger(NeverSchemaValidator.class);
+    static final NeverSchemaValidator INSTANCE = new NeverSchemaValidator();
 
     @Override
     public void validate(Schema toValidate, Iterable<Schema> existing)
diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/stats/ClusterReplicationMetrics.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/stats/ClusterReplicationMetrics.java
index 77157ce..1086563 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/stats/ClusterReplicationMetrics.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/stats/ClusterReplicationMetrics.java
@@ -29,7 +29,7 @@ public class ClusterReplicationMetrics {
     private final List<Metrics> metricsList;
     private final String localCluster;
     private final ConcurrentOpenHashMap<String, ReplicationMetrics> metricsMap;
-    public final static String SEPARATOR = "_";
+    public static final String SEPARATOR = "_";
     public final boolean metricsEnabled;
 
     public ClusterReplicationMetrics(String localCluster, boolean metricsEnabled) {
diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/stats/prometheus/TransactionAggregator.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/stats/prometheus/TransactionAggregator.java
index 367b792..5ea2bea 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/stats/prometheus/TransactionAggregator.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/stats/prometheus/TransactionAggregator.java
@@ -34,7 +34,7 @@ import org.apache.pulsar.transaction.coordinator.impl.TransactionMetadataStoreSt
 @Slf4j
 public class TransactionAggregator {
 
-    private final static FastThreadLocal<AggregatedTransactionCoordinatorStats> localTransactionCoordinatorStats =
+    private static final FastThreadLocal<AggregatedTransactionCoordinatorStats> localTransactionCoordinatorStats =
             new FastThreadLocal<AggregatedTransactionCoordinatorStats>() {
                 @Override
                 protected AggregatedTransactionCoordinatorStats initialValue() throws Exception {
@@ -42,7 +42,7 @@ public class TransactionAggregator {
                 }
             };
 
-    private final static FastThreadLocal<ManagedLedgerStats> localManageLedgerStats =
+    private static final FastThreadLocal<ManagedLedgerStats> localManageLedgerStats =
             new FastThreadLocal<ManagedLedgerStats>() {
                 @Override
                 protected ManagedLedgerStats initialValue() throws Exception {
diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/timeout/TransactionTimeoutTrackerImpl.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/timeout/TransactionTimeoutTrackerImpl.java
index 6d714c9..4256b77 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/timeout/TransactionTimeoutTrackerImpl.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/timeout/TransactionTimeoutTrackerImpl.java
@@ -41,7 +41,7 @@ public class TransactionTimeoutTrackerImpl implements TransactionTimeoutTracker,
     private final long tickTimeMillis;
     private final Clock clock;
     private Timeout currentTimeout;
-    private final static long INITIAL_TIMEOUT = 1L;
+    private static final long INITIAL_TIMEOUT = 1L;
 
     private volatile long nowTaskTimeoutTime = INITIAL_TIMEOUT;
     private final long tcId;
diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/client/impl/RawMessageImpl.java b/pulsar-broker/src/main/java/org/apache/pulsar/client/impl/RawMessageImpl.java
index 7a73af5..8923f1a 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/client/impl/RawMessageImpl.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/client/impl/RawMessageImpl.java
@@ -77,7 +77,7 @@ public class RawMessageImpl implements RawMessage {
         return buf;
     }
 
-    static public RawMessage deserializeFrom(ByteBuf buffer) {
+    public static RawMessage deserializeFrom(ByteBuf buffer) {
         int idSize = buffer.readInt();
 
         MessageIdData id = new MessageIdData();
diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/client/impl/RawReaderImpl.java b/pulsar-broker/src/main/java/org/apache/pulsar/client/impl/RawReaderImpl.java
index 8629ee0..217dd5c 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/client/impl/RawReaderImpl.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/client/impl/RawReaderImpl.java
@@ -44,7 +44,7 @@ import org.slf4j.LoggerFactory;
 
 public class RawReaderImpl implements RawReader {
 
-    final static int DEFAULT_RECEIVER_QUEUE_SIZE = 1000;
+    static final int DEFAULT_RECEIVER_QUEUE_SIZE = 1000;
     private final ConsumerConfigurationData<byte[]> consumerConfiguration;
     private RawConsumerImpl consumer;
 
diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/compaction/CompactedTopicImpl.java b/pulsar-broker/src/main/java/org/apache/pulsar/compaction/CompactedTopicImpl.java
index b2f2d87..ee9fbbc 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/compaction/CompactedTopicImpl.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/compaction/CompactedTopicImpl.java
@@ -50,9 +50,9 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 public class CompactedTopicImpl implements CompactedTopic {
-    final static long NEWER_THAN_COMPACTED = -0xfeed0fbaL;
-    final static long COMPACT_LEDGER_EMPTY = -0xfeed0fbbL;
-    final static int DEFAULT_STARTPOINT_CACHE_SIZE = 100;
+    static final long NEWER_THAN_COMPACTED = -0xfeed0fbaL;
+    static final long COMPACT_LEDGER_EMPTY = -0xfeed0fbbL;
+    static final int DEFAULT_STARTPOINT_CACHE_SIZE = 100;
 
     private final BookKeeper bk;
 
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/auth/MockAuthentication.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/auth/MockAuthentication.java
index beaea27..355c28a 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/auth/MockAuthentication.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/auth/MockAuthentication.java
@@ -32,7 +32,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 public class MockAuthentication implements Authentication {
-    private final static Logger log = LoggerFactory.getLogger(MockAuthentication.class);
+    private static final Logger log = LoggerFactory.getLogger(MockAuthentication.class);
     private final String user;
 
     public MockAuthentication(String user) {
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/namespace/OwnerShipCacheForCurrentServerTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/namespace/OwnerShipCacheForCurrentServerTest.java
index 9c2ac0a..b018332 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/namespace/OwnerShipCacheForCurrentServerTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/namespace/OwnerShipCacheForCurrentServerTest.java
@@ -32,9 +32,9 @@ import org.testng.annotations.Test;
 @Test(groups = "broker")
 public class OwnerShipCacheForCurrentServerTest extends OwnerShipForCurrentServerTestBase {
 
-    private final static String TENANT = "ownership";
-    private final static String NAMESPACE = TENANT + "/ns1";
-    private final static String TOPIC_TEST = NAMESPACE + "/test";
+    private static final String TENANT = "ownership";
+    private static final String NAMESPACE = TENANT + "/ns1";
+    private static final String TOPIC_TEST = NAMESPACE + "/test";
 
     @BeforeMethod
     protected void setup() throws Exception {
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/namespace/OwnerShipForCurrentServerTestBase.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/namespace/OwnerShipForCurrentServerTestBase.java
index d65e65e..2efbb20 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/namespace/OwnerShipForCurrentServerTestBase.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/namespace/OwnerShipForCurrentServerTestBase.java
@@ -61,7 +61,7 @@ import static org.mockito.Mockito.*;
 @Slf4j
 public class OwnerShipForCurrentServerTestBase {
 
-    public final static String CLUSTER_NAME = "test";
+    public static final String CLUSTER_NAME = "test";
 
     @Setter
     private int brokerCount = 3;
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/ReplicatorTestBase.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/ReplicatorTestBase.java
index 5a6e111..6988a91 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/ReplicatorTestBase.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/ReplicatorTestBase.java
@@ -87,8 +87,8 @@ public abstract class ReplicatorTestBase extends TestRetrySupport {
 
     static final int TIME_TO_CHECK_BACKLOG_QUOTA = 5;
 
-    protected final static String TLS_SERVER_CERT_FILE_PATH = "./src/test/resources/certificate/server.crt";
-    protected final static String TLS_SERVER_KEY_FILE_PATH = "./src/test/resources/certificate/server.key";
+    protected static final String TLS_SERVER_CERT_FILE_PATH = "./src/test/resources/certificate/server.crt";
+    protected static final String TLS_SERVER_KEY_FILE_PATH = "./src/test/resources/certificate/server.key";
 
     // Default frequency
     public int getBrokerServicePurgeInactiveFrequency() {
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/persistent/MessageDuplicationTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/persistent/MessageDuplicationTest.java
index 616e5ff..ed3e2bb 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/persistent/MessageDuplicationTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/persistent/MessageDuplicationTest.java
@@ -50,9 +50,9 @@ import static org.testng.Assert.assertTrue;
 @Test(groups = "broker")
 public class MessageDuplicationTest {
 
-    private final static int BROKER_DEDUPLICATION_ENTRIES_INTERVAL = 10;
-    private final static int BROKER_DEDUPLICATION_MAX_NUMBER_PRODUCERS = 10;
-    private final static String REPLICATOR_PREFIX = "foo";
+    private static final int BROKER_DEDUPLICATION_ENTRIES_INTERVAL = 10;
+    private static final int BROKER_DEDUPLICATION_MAX_NUMBER_PRODUCERS = 10;
+    private static final String REPLICATOR_PREFIX = "foo";
 
     @Test
     public void testIsDuplicate() {
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/schema/SchemaServiceTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/schema/SchemaServiceTest.java
index 931a7f2..2442d6e 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/schema/SchemaServiceTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/schema/SchemaServiceTest.java
@@ -55,24 +55,24 @@ public class SchemaServiceTest extends MockedPulsarServiceBaseTest {
     private static final Clock MockClock = Clock.fixed(Instant.EPOCH, ZoneId.systemDefault());
 
     private final String schemaId1 = "1/2/3/4";
-    private final static String userId = "user";
+    private static final String userId = "user";
 
-    private final static String schemaJson1 =
+    private static final String schemaJson1 =
             "{\"type\":\"record\",\"name\":\"DefaultTest\",\"namespace\":\"org.apache.pulsar.broker.service.schema" +
                     ".AvroSchemaCompatibilityCheckTest\",\"fields\":[{\"name\":\"field1\",\"type\":\"string\"}]}";
-    private final static SchemaData schemaData1 = getSchemaData(schemaJson1);
+    private static final SchemaData schemaData1 = getSchemaData(schemaJson1);
 
-    private final static String schemaJson2 =
+    private static final String schemaJson2 =
             "{\"type\":\"record\",\"name\":\"DefaultTest\",\"namespace\":\"org.apache.pulsar.broker.service.schema" +
                     ".AvroSchemaCompatibilityCheckTest\",\"fields\":[{\"name\":\"field1\",\"type\":\"string\"}," +
                     "{\"name\":\"field2\",\"type\":\"string\",\"default\":\"foo\"}]}";
-    private final static SchemaData schemaData2 = getSchemaData(schemaJson2);
+    private static final SchemaData schemaData2 = getSchemaData(schemaJson2);
 
-    private final static String schemaJson3 =
+    private static final String schemaJson3 =
             "{\"type\":\"record\",\"name\":\"DefaultTest\",\"namespace\":\"org.apache.pulsar.broker.service.schema" +
                     ".AvroSchemaCompatibilityCheckTest\",\"fields\":[{\"name\":\"field1\",\"type\":\"string\"}," +
                     "{\"name\":\"field2\",\"type\":\"string\"}]}";
-    private final static SchemaData schemaData3 = getSchemaData(schemaJson3);
+    private static final SchemaData schemaData3 = getSchemaData(schemaJson3);
 
     private SchemaRegistryServiceImpl schemaRegistryService;
 
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TopicTransactionBufferRecoverTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TopicTransactionBufferRecoverTest.java
index f8e0e2a..6a3aaa1 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TopicTransactionBufferRecoverTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TopicTransactionBufferRecoverTest.java
@@ -72,13 +72,13 @@ import static org.testng.Assert.assertTrue;
 @Slf4j
 public class TopicTransactionBufferRecoverTest extends TransactionTestBase {
 
-    private final static String TENANT = "tnx";
-    private final static String NAMESPACE1 = TENANT + "/ns1";
-    private final static String RECOVER_COMMIT = NAMESPACE1 + "/recover-commit";
-    private final static String RECOVER_ABORT = NAMESPACE1 + "/recover-abort";
-    private final static String SUBSCRIPTION_NAME = "test-recover";
-    private final static String TAKE_SNAPSHOT = NAMESPACE1 + "/take-snapshot";
-    private final static String ABORT_DELETE = NAMESPACE1 + "/abort-delete";
+    private static final String TENANT = "tnx";
+    private static final String NAMESPACE1 = TENANT + "/ns1";
+    private static final String RECOVER_COMMIT = NAMESPACE1 + "/recover-commit";
+    private static final String RECOVER_ABORT = NAMESPACE1 + "/recover-abort";
+    private static final String SUBSCRIPTION_NAME = "test-recover";
+    private static final String TAKE_SNAPSHOT = NAMESPACE1 + "/take-snapshot";
+    private static final String ABORT_DELETE = NAMESPACE1 + "/abort-delete";
 
     @BeforeMethod
     protected void setup() throws Exception {
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TransactionClientReconnectTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TransactionClientReconnectTest.java
index 2a336f6..c13dff7 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TransactionClientReconnectTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TransactionClientReconnectTest.java
@@ -45,7 +45,7 @@ import static org.testng.FileAssert.fail;
 
 public class TransactionClientReconnectTest extends TransactionTestBase {
 
-    private final static String RECONNECT_TOPIC = "persistent://public/txn/txn-client-reconnect-test";
+    private static final String RECONNECT_TOPIC = "persistent://public/txn/txn-client-reconnect-test";
 
     @BeforeMethod(alwaysRun = true)
     public void setup() throws Exception {
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TransactionConsumeTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TransactionConsumeTest.java
index bfa4284..82fd1d1 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TransactionConsumeTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TransactionConsumeTest.java
@@ -59,9 +59,9 @@ import org.testng.annotations.Test;
 @Test(groups = "broker")
 public class TransactionConsumeTest extends TransactionTestBase {
 
-    private final static String CONSUME_TOPIC = "persistent://public/txn/txn-consume-test";
-    private final static String NORMAL_MSG_CONTENT = "Normal - ";
-    private final static String TXN_MSG_CONTENT = "Txn - ";
+    private static final String CONSUME_TOPIC = "persistent://public/txn/txn-consume-test";
+    private static final String NORMAL_MSG_CONTENT = "Normal - ";
+    private static final String TXN_MSG_CONTENT = "Txn - ";
 
     @BeforeMethod(alwaysRun = true)
     public void setup() throws Exception {
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TransactionProduceTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TransactionProduceTest.java
index cc4e8e2..e66525e 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TransactionProduceTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TransactionProduceTest.java
@@ -73,14 +73,14 @@ import org.testng.annotations.Test;
 @Test(groups = "broker")
 public class TransactionProduceTest extends TransactionTestBase {
 
-    private final static int TOPIC_PARTITION = 3;
-
-    private final static String TENANT = "tnx";
-    private final static String NAMESPACE1 = TENANT + "/ns1";
-    private final static String PRODUCE_COMMIT_TOPIC = NAMESPACE1 + "/produce-commit";
-    private final static String PRODUCE_ABORT_TOPIC = NAMESPACE1 + "/produce-abort";
-    private final static String ACK_COMMIT_TOPIC = NAMESPACE1 + "/ack-commit";
-    private final static String ACK_ABORT_TOPIC = NAMESPACE1 + "/ack-abort";
+    private static final int TOPIC_PARTITION = 3;
+
+    private static final String TENANT = "tnx";
+    private static final String NAMESPACE1 = TENANT + "/ns1";
+    private static final String PRODUCE_COMMIT_TOPIC = NAMESPACE1 + "/produce-commit";
+    private static final String PRODUCE_ABORT_TOPIC = NAMESPACE1 + "/produce-abort";
+    private static final String ACK_COMMIT_TOPIC = NAMESPACE1 + "/ack-commit";
+    private static final String ACK_ABORT_TOPIC = NAMESPACE1 + "/ack-abort";
 
     @BeforeMethod
     protected void setup() throws Exception {
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TransactionTestBase.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TransactionTestBase.java
index 465a7aa..43c5edb 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TransactionTestBase.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TransactionTestBase.java
@@ -68,7 +68,7 @@ import org.awaitility.Awaitility;
 @Slf4j
 public abstract class TransactionTestBase extends TestRetrySupport {
 
-    public final static String CLUSTER_NAME = "test";
+    public static final String CLUSTER_NAME = "test";
 
     @Setter
     private int brokerCount = 3;
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/buffer/TransactionLowWaterMarkTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/buffer/TransactionLowWaterMarkTest.java
index a9fc325..3e0a8fc 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/buffer/TransactionLowWaterMarkTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/buffer/TransactionLowWaterMarkTest.java
@@ -76,9 +76,9 @@ import org.testng.annotations.Test;
 @Test(groups = "broker")
 public class TransactionLowWaterMarkTest extends TransactionTestBase {
 
-    private final static String TENANT = "tnx";
-    private final static String NAMESPACE1 = TENANT + "/ns1";
-    private final static String TOPIC = NAMESPACE1 + "/test-topic";
+    private static final String TENANT = "tnx";
+    private static final String NAMESPACE1 = TENANT + "/ns1";
+    private static final String TOPIC = NAMESPACE1 + "/test-topic";
 
     @BeforeMethod(alwaysRun = true)
     protected void setup() throws Exception {
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/buffer/TransactionStablePositionTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/buffer/TransactionStablePositionTest.java
index 0e9bf75..e43f262 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/buffer/TransactionStablePositionTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/buffer/TransactionStablePositionTest.java
@@ -54,9 +54,9 @@ import org.testng.annotations.Test;
 @Test(groups = "broker")
 public class TransactionStablePositionTest extends TransactionTestBase {
 
-    private final static String TENANT = "tnx";
-    private final static String NAMESPACE1 = TENANT + "/ns1";
-    private final static String TOPIC = NAMESPACE1 + "/test-topic";
+    private static final String TENANT = "tnx";
+    private static final String NAMESPACE1 = TENANT + "/ns1";
+    private static final String TOPIC = NAMESPACE1 + "/test-topic";
 
     @BeforeMethod
     protected void setup() throws Exception {
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/pendingack/PendingAckInMemoryDeleteTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/pendingack/PendingAckInMemoryDeleteTest.java
index fd5a2b8..9cdb219 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/pendingack/PendingAckInMemoryDeleteTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/pendingack/PendingAckInMemoryDeleteTest.java
@@ -71,8 +71,8 @@ import static org.testng.Assert.assertTrue;
 @Test(groups = "broker")
 public class PendingAckInMemoryDeleteTest extends TransactionTestBase {
 
-    private final static String TENANT = "tnx";
-    private final static String NAMESPACE1 = TENANT + "/ns1";
+    private static final String TENANT = "tnx";
+    private static final String NAMESPACE1 = TENANT + "/ns1";
 
     @BeforeMethod
     protected void setup() throws Exception {
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/pendingack/PendingAckPersistentTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/pendingack/PendingAckPersistentTest.java
index 4619911..4cdef2e 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/pendingack/PendingAckPersistentTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/pendingack/PendingAckPersistentTest.java
@@ -63,11 +63,8 @@ import org.testng.annotations.Test;
 public class PendingAckPersistentTest extends TransactionTestBase {
 
     private static final String PENDING_ACK_REPLAY_TOPIC = "persistent://public/txn/pending-ack-replay";
-
     private static final String NAMESPACE = "public/txn";
 
-    private static final int NUM_PARTITIONS = 16;
-
     @BeforeMethod
     public void setup() throws Exception {
         setBrokerCount(1);
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/client/api/AuthorizationProducerConsumerTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/client/api/AuthorizationProducerConsumerTest.java
index 3ba210c..e346086 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/client/api/AuthorizationProducerConsumerTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/client/api/AuthorizationProducerConsumerTest.java
@@ -66,8 +66,8 @@ import org.testng.annotations.Test;
 public class AuthorizationProducerConsumerTest extends ProducerConsumerBase {
     private static final Logger log = LoggerFactory.getLogger(AuthorizationProducerConsumerTest.class);
 
-    private final static String clientRole = "plugbleRole";
-    private final static Set<String> clientAuthProviderSupportedRoles = Sets.newHashSet(clientRole);
+    private static final String clientRole = "plugbleRole";
+    private static final Set<String> clientAuthProviderSupportedRoles = Sets.newHashSet(clientRole);
 
     protected void setup() throws Exception {
 
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/client/impl/ConsumerAckResponseTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/client/impl/ConsumerAckResponseTest.java
index 203b3a1..0378c53 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/client/impl/ConsumerAckResponseTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/client/impl/ConsumerAckResponseTest.java
@@ -42,7 +42,7 @@ import org.testng.annotations.Test;
 @Test(groups = "broker-impl")
 public class ConsumerAckResponseTest extends ProducerConsumerBase {
 
-    private final static TransactionImpl transaction = mock(TransactionImpl.class);
+    private static final TransactionImpl transaction = mock(TransactionImpl.class);
 
     @BeforeClass
     public void setup() throws Exception {
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/client/impl/TransactionEndToEndTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/client/impl/TransactionEndToEndTest.java
index 960beaa..3da8a6c 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/client/impl/TransactionEndToEndTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/client/impl/TransactionEndToEndTest.java
@@ -87,12 +87,12 @@ import org.testng.annotations.Test;
 @Test(groups = "flaky")
 public class TransactionEndToEndTest extends TransactionTestBase {
 
-    private final static int TOPIC_PARTITION = 3;
+    private static final int TOPIC_PARTITION = 3;
 
-    private final static String TENANT = "tnx";
-    private final static String NAMESPACE1 = TENANT + "/ns1";
-    private final static String TOPIC_OUTPUT = NAMESPACE1 + "/output";
-    private final static String TOPIC_MESSAGE_ACK_TEST = NAMESPACE1 + "/message-ack-test";
+    private static final String TENANT = "tnx";
+    private static final String NAMESPACE1 = TENANT + "/ns1";
+    private static final String TOPIC_OUTPUT = NAMESPACE1 + "/output";
+    private static final String TOPIC_MESSAGE_ACK_TEST = NAMESPACE1 + "/message-ack-test";
 
     @BeforeMethod
     protected void setup() throws Exception {
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/schema/PartitionedTopicSchemaTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/schema/PartitionedTopicSchemaTest.java
index 911a4ab..e9757e1 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/schema/PartitionedTopicSchemaTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/schema/PartitionedTopicSchemaTest.java
@@ -42,9 +42,9 @@ import org.testng.annotations.Test;
 @Test(groups = "schema")
 public class PartitionedTopicSchemaTest extends MockedPulsarServiceBaseTest {
 
-    private final static String PARTITIONED_TOPIC = "public/default/partitioned-schema-topic";
-    private final static int MESSAGE_COUNT_PER_PARTITION  = 12;
-    private final static int TOPIC_PARTITION = 3;
+    private static final String PARTITIONED_TOPIC = "public/default/partitioned-schema-topic";
+    private static final int MESSAGE_COUNT_PER_PARTITION  = 12;
+    private static final int TOPIC_PARTITION = 3;
 
     @BeforeMethod
     @Override
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/schema/SchemaTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/schema/SchemaTest.java
index 6e860ad..38373cc 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/schema/SchemaTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/schema/SchemaTest.java
@@ -82,7 +82,7 @@ import org.testng.annotations.Test;
 @Test(groups = "schema")
 public class SchemaTest extends MockedPulsarServiceBaseTest {
 
-    private final static String CLUSTER_NAME = "test";
+    private static final String CLUSTER_NAME = "test";
 
     @BeforeMethod
     @Override
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/schema/compatibility/SchemaCompatibilityCheckTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/schema/compatibility/SchemaCompatibilityCheckTest.java
index 61d8332..8def5dc 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/schema/compatibility/SchemaCompatibilityCheckTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/schema/compatibility/SchemaCompatibilityCheckTest.java
@@ -56,7 +56,7 @@ import org.testng.annotations.Test;
 @Slf4j
 @Test(groups = "schema")
 public class SchemaCompatibilityCheckTest extends MockedPulsarServiceBaseTest {
-    private final static String CLUSTER_NAME = "test";
+    private static final String CLUSTER_NAME = "test";
 
     @BeforeMethod
     @Override
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/schema/compatibility/SchemaTypeCompatibilityCheckTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/schema/compatibility/SchemaTypeCompatibilityCheckTest.java
index 4fc57af..9b9c600 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/schema/compatibility/SchemaTypeCompatibilityCheckTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/schema/compatibility/SchemaTypeCompatibilityCheckTest.java
@@ -51,10 +51,10 @@ import static org.testng.Assert.expectThrows;
 
 
 public class SchemaTypeCompatibilityCheckTest extends MockedPulsarServiceBaseTest {
-    private final static String CLUSTER_NAME = "test";
-    private final static String PUBLIC_TENANT = "public";
-    private final static String namespace = "test-namespace";
-    private final static String namespaceName = PUBLIC_TENANT + "/" + namespace;
+    private static final String CLUSTER_NAME = "test";
+    private static final String PUBLIC_TENANT = "public";
+    private static final String namespace = "test-namespace";
+    private static final String namespaceName = PUBLIC_TENANT + "/" + namespace;
 
     @BeforeClass
     @Override
diff --git a/pulsar-client-admin-api/src/main/java/org/apache/pulsar/policies/data/loadbalancer/NamespaceBundleStats.java b/pulsar-client-admin-api/src/main/java/org/apache/pulsar/policies/data/loadbalancer/NamespaceBundleStats.java
index 1a17165..ea237fb 100644
--- a/pulsar-client-admin-api/src/main/java/org/apache/pulsar/policies/data/loadbalancer/NamespaceBundleStats.java
+++ b/pulsar-client-admin-api/src/main/java/org/apache/pulsar/policies/data/loadbalancer/NamespaceBundleStats.java
@@ -36,13 +36,13 @@ public class NamespaceBundleStats implements Comparable<NamespaceBundleStats>, S
     public long cacheSize;
 
     // Consider the throughput equal if difference is less than 100 KB/s
-    private final static double throughputDifferenceThreshold = 1e5;
+    private static final double throughputDifferenceThreshold = 1e5;
     // Consider the msgRate equal if the difference is less than 100
-    private final static double msgRateDifferenceThreshold = 100;
+    private static final double msgRateDifferenceThreshold = 100;
     // Consider the total topics/producers/consumers equal if the difference is less than 500
-    private final static long topicConnectionDifferenceThreshold = 500;
+    private static final long topicConnectionDifferenceThreshold = 500;
     // Consider the cache size equal if the difference is less than 100 kb
-    private final static long cacheSizeDifferenceThreshold = 100000;
+    private static final long cacheSizeDifferenceThreshold = 100000;
 
     public NamespaceBundleStats() {
         reset();
diff --git a/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/TopicsImpl.java b/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/TopicsImpl.java
index 529bb23..66588a4 100644
--- a/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/TopicsImpl.java
+++ b/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/TopicsImpl.java
@@ -99,9 +99,10 @@ public class TopicsImpl extends BaseResource implements Topics {
     private final WebTarget adminV2Topics;
     // CHECKSTYLE.OFF: MemberName
     private static final String BATCH_HEADER = "X-Pulsar-num-batch-message";
-    private static final String BATCH_SIZE_HEADER = "X-Pulsar-batch-size";
     private static final String MESSAGE_ID = "X-Pulsar-Message-ID";
     private static final String PUBLISH_TIME = "X-Pulsar-publish-time";
+    // CHECKSTYLE.ON: MemberName
+    private static final String BATCH_SIZE_HEADER = "X-Pulsar-batch-size";
     private static final String EVENT_TIME = "X-Pulsar-event-time";
     private static final String DELIVER_AT_TIME = "X-Pulsar-deliver-at-time";
     private static final String BROKER_ENTRY_TIMESTAMP = "X-Pulsar-Broker-Entry-METADATA-timestamp";
@@ -128,7 +129,6 @@ public class TopicsImpl extends BaseResource implements Topics {
     private static final String SCHEMA_VERSION = "X-Pulsar-Base64-schema-version-b64encoded";
     private static final String ENCRYPTION_PARAM = "X-Pulsar-Base64-encryption-param";
     private static final String ENCRYPTION_KEYS = "X-Pulsar-Base64-encryption-keys";
-    // CHECKSTYLE.ON: MemberName
 
     public TopicsImpl(WebTarget web, Authentication auth, long readTimeoutMs) {
         super(auth, readTimeoutMs);
diff --git a/pulsar-client-auth-sasl/src/main/java/org/apache/pulsar/client/impl/auth/AuthenticationSasl.java b/pulsar-client-auth-sasl/src/main/java/org/apache/pulsar/client/impl/auth/AuthenticationSasl.java
index 54d1802..30a3c4c 100644
--- a/pulsar-client-auth-sasl/src/main/java/org/apache/pulsar/client/impl/auth/AuthenticationSasl.java
+++ b/pulsar-client-auth-sasl/src/main/java/org/apache/pulsar/client/impl/auth/AuthenticationSasl.java
@@ -78,8 +78,8 @@ import org.apache.pulsar.common.sasl.JAASCredentialsContainer;
 public class AuthenticationSasl implements Authentication, EncodedAuthenticationParameterSupport {
     private static final long serialVersionUID = 1L;
     // this is a static object that shares amongst client.
-    static private JAASCredentialsContainer jaasCredentialsContainer;
-    static private volatile boolean initializedJAAS = false;
+    private static JAASCredentialsContainer jaasCredentialsContainer;
+    private static volatile boolean initializedJAAS = false;
 
     private Map<String, String> configuration;
     private String loginContextName;
diff --git a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CliCommand.java b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CliCommand.java
index 5113daa..282fcf0 100644
--- a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CliCommand.java
+++ b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CliCommand.java
@@ -126,7 +126,7 @@ abstract class CliCommand {
         return arguments.get(0);
     }
 
-    static private String[] splitParameter(List<String> params, int n) {
+    private static String[] splitParameter(List<String> params, int n) {
         if (params.size() != 1) {
             throw new ParameterException("Need to provide just 1 parameter");
         }
diff --git a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/HttpClient.java b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/HttpClient.java
index 1d3839c..c295975 100644
--- a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/HttpClient.java
+++ b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/HttpClient.java
@@ -59,8 +59,8 @@ import org.asynchttpclient.netty.ssl.JsseSslEngineFactory;
 @Slf4j
 public class HttpClient implements Closeable {
 
-    protected final static int DEFAULT_CONNECT_TIMEOUT_IN_SECONDS = 10;
-    protected final static int DEFAULT_READ_TIMEOUT_IN_SECONDS = 30;
+    protected static final int DEFAULT_CONNECT_TIMEOUT_IN_SECONDS = 10;
+    protected static final int DEFAULT_READ_TIMEOUT_IN_SECONDS = 30;
 
     protected final AsyncHttpClient httpClient;
     protected final ServiceNameResolver serviceNameResolver;
diff --git a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/MessageImpl.java b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/MessageImpl.java
index 948c67e..c73d147 100644
--- a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/MessageImpl.java
+++ b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/MessageImpl.java
@@ -68,7 +68,7 @@ public class MessageImpl<T> implements Message<T> {
     private Optional<EncryptionContext> encryptionCtx = Optional.empty();
 
     private String topic; // only set for incoming messages
-    transient private Map<String, String> properties;
+    private transient Map<String, String> properties;
     private int redeliveryCount;
     private int uncompressedSize;
 
@@ -654,7 +654,7 @@ public class MessageImpl<T> implements Message<T> {
 
     private Handle<MessageImpl<?>> recyclerHandle;
 
-    private final static Recycler<MessageImpl<?>> RECYCLER = new Recycler<MessageImpl<?>>() {
+    private static final Recycler<MessageImpl<?>> RECYCLER = new Recycler<MessageImpl<?>>() {
         @Override
         protected MessageImpl<?> newObject(Handle<MessageImpl<?>> handle) {
             return new MessageImpl<>(handle);
diff --git a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/auth/AuthenticationDataBasic.java b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/auth/AuthenticationDataBasic.java
index 39b7d5f..9ba928c 100644
--- a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/auth/AuthenticationDataBasic.java
+++ b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/auth/AuthenticationDataBasic.java
@@ -28,7 +28,7 @@ import java.util.Set;
 import java.util.Base64;
 
 public class AuthenticationDataBasic implements AuthenticationDataProvider {
-    private final static String HTTP_HEADER_NAME = "Authorization";
+    private static final String HTTP_HEADER_NAME = "Authorization";
     private String httpAuthToken;
     private String commandAuthToken;
 
diff --git a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/auth/AuthenticationDataToken.java b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/auth/AuthenticationDataToken.java
index f04400b..3943649 100644
--- a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/auth/AuthenticationDataToken.java
+++ b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/auth/AuthenticationDataToken.java
@@ -27,7 +27,7 @@ import java.util.function.Supplier;
 import org.apache.pulsar.client.api.AuthenticationDataProvider;
 
 public class AuthenticationDataToken implements AuthenticationDataProvider {
-    public final static String HTTP_HEADER_NAME = "Authorization";
+    public static final String HTTP_HEADER_NAME = "Authorization";
 
     private final Supplier<String> tokenSupplier;
 
diff --git a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/auth/AuthenticationKeyStoreTls.java b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/auth/AuthenticationKeyStoreTls.java
index c8c1396..b59145f 100644
--- a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/auth/AuthenticationKeyStoreTls.java
+++ b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/auth/AuthenticationKeyStoreTls.java
@@ -39,13 +39,13 @@ import org.apache.pulsar.client.impl.AuthenticationUtil;
 public class AuthenticationKeyStoreTls implements Authentication, EncodedAuthenticationParameterSupport {
     private static final long serialVersionUID = 1L;
 
-    private final static String AUTH_NAME = "tls";
+    private static final String AUTH_NAME = "tls";
 
     // parameter name
-    public final static String KEYSTORE_TYPE = "keyStoreType";
-    public final static String KEYSTORE_PATH= "keyStorePath";
-    public final static String KEYSTORE_PW = "keyStorePassword";
-    private final static String DEFAULT_KEYSTORE_TYPE = "JKS";
+    public static final String KEYSTORE_TYPE = "keyStoreType";
+    public static final String KEYSTORE_PATH= "keyStorePath";
+    public static final String KEYSTORE_PW = "keyStorePassword";
+    private static final String DEFAULT_KEYSTORE_TYPE = "JKS";
 
     private transient KeyStoreParams keyStoreParams;
 
diff --git a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/auth/AuthenticationTls.java b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/auth/AuthenticationTls.java
index fa02c47..5146457 100644
--- a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/auth/AuthenticationTls.java
+++ b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/auth/AuthenticationTls.java
@@ -41,7 +41,7 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
  *
  */
 public class AuthenticationTls implements Authentication, EncodedAuthenticationParameterSupport {
-    private final static String AUTH_NAME = "tls";
+    private static final String AUTH_NAME = "tls";
     private static final long serialVersionUID = 1L;
 
     private String certFilePath;
diff --git a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/auth/oauth2/protocol/TokenClient.java b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/auth/oauth2/protocol/TokenClient.java
index 0718073..9151fc3 100644
--- a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/auth/oauth2/protocol/TokenClient.java
+++ b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/auth/oauth2/protocol/TokenClient.java
@@ -40,8 +40,8 @@ import org.asynchttpclient.Response;
  */
 public class TokenClient implements ClientCredentialsExchanger {
 
-    protected final static int DEFAULT_CONNECT_TIMEOUT_IN_SECONDS = 10;
-    protected final static int DEFAULT_READ_TIMEOUT_IN_SECONDS = 30;
+    protected static final int DEFAULT_CONNECT_TIMEOUT_IN_SECONDS = 10;
+    protected static final int DEFAULT_READ_TIMEOUT_IN_SECONDS = 30;
 
     private final URL tokenUrl;
     private final AsyncHttpClient httpClient;
diff --git a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/generic/GenericAvroSchema.java b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/generic/GenericAvroSchema.java
index 8f63328..824f1e5 100644
--- a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/generic/GenericAvroSchema.java
+++ b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/generic/GenericAvroSchema.java
@@ -30,7 +30,7 @@ import org.apache.pulsar.common.schema.SchemaInfo;
 @Slf4j
 public class GenericAvroSchema extends GenericSchemaImpl {
 
-    public final static String OFFSET_PROP = "__AVRO_READ_OFFSET__";
+    public static final String OFFSET_PROP = "__AVRO_READ_OFFSET__";
 
     public GenericAvroSchema(SchemaInfo schemaInfo) {
         this(schemaInfo, true);
diff --git a/pulsar-client/src/main/java/org/apache/pulsar/client/util/RetryMessageUtil.java b/pulsar-client/src/main/java/org/apache/pulsar/client/util/RetryMessageUtil.java
index 588ec96..727bfed 100644
--- a/pulsar-client/src/main/java/org/apache/pulsar/client/util/RetryMessageUtil.java
+++ b/pulsar-client/src/main/java/org/apache/pulsar/client/util/RetryMessageUtil.java
@@ -20,13 +20,13 @@ package org.apache.pulsar.client.util;
 
 public class RetryMessageUtil {
 
-    public final static String SYSTEM_PROPERTY_RECONSUMETIMES = "RECONSUMETIMES";
-    public final static String SYSTEM_PROPERTY_DELAY_TIME = "DELAY_TIME";
-    public final static String SYSTEM_PROPERTY_REAL_TOPIC = "REAL_TOPIC";
-    public final static String SYSTEM_PROPERTY_RETRY_TOPIC = "RETRY_TOPIC";
-    public final static String SYSTEM_PROPERTY_ORIGIN_MESSAGE_ID = "ORIGIN_MESSAGE_IDY_TIME";
+    public static final String SYSTEM_PROPERTY_RECONSUMETIMES = "RECONSUMETIMES";
+    public static final String SYSTEM_PROPERTY_DELAY_TIME = "DELAY_TIME";
+    public static final String SYSTEM_PROPERTY_REAL_TOPIC = "REAL_TOPIC";
+    public static final String SYSTEM_PROPERTY_RETRY_TOPIC = "RETRY_TOPIC";
+    public static final String SYSTEM_PROPERTY_ORIGIN_MESSAGE_ID = "ORIGIN_MESSAGE_IDY_TIME";
     
-    public final static int MAX_RECONSUMETIMES = 16;
-    public final static String RETRY_GROUP_TOPIC_SUFFIX = "-RETRY";
-    public final static String DLQ_GROUP_TOPIC_SUFFIX = "-DLQ";
+    public static final int MAX_RECONSUMETIMES = 16;
+    public static final String RETRY_GROUP_TOPIC_SUFFIX = "-RETRY";
+    public static final String DLQ_GROUP_TOPIC_SUFFIX = "-DLQ";
 }
diff --git a/pulsar-client/src/test/java/org/apache/pulsar/client/impl/ConnectionTimeoutTest.java b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/ConnectionTimeoutTest.java
index 15f46ac..60359c4 100644
--- a/pulsar-client/src/test/java/org/apache/pulsar/client/impl/ConnectionTimeoutTest.java
+++ b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/ConnectionTimeoutTest.java
@@ -29,7 +29,7 @@ import org.testng.annotations.Test;
 public class ConnectionTimeoutTest {
 
     // 192.0.2.0/24 is assigned for documentation, should be a deadend
-    final static String blackholeBroker = "pulsar://192.0.2.1:1234";
+    static final String blackholeBroker = "pulsar://192.0.2.1:1234";
 
     @Test
     public void testLowTimeout() throws Exception {
diff --git a/pulsar-client/src/test/java/org/apache/pulsar/client/impl/schema/generic/GenericProtobufNativeReaderTest.java b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/schema/generic/GenericProtobufNativeReaderTest.java
index 484230c..a61f4a3 100644
--- a/pulsar-client/src/test/java/org/apache/pulsar/client/impl/schema/generic/GenericProtobufNativeReaderTest.java
+++ b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/schema/generic/GenericProtobufNativeReaderTest.java
@@ -79,7 +79,7 @@ public class GenericProtobufNativeReaderTest {
         assertEquals(nativeRecord.getField(nativeRecord.getDescriptorForType().findFieldByName("doubleField")), DOUBLE_FIELD_VLUE);
     }
 
-    private final static String STRING_FIELD_VLUE = "stringFieldValue";
-    private final static double DOUBLE_FIELD_VLUE = 0.2D;
+    private static final String STRING_FIELD_VLUE = "stringFieldValue";
+    private static final double DOUBLE_FIELD_VLUE = 0.2D;
 
 }
diff --git a/pulsar-client/src/test/java/org/apache/pulsar/client/impl/schema/generic/GenericProtobufNativeSchemaTest.java b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/schema/generic/GenericProtobufNativeSchemaTest.java
index 886d7f8..9425946 100644
--- a/pulsar-client/src/test/java/org/apache/pulsar/client/impl/schema/generic/GenericProtobufNativeSchemaTest.java
+++ b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/schema/generic/GenericProtobufNativeSchemaTest.java
@@ -60,7 +60,7 @@ public class GenericProtobufNativeSchemaTest {
         assertEquals(message.getDoubleField(), DOUBLE_FIELD_VLUE);
     }
 
-    private final static String STRING_FIELD_VLUE = "stringFieldValue";
-    private final static double DOUBLE_FIELD_VLUE = 0.2D;
+    private static final String STRING_FIELD_VLUE = "stringFieldValue";
+    private static final double DOUBLE_FIELD_VLUE = 0.2D;
 
 }
diff --git a/pulsar-common/src/main/java/org/apache/pulsar/common/functions/Utils.java b/pulsar-common/src/main/java/org/apache/pulsar/common/functions/Utils.java
index abc601a..2de38bb 100644
--- a/pulsar-common/src/main/java/org/apache/pulsar/common/functions/Utils.java
+++ b/pulsar-common/src/main/java/org/apache/pulsar/common/functions/Utils.java
@@ -30,9 +30,9 @@ import org.apache.pulsar.packages.management.core.common.PackageType;
  * Helper class to work with configuration.
  */
 public class Utils {
-    public final static String HTTP = "http";
-    public final static String FILE = "file";
-    public final static String BUILTIN = "builtin";
+    public static final String HTTP = "http";
+    public static final String FILE = "file";
+    public static final String BUILTIN = "builtin";
 
     public static boolean isFunctionPackageUrlSupported(String functionPkgUrl) {
         return isNotBlank(functionPkgUrl) && (functionPkgUrl.startsWith(HTTP)
diff --git a/pulsar-common/src/main/java/org/apache/pulsar/common/policies/data/OffloadPoliciesImpl.java b/pulsar-common/src/main/java/org/apache/pulsar/common/policies/data/OffloadPoliciesImpl.java
index 68761a6..e1da6a1 100644
--- a/pulsar-common/src/main/java/org/apache/pulsar/common/policies/data/OffloadPoliciesImpl.java
+++ b/pulsar-common/src/main/java/org/apache/pulsar/common/policies/data/OffloadPoliciesImpl.java
@@ -45,9 +45,9 @@ import static org.apache.pulsar.common.util.FieldParser.value;
 @NoArgsConstructor
 public class OffloadPoliciesImpl implements Serializable, OffloadPolicies {
 
-    private final static long serialVersionUID = 0L;
+    private static final long serialVersionUID = 0L;
 
-    public final static List<Field> CONFIGURATION_FIELDS;
+    public static final List<Field> CONFIGURATION_FIELDS;
 
     static {
         List<Field> temp = new ArrayList<>();
@@ -61,20 +61,20 @@ public class OffloadPoliciesImpl implements Serializable, OffloadPolicies {
         CONFIGURATION_FIELDS = Collections.unmodifiableList(temp);
     }
 
-    public final static int DEFAULT_MAX_BLOCK_SIZE_IN_BYTES = 64 * 1024 * 1024;   // 64MB
-    public final static int DEFAULT_READ_BUFFER_SIZE_IN_BYTES = 1024 * 1024;      // 1MB
-    public final static int DEFAULT_OFFLOAD_MAX_THREADS = 2;
-    public final static int DEFAULT_OFFLOAD_MAX_PREFETCH_ROUNDS = 1;
-    public final static ImmutableList<String> DRIVER_NAMES = ImmutableList
+    public static final int DEFAULT_MAX_BLOCK_SIZE_IN_BYTES = 64 * 1024 * 1024;   // 64MB
+    public static final int DEFAULT_READ_BUFFER_SIZE_IN_BYTES = 1024 * 1024;      // 1MB
+    public static final int DEFAULT_OFFLOAD_MAX_THREADS = 2;
+    public static final int DEFAULT_OFFLOAD_MAX_PREFETCH_ROUNDS = 1;
+    public static final ImmutableList<String> DRIVER_NAMES = ImmutableList
             .of("S3", "aws-s3", "google-cloud-storage", "filesystem", "azureblob", "aliyun-oss");
-    public final static String DEFAULT_OFFLOADER_DIRECTORY = "./offloaders";
-    public final static Long DEFAULT_OFFLOAD_THRESHOLD_IN_BYTES = null;
-    public final static Long DEFAULT_OFFLOAD_DELETION_LAG_IN_MILLIS = null;
+    public static final String DEFAULT_OFFLOADER_DIRECTORY = "./offloaders";
+    public static final Long DEFAULT_OFFLOAD_THRESHOLD_IN_BYTES = null;
+    public static final Long DEFAULT_OFFLOAD_DELETION_LAG_IN_MILLIS = null;
 
-    public final static String OFFLOAD_THRESHOLD_NAME_IN_CONF_FILE =
+    public static final String OFFLOAD_THRESHOLD_NAME_IN_CONF_FILE =
             "managedLedgerOffloadAutoTriggerSizeThresholdBytes";
-    public final static String DELETION_LAG_NAME_IN_CONF_FILE = "managedLedgerOffloadDeletionLagMs";
-    public final static OffloadedReadPriority DEFAULT_OFFLOADED_READ_PRIORITY = OffloadedReadPriority.TIERED_STORAGE_FIRST;
+    public static final String DELETION_LAG_NAME_IN_CONF_FILE = "managedLedgerOffloadDeletionLagMs";
+    public static final OffloadedReadPriority DEFAULT_OFFLOADED_READ_PRIORITY = OffloadedReadPriority.TIERED_STORAGE_FIRST;
 
     // common config
     @Configuration
diff --git a/pulsar-common/src/main/java/org/apache/pulsar/common/protocol/Commands.java b/pulsar-common/src/main/java/org/apache/pulsar/common/protocol/Commands.java
index 16ffd96..4484ab9 100644
--- a/pulsar-common/src/main/java/org/apache/pulsar/common/protocol/Commands.java
+++ b/pulsar-common/src/main/java/org/apache/pulsar/common/protocol/Commands.java
@@ -1018,7 +1018,7 @@ public class Commands {
         return serializeWithSize(newGetTopicsOfNamespaceResponseCommand(topics, requestId));
     }
 
-    private final static ByteBuf cmdPing;
+    private static final ByteBuf cmdPing;
 
     static {
         BaseCommand cmd = new BaseCommand()
@@ -1033,7 +1033,7 @@ public class Commands {
         return cmdPing.retainedDuplicate();
     }
 
-    private final static ByteBuf cmdPong;
+    private static final ByteBuf cmdPong;
 
     static {
         BaseCommand cmd = new BaseCommand()
diff --git a/pulsar-common/src/main/java/org/apache/pulsar/common/protocol/schema/BytesSchemaVersion.java b/pulsar-common/src/main/java/org/apache/pulsar/common/protocol/schema/BytesSchemaVersion.java
index 38ad679..b27482e 100644
--- a/pulsar-common/src/main/java/org/apache/pulsar/common/protocol/schema/BytesSchemaVersion.java
+++ b/pulsar-common/src/main/java/org/apache/pulsar/common/protocol/schema/BytesSchemaVersion.java
@@ -145,7 +145,7 @@ public class BytesSchemaVersion implements SchemaVersion, Comparable<BytesSchema
     /**
      * A byte array comparator based on lexicograpic ordering.
      */
-    public final static ByteArrayComparator BYTES_LEXICO_COMPARATOR = new LexicographicByteArrayComparator();
+    public static final ByteArrayComparator BYTES_LEXICO_COMPARATOR = new LexicographicByteArrayComparator();
 
     /**
      * This interface helps to compare byte arrays.
diff --git a/pulsar-common/src/main/java/org/apache/pulsar/common/stats/JvmMetrics.java b/pulsar-common/src/main/java/org/apache/pulsar/common/stats/JvmMetrics.java
index 93d2eec..66e77ad 100644
--- a/pulsar-common/src/main/java/org/apache/pulsar/common/stats/JvmMetrics.java
+++ b/pulsar-common/src/main/java/org/apache/pulsar/common/stats/JvmMetrics.java
@@ -51,7 +51,7 @@ public class JvmMetrics {
     private final JvmGCMetricsLogger gcLogger;
 
     private final String componentName;
-    private final static Map<String, Class<? extends JvmGCMetricsLogger>> gcLoggerMap = new HashMap<>();
+    private static final Map<String, Class<? extends JvmGCMetricsLogger>> gcLoggerMap = new HashMap<>();
     static {
         try {
             directMemoryUsage = io.netty.util.internal.PlatformDependent.class
diff --git a/pulsar-common/src/main/java/org/apache/pulsar/common/util/SimpleTextOutputStream.java b/pulsar-common/src/main/java/org/apache/pulsar/common/util/SimpleTextOutputStream.java
index 3f75fde..9fc4b34 100644
--- a/pulsar-common/src/main/java/org/apache/pulsar/common/util/SimpleTextOutputStream.java
+++ b/pulsar-common/src/main/java/org/apache/pulsar/common/util/SimpleTextOutputStream.java
@@ -26,7 +26,7 @@ import io.netty.buffer.ByteBuf;
  */
 public class SimpleTextOutputStream {
     private final ByteBuf buffer;
-    private final static char[] hexChars = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e',
+    private static final char[] hexChars = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e',
             'f' };
 
     public SimpleTextOutputStream(ByteBuf buffer) {
diff --git a/pulsar-common/src/main/java/org/apache/pulsar/common/util/collections/BitSetRecyclable.java b/pulsar-common/src/main/java/org/apache/pulsar/common/util/collections/BitSetRecyclable.java
index 9b88357..26dbabe 100644
--- a/pulsar-common/src/main/java/org/apache/pulsar/common/util/collections/BitSetRecyclable.java
+++ b/pulsar-common/src/main/java/org/apache/pulsar/common/util/collections/BitSetRecyclable.java
@@ -37,9 +37,9 @@ public class BitSetRecyclable implements Cloneable, java.io.Serializable {
      * a long, which consists of 64 bits, requiring 6 address bits.
      * The choice of word size is determined purely by performance concerns.
      */
-    private final static int ADDRESS_BITS_PER_WORD = 6;
-    private final static int BITS_PER_WORD = 1 << ADDRESS_BITS_PER_WORD;
-    private final static int BIT_INDEX_MASK = BITS_PER_WORD - 1;
+    private static final int ADDRESS_BITS_PER_WORD = 6;
+    private static final int BITS_PER_WORD = 1 << ADDRESS_BITS_PER_WORD;
+    private static final int BIT_INDEX_MASK = BITS_PER_WORD - 1;
 
     /* Used to shift left or right for a partial word mask */
     private static final long WORD_MASK = 0xffffffffffffffffL;
diff --git a/pulsar-common/src/main/java/org/apache/pulsar/common/util/collections/ConcurrentLongPairSet.java b/pulsar-common/src/main/java/org/apache/pulsar/common/util/collections/ConcurrentLongPairSet.java
index d537793..f1806c5 100644
--- a/pulsar-common/src/main/java/org/apache/pulsar/common/util/collections/ConcurrentLongPairSet.java
+++ b/pulsar-common/src/main/java/org/apache/pulsar/common/util/collections/ConcurrentLongPairSet.java
@@ -475,7 +475,7 @@ public class ConcurrentLongPairSet implements LongPairSet {
     private static final long HashMixer = 0xc6a4a7935bd1e995L;
     private static final int R = 47;
 
-    final static long hash(long key1, long key2) {
+    static final long hash(long key1, long key2) {
         long hash = key1 * HashMixer;
         hash ^= hash >>> R;
         hash *= HashMixer;
diff --git a/pulsar-common/src/main/java/org/apache/pulsar/common/util/collections/ConcurrentOpenHashMap.java b/pulsar-common/src/main/java/org/apache/pulsar/common/util/collections/ConcurrentOpenHashMap.java
index 0388cd3..47927a9 100644
--- a/pulsar-common/src/main/java/org/apache/pulsar/common/util/collections/ConcurrentOpenHashMap.java
+++ b/pulsar-common/src/main/java/org/apache/pulsar/common/util/collections/ConcurrentOpenHashMap.java
@@ -430,7 +430,7 @@ public class ConcurrentOpenHashMap<K, V> {
     private static final long HashMixer = 0xc6a4a7935bd1e995L;
     private static final int R = 47;
 
-    final static <K> long hash(K key) {
+    static final <K> long hash(K key) {
         long hash = key.hashCode() * HashMixer;
         hash ^= hash >>> R;
         hash *= HashMixer;
diff --git a/pulsar-common/src/main/java/org/apache/pulsar/common/util/collections/ConcurrentOpenHashSet.java b/pulsar-common/src/main/java/org/apache/pulsar/common/util/collections/ConcurrentOpenHashSet.java
index c846642..8b77d90 100644
--- a/pulsar-common/src/main/java/org/apache/pulsar/common/util/collections/ConcurrentOpenHashSet.java
+++ b/pulsar-common/src/main/java/org/apache/pulsar/common/util/collections/ConcurrentOpenHashSet.java
@@ -443,7 +443,7 @@ public class ConcurrentOpenHashSet<V> {
     private static final long HashMixer = 0xc6a4a7935bd1e995L;
     private static final int R = 47;
 
-    final static <K> long hash(K key) {
+    static final <K> long hash(K key) {
         long hash = key.hashCode() * HashMixer;
         hash ^= hash >>> R;
         hash *= HashMixer;
diff --git a/pulsar-common/src/main/java/org/apache/pulsar/common/util/collections/GrowableArrayBlockingQueue.java b/pulsar-common/src/main/java/org/apache/pulsar/common/util/collections/GrowableArrayBlockingQueue.java
index f7003aa..fd32df7 100644
--- a/pulsar-common/src/main/java/org/apache/pulsar/common/util/collections/GrowableArrayBlockingQueue.java
+++ b/pulsar-common/src/main/java/org/apache/pulsar/common/util/collections/GrowableArrayBlockingQueue.java
@@ -426,7 +426,7 @@ public class GrowableArrayBlockingQueue<T> extends AbstractQueue<T> implements B
         }
     }
 
-    final static class PaddedInt {
+    static final class PaddedInt {
         private int value;
 
         // Padding to avoid false sharing
diff --git a/pulsar-common/src/main/java/org/apache/pulsar/common/util/collections/GrowablePriorityLongPairQueue.java b/pulsar-common/src/main/java/org/apache/pulsar/common/util/collections/GrowablePriorityLongPairQueue.java
index 0005aad..413711f 100644
--- a/pulsar-common/src/main/java/org/apache/pulsar/common/util/collections/GrowablePriorityLongPairQueue.java
+++ b/pulsar-common/src/main/java/org/apache/pulsar/common/util/collections/GrowablePriorityLongPairQueue.java
@@ -325,7 +325,7 @@ public class GrowablePriorityLongPairQueue {
     private static final long HashMixer = 0xc6a4a7935bd1e995L;
     private static final int R = 47;
 
-    final static long hash(long key1, long key2) {
+    static final long hash(long key1, long key2) {
         long hash = key1 * HashMixer;
         hash ^= hash >>> R;
         hash *= HashMixer;
diff --git a/pulsar-common/src/test/java/org/apache/pulsar/common/util/collections/ConcurrentLongHashMapTest.java b/pulsar-common/src/test/java/org/apache/pulsar/common/util/collections/ConcurrentLongHashMapTest.java
index bb743cb..14d8395 100644
--- a/pulsar-common/src/test/java/org/apache/pulsar/common/util/collections/ConcurrentLongHashMapTest.java
+++ b/pulsar-common/src/test/java/org/apache/pulsar/common/util/collections/ConcurrentLongHashMapTest.java
@@ -390,9 +390,9 @@ public class ConcurrentLongHashMapTest {
         assertEquals(map.get(2).intValue(), 2);
     }
 
-    final static int Iterations = 1;
-    final static int ReadIterations = 10000;
-    final static int N = 100_000;
+    static final int Iterations = 1;
+    static final int ReadIterations = 10000;
+    static final int N = 100_000;
 
     public void benchConcurrentLongHashMap() throws Exception {
         ConcurrentLongHashMap<String> map = new ConcurrentLongHashMap<>(N, 1);
diff --git a/pulsar-common/src/test/java/org/apache/pulsar/common/util/collections/ConcurrentOpenHashMapTest.java b/pulsar-common/src/test/java/org/apache/pulsar/common/util/collections/ConcurrentOpenHashMapTest.java
index 58f6ee5..e18012c 100644
--- a/pulsar-common/src/test/java/org/apache/pulsar/common/util/collections/ConcurrentOpenHashMapTest.java
+++ b/pulsar-common/src/test/java/org/apache/pulsar/common/util/collections/ConcurrentOpenHashMapTest.java
@@ -369,9 +369,9 @@ public class ConcurrentOpenHashMapTest {
         assertNull(map.get(t1_b));
     }
 
-    final static int Iterations = 1;
-    final static int ReadIterations = 1000;
-    final static int N = 1_000_000;
+    static final int Iterations = 1;
+    static final int ReadIterations = 1000;
+    static final int N = 1_000_000;
 
     public void benchConcurrentOpenHashMap() throws Exception {
         ConcurrentOpenHashMap<Long, String> map = new ConcurrentOpenHashMap<>(N, 1);
diff --git a/pulsar-discovery-service/src/test/java/org/apache/pulsar/discovery/service/DiscoveryServiceTest.java b/pulsar-discovery-service/src/test/java/org/apache/pulsar/discovery/service/DiscoveryServiceTest.java
index 802879f..e7cd2fb 100644
--- a/pulsar-discovery-service/src/test/java/org/apache/pulsar/discovery/service/DiscoveryServiceTest.java
+++ b/pulsar-discovery-service/src/test/java/org/apache/pulsar/discovery/service/DiscoveryServiceTest.java
@@ -63,8 +63,8 @@ import org.awaitility.Awaitility;
 
 public class DiscoveryServiceTest extends BaseDiscoveryTestSetup {
 
-    private final static String TLS_CLIENT_CERT_FILE_PATH = "./src/test/resources/certificate/client.crt";
-    private final static String TLS_CLIENT_KEY_FILE_PATH = "./src/test/resources/certificate/client.key";
+    private static final String TLS_CLIENT_CERT_FILE_PATH = "./src/test/resources/certificate/client.crt";
+    private static final String TLS_CLIENT_KEY_FILE_PATH = "./src/test/resources/certificate/client.key";
 
     @BeforeMethod
     private void init() throws Exception {
diff --git a/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/ContextImpl.java b/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/ContextImpl.java
index fad49f2..3170236 100644
--- a/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/ContextImpl.java
+++ b/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/ContextImpl.java
@@ -114,7 +114,7 @@ class ContextImpl implements Context, SinkContext, SourceContext, AutoCloseable
 
     private final SubscriptionType subscriptionType;
 
-    private final static String[] userMetricsLabelNames;
+    private static final String[] userMetricsLabelNames;
 
     private boolean exposePulsarAdminClientEnabled;
 
diff --git a/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/stats/ComponentStatsManager.java b/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/stats/ComponentStatsManager.java
index be5c479..623a490 100644
--- a/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/stats/ComponentStatsManager.java
+++ b/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/stats/ComponentStatsManager.java
@@ -40,7 +40,7 @@ public abstract class ComponentStatsManager implements AutoCloseable {
 
     protected final EvictingQueue EMPTY_QUEUE = EvictingQueue.create(0);
 
-    public final static String USER_METRIC_PREFIX = "user_metric_";
+    public static final String USER_METRIC_PREFIX = "user_metric_";
 
     public static final String[] metricsLabelNames = {"tenant", "namespace", "name", "instance_id", "cluster", "fqfn"};
 
diff --git a/pulsar-functions/instance/src/test/java/org/apache/pulsar/functions/source/PulsarSourceTest.java b/pulsar-functions/instance/src/test/java/org/apache/pulsar/functions/source/PulsarSourceTest.java
index 8fed210..50ad2ba 100644
--- a/pulsar-functions/instance/src/test/java/org/apache/pulsar/functions/source/PulsarSourceTest.java
+++ b/pulsar-functions/instance/src/test/java/org/apache/pulsar/functions/source/PulsarSourceTest.java
@@ -68,8 +68,8 @@ import org.testng.annotations.Test;
 public class PulsarSourceTest {
 
 
-    private final static String TOPIC = "persistent://sample/ns1/test_result";
-    private final static ConsumerConfig CONSUMER_CONFIG =  ConsumerConfig.builder()
+    private static final String TOPIC = "persistent://sample/ns1/test_result";
+    private static final ConsumerConfig CONSUMER_CONFIG =  ConsumerConfig.builder()
             .serdeClassName(TopicSchema.DEFAULT_SERDE).isRegexPattern(false).build();
 
     private static Map<String, ConsumerConfig> consumerConfigs = new HashMap<>();
diff --git a/pulsar-functions/runtime/src/main/java/org/apache/pulsar/functions/runtime/kubernetes/BasicKubernetesManifestCustomizer.java b/pulsar-functions/runtime/src/main/java/org/apache/pulsar/functions/runtime/kubernetes/BasicKubernetesManifestCustomizer.java
index c69d315..1587d3e 100644
--- a/pulsar-functions/runtime/src/main/java/org/apache/pulsar/functions/runtime/kubernetes/BasicKubernetesManifestCustomizer.java
+++ b/pulsar-functions/runtime/src/main/java/org/apache/pulsar/functions/runtime/kubernetes/BasicKubernetesManifestCustomizer.java
@@ -57,7 +57,7 @@ public class BasicKubernetesManifestCustomizer implements KubernetesManifestCust
     @NoArgsConstructor
     @AllArgsConstructor
     @Builder(toBuilder = true)
-    static public class RuntimeOpts {
+    public static class RuntimeOpts {
         private String jobNamespace;
         private String jobName;
         private Map<String, String> extraLabels;
diff --git a/pulsar-io/debezium/core/src/main/java/org/apache/pulsar/io/debezium/DebeziumSource.java b/pulsar-io/debezium/core/src/main/java/org/apache/pulsar/io/debezium/DebeziumSource.java
index c207a95..3da0d98 100644
--- a/pulsar-io/debezium/core/src/main/java/org/apache/pulsar/io/debezium/DebeziumSource.java
+++ b/pulsar-io/debezium/core/src/main/java/org/apache/pulsar/io/debezium/DebeziumSource.java
@@ -28,10 +28,10 @@ import org.apache.pulsar.io.kafka.connect.KafkaConnectSource;
 import org.apache.pulsar.io.kafka.connect.PulsarKafkaWorkerConfig;
 
 public abstract class DebeziumSource extends KafkaConnectSource {
-    static private final String DEFAULT_CONVERTER = "org.apache.kafka.connect.json.JsonConverter";
-    static private final String DEFAULT_HISTORY = "org.apache.pulsar.io.debezium.PulsarDatabaseHistory";
-    static private final String DEFAULT_OFFSET_TOPIC = "debezium-offset-topic";
-    static private final String DEFAULT_HISTORY_TOPIC = "debezium-history-topic";
+    private static final String DEFAULT_CONVERTER = "org.apache.kafka.connect.json.JsonConverter";
+    private static final String DEFAULT_HISTORY = "org.apache.pulsar.io.debezium.PulsarDatabaseHistory";
+    private static final String DEFAULT_OFFSET_TOPIC = "debezium-offset-topic";
+    private static final String DEFAULT_HISTORY_TOPIC = "debezium-history-topic";
 
     public static void throwExceptionIfConfigNotMatch(Map<String, Object> config,
                                                        String key,
diff --git a/pulsar-io/debezium/mongodb/src/main/java/org/apache/pulsar/io/debezium/mongodb/DebeziumMongoDbSource.java b/pulsar-io/debezium/mongodb/src/main/java/org/apache/pulsar/io/debezium/mongodb/DebeziumMongoDbSource.java
index da21ab0..62760a9 100644
--- a/pulsar-io/debezium/mongodb/src/main/java/org/apache/pulsar/io/debezium/mongodb/DebeziumMongoDbSource.java
+++ b/pulsar-io/debezium/mongodb/src/main/java/org/apache/pulsar/io/debezium/mongodb/DebeziumMongoDbSource.java
@@ -27,7 +27,7 @@ import java.util.Map;
  * A pulsar source that runs debezium mongodb source
  */
 public class DebeziumMongoDbSource extends DebeziumSource {
-    static private final String DEFAULT_TASK = "io.debezium.connector.mongodb.MongoDbConnectorTask";
+    private static final String DEFAULT_TASK = "io.debezium.connector.mongodb.MongoDbConnectorTask";
 
     @Override
     public void setDbConnectorTask(Map<String, Object> config) throws Exception {
diff --git a/pulsar-io/debezium/mysql/src/main/java/org/apache/pulsar/io/debezium/mysql/DebeziumMysqlSource.java b/pulsar-io/debezium/mysql/src/main/java/org/apache/pulsar/io/debezium/mysql/DebeziumMysqlSource.java
index 316abe3..f867018 100644
--- a/pulsar-io/debezium/mysql/src/main/java/org/apache/pulsar/io/debezium/mysql/DebeziumMysqlSource.java
+++ b/pulsar-io/debezium/mysql/src/main/java/org/apache/pulsar/io/debezium/mysql/DebeziumMysqlSource.java
@@ -27,7 +27,7 @@ import org.apache.pulsar.io.debezium.DebeziumSource;
  * A pulsar source that runs debezium mysql source
  */
 public class DebeziumMysqlSource extends DebeziumSource {
-    static private final String DEFAULT_TASK = "io.debezium.connector.mysql.MySqlConnectorTask";
+    private static final String DEFAULT_TASK = "io.debezium.connector.mysql.MySqlConnectorTask";
 
     @Override
     public void setDbConnectorTask(Map<String, Object> config) throws Exception {
diff --git a/pulsar-io/debezium/postgres/src/main/java/org/apache/pulsar/io/debezium/postgres/DebeziumPostgresSource.java b/pulsar-io/debezium/postgres/src/main/java/org/apache/pulsar/io/debezium/postgres/DebeziumPostgresSource.java
index fcd539e..2109059 100644
--- a/pulsar-io/debezium/postgres/src/main/java/org/apache/pulsar/io/debezium/postgres/DebeziumPostgresSource.java
+++ b/pulsar-io/debezium/postgres/src/main/java/org/apache/pulsar/io/debezium/postgres/DebeziumPostgresSource.java
@@ -28,7 +28,7 @@ import org.apache.pulsar.io.debezium.DebeziumSource;
  * A pulsar source that runs debezium postgres source
  */
 public class DebeziumPostgresSource extends DebeziumSource {
-    static private final String DEFAULT_TASK = "io.debezium.connector.postgresql.PostgresConnectorTask";
+    private static final String DEFAULT_TASK = "io.debezium.connector.postgresql.PostgresConnectorTask";
 
     @Override
     public void setDbConnectorTask(Map<String, Object> config) throws Exception {
diff --git a/pulsar-io/kafka-connect-adaptor/src/main/java/org/apache/pulsar/io/kafka/connect/KafkaConnectSink.java b/pulsar-io/kafka-connect-adaptor/src/main/java/org/apache/pulsar/io/kafka/connect/KafkaConnectSink.java
index cdd6c04b..bd1971e 100644
--- a/pulsar-io/kafka-connect-adaptor/src/main/java/org/apache/pulsar/io/kafka/connect/KafkaConnectSink.java
+++ b/pulsar-io/kafka-connect-adaptor/src/main/java/org/apache/pulsar/io/kafka/connect/KafkaConnectSink.java
@@ -21,6 +21,7 @@ package org.apache.pulsar.io.kafka.connect;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.google.common.util.concurrent.ThreadFactoryBuilder;
diff --git a/pulsar-io/kafka-connect-adaptor/src/main/java/org/apache/pulsar/io/kafka/connect/KafkaConnectSource.java b/pulsar-io/kafka-connect-adaptor/src/main/java/org/apache/pulsar/io/kafka/connect/KafkaConnectSource.java
index e8d3a11..f84aa64 100644
--- a/pulsar-io/kafka-connect-adaptor/src/main/java/org/apache/pulsar/io/kafka/connect/KafkaConnectSource.java
+++ b/pulsar-io/kafka-connect-adaptor/src/main/java/org/apache/pulsar/io/kafka/connect/KafkaConnectSource.java
@@ -49,7 +49,7 @@ public class KafkaConnectSource extends AbstractKafkaConnectSource<KeyValue<byte
                     .expireAfterAccess(30, TimeUnit.MINUTES).build();
 
     private boolean jsonWithEnvelope = false;
-    static private final String JSON_WITH_ENVELOPE_CONFIG = "json-with-envelope";
+    private static final String JSON_WITH_ENVELOPE_CONFIG = "json-with-envelope";
 
     public void open(Map<String, Object> config, SourceContext sourceContext) throws Exception {
         if (config.get(JSON_WITH_ENVELOPE_CONFIG) != null) {
diff --git a/pulsar-io/kinesis/src/test/java/org/apache/pulsar/io/kinesis/KinesisSinkTest.java b/pulsar-io/kinesis/src/test/java/org/apache/pulsar/io/kinesis/KinesisSinkTest.java
index 7172c04..009635f 100644
--- a/pulsar-io/kinesis/src/test/java/org/apache/pulsar/io/kinesis/KinesisSinkTest.java
+++ b/pulsar-io/kinesis/src/test/java/org/apache/pulsar/io/kinesis/KinesisSinkTest.java
@@ -110,9 +110,9 @@ public class KinesisSinkTest {
 
     public static class AwsCredentialProviderPluginImpl implements AwsCredentialProviderPlugin {
 
-        public final static String accessKey = "ak";
-        public final static String secretKey = "sk";
-        public final static String sessionToken = "st";
+        public static final String accessKey = "ak";
+        public static final String secretKey = "sk";
+        public static final String sessionToken = "st";
 
         public void init(String param) {
             // no-op
diff --git a/pulsar-package-management/bookkeeper-storage/src/main/java/org/apache/pulsar/packages/management/storage/bookkeeper/BookKeeperPackagesStorage.java b/pulsar-package-management/bookkeeper-storage/src/main/java/org/apache/pulsar/packages/management/storage/bookkeeper/BookKeeperPackagesStorage.java
index 0f8a2ee..f0db593 100644
--- a/pulsar-package-management/bookkeeper-storage/src/main/java/org/apache/pulsar/packages/management/storage/bookkeeper/BookKeeperPackagesStorage.java
+++ b/pulsar-package-management/bookkeeper-storage/src/main/java/org/apache/pulsar/packages/management/storage/bookkeeper/BookKeeperPackagesStorage.java
@@ -47,7 +47,7 @@ import org.apache.zookeeper.KeeperException;
 @Slf4j
 public class BookKeeperPackagesStorage implements PackagesStorage {
 
-    private final static String NS_CLIENT_ID = "packages-management";
+    private static final String NS_CLIENT_ID = "packages-management";
     final BookKeeperPackagesStorageConfiguration configuration;
     private Namespace namespace;
 
diff --git a/pulsar-package-management/bookkeeper-storage/src/test/java/org/apache/pulsar/packages/management/storage/bookkeeper/bookkeeper/test/ZooKeeperUtil.java b/pulsar-package-management/bookkeeper-storage/src/test/java/org/apache/pulsar/packages/management/storage/bookkeeper/bookkeeper/test/ZooKeeperUtil.java
index a06134f..287b310 100644
--- a/pulsar-package-management/bookkeeper-storage/src/test/java/org/apache/pulsar/packages/management/storage/bookkeeper/bookkeeper/test/ZooKeeperUtil.java
+++ b/pulsar-package-management/bookkeeper-storage/src/test/java/org/apache/pulsar/packages/management/storage/bookkeeper/bookkeeper/test/ZooKeeperUtil.java
@@ -44,7 +44,7 @@ public class ZooKeeperUtil {
     static final Logger LOG = LoggerFactory.getLogger(org.apache.bookkeeper.test.ZooKeeperUtil.class);
 
     // ZooKeeper related variables
-    protected final static Integer zooKeeperPort = PortManager.nextFreePort();
+    protected static final Integer zooKeeperPort = PortManager.nextFreePort();
     private final InetSocketAddress zkaddr;
 
     protected ZooKeeperServer zks;
diff --git a/pulsar-sql/presto-pulsar/src/main/java/org/apache/pulsar/sql/presto/PulsarColumnMetadata.java b/pulsar-sql/presto-pulsar/src/main/java/org/apache/pulsar/sql/presto/PulsarColumnMetadata.java
index 4ba153d..ea00704 100644
--- a/pulsar-sql/presto-pulsar/src/main/java/org/apache/pulsar/sql/presto/PulsarColumnMetadata.java
+++ b/pulsar-sql/presto-pulsar/src/main/java/org/apache/pulsar/sql/presto/PulsarColumnMetadata.java
@@ -32,7 +32,7 @@ public class PulsarColumnMetadata extends ColumnMetadata {
     // need this because presto ColumnMetadata saves name in lowercase
     private String nameWithCase;
     private PulsarColumnHandle.HandleKeyValueType handleKeyValueType;
-    public final static String KEY_SCHEMA_COLUMN_PREFIX = "__key.";
+    public static final String KEY_SCHEMA_COLUMN_PREFIX = "__key.";
 
     private DecoderExtraInfo decoderExtraInfo;
 
diff --git a/pulsar-sql/presto-pulsar/src/test/java/org/apache/pulsar/sql/presto/TestPulsarConnector.java b/pulsar-sql/presto-pulsar/src/test/java/org/apache/pulsar/sql/presto/TestPulsarConnector.java
index ac05a91..5d9f363 100644
--- a/pulsar-sql/presto-pulsar/src/test/java/org/apache/pulsar/sql/presto/TestPulsarConnector.java
+++ b/pulsar-sql/presto-pulsar/src/test/java/org/apache/pulsar/sql/presto/TestPulsarConnector.java
@@ -96,7 +96,7 @@ public abstract class TestPulsarConnector {
 
     protected static PulsarDispatchingRowDecoderFactory dispatchingRowDecoderFactory;
 
-    protected final static PulsarConnectorId pulsarConnectorId = new PulsarConnectorId("test-connector");
+    protected static final PulsarConnectorId pulsarConnectorId = new PulsarConnectorId("test-connector");
 
     protected static List<TopicName> topicNames;
     protected static List<TopicName> partitionedTopicNames;
@@ -104,7 +104,7 @@ public abstract class TestPulsarConnector {
     protected static Map<String, SchemaInfo> topicsToSchemas;
     protected static Map<String, Long> topicsToNumEntries;
 
-    private final static ObjectMapper objectMapper = new ObjectMapper();
+    private static final ObjectMapper objectMapper = new ObjectMapper();
 
     protected static List<String> fooFieldNames = new ArrayList<>();
 
diff --git a/pulsar-sql/presto-pulsar/src/test/java/org/apache/pulsar/sql/presto/TestPulsarRecordCursor.java b/pulsar-sql/presto-pulsar/src/test/java/org/apache/pulsar/sql/presto/TestPulsarRecordCursor.java
index 7c56a4b..8d52183 100644
--- a/pulsar-sql/presto-pulsar/src/test/java/org/apache/pulsar/sql/presto/TestPulsarRecordCursor.java
+++ b/pulsar-sql/presto-pulsar/src/test/java/org/apache/pulsar/sql/presto/TestPulsarRecordCursor.java
@@ -400,8 +400,8 @@ public class TestPulsarRecordCursor extends TestPulsarConnector {
     }
 
 
-    final static String KEY_SCHEMA_COLUMN_PREFIX = "__key.";
-    final static String PRIMITIVE_COLUMN_NAME = "__value__";
+    static final String KEY_SCHEMA_COLUMN_PREFIX = "__key.";
+    static final String PRIMITIVE_COLUMN_NAME = "__value__";
 
     @Data
     static class Foo {
diff --git a/pulsar-sql/presto-pulsar/src/test/java/org/apache/pulsar/sql/presto/decoder/DecoderTestMessage.java b/pulsar-sql/presto-pulsar/src/test/java/org/apache/pulsar/sql/presto/decoder/DecoderTestMessage.java
index b4db048..115f369 100644
--- a/pulsar-sql/presto-pulsar/src/test/java/org/apache/pulsar/sql/presto/decoder/DecoderTestMessage.java
+++ b/pulsar-sql/presto-pulsar/src/test/java/org/apache/pulsar/sql/presto/decoder/DecoderTestMessage.java
@@ -75,14 +75,14 @@ public class DecoderTestMessage {
      * POJO for cyclic detect.
      */
     @Data
-    static public class CyclicFoo {
+    public static class CyclicFoo {
         private String field1;
         private Integer field2;
         private CyclicBoo boo;
     }
 
     @Data
-    static public class CyclicBoo {
+    public static class CyclicBoo {
         private String field1;
         private Boolean field2;
         private CyclicFoo foo;
diff --git a/pulsar-testclient/src/main/java/org/apache/pulsar/proxy/socket/client/SimpleTestProducerSocket.java b/pulsar-testclient/src/main/java/org/apache/pulsar/proxy/socket/client/SimpleTestProducerSocket.java
index 5474d0c..f52f013 100644
--- a/pulsar-testclient/src/main/java/org/apache/pulsar/proxy/socket/client/SimpleTestProducerSocket.java
+++ b/pulsar-testclient/src/main/java/org/apache/pulsar/proxy/socket/client/SimpleTestProducerSocket.java
@@ -49,7 +49,7 @@ public class SimpleTestProducerSocket {
     private final CountDownLatch closeLatch;
     private volatile Session session;
     private ConcurrentHashMap<String, Long> startTimeMap = new ConcurrentHashMap<>();
-    private final static String CONTEXT = "context";
+    private static final String CONTEXT = "context";
 
     public SimpleTestProducerSocket() {
         this.closeLatch = new CountDownLatch(2);
diff --git a/pulsar-testclient/src/main/java/org/apache/pulsar/testclient/LoadSimulationClient.java b/pulsar-testclient/src/main/java/org/apache/pulsar/testclient/LoadSimulationClient.java
index 675ca78..fff183b 100644
--- a/pulsar-testclient/src/main/java/org/apache/pulsar/testclient/LoadSimulationClient.java
+++ b/pulsar-testclient/src/main/java/org/apache/pulsar/testclient/LoadSimulationClient.java
@@ -55,7 +55,7 @@ import org.slf4j.LoggerFactory;
  * this class are controlled across a network via LoadSimulationController.
  */
 public class LoadSimulationClient {
-    private final static Logger log = LoggerFactory.getLogger(LoadSimulationClient.class);
+    private static final Logger log = LoggerFactory.getLogger(LoadSimulationClient.class);
 
     // Values for command encodings.
     public static final byte CHANGE_COMMAND = 0;
diff --git a/pulsar-testclient/src/main/java/org/apache/pulsar/testclient/LoadSimulationController.java b/pulsar-testclient/src/main/java/org/apache/pulsar/testclient/LoadSimulationController.java
index b17f8a7..4f95eb4 100644
--- a/pulsar-testclient/src/main/java/org/apache/pulsar/testclient/LoadSimulationController.java
+++ b/pulsar-testclient/src/main/java/org/apache/pulsar/testclient/LoadSimulationController.java
@@ -61,8 +61,8 @@ import org.slf4j.LoggerFactory;
  */
 public class LoadSimulationController {
     private static final Logger log = LoggerFactory.getLogger(LoadSimulationController.class);
-    private final static String QUOTA_ROOT = "/loadbalance/resource-quota/namespace";
-    private final static String BUNDLE_DATA_ROOT = "/loadbalance/bundle-data";
+    private static final String QUOTA_ROOT = "/loadbalance/resource-quota/namespace";
+    private static final String BUNDLE_DATA_ROOT = "/loadbalance/bundle-data";
 
     // Input streams for each client to send commands through.
     private final DataInputStream[] inputStreams;
diff --git a/pulsar-transaction/coordinator/src/main/java/org/apache/pulsar/transaction/coordinator/impl/MLTransactionLogImpl.java b/pulsar-transaction/coordinator/src/main/java/org/apache/pulsar/transaction/coordinator/impl/MLTransactionLogImpl.java
index 4098cfd..f2324af 100644
--- a/pulsar-transaction/coordinator/src/main/java/org/apache/pulsar/transaction/coordinator/impl/MLTransactionLogImpl.java
+++ b/pulsar-transaction/coordinator/src/main/java/org/apache/pulsar/transaction/coordinator/impl/MLTransactionLogImpl.java
@@ -56,11 +56,11 @@ public class MLTransactionLogImpl implements TransactionLog {
     private final ManagedLedgerConfig managedLedgerConfig;
     private ManagedLedger managedLedger;
 
-    public final static String TRANSACTION_LOG_PREFIX = "__transaction_log_";
+    public static final String TRANSACTION_LOG_PREFIX = "__transaction_log_";
 
     private ManagedCursor cursor;
 
-    public final static String TRANSACTION_SUBSCRIPTION_NAME = "transaction.subscription";
+    public static final String TRANSACTION_SUBSCRIPTION_NAME = "transaction.subscription";
 
     private final SpscArrayQueue<Entry> entryQueue;
 
diff --git a/pulsar-websocket/src/main/java/org/apache/pulsar/websocket/WebSocketHttpServletRequestWrapper.java b/pulsar-websocket/src/main/java/org/apache/pulsar/websocket/WebSocketHttpServletRequestWrapper.java
index 22cf7d1..38585ba 100644
--- a/pulsar-websocket/src/main/java/org/apache/pulsar/websocket/WebSocketHttpServletRequestWrapper.java
+++ b/pulsar-websocket/src/main/java/org/apache/pulsar/websocket/WebSocketHttpServletRequestWrapper.java
@@ -27,9 +27,9 @@ import org.eclipse.jetty.websocket.servlet.UpgradeHttpServletRequest;
  */
 public class WebSocketHttpServletRequestWrapper extends HttpServletRequestWrapper {
 
-    final static String HTTP_HEADER_NAME = "Authorization";
-    final static String HTTP_HEADER_VALUE_PREFIX = "Bearer ";
-    final static String TOKEN = "token";
+    static final String HTTP_HEADER_NAME = "Authorization";
+    static final String HTTP_HEADER_VALUE_PREFIX = "Bearer ";
+    static final String TOKEN = "token";
 
     public WebSocketHttpServletRequestWrapper(HttpServletRequest request) {
         super(request);
diff --git a/pulsar-websocket/src/test/java/org/apache/pulsar/websocket/WebSocketHttpServletRequestWrapperTest.java b/pulsar-websocket/src/test/java/org/apache/pulsar/websocket/WebSocketHttpServletRequestWrapperTest.java
index 52bee3f..0205173 100644
--- a/pulsar-websocket/src/test/java/org/apache/pulsar/websocket/WebSocketHttpServletRequestWrapperTest.java
+++ b/pulsar-websocket/src/test/java/org/apache/pulsar/websocket/WebSocketHttpServletRequestWrapperTest.java
@@ -30,12 +30,12 @@ import org.testng.annotations.Test;
  */
 public class WebSocketHttpServletRequestWrapperTest {
 
-    private final static String TOKEN = "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJ0ZXN0LXVzZXIifQ.U387jG"
+    private static final String TOKEN = "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJ0ZXN0LXVzZXIifQ.U387jG"
             + "-gmpEXNmTjbnnnk24jCXnfy7OTiQhhhOdXPgV2wEvZYr83KRSmH54wJQr4V2FCWIFb_6mBc_"
             + "E2acpfpfBOTTzrtietfhd6wE5uOP2NXaLpy_kUDsE3ZQGKPEsn18cWQUw54GAzS1oRcG9TnoqSCSFFGabvo"
             + "FTiOMHoBQ3ZHO3TqAGqlJlRF5ZXMkRtQ9vwbPC-mlwIfRrRIJfK5_ijPRkpgFSEvAwp0rX6roz08SyTj_"
             + "d4UNT96nsEL6sRNTpZMQ0qNj2_LMKFnwF3O_xe43-Uen3TllkAzhNd9Z6qIxyJyFbaFyWAVgiAfoFWQD0v4EmV96ZzKZvv3CbGjw";
-    private final static String BEARER_TOKEN = WebSocketHttpServletRequestWrapper.HTTP_HEADER_VALUE_PREFIX + TOKEN;
+    private static final String BEARER_TOKEN = WebSocketHttpServletRequestWrapper.HTTP_HEADER_VALUE_PREFIX + TOKEN;
 
     @Test
     public void testTokenParamWithBearerPrefix() {
diff --git a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/cli/HealthCheckTest.java b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/cli/HealthCheckTest.java
index 1298332..04e189e 100644
--- a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/cli/HealthCheckTest.java
+++ b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/cli/HealthCheckTest.java
@@ -47,7 +47,7 @@ import org.testng.annotations.Test;
  */
 public class HealthCheckTest extends TestRetrySupport {
 
-    private final static Logger log = LoggerFactory.getLogger(HealthCheckTest.class);
+    private static final Logger log = LoggerFactory.getLogger(HealthCheckTest.class);
 
     private final PulsarClusterSpec spec = PulsarClusterSpec.builder()
         .clusterName("HealthCheckTest-" + UUID.randomUUID().toString().substring(0, 8))
diff --git a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/cli/PackagesCliTest.java b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/cli/PackagesCliTest.java
index df4b48c..f6e5db7 100644
--- a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/cli/PackagesCliTest.java
+++ b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/cli/PackagesCliTest.java
@@ -38,7 +38,7 @@ import java.util.Map;
 
 public class PackagesCliTest extends TestRetrySupport {
 
-    private final static String clusterNamePrefix = "packages-service";
+    private static final String clusterNamePrefix = "packages-service";
     private PulsarCluster pulsarCluster;
 
     @BeforeClass(alwaysRun = true)
diff --git a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/cli/PulsarVersionTest.java b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/cli/PulsarVersionTest.java
index 0ea5071..0d7d4f3 100644
--- a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/cli/PulsarVersionTest.java
+++ b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/cli/PulsarVersionTest.java
@@ -35,7 +35,7 @@ import static org.testng.Assert.assertTrue;
  */
 public class PulsarVersionTest extends TestRetrySupport {
 
-    private final static String clusterNamePrefix = "pulsar-version";
+    private static final String clusterNamePrefix = "pulsar-version";
     private PulsarCluster pulsarCluster;
 
     @Override
diff --git a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/cli/SchemaUpdateStrategyTest.java b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/cli/SchemaUpdateStrategyTest.java
index e5f368f..54f6a31 100644
--- a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/cli/SchemaUpdateStrategyTest.java
+++ b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/cli/SchemaUpdateStrategyTest.java
@@ -52,7 +52,7 @@ import org.slf4j.LoggerFactory;
  * Test setting the schema update strategy via the CLI.
  */
 public class SchemaUpdateStrategyTest extends PulsarTestSuite {
-    private final static Logger log = LoggerFactory.getLogger(SchemaUpdateStrategyTest.class);
+    private static final Logger log = LoggerFactory.getLogger(SchemaUpdateStrategyTest.class);
 
     private void testAutoUpdateBackward(String namespace, String topicName) throws Exception {
         ContainerExecResult result = pulsarCluster.runAdminCommandOnAnyBroker(
diff --git a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/io/sources/SourceTester.java b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/io/sources/SourceTester.java
index 8019c10..c2a7d9a 100644
--- a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/io/sources/SourceTester.java
+++ b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/io/sources/SourceTester.java
@@ -41,16 +41,16 @@ import org.testng.collections.Maps;
 @Slf4j
 public abstract class SourceTester<ServiceContainerT extends GenericContainer> {
 
-    public final static String INSERT = "INSERT";
+    public static final String INSERT = "INSERT";
 
-    public final static String DELETE = "DELETE";
+    public static final String DELETE = "DELETE";
 
-    public final static String UPDATE = "UPDATE";
+    public static final String UPDATE = "UPDATE";
 
     protected final String sourceType;
     protected final Map<String, Object> sourceConfig;
 
-    public final static Set<String> DEBEZIUM_FIELD_SET = new HashSet<String>() {{
+    public static final Set<String> DEBEZIUM_FIELD_SET = new HashSet<String>() {{
         add("before");
         add("after");
         add("source");
diff --git a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/proxy/TestProxy.java b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/proxy/TestProxy.java
index 0a755e2..5ac37a1 100644
--- a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/proxy/TestProxy.java
+++ b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/proxy/TestProxy.java
@@ -38,7 +38,7 @@ import org.testng.annotations.Test;
  * Test cases for proxy.
  */
 public class TestProxy extends PulsarTestSuite {
-    private final static Logger log = LoggerFactory.getLogger(TestProxy.class);
+    private static final Logger log = LoggerFactory.getLogger(TestProxy.class);
 
     @Override
     protected PulsarClusterSpec.PulsarClusterSpecBuilder beforeSetupCluster(
diff --git a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/proxy/TestProxyWithWebSocket.java b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/proxy/TestProxyWithWebSocket.java
index 0ea9c3c..a54cc62 100644
--- a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/proxy/TestProxyWithWebSocket.java
+++ b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/proxy/TestProxyWithWebSocket.java
@@ -50,7 +50,7 @@ import static org.apache.pulsar.tests.integration.containers.PulsarContainer.CS_
  * Test cases for proxy.
  */
 public class TestProxyWithWebSocket extends PulsarTestSuite {
-    private final static Logger log = LoggerFactory.getLogger(TestProxyWithWebSocket.class);
+    private static final Logger log = LoggerFactory.getLogger(TestProxyWithWebSocket.class);
 
     @Override
     protected PulsarClusterSpec.PulsarClusterSpecBuilder beforeSetupCluster(
diff --git a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/suites/PulsarSQLTestSuite.java b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/suites/PulsarSQLTestSuite.java
index 2efc21a..9ed7335 100644
--- a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/suites/PulsarSQLTestSuite.java
+++ b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/suites/PulsarSQLTestSuite.java
@@ -28,10 +28,10 @@ import org.apache.pulsar.tests.integration.topologies.PulsarClusterSpec;
 @Slf4j
 public abstract class PulsarSQLTestSuite extends PulsarTestSuite {
 
-    public final static int ENTRIES_PER_LEDGER = 100;
-    public final static String OFFLOAD_DRIVER = "aws-s3";
-    public final static String BUCKET = "pulsar-integtest";
-    public final static String ENDPOINT = "http://" + S3Container.NAME + ":9090";
+    public static final int ENTRIES_PER_LEDGER = 100;
+    public static final String OFFLOAD_DRIVER = "aws-s3";
+    public static final String BUCKET = "pulsar-integtest";
+    public static final String ENDPOINT = "http://" + S3Container.NAME + ":9090";
 
     @Override
     protected PulsarClusterSpec.PulsarClusterSpecBuilder beforeSetupCluster(String clusterName, PulsarClusterSpec.PulsarClusterSpecBuilder specBuilder) {
diff --git a/tiered-storage/jcloud/src/main/java/org/apache/bookkeeper/mledger/offload/jcloud/impl/DataBlockHeaderImpl.java b/tiered-storage/jcloud/src/main/java/org/apache/bookkeeper/mledger/offload/jcloud/impl/DataBlockHeaderImpl.java
index cd46c52..941d79e 100644
--- a/tiered-storage/jcloud/src/main/java/org/apache/bookkeeper/mledger/offload/jcloud/impl/DataBlockHeaderImpl.java
+++ b/tiered-storage/jcloud/src/main/java/org/apache/bookkeeper/mledger/offload/jcloud/impl/DataBlockHeaderImpl.java
@@ -73,11 +73,11 @@ public class DataBlockHeaderImpl implements DataBlockHeader {
     private final long blockLength;
     private final long firstEntryId;
 
-    static public int getBlockMagicWord() {
+    public static int getBlockMagicWord() {
         return MAGIC_WORD;
     }
 
-    static public int getDataStartOffset() {
+    public static int getDataStartOffset() {
         return HEADER_MAX_SIZE;
     }
 
diff --git a/tiered-storage/jcloud/src/main/java/org/apache/bookkeeper/mledger/offload/jcloud/impl/OffloadIndexBlockImpl.java b/tiered-storage/jcloud/src/main/java/org/apache/bookkeeper/mledger/offload/jcloud/impl/OffloadIndexBlockImpl.java
index e525871..2f64089 100644
--- a/tiered-storage/jcloud/src/main/java/org/apache/bookkeeper/mledger/offload/jcloud/impl/OffloadIndexBlockImpl.java
+++ b/tiered-storage/jcloud/src/main/java/org/apache/bookkeeper/mledger/offload/jcloud/impl/OffloadIndexBlockImpl.java
@@ -174,7 +174,7 @@ public class OffloadIndexBlockImpl implements OffloadIndexBlock {
         return new OffloadIndexBlock.IndexInputStream(new ByteBufInputStream(out, true), indexBlockLength);
     }
 
-    static private class InternalLedgerMetadata implements LedgerMetadata {
+    private static class InternalLedgerMetadata implements LedgerMetadata {
 
         private int ensembleSize;
         private int writeQuorumSize;
diff --git a/tiered-storage/jcloud/src/main/java/org/apache/bookkeeper/mledger/offload/jcloud/impl/StreamingDataBlockHeaderImpl.java b/tiered-storage/jcloud/src/main/java/org/apache/bookkeeper/mledger/offload/jcloud/impl/StreamingDataBlockHeaderImpl.java
index ed383a6..4e89630 100644
--- a/tiered-storage/jcloud/src/main/java/org/apache/bookkeeper/mledger/offload/jcloud/impl/StreamingDataBlockHeaderImpl.java
+++ b/tiered-storage/jcloud/src/main/java/org/apache/bookkeeper/mledger/offload/jcloud/impl/StreamingDataBlockHeaderImpl.java
@@ -59,11 +59,11 @@ public class StreamingDataBlockHeaderImpl implements DataBlockHeader {
     private final long blockLength;
     private final long firstEntryId;
 
-    static public int getBlockMagicWord() {
+    public static int getBlockMagicWord() {
         return MAGIC_WORD;
     }
 
-    static public int getDataStartOffset() {
+    public static int getDataStartOffset() {
         return HEADER_MAX_SIZE;
     }
 
diff --git a/tiered-storage/jcloud/src/test/java/org/apache/bookkeeper/mledger/offload/jcloud/BlobStoreTestBase.java b/tiered-storage/jcloud/src/test/java/org/apache/bookkeeper/mledger/offload/jcloud/BlobStoreTestBase.java
index b8461bd..3ca635a 100644
--- a/tiered-storage/jcloud/src/test/java/org/apache/bookkeeper/mledger/offload/jcloud/BlobStoreTestBase.java
+++ b/tiered-storage/jcloud/src/test/java/org/apache/bookkeeper/mledger/offload/jcloud/BlobStoreTestBase.java
@@ -31,7 +31,7 @@ import org.testng.annotations.BeforeMethod;
 public abstract class BlobStoreTestBase {
 
     private static final Logger log = LoggerFactory.getLogger(BlobStoreTestBase.class);
-    public final static String BUCKET = "pulsar-unittest";
+    public static final String BUCKET = "pulsar-unittest";
 
     protected BlobStoreContext context = null;
     protected BlobStore blobStore = null;
diff --git a/tiered-storage/jcloud/src/test/java/org/apache/bookkeeper/mledger/offload/jcloud/impl/BlobStoreManagedLedgerOffloaderBase.java b/tiered-storage/jcloud/src/test/java/org/apache/bookkeeper/mledger/offload/jcloud/impl/BlobStoreManagedLedgerOffloaderBase.java
index 88ed1a1..16d0cd4 100644
--- a/tiered-storage/jcloud/src/test/java/org/apache/bookkeeper/mledger/offload/jcloud/impl/BlobStoreManagedLedgerOffloaderBase.java
+++ b/tiered-storage/jcloud/src/test/java/org/apache/bookkeeper/mledger/offload/jcloud/impl/BlobStoreManagedLedgerOffloaderBase.java
@@ -44,7 +44,7 @@ import org.testng.Assert;
 
 public abstract class BlobStoreManagedLedgerOffloaderBase {
 
-    public final static String BUCKET = "pulsar-unittest";
+    public static final String BUCKET = "pulsar-unittest";
     protected static final int DEFAULT_BLOCK_SIZE = 5*1024*1024;
     protected static final int DEFAULT_READ_BUFFER_SIZE = 1*1024*1024;
 

[pulsar] 07/07: Fix race condition in concurrent schema deletion (#11606)

Posted by pe...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

penghui pushed a commit to branch branch-2.8
in repository https://gitbox.apache.org/repos/asf/pulsar.git

commit 0873c09441fe49824a4890691f22c6690de428aa
Author: Zhanpeng Wu <zh...@qq.com>
AuthorDate: Tue Aug 17 13:05:31 2021 +0800

    Fix race condition in concurrent schema deletion (#11606)
    
    This PR fixes #11605
    
    ### Motivation
    
    Concurrently deleting topics with the same schema may cause race condition in broker side. If we do not handle these scenarios correctly we will get unexpected exceptions in broker logs.
    
    ### Modifications
    
    1. Add existence checks before schema deletion in `AbstractTopic#deleteSchema`.
    2. Add existence checks before actually performing schema storage deletion in `BookkeeperSchemaStorage#deleteSchema`.
    3. Ignore `NoNodeException` in `BookkeeperSchemaStorage#deleteSchema`.
    
    (cherry picked from commit 43ded5927fb78add69196b46c1edc36bde77af0e)
---
 .../pulsar/broker/service/AbstractTopic.java       |  3 +-
 .../service/schema/BookkeeperSchemaStorage.java    | 52 ++++++++++++++++++----
 .../broker/service/PersistentTopicE2ETest.java     | 27 +++++++++++
 3 files changed, 73 insertions(+), 9 deletions(-)

diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/AbstractTopic.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/AbstractTopic.java
index 39b0650..c8b1079 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/AbstractTopic.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/AbstractTopic.java
@@ -43,6 +43,7 @@ import org.apache.pulsar.broker.service.BrokerServiceException.ConsumerBusyExcep
 import org.apache.pulsar.broker.service.BrokerServiceException.ProducerBusyException;
 import org.apache.pulsar.broker.service.BrokerServiceException.ProducerFencedException;
 import org.apache.pulsar.broker.service.BrokerServiceException.TopicTerminatedException;
+import org.apache.pulsar.broker.service.schema.BookkeeperSchemaStorage;
 import org.apache.pulsar.broker.service.schema.SchemaRegistryService;
 import org.apache.pulsar.broker.service.schema.exceptions.IncompatibleSchemaException;
 import org.apache.pulsar.broker.stats.prometheus.metrics.Summary;
@@ -357,7 +358,7 @@ public abstract class AbstractTopic implements Topic {
         String base = TopicName.get(getName()).getPartitionedTopicName();
         String id = TopicName.get(base).getSchemaName();
         SchemaRegistryService schemaRegistryService = brokerService.pulsar().getSchemaRegistryService();
-        return schemaRegistryService.getSchema(id)
+        return BookkeeperSchemaStorage.ignoreUnrecoverableBKException(schemaRegistryService.getSchema(id))
                 .thenCompose(schema -> {
                     if (schema != null) {
                         // It's different from `SchemasResource.deleteSchema`
diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/schema/BookkeeperSchemaStorage.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/schema/BookkeeperSchemaStorage.java
index c82e30b..0d05da9 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/schema/BookkeeperSchemaStorage.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/schema/BookkeeperSchemaStorage.java
@@ -37,6 +37,7 @@ import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.CompletionException;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.ExecutionException;
@@ -58,6 +59,7 @@ import org.apache.pulsar.common.util.FutureUtil;
 import org.apache.pulsar.metadata.api.MetadataCache;
 import org.apache.pulsar.metadata.api.MetadataSerde;
 import org.apache.pulsar.metadata.api.MetadataStore;
+import org.apache.pulsar.metadata.api.MetadataStoreException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -174,7 +176,12 @@ public class BookkeeperSchemaStorage implements SchemaStorage {
 
     @Override
     public CompletableFuture<SchemaVersion> delete(String key, boolean forcefully) {
-        return deleteSchema(key, forcefully).thenApply(LongSchemaVersion::new);
+        return deleteSchema(key, forcefully).thenApply(version -> {
+            if (version == null) {
+                return null;
+            }
+            return new LongSchemaVersion(version);
+        });
     }
 
     @Override
@@ -369,10 +376,10 @@ public class BookkeeperSchemaStorage implements SchemaStorage {
     }
 
     @NotNull
-    private CompletableFuture<Long> deleteSchema(String schemaId, boolean forceFully) {
-        return (forceFully ? CompletableFuture.completedFuture(null) : getSchema(schemaId))
-                .thenCompose(schemaAndVersion -> {
-            if (!forceFully && isNull(schemaAndVersion)) {
+    private CompletableFuture<Long> deleteSchema(String schemaId, boolean forcefully) {
+        return (forcefully ? CompletableFuture.completedFuture(null)
+                : ignoreUnrecoverableBKException(getSchema(schemaId))).thenCompose(schemaAndVersion -> {
+            if (!forcefully && isNull(schemaAndVersion)) {
                 return completedFuture(null);
             } else {
                 // The version is only for the compatibility of the current interface
@@ -405,9 +412,20 @@ public class BookkeeperSchemaStorage implements SchemaStorage {
                             store.delete(path, Optional.empty())
                                     .thenRun(() -> {
                                         future.complete(version);
-                                    }).exceptionally(ex1 -> {
-                                future.completeExceptionally(ex1);
-                                return null;
+                                    }).exceptionally(zkException -> {
+                                        if (zkException.getCause()
+                                                instanceof MetadataStoreException.NotFoundException) {
+                                            // The znode has been deleted by others.
+                                            // In some cases, the program may enter this logic.
+                                            // Since the znode is gone, we don’t need to deal with it.
+                                            if (log.isDebugEnabled()) {
+                                                log.debug("No node for schema path: {}", path);
+                                            }
+                                            future.complete(null);
+                                        } else {
+                                            future.completeExceptionally(zkException);
+                                        }
+                                        return null;
                             });
                         });
                     }
@@ -681,4 +699,22 @@ public class BookkeeperSchemaStorage implements SchemaStorage {
                 && rc != BKException.Code.NoSuchEntryException;
         return new SchemaException(recoverable, message);
     }
+
+    public static <T> CompletableFuture<T> ignoreUnrecoverableBKException(CompletableFuture<T> source) {
+        return source.exceptionally(t -> {
+            if (t.getCause() != null
+                    && (t.getCause() instanceof SchemaException)
+                    && !((SchemaException) t.getCause()).isRecoverable()) {
+                // Meeting NoSuchLedgerExistsException or NoSuchEntryException when reading schemas in
+                // bookkeeper. This also means that the data has already been deleted by other operations
+                // in deleting schema.
+                if (log.isDebugEnabled()) {
+                    log.debug("Schema data in bookkeeper may be deleted by other operations.", t);
+                }
+                return null;
+            }
+            // rethrow other cases
+            throw t instanceof CompletionException ? (CompletionException) t : new CompletionException(t);
+        });
+    }
 }
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/PersistentTopicE2ETest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/PersistentTopicE2ETest.java
index c39c692..8e0f5b6 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/PersistentTopicE2ETest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/PersistentTopicE2ETest.java
@@ -81,6 +81,7 @@ import org.apache.pulsar.common.protocol.schema.SchemaData;
 import org.apache.pulsar.common.schema.SchemaType;
 import org.apache.pulsar.common.stats.Metrics;
 import org.apache.pulsar.policies.data.loadbalancer.NamespaceBundleStats;
+import org.apache.pulsar.schema.Schemas;
 import org.awaitility.Awaitility;
 import org.testng.Assert;
 import org.testng.annotations.AfterMethod;
@@ -731,6 +732,32 @@ public class PersistentTopicE2ETest extends BrokerTestBase {
         assertFalse(topicHasSchema(topicName));
     }
 
+    @Test
+    public void testConcurrentlyDeleteSchema() throws Exception {
+        String topic = "persistent://prop/ns-delete-schema/concurrently-delete-schema-test";
+        int partitions = 50;
+        admin.namespaces().createNamespace("prop/ns-delete-schema", 3);
+        admin.topics().createPartitionedTopic(topic, partitions);
+
+        Producer producer = pulsarClient
+                .newProducer(Schema.JSON(Schemas.BytesRecord.class))
+                .topic(topic)
+                .create();
+        producer.close();
+
+        CompletableFuture[] asyncFutures = new CompletableFuture[partitions];
+        for (int i = 0; i < partitions; i++) {
+            asyncFutures[i] = getTopic(TopicName.get(topic).getPartition(i).toString()).get().deleteSchema();
+        }
+
+        try {
+            // delete the schema concurrently, and wait for the end of all operations
+            CompletableFuture.allOf(asyncFutures).join();
+        } catch (Exception e) {
+            fail("Should not fail");
+        }
+    }
+
     /**
      * A topic that has retention policy set to non-0, should not be GCed until it has been inactive for at least the
      * retention time.

[pulsar] 05/07: Check null or empty instead of catch NPE (#11655) (#11655)

Posted by pe...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

penghui pushed a commit to branch branch-2.8
in repository https://gitbox.apache.org/repos/asf/pulsar.git

commit 26cb0cd9eb7f04e598c0e4e0c9e77456a3e0c52b
Author: GuoJiwei <te...@apache.org>
AuthorDate: Mon Aug 16 10:10:58 2021 +0800

    Check null or empty instead of catch NPE (#11655) (#11655)
    
    (cherry picked from commit e5050181429deaaa19fdc7469d0ebbbbcced4f33)
---
 .../broker/resourcegroup/ResourceGroupService.java | 17 ++-----
 .../apache/pulsar/common/naming/NamespaceName.java | 53 ++++++----------------
 2 files changed, 20 insertions(+), 50 deletions(-)

diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/resourcegroup/ResourceGroupService.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/resourcegroup/ResourceGroupService.java
index 364e22f..2e81fd8 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/resourcegroup/ResourceGroupService.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/resourcegroup/ResourceGroupService.java
@@ -18,7 +18,6 @@
  */
 package org.apache.pulsar.broker.resourcegroup;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ScheduledFuture;
@@ -118,10 +117,8 @@ public class ResourceGroupService {
      * @throws if RG with that name does not exist.
      */
     public void resourceGroupUpdate(ResourceGroupConfigInfo rgConfig) throws PulsarAdminException {
-        try {
-            checkNotNull(rgConfig);
-        } catch (NullPointerException e) {
-            throw new IllegalArgumentException("ResourceGroupUpdate: Invalid null ResourceGroupConfigInfo");
+        if (rgConfig == null) {
+            throw new IllegalArgumentException("ResourceGroupUpdate: Invalid null ResourceGroup config");
         }
         ResourceGroup rg = this.getResourceGroupInternal(rgConfig.getName());
         if (rg == null) {
@@ -331,9 +328,7 @@ public class ResourceGroupService {
      * Get the RG with the given name. For internal operations only.
      */
     private ResourceGroup getResourceGroupInternal(String resourceGroupName) {
-        try {
-            checkNotNull(resourceGroupName);
-        } catch (NullPointerException e) {
+        if (resourceGroupName == null) {
             throw new IllegalArgumentException("Invalid null resource group name: " + resourceGroupName);
         }
 
@@ -542,10 +537,8 @@ public class ResourceGroupService {
     }
 
     private void checkRGCreateParams(ResourceGroupConfigInfo rgConfig) throws PulsarAdminException {
-        try {
-            checkNotNull(rgConfig);
-        } catch (NullPointerException e) {
-            throw new IllegalArgumentException("ResourceGroupCreate: Invalid null ResourceGroupConfigInfo");
+        if (rgConfig == null) {
+            throw new IllegalArgumentException("ResourceGroupCreate: Invalid null ResourceGroup config");
         }
 
         if (rgConfig.getName().isEmpty()) {
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 cf975ce..1a22e1a 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
@@ -18,7 +18,6 @@
  */
 package org.apache.pulsar.common.naming;
 
-import static com.google.common.base.Preconditions.checkNotNull;
 import com.google.common.base.Objects;
 import com.google.common.cache.CacheBuilder;
 import com.google.common.cache.CacheLoader;
@@ -59,9 +58,7 @@ public class NamespaceName implements ServiceUnitId {
     }
 
     public static NamespaceName get(String namespace) {
-        try {
-            checkNotNull(namespace);
-        } catch (NullPointerException e) {
+        if (namespace == null || namespace.isEmpty()) {
             throw new IllegalArgumentException("Invalid null namespace: " + namespace);
         }
         try {
@@ -74,10 +71,6 @@ public class NamespaceName implements ServiceUnitId {
     }
 
     private NamespaceName(String namespace) {
-        if (namespace == null || namespace.isEmpty()) {
-            throw new IllegalArgumentException("Invalid null namespace: " + namespace);
-        }
-
         // Verify it's a proper namespace
         // The namespace name is composed of <tenant>/<namespace>
         // or in the legacy format with the cluster name:
@@ -139,13 +132,11 @@ public class NamespaceName implements ServiceUnitId {
      * @return
      */
     String getTopicName(TopicDomain domain, String topic) {
-        try {
-            checkNotNull(domain);
-            NamedEntity.checkName(topic);
-            return String.format("%s://%s/%s", domain.toString(), namespace, topic);
-        } catch (NullPointerException e) {
-            throw new IllegalArgumentException("Null pointer is invalid as domain for topic.", e);
+        if (domain == null) {
+            throw new IllegalArgumentException("invalid null domain");
         }
+        NamedEntity.checkName(topic);
+        return String.format("%s://%s/%s", domain.toString(), namespace, topic);
     }
 
     @Override
@@ -169,37 +160,23 @@ public class NamespaceName implements ServiceUnitId {
     }
 
     public static void validateNamespaceName(String tenant, String namespace) {
-        try {
-            checkNotNull(tenant);
-            checkNotNull(namespace);
-            if (tenant.isEmpty() || namespace.isEmpty()) {
-                throw new IllegalArgumentException(
-                        String.format("Invalid namespace format. namespace: %s/%s", tenant, namespace));
-            }
-            NamedEntity.checkName(tenant);
-            NamedEntity.checkName(namespace);
-        } catch (NullPointerException e) {
+        if ((tenant == null || tenant.isEmpty()) || (namespace == null || namespace.isEmpty())) {
             throw new IllegalArgumentException(
-                    String.format("Invalid namespace format. namespace: %s/%s", tenant, namespace), e);
+                    String.format("Invalid namespace format. namespace: %s/%s", tenant, namespace));
         }
+        NamedEntity.checkName(tenant);
+        NamedEntity.checkName(namespace);
     }
 
     public static void validateNamespaceName(String tenant, String cluster, String namespace) {
-        try {
-            checkNotNull(tenant);
-            checkNotNull(cluster);
-            checkNotNull(namespace);
-            if (tenant.isEmpty() || cluster.isEmpty() || namespace.isEmpty()) {
-                throw new IllegalArgumentException(
-                        String.format("Invalid namespace format. namespace: %s/%s/%s", tenant, cluster, namespace));
-            }
-            NamedEntity.checkName(tenant);
-            NamedEntity.checkName(cluster);
-            NamedEntity.checkName(namespace);
-        } catch (NullPointerException e) {
+        if ((tenant == null || tenant.isEmpty()) || (cluster == null || cluster.isEmpty())
+                || (namespace == null || namespace.isEmpty())) {
             throw new IllegalArgumentException(
-                    String.format("Invalid namespace format. namespace: %s/%s/%s", tenant, cluster, namespace), e);
+                    String.format("Invalid namespace format. namespace: %s/%s/%s", tenant, cluster, namespace));
         }
+        NamedEntity.checkName(tenant);
+        NamedEntity.checkName(cluster);
+        NamedEntity.checkName(namespace);
     }
 
     @Override

[pulsar] 02/07: Increase the test stability of transactionTest (#11541)

Posted by pe...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

penghui pushed a commit to branch branch-2.8
in repository https://gitbox.apache.org/repos/asf/pulsar.git

commit 3d57af10aa9fe7b76f65ec2b3755fe0b43efebef
Author: Xiangying Meng <55...@users.noreply.github.com>
AuthorDate: Thu Aug 5 13:32:57 2021 +0800

    Increase the test stability of transactionTest (#11541)
    
    (cherry picked from commit bbe08fb97b468336c694627d79a799dd5560e4ef)
---
 .../TopicTransactionBufferRecoverTest.java         |  9 +++++---
 .../TransactionClientReconnectTest.java            |  6 ++++--
 .../broker/transaction/TransactionProduceTest.java |  9 +++++---
 .../pulsar/broker/transaction/TransactionTest.java |  4 ++--
 .../broker/transaction/TransactionTestBase.java    | 24 ++++++++++++++--------
 .../pendingack/PendingAckInMemoryDeleteTest.java   | 19 ++++-------------
 .../pendingack/PendingAckPersistentTest.java       |  5 +++--
 .../client/impl/TransactionEndToEndTest.java       |  9 ++++----
 8 files changed, 45 insertions(+), 40 deletions(-)

diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TopicTransactionBufferRecoverTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TopicTransactionBufferRecoverTest.java
index 6a3aaa1..d79d3c8 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TopicTransactionBufferRecoverTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TopicTransactionBufferRecoverTest.java
@@ -79,9 +79,10 @@ public class TopicTransactionBufferRecoverTest extends TransactionTestBase {
     private static final String SUBSCRIPTION_NAME = "test-recover";
     private static final String TAKE_SNAPSHOT = NAMESPACE1 + "/take-snapshot";
     private static final String ABORT_DELETE = NAMESPACE1 + "/abort-delete";
-
+    private static final int NUM_PARTITIONS = 16;
     @BeforeMethod
     protected void setup() throws Exception {
+        setBrokerCount(1);
         internalSetup();
 
         String[] brokerServiceUrlArr = getPulsarServiceList().get(0).getBrokerServiceUrl().split(":");
@@ -97,7 +98,7 @@ public class TopicTransactionBufferRecoverTest extends TransactionTestBase {
         admin.tenants().createTenant(NamespaceName.SYSTEM_NAMESPACE.getTenant(),
                 new TenantInfoImpl(Sets.newHashSet("appid1"), Sets.newHashSet(CLUSTER_NAME)));
         admin.namespaces().createNamespace(NamespaceName.SYSTEM_NAMESPACE.toString());
-        admin.topics().createPartitionedTopic(TopicName.TRANSACTION_COORDINATOR_ASSIGN.toString(), 16);
+        admin.topics().createPartitionedTopic(TopicName.TRANSACTION_COORDINATOR_ASSIGN.toString(), NUM_PARTITIONS);
 
         if (pulsarClient != null) {
             pulsarClient.shutdown();
@@ -108,7 +109,9 @@ public class TopicTransactionBufferRecoverTest extends TransactionTestBase {
                 .enableTransaction(true)
                 .build();
 
-        Thread.sleep(1000 * 3);
+
+        // wait tc init success to ready state
+        waitForCoordinatorToBeAvailable(NUM_PARTITIONS);
     }
 
     @AfterMethod(alwaysRun = true)
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TransactionClientReconnectTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TransactionClientReconnectTest.java
index c13dff7..8df470d 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TransactionClientReconnectTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TransactionClientReconnectTest.java
@@ -46,7 +46,7 @@ import static org.testng.FileAssert.fail;
 public class TransactionClientReconnectTest extends TransactionTestBase {
 
     private static final String RECONNECT_TOPIC = "persistent://public/txn/txn-client-reconnect-test";
-
+    private static final int NUM_PARTITIONS = 1;
     @BeforeMethod(alwaysRun = true)
     public void setup() throws Exception {
         setBrokerCount(1);
@@ -63,13 +63,15 @@ public class TransactionClientReconnectTest extends TransactionTestBase {
         admin.namespaces().createNamespace(NamespaceName.SYSTEM_NAMESPACE.toString());
         admin.topics().createNonPartitionedTopic(RECONNECT_TOPIC);
         admin.topics().createSubscription(RECONNECT_TOPIC, "test", MessageId.latest);
-        admin.topics().createPartitionedTopic(TopicName.TRANSACTION_COORDINATOR_ASSIGN.toString(), 1);
+        admin.topics().createPartitionedTopic(TopicName.TRANSACTION_COORDINATOR_ASSIGN.toString(), NUM_PARTITIONS);
 
         pulsarClient = PulsarClient.builder()
                 .serviceUrl(getPulsarServiceList().get(0).getBrokerServiceUrl())
                 .statsInterval(0, TimeUnit.SECONDS)
                 .enableTransaction(true)
                 .build();
+        // wait tc init success to ready state
+        waitForCoordinatorToBeAvailable(NUM_PARTITIONS);
     }
 
     @AfterMethod(alwaysRun = true)
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TransactionProduceTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TransactionProduceTest.java
index e66525e..6729ff1 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TransactionProduceTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TransactionProduceTest.java
@@ -81,9 +81,10 @@ public class TransactionProduceTest extends TransactionTestBase {
     private static final String PRODUCE_ABORT_TOPIC = NAMESPACE1 + "/produce-abort";
     private static final String ACK_COMMIT_TOPIC = NAMESPACE1 + "/ack-commit";
     private static final String ACK_ABORT_TOPIC = NAMESPACE1 + "/ack-abort";
-
+    private static final int NUM_PARTITIONS = 16;
     @BeforeMethod
     protected void setup() throws Exception {
+        setBrokerCount(1);
         internalSetup();
 
         String[] brokerServiceUrlArr = getPulsarServiceList().get(0).getBrokerServiceUrl().split(":");
@@ -100,7 +101,7 @@ public class TransactionProduceTest extends TransactionTestBase {
         admin.tenants().createTenant(NamespaceName.SYSTEM_NAMESPACE.getTenant(),
                 new TenantInfoImpl(Sets.newHashSet("appid1"), Sets.newHashSet(CLUSTER_NAME)));
         admin.namespaces().createNamespace(NamespaceName.SYSTEM_NAMESPACE.toString());
-        admin.topics().createPartitionedTopic(TopicName.TRANSACTION_COORDINATOR_ASSIGN.toString(), 16);
+        admin.topics().createPartitionedTopic(TopicName.TRANSACTION_COORDINATOR_ASSIGN.toString(), NUM_PARTITIONS);
 
         if (pulsarClient != null) {
             pulsarClient.shutdown();
@@ -111,7 +112,9 @@ public class TransactionProduceTest extends TransactionTestBase {
                 .enableTransaction(true)
                 .build();
 
-        Thread.sleep(1000 * 3);
+
+        // wait tc init success to ready state
+        waitForCoordinatorToBeAvailable(NUM_PARTITIONS);
     }
 
     @AfterMethod(alwaysRun = true)
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TransactionTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TransactionTest.java
index a319c5d..fb94638 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TransactionTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TransactionTest.java
@@ -93,6 +93,8 @@ public class TransactionTest extends TransactionTestBase {
                 .statsInterval(0, TimeUnit.SECONDS)
                 .enableTransaction(true)
                 .build();
+        // wait tc init success to ready state
+        waitForCoordinatorToBeAvailable(NUM_PARTITIONS);
     }
 
     @Test
@@ -159,8 +161,6 @@ public class TransactionTest extends TransactionTestBase {
 
     @Test
     public void testGetTxnID() throws Exception {
-        // wait tc init success to ready state
-        Assert.assertTrue(waitForCoordinatorToBeAvailable(NUM_BROKERS, NUM_PARTITIONS));
         Transaction transaction = pulsarClient.newTransaction()
                 .build().get();
         TxnID txnID = transaction.getTxnID();
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TransactionTestBase.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TransactionTestBase.java
index 43c5edb..0a694c8 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TransactionTestBase.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/TransactionTestBase.java
@@ -296,16 +296,22 @@ public abstract class TransactionTestBase extends TestRetrySupport {
             log.warn("Failed to clean up mocked pulsar service:", e);
         }
     }
-    public boolean waitForCoordinatorToBeAvailable(int numOfBroker, int numOfTCPerBroker){
+    public void waitForCoordinatorToBeAvailable(int numOfTCPerBroker){
         // wait tc init success to ready state
-        Awaitility.await().untilAsserted(() -> {
-            TransactionMetadataStore transactionMetadataStore =
-                    getPulsarServiceList().get(numOfBroker - 1).getTransactionMetadataStoreService()
-                            .getStores().get(TransactionCoordinatorID.get(numOfTCPerBroker - 1));
-            assertNotNull(transactionMetadataStore);
-            assertEquals(((MLTransactionMetadataStore) transactionMetadataStore).getState(),
-                    TransactionMetadataStoreState.State.Ready);
+        Awaitility.await().until(() -> {
+            Map<TransactionCoordinatorID, TransactionMetadataStore> stores =
+                    getPulsarServiceList().get(brokerCount-1).getTransactionMetadataStoreService().getStores();
+            if (stores.size() == numOfTCPerBroker) {
+                for (TransactionCoordinatorID transactionCoordinatorID : stores.keySet()) {
+                    if (((MLTransactionMetadataStore) stores.get(transactionCoordinatorID)).getState()
+                            != TransactionMetadataStoreState.State.Ready) {
+                        return false;
+                    }
+                }
+                return true;
+            } else {
+                return false;
+            }
         });
-        return true;
     }
 }
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/pendingack/PendingAckInMemoryDeleteTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/pendingack/PendingAckInMemoryDeleteTest.java
index 9cdb219..fc952c4 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/pendingack/PendingAckInMemoryDeleteTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/pendingack/PendingAckInMemoryDeleteTest.java
@@ -73,7 +73,7 @@ public class PendingAckInMemoryDeleteTest extends TransactionTestBase {
 
     private static final String TENANT = "tnx";
     private static final String NAMESPACE1 = TENANT + "/ns1";
-
+    private static final int NUM_PARTITIONS = 16;
     @BeforeMethod
     protected void setup() throws Exception {
         setBrokerCount(1);
@@ -89,7 +89,7 @@ public class PendingAckInMemoryDeleteTest extends TransactionTestBase {
                 new TenantInfoImpl(Sets.newHashSet("appid1"), Sets.newHashSet(CLUSTER_NAME)));
         admin.namespaces().createNamespace(NAMESPACE1);
         admin.namespaces().createNamespace(NamespaceName.SYSTEM_NAMESPACE.toString());
-        admin.topics().createPartitionedTopic(TopicName.TRANSACTION_COORDINATOR_ASSIGN.toString(), 16);
+        admin.topics().createPartitionedTopic(TopicName.TRANSACTION_COORDINATOR_ASSIGN.toString(), NUM_PARTITIONS);
 
         if (pulsarClient != null) {
             pulsarClient.shutdown();
@@ -102,19 +102,8 @@ public class PendingAckInMemoryDeleteTest extends TransactionTestBase {
 
         Map<TransactionCoordinatorID, TransactionMetadataStore> stores =
                 getPulsarServiceList().get(0).getTransactionMetadataStoreService().getStores();
-        Awaitility.await().until(() -> {
-            if (stores.size() == 16) {
-                for (TransactionCoordinatorID transactionCoordinatorID : stores.keySet()) {
-                    if (((MLTransactionMetadataStore) stores.get(transactionCoordinatorID)).getState()
-                            != TransactionMetadataStoreState.State.Ready) {
-                        return false;
-                    }
-                }
-                return true;
-            } else {
-                return false;
-            }
-        });
+        // wait tc init success to ready state
+        waitForCoordinatorToBeAvailable(NUM_PARTITIONS);
     }
 
     @AfterMethod(alwaysRun = true)
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/pendingack/PendingAckPersistentTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/pendingack/PendingAckPersistentTest.java
index 4cdef2e..46c65b8 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/pendingack/PendingAckPersistentTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/pendingack/PendingAckPersistentTest.java
@@ -64,6 +64,7 @@ public class PendingAckPersistentTest extends TransactionTestBase {
 
     private static final String PENDING_ACK_REPLAY_TOPIC = "persistent://public/txn/pending-ack-replay";
     private static final String NAMESPACE = "public/txn";
+    private static final int NUM_PARTITIONS = 16;
 
     @BeforeMethod
     public void setup() throws Exception {
@@ -87,8 +88,8 @@ public class PendingAckPersistentTest extends TransactionTestBase {
                 .statsInterval(0, TimeUnit.SECONDS)
                 .enableTransaction(true)
                 .build();
-
-        Thread.sleep(1000 * 3);
+        // wait tc init success to ready state
+        waitForCoordinatorToBeAvailable(NUM_PARTITIONS);
     }
 
     @AfterMethod(alwaysRun = true)
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/client/impl/TransactionEndToEndTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/client/impl/TransactionEndToEndTest.java
index 3da8a6c..f971b5a 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/client/impl/TransactionEndToEndTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/client/impl/TransactionEndToEndTest.java
@@ -93,9 +93,10 @@ public class TransactionEndToEndTest extends TransactionTestBase {
     private static final String NAMESPACE1 = TENANT + "/ns1";
     private static final String TOPIC_OUTPUT = NAMESPACE1 + "/output";
     private static final String TOPIC_MESSAGE_ACK_TEST = NAMESPACE1 + "/message-ack-test";
-
+    private static final int NUM_PARTITIONS = 16;
     @BeforeMethod
     protected void setup() throws Exception {
+        setBrokerCount(1);
         internalSetup();
 
         String[] brokerServiceUrlArr = getPulsarServiceList().get(0).getBrokerServiceUrl().split(":");
@@ -110,7 +111,7 @@ public class TransactionEndToEndTest extends TransactionTestBase {
         admin.tenants().createTenant(NamespaceName.SYSTEM_NAMESPACE.getTenant(),
                 new TenantInfoImpl(Sets.newHashSet("appid1"), Sets.newHashSet(CLUSTER_NAME)));
         admin.namespaces().createNamespace(NamespaceName.SYSTEM_NAMESPACE.toString());
-        admin.topics().createPartitionedTopic(TopicName.TRANSACTION_COORDINATOR_ASSIGN.toString(), 16);
+        admin.topics().createPartitionedTopic(TopicName.TRANSACTION_COORDINATOR_ASSIGN.toString(), NUM_PARTITIONS);
 
         if (pulsarClient != null) {
             pulsarClient.close();
@@ -121,8 +122,8 @@ public class TransactionEndToEndTest extends TransactionTestBase {
                 .enableTransaction(true)
                 .build();
 
-        Thread.sleep(1000 * 3);
-    }
+        // wait tc init success to ready state
+        waitForCoordinatorToBeAvailable(NUM_PARTITIONS);    }
 
     @AfterMethod(alwaysRun = true)
     protected void cleanup() {

[pulsar] 04/07: [Security] Upgrade Jetty to 9.4.43.v20210629 (#11660)

Posted by pe...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

penghui pushed a commit to branch branch-2.8
in repository https://gitbox.apache.org/repos/asf/pulsar.git

commit 054f25ae4e25a9b4590a067105a5ec3bcd7fc825
Author: Lari Hotari <lh...@users.noreply.github.com>
AuthorDate: Fri Aug 13 16:24:58 2021 +0300

    [Security] Upgrade Jetty to 9.4.43.v20210629 (#11660)
    
    Fixes #11659
    
    (cherry picked from commit 3dd9ec528b07ca495a42c020b3bf0824dc67426f)
---
 distribution/server/src/assemble/LICENSE.bin.txt | 38 ++++++++++++------------
 pom.xml                                          |  2 +-
 pulsar-sql/presto-distribution/LICENSE           | 32 ++++++++++----------
 3 files changed, 36 insertions(+), 36 deletions(-)

diff --git a/distribution/server/src/assemble/LICENSE.bin.txt b/distribution/server/src/assemble/LICENSE.bin.txt
index dfceb1c..b8614ad 100644
--- a/distribution/server/src/assemble/LICENSE.bin.txt
+++ b/distribution/server/src/assemble/LICENSE.bin.txt
@@ -424,25 +424,25 @@ The Apache Software License, Version 2.0
     - org.asynchttpclient-async-http-client-2.12.1.jar
     - org.asynchttpclient-async-http-client-netty-utils-2.12.1.jar
  * Jetty
-    - org.eclipse.jetty-jetty-client-9.4.42.v20210604.jar
-    - org.eclipse.jetty-jetty-continuation-9.4.42.v20210604.jar
-    - org.eclipse.jetty-jetty-http-9.4.42.v20210604.jar
-    - org.eclipse.jetty-jetty-io-9.4.42.v20210604.jar
-    - org.eclipse.jetty-jetty-proxy-9.4.42.v20210604.jar
-    - org.eclipse.jetty-jetty-security-9.4.42.v20210604.jar
-    - org.eclipse.jetty-jetty-server-9.4.42.v20210604.jar
-    - org.eclipse.jetty-jetty-servlet-9.4.42.v20210604.jar
-    - org.eclipse.jetty-jetty-servlets-9.4.42.v20210604.jar
-    - org.eclipse.jetty-jetty-util-9.4.42.v20210604.jar
-    - org.eclipse.jetty-jetty-util-ajax-9.4.42.v20210604.jar
-    - org.eclipse.jetty.websocket-javax-websocket-client-impl-9.4.42.v20210604.jar
-    - org.eclipse.jetty.websocket-websocket-api-9.4.42.v20210604.jar
-    - org.eclipse.jetty.websocket-websocket-client-9.4.42.v20210604.jar
-    - org.eclipse.jetty.websocket-websocket-common-9.4.42.v20210604.jar
-    - org.eclipse.jetty.websocket-websocket-server-9.4.42.v20210604.jar
-    - org.eclipse.jetty.websocket-websocket-servlet-9.4.42.v20210604.jar
-    - org.eclipse.jetty-jetty-alpn-conscrypt-server-9.4.42.v20210604.jar
-    - org.eclipse.jetty-jetty-alpn-server-9.4.42.v20210604.jar
+    - org.eclipse.jetty-jetty-client-9.4.43.v20210629.jar
+    - org.eclipse.jetty-jetty-continuation-9.4.43.v20210629.jar
+    - org.eclipse.jetty-jetty-http-9.4.43.v20210629.jar
+    - org.eclipse.jetty-jetty-io-9.4.43.v20210629.jar
+    - org.eclipse.jetty-jetty-proxy-9.4.43.v20210629.jar
+    - org.eclipse.jetty-jetty-security-9.4.43.v20210629.jar
+    - org.eclipse.jetty-jetty-server-9.4.43.v20210629.jar
+    - org.eclipse.jetty-jetty-servlet-9.4.43.v20210629.jar
+    - org.eclipse.jetty-jetty-servlets-9.4.43.v20210629.jar
+    - org.eclipse.jetty-jetty-util-9.4.43.v20210629.jar
+    - org.eclipse.jetty-jetty-util-ajax-9.4.43.v20210629.jar
+    - org.eclipse.jetty.websocket-javax-websocket-client-impl-9.4.43.v20210629.jar
+    - org.eclipse.jetty.websocket-websocket-api-9.4.43.v20210629.jar
+    - org.eclipse.jetty.websocket-websocket-client-9.4.43.v20210629.jar
+    - org.eclipse.jetty.websocket-websocket-common-9.4.43.v20210629.jar
+    - org.eclipse.jetty.websocket-websocket-server-9.4.43.v20210629.jar
+    - org.eclipse.jetty.websocket-websocket-servlet-9.4.43.v20210629.jar
+    - org.eclipse.jetty-jetty-alpn-conscrypt-server-9.4.43.v20210629.jar
+    - org.eclipse.jetty-jetty-alpn-server-9.4.43.v20210629.jar
  * SnakeYaml -- org.yaml-snakeyaml-1.27.jar
  * RocksDB - org.rocksdb-rocksdbjni-6.10.2.jar
  * Google Error Prone Annotations - com.google.errorprone-error_prone_annotations-2.5.1.jar
diff --git a/pom.xml b/pom.xml
index 955d048..e5456e0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -110,7 +110,7 @@ flexible messaging model and an intuitive client API.</description>
     <curator.version>5.1.0</curator.version>
     <netty.version>4.1.66.Final</netty.version>
     <netty-tc-native.version>2.0.40.Final</netty-tc-native.version>
-    <jetty.version>9.4.42.v20210604</jetty.version>
+    <jetty.version>9.4.43.v20210629</jetty.version>
     <conscrypt.version>2.5.2</conscrypt.version>
     <jersey.version>2.34</jersey.version>
     <athenz.version>1.10.9</athenz.version>
diff --git a/pulsar-sql/presto-distribution/LICENSE b/pulsar-sql/presto-distribution/LICENSE
index aa30985..8ce1a3d 100644
--- a/pulsar-sql/presto-distribution/LICENSE
+++ b/pulsar-sql/presto-distribution/LICENSE
@@ -251,22 +251,22 @@ The Apache Software License, Version 2.0
  * Joda Time
     - joda-time-2.10.5.jar
   * Jetty
-    - http2-client-9.4.42.v20210604.jar
-    - http2-common-9.4.42.v20210604.jar
-    - http2-hpack-9.4.42.v20210604.jar
-    - http2-http-client-transport-9.4.42.v20210604.jar
-    - jetty-alpn-client-9.4.42.v20210604.jar
-    - jetty-alpn-java-client-9.4.42.v20210604.jar
-    - http2-server-9.4.42.v20210604.jar
-    - jetty-client-9.4.42.v20210604.jar
-    - jetty-http-9.4.42.v20210604.jar
-    - jetty-io-9.4.42.v20210604.jar
-    - jetty-jmx-9.4.42.v20210604.jar
-    - jetty-security-9.4.42.v20210604.jar
-    - jetty-server-9.4.42.v20210604.jar
-    - jetty-servlet-9.4.42.v20210604.jar
-    - jetty-util-9.4.42.v20210604.jar
-    - jetty-util-ajax-9.4.42.v20210604.jar
+    - http2-client-9.4.43.v20210629.jar
+    - http2-common-9.4.43.v20210629.jar
+    - http2-hpack-9.4.43.v20210629.jar
+    - http2-http-client-transport-9.4.43.v20210629.jar
+    - jetty-alpn-client-9.4.43.v20210629.jar
+    - http2-server-9.4.43.v20210629.jar
+    - jetty-alpn-java-client-9.4.43.v20210629.jar
+    - jetty-client-9.4.43.v20210629.jar
+    - jetty-http-9.4.43.v20210629.jar
+    - jetty-io-9.4.43.v20210629.jar
+    - jetty-jmx-9.4.43.v20210629.jar
+    - jetty-security-9.4.43.v20210629.jar
+    - jetty-server-9.4.43.v20210629.jar
+    - jetty-servlet-9.4.43.v20210629.jar
+    - jetty-util-9.4.43.v20210629.jar
+    - jetty-util-ajax-9.4.43.v20210629.jar
   * Apache BVal
     - bval-jsr-2.0.0.jar
   * Bytecode

[pulsar] 06/07: Avoid to cal getMaximumRolloverTimeMs everytime (#11513)

Posted by pe...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

penghui pushed a commit to branch branch-2.8
in repository https://gitbox.apache.org/repos/asf/pulsar.git

commit 21350c91fbf413b38d37b461d4f536a1b5f3b514
Author: Shoothzj <sh...@gmail.com>
AuthorDate: Tue Aug 17 21:25:23 2021 +0800

    Avoid to cal getMaximumRolloverTimeMs everytime (#11513)
    
    
    (cherry picked from commit f0692ad6104d6b048b777bdebd2f83404c883404)
---
 .../main/java/org/apache/bookkeeper/mledger/impl/ManagedLedgerImpl.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedLedgerImpl.java b/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedLedgerImpl.java
index 6936593..7404d08 100644
--- a/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedLedgerImpl.java
+++ b/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedLedgerImpl.java
@@ -3976,7 +3976,7 @@ public class ManagedLedgerImpl implements ManagedLedger, CreateCallback {
                 checkLedgerRollTask.cancel(true);
             }
             this.checkLedgerRollTask = this.scheduledExecutor.schedule(
-                    safeRun(this::rollCurrentLedgerIfFull), getMaximumRolloverTimeMs(config), TimeUnit.MILLISECONDS);
+                    safeRun(this::rollCurrentLedgerIfFull), this.maximumRolloverTimeMs, TimeUnit.MILLISECONDS);
         }
     }
 

[pulsar] 03/07: [C++] Fixing use-after-free and constructor bugs in UnAckedMessageTrackerEnabled (#11630)

Posted by pe...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

penghui pushed a commit to branch branch-2.8
in repository https://gitbox.apache.org/repos/asf/pulsar.git

commit 5d0ec6546cd250b2839492d835e391d425a3c71d
Author: Brett <38...@users.noreply.github.com>
AuthorDate: Thu Aug 12 15:27:06 2021 -0500

    [C++] Fixing use-after-free and constructor bugs in UnAckedMessageTrackerEnabled (#11630)
    
    * [C++] Fix an off-by-one error in my original change from commit 83f0345dfe220fd82314f2a0648bd55c7561e5ea.  This was caught by ASAN in my company's build system.
    
    * [C++] Fixing use-after-free and constructor bugs in UnAckedMessageTrackerEnabled
    
    This is very similar to a previous fix I submitted in commit 87ebe809f0072ea47538c426fde0c620a1872025.  It's the same basic problem, but this class isn't part of the HandlerBase hierarchy, so it needs an independent fix.  Essentially, when we create Boost ASIO timer objects from a connection pointer, they maintain a bare reference to the corresponding io_service object inside the connection object.  When the destructor runs, we need to destroy the timer *before* the connection object. [...]
    
    I also noticed a rather serious bug in one of the UnAckedMessageTrackerEnabled constructors: I believe the intent here was to use the c++11 "delegating constructors" feature, but I think it's written using the Java style, which doesn't work in C++ (see https://stackoverflow.com/questions/13961037/delegate-constructor-c). The semantics of the existing code would just create a new, separate UnAckedMessageTrackerEnabled on the stack in the constructor scope, then immediately destroy it!  [...]
    
    * [C++] Applied clang-format to previous change
    
    * [C++] Apparently clang-format didn't like this one either....
    
    (cherry picked from commit 0748ecb6224006f67b70bd7c98094c3fd43e0178)
---
 pulsar-client-cpp/lib/ClientImpl.cc                   |  2 +-
 pulsar-client-cpp/lib/UnAckedMessageTrackerEnabled.cc | 19 +++++++++----------
 pulsar-client-cpp/lib/UnAckedMessageTrackerEnabled.h  |  2 +-
 3 files changed, 11 insertions(+), 12 deletions(-)

diff --git a/pulsar-client-cpp/lib/ClientImpl.cc b/pulsar-client-cpp/lib/ClientImpl.cc
index feff610..5abe6ec 100644
--- a/pulsar-client-cpp/lib/ClientImpl.cc
+++ b/pulsar-client-cpp/lib/ClientImpl.cc
@@ -45,7 +45,7 @@ namespace pulsar {
 
 static const char hexDigits[] = {'0', '1', '2', '3', '4', '5', '6', '7',
                                  '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
-static std::uniform_int_distribution<> hexDigitsDist(0, sizeof(hexDigits));
+static std::uniform_int_distribution<> hexDigitsDist(0, sizeof(hexDigits) - 1);
 static std::mt19937 randomEngine =
     std::mt19937(std::chrono::high_resolution_clock::now().time_since_epoch().count());
 
diff --git a/pulsar-client-cpp/lib/UnAckedMessageTrackerEnabled.cc b/pulsar-client-cpp/lib/UnAckedMessageTrackerEnabled.cc
index 3364c0e..9d0160f 100644
--- a/pulsar-client-cpp/lib/UnAckedMessageTrackerEnabled.cc
+++ b/pulsar-client-cpp/lib/UnAckedMessageTrackerEnabled.cc
@@ -69,20 +69,19 @@ void UnAckedMessageTrackerEnabled::timeoutHandlerHelper() {
 
 UnAckedMessageTrackerEnabled::UnAckedMessageTrackerEnabled(long timeoutMs, const ClientImplPtr client,
                                                            ConsumerImplBase& consumer)
-    : consumerReference_(consumer) {
-    UnAckedMessageTrackerEnabled(timeoutMs, timeoutMs, client, consumer);
-}
+    : UnAckedMessageTrackerEnabled(timeoutMs, timeoutMs, client, consumer) {}
 
 UnAckedMessageTrackerEnabled::UnAckedMessageTrackerEnabled(long timeoutMs, long tickDurationInMs,
                                                            const ClientImplPtr client,
                                                            ConsumerImplBase& consumer)
-    : consumerReference_(consumer) {
-    timeoutMs_ = timeoutMs;
-    tickDurationInMs_ = (timeoutMs >= tickDurationInMs) ? tickDurationInMs : timeoutMs;
-    client_ = client;
-
-    int blankPartitions = (int)std::ceil((double)timeoutMs_ / tickDurationInMs_);
-    for (int i = 0; i < blankPartitions + 1; i++) {
+    : consumerReference_(consumer),
+      client_(client),
+      timeoutMs_(timeoutMs),
+      tickDurationInMs_(timeoutMs >= tickDurationInMs ? tickDurationInMs : timeoutMs) {
+    const int blankPartitions =
+        static_cast<int>(std::ceil(static_cast<double>(timeoutMs_) / tickDurationInMs_)) + 1;
+
+    for (int i = 0; i < blankPartitions; i++) {
         std::set<MessageId> msgIds;
         timePartitions.push_back(msgIds);
     }
diff --git a/pulsar-client-cpp/lib/UnAckedMessageTrackerEnabled.h b/pulsar-client-cpp/lib/UnAckedMessageTrackerEnabled.h
index 9fd638a..7ed7b03 100644
--- a/pulsar-client-cpp/lib/UnAckedMessageTrackerEnabled.h
+++ b/pulsar-client-cpp/lib/UnAckedMessageTrackerEnabled.h
@@ -44,9 +44,9 @@ class UnAckedMessageTrackerEnabled : public UnAckedMessageTrackerInterface {
     std::map<MessageId, std::set<MessageId>&> messageIdPartitionMap;
     std::deque<std::set<MessageId>> timePartitions;
     std::mutex lock_;
-    DeadlineTimerPtr timer_;
     ConsumerImplBase& consumerReference_;
     ClientImplPtr client_;
+    DeadlineTimerPtr timer_;  // DO NOT place this before client_!
     long timeoutMs_;
     long tickDurationInMs_;