tree 291366aa1ccbf9da874bc9e0d613d2047fd20efb
parent 808333360cf8ed86c71f3f85a404ddb27008b198
author gaozhangmin <gaozhangmin456@qq.com> 1642768136 +0800
committer GitHub <noreply@github.com> 1642768136 +0800
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJh6qcICRBK7hj4Ov3rIwAAxvYIADBiI1+UT2mR+35NcEmD4zkH
 MVng6ZnLoG4AFsPJhDPUY7mHLeDWoxXYc/Od+ck3i+oIrYYanD8PcwSQX3ZBOwbT
 sQysxg1qfHO0OL1jXZ+rUlywxZQDEXbXDOejwVtLE0c4YCB9ZrnOOD9pbc19MgOp
 N7lPuGIi8mHS/JzbNIzyBvLoOFmaNO9JaLMrHMlIWcoj9Y4YxZqrr0l3aB4J+HQ/
 fay7qSZzGEX2NoRnQrL/w2LtVhElvYNITOuLs0ScH3qi3LQKgRBHkxq9tB3+ODRI
 tJV9GMN2l2MgberhStsESukDTcqYILXK54vp+lI7GVkVL3jlHl6DSZqecPMh0g4=
 =HnO8
 -----END PGP SIGNATURE-----
 

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.