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;
     }
 

Reply via email to