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 76fac617f57130795c86f01e3d0e06ff1a2c99a1 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 3d67008..c2ad1d8 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 @@ -2411,6 +2411,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; }
