This is an automated email from the ASF dual-hosted git repository.
mmerli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git
The following commit(s) were added to refs/heads/master by this push:
new 3aa8e56aadd [improve][build] Fix final rawtypes, unchecked, and
redundant cast warnings (#25420)
3aa8e56aadd is described below
commit 3aa8e56aaddf179b9b630d0906842481b2dd3b04
Author: Matteo Merli <[email protected]>
AuthorDate: Fri Mar 27 15:29:13 2026 -0700
[improve][build] Fix final rawtypes, unchecked, and redundant cast warnings
(#25420)
---
.../java/org/apache/pulsar/client/cli/CmdProduce.java | 5 +++--
.../java/org/apache/pulsar/client/impl/ProducerImpl.java | 16 ++++++++++------
.../impl/PulsarClientSharedResourcesBuilderImpl.java | 1 +
.../pulsar/functions/instance/AbstractSinkRecord.java | 8 ++++++--
.../pulsar/functions/instance/FunctionResultRouter.java | 2 +-
.../pulsar/functions/instance/JavaInstanceRunnable.java | 14 ++++++++++----
.../instance/state/BKStateStoreProviderImpl.java | 1 +
.../state/PulsarMetadataStateStoreProviderImpl.java | 1 +
.../instance/stats/FunctionCollectorRegistryImpl.java | 6 ++++--
.../org/apache/pulsar/functions/sink/PulsarSink.java | 1 +
.../functions/windowing/WindowFunctionExecutor.java | 7 +++++--
.../apache/pulsar/functions/windowing/WindowImpl.java | 2 +-
.../windowing/evictors/WatermarkCountEvictionPolicy.java | 1 +
.../java/org/apache/pulsar/functions/LocalRunner.java | 1 +
.../bookkeeper/PulsarLedgerUnderreplicationManager.java | 1 +
.../metadata/bookkeeper/PulsarMetadataBookieDriver.java | 1 +
.../org/apache/pulsar/websocket/ProducerHandler.java | 1 +
17 files changed, 49 insertions(+), 20 deletions(-)
diff --git
a/pulsar-client-tools/src/main/java/org/apache/pulsar/client/cli/CmdProduce.java
b/pulsar-client-tools/src/main/java/org/apache/pulsar/client/cli/CmdProduce.java
index 9c72cd474cc..69b180eca75 100644
---
a/pulsar-client-tools/src/main/java/org/apache/pulsar/client/cli/CmdProduce.java
+++
b/pulsar-client-tools/src/main/java/org/apache/pulsar/client/cli/CmdProduce.java
@@ -344,7 +344,8 @@ public class CmdProduce extends AbstractCmd {
limiter.acquire();
}
- TypedMessageBuilder message = producer.newMessage();
+ @SuppressWarnings("unchecked")
+ TypedMessageBuilder<Object> message =
(TypedMessageBuilder<Object>) producer.newMessage();
if (!kvMap.isEmpty()) {
message.properties(kvMap);
@@ -359,7 +360,7 @@ public class CmdProduce extends AbstractCmd {
break;
case KEY_VALUE_ENCODING_TYPE_SEPARATED:
case KEY_VALUE_ENCODING_TYPE_INLINE:
- KeyValue kv = new KeyValue<>(
+ KeyValue<byte[], byte[]> kv = new KeyValue<>(
keyValueKeyBytes,
content);
message.value(kv);
diff --git
a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ProducerImpl.java
b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ProducerImpl.java
index 4119fc8b6ed..fa4b4053758 100644
---
a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ProducerImpl.java
+++
b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ProducerImpl.java
@@ -146,10 +146,12 @@ public class ProducerImpl<T> extends ProducerBase<T>
implements TimerTask, Conne
private final CompressionCodec compressor;
+ @SuppressWarnings("rawtypes")
static final AtomicLongFieldUpdater<ProducerImpl>
LAST_SEQ_ID_PUBLISHED_UPDATER = AtomicLongFieldUpdater
.newUpdater(ProducerImpl.class, "lastSequenceIdPublished");
private volatile long lastSequenceIdPublished;
+ @SuppressWarnings("rawtypes")
static final AtomicLongFieldUpdater<ProducerImpl>
LAST_SEQ_ID_PUSHED_UPDATER = AtomicLongFieldUpdater
.newUpdater(ProducerImpl.class, "lastSequenceIdPushed");
protected volatile long lastSequenceIdPushed;
@@ -453,6 +455,7 @@ public class ProducerImpl<T> extends ProducerBase<T>
implements TimerTask, Conne
}
}
+ @SuppressWarnings("unchecked")
private void onSendComplete(Throwable e, SendCallback sendCallback,
MessageImpl<?> msg) {
long createdAt = (sendCallback instanceof
ProducerImpl.DefaultSendMessageCallback)
? ((DefaultSendMessageCallback) sendCallback).createdAt :
this.createdAt;
@@ -851,7 +854,7 @@ public class ProducerImpl<T> extends ProducerBase<T>
implements TimerTask, Conne
}
@VisibleForTesting
- boolean populateMessageSchema(MessageImpl msg, SendCallback callback) {
+ boolean populateMessageSchema(MessageImpl<?> msg, SendCallback callback) {
MessageMetadata msgMetadataBuilder = msg.getMessageBuilder();
if (msg.getSchemaInternal() == schema) {
schemaVersion.ifPresent(v ->
msgMetadataBuilder.setSchemaVersion(v));
@@ -886,7 +889,7 @@ public class ProducerImpl<T> extends ProducerBase<T>
implements TimerTask, Conne
return true;
}
- private boolean rePopulateMessageSchema(MessageImpl msg) {
+ private boolean rePopulateMessageSchema(MessageImpl<?> msg) {
byte[] schemaVersion = schemaCache.get(msg.getSchemaHash());
if (schemaVersion == null) {
return false;
@@ -900,7 +903,8 @@ public class ProducerImpl<T> extends ProducerBase<T>
implements TimerTask, Conne
return true;
}
- private void tryRegisterSchema(ClientCnx cnx, final MessageImpl msg,
SendCallback callback, long expectedCnxEpoch) {
+ private void tryRegisterSchema(ClientCnx cnx, final MessageImpl<?> msg,
SendCallback callback,
+ long expectedCnxEpoch) {
if (!changeToRegisteringSchemaState()) {
return;
}
@@ -1938,7 +1942,7 @@ public class ProducerImpl<T> extends ProducerBase<T>
implements TimerTask, Conne
// Deprecated (PIP-464): This backward-compatible path
sends old Jackson JsonSchema
// format to brokers below protocol v13 (Pulsar <
2.1). Scheduled for removal in a
// future major release.
- JSONSchema jsonSchema = (JSONSchema) schema;
+ JSONSchema<?> jsonSchema = (JSONSchema<?>) schema;
schemaInfo =
jsonSchema.getBackwardsCompatibleJsonSchemaInfo();
} else {
schemaInfo = schema.getSchemaInfo();
@@ -2560,7 +2564,7 @@ public class ProducerImpl<T> extends ProducerBase<T>
implements TimerTask, Conne
* Note: Since the current method accesses & modifies {@link
#pendingMessages}, you should acquire a lock on
* {@link ProducerImpl} before calling method.
*/
- private void recoverProcessOpSendMsgFrom(ClientCnx cnx, MessageImpl
latestMsgAttemptedRegisteredSchema,
+ private void recoverProcessOpSendMsgFrom(ClientCnx cnx, MessageImpl<?>
latestMsgAttemptedRegisteredSchema,
boolean failedIncompatibleSchema,
long expectedEpoch) {
if (expectedEpoch != this.connectionHandler.getEpoch() || cnx() ==
null) {
// In this case, the cnx passed to this method is no longer the
active connection. This method will get
@@ -2572,7 +2576,7 @@ public class ProducerImpl<T> extends ProducerBase<T>
implements TimerTask, Conne
}
final boolean stripChecksum = cnx.getRemoteEndpointProtocolVersion() <
brokerChecksumSupportedVersion();
Iterator<OpSendMsg> msgIterator = pendingMessages.iterator();
- MessageImpl loopStartAt = latestMsgAttemptedRegisteredSchema;
+ MessageImpl<?> loopStartAt = latestMsgAttemptedRegisteredSchema;
OpSendMsg loopEndDueToSchemaRegisterNeeded = null;
boolean pausedSendingToPreservePublishOrderOnSchemaRegFailure = false;
while (msgIterator.hasNext()) {
diff --git
a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/PulsarClientSharedResourcesBuilderImpl.java
b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/PulsarClientSharedResourcesBuilderImpl.java
index fe9d43dc41e..f8ac98bb862 100644
---
a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/PulsarClientSharedResourcesBuilderImpl.java
+++
b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/PulsarClientSharedResourcesBuilderImpl.java
@@ -59,6 +59,7 @@ public class PulsarClientSharedResourcesBuilderImpl
implements PulsarClientShare
}
}
+ @SuppressWarnings("rawtypes")
static class ThreadPoolResourceConfig extends
NamedResourceConfig<ThreadPoolConfig> implements ThreadPoolConfig {
int numberOfThreads = Runtime.getRuntime().availableProcessors();
boolean daemon = Thread.currentThread().isDaemon();
diff --git
a/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/AbstractSinkRecord.java
b/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/AbstractSinkRecord.java
index d0e70d67514..1ee6ae3e2d4 100644
---
a/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/AbstractSinkRecord.java
+++
b/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/AbstractSinkRecord.java
@@ -101,9 +101,13 @@ public abstract class AbstractSinkRecord<T> implements
Record<T> {
// see PIP-85
if (record.getMessage().isPresent()
&&
record.getMessage().get().getReaderSchema().isPresent()) {
- schema = (Schema<T>)
record.getMessage().get().getReaderSchema().get();
+ @SuppressWarnings("unchecked")
+ Schema<T> readerSchema = (Schema<T>)
record.getMessage().get().getReaderSchema().get();
+ schema = readerSchema;
} else {
- schema = (Schema<T>) ((AutoConsumeSchema)
schema).getInternalSchema();
+ @SuppressWarnings("unchecked")
+ Schema<T> internalSchema = (Schema<T>)
((AutoConsumeSchema) schema).getInternalSchema();
+ schema = internalSchema;
}
}
return schema;
diff --git
a/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/FunctionResultRouter.java
b/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/FunctionResultRouter.java
index f6b4cd829b9..1a44b924386 100644
---
a/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/FunctionResultRouter.java
+++
b/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/FunctionResultRouter.java
@@ -52,7 +52,7 @@ public class FunctionResultRouter extends
RoundRobinPartitionMessageRouterImpl {
}
@Override
- public int choosePartition(Message msg, TopicMetadata metadata) {
+ public int choosePartition(Message<?> msg, TopicMetadata metadata) {
// if key is specified, we should use key as routing;
// if key is not specified and no sequence id is provided, not an
effectively-once publish, use the default
// round-robin routing.
diff --git
a/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/JavaInstanceRunnable.java
b/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/JavaInstanceRunnable.java
index 56dc802affb..7c9685e90d0 100644
---
a/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/JavaInstanceRunnable.java
+++
b/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/JavaInstanceRunnable.java
@@ -420,7 +420,7 @@ public class JavaInstanceRunnable implements AutoCloseable,
Runnable {
}
@VisibleForTesting
- void handleResult(Record srcRecord, JavaExecutionResult result) throws
Exception {
+ void handleResult(Record<?> srcRecord, JavaExecutionResult result) throws
Exception {
if (result.getUserException() != null) {
Throwable t = result.getUserException();
log.warn("Encountered exception when processing message {}",
@@ -481,7 +481,9 @@ public class JavaInstanceRunnable implements AutoCloseable,
Runnable {
}
}
- private OutputRecordSinkRecord
encodeWithRecordSchemaAndDecodeWithSinkSchema(Record srcRecord, Record record) {
+ @SuppressWarnings({"unchecked", "rawtypes"})
+ private OutputRecordSinkRecord<?>
encodeWithRecordSchemaAndDecodeWithSinkSchema(
+ Record<?> srcRecord, Record<?> record) {
AbstractSinkRecord<?> sinkRecord;
Schema encodingSchema = record.getSchema();
boolean isKeyValueSeparated = false;
@@ -521,8 +523,8 @@ public class JavaInstanceRunnable implements AutoCloseable,
Runnable {
return new OutputRecordSinkRecord(srcRecord, record, decoded,
finalSchema);
}
- private Record readInput() throws Exception {
- Record record;
+ private Record<?> readInput() throws Exception {
+ Record<?> record;
if (componentType ==
org.apache.pulsar.functions.proto.Function.FunctionDetails.ComponentType.SOURCE)
{
Thread.currentThread().setContextClassLoader(componentClassLoader);
}
@@ -773,6 +775,7 @@ public class JavaInstanceRunnable implements AutoCloseable,
Runnable {
context.updateLoggers();
}
+ @SuppressWarnings({"unchecked", "rawtypes"})
private void setupInput(ContextImpl contextImpl) throws Exception {
SourceSpec sourceSpec =
this.instanceConfig.getFunctionDetails().getSource();
@@ -924,6 +927,7 @@ public class JavaInstanceRunnable implements AutoCloseable,
Runnable {
* @param secretsProvider - the secrets provider that will convert
secret's values into config values.
* @param configs - the connector configuration map, which will be mutated.
*/
+ @SuppressWarnings("unchecked")
private static void interpolateSecretsIntoConfigs(SecretsProvider
secretsProvider,
Map<String, Object>
configs) {
for (Map.Entry<String, Object> entry : configs.entrySet()) {
@@ -1024,6 +1028,7 @@ public class JavaInstanceRunnable implements
AutoCloseable, Runnable {
}
+ @SuppressWarnings({"unchecked", "rawtypes"})
private void setupOutput(ContextImpl contextImpl) throws Exception {
SinkSpec sinkSpec = this.instanceConfig.getFunctionDetails().getSink();
@@ -1097,6 +1102,7 @@ public class JavaInstanceRunnable implements
AutoCloseable, Runnable {
}
}
+ @SuppressWarnings("unchecked")
private static <T> Schema<T> getSinkSchema(Record<?> record, Class<T>
clazz) {
SchemaType type = getSchemaTypeOrDefault(record, clazz);
switch (type) {
diff --git
a/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/state/BKStateStoreProviderImpl.java
b/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/state/BKStateStoreProviderImpl.java
index 5faab27b341..f60bb676b45 100644
---
a/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/state/BKStateStoreProviderImpl.java
+++
b/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/state/BKStateStoreProviderImpl.java
@@ -181,6 +181,7 @@ public class BKStateStoreProviderImpl implements
StateStoreProvider {
throw new IOException("Failed to open state table for function " +
tenant + "/" + namespace + "/" + name);
}
+ @SuppressWarnings("unchecked")
@Override
public <T extends StateStore> T getStateStore(String tenant, String
namespace, String name) throws Exception {
// we defer creation of the state table until a java instance is
running here.
diff --git
a/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/state/PulsarMetadataStateStoreProviderImpl.java
b/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/state/PulsarMetadataStateStoreProviderImpl.java
index dd2a702e65f..9121fe57d43 100644
---
a/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/state/PulsarMetadataStateStoreProviderImpl.java
+++
b/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/state/PulsarMetadataStateStoreProviderImpl.java
@@ -57,6 +57,7 @@ public class PulsarMetadataStateStoreProviderImpl implements
StateStoreProvider
}
}
+ @SuppressWarnings("unchecked")
@Override
public DefaultStateStore getStateStore(String tenant, String namespace,
String name) throws Exception {
return new PulsarMetadataStateStoreImpl(store, prefix, tenant,
namespace, name);
diff --git
a/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/stats/FunctionCollectorRegistryImpl.java
b/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/stats/FunctionCollectorRegistryImpl.java
index dae3e04ea63..611031474f7 100644
---
a/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/stats/FunctionCollectorRegistryImpl.java
+++
b/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/stats/FunctionCollectorRegistryImpl.java
@@ -26,9 +26,11 @@ public class FunctionCollectorRegistryImpl extends
FunctionCollectorRegistry {
private final Map<String, Collector> namesToCollectors = new
HashMap<String, Collector>();
- public Collector registerIfNotExist(String metricName, Collector
collector) {
+ @Override
+ public <T extends Collector> T registerIfNotExist(String metricName, T
collector) {
synchronized (this) {
- Collector existingCollector = namesToCollectors.get(metricName);
+ @SuppressWarnings("unchecked")
+ T existingCollector = (T) namesToCollectors.get(metricName);
if (existingCollector == null) {
namesToCollectors.put(metricName, collector);
super.register(collector);
diff --git
a/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/sink/PulsarSink.java
b/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/sink/PulsarSink.java
index da6b8006eb9..dadf401d542 100644
---
a/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/sink/PulsarSink.java
+++
b/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/sink/PulsarSink.java
@@ -291,6 +291,7 @@ public class PulsarSink<T> implements Sink<T> {
}
if (sinkRecord.getSourceRecord() instanceof PulsarRecord) {
+ @SuppressWarnings("unchecked")
PulsarRecord<T> pulsarRecord = (PulsarRecord<T>)
sinkRecord.getSourceRecord();
// forward user properties to sink-topic
msg.property("__pfn_input_topic__",
pulsarRecord.getTopicName().get())
diff --git
a/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/windowing/WindowFunctionExecutor.java
b/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/windowing/WindowFunctionExecutor.java
index 1e492d74aa6..bd3d2dca610 100644
---
a/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/windowing/WindowFunctionExecutor.java
+++
b/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/windowing/WindowFunctionExecutor.java
@@ -65,6 +65,7 @@ public class WindowFunctionExecutor<T, X> implements
Function<T, X> {
this.start();
}
+ @SuppressWarnings("unchecked")
private void initializeUserFunction(WindowConfig windowConfig) {
String actualWindowFunctionClassName =
windowConfig.getActualWindowFunctionClassName();
ClassLoader clsLoader = Thread.currentThread().getContextClassLoader();
@@ -75,12 +76,12 @@ public class WindowFunctionExecutor<T, X> implements
Function<T, X> {
Class<?>[] typeArgs = TypeResolver.resolveRawArguments(
java.util.function.Function.class,
userClassObject.getClass());
if (typeArgs[0].equals(Collection.class)) {
- bareWindowFunction = (java.util.function.Function)
userClassObject;
+ bareWindowFunction =
(java.util.function.Function<Collection<T>, X>) userClassObject;
} else {
throw new IllegalArgumentException("Window function must take
a collection as input");
}
} else if (userClassObject instanceof WindowFunction) {
- windowFunction = (WindowFunction) userClassObject;
+ windowFunction = (WindowFunction<T, X>) userClassObject;
} else {
throw new IllegalArgumentException("Window function does not
implement the correct interface");
}
@@ -125,6 +126,7 @@ public class WindowFunctionExecutor<T, X> implements
Function<T, X> {
return manager;
}
+ @SuppressWarnings("unchecked")
private TimestampExtractor<T> getTimeStampExtractor(WindowConfig
windowConfig) {
Class<?> theCls;
@@ -279,6 +281,7 @@ public class WindowFunctionExecutor<T, X> implements
Function<T, X> {
return this.timestampExtractor != null;
}
+ @SuppressWarnings("unchecked")
@Override
public X process(T input, Context context) throws Exception {
if (!this.initialized) {
diff --git
a/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/windowing/WindowImpl.java
b/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/windowing/WindowImpl.java
index de77898b1ce..30d40fea997 100644
---
a/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/windowing/WindowImpl.java
+++
b/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/windowing/WindowImpl.java
@@ -79,7 +79,7 @@ public class WindowImpl<T> implements Window<T> {
return false;
}
- WindowImpl that = (WindowImpl) o;
+ WindowImpl<?> that = (WindowImpl<?>) o;
if (tuples != null ? !tuples.equals(that.tuples) : that.tuples !=
null) {
return false;
diff --git
a/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/windowing/evictors/WatermarkCountEvictionPolicy.java
b/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/windowing/evictors/WatermarkCountEvictionPolicy.java
index 174954d8116..6ebfa77502a 100644
---
a/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/windowing/evictors/WatermarkCountEvictionPolicy.java
+++
b/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/windowing/evictors/WatermarkCountEvictionPolicy.java
@@ -37,6 +37,7 @@ public class WatermarkCountEvictionPolicy<T>
protected final AtomicLong currentCount;
private EvictionContext context;
+ @SuppressWarnings("rawtypes")
private static final AtomicLongFieldUpdater<WatermarkCountEvictionPolicy>
PROCESSED_UPDATER =
AtomicLongFieldUpdater.newUpdater(WatermarkCountEvictionPolicy.class,
"processed");
private volatile long processed;
diff --git
a/pulsar-functions/localrun/src/main/java/org/apache/pulsar/functions/LocalRunner.java
b/pulsar-functions/localrun/src/main/java/org/apache/pulsar/functions/LocalRunner.java
index 1e2d4e0b21b..9401d33f710 100644
---
a/pulsar-functions/localrun/src/main/java/org/apache/pulsar/functions/LocalRunner.java
+++
b/pulsar-functions/localrun/src/main/java/org/apache/pulsar/functions/LocalRunner.java
@@ -598,6 +598,7 @@ public class LocalRunner implements AutoCloseable {
statusCheckTimer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
+ @SuppressWarnings({"unchecked", "rawtypes"})
CompletableFuture<String>[] futures = new
CompletableFuture[spawners.size()];
int index = 0;
for (RuntimeSpawner spawner : spawners) {
diff --git
a/pulsar-metadata/src/main/java/org/apache/pulsar/metadata/bookkeeper/PulsarLedgerUnderreplicationManager.java
b/pulsar-metadata/src/main/java/org/apache/pulsar/metadata/bookkeeper/PulsarLedgerUnderreplicationManager.java
index bfd9171a391..3e5d59eebe5 100644
---
a/pulsar-metadata/src/main/java/org/apache/pulsar/metadata/bookkeeper/PulsarLedgerUnderreplicationManager.java
+++
b/pulsar-metadata/src/main/java/org/apache/pulsar/metadata/bookkeeper/PulsarLedgerUnderreplicationManager.java
@@ -100,6 +100,7 @@ public class PulsarLedgerUnderreplicationManager implements
LedgerUnderreplicati
private static final Pattern ID_EXTRACTION_PATTERN =
Pattern.compile("urL(\\d+)$");
+ @SuppressWarnings("rawtypes")
private final AbstractConfiguration conf;
private final String basePath;
private final String urLedgerPath;
diff --git
a/pulsar-metadata/src/main/java/org/apache/pulsar/metadata/bookkeeper/PulsarMetadataBookieDriver.java
b/pulsar-metadata/src/main/java/org/apache/pulsar/metadata/bookkeeper/PulsarMetadataBookieDriver.java
index 352148d9975..58ecaf7b9cb 100644
---
a/pulsar-metadata/src/main/java/org/apache/pulsar/metadata/bookkeeper/PulsarMetadataBookieDriver.java
+++
b/pulsar-metadata/src/main/java/org/apache/pulsar/metadata/bookkeeper/PulsarMetadataBookieDriver.java
@@ -39,6 +39,7 @@ public class PulsarMetadataBookieDriver extends
AbstractMetadataDriver implement
// cause <clinit> to be invoked
}
+ @SuppressWarnings("rawtypes")
@Override
protected void initialize(AbstractConfiguration serverConfiguration)
throws MetadataException {
super.initialize(serverConfiguration);
diff --git
a/pulsar-websocket/src/main/java/org/apache/pulsar/websocket/ProducerHandler.java
b/pulsar-websocket/src/main/java/org/apache/pulsar/websocket/ProducerHandler.java
index e4fb7d332f7..ca82cc993b0 100644
---
a/pulsar-websocket/src/main/java/org/apache/pulsar/websocket/ProducerHandler.java
+++
b/pulsar-websocket/src/main/java/org/apache/pulsar/websocket/ProducerHandler.java
@@ -421,6 +421,7 @@ public class ProducerHandler extends
AbstractWebSocketHandler {
int keysLen = encryptionKeyMap.size();
final String[] keyNameArray = new String[keysLen];
final byte[][] keyValueArray = new byte[keysLen][];
+ @SuppressWarnings({"unchecked", "rawtypes"})
final List<KeyValue>[] keyMetadataArray = new List[keysLen];
// Format keys.
int index = 0;