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

albumenj pushed a commit to branch 3.2
in repository https://gitbox.apache.org/repos/asf/dubbo.git


The following commit(s) were added to refs/heads/3.2 by this push:
     new 7a660fafd1 Test on JDK 21 (#13083)
7a660fafd1 is described below

commit 7a660fafd1ea5537d7bf3edb1f89b2de06716403
Author: Albumen Kevin <[email protected]>
AuthorDate: Wed Sep 20 20:29:24 2023 +0800

    Test on JDK 21 (#13083)
    
    * Test on JDK 21
    
    * Fix 21
---
 .github/workflows/build-and-test-pr.yml            |  12 +-
 .github/workflows/build-and-test-scheduled-3.0.yml | 251 ---------------------
 .github/workflows/build-and-test-scheduled-3.2.yml |   8 +-
 .../threadpool/MemorySafeLinkedBlockingQueue.java  |   6 +-
 .../java/org/apache/dubbo/common/utils/JRE.java    |  14 ++
 .../StringToBlockingDequeConverterTest.java        |   7 +-
 .../multiple/StringToDequeConverterTest.java       |   7 +-
 .../multiple/StringToListConverterTest.java        |   7 +-
 .../StringToNavigableSetConverterTest.java         |   7 +-
 .../multiple/StringToSortedSetConverterTest.java   |   7 +-
 .../MemorySafeLinkedBlockingQueueTest.java         |   4 +-
 11 files changed, 54 insertions(+), 276 deletions(-)

diff --git a/.github/workflows/build-and-test-pr.yml 
b/.github/workflows/build-and-test-pr.yml
index 853540e490..80415789b0 100644
--- a/.github/workflows/build-and-test-pr.yml
+++ b/.github/workflows/build-and-test-pr.yml
@@ -31,7 +31,7 @@ jobs:
         uses: actions/setup-java@v3
         with:
           distribution: 'zulu'
-          java-version: 17
+          java-version: 21
       - name: "Compile Dubbo (Linux)"
         run: |
           ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress 
--fail-fast -T 2C clean install -DskipTests=true -DskipIntegrationTests=true 
-Dcheckstyle.skip=true -Dcheckstyle_unix.skip=true -Drat.skip=true 
-Dmaven.javadoc.skip=true
@@ -164,7 +164,7 @@ jobs:
         uses: actions/setup-java@v3
         with:
           distribution: 'zulu'
-          java-version: 17
+          java-version: 21
       - uses: actions/cache@v3
         name: "Cache local Maven repository"
         with:
@@ -328,11 +328,11 @@ jobs:
         with:
           repository: 'apache/dubbo-samples'
           path: "./dubbo-samples"
-      - name: "Set up JDK 17"
+      - name: "Set up JDK 21"
         uses: actions/setup-java@v3
         with:
           distribution: 'zulu'
-          java-version: 17
+          java-version: 21
       - name: "Restore class result"
         uses: actions/download-artifact@v3
         with:
@@ -372,11 +372,11 @@ jobs:
           ref: main
           path: "./dubbo-test-tools"
 
-      - name: "Set up JDK 17"
+      - name: "Set up JDK 21"
         uses: actions/setup-java@v3
         with:
           distribution: 'zulu'
-          java-version: 17
+          java-version: 21
 
       - name: "Compile Dubbo (Linux)"
         run: |
diff --git a/.github/workflows/build-and-test-scheduled-3.0.yml 
b/.github/workflows/build-and-test-scheduled-3.0.yml
deleted file mode 100644
index 2659f79801..0000000000
--- a/.github/workflows/build-and-test-scheduled-3.0.yml
+++ /dev/null
@@ -1,251 +0,0 @@
-name: Build and Test Scheduled On 3.0
-
-on:
-  schedule:
-    - cron: '0 0/6 * * *'
-  workflow_dispatch:
-
-permissions:
-  contents: read
-
-env:
-  FORK_COUNT: 2
-  FAIL_FAST: 0
-  SHOW_ERROR_DETAIL: 1
-  #multi-version size limit
-  VERSIONS_LIMIT: 4
-  CANDIDATE_VERSIONS: '
-    spring.version:4.3.30.RELEASE;
-    spring-boot.version:1.5.22.RELEASE;
-    spring-boot.version:2.4.1;
-    '
-
-jobs:
-  build-source:
-    runs-on: ubuntu-latest
-    outputs:
-      version: ${{ steps.dubbo-version.outputs.version }}
-    steps:
-      - uses: actions/checkout@v3
-        with:
-          ref: "3.0"
-          path: dubbo
-      - uses: actions/setup-java@v3
-        with:
-          distribution: 'zulu'
-          java-version: 8
-      - uses: actions/cache@v3
-        name: "Cache local Maven repository"
-        with:
-          path: ~/.m2/repository
-          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ 
github.run_id }}
-          restore-keys: |
-            ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-            ${{ runner.os }}-maven-
-      - name: "Dubbo cache"
-        uses: actions/cache@v3
-        with:
-          path: ~/.m2/repository/org/apache/dubbo
-          key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ 
github.run_id }}
-      - name: "Build Dubbo with Maven"
-        run: |
-          cd ./dubbo
-          ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress 
--fail-fast clean source:jar install -Pjacoco,checkstyle 
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120 
-Dmaven.wagon.http.retryHandler.count=5 -Dmaven.test.skip=true 
-Dmaven.test.skip.exec=true -DembeddedZookeeperPath=${{ github.workspace 
}}/.tmp/zookeeper
-      - name: "Pack checkstyle file if failure"
-        if: failure()
-        run: 7z a ${{ github.workspace }}/checkstyle.zip *checkstyle* -r
-      - name: "Upload checkstyle file if failure"
-        if: failure()
-        uses: actions/upload-artifact@v3
-        with:
-          name: "checkstyle-file"
-          path: ${{ github.workspace }}/checkstyle.zip
-      - name: "Calculate Dubbo Version"
-        id: dubbo-version
-        run: |
-          REVISION=`awk 
'/<revision>[^<]+<\/revision>/{gsub(/<revision>|<\/revision>/,"",$1);print 
$1;exit;}' ./dubbo/pom.xml`
-          echo "version=$REVISION" >> $GITHUB_OUTPUT
-          echo "dubbo version: $REVISION"
-
-  unit-test-prepare:
-    name: " Preparation for Unit Test On ${{ matrix.os }}"
-    runs-on: ${{ matrix.os }}
-    strategy:
-      fail-fast: false
-      matrix:
-        os: [ ubuntu-latest, windows-latest ]
-    env:
-      ZOOKEEPER_VERSION: 3.6.3
-    steps:
-      - uses: actions/cache@v3
-        name: "Cache zookeeper binary archive"
-        id: "cache-zookeeper"
-        with:
-          path: ${{ github.workspace }}/.tmp/zookeeper
-          key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
-          restore-keys: |
-            zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
-      - name: "Set up msys2 if necessary"
-        if: ${{ startsWith( matrix.os, 'windows') && 
steps.cache-zookeeper.outputs.cache-hit != 'true' }}
-        uses: msys2/setup-msys2@v2
-        with:
-          release: false  # support cache, see 
https://github.com/msys2/setup-msys2#context
-      - name: "Download zookeeper binary archive in Linux OS"
-        if: ${{ startsWith( matrix.os, 'ubuntu') && 
steps.cache-zookeeper.outputs.cache-hit != 'true' }}
-        run: |
-          mkdir -p ${{ github.workspace }}/.tmp/zookeeper
-          wget -c https://archive.apache.org/dist/zookeeper/zookeeper-${{ 
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION 
}}-bin.tar.gz -O ${{ github.workspace 
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
-          wget -c https://apache.website-solution.net/zookeeper/zookeeper-${{ 
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION 
}}-bin.tar.gz -O ${{ github.workspace 
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
-          wget -c http://apache.stu.edu.tw/zookeeper/zookeeper-${{ 
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION 
}}-bin.tar.gz -O ${{ github.workspace 
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
-          wget -c http://ftp.jaist.ac.jp/pub/apache/zookeeper/zookeeper-${{ 
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION 
}}-bin.tar.gz -O ${{ github.workspace 
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
-          wget -c http://apache.mirror.cdnetworks.com/zookeeper/zookeeper-${{ 
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION 
}}-bin.tar.gz -O ${{ github.workspace 
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
-          wget -c http://mirror.apache-kr.org/apache/zookeeper/zookeeper-${{ 
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION 
}}-bin.tar.gz -O ${{ github.workspace 
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz
-          echo "list the downloaded zookeeper binary archive"
-          ls -al ${{ github.workspace 
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz
-      - name: "Download zookeeper binary archive in Windows OS"
-        if: ${{ startsWith( matrix.os, 'windows') && 
steps.cache-zookeeper.outputs.cache-hit != 'true' }}
-        shell: msys2 {0}
-        run: |
-          mkdir -p ${{ github.workspace }}/.tmp/zookeeper
-          wget -c https://archive.apache.org/dist/zookeeper/zookeeper-${{ 
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION 
}}-bin.tar.gz -O ${{ github.workspace 
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
-          wget -c https://apache.website-solution.net/zookeeper/zookeeper-${{ 
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION 
}}-bin.tar.gz -O ${{ github.workspace 
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
-          wget -c http://apache.stu.edu.tw/zookeeper/zookeeper-${{ 
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION 
}}-bin.tar.gz -O ${{ github.workspace 
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
-          wget -c http://ftp.jaist.ac.jp/pub/apache/zookeeper/zookeeper-${{ 
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION 
}}-bin.tar.gz -O ${{ github.workspace 
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
-          wget -c http://apache.mirror.cdnetworks.com/zookeeper/zookeeper-${{ 
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION 
}}-bin.tar.gz -O ${{ github.workspace 
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
-          wget -c http://mirror.apache-kr.org/apache/zookeeper/zookeeper-${{ 
env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION 
}}-bin.tar.gz -O ${{ github.workspace 
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz
-          echo "list the downloaded zookeeper binary archive"
-          ls -al ${{ github.workspace 
}}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz
-
-  unit-test:
-    needs: [build-source, unit-test-prepare]
-    name: "Unit Test On ${{ matrix.os }} (JDK: ${{ matrix.jdk }})"
-    runs-on: ${{ matrix.os }}
-    strategy:
-      fail-fast: false
-      matrix:
-        os: [ ubuntu-latest, windows-latest ]
-        jdk: [ 8, 11, 17 ]
-    env:
-      DISABLE_FILE_SYSTEM_TEST: true
-    steps:
-      - uses: actions/checkout@v3
-        with:
-          ref: "3.0"
-      - name: "Set up JDK ${{ matrix.jdk }}"
-        uses: actions/setup-java@v1
-        with:
-          java-version: ${{ matrix.jdk }}
-      - uses: actions/cache@v3
-        name: "Cache local Maven repository"
-        with:
-          path: ~/.m2/repository
-          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ 
github.run_id }}
-          restore-keys: |
-            ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-            ${{ runner.os }}-maven-
-      - name: "Test with Maven with Integration Tests"
-        timeout-minutes: 70
-        if: ${{ startsWith( matrix.os, 'ubuntu') }}
-        run: ./mvnw --batch-mode --no-snapshot-updates -e 
--no-transfer-progress --fail-fast clean test verify -Pjacoco 
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120 
-Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false 
-DskipIntegrationTests=false -Dcheckstyle.skip=false 
-Dcheckstyle_unix.skip=false -Drat.skip=false -Dmaven.javadoc.skip=true 
-DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper
-      - name: "Test with Maven without Integration Tests"
-        timeout-minutes: 90
-        if: ${{ startsWith( matrix.os, 'windows') }}
-        run: ./mvnw --batch-mode --no-snapshot-updates -e 
--no-transfer-progress --fail-fast clean test verify -Pjacoco 
-D"http.keepAlive=false" -D"maven.wagon.http.pool=false" 
-D"maven.wagon.httpconnectionManager.ttlSeconds=120" 
-D"maven.wagon.http.retryHandler.count=5" -DskipTests=false 
-DskipIntegrationTests=true -D"checkstyle.skip=false" 
-D"checkstyle_unix.skip=true" -D"rat.skip=false" -D"maven.javadoc.skip=true" 
-D"embeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper"
-      - name: "Upload coverage to Codecov"
-        uses: codecov/codecov-action@v3
-
-  integration-test-prepare:
-    runs-on: ubuntu-latest
-    env:
-      JOB_COUNT: 3
-    steps:
-      - uses: actions/checkout@v3
-        with:
-          repository: 'apache/dubbo-samples'
-          ref: master
-      - name: "Prepare test list"
-        run: |
-          bash ./test/scripts/prepare-test.sh
-      - name: "Upload test list"
-        uses: actions/upload-artifact@v3
-        with:
-          name: test-list
-          path: test/jobs
-
-  integration-test-job:
-    needs: [build-source, integration-test-prepare]
-    name: "Integration Test on ubuntu-latest (JobId: ${{matrix.job_id}})"
-    runs-on: ubuntu-latest
-    timeout-minutes: 30
-    env:
-      JAVA_VER: 8
-      TEST_CASE_FILE: jobs/testjob_${{matrix.job_id}}.txt
-    strategy:
-      fail-fast: false
-      matrix:
-        job_id: [1, 2, 3]
-    steps:
-      - uses: actions/checkout@v3
-        with:
-          repository: 'apache/dubbo-samples'
-          ref: master
-      - name: "Cache local Maven repository"
-        uses: actions/cache@v3
-        with:
-          path: ~/.m2/repository
-          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ 
github.run_id }}
-          restore-keys: |
-            ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-            ${{ runner.os }}-maven-
-      - name: "Restore Dubbo cache"
-        uses: actions/cache@v3
-        with:
-          path: ~/.m2/repository/org/apache/dubbo
-          key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ 
github.run_id }}
-          restore-keys: |
-            ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}
-            ${{ runner.os }}-dubbo-snapshot-
-      - name: "Download test list"
-        uses: actions/download-artifact@v3
-        with:
-          name: test-list
-          path: test/jobs/
-      - name: "Set up JDK 8"
-        uses: actions/setup-java@v1
-        with:
-          java-version: 8
-      - name: "Init Candidate Versions"
-        run: |
-          DUBBO_VERSION="${{needs.build-source.outputs.version}}"
-          
CANDIDATE_VERSIONS="dubbo.version:$DUBBO_VERSION;compiler.version:$DUBBO_VERSION;$CANDIDATE_VERSIONS;dubbo.compiler.version:$DUBBO_VERSION"
-          echo "CANDIDATE_VERSIONS=$CANDIDATE_VERSIONS" >> $GITHUB_ENV
-      - name: "Build test image"
-        run: |
-          cd test && bash ./build-test-image.sh
-      - name: "Run tests"
-        run: cd test && bash ./run-tests.sh
-      - name: "Upload test result"
-        if: always()
-        uses: actions/upload-artifact@v3
-        with:
-          name: test-result
-          path: test/jobs/*-result*
-
-  integration-test-result:
-    needs: [integration-test-job]
-    if: always()
-    runs-on: ubuntu-latest
-    env:
-      JAVA_VER: 8
-    steps:
-      - uses: actions/checkout@v3
-        with:
-          repository: 'apache/dubbo-samples'
-          ref: master
-      - name: "Download test result"
-        uses: actions/download-artifact@v3
-        with:
-          name: test-result
-          path: test/jobs/
-      - name: "Merge test result"
-        run: ./test/scripts/merge-test-results.sh
diff --git a/.github/workflows/build-and-test-scheduled-3.2.yml 
b/.github/workflows/build-and-test-scheduled-3.2.yml
index 26593e2dc1..8604231569 100644
--- a/.github/workflows/build-and-test-scheduled-3.2.yml
+++ b/.github/workflows/build-and-test-scheduled-3.2.yml
@@ -134,7 +134,7 @@ jobs:
       fail-fast: false
       matrix:
         os: [ ubuntu-latest, windows-latest ]
-        jdk: [ 8, 11, 17, 19 ]
+        jdk: [ 8, 11, 17, 19, 21 ]
     env:
       DISABLE_FILE_SYSTEM_TEST: true
     steps:
@@ -180,7 +180,7 @@ jobs:
       fail-fast: false
       matrix:
         os: [ ubuntu-latest, windows-latest ]
-        jdk: [ 8, 11, 17, 19 ]
+        jdk: [ 8, 11, 17, 19, 21 ]
     env:
       DISABLE_FILE_SYSTEM_TEST: true
       DUBBO_DEFAULT_SERIALIZATION: fastjson2
@@ -249,7 +249,7 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        jdk: [ 8, 11, 17, 19 ]
+        jdk: [ 8, 11, 17, 19, 21 ]
         job_id: [1, 2, 3, 4, 5]
     steps:
       - uses: actions/checkout@v3
@@ -306,7 +306,7 @@ jobs:
       JAVA_VER: ${{matrix.jdk}}
     strategy:
       matrix:
-        jdk: [ 8, 11, 17, 19 ]
+        jdk: [ 8, 11, 17, 19, 21 ]
     steps:
       - uses: actions/checkout@v3
         with:
diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/common/threadpool/MemorySafeLinkedBlockingQueue.java
 
b/dubbo-common/src/main/java/org/apache/dubbo/common/threadpool/MemorySafeLinkedBlockingQueue.java
index 8aa3e12ca3..31e24a5b34 100644
--- 
a/dubbo-common/src/main/java/org/apache/dubbo/common/threadpool/MemorySafeLinkedBlockingQueue.java
+++ 
b/dubbo-common/src/main/java/org/apache/dubbo/common/threadpool/MemorySafeLinkedBlockingQueue.java
@@ -37,7 +37,7 @@ public class MemorySafeLinkedBlockingQueue<E> extends 
LinkedBlockingQueue<E> {
 
     public static int THE_256_MB = 256 * 1024 * 1024;
 
-    private int maxFreeMemory;
+    private long maxFreeMemory;
 
     private Rejector<E> rejector;
 
@@ -45,7 +45,7 @@ public class MemorySafeLinkedBlockingQueue<E> extends 
LinkedBlockingQueue<E> {
         this(THE_256_MB);
     }
 
-    public MemorySafeLinkedBlockingQueue(final int maxFreeMemory) {
+    public MemorySafeLinkedBlockingQueue(final long maxFreeMemory) {
         super(Integer.MAX_VALUE);
         this.maxFreeMemory = maxFreeMemory;
         //default as DiscardPolicy to ensure compatibility with the old version
@@ -74,7 +74,7 @@ public class MemorySafeLinkedBlockingQueue<E> extends 
LinkedBlockingQueue<E> {
      *
      * @return the max free memory limit
      */
-    public int getMaxFreeMemory() {
+    public long getMaxFreeMemory() {
         return maxFreeMemory;
     }
 
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/utils/JRE.java 
b/dubbo-common/src/main/java/org/apache/dubbo/common/utils/JRE.java
index 8bc095d61e..f656a6942c 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/utils/JRE.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/utils/JRE.java
@@ -51,6 +51,14 @@ public enum JRE {
 
     JAVA_19,
 
+    JAVA_20,
+
+    JAVA_21,
+
+    JAVA_22,
+
+    JAVA_23,
+
     OTHER;
 
     private static final ErrorTypeAwareLogger logger = 
LoggerFactory.getErrorTypeAwareLogger(JRE.class);
@@ -113,6 +121,12 @@ public enum JRE {
                     return JAVA_18;
                 case 19:
                     return JAVA_19;
+                case 20:
+                    return JAVA_20;
+                case 21:
+                    return JAVA_21;
+                case 22:
+                    return JAVA_22;
                 default:
                     return OTHER;
             }
diff --git 
a/dubbo-common/src/test/java/org/apache/dubbo/common/convert/multiple/StringToBlockingDequeConverterTest.java
 
b/dubbo-common/src/test/java/org/apache/dubbo/common/convert/multiple/StringToBlockingDequeConverterTest.java
index e114f8b6b9..a884972cdf 100644
--- 
a/dubbo-common/src/test/java/org/apache/dubbo/common/convert/multiple/StringToBlockingDequeConverterTest.java
+++ 
b/dubbo-common/src/test/java/org/apache/dubbo/common/convert/multiple/StringToBlockingDequeConverterTest.java
@@ -17,6 +17,7 @@
 package org.apache.dubbo.common.convert.multiple;
 
 import org.apache.dubbo.common.utils.CollectionUtils;
+import org.apache.dubbo.common.utils.JRE;
 
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -115,6 +116,8 @@ class StringToBlockingDequeConverterTest {
 
     @Test
     void testGetPriority() {
-        assertEquals(Integer.MAX_VALUE - 5, converter.getPriority());
+        // Since JDK21, add SequencedCollection
+        assertEquals(Integer.MAX_VALUE - 
(JRE.currentVersion().compareTo(JRE.JAVA_21) >= 0 ? 6 : 5),
+                converter.getPriority());
     }
-}
\ No newline at end of file
+}
diff --git 
a/dubbo-common/src/test/java/org/apache/dubbo/common/convert/multiple/StringToDequeConverterTest.java
 
b/dubbo-common/src/test/java/org/apache/dubbo/common/convert/multiple/StringToDequeConverterTest.java
index f921cae0f5..dd1800358b 100644
--- 
a/dubbo-common/src/test/java/org/apache/dubbo/common/convert/multiple/StringToDequeConverterTest.java
+++ 
b/dubbo-common/src/test/java/org/apache/dubbo/common/convert/multiple/StringToDequeConverterTest.java
@@ -17,6 +17,7 @@
 package org.apache.dubbo.common.convert.multiple;
 
 import org.apache.dubbo.common.utils.CollectionUtils;
+import org.apache.dubbo.common.utils.JRE;
 
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -113,6 +114,8 @@ class StringToDequeConverterTest {
 
     @Test
     void testGetPriority() {
-        assertEquals(Integer.MAX_VALUE - 3, converter.getPriority());
+        // Since JDK21, add SequencedCollection
+        assertEquals(Integer.MAX_VALUE - 
(JRE.currentVersion().compareTo(JRE.JAVA_21) >= 0 ? 4 : 3),
+                converter.getPriority());
     }
-}
\ No newline at end of file
+}
diff --git 
a/dubbo-common/src/test/java/org/apache/dubbo/common/convert/multiple/StringToListConverterTest.java
 
b/dubbo-common/src/test/java/org/apache/dubbo/common/convert/multiple/StringToListConverterTest.java
index 5002449317..cf3c4237fa 100644
--- 
a/dubbo-common/src/test/java/org/apache/dubbo/common/convert/multiple/StringToListConverterTest.java
+++ 
b/dubbo-common/src/test/java/org/apache/dubbo/common/convert/multiple/StringToListConverterTest.java
@@ -17,6 +17,7 @@
 package org.apache.dubbo.common.convert.multiple;
 
 import org.apache.dubbo.common.utils.CollectionUtils;
+import org.apache.dubbo.common.utils.JRE;
 
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -112,6 +113,8 @@ class StringToListConverterTest {
 
     @Test
     void testGetPriority() {
-        assertEquals(Integer.MAX_VALUE - 2, converter.getPriority());
+        // Since JDK21, add SequencedCollection
+        assertEquals(Integer.MAX_VALUE - 
(JRE.currentVersion().compareTo(JRE.JAVA_21) >= 0 ? 3 : 2),
+                converter.getPriority());
     }
-}
\ No newline at end of file
+}
diff --git 
a/dubbo-common/src/test/java/org/apache/dubbo/common/convert/multiple/StringToNavigableSetConverterTest.java
 
b/dubbo-common/src/test/java/org/apache/dubbo/common/convert/multiple/StringToNavigableSetConverterTest.java
index bcea5dc4b3..95a7c59ee5 100644
--- 
a/dubbo-common/src/test/java/org/apache/dubbo/common/convert/multiple/StringToNavigableSetConverterTest.java
+++ 
b/dubbo-common/src/test/java/org/apache/dubbo/common/convert/multiple/StringToNavigableSetConverterTest.java
@@ -17,6 +17,7 @@
 package org.apache.dubbo.common.convert.multiple;
 
 import org.apache.dubbo.common.utils.CollectionUtils;
+import org.apache.dubbo.common.utils.JRE;
 
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -112,6 +113,8 @@ class StringToNavigableSetConverterTest {
 
     @Test
     void testGetPriority() {
-        assertEquals(Integer.MAX_VALUE - 4, converter.getPriority());
+        // Since JDK21, add SequencedCollection, SequencedSet
+        assertEquals(Integer.MAX_VALUE - 
(JRE.currentVersion().compareTo(JRE.JAVA_21) >= 0 ? 6 : 4),
+                converter.getPriority());
     }
-}
\ No newline at end of file
+}
diff --git 
a/dubbo-common/src/test/java/org/apache/dubbo/common/convert/multiple/StringToSortedSetConverterTest.java
 
b/dubbo-common/src/test/java/org/apache/dubbo/common/convert/multiple/StringToSortedSetConverterTest.java
index 769309ab6e..2a18ea8e42 100644
--- 
a/dubbo-common/src/test/java/org/apache/dubbo/common/convert/multiple/StringToSortedSetConverterTest.java
+++ 
b/dubbo-common/src/test/java/org/apache/dubbo/common/convert/multiple/StringToSortedSetConverterTest.java
@@ -17,6 +17,7 @@
 package org.apache.dubbo.common.convert.multiple;
 
 import org.apache.dubbo.common.utils.CollectionUtils;
+import org.apache.dubbo.common.utils.JRE;
 
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -112,6 +113,8 @@ class StringToSortedSetConverterTest {
 
     @Test
     void testGetPriority() {
-        assertEquals(Integer.MAX_VALUE - 3, converter.getPriority());
+        // Since JDK21, add SequencedCollection, SequencedSet
+        assertEquals(Integer.MAX_VALUE - 
(JRE.currentVersion().compareTo(JRE.JAVA_21) >= 0 ? 5 : 3),
+                converter.getPriority());
     }
-}
\ No newline at end of file
+}
diff --git 
a/dubbo-common/src/test/java/org/apache/dubbo/common/threadpool/MemorySafeLinkedBlockingQueueTest.java
 
b/dubbo-common/src/test/java/org/apache/dubbo/common/threadpool/MemorySafeLinkedBlockingQueueTest.java
index 41533eb494..0722a35346 100644
--- 
a/dubbo-common/src/test/java/org/apache/dubbo/common/threadpool/MemorySafeLinkedBlockingQueueTest.java
+++ 
b/dubbo-common/src/test/java/org/apache/dubbo/common/threadpool/MemorySafeLinkedBlockingQueueTest.java
@@ -39,7 +39,7 @@ class MemorySafeLinkedBlockingQueueTest {
         final Instrumentation instrumentation = 
ByteBuddyAgent.getInstrumentation();
         final long objectSize = instrumentation.getObjectSize((Runnable) () -> 
{
         });
-        int maxFreeMemory = (int) MemoryLimitCalculator.maxAvailable();
+        long maxFreeMemory = (long) MemoryLimitCalculator.maxAvailable();
         MemorySafeLinkedBlockingQueue<Runnable> queue = new 
MemorySafeLinkedBlockingQueue<>(maxFreeMemory);
         // all memory is reserved for JVM, so it will fail here
         assertThat(queue.offer(() -> {
@@ -53,7 +53,7 @@ class MemorySafeLinkedBlockingQueueTest {
 
     @Test
     void testCustomReject() {
-        MemorySafeLinkedBlockingQueue<Runnable> queue = new 
MemorySafeLinkedBlockingQueue<>(Integer.MAX_VALUE);
+        MemorySafeLinkedBlockingQueue<Runnable> queue = new 
MemorySafeLinkedBlockingQueue<>(Long.MAX_VALUE);
         queue.setRejector(new AbortPolicy<>());
         assertThrows(RejectException.class, () -> queue.offer(() -> {
         }));

Reply via email to