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(() -> {
}));