From 4a478b8a98d00e1a5cda589e528a73135e783a5e Mon Sep 17 00:00:00 2001 From: Erik Gahlin Date: Thu, 7 Jan 2021 12:21:59 +0000 Subject: [PATCH 1/6] 8250903: jdk/jfr/javaagent/TestLoadedAgent.java fails with Mismatch in TestEvent count Reviewed-by: mgronlun --- .../jdk/jfr/javaagent/EventEmitterAgent.java | 21 ++++++------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/test/jdk/jdk/jfr/javaagent/EventEmitterAgent.java b/test/jdk/jdk/jfr/javaagent/EventEmitterAgent.java index 0e19589d65d..5a4cd4f534f 100644 --- a/test/jdk/jdk/jfr/javaagent/EventEmitterAgent.java +++ b/test/jdk/jdk/jfr/javaagent/EventEmitterAgent.java @@ -35,12 +35,10 @@ import jdk.jfr.consumer.RecordingFile; import jdk.test.lib.Asserts; import jdk.test.lib.jfr.EventNames; -// Java agent that emits in multiple threads +// Java agent that emits events public class EventEmitterAgent { - private static final int THREADS = 5; - private static final int EVENTS_PER_THREAD = 150_000; - private static final int EXPECTED_COUNT = THREADS * EVENTS_PER_THREAD; + private static final long EVENTS = 150_000; private static final Path DUMP_PATH = Paths.get("dump.jfr").toAbsolutePath(); // Called when agent is loaded from command line @@ -58,20 +56,13 @@ public class EventEmitterAgent { r.enable(EventNames.JavaExceptionThrow); r.setDestination(DUMP_PATH); r.start(); - Thread[] threads = new Thread[THREADS]; - for (int i = 0; i < THREADS; i++) { - threads[i] = new Thread(EventEmitterAgent::emitEvents); - threads[i].start(); - } - for (int i = 0; i < THREADS; i++) { - threads[i].join(); - } + emitEvents(); r.stop(); } } public static void emitEvents() { - for (int i = 0; i < EVENTS_PER_THREAD; i++) { + for (int i = 0; i < EVENTS; i++) { TestEvent e = new TestEvent(); e.msg = "Long message that puts pressure on the string pool " + i % 100; e.count = i; @@ -80,7 +71,7 @@ public class EventEmitterAgent { e.commit(); if (i % 10000 == 0) { try { - Thread.sleep(1); + Thread.sleep(10); } catch (InterruptedException ie) { // ignore } @@ -101,6 +92,6 @@ public class EventEmitterAgent { .stream() .filter(e -> e.getEventType().getName().equals("Test")) .count(); - Asserts.assertTrue(testEventCount == EXPECTED_COUNT, "Mismatch in TestEvent count"); + Asserts.assertEquals(testEventCount, EVENTS, "Mismatch in TestEvent count"); } } From 484e23b92acb76bb0c9dbcec55e1610140208ea8 Mon Sep 17 00:00:00 2001 From: Erik Joelsson Date: Thu, 7 Jan 2021 14:57:30 +0000 Subject: [PATCH 2/6] 8258657: Doc build is broken by use of new language features Reviewed-by: tbell, iris --- make/Docs.gmk | 4 ++-- make/autoconf/boot-jdk.m4 | 27 ++++++++++++++++++++++++++- make/autoconf/configure.ac | 3 ++- make/autoconf/spec.gmk.in | 4 +++- make/conf/jib-profiles.js | 9 ++++++--- 5 files changed, 39 insertions(+), 8 deletions(-) diff --git a/make/Docs.gmk b/make/Docs.gmk index 1f7a0caf819..3d8d3e1492d 100644 --- a/make/Docs.gmk +++ b/make/Docs.gmk @@ -1,4 +1,4 @@ -# Copyright (c) 1997, 2020, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1997, 2021, 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 @@ -477,7 +477,7 @@ $(eval $(call SetupApiDocsGeneration, REFERENCE_API, \ SHORT_NAME := $(JAVASE_SHORT_NAME), \ LONG_NAME := $(JAVASE_LONG_NAME), \ TARGET_DIR := $(DOCS_REFERENCE_IMAGE_DIR)/api, \ - JAVADOC_CMD := $(JAVADOC), \ + JAVADOC_CMD := $(DOCS_REFERENCE_JAVADOC), \ OPTIONS := $(REFERENCE_OPTIONS), \ TAGS := $(REFERENCE_TAGS), \ )) diff --git a/make/autoconf/boot-jdk.m4 b/make/autoconf/boot-jdk.m4 index a7a9f1aba28..1d82f7c79b9 100644 --- a/make/autoconf/boot-jdk.m4 +++ b/make/autoconf/boot-jdk.m4 @@ -1,5 +1,5 @@ # -# Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2011, 2021, 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 @@ -606,3 +606,28 @@ AC_DEFUN([BOOTJDK_SETUP_BUILD_JDK], AC_SUBST(BUILD_JDK) AC_SUBST(EXTERNAL_BUILDJDK) ]) + +# The docs-reference JDK is used to run javadoc for the docs-reference targets. +# If not set, the reference docs will be built using the interim javadoc. +AC_DEFUN([BOOTJDK_SETUP_DOCS_REFERENCE_JDK], +[ + AC_ARG_WITH(docs-reference-jdk, [AS_HELP_STRING([--with-docs-reference-jdk], + [path to JDK to use for building the reference documentation])]) + + AC_MSG_CHECKING([for docs-reference JDK]) + if test "x$with_docs_reference_jdk" != "x"; then + DOCS_REFERENCE_JDK="$with_docs_reference_jdk" + AC_MSG_RESULT([$DOCS_REFERENCE_JDK]) + DOCS_REFERENCE_JAVADOC="$DOCS_REFERENCE_JDK/bin/javadoc" + if test ! -x "$DOCS_REFERENCE_JAVADOC"; then + AC_MSG_ERROR([docs-reference JDK found at $DOCS_REFERENCE_JDK did not contain bin/javadoc]) + fi + UTIL_FIXUP_EXECUTABLE(DOCS_REFERENCE_JAVADOC) + else + AC_MSG_RESULT([no, using interim javadoc for the docs-reference targets]) + # By leaving this empty, Docs.gmk will revert to the default interim javadoc + DOCS_REFERENCE_JAVADOC= + fi + + AC_SUBST(DOCS_REFERENCE_JAVADOC) +]) diff --git a/make/autoconf/configure.ac b/make/autoconf/configure.ac index a2fe84a1fb2..ab0122f7908 100644 --- a/make/autoconf/configure.ac +++ b/make/autoconf/configure.ac @@ -1,5 +1,5 @@ # -# Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2011, 2021, 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 @@ -144,6 +144,7 @@ JDKVER_SETUP_JDK_VERSION_NUMBERS BOOTJDK_SETUP_BOOT_JDK BOOTJDK_SETUP_BUILD_JDK +BOOTJDK_SETUP_DOCS_REFERENCE_JDK ############################################################################### # diff --git a/make/autoconf/spec.gmk.in b/make/autoconf/spec.gmk.in index 9e0d03e6f6c..7d859fd0d8e 100644 --- a/make/autoconf/spec.gmk.in +++ b/make/autoconf/spec.gmk.in @@ -1,5 +1,5 @@ # -# Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2011, 2021, 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 @@ -648,6 +648,8 @@ BUILD_JAVA=@FIXPATH@ $(BUILD_JDK)/bin/java $(BUILD_JAVA_FLAGS) BUILD_JAVAC=@FIXPATH@ $(BUILD_JDK)/bin/javac BUILD_JAR=@FIXPATH@ $(BUILD_JDK)/bin/jar +DOCS_REFERENCE_JAVADOC := @DOCS_REFERENCE_JAVADOC@ + # Interim langtools modules and arguments INTERIM_LANGTOOLS_BASE_MODULES := java.compiler jdk.compiler jdk.javadoc INTERIM_LANGTOOLS_MODULES := $(addsuffix .interim, $(INTERIM_LANGTOOLS_BASE_MODULES)) diff --git a/make/conf/jib-profiles.js b/make/conf/jib-profiles.js index 2bd8ac926d5..632953e8e88 100644 --- a/make/conf/jib-profiles.js +++ b/make/conf/jib-profiles.js @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2021, 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 @@ -723,8 +723,11 @@ var getJibProfilesProfiles = function (input, common, data) { configure_args: concat( "--enable-full-docs", versionArgs(input, common), - "--with-build-jdk=" + input.get(buildJdkDep, "home_path") - + (input.build_os == "macosx" ? "/Contents/Home" : "") + "--with-build-jdk=" + input.get(buildJdkDep, "home_path"), + // Provide an explicit JDK for the docs-reference target to + // mimic the running conditions of when it's run for real as + // closely as possible. + "--with-docs-reference-jdk=" + input.get(buildJdkDep, "home_path") ), default_make_targets: ["all-docs-bundles"], artifacts: { From c1fb521694817c3f680b5709fc7ce89419d20786 Mon Sep 17 00:00:00 2001 From: Christian Hagedorn Date: Thu, 7 Jan 2021 15:02:45 +0000 Subject: [PATCH 3/6] 8259227: C2 crashes with SIGFPE due to a division that floats above its zero check Reviewed-by: kvn, thartmann --- src/hotspot/share/opto/ifnode.cpp | 10 ++- src/hotspot/share/opto/loopnode.hpp | 1 - src/hotspot/share/opto/loopopts.cpp | 21 +---- src/hotspot/share/opto/phaseX.cpp | 19 +++++ src/hotspot/share/opto/phaseX.hpp | 1 + .../loopopts/TestDivZeroDominatedBy.java | 78 +++++++++++++++++++ .../loopopts/TestDivZeroWithSplitIf.java | 5 +- 7 files changed, 109 insertions(+), 26 deletions(-) create mode 100644 test/hotspot/jtreg/compiler/loopopts/TestDivZeroDominatedBy.java diff --git a/src/hotspot/share/opto/ifnode.cpp b/src/hotspot/share/opto/ifnode.cpp index 4d1ef3cf865..3e74127a01a 100644 --- a/src/hotspot/share/opto/ifnode.cpp +++ b/src/hotspot/share/opto/ifnode.cpp @@ -1477,14 +1477,16 @@ Node* IfNode::dominated_by(Node* prev_dom, PhaseIterGVN *igvn) { // Loop ends when projection has no more uses. for (DUIterator_Last jmin, j = ifp->last_outs(jmin); j >= jmin; --j) { Node* s = ifp->last_out(j); // Get child of IfTrue/IfFalse - if( !s->depends_only_on_test() ) { + if (s->depends_only_on_test() && igvn->no_dependent_zero_check(s)) { + // For control producers. + // Do not rewire Div and Mod nodes which could have a zero divisor to avoid skipping their zero check. + igvn->replace_input_of(s, 0, data_target); // Move child to data-target + } else { // Find the control input matching this def-use edge. // For Regions it may not be in slot 0. uint l; - for( l = 0; s->in(l) != ifp; l++ ) { } + for (l = 0; s->in(l) != ifp; l++) { } igvn->replace_input_of(s, l, ctrl_target); - } else { // Else, for control producers, - igvn->replace_input_of(s, 0, data_target); // Move child to data-target } } // End for each child of a projection diff --git a/src/hotspot/share/opto/loopnode.hpp b/src/hotspot/share/opto/loopnode.hpp index 5eb5efaaa60..aa89d475ef8 100644 --- a/src/hotspot/share/opto/loopnode.hpp +++ b/src/hotspot/share/opto/loopnode.hpp @@ -1451,7 +1451,6 @@ public: // Mark an IfNode as being dominated by a prior test, // without actually altering the CFG (and hence IDOM info). void dominated_by( Node *prevdom, Node *iff, bool flip = false, bool exclude_loop_predicate = false ); - bool no_dependent_zero_check(Node* n) const; // Split Node 'n' through merge point Node *split_thru_region( Node *n, Node *region ); diff --git a/src/hotspot/share/opto/loopopts.cpp b/src/hotspot/share/opto/loopopts.cpp index 8c160c058cf..54d13cb9d6c 100644 --- a/src/hotspot/share/opto/loopopts.cpp +++ b/src/hotspot/share/opto/loopopts.cpp @@ -283,7 +283,7 @@ void PhaseIdealLoop::dominated_by( Node *prevdom, Node *iff, bool flip, bool exc for (DUIterator_Fast imax, i = dp->fast_outs(imax); i < imax; i++) { Node* cd = dp->fast_out(i); // Control-dependent node // Do not rewire Div and Mod nodes which could have a zero divisor to avoid skipping their zero check. - if (cd->depends_only_on_test() && no_dependent_zero_check(cd)) { + if (cd->depends_only_on_test() && _igvn.no_dependent_zero_check(cd)) { assert(cd->in(0) == dp, ""); _igvn.replace_input_of(cd, 0, prevdom); set_early_ctrl(cd, false); @@ -302,25 +302,6 @@ void PhaseIdealLoop::dominated_by( Node *prevdom, Node *iff, bool flip, bool exc } } -// Check if the type of a divisor of a Div or Mod node includes zero. -bool PhaseIdealLoop::no_dependent_zero_check(Node* n) const { - switch (n->Opcode()) { - case Op_DivI: - case Op_ModI: { - // Type of divisor includes 0? - const TypeInt* type_divisor = _igvn.type(n->in(2))->is_int(); - return (type_divisor->_hi < 0 || type_divisor->_lo > 0); - } - case Op_DivL: - case Op_ModL: { - // Type of divisor includes 0? - const TypeLong* type_divisor = _igvn.type(n->in(2))->is_long(); - return (type_divisor->_hi < 0 || type_divisor->_lo > 0); - } - } - return true; -} - //------------------------------has_local_phi_input---------------------------- // Return TRUE if 'n' has Phi inputs from its local block and no other // block-local inputs (all non-local-phi inputs come from earlier blocks) diff --git a/src/hotspot/share/opto/phaseX.cpp b/src/hotspot/share/opto/phaseX.cpp index 03e0d3ce97b..d6929ab9f32 100644 --- a/src/hotspot/share/opto/phaseX.cpp +++ b/src/hotspot/share/opto/phaseX.cpp @@ -1659,6 +1659,25 @@ void PhaseIterGVN::remove_speculative_types() { _table.check_no_speculative_types(); } +// Check if the type of a divisor of a Div or Mod node includes zero. +bool PhaseIterGVN::no_dependent_zero_check(Node* n) const { + switch (n->Opcode()) { + case Op_DivI: + case Op_ModI: { + // Type of divisor includes 0? + const TypeInt* type_divisor = type(n->in(2))->is_int(); + return (type_divisor->_hi < 0 || type_divisor->_lo > 0); + } + case Op_DivL: + case Op_ModL: { + // Type of divisor includes 0? + const TypeLong* type_divisor = type(n->in(2))->is_long(); + return (type_divisor->_hi < 0 || type_divisor->_lo > 0); + } + } + return true; +} + //============================================================================= #ifndef PRODUCT uint PhaseCCP::_total_invokes = 0; diff --git a/src/hotspot/share/opto/phaseX.hpp b/src/hotspot/share/opto/phaseX.hpp index f197536e73d..49ae866cccc 100644 --- a/src/hotspot/share/opto/phaseX.hpp +++ b/src/hotspot/share/opto/phaseX.hpp @@ -546,6 +546,7 @@ public: } bool is_dominator(Node *d, Node *n) { return is_dominator_helper(d, n, false); } + bool no_dependent_zero_check(Node* n) const; #ifndef PRODUCT protected: diff --git a/test/hotspot/jtreg/compiler/loopopts/TestDivZeroDominatedBy.java b/test/hotspot/jtreg/compiler/loopopts/TestDivZeroDominatedBy.java new file mode 100644 index 00000000000..80b5b552eef --- /dev/null +++ b/test/hotspot/jtreg/compiler/loopopts/TestDivZeroDominatedBy.java @@ -0,0 +1,78 @@ +/* + * Copyright (c) 2021, 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. + * + */ + +/* + * @test + * @key stress randomness + * @bug 8259227 + * @summary Verify that zero check is executed before division/modulo operation. + * @requires vm.compiler2.enabled + * @run main/othervm -Xcomp -XX:-TieredCompilation -XX:CompileOnly=compiler/loopopts/TestDivZeroDominatedBy::test + * -XX:+UnlockDiagnosticVMOptions -XX:+StressGCM -XX:StressSeed=917280111 compiler.loopopts.TestDivZeroDominatedBy + * @run main/othervm -Xcomp -XX:-TieredCompilation -XX:CompileOnly=compiler/loopopts/TestDivZeroDominatedBy::test + * -XX:+UnlockDiagnosticVMOptions -XX:+StressGCM compiler.loopopts.TestDivZeroDominatedBy + */ + +package compiler.loopopts; + +public class TestDivZeroDominatedBy { + + public static int iFld = 1; + public static int iFld1 = 2; + public static int iFld2 = 3; + public static int iArrFld[] = new int[10]; + public static double dFld = 1.0; + + public static void test() { + int x = 1; + int y = 2; + int z = 3; + + iFld = y; + iArrFld[5] += iFld1; + int i = 1; + do { + for (int j = 0; j < 10; j++) { + iFld2 += iFld2; + iFld1 = iFld2; + int k = 1; + do { + iArrFld[k] = y; + z = iFld2; + dFld = x; + try { + y = iArrFld[k]; + iArrFld[8] = 5; + iFld = (100 / z); + } catch (ArithmeticException a_e) {} + } while (++k < 2); + } + } while (++i < 10); + } + + public static void main(String[] strArr) { + test(); + } +} + diff --git a/test/hotspot/jtreg/compiler/loopopts/TestDivZeroWithSplitIf.java b/test/hotspot/jtreg/compiler/loopopts/TestDivZeroWithSplitIf.java index eff1f1ca1d8..c842152684d 100644 --- a/test/hotspot/jtreg/compiler/loopopts/TestDivZeroWithSplitIf.java +++ b/test/hotspot/jtreg/compiler/loopopts/TestDivZeroWithSplitIf.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 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 @@ -24,11 +24,14 @@ /* * @test + * @key stress randomness * @bug 8257822 * @summary Verify that zero check is executed before division/modulo operation. * @requires vm.compiler2.enabled * @run main/othervm -Xcomp -XX:-TieredCompilation -XX:CompileOnly=compiler/loopopts/TestDivZeroWithSplitIf::test * -XX:+UnlockDiagnosticVMOptions -XX:+StressGCM -XX:StressSeed=873732072 compiler.loopopts.TestDivZeroWithSplitIf + * @run main/othervm -Xcomp -XX:-TieredCompilation -XX:CompileOnly=compiler/loopopts/TestDivZeroWithSplitIf::test + * -XX:+UnlockDiagnosticVMOptions -XX:+StressGCM compiler.loopopts.TestDivZeroWithSplitIf */ package compiler.loopopts; From acdd90b699267db59967a21c4e75be033af0e5ce Mon Sep 17 00:00:00 2001 From: Vicente Romero Date: Thu, 7 Jan 2021 16:38:53 +0000 Subject: [PATCH 4/6] 8258972: unexpected compilation error with generic sealed interface Reviewed-by: jlahoda --- .../share/classes/com/sun/tools/javac/code/Types.java | 4 ++-- .../tools/javac/sealed/SealedCompilationTests.java | 11 +++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java index de2a73e2e3a..e112281c3b9 100644 --- a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java @@ -1667,11 +1667,11 @@ public class Types { } // where private boolean areDisjoint(ClassSymbol ts, ClassSymbol ss) { - if (isSubtype(ts.type, ss.type)) { + if (isSubtype(erasure(ts.type), erasure(ss.type))) { return false; } // if both are classes or both are interfaces, shortcut - if (ts.isInterface() == ss.isInterface() && isSubtype(ss.type, ts.type)) { + if (ts.isInterface() == ss.isInterface() && isSubtype(erasure(ss.type), erasure(ts.type))) { return false; } if (ts.isInterface() && !ss.isInterface()) { diff --git a/test/langtools/tools/javac/sealed/SealedCompilationTests.java b/test/langtools/tools/javac/sealed/SealedCompilationTests.java index 50e64d10b81..f61fe5b87e2 100644 --- a/test/langtools/tools/javac/sealed/SealedCompilationTests.java +++ b/test/langtools/tools/javac/sealed/SealedCompilationTests.java @@ -1247,6 +1247,17 @@ public class SealedCompilationTests extends CompilationTestCase { a = (A)c; } } + """, + """ + sealed interface A { + final class B implements A { } + } + + class Test { + void f(A.B a, A b) { + a = (A.B)b; + } + } """ )) { assertOK(s); From 1973fbee379b0cd5f552dfc66fce551a1e59d8a7 Mon Sep 17 00:00:00 2001 From: Rajan Halade Date: Thu, 7 Jan 2021 19:21:41 +0000 Subject: [PATCH 5/6] 8039278: console.sh failed Automatically with exit code 1 Backport-of: 4ce83f2a3a6c5fe11c298bed557c341e286e068a --- test/jdk/TEST.groups | 3 +- .../jdk/sun/security/tools/keytool/console.sh | 128 ------------------ 2 files changed, 1 insertion(+), 130 deletions(-) delete mode 100644 test/jdk/sun/security/tools/keytool/console.sh diff --git a/test/jdk/TEST.groups b/test/jdk/TEST.groups index c5bed118dd7..1b08ca1bc8f 100644 --- a/test/jdk/TEST.groups +++ b/test/jdk/TEST.groups @@ -1,4 +1,4 @@ -# Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2013, 2021, 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 @@ -553,7 +553,6 @@ jdk_core_manual_no_input_security = \ sun/security/smartcardio/TestPresent.java \ sun/security/smartcardio/TestTransmit.java \ sun/security/tools/jarsigner/compatibility/Compatibility.java \ - sun/security/tools/keytool/console.sh \ sun/security/tools/keytool/i18n.java jdk_core_manual_requires_human_input = \ diff --git a/test/jdk/sun/security/tools/keytool/console.sh b/test/jdk/sun/security/tools/keytool/console.sh deleted file mode 100644 index 5c6c349e391..00000000000 --- a/test/jdk/sun/security/tools/keytool/console.sh +++ /dev/null @@ -1,128 +0,0 @@ -# -# Copyright (c) 2006, 2019, 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. -# - -# @test -# @bug 6418647 8005527 -# @summary Doc bug 5035358 shows sun.security.util.Password.readPassword() is buggy. -# @author Weijun Wang -# @run shell/manual console.sh - -if [ "$ALT_PASS" = "" ]; then - PASSW=äöäöäö -else - PASSW=$ALT_PASS -fi - -KS=/tmp/kkk.$$ - -cat <<____ - -ATTENTION -=============================================================== - -This test is about non-ASCII password input compatibility between -JDK 5.0 and later versions. Before running the test, make sure that -- - - \$J5 points to a JDK 5.0 installation - \$JM points to the current installation - -The password string used in this test is $PASSW. If you find difficulty -entering it in in your system, feel free to change it to something else -by providing \$ALT_PASS. It should be no less than 6 characters and include -some non-ASCII characters. - -For each test, type into the characters as described in the test header. - means the RETURN (or ENTER key). Please wait for a little while -after is pressed each time. - -\$J5 is now $J5 -\$JM is now $JM - -____ - - -if [ "$J5" = "" -o "$JM" = "" ]; then - echo "Define \$J5 and \$JM first" - exit 1 -fi - -echo "Press ENTER to start the test, or Ctrl-C to stop it" -read x - -echo -echo "==========================================" -echo "Test #1: 5->6, non-prompt. Please type " -echo "==========================================" -echo -rm $KS 2> /dev/null -$J5/bin/keytool -keystore $KS -genkey -keyalg DSA -dname CN=olala -storepass $PASSW || exit 1 -$JM/bin/keytool -keystore $KS -list -storepass $PASSW || exit 2 - -echo "==========================================" -echo "Test #2: 6->5, non-prompt. Please type " -echo "==========================================" -echo - -rm $KS 2> /dev/null -$JM/bin/keytool -keystore $KS -genkey -keyalg DSA -dname CN=olala -storepass $PASSW || exit 3 -$J5/bin/keytool -keystore $KS -list -storepass $PASSW || exit 4 - -echo "============================================================" -echo "Test #3: 5->6, prompt. Please type $PASSW $PASSW " -echo "============================================================" -echo - -rm $KS 2> /dev/null -$J5/bin/keytool -keystore $KS -genkey -keyalg DSA -dname CN=olala || exit 5 -$JM/bin/keytool -keystore $KS -list || exit 6 -echo $PASSW| $J5/bin/keytool -keystore $KS -list || exit 7 -echo $PASSW| $JM/bin/keytool -keystore $KS -list || exit 8 - -echo "=======================================================================" -echo "Test #4: 6->5, prompt. Please type $PASSW $PASSW $PASSW " -echo "=======================================================================" -echo - -rm $KS 2> /dev/null -$JM/bin/keytool -keystore $KS -genkey -keyalg DSA -dname CN=olala || exit 9 -$J5/bin/keytool -keystore $KS -list || exit 10 -echo $PASSW| $JM/bin/keytool -keystore $KS -list || exit 11 -echo $PASSW| $J5/bin/keytool -keystore $KS -list || exit 12 - -echo "===========================================" -echo "Test #5: 5->6, pipe. Please type $PASSW " -echo "===========================================" -echo - -rm $KS 2> /dev/null -echo $PASSW| $J5/bin/keytool -keystore $KS -genkey -keyalg DSA -dname CN=olala || exit 13 -$JM/bin/keytool -keystore $KS -list || exit 14 -echo $PASSW| $J5/bin/keytool -keystore $KS -list || exit 15 -echo $PASSW| $JM/bin/keytool -keystore $KS -list || exit 16 - -rm $KS 2> /dev/null - -echo -echo "Success" - -exit 0 From 677802d2ffea2b0132eeeca06524f8d595796cd8 Mon Sep 17 00:00:00 2001 From: Christoph Langer Date: Thu, 7 Jan 2021 22:51:49 +0000 Subject: [PATCH 6/6] 8258484: AIX build fails in Harfbuzz with XLC 16.01.0000.0006 Backport-of: 3f9f86f0d3f918b9955ba6ba73c9c58ae8fcf7cb --- make/modules/java.desktop/lib/Awt2dLibraries.gmk | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/make/modules/java.desktop/lib/Awt2dLibraries.gmk b/make/modules/java.desktop/lib/Awt2dLibraries.gmk index 3203378d00a..b1e07006f56 100644 --- a/make/modules/java.desktop/lib/Awt2dLibraries.gmk +++ b/make/modules/java.desktop/lib/Awt2dLibraries.gmk @@ -1,5 +1,5 @@ # -# Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2011, 2021, 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 @@ -474,6 +474,11 @@ else # LIBHARFBUZZ_OPTIMIZATION := HIGH + # Early re-canonizing has to be disabled to workaround an internal XlC compiler error + # when building libharfbuzz + ifeq ($(call isTargetOs, aix), true) + LIBHARFBUZZ_CFLAGS += -qdebug=necan + endif LIBHARFBUZZ_CFLAGS += $(X_CFLAGS) -DLE_STANDALONE -DHEADLESS