This is an automated email from the ASF dual-hosted git repository.
penghui pushed a commit to branch branch-2.9
in repository https://gitbox.apache.org/repos/asf/pulsar.git
The following commit(s) were added to refs/heads/branch-2.9 by this push:
new e9b585c NPE when get isAllowAutoUploadSchema (#13831)
e9b585c is described below
commit e9b585caf484bb5b2b1d1adb221cb42527d17cc9
Author: gaozhangmin <[email protected]>
AuthorDate: Fri Jan 21 20:28:56 2022 +0800
NPE when get isAllowAutoUploadSchema (#13831)
### Motivation
there were some potential NPE bug when get null value by pulsar-admin
```
Caused by: java.lang.NullPointerException
at
org.apache.pulsar.broker.admin.impl.NamespacesBase.internalGetIsAllowAutoUpdateSchema(NamespacesBase.java:2423)
~[org.apache.pulsar-pulsar-broker-2.9.1.jar:2.9.1]
at
org.apache.pulsar.broker.admin.v2.Namespaces.getIsAllowAutoUpdateSchema(Namespaces.java:1631)
~[org.apache.pulsar-pulsar-broker-2.9.1.jar:2.9.1]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method) ~[?:?]
```
### Modifications
1、set default value true to is_allow_auto_update_schema in Policies as same
as ServiceConfiguration
2、changes from boolean to Boolean, long to Long, prevent potential NPE.
(cherry picked from commit 0a8794b768b414f8e5bc9b3abb76e57de9455add)
---
.../main/java/org/apache/pulsar/broker/admin/impl/NamespacesBase.java | 3 +++
1 file changed, 3 insertions(+)
diff --git
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/NamespacesBase.java
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/NamespacesBase.java
index 5f1231f..7f4b288 100644
---
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/NamespacesBase.java
+++
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/NamespacesBase.java
@@ -2399,6 +2399,9 @@ public abstract class NamespacesBase extends
AdminResource {
protected boolean internalGetIsAllowAutoUpdateSchema() {
validateNamespacePolicyOperation(namespaceName,
PolicyName.SCHEMA_COMPATIBILITY_STRATEGY,
PolicyOperation.READ);
+ if (getNamespacePolicies(namespaceName).is_allow_auto_update_schema ==
null) {
+ return pulsar().getConfig().isAllowAutoUpdateSchemaEnabled();
+ }
return getNamespacePolicies(namespaceName).is_allow_auto_update_schema;
}