diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/TenantsBase.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/TenantsBase.java index cb3cd535494e1b6391ff65969873baa7ff53cc3f..ee137f6deeaf07b777cff5067311b0e4ceb71be3 100644 --- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/TenantsBase.java +++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/TenantsBase.java @@ -91,6 +91,9 @@ public class TenantsBase extends AdminResource { try { NamedEntity.checkName(tenant); + if (config == null) { + config = new TenantInfo(); + } zkCreate(path(POLICIES, tenant), jsonMapper().writeValueAsBytes(config)); log.info("[{}] Created tenant {}", clientAppId(), tenant); } catch (KeeperException.NodeExistsException e) { diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminTest.java index b4f46aaa63e4d89d3e005fc1c2b0341d9e42f698..1cdd9544c4ea857eb4e4d87c25e768e85e92b4c1 100644 --- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminTest.java +++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminTest.java @@ -499,8 +499,15 @@ public class AdminTest extends MockedPulsarServiceBaseTest { assertEquals(e.getResponse().getStatus(), Status.PRECONDITION_FAILED.getStatusCode()); } + // Check tenantInfo is null + TenantInfo nullTenantInfo = new TenantInfo(); + properties.createTenant("tenant-config-is-null", null); + assertEquals(properties.getTenantAdmin("tenant-config-is-null"), nullTenantInfo); + + namespaces.deleteNamespace("my-tenant", "use", "my-namespace", false); properties.deleteTenant("my-tenant"); + properties.deleteTenant("tenant-config-is-null"); } @Test