This is an automated email from the ASF dual-hosted git repository. mmerli pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/pulsar.git
The following commit(s) were added to refs/heads/master by this push: new 000cc22 Fix: schema init for topic-name with special char (#2836) 000cc22 is described below commit 000cc22277563c208237ea2bb6ae1ca53435d88f Author: Rajan Dhabalia <rdhaba...@apache.org> AuthorDate: Thu Oct 25 23:35:06 2018 -0700 Fix: schema init for topic-name with special char (#2836) * Fix: schema init for topic-name with special char create namespace before starting test fix test * fix child test --- .../broker/service/BrokerBkEnsemblesTests.java | 32 ++++++++++++++++++++-- .../pulsar/broker/service/RackAwareTest.java | 5 ++++ .../org/apache/pulsar/common/naming/TopicName.java | 2 +- 3 files changed, 36 insertions(+), 3 deletions(-) diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/BrokerBkEnsemblesTests.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/BrokerBkEnsemblesTests.java index cc82ff4..b7303c6 100644 --- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/BrokerBkEnsemblesTests.java +++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/BrokerBkEnsemblesTests.java @@ -70,8 +70,7 @@ public class BrokerBkEnsemblesTests { LocalBookkeeperEnsemble bkEnsemble; - private final int ZOOKEEPER_PORT = PortManager.nextFreePort(); - protected final int BROKER_WEBSERVICE_PORT = PortManager.nextFreePort(); + protected int BROKER_WEBSERVICE_PORT; private final int numberOfBookies; @@ -86,6 +85,8 @@ public class BrokerBkEnsemblesTests { @BeforeMethod protected void setup() throws Exception { try { + int ZOOKEEPER_PORT = PortManager.nextFreePort(); + BROKER_WEBSERVICE_PORT = PortManager.nextFreePort(); // start local bookie and zookeeper bkEnsemble = new LocalBookkeeperEnsemble(numberOfBookies, ZOOKEEPER_PORT, () -> PortManager.nextFreePort()); bkEnsemble.start(); @@ -340,5 +341,32 @@ public class BrokerBkEnsemblesTests { client.close(); } + @Test(timeOut=20000) + public void testTopicWithWildCardChar() throws Exception { + PulsarClient client = PulsarClient.builder().serviceUrl(adminUrl.toString()).statsInterval(0, TimeUnit.SECONDS) + .build(); + + final String ns1 = "prop/usc/topicWithSpecialChar"; + try { + admin.namespaces().createNamespace(ns1); + } catch (Exception e) { + + } + + final String topic1 = "persistent://"+ns1+"/`~!@#$%^&*()-_+=[]://{}|\\;:'\"<>,./?-30e04524"; + final String subName1 = "c1"; + final byte[] content = "test".getBytes(); + + Consumer<byte[]> consumer = client.newConsumer().topic(topic1).subscriptionName(subName1).subscribe(); + org.apache.pulsar.client.api.Producer<byte[]> producer = client.newProducer().topic(topic1).create(); + + producer.send(content); + Message<byte[]> msg = consumer.receive(); + Assert.assertEquals(msg.getData(), content); + consumer.close(); + producer.close(); + client.close(); + } + private static final Logger LOG = LoggerFactory.getLogger(BrokerBkEnsemblesTests.class); } diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/RackAwareTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/RackAwareTest.java index ada7b9f..daa6fe5 100644 --- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/RackAwareTest.java +++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/RackAwareTest.java @@ -130,5 +130,10 @@ public class RackAwareTest extends BrokerBkEnsemblesTests { // Ignore test } + @Test(enabled = false) + public void testTopicWithWildCardChar() throws Exception { + // Ignore test + } + private static final Logger log = LoggerFactory.getLogger(RackAwareTest.class); } diff --git a/pulsar-common/src/main/java/org/apache/pulsar/common/naming/TopicName.java b/pulsar-common/src/main/java/org/apache/pulsar/common/naming/TopicName.java index bde252c..eef05f3 100644 --- a/pulsar-common/src/main/java/org/apache/pulsar/common/naming/TopicName.java +++ b/pulsar-common/src/main/java/org/apache/pulsar/common/naming/TopicName.java @@ -337,7 +337,7 @@ public class TopicName implements ServiceUnitId { public String getSchemaName() { return getTenant() + "/" + getNamespacePortion() - + "/" + getLocalName(); + + "/" + getEncodedLocalName(); } @Override