You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by mm...@apache.org on 2018/10/26 06:35:11 UTC

[pulsar] branch master updated: Fix: schema init for topic-name with special char (#2836)

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 <rd...@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