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);