You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by lh...@apache.org on 2024/11/29 15:04:02 UTC

(pulsar) branch master updated: [improve][client] Enhance error handling for non-exist subscription in consumer creation (#23254)

This is an automated email from the ASF dual-hosted git repository.

lhotari 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 7fc88d65020 [improve][client] Enhance error handling for non-exist subscription in consumer creation (#23254)
7fc88d65020 is described below

commit 7fc88d650202bca5d0462b41a89c5189f90a3859
Author: Yike Xiao <km...@live.com>
AuthorDate: Fri Nov 29 23:03:55 2024 +0800

    [improve][client] Enhance error handling for non-exist subscription in consumer creation (#23254)
---
 .../java/org/apache/pulsar/client/api/MultiTopicsConsumerTest.java  | 6 ++++--
 .../java/org/apache/pulsar/client/api/PulsarClientException.java    | 2 ++
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/client/api/MultiTopicsConsumerTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/client/api/MultiTopicsConsumerTest.java
index 7a12acd47ed..ea8eb6e8cc0 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/client/api/MultiTopicsConsumerTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/client/api/MultiTopicsConsumerTest.java
@@ -413,8 +413,9 @@ public class MultiTopicsConsumerTest extends ProducerConsumerBase {
                     .isAckReceiptEnabled(true)
                     .subscribe();
             assertTrue(singleTopicConsumer instanceof ConsumerImpl);
+        } catch (PulsarClientException.SubscriptionNotFoundException ignore) {
         } catch (Throwable t) {
-            assertTrue(t.getCause().getCause() instanceof PulsarClientException.SubscriptionNotFoundException);
+            fail("Should throw PulsarClientException.SubscriptionNotFoundException instead");
         }
 
         try {
@@ -424,8 +425,9 @@ public class MultiTopicsConsumerTest extends ProducerConsumerBase {
                     .isAckReceiptEnabled(true)
                     .subscribe();
             assertTrue(multiTopicsConsumer instanceof MultiTopicsConsumerImpl);
+        } catch (PulsarClientException.SubscriptionNotFoundException ignore) {
         } catch (Throwable t) {
-            assertTrue(t.getCause().getCause() instanceof PulsarClientException.SubscriptionNotFoundException);
+            fail("Should throw PulsarClientException.SubscriptionNotFoundException instead");
         }
 
         pulsar.getConfiguration().setAllowAutoSubscriptionCreation(true);
diff --git a/pulsar-client-api/src/main/java/org/apache/pulsar/client/api/PulsarClientException.java b/pulsar-client-api/src/main/java/org/apache/pulsar/client/api/PulsarClientException.java
index 9eb6c612a52..b2c9b2b697b 100644
--- a/pulsar-client-api/src/main/java/org/apache/pulsar/client/api/PulsarClientException.java
+++ b/pulsar-client-api/src/main/java/org/apache/pulsar/client/api/PulsarClientException.java
@@ -1113,6 +1113,8 @@ public class PulsarClientException extends IOException {
             newException = new TransactionConflictException(msg);
         } else if (cause instanceof TopicDoesNotExistException) {
             newException = new TopicDoesNotExistException(msg);
+        } else if (cause instanceof SubscriptionNotFoundException) {
+            newException = new SubscriptionNotFoundException(msg);
         } else if (cause instanceof ProducerFencedException) {
             newException = new ProducerFencedException(msg);
         } else if (cause instanceof MemoryBufferIsFullError) {