Skip to content

Commit 2b5b1d4

Browse files
committed
chore: Update JVM argument handling for unsafe memory access based on JDK version
1 parent 4bdf3df commit 2b5b1d4

File tree

1 file changed

+20
-2
lines changed

1 file changed

+20
-2
lines changed

.circleci/config.yml

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ jobs:
7070
default: docker-amd64-image
7171
arg-line:
7272
type: string
73-
default: "--add-opens=java.base/java.nio=ALL-UNNAMED --sun-misc-unsafe-memory-access=allow"
73+
default: "--add-opens=java.base/java.nio=ALL-UNNAMED"
7474
executor:
7575
name: << parameters.exe >>
7676
maven-image: << parameters.maven-image >>
@@ -91,7 +91,17 @@ jobs:
9191
- run:
9292
name: "Running tests"
9393
command: |
94-
mvn -B -U clean install -DargLine="@{argLine} << parameters.arg-line >>"
94+
# Append --sun-misc-unsafe-memory-access=allow only for JDK >= 23
95+
JAVA_VERSION_RAW=$(java -version 2>&1 | awk -F\" '/version/ {print $2}')
96+
JAVA_MAJOR=$(echo "$JAVA_VERSION_RAW" | awk -F. '{print $1}')
97+
if [ "$JAVA_MAJOR" = "1" ]; then JAVA_MAJOR=$(echo "$JAVA_VERSION_RAW" | awk -F. '{print $2}'); fi
98+
# Normalize to numeric in case of early access (e.g., 25-ea)
99+
JAVA_MAJOR_NUM=$(echo "$JAVA_MAJOR" | sed 's/[^0-9].*$//')
100+
EXTRA_ARG_LINE=""
101+
if [ -n "$JAVA_MAJOR_NUM" ] && [ "$JAVA_MAJOR_NUM" -ge 23 ]; then
102+
EXTRA_ARG_LINE=" --sun-misc-unsafe-memory-access=allow"
103+
fi
104+
mvn -B -U clean install -DargLine="@{argLine} << parameters.arg-line >>${EXTRA_ARG_LINE}"
95105
- save_cache:
96106
name: Saving Maven Cache
97107
key: *cache-key
@@ -224,6 +234,14 @@ workflows:
224234
parameters:
225235
exe: [ docker-amd64-image, docker-arm64-image ]
226236
maven-image: [ << pipeline.parameters.default-maven-image >>, "cimg/openjdk:17.0", "cimg/openjdk:21.0", "cimg/openjdk:25.0" ]
237+
arg-line: [ "--add-opens=java.base/java.nio=ALL-UNNAMED", "--add-opens=java.base/java.nio=ALL-UNNAMED --sun-misc-unsafe-memory-access=allow" ]
238+
exclude:
239+
- maven-image: << pipeline.parameters.default-maven-image >>
240+
arg-line: "--add-opens=java.base/java.nio=ALL-UNNAMED --sun-misc-unsafe-memory-access=allow"
241+
- maven-image: "cimg/openjdk:17.0"
242+
arg-line: "--add-opens=java.base/java.nio=ALL-UNNAMED --sun-misc-unsafe-memory-access=allow"
243+
- maven-image: "cimg/openjdk:21.0"
244+
arg-line: "--add-opens=java.base/java.nio=ALL-UNNAMED --sun-misc-unsafe-memory-access=allow"
227245
- deploy-snapshot:
228246
requires:
229247
- check-dependencies

0 commit comments

Comments
 (0)