This is an automated email from the ASF dual-hosted git repository. technoboy pushed a commit to branch branch-2.11 in repository https://gitbox.apache.org/repos/asf/pulsar.git
commit 00d2516addc1f15a6d17c9d645a14ae24ade7c9d Author: Zixuan Liu <[email protected]> AuthorDate: Mon Dec 12 21:05:59 2022 +0800 [fix][broker] Ignore the exception of creating namespace (#18837) --- .../src/main/java/org/apache/pulsar/PulsarStandalone.java | 6 +++++- .../test/java/org/apache/pulsar/PulsarStandaloneTest.java | 7 ++++++- .../pulsar/tests/integration/standalone/SmokeTest.java | 14 ++++++++++++++ .../integration/topologies/PulsarStandaloneTestBase.java | 3 +++ 4 files changed, 28 insertions(+), 2 deletions(-) diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/PulsarStandalone.java b/pulsar-broker/src/main/java/org/apache/pulsar/PulsarStandalone.java index 22e4070d053..b5cc3462691 100644 --- a/pulsar-broker/src/main/java/org/apache/pulsar/PulsarStandalone.java +++ b/pulsar-broker/src/main/java/org/apache/pulsar/PulsarStandalone.java @@ -392,7 +392,11 @@ public class PulsarStandalone implements AutoCloseable { } if (!nsr.namespaceExists(ns)) { - broker.getAdminClient().namespaces().createNamespace(ns.toString()); + try { + broker.getAdminClient().namespaces().createNamespace(ns.toString()); + } catch (Exception e) { + log.warn("Failed to create the default namespace {}: {}", ns, e.getMessage()); + } } } diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/PulsarStandaloneTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/PulsarStandaloneTest.java index efa4d2b4862..f62ce1c5e46 100644 --- a/pulsar-broker/src/test/java/org/apache/pulsar/PulsarStandaloneTest.java +++ b/pulsar-broker/src/test/java/org/apache/pulsar/PulsarStandaloneTest.java @@ -21,6 +21,7 @@ package org.apache.pulsar; import static org.apache.commons.io.FileUtils.cleanDirectory; import static org.mockito.Mockito.any; import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; @@ -32,6 +33,7 @@ import org.apache.bookkeeper.conf.ServerConfiguration; import org.apache.bookkeeper.util.IOUtils; import org.apache.pulsar.client.admin.Namespaces; import org.apache.pulsar.client.admin.PulsarAdmin; +import org.apache.pulsar.client.admin.PulsarAdminException; import org.apache.pulsar.common.naming.NamespaceName; import org.apache.pulsar.broker.PulsarService; import org.apache.pulsar.broker.ServiceConfiguration; @@ -60,7 +62,7 @@ public class PulsarStandaloneTest { doNothing().when(tr).createTenant(eq(tenant), any()); NamespaceResources nsr = mock(NamespaceResources.class); - when(nsr.namespaceExists(ns)).thenReturn(false).thenReturn(true); + when(nsr.namespaceExists(ns)).thenReturn(false).thenReturn(true).thenReturn(false); doNothing().when(nsr).createPolicies(eq(ns), any()); PulsarResources resources = mock(PulsarResources.class); @@ -94,6 +96,9 @@ public class PulsarStandaloneTest { verify(tr, times(1)).createTenant(eq(tenant), any()); verify(admin, times(1)).namespaces(); verify(admin.namespaces(), times(1)).createNamespace(eq(ns.toString())); + + doThrow(new PulsarAdminException("No permission")).when(namespaces).createNamespace(any()); + standalone.createNameSpace(cluster, tenant, ns); } @Test(groups = "broker") diff --git a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/standalone/SmokeTest.java b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/standalone/SmokeTest.java index 5d142297a91..9fb90f172c5 100644 --- a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/standalone/SmokeTest.java +++ b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/standalone/SmokeTest.java @@ -18,7 +18,12 @@ */ package org.apache.pulsar.tests.integration.standalone; +import static org.testng.Assert.assertEquals; import java.util.function.Supplier; +import lombok.Cleanup; +import org.apache.pulsar.client.admin.PulsarAdmin; +import org.apache.pulsar.client.admin.PulsarAdminException; +import org.apache.pulsar.client.api.PulsarClientException; import org.apache.pulsar.tests.integration.suites.PulsarStandaloneTestSuite; import org.testng.annotations.Test; @@ -29,4 +34,13 @@ public class SmokeTest extends PulsarStandaloneTestSuite { super.testPublishAndConsume(serviceUrl.get(), isPersistent); } + @Test + public void testGetBundleRange() throws PulsarClientException, PulsarAdminException { + @Cleanup + PulsarAdmin admin = PulsarAdmin.builder().serviceHttpUrl(getHttpServiceUrl()).build(); + + String topic = "test-get-topic-bundle-range"; + admin.topics().createNonPartitionedTopic(topic); + assertEquals(admin.lookups().getBundleRange(topic), "0xc0000000_0xffffffff"); + } } diff --git a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/topologies/PulsarStandaloneTestBase.java b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/topologies/PulsarStandaloneTestBase.java index 85d7b46c711..1261e76c0ba 100644 --- a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/topologies/PulsarStandaloneTestBase.java +++ b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/topologies/PulsarStandaloneTestBase.java @@ -121,4 +121,7 @@ public abstract class PulsarStandaloneTestBase extends PulsarTestBase { } } + protected String getHttpServiceUrl() { + return container.getHttpServiceUrl(); + } }
