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

chaokunyang pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-fury.git

commit cf1a7cda62e261905cce960d3f66e20c9b96e483
Author: chaokunyang <[email protected]>
AuthorDate: Sun Mar 31 13:13:32 2024 +0800

    feat(java): add openj9 ci (#1437)
    
    This PR add openj9 ci, since we have openj9 users, see #1433 . Class GC
    in linux distribution are not supported in this PR.
---
 .github/workflows/ci.yml                           | 25 +++++++++++++++++++++-
 .../org/apache/fury/util/unsafe/_JDKAccess.java    |  4 ++--
 .../java/org/apache/fury/util/unsafe/_Lookup.java  |  2 +-
 .../src/test/java/org/apache/fury/TestUtils.java   |  5 +++++
 4 files changed, 32 insertions(+), 4 deletions(-)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index a200dc4f..bff362f2 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -62,7 +62,30 @@ jobs:
         run: ./ci/run_ci.sh install_pyfury
       - name: Run CI with Maven
         run: ./ci/run_ci.sh java${{ matrix.java-version }}
-
+  openj9:
+    name: Openj9 Java CI
+    runs-on: ubuntu-latest
+    env:
+      MY_VAR: "PATH"
+    strategy:
+      matrix:
+        # String in openj9 1.8 share byte array by offset, fury doesn't allow 
it.
+        java-version: ["21"]
+    steps:
+      - uses: actions/checkout@v4
+      - name: Set up JDK ${{ matrix.java-version }}
+        uses: actions/setup-java@v4
+        with:
+          java-version: ${{ matrix.java-version }}
+          distribution: 'adopt-openj9'
+      - name: Install bazel
+        run: ./ci/run_ci.sh install_bazel
+      - name: Install python
+        run: ./ci/run_ci.sh install_python
+      - name: Install pyfury
+        run: ./ci/run_ci.sh install_pyfury
+      - name: Run CI with Maven
+        run: ./ci/run_ci.sh java${{ matrix.java-version }}
   graalvm:
     name: GraalVM CI
     runs-on: ubuntu-latest
diff --git 
a/java/fury-core/src/main/java/org/apache/fury/util/unsafe/_JDKAccess.java 
b/java/fury-core/src/main/java/org/apache/fury/util/unsafe/_JDKAccess.java
index e7d3b0de..dd429197 100644
--- a/java/fury-core/src/main/java/org/apache/fury/util/unsafe/_JDKAccess.java
+++ b/java/fury-core/src/main/java/org/apache/fury/util/unsafe/_JDKAccess.java
@@ -54,7 +54,7 @@ import sun.misc.Unsafe;
 public class _JDKAccess {
   // CHECKSTYLE.ON:TypeName
   public static final int JAVA_VERSION;
-  public static final boolean OPEN_J9;
+  public static final boolean IS_OPEN_J9;
   public static final Unsafe UNSAFE;
   public static final Class<?> _INNER_UNSAFE_CLASS;
   public static final Object _INNER_UNSAFE;
@@ -65,7 +65,7 @@ public class _JDKAccess {
       property = property.substring(2);
     }
     String jmvName = System.getProperty("java.vm.name", "");
-    OPEN_J9 = jmvName.contains("OpenJ9");
+    IS_OPEN_J9 = jmvName.contains("OpenJ9");
     JAVA_VERSION = Integer.parseInt(property);
     Unsafe unsafe;
     try {
diff --git 
a/java/fury-core/src/main/java/org/apache/fury/util/unsafe/_Lookup.java 
b/java/fury-core/src/main/java/org/apache/fury/util/unsafe/_Lookup.java
index 16ddedb1..7ade95e0 100644
--- a/java/fury-core/src/main/java/org/apache/fury/util/unsafe/_Lookup.java
+++ b/java/fury-core/src/main/java/org/apache/fury/util/unsafe/_Lookup.java
@@ -72,7 +72,7 @@ class _Lookup {
           }
           int fullAccessMask = 31; // for IBM Open J9 JDK
           return (Lookup)
-              constructor.invoke(objectClass, _JDKAccess.OPEN_J9 ? 
fullAccessMask : trusted);
+              constructor.invoke(objectClass, _JDKAccess.IS_OPEN_J9 ? 
fullAccessMask : trusted);
         } else {
           if (constructor == null) {
             constructor =
diff --git a/java/fury-core/src/test/java/org/apache/fury/TestUtils.java 
b/java/fury-core/src/test/java/org/apache/fury/TestUtils.java
index b45d3707..97050684 100644
--- a/java/fury-core/src/test/java/org/apache/fury/TestUtils.java
+++ b/java/fury-core/src/test/java/org/apache/fury/TestUtils.java
@@ -28,6 +28,8 @@ import java.util.ArrayList;
 import java.util.function.Supplier;
 import org.apache.fury.util.FieldAccessor;
 import org.apache.fury.util.ReflectionUtils;
+import org.apache.fury.util.unsafe._JDKAccess;
+import org.testng.SkipException;
 
 /** Test utils. */
 public class TestUtils {
@@ -47,6 +49,9 @@ public class TestUtils {
    * @param predicate whether stop Trigger OOM.
    */
   public static void triggerOOMForSoftGC(Supplier<Boolean> predicate) {
+    if (_JDKAccess.IS_OPEN_J9) {
+      throw new SkipException("OpenJ9 unsupported");
+    }
     System.gc();
     while (predicate.get()) {
       triggerOOM();


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to