From f848bf2e8bbb9866fe1f28c0d66d8827bff9c62a Mon Sep 17 00:00:00 2001 From: Dmitry Werner Date: Tue, 12 May 2026 16:29:44 +0500 Subject: [PATCH 1/3] IGNITE-28600 Fix ComputeCacheCollectionsP2PTest on JDK 17 --- .../cache/ComputeCacheCollectionsP2PTest.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/ComputeCacheCollectionsP2PTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/ComputeCacheCollectionsP2PTest.java index 4a8e6cba089f4..6ee34b86af0e6 100644 --- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/ComputeCacheCollectionsP2PTest.java +++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/ComputeCacheCollectionsP2PTest.java @@ -17,9 +17,10 @@ package org.apache.ignite.internal.processors.cache; -import java.util.Arrays; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; +import java.util.List; import org.apache.ignite.Ignite; import org.apache.ignite.Ignition; import org.apache.ignite.configuration.IgniteConfiguration; @@ -61,7 +62,13 @@ public void testHashMap() throws Exception { /** */ private void runTest(String taskName) throws Exception { try (Ignite ignore = Ignition.start(createConfiguration())) { - Collection jvmArgs = Arrays.asList("-ea", "-DIGNITE_QUIET=false"); + Collection jvmArgs = new ArrayList<>(List.of("-ea", "-DIGNITE_QUIET=false")); + + if (U.majorJavaVersion(U.jdkVersion()) >= 17) { + jvmArgs.add("--add-opens=java.base/java.nio=ALL-UNNAMED"); + jvmArgs.add("--add-opens=java.base/java.util=ALL-UNNAMED"); + } + String cp = U.getIgniteHome() + "/modules/extdata/p2p/target/classes/"; GridJavaProcess clientNode = GridJavaProcess.exec( From 7332ff0786b216fbc7761e7ae6aeb1f8c9271034 Mon Sep 17 00:00:00 2001 From: Dmitry Werner Date: Tue, 12 May 2026 20:06:57 +0500 Subject: [PATCH 2/3] fix GridJavaProcess#exec --- .../apache/ignite/internal/util/GridJavaProcess.java | 8 +++++++- .../cache/ComputeCacheCollectionsP2PTest.java | 11 ++--------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/modules/core/src/test/java/org/apache/ignite/internal/util/GridJavaProcess.java b/modules/core/src/test/java/org/apache/ignite/internal/util/GridJavaProcess.java index dd88fdb0c388b..c0e5b8bda8e5a 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/util/GridJavaProcess.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/util/GridJavaProcess.java @@ -28,6 +28,8 @@ import java.util.Collections; import java.util.List; import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; +import java.util.stream.Stream; import org.apache.ignite.IgniteLogger; import org.apache.ignite.internal.util.lang.GridAbsClosure; import org.apache.ignite.internal.util.typedef.internal.U; @@ -145,7 +147,11 @@ public static GridJavaProcess exec(String clsName, String params, @Nullable Igni String javaBin = resolveJavaBin(javaHome); procCmds.add(javaBin); - procCmds.addAll(jvmArgs == null ? U.jvmArgs() : jvmArgs); + procCmds.addAll(jvmArgs == null + ? U.jvmArgs() + : Stream.concat(U.jvmArgs().stream().filter(arg -> arg.startsWith("--add-opens")), jvmArgs.stream()) + .collect(Collectors.toList()) + ); if (jvmArgs == null || (!jvmArgs.contains("-cp") && !jvmArgs.contains("-classpath"))) { String classpath = System.getProperty("java.class.path"); diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/ComputeCacheCollectionsP2PTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/ComputeCacheCollectionsP2PTest.java index 6ee34b86af0e6..4a8e6cba089f4 100644 --- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/ComputeCacheCollectionsP2PTest.java +++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/ComputeCacheCollectionsP2PTest.java @@ -17,10 +17,9 @@ package org.apache.ignite.internal.processors.cache; -import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.Collections; -import java.util.List; import org.apache.ignite.Ignite; import org.apache.ignite.Ignition; import org.apache.ignite.configuration.IgniteConfiguration; @@ -62,13 +61,7 @@ public void testHashMap() throws Exception { /** */ private void runTest(String taskName) throws Exception { try (Ignite ignore = Ignition.start(createConfiguration())) { - Collection jvmArgs = new ArrayList<>(List.of("-ea", "-DIGNITE_QUIET=false")); - - if (U.majorJavaVersion(U.jdkVersion()) >= 17) { - jvmArgs.add("--add-opens=java.base/java.nio=ALL-UNNAMED"); - jvmArgs.add("--add-opens=java.base/java.util=ALL-UNNAMED"); - } - + Collection jvmArgs = Arrays.asList("-ea", "-DIGNITE_QUIET=false"); String cp = U.getIgniteHome() + "/modules/extdata/p2p/target/classes/"; GridJavaProcess clientNode = GridJavaProcess.exec( From 32ad22f0a05db44676322293edb3fb4daa6732ca Mon Sep 17 00:00:00 2001 From: Dmitry Werner Date: Tue, 12 May 2026 20:45:27 +0500 Subject: [PATCH 3/3] fix --- .../org/apache/ignite/internal/util/GridJavaProcess.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/modules/core/src/test/java/org/apache/ignite/internal/util/GridJavaProcess.java b/modules/core/src/test/java/org/apache/ignite/internal/util/GridJavaProcess.java index c0e5b8bda8e5a..e31c35baed93b 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/util/GridJavaProcess.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/util/GridJavaProcess.java @@ -28,10 +28,9 @@ import java.util.Collections; import java.util.List; import java.util.concurrent.TimeUnit; -import java.util.stream.Collectors; -import java.util.stream.Stream; import org.apache.ignite.IgniteLogger; import org.apache.ignite.internal.util.lang.GridAbsClosure; +import org.apache.ignite.internal.util.typedef.F; import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.lang.IgniteInClosure; import org.jetbrains.annotations.Nullable; @@ -149,8 +148,7 @@ public static GridJavaProcess exec(String clsName, String params, @Nullable Igni procCmds.add(javaBin); procCmds.addAll(jvmArgs == null ? U.jvmArgs() - : Stream.concat(U.jvmArgs().stream().filter(arg -> arg.startsWith("--add-opens")), jvmArgs.stream()) - .collect(Collectors.toList()) + : F.concat(false, F.viewReadOnly(U.jvmArgs(), s -> s, arg -> arg.startsWith("--add-opens")), jvmArgs) ); if (jvmArgs == null || (!jvmArgs.contains("-cp") && !jvmArgs.contains("-classpath"))) {