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

diqiu50 pushed a commit to branch branch-1.2
in repository https://gitbox.apache.org/repos/asf/gravitino.git


The following commit(s) were added to refs/heads/branch-1.2 by this push:
     new 28193d1ca9 [Cherry-pick to branch-1.2] [#10373] fix(client): Support 
runing JDK8 with Gravitino client (#10376) (#10392)
28193d1ca9 is described below

commit 28193d1ca9c1b836e1eb6d0b3fcbd7321c3ebce1
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Thu Mar 12 16:37:30 2026 +0800

    [Cherry-pick to branch-1.2] [#10373] fix(client): Support runing JDK8 with 
Gravitino client (#10376) (#10392)
    
    **Cherry-pick Information:**
    - Original commit: 63d176b80014bd91dd00bfe7c1ad5c5fe9365391
    - Target branch: `branch-1.2`
    - Status: ⚠️ **Has conflicts - manual resolution required**
    
    Please review and resolve the conflicts before merging.
    
    ---------
    
    Co-authored-by: Qi Yu <[email protected]>
    Co-authored-by: Copilot <[email protected]>
---
 .../gravitino/policy/TestPolicyContents.java       | 22 +++++++++---
 build.gradle.kts                                   |  6 ++++
 .../gravitino/dto/responses/DeleteResponse.java    |  2 +-
 .../gravitino/utils/jdbc/JdbcSqlScriptUtils.java   |  2 +-
 .../apache/gravitino/utils/TestJdbcUrlUtils.java   | 36 ++++++++++++-------
 .../jobs/BuiltInJobTemplateProvider.java           |  2 +-
 .../jobs/iceberg/TestIcebergUpdateStatsJob.java    | 20 +++++------
 .../TestIcebergUpdateStatsJobWithSpark.java        | 42 ++++++++++++----------
 .../common/util/TestPartitionPathSerdeUtils.java   |  4 +--
 9 files changed, 87 insertions(+), 49 deletions(-)

diff --git 
a/api/src/test/java/org/apache/gravitino/policy/TestPolicyContents.java 
b/api/src/test/java/org/apache/gravitino/policy/TestPolicyContents.java
index 702515d14b..1112846146 100644
--- a/api/src/test/java/org/apache/gravitino/policy/TestPolicyContents.java
+++ b/api/src/test/java/org/apache/gravitino/policy/TestPolicyContents.java
@@ -20,6 +20,7 @@
 package org.apache.gravitino.policy;
 
 import com.google.common.collect.ImmutableSet;
+import java.util.HashMap;
 import java.util.Map;
 import org.apache.gravitino.MetadataObject;
 import org.junit.jupiter.api.Assertions;
@@ -51,7 +52,7 @@ public class TestPolicyContents {
     IcebergDataCompactionContent content =
         (IcebergDataCompactionContent)
             PolicyContents.icebergDataCompaction(
-                1000L, 1L, Map.of("target-file-size-bytes", "1048576", 
"min-input-files", "1"));
+                1000L, 1L, mapOf("target-file-size-bytes", "1048576", 
"min-input-files", "1"));
 
     Assertions.assertEquals("iceberg-data-compaction", 
content.properties().get("strategy.type"));
     Assertions.assertEquals(
@@ -86,7 +87,7 @@ public class TestPolicyContents {
                 3L,
                 200L,
                 88L,
-                Map.of("target-file-size-bytes", "1048576", "min-input-files", 
"1"));
+                mapOf("target-file-size-bytes", "1048576", "min-input-files", 
"1"));
 
     Assertions.assertEquals(3L, content.rules().get("dataFileMseWeight"));
     Assertions.assertEquals(200L, 
content.rules().get("deleteFileNumberWeight"));
@@ -99,7 +100,7 @@ public class TestPolicyContents {
     IcebergDataCompactionContent content =
         (IcebergDataCompactionContent)
             PolicyContents.icebergDataCompaction(
-                1000L, 1L, Map.of("job.options.target-file-size-bytes", 
"1048576"));
+                1000L, 1L, mapOf("job.options.target-file-size-bytes", 
"1048576"));
 
     IllegalArgumentException exception =
         Assertions.assertThrows(IllegalArgumentException.class, 
content::validate);
@@ -111,10 +112,23 @@ public class TestPolicyContents {
     IcebergDataCompactionContent content =
         (IcebergDataCompactionContent)
             PolicyContents.icebergDataCompaction(
-                1000L, 1L, 2L, 10L, 0L, Map.of("target-file-size-bytes", 
"1048576"));
+                1000L, 1L, 2L, 10L, 0L, mapOf("target-file-size-bytes", 
"1048576"));
 
     IllegalArgumentException exception =
         Assertions.assertThrows(IllegalArgumentException.class, 
content::validate);
     Assertions.assertTrue(exception.getMessage().contains("maxPartitionNum"));
   }
+
+  private static Map<String, String> mapOf(String key, String value) {
+    Map<String, String> map = new HashMap<>();
+    map.put(key, value);
+    return map;
+  }
+
+  private static Map<String, String> mapOf(String key1, String value1, String 
key2, String value2) {
+    Map<String, String> map = new HashMap<>();
+    map.put(key1, value1);
+    map.put(key2, value2);
+    return map;
+  }
 }
diff --git a/build.gradle.kts b/build.gradle.kts
index b1982647b4..c09bbe17c7 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -399,6 +399,12 @@ subprojects {
     }
   }
 
+  tasks.withType<JavaCompile>().configureEach {
+    if (compatibleWithJDK8(project)) {
+      options.release.set(8)
+    }
+  }
+
   java {
     toolchain {
       // Some JDK vendors like Homebrew installed OpenJDK 17 have problems in 
building trino-connector:
diff --git 
a/common/src/main/java/org/apache/gravitino/dto/responses/DeleteResponse.java 
b/common/src/main/java/org/apache/gravitino/dto/responses/DeleteResponse.java
index 77f312cc76..4aa59048d1 100644
--- 
a/common/src/main/java/org/apache/gravitino/dto/responses/DeleteResponse.java
+++ 
b/common/src/main/java/org/apache/gravitino/dto/responses/DeleteResponse.java
@@ -26,7 +26,7 @@ import lombok.ToString;
  * Represents a response for a delete operation. This class is deprecated and 
will be removed in
  * future versions, please use {@link DropResponse} instead.
  */
-@Deprecated(since = "1.0.0")
+@Deprecated
 @ToString
 @EqualsAndHashCode(callSuper = true)
 public class DeleteResponse extends BaseResponse {
diff --git 
a/common/src/main/java/org/apache/gravitino/utils/jdbc/JdbcSqlScriptUtils.java 
b/common/src/main/java/org/apache/gravitino/utils/jdbc/JdbcSqlScriptUtils.java
index decf8a5fae..a7b63d9c92 100644
--- 
a/common/src/main/java/org/apache/gravitino/utils/jdbc/JdbcSqlScriptUtils.java
+++ 
b/common/src/main/java/org/apache/gravitino/utils/jdbc/JdbcSqlScriptUtils.java
@@ -50,7 +50,7 @@ public final class JdbcSqlScriptUtils {
     return Arrays.stream(executableSql.split(";"))
         .map(String::trim)
         .filter(s -> !s.isEmpty())
-        .toList();
+        .collect(Collectors.toList());
   }
 
   /**
diff --git 
a/common/src/test/java/org/apache/gravitino/utils/TestJdbcUrlUtils.java 
b/common/src/test/java/org/apache/gravitino/utils/TestJdbcUrlUtils.java
index 24acf4314c..f13f1f6316 100644
--- a/common/src/test/java/org/apache/gravitino/utils/TestJdbcUrlUtils.java
+++ b/common/src/test/java/org/apache/gravitino/utils/TestJdbcUrlUtils.java
@@ -19,7 +19,7 @@
 
 package org.apache.gravitino.utils;
 
-import java.util.Map;
+import java.util.Collections;
 import org.apache.gravitino.exceptions.GravitinoRuntimeException;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
@@ -33,7 +33,7 @@ public class TestJdbcUrlUtils {
             GravitinoRuntimeException.class,
             () ->
                 JdbcUrlUtils.validateJdbcConfig(
-                    "testDriver", "malformed%ZZurl", Map.of("test", "test")));
+                    "testDriver", "malformed%ZZurl", 
Collections.singletonMap("test", "test")));
     Assertions.assertEquals("Unable to decode JDBC URL", gre.getMessage());
   }
 
@@ -43,7 +43,9 @@ public class TestJdbcUrlUtils {
         IllegalArgumentException.class,
         () ->
             JdbcUrlUtils.validateJdbcConfig(
-                null, "jdbc:mysql://localhost:0000/test", Map.of("test", 
"test")));
+                null,
+                "jdbc:mysql://localhost:0000/test",
+                Collections.singletonMap("test", "test")));
   }
 
   @Test
@@ -51,7 +53,9 @@ public class TestJdbcUrlUtils {
     Assertions.assertDoesNotThrow(
         () ->
             JdbcUrlUtils.validateJdbcConfig(
-                "testDriver", "jdbc:mysql://localhost:0000/test", 
Map.of("test", "test")));
+                "testDriver",
+                "jdbc:mysql://localhost:0000/test",
+                Collections.singletonMap("test", "test")));
   }
 
   @Test
@@ -64,7 +68,7 @@ public class TestJdbcUrlUtils {
                 JdbcUrlUtils.validateJdbcConfig(
                     "testDriver",
                     
"jdbc:mysql://localhost:0000/test?allowloadlocalinfile=test",
-                    Map.of("test", "test")));
+                    Collections.singletonMap("test", "test")));
     Assertions.assertEquals(
         "Unsafe MySQL parameter 'allowloadlocalinfile' detected in JDBC URL", 
gre.getMessage());
   }
@@ -78,7 +82,7 @@ public class TestJdbcUrlUtils {
                 JdbcUrlUtils.validateJdbcConfig(
                     "testDriver",
                     "jdbc:mysql://localhost:0000/test",
-                    Map.of("maxAllowedPacket", "maxAllowedPacket")));
+                    Collections.singletonMap("maxAllowedPacket", 
"maxAllowedPacket")));
     Assertions.assertEquals(
         "Unsafe MySQL parameter 'maxAllowedPacket' detected in JDBC URL", 
gre.getMessage());
   }
@@ -88,7 +92,9 @@ public class TestJdbcUrlUtils {
     Assertions.assertDoesNotThrow(
         () ->
             JdbcUrlUtils.validateJdbcConfig(
-                "testDriver", "jdbc:mariadb://localhost:0000/test", 
Map.of("test", "test")));
+                "testDriver",
+                "jdbc:mariadb://localhost:0000/test",
+                Collections.singletonMap("test", "test")));
   }
 
   @Test
@@ -100,7 +106,7 @@ public class TestJdbcUrlUtils {
                 JdbcUrlUtils.validateJdbcConfig(
                     "testDriver",
                     
"jdbc:mariaDB://localhost:0000/test?allowloadlocalinfile=test",
-                    Map.of("test", "test")));
+                    Collections.singletonMap("test", "test")));
     Assertions.assertEquals(
         "Unsafe MariaDB parameter 'allowloadlocalinfile' detected in JDBC 
URL", gre.getMessage());
   }
@@ -110,7 +116,9 @@ public class TestJdbcUrlUtils {
     Assertions.assertDoesNotThrow(
         () ->
             JdbcUrlUtils.validateJdbcConfig(
-                "testDriver", "jdbc:postgresql://localhost:0000/test", 
Map.of("test", "test")));
+                "testDriver",
+                "jdbc:postgresql://localhost:0000/test",
+                Collections.singletonMap("test", "test")));
   }
 
   @Test
@@ -122,7 +130,7 @@ public class TestJdbcUrlUtils {
                 JdbcUrlUtils.validateJdbcConfig(
                     "testDriver",
                     "jdbc:postgresql://localhost:0000/test?socketFactory=test",
-                    Map.of("test", "test")));
+                    Collections.singletonMap("test", "test")));
     Assertions.assertEquals(
         "Unsafe PostgreSQL parameter 'socketFactory' detected in JDBC URL", 
gre.getMessage());
   }
@@ -133,11 +141,15 @@ public class TestJdbcUrlUtils {
         IllegalArgumentException.class,
         () ->
             JdbcUrlUtils.validateJdbcConfig(
-                null, "jdbc:postgresql://localhost:0000/test", Map.of("test", 
"test")));
+                null,
+                "jdbc:postgresql://localhost:0000/test",
+                Collections.singletonMap("test", "test")));
 
     Assertions.assertThrowsExactly(
         IllegalArgumentException.class,
-        () -> JdbcUrlUtils.validateJdbcConfig("testDriver", null, 
Map.of("test", "test")));
+        () ->
+            JdbcUrlUtils.validateJdbcConfig(
+                "testDriver", null, Collections.singletonMap("test", "test")));
 
     Assertions.assertThrowsExactly(
         IllegalArgumentException.class, () -> 
JdbcUrlUtils.validateJdbcConfig(null, null, null));
diff --git 
a/maintenance/jobs/src/main/java/org/apache/gravitino/maintenance/jobs/BuiltInJobTemplateProvider.java
 
b/maintenance/jobs/src/main/java/org/apache/gravitino/maintenance/jobs/BuiltInJobTemplateProvider.java
index 09ca2199f7..39cc68fd32 100644
--- 
a/maintenance/jobs/src/main/java/org/apache/gravitino/maintenance/jobs/BuiltInJobTemplateProvider.java
+++ 
b/maintenance/jobs/src/main/java/org/apache/gravitino/maintenance/jobs/BuiltInJobTemplateProvider.java
@@ -64,7 +64,7 @@ public class BuiltInJobTemplateProvider implements 
JobTemplateProvider {
     Optional<String> version =
         Optional.ofNullable(template.customFields())
             .map(fields -> 
fields.get(JobTemplateProvider.PROPERTY_VERSION_KEY));
-    if (version.isEmpty() || 
!VERSION_PATTERN.matcher(version.get()).matches()) {
+    if (!version.isPresent() || 
!VERSION_PATTERN.matcher(version.get()).matches()) {
       LOG.warn("Skip built-in job template {} without valid version", 
template.name());
       return false;
     }
diff --git 
a/maintenance/jobs/src/test/java/org/apache/gravitino/maintenance/jobs/iceberg/TestIcebergUpdateStatsJob.java
 
b/maintenance/jobs/src/test/java/org/apache/gravitino/maintenance/jobs/iceberg/TestIcebergUpdateStatsJob.java
index 269c40cc2d..3f0080265e 100644
--- 
a/maintenance/jobs/src/test/java/org/apache/gravitino/maintenance/jobs/iceberg/TestIcebergUpdateStatsJob.java
+++ 
b/maintenance/jobs/src/test/java/org/apache/gravitino/maintenance/jobs/iceberg/TestIcebergUpdateStatsJob.java
@@ -23,6 +23,8 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
+import java.util.Collections;
+import java.util.HashMap;
 import java.util.Map;
 import org.apache.gravitino.job.JobTemplateProvider;
 import org.apache.gravitino.job.SparkJobTemplate;
@@ -164,11 +166,10 @@ public class TestIcebergUpdateStatsJob {
 
   @Test
   public void testBuildOptimizerProperties() {
-    Map<String, String> options =
-        Map.of(
-            "gravitino_uri", "http://localhost:8090";,
-            "metalake", "ml",
-            "gravitino.optimizer.jdbcMetrics.jdbcUrl", 
"jdbc:mysql://localhost:3306/metrics");
+    Map<String, String> options = new HashMap<>();
+    options.put("gravitino_uri", "http://localhost:8090";);
+    options.put("metalake", "ml");
+    options.put("gravitino.optimizer.jdbcMetrics.jdbcUrl", 
"jdbc:mysql://localhost:3306/metrics");
     Map<String, String> optimizerProperties =
         IcebergUpdateStatsAndMetricsJob.buildOptimizerProperties(options);
 
@@ -181,16 +182,15 @@ public class TestIcebergUpdateStatsJob {
 
   @Test
   public void testRequireGravitinoConfig() {
-    Map<String, String> optimizerProperties =
-        Map.of(
-            OptimizerConfig.GRAVITINO_URI, "http://localhost:8090";,
-            OptimizerConfig.GRAVITINO_METALAKE, "ml");
+    Map<String, String> optimizerProperties = new HashMap<>();
+    optimizerProperties.put(OptimizerConfig.GRAVITINO_URI, 
"http://localhost:8090";);
+    optimizerProperties.put(OptimizerConfig.GRAVITINO_METALAKE, "ml");
     assertEquals(
         optimizerProperties,
         
IcebergUpdateStatsAndMetricsJob.requireGravitinoConfig(optimizerProperties));
 
     assertThrows(
         IllegalArgumentException.class,
-        () -> 
IcebergUpdateStatsAndMetricsJob.requireGravitinoConfig(Map.of()));
+        () -> 
IcebergUpdateStatsAndMetricsJob.requireGravitinoConfig(Collections.emptyMap()));
   }
 }
diff --git 
a/maintenance/jobs/src/test/java/org/apache/gravitino/maintenance/jobs/iceberg/TestIcebergUpdateStatsJobWithSpark.java
 
b/maintenance/jobs/src/test/java/org/apache/gravitino/maintenance/jobs/iceberg/TestIcebergUpdateStatsJobWithSpark.java
index c5200cdc76..9a85d482d4 100644
--- 
a/maintenance/jobs/src/test/java/org/apache/gravitino/maintenance/jobs/iceberg/TestIcebergUpdateStatsJobWithSpark.java
+++ 
b/maintenance/jobs/src/test/java/org/apache/gravitino/maintenance/jobs/iceberg/TestIcebergUpdateStatsJobWithSpark.java
@@ -27,11 +27,13 @@ import java.io.File;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.nio.file.Path;
+import java.nio.file.Paths;
 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.time.Duration;
 import java.time.Instant;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -200,9 +202,9 @@ public class TestIcebergUpdateStatsJobWithSpark {
             NameIdentifier.of(SPARK_CATALOG_NAME, "db", allModeTableName);
 
         PartitionPath dsPartition1 =
-            PartitionPath.of(List.of(new PartitionEntryImpl("ds", 
"2026-03-01")));
+            PartitionPath.of(Collections.singletonList(new 
PartitionEntryImpl("ds", "2026-03-01")));
         PartitionPath dsPartition2 =
-            PartitionPath.of(List.of(new PartitionEntryImpl("ds", 
"2026-03-02")));
+            PartitionPath.of(Collections.singletonList(new 
PartitionEntryImpl("ds", "2026-03-02")));
 
         try (GenericJdbcMetricsRepository repository = new 
GenericJdbcMetricsRepository()) {
           repository.initialize(buildJdbcMetricsConfigs(mysql));
@@ -385,7 +387,8 @@ public class TestIcebergUpdateStatsJobWithSpark {
         metricsUpdater.tableMetrics.stream()
             .allMatch(metric -> metric.scope() == DataScope.Type.TABLE));
     assertTrue(
-        metricsUpdater.tableMetrics.stream().allMatch(metric -> 
metric.partitionPath().isEmpty()));
+        metricsUpdater.tableMetrics.stream()
+            .allMatch(metric -> !metric.partitionPath().isPresent()));
     assertTrue(metricsUpdater.jobMetrics.isEmpty());
   }
 
@@ -412,7 +415,8 @@ public class TestIcebergUpdateStatsJobWithSpark {
         metricsUpdater.tableMetrics.stream()
             .allMatch(metric -> metric.scope() == DataScope.Type.TABLE));
     assertTrue(
-        metricsUpdater.tableMetrics.stream().allMatch(metric -> 
metric.partitionPath().isEmpty()));
+        metricsUpdater.tableMetrics.stream()
+            .allMatch(metric -> !metric.partitionPath().isPresent()));
     assertTrue(metricsUpdater.jobMetrics.isEmpty());
   }
 
@@ -450,7 +454,7 @@ public class TestIcebergUpdateStatsJobWithSpark {
         long now = Instant.now().getEpochSecond();
 
         PartitionPath partitionPath =
-            PartitionPath.of(List.of(new PartitionEntryImpl("ds", 
"2026-01-01")));
+            PartitionPath.of(Collections.singletonList(new 
PartitionEntryImpl("ds", "2026-01-01")));
         List<MetricPoint> partitionMetrics =
             repository.getMetrics(
                 DataScope.forPartition(identifier, partitionPath), now - 300, 
now + 300);
@@ -467,7 +471,7 @@ public class TestIcebergUpdateStatsJobWithSpark {
             .resolve("scripts")
             .resolve("mysql")
             .resolve("schema-" + ConfigConstants.CURRENT_SCRIPT_VERSION + 
"-mysql.sql");
-    String schemaSql = Files.readString(schemaPath, StandardCharsets.UTF_8);
+    String schemaSql = new String(Files.readAllBytes(schemaPath), 
StandardCharsets.UTF_8);
     try (Connection connection =
         DriverManager.getConnection(mysql.getJdbcUrl(), mysql.getUsername(), 
mysql.getPassword())) {
       JdbcSqlScriptUtils.executeSqlScript(connection, schemaSql);
@@ -475,7 +479,7 @@ public class TestIcebergUpdateStatsJobWithSpark {
   }
 
   private static Path findRepoRoot() {
-    Path current = Path.of("").toAbsolutePath();
+    Path current = Paths.get("").toAbsolutePath();
     while (current != null) {
       if (Files.exists(current.resolve("gradlew"))) {
         return current;
@@ -517,11 +521,12 @@ public class TestIcebergUpdateStatsJobWithSpark {
             .collect(Collectors.toSet());
 
     assertEquals(
-        Set.of(
-            "event_ts_day=2026-01-01,region=ap-south",
-            "event_ts_day=2026-01-01,region=us-east",
-            "event_ts_day=2026-01-02,region=ap-south",
-            "event_ts_day=2026-01-02,region=us-east"),
+        new HashSet<>(
+            Arrays.asList(
+                "event_ts_day=2026-01-01,region=ap-south",
+                "event_ts_day=2026-01-01,region=us-east",
+                "event_ts_day=2026-01-02,region=ap-south",
+                "event_ts_day=2026-01-02,region=us-east")),
         parsedPartitions);
   }
 
@@ -578,7 +583,7 @@ public class TestIcebergUpdateStatsJobWithSpark {
     List<MetricPoint> metrics = getTableMetrics(repository, tableIdentifier);
     assertEquals(EXPECTED_METRIC_COUNT_PER_SCOPE, metrics.size());
     assertTrue(metrics.stream().allMatch(metric -> metric.scope() == 
DataScope.Type.TABLE));
-    assertTrue(metrics.stream().allMatch(metric -> 
metric.partitionPath().isEmpty()));
+    assertTrue(metrics.stream().allMatch(metric -> 
!metric.partitionPath().isPresent()));
     assertEquals(
         EXPECTED_METRIC_NAMES,
         
metrics.stream().map(MetricPoint::metricName).collect(Collectors.toSet()));
@@ -801,7 +806,7 @@ public class TestIcebergUpdateStatsJobWithSpark {
     try {
       return client.loadMetalake(metalakeName);
     } catch (NoSuchMetalakeException ignored) {
-      return client.createMetalake(metalakeName, "IT metalake", Map.of());
+      return client.createMetalake(metalakeName, "IT metalake", 
Collections.emptyMap());
     }
   }
 
@@ -826,8 +831,9 @@ public class TestIcebergUpdateStatsJobWithSpark {
 
   private static final class RecordingStatisticsUpdater implements 
StatisticsUpdater {
     private NameIdentifier tableIdentifier;
-    private List<StatisticEntry<?>> tableStatistics = List.of();
-    private Map<PartitionPath, List<StatisticEntry<?>>> partitionStatistics = 
Map.of();
+    private List<StatisticEntry<?>> tableStatistics = Collections.emptyList();
+    private Map<PartitionPath, List<StatisticEntry<?>>> partitionStatistics =
+        Collections.emptyMap();
 
     @Override
     public String name() {
@@ -857,8 +863,8 @@ public class TestIcebergUpdateStatsJobWithSpark {
   }
 
   private static final class RecordingMetricsUpdater implements MetricsUpdater 
{
-    private List<MetricPoint> tableMetrics = List.of();
-    private List<MetricPoint> jobMetrics = List.of();
+    private List<MetricPoint> tableMetrics = Collections.emptyList();
+    private List<MetricPoint> jobMetrics = Collections.emptyList();
 
     @Override
     public String name() {
diff --git 
a/maintenance/optimizer-api/src/test/java/org/apache/gravitino/maintenance/optimizer/common/util/TestPartitionPathSerdeUtils.java
 
b/maintenance/optimizer-api/src/test/java/org/apache/gravitino/maintenance/optimizer/common/util/TestPartitionPathSerdeUtils.java
index da7749b8c8..53b25102dc 100644
--- 
a/maintenance/optimizer-api/src/test/java/org/apache/gravitino/maintenance/optimizer/common/util/TestPartitionPathSerdeUtils.java
+++ 
b/maintenance/optimizer-api/src/test/java/org/apache/gravitino/maintenance/optimizer/common/util/TestPartitionPathSerdeUtils.java
@@ -22,7 +22,7 @@ package 
org.apache.gravitino.maintenance.optimizer.common.util;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 
-import java.util.List;
+import java.util.Arrays;
 import org.apache.gravitino.maintenance.optimizer.api.common.PartitionPath;
 import org.apache.gravitino.maintenance.optimizer.common.PartitionEntryImpl;
 import org.junit.jupiter.api.Test;
@@ -33,7 +33,7 @@ public class TestPartitionPathSerdeUtils {
   public void testEncodeAndDecodePartitionPath() {
     PartitionPath path =
         PartitionPath.of(
-            List.of(
+            Arrays.asList(
                 new PartitionEntryImpl("dt", "2026-01-01"), new 
PartitionEntryImpl("hh", "08")));
 
     String encoded = PartitionPathSerdeUtils.encode(path);

Reply via email to