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 2026/10/14 03:13:46 UTC

(pulsar) branch master updated: [improve][build] Upgrade LightProto to 0.9.3 (#26893)

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

merlimat 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 31ca603536e8 [improve][build] Upgrade LightProto to 0.9.3 (#26893)
31ca603536e8 is described below

commit 31ca603536e8dda3455de7816c545922f1a62e38
Author: Matteo Merli <mm...@apache.org>
AuthorDate: Tue Oct 13 20:13:38 2026 -0700

    [improve][build] Upgrade LightProto to 0.9.3 (#26893)
---
 gradle/libs.versions.toml                                   |  2 +-
 .../org/apache/pulsar/functions/utils/FunctionCommon.java   |  2 +-
 .../pulsar/functions/utils/FunctionConfigUtilsTest.java     | 13 +++++++++++++
 3 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 773914a35b86..5fd19728518c 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -175,7 +175,7 @@ felix-http-wrappers = "1.1.10"
 oxia = "0.9.5"
 oxia-testcontainers = "0.7.4"
 # Build plugins
-lightproto = "0.8.2"
+lightproto = "0.9.3"
 graalvm-buildtools = "1.1.14"
 errorprone = "2.50.0"
 spotbugs = "4.10.3"
diff --git a/pulsar-functions/utils/src/main/java/org/apache/pulsar/functions/utils/FunctionCommon.java b/pulsar-functions/utils/src/main/java/org/apache/pulsar/functions/utils/FunctionCommon.java
index ac78665012e1..676d0aafa5c4 100644
--- a/pulsar-functions/utils/src/main/java/org/apache/pulsar/functions/utils/FunctionCommon.java
+++ b/pulsar-functions/utils/src/main/java/org/apache/pulsar/functions/utils/FunctionCommon.java
@@ -189,7 +189,7 @@ public class FunctionCommon {
 
     public static FunctionConfig.ClientApi convertClientApi(FunctionDetails.ClientApi clientApi) {
         return switch (clientApi) {
-            case AUTO -> null;
+            case AUTO, UNRECOGNIZED -> null;
             case V4 -> FunctionConfig.ClientApi.V4;
             case V5 -> FunctionConfig.ClientApi.V5;
         };
diff --git a/pulsar-functions/utils/src/test/java/org/apache/pulsar/functions/utils/FunctionConfigUtilsTest.java b/pulsar-functions/utils/src/test/java/org/apache/pulsar/functions/utils/FunctionConfigUtilsTest.java
index cb06bf683a8f..eec410c062e4 100644
--- a/pulsar-functions/utils/src/test/java/org/apache/pulsar/functions/utils/FunctionConfigUtilsTest.java
+++ b/pulsar-functions/utils/src/test/java/org/apache/pulsar/functions/utils/FunctionConfigUtilsTest.java
@@ -28,6 +28,7 @@ import static org.testng.Assert.assertFalse;
 import static org.testng.Assert.assertNull;
 import static org.testng.Assert.assertThrows;
 import static org.testng.Assert.assertTrue;
+import com.google.common.primitives.Bytes;
 import com.google.gson.Gson;
 import java.lang.reflect.Field;
 import java.util.Arrays;
@@ -925,6 +926,18 @@ public class FunctionConfigUtilsTest {
                 .hasMessageContaining("clientApi V4 cannot be used with topic 'topic://public/default/in'");
     }
 
+    @Test
+    public void testConvertFromDetailsWithUnknownClientApi() {
+        byte[] details = FunctionConfigUtils.convert(createFunctionConfig()).toByteArray();
+        // clientApi (field 24, varint) set to 9, a number that no ClientApi value has
+        byte[] unknownClientApi = {(byte) 0xC0, 0x01, 0x09};
+        FunctionDetails functionDetails = new FunctionDetails();
+        functionDetails.parseFrom(Bytes.concat(details, unknownClientApi));
+
+        assertThat(functionDetails.getClientApi()).isEqualTo(FunctionDetails.ClientApi.UNRECOGNIZED);
+        assertThat(FunctionConfigUtils.convertFromDetails(functionDetails).getClientApi()).isNull();
+    }
+
     @Test
     public void testMergeClientApi() {
         FunctionConfig functionConfig = createFunctionConfig();