From 4f41dea831ee97af4085c3de7fda6917f82f81a4 Mon Sep 17 00:00:00 2001 From: Andrew Lu Date: Wed, 21 Aug 2024 08:57:30 +0000 Subject: [PATCH 1/7] 8316973: GC: Make TestDisableDefaultGC use createTestJvm Reviewed-by: mbaesken Backport-of: 5f4be8cea980b3c2e8e5fb2067dc64b62fa0245c --- .../jtreg/gc/arguments/TestDisableDefaultGC.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/test/hotspot/jtreg/gc/arguments/TestDisableDefaultGC.java b/test/hotspot/jtreg/gc/arguments/TestDisableDefaultGC.java index ab398a29796..c69400ff221 100644 --- a/test/hotspot/jtreg/gc/arguments/TestDisableDefaultGC.java +++ b/test/hotspot/jtreg/gc/arguments/TestDisableDefaultGC.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -42,13 +42,13 @@ public class TestDisableDefaultGC { public static void main(String[] args) throws Exception { // Start VM, disabling all possible default GCs - ProcessBuilder pb = GCArguments.createJavaProcessBuilder("-XX:-UseSerialGC", - "-XX:-UseParallelGC", - "-XX:-UseG1GC", - "-XX:-UseConcMarkSweepGC", - "-XX:+UnlockExperimentalVMOptions", - "-XX:-UseZGC", - "-version"); + ProcessBuilder pb = GCArguments.createTestJvm("-XX:-UseSerialGC", + "-XX:-UseParallelGC", + "-XX:-UseG1GC", + "-XX:-UseConcMarkSweepGC", + "-XX:+UnlockExperimentalVMOptions", + "-XX:-UseZGC", + "-version"); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldMatch("Garbage collector not selected"); output.shouldHaveExitValue(1); From 04c924eb278465db93f0e88fbf46c5194dab0799 Mon Sep 17 00:00:00 2001 From: Amos Shi Date: Wed, 21 Aug 2024 23:19:47 +0000 Subject: [PATCH 2/7] 8314614: jdk/jshell/ImportTest.java failed with "InternalError: Failed remote listen" 8312140: jdk/jshell tests failed with JDI socket timeouts Backport-of: 14193a049ebcbd3639962729c631293b8d3a9114 --- .../jdk/jshell/AnalyzeSnippetTest.java | 1 + .../jdk/jshell/CustomInputToolBuilder.java | 3 +- .../jdk/jshell/ExecutionControlTestBase.java | 20 +------ .../FailOverDirectExecutionControlTest.java | 10 +--- ...ilOverExecutionControlDyingLaunchTest.java | 4 +- ...OverExecutionControlHangingLaunchTest.java | 4 +- ...OverExecutionControlHangingListenTest.java | 4 +- .../jshell/FailOverExecutionControlTest.java | 4 +- .../langtools/jdk/jshell/IdGeneratorTest.java | 3 +- test/langtools/jdk/jshell/KullaTesting.java | 7 ++- test/langtools/jdk/jshell/Presets.java | 59 +++++++++++++++++++ .../langtools/jdk/jshell/ReplToolTesting.java | 2 +- .../langtools/jdk/jshell/StartOptionTest.java | 2 +- test/langtools/jdk/jshell/ToolReloadTest.java | 2 +- test/langtools/jdk/jshell/UITesting.java | 3 +- 15 files changed, 88 insertions(+), 40 deletions(-) create mode 100644 test/langtools/jdk/jshell/Presets.java diff --git a/test/langtools/jdk/jshell/AnalyzeSnippetTest.java b/test/langtools/jdk/jshell/AnalyzeSnippetTest.java index b566a023caf..3e2e1a839e2 100644 --- a/test/langtools/jdk/jshell/AnalyzeSnippetTest.java +++ b/test/langtools/jdk/jshell/AnalyzeSnippetTest.java @@ -64,6 +64,7 @@ public void setUp() { state = JShell.builder() .out(new PrintStream(new ByteArrayOutputStream())) .err(new PrintStream(new ByteArrayOutputStream())) + .executionEngine(Presets.TEST_DEFAULT_EXECUTION) .build(); sca = state.sourceCodeAnalysis(); } diff --git a/test/langtools/jdk/jshell/CustomInputToolBuilder.java b/test/langtools/jdk/jshell/CustomInputToolBuilder.java index 3b3d5616a94..523981b3d91 100644 --- a/test/langtools/jdk/jshell/CustomInputToolBuilder.java +++ b/test/langtools/jdk/jshell/CustomInputToolBuilder.java @@ -90,7 +90,8 @@ private void doTest(boolean interactiveTerminal, String code, String... expected .interactiveTerminal(interactiveTerminal) .promptCapture(true) .persistence(new HashMap<>()) - .start("--no-startup"); + .start("--no-startup", + "--execution", Presets.TEST_DEFAULT_EXECUTION); String actual = new String(out.toByteArray()); List actualLines = Arrays.asList(actual.split("\\R")); diff --git a/test/langtools/jdk/jshell/ExecutionControlTestBase.java b/test/langtools/jdk/jshell/ExecutionControlTestBase.java index 201150797f5..9b2a4f34ebe 100644 --- a/test/langtools/jdk/jshell/ExecutionControlTestBase.java +++ b/test/langtools/jdk/jshell/ExecutionControlTestBase.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -25,28 +25,14 @@ import org.testng.annotations.Test; import jdk.jshell.VarSnippet; -import java.net.InetAddress; import static jdk.jshell.Snippet.Status.VALID; import static jdk.jshell.Snippet.SubKind.*; public class ExecutionControlTestBase extends KullaTesting { - String standardListenSpec() { - String loopback = InetAddress.getLoopbackAddress().getHostAddress(); - return "jdi:hostname(" + loopback + ")"; - } - - String standardLaunchSpec() { - return "jdi:launch(true)"; - } - - String standardJdiSpec() { - return "jdi"; - } - - String standardSpecs() { - return "5(" + standardListenSpec() + "), 6(" + standardLaunchSpec() + "), 7(" + standardJdiSpec() + ")"; + String alwaysPassingSpec() { + return "5(local)"; } @Test diff --git a/test/langtools/jdk/jshell/FailOverDirectExecutionControlTest.java b/test/langtools/jdk/jshell/FailOverDirectExecutionControlTest.java index da838798f8e..a094ed4a86f 100644 --- a/test/langtools/jdk/jshell/FailOverDirectExecutionControlTest.java +++ b/test/langtools/jdk/jshell/FailOverDirectExecutionControlTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -129,9 +129,7 @@ public void setUp() { Map pm = provider.defaultParameters(); pm.put("0", "alwaysFailing"); pm.put("1", "alwaysFailing"); - pm.put("2", standardListenSpec()); - pm.put("3", standardLaunchSpec()); - pm.put("4", standardJdiSpec()); + pm.put("2", "local"); setUp(builder -> builder.executionEngine(provider, pm)); } @@ -159,9 +157,7 @@ public void variables() { assertTrue(log.contains("This operation intentionally broken"), log); log = logged.get(Level.FINEST).get(0); assertTrue( - log.contains("Success failover -- 2 = " + standardListenSpec()) - || log.contains("Success failover -- 3 = " + standardLaunchSpec()) - || log.contains("Success failover -- 4 = " + standardJdiSpec()), + log.contains("Success failover -- 2 = local"), log); } } diff --git a/test/langtools/jdk/jshell/FailOverExecutionControlDyingLaunchTest.java b/test/langtools/jdk/jshell/FailOverExecutionControlDyingLaunchTest.java index f3218fab7c7..31011960880 100644 --- a/test/langtools/jdk/jshell/FailOverExecutionControlDyingLaunchTest.java +++ b/test/langtools/jdk/jshell/FailOverExecutionControlDyingLaunchTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -43,6 +43,6 @@ public class FailOverExecutionControlDyingLaunchTest extends ExecutionControlTes public void setUp() { setUp(builder -> builder.executionEngine( "failover:0(jdi:remoteAgent(DyingRemoteAgent),launch(true)), " - + standardSpecs())); + + alwaysPassingSpec())); } } diff --git a/test/langtools/jdk/jshell/FailOverExecutionControlHangingLaunchTest.java b/test/langtools/jdk/jshell/FailOverExecutionControlHangingLaunchTest.java index 778d004915c..9958b7a3284 100644 --- a/test/langtools/jdk/jshell/FailOverExecutionControlHangingLaunchTest.java +++ b/test/langtools/jdk/jshell/FailOverExecutionControlHangingLaunchTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -42,6 +42,6 @@ public class FailOverExecutionControlHangingLaunchTest extends ExecutionControlT public void setUp() { setUp(builder -> builder.executionEngine( "failover:0(jdi:remoteAgent(HangingRemoteAgent),launch(true)), " - + standardSpecs())); + + alwaysPassingSpec())); } } diff --git a/test/langtools/jdk/jshell/FailOverExecutionControlHangingListenTest.java b/test/langtools/jdk/jshell/FailOverExecutionControlHangingListenTest.java index f22dd821f40..4f29bfe9c7a 100644 --- a/test/langtools/jdk/jshell/FailOverExecutionControlHangingListenTest.java +++ b/test/langtools/jdk/jshell/FailOverExecutionControlHangingListenTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -45,6 +45,6 @@ public void setUp() { String loopback = InetAddress.getLoopbackAddress().getHostAddress(); setUp(builder -> builder.executionEngine( "failover:0(jdi:remoteAgent(HangingRemoteAgent),hostname(" + loopback + "))," - + standardSpecs())); + + alwaysPassingSpec())); } } diff --git a/test/langtools/jdk/jshell/FailOverExecutionControlTest.java b/test/langtools/jdk/jshell/FailOverExecutionControlTest.java index 0843351815f..80dc56d72c4 100644 --- a/test/langtools/jdk/jshell/FailOverExecutionControlTest.java +++ b/test/langtools/jdk/jshell/FailOverExecutionControlTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -41,7 +41,7 @@ public class FailOverExecutionControlTest extends ExecutionControlTestBase { @Override public void setUp() { setUp(builder -> builder.executionEngine("failover:0(expectedFailureNonExistent1), 1(expectedFailureNonExistent2), " - + standardSpecs())); + + alwaysPassingSpec())); } } diff --git a/test/langtools/jdk/jshell/IdGeneratorTest.java b/test/langtools/jdk/jshell/IdGeneratorTest.java index 23727aef643..e8a38dfe7f0 100644 --- a/test/langtools/jdk/jshell/IdGeneratorTest.java +++ b/test/langtools/jdk/jshell/IdGeneratorTest.java @@ -53,7 +53,8 @@ public JShell.Builder getBuilder() { return JShell.builder() .in(inStream) .out(new PrintStream(outStream)) - .err(new PrintStream(errStream)); + .err(new PrintStream(errStream)) + .executionEngine(Presets.TEST_DEFAULT_EXECUTION); } public void testTempNameGenerator() { diff --git a/test/langtools/jdk/jshell/KullaTesting.java b/test/langtools/jdk/jshell/KullaTesting.java index 369b2ed1f44..d74f3484f4b 100644 --- a/test/langtools/jdk/jshell/KullaTesting.java +++ b/test/langtools/jdk/jshell/KullaTesting.java @@ -100,7 +100,9 @@ public class KullaTesting { private Set allSnippets = new LinkedHashSet<>(); static { - JShell js = JShell.create(); + JShell js = JShell.builder() + .executionEngine(Presets.TEST_DEFAULT_EXECUTION) + .build(); MAIN_SNIPPET = js.eval("MAIN_SNIPPET").get(0).snippet(); js.close(); assertTrue(MAIN_SNIPPET != null, "Bad MAIN_SNIPPET set-up -- must not be null"); @@ -192,7 +194,8 @@ public int read(byte[] b, int off, int len) throws IOException { JShell.Builder builder = JShell.builder() .in(in) .out(new PrintStream(outStream)) - .err(new PrintStream(errStream)); + .err(new PrintStream(errStream)) + .executionEngine(Presets.TEST_DEFAULT_EXECUTION); bc.accept(builder); state = builder.build(); allSnippets = new LinkedHashSet<>(); diff --git a/test/langtools/jdk/jshell/Presets.java b/test/langtools/jdk/jshell/Presets.java new file mode 100644 index 00000000000..b9a93c967dc --- /dev/null +++ b/test/langtools/jdk/jshell/Presets.java @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +import java.net.InetAddress; +import java.util.*; + +public class Presets { + public static final String TEST_DEFAULT_EXECUTION; + public static final String TEST_STANDARD_EXECUTION; + + static { + String loopback = InetAddress.getLoopbackAddress().getHostAddress(); + + TEST_DEFAULT_EXECUTION = "failover:0(jdi:hostname(" + loopback + "))," + + "1(jdi:launch(true)), 2(jdi), 3(local)"; + TEST_STANDARD_EXECUTION = "failover:0(jdi:hostname(" + loopback + "))," + + "1(jdi:launch(true)), 2(jdi)"; + } + + public static String[] addExecutionIfMissing(String[] args) { + if (Arrays.stream(args).noneMatch(Presets::remoteRelatedOption)) { + List augmentedArgs = new ArrayList<>(); + + augmentedArgs.add("--execution"); + augmentedArgs.add(Presets.TEST_DEFAULT_EXECUTION); + augmentedArgs.addAll(List.of(args)); + + return augmentedArgs.toArray(s -> new String[s]); + } + + return args; + } + + private static boolean remoteRelatedOption(String option) { + return "--execution".equals(option) || + "--add-modules".equals(option) || + option.startsWith("-R"); + } +} diff --git a/test/langtools/jdk/jshell/ReplToolTesting.java b/test/langtools/jdk/jshell/ReplToolTesting.java index 5ef4dc2990c..85b7beff97c 100644 --- a/test/langtools/jdk/jshell/ReplToolTesting.java +++ b/test/langtools/jdk/jshell/ReplToolTesting.java @@ -292,7 +292,7 @@ protected JavaShellToolBuilder builder(Locale locale) { private void testRaw(Locale locale, String[] args, ReplTest... tests) { testRawInit(tests); - testRawRun(locale, args); + testRawRun(locale, Presets.addExecutionIfMissing(args)); testRawCheck(locale); } diff --git a/test/langtools/jdk/jshell/StartOptionTest.java b/test/langtools/jdk/jshell/StartOptionTest.java index df445d49750..aa8d9be03a9 100644 --- a/test/langtools/jdk/jshell/StartOptionTest.java +++ b/test/langtools/jdk/jshell/StartOptionTest.java @@ -81,7 +81,7 @@ private JavaShellToolBuilder builder() { protected int runShell(String... args) { try { return builder() - .start(args); + .start(Presets.addExecutionIfMissing(args)); } catch (Exception ex) { fail("Repl tool died with exception", ex); } diff --git a/test/langtools/jdk/jshell/ToolReloadTest.java b/test/langtools/jdk/jshell/ToolReloadTest.java index 13d583e51f5..4709584cd12 100644 --- a/test/langtools/jdk/jshell/ToolReloadTest.java +++ b/test/langtools/jdk/jshell/ToolReloadTest.java @@ -201,7 +201,7 @@ public void testReloadCrashRestore() { } public void testEnvBadModule() { - test( + test(new String[] {"--execution", Presets.TEST_STANDARD_EXECUTION}, (a) -> assertVariable(a, "int", "x", "5", "5"), (a) -> assertMethod(a, "int m(int z) { return z * z; }", "(int)int", "m"), diff --git a/test/langtools/jdk/jshell/UITesting.java b/test/langtools/jdk/jshell/UITesting.java index 848c0d52797..477e540e716 100644 --- a/test/langtools/jdk/jshell/UITesting.java +++ b/test/langtools/jdk/jshell/UITesting.java @@ -93,7 +93,8 @@ protected void doRunTest(Test test) throws Exception { .promptCapture(true) .persistence(new HashMap<>()) .locale(Locale.US) - .run("--no-startup"); + .run("--no-startup", + "--execution", Presets.TEST_DEFAULT_EXECUTION); } catch (Exception ex) { throw new IllegalStateException(ex); } From 431be94c2ddd2f457f10266af3a7398cee3da53e Mon Sep 17 00:00:00 2001 From: Amos Shi Date: Mon, 26 Aug 2024 16:14:45 +0000 Subject: [PATCH 3/7] 8206440: Remove javac -source/-target 6 from jdk regression tests Backport-of: d2de786263e01b2036609621268853b14a1f46c3 --- test/jdk/java/lang/reflect/OldenCompilingWithDefaults.java | 1 - 1 file changed, 1 deletion(-) diff --git a/test/jdk/java/lang/reflect/OldenCompilingWithDefaults.java b/test/jdk/java/lang/reflect/OldenCompilingWithDefaults.java index 0d82520b517..0de38e6e31f 100644 --- a/test/jdk/java/lang/reflect/OldenCompilingWithDefaults.java +++ b/test/jdk/java/lang/reflect/OldenCompilingWithDefaults.java @@ -25,7 +25,6 @@ * @test * @bug 8009267 * @summary Verify uses of isAnnotationPresent compile under older source versions - * @compile -source 1.6 -target 1.6 OldenCompilingWithDefaults.java * @compile -source 1.7 -target 1.7 OldenCompilingWithDefaults.java * @compile OldenCompilingWithDefaults.java */ From 4ef5e2ad2e93bb61d0886480f499a688573f685b Mon Sep 17 00:00:00 2001 From: Amos Shi Date: Mon, 26 Aug 2024 16:16:32 +0000 Subject: [PATCH 4/7] 8224081: SOCKS v4 tests require IPv4 Backport-of: acad8d1d68c8c0ad5fc93b0d1c01197428a25bfe --- test/jdk/java/net/Socks/SocksProxyVersion.java | 16 ++++++++++------ .../security/x509/URICertStore/SocksProxy.java | 8 +++++--- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/test/jdk/java/net/Socks/SocksProxyVersion.java b/test/jdk/java/net/Socks/SocksProxyVersion.java index 2e7a6d57bbe..67e36b11f9b 100644 --- a/test/jdk/java/net/Socks/SocksProxyVersion.java +++ b/test/jdk/java/net/Socks/SocksProxyVersion.java @@ -24,6 +24,7 @@ /* * @test * @bug 6964547 5001942 8129444 + * @library /test/lib * @run main/othervm SocksProxyVersion * @summary test socksProxyVersion system property */ @@ -35,6 +36,7 @@ import java.io.IOException; import java.net.InetAddress; import java.net.Proxy; +import jdk.test.lib.net.IPSupport; public class SocksProxyVersion implements Runnable { final ServerSocket ss; @@ -80,14 +82,16 @@ final void runTest(int port) throws Exception { Proxy proxy = new Proxy(Proxy.Type.SOCKS, new InetSocketAddress(addr, port)); - // SOCKS V4 - System.setProperty("socksProxyVersion", Integer.toString(4)); - this.expected = 4; - check(new Socket(), addr, port); - check(new Socket(proxy), addr, port); + if (IPSupport.hasIPv4()) { + // SOCKS V4 (requires IPv4) + System.setProperty("socksProxyVersion", "4"); + this.expected = 4; + check(new Socket(), addr, port); + check(new Socket(proxy), addr, port); + } // SOCKS V5 - System.setProperty("socksProxyVersion", Integer.toString(5)); + System.setProperty("socksProxyVersion", "5"); this.expected = 5; check(new Socket(), addr, port); check(new Socket(proxy), addr, port); diff --git a/test/jdk/sun/security/x509/URICertStore/SocksProxy.java b/test/jdk/sun/security/x509/URICertStore/SocksProxy.java index a44cf603124..67a372b97b3 100644 --- a/test/jdk/sun/security/x509/URICertStore/SocksProxy.java +++ b/test/jdk/sun/security/x509/URICertStore/SocksProxy.java @@ -22,6 +22,7 @@ */ import java.io.IOException; +import java.net.InetAddress; import java.net.ServerSocket; import java.net.Socket; import java.util.Objects; @@ -30,7 +31,7 @@ import javax.net.ServerSocketFactory; /* - * A simple socks4 proxy for traveling socket. + * A simple socks proxy for traveling socket. */ class SocksProxy implements Runnable, AutoCloseable { @@ -49,10 +50,11 @@ static SocksProxy startProxy(Consumer socketConsumer) ServerSocket server = ServerSocketFactory.getDefault().createServerSocket(0); - System.setProperty("socksProxyHost", "127.0.0.1"); + System.setProperty("socksProxyHost", + InetAddress.getLoopbackAddress().getHostAddress()); System.setProperty("socksProxyPort", String.valueOf(server.getLocalPort())); - System.setProperty("socksProxyVersion", "4"); + System.setProperty("socksProxyVersion", "5"); SocksProxy proxy = new SocksProxy(server, socketConsumer); Thread proxyThread = new Thread(proxy, "Proxy"); From 5884d69d2cee73cf9d04a29594ef89b2e8ae6e67 Mon Sep 17 00:00:00 2001 From: Amos Shi Date: Mon, 26 Aug 2024 16:16:55 +0000 Subject: [PATCH 5/7] 8210338: Better output for GenerationTests.java Backport-of: a5f7028279d61313b2293bbac3eaba0c880a7430 --- .../xml/crypto/dsig/GenerationTests.java | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/test/jdk/javax/xml/crypto/dsig/GenerationTests.java b/test/jdk/javax/xml/crypto/dsig/GenerationTests.java index 862e9416793..971264b6d57 100644 --- a/test/jdk/javax/xml/crypto/dsig/GenerationTests.java +++ b/test/jdk/javax/xml/crypto/dsig/GenerationTests.java @@ -352,7 +352,7 @@ public static void main(String args[]) throws Exception { try (Http server = Http.startServer()) { server.start(); - // tests for XML documents + System.out.println("\ntests for XML documents"); Arrays.stream(canonicalizationMethods).forEach(c -> Arrays.stream(allSignatureMethods).forEach(s -> Arrays.stream(allDigestMethods).forEach(d -> @@ -366,7 +366,7 @@ public static void main(String args[]) throws Exception { } }))))); - // tests for text data with no transform + System.out.println("\ntests for text data with no transform"); Arrays.stream(canonicalizationMethods).forEach(c -> Arrays.stream(allSignatureMethods).forEach(s -> Arrays.stream(allDigestMethods).forEach(d -> @@ -379,7 +379,7 @@ public static void main(String args[]) throws Exception { } })))); - // tests for base64 data + System.out.println("\ntests for base64 data"); Arrays.stream(canonicalizationMethods).forEach(c -> Arrays.stream(allSignatureMethods).forEach(s -> Arrays.stream(allDigestMethods).forEach(d -> @@ -396,7 +396,7 @@ public static void main(String args[]) throws Exception { // negative tests - // unknown CanonicalizationMethod + System.out.println("\nunknown CanonicalizationMethod"); test_create_detached_signature( CanonicalizationMethod.EXCLUSIVE + BOGUS, SignatureMethod.DSA_SHA1, @@ -408,7 +408,7 @@ public static void main(String args[]) throws Exception { true, NoSuchAlgorithmException.class); - // unknown SignatureMethod + System.out.println("\nunknown SignatureMethod"); test_create_detached_signature( CanonicalizationMethod.EXCLUSIVE, SignatureMethod.DSA_SHA1 + BOGUS, @@ -419,7 +419,7 @@ public static void main(String args[]) throws Exception { true, NoSuchAlgorithmException.class); - // unknown DigestMethod + System.out.println("\nunknown DigestMethod"); test_create_detached_signature( CanonicalizationMethod.EXCLUSIVE, SignatureMethod.DSA_SHA1, @@ -430,7 +430,7 @@ public static void main(String args[]) throws Exception { true, NoSuchAlgorithmException.class); - // unknown Transform + System.out.println("\nunknown Transform"); test_create_detached_signature( CanonicalizationMethod.EXCLUSIVE, SignatureMethod.DSA_SHA1, @@ -441,7 +441,7 @@ public static void main(String args[]) throws Exception { true, NoSuchAlgorithmException.class); - // no source document + System.out.println("\nno source document"); test_create_detached_signature( CanonicalizationMethod.EXCLUSIVE, SignatureMethod.DSA_SHA1, @@ -453,7 +453,7 @@ public static void main(String args[]) throws Exception { true, XMLSignatureException.class); - // wrong transform for text data + System.out.println("\nwrong transform for text data"); test_create_detached_signature( CanonicalizationMethod.EXCLUSIVE, SignatureMethod.DSA_SHA1, @@ -1823,6 +1823,7 @@ static boolean test_create_detached_signature0(String canonicalizationMethod, throws Exception { System.out.print("-S"); + System.out.flush(); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setNamespaceAware(true); @@ -1907,6 +1908,7 @@ static boolean test_create_detached_signature0(String canonicalizationMethod, } System.out.print("V"); + System.out.flush(); try (ByteArrayInputStream bis = new ByteArrayInputStream( signatureString.getBytes())) { doc = dbf.newDocumentBuilder().parse(bis); @@ -1930,12 +1932,14 @@ static boolean test_create_detached_signature0(String canonicalizationMethod, boolean success = signature.validate(vc); if (!success) { System.out.print("x"); + System.out.flush(); return false; } success = signature.getSignatureValue().validate(vc); if (!success) { System.out.print("X"); + System.out.flush(); return false; } From 531278f2b91ea703782dd0447618a6e0520e9ca4 Mon Sep 17 00:00:00 2001 From: Amos Shi Date: Mon, 26 Aug 2024 18:48:10 +0000 Subject: [PATCH 6/7] 8325022: Incorrect error message on client authentication Backport-of: fe78c0f1911c9fdc1d30e23847d102748dfa2063 --- .../share/classes/sun/security/ssl/CertificateMessage.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/java.base/share/classes/sun/security/ssl/CertificateMessage.java b/src/java.base/share/classes/sun/security/ssl/CertificateMessage.java index d7fce6b1d5b..4d19043ac69 100644 --- a/src/java.base/share/classes/sun/security/ssl/CertificateMessage.java +++ b/src/java.base/share/classes/sun/security/ssl/CertificateMessage.java @@ -388,7 +388,7 @@ private void onCertificate(ServerHandshakeContext shc, ClientAuthType.CLIENT_AUTH_REQUESTED) { // unexpected or require client authentication throw shc.conContext.fatal(Alert.BAD_CERTIFICATE, - "Empty server certificate chain"); + "Empty client certificate chain"); } else { return; } @@ -405,7 +405,7 @@ private void onCertificate(ServerHandshakeContext shc, } } catch (CertificateException ce) { throw shc.conContext.fatal(Alert.BAD_CERTIFICATE, - "Failed to parse server certificates", ce); + "Failed to parse client certificates", ce); } checkClientCerts(shc, x509Certs); @@ -1253,7 +1253,7 @@ private static X509Certificate[] checkClientCerts( } } catch (CertificateException ce) { throw shc.conContext.fatal(Alert.BAD_CERTIFICATE, - "Failed to parse server certificates", ce); + "Failed to parse client certificates", ce); } // find out the types of client authentication used From 1156827bcc51b04fab058215e44eaf131d94c3c0 Mon Sep 17 00:00:00 2001 From: Sergey Bylokhov Date: Mon, 26 Aug 2024 23:56:50 +0000 Subject: [PATCH 7/7] 8273135: java/awt/color/ICC_ColorSpace/MTTransformReplacedProfile.java crashes in liblcms.dylib with NULLSeek+0x7 Reviewed-by: phh Backport-of: 1017a2c2d7ae99e0076abcfaf5e730fec3cb9c6c --- src/java.desktop/share/native/liblcms/cmsio0.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/java.desktop/share/native/liblcms/cmsio0.c b/src/java.desktop/share/native/liblcms/cmsio0.c index 1b32f9f4159..05baa9392e2 100644 --- a/src/java.desktop/share/native/liblcms/cmsio0.c +++ b/src/java.desktop/share/native/liblcms/cmsio0.c @@ -1660,7 +1660,7 @@ cmsBool IsTypeSupported(cmsTagDescriptor* TagDescriptor, cmsTagTypeSignature Typ void* CMSEXPORT cmsReadTag(cmsHPROFILE hProfile, cmsTagSignature sig) { _cmsICCPROFILE* Icc = (_cmsICCPROFILE*) hProfile; - cmsIOHANDLER* io = Icc ->IOhandler; + cmsIOHANDLER* io; cmsTagTypeHandler* TypeHandler; cmsTagTypeHandler LocalTypeHandler; cmsTagDescriptor* TagDescriptor; @@ -1705,6 +1705,8 @@ void* CMSEXPORT cmsReadTag(cmsHPROFILE hProfile, cmsTagSignature sig) if (TagSize < 8) goto Error; + io = Icc ->IOhandler; + if (io == NULL) { // This is a built-in profile that has been manipulated, abort early cmsSignalError(Icc->ContextID, cmsERROR_CORRUPTION_DETECTED, "Corrupted built-in profile.");