Skip to content

Commit 7883aab

Browse files
authored
fix:JDK 25 Netty EventLoopGroup creation and ignore unsafe warning (#15764)
1 parent 7cee17d commit 7883aab

File tree

4 files changed

+44
-3
lines changed

4 files changed

+44
-3
lines changed

.github/workflows/build-and-test-pr.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,9 @@ jobs:
218218
CURRENT_ROLE: ${{ matrix.case-role }}
219219
ZOOKEEPER_VERSION: 3.7.2
220220
steps:
221+
- name: "Set MAVEN_OPTS for JDK 24+"
222+
if: ${{ matrix.java >= 24 }}
223+
run: echo "MAVEN_OPTS=--sun-misc-unsafe-memory-access=allow" >> $GITHUB_ENV
221224
- name: "Checkout code"
222225
uses: actions/checkout@v4
223226
with:

.github/workflows/build-and-test-scheduled-3.3.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,12 @@ jobs:
136136
env:
137137
DISABLE_FILE_SYSTEM_TEST: true
138138
steps:
139+
- name: "Set MAVEN_OPTS for JDK 24+ on Linux"
140+
if: ${{ matrix.jdk >= 24 && startsWith(matrix.os, 'ubuntu') }}
141+
run: echo "MAVEN_OPTS=--sun-misc-unsafe-memory-access=allow" >> $GITHUB_ENV
142+
- name: "Set MAVEN_OPTS for JDK 24+ on Windows"
143+
if: ${{ matrix.jdk >= 24 && startsWith(matrix.os, 'windows') }}
144+
run: echo "MAVEN_OPTS=--sun-misc-unsafe-memory-access=allow" >> $env:GITHUB_ENV
139145
- uses: actions/checkout@v4
140146
with:
141147
ref: "3.3"
@@ -182,6 +188,12 @@ jobs:
182188
DUBBO_DEFAULT_SERIALIZATION: fastjson2
183189
MAVEN_SUREFIRE_ADD_OPENS: true
184190
steps:
191+
- name: "Set MAVEN_OPTS for JDK 24+ on Linux"
192+
if: ${{ matrix.jdk >= 24 && startsWith(matrix.os, 'ubuntu') }}
193+
run: echo "MAVEN_OPTS=--sun-misc-unsafe-memory-access=allow" >> $GITHUB_ENV
194+
- name: "Set MAVEN_OPTS for JDK 24+ on Windows"
195+
if: ${{ matrix.jdk >= 24 && startsWith(matrix.os, 'windows') }}
196+
run: echo "MAVEN_OPTS=--sun-misc-unsafe-memory-access=allow" >> $env:GITHUB_ENV
185197
- uses: actions/checkout@v4
186198
- name: "Set up JDK ${{ matrix.jdk }}"
187199
uses: actions/setup-java@v4
@@ -252,6 +264,9 @@ jobs:
252264
jdk: [ 8, 11, 17, 21, 25 ]
253265
job_id: [1, 2, 3, 4, 5]
254266
steps:
267+
- name: "Set MAVEN_OPTS for JDK 24+"
268+
if: ${{ matrix.jdk >= 24 }}
269+
run: echo "MAVEN_OPTS=--sun-misc-unsafe-memory-access=allow" >> $GITHUB_ENV
255270
- uses: actions/checkout@v4
256271
with:
257272
repository: 'apache/dubbo-samples'
@@ -358,6 +373,9 @@ jobs:
358373
jdk: [ 8, 11, 17, 21, 25 ]
359374
job_id: [1, 2, 3, 4, 5]
360375
steps:
376+
- name: "Set MAVEN_OPTS for JDK 24+"
377+
if: ${{ matrix.jdk >= 24 }}
378+
run: echo "MAVEN_OPTS=--sun-misc-unsafe-memory-access=allow" >> $GITHUB_ENV
361379
- uses: actions/checkout@v4
362380
with:
363381
repository: 'apache/dubbo-integration-cases'

.github/workflows/release-test.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,12 @@ jobs:
133133
DISABLE_FILE_SYSTEM_TEST: true
134134
steps:
135135
- uses: actions/checkout@v4
136+
- name: "Set MAVEN_OPTS for JDK 24+ on Linux"
137+
if: ${{ matrix.jdk >= 24 && startsWith(matrix.os, 'ubuntu') }}
138+
run: echo "MAVEN_OPTS=--sun-misc-unsafe-memory-access=allow" >> $GITHUB_ENV
139+
- name: "Set MAVEN_OPTS for JDK 24+ on Windows"
140+
if: ${{ matrix.jdk >= 24 && startsWith(matrix.os, 'windows') }}
141+
run: echo "MAVEN_OPTS=--sun-misc-unsafe-memory-access=allow" >> $env:GITHUB_ENV
136142
- name: "Set up JDK ${{ matrix.jdk }}"
137143
uses: actions/setup-java@v4
138144
with:
@@ -178,6 +184,12 @@ jobs:
178184
MAVEN_SUREFIRE_ADD_OPENS: true
179185
steps:
180186
- uses: actions/checkout@v4
187+
- name: "Set MAVEN_OPTS for JDK 24+ on Linux"
188+
if: ${{ matrix.jdk >= 24 && startsWith(matrix.os, 'ubuntu') }}
189+
run: echo "MAVEN_OPTS=--sun-misc-unsafe-memory-access=allow" >> $GITHUB_ENV
190+
- name: "Set MAVEN_OPTS for JDK 24+ on Windows"
191+
if: ${{ matrix.jdk >= 24 && startsWith(matrix.os, 'windows') }}
192+
run: echo "MAVEN_OPTS=--sun-misc-unsafe-memory-access=allow" >> $env:GITHUB_ENV
181193
- name: "Set up JDK ${{ matrix.jdk }}"
182194
uses: actions/setup-java@v4
183195
with:
@@ -251,6 +263,9 @@ jobs:
251263
with:
252264
repository: 'apache/dubbo-samples'
253265
ref: master
266+
- name: "Set MAVEN_OPTS for JDK 24+"
267+
if: ${{ matrix.jdk >= 24 }}
268+
run: echo "MAVEN_OPTS=--sun-misc-unsafe-memory-access=allow" >> $GITHUB_ENV
254269
- name: "Cache local Maven repository"
255270
uses: actions/cache@v3
256271
with:
@@ -351,6 +366,9 @@ jobs:
351366
with:
352367
repository: 'apache/dubbo-integration-cases'
353368
ref: main
369+
- name: "Set MAVEN_OPTS for JDK 24+"
370+
if: ${{ matrix.jdk >= 24 }}
371+
run: echo "MAVEN_OPTS=--sun-misc-unsafe-memory-access=allow" >> $GITHUB_ENV
354372
- name: "Cache local Maven repository"
355373
uses: actions/cache@v3
356374
with:

dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyEventLoopFactory.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,11 @@ public class NettyEventLoopFactory {
4949

5050
public static EventLoopGroup eventLoopGroup(int threads, String threadFactoryName) {
5151
ThreadFactory threadFactory = new DefaultThreadFactory(threadFactoryName, true);
52-
return shouldEpoll()
53-
? new EpollEventLoopGroup(threads, threadFactory)
54-
: new NioEventLoopGroup(threads, threadFactory);
52+
if (shouldEpoll()) {
53+
return new EpollEventLoopGroup(threads, threadFactory);
54+
} else {
55+
return new NioEventLoopGroup(threads, threadFactory);
56+
}
5557
}
5658

5759
public static Class<? extends SocketChannel> socketChannelClass() {

0 commit comments

Comments
 (0)