tree 465b552a20023bfc8b22784eb713c9ba48d952e5
parent c32fec1afd5d10bbd29e137f15112e4d554a19c6
author Yunze Xu <xyzinfernity@163.com> 1614931185 +0800
committer GitHub <noreply@github.com> 1614931185 +0800
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJgQeTxCRBK7hj4Ov3rIwAAdHIIACYwarRWEn7xnDyJV4ZZerbf
 gKBjp2Fm71GZf23IQQ1yceBTR0c9cnie44IlWgdX5wdDXOOZnOcace5G0wk/Tphq
 kCDr4msnPDbdki4AUjE8uq9UFp5wCNxDNexIx/7lRupsJnZG5qjzHRAzro4GLLWr
 y1nUuduSuMTn71jedsOPrPgTkocy1IA7f3tnpfCQPw1yJHayJ34S7wgD0SHEnygu
 M+ZJScIA0uDstgfxh08Dv1tUKVPOmT/oyJliUbywb+aX6QPE4fvURvlAePgzM2a9
 DOLDy1Ef7YtQZ0f7cmhD5VXYcbmVsBiekYynS1mKP7YO2FHF13AdmEEvilGmXyk=
 =PPvg
 -----END PGP SIGNATURE-----
 

Add NPE check for PulsarService#getAdminClient (#9782)

### Motivation

If user set incorrect `brokerClientTlsEnabled` config, the `PulsarService#getAdminClient` would throw NPE and the error logs is not clear. For example, start a standalone pulsar with `brokerClientTlsEnabled=true`, some admin APIs that don't involve `PulsarService#getAdminClient` work well, however some admin APIs like `GET /admin/v2/non-persistent/:tenant/:namespace` will throw NPE with following logs:

```
org.apache.pulsar.broker.PulsarServerException: java.lang.NullPointerException
	at org.apache.pulsar.broker.PulsarService.getAdminClient(PulsarService.java:1193)
	at org.apache.pulsar.broker.admin.v2.NonPersistentTopics.getList(NonPersistentTopics.java:273)
```

After this PR, the logs became:

```
org.apache.pulsar.broker.PulsarServerException: java.lang.IllegalArgumentException: adminApiUrl is null, isBrokerClientTlsEnabled: true, webServiceAddressTls: null, webServiceAddress: http://localhost:8080
```

### Modifications

- Check if `adminApiUrl` is null in `PulsarService#getAdminClient` and give a human readable error message.

### Verifying this change

- [ ] Make sure that the change passes the CI checks.

This change is a trivial rework / code cleanup without any test coverage.