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

zixuan 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 8d7a28c1454 [fix][client] Fix PulsarAdmin description check and add 
test (#24734)
8d7a28c1454 is described below

commit 8d7a28c145485265942e6dbe6b0b59a8ce8cb1ec
Author: Zixuan Liu <[email protected]>
AuthorDate: Fri Sep 12 19:36:48 2025 +0800

    [fix][client] Fix PulsarAdmin description check and add test (#24734)
---
 .../client/admin/internal/PulsarAdminBuilderImpl.java   |  3 +++
 .../admin/internal/PulsarAdminBuilderImplTest.java      | 16 ++++++++++++++++
 .../client/admin/internal/PulsarAdminImplTest.java      |  9 ---------
 .../pulsar/client/impl/ClientBuilderImplTest.java       | 17 +++++++++++++++++
 4 files changed, 36 insertions(+), 9 deletions(-)

diff --git 
a/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/PulsarAdminBuilderImpl.java
 
b/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/PulsarAdminBuilderImpl.java
index 8a4659c5b87..a046f13f60e 100644
--- 
a/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/PulsarAdminBuilderImpl.java
+++ 
b/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/PulsarAdminBuilderImpl.java
@@ -286,6 +286,9 @@ public class PulsarAdminBuilderImpl implements 
PulsarAdminBuilder {
 
     @Override
     public PulsarAdminBuilder description(String description) {
+        if (description != null && description.length() > 64) {
+            throw new IllegalArgumentException("description should be at most 
64 characters");
+        }
         this.conf.setDescription(description);
         return this;
     }
diff --git 
a/pulsar-client-admin/src/test/java/org/apache/pulsar/client/admin/internal/PulsarAdminBuilderImplTest.java
 
b/pulsar-client-admin/src/test/java/org/apache/pulsar/client/admin/internal/PulsarAdminBuilderImplTest.java
index 52ac4656580..9339c893492 100644
--- 
a/pulsar-client-admin/src/test/java/org/apache/pulsar/client/admin/internal/PulsarAdminBuilderImplTest.java
+++ 
b/pulsar-client-admin/src/test/java/org/apache/pulsar/client/admin/internal/PulsarAdminBuilderImplTest.java
@@ -20,6 +20,7 @@ package org.apache.pulsar.client.admin.internal;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static 
org.assertj.core.api.Assertions.assertThatIllegalArgumentException;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
 import com.google.gson.Gson;
 import com.google.gson.JsonObject;
 import java.io.IOException;
@@ -181,6 +182,21 @@ public class PulsarAdminBuilderImplTest {
         }
     }
 
+    @Test
+    public void testClientDescription() throws PulsarClientException {
+        @Cleanup PulsarAdmin ignored =
+                
PulsarAdmin.builder().serviceHttpUrl("http://localhost:8080";).description("forked").build();
+    }
+
+    @Test
+    public void testClientDescriptionLengthExceed64() {
+        String longDescription = "a".repeat(65);
+        assertThatThrownBy(() -> {
+            @Cleanup PulsarAdmin ignored =
+                    
PulsarAdmin.builder().serviceHttpUrl("http://localhost:8080";).description(longDescription).build();
+        }).isInstanceOf(IllegalArgumentException.class);
+    }
+
     private String secretAuthParams(String secret) {
         return String.format("{\"secret\":\"%s\"}", secret);
     }
diff --git 
a/pulsar-client-admin/src/test/java/org/apache/pulsar/client/admin/internal/PulsarAdminImplTest.java
 
b/pulsar-client-admin/src/test/java/org/apache/pulsar/client/admin/internal/PulsarAdminImplTest.java
index 8b406b8bc6d..27c6fd96079 100644
--- 
a/pulsar-client-admin/src/test/java/org/apache/pulsar/client/admin/internal/PulsarAdminImplTest.java
+++ 
b/pulsar-client-admin/src/test/java/org/apache/pulsar/client/admin/internal/PulsarAdminImplTest.java
@@ -20,11 +20,8 @@ package org.apache.pulsar.client.admin.internal;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Mockito.mock;
-import lombok.Cleanup;
 import lombok.SneakyThrows;
-import org.apache.pulsar.client.admin.PulsarAdmin;
 import org.apache.pulsar.client.api.Authentication;
-import org.apache.pulsar.client.api.PulsarClientException;
 import org.apache.pulsar.client.impl.auth.AuthenticationDisabled;
 import org.apache.pulsar.client.impl.conf.ClientConfigurationData;
 import org.testng.annotations.Test;
@@ -48,12 +45,6 @@ public class PulsarAdminImplTest {
         assertThat(createAdminAndGetAuth(conf)).isSameAs(auth);
     }
 
-    @Test
-    public void testClientDescription() throws PulsarClientException {
-        @Cleanup PulsarAdmin ignored =
-                
PulsarAdmin.builder().serviceHttpUrl("http://localhost:8080";).description("forked").build();
-    }
-
     @SneakyThrows
     private Authentication createAdminAndGetAuth(ClientConfigurationData conf) 
{
         try (PulsarAdminImpl admin = new 
PulsarAdminImpl("http://localhost:8080";, conf, null)) {
diff --git 
a/pulsar-client/src/test/java/org/apache/pulsar/client/impl/ClientBuilderImplTest.java
 
b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/ClientBuilderImplTest.java
index 93a5b90aec4..2194abb5a23 100644
--- 
a/pulsar-client/src/test/java/org/apache/pulsar/client/impl/ClientBuilderImplTest.java
+++ 
b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/ClientBuilderImplTest.java
@@ -19,6 +19,7 @@
 package org.apache.pulsar.client.impl;
 
 import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
 import static org.testng.Assert.fail;
 import com.google.gson.Gson;
 import com.google.gson.JsonObject;
@@ -28,6 +29,7 @@ import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
+import lombok.Cleanup;
 import lombok.SneakyThrows;
 import org.apache.pulsar.client.api.Authentication;
 import org.apache.pulsar.client.api.AuthenticationDataProvider;
@@ -221,6 +223,21 @@ public class ClientBuilderImplTest {
         assertThatAuthIsNotSet(auth);
     }
 
+    @Test
+    public void testClientDescription() throws PulsarClientException {
+        @Cleanup PulsarClient ignored =
+                
PulsarClient.builder().serviceUrl("pulsar://localhost:6650").description("forked").build();
+    }
+
+    @Test
+    public void testClientDescriptionLengthExceed64() {
+        String longDescription = "a".repeat(65);
+        assertThatThrownBy(() -> {
+            @Cleanup PulsarClient ignored =
+                    
PulsarClient.builder().serviceUrl("pulsar://localhost:6650").description(longDescription).build();
+        }).isInstanceOf(IllegalArgumentException.class);
+    }
+
     private void assertThatAuthIsNotSet(Authentication authentication) {
         // getAuthentication() returns disabled when null
         assertThat(authentication).isInstanceOf(AuthenticationDisabled.class);

Reply via email to