You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@paimon.apache.org by ni...@apache.org on 2023/03/31 06:56:50 UTC

[incubator-paimon] branch master updated: [core] Paimon supports JDK 11 version(#714)

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

nicholasjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-paimon.git


The following commit(s) were added to refs/heads/master by this push:
     new 042572837 [core] Paimon supports JDK 11 version(#714)
042572837 is described below

commit 0425728377dd4a19fa90d4baf238e96d2a81acc0
Author: legendtkl <ta...@bytedance.com>
AuthorDate: Fri Mar 31 14:56:45 2023 +0800

    [core] Paimon supports JDK 11 version(#714)
---
 ...e2e-tests-1.14.yml => e2e-tests-1.14-jdk11.yml} | 25 +++++++++++++---------
 .github/workflows/e2e-tests-1.14.yml               | 10 ++++++---
 ...e2e-tests-1.15.yml => e2e-tests-1.15-jdk11.yml} | 25 +++++++++++++---------
 .github/workflows/e2e-tests-1.15.yml               | 10 ++++++---
 ...e2e-tests-1.16.yml => e2e-tests-1.16-jdk11.yml} | 25 +++++++++++++---------
 .github/workflows/e2e-tests-1.16.yml               | 10 ++++++---
 .github/workflows/publish_snapshot.yml             | 13 ++++++++---
 ...utitcase-flink.yml => unitcase-flink-jdk11.yml} | 25 +++++++++++++---------
 .../workflows/{utitcase.yml => unitcase-jdk11.yml} | 25 +++++++++++++---------
 .github/workflows/utitcase-flink.yml               | 10 ++++++---
 .github/workflows/utitcase.yml                     | 10 ++++++---
 README.md                                          |  2 +-
 paimon-benchmark/paimon-micro-benchmarks/pom.xml   |  8 +++++++
 paimon-common/pom.xml                              |  4 ++++
 .../paimon/io/cache/CachedRandomInputView.java     |  9 +++++---
 .../paimon/io/cache/CachedRandomInputViewTest.java | 12 ++++++-----
 paimon-core/pom.xml                                |  8 +++++++
 .../java/org/apache/paimon/io/DataFileMeta.java    |  2 +-
 paimon-filesystems/paimon-s3-impl/pom.xml          |  4 ++++
 paimon-flink/paimon-flink-1.14/pom.xml             |  4 ++++
 paimon-flink/paimon-flink-1.15/pom.xml             |  4 ++++
 paimon-flink/paimon-flink-common/pom.xml           |  8 +++++++
 paimon-format/pom.xml                              |  8 +++++++
 paimon-hive/paimon-hive-catalog/pom.xml            |  8 +++++++
 paimon-hive/paimon-hive-common/pom.xml             |  4 ++++
 paimon-hive/paimon-hive-connector-3.1/pom.xml      |  4 ++++
 paimon-hive/paimon-hive-connector-common/pom.xml   |  4 ++++
 paimon-spark/paimon-spark-2/pom.xml                | 10 +++++++++
 28 files changed, 213 insertions(+), 78 deletions(-)

diff --git a/.github/workflows/e2e-tests-1.14.yml b/.github/workflows/e2e-tests-1.14-jdk11.yml
similarity index 77%
copy from .github/workflows/e2e-tests-1.14.yml
copy to .github/workflows/e2e-tests-1.14-jdk11.yml
index 5d2953018..31cb23472 100644
--- a/.github/workflows/e2e-tests-1.14.yml
+++ b/.github/workflows/e2e-tests-1.14-jdk11.yml
@@ -16,30 +16,35 @@
 # limitations under the License.
 ################################################################################
 
-name: End to End Tests Flink 1.14
+name: End to End Tests Flink 1.14 on JDK 11
 
 on:
-  push:
-  pull_request:
-    paths-ignore:
-      - 'docs/**'
-      - '**/*.md'
+  issue_comment:
+    types: [created, edited, deleted]
+
+  # daily run
+  schedule:
+    - cron: "0 0 * * *"
+
+env:
+  JDK_VERSION: 11
 
 jobs:
   build:
+    if: contains(github.event.comment.html_url, '/pull/') && contains(github.event.comment.body, '/jdk11')
     runs-on: ubuntu-latest
 
     steps:
       - name: Checkout code
         uses: actions/checkout@v2
-      - name: Set up JDK 1.8
-        uses: actions/setup-java@v1
+      - name: Set up JDK ${{ env.JDK_VERSION }}
+        uses: actions/setup-java@v2
         with:
-          java-version: 1.8
+          java-version: ${{ env.JDK_VERSION }}
+          distribution: 'adopt'
       - name: Build Flink 1.14
         run: ./mvnw clean install -Dmaven.test.skip=true -Pflink-1.14
       - name: Test Flink 1.14
-        timeout-minutes: 60
         run: |
           # run tests with random timezone to find out timezone related bugs
           . .github/workflows/utils.sh
diff --git a/.github/workflows/e2e-tests-1.14.yml b/.github/workflows/e2e-tests-1.14.yml
index 5d2953018..9eecd9da3 100644
--- a/.github/workflows/e2e-tests-1.14.yml
+++ b/.github/workflows/e2e-tests-1.14.yml
@@ -25,6 +25,9 @@ on:
       - 'docs/**'
       - '**/*.md'
 
+env:
+  JDK_VERSION: 8
+
 jobs:
   build:
     runs-on: ubuntu-latest
@@ -32,10 +35,11 @@ jobs:
     steps:
       - name: Checkout code
         uses: actions/checkout@v2
-      - name: Set up JDK 1.8
-        uses: actions/setup-java@v1
+      - name: Set up JDK ${{ env.JDK_VERSION }}
+        uses: actions/setup-java@v2
         with:
-          java-version: 1.8
+          java-version: ${{ env.JDK_VERSION }}
+          distribution: 'adopt'
       - name: Build Flink 1.14
         run: ./mvnw clean install -Dmaven.test.skip=true -Pflink-1.14
       - name: Test Flink 1.14
diff --git a/.github/workflows/e2e-tests-1.15.yml b/.github/workflows/e2e-tests-1.15-jdk11.yml
similarity index 77%
copy from .github/workflows/e2e-tests-1.15.yml
copy to .github/workflows/e2e-tests-1.15-jdk11.yml
index ed6b5e6bb..f94d7d77c 100644
--- a/.github/workflows/e2e-tests-1.15.yml
+++ b/.github/workflows/e2e-tests-1.15-jdk11.yml
@@ -16,30 +16,35 @@
 # limitations under the License.
 ################################################################################
 
-name: End to End Tests Flink 1.15
+name: End to End Tests Flink 1.15 on JDK 11
 
 on:
-  push:
-  pull_request:
-    paths-ignore:
-      - 'docs/**'
-      - '**/*.md'
+  issue_comment:
+    types: [created, edited, deleted]
+
+  # daily run
+  schedule:
+    - cron: "0 0 * * *"
+
+env:
+  JDK_VERSION: 11
 
 jobs:
   build:
+    if: contains(github.event.comment.html_url, '/pull/') && contains(github.event.comment.body, '/jdk11')
     runs-on: ubuntu-latest
 
     steps:
       - name: Checkout code
         uses: actions/checkout@v2
-      - name: Set up JDK 1.8
-        uses: actions/setup-java@v1
+      - name: Set up JDK ${{ env.JDK_VERSION }}
+        uses: actions/setup-java@v2
         with:
-          java-version: 1.8
+          java-version: ${{ env.JDK_VERSION }}
+          distribution: 'adopt'
       - name: Build Flink 1.15
         run: ./mvnw clean install -Dmaven.test.skip=true -Pflink-1.15
       - name: Test Flink 1.15
-        timeout-minutes: 60
         run: |
           # run tests with random timezone to find out timezone related bugs
           . .github/workflows/utils.sh
diff --git a/.github/workflows/e2e-tests-1.15.yml b/.github/workflows/e2e-tests-1.15.yml
index ed6b5e6bb..371922a4d 100644
--- a/.github/workflows/e2e-tests-1.15.yml
+++ b/.github/workflows/e2e-tests-1.15.yml
@@ -25,6 +25,9 @@ on:
       - 'docs/**'
       - '**/*.md'
 
+env:
+  JDK_VERSION: 8
+
 jobs:
   build:
     runs-on: ubuntu-latest
@@ -32,10 +35,11 @@ jobs:
     steps:
       - name: Checkout code
         uses: actions/checkout@v2
-      - name: Set up JDK 1.8
-        uses: actions/setup-java@v1
+      - name: Set up JDK ${{ env.JDK_VERSION }}
+        uses: actions/setup-java@v2
         with:
-          java-version: 1.8
+          java-version: ${{ env.JDK_VERSION }}
+          distribution: 'adopt'
       - name: Build Flink 1.15
         run: ./mvnw clean install -Dmaven.test.skip=true -Pflink-1.15
       - name: Test Flink 1.15
diff --git a/.github/workflows/e2e-tests-1.16.yml b/.github/workflows/e2e-tests-1.16-jdk11.yml
similarity index 77%
copy from .github/workflows/e2e-tests-1.16.yml
copy to .github/workflows/e2e-tests-1.16-jdk11.yml
index 30b7657b1..cfc3c30eb 100644
--- a/.github/workflows/e2e-tests-1.16.yml
+++ b/.github/workflows/e2e-tests-1.16-jdk11.yml
@@ -16,30 +16,35 @@
 # limitations under the License.
 ################################################################################
 
-name: End to End Tests Flink 1.16
+name: End to End Tests Flink 1.16 on JDK 11
 
 on:
-  push:
-  pull_request:
-    paths-ignore:
-      - 'docs/**'
-      - '**/*.md'
+  issue_comment:
+    types: [created, edited, deleted]
+
+  # daily run
+  schedule:
+    - cron: "0 0 * * *"
+
+env:
+  JDK_VERSION: 11
 
 jobs:
   build:
+    if: contains(github.event.comment.html_url, '/pull/') && contains(github.event.comment.body, '/jdk11')
     runs-on: ubuntu-latest
 
     steps:
       - name: Checkout code
         uses: actions/checkout@v2
-      - name: Set up JDK 1.8
-        uses: actions/setup-java@v1
+      - name: Set up JDK ${{ env.JDK_VERSION }}
+        uses: actions/setup-java@v2
         with:
-          java-version: 1.8
+          java-version: ${{ env.JDK_VERSION }}
+          distribution: 'adopt'
       - name: Build Flink 1.16
         run: ./mvnw clean install -DskipTests
       - name: Test Flink 1.16
-        timeout-minutes: 60
         run: |
           # run tests with random timezone to find out timezone related bugs
           . .github/workflows/utils.sh
diff --git a/.github/workflows/e2e-tests-1.16.yml b/.github/workflows/e2e-tests-1.16.yml
index 30b7657b1..9a9cf4435 100644
--- a/.github/workflows/e2e-tests-1.16.yml
+++ b/.github/workflows/e2e-tests-1.16.yml
@@ -25,6 +25,9 @@ on:
       - 'docs/**'
       - '**/*.md'
 
+env:
+  JDK_VERSION: 8
+
 jobs:
   build:
     runs-on: ubuntu-latest
@@ -32,10 +35,11 @@ jobs:
     steps:
       - name: Checkout code
         uses: actions/checkout@v2
-      - name: Set up JDK 1.8
-        uses: actions/setup-java@v1
+      - name: Set up JDK ${{ env.JDK_VERSION }}
+        uses: actions/setup-java@v2
         with:
-          java-version: 1.8
+          java-version: ${{ env.JDK_VERSION }}
+          distribution: 'adopt'
       - name: Build Flink 1.16
         run: ./mvnw clean install -DskipTests
       - name: Test Flink 1.16
diff --git a/.github/workflows/publish_snapshot.yml b/.github/workflows/publish_snapshot.yml
index f3a391c63..afbf01994 100644
--- a/.github/workflows/publish_snapshot.yml
+++ b/.github/workflows/publish_snapshot.yml
@@ -23,6 +23,10 @@ on:
     # At the end of every day
     - cron: '0 0 * * *'
   workflow_dispatch:
+
+env:
+  JDK_VERSION: 8
+
 jobs:
   publish-snapshot:
     if: github.repository == 'apache/incubator-paimon'
@@ -30,10 +34,13 @@ jobs:
     steps:
       - name: Checkout code
         uses: actions/checkout@v2
-      - name: Set up JDK 1.8
-        uses: actions/setup-java@v1
+      # temporarily publish the jdk8 version to maven
+      # lately when jdk is deprecated, we need update it to jdk11
+      - name: Set up JDK ${{ env.JDK_VERSION }}
+        uses: actions/setup-java@v2
         with:
-          java-version: 1.8
+          java-version: ${{ env.JDK_VERSION }}
+          distribution: 'adopt'
       - name: Cache local Maven repository
         uses: actions/cache@v3
         with:
diff --git a/.github/workflows/utitcase-flink.yml b/.github/workflows/unitcase-flink-jdk11.yml
similarity index 77%
copy from .github/workflows/utitcase-flink.yml
copy to .github/workflows/unitcase-flink-jdk11.yml
index cd9a939c3..9ecc6bca0 100644
--- a/.github/workflows/utitcase-flink.yml
+++ b/.github/workflows/unitcase-flink-jdk11.yml
@@ -16,30 +16,35 @@
 # limitations under the License.
 ################################################################################
 
-name: UTCase and ITCase Flink
+name: UTCase and ITCase Flink on JDK 11
 
 on:
-  push:
-  pull_request:
-    paths-ignore:
-      - 'docs/**'
-      - '**/*.md'
+  issue_comment:
+    types: [created, edited, deleted]
+
+  # daily run
+  schedule:
+    - cron: "0 0 * * *"
+
+env:
+  JDK_VERSION: 11
 
 jobs:
   build:
+    if: contains(github.event.comment.html_url, '/pull/') && contains(github.event.comment.body, '/jdk11')
     runs-on: ubuntu-latest
 
     steps:
       - name: Checkout code
         uses: actions/checkout@v2
-      - name: Set up JDK 1.8
-        uses: actions/setup-java@v1
+      - name: Set up JDK ${{ env.JDK_VERSION }}
+        uses: actions/setup-java@v2
         with:
-          java-version: 1.8
+          java-version: ${{ env.JDK_VERSION }}
+          distribution: 'adopt'
       - name: Build
         run: ./mvnw clean install -DskipTests
       - name: Test
-        timeout-minutes: 60
         run: |
           # run tests with random timezone to find out timezone related bugs
           . .github/workflows/utils.sh
diff --git a/.github/workflows/utitcase.yml b/.github/workflows/unitcase-jdk11.yml
similarity index 77%
copy from .github/workflows/utitcase.yml
copy to .github/workflows/unitcase-jdk11.yml
index 381f07d8c..5bc703b3f 100644
--- a/.github/workflows/utitcase.yml
+++ b/.github/workflows/unitcase-jdk11.yml
@@ -16,30 +16,35 @@
 # limitations under the License.
 ################################################################################
 
-name: UTCase and ITCase Non Flink
+name: UTCase and ITCase Non Flink on JDK 11
 
 on:
-  push:
-  pull_request:
-    paths-ignore:
-      - 'docs/**'
-      - '**/*.md'
+  issue_comment:
+    types: [created, edited, deleted]
+
+  # daily run
+  schedule:
+    - cron: "0 0 * * *"
+
+env:
+  JDK_VERSION: 11
 
 jobs:
   build:
+    if: contains(github.event.comment.html_url, '/pull/') && contains(github.event.comment.body, '/jdk11')
     runs-on: ubuntu-latest
 
     steps:
       - name: Checkout code
         uses: actions/checkout@v2
-      - name: Set up JDK 1.8
-        uses: actions/setup-java@v1
+      - name: Set up JDK ${{ env.JDK_VERSION }}
+        uses: actions/setup-java@v2
         with:
-          java-version: 1.8
+          java-version: ${{ env.JDK_VERSION }}
+          distribution: 'adopt'
       - name: Build
         run: ./mvnw clean install -DskipTests
       - name: Test
-        timeout-minutes: 60
         run: |
           # run tests with random timezone to find out timezone related bugs
           . .github/workflows/utils.sh
diff --git a/.github/workflows/utitcase-flink.yml b/.github/workflows/utitcase-flink.yml
index cd9a939c3..db462f9a7 100644
--- a/.github/workflows/utitcase-flink.yml
+++ b/.github/workflows/utitcase-flink.yml
@@ -25,6 +25,9 @@ on:
       - 'docs/**'
       - '**/*.md'
 
+env:
+  JDK_VERSION: 8
+
 jobs:
   build:
     runs-on: ubuntu-latest
@@ -32,10 +35,11 @@ jobs:
     steps:
       - name: Checkout code
         uses: actions/checkout@v2
-      - name: Set up JDK 1.8
-        uses: actions/setup-java@v1
+      - name: Set up JDK ${{ env.JDK_VERSION }}
+        uses: actions/setup-java@v2
         with:
-          java-version: 1.8
+          java-version: ${{ env.JDK_VERSION }}
+          distribution: 'adopt'
       - name: Build
         run: ./mvnw clean install -DskipTests
       - name: Test
diff --git a/.github/workflows/utitcase.yml b/.github/workflows/utitcase.yml
index 381f07d8c..ac0d84212 100644
--- a/.github/workflows/utitcase.yml
+++ b/.github/workflows/utitcase.yml
@@ -25,6 +25,9 @@ on:
       - 'docs/**'
       - '**/*.md'
 
+env:
+  JDK_VERSION: 8
+
 jobs:
   build:
     runs-on: ubuntu-latest
@@ -32,10 +35,11 @@ jobs:
     steps:
       - name: Checkout code
         uses: actions/checkout@v2
-      - name: Set up JDK 1.8
-        uses: actions/setup-java@v1
+      - name: Set up JDK ${{ env.JDK_VERSION }}
+        uses: actions/setup-java@v2
         with:
-          java-version: 1.8
+          java-version: ${{ env.JDK_VERSION }}
+          distribution: 'adopt'
       - name: Build
         run: ./mvnw clean install -DskipTests
       - name: Test
diff --git a/README.md b/README.md
index 8aa9c138d..a0494169e 100644
--- a/README.md
+++ b/README.md
@@ -53,7 +53,7 @@ Paimon tracks issues in GitHub and prefers to receive contributions as pull requ
 <b style="color:red">Please make sure you are subscribed to the mailing list you are posting to!</b> If you are not subscribed to the mailing list, your message will either be rejected (dev@ list) or you won't receive the response (user@ list).
 
 ## Building
-JDK 8 is required for building the project.
+JDK 8/11 is required for building the project.
 
 - Run the `mvn clean package -DskipTests` command to build the project.
 - Run the `mvn spotless:apply` to format the project (both Java and Scala).
diff --git a/paimon-benchmark/paimon-micro-benchmarks/pom.xml b/paimon-benchmark/paimon-micro-benchmarks/pom.xml
index ed679defc..d072a79c4 100644
--- a/paimon-benchmark/paimon-micro-benchmarks/pom.xml
+++ b/paimon-benchmark/paimon-micro-benchmarks/pom.xml
@@ -78,6 +78,10 @@ under the License.
                     <groupId>org.slf4j</groupId>
                     <artifactId>slf4j-log4j12</artifactId>
                 </exclusion>
+                <exclusion>
+                    <groupId>jdk.tools</groupId>
+                    <artifactId>jdk.tools</artifactId>
+                </exclusion>
             </exclusions>
         </dependency>
 
@@ -94,6 +98,10 @@ under the License.
                     <groupId>log4j</groupId>
                     <artifactId>log4j</artifactId>
                 </exclusion>
+                <exclusion>
+                    <groupId>jdk.tools</groupId>
+                    <artifactId>jdk.tools</artifactId>
+                </exclusion>
             </exclusions>
         </dependency>
 
diff --git a/paimon-common/pom.xml b/paimon-common/pom.xml
index 79a8f8961..23a432ba2 100644
--- a/paimon-common/pom.xml
+++ b/paimon-common/pom.xml
@@ -79,6 +79,10 @@ under the License.
                     <groupId>org.slf4j</groupId>
                     <artifactId>slf4j-log4j12</artifactId>
                 </exclusion>
+                <exclusion>
+                    <groupId>jdk.tools</groupId>
+                    <artifactId>jdk.tools</artifactId>
+                </exclusion>
             </exclusions>
         </dependency>
 
diff --git a/paimon-common/src/main/java/org/apache/paimon/io/cache/CachedRandomInputView.java b/paimon-common/src/main/java/org/apache/paimon/io/cache/CachedRandomInputView.java
index 19f844b2a..0f35e7e3a 100644
--- a/paimon-common/src/main/java/org/apache/paimon/io/cache/CachedRandomInputView.java
+++ b/paimon-common/src/main/java/org/apache/paimon/io/cache/CachedRandomInputView.java
@@ -73,9 +73,12 @@ public class CachedRandomInputView extends AbstractPagedInputView
     }
 
     private MemorySegment getCurrentPage() {
-        return segments.computeIfAbsent(
-                currentSegmentIndex,
-                key -> cacheManager.getPage(file, currentSegmentIndex, this::invalidPage));
+        MemorySegment segment = segments.get(currentSegmentIndex);
+        if (segment == null) {
+            segment = cacheManager.getPage(file, currentSegmentIndex, this::invalidPage);
+            segments.put(currentSegmentIndex, segment);
+        }
+        return segment;
     }
 
     @Override
diff --git a/paimon-common/src/test/java/org/apache/paimon/io/cache/CachedRandomInputViewTest.java b/paimon-common/src/test/java/org/apache/paimon/io/cache/CachedRandomInputViewTest.java
index acee86e77..066be864e 100644
--- a/paimon-common/src/test/java/org/apache/paimon/io/cache/CachedRandomInputViewTest.java
+++ b/paimon-common/src/test/java/org/apache/paimon/io/cache/CachedRandomInputViewTest.java
@@ -33,6 +33,7 @@ import java.util.UUID;
 import java.util.concurrent.ThreadLocalRandom;
 
 import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatCode;
 
 /** Test for {@link CachedRandomInputView}. */
 public class CachedRandomInputViewTest {
@@ -68,26 +69,27 @@ public class CachedRandomInputViewTest {
         CachedRandomInputView view = new CachedRandomInputView(file, cacheManager);
 
         // read first one
-        view.setReadPosition(0);
+        // this assertThatCode check the ConcurrentModificationException is not threw.
+        assertThatCode(() -> view.setReadPosition(0)).doesNotThrowAnyException();
         assertThat(view.readLong()).isEqualTo(segment.getLongBigEndian(0));
 
         // read mid
         int mid = bytes.length / 2;
-        view.setReadPosition(mid);
+        assertThatCode(() -> view.setReadPosition(mid)).doesNotThrowAnyException();
         assertThat(view.readLong()).isEqualTo(segment.getLongBigEndian(mid));
 
         // read special
-        view.setReadPosition(1021);
+        assertThatCode(() -> view.setReadPosition(1021)).doesNotThrowAnyException();
         assertThat(view.readLong()).isEqualTo(segment.getLongBigEndian(1021));
 
         // read last one
-        view.setReadPosition(bytes.length - 1);
+        assertThatCode(() -> view.setReadPosition(bytes.length - 1)).doesNotThrowAnyException();
         assertThat(view.readByte()).isEqualTo(bytes[bytes.length - 1]);
 
         // random read
         for (int i = 0; i < 10000; i++) {
             int position = rnd.nextInt(bytes.length - 8);
-            view.setReadPosition(position);
+            assertThatCode(() -> view.setReadPosition(position)).doesNotThrowAnyException();
             assertThat(view.readLong()).isEqualTo(segment.getLongBigEndian(position));
         }
 
diff --git a/paimon-core/pom.xml b/paimon-core/pom.xml
index b21cb2fe3..554b4703c 100644
--- a/paimon-core/pom.xml
+++ b/paimon-core/pom.xml
@@ -93,6 +93,10 @@ under the License.
                     <groupId>org.slf4j</groupId>
                     <artifactId>slf4j-log4j12</artifactId>
                 </exclusion>
+                <exclusion>
+                    <groupId>jdk.tools</groupId>
+                    <artifactId>jdk.tools</artifactId>
+                </exclusion>
             </exclusions>
         </dependency>
 
@@ -143,6 +147,10 @@ under the License.
                     <groupId>org.slf4j</groupId>
                     <artifactId>slf4j-log4j12</artifactId>
                 </exclusion>
+                <exclusion>
+                    <groupId>jdk.tools</groupId>
+                    <artifactId>jdk.tools</artifactId>
+                </exclusion>
             </exclusions>
         </dependency>
 
diff --git a/paimon-core/src/main/java/org/apache/paimon/io/DataFileMeta.java b/paimon-core/src/main/java/org/apache/paimon/io/DataFileMeta.java
index 9b547779e..f932aacce 100644
--- a/paimon-core/src/main/java/org/apache/paimon/io/DataFileMeta.java
+++ b/paimon-core/src/main/java/org/apache/paimon/io/DataFileMeta.java
@@ -115,7 +115,7 @@ public class DataFileMeta {
                 schemaId,
                 level,
                 Collections.emptyList(),
-                Timestamp.now());
+                Timestamp.fromEpochMillis(System.currentTimeMillis()));
     }
 
     public DataFileMeta(
diff --git a/paimon-filesystems/paimon-s3-impl/pom.xml b/paimon-filesystems/paimon-s3-impl/pom.xml
index e37637f81..8202b17dd 100644
--- a/paimon-filesystems/paimon-s3-impl/pom.xml
+++ b/paimon-filesystems/paimon-s3-impl/pom.xml
@@ -53,6 +53,10 @@
                         <groupId>org.slf4j</groupId>
                         <artifactId>slf4j-reload4j</artifactId>
                     </exclusion>
+                    <exclusion>
+                        <groupId>jdk.tools</groupId>
+                        <artifactId>jdk.tools</artifactId>
+                    </exclusion>
                 </exclusions>
             </dependency>
 
diff --git a/paimon-flink/paimon-flink-1.14/pom.xml b/paimon-flink/paimon-flink-1.14/pom.xml
index c43c2a055..125ca6e71 100644
--- a/paimon-flink/paimon-flink-1.14/pom.xml
+++ b/paimon-flink/paimon-flink-1.14/pom.xml
@@ -120,6 +120,10 @@ under the License.
                     <groupId>org.slf4j</groupId>
                     <artifactId>slf4j-log4j12</artifactId>
                 </exclusion>
+                <exclusion>
+                    <groupId>jdk.tools</groupId>
+                    <artifactId>jdk.tools</artifactId>
+                </exclusion>
             </exclusions>
         </dependency>
 
diff --git a/paimon-flink/paimon-flink-1.15/pom.xml b/paimon-flink/paimon-flink-1.15/pom.xml
index 116c4b0f2..5e41c8f47 100644
--- a/paimon-flink/paimon-flink-1.15/pom.xml
+++ b/paimon-flink/paimon-flink-1.15/pom.xml
@@ -127,6 +127,10 @@ under the License.
                     <groupId>org.slf4j</groupId>
                     <artifactId>slf4j-log4j12</artifactId>
                 </exclusion>
+                <exclusion>
+                    <groupId>jdk.tools</groupId>
+                    <artifactId>jdk.tools</artifactId>
+                </exclusion>
             </exclusions>
         </dependency>
 
diff --git a/paimon-flink/paimon-flink-common/pom.xml b/paimon-flink/paimon-flink-common/pom.xml
index 19c86e977..54214be36 100644
--- a/paimon-flink/paimon-flink-common/pom.xml
+++ b/paimon-flink/paimon-flink-common/pom.xml
@@ -98,6 +98,10 @@ under the License.
                     <groupId>org.slf4j</groupId>
                     <artifactId>slf4j-log4j12</artifactId>
                 </exclusion>
+                <exclusion>
+                    <groupId>jdk.tools</groupId>
+                    <artifactId>jdk.tools</artifactId>
+                </exclusion>
             </exclusions>
         </dependency>
 
@@ -172,6 +176,10 @@ under the License.
                     <groupId>org.slf4j</groupId>
                     <artifactId>slf4j-log4j12</artifactId>
                 </exclusion>
+                <exclusion>
+                    <groupId>jdk.tools</groupId>
+                    <artifactId>jdk.tools</artifactId>
+                </exclusion>
             </exclusions>
         </dependency>
 
diff --git a/paimon-format/pom.xml b/paimon-format/pom.xml
index 1c9b75cb8..7117168e7 100644
--- a/paimon-format/pom.xml
+++ b/paimon-format/pom.xml
@@ -72,6 +72,10 @@ under the License.
                     <groupId>org.slf4j</groupId>
                     <artifactId>slf4j-log4j12</artifactId>
                 </exclusion>
+                <exclusion>
+                    <groupId>jdk.tools</groupId>
+                    <artifactId>jdk.tools</artifactId>
+                </exclusion>
             </exclusions>
         </dependency>
 
@@ -239,6 +243,10 @@ under the License.
                     <groupId>org.slf4j</groupId>
                     <artifactId>slf4j-log4j12</artifactId>
                 </exclusion>
+                <exclusion>
+                    <groupId>jdk.tools</groupId>
+                    <artifactId>jdk.tools</artifactId>
+                </exclusion>
             </exclusions>
         </dependency>
     </dependencies>
diff --git a/paimon-hive/paimon-hive-catalog/pom.xml b/paimon-hive/paimon-hive-catalog/pom.xml
index 937a86964..105d27a6a 100644
--- a/paimon-hive/paimon-hive-catalog/pom.xml
+++ b/paimon-hive/paimon-hive-catalog/pom.xml
@@ -76,6 +76,10 @@ under the License.
                     <groupId>org.apache.orc</groupId>
                     <artifactId>orc-core</artifactId>
                 </exclusion>
+                <exclusion>
+                    <groupId>jdk.tools</groupId>
+                    <artifactId>jdk.tools</artifactId>
+                </exclusion>
             </exclusions>
         </dependency>
 
@@ -97,6 +101,10 @@ under the License.
                     <groupId>org.slf4j</groupId>
                     <artifactId>slf4j-log4j12</artifactId>
                 </exclusion>
+                <exclusion>
+                    <groupId>jdk.tools</groupId>
+                    <artifactId>jdk.tools</artifactId>
+                </exclusion>
             </exclusions>
         </dependency>
 
diff --git a/paimon-hive/paimon-hive-common/pom.xml b/paimon-hive/paimon-hive-common/pom.xml
index b8d1ff638..205d7999b 100644
--- a/paimon-hive/paimon-hive-common/pom.xml
+++ b/paimon-hive/paimon-hive-common/pom.xml
@@ -71,6 +71,10 @@ under the License.
                     <groupId>org.apache.orc</groupId>
                     <artifactId>orc-core</artifactId>
                 </exclusion>
+                <exclusion>
+                    <groupId>jdk.tools</groupId>
+                    <artifactId>jdk.tools</artifactId>
+                </exclusion>
             </exclusions>
         </dependency>
     </dependencies>
diff --git a/paimon-hive/paimon-hive-connector-3.1/pom.xml b/paimon-hive/paimon-hive-connector-3.1/pom.xml
index d8d4a7967..942cc340f 100644
--- a/paimon-hive/paimon-hive-connector-3.1/pom.xml
+++ b/paimon-hive/paimon-hive-connector-3.1/pom.xml
@@ -569,6 +569,10 @@ under the License.
                     <groupId>junit</groupId>
                     <artifactId>junit</artifactId>
                 </exclusion>
+                <exclusion>
+                    <groupId>jdk.tools</groupId>
+                    <artifactId>jdk.tools</artifactId>
+                </exclusion>
             </exclusions>
             <scope>test</scope>
         </dependency>
diff --git a/paimon-hive/paimon-hive-connector-common/pom.xml b/paimon-hive/paimon-hive-connector-common/pom.xml
index 66cdc02af..5736a6000 100644
--- a/paimon-hive/paimon-hive-connector-common/pom.xml
+++ b/paimon-hive/paimon-hive-connector-common/pom.xml
@@ -64,6 +64,10 @@ under the License.
                     <groupId>org.pentaho</groupId>
                     <artifactId>*</artifactId>
                 </exclusion>
+                <exclusion>
+                    <groupId>jdk.tools</groupId>
+                    <artifactId>jdk.tools</artifactId>
+                </exclusion>
             </exclusions>
         </dependency>
 
diff --git a/paimon-spark/paimon-spark-2/pom.xml b/paimon-spark/paimon-spark-2/pom.xml
index 732567c1c..6a32aabb0 100644
--- a/paimon-spark/paimon-spark-2/pom.xml
+++ b/paimon-spark/paimon-spark-2/pom.xml
@@ -34,6 +34,7 @@ under the License.
     <properties>
         <spark2.version>2.4.8</spark2.version>
         <jackson.version>2.13.3</jackson.version>
+        <asm6.version>4.10</asm6.version>
     </properties>
 
     <dependencies>
@@ -75,6 +76,10 @@ under the License.
                     <groupId>org.slf4j</groupId>
                     <artifactId>slf4j-log4j12</artifactId>
                 </exclusion>
+                <exclusion>
+                    <groupId>org.apache.xbean</groupId>
+                    <artifactId>xbean-asm6-shaded</artifactId>
+                </exclusion>
             </exclusions>
         </dependency>
 
@@ -84,6 +89,11 @@ under the License.
             <version>${jackson.version}</version>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.apache.xbean</groupId>
+            <artifactId>xbean-asm6-shaded</artifactId>
+            <version>${asm6.version}</version>
+        </dependency>
     </dependencies>
 
     <build>