changeset 60804:88e90d1bacba patterns-stage-2

Automatic merge with default
author mcimadamore
date Tue, 07 Apr 2020 18:33:26 +0000
parents b17de292e9e9 9672de6ee0d7
children b406b7d161ef
files make/CompileInterimRmic.gmk make/common/RMICompilation.gmk make/jdk/src/classes/build/tools/util/Header.java make/rmic/Rmic-java.management.rmi.gmk make/rmic/Rmic-java.rmi.gmk make/rmic/Rmic-jdk.naming.rmi.gmk make/rmic/RmicCommon.gmk src/demo/share/jfc/Font2DTest/Font2DTestApplet.java src/demo/share/jfc/SwingSet2/SwingSet2Applet.java src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalAggressiveHeuristics.cpp src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalAggressiveHeuristics.hpp src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.cpp src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.hpp src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.hpp src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.inline.hpp src/hotspot/share/gc/shenandoah/shenandoahTraversalMode.cpp src/hotspot/share/gc/shenandoah/shenandoahTraversalMode.hpp src/java.base/share/classes/com/sun/security/cert/internal/x509/X509V1CertImpl.java src/java.base/share/classes/module-info.java src/java.rmi/share/doc/stub/java/rmi/activation/ActivationGroup_Stub.java src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.java src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/dumb-colors.caps src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/UnsafeLoadSnippets.java src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/memory/MemoryNode.java src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/spi/MemoryProxy.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AnnotationTypeFieldWriterImpl.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AnnotationTypeWriterImpl.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/HtmlTag.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/AnnotationTypeFieldWriter.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/AnnotationTypeWriter.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/AnnotationTypeBuilder.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/AnnotationTypeFieldBuilder.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/BasePropertyTaglet.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/PropertyGetterTaglet.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/PropertySetterTaglet.java test/hotspot/jtreg/vmTestbase/gc/gctests/Steal/steal001/TEST.properties test/hotspot/jtreg/vmTestbase/gc/gctests/Steal/steal001/steal001.java test/hotspot/jtreg/vmTestbase/gc/gctests/Steal/steal002/TEST.properties test/hotspot/jtreg/vmTestbase/gc/gctests/Steal/steal002/steal002.java test/jdk/java/awt/TrayIcon/AddPopupAfterShowTest/AddPopupAfterShowTest.html test/jdk/sun/management/jmxremote/bootstrap/Makefile test/jdk/sun/management/jmxremote/bootstrap/launcher.c test/jdk/sun/management/jmxremote/bootstrap/linux-amd64/launcher test/jdk/sun/management/jmxremote/bootstrap/linux-i586/launcher test/jdk/sun/management/jmxremote/bootstrap/solaris-amd64/launcher test/jdk/sun/management/jmxremote/bootstrap/solaris-sparcv9/launcher test/jdk/sun/tools/jps/LingeredApp.java
diffstat 1679 files changed, 792448 insertions(+), 31823 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Fri Apr 03 16:43:15 2020 +0200
+++ b/.hgtags	Tue Apr 07 18:33:26 2020 +0000
@@ -624,3 +624,7 @@
 2ec0ff3042630ddbd3587e340fe0dd40391cb6c4 jdk-15+12
 1c06a8ee8acad4d93c782626a233693a73de0add jdk-15+13
 1d6ceb13e142665ea833fca01c8c8598e0ddd211 jdk-15+14
+bc54620a3848c26cff9766e5e2a6e5ddab98ed18 jdk-14-ga
+82b7c62cf4cc56828a8fb724f57087967232a2a7 jdk-15+15
+5c7ec21f5d13f6eb5cd32288c69b8be2f9cac256 jdk-15+16
+dd5198db2e5b1ebcafe065d987c03ba9fcb50fc3 jdk-15+17
--- a/doc/building.html	Fri Apr 03 16:43:15 2020 +0200
+++ b/doc/building.html	Tue Apr 07 18:33:26 2020 +0000
@@ -283,7 +283,7 @@
 <tbody>
 <tr class="odd">
 <td style="text-align: left;">Linux</td>
-<td style="text-align: left;">gcc 8.3.0</td>
+<td style="text-align: left;">gcc 9.2.0</td>
 </tr>
 <tr class="even">
 <td style="text-align: left;">macOS</td>
@@ -302,7 +302,7 @@
 <p>All compilers are expected to be able to compile to the C99 language standard, as some C99 features are used in the source code. Microsoft Visual Studio doesn't fully support C99 so in practice shared code is limited to using C99 features that it does support.</p>
 <h3 id="gcc">gcc</h3>
 <p>The minimum accepted version of gcc is 5.0. Older versions will generate a warning by <code>configure</code> and are unlikely to work.</p>
-<p>The JDK is currently known to be able to compile with at least version 8.3 of gcc.</p>
+<p>The JDK is currently known to be able to compile with at least version 9.2 of gcc.</p>
 <p>In general, any version between these two should be usable.</p>
 <h3 id="clang">clang</h3>
 <p>The minimum accepted version of clang is 3.2. Older versions will not be accepted by <code>configure</code>.</p>
--- a/doc/building.md	Fri Apr 03 16:43:15 2020 +0200
+++ b/doc/building.md	Tue Apr 07 18:33:26 2020 +0000
@@ -327,7 +327,7 @@
 
  Operating system   Toolchain version
  ------------------ -------------------------------------------------------
- Linux              gcc 8.3.0
+ Linux              gcc 9.2.0
  macOS              Apple Xcode 10.1 (using clang 10.0.0)
  Solaris            Oracle Solaris Studio 12.6 (with compiler version 5.15)
  Windows            Microsoft Visual Studio 2017 update 15.9.16
@@ -342,7 +342,7 @@
 The minimum accepted version of gcc is 5.0. Older versions will generate a warning
 by `configure` and are unlikely to work.
 
-The JDK is currently known to be able to compile with at least version 8.3 of
+The JDK is currently known to be able to compile with at least version 9.2 of
 gcc.
 
 In general, any version between these two should be usable.
--- a/make/CompileInterimRmic.gmk	Fri Apr 03 16:43:15 2020 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-#
-# Copyright (c) 2011, 2020, 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.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# 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.
-#
-
-default: all
-
-include $(SPEC)
-include MakeBase.gmk
-include JavaCompilation.gmk
-include SetupJavaCompilers.gmk
-
-################################################################################
-# Generate interim versions of the module-info.java files for the interim
-# langtools modules. Each interim module has ".interim" added as suffix to the
-# original module name.
-
-INTERIM_MODULEINFO_PATTERN := \
-    $(foreach m, $(INTERIM_RMIC_BASE_MODULES), -e 's/$m\([,; ]\)/$m.interim\1/g') \
-    -e '/ToolProvider[,; ]/d'
-
-$(BUILDTOOLS_OUTPUTDIR)/gensrc/%.interim/module-info.java: \
-    $(TOPDIR)/src/%/share/classes/module-info.java
-	$(call LogInfo, Generating module-info.java for $*.interim)
-	$(call MakeDir, $(@D))
-	$(SED) $(INTERIM_MODULEINFO_PATTERN) $< > $@
-
-TARGETS += $(patsubst %, $(BUILDTOOLS_OUTPUTDIR)/gensrc/%/module-info.java, \
-    $(INTERIM_RMIC_MODULES))
-
-################################################################################
-
-RMIC_PKGS := \
-    sun/rmi/rmic \
-    sun/tools/asm \
-    sun/tools/java \
-    sun/tools/javac \
-    sun/tools/tree \
-    sun/tools/util \
-    #
-
-$(eval $(call SetupJavaCompilation, BUILD_jdk.rmic.interim, \
-    SETUP := GENERATE_OLDBYTECODE, \
-    SRC := $(TOPDIR)/src/jdk.rmic/share/classes, \
-    EXCLUDE_FILES := $(TOPDIR)/src/jdk.rmic/share/classes/module-info.java, \
-    EXTRA_FILES := $(BUILDTOOLS_OUTPUTDIR)/gensrc/jdk.rmic.interim/module-info.java, \
-    INCLUDES := $(RMIC_PKGS), \
-    BIN := $(BUILDTOOLS_OUTPUTDIR)/interim_rmic_modules/jdk.rmic.interim, \
-    COPY := .properties, \
-    DISABLED_WARNINGS := deprecation, \
-    ADD_JAVAC_FLAGS := \
-        --module-path $(BUILDTOOLS_OUTPUTDIR)/interim_rmic_modules \
-        $(INTERIM_RMIC_ADD_EXPORTS), \
-))
-
-TARGETS += $(BUILD_jdk.rmic.interim)
-
-##########################################################################################
-
-all: $(TARGETS)
--- a/make/CompileToolsJdk.gmk	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/CompileToolsJdk.gmk	Tue Apr 07 18:33:26 2020 +0000
@@ -43,7 +43,7 @@
     $(BUILDTOOLS_OUTPUTDIR)/interim_tzdb_classes \
     #
 
-$(eval $(call SetupJavaCompilation,BUILD_TOOLS_JDK, \
+$(eval $(call SetupJavaCompilation, BUILD_TOOLS_JDK, \
     SETUP := GENERATE_OLDBYTECODE, \
     SRC := $(BUILD_TOOLS_SRC_DIRS), \
     EXCLUDES := \
@@ -53,7 +53,6 @@
         build/tools/jigsaw \
         build/tools/depend \
         , \
-    DISABLED_WARNINGS := unchecked rawtypes deprecation cast, \
     BIN := $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes, \
     ADD_JAVAC_FLAGS := \
         --add-exports java.desktop/sun.awt=ALL-UNNAMED \
--- a/make/Docs.gmk	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/Docs.gmk	Tue Apr 07 18:33:26 2020 +0000
@@ -1,4 +1,4 @@
-# Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1997, 2020, 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
@@ -57,10 +57,7 @@
 ################################################################################
 # Javadoc settings
 
-# On top of the sources that was used to compile the JDK, we need some
-# extra java.rmi sources that are used just for javadoc.
-MODULES_SOURCE_PATH := $(call PathList, $(call GetModuleSrcPath) \
-    $(SUPPORT_OUTPUTDIR)/rmic/* $(TOPDIR)/src/*/share/doc/stub)
+MODULES_SOURCE_PATH := $(call PathList, $(call GetModuleSrcPath) )
 
 # URLs
 JAVADOC_BASE_URL := https://docs.oracle.com/pls/topic/lookup?ctx=javase$(VERSION_NUMBER)&amp;id=homepage
--- a/make/Global.gmk	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/Global.gmk	Tue Apr 07 18:33:26 2020 +0000
@@ -45,7 +45,7 @@
 	$(info $(_) make <name>-image      # Build just the image for any of: )
 	$(info $(_)                        # jdk, test, docs, symbols, legacy-jre, static-libs)
 	$(info $(_) make <phase>           # Build the specified phase and everything it depends on)
-	$(info $(_)                        # (gensrc, java, copy, libs, launchers, gendata, rmic))
+	$(info $(_)                        # (gensrc, java, copy, libs, launchers, gendata))
 	$(info $(_) make *-only            # Applies to most targets and disables building the)
 	$(info $(_)                        # dependencies for that target. This is faster but may)
 	$(info $(_)                        # result in incorrect build results!)
@@ -82,7 +82,7 @@
 	$(info $(_) make <module>          # Build <module> and everything it depends on)
 	$(info $(_) make <module>-<phase>  # Compile the specified phase for the specified module)
 	$(info $(_)                        # and everything it depends on)
-	$(info $(_)                        # (gensrc, java, copy, libs, launchers, gendata, rmic))
+	$(info $(_)                        # (gensrc, java, copy, libs, launchers, gendata))
 	$(info )
 	$(info Make control variables)
 	$(info $(_) CONF=                  # Build all configurations (note, assignment is empty))
--- a/make/Main.gmk	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/Main.gmk	Tue Apr 07 18:33:26 2020 +0000
@@ -72,9 +72,6 @@
 interim-langtools:
 	+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileInterimLangtools.gmk)
 
-interim-rmic:
-	+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileInterimRmic.gmk)
-
 interim-tzdb:
 	+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CopyInterimTZDB.gmk)
 
@@ -89,7 +86,7 @@
 	+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileToolsHotspot.gmk)
 
 ALL_TARGETS += buildtools-langtools interim-langtools \
-    interim-rmic interim-tzdb buildtools-jdk buildtools-modules \
+    interim-tzdb buildtools-jdk buildtools-modules \
     buildtools-hotspot
 
 ################################################################################
@@ -194,16 +191,6 @@
 ALL_TARGETS += $(JAVA_TARGETS)
 
 ################################################################################
-# Targets for running rmic.
-$(eval $(call DeclareRecipesForPhase, RMIC, \
-    TARGET_SUFFIX := rmic, \
-    FILE_PREFIX := Rmic, \
-    MAKE_SUBDIR := rmic, \
-    CHECK_MODULES := $(ALL_MODULES)))
-
-ALL_TARGETS += $(RMIC_TARGETS)
-
-################################################################################
 # Targets for compiling native libraries
 $(eval $(call DeclareRecipesForPhase, LIBS, \
     TARGET_SUFFIX := libs, \
@@ -688,10 +675,6 @@
 
   $(GENDATA_TARGETS): interim-langtools buildtools-jdk
 
-  interim-rmic: interim-langtools
-
-  $(RMIC_TARGETS): interim-langtools interim-rmic
-
   $(JAVA_TARGETS): interim-langtools
 
   # Declare dependencies between hotspot-<variant>* targets
@@ -732,9 +715,6 @@
   # Declare dependencies between the module meta targets
   $(foreach m, $(ALL_MODULES), $(eval $m: $(call FindDepsForModule,$m)))
 
-  # Declare dependencies between <module>-rmic to <module>-java
-  $(foreach m, $(RMIC_MODULES), $(eval $m-rmic: $m-java))
-
   # Declare dependencies from <module>-lib to <module>-java
   # Skip modules that do not have java source.
   $(foreach m, $(filter $(JAVA_MODULES), $(LIBS_MODULES)), $(eval $m-libs: $m-java))
@@ -768,7 +748,7 @@
   jdk.internal.vm.compiler-gensrc-moduleinfo: jdk.internal.vm.compiler-gensrc-src
   jdk.internal.vm.compiler.management-gensrc-moduleinfo: jdk.internal.vm.compiler.management-gensrc-src
 
-  jdk.jdeps-gendata: java rmic
+  jdk.jdeps-gendata: java
 
   # The ct.sym generation uses all the moduleinfos as input
   jdk.compiler-gendata: $(GENSRC_MODULEINFO_TARGETS)
@@ -790,7 +770,6 @@
   # Declare dependencies from <module>-jmod to all other module targets
   $(foreach m, $(JAVA_MODULES), $(eval $m_JMOD_DEPS += $m-java))
   $(foreach m, $(GENDATA_MODULES), $(eval $m_JMOD_DEPS += $m-gendata))
-  $(foreach m, $(RMIC_MODULES), $(eval $m_JMOD_DEPS += $m-rmic))
   $(foreach m, $(LIBS_MODULES), $(eval $m_JMOD_DEPS += $m-libs))
   $(foreach m, $(LAUNCHER_MODULES), $(eval $m_JMOD_DEPS += $m-launchers))
   $(foreach m, $(COPY_MODULES), $(eval $m_JMOD_DEPS += $m-copy))
@@ -856,7 +835,7 @@
   zip-security: java.base-java java.security.jgss-java java.security.jgss-libs \
       $(filter jdk.crypto%, $(JAVA_TARGETS))
 
-  zip-source: gensrc rmic
+  zip-source: gensrc
 
   jrtfs-jar: interim-langtools
 
@@ -903,11 +882,11 @@
 
   bootcycle-images: jdk-image
 
-  docs-jdk-api-javadoc: $(GENSRC_TARGETS) rmic
+  docs-jdk-api-javadoc: $(GENSRC_TARGETS)
 
-  docs-javase-api-javadoc: $(GENSRC_TARGETS) rmic
+  docs-javase-api-javadoc: $(GENSRC_TARGETS)
 
-  docs-reference-api-javadoc: $(GENSRC_TARGETS) rmic
+  docs-reference-api-javadoc: $(GENSRC_TARGETS)
 
   docs-jdk-api-modulegraph: exploded-image buildtools-modules
 
@@ -989,7 +968,7 @@
 
 # If not already set, set the JVM specific tools targets
 JVM_TOOLS_TARGETS ?= buildtools-hotspot
-buildtools: buildtools-langtools interim-langtools interim-rmic \
+buildtools: buildtools-langtools interim-langtools \
     buildtools-jdk $(JVM_TOOLS_TARGETS)
 
 # Declare dependencies from hotspot-<variant> targets
@@ -1012,8 +991,6 @@
 
 java: $(JAVA_TARGETS)
 
-rmic: $(RMIC_TARGETS)
-
 libs: $(LIBS_TARGETS)
 
 static-libs: $(STATIC_LIBS_TARGETS)
@@ -1031,7 +1008,6 @@
 $(foreach m, $(GENSRC_MODULES), $(eval $m: $m-gensrc))
 $(foreach m, $(JAVA_MODULES), $(eval $m: $m-java))
 $(foreach m, $(GENDATA_MODULES), $(eval $m: $m-gendata))
-$(foreach m, $(RMIC_MODULES), $(eval $m: $m-rmic))
 $(foreach m, $(LIBS_MODULES), $(eval $m: $m-libs))
 $(foreach m, $(LAUNCHER_MODULES), $(eval $m: $m-launchers))
 $(foreach m, $(ALL_COPY_MODULES), $(eval $m: $m-copy))
@@ -1131,7 +1107,7 @@
 all-bundles: product-bundles test-bundles docs-bundles static-libs-bundles
 
 ALL_TARGETS += buildtools hotspot hotspot-libs hotspot-gensrc gensrc gendata \
-    copy java rmic libs static-libs launchers jmods \
+    copy java libs static-libs launchers jmods \
     jdk.jdwp.agent-gensrc $(ALL_MODULES) demos \
     exploded-image-base exploded-image \
     create-buildjdk docs-jdk-api docs-javase-api docs-reference-api docs-jdk \
--- a/make/ZipSource.gmk	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/ZipSource.gmk	Tue Apr 07 18:33:26 2020 +0000
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2014, 2019, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2014, 2020, 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
@@ -39,18 +39,12 @@
 # Create the directory structure for src.zip using symlinks.
 # <module>/<package>/<file>.java
 
-# Find extra source dirs for a module that are not part of normal compilation
-# but should be included in src.zip.
-# $1: Module to find dirs for
-ExtraSrcDirs = \
-    $(wildcard $(SUPPORT_OUTPUTDIR)/rmic/$(strip $1))
-
 ALL_MODULES := $(FindAllModules)
 
 # Generate the src dirs in the first make invocation and then call this makefile
 # again to create src.zip.
 $(foreach m, $(ALL_MODULES), \
-  $(foreach d, $(call FindModuleSrcDirs, $m) $(call ExtraSrcDirs, $m), \
+  $(foreach d, $(call FindModuleSrcDirs, $m), \
     $(eval $d_TARGET := $(SRC_ZIP_WORK_DIR)/$(patsubst $(TOPDIR)/%,%,$d)/$m) \
     $(if $(SRC_GENERATED), , \
       $(eval $$($d_TARGET): $d ; \
--- a/make/autoconf/build-performance.m4	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/autoconf/build-performance.m4	Tue Apr 07 18:33:26 2020 +0000
@@ -434,7 +434,7 @@
   fi
 
   JAVAC_SERVER_AVAILABLE=true
-  SJAVAC_MEMORY_OPT=-Xms${MS_VALUE}M -Xmx${MX_VALUE}M
+  SJAVAC_MEMORY_OPT="-Xms${MS_VALUE}M -Xmx${MX_VALUE}M"
   UTIL_ADD_JVM_ARG_IF_OK([$SJAVAC_MEMORY_OPT],SJAVAC_SERVER_JAVA_FLAGS,[$SJAVAC_SERVER_JAVA])
   if test "x$JVM_ARG_OK" = "xfalse"; then
     AC_MSG_WARN([Could not set '$SJAVAC_MEMORY_OPT' on bootjdk, disabling sjavac and javac server])
--- a/make/autoconf/compare.sh.in	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/autoconf/compare.sh.in	Tue Apr 07 18:33:26 2020 +0000
@@ -95,6 +95,9 @@
   fi
 fi
 
+export HOTSPOT_BUILD_TIME="@HOTSPOT_BUILD_TIME@"
+export USE_PRECOMPILED_HEADER="@USE_PRECOMPILED_HEADER@"
+
 # Now locate the main script and run it.
 REAL_COMPARE_SCRIPT="$TOPDIR/make/scripts/compare.sh"
 if [ ! -e "$REAL_COMPARE_SCRIPT" ]; then
--- a/make/autoconf/flags-cflags.m4	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/autoconf/flags-cflags.m4	Tue Apr 07 18:33:26 2020 +0000
@@ -697,7 +697,10 @@
   # JDK libraries.
   STATIC_LIBS_CFLAGS="-DSTATIC_BUILD=1"
   if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
-    STATIC_LIBS_CFLAGS="$STATIC_LIBS_CFLAGS -ffunction-sections -fdata-sections"
+    STATIC_LIBS_CFLAGS="$STATIC_LIBS_CFLAGS -ffunction-sections -fdata-sections \
+      -DJNIEXPORT='__attribute__((visibility(\"hidden\")))'"
+  else
+    STATIC_LIBS_CFLAGS="$STATIC_LIBS_CFLAGS -DJNIEXPORT="
   fi
   if test "x$TOOLCHAIN_TYPE" = xgcc; then
     # Disable relax-relocation to enable compatibility with older linkers
--- a/make/autoconf/flags-ldflags.m4	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/autoconf/flags-ldflags.m4	Tue Apr 07 18:33:26 2020 +0000
@@ -69,9 +69,10 @@
       LIBJSIG_HASHSTYLE_LDFLAGS="-Wl,--hash-style=both"
     fi
 
-    # Add -z defs, to forbid undefined symbols in object files.
-    # add relro (mark relocations read only) for all libs
-    BASIC_LDFLAGS="$BASIC_LDFLAGS -Wl,-z,defs -Wl,-z,relro"
+    # Add -z,defs, to forbid undefined symbols in object files.
+    # add -z,relro (mark relocations read only) for all libs
+    # add -z,now ("full relro" - more of the Global Offset Table GOT is marked read only)
+    BASIC_LDFLAGS="$BASIC_LDFLAGS -Wl,-z,defs -Wl,-z,relro -Wl,-z,now"
     # Linux : remove unused code+data in link step
     if test "x$ENABLE_LINKTIME_GC" = xtrue; then
       if test "x$OPENJDK_TARGET_CPU" = xs390x; then
@@ -129,10 +130,6 @@
       if test x$DEBUG_LEVEL = xrelease; then
         DEBUGLEVEL_LDFLAGS_JDK_ONLY="$DEBUGLEVEL_LDFLAGS_JDK_ONLY -Wl,-O1"
       fi
-      if test x$DEBUG_LEVEL = xslowdebug; then
-        # do relocations at load
-        DEBUGLEVEL_LDFLAGS="-Wl,-z,now"
-      fi
     fi
 
   elif test "x$TOOLCHAIN_TYPE" = xxlc; then
--- a/make/autoconf/hotspot.m4	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/autoconf/hotspot.m4	Tue Apr 07 18:33:26 2020 +0000
@@ -157,6 +157,15 @@
     HOTSPOT_TARGET_CPU_ARCH=zero
   fi
 
+  AC_ARG_WITH([hotspot-build-time], [AS_HELP_STRING([--with-hotspot-build-time],
+  [timestamp to use in hotspot version string, empty for on-the-fly @<:@empty@:>@])])
+
+  if test "x$with_hotspot_build_time" != x; then
+    HOTSPOT_BUILD_TIME="$with_hotspot_build_time"
+  fi
+  AC_SUBST(HOTSPOT_BUILD_TIME)
+
+
   # Override hotspot cpu definitions for ARM platforms
   if test "x$OPENJDK_TARGET_CPU" = xarm; then
     HOTSPOT_TARGET_CPU=arm_32
--- a/make/autoconf/platform.m4	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/autoconf/platform.m4	Tue Apr 07 18:33:26 2020 +0000
@@ -120,6 +120,12 @@
       VAR_CPU_BITS=64
       VAR_CPU_ENDIAN=little
       ;;
+    riscv64)
+      VAR_CPU=riscv64
+      VAR_CPU_ARCH=riscv
+      VAR_CPU_BITS=64
+      VAR_CPU_ENDIAN=little
+      ;;
     s390)
       VAR_CPU=s390
       VAR_CPU_ARCH=s390
@@ -485,6 +491,8 @@
     HOTSPOT_$1_CPU_DEFINE=S390
   elif test "x$OPENJDK_$1_CPU" = xs390x; then
     HOTSPOT_$1_CPU_DEFINE=S390
+  elif test "x$OPENJDK_$1_CPU" = xriscv64; then
+    HOTSPOT_$1_CPU_DEFINE=RISCV
   elif test "x$OPENJDK_$1_CPU" != x; then
     HOTSPOT_$1_CPU_DEFINE=$(echo $OPENJDK_$1_CPU | tr a-z A-Z)
   fi
--- a/make/autoconf/spec.gmk.in	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/autoconf/spec.gmk.in	Tue Apr 07 18:33:26 2020 +0000
@@ -156,6 +156,7 @@
 IMPORT_MODULES_MAKE:=@IMPORT_MODULES_MAKE@
 
 COPYRIGHT_YEAR:=@COPYRIGHT_YEAR@
+HOTSPOT_BUILD_TIME:=@HOTSPOT_BUILD_TIME@
 
 # Platform naming variables
 LAUNCHER_NAME:=@LAUNCHER_NAME@
@@ -245,7 +246,7 @@
   # Only export "VENDOR" to the build if COMPANY_NAME contains a real value.
   # Otherwise the default value for VENDOR, which is used to set the "java.vendor"
   # and "java.vm.vendor" properties is hard-coded into the source code (i.e. in
-  # VersionProps.java.template in the jdk for "vm.vendor" and
+  # VersionProps.java.template in the jdk for "java.vendor" and
   # vm_version.cpp in the VM for "java.vm.vendor")
   ifneq ($(COMPANY_NAME), N/A)
     VERSION_CFLAGS += -DVENDOR='"$(COMPANY_NAME)"'
@@ -656,7 +657,7 @@
 BUILD_JAVA=@FIXPATH@ $(BUILD_JDK)/bin/java $(BUILD_JAVA_FLAGS)
 BUILD_JAR=@FIXPATH@ $(BUILD_JDK)/bin/jar
 
-# Interim langtools and rmic modules and arguments
+# Interim langtools modules and arguments
 INTERIM_LANGTOOLS_BASE_MODULES := java.compiler jdk.compiler jdk.javadoc
 INTERIM_LANGTOOLS_MODULES := $(addsuffix .interim, $(INTERIM_LANGTOOLS_BASE_MODULES))
 INTERIM_LANGTOOLS_ADD_EXPORTS := \
@@ -675,15 +676,6 @@
 JAVAC_MAIN_CLASS = -m jdk.compiler.interim/com.sun.tools.javac.Main
 JAVADOC_MAIN_CLASS = -m jdk.javadoc.interim/jdk.javadoc.internal.tool.Main
 
-INTERIM_RMIC_BASE_MODULES := jdk.rmic
-INTERIM_RMIC_MODULES := $(addsuffix .interim, $(INTERIM_RMIC_BASE_MODULES))
-    #
-# Use = to delay expansion of PathList since it's not available in this file.
-INTERIM_RMIC_ARGS = --limit-modules java.base,jdk.compiler,jdk.javadoc \
-    --module-path $(call PathList, $(BUILDTOOLS_OUTPUTDIR)/interim_rmic_modules \
-        $(BUILDTOOLS_OUTPUTDIR)/interim_langtools_modules) \
-    #
-
 # You run the new javac using the boot jdk with $(BOOT_JDK)/bin/java $(NEW_JAVAC) ...
 # Use = assignment to be able to override in bootcycle-spec.gmk
 NEW_JAVAC   = $(INTERIM_LANGTOOLS_ARGS) $(JAVAC_MAIN_CLASS)
@@ -770,7 +762,6 @@
 SETFILE:=@SETFILE@
 XATTR:=@XATTR@
 JT_HOME:=@JT_HOME@
-JTREGEXE:=@JTREGEXE@
 JIB_HOME:=@JIB_HOME@
 XCODEBUILD=@XCODEBUILD@
 DTRACE := @DTRACE@
--- a/make/autoconf/toolchain.m4	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/autoconf/toolchain.m4	Tue Apr 07 18:33:26 2020 +0000
@@ -1092,15 +1092,10 @@
       AC_MSG_ERROR([jtreg home directory from --with-jtreg=$with_jtreg is not a valid jtreg home])
     fi
 
-    JTREGEXE="$JT_HOME/bin/jtreg"
-    if test ! -x "$JTREGEXE"; then
-      AC_MSG_ERROR([jtreg home directory from --with-jtreg=$with_jtreg does not contain valid jtreg executable])
-    fi
-
     AC_MSG_CHECKING([for jtreg test harness])
     AC_MSG_RESULT([$JT_HOME])
   else
-    # Try to locate jtreg
+    # Try to locate jtreg using the JT_HOME environment variable
     if test "x$JT_HOME" != x; then
       # JT_HOME set in environment, use it
       if test ! -d "$JT_HOME"; then
@@ -1110,11 +1105,7 @@
         if test ! -e "$JT_HOME/lib/jtreg.jar"; then
           AC_MSG_WARN([Ignoring JT_HOME which is not a valid jtreg home: $JT_HOME])
           JT_HOME=
-        elif test ! -x "$JT_HOME/bin/jtreg"; then
-          AC_MSG_WARN([Ignoring JT_HOME which does not contain valid jtreg executable: $JT_HOME])
-          JT_HOME=
         else
-          JTREGEXE="$JT_HOME/bin/jtreg"
           AC_MSG_NOTICE([Located jtreg using JT_HOME from environment])
         fi
       fi
@@ -1130,7 +1121,6 @@
         if test ! -e "$JT_HOME/lib/jtreg.jar"; then
           AC_MSG_WARN([Ignoring jtreg from path since a valid jtreg home cannot be found])
           JT_HOME=
-          JTREGEXE=
         else
           AC_MSG_NOTICE([Located jtreg using jtreg executable in path])
         fi
@@ -1149,10 +1139,8 @@
     fi
   fi
 
-  UTIL_FIXUP_EXECUTABLE(JTREGEXE)
   UTIL_FIXUP_PATH(JT_HOME)
   AC_SUBST(JT_HOME)
-  AC_SUBST(JTREGEXE)
 ])
 
 # Setup the JIB dependency resolver
--- a/make/autoconf/util.m4	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/autoconf/util.m4	Tue Apr 07 18:33:26 2020 +0000
@@ -275,20 +275,11 @@
 ###############################################################################
 # Register a --enable argument but mark it as deprecated
 # $1: The name of the with argument to deprecate, not including --enable-
-# $2: The name of the argument to deprecate, in shell variable style (i.e. with _ instead of -)
-# $3: Messages to user.
 AC_DEFUN([UTIL_DEPRECATED_ARG_ENABLE],
 [
   AC_ARG_ENABLE($1, [AS_HELP_STRING([--enable-$1],
-      [Deprecated. Option is kept for backwards compatibility and is ignored])])
-  if test "x$enable_$2" != x; then
-    AC_MSG_WARN([Option --enable-$1 is deprecated and will be ignored.])
-
-    if test "x$3" != x; then
-      AC_MSG_WARN([$3])
-    fi
-
-  fi
+      [Deprecated. Option is kept for backwards compatibility and is ignored])],
+      [AC_MSG_WARN([Option --enable-$1 is deprecated and will be ignored.])])
 ])
 
 ###############################################################################
--- a/make/common/Modules.gmk	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/common/Modules.gmk	Tue Apr 07 18:33:26 2020 +0000
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2014, 2019, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2014, 2020, 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
@@ -171,6 +171,7 @@
     jdk.naming.dns \
     jdk.naming.rmi \
     jdk.net \
+    jdk.nio.mapmode \
     jdk.rmic \
     jdk.scripting.nashorn \
     jdk.sctp \
--- a/make/common/RMICompilation.gmk	Fri Apr 03 16:43:15 2020 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-#
-# Copyright (c) 2011, 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.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# 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.
-#
-
-# Setup make rules for creating an RMI compilation.
-#
-# Parameter 1 is the name of the rule. This name is used as variable prefix,
-# and the targets generated are listed in a variable by that name.
-#
-# Remaining parameters are named arguments. These include:
-#   CLASSES:=List of classes to generate stubs for
-#   CLASSES_DIR:=Directory where to look for classes
-#   STUB_CLASSES_DIR:=Directory in where to put stub classes
-#   RUN_V11:=Set to run rmic with -v1.1
-#   RUN_V12:=Set to run rmic with -v1.2
-#   KEEP_GENERATED:=Set to keep generated sources around
-#   STUB_SOURCES_DIR:=Directory to put generated sources in
-SetupRMICompilation = $(NamedParamsMacroTemplate)
-define SetupRMICompilationBody
-
-  $1_DEP_FILE := $$($1_STUB_CLASSES_DIR)/_the.$1_rmic.generated
-
-  $1_CLASSES_SLASH := $$(subst .,/,$$($1_CLASSES))
-  $1_CLASS_FILES := $$(addprefix $$($1_CLASSES_DIR)/,$$(addsuffix .class,$$($1_CLASSES_SLASH)))
-  $1_STUB_FILES := $$(addprefix $$($1_STUB_CLASSES_DIR)/,$$(addsuffix _Stub.class,$$($1_CLASSES_SLASH)))
-  $1_TARGETS := $$($1_STUB_FILES)
-  $1_ARGS :=
-  ifneq (,$$($1_RUN_V11))
-    $1_SKEL_FILES := $$(addprefix $$($1_STUB_CLASSES_DIR)/,$$(addsuffix _Skel.class,$$($1_CLASSES_SLASH)))
-    $1_TARGETS += $$($1_SKEL_FILES)
-    $1_ARGS += -v1.1
-  endif
-  ifneq (,$$($1_RUN_V12))
-    $1_ARGS += -v1.2
-  endif
-
-  $1_TIE_BASE_FILES := $$(foreach f,$$($1_CLASSES_SLASH),$$(dir $$f)_$$(notdir $$f))
-  $1_TIE_FILES := $$(addprefix $$($1_STUB_CLASSES_DIR)/org/omg/stub/,$$(addsuffix _Tie.class,$$($1_TIE_BASE_FILES)))
-  $1_TIE_STDPKG_FILES := $$(addprefix $$($1_STUB_CLASSES_DIR)/,$$(addsuffix _Tie.class,$$($1_TIE_BASE_FILES)))
-
-  ifneq ($$($1_KEEP_GENERATED), )
-    $1_ARGS += -keepgenerated
-    $1_JAVA_TARGETS := $$(subst .class,.java,$$($1_TARGETS))
-    ifneq ($$($1_STUB_SOURCES_DIR), )
-      # This is where the java files are created by rmic
-      $1_JAVA_TARGETS_REL := $$(subst $$($1_STUB_CLASSES_DIR),, $$($1_JAVA_TARGETS))
-      # This is where the caller wants the java files
-      $1_JAVA_TARGETS := $$(addprefix $$($1_STUB_SOURCES_DIR), $$($1_JAVA_TARGETS_REL))
-    endif
-    $1_TARGETS += $$($1_JAVA_TARGETS)
-  endif
-
-  $1_DOLLAR_SAFE_CLASSES := $$(subst $$$$,\$$$$,$$($1_CLASSES))
-
-  $$($1_TARGETS): $$($1_DEP_FILE) $$($1_CLASS_FILES)
-
-  $$($1_DEP_FILE): $$($1_CLASS_FILES)
-	$$(call LogInfo, Running rmic $$($1_ARGS) for $$($1_DOLLAR_SAFE_CLASSES))
-	$$(call MakeDir, $$($1_STUB_CLASSES_DIR))
-	$(RMIC) $$($1_ARGS) -classpath "$$($1_CLASSES_DIR)" \
-	    -d $$($1_STUB_CLASSES_DIR) $$($1_DOLLAR_SAFE_CLASSES); \
-	$$(if $$($1_STUB_SOURCES_DIR), \
-	  $$(foreach f, $$($1_JAVA_TARGETS_REL), \
-	    $(MKDIR) -p $$(dir $$($1_STUB_SOURCES_DIR)/$$f) ; \
-	    $(MV) $$($1_STUB_CLASSES_DIR)/$$f $$($1_STUB_SOURCES_DIR)/$$f ; \
-	  ) \
-	) \
-	$(TOUCH) $$@
-
-
-  $1 := $$($1_TARGETS) $$($1_DEP_FILE)
-
-endef
--- a/make/conf/jib-profiles.js	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/conf/jib-profiles.js	Tue Apr 07 18:33:26 2020 +0000
@@ -248,7 +248,7 @@
     common.main_profile_base = {
         dependencies: ["boot_jdk", "gnumake", "jtreg", "jib", "autoconf", "jmh", "jcov"],
         default_make_targets: ["product-bundles", "test-bundles", "static-libs-bundles"],
-        configure_args: concat(["--enable-jtreg-failure-handler"],
+        configure_args: concat("--enable-jtreg-failure-handler",
             "--with-exclude-translations=de,es,fr,it,ko,pt_BR,sv,ca,tr,cs,sk,ja_JP_A,ja_JP_HA,ja_JP_HI,ja_JP_I,zh_TW,zh_HK",
             "--disable-manpages",
             "--disable-jvm-feature-shenandoahgc",
@@ -776,6 +776,10 @@
                     = concat(profiles[cmpBaselineName].default_make_targets, "docs");
             }
             profiles[cmpBaselineName].make_args = [ "COMPARE_BUILD=CONF=" ];
+            profiles[cmpBaselineName].configure_args = concat(
+                profiles[cmpBaselineName].configure_args,
+                "--with-hotspot-build-time=n/a", 
+                "--disable-precompiled-headers");
             // Do not inherit artifact definitions from base profile
             delete profiles[cmpBaselineName].artifacts;
         });
@@ -881,6 +885,7 @@
             make_args: testOnlyMake,
             environment: {
                 "BOOT_JDK": common.boot_jdk_home,
+                "JT_HOME": input.get("jtreg", "home_path"),
                 "JDK_IMAGE_DIR": input.get(testedProfileJdk, "home_path"),
                 "TEST_IMAGE_DIR": input.get(testedProfileTest, "home_path")
             },
@@ -968,7 +973,7 @@
 var getJibProfilesDependencies = function (input, common) {
 
     var devkit_platform_revisions = {
-        linux_x64: "gcc8.3.0-OL6.4+1.0",
+        linux_x64: "gcc9.2.0-OL6.4+1.0",
         macosx_x64: "Xcode10.1-MacOSX10.14+1.0",
         solaris_x64: "SS12u4-Solaris11u1+1.0",
         solaris_sparcv9: "SS12u6-Solaris11u3+1.0",
@@ -1059,7 +1064,8 @@
             checksum_file: "MD5_VALUES",
             file: "bundles/jtreg_bin-5.0.zip",
             environment_name: "JT_HOME",
-            environment_path: input.get("jtreg", "install_path") + "/jtreg/bin"
+            environment_path: input.get("jtreg", "home_path") + "/bin",
+            configure_args: "--with-jtreg=" + input.get("jtreg", "home_path"),
         },
 
         jmh: {
--- a/make/data/charsetmapping/MS950.map	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/data/charsetmapping/MS950.map	Tue Apr 07 18:33:26 2020 +0000
@@ -23,10 +23,10 @@
 #    0xF9FD -> u256F -> 0xA2A3 
 #    0xA2CC -> u5341 -> 0xA451 
 #    0xA2CE -> u5345 -> 0xA4CA  
-#    0xF9F9 -> u2550 -> 0xA2A4
-#    0xF9E9 -> u255E -> 0xA2A5	
-#    0xF9EA -> u256A -> 0xA2A6	
-#    0xF9EB -> u2561 -> 0xA2A7
+#    0xA2A4 -> u2550 -> 0xF9F9
+#    0xA2A5 -> u255E -> 0xF9E9
+#    0xA2A6 -> u256A -> 0xF9EA
+#    0xA2A7 -> u2561 -> 0xF9EB
 #
 # Column #1 is the cp950 code (in hex)
 # Column #2 is the Unicode (in hex as 0xXXXX)
--- a/make/data/charsetmapping/MS950.nr	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/data/charsetmapping/MS950.nr	Tue Apr 07 18:33:26 2020 +0000
@@ -6,13 +6,13 @@
 # (we don't need a MS950.c2b, the entries of MS950.c2b-irreversible
 #  are added in MS950.b2c already)
 #
-0xF9FA  0x256D 
+0xA2A4  0x2550
+0xA2A5  0x255E
+0xA2A6  0x256A
+0xA2A7  0x2561
+0xA2CC  0x5341
+0xA2CE  0x5345
+0xF9FA  0x256D
 0xF9FB  0x256E
 0xF9FC  0x2570
 0xF9FD  0x256F
-0xA2CC  0x5341
-0xA2CE  0x5345
-0xF9F9  0x2550
-0xF9E9  0x255E
-0xF9EA  0x256A
-0xF9EB  0x2561
--- a/make/data/lsrdata/language-subtag-registry.txt	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/data/lsrdata/language-subtag-registry.txt	Tue Apr 07 18:33:26 2020 +0000
@@ -1,4 +1,4 @@
-File-Date: 2019-09-16
+File-Date: 2020-03-16
 %%
 Type: language
 Subtag: aa
@@ -47129,6 +47129,16 @@
   Creole continuum in Eastern Suriname and Western French Guiana
 %%
 Type: variant
+Subtag: peano
+Description: Latino Sine Flexione
+Description: Interlingua de API
+Description: Interlingua de Peano
+Prefix: la
+Comments: Peano’s Interlingua, created in 1903 by Giuseppe Peano as an
+  international auxiliary language
+Added: 2020-03-12
+%%
+Type: variant
 Subtag: petr1708
 Description: Petrine orthography
 Added: 2010-10-10
--- a/make/devkit/Tools.gmk	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/devkit/Tools.gmk	Tue Apr 07 18:33:26 2020 +0000
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2013, 2019, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2013, 2020, 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
@@ -87,8 +87,16 @@
 # Define external dependencies
 
 # Latest that could be made to work.
-GCC_VER := 8.3.0
-ifeq ($(GCC_VER), 8.3.0)
+GCC_VER := 9.2.0
+ifeq ($(GCC_VER), 9.2.0)
+  gcc_ver := gcc-9.2.0
+  binutils_ver := binutils-2.34
+  ccache_ver := 3.7.3
+  mpfr_ver := mpfr-3.1.5
+  gmp_ver := gmp-6.1.2
+  mpc_ver := mpc-1.0.3
+  gdb_ver := gdb-8.3
+else ifeq ($(GCC_VER), 8.3.0)
   gcc_ver := gcc-8.3.0
   binutils_ver := binutils-2.32
   ccache_ver := 3.7.3
--- a/make/devkit/createJMHBundle.sh	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/devkit/createJMHBundle.sh	Tue Apr 07 18:33:26 2020 +0000
@@ -40,10 +40,10 @@
 cd $JAR_DIR
 rm -f *
 
-wget http://central.maven.org/maven2/org/apache/commons/commons-math3/$COMMONS_MATH3_VERSION/commons-math3-$COMMONS_MATH3_VERSION.jar
-wget http://central.maven.org/maven2/net/sf/jopt-simple/jopt-simple/$JOPT_SIMPLE_VERSION/jopt-simple-$JOPT_SIMPLE_VERSION.jar
-wget http://central.maven.org/maven2/org/openjdk/jmh/jmh-core/$JMH_VERSION/jmh-core-$JMH_VERSION.jar
-wget http://central.maven.org/maven2/org/openjdk/jmh/jmh-generator-annprocess/$JMH_VERSION/jmh-generator-annprocess-$JMH_VERSION.jar
+wget https://repo.maven.apache.org/maven2/org/apache/commons/commons-math3/$COMMONS_MATH3_VERSION/commons-math3-$COMMONS_MATH3_VERSION.jar
+wget https://repo.maven.apache.org/maven2/net/sf/jopt-simple/jopt-simple/$JOPT_SIMPLE_VERSION/jopt-simple-$JOPT_SIMPLE_VERSION.jar
+wget https://repo.maven.apache.org/maven2/org/openjdk/jmh/jmh-core/$JMH_VERSION/jmh-core-$JMH_VERSION.jar
+wget https://repo.maven.apache.org/maven2/org/openjdk/jmh/jmh-generator-annprocess/$JMH_VERSION/jmh-generator-annprocess-$JMH_VERSION.jar
 
 tar -cvzf ../$BUNDLE_NAME *
 
--- a/make/gensrc/Gensrc-java.base.gmk	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/gensrc/Gensrc-java.base.gmk	Tue Apr 07 18:33:26 2020 +0000
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 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
@@ -101,7 +101,7 @@
 ################################################################################
 
 INTPOLY_GEN_DONE := $(GENSRC_DIR)/_intpoly-gensrc.marker
-INTPOLY_HEADER := $(TOPDIR)/make/templates/gpl-cp-header
+INTPOLY_HEADER := $(TOPDIR)/make/jdk/src/classes/build/tools/intpoly/header.txt
 $(INTPOLY_GEN_DONE): $(INTPLOY_HEADER) $(BUILD_TOOLS_JDK)
 	$(call MakeDir, $(GENSRC_DIR))
 	$(call LogInfo, Generating fixed-field math classes for java.base)
--- a/make/hotspot/lib/CompileJvm.gmk	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/hotspot/lib/CompileJvm.gmk	Tue Apr 07 18:33:26 2020 +0000
@@ -75,6 +75,10 @@
     -DCPU='"$(OPENJDK_TARGET_CPU_VM_VERSION)"' \
     #
 
+ifneq ($(HOTSPOT_BUILD_TIME), )
+  CFLAGS_VM_VERSION += -DHOTSPOT_BUILD_TIME='"$(HOTSPOT_BUILD_TIME)"'
+endif
+
 ################################################################################
 # Disabled warnings
 
--- a/make/hotspot/lib/JvmFeatures.gmk	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/hotspot/lib/JvmFeatures.gmk	Tue Apr 07 18:33:26 2020 +0000
@@ -173,6 +173,7 @@
 ifneq ($(call check-jvm-feature, jfr), true)
   JVM_CFLAGS_FEATURES += -DINCLUDE_JFR=0
   JVM_EXCLUDE_PATTERNS += jfr
+  JVM_EXCLUDE_FILES += compilerEvent.cpp
 endif
 
 ################################################################################
--- a/make/jdk/netbeans/jmx/build.xml	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/jdk/netbeans/jmx/build.xml	Tue Apr 07 18:33:26 2020 +0000
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2007, 2008, Oracle and/or its affiliates. All rights reserved.
+ Copyright (c) 2007, 2020, Oracle and/or its affiliates. All rights reserved.
 
  Redistribution and use in source and binary forms, with or without
  modification, are permitted provided that the following conditions
@@ -60,37 +60,7 @@
     </target>
 
 
-    <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~ -->
-    <!-- Call rmic-jmx subtargets -->
-
-    <target name="-rmic-jmx" depends="-init,-rmic-jmx-jrmp"
-	    description="Calls -init,-rmic-jmx-jrmp"
-    />
-
-
-    <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
-    <!-- Generate RMI JRMP stub class files for remote objects -->
-    <!-- Generated java files are kept in a separate directory -->
-
-    <target name="-rmic-jmx-jrmp" depends="-init"
-            description="Generate RMI JRMP stub class files for remote objects. Keep generated java files in separate dir." >
-
-	<!-- Dir to keep generated stub source -->
-        <mkdir dir="${gensrc.dir}" />
-
-        <rmic 	base="${classes.dir}/javax/management"
-		sourcebase="${gensrc.dir}"
-		includeAntRuntime="no"
-		includeJavaRuntime="no"
-		stubversion="1.2"
-		>
-	    <include name="javax/management/remote/rmi/RMIConnectionImpl.class" />
-	    <include name="javax/management/remote/rmi/RMIServerImpl.class" />
-	</rmic>
-
-    </target>
-
-    <target name="-post-compile" depends="-init,-rmic-jmx"
+    <target name="-post-compile" depends="-init"
             description="Jar JMX class files (including RMI stubs)" >
        <mkdir dir="${dist.dir}/lib"/>
        <jar jarfile="${dist.dir}/lib/${jar.jmx.name}"
--- a/make/jdk/src/classes/build/tools/cldrconverter/Bundle.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/jdk/src/classes/build/tools/cldrconverter/Bundle.java	Tue Apr 07 18:33:26 2020 +0000
@@ -191,6 +191,7 @@
         String[] cldrBundles = getCLDRPath().split(",");
 
         // myMap contains resources for id.
+        @SuppressWarnings("unchecked")
         Map<String, Object> myMap = new HashMap<>();
         int index;
         for (index = 0; index < cldrBundles.length; index++) {
@@ -230,10 +231,12 @@
         }
 
         for (String k : COMPACT_NUMBER_PATTERN_KEYS) {
+            @SuppressWarnings("unchecked")
             List<String> patterns = (List<String>) myMap.remove(k);
             if (patterns != null) {
                 // Convert the map value from List<String> to String[], replacing any missing
                 // entry from the parents map, if any.
+                @SuppressWarnings("unchecked")
                 final List<String> pList = (List<String>)parentsMap.get(k);
                 int size = patterns.size();
                 int psize = pList != null ? pList.size() : 0;
@@ -286,7 +289,7 @@
             handleMultipleInheritance(myMap, parentsMap, calendarPrefix + "QuarterAbbreviations");
             handleMultipleInheritance(myMap, parentsMap, calendarPrefix + "QuarterNarrows");
 
-            adjustEraNames(myMap, calendarType);
+            adjustEraNames(myMap, parentsMap, calendarType);
 
             handleDateTimeFormatPatterns(TIME_PATTERN_KEYS, myMap, parentsMap, calendarType, "TimePatterns");
             handleDateTimeFormatPatterns(DATE_PATTERN_KEYS, myMap, parentsMap, calendarType, "DatePatterns");
@@ -410,8 +413,9 @@
     }
 
     /**
-     * Fills in any empty elements with its parent element. Returns true if the resulting array is
-     * identical to its parent array.
+     * Fills in any empty elements with its parent element, falling back to
+     * aliased one if parent element is not found. Returns true if the resulting
+     * array is identical to its parent array.
      *
      * @param parents
      * @param key
@@ -423,7 +427,7 @@
             return false;
         }
         if (value instanceof String[]) {
-            Object pvalue = parents.get(key);
+            Object pvalue = parents.getOrDefault(key, parents.get(CLDRConverter.aliases.get(key)));
             if (pvalue != null && pvalue instanceof String[]) {
                 String[] strings = (String[]) value;
                 String[] pstrings = (String[]) pvalue;
@@ -442,7 +446,7 @@
      * Adjusts String[] for era names because JRE's Calendars use different
      * ERA value indexes in the Buddhist, Japanese Imperial, and Islamic calendars.
      */
-    private void adjustEraNames(Map<String, Object> map, CalendarType type) {
+    private void adjustEraNames(Map<String, Object> map, Map<String, Object> pMap, CalendarType type) {
         String[][] eraNames = new String[ERA_KEYS.length][];
         String[] realKeys = new String[ERA_KEYS.length];
         int index = 0;
@@ -450,6 +454,9 @@
             String realKey = type.keyElementName() + key;
             String[] value = (String[]) map.get(realKey);
             if (value != null) {
+                // first fill in missing elements from parents map.
+                fillInElements(pMap, realKey, value);
+
                 switch (type) {
                 case GREGORIAN:
                     break;
--- a/make/jdk/src/classes/build/tools/cldrconverter/CLDRConverter.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/jdk/src/classes/build/tools/cldrconverter/CLDRConverter.java	Tue Apr 07 18:33:26 2020 +0000
@@ -434,7 +434,7 @@
         parentData.keySet().stream()
                 .filter(key -> key.startsWith(PARENT_LOCALE_PREFIX))
                 .forEach(key -> {
-                parentLocalesMap.put(key, new TreeSet(
+                parentLocalesMap.put(key, new TreeSet<String>(
                     Arrays.asList(((String)parentData.get(key)).split(" "))));
             });
 
@@ -481,7 +481,7 @@
         });
     }
 
-    private static void parseLDMLFile(File srcfile, AbstractLDMLHandler handler) throws Exception {
+    private static void parseLDMLFile(File srcfile, AbstractLDMLHandler<?> handler) throws Exception {
         info("..... Parsing " + srcfile.getName() + " .....");
         SAXParserFactory pf = SAXParserFactory.newInstance();
         pf.setValidating(true);
@@ -574,7 +574,7 @@
      * Translate the aliases into the real entries in the bundle map.
      */
     static void handleAliases(Map<String, Object> bundleMap) {
-        Set bundleKeys = bundleMap.keySet();
+        Set<String> bundleKeys = bundleMap.keySet();
         try {
             for (String key : aliases.keySet()) {
                 String targetKey = aliases.get(key);
@@ -1158,10 +1158,10 @@
 
     private static Stream<String> pluralRulesStream() {
         return handlerPlurals.getData().entrySet().stream()
-            .filter(e -> !((Map<String, String>)e.getValue()).isEmpty())
+            .filter(e -> !(e.getValue()).isEmpty())
             .map(e -> {
                 String loc = e.getKey();
-                Map<String, String> rules = (Map<String, String>)e.getValue();
+                Map<String, String> rules = e.getValue();
                 return "        {\"" + loc + "\", \"" +
                     rules.entrySet().stream()
                         .map(rule -> rule.getKey() + ":" + rule.getValue().replaceFirst("@.*", ""))
--- a/make/jdk/src/classes/build/tools/cldrconverter/PluralsParseHandler.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/jdk/src/classes/build/tools/cldrconverter/PluralsParseHandler.java	Tue Apr 07 18:33:26 2020 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2019, 2020, 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
@@ -40,7 +40,7 @@
  * plurals.xml
  */
 
-class PluralsParseHandler extends AbstractLDMLHandler<Object> {
+class PluralsParseHandler extends AbstractLDMLHandler<Map<String, String>> {
     @Override
     public InputSource resolveEntity(String publicID, String systemID) throws IOException, SAXException {
         // avoid HTTP traffic to unicode.org
@@ -82,13 +82,13 @@
         switch (qName) {
             case "pluralRule":
                 assert !(currentContainer instanceof Entry);
-                Entry entry = (Entry)currentContainer;
+                Entry<?> entry = (Entry<?>)currentContainer;
                 final String count = entry.getKey();
                 final String rule = (String)entry.getValue();
                 String locales = ((KeyContainer)(currentContainer.getParent())).getKey();
                 Arrays.stream(locales.split("\\s"))
                         .forEach(loc -> {
-                            Map<String, String> rules = (Map<String, String>)get(loc);
+                            Map<String, String> rules = get(loc);
                             if (rules == null) {
                                 rules = new HashMap<>();
                                 put(loc, rules);
--- a/make/jdk/src/classes/build/tools/dtdbuilder/DTDBuilder.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/jdk/src/classes/build/tools/dtdbuilder/DTDBuilder.java	Tue Apr 07 18:33:26 2020 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2020, 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
@@ -139,7 +139,7 @@
         }
         int i = namesVector.size();
         namesVector.addElement(name);
-        namesHash.put(name, new Integer(i));
+        namesHash.put(name, i);
         return (short) i;
     }
 
--- a/make/jdk/src/classes/build/tools/dtdbuilder/DTDInputStream.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/jdk/src/classes/build/tools/dtdbuilder/DTDInputStream.java	Tue Apr 07 18:33:26 2020 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2020, 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
@@ -92,8 +92,8 @@
      * Push an entire input stream
      */
     void push(Reader in) throws IOException {
-        stack.push(new Integer(ln));
-        stack.push(new Integer(ch));
+        stack.push(Integer.valueOf(ln));
+        stack.push(Integer.valueOf(ch));
         stack.push(this.in);
         this.in = in;
         ch = in.read();
--- a/make/jdk/src/classes/build/tools/generatebreakiteratordata/GenerateBreakIteratorData.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/jdk/src/classes/build/tools/generatebreakiteratordata/GenerateBreakIteratorData.java	Tue Apr 07 18:33:26 2020 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2020, 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
@@ -87,12 +87,12 @@
         ResourceBundle rules, info;
 
         info = (ResourceBundle) Class.forName(
-            localizedBundleName("sun.text.resources", "BreakIteratorInfo")).newInstance();
+            localizedBundleName("sun.text.resources", "BreakIteratorInfo")).getDeclaredConstructor().newInstance();
 
         classNames = info.getStringArray("BreakIteratorClasses");
 
         rules = (ResourceBundle) Class.forName(
-            localizedBundleName("sun.text.resources", "BreakIteratorRules")).newInstance();
+            localizedBundleName("sun.text.resources", "BreakIteratorRules")).getDeclaredConstructor().newInstance();
 
         if (info.containsKey("CharacterData")) {
             generateDataFile(info.getString("CharacterData"),
--- a/make/jdk/src/classes/build/tools/generatebreakiteratordata/RuleBasedBreakIteratorBuilder.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/jdk/src/classes/build/tools/generatebreakiteratordata/RuleBasedBreakIteratorBuilder.java	Tue Apr 07 18:33:26 2020 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2020, 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
@@ -290,7 +290,7 @@
                     }
 
                     lastOpen = c;
-                    parenStack.push(new Character((char)c));
+                    parenStack.push(Character.valueOf((char)c));
                     if (c == '<') {
                         sawVarName = true;
                     }
@@ -902,11 +902,11 @@
         // if we're adding rules to the backward state table, mark the initial state
         // as a looping state
         if (!forward) {
-            loopingStates.addElement(new Integer(1));
+            loopingStates.addElement(Integer.valueOf(1));
         }
 
         // put the current state on the decision point list before we start
-        decisionPointList.addElement(new Integer(currentState)); // we want currentState to
+        decisionPointList.addElement(Integer.valueOf(currentState)); // we want currentState to
                                                                  // be 1 here...
         currentState = tempStateTable.size() - 1;   // but after that, we want it to be
                                                     // 1 less than the state number of the next state
@@ -978,7 +978,7 @@
                     // if the period is followed by an asterisk, then just set the current
                     // state to loop back on itself
                     if (p + 1 < rule.length() && rule.charAt(p + 1) == '*' && state[0] != 0) {
-                        decisionPointList.addElement(new Integer(state[0]));
+                        decisionPointList.addElement(Integer.valueOf(state[0]));
                         pendingChars = "";
                         ++p;
                     }
@@ -1012,7 +1012,7 @@
                     // it to the end of the state table
                     int newState = tempStateTable.size();
                     if (loopingStates.size() != 0) {
-                        statesToBackfill.addElement(new Integer(newState));
+                        statesToBackfill.addElement(Integer.valueOf(newState));
                     }
                     state = new short[numCategories + 1];
                     if (sawEarlyBreak) {
@@ -1032,7 +1032,7 @@
                     lastState = currentState;
                     do {
                         ++currentState;
-                        decisionPointList.addElement(new Integer(currentState));
+                        decisionPointList.addElement(Integer.valueOf(currentState));
                     } while (currentState + 1 < tempStateTable.size());
                 }
             }
@@ -1058,7 +1058,7 @@
                 if (c == '*') {
                     for (int i = lastState + 1; i < tempStateTable.size(); i++) {
                         Vector<Integer> temp = new Vector<>();
-                        temp.addElement(new Integer(i));
+                        temp.addElement(Integer.valueOf(i));
                         updateStateTable(temp, pendingChars, (short)(lastState + 1));
                     }
                 }
@@ -1121,7 +1121,7 @@
 
                 // add the current state to the decision point list (add it at the
                 // BEGINNING so we can find it later)
-                decisionPointList.insertElementAt(new Integer(currentState), 0);
+                decisionPointList.insertElementAt(Integer.valueOf(currentState), 0);
 
                 // finally, push a copy of the current decision point list onto the
                 // stack (this keeps track of the active decision point list before
@@ -1208,7 +1208,7 @@
                     for (int i = 0; i < tempState.length; i++) {
                         if (tempState[i] > tempStateNum) {
                             updateStateTable(exitPoints,
-                                             new Character((char)(i + 0x100)).toString(),
+                                             Character.valueOf((char)(i + 0x100)).toString(),
                                              tempState[i]);
                         }
                     }
@@ -1330,7 +1330,7 @@
                              short[] newValues,
                              Vector<Integer> rowsBeingUpdated) {
         short[] oldValues = tempStateTable.elementAt(rowNum);
-        boolean isLoopingState = loopingStates.contains(new Integer(rowNum));
+        boolean isLoopingState = loopingStates.contains(Integer.valueOf(rowNum));
 
         // for each of the cells in the rows we're reconciling, do...
         for (int i = 0; i < oldValues.length; i++) {
@@ -1343,7 +1343,7 @@
             // if oldValues is a looping state and the state the current cell points to
             // is too, then we can just stomp over the current value of that cell (and
             // set the clear-looping-states flag if necessary)
-            else if (isLoopingState && loopingStates.contains(new Integer(oldValues[i]))) {
+            else if (isLoopingState && loopingStates.contains(Integer.valueOf(oldValues[i]))) {
                 if (newValues[i] != 0) {
                     if (oldValues[i] == 0) {
                         clearLoopingStates = true;
@@ -1401,29 +1401,29 @@
 
                     // if the decision point list contains either of the parent rows,
                     // update it to include the new row as well
-                    if ((decisionPointList.contains(new Integer(oldRowNum))
-                            || decisionPointList.contains(new Integer(newRowNum)))
-                        && !decisionPointList.contains(new Integer(combinedRowNum))
+                    if ((decisionPointList.contains(Integer.valueOf(oldRowNum))
+                            || decisionPointList.contains(Integer.valueOf(newRowNum)))
+                        && !decisionPointList.contains(Integer.valueOf(combinedRowNum))
                     ) {
-                        decisionPointList.addElement(new Integer(combinedRowNum));
+                        decisionPointList.addElement(Integer.valueOf(combinedRowNum));
                     }
 
                     // do the same thing with the list of rows being updated
-                    if ((rowsBeingUpdated.contains(new Integer(oldRowNum))
-                            || rowsBeingUpdated.contains(new Integer(newRowNum)))
-                        && !rowsBeingUpdated.contains(new Integer(combinedRowNum))
+                    if ((rowsBeingUpdated.contains(Integer.valueOf(oldRowNum))
+                            || rowsBeingUpdated.contains(Integer.valueOf(newRowNum)))
+                        && !rowsBeingUpdated.contains(Integer.valueOf(combinedRowNum))
                     ) {
-                        decisionPointList.addElement(new Integer(combinedRowNum));
+                        decisionPointList.addElement(Integer.valueOf(combinedRowNum));
                     }
                     // now (groan) do the same thing for all the entries on the
                     // decision point stack
                     for (int k = 0; k < decisionPointStack.size(); k++) {
                         Vector<Integer> dpl = decisionPointStack.elementAt(k);
-                        if ((dpl.contains(new Integer(oldRowNum))
-                                || dpl.contains(new Integer(newRowNum)))
-                            && !dpl.contains(new Integer(combinedRowNum))
+                        if ((dpl.contains(Integer.valueOf(oldRowNum))
+                                || dpl.contains(Integer.valueOf(newRowNum)))
+                            && !dpl.contains(Integer.valueOf(combinedRowNum))
                         ) {
-                            dpl.addElement(new Integer(combinedRowNum));
+                            dpl.addElement(Integer.valueOf(combinedRowNum));
                         }
                     }
 
@@ -1536,10 +1536,10 @@
     private void eliminateBackfillStates(int baseState) {
 
         // don't do anything unless this state is actually in the backfill list...
-        if (statesToBackfill.contains(new Integer(baseState))) {
+        if (statesToBackfill.contains(Integer.valueOf(baseState))) {
 
             // if it is, take it out
-            statesToBackfill.removeElement(new Integer(baseState));
+            statesToBackfill.removeElement(Integer.valueOf(baseState));
 
             // then go through and recursively call this function for every
             // state that the base state points to
@@ -1608,7 +1608,7 @@
 
         int[] rowNumMap = new int[tempStateTable.size()];
         Stack<Integer> rowsToFollow = new Stack<>();
-        rowsToFollow.push(new Integer(1));
+        rowsToFollow.push(Integer.valueOf(1));
         rowNumMap[1] = 1;
 
         // determine which states are no longer reachable from the start state
@@ -1622,7 +1622,7 @@
                 if (row[i] != 0) {
                     if (rowNumMap[row[i]] == 0) {
                         rowNumMap[row[i]] = row[i];
-                        rowsToFollow.push(new Integer(row[i]));
+                        rowsToFollow.push(Integer.valueOf(row[i]));
                     }
                 }
             }
--- a/make/jdk/src/classes/build/tools/generatecharacter/CharacterName.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/jdk/src/classes/build/tools/generatecharacter/CharacterName.java	Tue Apr 07 18:33:26 2020 +0000
@@ -1,3 +1,28 @@
+/*
+ * Copyright (c) 2010, 2020, 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.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * 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.
+ */
+
 package build.tools.generatecharacter;
 
 import java.io.*;
--- a/make/jdk/src/classes/build/tools/generatecharacter/CharacterScript.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/jdk/src/classes/build/tools/generatecharacter/CharacterScript.java	Tue Apr 07 18:33:26 2020 +0000
@@ -1,3 +1,28 @@
+/*
+ * Copyright (c) 2010, 2020, 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.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * 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.
+ */
+
 package build.tools.generatecharacter;
 
 import java.util.regex.*;
@@ -118,7 +143,7 @@
             //    Character.getType() !=  Character.UNASSIGNED
             // first (return UNKNOWN for unassigned)
 
-            ArrayList<int[]> list = new ArrayList();
+            ArrayList<int[]> list = new ArrayList<>();
             list.add(scripts[0]);
 
             int[] last = scripts[0];
@@ -156,7 +181,7 @@
             }
 
             for (i = 0; i < list.size(); i++) {
-                int[] a = (int[])list.get(i);
+                int[] a = list.get(i);
                 String name = "UNKNOWN";
                 if (a[2] != -1)
                     name = names[a[2]].toUpperCase(Locale.US);
--- a/make/jdk/src/classes/build/tools/generatecharacter/PrintCharacterRanges.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/jdk/src/classes/build/tools/generatecharacter/PrintCharacterRanges.java	Tue Apr 07 18:33:26 2020 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2020, 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,16 +45,16 @@
     int end()   { return end;   }
   }
 
-  private static List/*<BooleanRange>*/ recoverBooleanRanges(String methodName) throws Exception {
-    List result = new ArrayList();
+  private static List<BooleanRange> recoverBooleanRanges(String methodName) throws Exception {
+    List<BooleanRange> result = new ArrayList<>();
     int currentRangeStart = -1;
-    Method method = Character.class.getDeclaredMethod(methodName, new Class[] { Character.TYPE });
+    Method method = Character.class.getDeclaredMethod(methodName, new Class<?>[] { Character.TYPE });
     if (method == null) {
       throw new RuntimeException("No method \"" + methodName + "\"(C) found");
     }
 
     for (int i = 0; i <= 255; i++) {
-      boolean methodRes = ((Boolean) method.invoke(null, new Object[] { new Character((char) i) })).booleanValue();
+      boolean methodRes = ((Boolean) method.invoke(null, new Object[] { Character.valueOf((char) i) })).booleanValue();
       if (methodRes) {
         if (currentRangeStart < 0) {
           currentRangeStart = i;
@@ -91,17 +91,17 @@
     return s.toString();
   }
 
-  private static void printBooleanRanges(List/*<BooleanRange>*/ ranges, String methodName) {
+  private static void printBooleanRanges(List<BooleanRange> ranges, String methodName) {
     System.out.print(methodName + ":");
-    for (Iterator iter = ranges.iterator(); iter.hasNext();) {
-      BooleanRange range = (BooleanRange) iter.next();
+    for (Iterator<BooleanRange> iter = ranges.iterator(); iter.hasNext();) {
+      BooleanRange range = iter.next();
       System.out.print(" [ " + describe(range.begin()) + ", " + describe(range.end()) + " ]");
     }
     System.out.println("");
   }
 
   private static void recoverAndPrintBooleanRanges(String methodName) throws Exception {
-    List ranges = recoverBooleanRanges(methodName);
+    List<BooleanRange> ranges = recoverBooleanRanges(methodName);
     printBooleanRanges(ranges, methodName);
   }
 
@@ -121,17 +121,17 @@
     int offset() { return offset; }
   }
 
-  private static List/*<ShiftRange>*/ recoverShiftRanges(String methodName) throws Exception {
-    List result = new ArrayList();
+  private static List<ShiftRange> recoverShiftRanges(String methodName) throws Exception {
+    List<ShiftRange> result = new ArrayList<>();
     int currentRangeStart = -1;
     int currentRangeOffset = -1;
-    Method method = Character.class.getDeclaredMethod(methodName, new Class[] { Character.TYPE });
+    Method method = Character.class.getDeclaredMethod(methodName, new Class<?>[] { Character.TYPE });
     if (method == null) {
       throw new RuntimeException("No method \"" + methodName + "\"(C) found");
     }
 
     for (int i = 0; i <= 255; i++) {
-      char methodRes = ((Character) method.invoke(null, new Object[] { new Character((char) i) })).charValue();
+      char methodRes = ((Character) method.invoke(null, new Object[] { Character.valueOf((char) i) })).charValue();
       if (methodRes != i) {
         int offset = methodRes - i;
         if (currentRangeStart < 0) {
@@ -155,11 +155,11 @@
     return result;
   }
 
-  private static void printShiftRanges(List/*<ShiftRange>*/ ranges, String methodName) {
+  private static void printShiftRanges(List<ShiftRange> ranges, String methodName) {
     System.out.print(methodName + ":");
     boolean isFirst = true;
-    for (Iterator iter = ranges.iterator(); iter.hasNext();) {
-      ShiftRange range = (ShiftRange) iter.next();
+    for (Iterator<ShiftRange> iter = ranges.iterator(); iter.hasNext();) {
+      ShiftRange range = iter.next();
       if (isFirst) {
         isFirst = false;
       } else {
@@ -173,7 +173,7 @@
   }
 
   private static void recoverAndPrintShiftRanges(String methodName) throws Exception {
-    List ranges = recoverShiftRanges(methodName);
+    List<ShiftRange> ranges = recoverShiftRanges(methodName);
     printShiftRanges(ranges, methodName);
   }
 
--- a/make/jdk/src/classes/build/tools/generatecurrencydata/GenerateCurrencyData.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/jdk/src/classes/build/tools/generatecurrencydata/GenerateCurrencyData.java	Tue Apr 07 18:33:26 2020 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2020, 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
@@ -322,7 +322,7 @@
             specialCaseNewCurrenciesDefaultFractionDigits[specialCaseCount] = getDefaultFractionDigits(newCurrency);
             specialCaseNewCurrenciesNumericCode[specialCaseCount] = getNumericCode(newCurrency);
         }
-        specialCaseMap.put(currencyInfo, new Integer(specialCaseCount));
+        specialCaseMap.put(currencyInfo, Integer.valueOf(specialCaseCount));
         return specialCaseCount++;
     }
 
--- a/make/jdk/src/classes/build/tools/generatelsrequivmaps/EquivMapsGenerator.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/jdk/src/classes/build/tools/generatelsrequivmaps/EquivMapsGenerator.java	Tue Apr 07 18:33:26 2020 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2020, 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
@@ -215,10 +215,7 @@
         + "    static final Map<String, String[]> multiEquivsMap;\n"
         + "    static final Map<String, String> regionVariantEquivMap;\n\n"
         + "    static {\n"
-        + "        singleEquivMap = new HashMap<>();\n"
-        + "        multiEquivsMap = new HashMap<>();\n"
-        + "        regionVariantEquivMap = new HashMap<>();\n\n"
-        + "        // This is an auto-generated file and should not be manually edited.\n";
+        + "        singleEquivMap = new HashMap<>(";
 
     private static final String footerText =
         "    }\n\n"
@@ -242,6 +239,12 @@
                 Paths.get(fileName))) {
             writer.write(getOpenJDKCopyright());
             writer.write(headerText
+                + (int)(sortedLanguageMap1.size() / 0.75f + 1) + ");\n"
+                + "        multiEquivsMap = new HashMap<>("
+                + (int)(sortedLanguageMap2.size() / 0.75f + 1) + ");\n"
+                + "        regionVariantEquivMap = new HashMap<>("
+                + (int)(sortedRegionVariantMap.size() / 0.75f + 1) + ");\n\n"
+                + "        // This is an auto-generated file and should not be manually edited.\n"
                 + "        //   LSR Revision: " + LSRrevisionDate);
             writer.newLine();
 
--- a/make/jdk/src/classes/build/tools/intpoly/FieldGen.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/jdk/src/classes/build/tools/intpoly/FieldGen.java	Tue Apr 07 18:33:26 2020 +0000
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
@@ -23,13 +21,12 @@
  * questions.
  */
 
+
 /*
  * This file is used to generated optimized finite field implementations.
  */
 package build.tools.intpoly;
 
-import build.tools.util.Header;
-
 import java.io.*;
 import java.math.BigInteger;
 import java.nio.file.Files;
@@ -587,16 +584,8 @@
 
     private String generate(FieldParams params) throws IOException {
         CodeBuffer result = new CodeBuffer();
-        for (String line : Header.javaHeader(headerPath)) {
-            result.appendLine(line);
-        }
-
-        result.appendLine();
-        result.appendLine("/*");
-        result.appendLine(" * This file is generated by FieldGen.java. "
-                + "Do not modify it directly.");
-        result.appendLine(" */");
-        result.appendLine();
+        String header = readHeader();
+        result.appendLine(header);
 
         if (packageName != null) {
             result.appendLine("package " + packageName + ";");
@@ -921,4 +910,12 @@
             result.freeTemporary(temp);
         }
     }
+
+    private String readHeader() throws IOException {
+        BufferedReader reader
+                = Files.newBufferedReader(headerPath);
+        StringBuffer result = new StringBuffer();
+        reader.lines().forEach(s -> result.append(s + "\n"));
+        return result.toString();
+    }
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/jdk/src/classes/build/tools/intpoly/header.txt	Tue Apr 07 18:33:26 2020 +0000
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2018, 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.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * 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.
+ */
+
+/*
+ * This file is generated by FieldGen.java. Do not modify it directly.
+ */
--- a/make/jdk/src/classes/build/tools/jdwpgen/Parse.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/jdk/src/classes/build/tools/jdwpgen/Parse.java	Tue Apr 07 18:33:26 2020 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2020, 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
@@ -27,6 +27,7 @@
 
 import java.util.*;
 import java.io.*;
+import java.lang.reflect.InvocationTargetException;
 
 class Parse {
 
@@ -144,12 +145,18 @@
                         return null;
                     } else {
                         try {
-                            Node node = (Node)proto.getClass().newInstance();
+                            Node node = (Node)proto.getClass().getDeclaredConstructor().newInstance();
                             node.set(kind, list, izer.lineno());
                             return node;
                         } catch (InstantiationException exc) {
                             error(exc.toString());
                             return null;
+                        } catch (NoSuchMethodException exc) {
+                            error(exc.toString());
+                            return null;
+                        } catch (InvocationTargetException exc) {
+                            error(exc.toString());
+                            return null;
                         } catch (IllegalAccessException exc) {
                             error(exc.toString());
                             return null;
--- a/make/jdk/src/classes/build/tools/taglet/ModuleGraph.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/jdk/src/classes/build/tools/taglet/ModuleGraph.java	Tue Apr 07 18:33:26 2020 +0000
@@ -75,7 +75,7 @@
         }
         return "<dt>Module Graph:</dt>"
             + "<dd>"
-            + "<a class=moduleGraph href=\"" + imageFile + "\">"
+            + "<a class=\"module-graph\" href=\"" + imageFile + "\">"
             + getImage(moduleName, imageFile, thumbnailHeight, false)
             + hoverImage
             + "</a>"
--- a/make/jdk/src/classes/build/tools/tzdb/TzdbZoneRulesProvider.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/jdk/src/classes/build/tools/tzdb/TzdbZoneRulesProvider.java	Tue Apr 07 18:33:26 2020 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2020, 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
@@ -67,7 +67,7 @@
     }
 
     public Set<String> getZoneIds() {
-        return new TreeSet(regionIds);
+        return new TreeSet<String>(regionIds);
     }
 
     public Map<String, String> getAliasMap() {
@@ -100,6 +100,7 @@
             return (ZoneRules)obj;
         }
         try {
+            @SuppressWarnings("unchecked")
             ZoneRules zrules = buildRules(zoneId, (List<ZoneLine>)obj);
             zones.put(zoneId, zrules);
             return zrules;
--- a/make/jdk/src/classes/build/tools/util/Header.java	Fri Apr 03 16:43:15 2020 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-/*
- * Copyright (c) 2020, 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.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * 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.
- */
-
-package build.tools.util;
-
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.time.LocalDate;
-import java.util.ArrayList;
-import java.util.List;
-
-public class Header {
-
-    // template: a file inside make/template/
-    // years: "2020," or "2000, 2020,"
-    public static List<String> javaHeader(Path template, String years)
-            throws IOException {
-        List<String> result = new ArrayList<>();
-        result.add("/*");
-        int emptyLines = 0;
-        for (String line :  Files.readAllLines(template)) {
-            if (line.isEmpty()) {
-                emptyLines++;
-            } else {
-                // Only add empty lines when they are not at the end
-                for (int i = 0; i < emptyLines; i++) {
-                    result.add(" *");
-                }
-                emptyLines = 0;
-                result.add(" * " + line.replace("%YEARS%", years));
-            }
-        }
-        result.add(" */");
-        return result;
-    }
-
-    public static List<String> javaHeader(Path template)
-            throws IOException {
-        return javaHeader(template, LocalDate.now().getYear() + ",");
-    }
-}
--- a/make/jdk/src/classes/build/tools/x11wrappergen/WrapperGenerator.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/jdk/src/classes/build/tools/x11wrappergen/WrapperGenerator.java	Tue Apr 07 18:33:26 2020 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2020, 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
@@ -47,11 +47,11 @@
     String defaultBaseClass = "XWrapperBase";
 
     String compile_options = "-lX11";
-    static Hashtable symbolTable = new Hashtable();
-    static Hashtable sizeTable32bit = new Hashtable();
-    static Hashtable sizeTable64bit = new Hashtable();
-    static Hashtable knownSizes32 = new Hashtable();
-    static Hashtable knownSizes64 = new Hashtable();
+    static Hashtable<String, BaseType> symbolTable = new Hashtable<>();
+    static Hashtable<String, String> sizeTable32bit = new Hashtable<>();
+    static Hashtable<String, String> sizeTable64bit = new Hashtable<>();
+    static Hashtable<String, Integer> knownSizes32 = new Hashtable<>();
+    static Hashtable<String, Integer> knownSizes64 = new Hashtable<>();
     static {
 /*
         knownSizes64.put("", Integer.valueOf());
@@ -391,7 +391,7 @@
                 alias = true;
                 aliasName = attributes[4];
             } else if (type == TYPE_ARRAY || type == TYPE_PTR || type == TYPE_STRUCT) {
-                referencedType = (BaseType)symbolTable.get(mod);
+                referencedType = symbolTable.get(mod);
                 if (referencedType == null) {
                     log.warning("Can't find type for name " + mod);
                 }
@@ -457,7 +457,7 @@
 
     private static class StructType extends BaseType {
 
-        Vector members;
+        Vector<BaseType> members;
         String description;
         boolean packed;
         int size;
@@ -472,7 +472,7 @@
          */
         public StructType(String _desc)
         {
-            members = new Vector();
+            members = new Vector<>();
             parseDescription(_desc);
         }
         public int getNumFields()
@@ -495,7 +495,7 @@
             return description;
         }
 
-        public Enumeration getMembers()
+        public Enumeration<BaseType> getMembers()
         {
             return members.elements();
         }
@@ -545,8 +545,8 @@
          * Returns String containing Java code calculating size of the structure depending on the data model
          */
         public String getSize() {
-            String s32 = (String) WrapperGenerator.sizeTable32bit.get(getName());
-            String s64 = (String) WrapperGenerator.sizeTable64bit.get(getName());
+            String s32 = WrapperGenerator.sizeTable32bit.get(getName());
+            String s64 = WrapperGenerator.sizeTable64bit.get(getName());
             if (s32 == null || s64 == null) {
                 return (s32 == null)?(s64):(s32);
             }
@@ -558,8 +558,8 @@
         }
         public String getOffset(AtomicType atp) {
             String key = getName()+"."+(atp.isAlias() ? atp.getAliasName() : atp.getName());
-            String s64 = (String) WrapperGenerator.sizeTable64bit.get(key);
-            String s32 = (String) WrapperGenerator.sizeTable32bit.get(key);
+            String s64 = WrapperGenerator.sizeTable64bit.get(key);
+            String s32 = WrapperGenerator.sizeTable32bit.get(key);
             if (s32 == null || s64 == null) {
                 return (s32 == null)?(s64):(s32);
             }
@@ -573,7 +573,7 @@
 
     private static class FunctionType extends BaseType {
 
-        Vector args;
+        Vector<BaseType> args;
         String description;
         boolean packed;
         String returnType;
@@ -582,7 +582,7 @@
 
         public FunctionType(String _desc)
         {
-            args = new Vector();
+            args = new Vector<>();
             description = _desc;
             setName(_desc);
         }
@@ -618,7 +618,7 @@
             return description;
         }
 
-        public Collection getArguments()
+        public Collection<BaseType> getArguments()
         {
             return args;
         }
@@ -653,28 +653,28 @@
     public String getOffsets(StructType stp,AtomicType atp, boolean wide)
     {
         String key = stp.getName()+"."+atp.getName();
-        return wide == true ? (String) sizeTable64bit.get(key) : (String) sizeTable32bit.get(key);
+        return wide == true ? sizeTable64bit.get(key) : sizeTable32bit.get(key);
     }
 
     public String getStructSize(StructType stp, boolean wide)
     {
-        return wide == true ? (String) sizeTable64bit.get(stp.getName()) : (String) sizeTable32bit.get(stp.getName());
+        return wide == true ? sizeTable64bit.get(stp.getName()) : sizeTable32bit.get(stp.getName());
     }
 
     public int getLongSize(boolean wide)
     {
-        return Integer.parseInt(wide == true ? (String)sizeTable64bit.get("long") : (String)sizeTable32bit.get("long"));
+        return Integer.parseInt(wide == true ? sizeTable64bit.get("long") : sizeTable32bit.get("long"));
     }
 
     public int getPtrSize(boolean wide)
     {
-        return Integer.parseInt(wide == true ? (String)sizeTable64bit.get("ptr") : (String)sizeTable32bit.get("ptr"));
+        return Integer.parseInt(wide == true ? sizeTable64bit.get("ptr") : sizeTable32bit.get("ptr"));
     }
     public int getBoolSize(boolean wide) {
         return getOrdinalSize("Bool", wide);
     }
     public int getOrdinalSize(String ordinal, boolean wide) {
-        return Integer.parseInt(wide == true ? (String)sizeTable64bit.get(ordinal) : (String)sizeTable32bit.get(ordinal));
+        return Integer.parseInt(wide == true ? sizeTable64bit.get(ordinal) : sizeTable32bit.get(ordinal));
     }
 
     public void writeToString(StructType stp, PrintWriter pw) {
@@ -682,7 +682,7 @@
         pw.println("\n\n\tString getName() {\n\t\treturn \"" + stp.getName()+ "\"; \n\t}");
         pw.println("\n\n\tString getFieldsAsString() {\n\t\tStringBuilder ret = new StringBuilder(" + stp.getNumFields() * 40 + ");\n");
 
-        for (Enumeration e = stp.getMembers() ; e.hasMoreElements() ;) {
+        for (Enumeration<BaseType> e = stp.getMembers() ; e.hasMoreElements() ;) {
             AtomicType tp = (AtomicType) e.nextElement();
 
             type = tp.getType();
@@ -718,7 +718,7 @@
         } else {
             prefix = "\t";
         }
-        for (Enumeration e = stp.getMembers() ; e.hasMoreElements() ;) {
+        for (Enumeration<BaseType> e = stp.getMembers() ; e.hasMoreElements() ;) {
             AtomicType tp = (AtomicType) e.nextElement();
 
             type = tp.getType();
@@ -753,7 +753,7 @@
         int acc_size_32 = 0;
         int acc_size_64 = 0;
         String s_log = (generateLog?"log.finest(\"\");":"");
-        for (Enumeration e = stp.getMembers() ; e.hasMoreElements() ;) {
+        for (Enumeration<BaseType> e = stp.getMembers() ; e.hasMoreElements() ;) {
             AtomicType tp = (AtomicType) e.nextElement();
 
             type = tp.getType();
@@ -946,7 +946,7 @@
             pw.println("\tprivate static Unsafe unsafe = XlibWrapper.unsafe;");
             pw.println("\tprivate boolean __executed = false;");
             pw.println("\tprivate boolean __disposed = false;");
-            Iterator iter = ft.getArguments().iterator();
+            Iterator<BaseType> iter = ft.getArguments().iterator();
             while (iter.hasNext()) {
                 AtomicType at = (AtomicType)iter.next();
                 if (at.isIn()) {
@@ -1110,8 +1110,8 @@
 
     public void writeJavaWrapperClass(String outputDir) {
         try {
-            for (Enumeration e = symbolTable.elements() ; e.hasMoreElements() ;) {
-                BaseType tp = (BaseType) e.nextElement();
+            for (Enumeration<BaseType> e = symbolTable.elements() ; e.hasMoreElements() ;) {
+                BaseType tp = e.nextElement();
                 if (tp instanceof StructType) {
                     StructType st = (StructType) tp;
                     writeWrapper(outputDir, st);
@@ -1132,7 +1132,7 @@
         int j=0;
         BaseType tp;
         StructType stp;
-        Enumeration eo;
+        Enumeration<BaseType> eo;
 
         try {
 
@@ -1158,7 +1158,7 @@
             pw.println("\n\nint main(){");
             j=0;
             for ( eo = symbolTable.elements() ; eo.hasMoreElements() ;) {
-                tp = (BaseType) eo.nextElement();
+                tp = eo.nextElement();
                 if (tp instanceof StructType)
                 {
                     stp = (StructType) tp;
@@ -1181,14 +1181,14 @@
             for (eo = symbolTable.elements() ; eo.hasMoreElements() ;) {
 
 
-                tp = (BaseType) eo.nextElement();
+                tp = eo.nextElement();
                 if (tp instanceof StructType)
                 {
                     stp = (StructType) tp;
                     if (stp.getIsInterface()) {
                         continue;
                     }
-                    for (Enumeration e = stp.getMembers() ; e.hasMoreElements() ;) {
+                    for (Enumeration<BaseType> e = stp.getMembers() ; e.hasMoreElements() ;) {
                         AtomicType atp = (AtomicType) e.nextElement();
                         if (atp.isAlias()) continue;
                         pw.println("printf(\""+ stp.getName() + "." + atp.getName() + "\t%d\\n\""+
@@ -1277,7 +1277,7 @@
 
                 }
                 else  if (line != null) {
-                    BaseType bt = (BaseType) symbolTable.get(line);
+                    BaseType bt = symbolTable.get(line);
                     if (bt == null) {
                         if (line.startsWith("!")) {
                             FunctionType ft = new FunctionType(line);
--- a/make/launcher/LauncherCommon.gmk	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/launcher/LauncherCommon.gmk	Tue Apr 07 18:33:26 2020 +0000
@@ -144,7 +144,7 @@
           -DPROGNAME='"$1"' \
           $$($1_CFLAGS), \
       CFLAGS_linux := -fPIC, \
-      CFLAGS_solaris := -KPIC -DHAVE_GETHRTIME, \
+      CFLAGS_solaris := -KPIC, \
       CFLAGS_windows := $$($1_CFLAGS_windows), \
       DISABLED_WARNINGS_gcc := unused-function, \
       LDFLAGS := $$(LDFLAGS_JDKEXE) \
--- a/make/lib/Lib-jdk.incubator.jpackage.gmk	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/lib/Lib-jdk.incubator.jpackage.gmk	Tue Apr 07 18:33:26 2020 +0000
@@ -59,7 +59,8 @@
     SRC := $(JPACKAGE_APPLAUNCHER_SRC), \
     TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
     OPTIMIZATION := LOW, \
-    CFLAGS := $(CXXFLAGS_JDKEXE), \
+    CFLAGS := $(CFLAGS_JDKEXE), \
+    CXXFLAGS := $(CXXFLAGS_JDKEXE), \
     CFLAGS_windows := -EHsc -DLAUNCHERC -DUNICODE -D_UNICODE, \
     LDFLAGS := $(LDFLAGS_JDKEXE), \
     LIBS_macosx := -framework Cocoa, \
--- a/make/rmic/Rmic-java.management.rmi.gmk	Fri Apr 03 16:43:15 2020 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-#
-# Copyright (c) 2011, 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.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# 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.
-#
-
-default: all
-
-include RmicCommon.gmk
-
-##########################################################################################
-#
-# Generate RMI stubs
-#
-
-JMX_RMI_CLASSES := javax.management.remote.rmi.RMIConnectionImpl \
-    javax.management.remote.rmi.RMIServerImpl
-
-# Generate into gensrc dir where sources get picked up for javadoc, then move the classes
-# into the stub classes dir.
-$(eval $(call SetupRMICompilation,RMI_GEN, \
-    CLASSES := $(JMX_RMI_CLASSES), \
-    CLASSES_DIR := $(CLASSES_DIR)/java.management.rmi, \
-    STUB_CLASSES_DIR := $(STUB_CLASSES_DIR)/java.management.rmi, \
-    RUN_V12 := true, \
-    KEEP_GENERATED := true, \
-    STUB_SOURCES_DIR := $(RMIC_GENSRC_DIR)/java.management.rmi, \
-))
-
-##########################################################################################
-
-all: $(RMI_GEN)
-
-.PHONY: all
--- a/make/rmic/Rmic-java.rmi.gmk	Fri Apr 03 16:43:15 2020 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-#
-# Copyright (c) 2011, 2013, 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.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# 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.
-#
-
-default: all
-
-include RmicCommon.gmk
-
-################################################################################
-#
-# Generate RMI stubs
-#
-
-$(eval $(call SetupRMICompilation,RMI_12, \
-    CLASSES := sun.rmi.server.Activation$$ActivationSystemImpl \
-        java.rmi.activation.ActivationGroup, \
-    CLASSES_DIR := $(CLASSES_DIR)/java.rmi, \
-    STUB_CLASSES_DIR := $(STUB_CLASSES_DIR)/java.rmi, \
-    RUN_V12 := true))
-GENCLASSES += $(RMI_12)
-
-
-################################################################################
-
-all: $(RMI_12)
-
-.PHONY: all
--- a/make/rmic/Rmic-jdk.naming.rmi.gmk	Fri Apr 03 16:43:15 2020 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-#
-# Copyright (c) 2011, 2013, 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.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# 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.
-#
-
-default: all
-
-include RmicCommon.gmk
-
-##########################################################################################
-#
-# Generate RMI stubs
-#
-
-$(eval $(call SetupRMICompilation,RMI_12, \
-    CLASSES := com.sun.jndi.rmi.registry.ReferenceWrapper, \
-    CLASSES_DIR := $(CLASSES_DIR)/jdk.naming.rmi, \
-    STUB_CLASSES_DIR := $(STUB_CLASSES_DIR)/jdk.naming.rmi, \
-    RUN_V12 := true))
-
-##########################################################################################
-
-all: $(RMI_12)
-
-.PHONY: all
--- a/make/rmic/RmicCommon.gmk	Fri Apr 03 16:43:15 2020 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-#
-# Copyright (c) 2011, 2017, 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.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# 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.
-#
-
-default: all
-
-include $(SPEC)
-include MakeBase.gmk
-include RMICompilation.gmk
-
-################################################################################
-
-RMIC_MAIN_CLASS := -m jdk.rmic.interim/sun.rmi.rmic.Main
-
-RMIC := $(JAVA_SMALL) $(INTERIM_RMIC_ARGS) $(RMIC_MAIN_CLASS)
-
-CLASSES_DIR := $(JDK_OUTPUTDIR)/modules
-# NOTE: If the smart javac dependency management is reintroduced, these classes
-# risk interfering with the dependency checking. In that case they will need to
-# be kept separate.
-STUB_CLASSES_DIR := $(JDK_OUTPUTDIR)/modules
-RMIC_GENSRC_DIR := $(SUPPORT_OUTPUTDIR)/rmic
-
-################################################################################
--- a/make/scripts/compare_exceptions.sh.incl	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/scripts/compare_exceptions.sh.incl	Tue Apr 07 18:33:26 2020 +0000
@@ -36,13 +36,15 @@
 # Diff exceptions
 
 if [ "$OPENJDK_TARGET_OS" = "linux" ]; then
-  ACCEPTED_BIN_DIFF="
-      ./lib/server/libjvm.so
-      ./hotspot/gtest/server/libjvm.so
-      "
-  STRIP_BEFORE_COMPARE="
-      ./hotspot/gtest/server/libjvm.so
-      "
+  if [ "$HOTSPOT_BUILD_TIME" = "" -o "$USE_PRECOMPILED_HEADER" = "true" ]; then
+    ACCEPTED_BIN_DIFF="
+        ./lib/server/libjvm.so
+        ./hotspot/gtest/server/libjvm.so
+        "
+    STRIP_BEFORE_COMPARE="
+        ./hotspot/gtest/server/libjvm.so
+        "
+   fi
 elif [ "$OPENJDK_TARGET_OS" = "solaris" ]; then
   SKIP_BIN_DIFF="true"
   SKIP_FULLDUMP_DIFF="true"
--- a/make/test/BuildFailureHandler.gmk	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/test/BuildFailureHandler.gmk	Tue Apr 07 18:33:26 2020 +0000
@@ -107,7 +107,8 @@
 test:
 	$(RM) -r $(RUN_DIR)
 	$(MKDIR) -p $(RUN_DIR)
-	$(CD) $(FH_BASEDIR)/test && JT_JAVA=$(BOOT_JDK) $(JTREGEXE) \
+	$(CD) $(FH_BASEDIR)/test && $(JAVA) -Dprogram=jtreg \
+	    -jar $(JT_HOME)/lib/jtreg.jar \
 	    -jdk:$(BOOT_JDK) \
 	    $(JTREG_TEST_OPTS) \
 	    -timeout:0.1 -va -retain:all \
--- a/make/test/JtregNativeJdk.gmk	Fri Apr 03 16:43:15 2020 +0200
+++ b/make/test/JtregNativeJdk.gmk	Tue Apr 07 18:33:26 2020 +0000
@@ -55,7 +55,7 @@
 
 # Platform specific setup
 ifeq ($(call isTargetOs, windows), true)
-  BUILD_JDK_JTREG_EXCLUDE += libDirectIO.c libInheritedChannel.c
+  BUILD_JDK_JTREG_EXCLUDE += libDirectIO.c libInheritedChannel.c exelauncher.c
 
   WIN_LIB_JAVA := $(SUPPORT_OUTPUTDIR)/native/java.base/libjava/java.lib
   BUILD_JDK_JTREG_LIBRARIES_LIBS_libstringPlatformChars := $(WIN_LIB_JAVA)
@@ -69,14 +69,17 @@
   BUILD_JDK_JTREG_EXCLUDE += exerevokeall.c
   ifeq ($(call isTargetOs, linux), true)
     BUILD_JDK_JTREG_LIBRARIES_LIBS_libInheritedChannel := -ljava
+    BUILD_JDK_JTREG_EXECUTABLES_LIBS_exelauncher := -ldl
   else ifeq ($(call isTargetOs, solaris), true)
     BUILD_JDK_JTREG_LIBRARIES_LIBS_libInheritedChannel := -ljava -lsocket -lnsl
+    BUILD_JDK_JTREG_EXECUTABLES_LIBS_exelauncher := -lthread -ldl
   endif
   BUILD_JDK_JTREG_EXECUTABLES_LIBS_exeJliLaunchTest := -ljli
   BUILD_JDK_JTREG_EXECUTABLES_LIBS_exeCallerAccessTest := -ljvm
 endif
 
 ifeq ($(call isTargetOs, macosx), true)
+  BUILD_JDK_JTREG_EXCLUDE += exelauncher.c
   BUILD_JDK_JTREG_LIBRARIES_CFLAGS_libTestMainKeyWindow := -ObjC
   BUILD_JDK_JTREG_LIBRARIES_LIBS_libTestMainKeyWindow := -framework JavaVM \
       -framework Cocoa -framework JavaNativeFoundation
--- a/src/demo/share/jfc/FileChooserDemo/FileChooserDemo.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/src/demo/share/jfc/FileChooserDemo/FileChooserDemo.java	Tue Apr 07 18:33:26 2020 +0000
@@ -136,7 +136,7 @@
     private JRadioButton openRadioButton;
     private JRadioButton saveRadioButton;
     private JRadioButton customButton;
-    private JComboBox lafComboBox;
+    private JComboBox<SupportedLaF> lafComboBox;
     private JRadioButton justFilesRadioButton;
     private JRadioButton justDirectoriesRadioButton;
     private JRadioButton bothFilesAndDirectoriesRadioButton;
@@ -158,7 +158,7 @@
         for (UIManager.LookAndFeelInfo lafInfo : installedLafs) {
             try {
                 Class<?> lnfClass = Class.forName(lafInfo.getClassName());
-                LookAndFeel laf = (LookAndFeel) (lnfClass.newInstance());
+                LookAndFeel laf = (LookAndFeel) (lnfClass.getDeclaredConstructor().newInstance());
                 if (laf.isSupportedLookAndFeel()) {
                     String name = lafInfo.getName();
                     SupportedLaF supportedLaF = new SupportedLaF(name, laf);
@@ -292,7 +292,7 @@
         showButton.setMnemonic('s');
 
         // Create laf combo box
-        lafComboBox = new JComboBox(supportedLaFs.toArray());
+        lafComboBox = new JComboBox<>(supportedLaFs.toArray(new SupportedLaF[0]));
         lafComboBox.setSelectedItem(nimbusLaF);
         lafComboBox.setEditable(false);
         lafComboBox.addActionListener(optionListener);
@@ -729,7 +729,7 @@
                     frame.pack();
                 } catch (UnsupportedLookAndFeelException exc) {
                     // This should not happen because we already checked
-                    ((DefaultComboBoxModel) lafComboBox.getModel()).
+                    ((DefaultComboBoxModel<?>) lafComboBox.getModel()).
                             removeElement(supportedLaF);
                 }
             }
--- a/src/demo/share/jfc/Font2DTest/Font2DTest.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/src/demo/share/jfc/Font2DTest/Font2DTest.java	Tue Apr 07 18:33:26 2020 +0000
@@ -67,7 +67,6 @@
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
-import java.util.EnumSet;
 import java.util.StringTokenizer;
 import java.util.BitSet;
 import javax.swing.*;
@@ -101,8 +100,8 @@
     private final ChoiceV2 transformMenu;
     private final ChoiceV2 transformMenuG2;
     private final ChoiceV2 methodsMenu;
-    private final JComboBox antiAliasMenu;
-    private final JComboBox fracMetricsMenu;
+    private final JComboBox<FontPanel.AAValues> antiAliasMenu;
+    private final JComboBox<FontPanel.FMValues> fracMetricsMenu;
 
     private final JSlider contrastSlider;
 
@@ -151,10 +150,10 @@
         methodsMenu = new ChoiceV2( this );
 
         antiAliasMenu =
-            new JComboBox(EnumSet.allOf(FontPanel.AAValues.class).toArray());
+            new JComboBox<>(FontPanel.AAValues.values());
         antiAliasMenu.addActionListener(this);
         fracMetricsMenu =
-            new JComboBox(EnumSet.allOf(FontPanel.FMValues.class).toArray());
+            new JComboBox<>(FontPanel.FMValues.values());
         fracMetricsMenu.addActionListener(this);
 
         contrastSlider = new JSlider(JSlider.HORIZONTAL, 100, 250,
@@ -359,7 +358,7 @@
         userTextDialog.pack();
         userTextDialog.addWindowListener( new WindowAdapter() {
             public void windowClosing( WindowEvent e ) {
-                userTextDialog.hide();
+                userTextDialog.setVisible(false);
             }
         });
 
@@ -385,7 +384,7 @@
         printDialog.setResizable( false );
         printDialog.addWindowListener( new WindowAdapter() {
             public void windowClosing( WindowEvent e ) {
-                printDialog.hide();
+                printDialog.setVisible(false);
             }
         });
         printDialog.getContentPane().setLayout( new GridLayout( printModeCBs.length + 2, 1 ));
@@ -402,7 +401,7 @@
         fontInfoDialog.setResizable( false );
         fontInfoDialog.addWindowListener( new WindowAdapter() {
             public void windowClosing( WindowEvent e ) {
-                fontInfoDialog.hide();
+                fontInfoDialog.setVisible(false);
                 showFontInfoCBMI.setState( false );
             }
         });
@@ -467,7 +466,7 @@
         int style = fontStyles[styleMenu.getSelectedIndex()];
         Font f;
         for (int i = 0; i < listCount; i++) {
-            String fontName = (String)fontMenu.getItemAt(i);
+            String fontName = fontMenu.getItemAt(i);
             f = new Font(fontName, style, size);
             if ((rm.getSelectedIndex() != RangeMenu.SURROGATES_AREA_INDEX) &&
                 canDisplayRange(f, rangeStart, rangeEnd)) {
@@ -673,9 +672,9 @@
 
         /// Set the visibility of User Text dialog
         if ( selectedText == fp.USER_TEXT )
-          userTextDialog.show();
+          userTextDialog.setVisible(true);
         else
-          userTextDialog.hide();
+          userTextDialog.setVisible(false);
         /// Change the visibility/status/availability of Print JDialog buttons
         printModeCBs[ fp.ONE_PAGE ].setSelected( true );
         if ( selectedText == fp.FILE_TEXT || selectedText == fp.USER_TEXT ) {
@@ -793,10 +792,10 @@
                             lcdContrast, userTextOpt );
             if ( showFontInfoOpt ) {
                 fireUpdateFontInfo();
-                fontInfoDialog.show();
+                fontInfoDialog.setVisible(true);
             }
             else
-              fontInfoDialog.hide();
+              fontInfoDialog.setVisible(false);
         }
         catch ( Exception ex ) {
             fireChangeStatus( "ERROR: Failed to Load Options File; See Stack Trace", true );
@@ -819,7 +818,7 @@
                 }
             });
             f.pack();
-            f.show();
+            f.setVisible(true);
         }
         catch ( Exception ex ) {
             fireChangeStatus( "ERROR: Failed to Load PNG File; See Stack Trace", true );
@@ -861,7 +860,7 @@
             else if ( itemName.equals( "Page Setup..." ))
               fp.doPageSetup();
             else if ( itemName.equals( "Print..." ))
-              printDialog.show();
+              printDialog.setVisible(true);
             else if ( itemName.equals( "Close" ))
               parent.dispose();
             else if ( itemName.equals( "Exit" ))
@@ -893,19 +892,19 @@
             if ( itemName.equals( "Print" )) {
                 for ( int i = 0; i < printModeCBs.length; i++ )
                   if ( printModeCBs[i].isSelected() ) {
-                      printDialog.hide();
+                      printDialog.setVisible(false);
                       fp.doPrint( i );
                   }
             }
             else if ( itemName.equals( "Cancel" ))
-              printDialog.hide();
+              printDialog.setVisible(false);
             /// Update button from Usert Text JDialog...
             else if ( itemName.equals( "Update" ))
               fp.setTextToDraw( fp.USER_TEXT, null,
                                 parseUserText( userTextArea.getText() ), null );
         }
         else if ( source instanceof JComboBox ) {
-            JComboBox c = (JComboBox) source;
+            JComboBox<?> c = (JComboBox<?>) source;
 
             /// RangeMenu handles actions by itself and then calls fireRangeChanged,
             /// so it is not listed or handled here
@@ -996,10 +995,10 @@
             else if ( cbmi == showFontInfoCBMI ) {
                 if ( showFontInfoCBMI.getState() ) {
                     fireUpdateFontInfo();
-                    fontInfoDialog.show();
+                    fontInfoDialog.setVisible(true);
                 }
                 else
-                  fontInfoDialog.hide();
+                  fontInfoDialog.setVisible(false);
             }
         }
     }
@@ -1039,7 +1038,7 @@
 
         f.getContentPane().add( f2dt );
         f.pack();
-        f.show();
+        f.setVisible(true);
     }
 
     /// Inner class definitions...
@@ -1070,7 +1069,7 @@
         }
     }
 
-    private final class ChoiceV2 extends JComboBox {
+    private final class ChoiceV2 extends JComboBox<String> {
 
         private BitSet bitSet = null;
 
@@ -1141,7 +1140,7 @@
             this.choice = choice;
         }
 
-        public Component getListCellRendererComponent(JList list,
+        public Component getListCellRendererComponent(JList<?> list,
                                                       Object value,
                                                       int index,
                                                       boolean isSelected,
--- a/src/demo/share/jfc/Font2DTest/Font2DTestApplet.java	Fri Apr 03 16:43:15 2020 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-/*
- * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   - Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   - Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- *   - Neither the name of Oracle nor the names of its
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- * This source code is provided to illustrate the usage of a given feature
- * or technique and has been deliberately simplified. Additional steps
- * required for a production-quality application, such as security checks,
- * input validation and proper error handling, might not be present in
- * this sample code.
- */
-
-
-/*
- */
-
-import java.awt.AWTPermission;
-import java.awt.Frame;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-
-import javax.swing.*;
-
-/**
- * Font2DTestApplet.java
- *
- * @author Shinsuke Fukuda
- * @author Ankit Patel [Conversion to Swing - 01/07/30]
- */
-
-/// Applet version of Font2DTest that wraps the actual demo
-
-public final class Font2DTestApplet extends JApplet {
-    public void init() {
-        /// Check if necessary permission is given...
-        SecurityManager security = System.getSecurityManager();
-        if ( security != null ) {
-            try {
-                security.checkPermission( new AWTPermission( "showWindowWithoutWarningBanner" ));
-            }
-            catch ( SecurityException e ) {
-                System.out.println( "NOTE: showWindowWithoutWarningBanner AWTPermission not given.\n" +
-                                    "Zoom window will contain warning banner at bottom when shown\n" );
-            }
-            try {
-                security.checkPrintJobAccess();
-            }
-            catch ( SecurityException e ) {
-                System.out.println( "NOTE: queuePrintJob RuntimePermission not given.\n" +
-                                    "Printing feature will not be available\n" );
-            }
-        }
-
-        final JFrame f = new JFrame( "Font2DTest" );
-        final Font2DTest f2dt = new Font2DTest( f, true );
-        f.addWindowListener( new WindowAdapter() {
-            public void windowClosing( WindowEvent e ) { f.dispose(); }
-        });
-
-        f.getContentPane().add( f2dt );
-        f.pack();
-        f.show();
-    }
-}
--- a/src/demo/share/jfc/Font2DTest/FontPanel.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/src/demo/share/jfc/Font2DTest/FontPanel.java	Tue Apr 07 18:33:26 2020 +0000
@@ -74,7 +74,6 @@
 import java.io.BufferedOutputStream;
 import java.io.FileOutputStream;
 import java.text.AttributedString;
-import java.util.EnumSet;
 import java.util.Vector;
 
 import javax.imageio.*;
@@ -392,7 +391,7 @@
         setTransformG2( g2transform ); // ABP
         setDrawMethod( method );
         setRenderingHints(AAValues.getValue(aa), FMValues.getValue(fm),
-                          new Integer(contrast));
+                          Integer.valueOf(contrast));
     }
 
     /// Writes the current screen to PNG file
@@ -434,7 +433,7 @@
         private int canvasInset_X = 5, canvasInset_Y = 5;
 
         /// LineBreak'ed TextLayout vector
-        private Vector lineBreakTLs = null;
+        private Vector<TextLayout> lineBreakTLs = null;
 
         /// Whether the current draw command requested is for printing
         private boolean isPrinting = false;
@@ -800,7 +799,7 @@
                 if ( textToUse == FILE_TEXT ) {
                     if ( !isPrinting )
                       f2dt.fireChangeStatus( "LineBreaking Text... Please Wait", false );
-                    lineBreakTLs = new Vector();
+                    lineBreakTLs = new Vector<>();
                     for ( int i = 0; i < fileText.length; i++ ) {
                         AttributedString as =
                           new AttributedString( fileText[i], g2.getFont().getAttributes() );
@@ -929,7 +928,7 @@
                 float xPos, yPos = (float) canvasInset_Y;
                 g2.drawRect( 0, 0, w - 1, h - 1 );
                 for ( int i = drawStart; i <= drawEnd; i++ ) {
-                    TextLayout oneLine = (TextLayout) lineBreakTLs.elementAt( i );
+                    TextLayout oneLine = lineBreakTLs.elementAt( i );
                     xPos =
                       oneLine.isLeftToRight() ?
                       canvasInset_X : ( (float) w - oneLine.getAdvance() - canvasInset_X );
@@ -992,9 +991,9 @@
             /// Back up metrics and other drawing info before printing modifies it
             int backupDrawStart = drawStart, backupDrawEnd = drawEnd;
             int backupNumCharAcross = numCharAcross, backupNumCharDown = numCharDown;
-            Vector backupLineBreakTLs = null;
+            Vector<TextLayout> backupLineBreakTLs = null;
             if ( textToUse == FILE_TEXT )
-              backupLineBreakTLs = (Vector) lineBreakTLs.clone();
+              backupLineBreakTLs = new Vector<>(lineBreakTLs);
 
             printPageNumber = pageIndex;
             isPrinting = true;
@@ -1137,7 +1136,7 @@
                                   zoomAreaWidth / 2, (int) ( maxAscent * ZOOM ));
             g2.dispose();
             if ( !nowZooming )
-              zoomWindow.show();
+              zoomWindow.setVisible(true);
             /// This is sort of redundant... since there is a paint function
             /// inside zoomWindow definition that does the drawImage.
             /// (I should be able to call just repaint() here)
@@ -1176,7 +1175,7 @@
         public void mouseReleased( MouseEvent e ) {
             if ( textToUse == RANGE_TEXT || textToUse == ALL_GLYPHS ) {
                 if ( nowZooming )
-                  zoomWindow.hide();
+                  zoomWindow.setVisible(false);
                 nowZooming = false;
             }
             this.setCursor( Cursor.getDefaultCursor() );
@@ -1246,7 +1245,7 @@
        }
        public static Object getValue(int ordinal) {
            if (valArray == null) {
-               valArray = (FMValues[])EnumSet.allOf(FMValues.class).toArray(new FMValues[0]);
+               valArray = FMValues.values();
            }
            for (int i=0;i<valArray.length;i++) {
                if (valArray[i].ordinal() == ordinal) {
@@ -1257,7 +1256,7 @@
        }
        private static FMValues[] getArray() {
            if (valArray == null) {
-               valArray = (FMValues[])EnumSet.allOf(FMValues.class).toArray(new FMValues[0]);
+               valArray = FMValues.values();
            }
            return valArray;
        }
@@ -1308,7 +1307,7 @@
 
        public static Object getValue(int ordinal) {
            if (valArray == null) {
-               valArray = (AAValues[])EnumSet.allOf(AAValues.class).toArray(new AAValues[0]);
+               valArray = AAValues.values();
            }
            for (int i=0;i<valArray.length;i++) {
                if (valArray[i].ordinal() == ordinal) {
@@ -1320,8 +1319,7 @@
 
        private static AAValues[] getArray() {
            if (valArray == null) {
-               Object [] oa = EnumSet.allOf(AAValues.class).toArray(new AAValues[0]);
-               valArray = (AAValues[])(EnumSet.allOf(AAValues.class).toArray(new AAValues[0]));
+               valArray = AAValues.values();
            }
            return valArray;
        }
--- a/src/demo/share/jfc/Font2DTest/RangeMenu.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/src/demo/share/jfc/Font2DTest/RangeMenu.java	Tue Apr 07 18:33:26 2020 +0000
@@ -62,7 +62,7 @@
 
 /// Custom made choice menu that holds data for unicode range
 
-public final class RangeMenu extends JComboBox implements ActionListener {
+public final class RangeMenu extends JComboBox<String> implements ActionListener {
 
     private static final int[][] UNICODE_RANGES = getUnicodeRanges();
     private static final String[] UNICODE_RANGE_NAMES = getUnicodeRangeNames();
@@ -181,12 +181,12 @@
         Object source = e.getSource();
 
         if ( source instanceof JComboBox ) {
-                String rangeName = (String)((JComboBox)source).getSelectedItem();
+                String rangeName = (String)((JComboBox<?>)source).getSelectedItem();
 
                 if ( rangeName.equals("Custom...") ) {
                     useCustomRange = true;
                     customRangeDialog.setLocationRelativeTo(parent);
-                    customRangeDialog.show();
+                    customRangeDialog.setVisible(true);
                 }
                 else {
                   useCustomRange = false;
@@ -195,7 +195,7 @@
         }
         else if ( source instanceof JButton ) {
                 /// Since it is only "OK" button that sends any action here...
-                customRangeDialog.hide();
+                customRangeDialog.setVisible(false);
         }
     }
 
--- a/src/demo/share/jfc/J2Ddemo/java2d/DemoPanel.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/src/demo/share/jfc/J2Ddemo/java2d/DemoPanel.java	Tue Apr 07 18:33:26 2020 +0000
@@ -64,7 +64,7 @@
         try {
             if (obj instanceof String) {
                 className = (String) obj;
-                obj = Class.forName(className).newInstance();
+                obj = Class.forName(className).getDeclaredConstructor().newInstance();
             }
             if (obj instanceof Component) {
                 add((Component) obj);
--- a/src/demo/share/jfc/J2Ddemo/java2d/GlobalControls.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/src/demo/share/jfc/J2Ddemo/java2d/GlobalControls.java	Tue Apr 07 18:33:26 2020 +0000
@@ -63,7 +63,7 @@
         "USHORT_x555_RGB", "BYTE_GRAY", "USHORT_GRAY",
         "BYTE_BINARY", "BYTE_INDEXED", "BYTE_BINARY 2 bit", "BYTE_BINARY 4 bit",
         "INT_RGBx", "USHORT_555x_RGB" };
-    public final JComboBox screenCombo;
+    public final JComboBox<String> screenCombo;
     public TextureChooser texturechooser;
     public JCheckBox aliasCB, renderCB, toolBarCB;
     public JCheckBox compositeCB, textureCB;
@@ -83,7 +83,7 @@
         textureCB = createCheckBox("Texture", false, 2);
         compositeCB = createCheckBox("AlphaComposite", false, 3);
 
-        screenCombo = new JComboBox();
+        screenCombo = new JComboBox<>();
         screenCombo.setPreferredSize(new Dimension(120, 18));
         screenCombo.setLightWeightPopupEnabled(true);
         screenCombo.setFont(font);
--- a/src/demo/share/jfc/J2Ddemo/java2d/Tools.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/src/demo/share/jfc/J2Ddemo/java2d/Tools.java	Tue Apr 07 18:33:26 2020 +0000
@@ -94,7 +94,7 @@
     protected boolean focus;
     public JToggleButton toggleB;
     public JButton printB;
-    public JComboBox screenCombo;
+    public JComboBox<String> screenCombo;
     public JToggleButton renderB, aliasB;
     public JToggleButton textureB, compositeB;
     public JButton startStopB;
@@ -167,7 +167,7 @@
             toolbar.setPreferredSize(new Dimension(6*25, 26));
         }
 
-        screenCombo = new JComboBox();
+        screenCombo = new JComboBox<>();
         screenCombo.setPreferredSize(new Dimension(100, 18));
         screenCombo.setFont(font);
         for (String name : GlobalControls.screenNames) {
--- a/src/demo/share/jfc/J2Ddemo/java2d/demos/Clipping/Areas.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/src/demo/share/jfc/J2Ddemo/java2d/demos/Clipping/Areas.java	Tue Apr 07 18:33:26 2020 +0000
@@ -151,7 +151,6 @@
 
         Areas demo;
         JToolBar toolbar;
-        JComboBox combo;
 
         public DemoControls(Areas demo) {
             super(demo.name);
--- a/src/demo/share/jfc/J2Ddemo/java2d/demos/Fonts/Tree.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/src/demo/share/jfc/J2Ddemo/java2d/demos/Fonts/Tree.java	Tue Apr 07 18:33:26 2020 +0000
@@ -51,8 +51,8 @@
 public class Tree extends AnimatingSurface {
 
     private char theC = 'A';
-    private Character theT = new Character(theC);
-    private Character theR = new Character((char) (theC + 1));
+    private Character theT = Character.valueOf(theC);
+    private Character theR = Character.valueOf((char) (theC + 1));
 
     public Tree() {
         setBackground(WHITE);
@@ -65,9 +65,9 @@
     @Override
     public void step(int w, int h) {
         setSleepAmount(4000);
-        theT = new Character(theC = ((char) (theC + 1)));
-        theR = new Character((char) (theC + 1));
-        if (theR.compareTo(new Character('z')) == 0) {
+        theT = Character.valueOf(theC = ((char) (theC + 1)));
+        theR = Character.valueOf((char) (theC + 1));
+        if (theR.compareTo(Character.valueOf('z')) == 0) {
             theC = 'A';
         }
     }
--- a/src/demo/share/jfc/J2Ddemo/java2d/demos/Images/ImageOps.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/src/demo/share/jfc/J2Ddemo/java2d/demos/Images/ImageOps.java	Tue Apr 07 18:33:26 2020 +0000
@@ -188,20 +188,20 @@
     static class DemoControls extends CustomControls implements ActionListener {
 
         ImageOps demo;
-        JComboBox imgCombo, opsCombo;
+        JComboBox<String> imgCombo, opsCombo;
         Font font = new Font(Font.SERIF, Font.PLAIN, 10);
 
         @SuppressWarnings("LeakingThisInConstructor")
         public DemoControls(ImageOps demo) {
             super(demo.name);
             this.demo = demo;
-            add(imgCombo = new JComboBox());
+            add(imgCombo = new JComboBox<>());
             imgCombo.setFont(font);
             for (String name : ImageOps.imgName) {
                 imgCombo.addItem(name);
             }
             imgCombo.addActionListener(this);
-            add(opsCombo = new JComboBox());
+            add(opsCombo = new JComboBox<>());
             opsCombo.setFont(font);
             for (String name : ImageOps.opsName) {
                 opsCombo.addItem(name);
--- a/src/demo/share/jfc/J2Ddemo/java2d/demos/Mix/Balls.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/src/demo/share/jfc/J2Ddemo/java2d/demos/Mix/Balls.java	Tue Apr 07 18:33:26 2020 +0000
@@ -71,7 +71,7 @@
     private boolean active;
     protected Ball[] balls = new Ball[colors.length];
     protected boolean clearToggle;
-    protected JComboBox combo;
+    protected JComboBox<String> combo;
 
     public Balls() {
         setBackground(WHITE);
@@ -279,7 +279,7 @@
             addTool("B", demo.balls[4].isSelected);
             addTool("I", demo.balls[5].isSelected);
             addTool("V", demo.balls[6].isSelected);
-            add(combo = new JComboBox());
+            add(combo = new JComboBox<>());
             combo.addItem("10");
             combo.addItem("20");
             combo.addItem("30");
--- a/src/demo/share/jfc/J2Ddemo/java2d/demos/Mix/BezierScroller.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/src/demo/share/jfc/J2Ddemo/java2d/demos/Mix/BezierScroller.java	Tue Apr 07 18:33:26 2020 +0000
@@ -60,7 +60,6 @@
 import java2d.AnimatingControlsSurface;
 import java2d.CustomControls;
 import javax.swing.AbstractButton;
-import javax.swing.JComboBox;
 import javax.swing.JToggleButton;
 import javax.swing.JToolBar;
 
@@ -320,7 +319,6 @@
 
         BezierScroller demo;
         JToolBar toolbar;
-        JComboBox combo;
 
         public DemoControls(BezierScroller demo) {
             super(demo.name);
--- a/src/demo/share/jfc/J2Ddemo/java2d/demos/Paint/GradAnim.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/src/demo/share/jfc/J2Ddemo/java2d/demos/Paint/GradAnim.java	Tue Apr 07 18:33:26 2020 +0000
@@ -266,13 +266,13 @@
     class DemoControls extends CustomControls implements ActionListener {
 
         GradAnim demo;
-        JComboBox combo;
+        JComboBox<String> combo;
 
         @SuppressWarnings("LeakingThisInConstructor")
         public DemoControls(GradAnim demo) {
             super(demo.name);
             this.demo = demo;
-            combo = new JComboBox();
+            combo = new JComboBox<>();
             combo.addActionListener(this);
             combo.addItem("2-color GradientPaint");
             combo.addItem("3-color LinearGradientPaint");
--- a/src/demo/share/jfc/J2Ddemo/java2d/demos/Paint/TextureAnim.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/src/demo/share/jfc/J2Ddemo/java2d/demos/Paint/TextureAnim.java	Tue Apr 07 18:33:26 2020 +0000
@@ -299,7 +299,7 @@
 
         TextureAnim demo;
         JToolBar toolbar;
-        JComboBox combo;
+        JComboBox<String> combo;
         JMenu menu;
         JMenuItem[] menuitems;
         int iconSize = 20;
@@ -318,7 +318,7 @@
             addTool("RO", "rotate", false);
             addTool("SX", "shear x", false);
             addTool("SY", "shear y", false);
-            add(combo = new JComboBox());
+            add(combo = new JComboBox<>());
             combo.addActionListener(this);
             combo.addItem("8");
             combo.addItem("16");
--- a/src/demo/share/jfc/Metalworks/MetalworksPrefs.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/src/demo/share/jfc/Metalworks/MetalworksPrefs.java	Tue Apr 07 18:33:26 2020 +0000
@@ -162,7 +162,7 @@
 
         JPanel protoPanel = new JPanel();
         JLabel protoLabel = new JLabel("Protocol");
-        JComboBox protocol = new JComboBox();
+        JComboBox<String> protocol = new JComboBox<>();
         protocol.addItem("SMTP");
         protocol.addItem("IMAP");
         protocol.addItem("Other...");
@@ -171,7 +171,7 @@
 
         JPanel attachmentPanel = new JPanel();
         JLabel attachmentLabel = new JLabel("Attachments");
-        JComboBox attach = new JComboBox();
+        JComboBox<String> attach = new JComboBox<>();
         attach.addItem("Download Always");
         attach.addItem("Ask size > 1 Meg");
         attach.addItem("Ask size > 5 Meg");
--- a/src/demo/share/jfc/Notepad/ElementTreePanel.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/src/demo/share/jfc/Notepad/ElementTreePanel.java	Tue Apr 07 18:33:26 2020 +0000
@@ -115,7 +115,7 @@
 
                 if (as != null) {
                     StringBuilder retBuffer = new StringBuilder("[");
-                    Enumeration names = as.getAttributeNames();
+                    Enumeration<?> names = as.getAttributeNames();
 
                     while (names.hasMoreElements()) {
                         Object nextName = names.nextElement();
--- a/src/demo/share/jfc/Stylepad/Stylepad.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/src/demo/share/jfc/Stylepad/Stylepad.java	Tue Apr 07 18:33:26 2020 +0000
@@ -255,8 +255,8 @@
         w.loadDocument();
     }
 
-    JComboBox createFamilyChoices() {
-        JComboBox b = new JComboBox();
+    JComboBox<String> createFamilyChoices() {
+        JComboBox<String> b = new JComboBox<>();
         String[] fontNames = GraphicsEnvironment.getLocalGraphicsEnvironment().
                 getAvailableFontFamilyNames();
         for (String fontName : fontNames) {
--- a/src/demo/share/jfc/SwingSet2/ButtonDemo.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/src/demo/share/jfc/SwingSet2/ButtonDemo.java	Tue Apr 07 18:33:26 2020 +0000
@@ -61,12 +61,12 @@
     JPanel radioButtonPanel = new JPanel();
     JPanel toggleButtonPanel = new JPanel();
 
-    Vector buttons = new Vector();
-    Vector checkboxes = new Vector();
-    Vector radiobuttons = new Vector();
-    Vector togglebuttons = new Vector();
+    Vector<Component> buttons = new Vector<>();
+    Vector<Component> checkboxes = new Vector<>();
+    Vector<Component> radiobuttons = new Vector<>();
+    Vector<Component> togglebuttons = new Vector<>();
 
-    Vector currentControls = buttons;
+    Vector<Component> currentControls = buttons;
 
     JButton button;
     JCheckBox check;
@@ -466,12 +466,12 @@
                     String command = cb.getActionCommand();
                     if(command == "Enabled") {
                         for(int i = 0; i < currentControls.size(); i++) {
-                            c = (Component) currentControls.elementAt(i);
+                            c = currentControls.elementAt(i);
                             c.setEnabled(cb.isSelected());
                             c.invalidate();
                         }
                     } else if(command == "PaintBorder") {
-                        c = (Component) currentControls.elementAt(0);
+                        c = currentControls.elementAt(0);
                         if(c instanceof AbstractButton) {
                             for(int i = 0; i < currentControls.size(); i++) {
                                 b = (AbstractButton) currentControls.elementAt(i);
@@ -480,7 +480,7 @@
                             }
                         }
                     } else if(command == "PaintFocus") {
-                        c = (Component) currentControls.elementAt(0);
+                        c = currentControls.elementAt(0);
                         if(c instanceof AbstractButton) {
                             for(int i = 0; i < currentControls.size(); i++) {
                                 b = (AbstractButton) currentControls.elementAt(i);
@@ -489,7 +489,7 @@
                             }
                         }
                     } else if(command == "ContentFilled") {
-                        c = (Component) currentControls.elementAt(0);
+                        c = currentControls.elementAt(0);
                         if(c instanceof AbstractButton) {
                             for(int i = 0; i < currentControls.size(); i++) {
                                 b = (AbstractButton) currentControls.elementAt(i);
@@ -549,7 +549,7 @@
         }
     }
 
-    public Vector getCurrentControls() {
+    public Vector<Component> getCurrentControls() {
         return currentControls;
     }
 }
--- a/src/demo/share/jfc/SwingSet2/ColorChooserDemo.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/src/demo/share/jfc/SwingSet2/ColorChooserDemo.java	Tue Apr 07 18:33:26 2020 +0000
@@ -128,7 +128,7 @@
                                                             okListener,
                                                             null);
 
-                dialog.show();
+                dialog.setVisible(true);
 
                 if(e.getSource() == outerColorButton) {
                     bezAnim.setOuterColor(chosen);
--- a/src/demo/share/jfc/SwingSet2/ComboBoxDemo.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/src/demo/share/jfc/SwingSet2/ComboBoxDemo.java	Tue Apr 07 18:33:26 2020 +0000
@@ -57,13 +57,13 @@
     Face face;
     JLabel faceLabel;
 
-    JComboBox hairCB;
-    JComboBox eyesCB;
-    JComboBox mouthCB;
+    JComboBox<?> hairCB;
+    JComboBox<?> eyesCB;
+    JComboBox<?> mouthCB;
 
-    JComboBox presetCB;
+    JComboBox<?> presetCB;
 
-    Hashtable parts = new Hashtable();
+    Hashtable<String, Object> parts = new Hashtable<>();
 
     /**
      * main method allows us to run as a standalone demo.
@@ -111,28 +111,31 @@
 
         JLabel l = (JLabel) comboBoxPanel.add(new JLabel(getString("ComboBoxDemo.presets")));
         l.setAlignmentX(JLabel.LEFT_ALIGNMENT);
-        presetCB = (JComboBox) comboBoxPanel.add(createPresetComboBox());
+        presetCB = createPresetComboBox();
         presetCB.setAlignmentX(JComboBox.LEFT_ALIGNMENT);
         l.setLabelFor(presetCB);
+        comboBoxPanel.add(presetCB);
         comboBoxPanel.add(Box.createRigidArea(VGAP30));
 
         l = (JLabel) comboBoxPanel.add(new JLabel(getString("ComboBoxDemo.hair_description")));
         l.setAlignmentX(JLabel.LEFT_ALIGNMENT);
-        hairCB = (JComboBox) comboBoxPanel.add(createHairComboBox());
+        hairCB = createHairComboBox();
         hairCB.setAlignmentX(JComboBox.LEFT_ALIGNMENT);
         l.setLabelFor(hairCB);
+        comboBoxPanel.add(hairCB);
         comboBoxPanel.add(Box.createRigidArea(VGAP15));
 
         l = (JLabel) comboBoxPanel.add(new JLabel(getString("ComboBoxDemo.eyes_description")));
         l.setAlignmentX(JLabel.LEFT_ALIGNMENT);
-        eyesCB = (JComboBox) comboBoxPanel.add(createEyesComboBox());
+        eyesCB = createEyesComboBox();
         eyesCB.setAlignmentX(JComboBox.LEFT_ALIGNMENT);
         l.setLabelFor(eyesCB);
+        comboBoxPanel.add(eyesCB);
         comboBoxPanel.add(Box.createRigidArea(VGAP15));
 
         l = (JLabel) comboBoxPanel.add(new JLabel(getString("ComboBoxDemo.mouth_description")));
         l.setAlignmentX(JLabel.LEFT_ALIGNMENT);
-        mouthCB = (JComboBox) comboBoxPanel.add(createMouthComboBox());
+        mouthCB = (JComboBox<?>) comboBoxPanel.add(createMouthComboBox());
         mouthCB.setAlignmentX(JComboBox.LEFT_ALIGNMENT);
         l.setLabelFor(mouthCB);
         comboBoxPanel.add(Box.createRigidArea(VGAP15));
@@ -217,36 +220,36 @@
         return face;
     }
 
-    JComboBox createHairComboBox() {
-        JComboBox cb = new JComboBox();
+    JComboBox<String> createHairComboBox() {
+        JComboBox<String> cb = new JComboBox<>();
         fillComboBox(cb);
         cb.addActionListener(this);
         return cb;
     }
 
-    JComboBox createEyesComboBox() {
-        JComboBox cb = new JComboBox();
+    JComboBox<String> createEyesComboBox() {
+        JComboBox<String> cb = new JComboBox<>();
         fillComboBox(cb);
         cb.addActionListener(this);
         return cb;
     }
 
-    JComboBox createNoseComboBox() {
-        JComboBox cb = new JComboBox();
+    JComboBox<String> createNoseComboBox() {
+        JComboBox<String> cb = new JComboBox<>();
         fillComboBox(cb);
         cb.addActionListener(this);
         return cb;
     }
 
-    JComboBox createMouthComboBox() {
-        JComboBox cb = new JComboBox();
+    JComboBox<String> createMouthComboBox() {
+        JComboBox<String> cb = new JComboBox<>();
         fillComboBox(cb);
         cb.addActionListener(this);
         return cb;
     }
 
-    JComboBox createPresetComboBox() {
-        JComboBox cb = new JComboBox();
+    JComboBox<String> createPresetComboBox() {
+        JComboBox<String> cb = new JComboBox<>();
         cb.addItem(getString("ComboBoxDemo.preset1"));
         cb.addItem(getString("ComboBoxDemo.preset2"));
         cb.addItem(getString("ComboBoxDemo.preset3"));
@@ -261,7 +264,7 @@
         return cb;
     }
 
-    void fillComboBox(JComboBox cb) {
+    void fillComboBox(JComboBox<String> cb) {
         cb.addItem(getString("ComboBoxDemo.brent"));
         cb.addItem(getString("ComboBoxDemo.georges"));
         cb.addItem(getString("ComboBoxDemo.hans"));
@@ -279,15 +282,15 @@
 
     public void actionPerformed(ActionEvent e) {
         if(e.getSource() == hairCB) {
-            String name = (String) parts.get((String) hairCB.getSelectedItem());
+            String name = (String) parts.get(hairCB.getSelectedItem());
             face.setHair((ImageIcon) parts.get(name + "hair"));
             faceLabel.repaint();
         } else if(e.getSource() == eyesCB) {
-            String name = (String) parts.get((String) eyesCB.getSelectedItem());
+            String name = (String) parts.get(eyesCB.getSelectedItem());
             face.setEyes((ImageIcon) parts.get(name + "eyes"));
             faceLabel.repaint();
         } else if(e.getSource() == mouthCB) {
-            String name = (String) parts.get((String) mouthCB.getSelectedItem());
+            String name = (String) parts.get(mouthCB.getSelectedItem());
             face.setMouth((ImageIcon) parts.get(name + "mouth"));
             faceLabel.repaint();
         } else if(e.getSource() == presetCB) {
--- a/src/demo/share/jfc/SwingSet2/DemoModule.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/src/demo/share/jfc/SwingSet2/DemoModule.java	Tue Apr 07 18:33:26 2020 +0000
@@ -51,7 +51,7 @@
  *
  * @author Jeff Dinkins
  */
-public class DemoModule extends JApplet {
+public class DemoModule extends JFrame {
 
     // The preferred size of the demo
     private int PREFERRED_WIDTH = 680;
@@ -190,7 +190,7 @@
         frame.getContentPane().add(getDemoPanel(), BorderLayout.CENTER);
         getDemoPanel().setPreferredSize(new Dimension(PREFERRED_WIDTH, PREFERRED_HEIGHT));
         frame.pack();
-        frame.show();
+        frame.setVisible(true);
     }
 
     public JPanel createHorizontalPanel(boolean threeD) {
--- a/src/demo/share/jfc/SwingSet2/DirectionPanel.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/src/demo/share/jfc/SwingSet2/DirectionPanel.java	Tue Apr 07 18:33:26 2020 +0000
@@ -92,9 +92,9 @@
     }
 
     public void setSelection( String selection  ) {
-        Enumeration e = group.getElements();
+        Enumeration<AbstractButton> e = group.getElements();
         while( e.hasMoreElements() ) {
-            JRadioButton b = (JRadioButton)e.nextElement();
+            AbstractButton b = e.nextElement();
             if( b.getActionCommand().equals(selection) ) {
                b.setSelected(true);
             }
@@ -147,10 +147,7 @@
             getAccessibleContext().setAccessibleName(direction);
             getAccessibleContext().setAccessibleDescription(description);
             setSelected(selected);
-        }
-
-        public boolean isFocusTraversable() {
-            return false;
+            setFocusable(false);
         }
 
         public void setBorder(Border b) {
--- a/src/demo/share/jfc/SwingSet2/ExampleFileView.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/src/demo/share/jfc/SwingSet2/ExampleFileView.java	Tue Apr 07 18:33:26 2020 +0000
@@ -59,9 +59,9 @@
  * @author Jeff Dinkins
  */
 public class ExampleFileView extends FileView {
-    private Hashtable icons = new Hashtable(5);
-    private Hashtable fileDescriptions = new Hashtable(5);
-    private Hashtable typeDescriptions = new Hashtable(5);
+    private Hashtable<String, Icon> icons = new Hashtable<>(5);
+    private Hashtable<File, String> fileDescriptions = new Hashtable<>(5);
+    private Hashtable<String, String> typeDescriptions = new Hashtable<>(5);
 
     /**
      * The name of the file.  Do nothing special here. Let
@@ -85,7 +85,7 @@
      * @see FileView#getDescription
      */
     public String getDescription(File f) {
-        return (String) fileDescriptions.get(f);
+        return fileDescriptions.get(f);
     };
 
     /**
@@ -111,7 +111,7 @@
      * @see FileView#getTypeDescription
      */
     public String getTypeDescription(File f) {
-        return (String) typeDescriptions.get(getExtension(f));
+        return typeDescriptions.get(getExtension(f));
     }
 
     /**
@@ -149,7 +149,7 @@
         Icon icon = null;
         String extension = getExtension(f);
         if(extension != null) {
-            icon = (Icon) icons.get(extension);
+            icon = icons.get(extension);
         }
         return icon;
     }
--- a/src/demo/share/jfc/SwingSet2/FileChooserDemo.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/src/demo/share/jfc/SwingSet2/FileChooserDemo.java	Tue Apr 07 18:33:26 2020 +0000
@@ -273,7 +273,7 @@
                 dialog.getContentPane().add(custom, BorderLayout.CENTER);
                 dialog.pack();
                 dialog.setLocationRelativeTo(getDemoPanel());
-                dialog.show();
+                dialog.setVisible(true);
             }
         };
         return createButton(a);
--- a/src/demo/share/jfc/SwingSet2/InternalFrameDemo.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/src/demo/share/jfc/SwingSet2/InternalFrameDemo.java	Tue Apr 07 18:33:26 2020 +0000
@@ -59,9 +59,9 @@
     ImageIcon icon1, icon2, icon3, icon4;
     ImageIcon smIcon1, smIcon2, smIcon3, smIcon4;
 
-    public Integer FIRST_FRAME_LAYER  = new Integer(1);
-    public Integer DEMO_FRAME_LAYER   = new Integer(2);
-    public Integer PALETTE_LAYER     = new Integer(3);
+    public Integer FIRST_FRAME_LAYER  = Integer.valueOf(1);
+    public Integer DEMO_FRAME_LAYER   = Integer.valueOf(2);
+    public Integer PALETTE_LAYER     = Integer.valueOf(3);
 
     public int FRAME0_X        = 15;
     public int FRAME0_Y        = 280;
--- a/src/demo/share/jfc/SwingSet2/LayoutControlPanel.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/src/demo/share/jfc/SwingSet2/LayoutControlPanel.java	Tue Apr 07 18:33:26 2020 +0000
@@ -104,7 +104,7 @@
         // Make sure the controls' text position and label alignment match
         // the initial value of the associated direction panel.
         for(int i = 0; i < demo.getCurrentControls().size(); i++) {
-            Component c = (Component) demo.getCurrentControls().elementAt(i);
+            Component c = demo.getCurrentControls().elementAt(i);
             setPosition(c, RIGHT, CENTER);
             setAlignment(c,CENTER,CENTER);
         }
@@ -173,7 +173,7 @@
             }
 
             for(int i = 0; i < demo.getCurrentControls().size(); i++) {
-                Component c = (Component) demo.getCurrentControls().elementAt(i);
+                Component c = demo.getCurrentControls().elementAt(i);
                 int hPos, vPos, hAlign, vAlign;
                 if( c instanceof AbstractButton ) {
                    hPos = ((AbstractButton)c).getHorizontalTextPosition();
@@ -228,7 +228,7 @@
                     hPos = RIGHT; vPos = BOTTOM;
             }
             for(int i = 0; i < demo.getCurrentControls().size(); i++) {
-                Component c = (Component) demo.getCurrentControls().elementAt(i);
+                Component c = demo.getCurrentControls().elementAt(i);
                 setPosition(c, hPos, vPos);
             }
             demo.invalidate();
@@ -267,7 +267,7 @@
                     hPos = RIGHT; vPos = BOTTOM;
             }
             for(int i = 0; i < demo.getCurrentControls().size(); i++) {
-                Component c = (Component) demo.getCurrentControls().elementAt(i);
+                Component c = demo.getCurrentControls().elementAt(i);
                 setAlignment(c,hPos,vPos);
                 c.invalidate();
             }
--- a/src/demo/share/jfc/SwingSet2/ListDemo.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/src/demo/share/jfc/SwingSet2/ListDemo.java	Tue Apr 07 18:33:26 2020 +0000
@@ -59,7 +59,7 @@
  * @author Jeff Dinkins
  */
 public class ListDemo extends DemoModule {
-    JList list;
+    JList<String> list;
 
     JPanel prefixList;
     JPanel suffixList;
@@ -69,7 +69,7 @@
 
     GeneratedListModel listModel;
 
-    Vector checkboxes = new Vector();
+    Vector<JCheckBox> checkboxes = new Vector<>();
 
     /**
      * main method allows us to run as a standalone demo.
@@ -103,7 +103,7 @@
         centerPanel.add(Box.createRigidArea(HGAP30));
 
         // Create the list
-        list = new JList();
+        list = new JList<>();
         list.setCellRenderer(new CompanyLogoListCellRenderer());
         listModel = new GeneratedListModel(this);
         list.setModel(listModel);
@@ -293,12 +293,12 @@
     }
 
 
-    class GeneratedListModel extends AbstractListModel {
+    class GeneratedListModel extends AbstractListModel<String> {
         ListDemo demo;
         Permuter permuter;
 
-        public Vector prefix = new Vector();
-        public Vector suffix = new Vector();
+        public Vector<String> prefix = new Vector<>();
+        public Vector<String> suffix = new Vector<>();
 
         public GeneratedListModel (ListDemo demo) {
             this.demo = demo;
@@ -337,7 +337,7 @@
             return prefix.size() * suffix.size();
         }
 
-        public Object getElementAt(int index) {
+        public String getElementAt(int index) {
             if(permuter == null) {
                 update();
             }
@@ -363,7 +363,7 @@
 
     class CompanyLogoListCellRenderer extends DefaultListCellRenderer {
        public Component getListCellRendererComponent(
-            JList list,
+            JList<?> list,
             Object value,
             int index,
             boolean isSelected,
--- a/src/demo/share/jfc/SwingSet2/OptionPaneDemo.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/src/demo/share/jfc/SwingSet2/OptionPaneDemo.java	Tue Apr 07 18:33:26 2020 +0000
@@ -163,7 +163,7 @@
                 message[0] = getString("OptionPaneDemo.componentmessage");
                 message[1] = new JTextField(getString("OptionPaneDemo.componenttextfield"));
 
-                JComboBox cb = new JComboBox();
+                JComboBox<String> cb = new JComboBox<>();
                 cb.addItem(getString("OptionPaneDemo.component_cb1"));
                 cb.addItem(getString("OptionPaneDemo.component_cb2"));
                 cb.addItem(getString("OptionPaneDemo.component_cb3"));
--- a/src/demo/share/jfc/SwingSet2/SliderDemo.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/src/demo/share/jfc/SwingSet2/SliderDemo.java	Tue Apr 07 18:33:26 2020 +0000
@@ -164,7 +164,9 @@
         s.setPaintLabels( true );
         s.setSnapToTicks( true );
 
-        s.getLabelTable().put(new Integer(11), new JLabel(new Integer(11).toString(), JLabel.CENTER));
+        @SuppressWarnings("unchecked")
+        Dictionary<Object, Object> labelTable = s.getLabelTable();
+        labelTable.put(Integer.valueOf(11), new JLabel(Integer.valueOf(11).toString(), JLabel.CENTER));
         s.setLabelTable( s.getLabelTable() );
 
         s.getAccessibleContext().setAccessibleName(getString("SliderDemo.minorticks"));
--- a/src/demo/share/jfc/SwingSet2/SplitPaneDemo.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/src/demo/share/jfc/SwingSet2/SplitPaneDemo.java	Tue Apr 07 18:33:26 2020 +0000
@@ -165,7 +165,7 @@
         JLabel                   label;
 
         divSize = new JTextField();
-        divSize.setText(new Integer(splitPane.getDividerSize()).toString());
+        divSize.setText(Integer.toString(splitPane.getDividerSize()));
         divSize.setColumns(5);
         divSize.getAccessibleContext().setAccessibleName(getString("SplitPaneDemo.divider_size"));
         divSize.addActionListener(new ActionListener() {
--- a/src/demo/share/jfc/SwingSet2/SwingSet2.java	Fri Apr 03 16:43:15 2020 +0200
+++ b/src/demo/share/jfc/SwingSet2/SwingSet2.java	Tue Apr 07 18:33:26 2020 +0000
@@ -71,12 +71,7 @@
 
     void loadDemos() {
         for(int i = 0; i < demos.length;) {
-            if(isApplet() && demos[i].equals("FileChooserDemo")) {
-               // don't load the file chooser demo if we are
-               // an applet
-            } else {
-               loadDemo(demos[i]);
-            }
+            loadDemo(demos[i]);
             i++;
         }
     }
@@ -126,9 +121,6 @@
     // Used only if swingset is an application
     private JFrame frame = null;
 
-    // Used only if swingset is an applet
-    private SwingSet2Applet applet = null;
-
     // To debug or not to debug, that is the question
     private boolean DEBUG = true;
     private int debugCounter = 0;
@@ -151,27 +143,21 @@
 
     private boolean dragEnabled = false;
 
-    public SwingSet2(SwingSet2Applet applet) {
-        this(applet, null);
+    public SwingSet2() {
+        this(null);
     }
 
     /**
      * SwingSet2 Constructor
      */
-    public SwingSet2(SwingSet2Applet applet, GraphicsConfiguration gc) {
-
-        // Note that applet may be null if this is started as an application
-        this.applet = applet;
-
+    public SwingSet2(GraphicsConfiguration gc) {
         String lafClassName = UIManager.getLookAndFeel().getClass().getName();
         lookAndFeelData = getInstalledLookAndFeelData();
         currentLookAndFeel = Arrays.stream(lookAndFeelData)
                 .filter(laf -> lafClassName.equals(laf.className))
                 .findFirst().get();
 
-        if (!isApplet()) {
-            frame = createFrame(gc);
-        }
+        frame = createFrame(gc);
 
         // set the layout
         setLayout(new BorderLayout());
@@ -198,7 +184,7 @@
         SwingUtilities.invokeLater(() -> {
             // Create SwingSet on the default monitor
             UIManager.put("swing.boldMetal", Boolean.FALSE);
-            SwingSet2 swingset = new SwingSet2(null, GraphicsEnvironment.
+            SwingSet2 swingset = new SwingSet2(GraphicsEnvironment.
                                          getLocalGraphicsEnvironment().
                                          getDefaultScreenDevice().
                                          getDefaultConfiguration());
@@ -218,11 +204,7 @@
 
         menuBar = createMenus();
 
-    if (isApplet()) {
-        applet.setJMenuBar(menuBar);
-    } else {
         frame.setJMenuBar(menuBar);
-    }
 
         // creates popup menu accessible via keyboard
         popupMenu = createPopupMenu();
@@ -309,13 +291,11 @@
                        "FileMenu.save_as_accessible_description", null);
 
 
-        if(!isApplet()) {
-            fileMenu.addSeparator();
+        fileMenu.addSeparator();
 
-            createMenuItem(fileMenu, "FileMenu.exit_label", "FileMenu.exit_mnemonic",
-                           "FileMenu.exit_accessible_description", new ExitAction(this)
-            );
-        }
+        createMenuItem(fileMenu, "FileMenu.exit_label", "FileMenu.exit_mnemonic",
+                       "FileMenu.exit_accessible_description", new ExitAction(this)
+        );
 
         // Create these menu items for the first SwingSet only.
         if (numSSs == 0) {
@@ -431,7 +411,6 @@
 
 
         // ***** create the multiscreen menu, if we have multiple screens
-    if (!isApplet()) {
         GraphicsDevice[] screens = GraphicsEnvironment.
                                     getLocalGraphicsEnvironment().
                                     getScreenDevices();
@@ -449,7 +428,6 @@
                 createMultiscreenMenuItem(multiScreenMenu, i);
             }
         }
-    }
 
         return menuBar;
     }
@@ -578,7 +556,7 @@
 
         // register key binding to activate popup menu
         InputMap map = getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
-        map.put(KeyStroke.getKeyStroke(KeyEvent.VK_F10, InputEvent.SHIFT_MASK),
+        map.put(KeyStroke.getKeyStroke(KeyEvent.VK_F10, InputEvent.SHIFT_DOWN_MASK),
                 "postMenuAction");
         map.put(KeyStroke.getKeyStroke(KeyEvent.VK_CONTEXT_MENU, 0), "postMenuAction");
         getActionMap().put("postMenuAction", new ActivatePopupMenuAction(this, popup));
@@ -659,37 +637,34 @@
 
 
     /**
-     * Bring up the SwingSet2 demo by showing the frame (only
-     * applicable if coming up as an application, not an applet);
+     * Bring up the SwingSet2 demo by showing the frame
      */
     public void showSwingSet2() {
-        if(!isApplet() && getFrame() != null) {
-            // put swingset in a frame and show it
-            JFrame f = getFrame();
-            f.setTitle(getString("Frame.title"));
-            f.getContentPane().add(this, BorderLayout.CENTER);
-            f.pack();
+        // put swingset in a frame and show it
+        JFrame f = getFrame();
+        f.setTitle(getString("Frame.title"));
+        f.getContentPane().add(this, BorderLayout.CENTER);
+        f.pack();
 
-            Rectangle screenRect = f.getGraphicsConfiguration().getBounds();
-            Insets screenInsets = Toolkit.getDefaultToolkit().getScreenInsets(
-                    f.getGraphicsConfiguration());
+        Rectangle screenRect = f.getGraphicsConfiguration().getBounds();
+        Insets screenInsets = Toolkit.getDefaultToolkit().getScreenInsets(
+                f.getGraphicsConfiguration());
 
-            // Make sure we don't place the demo off the screen.
-            int centerWidth = screenRect.width < f.getSize().width ?
-                    screenRect.x :
-                    screenRect.x + screenRect.width/2 - f.getSize().width/2;
-            int centerHeight = screenRect.height < f.getSize().height ?
-                    screenRect.y :
-                    screenRect.y + screenRect.height/2 - f.getSize().height/2;
+        // Make sure we don't place the demo off the screen.
+        int centerWidth = screenRect.width < f.getSize().width ?
+                screenRect.x :
+                screenRect.x + screenRect.width/2 - f.getSize().width/2;
+        int centerHeight = screenRect.height < f.getSize().height ?
+                screenRect.y :
+                screenRect.y + screenRect.height/2 - f.getSize().height/2;
 
-            centerHeight = centerHeight < screenInsets.top ?
-                    screenInsets.top : centerHeight;
+        centerHeight = centerHeight < screenInsets.top ?
+                screenInsets.top : centerHeight;
 
-            f.setLocation(centerWidth, centerHeight);
-            f.show();
-            numSSs++;
-            swingSets.add(this);
-        }
+        f.setLocation(centerWidth, centerHeight);
+        f.setVisible(true);
+        numSSs++;
+        swingSets.add(this);
     }
 
     // *******************************************************
@@ -703,8 +678,8 @@
         setStatus(getString("Status.loading") + getString(classname + ".name"));
         DemoModule demo = null;
         try {
-            Class demoClass = Class.forName(classname);
-            Constructor demoConstructor = demoClass.getConstructor(new Class[]{SwingSet2.class});
+            Class<?> demoClass = Class.forName(classname);
+            Constructor<?> demoConstructor = demoClass.getConstructor(new Class[]{SwingSet2.class});
             demo = (DemoModule) demoConstructor.newInstance(new Object[]{this});
             addDemo(demo);
         } catch (Exception e) {
@@ -713,21 +688,6 @@
     }
 
     /**
-     * Determines if this is an applet or application
-     */
-    public boolean isApplet() {
-        return (applet != null);
-    }
-
-    /**
-     * Returns the applet instance
-     */
-    public SwingSet2Applet getApplet() {
-        return applet;
-    }
-
-
-    /**
      * Returns the frame instance
      */
     public JFrame getFrame() {
@@ -763,8 +723,6 @@
         if(contentPane == null) {
             if(getFrame() != null) {
                 contentPane = getFrame().getContentPane();
-            } else if (getApplet() != null) {
-                contentPane = getApplet().getContentPane();
             }
         }
         return contentPane;
@@ -886,15 +844,11 @@
     }
 
     private void updateThisSwingSet() {
-        if (isApplet()) {
-            SwingUtilities.updateComponentTreeUI(getApplet());
+        JFrame frame = getFrame();
+        if (frame == null) {
+            SwingUtilities.updateComponentTreeUI(this);
         } else {
-            JFrame frame = getFrame();
-            if (frame == null) {
-                SwingUtilities.updateComponentTreeUI(this);
-            } else {
-                SwingUtilities.updateComponentTreeUI(frame);
-            }
+            SwingUtilities.updateComponentTreeUI(frame);
         }
 
         SwingUtilities.updateComponentTreeUI(popupMenu);
@@ -909,12 +863,8 @@
     public void updateLookAndFeel() {
         try {
             UIManager.setLookAndFeel(currentLookAndFeel.className);
-            if (isApplet()) {
-                updateThisSwingSet();
-            } else {
-                for (SwingSet2 ss : swingSets) {
-                    ss.updateThisSwingSet();
-                }
+            for (SwingSet2 ss : swingSets) {
+                ss.updateThisSwingSet();
             }
         } catch (Exception ex) {
             System.out.println("Failed loading L&F: " + currentLookAndFeel);
@@ -1142,12 +1092,8 @@
 
         public void actionPerformed(ActionEvent e) {
             boolean dragEnabled = ((JCheckBoxMenuItem)e.getSource()).isSelected();
-            if (isApplet()) {
-                setDragEnabled(dragEnabled);
-            } else {
-                for (SwingSet2 ss : swingSets) {
-                    ss.setDragEnabled(dragEnabled);
-                }
+            for (SwingSet2 ss : swingSets) {
+                ss.setDragEnabled(dragEnabled);
             }
         }
     }
@@ -1208,12 +1154,8 @@
                 button.addActionListener(new OkAction(aboutBox));
             }
             aboutBox.pack();
-            if (isApplet()) {
-                aboutBox.setLocationRelativeTo(getApplet());
-            } else {
-                aboutBox.setLocationRelativeTo(getFrame());
-            }
-            aboutBox.show();
+            aboutBox.setLocationRelativeTo(getFrame());
+            aboutBox.setVisible(true);
         }
     }
 
@@ -1231,13 +1173,13 @@
                                    getScreenDevices();
             if (screen == ALL_SCREENS) {
                 for (int i = 0; i < gds.length; i++) {
-                    SwingSet2 swingset = new SwingSet2(null,
+                    SwingSet2 swingset = new SwingSet2(
                                   gds[i].getDefaultConfiguration());
                     swingset.setDragEnabled(dragEnabled);
                 }
             }
             else {
-                SwingSet2 swingset = new SwingSet2(null,
+                SwingSet2 swingset = new SwingSet2(
                              gds[screen].getDefaultConfiguration());
                 swingset.setDragEnabled(dragEnabled);
             }
--- a/src/demo/share/jfc/SwingSet2/SwingSet2Applet.java	Fri Apr 03 16:43:15 2020 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,78 +0,0 @@
-/*
- *
- * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   - Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   - Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- *   - Neither the name of Oracle nor the names of its
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-
-import javax.swing.*;
-import javax.swing.event.*;
-import javax.swing.text.*;
-import javax.swing.border.*;
-import javax.swing.colorchooser.*;
-import javax.swing.filechooser.*;
-import javax.accessibility.*;
-
-import java.awt.*;
-import java.awt.event.*;