Merge
authorprr
Fri, 21 Jun 2019 09:05:45 -0700
changeset 57517 f72de31c98cd
parent 57516 fe5395d16475 (current diff)
parent 55461 e764228f71dc (diff)
child 57518 e7671524d4e2
Merge
test/jdk/ProblemList.txt
--- a/.hgtags	Tue Jun 18 21:40:50 2019 -0700
+++ b/.hgtags	Fri Jun 21 09:05:45 2019 -0700
@@ -562,3 +562,8 @@
 181986c5476468bc2dd4532af49599003ee8af37 jdk-13+22
 b034d2dee5fc93d42a81b65e58ce3f91e42586ff jdk-13+23
 7e2238451585029680f126ccbb46d01f2ff5607f jdk-13+24
+22b3b7983adab54e318f75aeb94471f7a4429c1e jdk-14+0
+22b3b7983adab54e318f75aeb94471f7a4429c1e jdk-13+25
+2f4e214781a1d597ed36bf5a36f20928c6c82996 jdk-14+1
+0692b67f54621991ba7afbf23e55b788f3555e69 jdk-13+26
+43627549a488b7d0b4df8fad436e36233df89877 jdk-14+2
--- a/doc/building.md	Tue Jun 18 21:40:50 2019 -0700
+++ b/doc/building.md	Fri Jun 21 09:05:45 2019 -0700
@@ -871,6 +871,7 @@
   * `CONF_CHECK`
   * `COMPARE_BUILD`
   * `JDK_FILTER`
+  * `SPEC_FILTER`
 
 ## Running Tests
 
--- a/make/Docs.gmk	Tue Jun 18 21:40:50 2019 -0700
+++ b/make/Docs.gmk	Fri Jun 21 09:05:45 2019 -0700
@@ -487,11 +487,25 @@
 
 ################################################################################
 
+# Use this variable to control which spec files are included in the output.
+# Format: space-delimited list of names, including at most one '%' as a
+# wildcard. Spec source files match if their filename or any enclosing folder
+# name matches one of the items in SPEC_FILTER.
+SPEC_FILTER := %
+
+ApplySpecFilter = \
+    $(strip $(foreach file, $(1), \
+        $(eval searchkeys := $(subst /, ,$(subst $(WORKSPACE_ROOT),,$(file)))) \
+        $(if $(filter $(SPEC_FILTER), $(searchkeys)), \
+            $(file) \
+        ) \
+    ))
+
 # Copy the global resources, including the top-level redirect index.html
-GLOBAL_SPECS_RESOURCES_DIR := $(TOPDIR)/make/data/docs-resources/
+GLOBAL_SPECS_RESOURCES_DIR := $(TOPDIR)/make/data/docs-resources
 $(eval $(call SetupCopyFiles, COPY_GLOBAL_RESOURCES, \
     SRC := $(GLOBAL_SPECS_RESOURCES_DIR), \
-    FILES := $(call FindFiles, $(GLOBAL_SPECS_RESOURCES_DIR)), \
+    FILES := $(call ApplySpecFilter, $(call FindFiles, $(GLOBAL_SPECS_RESOURCES_DIR))), \
     DEST := $(DOCS_OUTPUTDIR), \
 ))
 JDK_INDEX_TARGETS += $(COPY_GLOBAL_RESOURCES)
@@ -499,7 +513,7 @@
 # Copy the legal notices distributed with the docs bundle
 $(eval $(call SetupCopyFiles, COPY_DOCS_LEGAL_NOTICES, \
     SRC := $(TOPDIR)/src/jdk.javadoc/share/legal, \
-    FILES := $(wildcard $(TOPDIR)/src/jdk.javadoc/share/legal/*), \
+    FILES := $(call ApplySpecFilter, $(wildcard $(TOPDIR)/src/jdk.javadoc/share/legal/*)), \
     DEST := $(DOCS_OUTPUTDIR)/legal, \
 ))
 JDK_INDEX_TARGETS += $(COPY_DOCS_LEGAL_NOTICES)
@@ -516,10 +530,10 @@
 $(foreach m, $(ALL_MODULES), \
   $(eval SPECS_$m := $(call FindModuleSpecsDirs, $m)) \
   $(foreach d, $(SPECS_$m), \
-    $(if $(filter $(COPY_SPEC_FILTER), $(call FindFiles, $d)), \
+    $(if $(call ApplySpecFilter, $(filter $(COPY_SPEC_FILTER), $(call FindFiles, $d))), \
       $(eval $(call SetupCopyFiles, COPY_$m, \
           SRC := $d, \
-          FILES := $(filter $(COPY_SPEC_FILTER), $(call FindFiles, $d)), \
+          FILES := $(call ApplySpecFilter, $(filter $(COPY_SPEC_FILTER), $(call FindFiles, $d))), \
           DEST := $(DOCS_OUTPUTDIR)/specs/, \
       )) \
       $(eval JDK_SPECS_TARGETS += $(COPY_$m)) \
@@ -527,31 +541,27 @@
   ) \
 )
 
-# Create copyright footer files that can be provided as input to pandoc. We
-# need different files for different relative paths to the copyright.html
-# file. The number 0-2 below represent how many extra directory levels down
-# below the specs dir the specs html file is located. Each file name is
-# stored in a variable SPECS_BOTTOM_FILE_$n where $n is 0, 1 or 2.
-SPECS_BOTTOM = <hr/>$(COPYRIGHT_BOTTOM)
+# Create copyright footer variables. We need different variables for different
+# relative paths to the copyright.html file. The number 0-2 below represent how
+# many extra directory levels down below the specs dir the specs html file is
+# located.
+SPECS_BOTTOM = <footer class="legal-footer"><hr/>$(COPYRIGHT_BOTTOM)</footer>
 # The legal dir is one ../ below the specs dir, so start with one ../.
 specs_bottom_rel_path := ../
 $(foreach n, 0 1 2, \
-  $(eval SPECS_BOTTOM_FILE_$n := $(SUPPORT_OUTPUTDIR)/docs/full-specs-bottom-$n.txt) \
   $(eval SPECS_BOTTOM_$n := $(call SPECS_BOTTOM,$(specs_bottom_rel_path))) \
-  $(eval $(SPECS_BOTTOM_FILE_$n): \
-      $(call DependOnVariable, SPECS_BOTTOM_$n) ; \
-      $(PRINTF) '$(SPECS_BOTTOM_$n)' > $$@ \
-  ) \
   $(eval specs_bottom_rel_path := $(specs_bottom_rel_path)../) \
 )
 
+SPECS_TOP := $(if $(filter true, $(IS_DRAFT)), <div class="draft-header">$(DRAFT_TEXT)</div>)
+
 # For all html files in $module/share/specs directories, copy and add the
 # copyright footer.
 
 $(foreach m, $(ALL_MODULES), \
   $(eval SPECS_$m := $(call FindModuleSpecsDirs, $m)) \
   $(foreach d, $(SPECS_$m), \
-    $(foreach f, $(filter %.html, $(call FindFiles, $d)), \
+    $(foreach f, $(call ApplySpecFilter, $(filter %.html, $(call FindFiles, $d))), \
       $(eval $m_$f_NOF_SUBDIRS := $(words $(subst /, $(SPACE), $(subst $d, , $(dir $f))))) \
       $(eval $m_$f_NAME := PROCESS_HTML_$m_$(strip $(call RelativePath, $f, $(TOPDIR)))) \
       $(eval $(call SetupTextFileProcessing, $($m_$f_NAME), \
@@ -559,6 +569,7 @@
           SOURCE_BASE_DIR := $d, \
           OUTPUT_DIR := $(DOCS_OUTPUTDIR)/specs/, \
           REPLACEMENTS := \
+              <body> => <body>$(SPECS_TOP) ; \
               </body> => $(SPECS_BOTTOM_$($m_$f_NOF_SUBDIRS))</body>, \
       )) \
       $(eval JDK_SPECS_TARGETS += $($($m_$f_NAME))) \
@@ -575,17 +586,16 @@
   $(foreach m, $(ALL_MODULES), \
     $(eval SPECS_$m := $(call FindModuleSpecsDirs, $m)) \
     $(foreach d, $(SPECS_$m), \
-      $(foreach f, $(filter %.md, $(call FindFiles, $d)), \
+      $(foreach f, $(call ApplySpecFilter, $(filter %.md, $(call FindFiles, $d))), \
         $(eval $m_$f_NOF_SUBDIRS := $(words $(subst /, $(SPACE), $(subst $d, , $(dir $f))))) \
-        $(eval $m_$f_BOTTOM_FILE := $(SPECS_BOTTOM_FILE_$($m_$f_NOF_SUBDIRS))) \
         $(eval $m_$f_NAME := SPECS_TO_HTML_$m_$(strip $(call RelativePath, $f, $(TOPDIR)))) \
         $(eval $(call SetupProcessMarkdown, $($m_$f_NAME), \
             SRC := $d, \
             FILES := $f, \
             DEST := $(DOCS_OUTPUTDIR)/specs/, \
             CSS := $(GLOBAL_SPECS_DEFAULT_CSS_FILE), \
-            OPTIONS := -A $($m_$f_BOTTOM_FILE), \
-            EXTRA_DEPS := $($m_$f_BOTTOM_FILE), \
+            OPTIONS := -V include-before='$(SPECS_TOP)' -V include-after='$(SPECS_BOTTOM_$($m_$f_NOF_SUBDIRS))', \
+            REPLACEMENTS := @@VERSION_STRING@@ => $(VERSION_STRING), \
             POST_PROCESS := $(TOOL_FIXUPPANDOC), \
         )) \
         $(eval JDK_SPECS_TARGETS += $($($m_$f_NAME))) \
@@ -607,7 +617,7 @@
   $(foreach m, $(ALL_MODULES), \
     $(eval MAN_$m := $(call FindModuleManDirs, $m)) \
     $(foreach d, $(MAN_$m), \
-      $(foreach f, $(filter %.md, $(call FindFiles, $d)), \
+      $(foreach f, $(call ApplySpecFilter, $(filter %.md, $(call FindFiles, $d))), \
         $(eval $m_$f_NAME := MAN_TO_HTML_$m_$(strip $(call RelativePath, $f, $(TOPDIR)))) \
         $(eval $(call SetupProcessMarkdown, $($m_$f_NAME), \
             SRC := $d, \
@@ -616,11 +626,10 @@
             FILTER := $(PANDOC_HTML_MANPAGE_FILTER), \
             CSS := $(GLOBAL_SPECS_DEFAULT_CSS_FILE), \
             REPLACEMENTS := @@VERSION_SHORT@@ => $(VERSION_SHORT), \
-            OPTIONS := -A $(SPECS_BOTTOM_FILE_1), \
+            OPTIONS := -V include-before='$(SPECS_TOP)' -V include-after='$(SPECS_BOTTOM_1)', \
             POST_PROCESS := $(TOOL_FIXUPPANDOC), \
             EXTRA_DEPS := $(PANDOC_HTML_MANPAGE_FILTER) \
-                $(PANDOC_HTML_MANPAGE_FILTER_JAVASCRIPT) \
-                $(SPECS_BOTTOM_FILE_1), \
+                $(PANDOC_HTML_MANPAGE_FILTER_JAVASCRIPT), \
         )) \
         $(eval JDK_SPECS_TARGETS += $($($m_$f_NAME))) \
       ) \
@@ -634,23 +643,29 @@
 # Special treatment for generated documentation
 
 JDWP_PROTOCOL := $(SUPPORT_OUTPUTDIR)/gensrc/jdk.jdi/jdwp-protocol.html
-$(eval $(call SetupTextFileProcessing, PROCESS_JDWP_PROTOCOL, \
-    SOURCE_FILES := $(JDWP_PROTOCOL), \
-    OUTPUT_DIR := $(DOCS_OUTPUTDIR)/specs/jdwp, \
-    REPLACEMENTS := \
-        </body> => $(SPECS_BOTTOM_1)</body>, \
-))
-JDK_SPECS_TARGETS += $(PROCESS_JDWP_PROTOCOL)
+ifneq ($(call ApplySpecFilter, $(JDWP_PROTOCOL)), )
+  $(eval $(call SetupTextFileProcessing, PROCESS_JDWP_PROTOCOL, \
+      SOURCE_FILES := $(JDWP_PROTOCOL), \
+      OUTPUT_DIR := $(DOCS_OUTPUTDIR)/specs/jdwp, \
+      REPLACEMENTS := \
+          <body> => <body>$(SPECS_TOP) ; \
+          </body> => $(SPECS_BOTTOM_1)</body>, \
+  ))
+  JDK_SPECS_TARGETS += $(PROCESS_JDWP_PROTOCOL)
+endif
 
 # Get jvmti.html from the main jvm variant (all variants' jvmti.html are identical).
 JVMTI_HTML ?= $(HOTSPOT_OUTPUTDIR)/variant-$(JVM_VARIANT_MAIN)/gensrc/jvmtifiles/jvmti.html
-$(eval $(call SetupTextFileProcessing, PROCESS_JVMTI_HTML, \
-    SOURCE_FILES := $(JVMTI_HTML), \
-    OUTPUT_DIR := $(DOCS_OUTPUTDIR)/specs/, \
-    REPLACEMENTS := \
-        </body> => $(SPECS_BOTTOM_0)</body>, \
-))
-JDK_SPECS_TARGETS += $(PROCESS_JVMTI_HTML)
+ifneq ($(call ApplySpecFilter, $(JVMTI_HTML)), )
+  $(eval $(call SetupTextFileProcessing, PROCESS_JVMTI_HTML, \
+      SOURCE_FILES := $(JVMTI_HTML), \
+      OUTPUT_DIR := $(DOCS_OUTPUTDIR)/specs/, \
+      REPLACEMENTS := \
+          <body> => <body>$(SPECS_TOP) ; \
+          </body> => $(SPECS_BOTTOM_0)</body>, \
+  ))
+  JDK_SPECS_TARGETS += $(PROCESS_JVMTI_HTML)
+endif
 
 ################################################################################
 # Optional target which bundles all generated javadocs into a zip archive.
@@ -672,6 +687,20 @@
 $(eval $(call IncludeCustomExtension, Docs-post.gmk))
 
 ################################################################################
+# Bundles all generated specs into a zip archive, skipping javadocs.
+
+SPECS_ZIP_NAME := jdk-$(VERSION_STRING)-specs.zip
+SPECS_ZIP_FILE := $(OUTPUTDIR)/bundles/$(SPECS_ZIP_NAME)
+
+$(eval $(call SetupZipArchive, BUILD_SPECS_ZIP, \
+    SRC := $(DOCS_OUTPUTDIR), \
+    ZIP := $(SPECS_ZIP_FILE), \
+    EXTRA_DEPS := $(JDK_SPECS_TARGETS), \
+))
+
+SPECS_ZIP_TARGETS += $(BUILD_SPECS_ZIP)
+
+################################################################################
 
 docs-jdk-api-javadoc: $(JDK_API_JAVADOC_TARGETS) $(JDK_API_CUSTOM_TARGETS)
 
@@ -691,11 +720,14 @@
 
 docs-zip: $(ZIP_TARGETS)
 
+docs-specs-zip: $(SPECS_ZIP_TARGETS)
+
 all: docs-jdk-api-javadoc docs-jdk-api-modulegraph docs-javase-api-javadoc \
     docs-javase-api-modulegraph docs-reference-api-javadoc \
-    docs-reference-api-modulegraph docs-jdk-specs docs-jdk-index docs-zip
+    docs-reference-api-modulegraph docs-jdk-specs docs-jdk-index docs-zip \
+    docs-specs-zip
 
 .PHONY: default all docs-jdk-api-javadoc docs-jdk-api-modulegraph \
     docs-javase-api-javadoc docs-javase-api-modulegraph \
     docs-reference-api-javadoc docs-reference-api-modulegraph docs-jdk-specs \
-    docs-jdk-index docs-zip
+    docs-jdk-index docs-zip docs-specs-zip
--- a/make/InitSupport.gmk	Tue Jun 18 21:40:50 2019 -0700
+++ b/make/InitSupport.gmk	Fri Jun 21 09:05:45 2019 -0700
@@ -53,7 +53,7 @@
       COMPARE_BUILD JTREG GTEST MICRO TEST_OPTS TEST_VM_OPTS
 
   # All known make control variables
-  MAKE_CONTROL_VARIABLES := $(INIT_CONTROL_VARIABLES) TEST JDK_FILTER
+  MAKE_CONTROL_VARIABLES := $(INIT_CONTROL_VARIABLES) TEST JDK_FILTER SPEC_FILTER
 
   # Define a simple reverse function.
   # Should maybe move to MakeBase.gmk, but we can't include that file now.
--- a/make/Main.gmk	Tue Jun 18 21:40:50 2019 -0700
+++ b/make/Main.gmk	Fri Jun 21 09:05:45 2019 -0700
@@ -427,6 +427,9 @@
 docs-zip:
 	+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Docs.gmk docs-zip)
 
+docs-specs-zip:
+	+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Docs.gmk docs-specs-zip)
+
 update-build-docs:
 	+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f UpdateBuildDocs.gmk)
 
@@ -436,7 +439,7 @@
 ALL_TARGETS += docs-jdk-api-javadoc docs-jdk-api-modulegraph \
     docs-javase-api-javadoc docs-javase-api-modulegraph \
     docs-reference-api-javadoc docs-reference-api-modulegraph docs-jdk-specs \
-    docs-jdk-index docs-zip update-build-docs update-x11wrappers
+    docs-jdk-index docs-zip docs-specs-zip update-build-docs update-x11wrappers
 
 ################################################################################
 # Cross compilation support
@@ -885,6 +888,8 @@
 
   docs-zip: docs-jdk
 
+  docs-specs-zip: docs-jdk-specs
+
   # Tests
   test: jdk-image test-image
 
--- a/make/autoconf/bootcycle-spec.gmk.in	Tue Jun 18 21:40:50 2019 -0700
+++ b/make/autoconf/bootcycle-spec.gmk.in	Fri Jun 21 09:05:45 2019 -0700
@@ -62,3 +62,7 @@
 endif
 # The bootcycle JVM arguments may differ from the original boot jdk.
 JAVA_FLAGS_BIG := @BOOTCYCLE_JVM_ARGS_BIG@
+# Any CDS settings generated for the bootjdk are invalid in the bootcycle build.
+# By filtering out those JVM args, the bootcycle JVM will use its default
+# settings for CDS.
+JAVA_FLAGS := $(filter-out -XX:SharedArchiveFile% -Xshare%, $(JAVA_FLAGS))
--- a/make/autoconf/build-aux/config.guess	Tue Jun 18 21:40:50 2019 -0700
+++ b/make/autoconf/build-aux/config.guess	Fri Jun 21 09:05:45 2019 -0700
@@ -63,7 +63,7 @@
 # Test and fix wsl
 echo $OUT | grep x86_64-unknown-linux-gnu > /dev/null 2> /dev/null
 if test $? = 0; then
-  uname -r | grep Microsoft > /dev/null 2> /dev/null
+  uname -r | grep -i microsoft > /dev/null 2> /dev/null
   if test $? = 0; then
     OUT="x86_64-pc-wsl"
   fi
--- a/make/autoconf/hotspot.m4	Tue Jun 18 21:40:50 2019 -0700
+++ b/make/autoconf/hotspot.m4	Fri Jun 21 09:05:45 2019 -0700
@@ -350,7 +350,8 @@
 
   # Only enable ZGC on supported platforms
   AC_MSG_CHECKING([if zgc can be built])
-  if test "x$OPENJDK_TARGET_OS" = "xlinux" && test "x$OPENJDK_TARGET_CPU" = "xx86_64"; then
+  if (test "x$OPENJDK_TARGET_OS" = "xlinux" && test "x$OPENJDK_TARGET_CPU" = "xx86_64") || \
+     (test "x$OPENJDK_TARGET_OS" = "xlinux" && test "x$OPENJDK_TARGET_CPU" = "xaarch64"); then
     AC_MSG_RESULT([yes])
   else
     DISABLED_JVM_FEATURES="$DISABLED_JVM_FEATURES zgc"
--- a/make/autoconf/version-numbers	Tue Jun 18 21:40:50 2019 -0700
+++ b/make/autoconf/version-numbers	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2011, 2018, 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
@@ -25,18 +25,18 @@
 
 # Default version numbers to use unless overridden by configure
 
-DEFAULT_VERSION_FEATURE=13
+DEFAULT_VERSION_FEATURE=14
 DEFAULT_VERSION_INTERIM=0
 DEFAULT_VERSION_UPDATE=0
 DEFAULT_VERSION_PATCH=0
 DEFAULT_VERSION_EXTRA1=0
 DEFAULT_VERSION_EXTRA2=0
 DEFAULT_VERSION_EXTRA3=0
-DEFAULT_VERSION_DATE=2019-09-17
-DEFAULT_VERSION_CLASSFILE_MAJOR=57  # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`"
+DEFAULT_VERSION_DATE=2020-03-17
+DEFAULT_VERSION_CLASSFILE_MAJOR=58  # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`"
 DEFAULT_VERSION_CLASSFILE_MINOR=0
-DEFAULT_ACCEPTABLE_BOOT_VERSIONS="12 13"
-DEFAULT_JDK_SOURCE_TARGET_VERSION=13
+DEFAULT_ACCEPTABLE_BOOT_VERSIONS="12 13 14"
+DEFAULT_JDK_SOURCE_TARGET_VERSION=14
 DEFAULT_PROMOTED_VERSION_PRE=ea
 
 LAUNCHER_NAME=openjdk
--- a/make/conf/jib-profiles.js	Tue Jun 18 21:40:50 2019 -0700
+++ b/make/conf/jib-profiles.js	Fri Jun 21 09:05:45 2019 -0700
@@ -1041,7 +1041,7 @@
             // build_number: "b07",
             // file: "bundles/jcov-3_0.zip",
             organization: common.organization,
-            revision: "3.0-57-support+1.0",
+            revision: "3.0-58-support+1.0",
             ext: "zip",
             environment_name: "JCOV_HOME",
         },
--- a/make/data/docs-resources/resources/jdk-default.css	Tue Jun 18 21:40:50 2019 -0700
+++ b/make/data/docs-resources/resources/jdk-default.css	Fri Jun 21 09:05:45 2019 -0700
@@ -25,7 +25,7 @@
 
 body {
   margin: 2em 2em;
-  font-family: DejaVu Sans, Bitstream Vera Sans, Luxi Sans, Verdana, Arial, Helvetica;
+  font-family: DejaVu Sans, Bitstream Vera Sans, Luxi Sans, Verdana, Arial, Helvetica, sans-serif;
   font-size: 10pt;
   line-height: 1.4;
 }
@@ -68,12 +68,23 @@
   margin: 1.5ex 0pt 1ex 0pt;
 }
 
-h4 {
+h4, h5 {
+  font-size: 100%;
   font-weight: bold;
   padding: 0pt;
   margin: 1.5ex 0pt 1ex 0pt;
 }
 
+.subtitle {
+    font-style: italic;
+    font-weight: bold;
+    margin-bottom: 1em;
+}
+
+h1.title + .subtitle {
+    margin-top: -1em;
+}
+
 a:link {
   color: #4A6782;
 }
@@ -138,3 +149,16 @@
 .centered {
   text-align: center;
 }
+
+.draft-header {
+  text-align: center;
+  font-size: 80%;
+  padding: 6px;
+  margin: -2.5em -2.5em 2.5em -2.5em;
+  background-color: #CBDAE4;
+}
+
+.legal-footer {
+    font-style: italic;
+    font-size: 80%;
+}
--- a/make/data/jdwp/jdwp.spec	Tue Jun 18 21:40:50 2019 -0700
+++ b/make/data/jdwp/jdwp.spec	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -602,7 +602,7 @@
     (Command Signature=1
         "Returns the JNI signature of a reference type. "
         "JNI signature formats are described in the "
-        "<a href=\"http://java.sun.com/products/jdk/1.2/docs/guide/jni/index.html\">Java Native Inteface Specification</a>"
+        "<a href=\"../jni/index.html\">Java Native Interface Specification</a>"
         "<p>
         "For primitive classes "
         "the returned signature is the signature of the corresponding primitive "
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/java.base-D.sym.txt	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,638 @@
+#
+# Copyright (c) 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.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+class name java/io/ObjectInputStream
+header extends java/io/InputStream implements java/io/ObjectInput,java/io/ObjectStreamConstants nestMembers java/io/ObjectInputStream$GetField flags 21
+innerclass innerClass java/io/ObjectInputFilter$Config outerClass java/io/ObjectInputFilter innerClassName Config flags 19
+innerclass innerClass java/io/ObjectInputFilter$FilterInfo outerClass java/io/ObjectInputFilter innerClassName FilterInfo flags 609
+innerclass innerClass java/io/ObjectInputFilter$Status outerClass java/io/ObjectInputFilter innerClassName Status flags 4019
+innerclass innerClass java/lang/System$Logger outerClass java/lang/System innerClassName Logger flags 609
+innerclass innerClass java/lang/System$Logger$Level outerClass java/lang/System$Logger innerClassName Level flags 4019
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/lang/CharSequence
+header extends java/lang/Object flags 601
+innerclass innerClass java/util/PrimitiveIterator$OfInt outerClass java/util/PrimitiveIterator innerClassName OfInt flags 609
+innerclass innerClass java/util/Spliterator$OfInt outerClass java/util/Spliterator innerClassName OfInt flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/lang/Character
+header extends java/lang/Object implements java/io/Serializable,java/lang/Comparable nestMembers java/lang/Character$UnicodeScript,java/lang/Character$UnicodeBlock,java/lang/Character$Subset flags 31 signature Ljava/lang/Object;Ljava/io/Serializable;Ljava/lang/Comparable<Ljava/lang/Character;>;
+innerclass innerClass java/lang/Character$UnicodeBlock outerClass java/lang/Character innerClassName UnicodeBlock flags 19
+innerclass innerClass java/lang/Character$UnicodeScript outerClass java/lang/Character innerClassName UnicodeScript flags 4019
+innerclass innerClass java/lang/Character$Subset outerClass java/lang/Character innerClassName Subset flags 9
+
+class name java/lang/Character$UnicodeBlock
+header extends java/lang/Character$Subset nestHost java/lang/Character flags 31
+innerclass innerClass java/lang/Character$Subset outerClass java/lang/Character innerClassName Subset flags 9
+innerclass innerClass java/lang/Character$UnicodeBlock outerClass java/lang/Character innerClassName UnicodeBlock flags 19
+field name ELYMAIC descriptor Ljava/lang/Character$UnicodeBlock; flags 19
+field name NANDINAGARI descriptor Ljava/lang/Character$UnicodeBlock; flags 19
+field name TAMIL_SUPPLEMENT descriptor Ljava/lang/Character$UnicodeBlock; flags 19
+field name EGYPTIAN_HIEROGLYPH_FORMAT_CONTROLS descriptor Ljava/lang/Character$UnicodeBlock; flags 19
+field name SMALL_KANA_EXTENSION descriptor Ljava/lang/Character$UnicodeBlock; flags 19
+field name NYIAKENG_PUACHUE_HMONG descriptor Ljava/lang/Character$UnicodeBlock; flags 19
+field name WANCHO descriptor Ljava/lang/Character$UnicodeBlock; flags 19
+field name OTTOMAN_SIYAQ_NUMBERS descriptor Ljava/lang/Character$UnicodeBlock; flags 19
+field name SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A descriptor Ljava/lang/Character$UnicodeBlock; flags 19
+
+class name java/lang/Character$UnicodeScript
+field name ELYMAIC descriptor Ljava/lang/Character$UnicodeScript; flags 4019
+field name NANDINAGARI descriptor Ljava/lang/Character$UnicodeScript; flags 4019
+field name NYIAKENG_PUACHUE_HMONG descriptor Ljava/lang/Character$UnicodeScript; flags 4019
+field name WANCHO descriptor Ljava/lang/Character$UnicodeScript; flags 4019
+
+class name java/lang/Math
+-method name abs descriptor (I)I
+-method name abs descriptor (J)J
+-method name abs descriptor (F)F
+-method name max descriptor (FF)F
+-method name max descriptor (DD)D
+-method name min descriptor (FF)F
+-method name min descriptor (DD)D
+method name abs descriptor (I)I flags 9 runtimeAnnotations @Ljdk/internal/HotSpotIntrinsicCandidate;
+method name abs descriptor (J)J flags 9 runtimeAnnotations @Ljdk/internal/HotSpotIntrinsicCandidate;
+method name abs descriptor (F)F flags 9 runtimeAnnotations @Ljdk/internal/HotSpotIntrinsicCandidate;
+method name max descriptor (FF)F flags 9 runtimeAnnotations @Ljdk/internal/HotSpotIntrinsicCandidate;
+method name max descriptor (DD)D flags 9 runtimeAnnotations @Ljdk/internal/HotSpotIntrinsicCandidate;
+method name min descriptor (FF)F flags 9 runtimeAnnotations @Ljdk/internal/HotSpotIntrinsicCandidate;
+method name min descriptor (DD)D flags 9 runtimeAnnotations @Ljdk/internal/HotSpotIntrinsicCandidate;
+
+class name java/lang/Process
+header extends java/lang/Object flags 421
+innerclass innerClass java/util/concurrent/ForkJoinPool$ManagedBlocker outerClass java/util/concurrent/ForkJoinPool innerClassName ManagedBlocker flags 609
+innerclass innerClass java/lang/ProcessHandle$Info outerClass java/lang/ProcessHandle innerClassName Info flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/lang/StrictMath
+-method name max descriptor (FF)F
+-method name max descriptor (DD)D
+-method name min descriptor (FF)F
+-method name min descriptor (DD)D
+method name max descriptor (FF)F flags 9 runtimeAnnotations @Ljdk/internal/HotSpotIntrinsicCandidate;
+method name max descriptor (DD)D flags 9 runtimeAnnotations @Ljdk/internal/HotSpotIntrinsicCandidate;
+method name min descriptor (FF)F flags 9 runtimeAnnotations @Ljdk/internal/HotSpotIntrinsicCandidate;
+method name min descriptor (DD)D flags 9 runtimeAnnotations @Ljdk/internal/HotSpotIntrinsicCandidate;
+
+class name java/lang/String
+header extends java/lang/Object implements java/io/Serializable,java/lang/Comparable,java/lang/CharSequence,java/lang/constant/Constable,java/lang/constant/ConstantDesc flags 31 signature Ljava/lang/Object;Ljava/io/Serializable;Ljava/lang/Comparable<Ljava/lang/String;>;Ljava/lang/CharSequence;Ljava/lang/constant/Constable;Ljava/lang/constant/ConstantDesc;
+innerclass innerClass java/util/Spliterator$OfInt outerClass java/util/Spliterator innerClassName OfInt flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/lang/System
+header extends java/lang/Object nestMembers java/lang/System$LoggerFinder,java/lang/System$Logger,java/lang/System$Logger$Level flags 31
+innerclass innerClass java/lang/System$Logger outerClass java/lang/System innerClassName Logger flags 609
+innerclass innerClass java/lang/System$LoggerFinder outerClass java/lang/System innerClassName LoggerFinder flags 409
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+innerclass innerClass java/lang/System$Logger$Level outerClass java/lang/System$Logger innerClassName Level flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/lang/constant/DynamicConstantDesc
+header extends java/lang/Object implements java/lang/constant/ConstantDesc flags 421 signature <T:Ljava/lang/Object;>Ljava/lang/Object;Ljava/lang/constant/ConstantDesc;
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+innerclass innerClass java/lang/Enum$EnumDesc outerClass java/lang/Enum innerClassName EnumDesc flags 19
+innerclass innerClass java/lang/invoke/VarHandle$VarHandleDesc outerClass java/lang/invoke/VarHandle innerClassName VarHandleDesc flags 19
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+
+class name java/lang/constant/MethodTypeDesc
+header extends java/lang/Object implements java/lang/constant/ConstantDesc,java/lang/invoke/TypeDescriptor$OfMethod flags 601 signature Ljava/lang/Object;Ljava/lang/constant/ConstantDesc;Ljava/lang/invoke/TypeDescriptor$OfMethod<Ljava/lang/constant/ClassDesc;Ljava/lang/constant/MethodTypeDesc;>;
+innerclass innerClass java/lang/invoke/TypeDescriptor$OfMethod outerClass java/lang/invoke/TypeDescriptor innerClassName OfMethod flags 609
+innerclass innerClass java/lang/invoke/TypeDescriptor$OfField outerClass java/lang/invoke/TypeDescriptor innerClassName OfField flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/lang/invoke/MethodType
+header extends java/lang/Object implements java/lang/constant/Constable,java/lang/invoke/TypeDescriptor$OfMethod,java/io/Serializable flags 31 signature Ljava/lang/Object;Ljava/lang/constant/Constable;Ljava/lang/invoke/TypeDescriptor$OfMethod<Ljava/lang/Class<*>;Ljava/lang/invoke/MethodType;>;Ljava/io/Serializable;
+innerclass innerClass java/lang/invoke/TypeDescriptor$OfMethod outerClass java/lang/invoke/TypeDescriptor innerClassName OfMethod flags 609
+innerclass innerClass java/lang/invoke/TypeDescriptor$OfField outerClass java/lang/invoke/TypeDescriptor innerClassName OfField flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/lang/invoke/TypeDescriptor$OfMethod
+header extends java/lang/Object implements java/lang/invoke/TypeDescriptor nestHost java/lang/invoke/TypeDescriptor flags 601 signature <F::Ljava/lang/invoke/TypeDescriptor$OfField<TF;>;M::Ljava/lang/invoke/TypeDescriptor$OfMethod<TF;TM;>;>Ljava/lang/Object;Ljava/lang/invoke/TypeDescriptor;
+innerclass innerClass java/lang/invoke/TypeDescriptor$OfMethod outerClass java/lang/invoke/TypeDescriptor innerClassName OfMethod flags 609
+innerclass innerClass java/lang/invoke/TypeDescriptor$OfField outerClass java/lang/invoke/TypeDescriptor innerClassName OfField flags 609
+
+class name java/lang/invoke/VarHandle
+header extends java/lang/Object implements java/lang/constant/Constable nestMembers java/lang/invoke/VarHandle$VarHandleDesc,java/lang/invoke/VarHandle$AccessMode flags 421
+innerclass innerClass java/lang/invoke/VarHandle$AccessMode outerClass java/lang/invoke/VarHandle innerClassName AccessMode flags 4019
+innerclass innerClass java/lang/invoke/VarHandle$VarHandleDesc outerClass java/lang/invoke/VarHandle innerClassName VarHandleDesc flags 19
+
+class name java/lang/module/ModuleDescriptor
+header extends java/lang/Object implements java/lang/Comparable nestMembers java/lang/module/ModuleDescriptor$Builder,java/lang/module/ModuleDescriptor$Version,java/lang/module/ModuleDescriptor$Provides,java/lang/module/ModuleDescriptor$Opens,java/lang/module/ModuleDescriptor$Opens$Modifier,java/lang/module/ModuleDescriptor$Exports,java/lang/module/ModuleDescriptor$Exports$Modifier,java/lang/module/ModuleDescriptor$Requires,java/lang/module/ModuleDescriptor$Requires$Modifier,java/lang/module/ModuleDescriptor$Modifier flags 21 signature Ljava/lang/Object;Ljava/lang/Comparable<Ljava/lang/module/ModuleDescriptor;>;
+innerclass innerClass java/lang/module/ModuleDescriptor$Version outerClass java/lang/module/ModuleDescriptor innerClassName Version flags 19
+innerclass innerClass java/lang/module/ModuleDescriptor$Modifier outerClass java/lang/module/ModuleDescriptor innerClassName Modifier flags 4019
+innerclass innerClass java/lang/module/ModuleDescriptor$Builder outerClass java/lang/module/ModuleDescriptor innerClassName Builder flags 19
+innerclass innerClass java/lang/module/ModuleDescriptor$Provides outerClass java/lang/module/ModuleDescriptor innerClassName Provides flags 19
+innerclass innerClass java/lang/module/ModuleDescriptor$Opens outerClass java/lang/module/ModuleDescriptor innerClassName Opens flags 19
+innerclass innerClass java/lang/module/ModuleDescriptor$Exports outerClass java/lang/module/ModuleDescriptor innerClassName Exports flags 19
+innerclass innerClass java/lang/module/ModuleDescriptor$Requires outerClass java/lang/module/ModuleDescriptor innerClassName Requires flags 19
+innerclass innerClass java/lang/module/ModuleDescriptor$Opens$Modifier outerClass java/lang/module/ModuleDescriptor$Opens innerClassName Modifier flags 4019
+innerclass innerClass java/lang/module/ModuleDescriptor$Exports$Modifier outerClass java/lang/module/ModuleDescriptor$Exports innerClassName Modifier flags 4019
+innerclass innerClass java/lang/module/ModuleDescriptor$Requires$Modifier outerClass java/lang/module/ModuleDescriptor$Requires innerClassName Modifier flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/lang/module/ModuleDescriptor$Builder
+header extends java/lang/Object nestHost java/lang/module/ModuleDescriptor flags 31
+innerclass innerClass java/lang/module/ModuleDescriptor$Builder outerClass java/lang/module/ModuleDescriptor innerClassName Builder flags 19
+innerclass innerClass java/lang/module/ModuleDescriptor$Modifier outerClass java/lang/module/ModuleDescriptor innerClassName Modifier flags 4019
+innerclass innerClass java/lang/module/ModuleDescriptor$Requires outerClass java/lang/module/ModuleDescriptor innerClassName Requires flags 19
+innerclass innerClass java/lang/module/ModuleDescriptor$Version outerClass java/lang/module/ModuleDescriptor innerClassName Version flags 19
+innerclass innerClass java/lang/module/ModuleDescriptor$Requires$Modifier outerClass java/lang/module/ModuleDescriptor$Requires innerClassName Modifier flags 4019
+innerclass innerClass java/lang/module/ModuleDescriptor$Exports outerClass java/lang/module/ModuleDescriptor innerClassName Exports flags 19
+innerclass innerClass java/lang/module/ModuleDescriptor$Opens outerClass java/lang/module/ModuleDescriptor innerClassName Opens flags 19
+innerclass innerClass java/lang/module/ModuleDescriptor$Provides outerClass java/lang/module/ModuleDescriptor innerClassName Provides flags 19
+innerclass innerClass java/lang/module/ModuleDescriptor$Exports$Modifier outerClass java/lang/module/ModuleDescriptor$Exports innerClassName Modifier flags 4019
+innerclass innerClass java/lang/module/ModuleDescriptor$Opens$Modifier outerClass java/lang/module/ModuleDescriptor$Opens innerClassName Modifier flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/lang/module/ModuleDescriptor$Requires
+header extends java/lang/Object implements java/lang/Comparable nestHost java/lang/module/ModuleDescriptor flags 31 signature Ljava/lang/Object;Ljava/lang/Comparable<Ljava/lang/module/ModuleDescriptor$Requires;>;
+innerclass innerClass java/lang/module/ModuleDescriptor$Requires outerClass java/lang/module/ModuleDescriptor innerClassName Requires flags 19
+innerclass innerClass java/lang/module/ModuleDescriptor$Version outerClass java/lang/module/ModuleDescriptor innerClassName Version flags 19
+innerclass innerClass java/lang/module/ModuleDescriptor$Requires$Modifier outerClass java/lang/module/ModuleDescriptor$Requires innerClassName Modifier flags 4019
+
+class name java/net/Socket
+header extends java/lang/Object implements java/io/Closeable flags 21
+innerclass innerClass java/net/Proxy$Type outerClass java/net/Proxy innerClassName Type flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/net/SocketImpl
+header extends java/lang/Object implements java/net/SocketOptions flags 421
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/net/URL
+header extends java/lang/Object implements java/io/Serializable flags 31
+innerclass innerClass java/net/Proxy$Type outerClass java/net/Proxy innerClassName Type flags 4019
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+
+class name java/nio/Buffer
+method name slice descriptor (II)Ljava/nio/Buffer; flags 401
+
+class name java/nio/ByteBuffer
+method name slice descriptor (II)Ljava/nio/ByteBuffer; flags 401
+method name get descriptor (I[BII)Ljava/nio/ByteBuffer; flags 1
+method name get descriptor (I[B)Ljava/nio/ByteBuffer; flags 1
+method name put descriptor (I[BII)Ljava/nio/ByteBuffer; flags 1
+method name put descriptor (I[B)Ljava/nio/ByteBuffer; flags 1
+method name slice descriptor (II)Ljava/nio/Buffer; flags 1041
+
+class name java/nio/CharBuffer
+method name slice descriptor (II)Ljava/nio/CharBuffer; flags 401
+method name get descriptor (I[CII)Ljava/nio/CharBuffer; flags 1
+method name get descriptor (I[C)Ljava/nio/CharBuffer; flags 1
+method name put descriptor (I[CII)Ljava/nio/CharBuffer; flags 1
+method name put descriptor (I[C)Ljava/nio/CharBuffer; flags 1
+method name slice descriptor (II)Ljava/nio/Buffer; flags 1041
+
+class name java/nio/DoubleBuffer
+method name slice descriptor (II)Ljava/nio/DoubleBuffer; flags 401
+method name get descriptor (I[DII)Ljava/nio/DoubleBuffer; flags 1
+method name get descriptor (I[D)Ljava/nio/DoubleBuffer; flags 1
+method name put descriptor (I[DII)Ljava/nio/DoubleBuffer; flags 1
+method name put descriptor (I[D)Ljava/nio/DoubleBuffer; flags 1
+method name slice descriptor (II)Ljava/nio/Buffer; flags 1041
+
+class name java/nio/FloatBuffer
+method name slice descriptor (II)Ljava/nio/FloatBuffer; flags 401
+method name get descriptor (I[FII)Ljava/nio/FloatBuffer; flags 1
+method name get descriptor (I[F)Ljava/nio/FloatBuffer; flags 1
+method name put descriptor (I[FII)Ljava/nio/FloatBuffer; flags 1
+method name put descriptor (I[F)Ljava/nio/FloatBuffer; flags 1
+method name slice descriptor (II)Ljava/nio/Buffer; flags 1041
+
+class name java/nio/IntBuffer
+method name slice descriptor (II)Ljava/nio/IntBuffer; flags 401
+method name get descriptor (I[III)Ljava/nio/IntBuffer; flags 1
+method name get descriptor (I[I)Ljava/nio/IntBuffer; flags 1
+method name put descriptor (I[III)Ljava/nio/IntBuffer; flags 1
+method name put descriptor (I[I)Ljava/nio/IntBuffer; flags 1
+method name slice descriptor (II)Ljava/nio/Buffer; flags 1041
+
+class name java/nio/LongBuffer
+method name slice descriptor (II)Ljava/nio/LongBuffer; flags 401
+method name get descriptor (I[JII)Ljava/nio/LongBuffer; flags 1
+method name get descriptor (I[J)Ljava/nio/LongBuffer; flags 1
+method name put descriptor (I[JII)Ljava/nio/LongBuffer; flags 1
+method name put descriptor (I[J)Ljava/nio/LongBuffer; flags 1
+method name slice descriptor (II)Ljava/nio/Buffer; flags 1041
+
+class name java/nio/MappedByteBuffer
+method name force descriptor (II)Ljava/nio/MappedByteBuffer; flags 11
+
+class name java/nio/ShortBuffer
+method name slice descriptor (II)Ljava/nio/ShortBuffer; flags 401
+method name get descriptor (I[SII)Ljava/nio/ShortBuffer; flags 1
+method name get descriptor (I[S)Ljava/nio/ShortBuffer; flags 1
+method name put descriptor (I[SII)Ljava/nio/ShortBuffer; flags 1
+method name put descriptor (I[S)Ljava/nio/ShortBuffer; flags 1
+method name slice descriptor (II)Ljava/nio/Buffer; flags 1041
+
+class name java/nio/file/FileSystems
+method name newFileSystem descriptor (Ljava/nio/file/Path;Ljava/util/Map;)Ljava/nio/file/FileSystem; thrownTypes java/io/IOException flags 9 signature (Ljava/nio/file/Path;Ljava/util/Map<Ljava/lang/String;*>;)Ljava/nio/file/FileSystem;
+method name newFileSystem descriptor (Ljava/nio/file/Path;)Ljava/nio/file/FileSystem; thrownTypes java/io/IOException flags 9
+method name newFileSystem descriptor (Ljava/nio/file/Path;Ljava/util/Map;Ljava/lang/ClassLoader;)Ljava/nio/file/FileSystem; thrownTypes java/io/IOException flags 9 signature (Ljava/nio/file/Path;Ljava/util/Map<Ljava/lang/String;*>;Ljava/lang/ClassLoader;)Ljava/nio/file/FileSystem;
+
+class name java/nio/file/Path
+header extends java/lang/Object implements java/lang/Comparable,java/lang/Iterable,java/nio/file/Watchable flags 601 signature Ljava/lang/Object;Ljava/lang/Comparable<Ljava/nio/file/Path;>;Ljava/lang/Iterable<Ljava/nio/file/Path;>;Ljava/nio/file/Watchable;
+innerclass innerClass java/nio/file/WatchEvent$Modifier outerClass java/nio/file/WatchEvent innerClassName Modifier flags 609
+innerclass innerClass java/nio/file/WatchEvent$Kind outerClass java/nio/file/WatchEvent innerClassName Kind flags 609
+
+class name java/security/DomainLoadStoreParameter
+header extends java/lang/Object implements java/security/KeyStore$LoadStoreParameter flags 31
+innerclass innerClass java/security/KeyStore$LoadStoreParameter outerClass java/security/KeyStore innerClassName LoadStoreParameter flags 609
+innerclass innerClass java/security/KeyStore$ProtectionParameter outerClass java/security/KeyStore innerClassName ProtectionParameter flags 609
+
+class name java/security/DrbgParameters
+header extends java/lang/Object nestMembers java/security/DrbgParameters$Reseed,java/security/DrbgParameters$NextBytes,java/security/DrbgParameters$Instantiation,java/security/DrbgParameters$Capability flags 21
+innerclass innerClass java/security/DrbgParameters$Instantiation outerClass java/security/DrbgParameters innerClassName Instantiation flags 19
+innerclass innerClass java/security/DrbgParameters$Capability outerClass java/security/DrbgParameters innerClassName Capability flags 4019
+innerclass innerClass java/security/DrbgParameters$NextBytes outerClass java/security/DrbgParameters innerClassName NextBytes flags 19
+innerclass innerClass java/security/DrbgParameters$Reseed outerClass java/security/DrbgParameters innerClassName Reseed flags 19
+
+class name java/security/DrbgParameters$Instantiation
+header extends java/lang/Object implements java/security/SecureRandomParameters nestHost java/security/DrbgParameters flags 31
+innerclass innerClass java/security/DrbgParameters$Instantiation outerClass java/security/DrbgParameters innerClassName Instantiation flags 19
+innerclass innerClass java/security/DrbgParameters$Capability outerClass java/security/DrbgParameters innerClassName Capability flags 4019
+
+class name java/security/KeyStore
+header extends java/lang/Object nestMembers java/security/KeyStore$Builder,java/security/KeyStore$TrustedCertificateEntry,java/security/KeyStore$SecretKeyEntry,java/security/KeyStore$PrivateKeyEntry,java/security/KeyStore$Entry,java/security/KeyStore$Entry$Attribute,java/security/KeyStore$CallbackHandlerProtection,java/security/KeyStore$PasswordProtection,java/security/KeyStore$ProtectionParameter,java/security/KeyStore$LoadStoreParameter flags 21
+innerclass innerClass java/security/KeyStore$LoadStoreParameter outerClass java/security/KeyStore innerClassName LoadStoreParameter flags 609
+innerclass innerClass java/security/KeyStore$ProtectionParameter outerClass java/security/KeyStore innerClassName ProtectionParameter flags 609
+innerclass innerClass java/security/KeyStore$Entry outerClass java/security/KeyStore innerClassName Entry flags 609
+innerclass innerClass java/security/KeyStore$Builder outerClass java/security/KeyStore innerClassName Builder flags 409
+innerclass innerClass java/security/KeyStore$TrustedCertificateEntry outerClass java/security/KeyStore innerClassName TrustedCertificateEntry flags 19
+innerclass innerClass java/security/KeyStore$SecretKeyEntry outerClass java/security/KeyStore innerClassName SecretKeyEntry flags 19
+innerclass innerClass java/security/KeyStore$PrivateKeyEntry outerClass java/security/KeyStore innerClassName PrivateKeyEntry flags 19
+innerclass innerClass java/security/KeyStore$CallbackHandlerProtection outerClass java/security/KeyStore innerClassName CallbackHandlerProtection flags 9
+innerclass innerClass java/security/KeyStore$PasswordProtection outerClass java/security/KeyStore innerClassName PasswordProtection flags 9
+innerclass innerClass java/security/KeyStore$Entry$Attribute outerClass java/security/KeyStore$Entry innerClassName Attribute flags 609
+
+class name java/security/KeyStore$LoadStoreParameter
+header extends java/lang/Object nestHost java/security/KeyStore flags 601
+innerclass innerClass java/security/KeyStore$LoadStoreParameter outerClass java/security/KeyStore innerClassName LoadStoreParameter flags 609
+innerclass innerClass java/security/KeyStore$ProtectionParameter outerClass java/security/KeyStore innerClassName ProtectionParameter flags 609
+
+class name java/security/KeyStore$PrivateKeyEntry
+header extends java/lang/Object implements java/security/KeyStore$Entry nestHost java/security/KeyStore flags 31
+innerclass innerClass java/security/KeyStore$PrivateKeyEntry outerClass java/security/KeyStore innerClassName PrivateKeyEntry flags 19
+innerclass innerClass java/security/KeyStore$Entry outerClass java/security/KeyStore innerClassName Entry flags 609
+innerclass innerClass java/security/KeyStore$Entry$Attribute outerClass java/security/KeyStore$Entry innerClassName Attribute flags 609
+
+class name java/security/KeyStore$SecretKeyEntry
+header extends java/lang/Object implements java/security/KeyStore$Entry nestHost java/security/KeyStore flags 31
+innerclass innerClass java/security/KeyStore$SecretKeyEntry outerClass java/security/KeyStore innerClassName SecretKeyEntry flags 19
+innerclass innerClass java/security/KeyStore$Entry outerClass java/security/KeyStore innerClassName Entry flags 609
+innerclass innerClass java/security/KeyStore$Entry$Attribute outerClass java/security/KeyStore$Entry innerClassName Attribute flags 609
+
+class name java/security/KeyStore$TrustedCertificateEntry
+header extends java/lang/Object implements java/security/KeyStore$Entry nestHost java/security/KeyStore flags 31
+innerclass innerClass java/security/KeyStore$TrustedCertificateEntry outerClass java/security/KeyStore innerClassName TrustedCertificateEntry flags 19
+innerclass innerClass java/security/KeyStore$Entry outerClass java/security/KeyStore innerClassName Entry flags 609
+innerclass innerClass java/security/KeyStore$Entry$Attribute outerClass java/security/KeyStore$Entry innerClassName Attribute flags 609
+
+class name java/security/KeyStoreSpi
+header extends java/lang/Object flags 421
+innerclass innerClass java/security/KeyStore$LoadStoreParameter outerClass java/security/KeyStore innerClassName LoadStoreParameter flags 609
+innerclass innerClass java/security/KeyStore$ProtectionParameter outerClass java/security/KeyStore innerClassName ProtectionParameter flags 609
+innerclass innerClass java/security/KeyStore$PasswordProtection outerClass java/security/KeyStore innerClassName PasswordProtection flags 9
+innerclass innerClass java/security/KeyStore$CallbackHandlerProtection outerClass java/security/KeyStore innerClassName CallbackHandlerProtection flags 9
+innerclass innerClass java/security/KeyStore$TrustedCertificateEntry outerClass java/security/KeyStore innerClassName TrustedCertificateEntry flags 19
+innerclass innerClass java/security/KeyStore$PrivateKeyEntry outerClass java/security/KeyStore innerClassName PrivateKeyEntry flags 19
+innerclass innerClass java/security/KeyStore$SecretKeyEntry outerClass java/security/KeyStore innerClassName SecretKeyEntry flags 19
+innerclass innerClass java/security/KeyStore$Entry outerClass java/security/KeyStore innerClassName Entry flags 609
+
+class name java/security/Permissions
+header extends java/security/PermissionCollection implements java/io/Serializable flags 31
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+
+class name java/security/PrivilegedAction
+header extends java/lang/Object flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object; runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/security/PrivilegedExceptionAction
+header extends java/lang/Object flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object; runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/security/Provider
+header extends java/util/Properties nestMembers java/security/Provider$Service flags 421
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+innerclass innerClass java/security/Provider$Service outerClass java/security/Provider innerClassName Service flags 9
+
+class name java/security/cert/PKIXRevocationChecker
+header extends java/security/cert/PKIXCertPathChecker nestMembers java/security/cert/PKIXRevocationChecker$Option flags 421
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+innerclass innerClass java/security/cert/PKIXRevocationChecker$Option outerClass java/security/cert/PKIXRevocationChecker innerClassName Option flags 4019
+
+class name java/text/AttributedString
+header extends java/lang/Object flags 21
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+innerclass innerClass java/text/AttributedCharacterIterator$Attribute outerClass java/text/AttributedCharacterIterator innerClassName Attribute flags 9
+
+class name java/text/CompactNumberFormat
+header extends java/text/NumberFormat flags 31
+innerclass innerClass java/text/NumberFormat$Field outerClass java/text/NumberFormat innerClassName Field flags 9
+innerclass innerClass java/text/Format$Field outerClass java/text/Format innerClassName Field flags 9
+
+class name java/text/DateFormat
+header extends java/text/Format nestMembers java/text/DateFormat$Field flags 421
+innerclass innerClass java/util/Locale$Category outerClass java/util/Locale innerClassName Category flags 4019
+innerclass innerClass java/text/DateFormat$Field outerClass java/text/DateFormat innerClassName Field flags 9
+
+class name java/text/DecimalFormat
+header extends java/text/NumberFormat flags 21
+innerclass innerClass java/util/Locale$Category outerClass java/util/Locale innerClassName Category flags 4019
+innerclass innerClass java/text/NumberFormat$Field outerClass java/text/NumberFormat innerClassName Field flags 9
+innerclass innerClass java/text/Format$Field outerClass java/text/Format innerClassName Field flags 9
+
+class name java/text/DecimalFormatSymbols
+header extends java/lang/Object implements java/lang/Cloneable,java/io/Serializable flags 21
+innerclass innerClass java/util/Locale$Category outerClass java/util/Locale innerClassName Category flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/text/Format
+header extends java/lang/Object implements java/io/Serializable,java/lang/Cloneable nestMembers java/text/Format$Field flags 421
+innerclass innerClass java/text/AttributedCharacterIterator$Attribute outerClass java/text/AttributedCharacterIterator innerClassName Attribute flags 9
+innerclass innerClass java/text/Format$Field outerClass java/text/Format innerClassName Field flags 9
+
+class name java/text/Format$Field
+header extends java/text/AttributedCharacterIterator$Attribute nestHost java/text/Format flags 21
+innerclass innerClass java/text/AttributedCharacterIterator$Attribute outerClass java/text/AttributedCharacterIterator innerClassName Attribute flags 9
+innerclass innerClass java/text/Format$Field outerClass java/text/Format innerClassName Field flags 9
+
+class name java/text/MessageFormat
+header extends java/text/Format nestMembers java/text/MessageFormat$Field flags 21
+innerclass innerClass java/util/Locale$Category outerClass java/util/Locale innerClassName Category flags 4019
+innerclass innerClass java/text/MessageFormat$Field outerClass java/text/MessageFormat innerClassName Field flags 9
+innerclass innerClass java/text/AttributedCharacterIterator$Attribute outerClass java/text/AttributedCharacterIterator innerClassName Attribute flags 9
+innerclass innerClass java/text/Format$Field outerClass java/text/Format innerClassName Field flags 9
+
+class name java/text/MessageFormat$Field
+header extends java/text/Format$Field nestHost java/text/MessageFormat flags 21
+innerclass innerClass java/text/Format$Field outerClass java/text/Format innerClassName Field flags 9
+innerclass innerClass java/text/MessageFormat$Field outerClass java/text/MessageFormat innerClassName Field flags 9
+
+class name java/text/NumberFormat
+header extends java/text/Format nestMembers java/text/NumberFormat$Style,java/text/NumberFormat$Field flags 421
+innerclass innerClass java/util/Locale$Category outerClass java/util/Locale innerClassName Category flags 4019
+innerclass innerClass java/text/NumberFormat$Style outerClass java/text/NumberFormat innerClassName Style flags 4019
+innerclass innerClass java/text/NumberFormat$Field outerClass java/text/NumberFormat innerClassName Field flags 9
+
+class name java/text/NumberFormat$Field
+header extends java/text/Format$Field nestHost java/text/NumberFormat flags 21
+innerclass innerClass java/text/Format$Field outerClass java/text/Format innerClassName Field flags 9
+innerclass innerClass java/text/NumberFormat$Field outerClass java/text/NumberFormat innerClassName Field flags 9
+
+class name java/text/SimpleDateFormat
+header extends java/text/DateFormat flags 21
+innerclass innerClass java/util/Locale$Category outerClass java/util/Locale innerClassName Category flags 4019
+innerclass innerClass java/text/DateFormat$Field outerClass java/text/DateFormat innerClassName Field flags 9
+innerclass innerClass java/text/Format$Field outerClass java/text/Format innerClassName Field flags 9
+
+class name java/time/chrono/JapaneseEra
+field name REIWA descriptor Ljava/time/chrono/JapaneseEra; flags 19
+
+class name java/util/AbstractMap
+header extends java/lang/Object implements java/util/Map nestMembers java/util/AbstractMap$SimpleImmutableEntry,java/util/AbstractMap$SimpleEntry flags 421 signature <K:Ljava/lang/Object;V:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/Map<TK;TV;>;
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+innerclass innerClass java/util/AbstractMap$SimpleImmutableEntry outerClass java/util/AbstractMap innerClassName SimpleImmutableEntry flags 9
+innerclass innerClass java/util/AbstractMap$SimpleEntry outerClass java/util/AbstractMap innerClassName SimpleEntry flags 9
+
+class name java/util/Base64
+header extends java/lang/Object nestMembers java/util/Base64$Decoder,java/util/Base64$Encoder flags 21
+innerclass innerClass java/util/Base64$Encoder outerClass java/util/Base64 innerClassName Encoder flags 9
+innerclass innerClass java/util/Base64$Decoder outerClass java/util/Base64 innerClassName Decoder flags 9
+
+class name java/util/Calendar
+header extends java/lang/Object implements java/io/Serializable,java/lang/Cloneable,java/lang/Comparable nestMembers java/util/Calendar$Builder flags 421 signature Ljava/lang/Object;Ljava/io/Serializable;Ljava/lang/Cloneable;Ljava/lang/Comparable<Ljava/util/Calendar;>;
+innerclass innerClass java/util/Locale$Category outerClass java/util/Locale innerClassName Category flags 4019
+innerclass innerClass java/util/Calendar$Builder outerClass java/util/Calendar innerClassName Builder flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/Formatter
+header extends java/lang/Object implements java/io/Closeable,java/io/Flushable nestMembers java/util/Formatter$BigDecimalLayoutForm flags 31
+innerclass innerClass java/util/Locale$Category outerClass java/util/Locale innerClassName Category flags 4019
+innerclass innerClass java/util/Formatter$BigDecimalLayoutForm outerClass java/util/Formatter innerClassName BigDecimalLayoutForm flags 4019
+
+class name java/util/Locale
+header extends java/lang/Object implements java/lang/Cloneable,java/io/Serializable nestMembers java/util/Locale$LanguageRange,java/util/Locale$FilteringMode,java/util/Locale$Builder,java/util/Locale$Category,java/util/Locale$IsoCountryCode flags 31
+innerclass innerClass java/util/Locale$Category outerClass java/util/Locale innerClassName Category flags 4019
+innerclass innerClass java/util/Locale$IsoCountryCode outerClass java/util/Locale innerClassName IsoCountryCode flags 4409
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/util/Locale$FilteringMode outerClass java/util/Locale innerClassName FilteringMode flags 4019
+innerclass innerClass java/util/Locale$LanguageRange outerClass java/util/Locale innerClassName LanguageRange flags 19
+innerclass innerClass java/util/Locale$Builder outerClass java/util/Locale innerClassName Builder flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/Random
+header extends java/lang/Object implements java/io/Serializable flags 21
+innerclass innerClass java/util/Spliterator$OfInt outerClass java/util/Spliterator innerClassName OfInt flags 609
+innerclass innerClass java/util/Spliterator$OfLong outerClass java/util/Spliterator innerClassName OfLong flags 609
+innerclass innerClass java/util/Spliterator$OfDouble outerClass java/util/Spliterator innerClassName OfDouble flags 609
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+
+class name java/util/Spliterators
+header extends java/lang/Object nestMembers java/util/Spliterators$AbstractDoubleSpliterator,java/util/Spliterators$AbstractLongSpliterator,java/util/Spliterators$AbstractIntSpliterator,java/util/Spliterators$AbstractSpliterator flags 31
+innerclass innerClass java/util/Spliterator$OfInt outerClass java/util/Spliterator innerClassName OfInt flags 609
+innerclass innerClass java/util/Spliterator$OfLong outerClass java/util/Spliterator innerClassName OfLong flags 609
+innerclass innerClass java/util/Spliterator$OfDouble outerClass java/util/Spliterator innerClassName OfDouble flags 609
+innerclass innerClass java/util/PrimitiveIterator$OfInt outerClass java/util/PrimitiveIterator innerClassName OfInt flags 609
+innerclass innerClass java/util/PrimitiveIterator$OfLong outerClass java/util/PrimitiveIterator innerClassName OfLong flags 609
+innerclass innerClass java/util/PrimitiveIterator$OfDouble outerClass java/util/PrimitiveIterator innerClassName OfDouble flags 609
+innerclass innerClass java/util/Spliterators$AbstractDoubleSpliterator outerClass java/util/Spliterators innerClassName AbstractDoubleSpliterator flags 409
+innerclass innerClass java/util/Spliterators$AbstractLongSpliterator outerClass java/util/Spliterators innerClassName AbstractLongSpliterator flags 409
+innerclass innerClass java/util/Spliterators$AbstractIntSpliterator outerClass java/util/Spliterators innerClassName AbstractIntSpliterator flags 409
+innerclass innerClass java/util/Spliterators$AbstractSpliterator outerClass java/util/Spliterators innerClassName AbstractSpliterator flags 409
+
+class name java/util/Spliterators$AbstractDoubleSpliterator
+header extends java/lang/Object implements java/util/Spliterator$OfDouble nestHost java/util/Spliterators flags 421
+innerclass innerClass java/util/Spliterators$AbstractSpliterator outerClass java/util/Spliterators innerClassName AbstractSpliterator flags 409
+innerclass innerClass java/util/Spliterators$AbstractDoubleSpliterator outerClass java/util/Spliterators innerClassName AbstractDoubleSpliterator flags 409
+innerclass innerClass java/util/Spliterator$OfDouble outerClass java/util/Spliterator innerClassName OfDouble flags 609
+innerclass innerClass java/util/Spliterator$OfPrimitive outerClass java/util/Spliterator innerClassName OfPrimitive flags 609
+
+class name java/util/Spliterators$AbstractIntSpliterator
+header extends java/lang/Object implements java/util/Spliterator$OfInt nestHost java/util/Spliterators flags 421
+innerclass innerClass java/util/Spliterators$AbstractSpliterator outerClass java/util/Spliterators innerClassName AbstractSpliterator flags 409
+innerclass innerClass java/util/Spliterators$AbstractIntSpliterator outerClass java/util/Spliterators innerClassName AbstractIntSpliterator flags 409
+innerclass innerClass java/util/Spliterator$OfInt outerClass java/util/Spliterator innerClassName OfInt flags 609
+innerclass innerClass java/util/Spliterator$OfPrimitive outerClass java/util/Spliterator innerClassName OfPrimitive flags 609
+
+class name java/util/Spliterators$AbstractLongSpliterator
+header extends java/lang/Object implements java/util/Spliterator$OfLong nestHost java/util/Spliterators flags 421
+innerclass innerClass java/util/Spliterators$AbstractSpliterator outerClass java/util/Spliterators innerClassName AbstractSpliterator flags 409
+innerclass innerClass java/util/Spliterators$AbstractLongSpliterator outerClass java/util/Spliterators innerClassName AbstractLongSpliterator flags 409
+innerclass innerClass java/util/Spliterator$OfLong outerClass java/util/Spliterator innerClassName OfLong flags 609
+innerclass innerClass java/util/Spliterator$OfPrimitive outerClass java/util/Spliterator innerClassName OfPrimitive flags 609
+
+class name java/util/concurrent/CompletableFuture
+header extends java/lang/Object implements java/util/concurrent/Future,java/util/concurrent/CompletionStage nestMembers java/util/concurrent/CompletableFuture$AsynchronousCompletionTask flags 21 signature <T:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/concurrent/Future<TT;>;Ljava/util/concurrent/CompletionStage<TT;>;
+innerclass innerClass java/util/concurrent/ForkJoinPool$ManagedBlocker outerClass java/util/concurrent/ForkJoinPool innerClassName ManagedBlocker flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+innerclass innerClass java/util/concurrent/CompletableFuture$AsynchronousCompletionTask outerClass java/util/concurrent/CompletableFuture innerClassName AsynchronousCompletionTask flags 609
+
+class name java/util/concurrent/ConcurrentHashMap
+header extends java/util/AbstractMap implements java/util/concurrent/ConcurrentMap,java/io/Serializable nestMembers java/util/concurrent/ConcurrentHashMap$KeySetView,java/util/concurrent/ConcurrentHashMap$CollectionView flags 21 signature <K:Ljava/lang/Object;V:Ljava/lang/Object;>Ljava/util/AbstractMap<TK;TV;>;Ljava/util/concurrent/ConcurrentMap<TK;TV;>;Ljava/io/Serializable;
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+innerclass innerClass java/util/concurrent/ConcurrentHashMap$KeySetView outerClass java/util/concurrent/ConcurrentHashMap innerClassName KeySetView flags 9
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+innerclass innerClass java/util/AbstractMap$SimpleImmutableEntry outerClass java/util/AbstractMap innerClassName SimpleImmutableEntry flags 9
+innerclass innerClass java/util/concurrent/ConcurrentHashMap$CollectionView outerClass java/util/concurrent/ConcurrentHashMap innerClassName CollectionView flags 408
+
+class name java/util/concurrent/ConcurrentHashMap$KeySetView
+header extends java/util/concurrent/ConcurrentHashMap$CollectionView implements java/util/Set,java/io/Serializable nestHost java/util/concurrent/ConcurrentHashMap flags 21 signature <K:Ljava/lang/Object;V:Ljava/lang/Object;>Ljava/util/concurrent/ConcurrentHashMap$CollectionView<TK;TV;TK;>;Ljava/util/Set<TK;>;Ljava/io/Serializable;
+innerclass innerClass java/util/concurrent/ConcurrentHashMap$CollectionView outerClass java/util/concurrent/ConcurrentHashMap innerClassName CollectionView flags 408
+innerclass innerClass java/util/concurrent/ConcurrentHashMap$KeySetView outerClass java/util/concurrent/ConcurrentHashMap innerClassName KeySetView flags 9
+
+class name java/util/concurrent/Flow$Processor
+header extends java/lang/Object implements java/util/concurrent/Flow$Subscriber,java/util/concurrent/Flow$Publisher nestHost java/util/concurrent/Flow flags 601 signature <T:Ljava/lang/Object;R:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/concurrent/Flow$Subscriber<TT;>;Ljava/util/concurrent/Flow$Publisher<TR;>;
+innerclass innerClass java/util/concurrent/Flow$Processor outerClass java/util/concurrent/Flow innerClassName Processor flags 609
+innerclass innerClass java/util/concurrent/Flow$Subscriber outerClass java/util/concurrent/Flow innerClassName Subscriber flags 609
+innerclass innerClass java/util/concurrent/Flow$Publisher outerClass java/util/concurrent/Flow innerClassName Publisher flags 609
+
+class name java/util/concurrent/Flow$Publisher
+header extends java/lang/Object nestHost java/util/concurrent/Flow flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object; runtimeAnnotations @Ljava/lang/FunctionalInterface;
+innerclass innerClass java/util/concurrent/Flow$Publisher outerClass java/util/concurrent/Flow innerClassName Publisher flags 609
+innerclass innerClass java/util/concurrent/Flow$Subscriber outerClass java/util/concurrent/Flow innerClassName Subscriber flags 609
+
+class name java/util/concurrent/Flow$Subscriber
+header extends java/lang/Object nestHost java/util/concurrent/Flow flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object;
+innerclass innerClass java/util/concurrent/Flow$Subscriber outerClass java/util/concurrent/Flow innerClassName Subscriber flags 609
+innerclass innerClass java/util/concurrent/Flow$Subscription outerClass java/util/concurrent/Flow innerClassName Subscription flags 609
+
+class name java/util/concurrent/ForkJoinPool
+header extends java/util/concurrent/AbstractExecutorService nestMembers java/util/concurrent/ForkJoinPool$ManagedBlocker,java/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory flags 21
+innerclass innerClass java/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory outerClass java/util/concurrent/ForkJoinPool innerClassName ForkJoinWorkerThreadFactory flags 609
+innerclass innerClass java/lang/Thread$UncaughtExceptionHandler outerClass java/lang/Thread innerClassName UncaughtExceptionHandler flags 609
+innerclass innerClass java/lang/Thread$State outerClass java/lang/Thread innerClassName State flags 4019
+innerclass innerClass java/util/concurrent/ForkJoinPool$ManagedBlocker outerClass java/util/concurrent/ForkJoinPool innerClassName ManagedBlocker flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/concurrent/Phaser
+header extends java/lang/Object flags 21
+innerclass innerClass java/util/concurrent/ForkJoinPool$ManagedBlocker outerClass java/util/concurrent/ForkJoinPool innerClassName ManagedBlocker flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/concurrent/ThreadLocalRandom
+header extends java/util/Random flags 21
+innerclass innerClass java/util/Spliterator$OfInt outerClass java/util/Spliterator innerClassName OfInt flags 609
+innerclass innerClass java/util/Spliterator$OfLong outerClass java/util/Spliterator innerClassName OfLong flags 609
+innerclass innerClass java/util/Spliterator$OfDouble outerClass java/util/Spliterator innerClassName OfDouble flags 609
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+
+class name java/util/concurrent/ThreadPoolExecutor
+header extends java/util/concurrent/AbstractExecutorService nestMembers java/util/concurrent/ThreadPoolExecutor$DiscardOldestPolicy,java/util/concurrent/ThreadPoolExecutor$DiscardPolicy,java/util/concurrent/ThreadPoolExecutor$AbortPolicy,java/util/concurrent/ThreadPoolExecutor$CallerRunsPolicy flags 21
+innerclass innerClass java/lang/Thread$State outerClass java/lang/Thread innerClassName State flags 4019
+innerclass innerClass java/util/concurrent/ThreadPoolExecutor$AbortPolicy outerClass java/util/concurrent/ThreadPoolExecutor innerClassName AbortPolicy flags 9
+innerclass innerClass java/util/concurrent/ThreadPoolExecutor$DiscardOldestPolicy outerClass java/util/concurrent/ThreadPoolExecutor innerClassName DiscardOldestPolicy flags 9
+innerclass innerClass java/util/concurrent/ThreadPoolExecutor$DiscardPolicy outerClass java/util/concurrent/ThreadPoolExecutor innerClassName DiscardPolicy flags 9
+innerclass innerClass java/util/concurrent/ThreadPoolExecutor$CallerRunsPolicy outerClass java/util/concurrent/ThreadPoolExecutor innerClassName CallerRunsPolicy flags 9
+
+class name java/util/concurrent/locks/ReentrantReadWriteLock
+header extends java/lang/Object implements java/util/concurrent/locks/ReadWriteLock,java/io/Serializable nestMembers java/util/concurrent/locks/ReentrantReadWriteLock$WriteLock,java/util/concurrent/locks/ReentrantReadWriteLock$ReadLock flags 21
+innerclass innerClass java/util/concurrent/locks/ReentrantReadWriteLock$ReadLock outerClass java/util/concurrent/locks/ReentrantReadWriteLock innerClassName ReadLock flags 9
+innerclass innerClass java/util/concurrent/locks/ReentrantReadWriteLock$WriteLock outerClass java/util/concurrent/locks/ReentrantReadWriteLock innerClassName WriteLock flags 9
+innerclass innerClass java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject outerClass java/util/concurrent/locks/AbstractQueuedSynchronizer innerClassName ConditionObject flags 1
+
+class name java/util/jar/Pack200
+header extends java/lang/Object nestMembers java/util/jar/Pack200$Unpacker,java/util/jar/Pack200$Packer flags 421 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+innerclass innerClass java/util/jar/Pack200$Packer outerClass java/util/jar/Pack200 innerClassName Packer flags 609
+innerclass innerClass java/util/jar/Pack200$Unpacker outerClass java/util/jar/Pack200 innerClassName Unpacker flags 609
+
+class name java/util/stream/DoubleStream
+header extends java/lang/Object implements java/util/stream/BaseStream nestMembers java/util/stream/DoubleStream$Builder flags 601 signature Ljava/lang/Object;Ljava/util/stream/BaseStream<Ljava/lang/Double;Ljava/util/stream/DoubleStream;>;
+innerclass innerClass java/util/Spliterator$OfDouble outerClass java/util/Spliterator innerClassName OfDouble flags 609
+innerclass innerClass java/util/PrimitiveIterator$OfDouble outerClass java/util/PrimitiveIterator innerClassName OfDouble flags 609
+innerclass innerClass java/util/stream/DoubleStream$Builder outerClass java/util/stream/DoubleStream innerClassName Builder flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/stream/IntStream
+header extends java/lang/Object implements java/util/stream/BaseStream nestMembers java/util/stream/IntStream$Builder flags 601 signature Ljava/lang/Object;Ljava/util/stream/BaseStream<Ljava/lang/Integer;Ljava/util/stream/IntStream;>;
+innerclass innerClass java/util/Spliterator$OfInt outerClass java/util/Spliterator innerClassName OfInt flags 609
+innerclass innerClass java/util/PrimitiveIterator$OfInt outerClass java/util/PrimitiveIterator innerClassName OfInt flags 609
+innerclass innerClass java/util/stream/IntStream$Builder outerClass java/util/stream/IntStream innerClassName Builder flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/stream/LongStream
+header extends java/lang/Object implements java/util/stream/BaseStream nestMembers java/util/stream/LongStream$Builder flags 601 signature Ljava/lang/Object;Ljava/util/stream/BaseStream<Ljava/lang/Long;Ljava/util/stream/LongStream;>;
+innerclass innerClass java/util/Spliterator$OfLong outerClass java/util/Spliterator innerClassName OfLong flags 609
+innerclass innerClass java/util/PrimitiveIterator$OfLong outerClass java/util/PrimitiveIterator innerClassName OfLong flags 609
+innerclass innerClass java/util/stream/LongStream$Builder outerClass java/util/stream/LongStream innerClassName Builder flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/net/ssl/HandshakeCompletedEvent
+-method name getPeerCertificateChain descriptor ()[Ljavax/security/cert/X509Certificate;
+method name getPeerCertificateChain descriptor ()[Ljavax/security/cert/X509Certificate; thrownTypes javax/net/ssl/SSLPeerUnverifiedException flags 1 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name javax/net/ssl/SSLContext
+header extends java/lang/Object flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+-method name getDefault descriptor ()Ljavax/net/ssl/SSLContext;
+-method name setDefault descriptor (Ljavax/net/ssl/SSLContext;)V
+method name getDefault descriptor ()Ljavax/net/ssl/SSLContext; thrownTypes java/security/NoSuchAlgorithmException flags 9
+method name setDefault descriptor (Ljavax/net/ssl/SSLContext;)V flags 9
+
+class name javax/net/ssl/SSLEngineResult
+header extends java/lang/Object nestMembers javax/net/ssl/SSLEngineResult$HandshakeStatus,javax/net/ssl/SSLEngineResult$Status flags 21
+innerclass innerClass javax/net/ssl/SSLEngineResult$Status outerClass javax/net/ssl/SSLEngineResult innerClassName Status flags 4019
+innerclass innerClass javax/net/ssl/SSLEngineResult$HandshakeStatus outerClass javax/net/ssl/SSLEngineResult innerClassName HandshakeStatus flags 4019
+
+class name javax/net/ssl/SSLServerSocketFactory
+-method name getDefault descriptor ()Ljavax/net/ServerSocketFactory;
+method name getDefault descriptor ()Ljavax/net/ServerSocketFactory; flags 9
+
+class name javax/net/ssl/SSLSession
+-method name getPeerCertificateChain descriptor ()[Ljavax/security/cert/X509Certificate;
+method name getPeerCertificateChain descriptor ()[Ljavax/security/cert/X509Certificate; thrownTypes javax/net/ssl/SSLPeerUnverifiedException flags 401 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name javax/net/ssl/SSLSocketFactory
+-method name getDefault descriptor ()Ljavax/net/SocketFactory;
+method name getDefault descriptor ()Ljavax/net/SocketFactory; flags 9
+
+class name javax/security/cert/Certificate
+header extends java/lang/Object flags 421 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name javax/security/cert/CertificateEncodingException
+header extends javax/security/cert/CertificateException flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name javax/security/cert/CertificateException
+header extends java/lang/Exception flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name javax/security/cert/CertificateExpiredException
+header extends javax/security/cert/CertificateException flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name javax/security/cert/CertificateNotYetValidException
+header extends javax/security/cert/CertificateException flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name javax/security/cert/CertificateParsingException
+header extends javax/security/cert/CertificateException flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name javax/security/cert/X509Certificate
+header extends javax/security/cert/Certificate flags 421 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/java.compiler-D.sym.txt	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,107 @@
+#
+# Copyright (c) 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.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+class name javax/annotation/processing/ProcessingEnvironment
+method name isPreviewEnabled descriptor ()Z flags 1
+
+class name javax/lang/model/SourceVersion
+header extends java/lang/Enum flags 4031 signature Ljava/lang/Enum<Ljavax/lang/model/SourceVersion;>;
+innerclass innerClass java/lang/Runtime$Version outerClass java/lang/Runtime innerClassName Version flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+field name RELEASE_13 descriptor Ljavax/lang/model/SourceVersion; flags 4019
+
+class name javax/lang/model/element/ExecutableElement
+method name asType descriptor ()Ljavax/lang/model/type/TypeMirror; flags 401
+
+class name javax/lang/model/element/ModuleElement
+method name asType descriptor ()Ljavax/lang/model/type/TypeMirror; flags 401
+
+class name javax/lang/model/element/ModuleElement$Directive
+header extends java/lang/Object nestHost javax/lang/model/element/ModuleElement flags 601
+innerclass innerClass javax/lang/model/element/ModuleElement$Directive outerClass javax/lang/model/element/ModuleElement innerClassName Directive flags 609
+innerclass innerClass javax/lang/model/element/ModuleElement$DirectiveKind outerClass javax/lang/model/element/ModuleElement innerClassName DirectiveKind flags 4019
+innerclass innerClass javax/lang/model/element/ModuleElement$DirectiveVisitor outerClass javax/lang/model/element/ModuleElement innerClassName DirectiveVisitor flags 609
+
+class name javax/lang/model/element/PackageElement
+method name asType descriptor ()Ljavax/lang/model/type/TypeMirror; flags 401
+
+class name javax/lang/model/element/TypeElement
+method name asType descriptor ()Ljavax/lang/model/type/TypeMirror; flags 401
+
+class name javax/lang/model/element/TypeParameterElement
+method name asType descriptor ()Ljavax/lang/model/type/TypeMirror; flags 401
+
+class name javax/lang/model/element/VariableElement
+method name asType descriptor ()Ljavax/lang/model/type/TypeMirror; flags 401
+
+class name javax/lang/model/util/AbstractAnnotationValueVisitor9
+header extends javax/lang/model/util/AbstractAnnotationValueVisitor8 flags 421 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/AbstractAnnotationValueVisitor8<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_13;)
+
+class name javax/lang/model/util/AbstractElementVisitor9
+header extends javax/lang/model/util/AbstractElementVisitor8 flags 421 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/AbstractElementVisitor8<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_13;)
+
+class name javax/lang/model/util/AbstractTypeVisitor9
+header extends javax/lang/model/util/AbstractTypeVisitor8 flags 421 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/AbstractTypeVisitor8<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_13;)
+
+class name javax/lang/model/util/ElementFilter
+header extends java/lang/Object flags 21
+innerclass innerClass javax/lang/model/element/ModuleElement$DirectiveKind outerClass javax/lang/model/element/ModuleElement innerClassName DirectiveKind flags 4019
+innerclass innerClass javax/lang/model/element/ModuleElement$ExportsDirective outerClass javax/lang/model/element/ModuleElement innerClassName ExportsDirective flags 609
+innerclass innerClass javax/lang/model/element/ModuleElement$OpensDirective outerClass javax/lang/model/element/ModuleElement innerClassName OpensDirective flags 609
+innerclass innerClass javax/lang/model/element/ModuleElement$ProvidesDirective outerClass javax/lang/model/element/ModuleElement innerClassName ProvidesDirective flags 609
+innerclass innerClass javax/lang/model/element/ModuleElement$RequiresDirective outerClass javax/lang/model/element/ModuleElement innerClassName RequiresDirective flags 609
+innerclass innerClass javax/lang/model/element/ModuleElement$UsesDirective outerClass javax/lang/model/element/ModuleElement innerClassName UsesDirective flags 609
+innerclass innerClass javax/lang/model/element/ModuleElement$Directive outerClass javax/lang/model/element/ModuleElement innerClassName Directive flags 609
+
+class name javax/lang/model/util/ElementKindVisitor9
+header extends javax/lang/model/util/ElementKindVisitor8 flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/ElementKindVisitor8<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_13;)
+
+class name javax/lang/model/util/ElementScanner9
+header extends javax/lang/model/util/ElementScanner8 flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/ElementScanner8<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_13;)
+
+class name javax/lang/model/util/SimpleAnnotationValueVisitor9
+header extends javax/lang/model/util/SimpleAnnotationValueVisitor8 flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/SimpleAnnotationValueVisitor8<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_13;)
+
+class name javax/lang/model/util/SimpleElementVisitor9
+header extends javax/lang/model/util/SimpleElementVisitor8 flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/SimpleElementVisitor8<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_13;)
+
+class name javax/lang/model/util/SimpleTypeVisitor9
+header extends javax/lang/model/util/SimpleTypeVisitor8 flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/SimpleTypeVisitor8<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_13;)
+
+class name javax/lang/model/util/TypeKindVisitor9
+header extends javax/lang/model/util/TypeKindVisitor8 flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/TypeKindVisitor8<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_13;)
+
+class name javax/tools/StandardJavaFileManager
+header extends java/lang/Object implements javax/tools/JavaFileManager nestMembers javax/tools/StandardJavaFileManager$PathFactory flags 601
+innerclass innerClass javax/tools/JavaFileManager$Location outerClass javax/tools/JavaFileManager innerClassName Location flags 609
+innerclass innerClass javax/tools/StandardJavaFileManager$PathFactory outerClass javax/tools/StandardJavaFileManager innerClassName PathFactory flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+-method name getJavaFileObjectsFromPaths descriptor (Ljava/lang/Iterable;)Ljava/lang/Iterable;
+method name getJavaFileObjectsFromPaths descriptor (Ljava/util/Collection;)Ljava/lang/Iterable; flags 1 signature (Ljava/util/Collection<+Ljava/nio/file/Path;>;)Ljava/lang/Iterable<+Ljavax/tools/JavaFileObject;>;
+method name getJavaFileObjectsFromPaths descriptor (Ljava/lang/Iterable;)Ljava/lang/Iterable; flags 1 deprecated true signature (Ljava/lang/Iterable<+Ljava/nio/file/Path;>;)Ljava/lang/Iterable<+Ljavax/tools/JavaFileObject;>; runtimeAnnotations @Ljava/lang/Deprecated;(since="13")
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/java.desktop-D.sym.txt	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,1402 @@
+#
+# Copyright (c) 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.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+class name java/awt/Component
+header extends java/lang/Object implements java/awt/image/ImageObserver,java/awt/MenuContainer,java/io/Serializable nestMembers java/awt/Component$AccessibleAWTComponent,java/awt/Component$AccessibleAWTComponent$AccessibleAWTFocusHandler,java/awt/Component$AccessibleAWTComponent$AccessibleAWTComponentHandler,java/awt/Component$BltBufferStrategy,java/awt/Component$FlipBufferStrategy,java/awt/Component$BaselineResizeBehavior flags 421
+innerclass innerClass java/awt/Component$BaselineResizeBehavior outerClass java/awt/Component innerClassName BaselineResizeBehavior flags 4019
+innerclass innerClass java/awt/BufferCapabilities$FlipContents outerClass java/awt/BufferCapabilities innerClassName FlipContents flags 19
+innerclass innerClass java/awt/Component$BltBufferStrategy outerClass java/awt/Component innerClassName BltBufferStrategy flags 4
+innerclass innerClass java/awt/Component$FlipBufferStrategy outerClass java/awt/Component innerClassName FlipBufferStrategy flags 4
+innerclass innerClass java/awt/event/FocusEvent$Cause outerClass java/awt/event/FocusEvent innerClassName Cause flags 4019
+innerclass innerClass java/awt/Component$AccessibleAWTComponent outerClass java/awt/Component innerClassName AccessibleAWTComponent flags 404
+innerclass innerClass java/awt/Component$AccessibleAWTComponent$AccessibleAWTFocusHandler outerClass java/awt/Component$AccessibleAWTComponent innerClassName AccessibleAWTFocusHandler flags 4
+innerclass innerClass java/awt/Component$AccessibleAWTComponent$AccessibleAWTComponentHandler outerClass java/awt/Component$AccessibleAWTComponent innerClassName AccessibleAWTComponentHandler flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/Component$AccessibleAWTComponent
+header extends javax/accessibility/AccessibleContext implements java/io/Serializable,javax/accessibility/AccessibleComponent nestHost java/awt/Component flags 421
+innerclass innerClass java/awt/Component$AccessibleAWTComponent outerClass java/awt/Component innerClassName AccessibleAWTComponent flags 404
+innerclass innerClass java/awt/Component$AccessibleAWTComponent$AccessibleAWTComponentHandler outerClass java/awt/Component$AccessibleAWTComponent innerClassName AccessibleAWTComponentHandler flags 4
+innerclass innerClass java/awt/Component$AccessibleAWTComponent$AccessibleAWTFocusHandler outerClass java/awt/Component$AccessibleAWTComponent innerClassName AccessibleAWTFocusHandler flags 4
+
+class name java/awt/Container
+header extends java/awt/Component nestMembers java/awt/Container$AccessibleAWTContainer,java/awt/Container$AccessibleAWTContainer$AccessibleContainerHandler flags 21
+innerclass innerClass java/awt/event/FocusEvent$Cause outerClass java/awt/event/FocusEvent innerClassName Cause flags 4019
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/awt/Container$AccessibleAWTContainer outerClass java/awt/Container innerClassName AccessibleAWTContainer flags 4
+innerclass innerClass java/awt/Container$AccessibleAWTContainer$AccessibleContainerHandler outerClass java/awt/Container$AccessibleAWTContainer innerClassName AccessibleContainerHandler flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/Container$AccessibleAWTContainer
+header extends java/awt/Component$AccessibleAWTComponent nestHost java/awt/Container flags 21
+innerclass innerClass java/awt/Container$AccessibleAWTContainer outerClass java/awt/Container innerClassName AccessibleAWTContainer flags 4
+innerclass innerClass java/awt/Component$AccessibleAWTComponent outerClass java/awt/Component innerClassName AccessibleAWTComponent flags 404
+innerclass innerClass java/awt/Container$AccessibleAWTContainer$AccessibleContainerHandler outerClass java/awt/Container$AccessibleAWTContainer innerClassName AccessibleContainerHandler flags 4
+
+class name java/awt/Dialog
+header extends java/awt/Window nestMembers java/awt/Dialog$AccessibleAWTDialog,java/awt/Dialog$ModalExclusionType,java/awt/Dialog$ModalityType flags 21
+innerclass innerClass java/awt/Dialog$ModalityType outerClass java/awt/Dialog innerClassName ModalityType flags 4019
+innerclass innerClass java/awt/Dialog$ModalExclusionType outerClass java/awt/Dialog innerClassName ModalExclusionType flags 4019
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/awt/Dialog$AccessibleAWTDialog outerClass java/awt/Dialog innerClassName AccessibleAWTDialog flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/JobAttributes
+header extends java/lang/Object implements java/lang/Cloneable nestMembers java/awt/JobAttributes$SidesType,java/awt/JobAttributes$MultipleDocumentHandlingType,java/awt/JobAttributes$DialogType,java/awt/JobAttributes$DestinationType,java/awt/JobAttributes$DefaultSelectionType flags 31
+innerclass innerClass java/awt/JobAttributes$DefaultSelectionType outerClass java/awt/JobAttributes innerClassName DefaultSelectionType flags 19
+innerclass innerClass java/awt/JobAttributes$DestinationType outerClass java/awt/JobAttributes innerClassName DestinationType flags 19
+innerclass innerClass java/awt/JobAttributes$DialogType outerClass java/awt/JobAttributes innerClassName DialogType flags 19
+innerclass innerClass java/awt/JobAttributes$MultipleDocumentHandlingType outerClass java/awt/JobAttributes innerClassName MultipleDocumentHandlingType flags 19
+innerclass innerClass java/awt/JobAttributes$SidesType outerClass java/awt/JobAttributes innerClassName SidesType flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/LinearGradientPaint
+header extends java/awt/MultipleGradientPaint flags 31
+innerclass innerClass java/awt/geom/Point2D$Float outerClass java/awt/geom/Point2D innerClassName Float flags 9
+innerclass innerClass java/awt/MultipleGradientPaint$CycleMethod outerClass java/awt/MultipleGradientPaint innerClassName CycleMethod flags 4019
+innerclass innerClass java/awt/MultipleGradientPaint$ColorSpaceType outerClass java/awt/MultipleGradientPaint innerClassName ColorSpaceType flags 4019
+innerclass innerClass java/awt/geom/Point2D$Double outerClass java/awt/geom/Point2D innerClassName Double flags 9
+
+class name java/awt/List$AccessibleAWTList
+header extends java/awt/Component$AccessibleAWTComponent implements javax/accessibility/AccessibleSelection,java/awt/event/ItemListener,java/awt/event/ActionListener nestHost java/awt/List flags 21
+innerclass innerClass java/awt/List$AccessibleAWTList outerClass java/awt/List innerClassName AccessibleAWTList flags 4
+innerclass innerClass java/awt/Component$AccessibleAWTComponent outerClass java/awt/Component innerClassName AccessibleAWTComponent flags 404
+innerclass innerClass java/awt/List$AccessibleAWTList$AccessibleAWTListChild outerClass java/awt/List$AccessibleAWTList innerClassName AccessibleAWTListChild flags 4
+
+class name java/awt/PageAttributes
+header extends java/lang/Object implements java/lang/Cloneable nestMembers java/awt/PageAttributes$PrintQualityType,java/awt/PageAttributes$OriginType,java/awt/PageAttributes$OrientationRequestedType,java/awt/PageAttributes$MediaType,java/awt/PageAttributes$ColorType flags 31
+innerclass innerClass java/awt/PageAttributes$ColorType outerClass java/awt/PageAttributes innerClassName ColorType flags 19
+innerclass innerClass java/awt/PageAttributes$OriginType outerClass java/awt/PageAttributes innerClassName OriginType flags 19
+innerclass innerClass java/awt/PageAttributes$MediaType outerClass java/awt/PageAttributes innerClassName MediaType flags 19
+innerclass innerClass java/awt/PageAttributes$OrientationRequestedType outerClass java/awt/PageAttributes innerClassName OrientationRequestedType flags 19
+innerclass innerClass java/awt/PageAttributes$PrintQualityType outerClass java/awt/PageAttributes innerClassName PrintQualityType flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/RadialGradientPaint
+header extends java/awt/MultipleGradientPaint flags 31
+innerclass innerClass java/awt/MultipleGradientPaint$CycleMethod outerClass java/awt/MultipleGradientPaint innerClassName CycleMethod flags 4019
+innerclass innerClass java/awt/geom/Point2D$Float outerClass java/awt/geom/Point2D innerClassName Float flags 9
+innerclass innerClass java/awt/MultipleGradientPaint$ColorSpaceType outerClass java/awt/MultipleGradientPaint innerClassName ColorSpaceType flags 4019
+innerclass innerClass java/awt/geom/Point2D$Double outerClass java/awt/geom/Point2D innerClassName Double flags 9
+
+class name java/awt/ScrollPane
+header extends java/awt/Container implements javax/accessibility/Accessible nestMembers java/awt/ScrollPane$AccessibleAWTScrollPane flags 21
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/awt/ScrollPane$AccessibleAWTScrollPane outerClass java/awt/ScrollPane innerClassName AccessibleAWTScrollPane flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/Taskbar
+header extends java/lang/Object nestMembers java/awt/Taskbar$State,java/awt/Taskbar$Feature flags 21
+innerclass innerClass java/awt/Taskbar$Feature outerClass java/awt/Taskbar innerClassName Feature flags 4019
+innerclass innerClass java/awt/Taskbar$State outerClass java/awt/Taskbar innerClassName State flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/Window
+header extends java/awt/Container implements javax/accessibility/Accessible nestMembers java/awt/Window$AccessibleAWTWindow,java/awt/Window$Type flags 21
+innerclass innerClass java/awt/Window$Type outerClass java/awt/Window innerClassName Type flags 4019
+innerclass innerClass java/awt/Dialog$ModalExclusionType outerClass java/awt/Dialog innerClassName ModalExclusionType flags 4019
+innerclass innerClass java/awt/event/FocusEvent$Cause outerClass java/awt/event/FocusEvent innerClassName Cause flags 4019
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/awt/Window$AccessibleAWTWindow outerClass java/awt/Window innerClassName AccessibleAWTWindow flags 4
+innerclass innerClass java/awt/GraphicsDevice$WindowTranslucency outerClass java/awt/GraphicsDevice innerClassName WindowTranslucency flags 4019
+innerclass innerClass java/awt/geom/Path2D$Float outerClass java/awt/geom/Path2D innerClassName Float flags 9
+innerclass innerClass java/awt/geom/Point2D$Double outerClass java/awt/geom/Point2D innerClassName Double flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/dnd/DropTarget
+header extends java/lang/Object implements java/awt/dnd/DropTargetListener,java/io/Serializable nestMembers java/awt/dnd/DropTarget$DropTargetAutoScroller flags 21
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/awt/dnd/DropTarget$DropTargetAutoScroller outerClass java/awt/dnd/DropTarget innerClassName DropTargetAutoScroller flags c
+
+class name java/awt/font/TextLayout
+header extends java/lang/Object implements java/lang/Cloneable nestMembers java/awt/font/TextLayout$CaretPolicy flags 31
+innerclass innerClass java/text/AttributedCharacterIterator$Attribute outerClass java/text/AttributedCharacterIterator innerClassName Attribute flags 9
+innerclass innerClass java/awt/geom/Rectangle2D$Float outerClass java/awt/geom/Rectangle2D innerClassName Float flags 9
+innerclass innerClass java/awt/font/TextLayout$CaretPolicy outerClass java/awt/font/TextLayout innerClassName CaretPolicy flags 9
+innerclass innerClass java/awt/geom/Point2D$Float outerClass java/awt/geom/Point2D innerClassName Float flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/geom/Arc2D
+header extends java/awt/geom/RectangularShape nestMembers java/awt/geom/Arc2D$Double,java/awt/geom/Arc2D$Float flags 421
+innerclass innerClass java/awt/geom/Point2D$Double outerClass java/awt/geom/Point2D innerClassName Double flags 9
+innerclass innerClass java/awt/geom/Rectangle2D$Double outerClass java/awt/geom/Rectangle2D innerClassName Double flags 9
+innerclass innerClass java/awt/geom/Arc2D$Double outerClass java/awt/geom/Arc2D innerClassName Double flags 9
+innerclass innerClass java/awt/geom/Arc2D$Float outerClass java/awt/geom/Arc2D innerClassName Float flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/geom/Line2D
+header extends java/lang/Object implements java/awt/Shape,java/lang/Cloneable nestMembers java/awt/geom/Line2D$Double,java/awt/geom/Line2D$Float flags 421
+innerclass innerClass java/awt/geom/Rectangle2D$Double outerClass java/awt/geom/Rectangle2D innerClassName Double flags 9
+innerclass innerClass java/awt/geom/Line2D$Double outerClass java/awt/geom/Line2D innerClassName Double flags 9
+innerclass innerClass java/awt/geom/Line2D$Float outerClass java/awt/geom/Line2D innerClassName Float flags 9
+
+class name java/awt/image/AffineTransformOp
+header extends java/lang/Object implements java/awt/image/BufferedImageOp,java/awt/image/RasterOp flags 21
+innerclass innerClass java/awt/RenderingHints$Key outerClass java/awt/RenderingHints innerClassName Key flags 409
+innerclass innerClass java/awt/geom/Rectangle2D$Float outerClass java/awt/geom/Rectangle2D innerClassName Float flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/beans/beancontext/BeanContextServicesSupport
+header extends java/beans/beancontext/BeanContextSupport implements java/beans/beancontext/BeanContextServices nestMembers java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider,java/beans/beancontext/BeanContextServicesSupport$BCSSServiceProvider,java/beans/beancontext/BeanContextServicesSupport$BCSSChild flags 21
+innerclass innerClass java/beans/beancontext/BeanContextServicesSupport$BCSSChild outerClass java/beans/beancontext/BeanContextServicesSupport innerClassName BCSSChild flags 4
+innerclass innerClass java/beans/beancontext/BeanContextServicesSupport$BCSSServiceProvider outerClass java/beans/beancontext/BeanContextServicesSupport innerClassName BCSSServiceProvider flags c
+innerclass innerClass java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider outerClass java/beans/beancontext/BeanContextServicesSupport innerClassName BCSSProxyServiceProvider flags 4
+innerclass innerClass java/beans/beancontext/BeanContextSupport$BCSIterator outerClass java/beans/beancontext/BeanContextSupport innerClassName BCSIterator flags 1c
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+innerclass innerClass java/beans/beancontext/BeanContextSupport$BCSChild outerClass java/beans/beancontext/BeanContextSupport innerClassName BCSChild flags 4
+
+class name java/beans/beancontext/BeanContextServicesSupport$BCSSChild
+header extends java/beans/beancontext/BeanContextSupport$BCSChild nestHost java/beans/beancontext/BeanContextServicesSupport flags 21
+innerclass innerClass java/beans/beancontext/BeanContextServicesSupport$BCSSChild outerClass java/beans/beancontext/BeanContextServicesSupport innerClassName BCSSChild flags 4
+innerclass innerClass java/beans/beancontext/BeanContextSupport$BCSChild outerClass java/beans/beancontext/BeanContextSupport innerClassName BCSChild flags 4
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+
+class name java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider
+header extends java/lang/Object implements java/beans/beancontext/BeanContextServiceProvider,java/beans/beancontext/BeanContextServiceRevokedListener nestHost java/beans/beancontext/BeanContextServicesSupport flags 21
+innerclass innerClass java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider outerClass java/beans/beancontext/BeanContextServicesSupport innerClassName BCSSProxyServiceProvider flags 4
+innerclass innerClass java/beans/beancontext/BeanContextServicesSupport$BCSSChild outerClass java/beans/beancontext/BeanContextServicesSupport innerClassName BCSSChild flags 4
+innerclass innerClass java/beans/beancontext/BeanContextSupport$BCSChild outerClass java/beans/beancontext/BeanContextSupport innerClassName BCSChild flags 4
+
+class name java/beans/beancontext/BeanContextSupport
+header extends java/beans/beancontext/BeanContextChildSupport implements java/beans/beancontext/BeanContext,java/io/Serializable,java/beans/PropertyChangeListener,java/beans/VetoableChangeListener nestMembers java/beans/beancontext/BeanContextSupport$BCSChild,java/beans/beancontext/BeanContextSupport$BCSIterator flags 21
+innerclass innerClass java/beans/beancontext/BeanContextSupport$BCSIterator outerClass java/beans/beancontext/BeanContextSupport innerClassName BCSIterator flags 1c
+innerclass innerClass java/beans/beancontext/BeanContextSupport$BCSChild outerClass java/beans/beancontext/BeanContextSupport innerClassName BCSChild flags 4
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+
+class name javax/accessibility/AccessibleBundle
+header extends java/lang/Object flags 421 classAnnotations @Ljdk/Profile+Annotation;(value=I4)
+
+class name javax/print/attribute/standard/MediaSize
+header extends javax/print/attribute/Size2DSyntax implements javax/print/attribute/Attribute nestMembers javax/print/attribute/standard/MediaSize$Other,javax/print/attribute/standard/MediaSize$Engineering,javax/print/attribute/standard/MediaSize$NA,javax/print/attribute/standard/MediaSize$JIS,javax/print/attribute/standard/MediaSize$ISO flags 21
+innerclass innerClass javax/print/attribute/standard/MediaSize$ISO outerClass javax/print/attribute/standard/MediaSize innerClassName ISO flags 19
+innerclass innerClass javax/print/attribute/standard/MediaSize$JIS outerClass javax/print/attribute/standard/MediaSize innerClassName JIS flags 19
+innerclass innerClass javax/print/attribute/standard/MediaSize$NA outerClass javax/print/attribute/standard/MediaSize innerClassName NA flags 19
+innerclass innerClass javax/print/attribute/standard/MediaSize$Engineering outerClass javax/print/attribute/standard/MediaSize innerClassName Engineering flags 19
+innerclass innerClass javax/print/attribute/standard/MediaSize$Other outerClass javax/print/attribute/standard/MediaSize innerClassName Other flags 19
+
+class name javax/sound/sampled/AudioSystem
+header extends java/lang/Object flags 21
+innerclass innerClass javax/sound/sampled/Mixer$Info outerClass javax/sound/sampled/Mixer innerClassName Info flags 9
+innerclass innerClass javax/sound/sampled/Line$Info outerClass javax/sound/sampled/Line innerClassName Info flags 9
+innerclass innerClass javax/sound/sampled/AudioFormat$Encoding outerClass javax/sound/sampled/AudioFormat innerClassName Encoding flags 9
+innerclass innerClass javax/sound/sampled/DataLine$Info outerClass javax/sound/sampled/DataLine innerClassName Info flags 9
+innerclass innerClass javax/sound/sampled/AudioFileFormat$Type outerClass javax/sound/sampled/AudioFileFormat innerClassName Type flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/sound/sampled/BooleanControl
+header extends javax/sound/sampled/Control nestMembers javax/sound/sampled/BooleanControl$Type flags 421
+innerclass innerClass javax/sound/sampled/Control$Type outerClass javax/sound/sampled/Control innerClassName Type flags 9
+innerclass innerClass javax/sound/sampled/BooleanControl$Type outerClass javax/sound/sampled/BooleanControl innerClassName Type flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/sound/sampled/BooleanControl$Type
+header extends javax/sound/sampled/Control$Type nestHost javax/sound/sampled/BooleanControl flags 21
+innerclass innerClass javax/sound/sampled/Control$Type outerClass javax/sound/sampled/Control innerClassName Type flags 9
+innerclass innerClass javax/sound/sampled/BooleanControl$Type outerClass javax/sound/sampled/BooleanControl innerClassName Type flags 9
+
+class name javax/sound/sampled/CompoundControl
+header extends javax/sound/sampled/Control nestMembers javax/sound/sampled/CompoundControl$Type flags 421
+innerclass innerClass javax/sound/sampled/Control$Type outerClass javax/sound/sampled/Control innerClassName Type flags 9
+innerclass innerClass javax/sound/sampled/CompoundControl$Type outerClass javax/sound/sampled/CompoundControl innerClassName Type flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/sound/sampled/CompoundControl$Type
+header extends javax/sound/sampled/Control$Type nestHost javax/sound/sampled/CompoundControl flags 21
+innerclass innerClass javax/sound/sampled/Control$Type outerClass javax/sound/sampled/Control innerClassName Type flags 9
+innerclass innerClass javax/sound/sampled/CompoundControl$Type outerClass javax/sound/sampled/CompoundControl innerClassName Type flags 9
+
+class name javax/sound/sampled/DataLine$Info
+header extends javax/sound/sampled/Line$Info nestHost javax/sound/sampled/DataLine flags 21
+innerclass innerClass javax/sound/sampled/Line$Info outerClass javax/sound/sampled/Line innerClassName Info flags 9
+innerclass innerClass javax/sound/sampled/DataLine$Info outerClass javax/sound/sampled/DataLine innerClassName Info flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/sound/sampled/EnumControl
+header extends javax/sound/sampled/Control nestMembers javax/sound/sampled/EnumControl$Type flags 421
+innerclass innerClass javax/sound/sampled/Control$Type outerClass javax/sound/sampled/Control innerClassName Type flags 9
+innerclass innerClass javax/sound/sampled/EnumControl$Type outerClass javax/sound/sampled/EnumControl innerClassName Type flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/sound/sampled/EnumControl$Type
+header extends javax/sound/sampled/Control$Type nestHost javax/sound/sampled/EnumControl flags 21
+innerclass innerClass javax/sound/sampled/Control$Type outerClass javax/sound/sampled/Control innerClassName Type flags 9
+innerclass innerClass javax/sound/sampled/EnumControl$Type outerClass javax/sound/sampled/EnumControl innerClassName Type flags 9
+
+class name javax/sound/sampled/FloatControl
+header extends javax/sound/sampled/Control nestMembers javax/sound/sampled/FloatControl$Type flags 421
+innerclass innerClass javax/sound/sampled/Control$Type outerClass javax/sound/sampled/Control innerClassName Type flags 9
+innerclass innerClass javax/sound/sampled/FloatControl$Type outerClass javax/sound/sampled/FloatControl innerClassName Type flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/sound/sampled/FloatControl$Type
+header extends javax/sound/sampled/Control$Type nestHost javax/sound/sampled/FloatControl flags 21
+innerclass innerClass javax/sound/sampled/Control$Type outerClass javax/sound/sampled/Control innerClassName Type flags 9
+innerclass innerClass javax/sound/sampled/FloatControl$Type outerClass javax/sound/sampled/FloatControl innerClassName Type flags 9
+
+class name javax/sound/sampled/Line$Info
+header extends java/lang/Object nestHost javax/sound/sampled/Line flags 21
+innerclass innerClass javax/sound/sampled/Line$Info outerClass javax/sound/sampled/Line innerClassName Info flags 9
+
+class name javax/sound/sampled/Port$Info
+header extends javax/sound/sampled/Line$Info nestHost javax/sound/sampled/Port flags 21
+innerclass innerClass javax/sound/sampled/Line$Info outerClass javax/sound/sampled/Line innerClassName Info flags 9
+innerclass innerClass javax/sound/sampled/Port$Info outerClass javax/sound/sampled/Port innerClassName Info flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/AbstractButton$AccessibleAbstractButton
+header extends javax/swing/JComponent$AccessibleJComponent implements javax/accessibility/AccessibleAction,javax/accessibility/AccessibleValue,javax/accessibility/AccessibleText,javax/accessibility/AccessibleExtendedComponent nestHost javax/swing/AbstractButton flags 421
+innerclass innerClass javax/swing/AbstractButton$AccessibleAbstractButton outerClass javax/swing/AbstractButton innerClassName AccessibleAbstractButton flags 404
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+innerclass innerClass java/awt/geom/Rectangle2D$Float outerClass java/awt/geom/Rectangle2D innerClassName Float flags 9
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+
+class name javax/swing/Box
+header extends javax/swing/JComponent implements javax/accessibility/Accessible nestMembers javax/swing/Box$AccessibleBox,javax/swing/Box$Filler,javax/swing/Box$Filler$AccessibleBoxFiller flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="accessibleContext")
+innerclass innerClass javax/swing/Box$Filler outerClass javax/swing/Box innerClassName Filler flags 9
+innerclass innerClass javax/swing/Box$AccessibleBox outerClass javax/swing/Box innerClassName AccessibleBox flags 4
+innerclass innerClass javax/swing/Box$Filler$AccessibleBoxFiller outerClass javax/swing/Box$Filler innerClassName AccessibleBoxFiller flags 4
+
+class name javax/swing/DefaultListCellRenderer
+header extends javax/swing/JLabel implements javax/swing/ListCellRenderer,java/io/Serializable nestMembers javax/swing/DefaultListCellRenderer$UIResource flags 21 signature Ljavax/swing/JLabel;Ljavax/swing/ListCellRenderer<Ljava/lang/Object;>;Ljava/io/Serializable;
+innerclass innerClass javax/swing/JList$DropLocation outerClass javax/swing/JList innerClassName DropLocation flags 19
+innerclass innerClass javax/swing/DefaultListCellRenderer$UIResource outerClass javax/swing/DefaultListCellRenderer innerClassName UIResource flags 9
+
+class name javax/swing/GroupLayout
+header extends java/lang/Object implements java/awt/LayoutManager2 nestMembers javax/swing/GroupLayout$ParallelGroup,javax/swing/GroupLayout$SequentialGroup,javax/swing/GroupLayout$Group,javax/swing/GroupLayout$Spring,javax/swing/GroupLayout$Alignment flags 21
+innerclass innerClass javax/swing/GroupLayout$Alignment outerClass javax/swing/GroupLayout innerClassName Alignment flags 4019
+innerclass innerClass javax/swing/GroupLayout$ParallelGroup outerClass javax/swing/GroupLayout innerClassName ParallelGroup flags 1
+innerclass innerClass javax/swing/GroupLayout$Group outerClass javax/swing/GroupLayout innerClassName Group flags 401
+innerclass innerClass javax/swing/GroupLayout$SequentialGroup outerClass javax/swing/GroupLayout innerClassName SequentialGroup flags 1
+innerclass innerClass javax/swing/GroupLayout$Spring outerClass javax/swing/GroupLayout innerClassName Spring flags 402
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/GroupLayout$Group
+header extends javax/swing/GroupLayout$Spring nestHost javax/swing/GroupLayout flags 421
+innerclass innerClass javax/swing/GroupLayout$Group outerClass javax/swing/GroupLayout innerClassName Group flags 401
+innerclass innerClass javax/swing/GroupLayout$Spring outerClass javax/swing/GroupLayout innerClassName Spring flags 402
+
+class name javax/swing/GroupLayout$ParallelGroup
+header extends javax/swing/GroupLayout$Group nestHost javax/swing/GroupLayout flags 21
+innerclass innerClass javax/swing/GroupLayout$ParallelGroup outerClass javax/swing/GroupLayout innerClassName ParallelGroup flags 1
+innerclass innerClass javax/swing/GroupLayout$Group outerClass javax/swing/GroupLayout innerClassName Group flags 401
+innerclass innerClass javax/swing/GroupLayout$Alignment outerClass javax/swing/GroupLayout innerClassName Alignment flags 4019
+innerclass innerClass javax/swing/GroupLayout$Spring outerClass javax/swing/GroupLayout innerClassName Spring flags 402
+
+class name javax/swing/GroupLayout$SequentialGroup
+header extends javax/swing/GroupLayout$Group nestHost javax/swing/GroupLayout flags 21
+innerclass innerClass javax/swing/GroupLayout$SequentialGroup outerClass javax/swing/GroupLayout innerClassName SequentialGroup flags 1
+innerclass innerClass javax/swing/GroupLayout$Group outerClass javax/swing/GroupLayout innerClassName Group flags 401
+innerclass innerClass javax/swing/GroupLayout$Spring outerClass javax/swing/GroupLayout innerClassName Spring flags 402
+innerclass innerClass javax/swing/LayoutStyle$ComponentPlacement outerClass javax/swing/LayoutStyle innerClassName ComponentPlacement flags 4019
+innerclass innerClass java/awt/Component$BaselineResizeBehavior outerClass java/awt/Component innerClassName BaselineResizeBehavior flags 4019
+
+class name javax/swing/JCheckBoxMenuItem
+header extends javax/swing/JMenuItem implements javax/swing/SwingConstants,javax/accessibility/Accessible nestMembers javax/swing/JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(description="A\u005C;u0020;menu\u005C;u0020;item\u005C;u0020;which\u005C;u0020;can\u005C;u0020;be\u005C;u0020;selected\u005C;u0020;or\u005C;u0020;deselected.")@Ljavax/swing/SwingContainer;(value=Zfalse)
+innerclass innerClass javax/swing/JToggleButton$ToggleButtonModel outerClass javax/swing/JToggleButton innerClassName ToggleButtonModel flags 9
+innerclass innerClass javax/swing/JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem outerClass javax/swing/JCheckBoxMenuItem innerClassName AccessibleJCheckBoxMenuItem flags 4
+
+class name javax/swing/JComboBox
+header extends javax/swing/JComponent implements java/awt/ItemSelectable,javax/swing/event/ListDataListener,java/awt/event/ActionListener,javax/accessibility/Accessible nestMembers javax/swing/JComboBox$AccessibleJComboBox,javax/swing/JComboBox$KeySelectionManager flags 21 signature <E:Ljava/lang/Object;>Ljavax/swing/JComponent;Ljava/awt/ItemSelectable;Ljavax/swing/event/ListDataListener;Ljava/awt/event/ActionListener;Ljavax/accessibility/Accessible; runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UI",description="A\u005C;u0020;combination\u005C;u0020;of\u005C;u0020;a\u005C;u0020;text\u005C;u0020;field\u005C;u0020;and\u005C;u0020;a\u005C;u0020;drop-down\u005C;u0020;list.")@Ljavax/swing/SwingContainer;(value=Zfalse)
+innerclass innerClass javax/swing/JComboBox$KeySelectionManager outerClass javax/swing/JComboBox innerClassName KeySelectionManager flags 609
+innerclass innerClass javax/swing/JComboBox$AccessibleJComboBox outerClass javax/swing/JComboBox innerClassName AccessibleJComboBox flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JComponent
+header extends java/awt/Container implements java/io/Serializable,javax/swing/TransferHandler$HasGetTransferHandler nestMembers javax/swing/JComponent$AccessibleJComponent,javax/swing/JComponent$AccessibleJComponent$AccessibleFocusHandler,javax/swing/JComponent$AccessibleJComponent$AccessibleContainerHandler flags 421 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UIClassID")
+innerclass innerClass java/awt/RenderingHints$Key outerClass java/awt/RenderingHints innerClassName Key flags 409
+innerclass innerClass java/awt/Component$BaselineResizeBehavior outerClass java/awt/Component innerClassName BaselineResizeBehavior flags 4019
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass javax/swing/TransferHandler$HasGetTransferHandler outerClass javax/swing/TransferHandler innerClassName HasGetTransferHandler flags 608
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+innerclass innerClass javax/swing/TransferHandler$DropLocation outerClass javax/swing/TransferHandler innerClassName DropLocation flags 9
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent$AccessibleFocusHandler outerClass javax/swing/JComponent$AccessibleJComponent innerClassName AccessibleFocusHandler flags 4
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent$AccessibleContainerHandler outerClass javax/swing/JComponent$AccessibleJComponent innerClassName AccessibleContainerHandler flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JComponent$AccessibleJComponent
+header extends java/awt/Container$AccessibleAWTContainer implements javax/accessibility/AccessibleExtendedComponent nestHost javax/swing/JComponent flags 421
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+innerclass innerClass java/awt/Container$AccessibleAWTContainer outerClass java/awt/Container innerClassName AccessibleAWTContainer flags 4
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent$AccessibleFocusHandler outerClass javax/swing/JComponent$AccessibleJComponent innerClassName AccessibleFocusHandler flags 4
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent$AccessibleContainerHandler outerClass javax/swing/JComponent$AccessibleJComponent innerClassName AccessibleContainerHandler flags 4
+
+class name javax/swing/JDesktopPane
+header extends javax/swing/JLayeredPane implements javax/accessibility/Accessible nestMembers javax/swing/JDesktopPane$AccessibleJDesktopPane flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UI")
+innerclass innerClass javax/swing/JInternalFrame$JDesktopIcon outerClass javax/swing/JInternalFrame innerClassName JDesktopIcon flags 9
+innerclass innerClass javax/swing/JDesktopPane$AccessibleJDesktopPane outerClass javax/swing/JDesktopPane innerClassName AccessibleJDesktopPane flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JDialog
+header extends java/awt/Dialog implements javax/swing/WindowConstants,javax/accessibility/Accessible,javax/swing/RootPaneContainer,javax/swing/TransferHandler$HasGetTransferHandler nestMembers javax/swing/JDialog$AccessibleJDialog flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="JMenuBar",description="A\u005C;u0020;toplevel\u005C;u0020;window\u005C;u0020;for\u005C;u0020;creating\u005C;u0020;dialog\u005C;u0020;boxes.")@Ljavax/swing/SwingContainer;(delegate="getContentPane")
+innerclass innerClass java/awt/Dialog$ModalityType outerClass java/awt/Dialog innerClassName ModalityType flags 4019
+innerclass innerClass javax/swing/JDialog$AccessibleJDialog outerClass javax/swing/JDialog innerClassName AccessibleJDialog flags 4
+innerclass innerClass javax/swing/TransferHandler$HasGetTransferHandler outerClass javax/swing/TransferHandler innerClassName HasGetTransferHandler flags 608
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JEditorPane
+header extends javax/swing/text/JTextComponent nestMembers javax/swing/JEditorPane$JEditorPaneAccessibleHypertextSupport,javax/swing/JEditorPane$JEditorPaneAccessibleHypertextSupport$HTMLLink,javax/swing/JEditorPane$AccessibleJEditorPaneHTML,javax/swing/JEditorPane$AccessibleJEditorPane flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UIClassID",description="A\u005C;u0020;text\u005C;u0020;component\u005C;u0020;to\u005C;u0020;edit\u005C;u0020;various\u005C;u0020;types\u005C;u0020;of\u005C;u0020;content.")@Ljavax/swing/SwingContainer;(value=Zfalse)
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/html/HTMLDocument$Iterator outerClass javax/swing/text/html/HTMLDocument innerClassName Iterator flags 409
+innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
+innerclass innerClass javax/swing/JEditorPane$AccessibleJEditorPaneHTML outerClass javax/swing/JEditorPane innerClassName AccessibleJEditorPaneHTML flags 4
+innerclass innerClass javax/swing/JEditorPane$AccessibleJEditorPane outerClass javax/swing/JEditorPane innerClassName AccessibleJEditorPane flags 4
+innerclass innerClass javax/swing/JEditorPane$JEditorPaneAccessibleHypertextSupport outerClass javax/swing/JEditorPane innerClassName JEditorPaneAccessibleHypertextSupport flags 4
+innerclass innerClass javax/swing/JEditorPane$JEditorPaneAccessibleHypertextSupport$HTMLLink outerClass javax/swing/JEditorPane$JEditorPaneAccessibleHypertextSupport innerClassName HTMLLink flags 1
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JEditorPane$AccessibleJEditorPaneHTML
+header extends javax/swing/JEditorPane$AccessibleJEditorPane nestHost javax/swing/JEditorPane flags 21
+innerclass innerClass javax/swing/JEditorPane$JEditorPaneAccessibleHypertextSupport outerClass javax/swing/JEditorPane innerClassName JEditorPaneAccessibleHypertextSupport flags 4
+innerclass innerClass javax/swing/JEditorPane$AccessibleJEditorPaneHTML outerClass javax/swing/JEditorPane innerClassName AccessibleJEditorPaneHTML flags 4
+innerclass innerClass javax/swing/JEditorPane$AccessibleJEditorPane outerClass javax/swing/JEditorPane innerClassName AccessibleJEditorPane flags 4
+
+class name javax/swing/JEditorPane$JEditorPaneAccessibleHypertextSupport
+header extends javax/swing/JEditorPane$AccessibleJEditorPane implements javax/accessibility/AccessibleHypertext nestHost javax/swing/JEditorPane flags 21
+innerclass innerClass javax/swing/JEditorPane$JEditorPaneAccessibleHypertextSupport outerClass javax/swing/JEditorPane innerClassName JEditorPaneAccessibleHypertextSupport flags 4
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
+innerclass innerClass javax/swing/JEditorPane$JEditorPaneAccessibleHypertextSupport$HTMLLink outerClass javax/swing/JEditorPane$JEditorPaneAccessibleHypertextSupport innerClassName HTMLLink flags 1
+innerclass innerClass javax/swing/JEditorPane$AccessibleJEditorPane outerClass javax/swing/JEditorPane innerClassName AccessibleJEditorPane flags 4
+
+class name javax/swing/JFileChooser
+header extends javax/swing/JComponent implements javax/accessibility/Accessible nestMembers javax/swing/JFileChooser$AccessibleJFileChooser flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UI",description="A\u005C;u0020;component\u005C;u0020;which\u005C;u0020;allows\u005C;u0020;for\u005C;u0020;the\u005C;u0020;interactive\u005C;u0020;selection\u005C;u0020;of\u005C;u0020;a\u005C;u0020;file.")@Ljavax/swing/SwingContainer;(value=Zfalse)
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass javax/swing/JFileChooser$AccessibleJFileChooser outerClass javax/swing/JFileChooser innerClassName AccessibleJFileChooser flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JFormattedTextField
+header extends javax/swing/JTextField nestMembers javax/swing/JFormattedTextField$AbstractFormatter,javax/swing/JFormattedTextField$AbstractFormatterFactory flags 21 runtimeAnnotations @Ljava/beans/JavaBean;
+innerclass innerClass javax/swing/JFormattedTextField$AbstractFormatterFactory outerClass javax/swing/JFormattedTextField innerClassName AbstractFormatterFactory flags 409
+innerclass innerClass javax/swing/JFormattedTextField$AbstractFormatter outerClass javax/swing/JFormattedTextField innerClassName AbstractFormatter flags 409
+
+class name javax/swing/JLabel$AccessibleJLabel
+header extends javax/swing/JComponent$AccessibleJComponent implements javax/accessibility/AccessibleText,javax/accessibility/AccessibleExtendedComponent nestHost javax/swing/JLabel flags 21
+innerclass innerClass javax/swing/JLabel$AccessibleJLabel outerClass javax/swing/JLabel innerClassName AccessibleJLabel flags 4
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+innerclass innerClass java/awt/geom/Rectangle2D$Float outerClass java/awt/geom/Rectangle2D innerClassName Float flags 9
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+
+class name javax/swing/JList
+header extends javax/swing/JComponent implements javax/swing/Scrollable,javax/accessibility/Accessible nestMembers javax/swing/JList$AccessibleJList,javax/swing/JList$AccessibleJList$AccessibleJListChild,javax/swing/JList$DropLocation flags 21 signature <E:Ljava/lang/Object;>Ljavax/swing/JComponent;Ljavax/swing/Scrollable;Ljavax/accessibility/Accessible; runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UI",description="A\u005C;u0020;component\u005C;u0020;which\u005C;u0020;allows\u005C;u0020;for\u005C;u0020;the\u005C;u0020;selection\u005C;u0020;of\u005C;u0020;one\u005C;u0020;or\u005C;u0020;more\u005C;u0020;objects\u005C;u0020;from\u005C;u0020;a\u005C;u0020;list.")@Ljavax/swing/SwingContainer;(value=Zfalse)
+innerclass innerClass javax/swing/JList$DropLocation outerClass javax/swing/JList innerClassName DropLocation flags 19
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+innerclass innerClass javax/swing/JList$AccessibleJList outerClass javax/swing/JList innerClassName AccessibleJList flags 4
+innerclass innerClass javax/swing/TransferHandler$DropLocation outerClass javax/swing/TransferHandler innerClassName DropLocation flags 9
+innerclass innerClass javax/swing/JList$AccessibleJList$AccessibleJListChild outerClass javax/swing/JList$AccessibleJList innerClassName AccessibleJListChild flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JList$AccessibleJList
+header extends javax/swing/JComponent$AccessibleJComponent implements javax/accessibility/AccessibleSelection,java/beans/PropertyChangeListener,javax/swing/event/ListSelectionListener,javax/swing/event/ListDataListener nestHost javax/swing/JList flags 21
+innerclass innerClass javax/swing/JList$AccessibleJList outerClass javax/swing/JList innerClassName AccessibleJList flags 4
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+innerclass innerClass javax/swing/JList$AccessibleJList$AccessibleJListChild outerClass javax/swing/JList$AccessibleJList innerClassName AccessibleJListChild flags 4
+
+class name javax/swing/JList$DropLocation
+header extends javax/swing/TransferHandler$DropLocation nestHost javax/swing/JList flags 31
+innerclass innerClass javax/swing/TransferHandler$DropLocation outerClass javax/swing/TransferHandler innerClassName DropLocation flags 9
+innerclass innerClass javax/swing/JList$DropLocation outerClass javax/swing/JList innerClassName DropLocation flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JMenu
+header extends javax/swing/JMenuItem implements javax/accessibility/Accessible,javax/swing/MenuElement nestMembers javax/swing/JMenu$AccessibleJMenu,javax/swing/JMenu$WinListener flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(description="A\u005C;u0020;popup\u005C;u0020;window\u005C;u0020;containing\u005C;u0020;menu\u005C;u0020;items\u005C;u0020;displayed\u005C;u0020;in\u005C;u0020;a\u005C;u0020;menu\u005C;u0020;bar.")@Ljavax/swing/SwingContainer;
+innerclass innerClass javax/swing/JMenu$WinListener outerClass javax/swing/JMenu innerClassName WinListener flags 4
+innerclass innerClass javax/swing/JPopupMenu$Separator outerClass javax/swing/JPopupMenu innerClassName Separator flags 9
+innerclass innerClass javax/swing/JMenu$AccessibleJMenu outerClass javax/swing/JMenu innerClassName AccessibleJMenu flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JOptionPane
+header extends javax/swing/JComponent implements javax/accessibility/Accessible nestMembers javax/swing/JOptionPane$AccessibleJOptionPane flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UI",description="A\u005C;u0020;component\u005C;u0020;which\u005C;u0020;implements\u005C;u0020;standard\u005C;u0020;dialog\u005C;u0020;box\u005C;u0020;controls.")@Ljavax/swing/SwingContainer;
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass javax/swing/JOptionPane$AccessibleJOptionPane outerClass javax/swing/JOptionPane innerClassName AccessibleJOptionPane flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JRadioButtonMenuItem
+header extends javax/swing/JMenuItem implements javax/accessibility/Accessible nestMembers javax/swing/JRadioButtonMenuItem$AccessibleJRadioButtonMenuItem flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(description="A\u005C;u0020;component\u005C;u0020;within\u005C;u0020;a\u005C;u0020;group\u005C;u0020;of\u005C;u0020;menu\u005C;u0020;items\u005C;u0020;which\u005C;u0020;can\u005C;u0020;be\u005C;u0020;selected.")@Ljavax/swing/SwingContainer;(value=Zfalse)
+innerclass innerClass javax/swing/JToggleButton$ToggleButtonModel outerClass javax/swing/JToggleButton innerClassName ToggleButtonModel flags 9
+innerclass innerClass javax/swing/JRadioButtonMenuItem$AccessibleJRadioButtonMenuItem outerClass javax/swing/JRadioButtonMenuItem innerClassName AccessibleJRadioButtonMenuItem flags 4
+
+class name javax/swing/JRootPane
+header extends javax/swing/JComponent implements javax/accessibility/Accessible nestMembers javax/swing/JRootPane$AccessibleJRootPane,javax/swing/JRootPane$RootLayout flags 21
+innerclass innerClass javax/swing/JRootPane$RootLayout outerClass javax/swing/JRootPane innerClassName RootLayout flags 4
+innerclass innerClass javax/swing/JRootPane$AccessibleJRootPane outerClass javax/swing/JRootPane innerClassName AccessibleJRootPane flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JScrollPane
+header extends javax/swing/JComponent implements javax/swing/ScrollPaneConstants,javax/accessibility/Accessible nestMembers javax/swing/JScrollPane$AccessibleJScrollPane,javax/swing/JScrollPane$ScrollBar flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UI",description="A\u005C;u0020;specialized\u005C;u0020;container\u005C;u0020;that\u005C;u0020;manages\u005C;u0020;a\u005C;u0020;viewport,\u005C;u0020;optional\u005C;u0020;scrollbars\u005C;u0020;and\u005C;u0020;headers")@Ljavax/swing/SwingContainer;(delegate="getViewport")
+innerclass innerClass javax/swing/ScrollPaneLayout$UIResource outerClass javax/swing/ScrollPaneLayout innerClassName UIResource flags 9
+innerclass innerClass javax/swing/JScrollPane$ScrollBar outerClass javax/swing/JScrollPane innerClassName ScrollBar flags 4
+innerclass innerClass javax/swing/JScrollPane$AccessibleJScrollPane outerClass javax/swing/JScrollPane innerClassName AccessibleJScrollPane flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JSpinner
+header extends javax/swing/JComponent implements javax/accessibility/Accessible nestMembers javax/swing/JSpinner$AccessibleJSpinner,javax/swing/JSpinner$ListEditor,javax/swing/JSpinner$NumberEditor,javax/swing/JSpinner$DateEditor,javax/swing/JSpinner$DefaultEditor flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UI",description="A\u005C;u0020;single\u005C;u0020;line\u005C;u0020;input\u005C;u0020;field\u005C;u0020;that\u005C;u0020;lets\u005C;u0020;the\u005C;u0020;user\u005C;u0020;select\u005C;u0020;a\u005C;u0020;number\u005C;u0020;or\u005C;u0020;an\u005C;u0020;object\u005C;u0020;value\u005C;u0020;from\u005C;u0020;an\u005C;u0020;ordered\u005C;u0020;set.")@Ljavax/swing/SwingContainer;(value=Zfalse)
+innerclass innerClass javax/swing/JSpinner$DateEditor outerClass javax/swing/JSpinner innerClassName DateEditor flags 9
+innerclass innerClass javax/swing/JSpinner$ListEditor outerClass javax/swing/JSpinner innerClassName ListEditor flags 9
+innerclass innerClass javax/swing/JSpinner$NumberEditor outerClass javax/swing/JSpinner innerClassName NumberEditor flags 9
+innerclass innerClass javax/swing/JSpinner$DefaultEditor outerClass javax/swing/JSpinner innerClassName DefaultEditor flags 9
+innerclass innerClass javax/swing/JSpinner$AccessibleJSpinner outerClass javax/swing/JSpinner innerClassName AccessibleJSpinner flags 4
+
+class name javax/swing/JSpinner$AccessibleJSpinner
+header extends javax/swing/JComponent$AccessibleJComponent implements javax/accessibility/AccessibleValue,javax/accessibility/AccessibleAction,javax/accessibility/AccessibleText,javax/accessibility/AccessibleEditableText,javax/swing/event/ChangeListener nestHost javax/swing/JSpinner flags 21
+innerclass innerClass javax/swing/JSpinner$AccessibleJSpinner outerClass javax/swing/JSpinner innerClassName AccessibleJSpinner flags 4
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+innerclass innerClass javax/swing/JSpinner$DefaultEditor outerClass javax/swing/JSpinner innerClassName DefaultEditor flags 9
+
+class name javax/swing/JSpinner$ListEditor
+header extends javax/swing/JSpinner$DefaultEditor nestHost javax/swing/JSpinner flags 21
+innerclass innerClass javax/swing/JSpinner$DefaultEditor outerClass javax/swing/JSpinner innerClassName DefaultEditor flags 9
+innerclass innerClass javax/swing/JSpinner$ListEditor outerClass javax/swing/JSpinner innerClassName ListEditor flags 9
+innerclass innerClass javax/swing/JFormattedTextField$AbstractFormatter outerClass javax/swing/JFormattedTextField innerClassName AbstractFormatter flags 409
+innerclass innerClass javax/swing/JFormattedTextField$AbstractFormatterFactory outerClass javax/swing/JFormattedTextField innerClassName AbstractFormatterFactory flags 409
+
+class name javax/swing/JTabbedPane
+header extends javax/swing/JComponent implements java/io/Serializable,javax/accessibility/Accessible,javax/swing/SwingConstants nestMembers javax/swing/JTabbedPane$AccessibleJTabbedPane,javax/swing/JTabbedPane$ModelListener flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UI",description="A\u005C;u0020;component\u005C;u0020;which\u005C;u0020;provides\u005C;u0020;a\u005C;u0020;tab\u005C;u0020;folder\u005C;u0020;metaphor\u005C;u0020;for\u005C;u0020;displaying\u005C;u0020;one\u005C;u0020;component\u005C;u0020;from\u005C;u0020;a\u005C;u0020;set\u005C;u0020;of\u005C;u0020;components.")@Ljavax/swing/SwingContainer;
+innerclass innerClass javax/swing/JTabbedPane$ModelListener outerClass javax/swing/JTabbedPane innerClassName ModelListener flags 4
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass javax/swing/JTabbedPane$AccessibleJTabbedPane outerClass javax/swing/JTabbedPane innerClassName AccessibleJTabbedPane flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JTable
+header extends javax/swing/JComponent implements javax/swing/event/TableModelListener,javax/swing/Scrollable,javax/swing/event/TableColumnModelListener,javax/swing/event/ListSelectionListener,javax/swing/event/CellEditorListener,javax/accessibility/Accessible,javax/swing/event/RowSorterListener nestMembers javax/swing/JTable$AccessibleJTable,javax/swing/JTable$AccessibleJTable$AccessibleJTableCell,javax/swing/JTable$AccessibleJTable$AccessibleJTableModelChange,javax/swing/JTable$DropLocation,javax/swing/JTable$PrintMode flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UI",description="A\u005C;u0020;component\u005C;u0020;which\u005C;u0020;displays\u005C;u0020;data\u005C;u0020;in\u005C;u0020;a\u005C;u0020;two\u005C;u0020;dimensional\u005C;u0020;grid.")@Ljavax/swing/SwingContainer;(value=Zfalse)
+innerclass innerClass javax/swing/JTable$DropLocation outerClass javax/swing/JTable innerClassName DropLocation flags 19
+innerclass innerClass javax/swing/event/RowSorterEvent$Type outerClass javax/swing/event/RowSorterEvent innerClassName Type flags 4019
+innerclass innerClass javax/swing/UIDefaults$LazyValue outerClass javax/swing/UIDefaults innerClassName LazyValue flags 609
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass javax/swing/JTable$PrintMode outerClass javax/swing/JTable innerClassName PrintMode flags 4019
+innerclass innerClass javax/swing/JTable$AccessibleJTable outerClass javax/swing/JTable innerClassName AccessibleJTable flags 4
+innerclass innerClass javax/swing/table/DefaultTableCellRenderer$UIResource outerClass javax/swing/table/DefaultTableCellRenderer innerClassName UIResource flags 9
+innerclass innerClass javax/swing/TransferHandler$DropLocation outerClass javax/swing/TransferHandler innerClassName DropLocation flags 9
+innerclass innerClass javax/swing/JTable$AccessibleJTable$AccessibleJTableCell outerClass javax/swing/JTable$AccessibleJTable innerClassName AccessibleJTableCell flags 4
+innerclass innerClass javax/swing/JTable$AccessibleJTable$AccessibleJTableModelChange outerClass javax/swing/JTable$AccessibleJTable innerClassName AccessibleJTableModelChange flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JTable$AccessibleJTable
+header extends javax/swing/JComponent$AccessibleJComponent implements javax/accessibility/AccessibleSelection,javax/swing/event/ListSelectionListener,javax/swing/event/TableModelListener,javax/swing/event/TableColumnModelListener,javax/swing/event/CellEditorListener,java/beans/PropertyChangeListener,javax/accessibility/AccessibleExtendedTable nestHost javax/swing/JTable flags 21
+innerclass innerClass javax/swing/JTable$AccessibleJTable outerClass javax/swing/JTable innerClassName AccessibleJTable flags 4
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+innerclass innerClass javax/swing/JTable$AccessibleJTable$AccessibleJTableModelChange outerClass javax/swing/JTable$AccessibleJTable innerClassName AccessibleJTableModelChange flags 4
+innerclass innerClass javax/swing/JTable$AccessibleJTable$AccessibleJTableCell outerClass javax/swing/JTable$AccessibleJTable innerClassName AccessibleJTableCell flags 4
+
+class name javax/swing/JTable$DropLocation
+header extends javax/swing/TransferHandler$DropLocation nestHost javax/swing/JTable flags 31
+innerclass innerClass javax/swing/TransferHandler$DropLocation outerClass javax/swing/TransferHandler innerClassName DropLocation flags 9
+innerclass innerClass javax/swing/JTable$DropLocation outerClass javax/swing/JTable innerClassName DropLocation flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JToggleButton
+header extends javax/swing/AbstractButton implements javax/accessibility/Accessible nestMembers javax/swing/JToggleButton$AccessibleJToggleButton,javax/swing/JToggleButton$ToggleButtonModel flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UIClassID",description="An\u005C;u0020;implementation\u005C;u0020;of\u005C;u0020;a\u005C;u0020;two-state\u005C;u0020;button.")@Ljavax/swing/SwingContainer;(value=Zfalse)
+innerclass innerClass javax/swing/JToggleButton$ToggleButtonModel outerClass javax/swing/JToggleButton innerClassName ToggleButtonModel flags 9
+innerclass innerClass java/awt/event/FocusEvent$Cause outerClass java/awt/event/FocusEvent innerClassName Cause flags 4019
+innerclass innerClass javax/swing/JToggleButton$AccessibleJToggleButton outerClass javax/swing/JToggleButton innerClassName AccessibleJToggleButton flags 4
+
+class name javax/swing/JToolBar
+header extends javax/swing/JComponent implements javax/swing/SwingConstants,javax/accessibility/Accessible nestMembers javax/swing/JToolBar$AccessibleJToolBar,javax/swing/JToolBar$Separator flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UI",description="A\u005C;u0020;component\u005C;u0020;which\u005C;u0020;displays\u005C;u0020;commonly\u005C;u0020;used\u005C;u0020;controls\u005C;u0020;or\u005C;u0020;Actions.")@Ljavax/swing/SwingContainer;
+innerclass innerClass javax/swing/JToolBar$Separator outerClass javax/swing/JToolBar innerClassName Separator flags 9
+innerclass innerClass javax/swing/JToolBar$AccessibleJToolBar outerClass javax/swing/JToolBar innerClassName AccessibleJToolBar flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JTree
+header extends javax/swing/JComponent implements javax/swing/Scrollable,javax/accessibility/Accessible nestMembers javax/swing/JTree$AccessibleJTree,javax/swing/JTree$AccessibleJTree$AccessibleJTreeNode,javax/swing/JTree$DynamicUtilTreeNode,javax/swing/JTree$TreeModelHandler,javax/swing/JTree$TreeSelectionRedirector,javax/swing/JTree$EmptySelectionModel,javax/swing/JTree$DropLocation flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UI",description="A\u005C;u0020;component\u005C;u0020;that\u005C;u0020;displays\u005C;u0020;a\u005C;u0020;set\u005C;u0020;of\u005C;u0020;hierarchical\u005C;u0020;data\u005C;u0020;as\u005C;u0020;an\u005C;u0020;outline.")@Ljavax/swing/SwingContainer;(value=Zfalse)
+innerclass innerClass javax/swing/JTree$DynamicUtilTreeNode outerClass javax/swing/JTree innerClassName DynamicUtilTreeNode flags 9
+innerclass innerClass javax/swing/JTree$AccessibleJTree outerClass javax/swing/JTree innerClassName AccessibleJTree flags 4
+innerclass innerClass javax/swing/JTree$DropLocation outerClass javax/swing/JTree innerClassName DropLocation flags 19
+innerclass innerClass javax/swing/JTree$EmptySelectionModel outerClass javax/swing/JTree innerClassName EmptySelectionModel flags c
+innerclass innerClass javax/swing/JTree$TreeSelectionRedirector outerClass javax/swing/JTree innerClassName TreeSelectionRedirector flags 4
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass javax/swing/JTree$TreeModelHandler outerClass javax/swing/JTree innerClassName TreeModelHandler flags 4
+innerclass innerClass javax/swing/TransferHandler$DropLocation outerClass javax/swing/TransferHandler innerClassName DropLocation flags 9
+innerclass innerClass javax/swing/JTree$AccessibleJTree$AccessibleJTreeNode outerClass javax/swing/JTree$AccessibleJTree innerClassName AccessibleJTreeNode flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JTree$AccessibleJTree
+header extends javax/swing/JComponent$AccessibleJComponent implements javax/accessibility/AccessibleSelection,javax/swing/event/TreeSelectionListener,javax/swing/event/TreeModelListener,javax/swing/event/TreeExpansionListener nestHost javax/swing/JTree flags 21
+innerclass innerClass javax/swing/JTree$AccessibleJTree outerClass javax/swing/JTree innerClassName AccessibleJTree flags 4
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+innerclass innerClass javax/swing/JTree$AccessibleJTree$AccessibleJTreeNode outerClass javax/swing/JTree$AccessibleJTree innerClassName AccessibleJTreeNode flags 4
+
+class name javax/swing/JTree$DropLocation
+header extends javax/swing/TransferHandler$DropLocation nestHost javax/swing/JTree flags 31
+innerclass innerClass javax/swing/TransferHandler$DropLocation outerClass javax/swing/TransferHandler innerClassName DropLocation flags 9
+innerclass innerClass javax/swing/JTree$DropLocation outerClass javax/swing/JTree innerClassName DropLocation flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JViewport
+header extends javax/swing/JComponent implements javax/accessibility/Accessible nestMembers javax/swing/JViewport$AccessibleJViewport,javax/swing/JViewport$ViewListener flags 21
+innerclass innerClass javax/swing/JViewport$ViewListener outerClass javax/swing/JViewport innerClassName ViewListener flags 4
+innerclass innerClass javax/swing/JViewport$AccessibleJViewport outerClass javax/swing/JViewport innerClassName AccessibleJViewport flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/RowFilter
+header extends java/lang/Object nestMembers javax/swing/RowFilter$Entry,javax/swing/RowFilter$ComparisonType flags 421 signature <M:Ljava/lang/Object;I:Ljava/lang/Object;>Ljava/lang/Object;
+innerclass innerClass javax/swing/RowFilter$ComparisonType outerClass javax/swing/RowFilter innerClassName ComparisonType flags 4019
+innerclass innerClass javax/swing/RowFilter$Entry outerClass javax/swing/RowFilter innerClassName Entry flags 409
+
+class name javax/swing/RowSorter
+header extends java/lang/Object nestMembers javax/swing/RowSorter$SortKey flags 421 signature <M:Ljava/lang/Object;>Ljava/lang/Object;
+innerclass innerClass javax/swing/event/RowSorterEvent$Type outerClass javax/swing/event/RowSorterEvent innerClassName Type flags 4019
+innerclass innerClass javax/swing/RowSorter$SortKey outerClass javax/swing/RowSorter innerClassName SortKey flags 9
+
+class name javax/swing/ToolTipManager
+header extends java/awt/event/MouseAdapter implements java/awt/event/MouseMotionListener nestMembers javax/swing/ToolTipManager$stillInsideTimerAction,javax/swing/ToolTipManager$outsideTimerAction,javax/swing/ToolTipManager$insideTimerAction flags 21
+innerclass innerClass javax/swing/ToolTipManager$insideTimerAction outerClass javax/swing/ToolTipManager innerClassName insideTimerAction flags 4
+innerclass innerClass javax/swing/ToolTipManager$outsideTimerAction outerClass javax/swing/ToolTipManager innerClassName outsideTimerAction flags 4
+innerclass innerClass javax/swing/ToolTipManager$stillInsideTimerAction outerClass javax/swing/ToolTipManager innerClassName stillInsideTimerAction flags 4
+
+class name javax/swing/TransferHandler$TransferSupport
+header extends java/lang/Object nestHost javax/swing/TransferHandler flags 31
+innerclass innerClass javax/swing/TransferHandler$TransferSupport outerClass javax/swing/TransferHandler innerClassName TransferSupport flags 19
+innerclass innerClass javax/swing/TransferHandler$DropLocation outerClass javax/swing/TransferHandler innerClassName DropLocation flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/UIDefaults
+header extends java/util/Hashtable nestMembers javax/swing/UIDefaults$LazyInputMap,javax/swing/UIDefaults$ProxyLazyValue,javax/swing/UIDefaults$ActiveValue,javax/swing/UIDefaults$LazyValue flags 21 signature Ljava/util/Hashtable<Ljava/lang/Object;Ljava/lang/Object;>;
+innerclass innerClass javax/swing/UIDefaults$ActiveValue outerClass javax/swing/UIDefaults innerClassName ActiveValue flags 609
+innerclass innerClass javax/swing/UIDefaults$LazyValue outerClass javax/swing/UIDefaults innerClassName LazyValue flags 609
+innerclass innerClass javax/swing/UIDefaults$LazyInputMap outerClass javax/swing/UIDefaults innerClassName LazyInputMap flags 9
+innerclass innerClass javax/swing/UIDefaults$ProxyLazyValue outerClass javax/swing/UIDefaults innerClassName ProxyLazyValue flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/border/StrokeBorder
+header extends javax/swing/border/AbstractBorder flags 21
+innerclass innerClass java/awt/RenderingHints$Key outerClass java/awt/RenderingHints innerClassName Key flags 409
+innerclass innerClass java/awt/geom/Rectangle2D$Float outerClass java/awt/geom/Rectangle2D innerClassName Float flags 9
+
+class name javax/swing/border/TitledBorder
+header extends javax/swing/border/AbstractBorder flags 21
+innerclass innerClass java/awt/geom/Path2D$Float outerClass java/awt/geom/Path2D innerClassName Float flags 9
+innerclass innerClass java/awt/Component$BaselineResizeBehavior outerClass java/awt/Component innerClassName BaselineResizeBehavior flags 4019
+innerclass innerClass java/lang/ref/Cleaner$Cleanable outerClass java/lang/ref/Cleaner innerClassName Cleanable flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/plaf/BorderUIResource
+header extends java/lang/Object implements javax/swing/border/Border,javax/swing/plaf/UIResource,java/io/Serializable nestMembers javax/swing/plaf/BorderUIResource$TitledBorderUIResource,javax/swing/plaf/BorderUIResource$MatteBorderUIResource,javax/swing/plaf/BorderUIResource$EtchedBorderUIResource,javax/swing/plaf/BorderUIResource$BevelBorderUIResource,javax/swing/plaf/BorderUIResource$LineBorderUIResource,javax/swing/plaf/BorderUIResource$EmptyBorderUIResource,javax/swing/plaf/BorderUIResource$CompoundBorderUIResource flags 21
+innerclass innerClass javax/swing/plaf/BorderUIResource$EtchedBorderUIResource outerClass javax/swing/plaf/BorderUIResource innerClassName EtchedBorderUIResource flags 9
+innerclass innerClass javax/swing/plaf/BorderUIResource$BevelBorderUIResource outerClass javax/swing/plaf/BorderUIResource innerClassName BevelBorderUIResource flags 9
+innerclass innerClass javax/swing/plaf/BorderUIResource$LineBorderUIResource outerClass javax/swing/plaf/BorderUIResource innerClassName LineBorderUIResource flags 9
+innerclass innerClass javax/swing/plaf/BorderUIResource$TitledBorderUIResource outerClass javax/swing/plaf/BorderUIResource innerClassName TitledBorderUIResource flags 9
+innerclass innerClass javax/swing/plaf/BorderUIResource$MatteBorderUIResource outerClass javax/swing/plaf/BorderUIResource innerClassName MatteBorderUIResource flags 9
+innerclass innerClass javax/swing/plaf/BorderUIResource$EmptyBorderUIResource outerClass javax/swing/plaf/BorderUIResource innerClassName EmptyBorderUIResource flags 9
+innerclass innerClass javax/swing/plaf/BorderUIResource$CompoundBorderUIResource outerClass javax/swing/plaf/BorderUIResource innerClassName CompoundBorderUIResource flags 9
+
+class name javax/swing/plaf/basic/BasicBorders
+header extends java/lang/Object nestMembers javax/swing/plaf/basic/BasicBorders$SplitPaneBorder,javax/swing/plaf/basic/BasicBorders$FieldBorder,javax/swing/plaf/basic/BasicBorders$MarginBorder,javax/swing/plaf/basic/BasicBorders$MenuBarBorder,javax/swing/plaf/basic/BasicBorders$RadioButtonBorder,javax/swing/plaf/basic/BasicBorders$ToggleButtonBorder,javax/swing/plaf/basic/BasicBorders$ButtonBorder,javax/swing/plaf/basic/BasicBorders$RolloverButtonBorder flags 21
+innerclass innerClass javax/swing/plaf/BorderUIResource$CompoundBorderUIResource outerClass javax/swing/plaf/BorderUIResource innerClassName CompoundBorderUIResource flags 9
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$ButtonBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName ButtonBorder flags 9
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$MarginBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName MarginBorder flags 9
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$RadioButtonBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName RadioButtonBorder flags 9
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$ToggleButtonBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName ToggleButtonBorder flags 9
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$MenuBarBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName MenuBarBorder flags 9
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$SplitPaneBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName SplitPaneBorder flags 9
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$FieldBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName FieldBorder flags 9
+innerclass innerClass javax/swing/plaf/BorderUIResource$LineBorderUIResource outerClass javax/swing/plaf/BorderUIResource innerClassName LineBorderUIResource flags 9
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$RolloverButtonBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName RolloverButtonBorder flags 9
+
+class name javax/swing/plaf/basic/BasicBorders$RadioButtonBorder
+header extends javax/swing/plaf/basic/BasicBorders$ButtonBorder nestHost javax/swing/plaf/basic/BasicBorders flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$ButtonBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName ButtonBorder flags 9
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$RadioButtonBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName RadioButtonBorder flags 9
+
+class name javax/swing/plaf/basic/BasicBorders$RolloverButtonBorder
+header extends javax/swing/plaf/basic/BasicBorders$ButtonBorder nestHost javax/swing/plaf/basic/BasicBorders flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$ButtonBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName ButtonBorder flags 9
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$RolloverButtonBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName RolloverButtonBorder flags 9
+
+class name javax/swing/plaf/basic/BasicBorders$ToggleButtonBorder
+header extends javax/swing/plaf/basic/BasicBorders$ButtonBorder nestHost javax/swing/plaf/basic/BasicBorders flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$ButtonBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName ButtonBorder flags 9
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$ToggleButtonBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName ToggleButtonBorder flags 9
+
+class name javax/swing/plaf/basic/BasicComboBoxUI
+header extends javax/swing/plaf/ComboBoxUI nestMembers javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager,javax/swing/plaf/basic/BasicComboBoxUI$PropertyChangeHandler,javax/swing/plaf/basic/BasicComboBoxUI$ItemHandler,javax/swing/plaf/basic/BasicComboBoxUI$ListDataHandler,javax/swing/plaf/basic/BasicComboBoxUI$FocusHandler,javax/swing/plaf/basic/BasicComboBoxUI$KeyHandler flags 21
+innerclass innerClass javax/swing/JComboBox$KeySelectionManager outerClass javax/swing/JComboBox innerClassName KeySelectionManager flags 609
+innerclass innerClass javax/swing/plaf/basic/BasicComboBoxRenderer$UIResource outerClass javax/swing/plaf/basic/BasicComboBoxRenderer innerClassName UIResource flags 9
+innerclass innerClass javax/swing/plaf/basic/BasicComboBoxEditor$UIResource outerClass javax/swing/plaf/basic/BasicComboBoxEditor innerClassName UIResource flags 9
+innerclass innerClass java/awt/Component$BaselineResizeBehavior outerClass java/awt/Component innerClassName BaselineResizeBehavior flags 4019
+innerclass innerClass javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager outerClass javax/swing/plaf/basic/BasicComboBoxUI innerClassName ComboBoxLayoutManager flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicComboBoxUI$PropertyChangeHandler outerClass javax/swing/plaf/basic/BasicComboBoxUI innerClassName PropertyChangeHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicComboBoxUI$ItemHandler outerClass javax/swing/plaf/basic/BasicComboBoxUI innerClassName ItemHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicComboBoxUI$ListDataHandler outerClass javax/swing/plaf/basic/BasicComboBoxUI innerClassName ListDataHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicComboBoxUI$FocusHandler outerClass javax/swing/plaf/basic/BasicComboBoxUI innerClassName FocusHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicComboBoxUI$KeyHandler outerClass javax/swing/plaf/basic/BasicComboBoxUI innerClassName KeyHandler flags 1
+
+class name javax/swing/plaf/basic/BasicDesktopIconUI
+header extends javax/swing/plaf/DesktopIconUI nestMembers javax/swing/plaf/basic/BasicDesktopIconUI$MouseInputHandler flags 21
+innerclass innerClass javax/swing/JInternalFrame$JDesktopIcon outerClass javax/swing/JInternalFrame innerClassName JDesktopIcon flags 9
+innerclass innerClass javax/swing/plaf/basic/BasicDesktopIconUI$MouseInputHandler outerClass javax/swing/plaf/basic/BasicDesktopIconUI innerClassName MouseInputHandler flags 1
+
+class name javax/swing/plaf/basic/BasicFileChooserUI
+header extends javax/swing/plaf/FileChooserUI nestMembers javax/swing/plaf/basic/BasicFileChooserUI$BasicFileView,javax/swing/plaf/basic/BasicFileChooserUI$AcceptAllFileFilter,javax/swing/plaf/basic/BasicFileChooserUI$UpdateAction,javax/swing/plaf/basic/BasicFileChooserUI$CancelSelectionAction,javax/swing/plaf/basic/BasicFileChooserUI$ApproveSelectionAction,javax/swing/plaf/basic/BasicFileChooserUI$ChangeToParentDirectoryAction,javax/swing/plaf/basic/BasicFileChooserUI$GoHomeAction,javax/swing/plaf/basic/BasicFileChooserUI$NewFolderAction,javax/swing/plaf/basic/BasicFileChooserUI$SelectionListener,javax/swing/plaf/basic/BasicFileChooserUI$DoubleClickListener flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicFileChooserUI$ApproveSelectionAction outerClass javax/swing/plaf/basic/BasicFileChooserUI innerClassName ApproveSelectionAction flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicFileChooserUI$CancelSelectionAction outerClass javax/swing/plaf/basic/BasicFileChooserUI innerClassName CancelSelectionAction flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicFileChooserUI$UpdateAction outerClass javax/swing/plaf/basic/BasicFileChooserUI innerClassName UpdateAction flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicFileChooserUI$GoHomeAction outerClass javax/swing/plaf/basic/BasicFileChooserUI innerClassName GoHomeAction flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicFileChooserUI$ChangeToParentDirectoryAction outerClass javax/swing/plaf/basic/BasicFileChooserUI innerClassName ChangeToParentDirectoryAction flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicFileChooserUI$AcceptAllFileFilter outerClass javax/swing/plaf/basic/BasicFileChooserUI innerClassName AcceptAllFileFilter flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicFileChooserUI$BasicFileView outerClass javax/swing/plaf/basic/BasicFileChooserUI innerClassName BasicFileView flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicFileChooserUI$NewFolderAction outerClass javax/swing/plaf/basic/BasicFileChooserUI innerClassName NewFolderAction flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicFileChooserUI$SelectionListener outerClass javax/swing/plaf/basic/BasicFileChooserUI innerClassName SelectionListener flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicFileChooserUI$DoubleClickListener outerClass javax/swing/plaf/basic/BasicFileChooserUI innerClassName DoubleClickListener flags 4
+
+class name javax/swing/plaf/basic/BasicInternalFrameTitlePane
+header extends javax/swing/JComponent nestMembers javax/swing/plaf/basic/BasicInternalFrameTitlePane$SystemMenuBar,javax/swing/plaf/basic/BasicInternalFrameTitlePane$SizeAction,javax/swing/plaf/basic/BasicInternalFrameTitlePane$MoveAction,javax/swing/plaf/basic/BasicInternalFrameTitlePane$RestoreAction,javax/swing/plaf/basic/BasicInternalFrameTitlePane$IconifyAction,javax/swing/plaf/basic/BasicInternalFrameTitlePane$MaximizeAction,javax/swing/plaf/basic/BasicInternalFrameTitlePane$CloseAction,javax/swing/plaf/basic/BasicInternalFrameTitlePane$TitlePaneLayout,javax/swing/plaf/basic/BasicInternalFrameTitlePane$PropertyChangeHandler flags 21
+innerclass innerClass java/awt/RenderingHints$Key outerClass java/awt/RenderingHints innerClassName Key flags 409
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane$MaximizeAction outerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane innerClassName MaximizeAction flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane$IconifyAction outerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane innerClassName IconifyAction flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane$CloseAction outerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane innerClassName CloseAction flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane$RestoreAction outerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane innerClassName RestoreAction flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane$MoveAction outerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane innerClassName MoveAction flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane$SizeAction outerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane innerClassName SizeAction flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane$SystemMenuBar outerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane innerClassName SystemMenuBar flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane$TitlePaneLayout outerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane innerClassName TitlePaneLayout flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane$PropertyChangeHandler outerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane innerClassName PropertyChangeHandler flags 1
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/plaf/basic/BasicInternalFrameUI
+header extends javax/swing/plaf/InternalFrameUI nestMembers javax/swing/plaf/basic/BasicInternalFrameUI$BasicInternalFrameListener,javax/swing/plaf/basic/BasicInternalFrameUI$GlassPaneDispatcher,javax/swing/plaf/basic/BasicInternalFrameUI$ComponentHandler,javax/swing/plaf/basic/BasicInternalFrameUI$BorderListener,javax/swing/plaf/basic/BasicInternalFrameUI$InternalFrameLayout,javax/swing/plaf/basic/BasicInternalFrameUI$InternalFramePropertyChangeListener flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameUI$BorderListener outerClass javax/swing/plaf/basic/BasicInternalFrameUI innerClassName BorderListener flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameUI$BasicInternalFrameListener outerClass javax/swing/plaf/basic/BasicInternalFrameUI innerClassName BasicInternalFrameListener flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameUI$GlassPaneDispatcher outerClass javax/swing/plaf/basic/BasicInternalFrameUI innerClassName GlassPaneDispatcher flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameUI$ComponentHandler outerClass javax/swing/plaf/basic/BasicInternalFrameUI innerClassName ComponentHandler flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameUI$InternalFrameLayout outerClass javax/swing/plaf/basic/BasicInternalFrameUI innerClassName InternalFrameLayout flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameUI$InternalFramePropertyChangeListener outerClass javax/swing/plaf/basic/BasicInternalFrameUI innerClassName InternalFramePropertyChangeListener flags 1
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/plaf/basic/BasicListUI
+header extends javax/swing/plaf/ListUI nestMembers javax/swing/plaf/basic/BasicListUI$PropertyChangeHandler,javax/swing/plaf/basic/BasicListUI$ListDataHandler,javax/swing/plaf/basic/BasicListUI$ListSelectionHandler,javax/swing/plaf/basic/BasicListUI$FocusHandler,javax/swing/plaf/basic/BasicListUI$MouseInputHandler flags 21
+innerclass innerClass javax/swing/JList$DropLocation outerClass javax/swing/JList innerClassName DropLocation flags 19
+innerclass innerClass java/awt/Component$BaselineResizeBehavior outerClass java/awt/Component innerClassName BaselineResizeBehavior flags 4019
+innerclass innerClass javax/swing/plaf/basic/BasicListUI$PropertyChangeHandler outerClass javax/swing/plaf/basic/BasicListUI innerClassName PropertyChangeHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicListUI$ListDataHandler outerClass javax/swing/plaf/basic/BasicListUI innerClassName ListDataHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicListUI$ListSelectionHandler outerClass javax/swing/plaf/basic/BasicListUI innerClassName ListSelectionHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicListUI$FocusHandler outerClass javax/swing/plaf/basic/BasicListUI innerClassName FocusHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicListUI$MouseInputHandler outerClass javax/swing/plaf/basic/BasicListUI innerClassName MouseInputHandler flags 1
+
+class name javax/swing/plaf/basic/BasicOptionPaneUI
+header extends javax/swing/plaf/OptionPaneUI nestMembers javax/swing/plaf/basic/BasicOptionPaneUI$ButtonActionListener,javax/swing/plaf/basic/BasicOptionPaneUI$PropertyChangeHandler,javax/swing/plaf/basic/BasicOptionPaneUI$ButtonAreaLayout flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicOptionPaneUI$ButtonAreaLayout outerClass javax/swing/plaf/basic/BasicOptionPaneUI innerClassName ButtonAreaLayout flags 9
+innerclass innerClass javax/swing/plaf/basic/BasicOptionPaneUI$ButtonActionListener outerClass javax/swing/plaf/basic/BasicOptionPaneUI innerClassName ButtonActionListener flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicOptionPaneUI$PropertyChangeHandler outerClass javax/swing/plaf/basic/BasicOptionPaneUI innerClassName PropertyChangeHandler flags 1
+
+class name javax/swing/plaf/basic/BasicProgressBarUI
+header extends javax/swing/plaf/ProgressBarUI nestMembers javax/swing/plaf/basic/BasicProgressBarUI$ChangeHandler flags 21
+innerclass innerClass java/awt/Component$BaselineResizeBehavior outerClass java/awt/Component innerClassName BaselineResizeBehavior flags 4019
+innerclass innerClass javax/swing/plaf/basic/BasicProgressBarUI$ChangeHandler outerClass javax/swing/plaf/basic/BasicProgressBarUI innerClassName ChangeHandler flags 1
+
+class name javax/swing/plaf/basic/BasicScrollBarUI
+header extends javax/swing/plaf/ScrollBarUI implements java/awt/LayoutManager,javax/swing/SwingConstants nestMembers javax/swing/plaf/basic/BasicScrollBarUI$PropertyChangeHandler,javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener,javax/swing/plaf/basic/BasicScrollBarUI$ArrowButtonListener,javax/swing/plaf/basic/BasicScrollBarUI$TrackListener,javax/swing/plaf/basic/BasicScrollBarUI$ModelListener flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicScrollBarUI$TrackListener outerClass javax/swing/plaf/basic/BasicScrollBarUI innerClassName TrackListener flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicScrollBarUI$ArrowButtonListener outerClass javax/swing/plaf/basic/BasicScrollBarUI innerClassName ArrowButtonListener flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicScrollBarUI$ModelListener outerClass javax/swing/plaf/basic/BasicScrollBarUI innerClassName ModelListener flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener outerClass javax/swing/plaf/basic/BasicScrollBarUI innerClassName ScrollListener flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicScrollBarUI$PropertyChangeHandler outerClass javax/swing/plaf/basic/BasicScrollBarUI innerClassName PropertyChangeHandler flags 1
+
+class name javax/swing/plaf/basic/BasicScrollPaneUI
+header extends javax/swing/plaf/ScrollPaneUI implements javax/swing/ScrollPaneConstants nestMembers javax/swing/plaf/basic/BasicScrollPaneUI$PropertyChangeHandler,javax/swing/plaf/basic/BasicScrollPaneUI$MouseWheelHandler,javax/swing/plaf/basic/BasicScrollPaneUI$VSBChangeListener,javax/swing/plaf/basic/BasicScrollPaneUI$HSBChangeListener,javax/swing/plaf/basic/BasicScrollPaneUI$ViewportChangeHandler flags 21
+innerclass innerClass java/awt/Component$BaselineResizeBehavior outerClass java/awt/Component innerClassName BaselineResizeBehavior flags 4019
+innerclass innerClass javax/swing/plaf/basic/BasicScrollPaneUI$PropertyChangeHandler outerClass javax/swing/plaf/basic/BasicScrollPaneUI innerClassName PropertyChangeHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicScrollPaneUI$MouseWheelHandler outerClass javax/swing/plaf/basic/BasicScrollPaneUI innerClassName MouseWheelHandler flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicScrollPaneUI$VSBChangeListener outerClass javax/swing/plaf/basic/BasicScrollPaneUI innerClassName VSBChangeListener flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicScrollPaneUI$HSBChangeListener outerClass javax/swing/plaf/basic/BasicScrollPaneUI innerClassName HSBChangeListener flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicScrollPaneUI$ViewportChangeHandler outerClass javax/swing/plaf/basic/BasicScrollPaneUI innerClassName ViewportChangeHandler flags 1
+
+class name javax/swing/plaf/basic/BasicSliderUI
+header extends javax/swing/plaf/SliderUI nestMembers javax/swing/plaf/basic/BasicSliderUI$ActionScroller,javax/swing/plaf/basic/BasicSliderUI$FocusHandler,javax/swing/plaf/basic/BasicSliderUI$ComponentHandler,javax/swing/plaf/basic/BasicSliderUI$ScrollListener,javax/swing/plaf/basic/BasicSliderUI$TrackListener,javax/swing/plaf/basic/BasicSliderUI$ChangeHandler,javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicSliderUI$TrackListener outerClass javax/swing/plaf/basic/BasicSliderUI innerClassName TrackListener flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicSliderUI$ScrollListener outerClass javax/swing/plaf/basic/BasicSliderUI innerClassName ScrollListener flags 1
+innerclass innerClass java/awt/Component$BaselineResizeBehavior outerClass java/awt/Component innerClassName BaselineResizeBehavior flags 4019
+innerclass innerClass javax/swing/plaf/basic/BasicSliderUI$ActionScroller outerClass javax/swing/plaf/basic/BasicSliderUI innerClassName ActionScroller flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicSliderUI$FocusHandler outerClass javax/swing/plaf/basic/BasicSliderUI innerClassName FocusHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicSliderUI$ComponentHandler outerClass javax/swing/plaf/basic/BasicSliderUI innerClassName ComponentHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicSliderUI$ChangeHandler outerClass javax/swing/plaf/basic/BasicSliderUI innerClassName ChangeHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler outerClass javax/swing/plaf/basic/BasicSliderUI innerClassName PropertyChangeHandler flags 1
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/plaf/basic/BasicSpinnerUI
+header extends javax/swing/plaf/SpinnerUI flags 21
+innerclass innerClass javax/swing/JSpinner$DefaultEditor outerClass javax/swing/JSpinner innerClassName DefaultEditor flags 9
+innerclass innerClass java/awt/Component$BaselineResizeBehavior outerClass java/awt/Component innerClassName BaselineResizeBehavior flags 4019
+
+class name javax/swing/plaf/basic/BasicSplitPaneDivider
+header extends java/awt/Container implements java/beans/PropertyChangeListener nestMembers javax/swing/plaf/basic/BasicSplitPaneDivider$DividerLayout,javax/swing/plaf/basic/BasicSplitPaneDivider$VerticalDragController,javax/swing/plaf/basic/BasicSplitPaneDivider$DragController,javax/swing/plaf/basic/BasicSplitPaneDivider$MouseHandler flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneDivider$DividerLayout outerClass javax/swing/plaf/basic/BasicSplitPaneDivider innerClassName DividerLayout flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneDivider$MouseHandler outerClass javax/swing/plaf/basic/BasicSplitPaneDivider innerClassName MouseHandler flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneDivider$VerticalDragController outerClass javax/swing/plaf/basic/BasicSplitPaneDivider innerClassName VerticalDragController flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneDivider$DragController outerClass javax/swing/plaf/basic/BasicSplitPaneDivider innerClassName DragController flags 4
+
+class name javax/swing/plaf/basic/BasicSplitPaneUI
+header extends javax/swing/plaf/SplitPaneUI nestMembers javax/swing/plaf/basic/BasicSplitPaneUI$BasicVerticalLayoutManager,javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager,javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardResizeToggleHandler,javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardEndHandler,javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardHomeHandler,javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardDownRightHandler,javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardUpLeftHandler,javax/swing/plaf/basic/BasicSplitPaneUI$FocusHandler,javax/swing/plaf/basic/BasicSplitPaneUI$PropertyHandler flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager outerClass javax/swing/plaf/basic/BasicSplitPaneUI innerClassName BasicHorizontalLayoutManager flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardUpLeftHandler outerClass javax/swing/plaf/basic/BasicSplitPaneUI innerClassName KeyboardUpLeftHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardDownRightHandler outerClass javax/swing/plaf/basic/BasicSplitPaneUI innerClassName KeyboardDownRightHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardHomeHandler outerClass javax/swing/plaf/basic/BasicSplitPaneUI innerClassName KeyboardHomeHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardEndHandler outerClass javax/swing/plaf/basic/BasicSplitPaneUI innerClassName KeyboardEndHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardResizeToggleHandler outerClass javax/swing/plaf/basic/BasicSplitPaneUI innerClassName KeyboardResizeToggleHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneUI$BasicVerticalLayoutManager outerClass javax/swing/plaf/basic/BasicSplitPaneUI innerClassName BasicVerticalLayoutManager flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneUI$FocusHandler outerClass javax/swing/plaf/basic/BasicSplitPaneUI innerClassName FocusHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneUI$PropertyHandler outerClass javax/swing/plaf/basic/BasicSplitPaneUI innerClassName PropertyHandler flags 1
+
+class name javax/swing/plaf/basic/BasicTabbedPaneUI
+header extends javax/swing/plaf/TabbedPaneUI implements javax/swing/SwingConstants nestMembers javax/swing/plaf/basic/BasicTabbedPaneUI$FocusHandler,javax/swing/plaf/basic/BasicTabbedPaneUI$MouseHandler,javax/swing/plaf/basic/BasicTabbedPaneUI$TabSelectionHandler,javax/swing/plaf/basic/BasicTabbedPaneUI$PropertyChangeHandler,javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout outerClass javax/swing/plaf/basic/BasicTabbedPaneUI innerClassName TabbedPaneLayout flags 1
+innerclass innerClass java/awt/Component$BaselineResizeBehavior outerClass java/awt/Component innerClassName BaselineResizeBehavior flags 4019
+innerclass innerClass javax/swing/plaf/basic/BasicTabbedPaneUI$FocusHandler outerClass javax/swing/plaf/basic/BasicTabbedPaneUI innerClassName FocusHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTabbedPaneUI$MouseHandler outerClass javax/swing/plaf/basic/BasicTabbedPaneUI innerClassName MouseHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTabbedPaneUI$TabSelectionHandler outerClass javax/swing/plaf/basic/BasicTabbedPaneUI innerClassName TabSelectionHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTabbedPaneUI$PropertyChangeHandler outerClass javax/swing/plaf/basic/BasicTabbedPaneUI innerClassName PropertyChangeHandler flags 1
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/plaf/basic/BasicTableUI
+header extends javax/swing/plaf/TableUI nestMembers javax/swing/plaf/basic/BasicTableUI$MouseInputHandler,javax/swing/plaf/basic/BasicTableUI$FocusHandler,javax/swing/plaf/basic/BasicTableUI$KeyHandler flags 21
+innerclass innerClass java/awt/Component$BaselineResizeBehavior outerClass java/awt/Component innerClassName BaselineResizeBehavior flags 4019
+innerclass innerClass javax/swing/JTable$PrintMode outerClass javax/swing/JTable innerClassName PrintMode flags 4019
+innerclass innerClass javax/swing/JTable$DropLocation outerClass javax/swing/JTable innerClassName DropLocation flags 19
+innerclass innerClass javax/swing/plaf/basic/BasicTableUI$MouseInputHandler outerClass javax/swing/plaf/basic/BasicTableUI innerClassName MouseInputHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTableUI$FocusHandler outerClass javax/swing/plaf/basic/BasicTableUI innerClassName FocusHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTableUI$KeyHandler outerClass javax/swing/plaf/basic/BasicTableUI innerClassName KeyHandler flags 1
+
+class name javax/swing/plaf/basic/BasicTextUI
+header extends javax/swing/plaf/TextUI implements javax/swing/text/ViewFactory nestMembers javax/swing/plaf/basic/BasicTextUI$BasicHighlighter,javax/swing/plaf/basic/BasicTextUI$BasicCaret flags 421
+innerclass innerClass javax/swing/plaf/basic/BasicTextUI$BasicCaret outerClass javax/swing/plaf/basic/BasicTextUI innerClassName BasicCaret flags 9
+innerclass innerClass javax/swing/plaf/basic/BasicTextUI$BasicHighlighter outerClass javax/swing/plaf/basic/BasicTextUI innerClassName BasicHighlighter flags 9
+innerclass innerClass javax/swing/text/JTextComponent$KeyBinding outerClass javax/swing/text/JTextComponent innerClassName KeyBinding flags 9
+innerclass innerClass javax/swing/text/DefaultEditorKit$InsertBreakAction outerClass javax/swing/text/DefaultEditorKit innerClassName InsertBreakAction flags 9
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/plaf/basic/BasicToolBarUI
+header extends javax/swing/plaf/ToolBarUI implements javax/swing/SwingConstants nestMembers javax/swing/plaf/basic/BasicToolBarUI$DragWindow,javax/swing/plaf/basic/BasicToolBarUI$DockingListener,javax/swing/plaf/basic/BasicToolBarUI$PropertyListener,javax/swing/plaf/basic/BasicToolBarUI$ToolBarFocusListener,javax/swing/plaf/basic/BasicToolBarUI$ToolBarContListener,javax/swing/plaf/basic/BasicToolBarUI$FrameListener flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicToolBarUI$DragWindow outerClass javax/swing/plaf/basic/BasicToolBarUI innerClassName DragWindow flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$RolloverButtonBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName RolloverButtonBorder flags 9
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$ButtonBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName ButtonBorder flags 9
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$RadioButtonBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName RadioButtonBorder flags 9
+innerclass innerClass javax/swing/plaf/basic/BasicToolBarUI$FrameListener outerClass javax/swing/plaf/basic/BasicToolBarUI innerClassName FrameListener flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicToolBarUI$DockingListener outerClass javax/swing/plaf/basic/BasicToolBarUI innerClassName DockingListener flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicToolBarUI$PropertyListener outerClass javax/swing/plaf/basic/BasicToolBarUI innerClassName PropertyListener flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicToolBarUI$ToolBarFocusListener outerClass javax/swing/plaf/basic/BasicToolBarUI innerClassName ToolBarFocusListener flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicToolBarUI$ToolBarContListener outerClass javax/swing/plaf/basic/BasicToolBarUI innerClassName ToolBarContListener flags 4
+
+class name javax/swing/plaf/basic/BasicTreeUI
+header extends javax/swing/plaf/TreeUI nestMembers javax/swing/plaf/basic/BasicTreeUI$MouseInputHandler,javax/swing/plaf/basic/BasicTreeUI$TreeCancelEditingAction,javax/swing/plaf/basic/BasicTreeUI$TreeToggleAction,javax/swing/plaf/basic/BasicTreeUI$TreeHomeAction,javax/swing/plaf/basic/BasicTreeUI$TreeIncrementAction,javax/swing/plaf/basic/BasicTreeUI$TreePageAction,javax/swing/plaf/basic/BasicTreeUI$TreeTraverseAction,javax/swing/plaf/basic/BasicTreeUI$SelectionModelPropertyChangeHandler,javax/swing/plaf/basic/BasicTreeUI$PropertyChangeHandler,javax/swing/plaf/basic/BasicTreeUI$MouseHandler,javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler,javax/swing/plaf/basic/BasicTreeUI$FocusHandler,javax/swing/plaf/basic/BasicTreeUI$KeyHandler,javax/swing/plaf/basic/BasicTreeUI$CellEditorHandler,javax/swing/plaf/basic/BasicTreeUI$TreeSelectionHandler,javax/swing/plaf/basic/BasicTreeUI$TreeModelHandler,javax/swing/plaf/basic/BasicTreeUI$ComponentHandler,javax/swing/plaf/basic/BasicTreeUI$TreeExpansionHandler flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName NodeDimensionsHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$ComponentHandler outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName ComponentHandler flags 1
+innerclass innerClass java/awt/Component$BaselineResizeBehavior outerClass java/awt/Component innerClassName BaselineResizeBehavior flags 4019
+innerclass innerClass javax/swing/JTree$DropLocation outerClass javax/swing/JTree innerClassName DropLocation flags 19
+innerclass innerClass javax/swing/tree/AbstractLayoutCache$NodeDimensions outerClass javax/swing/tree/AbstractLayoutCache innerClassName NodeDimensions flags 409
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$MouseInputHandler outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName MouseInputHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$TreeCancelEditingAction outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName TreeCancelEditingAction flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$TreeToggleAction outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName TreeToggleAction flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$TreeHomeAction outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName TreeHomeAction flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$TreeIncrementAction outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName TreeIncrementAction flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$TreePageAction outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName TreePageAction flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$TreeTraverseAction outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName TreeTraverseAction flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$SelectionModelPropertyChangeHandler outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName SelectionModelPropertyChangeHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$PropertyChangeHandler outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName PropertyChangeHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$MouseHandler outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName MouseHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$FocusHandler outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName FocusHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$KeyHandler outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName KeyHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$CellEditorHandler outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName CellEditorHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$TreeSelectionHandler outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName TreeSelectionHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$TreeModelHandler outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName TreeModelHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$TreeExpansionHandler outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName TreeExpansionHandler flags 1
+
+class name javax/swing/plaf/metal/MetalBorders
+header extends java/lang/Object nestMembers javax/swing/plaf/metal/MetalBorders$TableHeaderBorder,javax/swing/plaf/metal/MetalBorders$ToggleButtonBorder,javax/swing/plaf/metal/MetalBorders$ScrollPaneBorder,javax/swing/plaf/metal/MetalBorders$TextFieldBorder,javax/swing/plaf/metal/MetalBorders$ToolBarBorder,javax/swing/plaf/metal/MetalBorders$RolloverButtonBorder,javax/swing/plaf/metal/MetalBorders$PopupMenuBorder,javax/swing/plaf/metal/MetalBorders$MenuItemBorder,javax/swing/plaf/metal/MetalBorders$MenuBarBorder,javax/swing/plaf/metal/MetalBorders$OptionDialogBorder,javax/swing/plaf/metal/MetalBorders$PaletteBorder,javax/swing/plaf/metal/MetalBorders$InternalFrameBorder,javax/swing/plaf/metal/MetalBorders$ButtonBorder,javax/swing/plaf/metal/MetalBorders$Flush3DBorder flags 21
+innerclass innerClass javax/swing/plaf/BorderUIResource$CompoundBorderUIResource outerClass javax/swing/plaf/BorderUIResource innerClassName CompoundBorderUIResource flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$ButtonBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName ButtonBorder flags 9
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$MarginBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName MarginBorder flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$Flush3DBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName Flush3DBorder flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$TextFieldBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName TextFieldBorder flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$ToggleButtonBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName ToggleButtonBorder flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$RolloverButtonBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName RolloverButtonBorder flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$TableHeaderBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName TableHeaderBorder flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$ScrollPaneBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName ScrollPaneBorder flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$ToolBarBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName ToolBarBorder flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$PopupMenuBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName PopupMenuBorder flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$MenuItemBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName MenuItemBorder flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$MenuBarBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName MenuBarBorder flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$OptionDialogBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName OptionDialogBorder flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$PaletteBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName PaletteBorder flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$InternalFrameBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName InternalFrameBorder flags 9
+
+class name javax/swing/plaf/metal/MetalBorders$RolloverButtonBorder
+header extends javax/swing/plaf/metal/MetalBorders$ButtonBorder nestHost javax/swing/plaf/metal/MetalBorders flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$ButtonBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName ButtonBorder flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$RolloverButtonBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName RolloverButtonBorder flags 9
+
+class name javax/swing/plaf/metal/MetalBorders$TextFieldBorder
+header extends javax/swing/plaf/metal/MetalBorders$Flush3DBorder nestHost javax/swing/plaf/metal/MetalBorders flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$Flush3DBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName Flush3DBorder flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$TextFieldBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName TextFieldBorder flags 9
+
+class name javax/swing/plaf/metal/MetalBorders$ToggleButtonBorder
+header extends javax/swing/plaf/metal/MetalBorders$ButtonBorder nestHost javax/swing/plaf/metal/MetalBorders flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$ButtonBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName ButtonBorder flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$ToggleButtonBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName ToggleButtonBorder flags 9
+
+class name javax/swing/plaf/metal/MetalComboBoxUI
+header extends javax/swing/plaf/basic/BasicComboBoxUI nestMembers javax/swing/plaf/metal/MetalComboBoxUI$MetalComboPopup,javax/swing/plaf/metal/MetalComboBoxUI$MetalComboBoxLayoutManager,javax/swing/plaf/metal/MetalComboBoxUI$MetalPropertyChangeListener flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalComboBoxEditor$UIResource outerClass javax/swing/plaf/metal/MetalComboBoxEditor innerClassName UIResource flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalComboBoxUI$MetalPropertyChangeListener outerClass javax/swing/plaf/metal/MetalComboBoxUI innerClassName MetalPropertyChangeListener flags 1
+innerclass innerClass javax/swing/plaf/metal/MetalComboBoxUI$MetalComboBoxLayoutManager outerClass javax/swing/plaf/metal/MetalComboBoxUI innerClassName MetalComboBoxLayoutManager flags 1
+innerclass innerClass javax/swing/plaf/metal/MetalComboBoxUI$MetalComboPopup outerClass javax/swing/plaf/metal/MetalComboBoxUI innerClassName MetalComboPopup flags 1
+
+class name javax/swing/plaf/metal/MetalFileChooserUI
+header extends javax/swing/plaf/basic/BasicFileChooserUI nestMembers javax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxAction,javax/swing/plaf/metal/MetalFileChooserUI$FilterComboBoxModel,javax/swing/plaf/metal/MetalFileChooserUI$FilterComboBoxRenderer,javax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxModel,javax/swing/plaf/metal/MetalFileChooserUI$FileRenderer,javax/swing/plaf/metal/MetalFileChooserUI$SingleClickListener flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxAction outerClass javax/swing/plaf/metal/MetalFileChooserUI innerClassName DirectoryComboBoxAction flags 4
+innerclass innerClass javax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxModel outerClass javax/swing/plaf/metal/MetalFileChooserUI innerClassName DirectoryComboBoxModel flags 4
+innerclass innerClass javax/swing/plaf/metal/MetalFileChooserUI$FilterComboBoxModel outerClass javax/swing/plaf/metal/MetalFileChooserUI innerClassName FilterComboBoxModel flags 4
+innerclass innerClass javax/swing/plaf/metal/MetalFileChooserUI$FilterComboBoxRenderer outerClass javax/swing/plaf/metal/MetalFileChooserUI innerClassName FilterComboBoxRenderer flags 1
+innerclass innerClass javax/swing/plaf/metal/MetalFileChooserUI$FileRenderer outerClass javax/swing/plaf/metal/MetalFileChooserUI innerClassName FileRenderer flags 4
+innerclass innerClass javax/swing/plaf/metal/MetalFileChooserUI$SingleClickListener outerClass javax/swing/plaf/metal/MetalFileChooserUI innerClassName SingleClickListener flags 4
+
+class name javax/swing/plaf/metal/MetalIconFactory
+header extends java/lang/Object implements java/io/Serializable nestMembers javax/swing/plaf/metal/MetalIconFactory$TreeControlIcon,javax/swing/plaf/metal/MetalIconFactory$TreeLeafIcon,javax/swing/plaf/metal/MetalIconFactory$FileIcon16,javax/swing/plaf/metal/MetalIconFactory$TreeFolderIcon,javax/swing/plaf/metal/MetalIconFactory$FolderIcon16,javax/swing/plaf/metal/MetalIconFactory$PaletteCloseIcon flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalIconFactory$TreeFolderIcon outerClass javax/swing/plaf/metal/MetalIconFactory innerClassName TreeFolderIcon flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalIconFactory$TreeLeafIcon outerClass javax/swing/plaf/metal/MetalIconFactory innerClassName TreeLeafIcon flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalIconFactory$TreeControlIcon outerClass javax/swing/plaf/metal/MetalIconFactory innerClassName TreeControlIcon flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalIconFactory$FileIcon16 outerClass javax/swing/plaf/metal/MetalIconFactory innerClassName FileIcon16 flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalIconFactory$FolderIcon16 outerClass javax/swing/plaf/metal/MetalIconFactory innerClassName FolderIcon16 flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalIconFactory$PaletteCloseIcon outerClass javax/swing/plaf/metal/MetalIconFactory innerClassName PaletteCloseIcon flags 9
+
+class name javax/swing/plaf/metal/MetalIconFactory$TreeFolderIcon
+header extends javax/swing/plaf/metal/MetalIconFactory$FolderIcon16 nestHost javax/swing/plaf/metal/MetalIconFactory flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalIconFactory$FolderIcon16 outerClass javax/swing/plaf/metal/MetalIconFactory innerClassName FolderIcon16 flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalIconFactory$TreeFolderIcon outerClass javax/swing/plaf/metal/MetalIconFactory innerClassName TreeFolderIcon flags 9
+
+class name javax/swing/plaf/metal/MetalIconFactory$TreeLeafIcon
+header extends javax/swing/plaf/metal/MetalIconFactory$FileIcon16 nestHost javax/swing/plaf/metal/MetalIconFactory flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalIconFactory$FileIcon16 outerClass javax/swing/plaf/metal/MetalIconFactory innerClassName FileIcon16 flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalIconFactory$TreeLeafIcon outerClass javax/swing/plaf/metal/MetalIconFactory innerClassName TreeLeafIcon flags 9
+
+class name javax/swing/plaf/metal/MetalSliderUI
+header extends javax/swing/plaf/basic/BasicSliderUI nestMembers javax/swing/plaf/metal/MetalSliderUI$MetalPropertyListener flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicSliderUI$ScrollListener outerClass javax/swing/plaf/basic/BasicSliderUI innerClassName ScrollListener flags 1
+innerclass innerClass javax/swing/plaf/metal/MetalSliderUI$MetalPropertyListener outerClass javax/swing/plaf/metal/MetalSliderUI innerClassName MetalPropertyListener flags 4
+
+class name javax/swing/plaf/metal/MetalToolBarUI
+header extends javax/swing/plaf/basic/BasicToolBarUI nestMembers javax/swing/plaf/metal/MetalToolBarUI$MetalDockingListener,javax/swing/plaf/metal/MetalToolBarUI$MetalRolloverListener,javax/swing/plaf/metal/MetalToolBarUI$MetalContainerListener flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalToolBarUI$MetalDockingListener outerClass javax/swing/plaf/metal/MetalToolBarUI innerClassName MetalDockingListener flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicToolBarUI$DragWindow outerClass javax/swing/plaf/basic/BasicToolBarUI innerClassName DragWindow flags 4
+innerclass innerClass javax/swing/plaf/metal/MetalToolBarUI$MetalRolloverListener outerClass javax/swing/plaf/metal/MetalToolBarUI innerClassName MetalRolloverListener flags 4
+innerclass innerClass javax/swing/plaf/metal/MetalToolBarUI$MetalContainerListener outerClass javax/swing/plaf/metal/MetalToolBarUI innerClassName MetalContainerListener flags 4
+
+class name javax/swing/table/DefaultTableCellRenderer
+header extends javax/swing/JLabel implements javax/swing/table/TableCellRenderer,java/io/Serializable nestMembers javax/swing/table/DefaultTableCellRenderer$UIResource flags 21
+innerclass innerClass javax/swing/JTable$DropLocation outerClass javax/swing/JTable innerClassName DropLocation flags 19
+innerclass innerClass javax/swing/table/DefaultTableCellRenderer$UIResource outerClass javax/swing/table/DefaultTableCellRenderer innerClassName UIResource flags 9
+
+class name javax/swing/table/JTableHeader$AccessibleJTableHeader
+header extends javax/swing/JComponent$AccessibleJComponent nestHost javax/swing/table/JTableHeader flags 21
+innerclass innerClass javax/swing/table/JTableHeader$AccessibleJTableHeader outerClass javax/swing/table/JTableHeader innerClassName AccessibleJTableHeader flags 4
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+innerclass innerClass javax/swing/table/JTableHeader$AccessibleJTableHeader$AccessibleJTableHeaderEntry outerClass javax/swing/table/JTableHeader$AccessibleJTableHeader innerClassName AccessibleJTableHeaderEntry flags 4
+
+class name javax/swing/text/AbstractDocument
+header extends java/lang/Object implements javax/swing/text/Document,java/io/Serializable nestMembers javax/swing/text/AbstractDocument$ElementEdit,javax/swing/text/AbstractDocument$DefaultDocumentEvent,javax/swing/text/AbstractDocument$LeafElement,javax/swing/text/AbstractDocument$BranchElement,javax/swing/text/AbstractDocument$AbstractElement,javax/swing/text/AbstractDocument$AttributeContext,javax/swing/text/AbstractDocument$Content flags 421
+innerclass innerClass javax/swing/text/AbstractDocument$Content outerClass javax/swing/text/AbstractDocument innerClassName Content flags 609
+innerclass innerClass javax/swing/text/AbstractDocument$AttributeContext outerClass javax/swing/text/AbstractDocument innerClassName AttributeContext flags 609
+innerclass innerClass javax/swing/text/AbstractDocument$BranchElement outerClass javax/swing/text/AbstractDocument innerClassName BranchElement flags 1
+innerclass innerClass javax/swing/text/AbstractDocument$DefaultDocumentEvent outerClass javax/swing/text/AbstractDocument innerClassName DefaultDocumentEvent flags 1
+innerclass innerClass javax/swing/event/DocumentEvent$EventType outerClass javax/swing/event/DocumentEvent innerClassName EventType flags 19
+innerclass innerClass javax/swing/text/DocumentFilter$FilterBypass outerClass javax/swing/text/DocumentFilter innerClassName FilterBypass flags 409
+innerclass innerClass javax/swing/text/AbstractDocument$ElementEdit outerClass javax/swing/text/AbstractDocument innerClassName ElementEdit flags 9
+innerclass innerClass javax/swing/text/AbstractDocument$AbstractElement outerClass javax/swing/text/AbstractDocument innerClassName AbstractElement flags 401
+innerclass innerClass javax/swing/text/AbstractDocument$LeafElement outerClass javax/swing/text/AbstractDocument innerClassName LeafElement flags 1
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/AbstractDocument$AbstractElement
+header extends java/lang/Object implements javax/swing/text/Element,javax/swing/text/MutableAttributeSet,java/io/Serializable,javax/swing/tree/TreeNode nestHost javax/swing/text/AbstractDocument flags 421
+innerclass innerClass javax/swing/text/AbstractDocument$AbstractElement outerClass javax/swing/text/AbstractDocument innerClassName AbstractElement flags 401
+innerclass innerClass javax/swing/text/AbstractDocument$AttributeContext outerClass javax/swing/text/AbstractDocument innerClassName AttributeContext flags 609
+innerclass innerClass javax/swing/text/AbstractDocument$Content outerClass javax/swing/text/AbstractDocument innerClassName Content flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/AbstractDocument$BranchElement
+header extends javax/swing/text/AbstractDocument$AbstractElement nestHost javax/swing/text/AbstractDocument flags 21
+innerclass innerClass javax/swing/text/AbstractDocument$BranchElement outerClass javax/swing/text/AbstractDocument innerClassName BranchElement flags 1
+innerclass innerClass javax/swing/text/AbstractDocument$AbstractElement outerClass javax/swing/text/AbstractDocument innerClassName AbstractElement flags 401
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/AbstractDocument$DefaultDocumentEvent
+header extends javax/swing/undo/CompoundEdit implements javax/swing/event/DocumentEvent nestHost javax/swing/text/AbstractDocument flags 21
+innerclass innerClass javax/swing/text/AbstractDocument$DefaultDocumentEvent outerClass javax/swing/text/AbstractDocument innerClassName DefaultDocumentEvent flags 1
+innerclass innerClass javax/swing/event/DocumentEvent$EventType outerClass javax/swing/event/DocumentEvent innerClassName EventType flags 19
+innerclass innerClass javax/swing/event/DocumentEvent$ElementChange outerClass javax/swing/event/DocumentEvent innerClassName ElementChange flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/AsyncBoxView
+header extends javax/swing/text/View nestMembers javax/swing/text/AsyncBoxView$ChildState,javax/swing/text/AsyncBoxView$ChildLocator flags 21
+innerclass innerClass javax/swing/text/AsyncBoxView$ChildLocator outerClass javax/swing/text/AsyncBoxView innerClassName ChildLocator flags 1
+innerclass innerClass javax/swing/text/AsyncBoxView$ChildState outerClass javax/swing/text/AsyncBoxView innerClassName ChildState flags 1
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+innerclass innerClass javax/swing/event/DocumentEvent$ElementChange outerClass javax/swing/event/DocumentEvent innerClassName ElementChange flags 609
+
+class name javax/swing/text/AsyncBoxView$ChildLocator
+header extends java/lang/Object nestHost javax/swing/text/AsyncBoxView flags 21
+innerclass innerClass javax/swing/text/AsyncBoxView$ChildLocator outerClass javax/swing/text/AsyncBoxView innerClassName ChildLocator flags 1
+innerclass innerClass javax/swing/text/AsyncBoxView$ChildState outerClass javax/swing/text/AsyncBoxView innerClassName ChildState flags 1
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+
+class name javax/swing/text/DefaultCaret
+header extends java/awt/Rectangle implements javax/swing/text/Caret,java/awt/event/FocusListener,java/awt/event/MouseListener,java/awt/event/MouseMotionListener flags 21
+innerclass innerClass javax/swing/text/LayeredHighlighter$LayerPainter outerClass javax/swing/text/LayeredHighlighter innerClassName LayerPainter flags 409
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+innerclass innerClass java/awt/event/FocusEvent$Cause outerClass java/awt/event/FocusEvent innerClassName Cause flags 4019
+innerclass innerClass javax/swing/text/Highlighter$HighlightPainter outerClass javax/swing/text/Highlighter innerClassName HighlightPainter flags 609
+innerclass innerClass javax/swing/text/NavigationFilter$FilterBypass outerClass javax/swing/text/NavigationFilter innerClassName FilterBypass flags 409
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/DefaultEditorKit
+header extends javax/swing/text/EditorKit nestMembers javax/swing/text/DefaultEditorKit$BeepAction,javax/swing/text/DefaultEditorKit$PasteAction,javax/swing/text/DefaultEditorKit$CopyAction,javax/swing/text/DefaultEditorKit$CutAction,javax/swing/text/DefaultEditorKit$InsertTabAction,javax/swing/text/DefaultEditorKit$InsertBreakAction,javax/swing/text/DefaultEditorKit$InsertContentAction,javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction flags 21
+innerclass innerClass javax/swing/text/DefaultEditorKit$InsertContentAction outerClass javax/swing/text/DefaultEditorKit innerClassName InsertContentAction flags 9
+innerclass innerClass javax/swing/text/DefaultEditorKit$CutAction outerClass javax/swing/text/DefaultEditorKit innerClassName CutAction flags 9
+innerclass innerClass javax/swing/text/DefaultEditorKit$CopyAction outerClass javax/swing/text/DefaultEditorKit innerClassName CopyAction flags 9
+innerclass innerClass javax/swing/text/DefaultEditorKit$PasteAction outerClass javax/swing/text/DefaultEditorKit innerClassName PasteAction flags 9
+innerclass innerClass javax/swing/text/DefaultEditorKit$InsertBreakAction outerClass javax/swing/text/DefaultEditorKit innerClassName InsertBreakAction flags 9
+innerclass innerClass javax/swing/text/DefaultEditorKit$BeepAction outerClass javax/swing/text/DefaultEditorKit innerClassName BeepAction flags 9
+innerclass innerClass javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction outerClass javax/swing/text/DefaultEditorKit innerClassName DefaultKeyTypedAction flags 9
+innerclass innerClass javax/swing/text/DefaultEditorKit$InsertTabAction outerClass javax/swing/text/DefaultEditorKit innerClassName InsertTabAction flags 9
+
+class name javax/swing/text/DefaultFormatter
+header extends javax/swing/JFormattedTextField$AbstractFormatter implements java/lang/Cloneable,java/io/Serializable flags 21
+innerclass innerClass javax/swing/JFormattedTextField$AbstractFormatter outerClass javax/swing/JFormattedTextField innerClassName AbstractFormatter flags 409
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+innerclass innerClass javax/swing/text/DocumentFilter$FilterBypass outerClass javax/swing/text/DocumentFilter innerClassName FilterBypass flags 409
+innerclass innerClass javax/swing/text/NavigationFilter$FilterBypass outerClass javax/swing/text/NavigationFilter innerClassName FilterBypass flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/DefaultFormatterFactory
+header extends javax/swing/JFormattedTextField$AbstractFormatterFactory implements java/io/Serializable flags 21
+innerclass innerClass javax/swing/JFormattedTextField$AbstractFormatterFactory outerClass javax/swing/JFormattedTextField innerClassName AbstractFormatterFactory flags 409
+innerclass innerClass javax/swing/JFormattedTextField$AbstractFormatter outerClass javax/swing/JFormattedTextField innerClassName AbstractFormatter flags 409
+
+class name javax/swing/text/DefaultHighlighter
+header extends javax/swing/text/LayeredHighlighter nestMembers javax/swing/text/DefaultHighlighter$DefaultHighlightPainter flags 21
+innerclass innerClass javax/swing/text/Highlighter$HighlightPainter outerClass javax/swing/text/Highlighter innerClassName HighlightPainter flags 609
+innerclass innerClass javax/swing/text/LayeredHighlighter$LayerPainter outerClass javax/swing/text/LayeredHighlighter innerClassName LayerPainter flags 409
+innerclass innerClass javax/swing/text/Highlighter$Highlight outerClass javax/swing/text/Highlighter innerClassName Highlight flags 609
+innerclass innerClass javax/swing/text/DefaultHighlighter$DefaultHighlightPainter outerClass javax/swing/text/DefaultHighlighter innerClassName DefaultHighlightPainter flags 9
+
+class name javax/swing/text/DefaultHighlighter$DefaultHighlightPainter
+header extends javax/swing/text/LayeredHighlighter$LayerPainter nestHost javax/swing/text/DefaultHighlighter flags 21
+innerclass innerClass javax/swing/text/LayeredHighlighter$LayerPainter outerClass javax/swing/text/LayeredHighlighter innerClassName LayerPainter flags 409
+innerclass innerClass javax/swing/text/DefaultHighlighter$DefaultHighlightPainter outerClass javax/swing/text/DefaultHighlighter innerClassName DefaultHighlightPainter flags 9
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+
+class name javax/swing/text/DefaultStyledDocument
+header extends javax/swing/text/AbstractDocument implements javax/swing/text/StyledDocument nestMembers javax/swing/text/DefaultStyledDocument$AttributeUndoableEdit,javax/swing/text/DefaultStyledDocument$ElementBuffer,javax/swing/text/DefaultStyledDocument$ElementSpec,javax/swing/text/DefaultStyledDocument$SectionElement flags 21
+innerclass innerClass javax/swing/text/AbstractDocument$Content outerClass javax/swing/text/AbstractDocument innerClassName Content flags 609
+innerclass innerClass javax/swing/text/AbstractDocument$AttributeContext outerClass javax/swing/text/AbstractDocument innerClassName AttributeContext flags 609
+innerclass innerClass javax/swing/text/DefaultStyledDocument$ElementBuffer outerClass javax/swing/text/DefaultStyledDocument innerClassName ElementBuffer flags 1
+innerclass innerClass javax/swing/text/AbstractDocument$AbstractElement outerClass javax/swing/text/AbstractDocument innerClassName AbstractElement flags 401
+innerclass innerClass javax/swing/text/DefaultStyledDocument$ElementSpec outerClass javax/swing/text/DefaultStyledDocument innerClassName ElementSpec flags 9
+innerclass innerClass javax/swing/text/AbstractDocument$DefaultDocumentEvent outerClass javax/swing/text/AbstractDocument innerClassName DefaultDocumentEvent flags 1
+innerclass innerClass javax/swing/event/DocumentEvent$EventType outerClass javax/swing/event/DocumentEvent innerClassName EventType flags 19
+innerclass innerClass javax/swing/text/AbstractDocument$BranchElement outerClass javax/swing/text/AbstractDocument innerClassName BranchElement flags 1
+innerclass innerClass javax/swing/text/AbstractDocument$ElementEdit outerClass javax/swing/text/AbstractDocument innerClassName ElementEdit flags 9
+innerclass innerClass javax/swing/text/DefaultStyledDocument$AttributeUndoableEdit outerClass javax/swing/text/DefaultStyledDocument innerClassName AttributeUndoableEdit flags 9
+innerclass innerClass javax/swing/text/DefaultStyledDocument$SectionElement outerClass javax/swing/text/DefaultStyledDocument innerClassName SectionElement flags 4
+innerclass innerClass javax/swing/text/AbstractDocument$LeafElement outerClass javax/swing/text/AbstractDocument innerClassName LeafElement flags 1
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+
+class name javax/swing/text/DefaultStyledDocument$ElementBuffer
+header extends java/lang/Object implements java/io/Serializable nestHost javax/swing/text/DefaultStyledDocument flags 21
+innerclass innerClass javax/swing/text/DefaultStyledDocument$ElementBuffer outerClass javax/swing/text/DefaultStyledDocument innerClassName ElementBuffer flags 1
+innerclass innerClass javax/swing/text/DefaultStyledDocument$ElementSpec outerClass javax/swing/text/DefaultStyledDocument innerClassName ElementSpec flags 9
+innerclass innerClass javax/swing/text/AbstractDocument$DefaultDocumentEvent outerClass javax/swing/text/AbstractDocument innerClassName DefaultDocumentEvent flags 1
+innerclass innerClass javax/swing/text/DefaultStyledDocument$AttributeUndoableEdit outerClass javax/swing/text/DefaultStyledDocument innerClassName AttributeUndoableEdit flags 9
+innerclass innerClass javax/swing/text/AbstractDocument$BranchElement outerClass javax/swing/text/AbstractDocument innerClassName BranchElement flags 1
+innerclass innerClass javax/swing/text/AbstractDocument$ElementEdit outerClass javax/swing/text/AbstractDocument innerClassName ElementEdit flags 9
+
+class name javax/swing/text/GlyphView$GlyphPainter
+header extends java/lang/Object nestHost javax/swing/text/GlyphView flags 421
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+innerclass innerClass javax/swing/text/GlyphView$GlyphPainter outerClass javax/swing/text/GlyphView innerClassName GlyphPainter flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/Highlighter$Highlight
+header extends java/lang/Object nestHost javax/swing/text/Highlighter flags 601
+innerclass innerClass javax/swing/text/Highlighter$Highlight outerClass javax/swing/text/Highlighter innerClassName Highlight flags 609
+innerclass innerClass javax/swing/text/Highlighter$HighlightPainter outerClass javax/swing/text/Highlighter innerClassName HighlightPainter flags 609
+
+class name javax/swing/text/JTextComponent
+header extends javax/swing/JComponent implements javax/swing/Scrollable,javax/accessibility/Accessible nestMembers javax/swing/text/JTextComponent$DropLocation,javax/swing/text/JTextComponent$AccessibleJTextComponent,javax/swing/text/JTextComponent$KeyBinding flags 421 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UI")@Ljavax/swing/SwingContainer;(value=Zfalse)
+innerclass innerClass javax/swing/text/JTextComponent$AccessibleJTextComponent outerClass javax/swing/text/JTextComponent innerClassName AccessibleJTextComponent flags 1
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+innerclass innerClass javax/swing/text/JTextComponent$DropLocation outerClass javax/swing/text/JTextComponent innerClassName DropLocation flags 19
+innerclass innerClass javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction outerClass javax/swing/text/DefaultEditorKit innerClassName DefaultKeyTypedAction flags 9
+innerclass innerClass javax/swing/text/JTextComponent$KeyBinding outerClass javax/swing/text/JTextComponent innerClassName KeyBinding flags 9
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass javax/swing/TransferHandler$DropLocation outerClass javax/swing/TransferHandler innerClassName DropLocation flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/JTextComponent$DropLocation
+header extends javax/swing/TransferHandler$DropLocation nestHost javax/swing/text/JTextComponent flags 31
+innerclass innerClass javax/swing/TransferHandler$DropLocation outerClass javax/swing/TransferHandler innerClassName DropLocation flags 9
+innerclass innerClass javax/swing/text/JTextComponent$DropLocation outerClass javax/swing/text/JTextComponent innerClassName DropLocation flags 19
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/ParagraphView
+header extends javax/swing/text/FlowView implements javax/swing/text/TabExpander flags 21
+innerclass innerClass javax/swing/text/FlowView$FlowStrategy outerClass javax/swing/text/FlowView innerClassName FlowStrategy flags 9
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/PlainDocument
+header extends javax/swing/text/AbstractDocument flags 21
+innerclass innerClass javax/swing/text/AbstractDocument$Content outerClass javax/swing/text/AbstractDocument innerClassName Content flags 609
+innerclass innerClass javax/swing/text/AbstractDocument$AbstractElement outerClass javax/swing/text/AbstractDocument innerClassName AbstractElement flags 401
+innerclass innerClass javax/swing/text/AbstractDocument$BranchElement outerClass javax/swing/text/AbstractDocument innerClassName BranchElement flags 1
+innerclass innerClass javax/swing/text/AbstractDocument$DefaultDocumentEvent outerClass javax/swing/text/AbstractDocument innerClassName DefaultDocumentEvent flags 1
+innerclass innerClass javax/swing/text/AbstractDocument$ElementEdit outerClass javax/swing/text/AbstractDocument innerClassName ElementEdit flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/PlainView
+header extends javax/swing/text/View implements javax/swing/text/TabExpander flags 21
+innerclass innerClass java/awt/geom/Rectangle2D$Float outerClass java/awt/geom/Rectangle2D innerClassName Float flags 9
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+innerclass innerClass javax/swing/event/DocumentEvent$ElementChange outerClass javax/swing/event/DocumentEvent innerClassName ElementChange flags 609
+innerclass innerClass javax/swing/event/DocumentEvent$EventType outerClass javax/swing/event/DocumentEvent innerClassName EventType flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/StyleConstants
+header extends java/lang/Object nestMembers javax/swing/text/StyleConstants$FontConstants,javax/swing/text/StyleConstants$ColorConstants,javax/swing/text/StyleConstants$CharacterConstants,javax/swing/text/StyleConstants$ParagraphConstants flags 21
+innerclass innerClass javax/swing/text/StyleConstants$CharacterConstants outerClass javax/swing/text/StyleConstants innerClassName CharacterConstants flags 9
+innerclass innerClass javax/swing/text/StyleConstants$FontConstants outerClass javax/swing/text/StyleConstants innerClassName FontConstants flags 9
+innerclass innerClass javax/swing/text/StyleConstants$ColorConstants outerClass javax/swing/text/StyleConstants innerClassName ColorConstants flags 9
+innerclass innerClass javax/swing/text/StyleConstants$ParagraphConstants outerClass javax/swing/text/StyleConstants innerClassName ParagraphConstants flags 9
+
+class name javax/swing/text/StyledEditorKit
+header extends javax/swing/text/DefaultEditorKit nestMembers javax/swing/text/StyledEditorKit$UnderlineAction,javax/swing/text/StyledEditorKit$ItalicAction,javax/swing/text/StyledEditorKit$BoldAction,javax/swing/text/StyledEditorKit$AlignmentAction,javax/swing/text/StyledEditorKit$ForegroundAction,javax/swing/text/StyledEditorKit$FontSizeAction,javax/swing/text/StyledEditorKit$FontFamilyAction,javax/swing/text/StyledEditorKit$StyledTextAction flags 21
+innerclass innerClass javax/swing/text/StyledEditorKit$FontFamilyAction outerClass javax/swing/text/StyledEditorKit innerClassName FontFamilyAction flags 9
+innerclass innerClass javax/swing/text/StyledEditorKit$FontSizeAction outerClass javax/swing/text/StyledEditorKit innerClassName FontSizeAction flags 9
+innerclass innerClass javax/swing/text/StyledEditorKit$AlignmentAction outerClass javax/swing/text/StyledEditorKit innerClassName AlignmentAction flags 9
+innerclass innerClass javax/swing/text/StyledEditorKit$BoldAction outerClass javax/swing/text/StyledEditorKit innerClassName BoldAction flags 9
+innerclass innerClass javax/swing/text/StyledEditorKit$ItalicAction outerClass javax/swing/text/StyledEditorKit innerClassName ItalicAction flags 9
+innerclass innerClass javax/swing/text/StyledEditorKit$UnderlineAction outerClass javax/swing/text/StyledEditorKit innerClassName UnderlineAction flags 9
+innerclass innerClass javax/swing/text/StyledEditorKit$ForegroundAction outerClass javax/swing/text/StyledEditorKit innerClassName ForegroundAction flags 9
+innerclass innerClass javax/swing/text/StyledEditorKit$StyledTextAction outerClass javax/swing/text/StyledEditorKit innerClassName StyledTextAction flags 409
+
+class name javax/swing/text/StyledEditorKit$AlignmentAction
+header extends javax/swing/text/StyledEditorKit$StyledTextAction nestHost javax/swing/text/StyledEditorKit flags 21
+innerclass innerClass javax/swing/text/StyledEditorKit$StyledTextAction outerClass javax/swing/text/StyledEditorKit innerClassName StyledTextAction flags 409
+innerclass innerClass javax/swing/text/StyledEditorKit$AlignmentAction outerClass javax/swing/text/StyledEditorKit innerClassName AlignmentAction flags 9
+
+class name javax/swing/text/StyledEditorKit$BoldAction
+header extends javax/swing/text/StyledEditorKit$StyledTextAction nestHost javax/swing/text/StyledEditorKit flags 21
+innerclass innerClass javax/swing/text/StyledEditorKit$StyledTextAction outerClass javax/swing/text/StyledEditorKit innerClassName StyledTextAction flags 409
+innerclass innerClass javax/swing/text/StyledEditorKit$BoldAction outerClass javax/swing/text/StyledEditorKit innerClassName BoldAction flags 9
+
+class name javax/swing/text/StyledEditorKit$FontFamilyAction
+header extends javax/swing/text/StyledEditorKit$StyledTextAction nestHost javax/swing/text/StyledEditorKit flags 21
+innerclass innerClass javax/swing/text/StyledEditorKit$StyledTextAction outerClass javax/swing/text/StyledEditorKit innerClassName StyledTextAction flags 409
+innerclass innerClass javax/swing/text/StyledEditorKit$FontFamilyAction outerClass javax/swing/text/StyledEditorKit innerClassName FontFamilyAction flags 9
+
+class name javax/swing/text/StyledEditorKit$FontSizeAction
+header extends javax/swing/text/StyledEditorKit$StyledTextAction nestHost javax/swing/text/StyledEditorKit flags 21
+innerclass innerClass javax/swing/text/StyledEditorKit$StyledTextAction outerClass javax/swing/text/StyledEditorKit innerClassName StyledTextAction flags 409
+innerclass innerClass javax/swing/text/StyledEditorKit$FontSizeAction outerClass javax/swing/text/StyledEditorKit innerClassName FontSizeAction flags 9
+
+class name javax/swing/text/StyledEditorKit$ForegroundAction
+header extends javax/swing/text/StyledEditorKit$StyledTextAction nestHost javax/swing/text/StyledEditorKit flags 21
+innerclass innerClass javax/swing/text/StyledEditorKit$StyledTextAction outerClass javax/swing/text/StyledEditorKit innerClassName StyledTextAction flags 409
+innerclass innerClass javax/swing/text/StyledEditorKit$ForegroundAction outerClass javax/swing/text/StyledEditorKit innerClassName ForegroundAction flags 9
+
+class name javax/swing/text/StyledEditorKit$ItalicAction
+header extends javax/swing/text/StyledEditorKit$StyledTextAction nestHost javax/swing/text/StyledEditorKit flags 21
+innerclass innerClass javax/swing/text/StyledEditorKit$StyledTextAction outerClass javax/swing/text/StyledEditorKit innerClassName StyledTextAction flags 409
+innerclass innerClass javax/swing/text/StyledEditorKit$ItalicAction outerClass javax/swing/text/StyledEditorKit innerClassName ItalicAction flags 9
+
+class name javax/swing/text/StyledEditorKit$UnderlineAction
+header extends javax/swing/text/StyledEditorKit$StyledTextAction nestHost javax/swing/text/StyledEditorKit flags 21
+innerclass innerClass javax/swing/text/StyledEditorKit$StyledTextAction outerClass javax/swing/text/StyledEditorKit innerClassName StyledTextAction flags 409
+innerclass innerClass javax/swing/text/StyledEditorKit$UnderlineAction outerClass javax/swing/text/StyledEditorKit innerClassName UnderlineAction flags 9
+
+class name javax/swing/text/TableView
+header extends javax/swing/text/BoxView nestMembers javax/swing/text/TableView$GridCell,javax/swing/text/TableView$TableCell,javax/swing/text/TableView$TableRow flags 421
+innerclass innerClass javax/swing/text/TableView$TableRow outerClass javax/swing/text/TableView innerClassName TableRow flags 1
+innerclass innerClass javax/swing/text/TableView$TableCell outerClass javax/swing/text/TableView innerClassName TableCell flags 1
+innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
+innerclass innerClass javax/swing/event/DocumentEvent$ElementChange outerClass javax/swing/event/DocumentEvent innerClassName ElementChange flags 609
+innerclass innerClass javax/swing/text/TableView$GridCell outerClass javax/swing/text/TableView innerClassName GridCell flags 608
+
+class name javax/swing/text/Utilities
+header extends java/lang/Object flags 21
+innerclass innerClass java/text/AttributedCharacterIterator$Attribute outerClass java/text/AttributedCharacterIterator innerClassName Attribute flags 9
+innerclass innerClass javax/swing/text/GlyphView$GlyphPainter outerClass javax/swing/text/GlyphView innerClassName GlyphPainter flags 409
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/ZoneView
+header extends javax/swing/text/BoxView flags 21
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+innerclass innerClass javax/swing/event/DocumentEvent$ElementChange outerClass javax/swing/event/DocumentEvent innerClassName ElementChange flags 609
+
+class name javax/swing/text/html/BlockView
+header extends javax/swing/text/BoxView flags 21
+innerclass innerClass javax/swing/text/html/CSS$Attribute outerClass javax/swing/text/html/CSS innerClassName Attribute flags 19
+innerclass innerClass javax/swing/text/html/StyleSheet$BoxPainter outerClass javax/swing/text/html/StyleSheet innerClassName BoxPainter flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/html/CSS
+header extends java/lang/Object implements java/io/Serializable nestMembers javax/swing/text/html/CSS$Attribute flags 21
+innerclass innerClass javax/swing/text/html/CSS$Attribute outerClass javax/swing/text/html/CSS innerClassName Attribute flags 19
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/html/FormSubmitEvent
+header extends javax/swing/text/html/HTMLFrameHyperlinkEvent nestMembers javax/swing/text/html/FormSubmitEvent$MethodType flags 21
+innerclass innerClass javax/swing/event/HyperlinkEvent$EventType outerClass javax/swing/event/HyperlinkEvent innerClassName EventType flags 19
+innerclass innerClass javax/swing/text/html/FormSubmitEvent$MethodType outerClass javax/swing/text/html/FormSubmitEvent innerClassName MethodType flags 4019
+
+class name javax/swing/text/html/FormView
+header extends javax/swing/text/ComponentView implements java/awt/event/ActionListener nestMembers javax/swing/text/html/FormView$MouseEventListener flags 21
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
+innerclass innerClass javax/swing/text/html/FormView$MouseEventListener outerClass javax/swing/text/html/FormView innerClassName MouseEventListener flags 4
+innerclass innerClass javax/swing/JToggleButton$ToggleButtonModel outerClass javax/swing/JToggleButton innerClassName ToggleButtonModel flags 9
+innerclass innerClass javax/swing/text/html/FormSubmitEvent$MethodType outerClass javax/swing/text/html/FormSubmitEvent innerClassName MethodType flags 4019
+innerclass innerClass javax/swing/event/HyperlinkEvent$EventType outerClass javax/swing/event/HyperlinkEvent innerClassName EventType flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/html/HTML
+header extends java/lang/Object nestMembers javax/swing/text/html/HTML$Attribute,javax/swing/text/html/HTML$UnknownTag,javax/swing/text/html/HTML$Tag flags 21
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
+innerclass innerClass javax/swing/text/html/HTML$UnknownTag outerClass javax/swing/text/html/HTML innerClassName UnknownTag flags 9
+
+class name javax/swing/text/html/HTML$UnknownTag
+header extends javax/swing/text/html/HTML$Tag implements java/io/Serializable nestHost javax/swing/text/html/HTML flags 21
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/html/HTML$UnknownTag outerClass javax/swing/text/html/HTML innerClassName UnknownTag flags 9
+
+class name javax/swing/text/html/HTMLDocument
+header extends javax/swing/text/DefaultStyledDocument nestMembers javax/swing/text/html/HTMLDocument$BlockElement,javax/swing/text/html/HTMLDocument$RunElement,javax/swing/text/html/HTMLDocument$HTMLReader,javax/swing/text/html/HTMLDocument$HTMLReader$FormAction,javax/swing/text/html/HTMLDocument$HTMLReader$CharacterAction,javax/swing/text/html/HTMLDocument$HTMLReader$PreAction,javax/swing/text/html/HTMLDocument$HTMLReader$HiddenAction,javax/swing/text/html/HTMLDocument$HTMLReader$IsindexAction,javax/swing/text/html/HTMLDocument$HTMLReader$SpecialAction,javax/swing/text/html/HTMLDocument$HTMLReader$ParagraphAction,javax/swing/text/html/HTMLDocument$HTMLReader$BlockAction,javax/swing/text/html/HTMLDocument$HTMLReader$TagAction,javax/swing/text/html/HTMLDocument$Iterator flags 21
+innerclass innerClass javax/swing/text/AbstractDocument$DefaultDocumentEvent outerClass javax/swing/text/AbstractDocument innerClassName DefaultDocumentEvent flags 1
+innerclass innerClass javax/swing/text/AbstractDocument$Content outerClass javax/swing/text/AbstractDocument innerClassName Content flags 609
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader outerClass javax/swing/text/html/HTMLDocument innerClassName HTMLReader flags 1
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/html/HTMLEditorKit$ParserCallback outerClass javax/swing/text/html/HTMLEditorKit innerClassName ParserCallback flags 9
+innerclass innerClass javax/swing/text/DefaultStyledDocument$ElementSpec outerClass javax/swing/text/DefaultStyledDocument innerClassName ElementSpec flags 9
+innerclass innerClass javax/swing/event/DocumentEvent$EventType outerClass javax/swing/event/DocumentEvent innerClassName EventType flags 19
+innerclass innerClass javax/swing/text/DefaultStyledDocument$AttributeUndoableEdit outerClass javax/swing/text/DefaultStyledDocument innerClassName AttributeUndoableEdit flags 9
+innerclass innerClass javax/swing/text/AbstractDocument$AttributeContext outerClass javax/swing/text/AbstractDocument innerClassName AttributeContext flags 609
+innerclass innerClass javax/swing/text/html/HTMLDocument$RunElement outerClass javax/swing/text/html/HTMLDocument innerClassName RunElement flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$BlockElement outerClass javax/swing/text/html/HTMLDocument innerClassName BlockElement flags 1
+innerclass innerClass javax/swing/text/html/CSS$Attribute outerClass javax/swing/text/html/CSS innerClassName Attribute flags 19
+innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
+innerclass innerClass javax/swing/text/html/HTMLEditorKit$Parser outerClass javax/swing/text/html/HTMLEditorKit innerClassName Parser flags 409
+innerclass innerClass javax/swing/text/AbstractDocument$ElementEdit outerClass javax/swing/text/AbstractDocument innerClassName ElementEdit flags 9
+innerclass innerClass javax/swing/text/AbstractDocument$BranchElement outerClass javax/swing/text/AbstractDocument innerClassName BranchElement flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$Iterator outerClass javax/swing/text/html/HTMLDocument innerClassName Iterator flags 409
+innerclass innerClass javax/swing/text/AbstractDocument$AbstractElement outerClass javax/swing/text/AbstractDocument innerClassName AbstractElement flags 401
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$FormAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName FormAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$CharacterAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName CharacterAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$PreAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName PreAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$HiddenAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName HiddenAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$IsindexAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName IsindexAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$SpecialAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName SpecialAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$ParagraphAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName ParagraphAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$BlockAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName BlockAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$TagAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName TagAction flags 1
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/html/HTMLDocument$HTMLReader
+header extends javax/swing/text/html/HTMLEditorKit$ParserCallback nestHost javax/swing/text/html/HTMLDocument flags 21
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader outerClass javax/swing/text/html/HTMLDocument innerClassName HTMLReader flags 1
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/html/HTMLEditorKit$ParserCallback outerClass javax/swing/text/html/HTMLEditorKit innerClassName ParserCallback flags 9
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$TagAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName TagAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$BlockAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName BlockAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$ParagraphAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName ParagraphAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$CharacterAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName CharacterAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$SpecialAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName SpecialAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$FormAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName FormAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$HiddenAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName HiddenAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$IsindexAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName IsindexAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$PreAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName PreAction flags 1
+innerclass innerClass javax/swing/text/DefaultStyledDocument$ElementSpec outerClass javax/swing/text/DefaultStyledDocument innerClassName ElementSpec flags 9
+innerclass innerClass javax/swing/text/AbstractDocument$BranchElement outerClass javax/swing/text/AbstractDocument innerClassName BranchElement flags 1
+innerclass innerClass javax/swing/text/AbstractDocument$ElementEdit outerClass javax/swing/text/AbstractDocument innerClassName ElementEdit flags 9
+innerclass innerClass javax/swing/text/AbstractDocument$DefaultDocumentEvent outerClass javax/swing/text/AbstractDocument innerClassName DefaultDocumentEvent flags 1
+innerclass innerClass javax/swing/event/DocumentEvent$EventType outerClass javax/swing/event/DocumentEvent innerClassName EventType flags 19
+innerclass innerClass javax/swing/text/AbstractDocument$Content outerClass javax/swing/text/AbstractDocument innerClassName Content flags 609
+innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
+innerclass innerClass javax/swing/text/html/CSS$Attribute outerClass javax/swing/text/html/CSS innerClassName Attribute flags 19
+innerclass innerClass javax/swing/text/html/HTML$UnknownTag outerClass javax/swing/text/html/HTML innerClassName UnknownTag flags 9
+
+class name javax/swing/text/html/HTMLDocument$HTMLReader$BlockAction
+header extends javax/swing/text/html/HTMLDocument$HTMLReader$TagAction nestHost javax/swing/text/html/HTMLDocument flags 21
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader outerClass javax/swing/text/html/HTMLDocument innerClassName HTMLReader flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$BlockAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName BlockAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$TagAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName TagAction flags 1
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+
+class name javax/swing/text/html/HTMLDocument$HTMLReader$CharacterAction
+header extends javax/swing/text/html/HTMLDocument$HTMLReader$TagAction nestHost javax/swing/text/html/HTMLDocument flags 21
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader outerClass javax/swing/text/html/HTMLDocument innerClassName HTMLReader flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$CharacterAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName CharacterAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$TagAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName TagAction flags 1
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/html/HTMLEditorKit$ParserCallback outerClass javax/swing/text/html/HTMLEditorKit innerClassName ParserCallback flags 9
+
+class name javax/swing/text/html/HTMLDocument$HTMLReader$FormAction
+header extends javax/swing/text/html/HTMLDocument$HTMLReader$SpecialAction nestHost javax/swing/text/html/HTMLDocument flags 21
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader outerClass javax/swing/text/html/HTMLDocument innerClassName HTMLReader flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$FormAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName FormAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$SpecialAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName SpecialAction flags 1
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
+innerclass innerClass javax/swing/JToggleButton$ToggleButtonModel outerClass javax/swing/JToggleButton innerClassName ToggleButtonModel flags 9
+
+class name javax/swing/text/html/HTMLDocument$HTMLReader$HiddenAction
+header extends javax/swing/text/html/HTMLDocument$HTMLReader$TagAction nestHost javax/swing/text/html/HTMLDocument flags 21
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader outerClass javax/swing/text/html/HTMLDocument innerClassName HTMLReader flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$HiddenAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName HiddenAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$TagAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName TagAction flags 1
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
+
+class name javax/swing/text/html/HTMLDocument$HTMLReader$IsindexAction
+header extends javax/swing/text/html/HTMLDocument$HTMLReader$TagAction nestHost javax/swing/text/html/HTMLDocument flags 21
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader outerClass javax/swing/text/html/HTMLDocument innerClassName HTMLReader flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$IsindexAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName IsindexAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$TagAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName TagAction flags 1
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+
+class name javax/swing/text/html/HTMLDocument$HTMLReader$ParagraphAction
+header extends javax/swing/text/html/HTMLDocument$HTMLReader$BlockAction nestHost javax/swing/text/html/HTMLDocument flags 21
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader outerClass javax/swing/text/html/HTMLDocument innerClassName HTMLReader flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$ParagraphAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName ParagraphAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$BlockAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName BlockAction flags 1
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+
+class name javax/swing/text/html/HTMLDocument$HTMLReader$PreAction
+header extends javax/swing/text/html/HTMLDocument$HTMLReader$BlockAction nestHost javax/swing/text/html/HTMLDocument flags 21
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader outerClass javax/swing/text/html/HTMLDocument innerClassName HTMLReader flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$PreAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName PreAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$BlockAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName BlockAction flags 1
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/html/CSS$Attribute outerClass javax/swing/text/html/CSS innerClassName Attribute flags 19
+
+class name javax/swing/text/html/HTMLDocument$HTMLReader$SpecialAction
+header extends javax/swing/text/html/HTMLDocument$HTMLReader$TagAction nestHost javax/swing/text/html/HTMLDocument flags 21
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader outerClass javax/swing/text/html/HTMLDocument innerClassName HTMLReader flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$SpecialAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName SpecialAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$TagAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName TagAction flags 1
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+
+class name javax/swing/text/html/HTMLEditorKit
+header extends javax/swing/text/StyledEditorKit implements javax/accessibility/Accessible nestMembers javax/swing/text/html/HTMLEditorKit$InsertHTMLTextAction,javax/swing/text/html/HTMLEditorKit$HTMLTextAction,javax/swing/text/html/HTMLEditorKit$HTMLFactory,javax/swing/text/html/HTMLEditorKit$ParserCallback,javax/swing/text/html/HTMLEditorKit$Parser,javax/swing/text/html/HTMLEditorKit$LinkController flags 21
+innerclass innerClass javax/swing/text/html/HTMLEditorKit$LinkController outerClass javax/swing/text/html/HTMLEditorKit innerClassName LinkController flags 9
+innerclass innerClass javax/swing/text/html/HTMLEditorKit$Parser outerClass javax/swing/text/html/HTMLEditorKit innerClassName Parser flags 409
+innerclass innerClass javax/swing/text/html/HTMLEditorKit$ParserCallback outerClass javax/swing/text/html/HTMLEditorKit innerClassName ParserCallback flags 9
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
+innerclass innerClass javax/swing/text/html/HTML$UnknownTag outerClass javax/swing/text/html/HTML innerClassName UnknownTag flags 9
+innerclass innerClass javax/swing/text/html/HTMLEditorKit$HTMLFactory outerClass javax/swing/text/html/HTMLEditorKit innerClassName HTMLFactory flags 9
+innerclass innerClass javax/swing/text/html/HTMLEditorKit$InsertHTMLTextAction outerClass javax/swing/text/html/HTMLEditorKit innerClassName InsertHTMLTextAction flags 9
+innerclass innerClass javax/swing/text/html/HTMLEditorKit$HTMLTextAction outerClass javax/swing/text/html/HTMLEditorKit innerClassName HTMLTextAction flags 409
+
+class name javax/swing/text/html/HTMLEditorKit$HTMLFactory
+header extends java/lang/Object implements javax/swing/text/ViewFactory nestHost javax/swing/text/html/HTMLEditorKit flags 21
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/html/CSS$Attribute outerClass javax/swing/text/html/CSS innerClassName Attribute flags 19
+innerclass innerClass javax/swing/text/html/HTMLEditorKit$HTMLFactory outerClass javax/swing/text/html/HTMLEditorKit innerClassName HTMLFactory flags 9
+innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
+innerclass innerClass javax/swing/text/html/HTML$UnknownTag outerClass javax/swing/text/html/HTML innerClassName UnknownTag flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/html/HTMLEditorKit$HTMLTextAction
+header extends javax/swing/text/StyledEditorKit$StyledTextAction nestHost javax/swing/text/html/HTMLEditorKit flags 421
+innerclass innerClass javax/swing/text/StyledEditorKit$StyledTextAction outerClass javax/swing/text/StyledEditorKit innerClassName StyledTextAction flags 409
+innerclass innerClass javax/swing/text/html/HTMLEditorKit$HTMLTextAction outerClass javax/swing/text/html/HTMLEditorKit innerClassName HTMLTextAction flags 409
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+
+class name javax/swing/text/html/HTMLEditorKit$InsertHTMLTextAction
+header extends javax/swing/text/html/HTMLEditorKit$HTMLTextAction nestHost javax/swing/text/html/HTMLEditorKit flags 21
+innerclass innerClass javax/swing/text/html/HTMLEditorKit$InsertHTMLTextAction outerClass javax/swing/text/html/HTMLEditorKit innerClassName InsertHTMLTextAction flags 9
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/html/HTMLEditorKit$HTMLTextAction outerClass javax/swing/text/html/HTMLEditorKit innerClassName HTMLTextAction flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/html/HTMLEditorKit$LinkController
+header extends java/awt/event/MouseAdapter implements java/awt/event/MouseMotionListener,java/io/Serializable nestHost javax/swing/text/html/HTMLEditorKit flags 21
+innerclass innerClass javax/swing/text/html/HTMLEditorKit$LinkController outerClass javax/swing/text/html/HTMLEditorKit innerClassName LinkController flags 9
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
+innerclass innerClass javax/swing/event/HyperlinkEvent$EventType outerClass javax/swing/event/HyperlinkEvent innerClassName EventType flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/html/HTMLWriter
+header extends javax/swing/text/AbstractWriter flags 21
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
+innerclass innerClass javax/swing/text/html/CSS$Attribute outerClass javax/swing/text/html/CSS innerClassName Attribute flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/html/ImageView
+header extends javax/swing/text/View flags 21
+innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/html/StyleSheet
+header extends javax/swing/text/StyleContext nestMembers javax/swing/text/html/StyleSheet$ListPainter,javax/swing/text/html/StyleSheet$BoxPainter flags 21
+innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/html/CSS$Attribute outerClass javax/swing/text/html/CSS innerClassName Attribute flags 19
+innerclass innerClass javax/swing/text/html/StyleSheet$BoxPainter outerClass javax/swing/text/html/StyleSheet innerClassName BoxPainter flags 9
+innerclass innerClass javax/swing/text/html/StyleSheet$ListPainter outerClass javax/swing/text/html/StyleSheet innerClassName ListPainter flags 9
+innerclass innerClass javax/swing/text/StyleContext$SmallAttributeSet outerClass javax/swing/text/StyleContext innerClassName SmallAttributeSet flags 1
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/html/StyleSheet$ListPainter
+header extends java/lang/Object implements java/io/Serializable nestHost javax/swing/text/html/StyleSheet flags 21
+innerclass innerClass javax/swing/text/html/StyleSheet$ListPainter outerClass javax/swing/text/html/StyleSheet innerClassName ListPainter flags 9
+innerclass innerClass javax/swing/text/html/CSS$Attribute outerClass javax/swing/text/html/CSS innerClassName Attribute flags 19
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
+innerclass innerClass java/awt/RenderingHints$Key outerClass java/awt/RenderingHints innerClassName Key flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/html/parser/ParserDelegator
+header extends javax/swing/text/html/HTMLEditorKit$Parser implements java/io/Serializable flags 21
+innerclass innerClass javax/swing/text/html/HTMLEditorKit$Parser outerClass javax/swing/text/html/HTMLEditorKit innerClassName Parser flags 409
+innerclass innerClass javax/swing/text/html/HTMLEditorKit$ParserCallback outerClass javax/swing/text/html/HTMLEditorKit innerClassName ParserCallback flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/java.management-D.sym.txt	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,102 @@
+#
+# Copyright (c) 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.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+class name javax/management/modelmbean/DescriptorSupport
+header extends java/lang/Object implements javax/management/Descriptor flags 21
+innerclass innerClass java/lang/System$Logger outerClass java/lang/System innerClassName Logger flags 609
+innerclass innerClass java/lang/System$Logger$Level outerClass java/lang/System$Logger innerClassName Level flags 4019
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/modelmbean/ModelMBeanAttributeInfo
+header extends javax/management/MBeanAttributeInfo implements javax/management/DescriptorAccess flags 21
+innerclass innerClass java/lang/System$Logger outerClass java/lang/System innerClassName Logger flags 609
+innerclass innerClass java/lang/System$Logger$Level outerClass java/lang/System$Logger innerClassName Level flags 4019
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/modelmbean/ModelMBeanConstructorInfo
+header extends javax/management/MBeanConstructorInfo implements javax/management/DescriptorAccess flags 21
+innerclass innerClass java/lang/System$Logger outerClass java/lang/System innerClassName Logger flags 609
+innerclass innerClass java/lang/System$Logger$Level outerClass java/lang/System$Logger innerClassName Level flags 4019
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/modelmbean/ModelMBeanInfoSupport
+header extends javax/management/MBeanInfo implements javax/management/modelmbean/ModelMBeanInfo flags 21
+innerclass innerClass java/lang/System$Logger outerClass java/lang/System innerClassName Logger flags 609
+innerclass innerClass java/lang/System$Logger$Level outerClass java/lang/System$Logger innerClassName Level flags 4019
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/modelmbean/ModelMBeanNotificationInfo
+header extends javax/management/MBeanNotificationInfo implements javax/management/DescriptorAccess flags 21
+innerclass innerClass java/lang/System$Logger outerClass java/lang/System innerClassName Logger flags 609
+innerclass innerClass java/lang/System$Logger$Level outerClass java/lang/System$Logger innerClassName Level flags 4019
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/modelmbean/ModelMBeanOperationInfo
+header extends javax/management/MBeanOperationInfo implements javax/management/DescriptorAccess flags 21
+innerclass innerClass java/lang/System$Logger outerClass java/lang/System innerClassName Logger flags 609
+innerclass innerClass java/lang/System$Logger$Level outerClass java/lang/System$Logger innerClassName Level flags 4019
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/relation/MBeanServerNotificationFilter
+header extends javax/management/NotificationFilterSupport flags 21
+innerclass innerClass java/lang/System$Logger outerClass java/lang/System innerClassName Logger flags 609
+innerclass innerClass java/lang/System$Logger$Level outerClass java/lang/System$Logger innerClassName Level flags 4019
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/relation/RelationService
+header extends javax/management/NotificationBroadcasterSupport implements javax/management/relation/RelationServiceMBean,javax/management/MBeanRegistration,javax/management/NotificationListener flags 21
+innerclass innerClass java/lang/System$Logger outerClass java/lang/System innerClassName Logger flags 609
+innerclass innerClass java/lang/System$Logger$Level outerClass java/lang/System$Logger innerClassName Level flags 4019
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/relation/RelationTypeSupport
+header extends java/lang/Object implements javax/management/relation/RelationType flags 21
+innerclass innerClass java/lang/System$Logger outerClass java/lang/System innerClassName Logger flags 609
+innerclass innerClass java/lang/System$Logger$Level outerClass java/lang/System$Logger innerClassName Level flags 4019
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+
+class name javax/management/timer/Timer
+header extends javax/management/NotificationBroadcasterSupport implements javax/management/timer/TimerMBean,javax/management/MBeanRegistration flags 21
+innerclass innerClass java/lang/System$Logger outerClass java/lang/System innerClassName Logger flags 609
+innerclass innerClass java/lang/System$Logger$Level outerClass java/lang/System$Logger innerClassName Level flags 4019
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/java.management.rmi-D.sym.txt	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,35 @@
+#
+# Copyright (c) 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.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+class name javax/management/remote/rmi/RMIJRMPServerImpl
+header extends javax/management/remote/rmi/RMIServerImpl flags 21
+innerclass innerClass java/io/ObjectInputFilter$Config outerClass java/io/ObjectInputFilter innerClassName Config flags 19
+innerclass innerClass java/io/ObjectInputFilter$Status outerClass java/io/ObjectInputFilter innerClassName Status flags 4019
+innerclass innerClass java/io/ObjectInputFilter$FilterInfo outerClass java/io/ObjectInputFilter innerClassName FilterInfo flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/java.net.http-D.sym.txt	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,89 @@
+#
+# Copyright (c) 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.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+class name java/net/http/HttpClient
+header extends java/lang/Object nestMembers java/net/http/HttpClient$Redirect,java/net/http/HttpClient$Version,java/net/http/HttpClient$Builder flags 421
+innerclass innerClass java/net/http/HttpClient$Builder outerClass java/net/http/HttpClient innerClassName Builder flags 609
+innerclass innerClass java/net/http/HttpClient$Redirect outerClass java/net/http/HttpClient innerClassName Redirect flags 4019
+innerclass innerClass java/net/http/HttpClient$Version outerClass java/net/http/HttpClient innerClassName Version flags 4019
+innerclass innerClass java/net/http/HttpResponse$BodyHandler outerClass java/net/http/HttpResponse innerClassName BodyHandler flags 609
+innerclass innerClass java/net/http/HttpResponse$PushPromiseHandler outerClass java/net/http/HttpResponse innerClassName PushPromiseHandler flags 609
+innerclass innerClass java/net/http/WebSocket$Builder outerClass java/net/http/WebSocket innerClassName Builder flags 609
+
+class name java/net/http/HttpRequest$BodyPublisher
+header extends java/lang/Object implements java/util/concurrent/Flow$Publisher nestHost java/net/http/HttpRequest flags 601 signature Ljava/lang/Object;Ljava/util/concurrent/Flow$Publisher<Ljava/nio/ByteBuffer;>;
+innerclass innerClass java/net/http/HttpRequest$BodyPublisher outerClass java/net/http/HttpRequest innerClassName BodyPublisher flags 609
+innerclass innerClass java/util/concurrent/Flow$Publisher outerClass java/util/concurrent/Flow innerClassName Publisher flags 609
+
+class name java/net/http/HttpRequest$BodyPublishers
+header extends java/lang/Object nestHost java/net/http/HttpRequest flags 21
+innerclass innerClass java/util/concurrent/Flow$Publisher outerClass java/util/concurrent/Flow innerClassName Publisher flags 609
+innerclass innerClass java/net/http/HttpRequest$BodyPublishers outerClass java/net/http/HttpRequest innerClassName BodyPublishers flags 9
+innerclass innerClass java/net/http/HttpRequest$BodyPublisher outerClass java/net/http/HttpRequest innerClassName BodyPublisher flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/net/http/HttpResponse$BodyHandler
+header extends java/lang/Object nestHost java/net/http/HttpResponse flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object; runtimeAnnotations @Ljava/lang/FunctionalInterface;
+innerclass innerClass java/net/http/HttpResponse$BodyHandler outerClass java/net/http/HttpResponse innerClassName BodyHandler flags 609
+innerclass innerClass java/net/http/HttpResponse$ResponseInfo outerClass java/net/http/HttpResponse innerClassName ResponseInfo flags 609
+innerclass innerClass java/net/http/HttpResponse$BodySubscriber outerClass java/net/http/HttpResponse innerClassName BodySubscriber flags 609
+
+class name java/net/http/HttpResponse$BodyHandlers
+header extends java/lang/Object nestHost java/net/http/HttpResponse flags 21
+innerclass innerClass java/util/concurrent/Flow$Subscriber outerClass java/util/concurrent/Flow innerClassName Subscriber flags 609
+innerclass innerClass java/net/http/HttpResponse$BodyHandler outerClass java/net/http/HttpResponse innerClassName BodyHandler flags 609
+innerclass innerClass java/net/http/HttpResponse$BodyHandlers outerClass java/net/http/HttpResponse innerClassName BodyHandlers flags 9
+innerclass innerClass java/net/http/HttpResponse$ResponseInfo outerClass java/net/http/HttpResponse innerClassName ResponseInfo flags 609
+innerclass innerClass java/net/http/HttpResponse$BodySubscriber outerClass java/net/http/HttpResponse innerClassName BodySubscriber flags 609
+innerclass innerClass java/net/http/HttpResponse$BodySubscribers outerClass java/net/http/HttpResponse innerClassName BodySubscribers flags 9
+innerclass innerClass java/util/concurrent/Flow$Publisher outerClass java/util/concurrent/Flow innerClassName Publisher flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/net/http/HttpResponse$BodySubscriber
+header extends java/lang/Object implements java/util/concurrent/Flow$Subscriber nestHost java/net/http/HttpResponse flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/concurrent/Flow$Subscriber<Ljava/util/List<Ljava/nio/ByteBuffer;>;>;
+innerclass innerClass java/net/http/HttpResponse$BodySubscriber outerClass java/net/http/HttpResponse innerClassName BodySubscriber flags 609
+innerclass innerClass java/util/concurrent/Flow$Subscriber outerClass java/util/concurrent/Flow innerClassName Subscriber flags 609
+
+class name java/net/http/HttpResponse$BodySubscribers
+header extends java/lang/Object nestHost java/net/http/HttpResponse flags 21
+innerclass innerClass java/util/concurrent/Flow$Subscriber outerClass java/util/concurrent/Flow innerClassName Subscriber flags 609
+innerclass innerClass java/net/http/HttpResponse$BodySubscribers outerClass java/net/http/HttpResponse innerClassName BodySubscribers flags 9
+innerclass innerClass java/net/http/HttpResponse$BodySubscriber outerClass java/net/http/HttpResponse innerClassName BodySubscriber flags 609
+innerclass innerClass java/util/concurrent/Flow$Publisher outerClass java/util/concurrent/Flow innerClassName Publisher flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/net/http/HttpResponse$PushPromiseHandler
+header extends java/lang/Object nestHost java/net/http/HttpResponse flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object;
+innerclass innerClass java/net/http/HttpResponse$PushPromiseHandler outerClass java/net/http/HttpResponse innerClassName PushPromiseHandler flags 609
+innerclass innerClass java/net/http/HttpResponse$BodyHandler outerClass java/net/http/HttpResponse innerClassName BodyHandler flags 609
+
+class name java/net/http/HttpResponse$ResponseInfo
+header extends java/lang/Object nestHost java/net/http/HttpResponse flags 601
+innerclass innerClass java/net/http/HttpResponse$ResponseInfo outerClass java/net/http/HttpResponse innerClassName ResponseInfo flags 609
+innerclass innerClass java/net/http/HttpClient$Version outerClass java/net/http/HttpClient innerClassName Version flags 4019
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/java.xml-D.sym.txt	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,47 @@
+#
+# Copyright (c) 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.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+class name javax/xml/catalog/CatalogFeatures$Builder
+header extends java/lang/Object nestHost javax/xml/catalog/CatalogFeatures flags 21
+innerclass innerClass javax/xml/catalog/CatalogFeatures$Builder outerClass javax/xml/catalog/CatalogFeatures innerClassName Builder flags 9
+innerclass innerClass javax/xml/catalog/CatalogFeatures$Feature outerClass javax/xml/catalog/CatalogFeatures innerClassName Feature flags 4019
+
+class name javax/xml/parsers/DocumentBuilderFactory
+method name newDefaultNSInstance descriptor ()Ljavax/xml/parsers/DocumentBuilderFactory; flags 9
+method name newNSInstance descriptor ()Ljavax/xml/parsers/DocumentBuilderFactory; flags 9
+method name newNSInstance descriptor (Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/parsers/DocumentBuilderFactory; flags 9
+
+class name javax/xml/parsers/SAXParserFactory
+method name newDefaultNSInstance descriptor ()Ljavax/xml/parsers/SAXParserFactory; flags 9
+method name newNSInstance descriptor ()Ljavax/xml/parsers/SAXParserFactory; flags 9
+method name newNSInstance descriptor (Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/parsers/SAXParserFactory; flags 9
+
+class name javax/xml/stream/XMLInputFactory
+method name newFactory descriptor ()Ljavax/xml/stream/XMLInputFactory; thrownTypes javax/xml/stream/FactoryConfigurationError flags 9
+-method name newFactory descriptor ()Ljavax/xml/stream/XMLInputFactory;
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/java.xml.crypto-D.sym.txt	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,35 @@
+#
+# Copyright (c) 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.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+class name javax/xml/crypto/dsig/CanonicalizationMethod
+field name INCLUSIVE_11 descriptor Ljava/lang/String; constantValue http://www.w3.org/2006/12/xml-c14n11 flags 19
+field name INCLUSIVE_11_WITH_COMMENTS descriptor Ljava/lang/String; constantValue http://www.w3.org/2006/12/xml-c14n11#WithComments flags 19
+
+class name javax/xml/crypto/dsig/keyinfo/KeyValue
+field name EC_TYPE descriptor Ljava/lang/String; constantValue http://www.w3.org/2009/xmldsig11#ECKeyValue flags 19
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.compiler-D.sym.txt	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,35 @@
+#
+# Copyright (c) 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.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+class name com/sun/source/util/JavacTask
+method name setParameterNameProvider descriptor (Lcom/sun/source/util/ParameterNameProvider;)V flags 1
+
+class name com/sun/source/util/ParameterNameProvider
+header extends java/lang/Object flags 601
+method name getParameterName descriptor (Ljavax/lang/model/element/VariableElement;)Ljava/lang/CharSequence; flags 401
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.httpserver-D.sym.txt	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,52 @@
+#
+# Copyright (c) 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.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+class name com/sun/net/httpserver/Authenticator$Failure
+header extends com/sun/net/httpserver/Authenticator$Result nestHost com/sun/net/httpserver/Authenticator flags 21
+innerclass innerClass com/sun/net/httpserver/Authenticator$Result outerClass com/sun/net/httpserver/Authenticator innerClassName Result flags 409
+innerclass innerClass com/sun/net/httpserver/Authenticator$Failure outerClass com/sun/net/httpserver/Authenticator innerClassName Failure flags 9
+
+class name com/sun/net/httpserver/Authenticator$Retry
+header extends com/sun/net/httpserver/Authenticator$Result nestHost com/sun/net/httpserver/Authenticator flags 21
+innerclass innerClass com/sun/net/httpserver/Authenticator$Result outerClass com/sun/net/httpserver/Authenticator innerClassName Result flags 409
+innerclass innerClass com/sun/net/httpserver/Authenticator$Retry outerClass com/sun/net/httpserver/Authenticator innerClassName Retry flags 9
+
+class name com/sun/net/httpserver/Authenticator$Success
+header extends com/sun/net/httpserver/Authenticator$Result nestHost com/sun/net/httpserver/Authenticator flags 21
+innerclass innerClass com/sun/net/httpserver/Authenticator$Result outerClass com/sun/net/httpserver/Authenticator innerClassName Result flags 409
+innerclass innerClass com/sun/net/httpserver/Authenticator$Success outerClass com/sun/net/httpserver/Authenticator innerClassName Success flags 9
+
+class name com/sun/net/httpserver/BasicAuthenticator
+header extends com/sun/net/httpserver/Authenticator flags 421
+innerclass innerClass com/sun/net/httpserver/Authenticator$Retry outerClass com/sun/net/httpserver/Authenticator innerClassName Retry flags 9
+innerclass innerClass com/sun/net/httpserver/Authenticator$Failure outerClass com/sun/net/httpserver/Authenticator innerClassName Failure flags 9
+innerclass innerClass java/util/Base64$Decoder outerClass java/util/Base64 innerClassName Decoder flags 9
+innerclass innerClass com/sun/net/httpserver/Authenticator$Success outerClass com/sun/net/httpserver/Authenticator innerClassName Success flags 9
+innerclass innerClass com/sun/net/httpserver/Authenticator$Result outerClass com/sun/net/httpserver/Authenticator innerClassName Result flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.javadoc-D.sym.txt	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,93 @@
+#
+# Copyright (c) 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.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.javadoc
+header exports jdk/javadoc/doclet requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;java.xml\u0020;flags\u0020;0,name\u0020;java.compiler\u0020;flags\u0020;20,name\u0020;jdk.compiler\u0020;flags\u0020;20 provides interface\u0020;java/util/spi/ToolProvider\u0020;impls\u0020;jdk/javadoc/internal/tool/JavadocToolProvider,interface\u0020;javax/tools/DocumentationTool\u0020;impls\u0020;jdk/javadoc/internal/api/JavadocTool,interface\u0020;javax/tools/Tool\u0020;impls\u0020;jdk/javadoc/internal/api/JavadocTool target linux-amd64 flags 8000
+
+-class name com/sun/javadoc/AnnotatedType
+
+-class name com/sun/javadoc/AnnotationDesc
+
+-class name com/sun/javadoc/AnnotationDesc$ElementValuePair
+
+-class name com/sun/javadoc/AnnotationTypeDoc
+
+-class name com/sun/javadoc/AnnotationTypeElementDoc
+
+-class name com/sun/javadoc/AnnotationValue
+
+-class name com/sun/javadoc/ClassDoc
+
+-class name com/sun/javadoc/ConstructorDoc
+
+-class name com/sun/javadoc/Doc
+
+-class name com/sun/javadoc/DocErrorReporter
+
+-class name com/sun/javadoc/Doclet
+
+-class name com/sun/javadoc/ExecutableMemberDoc
+
+-class name com/sun/javadoc/FieldDoc
+
+-class name com/sun/javadoc/LanguageVersion
+
+-class name com/sun/javadoc/MemberDoc
+
+-class name com/sun/javadoc/MethodDoc
+
+-class name com/sun/javadoc/PackageDoc
+
+-class name com/sun/javadoc/ParamTag
+
+-class name com/sun/javadoc/Parameter
+
+-class name com/sun/javadoc/ParameterizedType
+
+-class name com/sun/javadoc/ProgramElementDoc
+
+-class name com/sun/javadoc/RootDoc
+
+-class name com/sun/javadoc/SeeTag
+
+-class name com/sun/javadoc/SerialFieldTag
+
+-class name com/sun/javadoc/SourcePosition
+
+-class name com/sun/javadoc/Tag
+
+-class name com/sun/javadoc/ThrowsTag
+
+-class name com/sun/javadoc/Type
+
+-class name com/sun/javadoc/TypeVariable
+
+-class name com/sun/javadoc/WildcardType
+
+-class name com/sun/tools/javadoc/Main
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.jlink-D.sym.txt	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,31 @@
+#
+# Copyright (c) 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.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.jlink
+header requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;jdk.internal.opt\u0020;flags\u0020;0,name\u0020;jdk.jdeps\u0020;flags\u0020;0 uses jdk/tools/jlink/plugin/Plugin provides interface\u0020;java/util/spi/ToolProvider\u0020;impls\u0020;jdk/tools/jmod/Main$JmodToolProvider\u005C;u002C;jdk/tools/jlink/internal/Main$JlinkToolProvider,interface\u0020;jdk/tools/jlink/plugin/Plugin\u0020;impls\u0020;jdk/tools/jlink/internal/plugins/DefaultStripDebugPlugin\u005C;u002C;jdk/tools/jlink/internal/plugins/StripJavaDebugAttributesPlugin\u005C;u002C;jdk/tools/jlink/internal/plugins/ExcludePlugin\u005C;u002C;jdk/tools/jlink/internal/plugins/ExcludeFilesPlugin\u005C;u002C;jdk/tools/jlink/internal/plugins/ExcludeJmodSectionPlugin\u005C;u002C;jdk/tools/jlink/internal/plugins/LegalNoticeFilePlugin\u005C;u002C;jdk/tools/jlink/internal/plugins/SystemModulesPlugin\u005C;u002C;jdk/tools/jlink/internal/plugins/StripNativeCommandsPlugin\u005C;u002C;jdk/tools/jlink/internal/plugins/OrderResourcesPlugin\u005C;u002C;jdk/tools/jlink/internal/plugins/DefaultCompressPlugin\u005C;u002C;jdk/tools/jlink/internal/plugins/ExcludeVMPlugin\u005C;u002C;jdk/tools/jlink/internal/plugins/IncludeLocalesPlugin\u005C;u002C;jdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin\u005C;u002C;jdk/tools/jlink/internal/plugins/ReleaseInfoPlugin\u005C;u002C;jdk/tools/jlink/internal/plugins/StripNativeDebugSymbolsPlugin target linux-amd64 flags 8000
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.jshell-D.sym.txt	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,148 @@
+#
+# Copyright (c) 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.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+class name jdk/jshell/ErroneousSnippet
+header extends jdk/jshell/Snippet flags 21
+innerclass innerClass jdk/jshell/Snippet$SubKind outerClass jdk/jshell/Snippet innerClassName SubKind flags 4019
+innerclass innerClass jdk/jshell/Snippet$Kind outerClass jdk/jshell/Snippet innerClassName Kind flags 4019
+
+class name jdk/jshell/JShell
+header extends java/lang/Object implements java/lang/AutoCloseable nestMembers jdk/jshell/JShell$Subscription,jdk/jshell/JShell$Builder flags 21
+innerclass innerClass jdk/jshell/JShell$Builder outerClass jdk/jshell/JShell innerClassName Builder flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ExecutionControlException outerClass jdk/jshell/spi/ExecutionControl innerClassName ExecutionControlException flags 409
+innerclass innerClass jdk/jshell/Snippet$Status outerClass jdk/jshell/Snippet innerClassName Status flags 4019
+innerclass innerClass jdk/jshell/spi/ExecutionControl$EngineTerminationException outerClass jdk/jshell/spi/ExecutionControl innerClassName EngineTerminationException flags 9
+innerclass innerClass jdk/jshell/JShell$Subscription outerClass jdk/jshell/JShell innerClassName Subscription flags 1
+innerclass innerClass jdk/jshell/Snippet$Kind outerClass jdk/jshell/Snippet innerClassName Kind flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/jshell/Snippet
+header extends java/lang/Object nestMembers jdk/jshell/Snippet$Status,jdk/jshell/Snippet$SubKind,jdk/jshell/Snippet$Kind flags 421
+innerclass innerClass jdk/jshell/Snippet$SubKind outerClass jdk/jshell/Snippet innerClassName SubKind flags 4019
+innerclass innerClass jdk/jshell/Snippet$Status outerClass jdk/jshell/Snippet innerClassName Status flags 4019
+innerclass innerClass jdk/jshell/Snippet$Kind outerClass jdk/jshell/Snippet innerClassName Kind flags 4019
+
+class name jdk/jshell/SourceCodeAnalysis$CompletionInfo
+header extends java/lang/Object nestHost jdk/jshell/SourceCodeAnalysis flags 601
+innerclass innerClass jdk/jshell/SourceCodeAnalysis$CompletionInfo outerClass jdk/jshell/SourceCodeAnalysis innerClassName CompletionInfo flags 609
+innerclass innerClass jdk/jshell/SourceCodeAnalysis$Completeness outerClass jdk/jshell/SourceCodeAnalysis innerClassName Completeness flags 4019
+
+class name jdk/jshell/SourceCodeAnalysis$SnippetWrapper
+header extends java/lang/Object nestHost jdk/jshell/SourceCodeAnalysis flags 601
+innerclass innerClass jdk/jshell/SourceCodeAnalysis$SnippetWrapper outerClass jdk/jshell/SourceCodeAnalysis innerClassName SnippetWrapper flags 609
+innerclass innerClass jdk/jshell/Snippet$Kind outerClass jdk/jshell/Snippet innerClassName Kind flags 4019
+
+class name jdk/jshell/execution/DirectExecutionControl
+header extends java/lang/Object implements jdk/jshell/spi/ExecutionControl flags 21
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ClassBytecodes outerClass jdk/jshell/spi/ExecutionControl innerClassName ClassBytecodes flags 19
+innerclass innerClass jdk/jshell/spi/ExecutionControl$NotImplementedException outerClass jdk/jshell/spi/ExecutionControl innerClassName NotImplementedException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$InternalException outerClass jdk/jshell/spi/ExecutionControl innerClassName InternalException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$RunException outerClass jdk/jshell/spi/ExecutionControl innerClassName RunException flags 409
+innerclass innerClass jdk/jshell/spi/ExecutionControl$EngineTerminationException outerClass jdk/jshell/spi/ExecutionControl innerClassName EngineTerminationException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ResolutionException outerClass jdk/jshell/spi/ExecutionControl innerClassName ResolutionException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$UserException outerClass jdk/jshell/spi/ExecutionControl innerClassName UserException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ClassInstallException outerClass jdk/jshell/spi/ExecutionControl innerClassName ClassInstallException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ExecutionControlException outerClass jdk/jshell/spi/ExecutionControl innerClassName ExecutionControlException flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/jshell/execution/JdiExecutionControl
+header extends jdk/jshell/execution/StreamingExecutionControl implements jdk/jshell/spi/ExecutionControl flags 421
+innerclass innerClass jdk/jshell/spi/ExecutionControl$EngineTerminationException outerClass jdk/jshell/spi/ExecutionControl innerClassName EngineTerminationException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ClassInstallException outerClass jdk/jshell/spi/ExecutionControl innerClassName ClassInstallException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ClassBytecodes outerClass jdk/jshell/spi/ExecutionControl innerClassName ClassBytecodes flags 19
+innerclass innerClass jdk/jshell/spi/ExecutionControl$NotImplementedException outerClass jdk/jshell/spi/ExecutionControl innerClassName NotImplementedException flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/jshell/execution/JdiInitiator
+header extends java/lang/Object flags 21
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+innerclass innerClass com/sun/jdi/connect/Connector$Argument outerClass com/sun/jdi/connect/Connector innerClassName Argument flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/jshell/execution/LocalExecutionControl
+header extends jdk/jshell/execution/DirectExecutionControl flags 21
+innerclass innerClass java/lang/Thread$UncaughtExceptionHandler outerClass java/lang/Thread innerClassName UncaughtExceptionHandler flags 609
+innerclass innerClass jdk/jshell/spi/ExecutionControl$StoppedException outerClass jdk/jshell/spi/ExecutionControl innerClassName StoppedException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$InternalException outerClass jdk/jshell/spi/ExecutionControl innerClassName InternalException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$EngineTerminationException outerClass jdk/jshell/spi/ExecutionControl innerClassName EngineTerminationException flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/jshell/execution/StreamingExecutionControl
+header extends java/lang/Object implements jdk/jshell/spi/ExecutionControl flags 21
+innerclass innerClass jdk/jshell/spi/ExecutionControl$EngineTerminationException outerClass jdk/jshell/spi/ExecutionControl innerClassName EngineTerminationException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$NotImplementedException outerClass jdk/jshell/spi/ExecutionControl innerClassName NotImplementedException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$InternalException outerClass jdk/jshell/spi/ExecutionControl innerClassName InternalException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ClassInstallException outerClass jdk/jshell/spi/ExecutionControl innerClassName ClassInstallException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$UserException outerClass jdk/jshell/spi/ExecutionControl innerClassName UserException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ResolutionException outerClass jdk/jshell/spi/ExecutionControl innerClassName ResolutionException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$RunException outerClass jdk/jshell/spi/ExecutionControl innerClassName RunException flags 409
+innerclass innerClass jdk/jshell/spi/ExecutionControl$StoppedException outerClass jdk/jshell/spi/ExecutionControl innerClassName StoppedException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ClassBytecodes outerClass jdk/jshell/spi/ExecutionControl innerClassName ClassBytecodes flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/jshell/spi/ExecutionControl$ClassInstallException
+header extends jdk/jshell/spi/ExecutionControl$ExecutionControlException nestHost jdk/jshell/spi/ExecutionControl flags 21
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ExecutionControlException outerClass jdk/jshell/spi/ExecutionControl innerClassName ExecutionControlException flags 409
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ClassInstallException outerClass jdk/jshell/spi/ExecutionControl innerClassName ClassInstallException flags 9
+
+class name jdk/jshell/spi/ExecutionControl$EngineTerminationException
+header extends jdk/jshell/spi/ExecutionControl$ExecutionControlException nestHost jdk/jshell/spi/ExecutionControl flags 21
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ExecutionControlException outerClass jdk/jshell/spi/ExecutionControl innerClassName ExecutionControlException flags 409
+innerclass innerClass jdk/jshell/spi/ExecutionControl$EngineTerminationException outerClass jdk/jshell/spi/ExecutionControl innerClassName EngineTerminationException flags 9
+
+class name jdk/jshell/spi/ExecutionControl$InternalException
+header extends jdk/jshell/spi/ExecutionControl$ExecutionControlException nestHost jdk/jshell/spi/ExecutionControl flags 21
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ExecutionControlException outerClass jdk/jshell/spi/ExecutionControl innerClassName ExecutionControlException flags 409
+innerclass innerClass jdk/jshell/spi/ExecutionControl$InternalException outerClass jdk/jshell/spi/ExecutionControl innerClassName InternalException flags 9
+
+class name jdk/jshell/spi/ExecutionControl$NotImplementedException
+header extends jdk/jshell/spi/ExecutionControl$InternalException nestHost jdk/jshell/spi/ExecutionControl flags 21
+innerclass innerClass jdk/jshell/spi/ExecutionControl$InternalException outerClass jdk/jshell/spi/ExecutionControl innerClassName InternalException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$NotImplementedException outerClass jdk/jshell/spi/ExecutionControl innerClassName NotImplementedException flags 9
+
+class name jdk/jshell/spi/ExecutionControl$ResolutionException
+header extends jdk/jshell/spi/ExecutionControl$RunException nestHost jdk/jshell/spi/ExecutionControl flags 21
+innerclass innerClass jdk/jshell/spi/ExecutionControl$RunException outerClass jdk/jshell/spi/ExecutionControl innerClassName RunException flags 409
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ResolutionException outerClass jdk/jshell/spi/ExecutionControl innerClassName ResolutionException flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/jshell/spi/ExecutionControl$RunException
+header extends jdk/jshell/spi/ExecutionControl$ExecutionControlException nestHost jdk/jshell/spi/ExecutionControl flags 421
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ExecutionControlException outerClass jdk/jshell/spi/ExecutionControl innerClassName ExecutionControlException flags 409
+innerclass innerClass jdk/jshell/spi/ExecutionControl$RunException outerClass jdk/jshell/spi/ExecutionControl innerClassName RunException flags 409
+
+class name jdk/jshell/spi/ExecutionControl$StoppedException
+header extends jdk/jshell/spi/ExecutionControl$RunException nestHost jdk/jshell/spi/ExecutionControl flags 21
+innerclass innerClass jdk/jshell/spi/ExecutionControl$RunException outerClass jdk/jshell/spi/ExecutionControl innerClassName RunException flags 409
+innerclass innerClass jdk/jshell/spi/ExecutionControl$StoppedException outerClass jdk/jshell/spi/ExecutionControl innerClassName StoppedException flags 9
+
+class name jdk/jshell/spi/ExecutionControl$UserException
+header extends jdk/jshell/spi/ExecutionControl$RunException nestHost jdk/jshell/spi/ExecutionControl flags 21
+innerclass innerClass jdk/jshell/spi/ExecutionControl$RunException outerClass jdk/jshell/spi/ExecutionControl innerClassName RunException flags 409
+innerclass innerClass jdk/jshell/spi/ExecutionControl$UserException outerClass jdk/jshell/spi/ExecutionControl innerClassName UserException flags 9
+
--- a/make/data/symbols/symbols	Tue Jun 18 21:40:50 2019 -0700
+++ b/make/data/symbols/symbols	Fri Jun 21 09:05:45 2019 -0700
@@ -29,10 +29,11 @@
 #command used to generate this file:
 #build.tools.symbolgenerator.CreateSymbols build-description-incremental symbols include.list
 #
-generate platforms 7:8:9:A:B:C
+generate platforms 7:8:9:A:B:C:D
 platform version 8 files java.activation-8.sym.txt:java.base-8.sym.txt:java.compiler-8.sym.txt:java.corba-8.sym.txt:java.datatransfer-8.sym.txt:java.desktop-8.sym.txt:java.instrument-8.sym.txt:java.logging-8.sym.txt:java.management-8.sym.txt:java.management.rmi-8.sym.txt:java.naming-8.sym.txt:java.prefs-8.sym.txt:java.rmi-8.sym.txt:java.scripting-8.sym.txt:java.security.jgss-8.sym.txt:java.security.sasl-8.sym.txt:java.sql-8.sym.txt:java.sql.rowset-8.sym.txt:java.transaction-8.sym.txt:java.xml-8.sym.txt:java.xml.bind-8.sym.txt:java.xml.crypto-8.sym.txt:java.xml.ws-8.sym.txt:java.xml.ws.annotation-8.sym.txt:jdk.httpserver-8.sym.txt:jdk.management-8.sym.txt:jdk.scripting.nashorn-8.sym.txt:jdk.sctp-8.sym.txt:jdk.security.auth-8.sym.txt:jdk.security.jgss-8.sym.txt
 platform version 7 base 8 files java.base-7.sym.txt:java.compiler-7.sym.txt:java.datatransfer-7.sym.txt:java.desktop-7.sym.txt:java.logging-7.sym.txt:java.management-7.sym.txt:java.naming-7.sym.txt:java.prefs-7.sym.txt:java.rmi-7.sym.txt:java.scripting-7.sym.txt:java.security.jgss-7.sym.txt:java.security.sasl-7.sym.txt:java.sql-7.sym.txt:java.sql.rowset-7.sym.txt:java.xml-7.sym.txt:java.xml.bind-7.sym.txt:java.xml.ws.annotation-7.sym.txt:jdk.httpserver-7.sym.txt:jdk.management-7.sym.txt:jdk.scripting.nashorn-7.sym.txt:jdk.sctp-7.sym.txt:jdk.security.auth-7.sym.txt:jdk.security.jgss-7.sym.txt
 platform version 9 base 8 files java.activation-9.sym.txt:java.base-9.sym.txt:java.compiler-9.sym.txt:java.corba-9.sym.txt:java.datatransfer-9.sym.txt:java.desktop-9.sym.txt:java.instrument-9.sym.txt:java.logging-9.sym.txt:java.management-9.sym.txt:java.management.rmi-9.sym.txt:java.naming-9.sym.txt:java.prefs-9.sym.txt:java.rmi-9.sym.txt:java.scripting-9.sym.txt:java.se-9.sym.txt:java.se.ee-9.sym.txt:java.security.jgss-9.sym.txt:java.security.sasl-9.sym.txt:java.smartcardio-9.sym.txt:java.sql-9.sym.txt:java.sql.rowset-9.sym.txt:java.transaction-9.sym.txt:java.xml-9.sym.txt:java.xml.bind-9.sym.txt:java.xml.crypto-9.sym.txt:java.xml.ws-9.sym.txt:java.xml.ws.annotation-9.sym.txt:jdk.accessibility-9.sym.txt:jdk.attach-9.sym.txt:jdk.charsets-9.sym.txt:jdk.compiler-9.sym.txt:jdk.crypto.cryptoki-9.sym.txt:jdk.crypto.ec-9.sym.txt:jdk.dynalink-9.sym.txt:jdk.editpad-9.sym.txt:jdk.hotspot.agent-9.sym.txt:jdk.httpserver-9.sym.txt:jdk.incubator.httpclient-9.sym.txt:jdk.jartool-9.sym.txt:jdk.javadoc-9.sym.txt:jdk.jcmd-9.sym.txt:jdk.jconsole-9.sym.txt:jdk.jdeps-9.sym.txt:jdk.jdi-9.sym.txt:jdk.jdwp.agent-9.sym.txt:jdk.jlink-9.sym.txt:jdk.jshell-9.sym.txt:jdk.jsobject-9.sym.txt:jdk.jstatd-9.sym.txt:jdk.localedata-9.sym.txt:jdk.management-9.sym.txt:jdk.management.agent-9.sym.txt:jdk.naming.dns-9.sym.txt:jdk.naming.rmi-9.sym.txt:jdk.net-9.sym.txt:jdk.pack-9.sym.txt:jdk.policytool-9.sym.txt:jdk.rmic-9.sym.txt:jdk.scripting.nashorn-9.sym.txt:jdk.sctp-9.sym.txt:jdk.security.auth-9.sym.txt:jdk.security.jgss-9.sym.txt:jdk.unsupported-9.sym.txt:jdk.xml.dom-9.sym.txt:jdk.zipfs-9.sym.txt
 platform version A base 9 files java.activation-A.sym.txt:java.base-A.sym.txt:java.compiler-A.sym.txt:java.corba-A.sym.txt:java.datatransfer-A.sym.txt:java.desktop-A.sym.txt:java.instrument-A.sym.txt:java.logging-A.sym.txt:java.management-A.sym.txt:java.management.rmi-A.sym.txt:java.naming-A.sym.txt:java.prefs-A.sym.txt:java.rmi-A.sym.txt:java.scripting-A.sym.txt:java.se-A.sym.txt:java.se.ee-A.sym.txt:java.security.jgss-A.sym.txt:java.security.sasl-A.sym.txt:java.smartcardio-A.sym.txt:java.sql-A.sym.txt:java.sql.rowset-A.sym.txt:java.transaction-A.sym.txt:java.xml-A.sym.txt:java.xml.bind-A.sym.txt:java.xml.crypto-A.sym.txt:java.xml.ws-A.sym.txt:java.xml.ws.annotation-A.sym.txt:jdk.accessibility-A.sym.txt:jdk.attach-A.sym.txt:jdk.charsets-A.sym.txt:jdk.compiler-A.sym.txt:jdk.crypto.cryptoki-A.sym.txt:jdk.crypto.ec-A.sym.txt:jdk.dynalink-A.sym.txt:jdk.editpad-A.sym.txt:jdk.hotspot.agent-A.sym.txt:jdk.httpserver-A.sym.txt:jdk.incubator.httpclient-A.sym.txt:jdk.jartool-A.sym.txt:jdk.javadoc-A.sym.txt:jdk.jcmd-A.sym.txt:jdk.jconsole-A.sym.txt:jdk.jdeps-A.sym.txt:jdk.jdi-A.sym.txt:jdk.jdwp.agent-A.sym.txt:jdk.jlink-A.sym.txt:jdk.jshell-A.sym.txt:jdk.jsobject-A.sym.txt:jdk.jstatd-A.sym.txt:jdk.localedata-A.sym.txt:jdk.management-A.sym.txt:jdk.management.agent-A.sym.txt:jdk.naming.dns-A.sym.txt:jdk.naming.rmi-A.sym.txt:jdk.net-A.sym.txt:jdk.pack-A.sym.txt:jdk.policytool-A.sym.txt:jdk.rmic-A.sym.txt:jdk.scripting.nashorn-A.sym.txt:jdk.sctp-A.sym.txt:jdk.security.auth-A.sym.txt:jdk.security.jgss-A.sym.txt:jdk.unsupported-A.sym.txt:jdk.xml.dom-A.sym.txt:jdk.zipfs-A.sym.txt
 platform version B base A files java.activation-B.sym.txt:java.base-B.sym.txt:java.compiler-B.sym.txt:java.corba-B.sym.txt:java.datatransfer-B.sym.txt:java.desktop-B.sym.txt:java.instrument-B.sym.txt:java.logging-B.sym.txt:java.management-B.sym.txt:java.management.rmi-B.sym.txt:java.naming-B.sym.txt:java.net.http-B.sym.txt:java.prefs-B.sym.txt:java.rmi-B.sym.txt:java.scripting-B.sym.txt:java.se-B.sym.txt:java.se.ee-B.sym.txt:java.security.jgss-B.sym.txt:java.security.sasl-B.sym.txt:java.smartcardio-B.sym.txt:java.sql-B.sym.txt:java.sql.rowset-B.sym.txt:java.transaction-B.sym.txt:java.transaction.xa-B.sym.txt:java.xml-B.sym.txt:java.xml.bind-B.sym.txt:java.xml.crypto-B.sym.txt:java.xml.ws-B.sym.txt:java.xml.ws.annotation-B.sym.txt:jdk.accessibility-B.sym.txt:jdk.attach-B.sym.txt:jdk.charsets-B.sym.txt:jdk.compiler-B.sym.txt:jdk.crypto.cryptoki-B.sym.txt:jdk.crypto.ec-B.sym.txt:jdk.dynalink-B.sym.txt:jdk.editpad-B.sym.txt:jdk.hotspot.agent-B.sym.txt:jdk.httpserver-B.sym.txt:jdk.incubator.httpclient-B.sym.txt:jdk.jartool-B.sym.txt:jdk.javadoc-B.sym.txt:jdk.jcmd-B.sym.txt:jdk.jconsole-B.sym.txt:jdk.jdeps-B.sym.txt:jdk.jdi-B.sym.txt:jdk.jdwp.agent-B.sym.txt:jdk.jfr-B.sym.txt:jdk.jlink-B.sym.txt:jdk.jshell-B.sym.txt:jdk.jsobject-B.sym.txt:jdk.jstatd-B.sym.txt:jdk.localedata-B.sym.txt:jdk.management-B.sym.txt:jdk.management.agent-B.sym.txt:jdk.management.jfr-B.sym.txt:jdk.naming.dns-B.sym.txt:jdk.naming.rmi-B.sym.txt:jdk.net-B.sym.txt:jdk.pack-B.sym.txt:jdk.rmic-B.sym.txt:jdk.scripting.nashorn-B.sym.txt:jdk.sctp-B.sym.txt:jdk.security.auth-B.sym.txt:jdk.security.jgss-B.sym.txt:jdk.unsupported-B.sym.txt:jdk.xml.dom-B.sym.txt:jdk.zipfs-B.sym.txt
 platform version C base B files java.base-C.sym.txt:java.compiler-C.sym.txt:java.desktop-C.sym.txt:java.naming-C.sym.txt:java.rmi-C.sym.txt:java.xml-C.sym.txt:jdk.compiler-C.sym.txt:jdk.jfr-C.sym.txt:jdk.jsobject-C.sym.txt:jdk.unsupported-C.sym.txt
+platform version D base C files java.base-D.sym.txt:java.compiler-D.sym.txt:java.desktop-D.sym.txt:java.management-D.sym.txt:java.management.rmi-D.sym.txt:java.net.http-D.sym.txt:java.xml-D.sym.txt:java.xml.crypto-D.sym.txt:jdk.compiler-D.sym.txt:jdk.httpserver-D.sym.txt:jdk.javadoc-D.sym.txt:jdk.jlink-D.sym.txt:jdk.jshell-D.sym.txt
--- a/make/jdk/src/classes/build/tools/generatecacerts/GenerateCacerts.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/make/jdk/src/classes/build/tools/generatecacerts/GenerateCacerts.java	Fri Jun 21 09:05:45 2019 -0700
@@ -25,12 +25,23 @@
 
 package build.tools.generatecacerts;
 
+import java.io.DataOutputStream;
 import java.io.FileOutputStream;
+import java.io.IOException;
 import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.UnsupportedEncodingException;
 import java.nio.file.Files;
 import java.nio.file.Path;
-import java.security.KeyStore;
+import java.security.DigestOutputStream;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.security.cert.CertificateException;
 import java.security.cert.CertificateFactory;
+import java.security.cert.X509Certificate;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * Generate cacerts
@@ -39,23 +50,99 @@
  */
 public class GenerateCacerts {
     public static void main(String[] args) throws Exception {
-        KeyStore ks = KeyStore.getInstance("JKS");
-        ks.load(null, null);
-        CertificateFactory cf = CertificateFactory.getInstance("X509");
-        Files.list(Path.of(args[0]))
-                .filter(p -> !p.getFileName().toString().equals("README"))
-                .forEach(p -> {
-                    try {
-                        String alias = p.getFileName().toString() + " [jdk]";
-                        try (InputStream fis = Files.newInputStream(p)) {
-                            ks.setCertificateEntry(alias, cf.generateCertificate(fis));
-                        }
-                    } catch (Exception e) {
-                        throw new RuntimeException(e);
-                    }
-                });
         try (FileOutputStream fos = new FileOutputStream(args[1])) {
-            ks.store(fos, "changeit".toCharArray());
+            store(args[0], fos, "changeit".toCharArray());
         }
     }
+
+    // The following code are copied from JavaKeyStore.java.
+
+    private static final int MAGIC = 0xfeedfeed;
+    private static final int VERSION_2 = 0x02;
+
+    // This method is a simplified version of JavaKeyStore::engineStore.
+    // A new "dir" argument is added. All cert names in "dir" is collected into
+    // a sorted array. Each cert is stored with a creation date set to its
+    // notBefore value. Thus the output is determined as long as the certs
+    // are the same.
+    public static void store(String dir, OutputStream stream, char[] password)
+            throws IOException, NoSuchAlgorithmException, CertificateException
+    {
+        byte[] encoded; // the certificate encoding
+        CertificateFactory cf = CertificateFactory.getInstance("X509");
+
+        MessageDigest md = getPreKeyedHash(password);
+        DataOutputStream dos
+                = new DataOutputStream(new DigestOutputStream(stream, md));
+
+        dos.writeInt(MAGIC);
+        // always write the latest version
+        dos.writeInt(VERSION_2);
+
+        // All file names in dir sorted.
+        // README is excluded. Name starting with "." excluded.
+        List<String> entries = Files.list(Path.of(dir))
+                .map(p -> p.getFileName().toString())
+                .filter(s -> !s.equals("README") && !s.startsWith("."))
+                .collect(Collectors.toList());
+
+        entries.sort(String::compareTo);
+
+        dos.writeInt(entries.size());
+
+        for (String entry : entries) {
+
+            String alias = entry + " [jdk]";
+            X509Certificate cert;
+            try (InputStream fis = Files.newInputStream(Path.of(dir, entry))) {
+                cert = (X509Certificate) cf.generateCertificate(fis);
+            }
+
+            dos.writeInt(2);
+
+            // Write the alias
+            dos.writeUTF(alias);
+
+            // Write the (entry creation) date, which is notBefore of the cert
+            dos.writeLong(cert.getNotBefore().getTime());
+
+            // Write the trusted certificate
+            encoded = cert.getEncoded();
+            dos.writeUTF(cert.getType());
+            dos.writeInt(encoded.length);
+            dos.write(encoded);
+        }
+
+        /*
+         * Write the keyed hash which is used to detect tampering with
+         * the keystore (such as deleting or modifying key or
+         * certificate entries).
+         */
+        byte[] digest = md.digest();
+
+        dos.write(digest);
+        dos.flush();
+    }
+
+    private static MessageDigest getPreKeyedHash(char[] password)
+            throws NoSuchAlgorithmException, UnsupportedEncodingException
+    {
+
+        MessageDigest md = MessageDigest.getInstance("SHA");
+        byte[] passwdBytes = convertToBytes(password);
+        md.update(passwdBytes);
+        Arrays.fill(passwdBytes, (byte) 0x00);
+        md.update("Mighty Aphrodite".getBytes("UTF8"));
+        return md;
+    }
+
+    private static byte[] convertToBytes(char[] password) {
+        int i, j;
+        byte[] passwdBytes = new byte[password.length * 2];
+        for (i=0, j=0; i<password.length; i++) {
+            passwdBytes[j++] = (byte)(password[i] >> 8);
+            passwdBytes[j++] = (byte)password[i];
+        }
+        return passwdBytes;
+    }
 }
--- a/src/hotspot/cpu/aarch64/aarch64.ad	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/cpu/aarch64/aarch64.ad	Fri Jun 21 09:05:45 2019 -0700
@@ -957,6 +957,146 @@
     V3, V3_H
 );
 
+// Class for 128 bit register v4
+reg_class v4_reg(
+    V4, V4_H
+);
+
+// Class for 128 bit register v5
+reg_class v5_reg(
+    V5, V5_H
+);
+
+// Class for 128 bit register v6
+reg_class v6_reg(
+    V6, V6_H
+);
+
+// Class for 128 bit register v7
+reg_class v7_reg(
+    V7, V7_H
+);
+
+// Class for 128 bit register v8
+reg_class v8_reg(
+    V8, V8_H
+);
+
+// Class for 128 bit register v9
+reg_class v9_reg(
+    V9, V9_H
+);
+
+// Class for 128 bit register v10
+reg_class v10_reg(
+    V10, V10_H
+);
+
+// Class for 128 bit register v11
+reg_class v11_reg(
+    V11, V11_H
+);
+
+// Class for 128 bit register v12
+reg_class v12_reg(
+    V12, V12_H
+);
+
+// Class for 128 bit register v13
+reg_class v13_reg(
+    V13, V13_H
+);
+
+// Class for 128 bit register v14
+reg_class v14_reg(
+    V14, V14_H
+);
+
+// Class for 128 bit register v15
+reg_class v15_reg(
+    V15, V15_H
+);
+
+// Class for 128 bit register v16
+reg_class v16_reg(
+    V16, V16_H
+);
+
+// Class for 128 bit register v17
+reg_class v17_reg(
+    V17, V17_H
+);
+
+// Class for 128 bit register v18
+reg_class v18_reg(
+    V18, V18_H
+);
+
+// Class for 128 bit register v19
+reg_class v19_reg(
+    V19, V19_H
+);
+
+// Class for 128 bit register v20
+reg_class v20_reg(
+    V20, V20_H
+);
+
+// Class for 128 bit register v21
+reg_class v21_reg(
+    V21, V21_H
+);
+
+// Class for 128 bit register v22
+reg_class v22_reg(
+    V22, V22_H
+);
+
+// Class for 128 bit register v23
+reg_class v23_reg(
+    V23, V23_H
+);
+
+// Class for 128 bit register v24
+reg_class v24_reg(
+    V24, V24_H
+);
+
+// Class for 128 bit register v25
+reg_class v25_reg(
+    V25, V25_H
+);
+
+// Class for 128 bit register v26
+reg_class v26_reg(
+    V26, V26_H
+);
+
+// Class for 128 bit register v27
+reg_class v27_reg(
+    V27, V27_H
+);
+
+// Class for 128 bit register v28
+reg_class v28_reg(
+    V28, V28_H
+);
+
+// Class for 128 bit register v29
+reg_class v29_reg(
+    V29, V29_H
+);
+
+// Class for 128 bit register v30
+reg_class v30_reg(
+    V30, V30_H
+);
+
+// Class for 128 bit register v31
+reg_class v31_reg(
+    V31, V31_H
+);
+
 // Singleton class for condition codes
 reg_class int_flags(RFLAGS);
 
@@ -4774,6 +4914,258 @@
   interface(REG_INTER);
 %}
 
+operand vRegD_V4()
+%{
+  constraint(ALLOC_IN_RC(v4_reg));
+  match(RegD);
+  op_cost(0);
+  format %{ %}
+  interface(REG_INTER);
+%}
+
+operand vRegD_V5()
+%{
+  constraint(ALLOC_IN_RC(v5_reg));
+  match(RegD);
+  op_cost(0);
+  format %{ %}
+  interface(REG_INTER);
+%}
+
+operand vRegD_V6()
+%{
+  constraint(ALLOC_IN_RC(v6_reg));
+  match(RegD);
+  op_cost(0);
+  format %{ %}
+  interface(REG_INTER);
+%}
+
+operand vRegD_V7()
+%{
+  constraint(ALLOC_IN_RC(v7_reg));
+  match(RegD);
+  op_cost(0);
+  format %{ %}
+  interface(REG_INTER);
+%}
+
+operand vRegD_V8()
+%{
+  constraint(ALLOC_IN_RC(v8_reg));
+  match(RegD);
+  op_cost(0);
+  format %{ %}
+  interface(REG_INTER);
+%}
+
+operand vRegD_V9()
+%{
+  constraint(ALLOC_IN_RC(v9_reg));
+  match(RegD);
+  op_cost(0);
+  format %{ %}
+  interface(REG_INTER);
+%}
+
+operand vRegD_V10()
+%{
+  constraint(ALLOC_IN_RC(v10_reg));
+  match(RegD);
+  op_cost(0);
+  format %{ %}
+  interface(REG_INTER);
+%}
+
+operand vRegD_V11()
+%{
+  constraint(ALLOC_IN_RC(v11_reg));
+  match(RegD);
+  op_cost(0);
+  format %{ %}
+  interface(REG_INTER);
+%}
+
+operand vRegD_V12()
+%{
+  constraint(ALLOC_IN_RC(v12_reg));
+  match(RegD);
+  op_cost(0);
+  format %{ %}
+  interface(REG_INTER);
+%}
+
+operand vRegD_V13()
+%{
+  constraint(ALLOC_IN_RC(v13_reg));
+  match(RegD);
+  op_cost(0);
+  format %{ %}
+  interface(REG_INTER);
+%}
+
+operand vRegD_V14()
+%{
+  constraint(ALLOC_IN_RC(v14_reg));
+  match(RegD);
+  op_cost(0);
+  format %{ %}
+  interface(REG_INTER);
+%}
+
+operand vRegD_V15()
+%{
+  constraint(ALLOC_IN_RC(v15_reg));
+  match(RegD);
+  op_cost(0);
+  format %{ %}
+  interface(REG_INTER);
+%}
+
+operand vRegD_V16()
+%{
+  constraint(ALLOC_IN_RC(v16_reg));
+  match(RegD);
+  op_cost(0);
+  format %{ %}
+  interface(REG_INTER);
+%}
+
+operand vRegD_V17()
+%{
+  constraint(ALLOC_IN_RC(v17_reg));
+  match(RegD);
+  op_cost(0);
+  format %{ %}
+  interface(REG_INTER);
+%}
+
+operand vRegD_V18()
+%{
+  constraint(ALLOC_IN_RC(v18_reg));
+  match(RegD);
+  op_cost(0);
+  format %{ %}
+  interface(REG_INTER);
+%}
+
+operand vRegD_V19()
+%{
+  constraint(ALLOC_IN_RC(v19_reg));
+  match(RegD);
+  op_cost(0);
+  format %{ %}
+  interface(REG_INTER);
+%}
+
+operand vRegD_V20()
+%{
+  constraint(ALLOC_IN_RC(v20_reg));
+  match(RegD);
+  op_cost(0);
+  format %{ %}
+  interface(REG_INTER);
+%}
+
+operand vRegD_V21()
+%{
+  constraint(ALLOC_IN_RC(v21_reg));
+  match(RegD);
+  op_cost(0);
+  format %{ %}
+  interface(REG_INTER);
+%}
+
+operand vRegD_V22()
+%{
+  constraint(ALLOC_IN_RC(v22_reg));
+  match(RegD);
+  op_cost(0);
+  format %{ %}
+  interface(REG_INTER);
+%}
+
+operand vRegD_V23()
+%{
+  constraint(ALLOC_IN_RC(v23_reg));
+  match(RegD);
+  op_cost(0);
+  format %{ %}
+  interface(REG_INTER);
+%}
+
+operand vRegD_V24()
+%{
+  constraint(ALLOC_IN_RC(v24_reg));
+  match(RegD);
+  op_cost(0);
+  format %{ %}
+  interface(REG_INTER);
+%}
+
+operand vRegD_V25()
+%{
+  constraint(ALLOC_IN_RC(v25_reg));
+  match(RegD);
+  op_cost(0);
+  format %{ %}
+  interface(REG_INTER);
+%}
+
+operand vRegD_V26()
+%{
+  constraint(ALLOC_IN_RC(v26_reg));
+  match(RegD);
+  op_cost(0);
+  format %{ %}
+  interface(REG_INTER);
+%}
+
+operand vRegD_V27()
+%{
+  constraint(ALLOC_IN_RC(v27_reg));
+  match(RegD);
+  op_cost(0);
+  format %{ %}
+  interface(REG_INTER);
+%}
+
+operand vRegD_V28()
+%{
+  constraint(ALLOC_IN_RC(v28_reg));
+  match(RegD);
+  op_cost(0);
+  format %{ %}
+  interface(REG_INTER);
+%}
+
+operand vRegD_V29()
+%{
+  constraint(ALLOC_IN_RC(v29_reg));
+  match(RegD);
+  op_cost(0);
+  format %{ %}
+  interface(REG_INTER);
+%}
+
+operand vRegD_V30()
+%{
+  constraint(ALLOC_IN_RC(v30_reg));
+  match(RegD);
+  op_cost(0);
+  format %{ %}
+  interface(REG_INTER);
+%}
+
+operand vRegD_V31()
+%{
+  constraint(ALLOC_IN_RC(v31_reg));
+  match(RegD);
+  op_cost(0);
+  format %{ %}
+  interface(REG_INTER);
+%}
+
 // Flags register, used as output of signed compare instructions
 
 // note that on AArch64 we also use this register as the output for
@@ -13863,7 +14255,7 @@
   format %{ "fcmps $src1, 0.0" %}
 
   ins_encode %{
-    __ fcmps(as_FloatRegister($src1$$reg), 0.0D);
+    __ fcmps(as_FloatRegister($src1$$reg), 0.0);
   %}
 
   ins_pipe(pipe_class_compare);
@@ -13892,7 +14284,7 @@
   format %{ "fcmpd $src1, 0.0" %}
 
   ins_encode %{
-    __ fcmpd(as_FloatRegister($src1$$reg), 0.0D);
+    __ fcmpd(as_FloatRegister($src1$$reg), 0.0);
   %}
 
   ins_pipe(pipe_class_compare);
@@ -13968,7 +14360,7 @@
     Label done;
     FloatRegister s1 = as_FloatRegister($src1$$reg);
     Register d = as_Register($dst$$reg);
-    __ fcmps(s1, 0.0D);
+    __ fcmps(s1, 0.0);
     // installs 0 if EQ else -1
     __ csinvw(d, zr, zr, Assembler::EQ);
     // keeps -1 if less or unordered else installs 1
@@ -13995,7 +14387,7 @@
     Label done;
     FloatRegister s1 = as_FloatRegister($src1$$reg);
     Register d = as_Register($dst$$reg);
-    __ fcmpd(s1, 0.0D);
+    __ fcmpd(s1, 0.0);
     // installs 0 if EQ else -1
     __ csinvw(d, zr, zr, Assembler::EQ);
     // keeps -1 if less or unordered else installs 1
--- a/src/hotspot/cpu/aarch64/assembler_aarch64.hpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/cpu/aarch64/assembler_aarch64.hpp	Fri Jun 21 09:05:45 2019 -0700
@@ -276,7 +276,7 @@
   unsigned get(int msb = 31, int lsb = 0) {
     int nbits = msb - lsb + 1;
     unsigned mask = ((1U << nbits) - 1) << lsb;
-    assert_cond(bits & mask == mask);
+    assert_cond((bits & mask) == mask);
     return (insn & mask) >> lsb;
   }
 
@@ -2644,7 +2644,7 @@
   // RBIT only allows T8B and T16B but encodes them oddly.  Argh...
   void rbit(FloatRegister Vd, SIMD_Arrangement T, FloatRegister Vn) {
     assert((ASSERTION), MSG);
-    _rbit(Vd, SIMD_Arrangement(T & 1 | 0b010), Vn);
+    _rbit(Vd, SIMD_Arrangement((T & 1) | 0b010), Vn);
   }
 #undef ASSERTION
 
--- a/src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -1015,7 +1015,11 @@
     if (UseCompressedOops && !wide) {
       __ decode_heap_oop(dest->as_register());
     }
-    __ verify_oop(dest->as_register());
+
+    if (!UseZGC) {
+      // Load barrier has not yet been applied, so ZGC can't verify the oop here
+      __ verify_oop(dest->as_register());
+    }
   } else if (type == T_ADDRESS && addr->disp() == oopDesc::klass_offset_in_bytes()) {
     if (UseCompressedClassPointers) {
       __ decode_klass_not_null(dest->as_register());
@@ -1074,8 +1078,8 @@
       // Assembler::EQ does not permit unordered branches, so we add
       // another branch here.  Likewise, Assembler::NE does not permit
       // ordered branches.
-      if (is_unordered && op->cond() == lir_cond_equal
-          || !is_unordered && op->cond() == lir_cond_notEqual)
+      if ((is_unordered && op->cond() == lir_cond_equal)
+          || (!is_unordered && op->cond() == lir_cond_notEqual))
         __ br(Assembler::VS, *(op->ublock()->label()));
       switch(op->cond()) {
       case lir_cond_equal:        acond = Assembler::EQ; break;
@@ -1785,18 +1789,22 @@
     switch (code) {
     case lir_add: __ fadds (dest->as_float_reg(), left->as_float_reg(), right->as_float_reg()); break;
     case lir_sub: __ fsubs (dest->as_float_reg(), left->as_float_reg(), right->as_float_reg()); break;
+    case lir_mul_strictfp: // fall through
     case lir_mul: __ fmuls (dest->as_float_reg(), left->as_float_reg(), right->as_float_reg()); break;
+    case lir_div_strictfp: // fall through
     case lir_div: __ fdivs (dest->as_float_reg(), left->as_float_reg(), right->as_float_reg()); break;
     default:
       ShouldNotReachHere();
     }
   } else if (left->is_double_fpu()) {
     if (right->is_double_fpu()) {
-      // cpu register - cpu register
+      // fpu register - fpu register
       switch (code) {
       case lir_add: __ faddd (dest->as_double_reg(), left->as_double_reg(), right->as_double_reg()); break;
       case lir_sub: __ fsubd (dest->as_double_reg(), left->as_double_reg(), right->as_double_reg()); break;
+      case lir_mul_strictfp: // fall through
       case lir_mul: __ fmuld (dest->as_double_reg(), left->as_double_reg(), right->as_double_reg()); break;
+      case lir_div_strictfp: // fall through
       case lir_div: __ fdivd (dest->as_double_reg(), left->as_double_reg(), right->as_double_reg()); break;
       default:
         ShouldNotReachHere();
@@ -2869,7 +2877,11 @@
 
 
 void LIR_Assembler::leal(LIR_Opr addr, LIR_Opr dest, LIR_PatchCode patch_code, CodeEmitInfo* info) {
-  assert(patch_code == lir_patch_none, "Patch code not supported");
+  if (patch_code != lir_patch_none) {
+    deoptimize_trap(info);
+    return;
+  }
+
   __ lea(dest->as_register_lo(), as_Address(addr->as_address_ptr()));
 }
 
--- a/src/hotspot/cpu/aarch64/c1_LIRGenerator_aarch64.cpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/cpu/aarch64/c1_LIRGenerator_aarch64.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -426,7 +426,7 @@
     tmp = new_register(T_DOUBLE);
   }
 
-  arithmetic_op_fpu(x->op(), reg, left.result(), right.result(), NULL);
+  arithmetic_op_fpu(x->op(), reg, left.result(), right.result(), x->is_strictfp());
 
   set_result(x, round_item(reg));
 }
--- a/src/hotspot/cpu/aarch64/frame_aarch64.cpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/cpu/aarch64/frame_aarch64.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -768,11 +768,13 @@
 
 extern "C" void pf(unsigned long sp, unsigned long fp, unsigned long pc,
                    unsigned long bcx, unsigned long thread) {
-  RegisterMap map((JavaThread*)thread, false);
   if (!reg_map) {
-    reg_map = (RegisterMap*)os::malloc(sizeof map, mtNone);
+    reg_map = NEW_C_HEAP_OBJ(RegisterMap, mtNone);
+    ::new (reg_map) RegisterMap((JavaThread*)thread, false);
+  } else {
+    *reg_map = RegisterMap((JavaThread*)thread, false);
   }
-  memcpy(reg_map, &map, sizeof map);
+
   {
     CodeBlob *cb = CodeCache::find_blob((address)pc);
     if (cb && cb->frame_size())
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hotspot/cpu/aarch64/gc/z/zBarrierSetAssembler_aarch64.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,407 @@
+/*
+ * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+#include "precompiled.hpp"
+#include "asm/macroAssembler.inline.hpp"
+#include "code/codeBlob.hpp"
+#include "gc/z/zBarrier.inline.hpp"
+#include "gc/z/zBarrierSet.hpp"
+#include "gc/z/zBarrierSetAssembler.hpp"
+#include "gc/z/zBarrierSetRuntime.hpp"
+#include "memory/resourceArea.hpp"
+#ifdef COMPILER1
+#include "c1/c1_LIRAssembler.hpp"
+#include "c1/c1_MacroAssembler.hpp"
+#include "gc/z/c1/zBarrierSetC1.hpp"
+#endif // COMPILER1
+
+#include "gc/z/zThreadLocalData.hpp"
+
+ZBarrierSetAssembler::ZBarrierSetAssembler() :
+    _load_barrier_slow_stub(),
+    _load_barrier_weak_slow_stub() {}
+
+#ifdef PRODUCT
+#define BLOCK_COMMENT(str) /* nothing */
+#else
+#define BLOCK_COMMENT(str) __ block_comment(str)
+#endif
+
+#undef __
+#define __ masm->
+
+void ZBarrierSetAssembler::load_at(MacroAssembler* masm,
+                                   DecoratorSet decorators,
+                                   BasicType type,
+                                   Register dst,
+                                   Address src,
+                                   Register tmp1,
+                                   Register tmp_thread) {
+  if (!ZBarrierSet::barrier_needed(decorators, type)) {
+    // Barrier not needed
+    BarrierSetAssembler::load_at(masm, decorators, type, dst, src, tmp1, tmp_thread);
+    return;
+  }
+
+  // rscratch1 can be passed as src or dst, so don't use it.
+  RegSet savedRegs = RegSet::of(rscratch2, rheapbase);
+
+  Label done;
+  assert_different_registers(rheapbase, rscratch2, dst);
+  assert_different_registers(rheapbase, rscratch2, src.base());
+
+  __ push(savedRegs, sp);
+
+  // Load bad mask into scratch register.
+  __ ldr(rheapbase, address_bad_mask_from_thread(rthread));
+  __ lea(rscratch2, src);
+  __ ldr(dst, src);
+
+  // Test reference against bad mask. If mask bad, then we need to fix it up.
+  __ tst(dst, rheapbase);
+  __ br(Assembler::EQ, done);
+
+  __ enter();
+
+  __ push(RegSet::range(r0,r28) - RegSet::of(dst), sp);
+
+  if (c_rarg0 != dst) {
+    __ mov(c_rarg0, dst);
+  }
+  __ mov(c_rarg1, rscratch2);
+
+  int step = 4 * wordSize;
+  __ mov(rscratch1, -step);
+  __ sub(sp, sp, step);
+
+  for (int i = 28; i >= 4; i -= 4) {
+    __ st1(as_FloatRegister(i), as_FloatRegister(i+1), as_FloatRegister(i+2),
+        as_FloatRegister(i+3), __ T1D, Address(__ post(sp, rscratch1)));
+  }
+
+  __ call_VM_leaf(ZBarrierSetRuntime::load_barrier_on_oop_field_preloaded_addr(decorators), 2);
+
+  for (int i = 0; i <= 28; i += 4) {
+    __ ld1(as_FloatRegister(i), as_FloatRegister(i+1), as_FloatRegister(i+2),
+        as_FloatRegister(i+3), __ T1D, Address(__ post(sp, step)));
+  }
+
+  // Make sure dst has the return value.
+  if (dst != r0) {
+    __ mov(dst, r0);
+  }
+
+  __ pop(RegSet::range(r0,r28) - RegSet::of(dst), sp);
+  __ leave();
+
+  __ bind(done);
+
+  // Restore tmps
+  __ pop(savedRegs, sp);
+}
+
+#ifdef ASSERT
+
+void ZBarrierSetAssembler::store_at(MacroAssembler* masm,
+                                        DecoratorSet decorators,
+                                        BasicType type,
+                                        Address dst,
+                                        Register val,
+                                        Register tmp1,
+                                        Register tmp2) {
+  // Verify value
+  if (type == T_OBJECT || type == T_ARRAY) {
+    // Note that src could be noreg, which means we
+    // are storing null and can skip verification.
+    if (val != noreg) {
+      Label done;
+
+      // tmp1 and tmp2 are often set to noreg.
+      RegSet savedRegs = RegSet::of(rscratch1);
+      __ push(savedRegs, sp);
+
+      __ ldr(rscratch1, address_bad_mask_from_thread(rthread));
+      __ tst(val, rscratch1);
+      __ br(Assembler::EQ, done);
+      __ stop("Verify oop store failed");
+      __ should_not_reach_here();
+      __ bind(done);
+      __ pop(savedRegs, sp);
+    }
+  }
+
+  // Store value
+  BarrierSetAssembler::store_at(masm, decorators, type, dst, val, tmp1, tmp2);
+}
+
+#endif // ASSERT
+
+void ZBarrierSetAssembler::arraycopy_prologue(MacroAssembler* masm,
+                                              DecoratorSet decorators,
+                                              bool is_oop,
+                                              Register src,
+                                              Register dst,
+                                              Register count,
+                                              RegSet saved_regs) {
+  if (!is_oop) {
+    // Barrier not needed
+    return;
+  }
+
+  BLOCK_COMMENT("ZBarrierSetAssembler::arraycopy_prologue {");
+
+  assert_different_registers(src, count, rscratch1);
+
+  __ pusha();
+
+  if (count == c_rarg0) {
+    if (src == c_rarg1) {
+      // exactly backwards!!
+      __ mov(rscratch1, c_rarg0);
+      __ mov(c_rarg0, c_rarg1);
+      __ mov(c_rarg1, rscratch1);
+    } else {
+      __ mov(c_rarg1, count);
+      __ mov(c_rarg0, src);
+    }
+  } else {
+    __ mov(c_rarg0, src);
+    __ mov(c_rarg1, count);
+  }
+
+  __ call_VM_leaf(ZBarrierSetRuntime::load_barrier_on_oop_array_addr(), 2);
+
+  __ popa();
+  BLOCK_COMMENT("} ZBarrierSetAssembler::arraycopy_prologue");
+}
+
+void ZBarrierSetAssembler::try_resolve_jobject_in_native(MacroAssembler* masm,
+                                                         Register jni_env,
+                                                         Register robj,
+                                                         Register tmp,
+                                                         Label& slowpath) {
+  BLOCK_COMMENT("ZBarrierSetAssembler::try_resolve_jobject_in_native {");
+
+  assert_different_registers(jni_env, robj, tmp);
+
+  // Resolve jobject
+  BarrierSetAssembler::try_resolve_jobject_in_native(masm, jni_env, robj, tmp, slowpath);
+
+  // The Address offset is too large to direct load - -784. Our range is +127, -128.
+  __ mov(tmp, (long int)(in_bytes(ZThreadLocalData::address_bad_mask_offset()) -
+      in_bytes(JavaThread::jni_environment_offset())));
+  // Load address bad mask
+  __ add(tmp, jni_env, tmp);
+  __ ldr(tmp, Address(tmp));
+
+  // Check address bad mask
+  __ tst(robj, tmp);
+  __ br(Assembler::NE, slowpath);
+
+  BLOCK_COMMENT("} ZBarrierSetAssembler::try_resolve_jobject_in_native");
+}
+
+#ifdef COMPILER1
+
+#undef __
+#define __ ce->masm()->
+
+void ZBarrierSetAssembler::generate_c1_load_barrier_test(LIR_Assembler* ce,
+                                                         LIR_Opr ref) const {
+  assert_different_registers(rheapbase, rthread, ref->as_register());
+
+  __ ldr(rheapbase, address_bad_mask_from_thread(rthread));
+  __ tst(ref->as_register(), rheapbase);
+}
+
+void ZBarrierSetAssembler::generate_c1_load_barrier_stub(LIR_Assembler* ce,
+                                                         ZLoadBarrierStubC1* stub) const {
+  // Stub entry
+  __ bind(*stub->entry());
+
+  Register ref = stub->ref()->as_register();
+  Register ref_addr = noreg;
+  Register tmp = noreg;
+
+  if (stub->tmp()->is_valid()) {
+    // Load address into tmp register
+    ce->leal(stub->ref_addr(), stub->tmp());
+    ref_addr = tmp = stub->tmp()->as_pointer_register();
+  } else {
+    // Address already in register
+    ref_addr = stub->ref_addr()->as_address_ptr()->base()->as_pointer_register();
+  }
+
+  assert_different_registers(ref, ref_addr, noreg);
+
+  // Save r0 unless it is the result or tmp register
+  // Set up SP to accomodate parameters and maybe r0..
+  if (ref != r0 && tmp != r0) {
+    __ sub(sp, sp, 32);
+    __ str(r0, Address(sp, 16));
+  } else {
+    __ sub(sp, sp, 16);
+  }
+
+  // Setup arguments and call runtime stub
+  ce->store_parameter(ref_addr, 1);
+  ce->store_parameter(ref, 0);
+
+  __ far_call(stub->runtime_stub());
+
+  // Verify result
+  __ verify_oop(r0, "Bad oop");
+
+  // Move result into place
+  if (ref != r0) {
+    __ mov(ref, r0);
+  }
+
+  // Restore r0 unless it is the result or tmp register
+  if (ref != r0 && tmp != r0) {
+    __ ldr(r0, Address(sp, 16));
+    __ add(sp, sp, 32);
+  } else {
+    __ add(sp, sp, 16);
+  }
+
+  // Stub exit
+  __ b(*stub->continuation());
+}
+
+#undef __
+#define __ sasm->
+
+void ZBarrierSetAssembler::generate_c1_load_barrier_runtime_stub(StubAssembler* sasm,
+                                                                 DecoratorSet decorators) const {
+  __ prologue("zgc_load_barrier stub", false);
+
+  // We don't use push/pop_clobbered_registers() - we need to pull out the result from r0.
+  for (int i = 0; i < 32; i +=2) {
+    __ stpd(as_FloatRegister(i), as_FloatRegister(i+1), Address(__ pre(sp,-16)));
+  }
+
+  RegSet saveRegs = RegSet::range(r0,r28) - RegSet::of(r0);
+  __ push(saveRegs, sp);
+
+  // Setup arguments
+  __ load_parameter(0, c_rarg0);
+  __ load_parameter(1, c_rarg1);
+
+  __ call_VM_leaf(ZBarrierSetRuntime::load_barrier_on_oop_field_preloaded_addr(decorators), 2);
+
+  __ pop(saveRegs, sp);
+
+  for (int i = 30; i >0; i -=2) {
+      __ ldpd(as_FloatRegister(i), as_FloatRegister(i+1), Address(__ post(sp, 16)));
+    }
+
+  __ epilogue();
+}
+#endif // COMPILER1
+
+#undef __
+#define __ cgen->assembler()->
+
+// Generates a register specific stub for calling
+// ZBarrierSetRuntime::load_barrier_on_oop_field_preloaded() or
+// ZBarrierSetRuntime::load_barrier_on_weak_oop_field_preloaded().
+//
+// The raddr register serves as both input and output for this stub. When the stub is
+// called the raddr register contains the object field address (oop*) where the bad oop
+// was loaded from, which caused the slow path to be taken. On return from the stub the
+// raddr register contains the good/healed oop returned from
+// ZBarrierSetRuntime::load_barrier_on_oop_field_preloaded() or
+// ZBarrierSetRuntime::load_barrier_on_weak_oop_field_preloaded().
+static address generate_load_barrier_stub(StubCodeGenerator* cgen, Register raddr, DecoratorSet decorators) {
+  // Don't generate stub for invalid registers
+  if (raddr == zr || raddr == r29 || raddr == r30) {
+    return NULL;
+  }
+
+  // Create stub name
+  char name[64];
+  const bool weak = (decorators & ON_WEAK_OOP_REF) != 0;
+  os::snprintf(name, sizeof(name), "zgc_load_barrier%s_stub_%s", weak ? "_weak" : "", raddr->name());
+
+  __ align(CodeEntryAlignment);
+  StubCodeMark mark(cgen, "StubRoutines", os::strdup(name, mtCode));
+  address start = __ pc();
+
+  // Save live registers
+  RegSet savedRegs = RegSet::range(r0,r18) - RegSet::of(raddr);
+
+  __ enter();
+  __ push(savedRegs, sp);
+
+  // Setup arguments
+  if (raddr != c_rarg1) {
+    __ mov(c_rarg1, raddr);
+  }
+
+  __ ldr(c_rarg0, Address(raddr));
+
+  // Call barrier function
+  __ call_VM_leaf(ZBarrierSetRuntime::load_barrier_on_oop_field_preloaded_addr(decorators), c_rarg0, c_rarg1);
+
+  // Move result returned in r0 to raddr, if needed
+  if (raddr != r0) {
+    __ mov(raddr, r0);
+  }
+
+  __ pop(savedRegs, sp);
+  __ leave();
+  __ ret(lr);
+
+  return start;
+}
+
+#undef __
+
+static void barrier_stubs_init_inner(const char* label, const DecoratorSet decorators, address* stub) {
+  const int nregs = 28;              // Exclude FP, XZR, SP from calculation.
+  const int code_size = nregs * 254; // Rough estimate of code size
+
+  ResourceMark rm;
+
+  CodeBuffer buf(BufferBlob::create(label, code_size));
+  StubCodeGenerator cgen(&buf);
+
+  for (int i = 0; i < nregs; i++) {
+    const Register reg = as_Register(i);
+    stub[i] = generate_load_barrier_stub(&cgen, reg, decorators);
+  }
+}
+
+void ZBarrierSetAssembler::barrier_stubs_init() {
+  barrier_stubs_init_inner("zgc_load_barrier_stubs", ON_STRONG_OOP_REF, _load_barrier_slow_stub);
+  barrier_stubs_init_inner("zgc_load_barrier_weak_stubs", ON_WEAK_OOP_REF, _load_barrier_weak_slow_stub);
+}
+
+address ZBarrierSetAssembler::load_barrier_slow_stub(Register reg) {
+  return _load_barrier_slow_stub[reg->encoding()];
+}
+
+address ZBarrierSetAssembler::load_barrier_weak_slow_stub(Register reg) {
+  return _load_barrier_weak_slow_stub[reg->encoding()];
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hotspot/cpu/aarch64/gc/z/zBarrierSetAssembler_aarch64.hpp	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,92 @@
+/*
+ * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+#ifndef CPU_AARCH64_GC_Z_ZBARRIERSETASSEMBLER_AARCH64_HPP
+#define CPU_AARCH64_GC_Z_ZBARRIERSETASSEMBLER_AARCH64_HPP
+
+#ifdef COMPILER1
+class LIR_Assembler;
+class LIR_OprDesc;
+typedef LIR_OprDesc* LIR_Opr;
+class StubAssembler;
+class ZLoadBarrierStubC1;
+#endif // COMPILER1
+
+class ZBarrierSetAssembler : public ZBarrierSetAssemblerBase {
+private:
+  address _load_barrier_slow_stub[RegisterImpl::number_of_registers];
+  address _load_barrier_weak_slow_stub[RegisterImpl::number_of_registers];
+
+public:
+  ZBarrierSetAssembler();
+
+  virtual void load_at(MacroAssembler* masm,
+                       DecoratorSet decorators,
+                       BasicType type,
+                       Register dst,
+                       Address src,
+                       Register tmp1,
+                       Register tmp_thread);
+
+#ifdef ASSERT
+  virtual void store_at(MacroAssembler* masm,
+                        DecoratorSet decorators,
+                        BasicType type,
+                        Address dst,
+                        Register val,
+                        Register tmp1,
+                        Register tmp2);
+#endif // ASSERT
+
+  virtual void arraycopy_prologue(MacroAssembler* masm,
+                                  DecoratorSet decorators,
+                                  bool is_oop,
+                                  Register src,
+                                  Register dst,
+                                  Register count,
+                                  RegSet saved_regs);
+
+  virtual void try_resolve_jobject_in_native(MacroAssembler* masm,
+                                             Register jni_env,
+                                             Register robj,
+                                             Register tmp,
+                                             Label& slowpath);
+
+#ifdef COMPILER1
+  void generate_c1_load_barrier_test(LIR_Assembler* ce,
+                                     LIR_Opr ref) const;
+
+  void generate_c1_load_barrier_stub(LIR_Assembler* ce,
+                                     ZLoadBarrierStubC1* stub) const;
+
+  void generate_c1_load_barrier_runtime_stub(StubAssembler* sasm,
+                                             DecoratorSet decorators) const;
+#endif // COMPILER1
+
+  virtual void barrier_stubs_init();
+
+  address load_barrier_slow_stub(Register reg);
+  address load_barrier_weak_slow_stub(Register reg);
+};
+
+#endif // CPU_AARCH64_GC_Z_ZBARRIERSETASSEMBLER_AARCH64_HPP
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hotspot/cpu/aarch64/gc/z/z_aarch64.ad	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,174 @@
+//
+// Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
+// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+//
+// This code is free software; you can redistribute it and/or modify it
+// under the terms of the GNU General Public License version 2 only, as
+// published by the Free Software Foundation.
+//
+// This code is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+// version 2 for more details (a copy is included in the LICENSE file that
+// accompanied this code).
+//
+// You should have received a copy of the GNU General Public License version
+// 2 along with this work; if not, write to the Free Software Foundation,
+// Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+// or visit www.oracle.com if you need additional information or have any
+// questions.
+//
+
+source_hpp %{
+
+#include "gc/z/c2/zBarrierSetC2.hpp"
+
+%}
+
+source %{
+
+#include "gc/z/zBarrierSetAssembler.hpp"
+
+static void z_load_barrier_slow_reg(MacroAssembler& _masm, Register dst, 
+                                    Register base, int index, int scale, 
+                                    int disp, bool weak) {
+  const address stub = weak ? ZBarrierSet::assembler()->load_barrier_weak_slow_stub(dst)
+                            : ZBarrierSet::assembler()->load_barrier_slow_stub(dst);
+
+  if (index == -1) {
+    if (disp != 0) {
+      __ lea(dst, Address(base, disp));
+    } else {
+       __ mov(dst, base);
+    }
+  } else {
+    Register index_reg = as_Register(index);
+    if (disp == 0) {
+      __ lea(dst, Address(base, index_reg, Address::lsl(scale)));
+    } else {
+      __ lea(dst, Address(base, disp));
+      __ lea(dst, Address(dst, index_reg, Address::lsl(scale)));
+    }
+  }
+
+  __ far_call(RuntimeAddress(stub));
+}
+
+%}
+
+//
+// Execute ZGC load barrier (strong) slow path
+//
+instruct loadBarrierSlowReg(iRegP dst, memory mem, rFlagsReg cr,
+    vRegD_V0 v0, vRegD_V1 v1, vRegD_V2 v2, vRegD_V3 v3, vRegD_V4 v4,
+    vRegD_V5 v5, vRegD_V6 v6, vRegD_V7 v7, vRegD_V8 v8, vRegD_V9 v9,
+    vRegD_V10 v10, vRegD_V11 v11, vRegD_V12 v12, vRegD_V13 v13, vRegD_V14 v14,
+    vRegD_V15 v15, vRegD_V16 v16, vRegD_V17 v17, vRegD_V18 v18, vRegD_V19 v19,
+    vRegD_V20 v20, vRegD_V21 v21, vRegD_V22 v22, vRegD_V23 v23, vRegD_V24 v24,
+    vRegD_V25 v25, vRegD_V26 v26, vRegD_V27 v27, vRegD_V28 v28, vRegD_V29 v29,
+    vRegD_V30 v30, vRegD_V31 v31) %{
+  match(Set dst (LoadBarrierSlowReg mem));
+  predicate(!n->as_LoadBarrierSlowReg()->is_weak());
+
+  effect(DEF dst, KILL cr,
+     KILL v0, KILL v1, KILL v2, KILL v3, KILL v4, KILL v5, KILL v6, KILL v7,
+     KILL v8, KILL v9, KILL v10, KILL v11, KILL v12, KILL v13, KILL v14,
+     KILL v15, KILL v16, KILL v17, KILL v18, KILL v19, KILL v20, KILL v21,
+     KILL v22, KILL v23, KILL v24, KILL v25, KILL v26, KILL v27, KILL v28,
+     KILL v29, KILL v30, KILL v31);
+
+  format %{"LoadBarrierSlowReg $dst, $mem" %}
+  ins_encode %{
+    z_load_barrier_slow_reg(_masm, $dst$$Register, $mem$$base$$Register,
+                            $mem$$index, $mem$$scale, $mem$$disp, false);
+  %}
+  ins_pipe(pipe_slow);
+%}
+
+//
+// Execute ZGC load barrier (weak) slow path
+//
+instruct loadBarrierWeakSlowReg(iRegP dst, memory mem, rFlagsReg cr,
+    vRegD_V0 v0, vRegD_V1 v1, vRegD_V2 v2, vRegD_V3 v3, vRegD_V4 v4,
+    vRegD_V5 v5, vRegD_V6 v6, vRegD_V7 v7, vRegD_V8 v8, vRegD_V9 v9,
+    vRegD_V10 v10, vRegD_V11 v11, vRegD_V12 v12, vRegD_V13 v13, vRegD_V14 v14,
+    vRegD_V15 v15, vRegD_V16 v16, vRegD_V17 v17, vRegD_V18 v18, vRegD_V19 v19,
+    vRegD_V20 v20, vRegD_V21 v21, vRegD_V22 v22, vRegD_V23 v23, vRegD_V24 v24,
+    vRegD_V25 v25, vRegD_V26 v26, vRegD_V27 v27, vRegD_V28 v28, vRegD_V29 v29,
+    vRegD_V30 v30, vRegD_V31 v31) %{
+  match(Set dst (LoadBarrierSlowReg mem));
+  predicate(n->as_LoadBarrierSlowReg()->is_weak());
+
+  effect(DEF dst, KILL cr,
+     KILL v0, KILL v1, KILL v2, KILL v3, KILL v4, KILL v5, KILL v6, KILL v7,
+     KILL v8, KILL v9, KILL v10, KILL v11, KILL v12, KILL v13, KILL v14,
+     KILL v15, KILL v16, KILL v17, KILL v18, KILL v19, KILL v20, KILL v21,
+     KILL v22, KILL v23, KILL v24, KILL v25, KILL v26, KILL v27, KILL v28,
+     KILL v29, KILL v30, KILL v31);
+
+  format %{"LoadBarrierWeakSlowReg $dst, $mem" %}
+  ins_encode %{
+    z_load_barrier_slow_reg(_masm, $dst$$Register, $mem$$base$$Register,
+                            $mem$$index, $mem$$scale, $mem$$disp, true);
+  %}
+  ins_pipe(pipe_slow);
+%}
+
+
+// Specialized versions of compareAndExchangeP that adds a keepalive that is consumed
+// but doesn't affect output.
+
+instruct z_compareAndExchangeP(iRegPNoSp res, indirect mem,
+                               iRegP oldval, iRegP newval, iRegP keepalive,
+                               rFlagsReg cr) %{
+  match(Set res (ZCompareAndExchangeP (Binary mem keepalive) (Binary oldval newval)));
+  ins_cost(2 * VOLATILE_REF_COST);
+  effect(TEMP_DEF res, KILL cr);
+  format %{
+    "cmpxchg $res = $mem, $oldval, $newval\t# (ptr, weak) if $mem == $oldval then $mem <-- $newval"
+  %}
+  ins_encode %{
+    __ cmpxchg($mem$$Register, $oldval$$Register, $newval$$Register,
+               Assembler::xword, /*acquire*/ false, /*release*/ true,
+               /*weak*/ false, $res$$Register);
+  %}
+  ins_pipe(pipe_slow);
+%}
+
+instruct z_compareAndSwapP(iRegINoSp res,
+                           indirect mem,
+                           iRegP oldval, iRegP newval, iRegP keepalive,
+                            rFlagsReg cr) %{
+
+  match(Set res (ZCompareAndSwapP (Binary mem keepalive) (Binary oldval newval)));
+  match(Set res (ZWeakCompareAndSwapP (Binary mem keepalive) (Binary oldval newval)));
+
+  ins_cost(2 * VOLATILE_REF_COST);
+
+  effect(KILL cr);
+
+ format %{
+    "cmpxchg $mem, $oldval, $newval\t# (ptr) if $mem == $oldval then $mem <-- $newval"
+    "cset $res, EQ\t# $res <-- (EQ ? 1 : 0)"
+ %}
+
+ ins_encode(aarch64_enc_cmpxchg(mem, oldval, newval),
+            aarch64_enc_cset_eq(res));
+
+  ins_pipe(pipe_slow);
+%}
+
+
+instruct z_get_and_setP(indirect mem, iRegP newv, iRegPNoSp prev,
+                        iRegP keepalive) %{
+  match(Set prev (ZGetAndSetP mem (Binary newv keepalive)));
+
+  ins_cost(2 * VOLATILE_REF_COST);
+  format %{ "atomic_xchg  $prev, $newv, [$mem]" %}
+  ins_encode %{
+    __ atomic_xchg($prev$$Register, $newv$$Register, as_Register($mem$$base));
+  %}
+  ins_pipe(pipe_serial);
+%}
--- a/src/hotspot/cpu/aarch64/interp_masm_aarch64.hpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/cpu/aarch64/interp_masm_aarch64.hpp	Fri Jun 21 09:05:45 2019 -0700
@@ -38,8 +38,6 @@
  protected:
 
  protected:
-  using MacroAssembler::call_VM_leaf_base;
-
   // Interpreter specific version of call_VM_base
   using MacroAssembler::call_VM_leaf_base;
 
--- a/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -2681,7 +2681,7 @@
   if ((offset & (size-1)) && offset >= (1<<8)) {
     add(tmp, base, offset & ((1<<12)-1));
     base = tmp;
-    offset &= -1<<12;
+    offset &= -1u<<12;
   }
 
   if (offset >= (1<<12) * size) {
--- a/src/hotspot/cpu/aarch64/macroAssembler_aarch64_log.cpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/cpu/aarch64/macroAssembler_aarch64_log.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -286,7 +286,7 @@
     frecpe(vtmp5, vtmp5, S);                   // vtmp5 ~= 1/vtmp5
     lsr(tmp2, rscratch1, 48);
     movz(tmp4, 0x77f0, 48);
-    fmovd(vtmp4, 1.0d);
+    fmovd(vtmp4, 1.0);
     movz(tmp1, INF_OR_NAN_PREFIX, 48);
     bfm(tmp4, rscratch1, 0, 51);               // tmp4 = 0x77F0 << 48 | mantissa(X)
     // vtmp1 = AS_DOUBLE_BITS(0x77F0 << 48 | mantissa(X)) == mx
@@ -358,7 +358,7 @@
       br(GE, DONE);
       cmp(rscratch1, tmp2);
       br(NE, CHECKED_CORNER_CASES);
-      fmovd(v0, 0.0d);
+      fmovd(v0, 0.0);
   }
   bind(DONE);
     ret(lr);
--- a/src/hotspot/cpu/aarch64/macroAssembler_aarch64_trig.cpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/cpu/aarch64/macroAssembler_aarch64_trig.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -381,11 +381,11 @@
       }
 
       block_comment("nx calculation with unrolled while(tx[nx-1]==zeroA) nx--;"); {
-        fcmpd(v26, 0.0d);                          // if NE then jx == 2. else it's 1 or 0
+        fcmpd(v26, 0.0);                           // if NE then jx == 2. else it's 1 or 0
         add(iqBase, sp, 480);                      // base of iq[]
         fmuld(v3, v26, v10);
         br(NE, NX_SET);
-        fcmpd(v7, 0.0d);                           // v7 == 0 => jx = 0. Else jx = 1
+        fcmpd(v7, 0.0);                            // v7 == 0 => jx = 0. Else jx = 1
         csetw(jx, NE);
       }
     bind(NX_SET);
@@ -696,7 +696,7 @@
     cmpw(jv, zr);
     addw(tmp4, jx, 4); // tmp4 = m = jx + jk = jx + 4. jx is in {0,1,2} so m is in [4,5,6]
     cselw(jv, jv, zr, GE);
-    fmovd(v26, 0.0d);
+    fmovd(v26, 0.0);
     addw(tmp5, jv, 1);                    // jv+1
     subsw(j, jv, jx);
     add(qBase, sp, 320);                  // base of q[]
@@ -819,8 +819,8 @@
   movw(jz, 4);
   fmovd(v17, i);                               // v17 = twon24
   fmovd(v30, tmp5);                            // 2^q0
-  fmovd(v21, 0.125d);
-  fmovd(v20, 8.0d);
+  fmovd(v21, 0.125);
+  fmovd(v20, 8.0);
   fmovd(v22, tmp4);                            // 2^-q0
 
   block_comment("recompute loop"); {
@@ -877,7 +877,7 @@
           lsr(ih, tmp2, 23);                               // ih = iq[z-1] >> 23
           b(Q0_ZERO_CMP_DONE);
         bind(Q0_ZERO_CMP_LT);
-          fmovd(v4, 0.5d);
+          fmovd(v4, 0.5);
           fcmpd(v18, v4);
           cselw(ih, zr, ih, LT);                           // if (z<0.5) ih = 0
       }
@@ -924,7 +924,7 @@
         br(NE, IH_HANDLED);
 
         block_comment("if(ih==2) {"); {
-          fmovd(v25, 1.0d);
+          fmovd(v25, 1.0);
           fsubd(v18, v25, v18);                            // z = one - z;
           cbzw(rscratch2, IH_HANDLED);
           fsubd(v18, v18, v30);                            // z -= scalbnA(one,q0);
@@ -932,7 +932,7 @@
     }
     bind(IH_HANDLED);
       // check if recomputation is needed
-      fcmpd(v18, 0.0d);
+      fcmpd(v18, 0.0);
       br(NE, RECOMP_CHECK_DONE_NOT_ZERO);
 
       block_comment("if(z==zeroB) {"); {
@@ -994,7 +994,7 @@
     }
     bind(RECOMP_CHECK_DONE);
       // chop off zero terms
-      fcmpd(v18, 0.0d);
+      fcmpd(v18, 0.0);
       br(EQ, Z_IS_ZERO);
 
       block_comment("else block of if(z==0.0) {"); {
@@ -1053,7 +1053,7 @@
           movw(tmp2, zr); // tmp2 will keep jz - i == 0 at start
         bind(COMP_FOR);
           // for(fw=0.0,k=0;k<=jp&&k<=jz-i;k++) fw += PIo2[k]*q[i+k];
-          fmovd(v30, 0.0d);
+          fmovd(v30, 0.0);
           add(tmp5, qBase, i, LSL, 3); // address of q[i+k] for k==0
           movw(tmp3, 4);
           movw(tmp4, zr);              // used as k
@@ -1081,7 +1081,7 @@
         // remember prec == 2
 
         block_comment("for (i=jz;i>=0;i--) fw += fq[i];"); {
-            fmovd(v4, 0.0d);
+            fmovd(v4, 0.0);
             mov(i, jz);
           bind(FW_FOR1);
             ldrd(v1, Address(rscratch2, i, Address::lsl(3)));
@@ -1319,7 +1319,7 @@
     ld1(C1, C2, C3, C4, T1D, Address(rscratch2)); // load C1..C3\4
     block_comment("calculate r = z*(C1+z*(C2+z*(C3+z*(C4+z*(C5+z*C6)))))"); {
       fmaddd(r, z, C6, C5);
-      fmovd(half, 0.5d);
+      fmovd(half, 0.5);
       fmaddd(r, z, r, C4);
       fmuld(y, x, y);
       fmaddd(r, z, r, C3);
@@ -1329,7 +1329,7 @@
       fmaddd(r, z, r, C1);                        // r = C1+z(C2+z(C4+z(C5+z*C6)))
     }
     // need to multiply r by z to have "final" r value
-    fmovd(one, 1.0d);
+    fmovd(one, 1.0);
     cmp(ix, rscratch1);
     br(GT, IX_IS_LARGE);
     block_comment("if(ix < 0x3FD33333) return one - (0.5*z - (z*r - x*y))"); {
@@ -1352,7 +1352,7 @@
       b(QX_SET);
     bind(SET_QX_CONST);
       block_comment("if(ix > 0x3fe90000) qx = 0.28125;"); {
-        fmovd(qx, 0.28125d);
+        fmovd(qx, 0.28125);
       }
     bind(QX_SET);
       fnmsub(C6, x, r, y);    // z*r - xy
@@ -1443,7 +1443,7 @@
   block_comment("kernel_sin/kernel_cos: if(ix<0x3e400000) {<fast return>}"); {
     bind(TINY_X);
       if (isCos) {
-        fmovd(v0, 1.0d);
+        fmovd(v0, 1.0);
       }
       ret(lr);
   }
--- a/src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -46,6 +46,9 @@
 #ifdef COMPILER2
 #include "opto/runtime.hpp"
 #endif
+#if INCLUDE_ZGC
+#include "gc/z/zThreadLocalData.hpp"
+#endif
 
 #ifdef BUILTIN_SIM
 #include "../../../../../../simulator/simulator.hpp"
@@ -580,6 +583,16 @@
     // make sure object is 'reasonable'
     __ cbz(r0, exit); // if obj is NULL it is OK
 
+#if INCLUDE_ZGC
+    if (UseZGC) {
+      // Check if mask is good.
+      // verifies that ZAddressBadMask & r0 == 0
+      __ ldr(c_rarg3, Address(rthread, ZThreadLocalData::address_bad_mask_offset()));
+      __ andr(c_rarg2, r0, c_rarg3);
+      __ cbnz(c_rarg2, error);
+    }
+#endif
+
     // Check if the oop is in the right area of memory
     __ mov(c_rarg3, (intptr_t) Universe::verify_oop_mask());
     __ andr(c_rarg2, r0, c_rarg3);
--- a/src/hotspot/cpu/aarch64/vm_version_aarch64.cpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/cpu/aarch64/vm_version_aarch64.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -177,7 +177,7 @@
   if (FILE *f = fopen("/proc/cpuinfo", "r")) {
     char buf[128], *p;
     while (fgets(buf, sizeof (buf), f) != NULL) {
-      if (p = strchr(buf, ':')) {
+      if ((p = strchr(buf, ':')) != NULL) {
         long v = strtol(p+1, NULL, 0);
         if (strncmp(buf, "CPU implementer", sizeof "CPU implementer" - 1) == 0) {
           _cpu = v;
--- a/src/hotspot/os/linux/perfMemory_linux.cpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/os/linux/perfMemory_linux.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -661,7 +661,7 @@
   if (fp) {
     int pid, nspid;
     int ret;
-    while (!feof(fp)) {
+    while (!feof(fp) && !ferror(fp)) {
       ret = fscanf(fp, "NSpid: %d %d", &pid, &nspid);
       if (ret == 1) {
         break;
--- a/src/hotspot/os_cpu/linux_aarch64/atomic_linux_aarch64.hpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/os_cpu/linux_aarch64/atomic_linux_aarch64.hpp	Fri Jun 21 09:05:45 2019 -0700
@@ -40,7 +40,9 @@
 {
   template<typename I, typename D>
   D add_and_fetch(I add_value, D volatile* dest, atomic_memory_order order) const {
-    return __sync_add_and_fetch(dest, add_value);
+    D res = __atomic_add_fetch(dest, add_value, __ATOMIC_RELEASE);
+    FULL_MEM_BARRIER;
+    return res;
   }
 };
 
--- a/src/hotspot/os_cpu/linux_aarch64/copy_linux_aarch64.s	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/os_cpu/linux_aarch64/copy_linux_aarch64.s	Fri Jun 21 09:05:45 2019 -0700
@@ -159,7 +159,7 @@
         blo     bwd_copy_drain
 
 bwd_copy_again:
-        prfm    pldl1keep, [s, #-256]
+        prfum   pldl1keep, [s, #-256]
         stp     t0, t1, [d, #-16]
         ldp     t0, t1, [s, #-16]
         stp     t2, t3, [d, #-32]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hotspot/os_cpu/linux_aarch64/gc/z/zArguments_linux_aarch64.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ *
+ * 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.
+ */
+
+#include "precompiled.hpp"
+#include "gc/z/zArguments.hpp"
+#include "runtime/globals.hpp"
+#include "runtime/globals_extension.hpp"
+#include "utilities/debug.hpp"
+
+void ZArguments::initialize_platform() {
+  // Disable class unloading - we don't support concurrent class unloading yet.
+  FLAG_SET_DEFAULT(ClassUnloading, false);
+  FLAG_SET_DEFAULT(ClassUnloadingWithConcurrentMark, false);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hotspot/os_cpu/linux_aarch64/gc/z/zBackingFile_linux_aarch64.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,590 @@
+/*
+ * Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+#include "precompiled.hpp"
+#include "gc/z/zArray.inline.hpp"
+#include "gc/z/zBackingFile_linux_aarch64.hpp"
+#include "gc/z/zBackingPath_linux_aarch64.hpp"
+#include "gc/z/zErrno.hpp"
+#include "gc/z/zGlobals.hpp"
+#include "gc/z/zLargePages.inline.hpp"
+#include "logging/log.hpp"
+#include "runtime/init.hpp"
+#include "runtime/os.hpp"
+#include "utilities/align.hpp"
+#include "utilities/debug.hpp"
+
+#include <fcntl.h>
+#include <sys/mman.h>
+#include <sys/stat.h>
+#include <sys/statfs.h>
+#include <sys/syscall.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+//
+// Support for building on older Linux systems
+//
+
+// System calls
+#ifndef SYS_fallocate
+#define SYS_fallocate                    47
+#endif
+#ifndef SYS_memfd_create
+#define SYS_memfd_create                 279
+#endif
+
+// memfd_create(2) flags
+#ifndef MFD_CLOEXEC
+#define MFD_CLOEXEC                      0x0001U
+#endif
+#ifndef MFD_HUGETLB
+#define MFD_HUGETLB                      0x0004U
+#endif
+
+// open(2) flags
+#ifndef O_CLOEXEC
+#define O_CLOEXEC                        02000000
+#endif
+#ifndef O_TMPFILE
+#define O_TMPFILE                        (020000000 | O_DIRECTORY)
+#endif
+
+// fallocate(2) flags
+#ifndef FALLOC_FL_KEEP_SIZE
+#define FALLOC_FL_KEEP_SIZE              0x01
+#endif
+#ifndef FALLOC_FL_PUNCH_HOLE
+#define FALLOC_FL_PUNCH_HOLE             0x02
+#endif
+
+// Filesystem types, see statfs(2)
+#ifndef TMPFS_MAGIC
+#define TMPFS_MAGIC                      0x01021994
+#endif
+#ifndef HUGETLBFS_MAGIC
+#define HUGETLBFS_MAGIC                  0x958458f6
+#endif
+
+// Filesystem names
+#define ZFILESYSTEM_TMPFS                "tmpfs"
+#define ZFILESYSTEM_HUGETLBFS            "hugetlbfs"
+
+// Sysfs file for transparent huge page on tmpfs
+#define ZFILENAME_SHMEM_ENABLED          "/sys/kernel/mm/transparent_hugepage/shmem_enabled"
+
+// Java heap filename
+#define ZFILENAME_HEAP                   "java_heap"
+
+// Preferred tmpfs mount points, ordered by priority
+static const char* z_preferred_tmpfs_mountpoints[] = {
+  "/dev/shm",
+  "/run/shm",
+  NULL
+};
+
+// Preferred hugetlbfs mount points, ordered by priority
+static const char* z_preferred_hugetlbfs_mountpoints[] = {
+  "/dev/hugepages",
+  "/hugepages",
+  NULL
+};
+
+static int z_fallocate_hugetlbfs_attempts = 3;
+static bool z_fallocate_supported = true;
+
+static int z_fallocate(int fd, int mode, size_t offset, size_t length) {
+  return syscall(SYS_fallocate, fd, mode, offset, length);
+}
+
+static int z_memfd_create(const char *name, unsigned int flags) {
+  return syscall(SYS_memfd_create, name, flags);
+}
+
+ZBackingFile::ZBackingFile() :
+    _fd(-1),
+    _size(0),
+    _filesystem(0),
+    _block_size(0),
+    _available(0),
+    _initialized(false) {
+
+  // Create backing file
+  _fd = create_fd(ZFILENAME_HEAP);
+  if (_fd == -1) {
+    return;
+  }
+
+  // Get filesystem statistics
+  struct statfs buf;
+  if (fstatfs(_fd, &buf) == -1) {
+    ZErrno err;
+    log_error(gc)("Failed to determine filesystem type for backing file (%s)", err.to_string());
+    return;
+  }
+
+  _filesystem = buf.f_type;
+  _block_size = buf.f_bsize;
+  _available = buf.f_bavail * _block_size;
+
+  // Make sure we're on a supported filesystem
+  if (!is_tmpfs() && !is_hugetlbfs()) {
+    log_error(gc)("Backing file must be located on a %s or a %s filesystem",
+                  ZFILESYSTEM_TMPFS, ZFILESYSTEM_HUGETLBFS);
+    return;
+  }
+
+  // Make sure the filesystem type matches requested large page type
+  if (ZLargePages::is_transparent() && !is_tmpfs()) {
+    log_error(gc)("-XX:+UseTransparentHugePages can only be enable when using a %s filesystem",
+                  ZFILESYSTEM_TMPFS);
+    return;
+  }
+
+  if (ZLargePages::is_transparent() && !tmpfs_supports_transparent_huge_pages()) {
+    log_error(gc)("-XX:+UseTransparentHugePages on a %s filesystem not supported by kernel",
+                  ZFILESYSTEM_TMPFS);
+    return;
+  }
+
+  if (ZLargePages::is_explicit() && !is_hugetlbfs()) {
+    log_error(gc)("-XX:+UseLargePages (without -XX:+UseTransparentHugePages) can only be enabled "
+                  "when using a %s filesystem", ZFILESYSTEM_HUGETLBFS);
+    return;
+  }
+
+  if (!ZLargePages::is_explicit() && is_hugetlbfs()) {
+    log_error(gc)("-XX:+UseLargePages must be enabled when using a %s filesystem",
+                  ZFILESYSTEM_HUGETLBFS);
+    return;
+  }
+
+  const size_t expected_block_size = is_tmpfs() ? os::vm_page_size() : os::large_page_size();
+  if (expected_block_size != _block_size) {
+    log_error(gc)("%s filesystem has unexpected block size " SIZE_FORMAT " (expected " SIZE_FORMAT ")",
+                  is_tmpfs() ? ZFILESYSTEM_TMPFS : ZFILESYSTEM_HUGETLBFS, _block_size, expected_block_size);
+    return;
+  }
+
+  // Successfully initialized
+  _initialized = true;
+}
+
+int ZBackingFile::create_mem_fd(const char* name) const {
+  // Create file name
+  char filename[PATH_MAX];
+  snprintf(filename, sizeof(filename), "%s%s", name, ZLargePages::is_explicit() ? ".hugetlb" : "");
+
+  // Create file
+  const int extra_flags = ZLargePages::is_explicit() ? MFD_HUGETLB : 0;
+  const int fd = z_memfd_create(filename, MFD_CLOEXEC | extra_flags);
+  if (fd == -1) {
+    ZErrno err;
+    log_debug(gc, init)("Failed to create memfd file (%s)",
+                        ((ZLargePages::is_explicit() && err == EINVAL) ? "Hugepages not supported" : err.to_string()));
+    return -1;
+  }
+
+  log_info(gc, init)("Heap backed by file: /memfd:%s", filename);
+
+  return fd;
+}
+
+int ZBackingFile::create_file_fd(const char* name) const {
+  const char* const filesystem = ZLargePages::is_explicit()
+                                 ? ZFILESYSTEM_HUGETLBFS
+                                 : ZFILESYSTEM_TMPFS;
+  const char** const preferred_mountpoints = ZLargePages::is_explicit()
+                                             ? z_preferred_hugetlbfs_mountpoints
+                                             : z_preferred_tmpfs_mountpoints;
+
+  // Find mountpoint
+  ZBackingPath path(filesystem, preferred_mountpoints);
+  if (path.get() == NULL) {
+    log_error(gc)("Use -XX:ZPath to specify the path to a %s filesystem", filesystem);
+    return -1;
+  }
+
+  // Try to create an anonymous file using the O_TMPFILE flag. Note that this
+  // flag requires kernel >= 3.11. If this fails we fall back to open/unlink.
+  const int fd_anon = os::open(path.get(), O_TMPFILE|O_EXCL|O_RDWR|O_CLOEXEC, S_IRUSR|S_IWUSR);
+  if (fd_anon == -1) {
+    ZErrno err;
+    log_debug(gc, init)("Failed to create anonymous file in %s (%s)", path.get(),
+                        (err == EINVAL ? "Not supported" : err.to_string()));
+  } else {
+    // Get inode number for anonymous file
+    struct stat stat_buf;
+    if (fstat(fd_anon, &stat_buf) == -1) {
+      ZErrno err;
+      log_error(gc)("Failed to determine inode number for anonymous file (%s)", err.to_string());
+      return -1;
+    }
+
+    log_info(gc, init)("Heap backed by file: %s/#" UINT64_FORMAT, path.get(), (uint64_t)stat_buf.st_ino);
+
+    return fd_anon;
+  }
+
+  log_debug(gc, init)("Falling back to open/unlink");
+
+  // Create file name
+  char filename[PATH_MAX];
+  snprintf(filename, sizeof(filename), "%s/%s.%d", path.get(), name, os::current_process_id());
+
+  // Create file
+  const int fd = os::open(filename, O_CREAT|O_EXCL|O_RDWR|O_CLOEXEC, S_IRUSR|S_IWUSR);
+  if (fd == -1) {
+    ZErrno err;
+    log_error(gc)("Failed to create file %s (%s)", filename, err.to_string());
+    return -1;
+  }
+
+  // Unlink file
+  if (unlink(filename) == -1) {
+    ZErrno err;
+    log_error(gc)("Failed to unlink file %s (%s)", filename, err.to_string());
+    return -1;
+  }
+
+  log_info(gc, init)("Heap backed by file: %s", filename);
+
+  return fd;
+}
+
+int ZBackingFile::create_fd(const char* name) const {
+  if (ZPath == NULL) {
+    // If the path is not explicitly specified, then we first try to create a memfd file
+    // instead of looking for a tmpfd/hugetlbfs mount point. Note that memfd_create() might
+    // not be supported at all (requires kernel >= 3.17), or it might not support large
+    // pages (requires kernel >= 4.14). If memfd_create() fails, then we try to create a
+    // file on an accessible tmpfs or hugetlbfs mount point.
+    const int fd = create_mem_fd(name);
+    if (fd != -1) {
+      return fd;
+    }
+
+    log_debug(gc, init)("Falling back to searching for an accessible mount point");
+  }
+
+  return create_file_fd(name);
+}
+
+bool ZBackingFile::is_initialized() const {
+  return _initialized;
+}
+
+int ZBackingFile::fd() const {
+  return _fd;
+}
+
+size_t ZBackingFile::size() const {
+  return _size;
+}
+
+size_t ZBackingFile::available() const {
+  return _available;
+}
+
+bool ZBackingFile::is_tmpfs() const {
+  return _filesystem == TMPFS_MAGIC;
+}
+
+bool ZBackingFile::is_hugetlbfs() const {
+  return _filesystem == HUGETLBFS_MAGIC;
+}
+
+bool ZBackingFile::tmpfs_supports_transparent_huge_pages() const {
+  // If the shmem_enabled file exists and is readable then we
+  // know the kernel supports transparent huge pages for tmpfs.
+  return access(ZFILENAME_SHMEM_ENABLED, R_OK) == 0;
+}
+
+ZErrno ZBackingFile::fallocate_compat_ftruncate(size_t size) const {
+  while (ftruncate(_fd, size) == -1) {
+    if (errno != EINTR) {
+      // Failed
+      return errno;
+    }
+  }
+
+  // Success
+  return 0;
+}
+
+ZErrno ZBackingFile::fallocate_compat_mmap(size_t offset, size_t length, bool touch) const {
+  // On hugetlbfs, mapping a file segment will fail immediately, without
+  // the need to touch the mapped pages first, if there aren't enough huge
+  // pages available to back the mapping.
+  void* const addr = mmap(0, length, PROT_READ|PROT_WRITE, MAP_SHARED, _fd, offset);
+  if (addr == MAP_FAILED) {
+    // Failed
+    return errno;
+  }
+
+  // Once mapped, the huge pages are only reserved. We need to touch them
+  // to associate them with the file segment. Note that we can not punch
+  // hole in file segments which only have reserved pages.
+  if (touch) {
+    char* const start = (char*)addr;
+    char* const end = start + length;
+    os::pretouch_memory(start, end, _block_size);
+  }
+
+  // Unmap again. From now on, the huge pages that were mapped are allocated
+  // to this file. There's no risk in getting SIGBUS when touching them.
+  if (munmap(addr, length) == -1) {
+    // Failed
+    return errno;
+  }
+
+  // Success
+  return 0;
+}
+
+ZErrno ZBackingFile::fallocate_compat_pwrite(size_t offset, size_t length) const {
+  uint8_t data = 0;
+
+  // Allocate backing memory by writing to each block
+  for (size_t pos = offset; pos < offset + length; pos += _block_size) {
+    if (pwrite(_fd, &data, sizeof(data), pos) == -1) {
+      // Failed
+      return errno;
+    }
+  }
+
+  // Success
+  return 0;
+}
+
+ZErrno ZBackingFile::fallocate_fill_hole_compat(size_t offset, size_t length) {
+  // fallocate(2) is only supported by tmpfs since Linux 3.5, and by hugetlbfs
+  // since Linux 4.3. When fallocate(2) is not supported we emulate it using
+  // ftruncate/pwrite (for tmpfs) or ftruncate/mmap/munmap (for hugetlbfs).
+
+  const size_t end = offset + length;
+  if (end > _size) {
+    // Increase file size
+    const ZErrno err = fallocate_compat_ftruncate(end);
+    if (err) {
+      // Failed
+      return err;
+    }
+  }
+
+  // Allocate backing memory
+  const ZErrno err = is_hugetlbfs() ? fallocate_compat_mmap(offset, length, false /* touch */)
+                                    : fallocate_compat_pwrite(offset, length);
+  if (err) {
+    if (end > _size) {
+      // Restore file size
+      fallocate_compat_ftruncate(_size);
+    }
+
+    // Failed
+    return err;
+  }
+
+  if (end > _size) {
+    // Record new file size
+    _size = end;
+  }
+
+  // Success
+  return 0;
+}
+
+ZErrno ZBackingFile::fallocate_fill_hole_syscall(size_t offset, size_t length) {
+  const int mode = 0; // Allocate
+  const int res = z_fallocate(_fd, mode, offset, length);
+  if (res == -1) {
+    // Failed
+    return errno;
+  }
+
+  const size_t end = offset + length;
+  if (end > _size) {
+    // Record new file size
+    _size = end;
+  }
+
+  // Success
+  return 0;
+}
+
+ZErrno ZBackingFile::fallocate_fill_hole(size_t offset, size_t length) {
+  // Using compat mode is more efficient when allocating space on hugetlbfs.
+  // Note that allocating huge pages this way will only reserve them, and not
+  // associate them with segments of the file. We must guarantee that we at
+  // some point touch these segments, otherwise we can not punch hole in them.
+  if (z_fallocate_supported && !is_hugetlbfs()) {
+     const ZErrno err = fallocate_fill_hole_syscall(offset, length);
+     if (!err) {
+       // Success
+       return 0;
+     }
+
+     if (err != ENOSYS && err != EOPNOTSUPP) {
+       // Failed
+       return err;
+     }
+
+     // Not supported
+     log_debug(gc)("Falling back to fallocate() compatibility mode");
+     z_fallocate_supported = false;
+  }
+
+  return fallocate_fill_hole_compat(offset, length);
+}
+
+ZErrno ZBackingFile::fallocate_punch_hole(size_t offset, size_t length) {
+  if (is_hugetlbfs()) {
+    // We can only punch hole in pages that have been touched. Non-touched
+    // pages are only reserved, and not associated with any specific file
+    // segment. We don't know which pages have been previously touched, so
+    // we always touch them here to guarantee that we can punch hole.
+    const ZErrno err = fallocate_compat_mmap(offset, length, true /* touch */);
+    if (err) {
+      // Failed
+      return err;
+    }
+  }
+
+  const int mode = FALLOC_FL_PUNCH_HOLE|FALLOC_FL_KEEP_SIZE;
+  if (z_fallocate(_fd, mode, offset, length) == -1) {
+    // Failed
+    return errno;
+  }
+
+  // Success
+  return 0;
+}
+
+ZErrno ZBackingFile::split_and_fallocate(bool punch_hole, size_t offset, size_t length) {
+  // Try first half
+  const size_t offset0 = offset;
+  const size_t length0 = align_up(length / 2, _block_size);
+  const ZErrno err0 = fallocate(punch_hole, offset0, length0);
+  if (err0) {
+    return err0;
+  }
+
+  // Try second half
+  const size_t offset1 = offset0 + length0;
+  const size_t length1 = length - length0;
+  const ZErrno err1 = fallocate(punch_hole, offset1, length1);
+  if (err1) {
+    return err1;
+  }
+
+  // Success
+  return 0;
+}
+
+ZErrno ZBackingFile::fallocate(bool punch_hole, size_t offset, size_t length) {
+  assert(is_aligned(offset, _block_size), "Invalid offset");
+  assert(is_aligned(length, _block_size), "Invalid length");
+
+  const ZErrno err = punch_hole ? fallocate_punch_hole(offset, length) : fallocate_fill_hole(offset, length);
+  if (err == EINTR && length > _block_size) {
+    // Calling fallocate(2) with a large length can take a long time to
+    // complete. When running profilers, such as VTune, this syscall will
+    // be constantly interrupted by signals. Expanding the file in smaller
+    // steps avoids this problem.
+    return split_and_fallocate(punch_hole, offset, length);
+  }
+
+  return err;
+}
+
+bool ZBackingFile::commit_inner(size_t offset, size_t length) {
+  log_trace(gc, heap)("Committing memory: " SIZE_FORMAT "M-" SIZE_FORMAT "M (" SIZE_FORMAT "M)",
+                      offset / M, (offset + length) / M, length / M);
+
+retry:
+  const ZErrno err = fallocate(false /* punch_hole */, offset, length);
+  if (err) {
+    if (err == ENOSPC && !is_init_completed() && is_hugetlbfs() && z_fallocate_hugetlbfs_attempts-- > 0) {
+      // If we fail to allocate during initialization, due to lack of space on
+      // the hugetlbfs filesystem, then we wait and retry a few times before
+      // giving up. Otherwise there is a risk that running JVMs back-to-back
+      // will fail, since there is a delay between process termination and the
+      // huge pages owned by that process being returned to the huge page pool
+      // and made available for new allocations.
+      log_debug(gc, init)("Failed to commit memory (%s), retrying", err.to_string());
+
+      // Wait and retry in one second, in the hope that huge pages will be
+      // available by then.
+      sleep(1);
+      goto retry;
+    }
+
+    // Failed
+    log_error(gc)("Failed to commit memory (%s)", err.to_string());
+    return false;
+  }
+
+  // Success
+  return true;
+}
+
+size_t ZBackingFile::commit(size_t offset, size_t length) {
+  // Try to commit the whole region
+  if (commit_inner(offset, length)) {
+    // Success
+    return length;
+  }
+
+  // Failed, try to commit as much as possible
+  size_t start = offset;
+  size_t end = offset + length;
+
+  for (;;) {
+    length = align_down((end - start) / 2, ZGranuleSize);
+    if (length < ZGranuleSize) {
+      // Done, don't commit more
+      return start - offset;
+    }
+
+    if (commit_inner(start, length)) {
+      // Success, try commit more
+      start += length;
+    } else {
+      // Failed, try commit less
+      end -= length;
+    }
+  }
+}
+
+size_t ZBackingFile::uncommit(size_t offset, size_t length) {
+  log_trace(gc, heap)("Uncommitting memory: " SIZE_FORMAT "M-" SIZE_FORMAT "M (" SIZE_FORMAT "M)",
+                      offset / M, (offset + length) / M, length / M);
+
+  const ZErrno err = fallocate(true /* punch_hole */, offset, length);
+  if (err) {
+    log_error(gc)("Failed to uncommit memory (%s)", err.to_string());
+    return 0;
+  }
+
+  return length;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hotspot/os_cpu/linux_aarch64/gc/z/zBackingFile_linux_aarch64.hpp	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,73 @@
+/*
+ * Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+#ifndef OS_CPU_LINUX_AARCH64_GC_Z_ZBACKINGFILE_LINUX_AARCH64_HPP
+#define OS_CPU_LINUX_AARCH64_GC_Z_ZBACKINGFILE_LINUX_AARCH64_HPP
+
+#include "memory/allocation.hpp"
+
+class ZErrno;
+
+class ZBackingFile {
+private:
+  int      _fd;
+  size_t   _size;
+  uint64_t _filesystem;
+  size_t   _block_size;
+  size_t   _available;
+  bool     _initialized;
+
+  int create_mem_fd(const char* name) const;
+  int create_file_fd(const char* name) const;
+  int create_fd(const char* name) const;
+
+  bool is_tmpfs() const;
+  bool is_hugetlbfs() const;
+  bool tmpfs_supports_transparent_huge_pages() const;
+
+  ZErrno fallocate_compat_ftruncate(size_t size) const;
+  ZErrno fallocate_compat_mmap(size_t offset, size_t length, bool reserve_only) const;
+  ZErrno fallocate_compat_pwrite(size_t offset, size_t length) const;
+  ZErrno fallocate_fill_hole_compat(size_t offset, size_t length);
+  ZErrno fallocate_fill_hole_syscall(size_t offset, size_t length);
+  ZErrno fallocate_fill_hole(size_t offset, size_t length);
+  ZErrno fallocate_punch_hole(size_t offset, size_t length);
+  ZErrno split_and_fallocate(bool punch_hole, size_t offset, size_t length);
+  ZErrno fallocate(bool punch_hole, size_t offset, size_t length);
+
+  bool commit_inner(size_t offset, size_t length);
+
+public:
+  ZBackingFile();
+
+  bool is_initialized() const;
+
+  int fd() const;
+  size_t size() const;
+  size_t available() const;
+
+  size_t commit(size_t offset, size_t length);
+  size_t uncommit(size_t offset, size_t length);
+};
+
+#endif // OS_CPU_LINUX_AARCH64_GC_Z_ZBACKINGFILE_LINUX_AARCH64_HPP
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hotspot/os_cpu/linux_aarch64/gc/z/zBackingPath_linux_aarch64.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,149 @@
+/*
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+#include "precompiled.hpp"
+#include "gc/z/zArray.inline.hpp"
+#include "zBackingPath_linux_aarch64.hpp"
+#include "gc/z/zErrno.hpp"
+#include "logging/log.hpp"
+
+#include <stdio.h>
+#include <unistd.h>
+
+// Mount information, see proc(5) for more details.
+#define PROC_SELF_MOUNTINFO        "/proc/self/mountinfo"
+
+ZBackingPath::ZBackingPath(const char* filesystem, const char** preferred_mountpoints) {
+  if (ZPath != NULL) {
+    // Use specified path
+    _path = strdup(ZPath);
+  } else {
+    // Find suitable path
+    _path = find_mountpoint(filesystem, preferred_mountpoints);
+  }
+}
+
+ZBackingPath::~ZBackingPath() {
+  free(_path);
+  _path = NULL;
+}
+
+char* ZBackingPath::get_mountpoint(const char* line, const char* filesystem) const {
+  char* line_mountpoint = NULL;
+  char* line_filesystem = NULL;
+
+  // Parse line and return a newly allocated string containing the mount point if
+  // the line contains a matching filesystem and the mount point is accessible by
+  // the current user.
+  if (sscanf(line, "%*u %*u %*u:%*u %*s %ms %*[^-]- %ms", &line_mountpoint, &line_filesystem) != 2 ||
+      strcmp(line_filesystem, filesystem) != 0 ||
+      access(line_mountpoint, R_OK|W_OK|X_OK) != 0) {
+    // Not a matching or accessible filesystem
+    free(line_mountpoint);
+    line_mountpoint = NULL;
+  }
+
+  free(line_filesystem);
+
+  return line_mountpoint;
+}
+
+void ZBackingPath::get_mountpoints(const char* filesystem, ZArray<char*>* mountpoints) const {
+  FILE* fd = fopen(PROC_SELF_MOUNTINFO, "r");
+  if (fd == NULL) {
+    ZErrno err;
+    log_error(gc)("Failed to open %s: %s", PROC_SELF_MOUNTINFO, err.to_string());
+    return;
+  }
+
+  char* line = NULL;
+  size_t length = 0;
+
+  while (getline(&line, &length, fd) != -1) {
+    char* const mountpoint = get_mountpoint(line, filesystem);
+    if (mountpoint != NULL) {
+      mountpoints->add(mountpoint);
+    }
+  }
+
+  free(line);
+  fclose(fd);
+}
+
+void ZBackingPath::free_mountpoints(ZArray<char*>* mountpoints) const {
+  ZArrayIterator<char*> iter(mountpoints);
+  for (char* mountpoint; iter.next(&mountpoint);) {
+    free(mountpoint);
+  }
+  mountpoints->clear();
+}
+
+char* ZBackingPath::find_preferred_mountpoint(const char* filesystem,
+                                              ZArray<char*>* mountpoints,
+                                              const char** preferred_mountpoints) const {
+  // Find preferred mount point
+  ZArrayIterator<char*> iter1(mountpoints);
+  for (char* mountpoint; iter1.next(&mountpoint);) {
+    for (const char** preferred = preferred_mountpoints; *preferred != NULL; preferred++) {
+      if (!strcmp(mountpoint, *preferred)) {
+        // Preferred mount point found
+        return strdup(mountpoint);
+      }
+    }
+  }
+
+  // Preferred mount point not found
+  log_error(gc)("More than one %s filesystem found:", filesystem);
+  ZArrayIterator<char*> iter2(mountpoints);
+  for (char* mountpoint; iter2.next(&mountpoint);) {
+    log_error(gc)("  %s", mountpoint);
+  }
+
+  return NULL;
+}
+
+char* ZBackingPath::find_mountpoint(const char* filesystem, const char** preferred_mountpoints) const {
+  char* path = NULL;
+  ZArray<char*> mountpoints;
+
+  get_mountpoints(filesystem, &mountpoints);
+
+  if (mountpoints.size() == 0) {
+    // No mount point found
+    log_error(gc)("Failed to find an accessible %s filesystem", filesystem);
+  } else if (mountpoints.size() == 1) {
+    // One mount point found
+    path = strdup(mountpoints.at(0));
+  } else {
+    // More than one mount point found
+    path = find_preferred_mountpoint(filesystem, &mountpoints, preferred_mountpoints);
+  }
+
+  free_mountpoints(&mountpoints);
+
+  return path;
+}
+
+const char* ZBackingPath::get() const {
+  return _path;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hotspot/os_cpu/linux_aarch64/gc/z/zBackingPath_linux_aarch64.hpp	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+#ifndef OS_CPU_LINUX_AARCH64_GC_Z_ZBACKINGPATH_LINUX_AARCH64_HPP
+#define OS_CPU_LINUX_AARCH64_GC_Z_ZBACKINGPATH_LINUX_AARCH64_HPP
+
+#include "gc/z/zArray.hpp"
+#include "memory/allocation.hpp"
+
+class ZBackingPath : public StackObj {
+private:
+  char* _path;
+
+  char* get_mountpoint(const char* line,
+                       const char* filesystem) const;
+  void get_mountpoints(const char* filesystem,
+                       ZArray<char*>* mountpoints) const;
+  void free_mountpoints(ZArray<char*>* mountpoints) const;
+  char* find_preferred_mountpoint(const char* filesystem,
+                                  ZArray<char*>* mountpoints,
+                                  const char** preferred_mountpoints) const;
+  char* find_mountpoint(const char* filesystem,
+                        const char** preferred_mountpoints) const;
+
+public:
+  ZBackingPath(const char* filesystem, const char** preferred_mountpoints);
+  ~ZBackingPath();
+
+  const char* get() const;
+};
+
+#endif // OS_CPU_LINUX_AARCH64_GC_Z_ZBACKINGPATH_LINUX_AARCH64_HPP
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hotspot/os_cpu/linux_aarch64/gc/z/zGlobals_linux_aarch64.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,173 @@
+/*
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+#include "precompiled.hpp"
+#include "gc/z/zGlobals.hpp"
+#include "gc/z/zUtils.inline.hpp"
+#include "runtime/globals.hpp"
+#include "utilities/globalDefinitions.hpp"
+
+//
+// The heap can have three different layouts, depending on the max heap size.
+//
+// Address Space & Pointer Layout 1
+// --------------------------------
+//
+//  +--------------------------------+ 0x00007FFFFFFFFFFF (127TB)
+//  .                                .
+//  .                                .
+//  .                                .
+//  +--------------------------------+ 0x0000014000000000 (20TB)
+//  |         Remapped View          |
+//  +--------------------------------+ 0x0000010000000000 (16TB)
+//  |     (Reserved, but unused)     |
+//  +--------------------------------+ 0x00000c0000000000 (12TB)
+//  |         Marked1 View           |
+//  +--------------------------------+ 0x0000080000000000 (8TB)
+//  |         Marked0 View           |
+//  +--------------------------------+ 0x0000040000000000 (4TB)
+//  .                                .
+//  +--------------------------------+ 0x0000000000000000
+//
+//   6                  4 4  4 4
+//   3                  6 5  2 1                                             0
+//  +--------------------+----+-----------------------------------------------+
+//  |00000000 00000000 00|1111|11 11111111 11111111 11111111 11111111 11111111|
+//  +--------------------+----+-----------------------------------------------+
+//  |                    |    |
+//  |                    |    * 41-0 Object Offset (42-bits, 4TB address space)
+//  |                    |
+//  |                    * 45-42 Metadata Bits (4-bits)  0001 = Marked0      (Address view 4-8TB)
+//  |                                                    0010 = Marked1      (Address view 8-12TB)
+//  |                                                    0100 = Remapped     (Address view 16-20TB)
+//  |                                                    1000 = Finalizable  (Address view N/A)
+//  |
+//  * 63-46 Fixed (18-bits, always zero)
+//
+//
+// Address Space & Pointer Layout 2
+// --------------------------------
+//
+//  +--------------------------------+ 0x00007FFFFFFFFFFF (127TB)
+//  .                                .
+//  .                                .
+//  .                                .
+//  +--------------------------------+ 0x0000280000000000 (40TB)
+//  |         Remapped View          |
+//  +--------------------------------+ 0x0000200000000000 (32TB)
+//  |     (Reserved, but unused)     |
+//  +--------------------------------+ 0x0000180000000000 (24TB)
+//  |         Marked1 View           |
+//  +--------------------------------+ 0x0000100000000000 (16TB)
+//  |         Marked0 View           |
+//  +--------------------------------+ 0x0000080000000000 (8TB)
+//  .                                .
+//  +--------------------------------+ 0x0000000000000000
+//
+//   6                 4 4  4 4
+//   3                 7 6  3 2                                              0
+//  +------------------+-----+------------------------------------------------+
+//  |00000000 00000000 0|1111|111 11111111 11111111 11111111 11111111 11111111|
+//  +-------------------+----+------------------------------------------------+
+//  |                   |    |
+//  |                   |    * 42-0 Object Offset (43-bits, 8TB address space)
+//  |                   |
+//  |                   * 46-43 Metadata Bits (4-bits)  0001 = Marked0      (Address view 8-16TB)
+//  |                                                   0010 = Marked1      (Address view 16-24TB)
+//  |                                                   0100 = Remapped     (Address view 32-40TB)
+//  |                                                   1000 = Finalizable  (Address view N/A)
+//  |
+//  * 63-47 Fixed (17-bits, always zero)
+//
+//
+// Address Space & Pointer Layout 3
+// --------------------------------
+//
+//  +--------------------------------+ 0x00007FFFFFFFFFFF (127TB)
+//  .                                .
+//  .                                .
+//  .                                .
+//  +--------------------------------+ 0x0000500000000000 (80TB)
+//  |         Remapped View          |
+//  +--------------------------------+ 0x0000400000000000 (64TB)
+//  |     (Reserved, but unused)     |
+//  +--------------------------------+ 0x0000300000000000 (48TB)
+//  |         Marked1 View           |
+//  +--------------------------------+ 0x0000200000000000 (32TB)
+//  |         Marked0 View           |
+//  +--------------------------------+ 0x0000100000000000 (16TB)
+//  .                                .
+//  +--------------------------------+ 0x0000000000000000
+//
+//   6               4  4  4 4
+//   3               8  7  4 3                                               0
+//  +------------------+----+-------------------------------------------------+
+//  |00000000 00000000 |1111|1111 11111111 11111111 11111111 11111111 11111111|
+//  +------------------+----+-------------------------------------------------+
+//  |                  |    |
+//  |                  |    * 43-0 Object Offset (44-bits, 16TB address space)
+//  |                  |
+//  |                  * 47-44 Metadata Bits (4-bits)  0001 = Marked0      (Address view 16-32TB)
+//  |                                                  0010 = Marked1      (Address view 32-48TB)
+//  |                                                  0100 = Remapped     (Address view 64-80TB)
+//  |                                                  1000 = Finalizable  (Address view N/A)
+//  |
+//  * 63-48 Fixed (16-bits, always zero)
+//
+
+uintptr_t ZPlatformAddressSpaceStart() {
+  const uintptr_t first_heap_view_address = (uintptr_t)1 << (ZPlatformAddressMetadataShift() + 0);
+  const size_t min_address_offset = 0;
+  return first_heap_view_address + min_address_offset;
+}
+
+uintptr_t ZPlatformAddressSpaceEnd() {
+  const uintptr_t last_heap_view_address = (uintptr_t)1 << (ZPlatformAddressMetadataShift() + 2);
+  const size_t max_address_offset = (size_t)1 << ZPlatformAddressOffsetBits();
+  return last_heap_view_address + max_address_offset;
+}
+
+uintptr_t ZPlatformAddressReservedStart() {
+  return ZPlatformAddressSpaceStart();
+}
+
+uintptr_t ZPlatformAddressReservedEnd() {
+  return ZPlatformAddressSpaceEnd();
+}
+
+uintptr_t ZPlatformAddressBase() {
+  return 0;
+}
+
+size_t ZPlatformAddressOffsetBits() {
+  const size_t min_address_offset_bits = 42; // 4TB
+  const size_t max_address_offset_bits = 44; // 16TB
+  const size_t virtual_to_physical_ratio = 7; // 7:1
+  const size_t address_offset = ZUtils::round_up_power_of_2(MaxHeapSize * virtual_to_physical_ratio);
+  const size_t address_offset_bits = log2_intptr(address_offset);
+  return MIN2(MAX2(address_offset_bits, min_address_offset_bits), max_address_offset_bits);
+}
+
+size_t ZPlatformAddressMetadataShift() {
+  return ZPlatformAddressOffsetBits();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hotspot/os_cpu/linux_aarch64/gc/z/zGlobals_linux_aarch64.hpp	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+#ifndef OS_CPU_LINUX_AARCH64_GC_Z_ZGLOBALS_LINUX_AARCH64_HPP
+#define OS_CPU_LINUX_AARCH64_GC_Z_ZGLOBALS_LINUX_AARCH64_HPP
+
+//
+// Page Allocation Tiers
+// ---------------------
+//
+//  Page Type     Page Size     Object Size Limit     Object Alignment
+//  ------------------------------------------------------------------
+//  Small         2M            <= 265K               <MinObjAlignmentInBytes>
+//  Medium        32M           <= 4M                 4K
+//  Large         X*M           > 4M                  2M
+//  ------------------------------------------------------------------
+//
+const size_t ZPlatformGranuleSizeShift      = 21; // 2MB
+const size_t ZPlatformMaxHeapSizeShift      = 46; // 16TB
+const size_t ZPlatformNMethodDisarmedOffset = 4;
+const size_t ZPlatformCacheLineSize         = 64;
+
+uintptr_t    ZPlatformAddressSpaceStart();
+uintptr_t    ZPlatformAddressSpaceEnd();
+uintptr_t    ZPlatformAddressReservedStart();
+uintptr_t    ZPlatformAddressReservedEnd();
+uintptr_t    ZPlatformAddressBase();
+size_t       ZPlatformAddressOffsetBits();
+size_t       ZPlatformAddressMetadataShift();
+
+#endif // OS_CPU_LINUX_AARCH64_GC_Z_ZGLOBALS_LINUX_AARCH64_HPP
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hotspot/os_cpu/linux_aarch64/gc/z/zPhysicalMemoryBacking_linux_aarch64.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,333 @@
+/*
+ * Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+#include "precompiled.hpp"
+#include "gc/z/zAddress.inline.hpp"
+#include "gc/z/zBackingFile_linux_aarch64.hpp"
+#include "gc/z/zErrno.hpp"
+#include "gc/z/zGlobals.hpp"
+#include "gc/z/zLargePages.inline.hpp"
+#include "gc/z/zMemory.hpp"
+#include "gc/z/zNUMA.hpp"
+#include "gc/z/zPhysicalMemory.inline.hpp"
+#include "gc/z/zPhysicalMemoryBacking_linux_aarch64.hpp"
+#include "logging/log.hpp"
+#include "runtime/init.hpp"
+#include "runtime/os.hpp"
+#include "utilities/align.hpp"
+#include "utilities/debug.hpp"
+
+#include <stdio.h>
+#include <sys/mman.h>
+#include <sys/types.h>
+
+//
+// Support for building on older Linux systems
+//
+
+// madvise(2) flags
+#ifndef MADV_HUGEPAGE
+#define MADV_HUGEPAGE                        14
+#endif
+
+// Proc file entry for max map mount
+#define ZFILENAME_PROC_MAX_MAP_COUNT         "/proc/sys/vm/max_map_count"
+
+bool ZPhysicalMemoryBacking::is_initialized() const {
+  return _file.is_initialized();
+}
+
+void ZPhysicalMemoryBacking::warn_available_space(size_t max) const {
+  // Note that the available space on a tmpfs or a hugetlbfs filesystem
+  // will be zero if no size limit was specified when it was mounted.
+  const size_t available = _file.available();
+  if (available == 0) {
+    // No size limit set, skip check
+    log_info(gc, init)("Available space on backing filesystem: N/A");
+    return;
+  }
+
+  log_info(gc, init)("Available space on backing filesystem: " SIZE_FORMAT "M", available / M);
+
+  // Warn if the filesystem doesn't currently have enough space available to hold
+  // the max heap size. The max heap size will be capped if we later hit this limit
+  // when trying to expand the heap.
+  if (available < max) {
+    log_warning(gc)("***** WARNING! INCORRECT SYSTEM CONFIGURATION DETECTED! *****");
+    log_warning(gc)("Not enough space available on the backing filesystem to hold the current max Java heap");
+    log_warning(gc)("size (" SIZE_FORMAT "M). Please adjust the size of the backing filesystem accordingly "
+                    "(available", max / M);
+    log_warning(gc)("space is currently " SIZE_FORMAT "M). Continuing execution with the current filesystem "
+                    "size could", available / M);
+    log_warning(gc)("lead to a premature OutOfMemoryError being thrown, due to failure to map memory.");
+  }
+}
+
+void ZPhysicalMemoryBacking::warn_max_map_count(size_t max) const {
+  const char* const filename = ZFILENAME_PROC_MAX_MAP_COUNT;
+  FILE* const file = fopen(filename, "r");
+  if (file == NULL) {
+    // Failed to open file, skip check
+    log_debug(gc, init)("Failed to open %s", filename);
+    return;
+  }
+
+  size_t actual_max_map_count = 0;
+  const int result = fscanf(file, SIZE_FORMAT, &actual_max_map_count);
+  fclose(file);
+  if (result != 1) {
+    // Failed to read file, skip check
+    log_debug(gc, init)("Failed to read %s", filename);
+    return;
+  }
+
+  // The required max map count is impossible to calculate exactly since subsystems
+  // other than ZGC are also creating memory mappings, and we have no control over that.
+  // However, ZGC tends to create the most mappings and dominate the total count.
+  // In the worst cases, ZGC will map each granule three times, i.e. once per heap view.
+  // We speculate that we need another 20% to allow for non-ZGC subsystems to map memory.
+  const size_t required_max_map_count = (max / ZGranuleSize) * 3 * 1.2;
+  if (actual_max_map_count < required_max_map_count) {
+    log_warning(gc)("***** WARNING! INCORRECT SYSTEM CONFIGURATION DETECTED! *****");
+    log_warning(gc)("The system limit on number of memory mappings per process might be too low for the given");
+    log_warning(gc)("max Java heap size (" SIZE_FORMAT "M). Please adjust %s to allow for at",
+                    max / M, filename);
+    log_warning(gc)("least " SIZE_FORMAT " mappings (current limit is " SIZE_FORMAT "). Continuing execution "
+                    "with the current", required_max_map_count, actual_max_map_count);
+    log_warning(gc)("limit could lead to a fatal error, due to failure to map memory.");
+  }
+}
+
+void ZPhysicalMemoryBacking::warn_commit_limits(size_t max) const {
+  // Warn if available space is too low
+  warn_available_space(max);
+
+  // Warn if max map count is too low
+  warn_max_map_count(max);
+}
+
+bool ZPhysicalMemoryBacking::supports_uncommit() {
+  assert(!is_init_completed(), "Invalid state");
+  assert(_file.size() >= ZGranuleSize, "Invalid size");
+
+  // Test if uncommit is supported by uncommitting and then re-committing a granule
+  return commit(uncommit(ZGranuleSize)) == ZGranuleSize;
+}
+
+size_t ZPhysicalMemoryBacking::commit(size_t size) {
+  size_t committed = 0;
+
+  // Fill holes in the backing file
+  while (committed < size) {
+    size_t allocated = 0;
+    const size_t remaining = size - committed;
+    const uintptr_t start = _uncommitted.alloc_from_front_at_most(remaining, &allocated);
+    if (start == UINTPTR_MAX) {
+      // No holes to commit
+      break;
+    }
+
+    // Try commit hole
+    const size_t filled = _file.commit(start, allocated);
+    if (filled > 0) {
+      // Successful or partialy successful
+      _committed.free(start, filled);
+      committed += filled;
+    }
+    if (filled < allocated) {
+      // Failed or partialy failed
+      _uncommitted.free(start + filled, allocated - filled);
+      return committed;
+    }
+  }
+
+  // Expand backing file
+  if (committed < size) {
+    const size_t remaining = size - committed;
+    const uintptr_t start = _file.size();
+    const size_t expanded = _file.commit(start, remaining);
+    if (expanded > 0) {
+      // Successful or partialy successful
+      _committed.free(start, expanded);
+      committed += expanded;
+    }
+  }
+
+  return committed;
+}
+
+size_t ZPhysicalMemoryBacking::uncommit(size_t size) {
+  size_t uncommitted = 0;
+
+  // Punch holes in backing file
+  while (uncommitted < size) {
+    size_t allocated = 0;
+    const size_t remaining = size - uncommitted;
+    const uintptr_t start = _committed.alloc_from_back_at_most(remaining, &allocated);
+    assert(start != UINTPTR_MAX, "Allocation should never fail");
+
+    // Try punch hole
+    const size_t punched = _file.uncommit(start, allocated);
+    if (punched > 0) {
+      // Successful or partialy successful
+      _uncommitted.free(start, punched);
+      uncommitted += punched;
+    }
+    if (punched < allocated) {
+      // Failed or partialy failed
+      _committed.free(start + punched, allocated - punched);
+      return uncommitted;
+    }
+  }
+
+  return uncommitted;
+}
+
+ZPhysicalMemory ZPhysicalMemoryBacking::alloc(size_t size) {
+  assert(is_aligned(size, ZGranuleSize), "Invalid size");
+
+  ZPhysicalMemory pmem;
+
+  // Allocate segments
+  for (size_t allocated = 0; allocated < size; allocated += ZGranuleSize) {
+    const uintptr_t start = _committed.alloc_from_front(ZGranuleSize);
+    assert(start != UINTPTR_MAX, "Allocation should never fail");
+    pmem.add_segment(ZPhysicalMemorySegment(start, ZGranuleSize));
+  }
+
+  return pmem;
+}
+
+void ZPhysicalMemoryBacking::free(const ZPhysicalMemory& pmem) {
+  const size_t nsegments = pmem.nsegments();
+
+  // Free segments
+  for (size_t i = 0; i < nsegments; i++) {
+    const ZPhysicalMemorySegment& segment = pmem.segment(i);
+    _committed.free(segment.start(), segment.size());
+  }
+}
+
+void ZPhysicalMemoryBacking::map_failed(ZErrno err) const {
+  if (err == ENOMEM) {
+    fatal("Failed to map memory. Please check the system limit on number of "
+          "memory mappings allowed per process (see %s)", ZFILENAME_PROC_MAX_MAP_COUNT);
+  } else {
+    fatal("Failed to map memory (%s)", err.to_string());
+  }
+}
+
+void ZPhysicalMemoryBacking::advise_view(uintptr_t addr, size_t size, int advice) const {
+  if (madvise((void*)addr, size, advice) == -1) {
+    ZErrno err;
+    log_error(gc)("Failed to advise on memory (advice %d, %s)", advice, err.to_string());
+  }
+}
+
+void ZPhysicalMemoryBacking::pretouch_view(uintptr_t addr, size_t size) const {
+  const size_t page_size = ZLargePages::is_explicit() ? os::large_page_size() : os::vm_page_size();
+  os::pretouch_memory((void*)addr, (void*)(addr + size), page_size);
+}
+
+void ZPhysicalMemoryBacking::map_view(const ZPhysicalMemory& pmem, uintptr_t addr, bool pretouch) const {
+  const size_t nsegments = pmem.nsegments();
+  size_t size = 0;
+
+  // Map segments
+  for (size_t i = 0; i < nsegments; i++) {
+    const ZPhysicalMemorySegment& segment = pmem.segment(i);
+    const uintptr_t segment_addr = addr + size;
+    const void* const res = mmap((void*)segment_addr, segment.size(), PROT_READ|PROT_WRITE, MAP_FIXED|MAP_SHARED, _file.fd(), segment.start());
+    if (res == MAP_FAILED) {
+      ZErrno err;
+      map_failed(err);
+    }
+
+    size += segment.size();
+  }
+
+  // Advise on use of transparent huge pages before touching it
+  if (ZLargePages::is_transparent()) {
+    advise_view(addr, size, MADV_HUGEPAGE);
+  }
+
+  // NUMA interleave memory before touching it
+  ZNUMA::memory_interleave(addr, size);
+
+  // Pre-touch memory
+  if (pretouch) {
+    pretouch_view(addr, size);
+  }
+}
+
+void ZPhysicalMemoryBacking::unmap_view(const ZPhysicalMemory& pmem, uintptr_t addr) const {
+  // Note that we must keep the address space reservation intact and just detach
+  // the backing memory. For this reason we map a new anonymous, non-accessible
+  // and non-reserved page over the mapping instead of actually unmapping.
+  const void* const res = mmap((void*)addr, pmem.size(), PROT_NONE, MAP_FIXED|MAP_ANONYMOUS|MAP_PRIVATE|MAP_NORESERVE, -1, 0);
+  if (res == MAP_FAILED) {
+    ZErrno err;
+    map_failed(err);
+  }
+}
+
+uintptr_t ZPhysicalMemoryBacking::nmt_address(uintptr_t offset) const {
+  // From an NMT point of view we treat the first heap view (marked0) as committed
+  return ZAddress::marked0(offset);
+}
+
+void ZPhysicalMemoryBacking::map(const ZPhysicalMemory& pmem, uintptr_t offset) const {
+  if (ZVerifyViews) {
+    // Map good view
+    map_view(pmem, ZAddress::good(offset), AlwaysPreTouch);
+  } else {
+    // Map all views
+    map_view(pmem, ZAddress::marked0(offset), AlwaysPreTouch);
+    map_view(pmem, ZAddress::marked1(offset), AlwaysPreTouch);
+    map_view(pmem, ZAddress::remapped(offset), AlwaysPreTouch);
+  }
+}
+
+void ZPhysicalMemoryBacking::unmap(const ZPhysicalMemory& pmem, uintptr_t offset) const {
+  if (ZVerifyViews) {
+    // Unmap good view
+    unmap_view(pmem, ZAddress::good(offset));
+  } else {
+    // Unmap all views
+    unmap_view(pmem, ZAddress::marked0(offset));
+    unmap_view(pmem, ZAddress::marked1(offset));
+    unmap_view(pmem, ZAddress::remapped(offset));
+  }
+}
+
+void ZPhysicalMemoryBacking::debug_map(const ZPhysicalMemory& pmem, uintptr_t offset) const {
+  // Map good view
+  assert(ZVerifyViews, "Should be enabled");
+  map_view(pmem, ZAddress::good(offset), false /* pretouch */);
+}
+
+void ZPhysicalMemoryBacking::debug_unmap(const ZPhysicalMemory& pmem, uintptr_t offset) const {
+  // Unmap good view
+  assert(ZVerifyViews, "Should be enabled");
+  unmap_view(pmem, ZAddress::good(offset));
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hotspot/os_cpu/linux_aarch64/gc/z/zPhysicalMemoryBacking_linux_aarch64.hpp	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,70 @@
+/*
+ * Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+#ifndef OS_CPU_LINUX_AARCH64_GC_Z_ZPHYSICALMEMORYBACKING_LINUX_AARCH64_HPP
+#define OS_CPU_LINUX_AARCH64_GC_Z_ZPHYSICALMEMORYBACKING_LINUX_AARCH64_HPP
+
+#include "gc/z/zBackingFile_linux_aarch64.hpp"
+#include "gc/z/zMemory.hpp"
+
+class ZErrno;
+class ZPhysicalMemory;
+
+class ZPhysicalMemoryBacking {
+private:
+  ZBackingFile   _file;
+  ZMemoryManager _committed;
+  ZMemoryManager _uncommitted;
+
+  void warn_available_space(size_t max) const;
+  void warn_max_map_count(size_t max) const;
+
+  void map_failed(ZErrno err) const;
+
+  void advise_view(uintptr_t addr, size_t size, int advice) const;
+  void pretouch_view(uintptr_t addr, size_t size) const;
+  void map_view(const ZPhysicalMemory& pmem, uintptr_t addr, bool pretouch) const;
+  void unmap_view(const ZPhysicalMemory& pmem, uintptr_t addr) const;
+
+public:
+  bool is_initialized() const;
+
+  void warn_commit_limits(size_t max) const;
+  bool supports_uncommit();
+
+  size_t commit(size_t size);
+  size_t uncommit(size_t size);
+
+  ZPhysicalMemory alloc(size_t size);
+  void free(const ZPhysicalMemory& pmem);
+
+  uintptr_t nmt_address(uintptr_t offset) const;
+
+  void map(const ZPhysicalMemory& pmem, uintptr_t offset) const;
+  void unmap(const ZPhysicalMemory& pmem, uintptr_t offset) const;
+
+  void debug_map(const ZPhysicalMemory& pmem, uintptr_t offset) const;
+  void debug_unmap(const ZPhysicalMemory& pmem, uintptr_t offset) const;
+};
+
+#endif // OS_CPU_LINUX_AARCH64_GC_Z_ZPHYSICALMEMORYBACKING_LINUX_AARCH64_HPP
--- a/src/hotspot/os_cpu/linux_aarch64/os_linux_aarch64.cpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/os_cpu/linux_aarch64/os_linux_aarch64.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -83,19 +83,13 @@
 #define REG_SP REG_RSP
 #define REG_PC REG_RIP
 #define REG_FP REG_RBP
-#define SPELL_REG_SP "rsp"
-#define SPELL_REG_FP "rbp"
 #else
 #define REG_FP 29
 #define REG_LR 30
-
-#define SPELL_REG_SP "sp"
-#define SPELL_REG_FP "x29"
 #endif
 
-address os::current_stack_pointer() {
-  register void *esp __asm__ (SPELL_REG_SP);
-  return (address) esp;
+NOINLINE address os::current_stack_pointer() {
+  return (address)__builtin_frame_address(0);
 }
 
 char* os::non_memory_address_word() {
@@ -230,23 +224,8 @@
 #endif
 }
 
-intptr_t* _get_previous_fp() {
-  register intptr_t **fp __asm__ (SPELL_REG_FP);
-
-  // fp is for this frame (_get_previous_fp). We want the fp for the
-  // caller of os::current_frame*(), so go up two frames. However, for
-  // optimized builds, _get_previous_fp() will be inlined, so only go
-  // up 1 frame in that case.
-  #ifdef _NMT_NOINLINE_
-    return **(intptr_t***)fp;
-  #else
-    return *fp;
-  #endif
-}
-
-
-frame os::current_frame() {
-  intptr_t* fp = _get_previous_fp();
+NOINLINE frame os::current_frame() {
+  intptr_t *fp = *(intptr_t **)__builtin_frame_address(0);
   frame myframe((intptr_t*)os::current_stack_pointer(),
                 (intptr_t*)fp,
                 CAST_FROM_FN_PTR(address, os::current_frame));
@@ -259,12 +238,6 @@
 }
 
 // Utility functions
-
-// From IA32 System Programming Guide
-enum {
-  trap_page_fault = 0xE
-};
-
 #ifdef BUILTIN_SIM
 extern "C" void Fetch32PFI () ;
 extern "C" void Fetch32Resume () ;
@@ -667,42 +640,42 @@
     return 0;
   }
 
-  void _Copy_conjoint_jshorts_atomic(jshort* from, jshort* to, size_t count) {
+  void _Copy_conjoint_jshorts_atomic(const jshort* from, jshort* to, size_t count) {
     if (from > to) {
-      jshort *end = from + count;
+      const jshort *end = from + count;
       while (from < end)
         *(to++) = *(from++);
     }
     else if (from < to) {
-      jshort *end = from;
+      const jshort *end = from;
       from += count - 1;
       to   += count - 1;
       while (from >= end)
         *(to--) = *(from--);
     }
   }
-  void _Copy_conjoint_jints_atomic(jint* from, jint* to, size_t count) {
+  void _Copy_conjoint_jints_atomic(const jint* from, jint* to, size_t count) {
     if (from > to) {
-      jint *end = from + count;
+      const jint *end = from + count;
       while (from < end)
         *(to++) = *(from++);
     }
     else if (from < to) {
-      jint *end = from;
+      const jint *end = from;
       from += count - 1;
       to   += count - 1;
       while (from >= end)
         *(to--) = *(from--);
     }
   }
-  void _Copy_conjoint_jlongs_atomic(jlong* from, jlong* to, size_t count) {
+  void _Copy_conjoint_jlongs_atomic(const jlong* from, jlong* to, size_t count) {
     if (from > to) {
-      jlong *end = from + count;
+      const jlong *end = from + count;
       while (from < end)
         os::atomic_copy64(from++, to++);
     }
     else if (from < to) {
-      jlong *end = from;
+      const jlong *end = from;
       from += count - 1;
       to   += count - 1;
       while (from >= end)
@@ -710,22 +683,22 @@
     }
   }
 
-  void _Copy_arrayof_conjoint_bytes(HeapWord* from,
+  void _Copy_arrayof_conjoint_bytes(const HeapWord* from,
                                     HeapWord* to,
                                     size_t    count) {
     memmove(to, from, count);
   }
-  void _Copy_arrayof_conjoint_jshorts(HeapWord* from,
+  void _Copy_arrayof_conjoint_jshorts(const HeapWord* from,
                                       HeapWord* to,
                                       size_t    count) {
     memmove(to, from, count * 2);
   }
-  void _Copy_arrayof_conjoint_jints(HeapWord* from,
+  void _Copy_arrayof_conjoint_jints(const HeapWord* from,
                                     HeapWord* to,
                                     size_t    count) {
     memmove(to, from, count * 4);
   }
-  void _Copy_arrayof_conjoint_jlongs(HeapWord* from,
+  void _Copy_arrayof_conjoint_jlongs(const HeapWord* from,
                                      HeapWord* to,
                                      size_t    count) {
     memmove(to, from, count * 8);
--- a/src/hotspot/share/asm/assembler.cpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/asm/assembler.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -313,25 +313,22 @@
 bool MacroAssembler::uses_implicit_null_check(void* address) {
   // Exception handler checks the nmethod's implicit null checks table
   // only when this method returns false.
-  intptr_t int_address = reinterpret_cast<intptr_t>(address);
-  intptr_t cell_header_size = Universe::heap()->cell_header_size();
-  size_t region_size = os::vm_page_size() + cell_header_size;
+  uintptr_t addr = reinterpret_cast<uintptr_t>(address);
+  uintptr_t page_size = (uintptr_t)os::vm_page_size();
 #ifdef _LP64
   if (UseCompressedOops && CompressedOops::base() != NULL) {
     // A SEGV can legitimately happen in C2 code at address
     // (heap_base + offset) if  Matcher::narrow_oop_use_complex_address
     // is configured to allow narrow oops field loads to be implicitly
     // null checked
-    intptr_t start = ((intptr_t)CompressedOops::base()) - cell_header_size;
-    intptr_t end = start + region_size;
-    if (int_address >= start && int_address < end) {
+    uintptr_t start = (uintptr_t)CompressedOops::base();
+    uintptr_t end = start + page_size;
+    if (addr >= start && addr < end) {
       return true;
     }
   }
 #endif
-  intptr_t start = -cell_header_size;
-  intptr_t end = start + region_size;
-  return int_address >= start && int_address < end;
+  return addr < page_size;
 }
 
 bool MacroAssembler::needs_explicit_null_check(intptr_t offset) {
@@ -341,12 +338,8 @@
   // with -1. Another example is GraphBuilder::access_field(...) which uses -1 as placeholder
   // for offsets to be patched in later. The -1 there means the offset is not yet known
   // and may lie outside of the zero-trapping page, and thus we need to ensure we're forcing
-  // an explicit null check for -1, even if it may otherwise be in the range
-  // [-cell_header_size, os::vm_page_size).
-  // TODO: Find and replace all relevant uses of -1 with a reasonably named constant.
-  if (offset == -1) return true;
+  // an explicit null check for -1.
 
-  // Check if offset is outside of [-cell_header_size, os::vm_page_size)
-  return offset < -Universe::heap()->cell_header_size() ||
-         offset >= os::vm_page_size();
+  // Check if offset is outside of [0, os::vm_page_size()]
+  return offset < 0 || offset >= os::vm_page_size();
 }
--- a/src/hotspot/share/classfile/classFileParser.cpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/classfile/classFileParser.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -125,6 +125,8 @@
 
 #define JAVA_13_VERSION                   57
 
+#define JAVA_14_VERSION                   58
+
 void ClassFileParser::set_class_bad_constant_seen(short bad_constant) {
   assert((bad_constant == JVM_CONSTANT_Module ||
           bad_constant == JVM_CONSTANT_Package) && _major_version >= JAVA_9_VERSION,
@@ -4956,6 +4958,7 @@
 bool ClassFileParser::verify_unqualified_name(const char* name,
                                               unsigned int length,
                                               int type) {
+  if (length == 0) return false;  // Must have at least one char.
   for (const char* p = name; p != name + length; p++) {
     switch(*p) {
       case '.':
@@ -5105,7 +5108,7 @@
           int newlen = c - (char*) signature;
           bool legal = verify_unqualified_name(signature, newlen, LegalClass);
           if (!legal) {
-            classfile_parse_error("Class name contains illegal character "
+            classfile_parse_error("Class name is empty or contains illegal character "
                                   "in descriptor in class file %s",
                                   CHECK_0);
             return NULL;
--- a/src/hotspot/share/classfile/systemDictionary.cpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/classfile/systemDictionary.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -2861,14 +2861,17 @@
 }
 
 TableStatistics SystemDictionary::placeholders_statistics() {
+  MutexLocker ml(SystemDictionary_lock);
   return placeholders()->statistics_calculate();
 }
 
 TableStatistics SystemDictionary::loader_constraints_statistics() {
+  MutexLocker ml(SystemDictionary_lock);
   return constraints()->statistics_calculate();
 }
 
 TableStatistics SystemDictionary::protection_domain_cache_statistics() {
+  MutexLocker ml(SystemDictionary_lock);
   return pd_cache_table()->statistics_calculate();
 }
 
--- a/src/hotspot/share/classfile/verifier.cpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/classfile/verifier.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -165,22 +165,28 @@
                            PerfClassTraceTime::CLASS_VERIFY);
 
   // If the class should be verified, first see if we can use the split
-  // verifier.  If not, or if verification fails and FailOverToOldVerifier
-  // is set, then call the inference verifier.
+  // verifier.  If not, or if verification fails and can failover, then
+  // call the inference verifier.
   Symbol* exception_name = NULL;
   const size_t message_buffer_len = klass->name()->utf8_length() + 1024;
   char* message_buffer = NULL;
   char* exception_message = NULL;
 
-  bool can_failover = FailOverToOldVerifier &&
-     klass->major_version() < NOFAILOVER_MAJOR_VERSION;
-
   log_info(class, init)("Start class verification for: %s", klass->external_name());
   if (klass->major_version() >= STACKMAP_ATTRIBUTE_MAJOR_VERSION) {
     ClassVerifier split_verifier(klass, THREAD);
     split_verifier.verify_class(THREAD);
     exception_name = split_verifier.result();
-    if (can_failover && !HAS_PENDING_EXCEPTION &&
+
+    // If DumpSharedSpaces is set then don't fall back to the old verifier on
+    // verification failure. If a class fails verification with the split verifier,
+    // it might fail the CDS runtime verifier constraint check. In that case, we
+    // don't want to share the class. We only archive classes that pass the split
+    // verifier.
+    bool can_failover = !DumpSharedSpaces &&
+      klass->major_version() < NOFAILOVER_MAJOR_VERSION;
+
+    if (can_failover && !HAS_PENDING_EXCEPTION &&  // Split verifier doesn't set PENDING_EXCEPTION for failure
         (exception_name == vmSymbols::java_lang_VerifyError() ||
          exception_name == vmSymbols::java_lang_ClassFormatError())) {
       log_info(verification)("Fail over class verification to old verifier for: %s", klass->external_name());
--- a/src/hotspot/share/code/nmethod.cpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/code/nmethod.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -1473,6 +1473,13 @@
   return NativeAccess<AS_NO_KEEPALIVE>::oop_load(oop_addr_at(index));
 }
 
+oop nmethod::oop_at_phantom(int index) const {
+  if (index == 0) {
+    return NULL;
+  }
+  return NativeAccess<ON_PHANTOM_OOP_REF>::oop_load(oop_addr_at(index));
+}
+
 //
 // Notify all classes this nmethod is dependent on that it is no
 // longer dependent. This should only be called in two situations.
--- a/src/hotspot/share/code/nmethod.hpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/code/nmethod.hpp	Fri Jun 21 09:05:45 2019 -0700
@@ -392,6 +392,7 @@
   // Support for oops in scopes and relocs:
   // Note: index 0 is reserved for null.
   oop   oop_at(int index) const;
+  oop   oop_at_phantom(int index) const; // phantom reference
   oop*  oop_addr_at(int index) const {  // for GC
     // relocation indexes are biased by 1 (because 0 is reserved)
     assert(index > 0 && index <= oops_count(), "must be a valid non-zero index");
--- a/src/hotspot/share/gc/g1/g1BlockOffsetTable.cpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/gc/g1/g1BlockOffsetTable.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -391,8 +391,6 @@
 #endif // !PRODUCT
 
 HeapWord* G1BlockOffsetTablePart::initialize_threshold_raw() {
-  assert(!G1CollectedHeap::heap()->is_in_reserved(_bot->_offset_array),
-         "just checking");
   _next_offset_index = _bot->index_for_raw(_space->bottom());
   _next_offset_index++;
   _next_offset_threshold =
@@ -401,8 +399,6 @@
 }
 
 void G1BlockOffsetTablePart::zero_bottom_entry_raw() {
-  assert(!G1CollectedHeap::heap()->is_in_reserved(_bot->_offset_array),
-         "just checking");
   size_t bottom_index = _bot->index_for_raw(_space->bottom());
   assert(_bot->address_for_index_raw(bottom_index) == _space->bottom(),
          "Precondition of call");
@@ -410,8 +406,6 @@
 }
 
 HeapWord* G1BlockOffsetTablePart::initialize_threshold() {
-  assert(!G1CollectedHeap::heap()->is_in_reserved(_bot->_offset_array),
-         "just checking");
   _next_offset_index = _bot->index_for(_space->bottom());
   _next_offset_index++;
   _next_offset_threshold =
--- a/src/hotspot/share/gc/g1/g1BlockOffsetTable.hpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/gc/g1/g1BlockOffsetTable.hpp	Fri Jun 21 09:05:45 2019 -0700
@@ -52,7 +52,7 @@
 
   // Array for keeping offsets for retrieving object start fast given an
   // address.
-  u_char* _offset_array;          // byte array keeping backwards offsets
+  volatile u_char* _offset_array;  // byte array keeping backwards offsets
 
   void check_offset(size_t offset, const char* msg) const {
     assert(offset <= BOTConstants::N_words,
@@ -64,10 +64,7 @@
   // For performance these have to devolve to array accesses in product builds.
   inline u_char offset_array(size_t index) const;
 
-  void set_offset_array_raw(size_t index, u_char offset) {
-    _offset_array[index] = offset;
-  }
-
+  inline void set_offset_array_raw(size_t index, u_char offset);
   inline void set_offset_array(size_t index, u_char offset);
 
   inline void set_offset_array(size_t index, HeapWord* high, HeapWord* low);
--- a/src/hotspot/share/gc/g1/g1BlockOffsetTable.inline.hpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/gc/g1/g1BlockOffsetTable.inline.hpp	Fri Jun 21 09:05:45 2019 -0700
@@ -29,6 +29,7 @@
 #include "gc/g1/heapRegion.hpp"
 #include "gc/shared/memset_with_concurrent_readers.hpp"
 #include "gc/shared/space.hpp"
+#include "runtime/atomic.hpp"
 
 inline HeapWord* G1BlockOffsetTablePart::block_start(const void* addr) {
   if (addr >= _space->bottom() && addr < _space->end()) {
@@ -51,7 +52,11 @@
 
 u_char G1BlockOffsetTable::offset_array(size_t index) const {
   check_index(index, "index out of range");
-  return _offset_array[index];
+  return Atomic::load(&_offset_array[index]);
+}
+
+void G1BlockOffsetTable::set_offset_array_raw(size_t index, u_char offset) {
+  Atomic::store(offset, &_offset_array[index]);
 }
 
 void G1BlockOffsetTable::set_offset_array(size_t index, u_char offset) {
@@ -71,7 +76,8 @@
   check_index(right, "right index out of range");
   assert(left <= right, "indexes out of order");
   size_t num_cards = right - left + 1;
-  memset_with_concurrent_readers(&_offset_array[left], offset, num_cards);
+  memset_with_concurrent_readers
+    (const_cast<u_char*> (&_offset_array[left]), offset, num_cards);
 }
 
 // Variant of index_for that does not check the index for validity.
--- a/src/hotspot/share/gc/g1/g1CollectedHeap.cpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/gc/g1/g1CollectedHeap.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -2780,6 +2780,23 @@
   cl.flush_rem_set_entries();
 }
 
+#ifndef PRODUCT
+void G1CollectedHeap::verify_region_attr_remset_update() {
+  class VerifyRegionAttrRemSet : public HeapRegionClosure {
+  public:
+    virtual bool do_heap_region(HeapRegion* r) {
+      G1CollectedHeap* g1h = G1CollectedHeap::heap();
+      bool const needs_remset_update = g1h->region_attr(r->bottom()).needs_remset_update();
+      assert(r->rem_set()->is_tracked() == needs_remset_update,
+             "Region %u remset tracking status (%s) different to region attribute (%s)",
+             r->hrm_index(), BOOL_TO_STR(r->rem_set()->is_tracked()), BOOL_TO_STR(needs_remset_update));
+      return false;
+    }
+  } cl;
+  heap_region_iterate(&cl);
+}
+#endif
+
 class VerifyRegionRemSetClosure : public HeapRegionClosure {
   public:
     bool do_heap_region(HeapRegion* hr) {
@@ -3059,6 +3076,7 @@
 
         // Actually do the work...
         evacuate_initial_collection_set(&per_thread_states);
+
         if (_collection_set.optional_region_length() != 0) {
           evacuate_optional_collection_set(&per_thread_states);
         }
--- a/src/hotspot/share/gc/g1/g1CollectedHeap.hpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/gc/g1/g1CollectedHeap.hpp	Fri Jun 21 09:05:45 2019 -0700
@@ -593,6 +593,10 @@
     _region_attr.clear();
   }
 
+  // Verify that the G1RegionAttr remset tracking corresponds to actual remset tracking
+  // for all regions.
+  void verify_region_attr_remset_update() PRODUCT_RETURN;
+
   bool is_user_requested_concurrent_full_gc(GCCause::Cause cause);
 
   // This is called at the start of either a concurrent cycle or a Full
--- a/src/hotspot/share/gc/g1/g1CollectionSet.cpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/gc/g1/g1CollectionSet.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -519,6 +519,9 @@
   _num_optional_regions -= num_selected_regions;
 
   stop_incremental_building();
+
+  _g1h->verify_region_attr_remset_update();
+
   return num_selected_regions > 0;
 }
 
@@ -526,10 +529,15 @@
   for (uint i = 0; i < _num_optional_regions; i++) {
     HeapRegion* r = candidates()->at(candidates()->cur_idx() + i);
     pss->record_unused_optional_region(r);
+    // Clear collection set marker and make sure that the remembered set information
+    // is correct as we still need it later.
     _g1h->clear_region_attr(r);
+    _g1h->register_region_with_region_attr(r);
     r->clear_index_in_opt_cset();
   }
   free_optional_regions();
+
+  _g1h->verify_region_attr_remset_update();
 }
 
 #ifdef ASSERT
--- a/src/hotspot/share/gc/shared/c2/barrierSetC2.hpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/gc/shared/c2/barrierSetC2.hpp	Fri Jun 21 09:05:45 2019 -0700
@@ -308,7 +308,6 @@
   virtual bool escape_add_to_con_graph(ConnectionGraph* conn_graph, PhaseGVN* gvn, Unique_Node_List* delayed_worklist, Node* n, uint opcode) const { return false; }
   virtual bool escape_add_final_edges(ConnectionGraph* conn_graph, PhaseGVN* gvn, Node* n, uint opcode) const { return false; }
   virtual bool escape_has_out_with_unsafe_object(Node* n) const { return false; }
-  virtual bool escape_is_barrier_node(Node* n) const { return false; }
 
   virtual bool matcher_find_shared_visit(Matcher* matcher, Matcher::MStack& mstack, Node* n, uint opcode, bool& mem_op, int& mem_addr_idx) const { return false; };
   virtual bool matcher_find_shared_post_visit(Matcher* matcher, Node* n, uint opcode) const { return false; };
--- a/src/hotspot/share/gc/shared/collectedHeap.hpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/gc/shared/collectedHeap.hpp	Fri Jun 21 09:05:45 2019 -0700
@@ -534,11 +534,6 @@
 
   virtual size_t obj_size(oop obj) const;
 
-  // Cells are memory slices allocated by the allocator. Objects are initialized
-  // in cells. The cell itself may have a header, found at a negative offset of
-  // oops. Usually, the size of the cell header is 0, but it may be larger.
-  virtual ptrdiff_t cell_header_size() const { return 0; }
-
   // Non product verification and debugging.
 #ifndef PRODUCT
   // Support for PromotionFailureALot.  Return true if it's time to cause a
--- a/src/hotspot/share/gc/shared/gcLocker.inline.hpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/gc/shared/gcLocker.inline.hpp	Fri Jun 21 09:05:45 2019 -0700
@@ -26,7 +26,7 @@
 #define SHARE_GC_SHARED_GCLOCKER_INLINE_HPP
 
 #include "gc/shared/gcLocker.hpp"
-#include "runtime/thread.hpp"
+#include "runtime/thread.inline.hpp"
 
 void GCLocker::lock_critical(JavaThread* thread) {
   if (!thread->in_critical()) {
--- a/src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -1194,10 +1194,6 @@
 
 }
 
-bool ShenandoahBarrierSetC2::escape_is_barrier_node(Node* n) const {
-  return n->Opcode() == Op_ShenandoahLoadReferenceBarrier;
-}
-
 bool ShenandoahBarrierSetC2::matcher_find_shared_post_visit(Matcher* matcher, Node* n, uint opcode) const {
   switch (opcode) {
     case Op_ShenandoahCompareAndExchangeP:
--- a/src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.hpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.hpp	Fri Jun 21 09:05:45 2019 -0700
@@ -144,7 +144,6 @@
   virtual bool escape_add_to_con_graph(ConnectionGraph* conn_graph, PhaseGVN* gvn, Unique_Node_List* delayed_worklist, Node* n, uint opcode) const;
   virtual bool escape_add_final_edges(ConnectionGraph* conn_graph, PhaseGVN* gvn, Node* n, uint opcode) const;
   virtual bool escape_has_out_with_unsafe_object(Node* n) const;
-  virtual bool escape_is_barrier_node(Node* n) const;
 
   virtual bool matcher_find_shared_post_visit(Matcher* matcher, Node* n, uint opcode) const;
   virtual bool matcher_is_store_load_barrier(Node* x, uint xop) const;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hotspot/share/gc/shenandoah/shenandoahConcurrentRoots.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2019, Red Hat, Inc. All rights reserved.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#include "precompiled.hpp"
+
+#include "gc/shenandoah/shenandoahConcurrentRoots.hpp"
+#include "gc/shenandoah/shenandoahHeap.inline.hpp"
+
+bool ShenandoahConcurrentRoots::can_do_concurrent_roots() {
+  // Don't support traversal GC at this moment
+  return !ShenandoahHeap::heap()->is_concurrent_traversal_in_progress();
+}
+
+bool ShenandoahConcurrentRoots::should_do_concurrent_roots() {
+  ShenandoahHeap* const heap = ShenandoahHeap::heap();
+  bool stw_gc_in_progress = heap->is_full_gc_in_progress() ||
+                            heap->is_degenerated_gc_in_progress();
+  return can_do_concurrent_roots() &&
+         !stw_gc_in_progress;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hotspot/share/gc/shenandoah/shenandoahConcurrentRoots.hpp	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2019, Red Hat, Inc. All rights reserved.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHCONCURRENTROOTS_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHCONCURRENTROOTS_HPP
+
+#include "memory/allocation.hpp"
+
+class ShenandoahConcurrentRoots : public AllStatic {
+public:
+  // Can GC settings allow concurrent root processing
+  static bool can_do_concurrent_roots();
+  // If current GC cycle can process roots concurrently
+  static bool should_do_concurrent_roots();
+};
+
+
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHCONCURRENTROOTS_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -377,6 +377,9 @@
   // Complete marking under STW, and start evacuation
   heap->vmop_entry_final_mark();
 
+  // Evacuate concurrent roots
+  heap->entry_roots();
+
   // Final mark might have reclaimed some immediate garbage, kick cleanup to reclaim
   // the space. This would be the last action if there is nothing to evacuate.
   heap->entry_cleanup();
--- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -38,6 +38,7 @@
 #include "gc/shenandoah/shenandoahCollectionSet.hpp"
 #include "gc/shenandoah/shenandoahCollectorPolicy.hpp"
 #include "gc/shenandoah/shenandoahConcurrentMark.inline.hpp"
+#include "gc/shenandoah/shenandoahConcurrentRoots.hpp"
 #include "gc/shenandoah/shenandoahControlThread.hpp"
 #include "gc/shenandoah/shenandoahFreeSet.hpp"
 #include "gc/shenandoah/shenandoahPhaseTimings.hpp"
@@ -1071,9 +1072,11 @@
   DerivedPointerTable::clear();
 #endif
   assert(ShenandoahSafepoint::is_at_shenandoah_safepoint(), "Only iterate roots while world is stopped");
-
   {
-    ShenandoahRootEvacuator rp(workers()->active_workers(), ShenandoahPhaseTimings::init_evac);
+    // Include concurrent roots if current cycle can not process those roots concurrently
+    ShenandoahRootEvacuator rp(workers()->active_workers(),
+                               ShenandoahPhaseTimings::init_evac,
+                               !ShenandoahConcurrentRoots::should_do_concurrent_roots());
     ShenandoahEvacuateUpdateRootsTask roots_task(&rp);
     workers()->run_task(&roots_task);
   }
@@ -1276,10 +1279,15 @@
 
   Stack<oop,mtGC> oop_stack;
 
-  // First, we process all GC roots. This populates the work stack with initial objects.
-  ShenandoahAllRootScanner rp(1, ShenandoahPhaseTimings::_num_phases);
+  // First, we process GC roots according to current GC cycle. This populates the work stack with initial objects.
+  ShenandoahHeapIterationRootScanner rp;
   ObjectIterateScanRootClosure oops(&_aux_bit_map, &oop_stack);
-  rp.roots_do_unchecked(&oops);
+
+  if (unload_classes()) {
+    rp.strong_roots_do(&oops);
+  } else {
+    rp.roots_do(&oops);
+  }
 
   // Work through the oop stack to traverse heap.
   while (! oop_stack.is_empty()) {
@@ -1512,7 +1520,11 @@
       }
 
       if (ShenandoahVerify) {
-        verifier()->verify_roots_no_forwarded();
+        if (ShenandoahConcurrentRoots::should_do_concurrent_roots()) {
+          verifier()->verify_roots_no_forwarded_except(ShenandoahRootVerifier::JNIHandleRoots);
+        } else {
+          verifier()->verify_roots_no_forwarded();
+        }
         verifier()->verify_during_evacuation();
       }
     } else {
@@ -1573,6 +1585,30 @@
   free_set()->recycle_trash();
 }
 
+class ShenandoahConcurrentRootsEvacUpdateTask : public AbstractGangTask {
+private:
+  ShenandoahJNIHandleRoots<true /*concurrent*/> _jni_roots;
+
+public:
+  ShenandoahConcurrentRootsEvacUpdateTask() :
+    AbstractGangTask("Shenandoah Evacuate/Update Concurrent Roots Task") {
+  }
+
+  void work(uint worker_id) {
+    ShenandoahEvacOOMScope oom;
+    ShenandoahEvacuateUpdateRootsClosure cl;
+    _jni_roots.oops_do<ShenandoahEvacuateUpdateRootsClosure>(&cl);
+  }
+};
+
+void ShenandoahHeap::op_roots() {
+  if (is_evacuation_in_progress() &&
+      ShenandoahConcurrentRoots::should_do_concurrent_roots()) {
+    ShenandoahConcurrentRootsEvacUpdateTask task;
+    workers()->run_task(&task);
+  }
+}
+
 void ShenandoahHeap::op_reset() {
   reset_mark_bitmap();
 }
@@ -1694,7 +1730,28 @@
         // it would be a simple check, which is supposed to be fast. This is also
         // safe to do even without degeneration, as CSet iterator is at beginning
         // in preparation for evacuation anyway.
-        collection_set()->clear_current_index();
+        //
+        // Before doing that, we need to make sure we never had any cset-pinned
+        // regions. This may happen if allocation failure happened when evacuating
+        // the about-to-be-pinned object, oom-evac protocol left the object in
+        // the collection set, and then the pin reached the cset region. If we continue
+        // the cycle here, we would trash the cset and alive objects in it. To avoid
+        // it, we fail degeneration right away and slide into Full GC to recover.
+
+        {
+          collection_set()->clear_current_index();
+
+          ShenandoahHeapRegion* r;
+          while ((r = collection_set()->next()) != NULL) {
+            if (r->is_pinned()) {
+              cancel_gc(GCCause::_shenandoah_upgrade_to_full_gc);
+              op_degenerated_fail();
+              return;
+            }
+          }
+
+          collection_set()->clear_current_index();
+        }
 
         op_stw_evac();
         if (cancelled_gc()) {
@@ -2152,6 +2209,11 @@
     concurrent_mark()->update_thread_roots(ShenandoahPhaseTimings::final_update_refs_roots);
   }
 
+  // Has to be done before cset is clear
+  if (ShenandoahVerify) {
+    verifier()->verify_roots_in_to_space();
+  }
+
   ShenandoahGCPhase final_update_refs(ShenandoahPhaseTimings::final_update_refs_recycle);
 
   trash_cset_regions();
@@ -2159,7 +2221,6 @@
   set_update_refs_in_progress(false);
 
   if (ShenandoahVerify) {
-    verifier()->verify_roots_no_forwarded();
     verifier()->verify_after_updaterefs();
   }
 
@@ -2529,6 +2590,22 @@
   try_inject_alloc_failure();
   op_updaterefs();
 }
+
+void ShenandoahHeap::entry_roots() {
+  ShenandoahGCPhase phase(ShenandoahPhaseTimings::conc_roots);
+
+  static const char* msg = "Concurrent roots processing";
+  GCTraceTime(Info, gc) time(msg, NULL, GCCause::_no_gc, true);
+  EventMark em("%s", msg);
+
+  ShenandoahWorkerScope scope(workers(),
+                              ShenandoahWorkerPolicy::calc_workers_for_conc_root_processing(),
+                              "concurrent root processing");
+
+  try_inject_alloc_failure();
+  op_roots();
+}
+
 void ShenandoahHeap::entry_cleanup() {
   ShenandoahGCPhase phase(ShenandoahPhaseTimings::conc_cleanup);
 
--- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp	Fri Jun 21 09:05:45 2019 -0700
@@ -391,6 +391,7 @@
   void entry_reset();
   void entry_mark();
   void entry_preclean();
+  void entry_roots();
   void entry_cleanup();
   void entry_evac();
   void entry_updaterefs();
@@ -414,6 +415,7 @@
   void op_reset();
   void op_mark();
   void op_preclean();
+  void op_roots();
   void op_cleanup();
   void op_conc_evac();
   void op_stw_evac();
--- a/src/hotspot/share/gc/shenandoah/shenandoahPhaseTimings.hpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/gc/shenandoah/shenandoahPhaseTimings.hpp	Fri Jun 21 09:05:45 2019 -0700
@@ -306,6 +306,7 @@
   f(conc_mark,                                       "Concurrent Marking")              \
   f(conc_termination,                                "  Termination")                   \
   f(conc_preclean,                                   "Concurrent Precleaning")          \
+  f(conc_roots,                                      "Concurrent Roots")                \
   f(conc_evac,                                       "Concurrent Evacuation")           \
   f(conc_update_refs,                                "Concurrent Update Refs")          \
   f(conc_cleanup,                                    "Concurrent Cleanup")              \
--- a/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -71,10 +71,6 @@
   _jvmti_root.oops_do(cl, worker_id);
 }
 
-ShenandoahJNIHandleRoots::ShenandoahJNIHandleRoots() :
-  ShenandoahSerialRoot(&JNIHandles::oops_do, ShenandoahPhaseTimings::JNIRoots) {
-}
-
 ShenandoahThreadRoots::ShenandoahThreadRoots(bool is_par) : _is_par(is_par) {
   Threads::change_thread_claim_token();
 }
@@ -126,16 +122,6 @@
   }
 }
 
-ShenandoahClassLoaderDataRoots::ShenandoahClassLoaderDataRoots() {
-  ClassLoaderDataGraph::clear_claimed_marks();
-}
-
-void ShenandoahClassLoaderDataRoots::clds_do(CLDClosure* strong_clds, CLDClosure* weak_clds, uint worker_id) {
-  ShenandoahWorkerTimings* worker_times = ShenandoahHeap::heap()->phase_timings()->worker_times();
-  ShenandoahWorkerTimingsTracker timer(worker_times, ShenandoahPhaseTimings::CLDGRoots, worker_id);
-  ClassLoaderDataGraph::roots_cld_do(strong_clds, weak_clds);
-}
-
 ShenandoahRootProcessor::ShenandoahRootProcessor(ShenandoahPhaseTimings::Phase phase) :
   _heap(ShenandoahHeap::heap()),
   _phase(phase) {
@@ -148,24 +134,25 @@
   _heap->phase_timings()->record_workers_end(_phase);
 }
 
-ShenandoahRootEvacuator::ShenandoahRootEvacuator(uint n_workers, ShenandoahPhaseTimings::Phase phase) :
+ShenandoahRootEvacuator::ShenandoahRootEvacuator(uint n_workers, ShenandoahPhaseTimings::Phase phase, bool include_concurrent_roots) :
   ShenandoahRootProcessor(phase),
   _thread_roots(n_workers > 1),
-  _weak_roots(n_workers) {
+  _weak_roots(n_workers),
+  _include_concurrent_roots(include_concurrent_roots) {
 }
 
 void ShenandoahRootEvacuator::roots_do(uint worker_id, OopClosure* oops) {
   MarkingCodeBlobClosure blobsCl(oops, CodeBlobToOopClosure::FixRelocations);
   CLDToOopClosure clds(oops, ClassLoaderData::_claim_strong);
-  CLDToOopClosure* weak_clds = ShenandoahHeap::heap()->unload_classes() ? NULL : &clds;
-
   AlwaysTrueClosure always_true;
 
   _serial_roots.oops_do(oops, worker_id);
-  _jni_roots.oops_do(oops, worker_id);
+  if (_include_concurrent_roots) {
+    _jni_roots.oops_do<OopClosure>(oops, worker_id);
+  }
 
   _thread_roots.oops_do(oops, NULL, worker_id);
-  _cld_roots.clds_do(&clds, &clds, worker_id);
+  _cld_roots.cld_do(&clds, worker_id);
   _code_roots.code_blobs_do(&blobsCl, worker_id);
 
   _weak_roots.oops_do<AlwaysTrueClosure, OopClosure>(&always_true, oops, worker_id);
@@ -195,9 +182,43 @@
   _jni_roots.oops_do(oops, worker_id);
 
   _thread_roots.oops_do(oops, NULL, worker_id);
-  _cld_roots.clds_do(&adjust_cld_closure, NULL, worker_id);
+  _cld_roots.cld_do(&adjust_cld_closure, worker_id);
   _code_roots.code_blobs_do(&adjust_code_closure, worker_id);
 
   _weak_roots.oops_do<AlwaysTrueClosure, OopClosure>(&always_true, oops, worker_id);
   _dedup_roots.oops_do(&always_true, oops, worker_id);
 }
+
+ ShenandoahHeapIterationRootScanner::ShenandoahHeapIterationRootScanner() :
+   ShenandoahRootProcessor(ShenandoahPhaseTimings::_num_phases),
+   _thread_roots(false /*is par*/) {
+ }
+
+ void ShenandoahHeapIterationRootScanner::roots_do(OopClosure* oops) {
+   assert(Thread::current()->is_VM_thread(), "Only by VM thread");
+   // Must use _claim_none to avoid interfering with concurrent CLDG iteration
+   CLDToOopClosure clds(oops, ClassLoaderData::_claim_none);
+   MarkingCodeBlobClosure code(oops, !CodeBlobToOopClosure::FixRelocations);
+   ShenandoahParallelOopsDoThreadClosure tc_cl(oops, &code, NULL);
+   ResourceMark rm;
+
+   _serial_roots.oops_do(oops, 0);
+   _jni_roots.oops_do(oops, 0);
+   _cld_roots.cld_do(&clds, 0);
+   _thread_roots.threads_do(&tc_cl, 0);
+   _code_roots.code_blobs_do(&code, 0);
+ }
+
+ void ShenandoahHeapIterationRootScanner::strong_roots_do(OopClosure* oops) {
+   assert(Thread::current()->is_VM_thread(), "Only by VM thread");
+   // Must use _claim_none to avoid interfering with concurrent CLDG iteration
+   CLDToOopClosure clds(oops, ClassLoaderData::_claim_none);
+   MarkingCodeBlobClosure code(oops, !CodeBlobToOopClosure::FixRelocations);
+   ShenandoahParallelOopsDoThreadClosure tc_cl(oops, &code, NULL);
+   ResourceMark rm;
+
+   _serial_roots.oops_do(oops, 0);
+   _jni_roots.oops_do(oops, 0);
+   _cld_roots.always_strong_cld_do(&clds, 0);
+   _thread_roots.threads_do(&tc_cl, 0);
+ }
--- a/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp	Fri Jun 21 09:05:45 2019 -0700
@@ -61,9 +61,15 @@
   void oops_do(OopClosure* cl, uint worker_id);
 };
 
-class ShenandoahJNIHandleRoots : public ShenandoahSerialRoot {
+template <bool CONCURRENT>
+class ShenandoahJNIHandleRoots {
+private:
+  OopStorage::ParState<CONCURRENT, false /* is_const */> _itr;
 public:
   ShenandoahJNIHandleRoots();
+
+  template <typename T>
+  void oops_do(T* cl, uint worker_id = 0);
 };
 
 class ShenandoahThreadRoots {
@@ -108,11 +114,13 @@
   void code_blobs_do(CodeBlobClosure* blob_cl, uint worker_id);
 };
 
+template <bool SINGLE_THREADED>
 class ShenandoahClassLoaderDataRoots {
 public:
   ShenandoahClassLoaderDataRoots();
 
-  void clds_do(CLDClosure* strong_clds, CLDClosure* weak_clds, uint worker_id);
+  void always_strong_cld_do(CLDClosure* clds, uint worker_id);
+  void cld_do(CLDClosure* clds, uint worker_id);
 };
 
 class ShenandoahRootProcessor : public StackObj {
@@ -129,11 +137,11 @@
 template <typename ITR>
 class ShenandoahRootScanner : public ShenandoahRootProcessor {
 private:
-  ShenandoahSerialRoots          _serial_roots;
-  ShenandoahJNIHandleRoots       _jni_roots;
-  ShenandoahClassLoaderDataRoots _cld_roots;
-  ShenandoahThreadRoots          _thread_roots;
-  ShenandoahCodeCacheRoots<ITR>  _code_roots;
+  ShenandoahSerialRoots                                     _serial_roots;
+  ShenandoahThreadRoots                                     _thread_roots;
+  ShenandoahCodeCacheRoots<ITR>                             _code_roots;
+  ShenandoahJNIHandleRoots<false /*concurrent*/ >           _jni_roots;
+  ShenandoahClassLoaderDataRoots<false /*single threaded*/> _cld_roots;
 public:
   ShenandoahRootScanner(uint n_workers, ShenandoahPhaseTimings::Phase phase);
 
@@ -146,26 +154,42 @@
   // roots when class unloading is disabled during this cycle
   void roots_do(uint worker_id, OopClosure* cl);
   void roots_do(uint worker_id, OopClosure* oops, CLDClosure* clds, CodeBlobClosure* code, ThreadClosure* tc = NULL);
-  // For heap object iteration
-  void roots_do_unchecked(OopClosure* cl);
 };
 
 typedef ShenandoahRootScanner<ShenandoahAllCodeRootsIterator> ShenandoahAllRootScanner;
 typedef ShenandoahRootScanner<ShenandoahCsetCodeRootsIterator> ShenandoahCSetRootScanner;
 
+// This scanner is only for SH::object_iteration() and only supports single-threaded
+// root scanning
+class ShenandoahHeapIterationRootScanner : public ShenandoahRootProcessor {
+private:
+  ShenandoahSerialRoots                                    _serial_roots;
+  ShenandoahThreadRoots                                    _thread_roots;
+  ShenandoahJNIHandleRoots<false /*concurrent*/>           _jni_roots;
+  ShenandoahClassLoaderDataRoots<true /*single threaded*/> _cld_roots;
+  ShenandoahCodeCacheRoots<ShenandoahAllCodeRootsIterator> _code_roots;
+
+public:
+  ShenandoahHeapIterationRootScanner();
+
+  void roots_do(OopClosure* cl);
+  void strong_roots_do(OopClosure* cl);
+};
+
 // Evacuate all roots at a safepoint
 class ShenandoahRootEvacuator : public ShenandoahRootProcessor {
 private:
-  ShenandoahSerialRoots          _serial_roots;
-  ShenandoahJNIHandleRoots       _jni_roots;
-  ShenandoahClassLoaderDataRoots _cld_roots;
-  ShenandoahThreadRoots          _thread_roots;
-  ShenandoahWeakRoots            _weak_roots;
-  ShenandoahStringDedupRoots     _dedup_roots;
+  ShenandoahSerialRoots                                     _serial_roots;
+  ShenandoahJNIHandleRoots<false /*concurrent*/>            _jni_roots;
+  ShenandoahClassLoaderDataRoots<false /*single threaded*/> _cld_roots;
+  ShenandoahThreadRoots                                     _thread_roots;
+  ShenandoahWeakRoots                                       _weak_roots;
+  ShenandoahStringDedupRoots                                _dedup_roots;
   ShenandoahCodeCacheRoots<ShenandoahCsetCodeRootsIterator> _code_roots;
+  bool                                                      _include_concurrent_roots;
 
 public:
-  ShenandoahRootEvacuator(uint n_workers, ShenandoahPhaseTimings::Phase phase);
+  ShenandoahRootEvacuator(uint n_workers, ShenandoahPhaseTimings::Phase phase, bool include_concurrent_roots);
 
   void roots_do(uint worker_id, OopClosure* oops);
 };
@@ -173,14 +197,14 @@
 // Update all roots at a safepoint
 class ShenandoahRootUpdater : public ShenandoahRootProcessor {
 private:
-  ShenandoahSerialRoots          _serial_roots;
-  ShenandoahJNIHandleRoots       _jni_roots;
-  ShenandoahClassLoaderDataRoots _cld_roots;
-  ShenandoahThreadRoots          _thread_roots;
-  ShenandoahWeakRoots            _weak_roots;
-  ShenandoahStringDedupRoots     _dedup_roots;
+  ShenandoahSerialRoots                                     _serial_roots;
+  ShenandoahJNIHandleRoots<false /*concurrent*/>            _jni_roots;
+  ShenandoahClassLoaderDataRoots<false /*single threaded*/> _cld_roots;
+  ShenandoahThreadRoots                                     _thread_roots;
+  ShenandoahWeakRoots                                       _weak_roots;
+  ShenandoahStringDedupRoots                                _dedup_roots;
   ShenandoahCodeCacheRoots<ShenandoahCsetCodeRootsIterator> _code_roots;
-  const bool                     _update_code_cache;
+  const bool                                                _update_code_cache;
 
 public:
   ShenandoahRootUpdater(uint n_workers, ShenandoahPhaseTimings::Phase phase, bool update_code_cache);
@@ -192,13 +216,13 @@
 // Adjuster all roots at a safepoint during full gc
 class ShenandoahRootAdjuster : public ShenandoahRootProcessor {
 private:
-  ShenandoahSerialRoots          _serial_roots;
-  ShenandoahJNIHandleRoots       _jni_roots;
-  ShenandoahClassLoaderDataRoots _cld_roots;
-  ShenandoahThreadRoots          _thread_roots;
-  ShenandoahWeakRoots            _weak_roots;
-  ShenandoahStringDedupRoots     _dedup_roots;
-  ShenandoahCodeCacheRoots<ShenandoahAllCodeRootsIterator> _code_roots;
+  ShenandoahSerialRoots                                     _serial_roots;
+  ShenandoahJNIHandleRoots<false /*concurrent*/>            _jni_roots;
+  ShenandoahClassLoaderDataRoots<false /*single threaded*/> _cld_roots;
+  ShenandoahThreadRoots                                     _thread_roots;
+  ShenandoahWeakRoots                                       _weak_roots;
+  ShenandoahStringDedupRoots                                _dedup_roots;
+  ShenandoahCodeCacheRoots<ShenandoahAllCodeRootsIterator>  _code_roots;
 
 public:
   ShenandoahRootAdjuster(uint n_workers, ShenandoahPhaseTimings::Phase phase);
--- a/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.inline.hpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.inline.hpp	Fri Jun 21 09:05:45 2019 -0700
@@ -24,17 +24,70 @@
 #ifndef SHARE_GC_SHENANDOAH_SHENANDOAHROOTPROCESSOR_INLINE_HPP
 #define SHARE_GC_SHENANDOAH_SHENANDOAHROOTPROCESSOR_INLINE_HPP
 
+#include "classfile/classLoaderDataGraph.hpp"
+#include "gc/shared/oopStorageParState.inline.hpp"
 #include "gc/shenandoah/shenandoahHeuristics.hpp"
 #include "gc/shenandoah/shenandoahRootProcessor.hpp"
 #include "gc/shenandoah/shenandoahTimingTracker.hpp"
 #include "gc/shenandoah/shenandoahUtils.hpp"
 #include "memory/resourceArea.hpp"
+#include "runtime/safepoint.hpp"
+
+template <bool CONCURRENT>
+ShenandoahJNIHandleRoots<CONCURRENT>::ShenandoahJNIHandleRoots() :
+  _itr(JNIHandles::global_handles()) {
+}
+
+template <bool CONCURRENT>
+template <typename T>
+void ShenandoahJNIHandleRoots<CONCURRENT>::oops_do(T* cl, uint worker_id) {
+  if (CONCURRENT) {
+    _itr.oops_do(cl);
+  } else {
+    ShenandoahWorkerTimings* worker_times = ShenandoahHeap::heap()->phase_timings()->worker_times();
+    ShenandoahWorkerTimingsTracker timer(worker_times, ShenandoahPhaseTimings::JNIRoots, worker_id);
+    _itr.oops_do(cl);
+  }
+}
 
 template <typename IsAlive, typename KeepAlive>
 void ShenandoahWeakRoots::oops_do(IsAlive* is_alive, KeepAlive* keep_alive, uint worker_id) {
   _task.work<IsAlive, KeepAlive>(worker_id, is_alive, keep_alive);
 }
 
+template <bool SINGLE_THREADED>
+ShenandoahClassLoaderDataRoots<SINGLE_THREADED>::ShenandoahClassLoaderDataRoots() {
+  if (!SINGLE_THREADED) {
+    ClassLoaderDataGraph::clear_claimed_marks();
+  }
+}
+
+template <bool SINGLE_THREADED>
+void ShenandoahClassLoaderDataRoots<SINGLE_THREADED>::always_strong_cld_do(CLDClosure* clds, uint worker_id) {
+  if (SINGLE_THREADED) {
+    assert(SafepointSynchronize::is_at_safepoint(), "Must be at a safepoint");
+    assert(Thread::current()->is_VM_thread(), "Single threaded CLDG iteration can only be done by VM thread");
+    ClassLoaderDataGraph::always_strong_cld_do(clds);
+  } else {
+   ShenandoahWorkerTimings* worker_times = ShenandoahHeap::heap()->phase_timings()->worker_times();
+   ShenandoahWorkerTimingsTracker timer(worker_times, ShenandoahPhaseTimings::CLDGRoots, worker_id);
+   ClassLoaderDataGraph::always_strong_cld_do(clds);
+  }
+}
+
+template <bool SINGLE_THREADED>
+void ShenandoahClassLoaderDataRoots<SINGLE_THREADED>::cld_do(CLDClosure* clds, uint worker_id) {
+  if (SINGLE_THREADED) {
+    assert(SafepointSynchronize::is_at_safepoint(), "Must be at a safepoint");
+    assert(Thread::current()->is_VM_thread(), "Single threaded CLDG iteration can only be done by VM thread");
+    ClassLoaderDataGraph::cld_do(clds);
+  } else {
+    ShenandoahWorkerTimings* worker_times = ShenandoahHeap::heap()->phase_timings()->worker_times();
+    ShenandoahWorkerTimingsTracker timer(worker_times, ShenandoahPhaseTimings::CLDGRoots, worker_id);
+    ClassLoaderDataGraph::cld_do(clds);
+  }
+}
+
 template <typename ITR>
 ShenandoahCodeCacheRoots<ITR>::ShenandoahCodeCacheRoots() {
   nmethod::oops_do_marking_prologue();
@@ -100,7 +153,13 @@
 
   _serial_roots.oops_do(oops, worker_id);
   _jni_roots.oops_do(oops, worker_id);
-  _cld_roots.clds_do(clds, clds, worker_id);
+
+  if (clds != NULL) {
+    _cld_roots.cld_do(clds, worker_id);
+  } else {
+    assert(ShenandoahHeap::heap()->is_concurrent_traversal_in_progress(), "Only possible with traversal GC");
+  }
+
   _thread_roots.threads_do(&tc_cl, worker_id);
 
   // With ShenandoahConcurrentScanCodeRoots, we avoid scanning the entire code cache here,
@@ -112,20 +171,6 @@
 }
 
 template <typename ITR>
-void ShenandoahRootScanner<ITR>::roots_do_unchecked(OopClosure* oops) {
-  CLDToOopClosure clds(oops, ClassLoaderData::_claim_strong);
-  MarkingCodeBlobClosure code(oops, !CodeBlobToOopClosure::FixRelocations);
-  ShenandoahParallelOopsDoThreadClosure tc_cl(oops, &code, NULL);
-  ResourceMark rm;
-
-  _serial_roots.oops_do(oops, 0);
-  _jni_roots.oops_do(oops, 0);
-  _cld_roots.clds_do(&clds, &clds, 0);
-  _thread_roots.threads_do(&tc_cl, 0);
-  _code_roots.code_blobs_do(&code, 0);
-}
-
-template <typename ITR>
 void ShenandoahRootScanner<ITR>::strong_roots_do(uint worker_id, OopClosure* oops, CLDClosure* clds, CodeBlobClosure* code, ThreadClosure* tc) {
   assert(ShenandoahHeap::heap()->unload_classes(), "Should be used during class unloading");
   ShenandoahParallelOopsDoThreadClosure tc_cl(oops, code, tc);
@@ -133,7 +178,7 @@
 
   _serial_roots.oops_do(oops, worker_id);
   _jni_roots.oops_do(oops, worker_id);
-  _cld_roots.clds_do(clds, NULL, worker_id);
+  _cld_roots.always_strong_cld_do(clds, worker_id);
   _thread_roots.threads_do(&tc_cl, worker_id);
 }
 
@@ -141,13 +186,12 @@
 void ShenandoahRootUpdater::roots_do(uint worker_id, IsAlive* is_alive, KeepAlive* keep_alive) {
   CodeBlobToOopClosure update_blobs(keep_alive, CodeBlobToOopClosure::FixRelocations);
   CLDToOopClosure clds(keep_alive, ClassLoaderData::_claim_strong);
-  CLDToOopClosure* weak_clds = ShenandoahHeap::heap()->unload_classes() ? NULL : &clds;
 
   _serial_roots.oops_do(keep_alive, worker_id);
   _jni_roots.oops_do(keep_alive, worker_id);
 
   _thread_roots.oops_do(keep_alive, NULL, worker_id);
-  _cld_roots.clds_do(&clds, weak_clds, worker_id);
+  _cld_roots.cld_do(&clds, worker_id);
 
   if(_update_code_cache) {
     _code_roots.code_blobs_do(&update_blobs, worker_id);
--- a/src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -964,6 +964,44 @@
   void do_oop(oop* p)       { do_oop_work(p); }
 };
 
+class ShenandoahVerifyInToSpaceClosure : public OopClosure {
+private:
+  template <class T>
+  void do_oop_work(T* p) {
+    T o = RawAccess<>::oop_load(p);
+    if (!CompressedOops::is_null(o)) {
+      oop obj = CompressedOops::decode_not_null(o);
+      ShenandoahHeap* heap = ShenandoahHeap::heap_no_check();
+
+      if (!heap->marking_context()->is_marked(obj)) {
+        ShenandoahAsserts::print_failure(ShenandoahAsserts::_safe_all, obj, p, NULL,
+                "Verify Roots In To-Space", "Should be marked", __FILE__, __LINE__);
+      }
+
+      if (heap->in_collection_set(obj)) {
+        ShenandoahAsserts::print_failure(ShenandoahAsserts::_safe_all, obj, p, NULL,
+                "Verify Roots In To-Space", "Should not be in collection set", __FILE__, __LINE__);
+      }
+
+      oop fwd = (oop) ShenandoahForwarding::get_forwardee_raw_unchecked(obj);
+      if (!oopDesc::equals_raw(obj, fwd)) {
+        ShenandoahAsserts::print_failure(ShenandoahAsserts::_safe_all, obj, p, NULL,
+                "Verify Roots In To-Space", "Should not be forwarded", __FILE__, __LINE__);
+      }
+    }
+  }
+
+public:
+  void do_oop(narrowOop* p) { do_oop_work(p); }
+  void do_oop(oop* p)       { do_oop_work(p); }
+};
+
+void ShenandoahVerifier::verify_roots_in_to_space() {
+  ShenandoahRootVerifier verifier;
+  ShenandoahVerifyInToSpaceClosure cl;
+  verifier.oops_do(&cl);
+}
+
 void ShenandoahVerifier::verify_roots_no_forwarded() {
   ShenandoahRootVerifier verifier;
   ShenandoahVerifyNoForwared cl;
--- a/src/hotspot/share/gc/shenandoah/shenandoahVerifier.hpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/gc/shenandoah/shenandoahVerifier.hpp	Fri Jun 21 09:05:45 2019 -0700
@@ -189,6 +189,7 @@
   void verify_generic(VerifyOption option);
 
   // Roots should only contain to-space oops
+  void verify_roots_in_to_space();
   void verify_roots_no_forwarded();
   void verify_roots_no_forwarded_except(ShenandoahRootVerifier::RootTypes types);
 };
--- a/src/hotspot/share/gc/shenandoah/shenandoahWorkerPolicy.cpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/gc/shenandoah/shenandoahWorkerPolicy.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -30,6 +30,7 @@
 uint ShenandoahWorkerPolicy::_prev_par_marking     = 0;
 uint ShenandoahWorkerPolicy::_prev_conc_marking    = 0;
 uint ShenandoahWorkerPolicy::_prev_conc_evac       = 0;
+uint ShenandoahWorkerPolicy::_prev_conc_root_proc  = 0;
 uint ShenandoahWorkerPolicy::_prev_fullgc          = 0;
 uint ShenandoahWorkerPolicy::_prev_degengc         = 0;
 uint ShenandoahWorkerPolicy::_prev_stw_traversal   = 0;
@@ -63,6 +64,16 @@
   return _prev_par_marking;
 }
 
+// Calculate workers for concurrent root processing
+uint ShenandoahWorkerPolicy::calc_workers_for_conc_root_processing() {
+  uint active_workers = (_prev_conc_root_proc == 0) ? ConcGCThreads : _prev_conc_root_proc;
+  _prev_conc_root_proc =
+    WorkerPolicy::calc_active_conc_workers(ConcGCThreads,
+                                           active_workers,
+                                           Threads::number_of_non_daemon_threads());
+  return _prev_conc_root_proc;
+}
+
 // Calculate workers for concurrent evacuation (concurrent GC)
 uint ShenandoahWorkerPolicy::calc_workers_for_conc_evac() {
   uint active_workers = (_prev_conc_evac == 0) ? ConcGCThreads : _prev_conc_evac;
--- a/src/hotspot/share/gc/shenandoah/shenandoahWorkerPolicy.hpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/gc/shenandoah/shenandoahWorkerPolicy.hpp	Fri Jun 21 09:05:45 2019 -0700
@@ -30,6 +30,7 @@
 private:
   static uint _prev_par_marking;
   static uint _prev_conc_marking;
+  static uint _prev_conc_root_proc;
   static uint _prev_conc_evac;
   static uint _prev_fullgc;
   static uint _prev_degengc;
@@ -50,6 +51,9 @@
   // Calculate the number of workers for final marking
   static uint calc_workers_for_final_marking();
 
+  // Calculate workers for concurrent root processing
+  static uint calc_workers_for_conc_root_processing();
+
   // Calculate workers for concurrent evacuation (concurrent GC)
   static uint calc_workers_for_conc_evac();
 
--- a/src/hotspot/share/jvmci/jvmciCompilerToVM.cpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/jvmci/jvmciCompilerToVM.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -2416,7 +2416,7 @@
         if (peerEnv->is_hotspot()) {
           // Only the mirror in the HotSpot heap is accessible
           // through JVMCINMethodData
-          oop nmethod_mirror = data->get_nmethod_mirror(nm);
+          oop nmethod_mirror = data->get_nmethod_mirror(nm, /* phantom_ref */ true);
           if (nmethod_mirror != NULL) {
             result = HotSpotJVMCI::wrap(nmethod_mirror);
           }
@@ -2443,7 +2443,7 @@
           if (data == NULL) {
             JVMCI_THROW_MSG_0(IllegalArgumentException, "Cannot set HotSpotNmethod mirror for default nmethod");
           }
-          if (data->get_nmethod_mirror(nm) != NULL) {
+          if (data->get_nmethod_mirror(nm, /* phantom_ref */ false) != NULL) {
             JVMCI_THROW_MSG_0(IllegalArgumentException, "Cannot overwrite existing HotSpotNmethod mirror for nmethod");
           }
           oop nmethod_mirror = HotSpotJVMCI::resolve(result);
--- a/src/hotspot/share/jvmci/jvmciCompilerToVMInit.cpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/jvmci/jvmciCompilerToVMInit.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -308,7 +308,8 @@
         BOXED_BOOLEAN(box, *(jbyte*) vmField.address);
         assert(box.is_non_null(), "must have a box");
       } else if (strcmp(vmField.typeString, "int") == 0 ||
-                 strcmp(vmField.typeString, "jint") == 0) {
+                 strcmp(vmField.typeString, "jint") == 0 ||
+                 strcmp(vmField.typeString, "uint32_t") == 0) {
         BOXED_LONG(box, *(jint*) vmField.address);
         assert(box.is_non_null(), "must have a box");
       } else if (strcmp(vmField.typeString, "uint64_t") == 0) {
--- a/src/hotspot/share/jvmci/jvmciRuntime.cpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/jvmci/jvmciRuntime.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -700,11 +700,15 @@
   FailedSpeculation::add_failed_speculation(nm, _failed_speculations, data, length);
 }
 
-oop JVMCINMethodData::get_nmethod_mirror(nmethod* nm) {
+oop JVMCINMethodData::get_nmethod_mirror(nmethod* nm, bool phantom_ref) {
   if (_nmethod_mirror_index == -1) {
     return NULL;
   }
-  return nm->oop_at(_nmethod_mirror_index);
+  if (phantom_ref) {
+    return nm->oop_at_phantom(_nmethod_mirror_index);
+  } else {
+    return nm->oop_at(_nmethod_mirror_index);
+  }
 }
 
 void JVMCINMethodData::set_nmethod_mirror(nmethod* nm, oop new_mirror) {
@@ -728,7 +732,7 @@
 }
 
 void JVMCINMethodData::invalidate_nmethod_mirror(nmethod* nm) {
-  oop nmethod_mirror = get_nmethod_mirror(nm);
+  oop nmethod_mirror = get_nmethod_mirror(nm, /* phantom_ref */ true);
   if (nmethod_mirror == NULL) {
     return;
   }
@@ -1530,7 +1534,7 @@
         JVMCINMethodData* data = nm->jvmci_nmethod_data();
         assert(data != NULL, "must be");
         if (install_default) {
-          assert(!nmethod_mirror.is_hotspot() || data->get_nmethod_mirror(nm) == NULL, "must be");
+          assert(!nmethod_mirror.is_hotspot() || data->get_nmethod_mirror(nm, /* phantom_ref */ false) == NULL, "must be");
           if (entry_bci == InvocationEntryBci) {
             if (TieredCompilation) {
               // If there is an old version we're done with it
@@ -1565,7 +1569,7 @@
             InstanceKlass::cast(method->method_holder())->add_osr_nmethod(nm);
           }
         } else {
-          assert(!nmethod_mirror.is_hotspot() || data->get_nmethod_mirror(nm) == HotSpotJVMCI::resolve(nmethod_mirror), "must be");
+          assert(!nmethod_mirror.is_hotspot() || data->get_nmethod_mirror(nm, /* phantom_ref */ false) == HotSpotJVMCI::resolve(nmethod_mirror), "must be");
         }
         nm->make_in_use();
       }
--- a/src/hotspot/share/jvmci/jvmciRuntime.hpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/jvmci/jvmciRuntime.hpp	Fri Jun 21 09:05:45 2019 -0700
@@ -74,7 +74,7 @@
   void invalidate_nmethod_mirror(nmethod* nm);
 
   // Gets the mirror from nm's oops table.
-  oop get_nmethod_mirror(nmethod* nm);
+  oop get_nmethod_mirror(nmethod* nm, bool phantom_ref);
 
   // Sets the mirror in nm's oops table.
   void set_nmethod_mirror(nmethod* nm, oop mirror);
--- a/src/hotspot/share/jvmci/vmStructs_jvmci.cpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/jvmci/vmStructs_jvmci.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -691,10 +691,10 @@
 
 #endif
 
-// AARCH64 is defined in closed port, too. TARGET_ARCH_aarch64 is not.
-#ifdef TARGET_ARCH_aarch64
+#ifdef AARCH64
 
 #define VM_STRUCTS_CPU(nonstatic_field, static_field, unchecked_nonstatic_field, volatile_nonstatic_field, nonproduct_nonstatic_field, c2_nonstatic_field, unchecked_c1_static_field, unchecked_c2_static_field) \
+  static_field(VM_Version, _psr_info.dczid_el0, uint32_t)               \
   volatile_nonstatic_field(JavaFrameAnchor, _last_Java_fp, intptr_t*)
 
 #define VM_INT_CONSTANTS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant) \
--- a/src/hotspot/share/opto/escape.cpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/opto/escape.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -2346,8 +2346,7 @@
       assert(opcode == Op_ConP || opcode == Op_ThreadLocal ||
              opcode == Op_CastX2P || uncast_base->is_DecodeNarrowPtr() ||
              (uncast_base->is_Mem() && (uncast_base->bottom_type()->isa_rawptr() != NULL)) ||
-             (uncast_base->is_Proj() && uncast_base->in(0)->is_Allocate()) ||
-             BarrierSet::barrier_set()->barrier_set_c2()->escape_is_barrier_node(uncast_base), "sanity");
+             (uncast_base->is_Proj() && uncast_base->in(0)->is_Allocate()), "sanity");
     }
   }
   return base;
@@ -3085,7 +3084,6 @@
                n->is_CheckCastPP() ||
                n->is_EncodeP() ||
                n->is_DecodeN() ||
-               BarrierSet::barrier_set()->barrier_set_c2()->escape_is_barrier_node(n) ||
                (n->is_ConstraintCast() && n->Opcode() == Op_CastPP)) {
       if (visited.test_set(n->_idx)) {
         assert(n->is_Phi(), "loops only through Phi's");
@@ -3156,7 +3154,6 @@
                  use->is_CheckCastPP() ||
                  use->is_EncodeNarrowPtr() ||
                  use->is_DecodeNarrowPtr() ||
-                 BarrierSet::barrier_set()->barrier_set_c2()->escape_is_barrier_node(use) ||
                  (use->is_ConstraintCast() && use->Opcode() == Op_CastPP)) {
         alloc_worklist.append_if_missing(use);
 #ifdef ASSERT
--- a/src/hotspot/share/opto/library_call.cpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/opto/library_call.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -4501,8 +4501,8 @@
     ciMethod* trap_method = alloc->jvms()->method();
     int trap_bci = alloc->jvms()->bci();
 
-    if (!C->too_many_traps(trap_method, trap_bci, Deoptimization::Reason_intrinsic) &
-          !C->too_many_traps(trap_method, trap_bci, Deoptimization::Reason_null_check)) {
+    if (!C->too_many_traps(trap_method, trap_bci, Deoptimization::Reason_intrinsic) &&
+        !C->too_many_traps(trap_method, trap_bci, Deoptimization::Reason_null_check)) {
       // Make sure there's no store between the allocation and the
       // arraycopy otherwise visible side effects could be rexecuted
       // in case of deoptimization and cause incorrect execution.
--- a/src/hotspot/share/opto/type.cpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/opto/type.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -2109,7 +2109,7 @@
     const TypeAry *a = t->is_ary();
     return TypeAry::make(_elem->meet_speculative(a->_elem),
                          _size->xmeet(a->_size)->is_int(),
-                         _stable & a->_stable);
+                         _stable && a->_stable);
   }
   case Top:
     break;
@@ -3879,7 +3879,7 @@
     bool subtype_exact = false;
     if( tinst_klass->equals(this_klass) ) {
       subtype = this_klass;
-      subtype_exact = below_centerline(ptr) ? (this_xk & tinst_xk) : (this_xk | tinst_xk);
+      subtype_exact = below_centerline(ptr) ? (this_xk && tinst_xk) : (this_xk || tinst_xk);
     } else if( !tinst_xk && this_klass->is_subtype_of( tinst_klass ) ) {
       subtype = this_klass;     // Pick subtyping class
       subtype_exact = this_xk;
@@ -4361,7 +4361,7 @@
       if (below_centerline(this->_ptr)) {
         xk = this->_klass_is_exact;
       } else {
-        xk = (tap->_klass_is_exact | this->_klass_is_exact);
+        xk = (tap->_klass_is_exact || this->_klass_is_exact);
       }
       return make(ptr, const_oop(), tary, lazy_klass, xk, off, instance_id, speculative, depth);
     case Constant: {
--- a/src/hotspot/share/prims/jvmtiEnvBase.cpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/prims/jvmtiEnvBase.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -1083,7 +1083,7 @@
           // If the monitor has no owner, then a non-suspended contending
           // thread could potentially change the state of the monitor by
           // entering it. The JVM/TI spec doesn't allow this.
-          if (owning_thread == NULL && !at_safepoint &
+          if (owning_thread == NULL && !at_safepoint &&
               !pending_thread->is_thread_fully_suspended(true, &debug_bits)) {
             if (ret.owner != NULL) {
               destroy_jni_reference(calling_thread, ret.owner);
--- a/src/hotspot/share/runtime/arguments.cpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/runtime/arguments.cpp	Fri Jun 21 09:05:45 2019 -0700
@@ -533,7 +533,6 @@
   { "InitialRAMFraction",           JDK_Version::jdk(10),  JDK_Version::undefined(), JDK_Version::undefined() },
   { "UseMembar",                    JDK_Version::jdk(10), JDK_Version::jdk(12), JDK_Version::undefined() },
   { "CompilationPolicyChoice",      JDK_Version::jdk(13), JDK_Version::jdk(14), JDK_Version::undefined() },
-  { "FailOverToOldVerifier",        JDK_Version::jdk(13), JDK_Version::jdk(14), JDK_Version::undefined() },
   { "AllowJNIEnvProxy",             JDK_Version::jdk(13), JDK_Version::jdk(14), JDK_Version::jdk(15) },
   { "ThreadLocalHandshakes",        JDK_Version::jdk(13), JDK_Version::jdk(14), JDK_Version::jdk(15) },
   { "AllowRedefinitionToAddDeleteMethods", JDK_Version::jdk(13), JDK_Version::undefined(), JDK_Version::undefined() },
@@ -563,6 +562,7 @@
   { "ProfilerNumberOfRuntimeStubNodes", JDK_Version::undefined(), JDK_Version::jdk(13), JDK_Version::jdk(14) },
   { "UseImplicitStableValues",       JDK_Version::undefined(), JDK_Version::jdk(13), JDK_Version::jdk(14) },
   { "NeedsDeoptSuspend",             JDK_Version::undefined(), JDK_Version::jdk(13), JDK_Version::jdk(14) },
+  { "FailOverToOldVerifier",         JDK_Version::undefined(), JDK_Version::jdk(14), JDK_Version::jdk(15) },
 
 #ifdef TEST_VERIFY_SPECIAL_JVM_FLAGS
   // These entries will generate build errors.  Their purpose is to test the macros.
@@ -3465,14 +3465,6 @@
 
 void Arguments::set_shared_spaces_flags() {
   if (DumpSharedSpaces) {
-    if (FailOverToOldVerifier) {
-      // Don't fall back to the old verifier on verification failure. If a
-      // class fails verification with the split verifier, it might fail the
-      // CDS runtime verifier constraint check. In that case, we don't want
-      // to share the class. We only archive classes that pass the split verifier.
-      FLAG_SET_DEFAULT(FailOverToOldVerifier, false);
-    }
-
     if (RequireSharedSpaces) {
       warning("Cannot dump shared archive while using shared archive");
     }
--- a/src/hotspot/share/runtime/globals.hpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/runtime/globals.hpp	Fri Jun 21 09:05:45 2019 -0700
@@ -405,9 +405,6 @@
   notproduct(bool, VerifyLastFrame, false,                                  \
           "Verify oops on last frame on entry to VM")                       \
                                                                             \
-  product(bool, FailOverToOldVerifier, true,                                \
-          "Fail over to old verifier when split verifier fails")            \
-                                                                            \
   product(bool, SafepointTimeout, false,                                    \
           "Time out and warn or fail after SafepointTimeoutDelay "          \
           "milliseconds if failed to reach safepoint")                      \
--- a/src/hotspot/share/runtime/vframe.inline.hpp	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/hotspot/share/runtime/vframe.inline.hpp	Fri Jun 21 09:05:45 2019 -0700
@@ -26,6 +26,7 @@
 #define SHARE_RUNTIME_VFRAME_INLINE_HPP
 
 #include "runtime/frame.inline.hpp"
+#include "runtime/thread.inline.hpp"
 #include "runtime/vframe.hpp"
 
 inline vframeStreamCommon::vframeStreamCommon(JavaThread* thread) : _reg_map(thread, false) {
--- a/src/java.base/share/classes/com/sun/java/util/jar/pack/Constants.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/share/classes/com/sun/java/util/jar/pack/Constants.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -51,6 +51,7 @@
         1.11 to 1.11.X 55,0
         1.12 to 1.12.X 56,0
         1.13 to 1.13.X 57,0
+        1.14 to 1.14.X 58,0
     */
 
     public static final Package.Version JAVA_MIN_CLASS_VERSION =
@@ -83,6 +84,9 @@
     public static final Package.Version JAVA13_MAX_CLASS_VERSION =
             Package.Version.of(57, 00);
 
+    public static final Package.Version JAVA14_MAX_CLASS_VERSION =
+            Package.Version.of(58, 00);
+
     public static final int JAVA_PACKAGE_MAGIC = 0xCAFED00D;
 
     public static final Package.Version JAVA5_PACKAGE_VERSION =
--- a/src/java.base/share/classes/java/lang/Integer.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/share/classes/java/lang/Integer.java	Fri Jun 21 09:05:45 2019 -0700
@@ -347,59 +347,53 @@
         int chars = Math.max(((mag + (shift - 1)) / shift), 1);
         if (COMPACT_STRINGS) {
             byte[] buf = new byte[chars];
-            formatUnsignedInt(val, shift, buf, 0, chars);
+            formatUnsignedInt(val, shift, buf, chars);
             return new String(buf, LATIN1);
         } else {
             byte[] buf = new byte[chars * 2];
-            formatUnsignedIntUTF16(val, shift, buf, 0, chars);
+            formatUnsignedIntUTF16(val, shift, buf, chars);
             return new String(buf, UTF16);
         }
     }
 
     /**
-     * Format an {@code int} (treated as unsigned) into a character buffer. If
+     * Format an {@code int} (treated as unsigned) into a byte buffer (LATIN1 version). If
      * {@code len} exceeds the formatted ASCII representation of {@code val},
      * {@code buf} will be padded with leading zeroes.
      *
      * @param val the unsigned int to format
      * @param shift the log2 of the base to format in (4 for hex, 3 for octal, 1 for binary)
-     * @param buf the character buffer to write to
-     * @param offset the offset in the destination buffer to start at
+     * @param buf the byte buffer to write to
      * @param len the number of characters to write
      */
-    static void formatUnsignedInt(int val, int shift, char[] buf, int offset, int len) {
-        // assert shift > 0 && shift <=5 : "Illegal shift value";
-        // assert offset >= 0 && offset < buf.length : "illegal offset";
-        // assert len > 0 && (offset + len) <= buf.length : "illegal length";
-        int charPos = offset + len;
-        int radix = 1 << shift;
-        int mask = radix - 1;
-        do {
-            buf[--charPos] = Integer.digits[val & mask];
-            val >>>= shift;
-        } while (charPos > offset);
-    }
-
-    /** byte[]/LATIN1 version    */
-    static void formatUnsignedInt(int val, int shift, byte[] buf, int offset, int len) {
-        int charPos = offset + len;
+    private static void formatUnsignedInt(int val, int shift, byte[] buf, int len) {
+        int charPos = len;
         int radix = 1 << shift;
         int mask = radix - 1;
         do {
             buf[--charPos] = (byte)Integer.digits[val & mask];
             val >>>= shift;
-        } while (charPos > offset);
+        } while (charPos > 0);
     }
 
-    /** byte[]/UTF16 version    */
-    private static void formatUnsignedIntUTF16(int val, int shift, byte[] buf, int offset, int len) {
-        int charPos = offset + len;
+    /**
+     * Format an {@code int} (treated as unsigned) into a byte buffer (UTF16 version). If
+     * {@code len} exceeds the formatted ASCII representation of {@code val},
+     * {@code buf} will be padded with leading zeroes.
+     *
+     * @param val the unsigned int to format
+     * @param shift the log2 of the base to format in (4 for hex, 3 for octal, 1 for binary)
+     * @param buf the byte buffer to write to
+     * @param len the number of characters to write
+     */
+    private static void formatUnsignedIntUTF16(int val, int shift, byte[] buf, int len) {
+        int charPos = len;
         int radix = 1 << shift;
         int mask = radix - 1;
         do {
             StringUTF16.putChar(buf, --charPos, Integer.digits[val & mask]);
             val >>>= shift;
-        } while (charPos > offset);
+        } while (charPos > 0);
     }
 
     static final byte[] DigitTens = {
@@ -698,7 +692,7 @@
      */
     public static int parseInt(CharSequence s, int beginIndex, int endIndex, int radix)
                 throws NumberFormatException {
-        s = Objects.requireNonNull(s);
+        Objects.requireNonNull(s);
 
         if (beginIndex < 0 || beginIndex > endIndex || endIndex > s.length()) {
             throw new IndexOutOfBoundsException();
@@ -881,7 +875,7 @@
      */
     public static int parseUnsignedInt(CharSequence s, int beginIndex, int endIndex, int radix)
                 throws NumberFormatException {
-        s = Objects.requireNonNull(s);
+        Objects.requireNonNull(s);
 
         if (beginIndex < 0 || beginIndex > endIndex || endIndex > s.length()) {
             throw new IndexOutOfBoundsException();
--- a/src/java.base/share/classes/java/lang/Long.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/share/classes/java/lang/Long.java	Fri Jun 21 09:05:45 2019 -0700
@@ -398,19 +398,17 @@
     }
 
     /**
-     * Format a long (treated as unsigned) into a character buffer. If
+     * Format a long (treated as unsigned) into a byte buffer (LATIN1 version). If
      * {@code len} exceeds the formatted ASCII representation of {@code val},
      * {@code buf} will be padded with leading zeroes.
      *
      * @param val the unsigned long to format
      * @param shift the log2 of the base to format in (4 for hex, 3 for octal, 1 for binary)
-     * @param buf the character buffer to write to
+     * @param buf the byte buffer to write to
      * @param offset the offset in the destination buffer to start at
      * @param len the number of characters to write
      */
-
-    /** byte[]/LATIN1 version    */
-    static void formatUnsignedLong0(long val, int shift, byte[] buf, int offset, int len) {
+    private static void formatUnsignedLong0(long val, int shift, byte[] buf, int offset, int len) {
         int charPos = offset + len;
         int radix = 1 << shift;
         int mask = radix - 1;
@@ -420,7 +418,17 @@
         } while (charPos > offset);
     }
 
-    /** byte[]/UTF16 version    */
+    /**
+     * Format a long (treated as unsigned) into a byte buffer (UTF16 version). If
+     * {@code len} exceeds the formatted ASCII representation of {@code val},
+     * {@code buf} will be padded with leading zeroes.
+     *
+     * @param val the unsigned long to format
+     * @param shift the log2 of the base to format in (4 for hex, 3 for octal, 1 for binary)
+     * @param buf the byte buffer to write to
+     * @param offset the offset in the destination buffer to start at
+     * @param len the number of characters to write
+     */
     private static void formatUnsignedLong0UTF16(long val, int shift, byte[] buf, int offset, int len) {
         int charPos = offset + len;
         int radix = 1 << shift;
@@ -739,7 +747,7 @@
      */
     public static long parseLong(CharSequence s, int beginIndex, int endIndex, int radix)
                 throws NumberFormatException {
-        s = Objects.requireNonNull(s);
+        Objects.requireNonNull(s);
 
         if (beginIndex < 0 || beginIndex > endIndex || endIndex > s.length()) {
             throw new IndexOutOfBoundsException();
@@ -985,7 +993,7 @@
      */
     public static long parseUnsignedLong(CharSequence s, int beginIndex, int endIndex, int radix)
                 throws NumberFormatException {
-        s = Objects.requireNonNull(s);
+        Objects.requireNonNull(s);
 
         if (beginIndex < 0 || beginIndex > endIndex || endIndex > s.length()) {
             throw new IndexOutOfBoundsException();
--- a/src/java.base/share/classes/java/net/AbstractPlainDatagramSocketImpl.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/share/classes/java/net/AbstractPlainDatagramSocketImpl.java	Fri Jun 21 09:05:45 2019 -0700
@@ -33,6 +33,7 @@
 
 import sun.net.ResourceManager;
 import sun.net.ext.ExtendedSocketOptions;
+import sun.net.util.IPAddressUtil;
 import sun.security.action.GetPropertyAction;
 
 /**
@@ -110,6 +111,9 @@
      */
     protected synchronized void bind(int lport, InetAddress laddr)
         throws SocketException {
+        if (laddr.isLinkLocalAddress()) {
+            laddr = IPAddressUtil.toScopedAddress(laddr);
+        }
         bind0(lport, laddr);
     }
 
@@ -121,7 +125,19 @@
      * destination address to send the packet to.
      * @param p the packet to be sent.
      */
-    protected abstract void send(DatagramPacket p) throws IOException;
+    protected void send(DatagramPacket p) throws IOException {
+        InetAddress orig = p.getAddress();
+        if (orig.isLinkLocalAddress()) {
+            InetAddress scoped = IPAddressUtil.toScopedAddress(orig);
+            if (orig != scoped) {
+                p = new DatagramPacket(p.getData(), p.getOffset(),
+                                       p.getLength(), scoped, p.getPort());
+            }
+        }
+        send0(p);
+    }
+
+    protected abstract void send0(DatagramPacket p) throws IOException;
 
     /**
      * Connects a datagram socket to a remote destination. This associates the remote
@@ -131,6 +147,9 @@
      * @param port the remote port number
      */
     protected void connect(InetAddress address, int port) throws SocketException {
+        if (address.isLinkLocalAddress()) {
+            address = IPAddressUtil.toScopedAddress(address);
+        }
         connect0(address, port);
         connectedAddress = address;
         connectedPort = port;
--- a/src/java.base/share/classes/java/net/AbstractPlainSocketImpl.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/share/classes/java/net/AbstractPlainSocketImpl.java	Fri Jun 21 09:05:45 2019 -0700
@@ -43,6 +43,7 @@
 import sun.net.PlatformSocketImpl;
 import sun.net.ResourceManager;
 import sun.net.ext.ExtendedSocketOptions;
+import sun.net.util.IPAddressUtil;
 import sun.net.util.SocketExceptions;
 
 /**
@@ -157,8 +158,12 @@
         boolean connected = false;
         try {
             InetAddress address = InetAddress.getByName(host);
+            // recording this.address as supplied by caller before calling connect
+            this.address = address;
             this.port = port;
-            this.address = address;
+            if (address.isLinkLocalAddress()) {
+                address = IPAddressUtil.toScopedAddress(address);
+            }
 
             connectToAddress(address, port, timeout);
             connected = true;
@@ -182,8 +187,12 @@
      * @param port the specified port
      */
     protected void connect(InetAddress address, int port) throws IOException {
+        // recording this.address as supplied by caller before calling connect
+        this.address = address;
         this.port = port;
-        this.address = address;
+        if (address.isLinkLocalAddress()) {
+            address = IPAddressUtil.toScopedAddress(address);
+        }
 
         try {
             connectToAddress(address, port, timeout);
@@ -215,10 +224,14 @@
             InetSocketAddress addr = (InetSocketAddress) address;
             if (addr.isUnresolved())
                 throw new UnknownHostException(addr.getHostName());
+            // recording this.address as supplied by caller before calling connect
+            InetAddress ia = addr.getAddress();
+            this.address = ia;
             this.port = addr.getPort();
-            this.address = addr.getAddress();
-
-            connectToAddress(this.address, port, timeout);
+            if (ia.isLinkLocalAddress()) {
+                ia = IPAddressUtil.toScopedAddress(ia);
+            }
+            connectToAddress(ia, port, timeout);
             connected = true;
         } finally {
             if (!connected) {
@@ -546,6 +559,9 @@
                 NetHooks.beforeTcpBind(fd, address, lport);
             }
         }
+        if (address.isLinkLocalAddress()) {
+            address = IPAddressUtil.toScopedAddress(address);
+        }
         socketBind(address, lport);
         isBound = true;
     }
--- a/src/java.base/share/classes/java/net/Inet6Address.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/share/classes/java/net/Inet6Address.java	Fri Jun 21 09:05:45 2019 -0700
@@ -176,11 +176,6 @@
 class Inet6Address extends InetAddress {
     static final int INADDRSZ = 16;
 
-    /*
-     * cached scope_id - for link-local address use only.
-     */
-    private transient int cached_scope_id;  // 0
-
     private class Inet6AddressHolder {
 
         private Inet6AddressHolder() {
--- a/src/java.base/share/classes/java/security/cert/X509CertSelector.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/share/classes/java/security/cert/X509CertSelector.java	Fri Jun 21 09:05:45 2019 -0700
@@ -2115,8 +2115,11 @@
             if (certSubjectKeyID == null ||
                     !Arrays.equals(subjectKeyID, certSubjectKeyID)) {
                 if (debug != null) {
-                    debug.println("X509CertSelector.match: "
-                        + "subject key IDs don't match");
+                    debug.println("X509CertSelector.match: subject key IDs " +
+                        "don't match\nX509CertSelector.match: subjectKeyID: " +
+                        Arrays.toString(subjectKeyID) +
+                        "\nX509CertSelector.match: certSubjectKeyID: " +
+                        Arrays.toString(certSubjectKeyID));
                 }
                 return false;
             }
--- a/src/java.base/share/classes/java/time/format/DateTimeFormatter.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/share/classes/java/time/format/DateTimeFormatter.java	Fri Jun 21 09:05:45 2019 -0700
@@ -396,15 +396,16 @@
  * 'Z' when the offset to be output would be zero, whereas pattern letter 'x'
  * (lower case) will output '+00', '+0000', or '+00:00'.
  * <p>
- * <b>Offset O</b>: This formats the localized offset based on the number of
- * pattern letters. One letter outputs the {@linkplain TextStyle#SHORT short}
- * form of the localized offset, which is localized offset text, such as 'GMT',
- * with hour without leading zero, optional 2-digit minute and second if
- * non-zero, and colon, for example 'GMT+8'. Four letters outputs the
- * {@linkplain TextStyle#FULL full} form, which is localized offset text,
- * such as 'GMT, with 2-digit hour and minute field, optional second field
- * if non-zero, and colon, for example 'GMT+08:00'. Any other count of letters
- * throws {@code IllegalArgumentException}.
+ * <b>Offset O</b>: With a non-zero offset, this formats the localized offset
+ * based on the number of pattern letters. One letter outputs the
+ * {@linkplain TextStyle#SHORT short} form of the localized offset, which is
+ * localized offset text, such as 'GMT', with hour without leading zero, optional
+ * 2-digit minute and second if non-zero, and colon, for example 'GMT+8'. Four
+ * letters outputs the {@linkplain TextStyle#FULL full} form, which is localized
+ * offset text, such as 'GMT, with 2-digit hour and minute field, optional second
+ * field if non-zero, and colon, for example 'GMT+08:00'. If the offset is zero,
+ * only localized text is output. Any other count of letters throws
+ * {@code IllegalArgumentException}.
  * <p>
  * <b>Offset Z</b>: This formats the offset based on the number of pattern
  * letters. One, two or three letters outputs the hour and minute, without a
--- a/src/java.base/share/classes/java/util/HashMap.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/share/classes/java/util/HashMap.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -911,6 +911,74 @@
         return ks;
     }
 
+    /**
+     * Prepares the array for {@link Collection#toArray(Object[])} implementation.
+     * If supplied array is smaller than this map size, a new array is allocated.
+     * If supplied array is bigger than this map size, a null is written at size index.
+     *
+     * @param a an original array passed to {@code toArray()} method
+     * @param <T> type of array elements
+     * @return an array ready to be filled and returned from {@code toArray()} method.
+     */
+    @SuppressWarnings("unchecked")
+    final <T> T[] prepareArray(T[] a) {
+        int size = this.size;
+        if (a.length < size) {
+            return (T[]) java.lang.reflect.Array
+                    .newInstance(a.getClass().getComponentType(), size);
+        }
+        if (a.length > size) {
+            a[size] = null;
+        }
+        return a;
+    }
+
+    /**
+     * Fills an array with this map keys and returns it. This method assumes
+     * that input array is big enough to fit all the keys. Use
+     * {@link #prepareArray(Object[])} to ensure this.
+     *
+     * @param a an array to fill
+     * @param <T> type of array elements
+     * @return supplied array
+     */
+    <T> T[] keysToArray(T[] a) {
+        Object[] r = a;
+        Node<K,V>[] tab;
+        int idx = 0;
+        if (size > 0 && (tab = table) != null) {
+            for (Node<K,V> e : tab) {
+                for (; e != null; e = e.next) {
+                    r[idx++] = e.key;
+                }
+            }
+        }
+        return a;
+    }
+
+    /**
+     * Fills an array with this map values and returns it. This method assumes
+     * that input array is big enough to fit all the values. Use
+     * {@link #prepareArray(Object[])} to ensure this.
+     *
+     * @param a an array to fill
+     * @param <T> type of array elements
+     * @return supplied array
+     */
+    <T> T[] valuesToArray(T[] a) {
+        Object[] r = a;
+        Node<K,V>[] tab;
+        int idx = 0;
+        if (size > 0 && (tab = table) != null) {
+            for (Node<K,V> e : tab) {
+                for (; e != null; e = e.next) {
+                    r[idx++] = e.value;
+                }
+            }
+        }
+        return a;
+    }
+
     final class KeySet extends AbstractSet<K> {
         public final int size()                 { return size; }
         public final void clear()               { HashMap.this.clear(); }
@@ -922,6 +990,15 @@
         public final Spliterator<K> spliterator() {
             return new KeySpliterator<>(HashMap.this, 0, -1, 0, 0);
         }
+
+        public Object[] toArray() {
+            return keysToArray(new Object[size]);
+        }
+
+        public <T> T[] toArray(T[] a) {
+            return keysToArray(prepareArray(a));
+        }
+
         public final void forEach(Consumer<? super K> action) {
             Node<K,V>[] tab;
             if (action == null)
@@ -970,6 +1047,15 @@
         public final Spliterator<V> spliterator() {
             return new ValueSpliterator<>(HashMap.this, 0, -1, 0, 0);
         }
+
+        public Object[] toArray() {
+            return valuesToArray(new Object[size]);
+        }
+
+        public <T> T[] toArray(T[] a) {
+            return valuesToArray(prepareArray(a));
+        }
+
         public final void forEach(Consumer<? super V> action) {
             Node<K,V>[] tab;
             if (action == null)
--- a/src/java.base/share/classes/java/util/HashSet.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/share/classes/java/util/HashSet.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -358,4 +358,14 @@
     public Spliterator<E> spliterator() {
         return new HashMap.KeySpliterator<>(map, 0, -1, 0, 0);
     }
+
+    @Override
+    public Object[] toArray() {
+        return map.keysToArray(new Object[map.size()]);
+    }
+
+    @Override
+    public <T> T[] toArray(T[] a) {
+        return map.keysToArray(map.prepareArray(a));
+    }
 }
--- a/src/java.base/share/classes/java/util/LinkedHashMap.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/share/classes/java/util/LinkedHashMap.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -536,6 +536,26 @@
         return ks;
     }
 
+    @Override
+    final <T> T[] keysToArray(T[] a) {
+        Object[] r = a;
+        int idx = 0;
+        for (LinkedHashMap.Entry<K,V> e = head; e != null; e = e.after) {
+            r[idx++] = e.key;
+        }
+        return a;
+    }
+
+    @Override
+    final <T> T[] valuesToArray(T[] a) {
+        Object[] r = a;
+        int idx = 0;
+        for (LinkedHashMap.Entry<K,V> e = head; e != null; e = e.after) {
+            r[idx++] = e.value;
+        }
+        return a;
+    }
+
     final class LinkedKeySet extends AbstractSet<K> {
         public final int size()                 { return size; }
         public final void clear()               { LinkedHashMap.this.clear(); }
@@ -551,6 +571,15 @@
                                             Spliterator.ORDERED |
                                             Spliterator.DISTINCT);
         }
+
+        public Object[] toArray() {
+            return keysToArray(new Object[size]);
+        }
+
+        public <T> T[] toArray(T[] a) {
+            return keysToArray(prepareArray(a));
+        }
+
         public final void forEach(Consumer<? super K> action) {
             if (action == null)
                 throw new NullPointerException();
@@ -600,6 +629,15 @@
             return Spliterators.spliterator(this, Spliterator.SIZED |
                                             Spliterator.ORDERED);
         }
+
+        public Object[] toArray() {
+            return valuesToArray(new Object[size]);
+        }
+
+        public <T> T[] toArray(T[] a) {
+            return valuesToArray(prepareArray(a));
+        }
+
         public final void forEach(Consumer<? super V> action) {
             if (action == null)
                 throw new NullPointerException();
--- a/src/java.base/share/classes/jdk/internal/module/ModuleInfo.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/share/classes/jdk/internal/module/ModuleInfo.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 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
@@ -63,7 +63,7 @@
 public final class ModuleInfo {
 
     private final int JAVA_MIN_SUPPORTED_VERSION = 53;
-    private final int JAVA_MAX_SUPPORTED_VERSION = 57;
+    private final int JAVA_MAX_SUPPORTED_VERSION = 58;
 
     private static final JavaLangModuleAccess JLMA
         = SharedSecrets.getJavaLangModuleAccess();
--- a/src/java.base/share/classes/jdk/internal/org/objectweb/asm/ClassReader.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/share/classes/jdk/internal/org/objectweb/asm/ClassReader.java	Fri Jun 21 09:05:45 2019 -0700
@@ -210,7 +210,7 @@
         b = classFileBuffer;
         // Check the class' major_version. This field is after the magic and minor_version fields, which
         // use 4 and 2 bytes respectively.
-        if (checkClassVersion && readShort(classFileOffset + 6) > Opcodes.V13) {
+        if (checkClassVersion && readShort(classFileOffset + 6) > Opcodes.V14) {
             throw new IllegalArgumentException(
                     "Unsupported class file major version " + readShort(classFileOffset + 6));
         }
--- a/src/java.base/share/classes/jdk/internal/org/objectweb/asm/Opcodes.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/share/classes/jdk/internal/org/objectweb/asm/Opcodes.java	Fri Jun 21 09:05:45 2019 -0700
@@ -96,6 +96,7 @@
     int V11 = 0 << 16 | 55;
     int V12 = 0 << 16 | 56;
     int V13 = 0 << 16 | 57;
+    int V14 = 0 << 16 | 58;
 
     /**
       * Version flag indicating that the class is using 'preview' features.
--- a/src/java.base/share/classes/sun/net/util/IPAddressUtil.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/share/classes/sun/net/util/IPAddressUtil.java	Fri Jun 21 09:05:45 2019 -0700
@@ -25,6 +25,20 @@
 
 package sun.net.util;
 
+import java.io.IOException;
+import java.io.UncheckedIOException;
+import java.net.Inet6Address;
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import java.net.NetworkInterface;
+import java.net.SocketException;
+import java.security.AccessController;
+import java.security.PrivilegedExceptionAction;
+import java.security.PrivilegedActionException;
+import java.util.List;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.stream.Collectors;
+
 public class IPAddressUtil {
     private static final int INADDR4SZ = 4;
     private static final int INADDR16SZ = 16;
@@ -287,4 +301,75 @@
         }
         return false;
     }
+    /**
+     * Mapping from unscoped local Inet(6)Address to the same address
+     * including the correct scope-id, determined from NetworkInterface.
+     */
+    private final static ConcurrentHashMap<InetAddress,InetAddress>
+        cache = new ConcurrentHashMap<>();
+
+    /**
+     * Returns a scoped version of the supplied local, link-local ipv6 address
+     * if that scope-id can be determined from local NetworkInterfaces.
+     * If the address already has a scope-id or if the address is not local, ipv6
+     * or link local, then the original address is returned.
+     *
+     * @param addr
+     * @exception SocketException if the given ipv6 link local address is found
+     *            on more than one local interface
+     * @return
+     */
+    public static InetAddress toScopedAddress(InetAddress address)
+        throws SocketException {
+
+        if (address instanceof Inet6Address && address.isLinkLocalAddress()
+            && ((Inet6Address) address).getScopeId() == 0) {
+
+            InetAddress cached = null;
+            try {
+                cached = cache.computeIfAbsent(address, k -> findScopedAddress(k));
+            } catch (UncheckedIOException e) {
+                throw (SocketException)e.getCause();
+            }
+            return cached != null ? cached : address;
+        } else {
+            return address;
+        }
+    }
+
+    /**
+     * Same as above for InetSocketAddress
+     */
+    public static InetSocketAddress toScopedAddress(InetSocketAddress address)
+        throws SocketException {
+        InetAddress addr;
+        InetAddress orig = address.getAddress();
+        if ((addr = toScopedAddress(orig)) == orig) {
+            return address;
+        } else {
+            return new InetSocketAddress(addr, address.getPort());
+        }
+    }
+
+    private static InetAddress findScopedAddress(InetAddress address) {
+        PrivilegedExceptionAction<List<InetAddress>> pa = () -> NetworkInterface.networkInterfaces()
+                .flatMap(NetworkInterface::inetAddresses)
+                .filter(a -> (a instanceof Inet6Address)
+                        && address.equals(a)
+                        && ((Inet6Address) a).getScopeId() != 0)
+                .collect(Collectors.toList());
+        List<InetAddress> result;
+        try {
+            result = AccessController.doPrivileged(pa);
+            var sz = result.size();
+            if (sz == 0)
+                return null;
+            if (sz > 1)
+                throw new UncheckedIOException(new SocketException(
+                    "Duplicate link local addresses: must specify scope-id"));
+            return result.get(0);
+        } catch (PrivilegedActionException pae) {
+            return null;
+        }
+    }
 }
--- a/src/java.base/share/classes/sun/nio/ch/DatagramChannelImpl.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/share/classes/sun/nio/ch/DatagramChannelImpl.java	Fri Jun 21 09:05:45 2019 -0700
@@ -57,6 +57,7 @@
 
 import sun.net.ResourceManager;
 import sun.net.ext.ExtendedSocketOptions;
+import sun.net.util.IPAddressUtil;
 
 /**
  * An implementation of DatagramChannels.
@@ -527,14 +528,16 @@
                 } else {
                     // not connected
                     SecurityManager sm = System.getSecurityManager();
+                    InetAddress ia = isa.getAddress();
                     if (sm != null) {
-                        InetAddress ia = isa.getAddress();
                         if (ia.isMulticastAddress()) {
                             sm.checkMulticast(ia);
                         } else {
                             sm.checkConnect(ia.getHostAddress(), isa.getPort());
                         }
                     }
+                    if (ia.isLinkLocalAddress())
+                        isa = IPAddressUtil.toScopedAddress(isa);
                     n = send(fd, src, isa);
                     if (blocking) {
                         while (IOStatus.okayToRetry(n) && isOpen()) {
--- a/src/java.base/share/classes/sun/nio/ch/Net.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/share/classes/sun/nio/ch/Net.java	Fri Jun 21 09:05:45 2019 -0700
@@ -50,6 +50,7 @@
 import java.util.Enumeration;
 
 import sun.net.ext.ExtendedSocketOptions;
+import sun.net.util.IPAddressUtil;
 import sun.security.action.GetPropertyAction;
 
 public class Net {
@@ -462,6 +463,9 @@
     {
         boolean preferIPv6 = isIPv6Available() &&
             (family != StandardProtocolFamily.INET);
+        if (addr.isLinkLocalAddress()) {
+            addr = IPAddressUtil.toScopedAddress(addr);
+        }
         bind0(fd, preferIPv6, exclusiveBind, addr, port);
     }
 
@@ -481,6 +485,9 @@
     static int connect(ProtocolFamily family, FileDescriptor fd, InetAddress remote, int remotePort)
         throws IOException
     {
+        if (remote.isLinkLocalAddress()) {
+            remote = IPAddressUtil.toScopedAddress(remote);
+        }
         boolean preferIPv6 = isIPv6Available() &&
             (family != StandardProtocolFamily.INET);
         return connect0(preferIPv6, fd, remote, remotePort);
--- a/src/java.base/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -145,14 +145,20 @@
         result.append(type.getName());
         result.append('(');
         boolean firstMember = true;
-        for (Map.Entry<String, Object> e : memberValues.entrySet()) {
+        Set<Map.Entry<String, Object>> entries = memberValues.entrySet();
+        boolean loneValue = entries.size() == 1;
+        for (Map.Entry<String, Object> e : entries) {
             if (firstMember)
                 firstMember = false;
             else
                 result.append(", ");
 
-            result.append(e.getKey());
-            result.append('=');
+            String key = e.getKey();
+            if (!loneValue || !"value".equals(key)) {
+                result.append(key);
+                result.append('=');
+            }
+            loneValue = false;
             result.append(memberValueToString(e.getValue()));
         }
         result.append(')');
@@ -178,6 +184,8 @@
                 return  toSourceString((float) value);
             else if (type == Long.class)
                 return  toSourceString((long) value);
+            else if (type == Byte.class)
+                return  toSourceString((byte) value);
             else
                 return value.toString();
         } else {
@@ -221,14 +229,14 @@
      */
     private static String toSourceString(Class<?> clazz) {
         Class<?> finalComponent = clazz;
-        StringBuilder arrayBackets = new StringBuilder();
+        StringBuilder arrayBrackets = new StringBuilder();
 
         while(finalComponent.isArray()) {
             finalComponent = finalComponent.getComponentType();
-            arrayBackets.append("[]");
+            arrayBrackets.append("[]");
         }
 
-        return finalComponent.getName() + arrayBackets.toString() + ".class" ;
+        return finalComponent.getName() + arrayBrackets.toString() + ".class";
     }
 
     private static String toSourceString(float f) {
@@ -256,18 +264,44 @@
     private static String toSourceString(char c) {
         StringBuilder sb = new StringBuilder(4);
         sb.append('\'');
-        if (c == '\'')
-            sb.append("\\'");
-        else
-            sb.append(c);
-        return sb.append('\'')
-                .toString();
+        sb.append(quote(c));
+        return sb.append('\'') .toString();
+    }
+
+    /**
+     * Escapes a character if it has an escape sequence or is
+     * non-printable ASCII.  Leaves non-ASCII characters alone.
+     */
+    private static String quote(char ch) {
+        switch (ch) {
+        case '\b':  return "\\b";
+        case '\f':  return "\\f";
+        case '\n':  return "\\n";
+        case '\r':  return "\\r";
+        case '\t':  return "\\t";
+        case '\'':  return "\\'";
+        case '\"':  return "\\\"";
+        case '\\':  return "\\\\";
+        default:
+            return (isPrintableAscii(ch))
+                ? String.valueOf(ch)
+                : String.format("\\u%04x", (int) ch);
+        }
+    }
+
+    /**
+     * Is a character printable ASCII?
+     */
+    private static boolean isPrintableAscii(char ch) {
+        return ch >= ' ' && ch <= '~';
+    }
+
+    private static String toSourceString(byte b) {
+        return String.format("(byte)0x%02x", b);
     }
 
     private static String toSourceString(long ell) {
-        String str = String.valueOf(ell);
-        return (ell < Integer.MIN_VALUE || ell > Integer.MAX_VALUE)
-                ? (str + 'L') : str;
+        return String.valueOf(ell) + "L";
     }
 
     /**
@@ -277,9 +311,9 @@
     private static String toSourceString(String s) {
         StringBuilder sb = new StringBuilder();
         sb.append('"');
-        // Escape embedded quote characters, if present, but don't do
-        // anything more heroic.
-        sb.append(s.replace("\"", "\\\""));
+        for (int i = 0; i < s.length(); i++) {
+            sb.append(quote(s.charAt(i)));
+        }
         sb.append('"');
         return sb.toString();
     }
@@ -287,7 +321,7 @@
     private static Stream<String> convert(byte[] values) {
         List<String> list = new ArrayList<>(values.length);
         for (byte b : values)
-            list.add(Byte.toString(b));
+            list.add(toSourceString(b));
         return list.stream();
     }
 
--- a/src/java.base/share/classes/sun/security/ssl/SSLSocketImpl.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/share/classes/sun/security/ssl/SSLSocketImpl.java	Fri Jun 21 09:05:45 2019 -0700
@@ -38,6 +38,7 @@
 import java.net.UnknownHostException;
 import java.nio.ByteBuffer;
 import java.util.List;
+import java.util.concurrent.TimeUnit;
 import java.util.concurrent.locks.ReentrantLock;
 import java.util.function.BiFunction;
 import javax.net.ssl.HandshakeCompletedListener;
@@ -618,27 +619,76 @@
 
         // Need a lock here so that the user_canceled alert and the
         // close_notify alert can be delivered together.
-        conContext.outputRecord.recordLock.lock();
-        try {
+        int linger = getSoLinger();
+        if (linger >= 0) {
+            // don't wait more than SO_LINGER for obtaining the
+            // the lock.
+            //
+            // keep and clear the current thread interruption status.
+            boolean interrupted = Thread.interrupted();
             try {
-                // send a user_canceled alert if needed.
-                if (useUserCanceled) {
-                    conContext.warning(Alert.USER_CANCELED);
+                if (conContext.outputRecord.recordLock.tryLock() ||
+                        conContext.outputRecord.recordLock.tryLock(
+                                linger, TimeUnit.SECONDS)) {
+                    try {
+                        handleClosedNotifyAlert(useUserCanceled);
+                    } finally {
+                        conContext.outputRecord.recordLock.unlock();
+                    }
+                } else {
+                    // For layered, non-autoclose sockets, we are not
+                    // able to bring them into a usable state, so we
+                    // treat it as fatal error.
+                    if (!super.isOutputShutdown()) {
+                        if (isLayered() && !autoClose) {
+                            throw new SSLException(
+                                    "SO_LINGER timeout, " +
+                                    "close_notify message cannot be sent.");
+                        } else {
+                            super.shutdownOutput();
+                            if (SSLLogger.isOn && SSLLogger.isOn("ssl")) {
+                                SSLLogger.warning(
+                                    "SSLSocket output duplex close failed: " +
+                                    "SO_LINGER timeout, " +
+                                    "close_notify message cannot be sent.");
+                            }
+                        }
+                    }
+
+                    // RFC2246 requires that the session becomes
+                    // unresumable if any connection is terminated
+                    // without proper close_notify messages with
+                    // level equal to warning.
+                    //
+                    // RFC4346 no longer requires that a session not be
+                    // resumed if failure to properly close a connection.
+                    //
+                    // We choose to make the session unresumable if
+                    // failed to send the close_notify message.
+                    //
+                    conContext.conSession.invalidate();
+                    if (SSLLogger.isOn && SSLLogger.isOn("ssl")) {
+                        SSLLogger.warning(
+                                "Invalidate the session: SO_LINGER timeout, " +
+                                "close_notify message cannot be sent.");
+                    }
                 }
+            } catch (InterruptedException ex) {
+                // keep interrupted status
+                interrupted = true;
+            }
 
-                // send a close_notify alert
-                conContext.warning(Alert.CLOSE_NOTIFY);
+            // restore the interrupted status
+            if (interrupted) {
+                Thread.currentThread().interrupt();
+            }
+        } else {
+            conContext.outputRecord.recordLock.lock();
+            try {
+                handleClosedNotifyAlert(useUserCanceled);
             } finally {
-                if (!conContext.isOutboundClosed()) {
-                    conContext.outputRecord.close();
-                }
-
-                if ((autoClose || !isLayered()) && !super.isOutputShutdown()) {
-                    super.shutdownOutput();
-                }
+                conContext.outputRecord.recordLock.unlock();
             }
-        } finally {
-            conContext.outputRecord.recordLock.unlock();
         }
 
         if (!isInputShutdown()) {
@@ -646,6 +696,28 @@
         }
     }
 
+    private void handleClosedNotifyAlert(
+            boolean useUserCanceled) throws IOException {
+        try {
+            // send a user_canceled alert if needed.
+            if (useUserCanceled) {
+                conContext.warning(Alert.USER_CANCELED);
+            }
+
+            // send a close_notify alert
+            conContext.warning(Alert.CLOSE_NOTIFY);
+        } finally {
+            if (!conContext.isOutboundClosed()) {
+                conContext.outputRecord.close();
+            }
+
+            if (!super.isOutputShutdown() &&
+                    (autoClose || !isLayered())) {
+                super.shutdownOutput();
+            }
+        }
+    }
+
     /**
      * Duplex close, start from closing inbound.
      *
--- a/src/java.base/share/classes/sun/security/ssl/SignatureScheme.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/share/classes/sun/security/ssl/SignatureScheme.java	Fri Jun 21 09:05:45 2019 -0700
@@ -39,6 +39,7 @@
 import java.util.List;
 import java.util.Set;
 import sun.security.ssl.NamedGroup.NamedGroupType;
+import sun.security.ssl.SupportedGroupsExtension.SupportedGroups;
 import sun.security.ssl.X509Authentication.X509Possession;
 import sun.security.util.KeyUtil;
 import sun.security.util.SignatureUtil;
@@ -440,6 +441,39 @@
                             ss.namedGroup == NamedGroup.valueOf(params)) {
                         return ss;
                     }
+
+                    if (SSLLogger.isOn &&
+                            SSLLogger.isOn("ssl,handshake,verbose")) {
+                        SSLLogger.finest(
+                            "Ignore the signature algorithm (" + ss +
+                            "), unsupported EC parameter spec: " + params);
+                    }
+                } else if ("EC".equals(ss.keyAlgorithm)) {
+                    // Must be a legacy signature algorithm, which does not
+                    // specify the associated named groups.  The connection
+                    // cannot be established if the peer cannot recognize
+                    // the named group used for the signature.  RFC 8446
+                    // does not define countermeasures for the corner cases.
+                    // In order to mitigate the impact, we choose to check
+                    // against the local supported named groups.  The risk
+                    // should be minimal as applications should not use
+                    // unsupported named groups for its certificates.
+                    ECParameterSpec params =
+                            x509Possession.getECParameterSpec();
+                    if (params != null) {
+                        NamedGroup keyGroup = NamedGroup.valueOf(params);
+                        if (keyGroup != null &&
+                                SupportedGroups.isSupported(keyGroup)) {
+                            return ss;
+                        }
+                    }
+
+                    if (SSLLogger.isOn &&
+                            SSLLogger.isOn("ssl,handshake,verbose")) {
+                        SSLLogger.finest(
+                            "Ignore the legacy signature algorithm (" + ss +
+                            "), unsupported EC parameter spec: " + params);
+                    }
                 } else {
                     return ss;
                 }
--- a/src/java.base/share/classes/sun/security/ssl/X509Authentication.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/share/classes/sun/security/ssl/X509Authentication.java	Fri Jun 21 09:05:45 2019 -0700
@@ -69,7 +69,7 @@
     final String keyType;
     final SSLPossessionGenerator possessionGenerator;
 
-    X509Authentication(String keyType,
+    private X509Authentication(String keyType,
             SSLPossessionGenerator possessionGenerator) {
         this.keyType = keyType;
         this.possessionGenerator = possessionGenerator;
@@ -326,10 +326,12 @@
                 return null;
             }
 
-            // For ECC certs, check whether we support the EC domain
-            // parameters.  If the client sent a SupportedEllipticCurves
-            // ClientHello extension, check against that too.
-            if (keyType.equals("EC")) {
+            // For TLS 1.2 and prior versions, the public key of a EC cert
+            // MUST use a curve and point format supported by the client.
+            // But for TLS 1.3, signature algorithms are negotiated
+            // independently via the "signature_algorithms" extension.
+            if (!shc.negotiatedProtocol.useTLS13PlusSpec() &&
+                    keyType.equals("EC")) {
                 if (!(serverPublicKey instanceof ECPublicKey)) {
                     if (SSLLogger.isOn && SSLLogger.isOn("ssl")) {
                         SSLLogger.warning(serverAlias +
@@ -339,8 +341,9 @@
                 }
 
                 // For ECC certs, check whether we support the EC domain
-                // parameters. If the client sent a SupportedEllipticCurves
-                // ClientHello extension, check against that too.
+                // parameters.  If the client sent a supported_groups
+                // ClientHello extension, check against that too for
+                // TLS 1.2 and prior versions.
                 ECParameterSpec params =
                         ((ECPublicKey)serverPublicKey).getParams();
                 NamedGroup namedGroup = NamedGroup.valueOf(params);
--- a/src/java.base/share/classes/sun/security/tools/keytool/Main.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/share/classes/sun/security/tools/keytool/Main.java	Fri Jun 21 09:05:45 2019 -0700
@@ -2418,9 +2418,9 @@
         out.println(form.format(source));
         out.println();
 
-        for (Enumeration<String> e = keyStore.aliases();
-                                        e.hasMoreElements(); ) {
-            String alias = e.nextElement();
+        List<String> aliases = Collections.list(keyStore.aliases());
+        aliases.sort(String::compareTo);
+        for (String alias : aliases) {
             doPrintEntry("<" + alias + ">", alias, out);
             if (verbose || rfc) {
                 out.println(rb.getString("NEWLINE"));
--- a/src/java.base/share/classes/sun/security/util/CurveDB.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/share/classes/sun/security/util/CurveDB.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -68,7 +68,7 @@
             return spec;
         }
 
-        return nameMap.get(name);
+        return nameMap.get(name.toLowerCase(Locale.ENGLISH));
     }
 
     // Return EC parameters for the specified field size. If there are known
@@ -151,7 +151,8 @@
 
         String[] commonNames = nameSplitPattern.split(name);
         for (String commonName : commonNames) {
-            if (nameMap.put(commonName.trim(), params) != null) {
+            if (nameMap.put(commonName.trim().toLowerCase(Locale.ENGLISH),
+                            params) != null) {
                 throw new RuntimeException("Duplication name: " + commonName);
             }
         }
--- a/src/java.base/share/native/libnet/Inet6Address.c	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/share/native/libnet/Inet6Address.c	Fri Jun 21 09:05:45 2019 -0700
@@ -37,7 +37,6 @@
 
 jfieldID ia6_ipaddressID;
 jfieldID ia6_scopeidID;
-jfieldID ia6_cachedscopeidID;
 jfieldID ia6_scopeidsetID;
 jfieldID ia6_scopeifnameID;
 jmethodID ia6_ctrID;
@@ -65,8 +64,6 @@
         CHECK_NULL(ia6_ipaddressID);
         ia6_scopeidID = (*env)->GetFieldID(env, ia6h_class, "scope_id", "I");
         CHECK_NULL(ia6_scopeidID);
-        ia6_cachedscopeidID = (*env)->GetFieldID(env, ia6_class, "cached_scope_id", "I");
-        CHECK_NULL(ia6_cachedscopeidID);
         ia6_scopeidsetID = (*env)->GetFieldID(env, ia6h_class, "scope_id_set", "Z");
         CHECK_NULL(ia6_scopeidsetID);
         ia6_scopeifnameID = (*env)->GetFieldID(env, ia6h_class, "scope_ifname", "Ljava/net/NetworkInterface;");
--- a/src/java.base/share/native/libnet/net_util.h	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/share/native/libnet/net_util.h	Fri Jun 21 09:05:45 2019 -0700
@@ -107,7 +107,6 @@
 extern jfieldID ia6_holder6ID;
 extern jfieldID ia6_ipaddressID;
 extern jfieldID ia6_scopeidID;
-extern jfieldID ia6_cachedscopeidID;
 extern jfieldID ia6_scopeidsetID;
 extern jfieldID ia6_scopeifnameID;
 extern jmethodID ia6_ctrID;
--- a/src/java.base/unix/classes/java/net/PlainDatagramSocketImpl.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/unix/classes/java/net/PlainDatagramSocketImpl.java	Fri Jun 21 09:05:45 2019 -0700
@@ -57,7 +57,7 @@
     protected synchronized native void bind0(int lport, InetAddress laddr)
         throws SocketException;
 
-    protected native void send(DatagramPacket p) throws IOException;
+    protected native void send0(DatagramPacket p) throws IOException;
 
     protected synchronized native int peek(InetAddress i) throws IOException;
 
--- a/src/java.base/unix/native/libjava/ProcessImpl_md.c	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/unix/native/libjava/ProcessImpl_md.c	Fri Jun 21 09:05:45 2019 -0700
@@ -354,6 +354,27 @@
     free(errmsg);
 }
 
+/**
+ * Throws an IOException with a message composed from the result of waitpid status.
+ */
+static void throwExitCause(JNIEnv *env, int pid, int status) {
+    char ebuf[128];
+    if (WIFEXITED(status)) {
+        snprintf(ebuf, sizeof ebuf,
+            "Failed to exec spawn helper: pid: %d, exit value: %d",
+            pid, WEXITSTATUS(status));
+    } else if (WIFSIGNALED(status)) {
+        snprintf(ebuf, sizeof ebuf,
+            "Failed to exec spawn helper: pid: %d, signal: %d",
+            pid, WTERMSIG(status));
+    } else {
+        snprintf(ebuf, sizeof ebuf,
+            "Failed to exec spawn helper: pid: %d, status: 0x%08x",
+            pid, status);
+    }
+    throwIOException(env, 0, ebuf);
+}
+
 #ifdef DEBUG_PROCESS
 /* Debugging process code is difficult; where to write debug output? */
 static void
@@ -690,9 +711,12 @@
     if (c->sendAlivePing) {
         switch(readFully(fail[0], &errnum, sizeof(errnum))) {
         case 0: /* First exec failed; */
-            waitpid(resultPid, NULL, 0);
-            throwIOException(env, 0, "Failed to exec spawn helper.");
-            goto Catch;
+            {
+                int tmpStatus = 0;
+                int p = waitpid(resultPid, &tmpStatus, 0);
+                throwExitCause(env, p, tmpStatus);
+                goto Catch;
+            }
         case sizeof(errnum):
             assert(errnum == CHILD_IS_ALIVE);
             if (errnum != CHILD_IS_ALIVE) {
@@ -700,7 +724,7 @@
                  * helper should do is to send an alive ping to the parent,
                  * before doing any subsequent work. */
                 throwIOException(env, 0, "Bad code from spawn helper "
-                                         "(Failed to exec spawn helper.");
+                                         "(Failed to exec spawn helper)");
                 goto Catch;
             }
             break;
--- a/src/java.base/unix/native/libnet/Inet6AddressImpl.c	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/unix/native/libnet/Inet6AddressImpl.c	Fri Jun 21 09:05:45 2019 -0700
@@ -703,10 +703,6 @@
     sa.sa6.sin6_family = AF_INET6;
     if (scope > 0) {
         sa.sa6.sin6_scope_id = scope;
-#if defined(__linux__)
-    } else {
-        sa.sa6.sin6_scope_id = getDefaultIPv6Interface(&sa.sa6.sin6_addr);
-#endif
     }
 
     // load network interface address to SOCKETADDRESS, if specified
--- a/src/java.base/unix/native/libnet/PlainDatagramSocketImpl.c	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/unix/native/libnet/PlainDatagramSocketImpl.c	Fri Jun 21 09:05:45 2019 -0700
@@ -79,10 +79,6 @@
 static jfieldID pdsi_connectedAddress;
 static jfieldID pdsi_connectedPort;
 
-extern void setDefaultScopeID(JNIEnv *env, struct sockaddr *him);
-extern int getDefaultScopeID(JNIEnv *env);
-
-
 /*
  * Returns a java.lang.Integer based on 'i'
  */
@@ -200,7 +196,6 @@
                                   JNI_TRUE) != 0) {
       return;
     }
-    setDefaultScopeID(env, &sa.sa);
 
     if (NET_Bind(fd, &sa, len) < 0)  {
         if (errno == EADDRINUSE || errno == EADDRNOTAVAIL ||
@@ -266,8 +261,6 @@
       return;
     }
 
-    setDefaultScopeID(env, &rmtaddr.sa);
-
     if (NET_Connect(fd, &rmtaddr.sa, len) == -1) {
         NET_ThrowByNameWithLastError(env, JNU_JAVANETPKG "ConnectException",
                         "Connect failed");
@@ -334,11 +327,11 @@
 
 /*
  * Class:     java_net_PlainDatagramSocketImpl
- * Method:    send
+ * Method:    send0
  * Signature: (Ljava/net/DatagramPacket;)V
  */
 JNIEXPORT void JNICALL
-Java_java_net_PlainDatagramSocketImpl_send(JNIEnv *env, jobject this,
+Java_java_net_PlainDatagramSocketImpl_send0(JNIEnv *env, jobject this,
                                            jobject packet) {
 
     char BUF[MAX_BUFFER_LEN];
@@ -393,7 +386,6 @@
         }
         rmtaddrP = &rmtaddr.sa;
     }
-    setDefaultScopeID(env, &rmtaddr.sa);
 
     if (packetBufferLen > MAX_BUFFER_LEN) {
         /* When JNI-ifying the JDK's IO routines, we turned
@@ -2145,26 +2137,6 @@
                 NET_ThrowCurrent(env, "getsockopt IPV6_MULTICAST_IF failed");
                 return;
             }
-
-#ifdef __linux__
-            /*
-             * On 2.4.8+ if we join a group with the interface set to 0
-             * then the kernel records the interface it decides. This causes
-             * subsequent leave groups to fail as there is no match. Thus we
-             * pick the interface if there is a matching route.
-             */
-            if (index == 0) {
-                int rt_index = getDefaultIPv6Interface(&(mname6.ipv6mr_multiaddr));
-                if (rt_index > 0) {
-                    index = rt_index;
-                }
-            }
-#endif
-#ifdef MACOSX
-            if (family == AF_INET6 && index == 0) {
-                index = getDefaultScopeID(env);
-            }
-#endif
             mname6.ipv6mr_interface = index;
         } else {
             jint idx = (*env)->GetIntField(env, niObj, ni_indexID);
--- a/src/java.base/unix/native/libnet/PlainSocketImpl.c	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/unix/native/libnet/PlainSocketImpl.c	Fri Jun 21 09:05:45 2019 -0700
@@ -46,8 +46,6 @@
 jfieldID psi_fdLockID;
 jfieldID psi_closePendingID;
 
-extern void setDefaultScopeID(JNIEnv *env, struct sockaddr *him);
-
 /*
  * file descriptor used for dup2
  */
@@ -261,7 +259,6 @@
                                   JNI_TRUE) != 0) {
         return;
     }
-    setDefaultScopeID(env, &sa.sa);
 
     if (trafficClass != 0 && ipv6_available()) {
         NET_SetTrafficClass(&sa, trafficClass);
@@ -509,7 +506,6 @@
                                   &len, JNI_TRUE) != 0) {
         return;
     }
-    setDefaultScopeID(env, &sa.sa);
 
     if (NET_Bind(fd, &sa, len) < 0) {
         if (errno == EADDRINUSE || errno == EADDRNOTAVAIL ||
--- a/src/java.base/unix/native/libnet/net_util_md.c	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/unix/native/libnet/net_util_md.c	Fri Jun 21 09:05:45 2019 -0700
@@ -452,285 +452,7 @@
     }
 }
 
-#if defined(__linux__)
-
-/* following code creates a list of addresses from the kernel
- * routing table that are routed via the loopback address.
- * We check all destination addresses against this table
- * and override the scope_id field to use the relevant value for "lo"
- * in order to work-around the Linux bug that prevents packets destined
- * for certain local addresses from being sent via a physical interface.
- */
-
-struct loopback_route {
-    struct in6_addr addr; /* destination address */
-    int plen; /* prefix length */
-};
-
-static struct loopback_route *loRoutes = 0;
-static int nRoutes = 0; /* number of routes */
-static int loRoutes_size = 16; /* initial size */
-static int lo_scope_id = 0;
-
-static void initLoopbackRoutes();
-
-void printAddr (struct in6_addr *addr) {
-    int i;
-    for (i=0; i<16; i++) {
-        printf ("%02x", addr->s6_addr[i]);
-    }
-    printf ("\n");
-}
-
-static jboolean needsLoopbackRoute (struct in6_addr* dest_addr) {
-    int byte_count;
-    int extra_bits, i;
-    struct loopback_route *ptr;
-
-    if (loRoutes == 0) {
-        initLoopbackRoutes();
-    }
-
-    for (ptr = loRoutes, i=0; i<nRoutes; i++, ptr++) {
-        struct in6_addr *target_addr=&ptr->addr;
-        int dest_plen = ptr->plen;
-        byte_count = dest_plen >> 3;
-        extra_bits = dest_plen & 0x3;
-
-        if (byte_count > 0) {
-            if (memcmp(target_addr, dest_addr, byte_count)) {
-                continue;  /* no match */
-            }
-        }
-
-        if (extra_bits > 0) {
-            unsigned char c1 = ((unsigned char *)target_addr)[byte_count];
-            unsigned char c2 = ((unsigned char *)&dest_addr)[byte_count];
-            unsigned char mask = 0xff << (8 - extra_bits);
-            if ((c1 & mask) != (c2 & mask)) {
-                continue;
-            }
-        }
-        return JNI_TRUE;
-    }
-    return JNI_FALSE;
-}
-
-
-static void initLoopbackRoutes() {
-    FILE *f;
-    char srcp[8][5];
-    char hopp[8][5];
-    int dest_plen, src_plen, use, refcnt, metric;
-    unsigned long flags;
-    char dest_str[40];
-    struct in6_addr dest_addr;
-    char device[16];
-    struct loopback_route *loRoutesTemp;
-
-    if (loRoutes != 0) {
-        free (loRoutes);
-    }
-    loRoutes = calloc (loRoutes_size, sizeof(struct loopback_route));
-    if (loRoutes == 0) {
-        return;
-    }
-    /*
-     * Scan /proc/net/ipv6_route looking for a matching
-     * route.
-     */
-    if ((f = fopen("/proc/net/ipv6_route", "r")) == NULL) {
-        return ;
-    }
-    while (fscanf(f, "%4s%4s%4s%4s%4s%4s%4s%4s %02x "
-                     "%4s%4s%4s%4s%4s%4s%4s%4s %02x "
-                     "%4s%4s%4s%4s%4s%4s%4s%4s "
-                     "%08x %08x %08x %08lx %8s",
-                     dest_str, &dest_str[5], &dest_str[10], &dest_str[15],
-                     &dest_str[20], &dest_str[25], &dest_str[30], &dest_str[35],
-                     &dest_plen,
-                     srcp[0], srcp[1], srcp[2], srcp[3],
-                     srcp[4], srcp[5], srcp[6], srcp[7],
-                     &src_plen,
-                     hopp[0], hopp[1], hopp[2], hopp[3],
-                     hopp[4], hopp[5], hopp[6], hopp[7],
-                     &metric, &use, &refcnt, &flags, device) == 31) {
-
-        /*
-         * Some routes should be ignored
-         */
-        if ( (dest_plen < 0 || dest_plen > 128)  ||
-             (src_plen != 0) ||
-             (flags & (RTF_POLICY | RTF_FLOW)) ||
-             ((flags & RTF_REJECT) && dest_plen == 0) ) {
-            continue;
-        }
-
-        /*
-         * Convert the destination address
-         */
-        dest_str[4] = ':';
-        dest_str[9] = ':';
-        dest_str[14] = ':';
-        dest_str[19] = ':';
-        dest_str[24] = ':';
-        dest_str[29] = ':';
-        dest_str[34] = ':';
-        dest_str[39] = '\0';
-
-        if (inet_pton(AF_INET6, dest_str, &dest_addr) < 0) {
-            /* not an Ipv6 address */
-            continue;
-        }
-        if (strcmp(device, "lo") != 0) {
-            /* Not a loopback route */
-            continue;
-        } else {
-            if (nRoutes == loRoutes_size) {
-                loRoutesTemp = realloc (loRoutes, loRoutes_size *
-                                        sizeof (struct loopback_route) * 2);
-
-                if (loRoutesTemp == 0) {
-                    free(loRoutes);
-                    loRoutes = NULL;
-                    nRoutes = 0;
-                    fclose (f);
-                    return;
-                }
-                loRoutes=loRoutesTemp;
-                loRoutes_size *= 2;
-            }
-            memcpy (&loRoutes[nRoutes].addr,&dest_addr,sizeof(struct in6_addr));
-            loRoutes[nRoutes].plen = dest_plen;
-            nRoutes ++;
-        }
-    }
-
-    fclose (f);
-    {
-        /* now find the scope_id for "lo" */
-
-        char devname[21];
-        char addr6p[8][5];
-        int plen, scope, dad_status, if_idx;
-
-        if ((f = fopen("/proc/net/if_inet6", "r")) != NULL) {
-            while (fscanf(f, "%4s%4s%4s%4s%4s%4s%4s%4s %08x %02x %02x %02x %20s\n",
-                      addr6p[0], addr6p[1], addr6p[2], addr6p[3],
-                      addr6p[4], addr6p[5], addr6p[6], addr6p[7],
-                  &if_idx, &plen, &scope, &dad_status, devname) == 13) {
-
-                if (strcmp(devname, "lo") == 0) {
-                    /*
-                     * Found - so just return the index
-                     */
-                    fclose(f);
-                    lo_scope_id = if_idx;
-                    return;
-                }
-            }
-            fclose(f);
-        }
-    }
-}
-
-/*
- * Following is used for binding to local addresses. Equivalent
- * to code above, for bind().
- */
-
-struct localinterface {
-    int index;
-    char localaddr [16];
-};
-
-static struct localinterface *localifs = 0;
-static int localifsSize = 0;    /* size of array */
-static int nifs = 0;            /* number of entries used in array */
-
-/* not thread safe: make sure called once from one thread */
-
-static void initLocalIfs () {
-    FILE *f;
-    unsigned char staddr [16];
-    char ifname [33];
-    struct localinterface *lif=0;
-    struct localinterface *localifsTemp;
-    int index, x1, x2, x3;
-    unsigned int u0,u1,u2,u3,u4,u5,u6,u7,u8,u9,ua,ub,uc,ud,ue,uf;
-
-    if ((f = fopen("/proc/net/if_inet6", "r")) == NULL) {
-        return ;
-    }
-    while (fscanf (f, "%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x "
-                "%d %x %x %x %32s",&u0,&u1,&u2,&u3,&u4,&u5,&u6,&u7,
-                &u8,&u9,&ua,&ub,&uc,&ud,&ue,&uf,
-                &index, &x1, &x2, &x3, ifname) == 21) {
-        staddr[0] = (unsigned char)u0;
-        staddr[1] = (unsigned char)u1;
-        staddr[2] = (unsigned char)u2;
-        staddr[3] = (unsigned char)u3;
-        staddr[4] = (unsigned char)u4;
-        staddr[5] = (unsigned char)u5;
-        staddr[6] = (unsigned char)u6;
-        staddr[7] = (unsigned char)u7;
-        staddr[8] = (unsigned char)u8;
-        staddr[9] = (unsigned char)u9;
-        staddr[10] = (unsigned char)ua;
-        staddr[11] = (unsigned char)ub;
-        staddr[12] = (unsigned char)uc;
-        staddr[13] = (unsigned char)ud;
-        staddr[14] = (unsigned char)ue;
-        staddr[15] = (unsigned char)uf;
-        nifs ++;
-        if (nifs > localifsSize) {
-            localifsTemp = (struct localinterface *) realloc(
-                        localifs, sizeof (struct localinterface)* (localifsSize+5));
-            if (localifsTemp == 0) {
-                free(localifs);
-                localifs = 0;
-                localifsSize = 0;
-                nifs = 0;
-                fclose(f);
-                return;
-            }
-            localifs = localifsTemp;
-            lif = localifs + localifsSize;
-            localifsSize += 5;
-        } else {
-            lif ++;
-        }
-        memcpy (lif->localaddr, staddr, 16);
-        lif->index = index;
-    }
-    fclose (f);
-}
-
-/* return the scope_id (interface index) of the
- * interface corresponding to the given address
- * returns 0 if no match found
- */
-
-static int getLocalScopeID (char *addr) {
-    struct localinterface *lif;
-    int i;
-    if (localifs == 0) {
-        initLocalIfs();
-    }
-    for (i=0, lif=localifs; i<nifs; i++, lif++) {
-        if (memcmp (addr, lif->localaddr, 16) == 0) {
-            return lif->index;
-        }
-    }
-    return 0;
-}
-
-void platformInit () {
-    initLoopbackRoutes();
-    initLocalIfs();
-}
-
-#elif defined(_AIX)
+#if defined(_AIX)
 
 /* Initialize stubs for blocking I/O workarounds (see src/solaris/native/java/net/linux_close.c) */
 extern void aix_close_init();
@@ -816,71 +538,12 @@
             *len = sizeof(struct sockaddr_in6);
         }
 
-#ifdef __linux__
-        /*
-         * On Linux if we are connecting to a link-local address
-         * we need to specify the interface in the scope_id (2.4 kernel only)
-         *
-         * If the scope was cached then we use the cached value. If not cached but
-         * specified in the Inet6Address we use that, but we first check if the
-         * address needs to be routed via the loopback interface. In this case,
-         * we override the specified value with that of the loopback interface.
-         * If no cached value exists and no value was specified by user, then
-         * we try to determine a value from the routing table. In all these
-         * cases the used value is cached for further use.
-         */
-        if (IN6_IS_ADDR_LINKLOCAL(&sa->sa6.sin6_addr)) {
-            unsigned int cached_scope_id = 0, scope_id = 0;
-
-            if (ia6_cachedscopeidID) {
-                cached_scope_id = (int)(*env)->GetIntField(env, iaObj, ia6_cachedscopeidID);
-                /* if cached value exists then use it. Otherwise, check
-                 * if scope is set in the address.
-                 */
-                if (!cached_scope_id) {
-                    if (ia6_scopeidID) {
-                        scope_id = getInet6Address_scopeid(env, iaObj);
-                    }
-                    if (scope_id != 0) {
-                        /* check user-specified value for loopback case
-                         * that needs to be overridden
-                         */
-                        if (kernelIsV24() && needsLoopbackRoute(&sa->sa6.sin6_addr)) {
-                            cached_scope_id = lo_scope_id;
-                            (*env)->SetIntField(env, iaObj, ia6_cachedscopeidID, cached_scope_id);
-                        }
-                    } else {
-                        /*
-                         * Otherwise consult the IPv6 routing tables to
-                         * try determine the appropriate interface.
-                         */
-                        if (kernelIsV24()) {
-                            cached_scope_id = getDefaultIPv6Interface(&sa->sa6.sin6_addr);
-                        } else {
-                            cached_scope_id = getLocalScopeID((char *)&(sa->sa6.sin6_addr));
-                            if (cached_scope_id == 0) {
-                                cached_scope_id = getDefaultIPv6Interface(&sa->sa6.sin6_addr);
-                            }
-                        }
-                        (*env)->SetIntField(env, iaObj, ia6_cachedscopeidID, cached_scope_id);
-                    }
-                }
-            }
-
-            /*
-             * If we have a scope_id use the extended form
-             * of sockaddr_in6.
-             */
-            sa->sa6.sin6_scope_id = cached_scope_id == 0 ? scope_id : cached_scope_id;
-        }
-#else
         /* handle scope_id */
         if (family != java_net_InetAddress_IPv4) {
             if (ia6_scopeidID) {
                 sa->sa6.sin6_scope_id = getInet6Address_scopeid(env, iaObj);
             }
         }
-#endif
     } else {
         jint address;
         if (family != java_net_InetAddress_IPv4) {
@@ -1015,158 +678,6 @@
 }
 
 /*
- * Determine the default interface for an IPv6 address.
- *
- * 1. Scans /proc/net/ipv6_route for a matching route
- *    (eg: fe80::/10 or a route for the specific address).
- *    This will tell us the interface to use (eg: "eth0").
- *
- * 2. Lookup /proc/net/if_inet6 to map the interface
- *    name to an interface index.
- *
- * Returns :-
- *      -1 if error
- *       0 if no matching interface
- *      >1 interface index to use for the link-local address.
- */
-#if defined(__linux__)
-int getDefaultIPv6Interface(struct in6_addr *target_addr) {
-    FILE *f;
-    char srcp[8][5];
-    char hopp[8][5];
-    int dest_plen, src_plen, use, refcnt, metric;
-    unsigned long flags;
-    char dest_str[40];
-    struct in6_addr dest_addr;
-    char device[16];
-    jboolean match = JNI_FALSE;
-
-    /*
-     * Scan /proc/net/ipv6_route looking for a matching
-     * route.
-     */
-    if ((f = fopen("/proc/net/ipv6_route", "r")) == NULL) {
-        return -1;
-    }
-    while (fscanf(f, "%4s%4s%4s%4s%4s%4s%4s%4s %02x "
-                     "%4s%4s%4s%4s%4s%4s%4s%4s %02x "
-                     "%4s%4s%4s%4s%4s%4s%4s%4s "
-                     "%08x %08x %08x %08lx %8s",
-                     dest_str, &dest_str[5], &dest_str[10], &dest_str[15],
-                     &dest_str[20], &dest_str[25], &dest_str[30], &dest_str[35],
-                     &dest_plen,
-                     srcp[0], srcp[1], srcp[2], srcp[3],
-                     srcp[4], srcp[5], srcp[6], srcp[7],
-                     &src_plen,
-                     hopp[0], hopp[1], hopp[2], hopp[3],
-                     hopp[4], hopp[5], hopp[6], hopp[7],
-                     &metric, &use, &refcnt, &flags, device) == 31) {
-
-        /*
-         * Some routes should be ignored
-         */
-        if ( (dest_plen < 0 || dest_plen > 128)  ||
-             (src_plen != 0) ||
-             (flags & (RTF_POLICY | RTF_FLOW)) ||
-             ((flags & RTF_REJECT) && dest_plen == 0) ) {
-            continue;
-        }
-
-        /*
-         * Convert the destination address
-         */
-        dest_str[4] = ':';
-        dest_str[9] = ':';
-        dest_str[14] = ':';
-        dest_str[19] = ':';
-        dest_str[24] = ':';
-        dest_str[29] = ':';
-        dest_str[34] = ':';
-        dest_str[39] = '\0';
-
-        if (inet_pton(AF_INET6, dest_str, &dest_addr) < 0) {
-            /* not an Ipv6 address */
-            continue;
-        } else {
-            /*
-             * The prefix len (dest_plen) indicates the number of bits we
-             * need to match on.
-             *
-             * dest_plen / 8    => number of bytes to match
-             * dest_plen % 8    => number of additional bits to match
-             *
-             * eg: fe80::/10 => match 1 byte + 2 additional bits in the
-             *                  next byte.
-             */
-            int byte_count = dest_plen >> 3;
-            int extra_bits = dest_plen & 0x3;
-
-            if (byte_count > 0) {
-                if (memcmp(target_addr, &dest_addr, byte_count)) {
-                    continue;  /* no match */
-                }
-            }
-
-            if (extra_bits > 0) {
-                unsigned char c1 = ((unsigned char *)target_addr)[byte_count];
-                unsigned char c2 = ((unsigned char *)&dest_addr)[byte_count];
-                unsigned char mask = 0xff << (8 - extra_bits);
-                if ((c1 & mask) != (c2 & mask)) {
-                    continue;
-                }
-            }
-
-            /*
-             * We have a match
-             */
-            match = JNI_TRUE;
-            break;
-        }
-    }
-    fclose(f);
-
-    /*
-     * If there's a match then we lookup the interface
-     * index.
-     */
-    if (match) {
-        char devname[21];
-        char addr6p[8][5];
-        int plen, scope, dad_status, if_idx;
-
-        if ((f = fopen("/proc/net/if_inet6", "r")) != NULL) {
-            while (fscanf(f, "%4s%4s%4s%4s%4s%4s%4s%4s %08x %02x %02x %02x %20s\n",
-                      addr6p[0], addr6p[1], addr6p[2], addr6p[3],
-                      addr6p[4], addr6p[5], addr6p[6], addr6p[7],
-                  &if_idx, &plen, &scope, &dad_status, devname) == 13) {
-
-                if (strcmp(devname, device) == 0) {
-                    /*
-                     * Found - so just return the index
-                     */
-                    fclose(f);
-                    return if_idx;
-                }
-            }
-            fclose(f);
-        } else {
-            /*
-             * Couldn't open /proc/net/if_inet6
-             */
-            return -1;
-        }
-    }
-
-    /*
-     * If we get here it means we didn't there wasn't any
-     * route or we couldn't get the index of the interface.
-     */
-    return 0;
-}
-#endif
-
-
-/*
  * Wrapper for getsockopt system routine - does any necessary
  * pre/post processing to deal with OS specific oddities :-
  *
--- a/src/java.base/unix/native/libnet/net_util_md.h	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/unix/native/libnet/net_util_md.h	Fri Jun 21 09:05:45 2019 -0700
@@ -101,7 +101,6 @@
 
 #ifdef __linux__
 int kernelIsV24();
-int getDefaultIPv6Interface(struct in6_addr *target_addr);
 #endif
 
 #ifdef __solaris__
--- a/src/java.base/windows/classes/java/net/DualStackPlainDatagramSocketImpl.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/windows/classes/java/net/DualStackPlainDatagramSocketImpl.java	Fri Jun 21 09:05:45 2019 -0700
@@ -124,7 +124,7 @@
         socketReceiveOrPeekData(nativefd, p, timeout, connected, false /*receive*/);
     }
 
-    protected void send(DatagramPacket p) throws IOException {
+    protected void send0(DatagramPacket p) throws IOException {
         int nativefd = checkAndReturnNativeFD();
 
         if (p == null)
--- a/src/java.base/windows/classes/java/net/TwoStacksPlainDatagramSocketImpl.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/windows/classes/java/net/TwoStacksPlainDatagramSocketImpl.java	Fri Jun 21 09:05:45 2019 -0700
@@ -184,7 +184,7 @@
                                              boolean exclBind)
         throws SocketException;
 
-    protected native void send(DatagramPacket p) throws IOException;
+    protected native void send0(DatagramPacket p) throws IOException;
 
     protected synchronized native int peek(InetAddress i) throws IOException;
 
--- a/src/java.base/windows/native/libnet/Inet4AddressImpl.c	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/windows/native/libnet/Inet4AddressImpl.c	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -359,7 +359,8 @@
     }
 
     if (dwRetVal == 0) { // if the call failed
-        TCHAR *buf;
+        TCHAR *buf = NULL;
+        DWORD n;
         DWORD err = WSAGetLastError();
         switch (err) {
             case ERROR_NO_NETWORK:
@@ -379,9 +380,17 @@
             case IP_REQ_TIMED_OUT:
                 break;
             default:
-                FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
-                              NULL, err, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
-                              (LPTSTR)&buf, 0, NULL);
+                n = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
+                        FORMAT_MESSAGE_FROM_SYSTEM,
+                        NULL, err, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
+                        (LPTSTR)&buf, 0, NULL);
+                if (n > 3) {
+                    // Drop final '.', CR, LF
+                    if (buf[n - 1] == TEXT('\n')) n--;
+                    if (buf[n - 1] == TEXT('\r')) n--;
+                    if (buf[n - 1] == TEXT('.')) n--;
+                    buf[n] = TEXT('\0');
+                }
                 NET_ThrowNew(env, err, buf);
                 LocalFree(buf);
                 break;
--- a/src/java.base/windows/native/libnet/TwoStacksPlainDatagramSocketImpl.c	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/windows/native/libnet/TwoStacksPlainDatagramSocketImpl.c	Fri Jun 21 09:05:45 2019 -0700
@@ -415,11 +415,11 @@
 
 /*
  * Class:     java_net_TwoStacksPlainDatagramSocketImpl
- * Method:    send
+ * Method:    send0
  * Signature: (Ljava/net/DatagramPacket;)V
  */
 JNIEXPORT void JNICALL
-Java_java_net_TwoStacksPlainDatagramSocketImpl_send
+Java_java_net_TwoStacksPlainDatagramSocketImpl_send0
   (JNIEnv *env, jobject this, jobject packet)
 {
     char BUF[MAX_BUFFER_LEN];
--- a/src/java.base/windows/native/libnet/net_util_md.c	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/windows/native/libnet/net_util_md.c	Fri Jun 21 09:05:45 2019 -0700
@@ -752,37 +752,6 @@
     return 0;
 }
 
-/*
- * Determine the default interface for an IPv6 address.
- *
- * Returns :-
- *      0 if error
- *      > 0 interface index to use
- */
-jint getDefaultIPv6Interface(JNIEnv *env, struct sockaddr_in6 *target_addr)
-{
-    int ret;
-    DWORD b;
-    struct sockaddr_in6 route;
-    SOCKET fd = socket(AF_INET6, SOCK_STREAM, 0);
-    if (fd == INVALID_SOCKET) {
-        return 0;
-    }
-
-    ret = WSAIoctl(fd, SIO_ROUTING_INTERFACE_QUERY,
-                   (void *)target_addr, sizeof(struct sockaddr_in6),
-                   (void *)&route, sizeof(struct sockaddr_in6),
-                   &b, 0, 0);
-    if (ret == SOCKET_ERROR) {
-        // error
-        closesocket(fd);
-        return 0;
-    } else {
-        closesocket(fd);
-        return route.sin6_scope_id;
-    }
-}
-
 /**
  * Enables SIO_LOOPBACK_FAST_PATH
  */
@@ -820,7 +789,7 @@
     {
         jbyte caddr[16];
         jint address;
-        unsigned int scopeid = 0, cached_scope_id = 0;
+        unsigned int scopeid = 0;
 
         if (family == java_net_InetAddress_IPv4) {
             // convert to IPv4-mapped address
@@ -842,19 +811,11 @@
         } else {
             getInet6Address_ipaddress(env, iaObj, (char *)caddr);
             scopeid = getInet6Address_scopeid(env, iaObj);
-            cached_scope_id = (unsigned int)(*env)->GetIntField(env, iaObj, ia6_cachedscopeidID);
         }
         sa->sa6.sin6_port = (u_short)htons((u_short)port);
         memcpy((void *)&sa->sa6.sin6_addr, caddr, sizeof(struct in6_addr));
         sa->sa6.sin6_family = AF_INET6;
-        if ((family == java_net_InetAddress_IPv6) &&
-            IN6_IS_ADDR_LINKLOCAL(&sa->sa6.sin6_addr) &&
-            (!scopeid && !cached_scope_id))
-        {
-            cached_scope_id = getDefaultIPv6Interface(env, &sa->sa6);
-            (*env)->SetIntField(env, iaObj, ia6_cachedscopeidID, cached_scope_id);
-        }
-        sa->sa6.sin6_scope_id = scopeid == 0 ? cached_scope_id : scopeid;
+        sa->sa6.sin6_scope_id = scopeid;
         if (len != NULL) {
             *len = sizeof(struct sockaddr_in6);
         }
--- a/src/java.base/windows/native/libnio/ch/Iocp.c	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/windows/native/libnio/ch/Iocp.c	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -142,6 +142,14 @@
     if (len == 0) {
         return NULL;
     } else {
+        if (len > 3) {
+            // Drop final '.', CR, LF
+            if (message[len - 1] == L'\n') len--;
+            if (message[len - 1] == L'\r') len--;
+            if (message[len - 1] == L'.') len--;
+            message[len] = L'\0';
+        }
+
         return (*env)->NewString(env, (const jchar *)message, (jsize)wcslen(message));
     }
 }
--- a/src/java.base/windows/native/libnio/fs/WindowsNativeDispatcher.c	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.base/windows/native/libnio/fs/WindowsNativeDispatcher.c	Fri Jun 21 09:05:45 2019 -0700
@@ -177,6 +177,14 @@
     if (len == 0) {
         return NULL;
     } else {
+        if (len > 3) {
+            // Drop final '.', CR, LF
+            if (message[len - 1] == L'\n') len--;
+            if (message[len - 1] == L'\r') len--;
+            if (message[len - 1] == L'.') len--;
+            message[len] = L'\0';
+        }
+
         return (*env)->NewString(env, (const jchar *)message, (jsize)wcslen(message));
     }
 }
--- a/src/java.compiler/share/classes/javax/lang/model/SourceVersion.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.compiler/share/classes/javax/lang/model/SourceVersion.java	Fri Jun 21 09:05:45 2019 -0700
@@ -60,6 +60,7 @@
      *  11: local-variable syntax for lambda parameters
      *  12: no changes (switch expressions were in preview)
      *  13: no changes (switch expressions and text blocks in preview)
+     *  14: TBD
      */
 
     /**
@@ -192,7 +193,15 @@
      *
      * @since 13
      */
-     RELEASE_13;
+     RELEASE_13,
+
+    /**
+     * The version recognized by the Java Platform, Standard Edition
+     * 14.
+     *
+     * @since 14
+     */
+     RELEASE_14;
 
     // Note that when adding constants for newer releases, the
     // behavior of latest() and latestSupported() must be updated too.
@@ -203,7 +212,7 @@
      * @return the latest source version that can be modeled
      */
     public static SourceVersion latest() {
-        return RELEASE_13;
+        return RELEASE_14;
     }
 
     private static final SourceVersion latestSupported = getLatestSupported();
@@ -218,7 +227,7 @@
     private static SourceVersion getLatestSupported() {
         int intVersion = Runtime.version().feature();
         return (intVersion >= 11) ?
-            valueOf("RELEASE_" + Math.min(13, intVersion)):
+            valueOf("RELEASE_" + Math.min(14, intVersion)):
             RELEASE_10;
     }
 
--- a/src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor9.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor9.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018, 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
@@ -32,7 +32,7 @@
 /**
  * A skeletal visitor for annotation values with default behavior
  * appropriate for source versions {@link SourceVersion#RELEASE_9
- * RELEASE_9} through {@link SourceVersion#RELEASE_13 RELEASE_13}.
+ * RELEASE_9} through {@link SourceVersion#RELEASE_14 RELEASE_14}.
  *
  * <p> <b>WARNING:</b> The {@code AnnotationValueVisitor} interface
  * implemented by this class may have methods added to it in the
@@ -59,7 +59,7 @@
  * @see AbstractAnnotationValueVisitor8
  * @since 9
  */
-@SupportedSourceVersion(RELEASE_13)
+@SupportedSourceVersion(RELEASE_14)
 public abstract class AbstractAnnotationValueVisitor9<R, P> extends AbstractAnnotationValueVisitor8<R, P> {
 
     /**
--- a/src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor9.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor9.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018, 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
@@ -34,7 +34,7 @@
 /**
  * A skeletal visitor of program elements with default behavior
  * appropriate for source versions {@link SourceVersion#RELEASE_9
- * RELEASE_9} through {@link SourceVersion#RELEASE_13 RELEASE_13}.
+ * RELEASE_9} through {@link SourceVersion#RELEASE_14 RELEASE_14}.
  *
  * <p> <b>WARNING:</b> The {@code ElementVisitor} interface
  * implemented by this class may have methods added to it in the
@@ -65,7 +65,7 @@
  * @since 9
  * @spec JPMS
  */
-@SupportedSourceVersion(RELEASE_13)
+@SupportedSourceVersion(RELEASE_14)
 public abstract class AbstractElementVisitor9<R, P> extends AbstractElementVisitor8<R, P> {
     /**
      * Constructor for concrete subclasses to call.
--- a/src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitor9.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitor9.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018, 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
@@ -33,7 +33,7 @@
 /**
  * A skeletal visitor of types with default behavior appropriate for
  * source versions {@link SourceVersion#RELEASE_9 RELEASE_9} through
- * {@link SourceVersion#RELEASE_13 RELEASE_13}.
+ * {@link SourceVersion#RELEASE_14 RELEASE_14}.
  *
  * <p> <b>WARNING:</b> The {@code TypeVisitor} interface implemented
  * by this class may have methods added to it in the future to
@@ -63,7 +63,7 @@
  * @see AbstractTypeVisitor8
  * @since 9
  */
-@SupportedSourceVersion(RELEASE_13)
+@SupportedSourceVersion(RELEASE_14)
 public abstract class AbstractTypeVisitor9<R, P> extends AbstractTypeVisitor8<R, P> {
     /**
      * Constructor for concrete subclasses to call.
--- a/src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor9.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor9.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018, 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
@@ -34,7 +34,7 @@
  * A visitor of program elements based on their {@linkplain
  * ElementKind kind} with default behavior appropriate for source
  * versions {@link SourceVersion#RELEASE_9 RELEASE_9} through {@link
- * SourceVersion#RELEASE_13 RELEASE_13}.
+ * SourceVersion#RELEASE_14 RELEASE_14}.
  *
  * For {@linkplain
  * Element elements} <code><i>Xyz</i></code> that may have more than one
@@ -80,7 +80,7 @@
  * @since 9
  * @spec JPMS
  */
-@SupportedSourceVersion(RELEASE_13)
+@SupportedSourceVersion(RELEASE_14)
 public class ElementKindVisitor9<R, P> extends ElementKindVisitor8<R, P> {
     /**
      * Constructor for concrete subclasses; uses {@code null} for the
--- a/src/java.compiler/share/classes/javax/lang/model/util/ElementScanner9.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.compiler/share/classes/javax/lang/model/util/ElementScanner9.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018, 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
@@ -34,7 +34,7 @@
 /**
  * A scanning visitor of program elements with default behavior
  * appropriate for source versions {@link SourceVersion#RELEASE_9
- * RELEASE_9} through {@link SourceVersion#RELEASE_13 RELEASE_13}.
+ * RELEASE_9} through {@link SourceVersion#RELEASE_14 RELEASE_14}.
  *
  * The <code>visit<i>Xyz</i></code> methods in this
  * class scan their component elements by calling {@code scan} on
@@ -92,7 +92,7 @@
  * @since 9
  * @spec JPMS
  */
-@SupportedSourceVersion(RELEASE_13)
+@SupportedSourceVersion(RELEASE_14)
 public class ElementScanner9<R, P> extends ElementScanner8<R, P> {
     /**
      * Constructor for concrete subclasses; uses {@code null} for the
--- a/src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor9.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor9.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018, 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
@@ -32,7 +32,7 @@
 /**
  * A simple visitor for annotation values with default behavior
  * appropriate for source versions {@link SourceVersion#RELEASE_9
- * RELEASE_9} through {@link SourceVersion#RELEASE_13 RELEASE_13}.
+ * RELEASE_9} through {@link SourceVersion#RELEASE_14 RELEASE_14}.
  *
  * Visit methods call {@link #defaultAction
  * defaultAction} passing their arguments to {@code defaultAction}'s
@@ -68,7 +68,7 @@
  * @see SimpleAnnotationValueVisitor8
  * @since 9
  */
-@SupportedSourceVersion(RELEASE_13)
+@SupportedSourceVersion(RELEASE_14)
 public class SimpleAnnotationValueVisitor9<R, P> extends SimpleAnnotationValueVisitor8<R, P> {
     /**
      * Constructor for concrete subclasses; uses {@code null} for the
--- a/src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor9.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor9.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018, 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
@@ -33,7 +33,7 @@
 /**
  * A simple visitor of program elements with default behavior
  * appropriate for source versions {@link SourceVersion#RELEASE_9
- * RELEASE_9} through {@link SourceVersion#RELEASE_13 RELEASE_13}.
+ * RELEASE_9} through {@link SourceVersion#RELEASE_14 RELEASE_14}.
  *
  * Visit methods corresponding to {@code RELEASE_9} and earlier
  * language constructs call {@link #defaultAction defaultAction},
@@ -73,7 +73,7 @@
  * @since 9
  * @spec JPMS
  */
-@SupportedSourceVersion(RELEASE_13)
+@SupportedSourceVersion(RELEASE_14)
 public class SimpleElementVisitor9<R, P> extends SimpleElementVisitor8<R, P> {
     /**
      * Constructor for concrete subclasses; uses {@code null} for the
--- a/src/java.compiler/share/classes/javax/lang/model/util/SimpleTypeVisitor9.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.compiler/share/classes/javax/lang/model/util/SimpleTypeVisitor9.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018, 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
@@ -33,7 +33,7 @@
 /**
  * A simple visitor of types with default behavior appropriate for
  * source versions {@link SourceVersion#RELEASE_9 RELEASE_9} through
- * {@link SourceVersion#RELEASE_13 RELEASE_13}.
+ * {@link SourceVersion#RELEASE_14 RELEASE_14}.
  *
  * Visit methods corresponding to {@code RELEASE_9} and earlier
  * language constructs call {@link #defaultAction defaultAction},
@@ -73,7 +73,7 @@
  * @see SimpleTypeVisitor8
  * @since 9
  */
-@SupportedSourceVersion(RELEASE_13)
+@SupportedSourceVersion(RELEASE_14)
 public class SimpleTypeVisitor9<R, P> extends SimpleTypeVisitor8<R, P> {
     /**
      * Constructor for concrete subclasses; uses {@code null} for the
--- a/src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor9.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor9.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018, 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
@@ -34,7 +34,7 @@
  * A visitor of types based on their {@linkplain TypeKind kind} with
  * default behavior appropriate for source versions {@link
  * SourceVersion#RELEASE_9 RELEASE_9} through {@link
- * SourceVersion#RELEASE_13 RELEASE_13}.
+ * SourceVersion#RELEASE_14 RELEASE_14}.
  *
  * For {@linkplain
  * TypeMirror types} <code><i>Xyz</i></code> that may have more than one
@@ -77,7 +77,7 @@
  * @see TypeKindVisitor8
  * @since 9
  */
-@SupportedSourceVersion(RELEASE_13)
+@SupportedSourceVersion(RELEASE_14)
 public class TypeKindVisitor9<R, P> extends TypeKindVisitor8<R, P> {
     /**
      * Constructor for concrete subclasses to call; uses {@code null}
--- a/src/java.naming/share/classes/com/sun/jndi/ldap/Connection.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.naming/share/classes/com/sun/jndi/ldap/Connection.java	Fri Jun 21 09:05:45 2019 -0700
@@ -411,6 +411,14 @@
     BerDecoder readReply(LdapRequest ldr) throws IOException, NamingException {
         BerDecoder rber;
 
+        // If socket closed, don't even try
+        synchronized (this) {
+            if (sock == null) {
+                throw new ServiceUnavailableException(host + ":" + port +
+                    "; socket closed");
+            }
+        }
+
         try {
             // if no timeout is set so we wait infinitely until
             // a response is received
--- a/src/java.net.http/share/classes/java/net/http/HttpResponse.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.net.http/share/classes/java/net/http/HttpResponse.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1253,7 +1253,7 @@
         /**
          * Returns a {@code BodySubscriber} which buffers data before delivering
          * it to the given downstream subscriber. The subscriber guarantees to
-         * deliver {@code buffersize} bytes of data to each invocation of the
+         * deliver {@code bufferSize} bytes of data to each invocation of the
          * downstream's {@link BodySubscriber#onNext(Object) onNext} method,
          * except for the final invocation, just before
          * {@link BodySubscriber#onComplete() onComplete} is invoked. The final
--- a/src/java.net.http/share/classes/jdk/internal/net/http/Http1HeaderParser.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.net.http/share/classes/jdk/internal/net/http/Http1HeaderParser.java	Fri Jun 21 09:05:45 2019 -0700
@@ -194,7 +194,15 @@
         if (statusLine.length() < 12) {
             throw protocolException("Invalid status line: \"%s\"", statusLine);
         }
-        responseCode = Integer.parseInt(statusLine.substring(9, 12));
+        try {
+            responseCode = Integer.parseInt(statusLine.substring(9, 12));
+        } catch (NumberFormatException nfe) {
+            throw protocolException("Invalid status line: \"%s\"", statusLine);
+        }
+        // response code expected to be a 3-digit integer (RFC-2616, section 6.1.1)
+        if (responseCode < 100) {
+            throw protocolException("Invalid status line: \"%s\"", statusLine);
+        }
 
         state = State.STATUS_LINE_END;
     }
--- a/src/java.net.http/share/classes/jdk/internal/net/http/LineSubscriberAdapter.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.net.http/share/classes/jdk/internal/net/http/LineSubscriberAdapter.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, 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
@@ -40,6 +40,7 @@
 import java.util.concurrent.Flow;
 import java.util.concurrent.Flow.Subscriber;
 import java.util.concurrent.Flow.Subscription;
+import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicLong;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.function.Function;
@@ -56,6 +57,7 @@
     private final Function<? super S, ? extends R> finisher;
     private final Charset charset;
     private final String eol;
+    private final AtomicBoolean subscribed = new AtomicBoolean();
     private volatile LineSubscription downstream;
 
     private LineSubscriberAdapter(S subscriber,
@@ -72,6 +74,12 @@
 
     @Override
     public void onSubscribe(Subscription subscription) {
+        Objects.requireNonNull(subscription);
+        if (!subscribed.compareAndSet(false, true)) {
+            subscription.cancel();
+            return;
+        }
+
         downstream = LineSubscription.create(subscription,
                                              charset,
                                              eol,
@@ -82,6 +90,7 @@
 
     @Override
     public void onNext(List<ByteBuffer> item) {
+        Objects.requireNonNull(item);
         try {
             downstream.submit(item);
         } catch (Throwable t) {
@@ -91,6 +100,7 @@
 
     @Override
     public void onError(Throwable throwable) {
+        Objects.requireNonNull(throwable);
         try {
             downstream.signalError(throwable);
         } finally {
--- a/src/java.net.http/share/classes/jdk/internal/net/http/PullPublisher.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.net.http/share/classes/jdk/internal/net/http/PullPublisher.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -103,11 +103,19 @@
                 }
 
                 while (demand.tryDecrement() && !cancelled) {
-                    if (!iter.hasNext()) {
-                        break;
-                    } else {
-                        subscriber.onNext(iter.next());
+                    T next;
+                    try {
+                        if (!iter.hasNext()) {
+                            break;
+                        }
+                        next = iter.next();
+                    } catch (Throwable t1) {
+                        completed = true;
+                        pullScheduler.stop();
+                        subscriber.onError(t1);
+                        return;
                     }
+                    subscriber.onNext(next);
                 }
                 if (!iter.hasNext() && !cancelled) {
                     completed = true;
@@ -123,7 +131,7 @@
                 return;  // no-op
 
             if (n <= 0) {
-                error = new IllegalArgumentException("illegal non-positive request:" + n);
+                error = new IllegalArgumentException("non-positive subscription request: " + n);
             } else {
                 demand.increase(n);
             }
--- a/src/java.net.http/share/classes/jdk/internal/net/http/RequestPublishers.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.net.http/share/classes/jdk/internal/net/http/RequestPublishers.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -271,12 +271,13 @@
 
         @Override
         public void subscribe(Flow.Subscriber<? super ByteBuffer> subscriber) {
-            InputStream is;
+            InputStream is = null;
+            Throwable t = null;
             if (System.getSecurityManager() == null) {
                 try {
                     is = new FileInputStream(file);
                 } catch (IOException ioe) {
-                    throw new UncheckedIOException(ioe);
+                    t = ioe;
                 }
             } else {
                 try {
@@ -284,11 +285,16 @@
                             () -> new FileInputStream(file);
                     is = AccessController.doPrivileged(pa, null, filePermissions);
                 } catch (PrivilegedActionException pae) {
-                    throw new UncheckedIOException((IOException) pae.getCause());
+                    t = pae.getCause();
                 }
             }
-            PullPublisher<ByteBuffer> publisher =
-                    new PullPublisher<>(() -> new StreamIterator(is));
+            final InputStream fis = is;
+            PullPublisher<ByteBuffer> publisher;
+            if (t == null) {
+                publisher = new PullPublisher<>(() -> new StreamIterator(fis));
+            } else {
+                publisher = new PullPublisher<>(null, t);
+            }
             publisher.subscribe(subscriber);
         }
 
--- a/src/java.net.http/share/classes/jdk/internal/net/http/ResponseSubscribers.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.net.http/share/classes/jdk/internal/net/http/ResponseSubscribers.java	Fri Jun 21 09:05:45 2019 -0700
@@ -125,6 +125,7 @@
 
         @Override
         public void onSubscribe(Flow.Subscription subscription) {
+            Objects.requireNonNull(subscription);
             if (!subscribed.compareAndSet(false, true)) {
                 subscription.cancel();
             } else {
@@ -135,6 +136,7 @@
 
         @Override
         public void onNext(List<ByteBuffer> items) {
+            Objects.requireNonNull(items);
             for (ByteBuffer item : items) {
                 byte[] buf = new byte[item.remaining()];
                 item.get(buf);
@@ -145,6 +147,7 @@
 
         @Override
         public void onError(Throwable throwable) {
+            Objects.requireNonNull(throwable);
             result.completeExceptionally(throwable);
         }
 
@@ -172,6 +175,7 @@
         private final FilePermission[] filePermissions;
         private final CompletableFuture<Path> result = new MinimalFuture<>();
 
+        private final AtomicBoolean subscribed = new AtomicBoolean();
         private volatile Flow.Subscription subscription;
         private volatile FileChannel out;
 
@@ -211,6 +215,12 @@
 
         @Override
         public void onSubscribe(Flow.Subscription subscription) {
+            Objects.requireNonNull(subscription);
+            if (!subscribed.compareAndSet(false, true)) {
+                subscription.cancel();
+                return;
+            }
+
             this.subscription = subscription;
             if (System.getSecurityManager() == null) {
                 try {
@@ -470,6 +480,7 @@
 
         @Override
         public void onSubscribe(Flow.Subscription s) {
+            Objects.requireNonNull(s);
             try {
                 if (!subscribed.compareAndSet(false, true)) {
                     s.cancel();
@@ -600,6 +611,7 @@
 
         @Override
         public void onSubscribe(Flow.Subscription subscription) {
+            Objects.requireNonNull(subscription);
             if (!subscribed.compareAndSet(false, true)) {
                 subscription.cancel();
             } else {
@@ -614,6 +626,7 @@
 
         @Override
         public void onError(Throwable throwable) {
+            Objects.requireNonNull(throwable);
             cf.completeExceptionally(throwable);
         }
 
@@ -907,13 +920,21 @@
             }
         }
 
+        private final AtomicBoolean subscribed = new AtomicBoolean();
+
         @Override
         public void onSubscribe(Flow.Subscription subscription) {
-            subscriptionCF.complete(subscription);
+            Objects.requireNonNull(subscription);
+            if (!subscribed.compareAndSet(false, true)) {
+                subscription.cancel();
+            } else {
+                subscriptionCF.complete(subscription);
+            }
         }
 
         @Override
         public void onNext(List<ByteBuffer> item) {
+            Objects.requireNonNull(item);
             try {
                 // cannot be called before onSubscribe()
                 assert subscriptionCF.isDone();
@@ -941,6 +962,7 @@
             // onError can be called before request(1), and therefore can
             // be called before subscriberRef is set.
             signalError(throwable);
+            Objects.requireNonNull(throwable);
         }
 
         @Override
--- a/src/java.sql.rowset/share/classes/com/sun/rowset/providers/RIXMLProvider.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.sql.rowset/share/classes/com/sun/rowset/providers/RIXMLProvider.java	Fri Jun 21 09:05:45 2019 -0700
@@ -46,7 +46,7 @@
  * to read an XML data source or to write itself in XML format using the
  * <code>WebRowSet</code> XML schema definition available at
  * <pre>
- *     <a href="http://java.sun.com/xml/ns/jdbc/webrowset.xsd">http://java.sun.com/xml/ns/jdbc/webrowset.xsd</a>
+ *     <a href="http://xmlns.jcp.org/xml/ns//jdbc/webrowset.xsd">http://xmlns.jcp.org/xml/ns//jdbc/webrowset.xsd</a>
  * </pre>
  * The <code>RIXMLProvider</code> implementation has a synchronization level of
  * GRADE_NONE, which means that it does no checking at all for conflicts.  It
--- a/src/java.sql.rowset/share/classes/javax/sql/rowset/WebRowSet.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.sql.rowset/share/classes/javax/sql/rowset/WebRowSet.java	Fri Jun 21 09:05:45 2019 -0700
@@ -44,7 +44,7 @@
  * URI:
  * <ul>
  * <li>
- * <a href="http://java.sun.com/xml/ns/jdbc/webrowset.xsd">http://java.sun.com/xml/ns/jdbc/webrowset.xsd</a>
+ * <a href="http://xmlns.jcp.org/xml/ns//jdbc/webrowset.xsd">http://xmlns.jcp.org/xml/ns//jdbc/webrowset.xsd</a>
  * </li>
  * </ul>
  * It describes the standard XML document format required when describing a
--- a/src/java.sql.rowset/share/classes/javax/sql/rowset/package-info.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.sql.rowset/share/classes/javax/sql/rowset/package-info.java	Fri Jun 21 09:05:45 2019 -0700
@@ -95,8 +95,8 @@
  * <code>SyncFactory</code> in the form of <code>SyncProvider</code>
  * implementations. In order to ensure well formed XML usage, a standard generic XML
  * Schema is defined and published at
- * <a href="http://java.sun.com/xml/ns/jdbc/webrowset.xsd">
- * <code>http://java.sun.com/xml/ns/jdbc/webrowset.xsd</code></a>.
+ * <a href="http://xmlns.jcp.org/xml/ns//jdbc/webrowset.xsd">
+ * <code>http://xmlns.jcp.org/xml/ns//jdbc/webrowset.xsd</code></a>.
  *
  * <li><a href="FilteredRowSet.html"><b><code>FilteredRowSet</code></b></a> - A
  * <code>FilteredRowSet</code> object provides filtering functionality in a programmatic
@@ -154,7 +154,8 @@
  * <code>RowSet</code> objects exist in a connected or disconnected environment.
  * The <code>BaseRowSet</code> abstract class provides any <code>RowSet</code> implementation
  * with its base functionality, including property manipulation and event notification
- * that is fully compliant with <a href="http://java.sun.com/products/javabeans">JavaBeans</a>
+ * that is fully compliant with
+ * <a href="https://www.oracle.com/technetwork/java/javase/documentation/spec-136004.html">JavaBeans</a>
  * component requirements. As an example, all implementations provided in the
  * reference implementations (contained in the <code>com.sun.rowset</code> package) use
  * the <code>BaseRowSet</code> class as a basis for their implementations.
--- a/src/java.sql/share/classes/java/sql/ConnectionBuilder.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.sql/share/classes/java/sql/ConnectionBuilder.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -44,8 +44,8 @@
  *     Connection con = ds.createConnectionBuilder()
  *                       .user("rafa")
  *                       .password("tennis")
- *                       .setShardingKey(shardingKey)
- *                       .setSuperShardingKey(superShardingKey)
+ *                       .shardingKey(shardingKey)
+ *                       .superShardingKey(superShardingKey)
  *                       .build();
  * }</pre>
  *
--- a/src/java.sql/share/classes/javax/sql/PooledConnectionBuilder.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.sql/share/classes/javax/sql/PooledConnectionBuilder.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -47,8 +47,8 @@
  *     PooledConnection con = ds.createPooledConnectionBuilder()
  *                       .user("rafa")
  *                       .password("tennis")
- *                       .setShardingKey(shardingKey)
- *                       .setSuperShardingKey(superShardingKey)
+ *                       .shardingKey(shardingKey)
+ *                       .superShardingKey(superShardingKey)
  *                       .build();
  * }</pre>
  *
--- a/src/java.sql/share/classes/javax/sql/XAConnectionBuilder.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/java.sql/share/classes/javax/sql/XAConnectionBuilder.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -47,8 +47,8 @@
  *     XAConnection con = ds.createXAConnectionBuilder()
  *                       .user("rafa")
  *                       .password("tennis")
- *                       .setShardingKey(shardingKey)
- *                       .setSuperShardingKey(superShardingKey)
+ *                       .shardingKey(shardingKey)
+ *                       .superShardingKey(superShardingKey)
  *                       .build();
  * }</pre>
  *
--- a/src/jdk.attach/linux/classes/sun/tools/attach/VirtualMachineImpl.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/jdk.attach/linux/classes/sun/tools/attach/VirtualMachineImpl.java	Fri Jun 21 09:05:45 2019 -0700
@@ -233,7 +233,7 @@
      * InputStream for the socket connection to get target VM
      */
     private class SocketInputStream extends InputStream {
-        int s;
+        int s = -1;
 
         public SocketInputStream(int s) {
             this.s = s;
@@ -261,7 +261,12 @@
         }
 
         public void close() throws IOException {
-            VirtualMachineImpl.close(s);
+            synchronized (this) {
+                if (s != -1) {
+                    VirtualMachineImpl.close(s);
+                    s = -1;
+                }
+            }
         }
     }
 
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Attribute.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Attribute.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -247,7 +247,8 @@
                 buf.append('(');
                 boolean first = true;
                 for (Pair<MethodSymbol, Attribute> value : values) {
-                    if (!first) buf.append(", ");
+                    if (!first)
+                        buf.append(", ");
                     first = false;
 
                     Name name = value.fst.name;
@@ -368,7 +369,7 @@
         public void accept(Visitor v) { v.visitEnum(this); }
         @DefinedBy(Api.LANGUAGE_MODEL)
         public String toString() {
-            return value.enclClass() + "." + value;     // qualified name
+            return value.toString();
         }
         @DefinedBy(Api.LANGUAGE_MODEL)
         public VarSymbol getValue() {
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java	Fri Jun 21 09:05:45 2019 -0700
@@ -91,7 +91,13 @@
      * 13, no language features; text blocks and revised switch
      * expressions in preview
      */
-    JDK13("13");
+    JDK13("13"),
+
+    /**
+     * 14 covers the to be determined language features that will be
+     * added in JDK 14.
+     */
+    JDK14("14");
 
     private static final Context.Key<Source> sourceKey = new Context.Key<>();
 
@@ -142,6 +148,7 @@
     }
 
     public Target requiredTarget() {
+        if (this.compareTo(JDK14) >= 0) return Target.JDK1_14;
         if (this.compareTo(JDK13) >= 0) return Target.JDK1_13;
         if (this.compareTo(JDK12) >= 0) return Target.JDK1_12;
         if (this.compareTo(JDK11) >= 0) return Target.JDK1_11;
@@ -189,10 +196,10 @@
         LOCAL_VARIABLE_TYPE_INFERENCE(JDK10),
         VAR_SYNTAX_IMPLICIT_LAMBDAS(JDK11, Fragments.FeatureVarSyntaxInImplicitLambda, DiagKind.PLURAL),
         IMPORT_ON_DEMAND_OBSERVABLE_PACKAGES(JDK1_2, JDK8),
-        SWITCH_MULTIPLE_CASE_LABELS(JDK13, Fragments.FeatureMultipleCaseLabels, DiagKind.PLURAL),
-        SWITCH_RULE(JDK13, Fragments.FeatureSwitchRules, DiagKind.PLURAL),
-        SWITCH_EXPRESSION(JDK13, Fragments.FeatureSwitchExpressions, DiagKind.PLURAL),
-        TEXT_BLOCKS(JDK13, Fragments.FeatureTextBlocks, DiagKind.PLURAL);
+        SWITCH_MULTIPLE_CASE_LABELS(JDK14, Fragments.FeatureMultipleCaseLabels, DiagKind.PLURAL),
+        SWITCH_RULE(JDK14, Fragments.FeatureSwitchRules, DiagKind.PLURAL),
+        SWITCH_EXPRESSION(JDK14, Fragments.FeatureSwitchExpressions, DiagKind.PLURAL),
+        TEXT_BLOCKS(JDK14, Fragments.FeatureTextBlocks, DiagKind.PLURAL);
 
         enum DiagKind {
             NORMAL,
@@ -279,6 +286,8 @@
             return RELEASE_12;
         case JDK13:
             return RELEASE_13;
+        case JDK14:
+            return RELEASE_14;
         default:
             return null;
         }
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symbol.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symbol.java	Fri Jun 21 09:05:45 2019 -0700
@@ -2063,7 +2063,8 @@
 
         @DefinedBy(Api.LANGUAGE_MODEL)
         public Type getReceiverType() {
-            return asType().getReceiverType();
+            Type result = asType().getReceiverType();
+            return (result == null) ? Type.noType : result;
         }
 
         @DefinedBy(Api.LANGUAGE_MODEL)
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassFile.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassFile.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -114,7 +114,8 @@
         V54(54, 0),   // JDK 10
         V55(55, 0),   // JDK 11: constant dynamic, nest mates
         V56(56, 0),   // JDK 12
-        V57(57, 0);   // JDK 13
+        V57(57, 0),   // JDK 13
+        V58(58, 0);   // JDK 14
         Version(int major, int minor) {
             this.major = major;
             this.minor = minor;
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Profile.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Profile.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -40,9 +40,9 @@
  *  deletion without notice.</b>
  */
 public enum Profile {
-    COMPACT1("compact1", 1, Target.JDK1_8, Target.JDK1_9, Target.JDK1_10, Target.JDK1_11, Target.JDK1_12, Target.JDK1_13),
-    COMPACT2("compact2", 2, Target.JDK1_8, Target.JDK1_9, Target.JDK1_10, Target.JDK1_11, Target.JDK1_12, Target.JDK1_13),
-    COMPACT3("compact3", 3, Target.JDK1_8, Target.JDK1_9, Target.JDK1_10, Target.JDK1_11, Target.JDK1_12, Target.JDK1_13),
+    COMPACT1("compact1", 1, Target.JDK1_8, Target.JDK1_9, Target.JDK1_10, Target.JDK1_11, Target.JDK1_12, Target.JDK1_13, Target.JDK1_14),
+    COMPACT2("compact2", 2, Target.JDK1_8, Target.JDK1_9, Target.JDK1_10, Target.JDK1_11, Target.JDK1_12, Target.JDK1_13, Target.JDK1_14),
+    COMPACT3("compact3", 3, Target.JDK1_8, Target.JDK1_9, Target.JDK1_10, Target.JDK1_11, Target.JDK1_12, Target.JDK1_13, Target.JDK1_14),
 
     DEFAULT {
         @Override
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Target.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Target.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -73,7 +73,10 @@
     JDK1_12("12", 56, 0),
 
     /** JDK 13. */
-    JDK1_13("13", 57, 0);
+    JDK1_13("13", 57, 0),
+
+    /** JDK 14. */
+    JDK1_14("14", 58, 0);
 
     private static final Context.Key<Target> targetKey = new Context.Key<>();
 
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/main/Main.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/main/Main.java	Fri Jun 21 09:05:45 2019 -0700
@@ -477,7 +477,7 @@
         }
 
         try (InputStream in = getClass().getResourceAsStream('/' + className.replace('.', '/') + ".class")) {
-            final String algorithm = "MD5";
+            final String algorithm = "SHA-256";
             byte[] digest;
             MessageDigest md = MessageDigest.getInstance(algorithm);
             try (DigestInputStream din = new DigestInputStream(in, md)) {
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/model/AnnotationProxyMaker.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/model/AnnotationProxyMaker.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -32,6 +32,7 @@
 import java.lang.reflect.Method;
 import java.util.LinkedHashMap;
 import java.util.Map;
+import java.util.stream.Collectors;
 import sun.reflect.annotation.*;
 
 import javax.lang.model.type.MirroredTypeException;
@@ -292,7 +293,7 @@
         }
 
         public String toString() {
-            return typeString;
+            return typeString + ".class";
         }
 
         public int hashCode() {
@@ -335,7 +336,9 @@
         }
 
         public String toString() {
-            return typeStrings;
+            return types.stream()
+                .map(t -> t.toString() + ".class")
+                .collect(Collectors.joining(", ", "{", "}"));
         }
 
         public int hashCode() {
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -55,7 +55,7 @@
  * deletion without notice.</b>
  */
 @SupportedAnnotationTypes("*")
-@SupportedSourceVersion(SourceVersion.RELEASE_13)
+@SupportedSourceVersion(SourceVersion.RELEASE_14)
 public class PrintingProcessor extends AbstractProcessor {
     PrintWriter writer;
 
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/javac.properties	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/javac.properties	Fri Jun 21 09:05:45 2019 -0700
@@ -80,11 +80,11 @@
 javac.opt.profile=\
     Check that API used is available in the specified profile
 javac.opt.target=\
-    Generate class files for specific VM version. Supported versions: {0}
+    Generate class files suitable for the specified Java SE release. Supported releases: {0}
 javac.opt.release=\
-    Compile for a specific release. Supported releases: {0}
+    Compile for the specified Java SE release. Supported releases: {0}
 javac.opt.source=\
-    Provide source compatibility with specified release. Supported releases: {0}
+    Provide source compatibility with the specified Java SE release. Supported releases: {0}
 javac.opt.Werror=\
     Terminate compilation if warnings occur
 javac.opt.A=\
--- a/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_general.c	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_general.c	Fri Jun 21 09:05:45 2019 -0700
@@ -51,6 +51,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <assert.h>
+#include "jlong.h"
 
 #include "sun_security_pkcs11_wrapper_PKCS11.h"
 
@@ -96,8 +97,8 @@
 Java_sun_security_pkcs11_wrapper_PKCS11_freeMechanism
 (JNIEnv *env, jclass thisClass, jlong ckpMechanism) {
     if (ckpMechanism != 0L) {
-        freeCKMechanismPtr((CK_MECHANISM_PTR) ckpMechanism);
-        TRACE1("DEBUG PKCS11_freeMechanism: free pMech = %x\n", (jlong)ckpMechanism);
+        freeCKMechanismPtr(jlong_to_ptr(ckpMechanism));
+        TRACE1("DEBUG PKCS11_freeMechanism: free pMech = %x\n", ckpMechanism);
     }
     return 0L;
 }
--- a/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_sign.c	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_sign.c	Fri Jun 21 09:05:45 2019 -0700
@@ -91,8 +91,8 @@
             (ckpMechanism->pParameter == NULL)) {
         freeCKMechanismPtr(ckpMechanism);
     } else {
-        (*env)->SetLongField(env, jMechanism, mech_pHandleID, (jlong)ckpMechanism);
-        TRACE1("DEBUG C_SignInit: stored pMech = 0x%lX\n", (jlong)ckpMechanism);
+        (*env)->SetLongField(env, jMechanism, mech_pHandleID, ptr_to_jlong(ckpMechanism));
+        TRACE1("DEBUG C_SignInit: stored pMech = 0x%lX\n", ptr_to_jlong(ckpMechanism));
     }
     TRACE0("FINISHED\n");
 }
@@ -303,8 +303,8 @@
             (ckpMechanism->pParameter == NULL)) {
         freeCKMechanismPtr(ckpMechanism);
     } else {
-        (*env)->SetLongField(env, jMechanism, mech_pHandleID, (jlong)ckpMechanism);
-        TRACE1("DEBUG C_SignRecoverInit, stored pMech = 0x%lX\n", (jlong)ckpMechanism);
+        (*env)->SetLongField(env, jMechanism, mech_pHandleID, ptr_to_jlong(ckpMechanism));
+        TRACE1("DEBUG C_SignRecoverInit, stored pMech = 0x%lX\n", ptr_to_jlong(ckpMechanism));
     }
     TRACE0("FINISHED\n");
 }
@@ -413,8 +413,8 @@
             (ckpMechanism->pParameter == NULL)) {
         freeCKMechanismPtr(ckpMechanism);
     } else {
-        (*env)->SetLongField(env, jMechanism, mech_pHandleID, (jlong)ckpMechanism);
-        TRACE1("DEBUG C_VerifyInit: stored pMech = 0x%lX\n", (jlong)ckpMechanism);
+        (*env)->SetLongField(env, jMechanism, mech_pHandleID, ptr_to_jlong(ckpMechanism));
+        TRACE1("DEBUG C_VerifyInit: stored pMech = 0x%lX\n", ptr_to_jlong(ckpMechanism));
     }
     TRACE0("FINISHED\n");
 }
@@ -601,8 +601,8 @@
             (ckpMechanism->pParameter == NULL)) {
         freeCKMechanismPtr(ckpMechanism);
     } else {
-        (*env)->SetLongField(env, jMechanism, mech_pHandleID, (jlong)ckpMechanism);
-        TRACE1("DEBUG C_VerifyRecoverInit: stored pMech = 0x%lX\n", (jlong)ckpMechanism);
+        (*env)->SetLongField(env, jMechanism, mech_pHandleID, ptr_to_jlong(ckpMechanism));
+        TRACE1("DEBUG C_VerifyRecoverInit: stored pMech = 0x%lX\n", ptr_to_jlong(ckpMechanism));
     }
     TRACE0("FINISHED\n");
 }
--- a/src/jdk.crypto.mscapi/windows/classes/sun/security/mscapi/CSignature.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/jdk.crypto.mscapi/windows/classes/sun/security/mscapi/CSignature.java	Fri Jun 21 09:05:45 2019 -0700
@@ -118,7 +118,9 @@
         // initialize for signing. See JCA doc
         @Override
         protected void engineInitSign(PrivateKey key) throws InvalidKeyException {
-
+            if (key == null) {
+                throw new InvalidKeyException("Key cannot be null");
+            }
             if ((key instanceof CPrivateKey) == false
                     || !key.getAlgorithm().equalsIgnoreCase("RSA")) {
                 throw new InvalidKeyException("Key type not supported: "
@@ -139,9 +141,13 @@
         // initialize for signing. See JCA doc
         @Override
         protected void engineInitVerify(PublicKey key) throws InvalidKeyException {
+            if (key == null) {
+                throw new InvalidKeyException("Key cannot be null");
+            }
             // This signature accepts only RSAPublicKey
             if ((key instanceof RSAPublicKey) == false) {
-                throw new InvalidKeyException("Key type not supported");
+                throw new InvalidKeyException("Key type not supported: "
+                        + key.getClass());
             }
 
 
@@ -427,9 +433,13 @@
         // initialize for signing. See JCA doc
         @Override
         protected void engineInitSign(PrivateKey key) throws InvalidKeyException {
+            if (key == null) {
+                throw new InvalidKeyException("Key cannot be null");
+            }
             if ((key instanceof CPrivateKey) == false
                     || !key.getAlgorithm().equalsIgnoreCase("EC")) {
-                throw new InvalidKeyException("Key type not supported");
+                throw new InvalidKeyException("Key type not supported: "
+                        + key.getClass() + " " + key.getAlgorithm());
             }
             privateKey = (CPrivateKey) key;
 
@@ -440,12 +450,15 @@
         // initialize for signing. See JCA doc
         @Override
         protected void engineInitVerify(PublicKey key) throws InvalidKeyException {
+            if (key == null) {
+                throw new InvalidKeyException("Key cannot be null");
+            }
             // This signature accepts only ECPublicKey
             if ((key instanceof ECPublicKey) == false) {
-                throw new InvalidKeyException("Key type not supported");
+                throw new InvalidKeyException("Key type not supported: "
+                        + key.getClass());
             }
 
-
             if ((key instanceof CPublicKey) == false) {
                 try {
                     publicKey = importECPublicKey("EC",
@@ -508,9 +521,13 @@
 
         @Override
         protected void engineInitVerify(PublicKey key) throws InvalidKeyException {
+            if (key == null) {
+                throw new InvalidKeyException("Key cannot be null");
+            }
             // This signature accepts only RSAPublicKey
             if ((key instanceof java.security.interfaces.RSAPublicKey) == false) {
-                throw new InvalidKeyException("Key type not supported");
+                throw new InvalidKeyException("Key type not supported: "
+                        + key.getClass());
             }
 
             this.privateKey = null;
--- a/src/jdk.hotspot.agent/linux/native/libsaproc/ps_core.c	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/jdk.hotspot.agent/linux/native/libsaproc/ps_core.c	Fri Jun 21 09:05:45 2019 -0700
@@ -839,8 +839,51 @@
 #define LD_BASE_OFFSET        offsetof(struct r_debug,  r_ldbase)
 #define LINK_MAP_ADDR_OFFSET  offsetof(struct link_map, l_addr)
 #define LINK_MAP_NAME_OFFSET  offsetof(struct link_map, l_name)
+#define LINK_MAP_LD_OFFSET    offsetof(struct link_map, l_ld)
 #define LINK_MAP_NEXT_OFFSET  offsetof(struct link_map, l_next)
 
+// Calculate the load address of shared library
+// on prelink-enabled environment.
+//
+// In case of GDB, it would be calculated by offset of link_map.l_ld
+// and the address of .dynamic section.
+// See GDB implementation: lm_addr_check @ solib-svr4.c
+static uintptr_t calc_prelinked_load_address(struct ps_prochandle* ph, int lib_fd, ELF_EHDR* elf_ehdr, uintptr_t link_map_addr) {
+  ELF_PHDR *phbuf;
+  uintptr_t lib_ld;
+  uintptr_t lib_dyn_addr = 0L;
+  uintptr_t load_addr;
+  int i;
+
+  phbuf = read_program_header_table(lib_fd, elf_ehdr);
+  if (phbuf == NULL) {
+    print_debug("can't read program header of shared object\n");
+    return 0L;
+  }
+
+  // Get the address of .dynamic section from shared library.
+  for (i = 0; i < elf_ehdr->e_phnum; i++) {
+    if (phbuf[i].p_type == PT_DYNAMIC) {
+      lib_dyn_addr = phbuf[i].p_vaddr;
+      break;
+    }
+  }
+
+  free(phbuf);
+
+  if (ps_pdread(ph, (psaddr_t)link_map_addr + LINK_MAP_LD_OFFSET,
+               &lib_ld, sizeof(uintptr_t)) != PS_OK) {
+    print_debug("can't read address of dynamic section in shared object\n");
+    return 0L;
+  }
+
+  // Return the load address which is calculated by the address of .dynamic
+  // and link_map.l_ld .
+  load_addr = lib_ld - lib_dyn_addr;
+  print_debug("lib_ld = 0x%lx, lib_dyn_addr = 0x%lx -> lib_base_diff = 0x%lx\n", lib_ld, lib_dyn_addr, load_addr);
+  return load_addr;
+}
+
 // read shared library info from runtime linker's data structures.
 // This work is done by librtlb_db in Solaris
 static bool read_shared_lib_info(struct ps_prochandle* ph) {
@@ -942,6 +985,14 @@
             // continue with other libraries...
          } else {
             if (read_elf_header(lib_fd, &elf_ehdr)) {
+               if (lib_base_diff == 0x0L) {
+                 lib_base_diff = calc_prelinked_load_address(ph, lib_fd, &elf_ehdr, link_map_addr);
+                 if (lib_base_diff == 0x0L) {
+                   close(lib_fd);
+                   return false;
+                 }
+               }
+
                lib_base = lib_base_diff + find_base_address(lib_fd, &elf_ehdr);
                print_debug("reading library %s @ 0x%lx [ 0x%lx ]\n",
                            lib_name, lib_base, lib_base_diff);
--- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/shared/CollectedHeap.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/shared/CollectedHeap.java	Fri Jun 21 09:05:45 2019 -0700
@@ -64,8 +64,6 @@
   public abstract long capacity();
   public abstract long used();
 
-  public long oopOffset() { return 0; }
-
   public MemRegion reservedRegion() {
     return new MemRegion(addr.addOffsetTo(reservedFieldOffset));
   }
--- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/shenandoah/ShenandoahHeap.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/shenandoah/ShenandoahHeap.java	Fri Jun 21 09:05:45 2019 -0700
@@ -48,7 +48,6 @@
     static private CIntegerField logMinObjAlignmentInBytes;
 
     static private long regionPtrFieldSize;
-    static private long brookPtrSize;
     static {
         VM.registerVMInitializedObserver(new Observer() {
             public void update(Observable o, Object data) {
@@ -65,7 +64,6 @@
         regions = type.getAddressField("_regions");
         logMinObjAlignmentInBytes = type.getCIntegerField("_log_min_obj_alignment_in_bytes");
 
-        brookPtrSize = db.lookupIntConstant("HeapWordSize").longValue();
         Type regionPtrType = db.lookupType("ShenandoahHeapRegion*");
         regionPtrFieldSize = regionPtrType.getSize();
     }
@@ -75,11 +73,6 @@
     }
 
     @Override
-    public long oopOffset() {
-        return brookPtrSize;
-    }
-
-    @Override
     public CollectedHeapName kind() {
         return CollectedHeapName.SHENANDOAH;
     }
--- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/shenandoah/ShenandoahHeapRegion.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/shenandoah/ShenandoahHeapRegion.java	Fri Jun 21 09:05:45 2019 -0700
@@ -184,10 +184,10 @@
                 if (regionStart == null) {
                     regionStart = start;
                 } else {
-                    regionEnd = start.addOffsetTo(heap.oopOffset() + size);
+                    regionEnd = start.addOffsetTo(size);
                 }
             }
-            start = start.addOffsetTo(heap.oopOffset() + size);
+            start = start.addOffsetTo(size);
         }
 
         if (regionStart != null) {
@@ -201,15 +201,13 @@
     }
 
     private boolean hasForwardee(Address rawPtr) {
-        // Use Mark as a helper to read forward pointer value.
+        // Forwarding pointer is stored in mark word when it is flagged "marked"
         Mark mark = new Mark(rawPtr);
-        Address forwardee = mark.valueAsAddress();
-        return (forwardee != rawPtr.addOffsetTo(heap.oopOffset()));
+        return mark.isMarked();
     }
 
     private long getObjectSize(Address rawPtr) {
-        // Dealing with a raw pointer, offsets forward pointer to find real Oop.
-        OopHandle handle = rawPtr.addOffsetToAsOopHandle(heap.oopOffset());
+        OopHandle handle = rawPtr.addOffsetToAsOopHandle(0);
         Oop obj = null;
 
         try {
--- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/ObjectHeap.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/ObjectHeap.java	Fri Jun 21 09:05:45 2019 -0700
@@ -256,8 +256,6 @@
 
         while (handle.lessThan(top)) {
           Oop obj = null;
-          // Raw pointer walk
-          handle = handle.addOffsetToAsOopHandle(heap.oopOffset());
 
           try {
             obj = newOop(handle);
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/classfile/Classfile.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/classfile/Classfile.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -49,7 +49,7 @@
     private final List<ClassfileBytecode> codeAttributes;
 
     private static final int MAJOR_VERSION_JAVA_MIN = 51; // JDK7
-    private static final int MAJOR_VERSION_JAVA_MAX = 57; // JDK13
+    private static final int MAJOR_VERSION_JAVA_MAX = 58; // JDK14
     private static final int MAGIC = 0xCAFEBABE;
 
     /**
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/HtmlStyle.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/HtmlStyle.java	Fri Jun 21 09:05:45 2019 -0700
@@ -43,7 +43,6 @@
     altColor,
     annotations,
     arguments,
-    bar,
     block,
     blockList,
     bottomNav,
@@ -69,7 +68,6 @@
     descfrmTypeLabel,
     details,
     detail,
-    docSummary,
     emphasizedPhrase,
     exceptions,
     externalLink,
@@ -80,18 +78,11 @@
     helpSection,
     hierarchy,
     horizontal,
-    footer,
     implementationLabel,
-    indexContainer,
-    indexNav,
     inheritance,
     inheritedList,
     interfaceName,
-    leftContainer,
-    leftTop,
-    leftBottom,
     legalCopy,
-    mainContainer,
     memberDetails,
     memberName,
     memberNameLabel,
@@ -99,7 +90,6 @@
     memberSignature,
     memberSummary,
     methodDetails,
-    methodSignature,
     methodSummary,
     modifiers,
     moduleDescription,
@@ -128,8 +118,6 @@
     requiresSummary,
     returnLabel,
     returnType,
-    rightContainer,
-    rightIframe,
     rowColor,
     searchTagLink,
     searchTagResult,
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/stylesheet.css	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/stylesheet.css	Fri Jun 21 09:05:45 2019 -0700
@@ -121,13 +121,6 @@
 .legalCopy {
     margin-left:.5em;
 }
-.bar a, .bar a:link, .bar a:visited, .bar a:active {
-    color:#FFFFFF;
-    text-decoration:none;
-}
-.bar a:hover, .bar a:focus {
-    color:#bb7a2a;
-}
 .tab {
     background-color:#0066FF;
     color:#ffffff;
@@ -138,14 +131,6 @@
 /*
  * Styles for navigation bar.
  */
-.bar {
-    background-color:#4D7A97;
-    color:#FFFFFF;
-    padding:.8em .5em .4em .8em;
-    height:auto;/*height:1.8em;*/
-    font-size:11px;
-    margin:0;
-}
 .navPadding {
     padding-top: 107px;
 }
@@ -246,29 +231,11 @@
 /*
  * Styles for page header and footer.
  */
-.header, .footer {
+.header {
     clear:both;
     margin:0 20px;
     padding:5px 0 0 0;
 }
-.indexNav {
-    position:relative;
-    font-size:12px;
-    background-color:#dee3e9;
-}
-.indexNav ul {
-    margin-top:0;
-    padding:5px;
-}
-.indexNav ul li {
-    display:inline;
-    list-style-type:none;
-    padding-right:10px;
-    text-transform:uppercase;
-}
-.indexNav h1 {
-    font-size:13px;
-}
 .title {
     color:#2c4557;
     margin:10px 0;
@@ -280,9 +247,6 @@
     margin:0 0 15px 0;
     padding:0;
 }
-.footer ul {
-    margin:20px 0 5px 0;
-}
 .header ul li, .footer ul li {
     list-style:none;
     font-size:13px;
@@ -315,23 +279,6 @@
     padding:10px 20px;
     position:relative;
 }
-.indexContainer {
-    margin:10px;
-    position:relative;
-    font-size:12px;
-}
-.indexContainer h2 {
-    font-size:13px;
-    padding:0 0 3px 0;
-}
-.indexContainer ul {
-    margin:0;
-    padding:0;
-}
-.indexContainer ul li {
-    list-style:none;
-    padding-top:2px;
-}
 .contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt {
     font-size:12px;
     font-weight:bold;
@@ -558,9 +505,6 @@
     margin:0;
     padding:10px 0;
 }
-.docSummary {
-    padding:0;
-}
 div.block {
     font-size:14px;
     font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
@@ -632,61 +576,6 @@
     font-style:normal;
 }
 /*
- * Styles for IFRAME.
- */
-.mainContainer {
-    margin:0 auto;
-    padding:0;
-    height:100%;
-    width:100%;
-    position:fixed;
-    top:0;
-    left:0;
-}
-.leftContainer {
-    height:100%;
-    position:fixed;
-    width:320px;
-}
-.leftTop {
-    position:relative;
-    float:left;
-    width:315px;
-    top:0;
-    left:0;
-    height:30%;
-    border-right:6px solid #ccc;
-    border-bottom:6px solid #ccc;
-}
-.leftBottom {
-    position:relative;
-    float:left;
-    width:315px;
-    bottom:0;
-    left:0;
-    height:70%;
-    border-right:6px solid #ccc;
-    border-top:1px solid #000;
-}
-.rightContainer {
-    position:absolute;
-    left:320px;
-    top:0;
-    bottom:0;
-    height:100%;
-    right:0;
-    border-left:1px solid #000;
-}
-.rightIframe {
-    margin:0;
-    padding:0;
-    height:100%;
-    right:30px;
-    width:100%;
-    overflow:visible;
-    margin-bottom:30px;
-}
-/*
  * Styles specific to HTML5 elements.
  */
 main, nav, header, footer, section {
@@ -772,9 +661,6 @@
     margin: -100px 0 0 100px;
     z-index: 1;
 }
-.methodSignature {
-    white-space:normal;
-}
 .inheritedList {
     margin: 10px 0 10px 0;
 }
--- a/src/jdk.jcmd/linux/classes/sun/tools/ProcessHelper.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/jdk.jcmd/linux/classes/sun/tools/ProcessHelper.java	Fri Jun 21 09:05:45 2019 -0700
@@ -66,7 +66,7 @@
         if (cmdLine.startsWith(CMD_PREFIX)) {
             cmdLine = cmdLine.substring(CMD_PREFIX.length());
         }
-        String[] parts = cmdLine.split(" ");
+        String[] parts = cmdLine.split("\0");
         String mainClass = null;
 
         if(parts.length == 0) {
@@ -87,7 +87,7 @@
         // options are used then just return the value (the path to the jar file or module
         // name with a main class). Otherwise, the main class name is the first part that
         // is not a Java option (doesn't start with '-' and is not a classpath or a module
-        // path).
+        // whitespace option).
 
         for (int i = 1; i < parts.length && mainClass == null; i++) {
             if (i < parts.length - 1) {
@@ -95,10 +95,15 @@
                     return parts[i + 1];
                 }
             }
-            // If this is a classpath or a module path option then skip the next part
-            // (the classpath or the module path itself)
+
+            if (parts[i].startsWith("--module=")) {
+                return parts[i].substring("--module=".length());
+            }
+
+            // If this is a classpath or a module whitespace option then skip the next part
+            // (the classpath or the option value itself)
             if (parts[i].equals("-cp") || parts[i].equals("-classpath") ||  parts[i].equals("--class-path") ||
-                    parts[i].equals("-p") || parts[i].equals("--module-path")) {
+                    isModuleWhiteSpaceOption(parts[i])) {
                 i++;
                 continue;
             }
@@ -106,6 +111,12 @@
             if (parts[i].startsWith("-")) {
                 continue;
             }
+
+            // If it is a source-file mode then return null
+            if (parts[i].endsWith(".java")) {
+                return null;
+            }
+
             mainClass = parts[i];
         }
         return mainClass;
@@ -115,11 +126,24 @@
     private static String getCommandLine(String pid) {
         try (Stream<String> lines =
                      Files.lines(Paths.get("/proc/" + pid + "/cmdline"))) {
-            return lines.map(x -> x.replaceAll("\0", " ")).findFirst().orElse(null);
+            return lines.findFirst().orElse(null);
         } catch (IOException | UncheckedIOException e) {
             return null;
         }
     }
+
+    private static boolean isModuleWhiteSpaceOption(String option) {
+        return option.equals("-p") ||
+                option.equals("--module-path") ||
+                option.equals("--upgrade-module-path") ||
+                option.equals("--add-modules") ||
+                option.equals("--limit-modules") ||
+                option.equals("--add-exports") ||
+                option.equals("--add-opens") ||
+                option.equals("--add-reads") ||
+                option.equals("--patch-module");
+    }
+
 }
 
 
--- a/src/jdk.jdeps/share/classes/com/sun/tools/javap/JavapTask.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/jdk.jdeps/share/classes/com/sun/tools/javap/JavapTask.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 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
@@ -808,7 +808,7 @@
             MessageDigest md  = null;
             if (options.sysInfo || options.verbose) {
                 try {
-                    md = MessageDigest.getInstance("MD5");
+                    md = MessageDigest.getInstance("SHA-256");
                 } catch (NoSuchAlgorithmException ignore) {
                 }
                 in = new DigestInputStream(in, md);
@@ -829,7 +829,7 @@
         if (options.sysInfo || options.verbose) {
             classWriter.setFile(info.fo.toUri());
             classWriter.setLastModified(info.fo.getLastModified());
-            classWriter.setDigest("MD5", info.digest);
+            classWriter.setDigest("SHA-256", info.digest);
             classWriter.setFileSize(info.size);
         }
 
--- a/src/jdk.jdeps/share/classes/com/sun/tools/javap/resources/javap.properties	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/jdk.jdeps/share/classes/com/sun/tools/javap/resources/javap.properties	Fri Jun 21 09:05:45 2019 -0700
@@ -99,7 +99,7 @@
 \  -constants                       Show final constants
 
 main.opt.sysinfo=\
-\  -sysinfo                         Show system info (path, size, date, MD5 hash)\n\
+\  -sysinfo                         Show system info (path, size, date, SHA-256 hash)\n\
 \                                   of class being processed
 
 main.opt.module=\
--- a/src/jdk.jfr/share/classes/jdk/jfr/internal/PlatformRecording.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/jdk.jfr/share/classes/jdk/jfr/internal/PlatformRecording.java	Fri Jun 21 09:05:45 2019 -0700
@@ -318,7 +318,6 @@
         PlatformRecording clone = recorder.newTemporaryRecording();
         clone.setShouldWriteActiveRecordingEvent(false);
         clone.setName(getName());
-        clone.setDestination(this.destination);
         clone.setToDisk(true);
         // We purposely don't clone settings here, since
         // a union a == a
--- a/src/jdk.jfr/share/classes/jdk/jfr/internal/dcmd/DCmdDump.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/jdk.jfr/share/classes/jdk/jfr/internal/dcmd/DCmdDump.java	Fri Jun 21 09:05:45 2019 -0700
@@ -26,6 +26,8 @@
 
 import java.io.IOException;
 import java.nio.file.InvalidPathException;
+import java.nio.file.Path;
+import java.nio.file.Paths;
 import java.time.Duration;
 import java.time.Instant;
 import java.time.LocalDate;
@@ -126,26 +128,37 @@
             recording = findRecording(name);
         }
         PlatformRecorder recorder = PrivateAccess.getInstance().getPlatformRecorder();
-        synchronized (recorder) {
-            dump(recorder, recording, name, filename, maxSize, pathToGcRoots, beginTime, endTime);
+
+        try {
+            synchronized (recorder) {
+                dump(recorder, recording, name, filename, maxSize, pathToGcRoots, beginTime, endTime);
+            }
+        } catch (IOException | InvalidPathException e) {
+            throw new DCmdException("Dump failed. Could not copy recording data. %s", e.getMessage());
         }
         return getResult();
     }
 
-    public void dump(PlatformRecorder recorder, Recording recording, String name, String filename, Long maxSize, Boolean pathToGcRoots, Instant beginTime, Instant endTime) throws DCmdException {
+    public void dump(PlatformRecorder recorder, Recording recording, String name, String filename, Long maxSize, Boolean pathToGcRoots, Instant beginTime, Instant endTime) throws DCmdException, IOException {
         try (PlatformRecording r = newSnapShot(recorder, recording, pathToGcRoots)) {
             r.filter(beginTime, endTime, maxSize);
             if (r.getChunks().isEmpty()) {
                 throw new DCmdException("Dump failed. No data found in the specified interval.");
             }
-            SafePath dumpFile = resolvePath(recording, filename);
-
-            // Needed for JVM
-            Utils.touch(dumpFile.toPath());
-            r.dumpStopped(new WriteableUserPath(dumpFile.toPath()));
-            reportOperationComplete("Dumped", name, dumpFile);
-        } catch (IOException | InvalidPathException e) {
-            throw new DCmdException("Dump failed. Could not copy recording data. %s", e.getMessage());
+            // If a filename exist, use it
+            // if a filename doesn't exist, use destination set earlier
+            // if destination doesn't exist, generate a filename
+            WriteableUserPath wup = null;
+            if (recording != null) {
+                PlatformRecording pRecording = PrivateAccess.getInstance().getPlatformRecording(recording);
+                wup = pRecording.getDestination();
+            }
+            if (filename != null || (filename == null && wup == null) ) {
+                SafePath safe = resolvePath(recording, filename);
+                wup = new WriteableUserPath(safe.toPath());
+            }
+            r.dumpStopped(wup);
+            reportOperationComplete("Dumped", name, new SafePath(wup.getRealPathText()));
         }
     }
 
--- a/src/jdk.jshell/share/classes/jdk/jshell/Corraller.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/jdk.jshell/share/classes/jdk/jshell/Corraller.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -25,132 +25,226 @@
 
 package jdk.jshell;
 
-import java.io.IOException;
-import java.io.StringWriter;
 import com.sun.source.tree.ClassTree;
 import com.sun.source.tree.MethodTree;
 import com.sun.source.tree.Tree;
-import com.sun.tools.javac.code.Flags;
+import com.sun.source.tree.Tree.Kind;
 import com.sun.tools.javac.tree.JCTree;
 import com.sun.tools.javac.tree.JCTree.JCBlock;
 import com.sun.tools.javac.tree.JCTree.JCClassDecl;
-import com.sun.tools.javac.tree.JCTree.JCExpression;
 import com.sun.tools.javac.tree.JCTree.JCMethodDecl;
-import com.sun.tools.javac.tree.JCTree.JCNewClass;
-import com.sun.tools.javac.tree.JCTree.JCStatement;
 import com.sun.tools.javac.tree.JCTree.JCVariableDecl;
-import com.sun.tools.javac.tree.Pretty;
-import com.sun.tools.javac.tree.TreeMaker;
-import com.sun.tools.javac.util.Context;
+import com.sun.tools.javac.tree.JCTree.Visitor;
 import com.sun.tools.javac.util.List;
 import com.sun.tools.javac.util.ListBuffer;
-import com.sun.tools.javac.util.Names;
+import static com.sun.tools.javac.code.Flags.FINAL;
+import static com.sun.tools.javac.code.Flags.PUBLIC;
 import static com.sun.tools.javac.code.Flags.STATIC;
 import static com.sun.tools.javac.code.Flags.INTERFACE;
 import static com.sun.tools.javac.code.Flags.ENUM;
-import static com.sun.tools.javac.code.Flags.PUBLIC;
-import com.sun.tools.javac.util.Name;
-import jdk.jshell.spi.SPIResolutionException;
+import jdk.jshell.Wrap.CompoundWrap;
+import jdk.jshell.Wrap.Range;
+import jdk.jshell.Wrap.RangeWrap;
 
 /**
  * Produce a corralled version of the Wrap for a snippet.
- * Incoming tree is mutated.
- *
- * @author Robert Field
  */
-class Corraller extends Pretty {
+class Corraller extends Visitor {
+
+    /** Visitor result field: a Wrap
+     */
+    protected Wrap result;
+
+    private final TreeDissector dis;
+    private final String resolutionExceptionBlock;
+    private final String source;
+
+    public Corraller(TreeDissector dis, int keyIndex, String source) {
+        this.dis = dis;
+        this.resolutionExceptionBlock = "\n      { throw new jdk.jshell.spi.SPIResolutionException(" + keyIndex + "); }";
+        this.source = source;
+    }
+
+    public Wrap corralType(ClassTree tree) {
+        return corralToWrap(tree);
+    }
+
+    public Wrap corralMethod(MethodTree tree) {
+        return corralToWrap(tree);
+    }
 
-    private final StringWriter out;
-    private final int keyIndex;
-    private final TreeMaker make;
-    private final Names names;
-    private JCBlock resolutionExceptionBlock;
+    private Wrap corralToWrap(Tree tree) {
+        try {
+            JCTree jct = (JCTree) tree;
+            Wrap w = new CompoundWrap(
+                    "    public static\n    ",
+                    corral(jct));
+            debugWrap("corralToWrap SUCCESS source: %s -- wrap:\n %s\n", tree, w.wrapped());
+            return w;
+        } catch (Exception ex) {
+            debugWrap("corralToWrap FAIL: %s - %s\n", tree, ex);
+            //ex.printStackTrace(System.err);
+            return null;
+        }
+    }
 
-    public Corraller(int keyIndex, Context context) {
-        this(new StringWriter(), keyIndex, context);
+    // Corral a single node.
+//    @SuppressWarnings("unchecked")
+    private <T extends JCTree> Wrap corral(T tree) {
+        if (tree == null) {
+            return null;
+        } else {
+            tree.accept(this);
+            Wrap tmpResult = this.result;
+            this.result = null;
+            return tmpResult;
+        }
+    }
+
+    private String defaultConstructor(JCClassDecl tree) {
+        return "  public " + tree.name.toString() + "() " +
+                resolutionExceptionBlock;
     }
 
-    private Corraller(StringWriter out, int keyIndex, Context context) {
-        super(out, false);
-        this.out = out;
-        this.keyIndex = keyIndex;
-        this.make = TreeMaker.instance(context);
-        this.names = Names.instance(context);
-    }
+    /* ***************************************************************************
+     * Visitor methods
+     ****************************************************************************/
 
-    public Wrap corralType(ClassTree ct) {
-        ((JCClassDecl) ct).mods.flags |= Flags.STATIC | Flags.PUBLIC;
-        return corral(ct);
+    @Override
+    public void visitClassDef(JCClassDecl tree) {
+        boolean isEnum = (tree.mods.flags & ENUM) != 0;
+        boolean isInterface = (tree.mods.flags & INTERFACE ) != 0;
+        int classBegin = dis.getStartPosition(tree);
+        int classEnd = dis.getEndPosition(tree);
+        //debugWrap("visitClassDef: %d-%d = %s\n", classBegin, classEnd, source.substring(classBegin, classEnd));
+        ListBuffer<Object> wrappedDefs = new ListBuffer<>();
+        int bodyBegin = -1;
+        if (tree.defs != null && !tree.defs.isEmpty()) {
+            if (isEnum) {
+                // copy the enum constants verbatim
+                int enumBegin = dis.getStartPosition(tree.defs.head);
+                JCTree t = null; // null to shut-up compiler, always set because non-empty
+                List<? extends JCTree> l = tree.defs;
+                for (; l.nonEmpty(); l = l.tail) {
+                    t = l.head;
+                    if (t.getKind() == Kind.VARIABLE) {
+                        if ((((JCVariableDecl)t).mods.flags & (PUBLIC | STATIC | FINAL)) != (PUBLIC | STATIC | FINAL)) {
+                            // non-enum constant, process normally
+                            break;
+                        }
+                    } else {
+                        // non-variable, process normally
+                        break;
+                    }
+                }
+                int constEnd = l.nonEmpty()                  // end of constants
+                        ? dis.getStartPosition(l.head) - 1   // is one before next defs, if there is one
+                        : dis.getEndPosition(t);             // and otherwise end of the last constant
+                wrappedDefs.append(new RangeWrap(source, new Range(enumBegin, constEnd)));
+                // handle any other defs
+                for (; l.nonEmpty(); l = l.tail) {
+                    wrappedDefs.append("\n");
+                    t = l.head;
+                    wrappedDefs.append(corral(t));
+                }
+            } else {
+                // non-enum
+                boolean constructorSeen = false;
+                for (List<? extends JCTree> l = tree.defs; l.nonEmpty(); l = l.tail) {
+                    wrappedDefs.append("\n   ");
+                    JCTree t = l.head;
+                    switch (t.getKind()) {
+                        case METHOD:
+                            constructorSeen = constructorSeen || ((MethodTree)t).getName() == tree.name.table.names.init;
+                            break;
+                        case BLOCK:
+                            // throw exception in instance initializer too -- inline because String not Wrap
+                            wrappedDefs.append((((JCBlock)t).flags & STATIC) != 0
+                                    ? new RangeWrap(source, dis.treeToRange(t))
+                                    : resolutionExceptionBlock);
+                            continue; // already appended, skip append below
+                    }
+                    wrappedDefs.append(corral(t));
+                }
+                if (!constructorSeen && !isInterface && !isEnum) {
+                    // Generate a default constructor, since
+                    // this is a regular class and there are no constructors
+                    if (wrappedDefs.length() > 0) {
+                        wrappedDefs.append("\n ");
+                    }
+                    wrappedDefs.append(defaultConstructor(tree));
+                }
+            }
+            bodyBegin = dis.getStartPosition(tree.defs.head);
+        }
+        Object defs = wrappedDefs.length() == 1
+            ? wrappedDefs.first()
+            : new CompoundWrap(wrappedDefs.toArray());
+        if (bodyBegin < 0) {
+            int brace = source.indexOf('{', classBegin);
+            if (brace < 0 || brace >= classEnd) {
+                throw new IllegalArgumentException("No brace found: " + source.substring(classBegin, classEnd));
+            }
+            bodyBegin = brace + 1;
+        }
+        // body includes openning brace
+        result = new CompoundWrap(
+                new RangeWrap(source, new Range(classBegin, bodyBegin)),
+                defs,
+                "\n}"
+        );
     }
 
-    public Wrap corralMethod(MethodTree mt) {
-        ((JCMethodDecl) mt).mods.flags |= Flags.STATIC | Flags.PUBLIC;
-        return corral(mt);
+    // Corral the body
+    @Override
+    public void visitMethodDef(JCMethodDecl tree) {
+        int methodBegin = dis.getStartPosition(tree);
+        int methodEnd = dis.getEndPosition(tree);
+        //debugWrap("+visitMethodDef: %d-%d = %s\n", methodBegin, methodEnd,
+        //        source.substring(methodBegin, methodEnd));
+        int bodyBegin = dis.getStartPosition(tree.getBody());
+        if (bodyBegin < 0) {
+            bodyBegin = source.indexOf('{', methodBegin);
+            if (bodyBegin > methodEnd) {
+                bodyBegin = -1;
+            }
+        }
+        if (bodyBegin > 0) {
+            //debugWrap("-visitMethodDef BEGIN: %d = '%s'\n", bodyBegin,
+            //        source.substring(methodBegin, bodyBegin));
+            Range noBodyRange = new Range(methodBegin, bodyBegin);
+            result = new CompoundWrap(
+                    new RangeWrap(source, noBodyRange),
+                    resolutionExceptionBlock);
+        } else {
+            Range range = new Range(methodBegin, methodEnd);
+            result = new RangeWrap(source, range);
+        }
     }
 
-    private Wrap corral(Tree tree) {
-        try {
-            printStat((JCTree) tree);
-        } catch (IOException e) {
-            throw new AssertionError(e);
+    // Remove initializer, if present
+    @Override
+    public void visitVarDef(JCVariableDecl tree) {
+        int begin = dis.getStartPosition(tree);
+        int end = dis.getEndPosition(tree);
+        if (tree.init == null) {
+            result = new RangeWrap(source, new Range(begin, end));
+        } else {
+            int sinit = dis.getStartPosition(tree.init);
+            int eq = source.lastIndexOf('=', sinit);
+            if (eq < begin) {
+                throw new IllegalArgumentException("Equals not found before init: " + source + " @" + sinit);
+            }
+            result = new CompoundWrap(new RangeWrap(source, new Range(begin, eq - 1)), ";");
         }
-        return Wrap.simpleWrap(out.toString());
     }
 
     @Override
-    public void visitBlock(JCBlock tree) {
-        // Top-level executable blocks (usually method bodies) are corralled
-        super.visitBlock((tree.flags & STATIC) != 0
-                ? tree
-                : resolutionExceptionBlock());
-    }
-
-    @Override
-    public void visitVarDef(JCVariableDecl tree) {
-        // No field inits in corralled classes
-        tree.init = null;
-        super.visitVarDef(tree);
+    public void visitTree(JCTree tree) {
+        throw new IllegalArgumentException("Unexpected tree: " + tree);
     }
 
-    @Override
-    public void visitClassDef(JCClassDecl tree) {
-        if ((tree.mods.flags & (INTERFACE | ENUM)) == 0 &&
-                !tree.getMembers().stream()
-                .anyMatch(t -> t.getKind() == Tree.Kind.METHOD &&
-                ((MethodTree) t).getName() == tree.name.table.names.init)) {
-            // Generate a default constructor, since
-            // this is a regular class and there are no constructors
-            ListBuffer<JCTree> ndefs = new ListBuffer<>();
-            ndefs.addAll(tree.defs);
-            ndefs.add(make.MethodDef(make.Modifiers(PUBLIC),
-                    tree.name.table.names.init,
-                    null, List.nil(), List.nil(), List.nil(),
-                    resolutionExceptionBlock(), null));
-            tree.defs = ndefs.toList();
-        }
-        super.visitClassDef(tree);
-    }
-
-    // Build a compiler tree for an exception throwing block, e.g.:
-    // {
-    //     throw new jdk.jshell.spi.SPIResolutionException(9);
-    // }
-    private JCBlock resolutionExceptionBlock() {
-        if (resolutionExceptionBlock == null) {
-            JCExpression expClass = null;
-            // Split the exception class name at dots
-            for (String id : SPIResolutionException.class.getName().split("\\.")) {
-                Name nm = names.fromString(id);
-                if (expClass == null) {
-                    expClass = make.Ident(nm);
-                } else {
-                    expClass = make.Select(expClass, nm);
-                }
-            }
-            JCNewClass exp = make.NewClass(null,
-                    null, expClass, List.of(make.Literal(keyIndex)), null);
-            resolutionExceptionBlock = make.Block(0L, List.of(make.Throw(exp)));
-        }
-        return resolutionExceptionBlock;
+    void debugWrap(String format, Object... args) {
+        //state.debug(this, InternalDebugControl.DBG_WRAP, format, args);
     }
 }
--- a/src/jdk.jshell/share/classes/jdk/jshell/Eval.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/jdk.jshell/share/classes/jdk/jshell/Eval.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 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
@@ -44,7 +44,6 @@
 import com.sun.source.tree.NewClassTree;
 import com.sun.source.tree.Tree;
 import com.sun.source.tree.VariableTree;
-import com.sun.source.util.TreeScanner;
 import com.sun.tools.javac.tree.JCTree;
 import com.sun.tools.javac.tree.Pretty;
 import java.io.IOException;
@@ -622,7 +621,6 @@
                         name = "$" + ++varNumber;
                     }
                 }
-                TreeDissector dis = TreeDissector.createByFirstClass(pt);
                 ExpressionInfo varEI =
                         ExpressionToTypeInfo.localVariableTypeForInitializer(compileSource, state, true);
                 String declareTypeName;
@@ -634,6 +632,7 @@
                     fullTypeName = varEI.fullTypeName;
                     displayTypeName = varEI.displayTypeName;
 
+                    TreeDissector dis = TreeDissector.createByFirstClass(pt);
                     Pair<Wrap, Wrap> anonymous2Member =
                             anonymous2Member(varEI, compileSource, new Range(0, compileSource.length()), dis, expr.getExpression());
                     guts = Wrap.tempVarWrap(anonymous2Member.second.wrapped(), declareTypeName, name, anonymous2Member.first);
@@ -680,8 +679,8 @@
         String name = klassTree.getSimpleName().toString();
         DiagList modDiag = modifierDiagnostics(klassTree.getModifiers(), dis, false);
         TypeDeclKey key = state.keyMap.keyForClass(name);
-        // Corralling mutates.  Must be last use of pt, unitTree, klassTree
-        Wrap corralled = new Corraller(key.index(), pt.getContext()).corralType(klassTree);
+        // Corralling
+        Wrap corralled = new Corraller(dis, key.index(), compileSource).corralType(klassTree);
 
         Wrap guts = Wrap.classMemberWrap(compileSource);
         Snippet snip = new TypeDeclSnippet(key, userSource, guts,
@@ -752,8 +751,8 @@
         Tree returnType = mt.getReturnType();
         DiagList modDiag = modifierDiagnostics(mt.getModifiers(), dis, true);
         MethodKey key = state.keyMap.keyForMethod(name, parameterTypes);
-        // Corralling mutates.  Must be last use of pt, unitTree, mt
-        Wrap corralled = new Corraller(key.index(), pt.getContext()).corralMethod(mt);
+        // Corralling
+        Wrap corralled = new Corraller(dis, key.index(), compileSource).corralMethod(mt);
 
         if (modDiag.hasErrors()) {
             return compileFailResult(modDiag, userSource, Kind.METHOD);
--- a/src/jdk.jshell/share/classes/jdk/jshell/GeneralWrap.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/jdk.jshell/share/classes/jdk/jshell/GeneralWrap.java	Fri Jun 21 09:05:45 2019 -0700
@@ -28,7 +28,10 @@
 /**
  * Common interface for all wrappings of snippet source to Java source.
  *
- * @author Robert Field
+ * Snippet index is index into the source of the snippet.  Note: If the snippet is a sub-range of
+ * the source, the index is not the index in the snippet.
+ *
+ * Wrap index is index into the wrapped snippet.
  */
 interface GeneralWrap {
 
--- a/src/jdk.jshell/share/classes/jdk/jshell/SourceCodeAnalysisImpl.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/jdk.jshell/share/classes/jdk/jshell/SourceCodeAnalysisImpl.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 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
@@ -301,7 +301,7 @@
             SourcePositions sp = at.trees().getSourcePositions();
             CompilationUnitTree topLevel = at.firstCuTree();
             List<Suggestion> result = new ArrayList<>();
-            TreePath tp = pathFor(topLevel, sp, code.snippetIndexToWrapIndex(cursor));
+            TreePath tp = pathFor(topLevel, sp, code, cursor);
             if (tp != null) {
                 Scope scope = at.trees().getScope(tp);
                 Predicate<Element> accessibility = createAccessibilityFilter(at, tp);
@@ -563,7 +563,10 @@
         }
     }
 
-    private TreePath pathFor(CompilationUnitTree topLevel, SourcePositions sp, int pos) {
+    private TreePath pathFor(CompilationUnitTree topLevel, SourcePositions sp, GeneralWrap wrap, int snippetEndPos) {
+        int wrapEndPos = snippetEndPos == 0
+                ? wrap.snippetIndexToWrapIndex(snippetEndPos)
+                : wrap.snippetIndexToWrapIndex(snippetEndPos - 1) + 1;
         TreePath[] deepest = new TreePath[1];
 
         new TreePathScanner<Void, Void>() {
@@ -576,7 +579,7 @@
                 long end = sp.getEndPosition(topLevel, tree);
                 long prevEnd = deepest[0] != null ? sp.getEndPosition(topLevel, deepest[0].getLeaf()) : -1;
 
-                if (start <= pos && pos <= end &&
+                if (start <= wrapEndPos && wrapEndPos <= end &&
                     (start != end || prevEnd != end || deepest[0] == null ||
                      deepest[0].getParentPath().getLeaf() != getCurrentPath().getLeaf())) {
                     deepest[0] = new TreePath(getCurrentPath(), tree);
@@ -1176,7 +1179,7 @@
         return proc.taskFactory.analyze(codeWrap, List.of(keepParameterNames), at -> {
             SourcePositions sp = at.trees().getSourcePositions();
             CompilationUnitTree topLevel = at.firstCuTree();
-            TreePath tp = pathFor(topLevel, sp, codeWrap.snippetIndexToWrapIndex(cursor));
+            TreePath tp = pathFor(topLevel, sp, codeWrap, cursor);
 
             if (tp == null)
                 return Collections.emptyList();
@@ -1526,7 +1529,7 @@
         return proc.taskFactory.analyze(codeWrap, at -> {
             SourcePositions sp = at.trees().getSourcePositions();
             CompilationUnitTree topLevel = at.firstCuTree();
-            TreePath tp = pathFor(topLevel, sp, codeWrap.snippetIndexToWrapIndex(codeFin.length()));
+            TreePath tp = pathFor(topLevel, sp, codeWrap, codeFin.length());
             if (tp.getLeaf().getKind() != Kind.IDENTIFIER) {
                 return new QualifiedNames(Collections.emptyList(), -1, true, false);
             }
--- a/src/jdk.jshell/share/classes/jdk/jshell/Wrap.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/jdk.jshell/share/classes/jdk/jshell/Wrap.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -34,8 +34,6 @@
 /**
  * Wrapping of source into Java methods, fields, etc.  All but outer layer
  * wrapping with imports and class.
- *
- * @author Robert Field
  */
 abstract class Wrap implements GeneralWrap {
 
@@ -184,7 +182,7 @@
 
     public static final class Range {
         final int begin;
-        final int end;
+        final int end; // exclusive
 
         Range(int begin, int end) {
             this.begin = begin;
@@ -216,7 +214,7 @@
 
         @Override
         public String toString() {
-            return "Range[" + begin + "," + end + "]";
+            return "Range[" + begin + "," + end + ")";
         }
     }
 
@@ -280,8 +278,12 @@
                     before += s.length();
                 } else if (o instanceof Wrap) {
                     Wrap w = (Wrap) o;
-                    if (sni >= w.firstSnippetIndex() && sni <= w.lastSnippetIndex()) {
-                        return w.snippetIndexToWrapIndex(sni) + before;
+                    if (sni >= w.firstSnippetIndex() && sni < w.lastSnippetIndex()) {
+                        int wwi = w.snippetIndexToWrapIndex(sni);
+                        debugWrap("\nCommoundWrap.snippetIndexToWrapIndex: SnippetIndex(%d) -> WrapIndex(%d + %d = %d)"
+                                        + "\n   === %s",
+                                sni, wwi, before, wwi + before, wrapped());
+                        return wwi + before;
                     }
                     before += w.wrapped().length();
                 }
@@ -300,8 +302,8 @@
                     w = (Wrap) o;
                     int len = w.wrapped().length();
                     if ((wi - before) <= len) {
-                        //System.err.printf("Defer to wrap %s - wi: %d. before; %d   -- %s  >>> %s\n",
-                        //        w, wi, before, w.debugPos(wi - before), w.wrapped());
+                        debugWrap("CommoundWrap.wrapIndexToWrap: Defer to wrap %s - wi: %d. before; %d   >>> %s\n",
+                                w, wi, before, w.wrapped());
                         return w;
                     }
                     before += len;
@@ -321,9 +323,10 @@
                     Wrap w = (Wrap) o;
                     int len = w.wrapped().length();
                     if ((wi - before) <= len) {
-                        //System.err.printf("Defer to wrap %s - wi: %d. before; %d   -- %s  >>> %s\n",
-                        //        w, wi, before, w.debugPos(wi - before), w.wrapped());
-                        return w.wrapIndexToSnippetIndex(wi - before);
+                        int si = w.wrapIndexToSnippetIndex(wi - before);
+                        debugWrap("\nCommoundWrap.wrapIndexToSnippetIndex: WrapIndex(%d) -> SnippetIndex(%d)\n",
+                                wi, si);
+                        return si;
                     }
                     before += len;
                 }
@@ -369,7 +372,7 @@
                 } else if (o instanceof Wrap) {
                     w = (Wrap) o;
                     int lns = countLines(w.wrapped());
-                    if ((wline - before) < lns) {
+                    if ((wline - before) <= lns) {
                         return w;
                     }
                     before += lns;
@@ -388,7 +391,7 @@
                 } else if (o instanceof Wrap) {
                     Wrap w = (Wrap) o;
                     int lns = countLines(w.wrapped());
-                    if ((wline - before) < lns) {
+                    if ((wline - before) <= lns) {
                         return w.wrapLineToSnippetLine(wline - before);
                     }
                     before += lns;
@@ -409,16 +412,21 @@
 
         @Override
         public String toString() {
-            return "CompoundWrap(" + Arrays.stream(os).map(Object::toString).collect(joining(",")) + ")";
+            return "CompoundWrap(" + Arrays.stream(os)
+                    .map(o -> (o instanceof String)
+                            ? "\"" + o + "\""
+                            : o.toString())
+                    .collect(joining(","))
+                    + ")";
         }
     }
 
-    private static class RangeWrap extends Wrap {
+    static class RangeWrap extends Wrap {
 
         final Range range;
-        final String wrapped;
-        final int firstSnline;
-        final int lastSnline;
+        final String wrapped;   // The snippet portion of the source
+        final int firstSnline;  // Line count to start of snippet portion
+        final int lastSnline;   // Line count to end of snippet portion
 
         RangeWrap(String snippetSource, Range usedWithinSnippet) {
             this.range = usedWithinSnippet;
@@ -436,24 +444,39 @@
         @Override
         public int snippetIndexToWrapIndex(int sni) {
             if (sni < range.begin) {
+                debugWrap("\nRangeWrap.snippetIndexToWrapIndex: ERR before SnippetIndex(%d) -> WrapIndex(%d + %d = %d)\n",
+                        sni, 0);
                 return 0;
             }
             if (sni > range.end) {
+                debugWrap("\nRangeWrap.snippetIndexToWrapIndex: ERR after SnippetIndex(%d) -> WrapIndex(%d + %d = %d)\n",
+                        sni, range.length());
                 return range.length();
             }
-            return sni - range.begin;
+            int wi = sni - range.begin;
+            debugWrap("\nRangeWrap.snippetIndexToWrapIndex: SnippetIndex(%d) -> WrapIndex(%d + %d = %d)"
+                            + "\n   === %s",
+                    sni, sni, range.begin, sni - range.begin, wrapped());
+            return wi;
         }
 
         @Override
         public int wrapIndexToSnippetIndex(int wi) {
             if (wi < 0) {
+                debugWrap("\nRangeWrap.wrapIndexToSnippetIndex: ERR before WrapIndex(%d) -> SnippetIndex(%d)\n",
+                        wi, 0);
                 return 0; // bad index
             }
             int max = range.length();
             if (wi > max) {
-                wi = max;
+                debugWrap("\nRangeWrap.wrapIndexToSnippetIndex: ERR after WrapIndex(%d) -> SnippetIndex(%d)\n",
+                        wi, max + range.begin);
+                return max + range.begin;
             }
-            return wi + range.begin;
+            int sni = wi + range.begin;
+            debugWrap("\nRangeWrap.wrapIndexToSnippetIndex: WrapIndex(%d) -> SnippetIndex(%d)\n",
+                    wi, sni);
+            return sni;
         }
 
         @Override
@@ -535,4 +558,9 @@
             super("    public static ", wtype, brackets + " ", wname, semi(wname));
         }
     }
+
+    void debugWrap(String format, Object... args) {
+        //System.err.printf(format, args);
+        //state.debug(this, InternalDebugControl.DBG_WRAP, format, args);
+    }
 }
--- a/src/jdk.rmic/share/classes/sun/tools/java/RuntimeConstants.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/src/jdk.rmic/share/classes/sun/tools/java/RuntimeConstants.java	Fri Jun 21 09:05:45 2019 -0700
@@ -67,7 +67,7 @@
     /* Class File Constants */
     int JAVA_MAGIC                   = 0xcafebabe;
     int JAVA_MIN_SUPPORTED_VERSION   = 45;
-    int JAVA_MAX_SUPPORTED_VERSION   = 57;
+    int JAVA_MAX_SUPPORTED_VERSION   = 58;
     int JAVA_MAX_SUPPORTED_MINOR_VERSION = 0;
     int JAVA_MIN_PREVIEW_MAJOR_VERSION = 55; // preview intro'd in JDK 11
     int JAVA_PREVIEW_MINOR_VERSION   = 0xffff;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/ProblemList-aot.txt	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,74 @@
+#
+# Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+#############################################################################
+#
+# List of quarantined tests for testing with AOT.
+#
+#############################################################################
+
+serviceability/sa/CDSJMapClstats.java                   8216181   generic-all
+serviceability/sa/ClhsdbAttach.java                     8216181   generic-all
+serviceability/sa/ClhsdbCDSCore.java                    8216181   generic-all
+serviceability/sa/ClhsdbCDSJstackPrintAll.java          8216181   generic-all
+serviceability/sa/ClhsdbField.java                      8216181   generic-all
+serviceability/sa/ClhsdbFindPC.java                     8216181   generic-all
+serviceability/sa/ClhsdbFlags.java                      8216181   generic-all
+serviceability/sa/ClhsdbInspect.java                    8216181   generic-all
+serviceability/sa/ClhsdbJdis.java                       8216181   generic-all
+serviceability/sa/ClhsdbJhisto.java                     8216181   generic-all
+serviceability/sa/ClhsdbJstack.java                     8216181   generic-all
+serviceability/sa/ClhsdbLongConstant.java               8216181   generic-all
+serviceability/sa/ClhsdbPmap.java                       8216181   generic-all
+serviceability/sa/ClhsdbPrintAll.java                   8216181   generic-all
+serviceability/sa/ClhsdbPrintAs.java                    8216181   generic-all
+serviceability/sa/ClhsdbPrintStatics.java               8216181   generic-all
+serviceability/sa/ClhsdbPstack.java                     8216181   generic-all
+serviceability/sa/ClhsdbRegionDetailsScanOopsForG1.java 8216181   generic-all
+serviceability/sa/ClhsdbScanOops.java                   8216181   generic-all
+serviceability/sa/ClhsdbSource.java                     8216181   generic-all
+serviceability/sa/ClhsdbThread.java                     8216181   generic-all
+serviceability/sa/ClhsdbVmStructsDump.java              8216181   generic-all
+serviceability/sa/ClhsdbWhere.java                      8216181   generic-all
+serviceability/sa/DeadlockDetectionTest.java            8216181   generic-all
+serviceability/sa/JhsdbThreadInfoTest.java              8216181   generic-all
+serviceability/sa/jmap-hprof/JMapHProfLargeHeapTest.java 8216181   generic-all
+serviceability/sa/sadebugd/SADebugDTest.java            8216181   generic-all
+serviceability/sa/TestClassDump.java                    8216181   generic-all
+serviceability/sa/TestClhsdbJstackLock.java             8216181   generic-all
+serviceability/sa/TestCpoolForInvokeDynamic.java        8216181   generic-all
+serviceability/sa/TestDefaultMethods.java               8216181   generic-all
+serviceability/sa/TestG1HeapRegion.java                 8216181   generic-all
+serviceability/sa/TestHeapDumpForInvokeDynamic.java     8216181   generic-all
+serviceability/sa/TestHeapDumpForLargeArray.java        8216181   generic-all
+serviceability/sa/TestInstanceKlassSizeForInterface.java 8216181   generic-all
+serviceability/sa/TestInstanceKlassSize.java            8216181   generic-all
+serviceability/sa/TestIntConstant.java                  8216181   generic-all
+serviceability/sa/TestJhsdbJstackLock.java              8216181   generic-all
+serviceability/sa/TestJhsdbJstackMixed.java             8216181   generic-all
+serviceability/sa/TestJmapCore.java                     8216181   generic-all
+serviceability/sa/TestJmapCoreMetaspace.java            8216181   generic-all
+serviceability/sa/TestPrintMdo.java                     8216181   generic-all
+serviceability/sa/TestRevPtrsForInvokeDynamic.java      8216181   generic-all
+serviceability/sa/TestType.java                         8216181   generic-all
+serviceability/sa/TestUniverse.java                     8216181   generic-all
--- a/test/hotspot/jtreg/ProblemList-graal.txt	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/hotspot/jtreg/ProblemList-graal.txt	Fri Jun 21 09:05:45 2019 -0700
@@ -43,8 +43,6 @@
 
 compiler/graalunit/JttThreadsTest.java                          8207757   generic-all
 
-compiler/jvmci/SecurityRestrictionsTest.java                    8181837   generic-all
-
 compiler/unsafe/UnsafeGetConstantField.java                     8181833   generic-all
 compiler/unsafe/UnsafeGetStableArrayElement.java                8181833   generic-all
 compiler/unsafe/UnsafeOffHeapBooleanTest.java                   8181833   generic-all
@@ -62,7 +60,7 @@
 gc/g1/TestPeriodicCollection.java                               8196611   generic-all
 gc/g1/TestFromCardCacheIndex.java                               8196611   generic-all
 gc/parallel/TestPrintGCDetailsVerbose.java                      8196611   generic-all
-vm/gc/InfiniteList.java                                         8196611   generic-all
+gc/InfiniteList.java                                            8196611   generic-all
 
 vmTestbase/gc/lock/jni/jnilock001/TestDescription.java          8196611   generic-all
 vmTestbase/gc/lock/jniref/jnireflock04/TestDescription.java     8196611   generic-all
@@ -149,16 +147,16 @@
 # jvmti tests
 vmTestbase/nsk/jvmti/PopFrame/popframe009/TestDescription.java                     8195639   generic-all
 
-vmTestbase/nsk/jvmti/ForceEarlyReturn/ForceEarlyReturn001/TestDescription.java     8195674   generic-all
-vmTestbase/nsk/jvmti/ForceEarlyReturn/ForceEarlyReturn002/TestDescription.java     8195674   generic-all
+vmTestbase/nsk/jvmti/ForceEarlyReturn/ForceEarlyReturn001/TestDescription.java     8195674,8195635   generic-all
+vmTestbase/nsk/jvmti/ForceEarlyReturn/ForceEarlyReturn002/TestDescription.java     8195674,8195635   generic-all
 
 runtime/appcds/cacheObject/RedefineClassTest.java                                  8204506   macosx-all
-vmTestbase/nsk/jvmti/scenarios/hotswap/HS102/hs102t001/TestDescription.java        8204506   macosx-all
+vmTestbase/nsk/jvmti/scenarios/hotswap/HS102/hs102t001/TestDescription.java        8204506,8195635   macosx-all,generic-all
 vmTestbase/nsk/jvmti/scenarios/hotswap/HS102/hs102t002/TestDescription.java        8204506   macosx-all
 
-vmTestbase/nsk/jvmti/PopFrame/popframe001/TestDescription.java                     8207013   generic-all
-vmTestbase/nsk/jvmti/PopFrame/popframe003/TestDescription.java                     8207013   generic-all
-vmTestbase/nsk/jvmti/PopFrame/popframe005/TestDescription.java                     8207013   generic-all
+vmTestbase/nsk/jvmti/PopFrame/popframe001/TestDescription.java                     8207013,8195635   generic-all
+vmTestbase/nsk/jvmti/PopFrame/popframe003/TestDescription.java                     8207013,8195635   generic-all
+vmTestbase/nsk/jvmti/PopFrame/popframe005/TestDescription.java                     8207013,8195635   generic-all
 vmTestbase/nsk/jvmti/StopThread/stopthrd007/TestDescription.java                   8207013   generic-all
 
 serviceability/jvmti/FieldAccessWatch/FieldAccessWatch.java                        8202482   generic-all
@@ -176,7 +174,6 @@
 vmTestbase/nsk/jdi/BScenarios/hotswap/tc08x001/TestDescription.java                               8195635 generic-all
 vmTestbase/nsk/jdi/BScenarios/hotswap/tc10x002/TestDescription.java                               8195635 generic-all
 vmTestbase/nsk/jdi/MethodExitEvent/returnValue/returnValue003/returnValue003.java                 8195635 generic-all
-vmTestbase/nsk/jdi/Scenarios/invokeMethod/popframes001/TestDescription.jav                        8195635 generic-all
 vmTestbase/nsk/jdi/Scenarios/invokeMethod/popframes001/TestDescription.java                       8195635 generic-all
 vmTestbase/nsk/jdi/ThreadReference/popFrames/popframes001/TestDescription.java                    8195635 generic-all
 vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses002/TestDescription.java         8195635 generic-all
@@ -184,14 +181,8 @@
 vmTestbase/nsk/jdi/stress/serial/forceEarlyReturn002/TestDescription.java                         8195635 generic-all
 vmTestbase/nsk/jdi/stress/serial/mixed002/TestDescription.java                                    8195635 generic-all
 vmTestbase/nsk/jdwp/ThreadReference/ForceEarlyReturn/forceEarlyReturn002/forceEarlyReturn002.java 8195635 generic-all
-vmTestbase/nsk/jvmti/ForceEarlyReturn/ForceEarlyReturn001/TestDescription.java                    8195635 generic-all
-vmTestbase/nsk/jvmti/ForceEarlyReturn/ForceEarlyReturn002/TestDescription.java                    8195635 generic-all
-vmTestbase/nsk/jvmti/PopFrame/popframe001/TestDescription.java                                    8195635 generic-all
-vmTestbase/nsk/jvmti/PopFrame/popframe003/TestDescription.java                                    8195635 generic-all
-vmTestbase/nsk/jvmti/PopFrame/popframe005/TestDescription.java                                    8195635 generic-all
 vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t007/TestDescription.java                      8195635 generic-all
 vmTestbase/nsk/jvmti/scenarios/capability/CM03/cm03t001/TestDescription.java                      8195635 generic-all
-vmTestbase/nsk/jvmti/scenarios/hotswap/HS102/hs102t001/TestDescription.java                       8195635 generic-all
 vmTestbase/nsk/jvmti/scenarios/hotswap/HS201/hs201t001/TestDescription.java                       8195635 generic-all
 vmTestbase/nsk/jvmti/scenarios/hotswap/HS201/hs201t002/TestDescription.java                       8195635 generic-all
 vmTestbase/nsk/jvmti/scenarios/hotswap/HS202/hs202t002/hs202t002.java                             8195635 generic-all
--- a/test/hotspot/jtreg/ProblemList.txt	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/hotspot/jtreg/ProblemList.txt	Fri Jun 21 09:05:45 2019 -0700
@@ -49,8 +49,8 @@
 compiler/jvmci/compilerToVM/InvalidateInstalledCodeTest.java 8163894 generic-all
 compiler/tiered/LevelTransitionTest.java 8067651 generic-all
 
-compiler/types/correctness/CorrectnessTest.java 8225620 solaris-sparcv9
-compiler/types/correctness/OffTest.java         8225620 solaris-sparcv9
+compiler/types/correctness/CorrectnessTest.java 8225670,8225620 generic-all,solaris-sparcv9
+compiler/types/correctness/OffTest.java         8225670,8225620 generic-all,solaris-sparcv9
 
 compiler/c2/Test6852078.java 8194310 generic-all
 compiler/c2/Test8004741.java 8214904 generic-all
@@ -80,7 +80,6 @@
 
 # :hotspot_runtime
 
-runtime/SharedArchiveFile/SASymbolTableTest.java 8193639 solaris-all
 runtime/jni/terminatedThread/TestTerminatedThread.java 8219652 aix-ppc64
 
 #############################################################################
@@ -107,8 +106,6 @@
 serviceability/sa/ClhsdbRegionDetailsScanOopsForG1.java 8193639 solaris-all
 serviceability/sa/ClhsdbScanOops.java 8193639,8211767 solaris-all,linux-ppc64le,linux-ppc64
 serviceability/sa/ClhsdbSource.java 8193639,8211767 solaris-all,linux-ppc64le,linux-ppc64
-serviceability/sa/ClhsdbSymbol.java 8193639 solaris-all
-serviceability/sa/ClhsdbSymbolTable.java 8193639 solaris-all
 serviceability/sa/ClhsdbThread.java 8193639,8211767 solaris-all,linux-ppc64le,linux-ppc64
 serviceability/sa/ClhsdbVmStructsDump.java 8193639 solaris-all
 serviceability/sa/ClhsdbWhere.java 8193639,8211767 solaris-all,linux-ppc64le,linux-ppc64
--- a/test/hotspot/jtreg/compiler/compilercontrol/share/scenario/Command.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/hotspot/jtreg/compiler/compilercontrol/share/scenario/Command.java	Fri Jun 21 09:05:45 2019 -0700
@@ -33,8 +33,8 @@
 public enum Command {
     COMPILEONLY("compileonly", ".*", "-Xbatch"),
     EXCLUDE("exclude", "", "-Xbatch"),
-    INLINE("inline", ".*", "-Xbatch"),
-    DONTINLINE("dontinline", "", "-Xbatch"),
+    INLINE("inline", ".*", "-Xbatch", "-XX:InlineSmallCode=4000"),
+    DONTINLINE("dontinline", "", "-Xbatch", "-XX:InlineSmallCode=4000"),
     LOG("log", "", "-XX:+UnlockDiagnosticVMOptions",
             "-XX:+LogCompilation", "-XX:LogFile=" + LogProcessor.LOG_FILE),
     PRINT("print", ""),
--- a/test/hotspot/jtreg/compiler/testlibrary/rtm/libXAbortProvoker.c	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/hotspot/jtreg/compiler/testlibrary/rtm/libXAbortProvoker.c	Fri Jun 21 09:05:45 2019 -0700
@@ -28,7 +28,7 @@
  * so doAbort() does nothing special and only returns after being called.
  * The transaction abortion happens right before the JNI method is called.
  */
-int JNICALL
+JNIEXPORT int JNICALL
 Java_compiler_testlibrary_rtm_XAbortProvoker_doAbort(JNIEnv *env, jobject o) {
   return 0;
 }
--- a/test/hotspot/jtreg/runtime/8007320/ConstMethodTest.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/hotspot/jtreg/runtime/8007320/ConstMethodTest.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -122,8 +122,8 @@
                 equal(ann.length, 3);
                 Annotation foo = ann[0][0];
                 Annotation bar = ann[1][0];
-                equal(foo.toString(), "@Named(value=\"aName\")");
-                equal(bar.toString(), "@Named(value=\"bName\")");
+                equal(foo.toString(), "@Named(\"aName\")");
+                equal(bar.toString(), "@Named(\"bName\")");
                 check(foo.equals(foo));
                 check(bar.equals(bar));
                 check(! foo.equals(bar));
--- a/test/hotspot/jtreg/runtime/CommandLine/VMDeprecatedOptions.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/hotspot/jtreg/runtime/CommandLine/VMDeprecatedOptions.java	Fri Jun 21 09:05:45 2019 -0700
@@ -45,8 +45,6 @@
         {"MinRAMFraction",            "2"},
         {"InitialRAMFraction",        "64"},
         {"TLABStats",                 "false"},
-        {"ThreadLocalHandshakes",     "true"},
-        {"AllowJNIEnvProxy",          "true"},
         {"AllowRedefinitionToAddDeleteMethods", "true"},
 
         // deprecated alias flags (see also aliased_jvm_flags):
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/runtime/classFileParserBug/EmptyUnqName.jasm	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+super public class EmptyUnqName version 56:0 {
+
+    public Method "<init>":"()V" stack 1 locals 1 {
+        aload_0;
+        invokespecial Method java/lang/Object."<init>":"()V";
+        return;
+    }
+
+    public static Method main:"([Ljava/lang/String;)V" stack 2 locals 1 {
+        getstatic Field java/lang/System.out:"Ljava/io/PrintStream;";
+        ldc String "Testing method param types";
+        invokevirtual Method java/io/PrintStream.println:"(Ljava/lang/String;)V";
+        return;
+    }
+
+    public static Method func:"(L;)V" stack 0 locals 1 {
+        return;
+    }
+
+} // end Class EmptyUnqName
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/runtime/classFileParserBug/TestEmptyUnqName.java	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8225789
+ * @summary Test that an unqualified name of "L;" causes a ClassFormatError exception.
+ * @compile EmptyUnqName.jasm
+ * @run main/othervm -Xverify:remote TestEmptyUnqName
+ */
+
+public class TestEmptyUnqName {
+    public static void main(String args[]) throws Throwable {
+
+        System.out.println("Regression test for bug 8225789");
+
+        try {
+            Class newClass = Class.forName("EmptyUnqName");
+            throw new RuntimeException("Expected ClassFormatError exception not thrown");
+        } catch (java.lang.ClassFormatError e) {
+            if (!e.getMessage().contains("Class name is empty or contains illegal character")) {
+                throw new RuntimeException("Wrong ClassFormatError: " + e.getMessage());
+            }
+        }
+    }
+}
--- a/test/hotspot/jtreg/runtime/verifier/TestSigParse.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/hotspot/jtreg/runtime/verifier/TestSigParse.java	Fri Jun 21 09:05:45 2019 -0700
@@ -63,7 +63,7 @@
             throw new RuntimeException("Expected ClasFormatError exception not thrown");
         } catch (java.lang.ClassFormatError e) {
             String eMsg = e.getMessage();
-            if (!eMsg.contains("Class name contains illegal character")) {
+            if (!eMsg.contains("Class name is empty or contains illegal character")) {
                 throw new RuntimeException("Unexpected exception: " + eMsg);
             }
         }
--- a/test/jdk/ProblemList-aot.txt	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/jdk/ProblemList-aot.txt	Fri Jun 21 09:05:45 2019 -0700
@@ -30,3 +30,5 @@
 java/lang/invoke/VarHandles/VarHandleTestByteArrayAsShort.java  8222445 windows-x64
 java/lang/invoke/VarHandles/VarHandleTestByteArrayAsChar.java   8222445 windows-x64
 java/lang/invoke/VarHandles/VarHandleTestAccessBoolean.java     8222445 windows-x64
+java/lang/reflect/PublicMethods/PublicMethodsTest.java          8226309 generic-all
+java/lang/constant/MethodTypeDescTest.java                      8225349 windows-x64
--- a/test/jdk/ProblemList-graal.txt	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/jdk/ProblemList-graal.txt	Fri Jun 21 09:05:45 2019 -0700
@@ -76,30 +76,15 @@
 java/lang/ref/SoftReference/Pin.java                                    8196611   generic-all
 java/lang/Runtime/exec/LotsOfOutput.java                                8196611   generic-all
 java/util/concurrent/ScheduledThreadPoolExecutor/BasicCancelTest.java   8196611   generic-all
-vm/gc/InfiniteList.java                                                 8196611   generic-all
 
 # tests require pop_frame and force_early_return capabilities
-com/sun/jdi/RedefineTTYLineNumber.java                                  8195635   generic-all
-com/sun/jdi/RedefineG.java                                              8195635   generic-all
-com/sun/jdi/RedefineCrossStart.java                                     8195635   generic-all
-com/sun/jdi/PopSynchronousTest.java                                     8195635   generic-all
-com/sun/jdi/RedefineTTYLineNumber.java                                  8195635   generic-all
-com/sun/jdi/RedefineG.java                                              8195635   generic-all
-com/sun/jdi/RedefineCrossStart.java                                     8195635   generic-all
-com/sun/jdi/PopSynchronousTest.java                                     8195635   generic-all
-com/sun/jdi/PopAsynchronousTest.java                                    8195635   generic-all
+com/sun/jdi/EarlyReturnTest.java                                        8195635   generic-all
 com/sun/jdi/PopAndStepTest.java                                         8195635   generic-all
 com/sun/jdi/PopAsynchronousTest.java                                    8195635   generic-all
-com/sun/jdi/PopAndStepTest.java                                         8195635   generic-all
-com/sun/jdi/EarlyReturnTest.java                                        8195635   generic-all
-com/sun/jdi/RedefineTTYLineNumber.java                                  8195635   generic-all
-com/sun/jdi/RedefineG.java                                              8195635   generic-all
+com/sun/jdi/PopSynchronousTest.java                                     8195635   generic-all
 com/sun/jdi/RedefineCrossStart.java                                     8195635   generic-all
-com/sun/jdi/PopSynchronousTest.java                                     8195635   generic-all
-com/sun/jdi/PopAsynchronousTest.java                                    8195635   generic-all
-com/sun/jdi/PopAndStepTest.java                                         8195635   generic-all
-com/sun/jdi/EarlyReturnTest.java                                        8195635   generic-all
-com/sun/jdi/EarlyReturnTest.java                                        8195635   generic-all
+com/sun/jdi/RedefineG.java                                              8195635   generic-all
+com/sun/jdi/RedefineTTYLineNumber.java                                  8195635   generic-all
 
 # Next JFR tests fail with Graal. Assuming 8193210.
 jdk/jfr/event/compiler/TestCodeSweeper.java              8193210   generic-all
--- a/test/jdk/ProblemList.txt	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/jdk/ProblemList.txt	Fri Jun 21 09:05:45 2019 -0700
@@ -603,9 +603,6 @@
 
 java/net/ServerSocket/AcceptInheritHandle.java                  8211854 aix-ppc64
 
-java/net/Inet6Address/B6206527.java                             8216417 macosx-all
-java/net/ipv6tests/B6521014.java                                8216417 macosx-all
-
 ############################################################################
 
 # jdk_nio
@@ -658,7 +655,7 @@
 sun/security/pkcs11/ec/TestKeyFactory.java                      8026976 generic-all
 sun/security/pkcs11/Secmod/AddTrustedCert.java                  8180837 generic-all
 sun/security/pkcs11/tls/TestKeyMaterial.java                    8180837 generic-all
-sun/security/pkcs11/tls/tls12/FipsModeTLS12.java                8224954 windows-all
+sun/security/pkcs11/tls/tls12/FipsModeTLS12.java                8224954,8225678 windows-all,linux-all
 sun/security/pkcs11/sslecc/ClientJSSEServerJSSE.java            8161536 generic-all
 
 sun/security/tools/keytool/ListKeychainStore.sh                 8156889 macosx-all
--- a/test/jdk/java/lang/annotation/AnnotationToStringTest.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/jdk/java/lang/annotation/AnnotationToStringTest.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -27,6 +27,9 @@
  * @summary Test of toString on normal annotations
  */
 
+// See also the sibling compile-time test
+// test/langtools/tools/javac/processing/model/element/AnnotationToStringTest.java
+
 import java.lang.annotation.*;
 import java.lang.reflect.*;
 import java.util.*;
@@ -62,22 +65,25 @@
     @ExpectedString(
         "@MostlyPrimitive(c0='a', "+
         "c1='\\'', " +
+        "b0=(byte)0x01, " +
         "i0=1, " +
         "i1=2, " +
         "f0=1.0f, " +
         "f1=0.0f/0.0f, " +
         "d0=0.0, " +
         "d1=1.0/0.0, " +
-        "l0=5, " +
+        "l0=5L, " +
         "l1=9223372036854775807L, " +
         "l2=-9223372036854775808L, " +
-        "l3=-2147483648, " +
+        "l3=-2147483648L, " +
         "s0=\"Hello world.\", " +
         "s1=\"a\\\"b\", " +
-        "class0=Obj[].class)")
+        "class0=Obj[].class, " +
+        "classArray={Obj[].class})")
     @MostlyPrimitive(
         c0='a',
         c1='\'',
+        b0=1,
         i0=1,
         i1=2,
         f0=1.0f,
@@ -90,7 +96,8 @@
         l3=Integer.MIN_VALUE,
         s0="Hello world.",
         s1="a\"b",
-        class0=Obj[].class
+        class0=Obj[].class,
+        classArray={Obj[].class}
     )
     static class PrimHost{}
 
@@ -107,33 +114,33 @@
 
     static class AnnotationHost {
         @ExpectedString(
-       "@Classy(value=Obj.class)")
-        @Classy(value=Obj.class)
+       "@Classy(Obj.class)")
+        @Classy(Obj.class)
         public int f0;
 
         @ExpectedString(
-       "@Classy(value=Obj[].class)")
-        @Classy(value=Obj[].class)
+       "@Classy(Obj[].class)")
+        @Classy(Obj[].class)
         public int f1;
 
         @ExpectedString(
-       "@Classy(value=Obj[][].class)")
-        @Classy(value=Obj[][].class)
+       "@Classy(Obj[][].class)")
+        @Classy(Obj[][].class)
         public int f2;
 
         @ExpectedString(
-       "@Classy(value=Obj[][][].class)")
-        @Classy(value=Obj[][][].class)
+       "@Classy(Obj[][][].class)")
+        @Classy(Obj[][][].class)
         public int f3;
 
         @ExpectedString(
-       "@Classy(value=int.class)")
-        @Classy(value=int.class)
+       "@Classy(int.class)")
+        @Classy(int.class)
         public int f4;
 
         @ExpectedString(
-       "@Classy(value=int[][][].class)")
-        @Classy(value=int[][][].class)
+       "@Classy(int[][][].class)")
+        @Classy(int[][][].class)
         public int f5;
     }
 
@@ -154,60 +161,60 @@
 
     static class ArrayAnnotationHost {
         @ExpectedString(
-       "@BooleanArray(value={true, false, true})")
-        @BooleanArray(value={true, false, true})
+       "@BooleanArray({true, false, true})")
+        @BooleanArray({true, false, true})
         public boolean[]   f0;
 
         @ExpectedString(
-       "@FloatArray(value={3.0f, 4.0f, 0.0f/0.0f, -1.0f/0.0f, 1.0f/0.0f})")
-        @FloatArray(value={3.0f, 4.0f, Float.NaN, Float.NEGATIVE_INFINITY, Float.POSITIVE_INFINITY})
+       "@FloatArray({3.0f, 4.0f, 0.0f/0.0f, -1.0f/0.0f, 1.0f/0.0f})")
+        @FloatArray({3.0f, 4.0f, Float.NaN, Float.NEGATIVE_INFINITY, Float.POSITIVE_INFINITY})
         public float[]     f1;
 
         @ExpectedString(
-       "@DoubleArray(value={1.0, 2.0, 0.0/0.0, 1.0/0.0, -1.0/0.0})")
-        @DoubleArray(value={1.0, 2.0, Double.NaN, Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY,})
+       "@DoubleArray({1.0, 2.0, 0.0/0.0, 1.0/0.0, -1.0/0.0})")
+        @DoubleArray({1.0, 2.0, Double.NaN, Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY,})
         public double[]    f2;
 
         @ExpectedString(
-       "@ByteArray(value={10, 11, 12})")
-        @ByteArray(value={10, 11, 12})
+       "@ByteArray({(byte)0x0a, (byte)0x0b, (byte)0x0c})")
+        @ByteArray({10, 11, 12})
         public byte[]      f3;
 
         @ExpectedString(
-       "@ShortArray(value={0, 4, 5})")
-        @ShortArray(value={0, 4, 5})
+       "@ShortArray({0, 4, 5})")
+        @ShortArray({0, 4, 5})
         public short[]     f4;
 
         @ExpectedString(
-       "@CharArray(value={'a', 'b', 'c', '\\''})")
-        @CharArray(value={'a', 'b', 'c', '\''})
+       "@CharArray({'a', 'b', 'c', '\\''})")
+        @CharArray({'a', 'b', 'c', '\''})
         public char[]      f5;
 
         @ExpectedString(
-       "@IntArray(value={1})")
-        @IntArray(value={1})
+       "@IntArray({1})")
+        @IntArray({1})
         public int[]       f6;
 
         @ExpectedString(
-       "@LongArray(value={-9223372036854775808L, -2147483649L, -2147483648," +
-                " -2147483647, 2147483648L, 9223372036854775807L})")
-        @LongArray(value={Long.MIN_VALUE, Integer.MIN_VALUE-1L, Integer.MIN_VALUE,
+       "@LongArray({-9223372036854775808L, -2147483649L, -2147483648L," +
+                " -2147483647L, 2147483648L, 9223372036854775807L})")
+        @LongArray({Long.MIN_VALUE, Integer.MIN_VALUE-1L, Integer.MIN_VALUE,
                 -Integer.MAX_VALUE, Integer.MAX_VALUE+1L, Long.MAX_VALUE})
         public long[]      f7;
 
         @ExpectedString(
-       "@StringArray(value={\"A\", \"B\", \"C\", \"\\\"Quote\\\"\"})")
-        @StringArray(value={"A", "B", "C", "\"Quote\""})
+       "@StringArray({\"A\", \"B\", \"C\", \"\\\"Quote\\\"\"})")
+        @StringArray({"A", "B", "C", "\"Quote\""})
         public String[]    f8;
 
         @ExpectedString(
-       "@ClassArray(value={int.class, Obj[].class})")
-        @ClassArray(value={int.class, Obj[].class})
+       "@ClassArray({int.class, Obj[].class})")
+        @ClassArray({int.class, Obj[].class})
         public Class<?>[]  f9;
 
         @ExpectedString(
-       "@EnumArray(value={SOURCE})")
-        @EnumArray(value={RetentionPolicy.SOURCE})
+       "@EnumArray({SOURCE})")
+        @EnumArray({RetentionPolicy.SOURCE})
         public RetentionPolicy[]  f10;
     }
 }
@@ -285,6 +292,7 @@
 @interface MostlyPrimitive {
     char   c0();
     char   c1();
+    byte   b0();
     int    i0();
     int    i1();
     float  f0();
@@ -298,4 +306,5 @@
     String s0();
     String s1();
     Class<?> class0();
+    Class<?>[] classArray();
 }
--- a/test/jdk/java/lang/annotation/ParameterAnnotations.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/jdk/java/lang/annotation/ParameterAnnotations.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -89,8 +89,8 @@
                 equal(ann.length, 2);
                 Annotation foo = ann[0][0];
                 Annotation bar = ann[1][0];
-                equal(foo.toString(), "@Named(value=\"foo\")");
-                equal(bar.toString(), "@Named(value=\"bar\")");
+                equal(foo.toString(), "@Named(\"foo\")");
+                equal(bar.toString(), "@Named(\"bar\")");
                 check(foo.equals(foo));
                 check(! foo.equals(bar));
             }
--- a/test/jdk/java/lang/annotation/TestConstructorParameterAnnotations.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/jdk/java/lang/annotation/TestConstructorParameterAnnotations.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -129,21 +129,21 @@
 
     @ExpectedGetParameterAnnotations(
         "[[], " +
-        "[@TestConstructorParameterAnnotations$MarkerAnnotation(value=1)]]")
+        "[@TestConstructorParameterAnnotations$MarkerAnnotation(1)]]")
     @ExpectedParameterAnnotations({
         "null",
-        "@TestConstructorParameterAnnotations$MarkerAnnotation(value=1)"})
+        "@TestConstructorParameterAnnotations$MarkerAnnotation(1)"})
     public class NestedClass1 {
         public NestedClass1(@MarkerAnnotation(1) int parameter) {}
     }
 
     @ExpectedGetParameterAnnotations(
         "[[], " +
-        "[@TestConstructorParameterAnnotations$MarkerAnnotation(value=2)], " +
+        "[@TestConstructorParameterAnnotations$MarkerAnnotation(2)], " +
         "[]]")
     @ExpectedParameterAnnotations({
         "null",
-        "@TestConstructorParameterAnnotations$MarkerAnnotation(value=2)",
+        "@TestConstructorParameterAnnotations$MarkerAnnotation(2)",
         "null"})
     public class NestedClass2 {
         public NestedClass2(@MarkerAnnotation(2) int parameter1,
@@ -152,11 +152,11 @@
 
     @ExpectedGetParameterAnnotations(
         "[[], " +
-        "[@TestConstructorParameterAnnotations$MarkerAnnotation(value=3)], " +
+        "[@TestConstructorParameterAnnotations$MarkerAnnotation(3)], " +
         "[]]")
     @ExpectedParameterAnnotations({
         "null",
-        "@TestConstructorParameterAnnotations$MarkerAnnotation(value=3)",
+        "@TestConstructorParameterAnnotations$MarkerAnnotation(3)",
             "null"})
     public class NestedClass3 {
         public <P> NestedClass3(@MarkerAnnotation(3) P parameter1,
@@ -165,11 +165,11 @@
 
     @ExpectedGetParameterAnnotations(
         "[[], " +
-        "[@TestConstructorParameterAnnotations$MarkerAnnotation(value=4)], " +
+        "[@TestConstructorParameterAnnotations$MarkerAnnotation(4)], " +
         "[]]")
     @ExpectedParameterAnnotations({
         "null",
-        "@TestConstructorParameterAnnotations$MarkerAnnotation(value=4)",
+        "@TestConstructorParameterAnnotations$MarkerAnnotation(4)",
         "null"})
     public class NestedClass4 {
         public <P, Q> NestedClass4(@MarkerAnnotation(4) P parameter1,
@@ -183,18 +183,18 @@
     }
 
     @ExpectedGetParameterAnnotations(
-        "[[@TestConstructorParameterAnnotations$MarkerAnnotation(value=1)]]")
+        "[[@TestConstructorParameterAnnotations$MarkerAnnotation(1)]]")
     @ExpectedParameterAnnotations({
-        "@TestConstructorParameterAnnotations$MarkerAnnotation(value=1)"})
+        "@TestConstructorParameterAnnotations$MarkerAnnotation(1)"})
     public static class StaticNestedClass1 {
         public StaticNestedClass1(@MarkerAnnotation(1) int parameter) {}
     }
 
     @ExpectedGetParameterAnnotations(
-        "[[@TestConstructorParameterAnnotations$MarkerAnnotation(value=2)], " +
+        "[[@TestConstructorParameterAnnotations$MarkerAnnotation(2)], " +
         "[]]")
     @ExpectedParameterAnnotations({
-        "@TestConstructorParameterAnnotations$MarkerAnnotation(value=2)",
+        "@TestConstructorParameterAnnotations$MarkerAnnotation(2)",
         "null"})
     public static class StaticNestedClass2 {
         public StaticNestedClass2(@MarkerAnnotation(2) int parameter1,
@@ -202,10 +202,10 @@
     }
 
     @ExpectedGetParameterAnnotations(
-        "[[@TestConstructorParameterAnnotations$MarkerAnnotation(value=3)], " +
+        "[[@TestConstructorParameterAnnotations$MarkerAnnotation(3)], " +
         "[]]")
     @ExpectedParameterAnnotations({
-        "@TestConstructorParameterAnnotations$MarkerAnnotation(value=3)",
+        "@TestConstructorParameterAnnotations$MarkerAnnotation(3)",
         "null"})
     public static class StaticNestedClass3 {
         public <P> StaticNestedClass3(@MarkerAnnotation(3) P parameter1,
@@ -213,10 +213,10 @@
     }
 
     @ExpectedGetParameterAnnotations(
-        "[[@TestConstructorParameterAnnotations$MarkerAnnotation(value=4)], " +
+        "[[@TestConstructorParameterAnnotations$MarkerAnnotation(4)], " +
         "[]]")
     @ExpectedParameterAnnotations({
-        "@TestConstructorParameterAnnotations$MarkerAnnotation(value=4)",
+        "@TestConstructorParameterAnnotations$MarkerAnnotation(4)",
         "null"})
     public static class StaticNestedClass4 {
         public <P, Q> StaticNestedClass4(@MarkerAnnotation(4) P parameter1,
--- a/test/jdk/java/lang/annotation/typeAnnotations/TestConstructorParameterTypeAnnotations.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/jdk/java/lang/annotation/typeAnnotations/TestConstructorParameterTypeAnnotations.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -128,7 +128,7 @@
     @ExpectedGetParameterAnnotations("[[], []]")
     @ExpectedParameterTypeAnnotations({
         "null",
-        "@TestConstructorParameterTypeAnnotations$MarkerTypeAnnotation(value=1)"})
+        "@TestConstructorParameterTypeAnnotations$MarkerTypeAnnotation(1)"})
     public class NestedClass1 {
         public NestedClass1(@MarkerTypeAnnotation(1) int parameter) {}
     }
@@ -136,7 +136,7 @@
     @ExpectedGetParameterAnnotations("[[], [], []]")
     @ExpectedParameterTypeAnnotations({
         "null",
-        "@TestConstructorParameterTypeAnnotations$MarkerTypeAnnotation(value=2)",
+        "@TestConstructorParameterTypeAnnotations$MarkerTypeAnnotation(2)",
         "null"})
     public class NestedClass2 {
         public NestedClass2(@MarkerTypeAnnotation(2) int parameter1,
@@ -146,7 +146,7 @@
     @ExpectedGetParameterAnnotations("[[], [], []]")
     @ExpectedParameterTypeAnnotations({
         "null",
-        "@TestConstructorParameterTypeAnnotations$MarkerTypeAnnotation(value=3)",
+        "@TestConstructorParameterTypeAnnotations$MarkerTypeAnnotation(3)",
         "null"})
     public class NestedClass3 {
         public <P> NestedClass3(@MarkerTypeAnnotation(3) P parameter1,
@@ -156,7 +156,7 @@
     @ExpectedGetParameterAnnotations("[[], [], []]")
     @ExpectedParameterTypeAnnotations({
         "null",
-        "@TestConstructorParameterTypeAnnotations$MarkerTypeAnnotation(value=4)",
+        "@TestConstructorParameterTypeAnnotations$MarkerTypeAnnotation(4)",
         "null"})
     public class NestedClass4 {
         public <P, Q> NestedClass4(@MarkerTypeAnnotation(4) P parameter1,
@@ -171,14 +171,14 @@
 
     @ExpectedGetParameterAnnotations("[[]]")
     @ExpectedParameterTypeAnnotations({
-        "@TestConstructorParameterTypeAnnotations$MarkerTypeAnnotation(value=1)"})
+        "@TestConstructorParameterTypeAnnotations$MarkerTypeAnnotation(1)"})
     public static class StaticNestedClass1 {
         public StaticNestedClass1(@MarkerTypeAnnotation(1) int parameter) {}
     }
 
     @ExpectedGetParameterAnnotations("[[], []]")
     @ExpectedParameterTypeAnnotations({
-        "@TestConstructorParameterTypeAnnotations$MarkerTypeAnnotation(value=2)",
+        "@TestConstructorParameterTypeAnnotations$MarkerTypeAnnotation(2)",
         "null"})
     public static class StaticNestedClass2 {
         public StaticNestedClass2(@MarkerTypeAnnotation(2) int parameter1,
@@ -187,7 +187,7 @@
 
     @ExpectedGetParameterAnnotations("[[], []]")
     @ExpectedParameterTypeAnnotations({
-        "@TestConstructorParameterTypeAnnotations$MarkerTypeAnnotation(value=3)",
+        "@TestConstructorParameterTypeAnnotations$MarkerTypeAnnotation(3)",
         "null"})
     public static class StaticNestedClass3 {
          public <P> StaticNestedClass3(@MarkerTypeAnnotation(3) P parameter1,
@@ -196,7 +196,7 @@
 
     @ExpectedGetParameterAnnotations("[[], []]")
     @ExpectedParameterTypeAnnotations({
-        "@TestConstructorParameterTypeAnnotations$MarkerTypeAnnotation(value=4)",
+        "@TestConstructorParameterTypeAnnotations$MarkerTypeAnnotation(4)",
         "null"})
     public static class StaticNestedClass4 {
         public <P, Q> StaticNestedClass4(@MarkerTypeAnnotation(4) P parameter1,
--- a/test/jdk/java/lang/annotation/typeAnnotations/TestObjectMethods.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/jdk/java/lang/annotation/typeAnnotations/TestObjectMethods.java	Fri Jun 21 09:05:45 2019 -0700
@@ -177,7 +177,7 @@
         }
     }
 
-    private static final Pattern annotationRegex = Pattern.compile("@TestObjectMethods\\$AnnotType\\(value=(\\p{Digit})+\\)");
+    private static final Pattern annotationRegex = Pattern.compile("@TestObjectMethods\\$AnnotType\\((\\p{Digit})+\\)");
 
     static void testGetAnnotations(Class<?> clazz, boolean annotationsExpectedOnMethods) {
         System.err.println("Testing getAnnotations on methods of class " + clazz.getName());
--- a/test/jdk/java/lang/module/ClassFileVersionsTest.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/jdk/java/lang/module/ClassFileVersionsTest.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -57,6 +57,7 @@
                 { 55,   0,  Set.of() },                      // JDK 11
                 { 56,   0,  Set.of() },                      // JDK 12
                 { 57,   0,  Set.of() },                      // JDK 13
+                { 58,   0,  Set.of() },                      // JDK 14
         };
     }
 
@@ -84,7 +85,11 @@
                 { 57,   0,  Set.of(TRANSITIVE) },
                 { 57,   0,  Set.of(STATIC, TRANSITIVE) },
 
-                { 58,   0,  Set.of()},                       // JDK 14
+                { 58,   0,  Set.of(STATIC) },                // JDK 14
+                { 58,   0,  Set.of(TRANSITIVE) },
+                { 58,   0,  Set.of(STATIC, TRANSITIVE) },
+
+                { 59,   0,  Set.of()},                       // JDK 15
         };
     }
 
--- a/test/jdk/java/net/Authenticator/AuthNPETest.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/jdk/java/net/Authenticator/AuthNPETest.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -24,11 +24,15 @@
 import java.io.*;
 import java.net.*;
 import java.util.*;
+import jdk.test.lib.net.URIBuilder;
 
 /**
  * @test
  * @bug 4662246
  * @summary  REGRESSION: plugin 14x client authentication dialog returns NullPointerException
+ * @library /test/lib
+ * @run main/othervm AuthNPETest
+ * @run main/othervm -Djava.net.preferIPv6Addresses=true AuthNPETest
  */
 
 public class AuthNPETest {
@@ -53,45 +57,45 @@
             "Content-Type: text/html; charset=iso-8859-1\r\n" +
             "Content-Length: 10\r\n\r\n";
 
-        BasicServer (ServerSocket s) {
+        BasicServer(ServerSocket s) {
             server = s;
         }
 
-        void readAll (Socket s) throws IOException {
+        void readAll(Socket s) throws IOException {
             byte[] buf = new byte [128];
-            InputStream is = s.getInputStream ();
+            InputStream is = s.getInputStream();
             s.setSoTimeout(1000);
             try {
                 while (is.read(buf) > 0) ;
             } catch (SocketTimeoutException x) { }
         }
 
-        public void run () {
+        public void run() {
             try {
-                System.out.println ("Server 1: accept");
-                s = server.accept ();
-                System.out.println ("accepted");
+                System.out.println("Server 1: accept");
+                s = server.accept();
+                System.out.println("accepted");
                 os = s.getOutputStream();
-                os.write (reply1.getBytes());
-                readAll (s);
-                s.close ();
+                os.write(reply1.getBytes());
+                readAll(s);
+                s.close();
 
-                System.out.println ("Server 2: accept");
-                s = server.accept ();
-                System.out.println ("accepted");
+                System.out.println("Server 2: accept");
+                s = server.accept();
+                System.out.println("accepted");
                 os = s.getOutputStream();
-                os.write ((reply2+"HelloWorld").getBytes());
-                readAll (s);
-                s.close ();
+                os.write((reply2+"HelloWorld").getBytes());
+                readAll(s);
+                s.close();
 
             }
             catch (Exception e) {
                 System.out.println (e);
             }
-            finished ();
+            finished();
         }
 
-        public synchronized void finished () {
+        public synchronized void finished() {
             notifyAll();
         }
 
@@ -99,48 +103,54 @@
 
     static class MyAuthenticator extends Authenticator {
 
-        MyAuthenticator () {
-            super ();
+        MyAuthenticator() {
+            super();
         }
 
         int count = 0;
 
-        public PasswordAuthentication getPasswordAuthentication ()
+        public PasswordAuthentication getPasswordAuthentication()
             {
-            count ++;
-            System.out.println ("Auth called");
-            return (new PasswordAuthentication ("user", "passwordNotCheckedAnyway".toCharArray()));
+            count++;
+            System.out.println("Auth called");
+            return (new PasswordAuthentication("user", "passwordNotCheckedAnyway".toCharArray()));
         }
 
-        public int getCount () {
-            return (count);
+        public int getCount() {
+            return count;
         }
     }
 
 
-    static void read (InputStream is) throws IOException {
+    static void read(InputStream is) throws IOException {
         int c;
-        System.out.println ("reading");
+        System.out.println("reading");
         while ((c=is.read()) != -1) {
-            System.out.write (c);
+            System.out.write(c);
         }
-        System.out.println ("");
-        System.out.println ("finished reading");
+        System.out.println("");
+        System.out.println("finished reading");
     }
 
-    public static void main (String args[]) throws Exception {
-        MyAuthenticator auth = new MyAuthenticator ();
-        Authenticator.setDefault (auth);
-        ServerSocket ss = new ServerSocket (0);
-        int port = ss.getLocalPort ();
-        BasicServer server = new BasicServer (ss);
+    public static void main(String args[]) throws Exception {
+        MyAuthenticator auth = new MyAuthenticator();
+        Authenticator.setDefault(auth);
+        InetAddress loopback = InetAddress.getLoopbackAddress();
+        ServerSocket ss = new ServerSocket();
+        ss.bind(new InetSocketAddress(loopback, 0));
+        int port = ss.getLocalPort();
+        BasicServer server = new BasicServer(ss);
         synchronized (server) {
             server.start();
             System.out.println ("client 1");
-            URL url = new URL ("http://localhost:"+port);
-            URLConnection urlc = url.openConnection ();
-            InputStream is = urlc.getInputStream ();
-            read (is);
+            URL url = URIBuilder.newBuilder()
+                .scheme("http")
+                .loopback()
+                .port(port)
+                .toURL();
+            URLConnection urlc = url.openConnection(Proxy.NO_PROXY);
+            InputStream is = urlc.getInputStream();
+            read(is);
             is.close();
         }
     }
--- a/test/jdk/java/net/Authenticator/B4678055.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/jdk/java/net/Authenticator/B4678055.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -25,14 +25,16 @@
  * @test
  * @bug 4678055
  * @modules java.base/sun.net.www
- * @library ../../../sun/net/www/httptest/
+ * @library ../../../sun/net/www/httptest/ /test/lib
  * @build HttpCallback TestHttpServer ClosedChannelList HttpTransaction
- * @run main B4678055
+ * @run main/othervm B4678055
+ * @run main/othervm -Djava.net.preferIPv6Addresses=true B4678055
  * @summary Basic Authentication fails with multiple realms
  */
 
 import java.io.*;
 import java.net.*;
+import jdk.test.lib.net.URIBuilder;
 
 public class B4678055 implements HttpCallback {
 
@@ -125,12 +127,21 @@
     public static void main (String[] args) throws Exception {
         MyAuthenticator auth = new MyAuthenticator ();
         Authenticator.setDefault (auth);
+        ProxySelector.setDefault(ProxySelector.of(null)); // no proxy
         try {
-            server = new TestHttpServer (new B4678055(), 1, 10, 0);
-            System.out.println ("Server: listening on port: " + server.getLocalPort());
-            client ("http://localhost:"+server.getLocalPort()+"/d1/foo.html");
-            client ("http://localhost:"+server.getLocalPort()+"/d2/foo.html");
-            client ("http://localhost:"+server.getLocalPort()+"/d2/foo.html");
+            InetAddress loopback = InetAddress.getLoopbackAddress();
+            server = new TestHttpServer(new B4678055(), 1, 10, loopback, 0);
+            String serverURL = URIBuilder.newBuilder()
+                .scheme("http")
+                .loopback()
+                .port(server.getLocalPort())
+                .path("/")
+                .build()
+                .toString();
+            System.out.println("Server: listening at: " + serverURL);
+            client(serverURL + "d1/foo.html");
+            client(serverURL + "d2/foo.html");
+            client(serverURL + "d2/foo.html");
         } catch (Exception e) {
             if (server != null) {
                 server.terminate();
--- a/test/jdk/java/net/Authenticator/B4759514.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/jdk/java/net/Authenticator/B4759514.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -25,14 +25,16 @@
  * @test
  * @bug 4759514
  * @modules java.base/sun.net.www
- * @library ../../../sun/net/www/httptest/
+ * @library ../../../sun/net/www/httptest/ /test/lib
  * @build HttpCallback TestHttpServer ClosedChannelList HttpTransaction
- * @run main B4759514
+ * @run main/othervm B4759514
+ * @run main/othervm -Djava.net.preferIPv6Addresses=true B4759514
  * @summary Digest Authentication is erroniously quoting the nc value, contrary to RFC 2617
  */
 
 import java.io.*;
 import java.net.*;
+import jdk.test.lib.net.URIBuilder;
 
 public class B4759514 implements HttpCallback {
 
@@ -97,10 +99,19 @@
     public static void main (String[] args) throws Exception {
         MyAuthenticator auth = new MyAuthenticator ();
         Authenticator.setDefault (auth);
+        ProxySelector.setDefault(ProxySelector.of(null)); // no proxy
         try {
-            server = new TestHttpServer (new B4759514(), 1, 10, 0);
-            System.out.println ("Server: listening on port: " + server.getLocalPort());
-            client ("http://localhost:"+server.getLocalPort()+"/d1/foo.html");
+            InetAddress loopback = InetAddress.getLoopbackAddress();
+            server = new TestHttpServer (new B4759514(), 1, 10, loopback, 0);
+            String serverURL = URIBuilder.newBuilder()
+                .scheme("http")
+                .loopback()
+                .port(server.getLocalPort())
+                .path("/")
+                .build()
+                .toString();
+            System.out.println("Server: listening at: " + serverURL);
+            client(serverURL + "d1/foo.html");
         } catch (Exception e) {
             if (server != null) {
                 server.terminate();
--- a/test/jdk/java/net/Authenticator/B4769350.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/jdk/java/net/Authenticator/B4769350.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -27,6 +27,8 @@
  * @modules jdk.httpserver
  * @run main/othervm B4769350 server
  * @run main/othervm B4769350 proxy
+ * @run main/othervm -Djava.net.preferIPv6Addresses=true B4769350 server
+ * @run main/othervm -Djava.net.preferIPv6Addresses=true B4769350 proxy
  * @summary proxy authentication username and password caching only works in serial case
  * Run in othervm since the test sets system properties that are read by the
  * networking stack and cached when the HTTP handler is invoked, and previous
@@ -99,7 +101,8 @@
         }
 
         public void startServer() {
-            InetSocketAddress addr = new InetSocketAddress(0);
+            InetAddress loopback = InetAddress.getLoopbackAddress();
+            InetSocketAddress addr = new InetSocketAddress(loopback, 0);
 
             try {
                 server = HttpServer.create(addr, 0);
@@ -456,17 +459,28 @@
             System.out.println ("Server: listening on port: "
                     + server.getPort());
             if (proxy) {
-                System.setProperty ("http.proxyHost", "localhost");
+                System.setProperty ("http.proxyHost",
+                        InetAddress.getLoopbackAddress().getHostAddress());
                 System.setProperty ("http.proxyPort",
                         Integer.toString(server.getPort()));
                 doProxyTests ("www.foo.com", server);
             } else {
-                doServerTests ("localhost:"+server.getPort(), server);
+                ProxySelector.setDefault(ProxySelector.of(null));
+                doServerTests (authority(server.getPort()), server);
             }
         }
 
     }
 
+    static String authority(int port) {
+        InetAddress loopback = InetAddress.getLoopbackAddress();
+        String hoststr = loopback.getHostAddress();
+        if (hoststr.indexOf(':') > -1) {
+            hoststr = "[" + hoststr + "]";
+        }
+        return hoststr + ":" + port;
+    }
+
     public static void except (String s, Server server) {
         server.close();
         throw new RuntimeException (s);
@@ -496,4 +510,3 @@
         }
     }
 }
-
--- a/test/jdk/java/net/Authenticator/B4921848.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/jdk/java/net/Authenticator/B4921848.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -25,14 +25,17 @@
  * @test
  * @bug 4921848
  * @modules java.base/sun.net.www
- * @library ../../../sun/net/www/httptest/
+ * @library ../../../sun/net/www/httptest/ /test/lib
  * @build HttpCallback TestHttpServer ClosedChannelList HttpTransaction
  * @run main/othervm -Dhttp.auth.preference=basic B4921848
+ * @run main/othervm -Djava.net.preferIPv6Addresses=true
+ *                   -Dhttp.auth.preference=basic B4921848
  * @summary Allow user control over authentication schemes
  */
 
 import java.io.*;
 import java.net.*;
+import jdk.test.lib.net.URIBuilder;
 
 public class B4921848 implements HttpCallback {
 
@@ -88,10 +91,19 @@
     public static void main (String[] args) throws Exception {
         MyAuthenticator auth = new MyAuthenticator ();
         Authenticator.setDefault (auth);
+        ProxySelector.setDefault(ProxySelector.of(null)); // no proxy
         try {
-            server = new TestHttpServer (new B4921848(), 1, 10, 0);
-            System.out.println ("Server started: listening on port: " + server.getLocalPort());
-            client ("http://localhost:"+server.getLocalPort()+"/d1/d2/d3/foo.html");
+            InetAddress loopback = InetAddress.getLoopbackAddress();
+            server = new TestHttpServer (new B4921848(), 1, 10, loopback, 0);
+            String serverURL = URIBuilder.newBuilder()
+                .scheme("http")
+                .loopback()
+                .port(server.getLocalPort())
+                .path("/")
+                .build()
+                .toString();
+            System.out.println("Server: listening at: " + serverURL);
+            client(serverURL + "d1/d2/d3/foo.html");
         } catch (Exception e) {
             if (server != null) {
                 server.terminate();
--- a/test/jdk/java/net/Authenticator/B4933582.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/jdk/java/net/Authenticator/B4933582.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -21,10 +21,15 @@
  * questions.
  */
 
+// Note: this test saves a cache.ser file in the scratch directory,
+//       which the cache implementation will load its configuration
+//       from. Therefore adding several @run lines does not work.
+
 /*
  * @test
  * @bug 4933582
- * @library ../../../sun/net/www/httptest
+ * @key intermittent
+ * @library ../../../sun/net/www/httptest /test/lib
  * @modules java.base/sun.net.www
  *          java.base/sun.net.www.protocol.http
  * @build HttpCallback HttpTransaction TestHttpServer B4933582
@@ -34,6 +39,7 @@
 import java.net.*;
 import java.util.*;
 import sun.net.www.protocol.http.*;
+import jdk.test.lib.net.URIBuilder;
 
 public class B4933582 implements HttpCallback {
 
@@ -133,12 +139,21 @@
     public static void main (String[] args) throws Exception {
         MyAuthenticator auth = new MyAuthenticator ();
         Authenticator.setDefault (auth);
+        ProxySelector.setDefault(ProxySelector.of(null)); // no proxy
+        InetAddress loopback = InetAddress.getLoopbackAddress();
         CacheImpl cache;
         try {
-            server = new TestHttpServer (new B4933582(), 1, 10, 0);
+            server = new TestHttpServer(new B4933582(), 1, 10, loopback, 0);
             cache = new CacheImpl (server.getLocalPort());
             AuthCacheValue.setAuthCache (cache);
-            client ("http://localhost:"+server.getLocalPort()+"/d1/foo.html");
+            String serverURL = URIBuilder.newBuilder()
+                .scheme("http")
+                .loopback()
+                .port(server.getLocalPort())
+                .path("/")
+                .build()
+                .toString();
+            client(serverURL + "d1/foo.html");
         } finally {
             if (server != null) {
                 server.terminate();
@@ -157,7 +172,7 @@
         while (true) {
             try {
                 server = new TestHttpServer(new B4933582(), 1, 10,
-                        cache.getPort());
+                                            loopback, cache.getPort());
                 break;
             } catch (BindException e) {
                 if (retries++ < 5) {
@@ -173,7 +188,14 @@
 
         try {
             AuthCacheValue.setAuthCache(cache);
-            client("http://localhost:" + server.getLocalPort() + "/d1/foo.html");
+            String serverURL = URIBuilder.newBuilder()
+                .scheme("http")
+                .loopback()
+                .port(server.getLocalPort())
+                .path("/")
+                .build()
+                .toString();
+            client(serverURL + "d1/foo.html");
         } finally {
             if (server != null) {
                 server.terminate();
--- a/test/jdk/java/net/Authenticator/B4962064.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/jdk/java/net/Authenticator/B4962064.java	Fri Jun 21 09:05:45 2019 -0700
@@ -28,6 +28,7 @@
  * @library ../../../sun/net/www/httptest/
  * @build HttpCallback TestHttpServer ClosedChannelList HttpTransaction
  * @run main/othervm B4962064
+ * @run main/othervm -Djava.net.preferIPv6Addresses=true B4962064
  * @summary Extend Authenticator to provide access to request URI and server/proxy
  */
 
@@ -91,18 +92,24 @@
 
     public static void main (String[] args) throws Exception {
         try {
-            server = new TestHttpServer (new B4962064(), 1, 10, 0);
+            InetAddress address = InetAddress.getLoopbackAddress();
+            InetAddress resolved = InetAddress.getByName(address.getHostName());
+            System.out.println("Lookup: " + address + " -> \""
+                               + address.getHostName() + "\" -> "
+                               + resolved);
+            server = new TestHttpServer (new B4962064(), 1, 10, address, 0);
             int port = server.getLocalPort();
-            System.setProperty ("http.proxyHost", "localhost");
+            String proxyHost = address.equals(resolved)
+                ? address.getHostName()
+                : address.getHostAddress();
+            System.setProperty ("http.proxyHost", proxyHost);
             System.setProperty ("http.proxyPort", Integer.toString (port));
             MyAuthenticator auth = new MyAuthenticator ();
             Authenticator.setDefault (auth);
             System.out.println ("Server started: listening on port: " + port);
-            //String s = new String ("http://localhost:"+port+"/d1/d2/d3/foo.html");
             String s = new String ("http://foo.com/d1/d2/d3/foo.html");
             urlsave = new URL (s);
             client (s);
-            //s = new String ("http://localhost:"+port+"/dr/d3/foo.html");
             s = new String ("http://bar.com/dr/d3/foo.html");
             urlsave = new URL (s);
             client (s);
--- a/test/jdk/java/net/Authenticator/B6870935.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/jdk/java/net/Authenticator/B6870935.java	Fri Jun 21 09:05:45 2019 -0700
@@ -26,6 +26,8 @@
  * @bug 6870935
  * @modules java.base/sun.net.www
  * @run main/othervm -Dhttp.nonProxyHosts="" -Dhttp.auth.digest.validateProxy=true B6870935
+ * @run main/othervm -Djava.net.preferIPv6Addresses=true
+ *                   -Dhttp.nonProxyHosts="" -Dhttp.auth.digest.validateProxy=true B6870935
  */
 
 import java.io.*;
@@ -80,18 +82,21 @@
 
         public void run () {
             try {
+                System.out.println("Server started");
                 Socket s1 = s.accept ();
                 is = s1.getInputStream ();
                 os = s1.getOutputStream ();
                 is.read ();
                 os.write (reply1.getBytes());
+                System.out.println("First response sent");
                 Thread.sleep (2000);
                 s1.close ();
+                System.out.println("First connection closed");
 
                 s1 = s.accept ();
                 is = s1.getInputStream ();
                 os = s1.getOutputStream ();
-                is.read ();
+                // is.read ();
                 // need to get the cnonce out of the response
                 MessageHeader header = new MessageHeader (is);
                 String raw = header.findValue ("Proxy-Authorization");
@@ -115,12 +120,16 @@
                         cnstring, passwd, username
                 ) +"\r\n";
                 os.write (reply.getBytes());
+                System.out.println("Second response sent");
                 Thread.sleep (2000);
                 s1.close ();
+                System.out.println("Second connection closed");
             }
             catch (Exception e) {
                 System.out.println (e);
                 e.printStackTrace();
+            } finally {
+                System.out.println("Server finished");
             }
         }
 
@@ -225,8 +234,17 @@
         DigestServer server;
         ServerSocket sock;
 
+        InetAddress address = InetAddress.getLoopbackAddress();
+        InetAddress resolved = InetAddress.getByName(address.getHostName());
+        System.out.println("Lookup: "
+                            + address + " -> \"" + address.getHostName() + "\" -> "
+                            + resolved);
+        String proxyHost = address.equals(resolved)
+            ? address.getHostName()
+            : address.getHostAddress();
         try {
-            sock = new ServerSocket (0);
+            sock = new ServerSocket();
+            sock.bind(new InetSocketAddress(address, 0));
             port = sock.getLocalPort ();
         }
         catch (Exception e) {
@@ -238,12 +256,12 @@
         server.start ();
 
         try  {
-
             Authenticator.setDefault (new MyAuthenticator ());
-            SocketAddress addr = new InetSocketAddress (InetAddress.getLoopbackAddress(), port);
+            SocketAddress addr = InetSocketAddress.createUnresolved(proxyHost, port);
             Proxy proxy = new Proxy (Proxy.Type.HTTP, addr);
             String s = "http://www.ibm.com";
             URL url = new URL(s);
+            System.out.println("opening connection through proxy: " + addr);
             java.net.URLConnection conURL =  url.openConnection(proxy);
 
             InputStream in = conURL.getInputStream();
@@ -255,6 +273,9 @@
         catch(IOException e) {
             e.printStackTrace();
             error = true;
+            sock.close();
+        } finally {
+            server.join();
         }
         if (error) {
             throw new RuntimeException ("Error in test");
--- a/test/jdk/java/net/Authenticator/B8034170.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/jdk/java/net/Authenticator/B8034170.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 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
@@ -24,13 +24,16 @@
 import java.io.*;
 import java.net.*;
 import java.util.*;
+import jdk.test.lib.net.URIBuilder;
 
 /**
  * @test
  * @bug 8034170
  * @summary Digest authentication interop issue
+ * @library /test/lib
  * @run main/othervm B8034170 unquoted
  * @run main/othervm -Dhttp.auth.digest.quoteParameters=true B8034170 quoted
+ * @run main/othervm -Djava.net.preferIPv6Addresses=true B8034170 unquoted
  */
 
 public class B8034170 {
@@ -176,14 +179,21 @@
 
         MyAuthenticator3 auth = new MyAuthenticator3 ();
         Authenticator.setDefault (auth);
-        ServerSocket ss = new ServerSocket (0);
+        InetAddress loopback = InetAddress.getLoopbackAddress();
+        ServerSocket ss = new ServerSocket();
+        ss.bind(new InetSocketAddress(loopback, 0));
         int port = ss.getLocalPort ();
         BasicServer server = new BasicServer (ss);
         synchronized (server) {
             server.start();
             System.out.println ("client 1");
-            URL url = new URL ("http://localhost:"+port+"/d1/d2/d3/foo.html");
-            URLConnection urlc = url.openConnection ();
+            URL url =  URIBuilder.newBuilder()
+                .scheme("http")
+                .loopback()
+                .port(port)
+                .path("/d1/d2/d3/foo.html")
+                .toURL();
+            URLConnection urlc = url.openConnection(Proxy.NO_PROXY);
             InputStream is = urlc.getInputStream ();
             read (is);
             is.close ();
--- a/test/jdk/java/net/Authenticator/BasicTest.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/jdk/java/net/Authenticator/BasicTest.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -24,11 +24,15 @@
 import java.io.*;
 import java.net.*;
 import java.util.*;
+import jdk.test.lib.net.URIBuilder;
 
 /**
  * @test
  * @bug 4474947
  * @summary  fix for bug #4244472 is incomplete - HTTP authorization still needs work
+ * @library /test/lib
+ * @run main/othervm BasicTest
+ * @run main/othervm -Djava.net.preferIPv6Addresses=true BasicTest
  */
 
 /*
@@ -151,19 +155,28 @@
     public static void main (String args[]) throws Exception {
         MyAuthenticator auth = new MyAuthenticator ();
         Authenticator.setDefault (auth);
-        ServerSocket ss = new ServerSocket (0);
+        InetAddress loopback = InetAddress.getLoopbackAddress();
+        ServerSocket ss = new ServerSocket();
+        ss.bind(new InetSocketAddress(loopback, 0));
         int port = ss.getLocalPort ();
         BasicServer server = new BasicServer (ss);
         synchronized (server) {
             server.start();
             System.out.println ("client 1");
-            URL url = new URL ("http://localhost:"+port+"/d1/d2/d3/foo.html");
-            URLConnection urlc = url.openConnection ();
+            String base = URIBuilder.newBuilder()
+                .scheme("http")
+                .loopback()
+                .port(port)
+                .path("/")
+                .build()
+                .toString();
+            URL url = new URL(base + "d1/d2/d3/foo.html");
+            URLConnection urlc = url.openConnection(Proxy.NO_PROXY);
             InputStream is = urlc.getInputStream ();
             read (is);
             System.out.println ("client 2");
-            url = new URL ("http://localhost:"+port+"/d1/foo.html");
-            urlc = url.openConnection ();
+            url = new URL(base + "d1/foo.html");
+            urlc = url.openConnection(Proxy.NO_PROXY);
             is = urlc.getInputStream ();
             read (is);
             server.wait ();
--- a/test/jdk/java/net/Authenticator/BasicTest3.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/jdk/java/net/Authenticator/BasicTest3.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -24,11 +24,15 @@
 import java.io.*;
 import java.net.*;
 import java.util.*;
+import jdk.test.lib.net.URIBuilder;
 
 /**
  * @test
  * @bug 4513440
  * @summary BasicAuthentication is zeroing out the given password
+ * @library /test/lib
+ * @run main/othervm BasicTest3
+ * @run main/othervm -Djava.net.preferIPv6Addresses=true BasicTest3
  */
 
 public class BasicTest3 {
@@ -130,14 +134,21 @@
     public static void main (String args[]) throws Exception {
         MyAuthenticator3 auth = new MyAuthenticator3 ();
         Authenticator.setDefault (auth);
-        ServerSocket ss = new ServerSocket (0);
+        InetAddress loopback = InetAddress.getLoopbackAddress();
+        ServerSocket ss = new ServerSocket();
+        ss.bind(new InetSocketAddress(loopback, 0));
         int port = ss.getLocalPort ();
         BasicServer3 server = new BasicServer3 (ss);
         synchronized (server) {
             server.start();
             System.out.println ("client 1");
-            URL url = new URL ("http://localhost:"+port+"/d1/d2/d3/foo.html");
-            URLConnection urlc = url.openConnection ();
+            URL url =  URIBuilder.newBuilder()
+                .scheme("http")
+                .loopback()
+                .port(port)
+                .path("/d1/d2/d3/foo.html")
+                .toURL();
+            URLConnection urlc = url.openConnection(Proxy.NO_PROXY);
             InputStream is = urlc.getInputStream ();
             read (is);
             is.close ();
--- a/test/jdk/java/net/Authenticator/BasicTest4.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/jdk/java/net/Authenticator/BasicTest4.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -24,11 +24,15 @@
 import java.io.*;
 import java.net.*;
 import java.util.*;
+import jdk.test.lib.net.URIBuilder;
 
 /**
  * @test
  * @bug 4623722
  * @summary  performance hit for Basic Authentication
+ * @library /test/lib
+ * @run main/othervm BasicTest4
+ * @run main/othervm -Djava.net.preferIPv6Addresses=true BasicTest4
  */
 
 public class BasicTest4 {
@@ -59,12 +63,17 @@
 
         static boolean checkFor (InputStream in, char[] seq) throws IOException {
             System.out.println ("checkfor");
+            StringBuilder message = new StringBuilder();
             try {
                 int i=0, count=0;
                 while (true) {
                     int c = in.read();
-                    if (c == -1)
+                    if (c == -1) {
+                        System.out.println(new String(seq) + " not found in \n<<"
+                                           + message + ">>");
                         return false;
+                    }
+                    message.append((char)c);
                     count++;
                     if (c == seq[i]) {
                         i++;
@@ -77,6 +86,7 @@
                 }
             }
             catch (SocketTimeoutException e) {
+                System.out.println("checkFor: " + e);
                 return false;
             }
         }
@@ -194,23 +204,33 @@
     public static void main (String args[]) throws Exception {
         MyAuthenticator auth = new MyAuthenticator ();
         Authenticator.setDefault (auth);
-        ServerSocket ss = new ServerSocket (0);
+        InetAddress loopback = InetAddress.getLoopbackAddress();
+        ServerSocket ss = new ServerSocket();
+        ss.bind(new InetSocketAddress(loopback, 0));
         int port = ss.getLocalPort ();
         BasicServer server = new BasicServer (ss);
         synchronized (server) {
             server.start();
             System.out.println ("client 1");
-            URL url = new URL ("http://localhost:"+port+"/d1/d3/foo.html");
-            URLConnection urlc = url.openConnection ();
+            String base = URIBuilder.newBuilder()
+                .scheme("http")
+                .loopback()
+                .port(port)
+                .path("/d1/")
+                .build()
+                .toString();
+            System.out.println("Base URL: " + base);
+            URL url = new URL (base + "d3/foo.html");
+            URLConnection urlc = url.openConnection(Proxy.NO_PROXY);
             InputStream is = urlc.getInputStream ();
             read (is);
             System.out.println ("client 2");
-            url = new URL ("http://localhost:"+port+"/d1/d2/bar.html");
-            urlc = url.openConnection ();
+            url = new URL (base + "d2/bar.html");
+            urlc = url.openConnection(Proxy.NO_PROXY);
             is = urlc.getInputStream ();
             System.out.println ("client 3");
-            url = new URL ("http://localhost:"+port+"/d1/d4/foobar.html");
-            urlc = url.openConnection ();
+            url = new URL (base + "d4/foobar.html");
+            urlc = url.openConnection(Proxy.NO_PROXY);
             is = urlc.getInputStream ();
             read (is);
             server.wait ();
--- a/test/jdk/java/net/Authenticator/Deadlock.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/jdk/java/net/Authenticator/Deadlock.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 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
@@ -25,7 +25,10 @@
  * @test
  * @bug 6648001
  * @modules jdk.httpserver
+ * @library /test/lib
  * @run main/othervm/timeout=20 -ea:sun.net.www.protocol.http.AuthenticationInfo -Dhttp.auth.serializeRequests=true Deadlock
+ * @run main/othervm/timeout=20 -Djava.net.preferIPv6Addresses=true
+ *                              -ea:sun.net.www.protocol.http.AuthenticationInfo -Dhttp.auth.serializeRequests=true Deadlock
  * @summary  cancelling HTTP authentication causes deadlock
  */
 
@@ -34,8 +37,10 @@
 import java.io.InputStream;
 import java.io.IOException;
 import java.net.HttpURLConnection;
+import java.net.InetAddress;
 import java.net.InetSocketAddress;
 import java.net.PasswordAuthentication;
+import java.net.Proxy;
 import java.net.URL;
 import com.sun.net.httpserver.BasicAuthenticator;
 import com.sun.net.httpserver.Headers;
@@ -44,12 +49,14 @@
 import com.sun.net.httpserver.HttpHandler;
 import com.sun.net.httpserver.HttpPrincipal;
 import com.sun.net.httpserver.HttpServer;
+import jdk.test.lib.net.URIBuilder;
 
 public class Deadlock {
 
     public static void main (String[] args) throws Exception {
         Handler handler = new Handler();
-        InetSocketAddress addr = new InetSocketAddress (0);
+        InetAddress loopback = InetAddress.getLoopbackAddress();
+        InetSocketAddress addr = new InetSocketAddress (loopback, 0);
         HttpServer server = HttpServer.create(addr, 0);
         HttpContext ctx = server.createContext("/test", handler);
         BasicAuthenticator a = new BasicAuthenticator("foobar@test.realm") {
@@ -97,8 +104,13 @@
             URL url;
             HttpURLConnection urlc;
             try {
-                url = new URL("http://localhost:"+server.getAddress().getPort()+"/test/foo.html");
-                urlc = (HttpURLConnection)url.openConnection ();
+                url = URIBuilder.newBuilder()
+                    .scheme("http")
+                    .loopback()
+                    .port(server.getAddress().getPort())
+                    .path("/test/foo.html")
+                    .toURLUnchecked();
+                urlc = (HttpURLConnection)url.openConnection (Proxy.NO_PROXY);
             } catch (IOException e) {
                 error = true;
                 return;
--- a/test/jdk/java/net/CookieHandler/CookieHandlerTest.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/jdk/java/net/CookieHandler/CookieHandlerTest.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -24,7 +24,9 @@
 /* @test
  * @summary Unit test for java.net.CookieHandler
  * @bug 4696506
+ * @library /test/lib
  * @run main/othervm CookieHandlerTest
+ * @run main/othervm -Djava.net.preferIPv6Addresses=true CookieHandlerTest
  * @author Yingxian Wang
  */
 
@@ -34,6 +36,7 @@
 import java.net.*;
 import java.util.*;
 import java.io.*;
+import jdk.test.lib.net.URIBuilder;
 
 public class CookieHandlerTest implements Runnable {
     static Map<String,String> cookies;
@@ -92,15 +95,19 @@
     CookieHandlerTest() throws Exception {
 
         /* start the server */
-        ss = new ServerSocket(0);
+        InetAddress loopback = InetAddress.getLoopbackAddress();
+        ss = new ServerSocket();
+        ss.bind(new InetSocketAddress(loopback, 0));
         (new Thread(this)).start();
 
         /* establish http connection to server */
-        String uri = "http://localhost:" +
-                     Integer.toString(ss.getLocalPort());
-        URL url = new URL(uri);
+        URL url = URIBuilder.newBuilder()
+                    .scheme("http")
+                    .loopback()
+                    .port(ss.getLocalPort())
+                    .toURL();
 
-        HttpURLConnection http = (HttpURLConnection)url.openConnection();
+        HttpURLConnection http = (HttpURLConnection)url.openConnection(Proxy.NO_PROXY);
 
         int respCode = http.getResponseCode();
         http.disconnect();
--- a/test/jdk/java/net/CookieHandler/CookieManagerTest.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/jdk/java/net/CookieHandler/CookieManagerTest.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -57,8 +57,9 @@
         } catch (IOException x) {
             System.out.println("Debug: caught:" + x);
         }
-        System.out.println("Using: \"127.0.0.1\"");
-        return "127.0.0.1";
+        InetAddress loopback = InetAddress.getLoopbackAddress();
+        System.out.println("Using: \"" + loopback.getHostAddress() + "\"");
+        return loopback.getHostAddress();
     }
 
     public static void main(String[] args) throws Exception {
@@ -73,7 +74,7 @@
 
    public static void startHttpServer() throws IOException {
         httpTrans = new CookieTransactionHandler();
-        server = HttpServer.create(new InetSocketAddress(0), 0);
+        server = HttpServer.create(new InetSocketAddress(hostAddress, 0), 0);
         server.createContext("/", httpTrans);
         server.start();
     }
--- a/test/jdk/java/net/CookieHandler/EmptyCookieHeader.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/jdk/java/net/CookieHandler/EmptyCookieHeader.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -26,6 +26,9 @@
  * @bug 8015799
  * @modules jdk.httpserver
  * @summary HttpURLConnection.getHeaderFields() throws IllegalArgumentException
+ * @library /test/lib
+ * @run main EmptyCookieHeader
+ * @run main/othervm -Djava.net.preferIPv6Addresses=true EmptyCookieHeader
  */
 
 import com.sun.net.httpserver.*;
@@ -33,6 +36,7 @@
 import java.io.OutputStream;
 import java.net.*;
 import java.util.*;
+import jdk.test.lib.net.URIBuilder;
 
 public class EmptyCookieHeader {
 
@@ -43,11 +47,17 @@
     public void runTest() throws Exception {
         final CookieHandler oldHandler = CookieHandler.getDefault();
         CookieHandler.setDefault(new TestCookieHandler());
-        HttpServer s = HttpServer.create(new InetSocketAddress(0), 0);
+        InetAddress loopback = InetAddress.getLoopbackAddress();
+        HttpServer s = HttpServer.create(new InetSocketAddress(loopback, 0), 0);
         try {
             startServer(s);
-            URL url = new URL("http://localhost:" + s.getAddress().getPort() + "/");
-            HttpURLConnection c = (HttpURLConnection)url.openConnection();
+            URL url = URIBuilder.newBuilder()
+                    .scheme("http")
+                    .loopback()
+                    .port(s.getAddress().getPort())
+                    .path("/")
+                    .toURL();
+            HttpURLConnection c = (HttpURLConnection)url.openConnection(Proxy.NO_PROXY);
             c.getHeaderFields();
         } finally {
             CookieHandler.setDefault(oldHandler);
--- a/test/jdk/java/net/CookieHandler/LocalHostCookie.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/jdk/java/net/CookieHandler/LocalHostCookie.java	Fri Jun 21 09:05:45 2019 -0700
@@ -33,8 +33,11 @@
 /*
  * @test
  * @bug 7169142
+ * @key intermittent
  * @modules jdk.httpserver
- * @summary CookieHandler does not work with localhost
+ * @summary CookieHandler does not work with localhost. This requires
+ *    binding to the wildcard address and might fail intermittently
+ *    due to port reuse issues.
  * @run main/othervm LocalHostCookie
  */
 public class LocalHostCookie {
@@ -126,4 +129,3 @@
         }
     }
 }
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/net/Inet6Address/Scoping.java	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,196 @@
+/*
+ * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8216417
+ * @summary cleanup of IPv6 scope-id handling
+ * @library /test/lib
+ * @build jdk.test.lib.NetworkConfiguration
+ * @run main/othervm Scoping
+ */
+
+import java.io.IOException;
+import java.net.*;
+import java.nio.ByteBuffer;
+import java.nio.channels.DatagramChannel;
+import java.nio.channels.ServerSocketChannel;
+import java.nio.channels.SocketChannel;
+import java.util.Enumeration;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import jdk.test.lib.NetworkConfiguration;
+
+public class Scoping {
+
+    interface ThrowingConsumer<T> {
+        public void accept(T t) throws Exception;
+    }
+
+    static List<ThrowingConsumer<InetSocketAddress>> targets = List.of(
+        /* 0 */  (a) -> {Socket s = new Socket(); s.bind(a);s.close();},
+        /* 1 */  (a) -> {ServerSocket s = new ServerSocket(); s.bind(a);s.close();},
+        /* 2 */  (a) -> {DatagramSocket s = new DatagramSocket(null); s.bind(a); s.close();},
+        /* 3 */  (a) -> {MulticastSocket s = new MulticastSocket(null); s.bind(a); s.close();},
+        /* 4 */  (a) -> {SocketChannel s = SocketChannel.open(); s.bind(a);s.close();},
+        /* 5 */  (a) -> {ServerSocketChannel s = ServerSocketChannel.open(); s.bind(a);s.close();},
+        /* 6 */  (a) -> {DatagramChannel s = DatagramChannel.open(); s.bind(a); s.close();},
+        /* 7 */  (a) -> {SocketChannel s = SocketChannel.open(); s.socket().bind(a);s.close();},
+        /* 8 */  (a) -> {ServerSocketChannel s = ServerSocketChannel.open(); s.socket().bind(a);s.close();},
+        /* 9 */  (a) -> {DatagramChannel s = DatagramChannel.open(); s.socket().bind(a); s.close();},
+        /* 10 */ (a) -> {socketTest(a);},
+        /* 11 */ (a) -> {dgSocketTest(a, false);},
+        /* 12 */ (a) -> {dgSocketTest(a, true);},
+        /* 13 */ (a) -> {dgChannelTest(a, false);},
+        /* 14 */ (a) -> {dgChannelTest(a, true);}
+    );
+
+    static List<Inet6Address> getLinkLocalAddrs() throws IOException {
+        return NetworkConfiguration.probe()
+                   .ip6Addresses()
+                   .filter(Inet6Address::isLinkLocalAddress)
+                   .collect(Collectors.toList());
+    }
+
+    static void compare(InetSocketAddress a, InetSocketAddress b) {
+        Inet6Address a1 = (Inet6Address)a.getAddress();
+        Inet6Address b1 = (Inet6Address)b.getAddress();
+        compare (a1, b1);
+    }
+
+    static void compare(InetAddress a, InetAddress b) {
+        Inet6Address a1 = (Inet6Address)a;
+        Inet6Address b1 = (Inet6Address)b;
+        if (!a1.equals(b1)) {
+            System.out.printf("%s != %s\n", a1, b1);
+            throw new RuntimeException("Addresses not the same");
+        }
+
+        if (!a1.getHostAddress().equals(b1.getHostAddress())) {
+            System.out.printf("%s != %s\n", a1, b1);
+            if (a1.getScopeId() != b1.getScopeId())
+                throw new RuntimeException("Scope ids not the same");
+        }
+    }
+
+    static void socketTest(InetSocketAddress a) throws Exception {
+        System.out.printf("socketTest: address %s\n", a);
+        try (ServerSocket server = new ServerSocket(0, 5, a.getAddress())) {
+            InetAddress saddr = server.getInetAddress();
+            int port = server.getLocalPort();
+            Socket client = new Socket(saddr, port);
+            compare(client.getInetAddress(), saddr);
+            try {
+                client.close();
+            } catch (IOException e) {}
+        }
+    }
+
+    static void dgSocketTest(InetSocketAddress a, boolean connect) throws Exception {
+        try (DatagramSocket s = new DatagramSocket(null)) {
+            System.out.println("dgSocketTest: " + a);
+            s.bind(a);
+            String t = "Hello world";
+            DatagramPacket rx = new DatagramPacket(new byte[128], 128);
+            int port = s.getLocalPort();
+            InetSocketAddress dest = new InetSocketAddress(a.getAddress(), port);
+            DatagramPacket tx = new DatagramPacket(t.getBytes("ISO8859_1"), t.length(), dest);
+            if (connect) {
+                s.connect(dest);
+                System.out.println("dgSocketTest: connect remote addr = " + s.getRemoteSocketAddress());
+                compare(a, (InetSocketAddress)s.getRemoteSocketAddress());
+            }
+            s.send(tx);
+            s.receive(rx);
+            String t1 = new String(rx.getData(), rx.getOffset(), rx.getLength(), "ISO8859_1");
+            if (!t1.equals(t))
+                throw new RuntimeException("Packets not equal");
+        }
+    }
+
+    static void dgChannelTest(InetSocketAddress a, boolean connect) throws Exception {
+        try (DatagramChannel s = DatagramChannel.open()) {
+            System.out.println("dgChannelTest: " + a);
+            s.bind(a);
+            String t = "Hello world";
+            ByteBuffer rx = ByteBuffer.allocate(128);
+            int port = ((InetSocketAddress)s.getLocalAddress()).getPort();
+            InetSocketAddress dest = new InetSocketAddress(a.getAddress(), port);
+            ByteBuffer tx = ByteBuffer.wrap(t.getBytes("ISO8859_1"));
+            if (connect) {
+                s.connect(dest);
+                System.out.println("dgChannelTest: connect remote addr = " + s.getRemoteAddress());
+                compare(a, (InetSocketAddress)s.getRemoteAddress());
+            }
+            s.send(tx, dest);
+            s.receive(rx);
+            rx.flip();
+            String t1 = new String(rx.array(), 0, rx.limit(), "ISO8859_1");
+            System.out.printf("rx : %s, data: %s\n", rx, t1);
+            if (!t1.equals(t))
+                throw new RuntimeException("Packets not equal");
+        }
+    }
+
+    static Inet6Address stripScope(Inet6Address address) {
+        byte[] bytes = address.getAddress();
+        InetAddress result = null;
+        try {
+            result = InetAddress.getByAddress(bytes);
+        } catch (UnknownHostException e) {
+            assert false;
+        }
+        return (Inet6Address)result;
+    }
+
+    public static void main(String[] args) throws Exception {
+        for (Inet6Address address : getLinkLocalAddrs()) {
+            Inet6Address stripped = stripScope(address);
+            InetSocketAddress s1 = new InetSocketAddress(address, 0);
+            InetSocketAddress s2 = new InetSocketAddress(stripped, 0);
+            System.out.println("Trying: " + address);
+            int count = 0, success = 0;
+            for (ThrowingConsumer<InetSocketAddress> target : targets) {
+                try {
+                    target.accept(s1);
+                    System.out.println("target " + count + " OK");
+                    // if that succeeds try s2 (the actual test)
+                    try {
+                        target.accept(s2);
+                        success++;
+                    } catch (IOException ee) {
+                        String msg = "Failed: " + s2.toString() + "count: " + Integer.toString(count);
+                        throw new RuntimeException (msg);
+                    }
+                } catch (IOException e) {
+                    System.out.println(e.getMessage());
+                    // OK
+                }
+                count++;
+            }
+            System.out.println("Succeeded with " + success + " binds");
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/net/MulticastSocket/PromiscuousIPv6.java	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,185 @@
+/*
+ * 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.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+
+/*
+ * @test
+ * @bug 8215294
+ * @requires os.family == "linux"
+ * @library /test/lib
+ * @build jdk.test.lib.NetworkConfiguration
+ *        PromiscuousIPv6
+ * @run main/othervm PromiscuousIPv6
+ * @key randomness
+ */
+
+import java.io.IOException;
+import java.net.DatagramPacket;
+import java.net.DatagramSocket;
+import java.net.InetAddress;
+import java.net.Inet6Address;
+import java.net.InetSocketAddress;
+import java.net.MulticastSocket;
+import java.net.NetworkInterface;
+import java.net.SocketTimeoutException;
+import java.net.StandardSocketOptions;
+import java.util.List;
+import java.util.Random;
+import jdk.test.lib.NetworkConfiguration;
+import jtreg.SkippedException;
+import static java.lang.System.out;
+import static java.nio.charset.StandardCharsets.UTF_8;
+import static java.util.stream.Collectors.toList;
+
+/*
+ * This test was created as a clone of the Promiscuous test and adapted for
+ * IPv6 node-local and link-local multicast addresses on Linux.
+ */
+public class PromiscuousIPv6 {
+
+    static final Random rand = new Random();
+
+    static final int TIMEOUT =  5 * 1000; // 5 secs
+
+    static int sendDatagram(NetworkInterface nif, InetAddress group, int port)
+        throws IOException
+    {
+        try (MulticastSocket mc = new MulticastSocket()) {
+            mc.setOption(StandardSocketOptions.IP_MULTICAST_IF, nif);
+
+            int id = rand.nextInt();
+            byte[] msg = Integer.toString(id).getBytes(UTF_8);
+            DatagramPacket p = new DatagramPacket(msg, msg.length);
+            p.setAddress(group);
+            p.setPort(port);
+
+            out.printf("Sending datagram to: %s/%d\n", group, port);
+            mc.send(p);
+            return id;
+        }
+    }
+
+    static void receiveDatagram(DatagramSocket mc, boolean datagramExpected, int id)
+        throws IOException
+    {
+        byte[] ba = new byte[100];
+        DatagramPacket p = new DatagramPacket(ba, ba.length);
+        try {
+            mc.receive(p);
+            int recvId = Integer.parseInt(
+                    new String(p.getData(), 0, p.getLength(), UTF_8));
+            if (datagramExpected) {
+                if (recvId != id)
+                    throw new RuntimeException("Unexpected id, got " + recvId
+                                                       + ", expected: " + id);
+                out.printf("Received message as expected, %s\n", p.getAddress());
+            } else {
+                throw new RuntimeException("Unexpected message received, "
+                                                   + p.getAddress());
+            }
+        } catch (SocketTimeoutException e) {
+            if (datagramExpected)
+                throw new RuntimeException("Expected message not received, "
+                                                   + e.getMessage());
+            else
+                out.printf("Message not received, as expected\n");
+        }
+    }
+
+    static void test(NetworkInterface nif, InetAddress group1, InetAddress group2)
+        throws IOException
+    {
+        // Bind addresses should include the same network interface / scope, so
+        // as to not reply on the default route when there are multiple interfaces
+        InetAddress bindAddr1 = Inet6Address.getByAddress(null, group1.getAddress(), nif);
+        InetAddress bindAddr2 = Inet6Address.getByAddress(null, group2.getAddress(), nif);
+
+        try (MulticastSocket mc1 = new MulticastSocket(new InetSocketAddress(bindAddr1, 0));
+             MulticastSocket mc2 = new MulticastSocket(new InetSocketAddress(bindAddr2, mc1.getLocalPort()))) {
+
+            final int port = mc1.getLocalPort();
+            out.printf("Using port: %d\n", port);
+
+            mc1.setSoTimeout(TIMEOUT);
+            mc2.setSoTimeout(TIMEOUT);
+
+            mc1.joinGroup(new InetSocketAddress(group1, 0), nif);
+            out.printf("mc1 joined the MC group: %s\n", group1);
+            mc2.joinGroup(new InetSocketAddress(group2, 0), nif);
+            out.printf("mc2 joined the MC group: %s\n", group2);
+
+            out.printf("Sending datagram to: %s/%d\n", group1, port);
+            int id = sendDatagram(nif, group1, port);
+
+            // the packet should be received by mc1 only
+            receiveDatagram(mc1, true, id);
+            receiveDatagram(mc2, false, 0);
+
+
+            out.printf("Sending datagram to: %s/%d\n", group2, port);
+            id = sendDatagram(nif, group2, port);
+
+            // the packet should be received by mc2 only
+            receiveDatagram(mc2, true, id);
+            receiveDatagram(mc1, false, 0);
+
+            mc1.leaveGroup(new InetSocketAddress(group1, 0), nif);
+            mc2.leaveGroup(new InetSocketAddress(group2, 0), nif);
+        }
+    }
+
+    public static void main(String args[]) throws IOException {
+        String os = System.getProperty("os.name");
+
+        if (!os.equals("Linux")) {
+            throw new SkippedException("This test should be run only on Linux");
+        } else {
+            String osVersion = System.getProperty("os.version");
+            String prefix = "3.10.0";
+            if (osVersion.startsWith(prefix)) {
+                throw new SkippedException(
+                        String.format("The behavior under test is known NOT to work on '%s' kernels", prefix));
+            }
+        }
+
+        NetworkConfiguration.printSystemConfiguration(System.out);
+        List<NetworkInterface> nifs = NetworkConfiguration.probe()
+              .ip6MulticastInterfaces()
+              .collect(toList());
+
+        if (nifs.size() == 0) {
+            throw new SkippedException(
+                 "No IPv6 interfaces that support multicast found");
+        }
+
+        InetAddress interfaceLocal1 = InetAddress.getByName("ff11::3.4.5.6");
+        InetAddress interfaceLocal2 = InetAddress.getByName("ff11::5.6.7.8");
+
+        InetAddress linkLocal1 = InetAddress.getByName("ff12::4.5.6.7");
+        InetAddress linkLocal2 = InetAddress.getByName("ff12::7.8.9.10");
+
+        for (NetworkInterface nif : nifs) {
+            test(nif, interfaceLocal1, interfaceLocal2);
+            test(nif, linkLocal1, linkLocal2);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/net/httpclient/BodySubscribersTest.java	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,159 @@
+/*
+ * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @summary Basic test for the standard BodySubscribers default behavior
+ * @bug 8225583
+ * @run testng BodySubscribersTest
+ */
+
+import java.net.http.HttpResponse.BodySubscriber;
+import java.nio.ByteBuffer;
+import java.nio.file.Path;
+import java.util.List;
+import java.util.concurrent.Flow;
+import java.util.function.Supplier;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import static java.lang.System.out;
+import static java.net.http.HttpResponse.BodySubscribers.*;
+import static java.nio.charset.StandardCharsets.UTF_8;
+import static java.nio.file.StandardOpenOption.CREATE;
+import static org.testng.Assert.assertTrue;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.expectThrows;
+import static org.testng.Assert.fail;
+
+public class BodySubscribersTest {
+
+    static final Class<NullPointerException> NPE = NullPointerException.class;
+
+    // Supplier of BodySubscriber<?>, with a descriptive name
+    static class BSSupplier implements Supplier<BodySubscriber<?>> {
+        private final Supplier<BodySubscriber<?>> supplier;
+        private final String name;
+        private BSSupplier(Supplier<BodySubscriber<?>> supplier, String name) {
+            this.supplier = supplier;
+            this.name = name;
+        }
+        static BSSupplier create(String name, Supplier<BodySubscriber<?>> supplier) {
+            return new BSSupplier(supplier, name);
+        }
+        @Override public BodySubscriber<?> get() { return supplier.get(); }
+        @Override public String toString() { return name; }
+    }
+
+    static class LineSubscriber implements Flow.Subscriber<String> {
+        @Override public void onSubscribe(Flow.Subscription subscription) {  }
+        @Override public void onNext(String item) { fail(); }
+        @Override public void onError(Throwable throwable) { fail(); }
+        @Override public void onComplete() { fail(); }
+    }
+
+    static class BBSubscriber implements Flow.Subscriber<List<ByteBuffer>> {
+        @Override public void onSubscribe(Flow.Subscription subscription) {  }
+        @Override public void onNext(List<ByteBuffer> item) { fail(); }
+        @Override public void onError(Throwable throwable) { fail(); }
+        @Override public void onComplete() { fail(); }
+    }
+
+    @DataProvider(name = "bodySubscriberSuppliers")
+    public Object[][] bodySubscriberSuppliers() { ;
+        List<Supplier<BodySubscriber<?>>> list = List.of(
+            BSSupplier.create("ofByteArray",   () -> ofByteArray()),
+            BSSupplier.create("ofInputStream", () -> ofInputStream()),
+            BSSupplier.create("ofBAConsumer",  () -> ofByteArrayConsumer(ba -> { })),
+            BSSupplier.create("ofLines",       () -> ofLines(UTF_8)),
+            BSSupplier.create("ofPublisher",   () -> ofPublisher()),
+            BSSupplier.create("ofFile",        () -> ofFile(Path.of("f"))),
+            BSSupplier.create("ofFile-opts)",  () -> ofFile(Path.of("f"), CREATE)),
+            BSSupplier.create("ofString",      () -> ofString(UTF_8)),
+            BSSupplier.create("buffering",     () -> buffering(ofByteArray(), 10)),
+            BSSupplier.create("discarding",    () -> discarding()),
+            BSSupplier.create("mapping",       () -> mapping(ofString(UTF_8), s -> s)),
+            BSSupplier.create("replacing",     () -> replacing("hello")),
+            BSSupplier.create("fromSubscriber-1",     () -> fromSubscriber(new BBSubscriber())),
+            BSSupplier.create("fromSubscriber-2",     () -> fromSubscriber(new BBSubscriber(), s -> s)),
+            BSSupplier.create("fromLineSubscriber-1", () -> fromLineSubscriber(new LineSubscriber())),
+            BSSupplier.create("fromLineSubscriber-2", () -> fromLineSubscriber(new LineSubscriber(), s -> s, UTF_8, ","))
+        );
+
+        return list.stream().map(x -> new Object[] { x }).toArray(Object[][]::new);
+    }
+
+    @Test(dataProvider = "bodySubscriberSuppliers")
+    void nulls(Supplier<BodySubscriber<?>> bodySubscriberSupplier) {
+        BodySubscriber<?> bodySubscriber = bodySubscriberSupplier.get();
+        boolean subscribed = false;
+
+        do {
+            assertNotNull(bodySubscriber.getBody());
+            assertNotNull(bodySubscriber.getBody());
+            assertNotNull(bodySubscriber.getBody());
+            expectThrows(NPE, () -> bodySubscriber.onSubscribe(null));
+            expectThrows(NPE, () -> bodySubscriber.onSubscribe(null));
+            expectThrows(NPE, () -> bodySubscriber.onSubscribe(null));
+
+            expectThrows(NPE, () -> bodySubscriber.onNext(null));
+            expectThrows(NPE, () -> bodySubscriber.onNext(null));
+            expectThrows(NPE, () -> bodySubscriber.onNext(null));
+            expectThrows(NPE, () -> bodySubscriber.onNext(null));
+
+            expectThrows(NPE, () -> bodySubscriber.onError(null));
+            expectThrows(NPE, () -> bodySubscriber.onError(null));
+            expectThrows(NPE, () -> bodySubscriber.onError(null));
+
+            if (!subscribed) {
+                out.println("subscribing");
+                // subscribe the Subscriber and repeat
+                bodySubscriber.onSubscribe(new Flow.Subscription() {
+                    @Override public void request(long n) { /* do nothing */ }
+                    @Override public void cancel() { fail(); }
+                });
+                subscribed = true;
+                continue;
+            }
+            break;
+        } while (true);
+    }
+
+    @Test(dataProvider = "bodySubscriberSuppliers")
+    void subscribeMoreThanOnce(Supplier<BodySubscriber<?>> bodySubscriberSupplier) {
+        BodySubscriber<?> bodySubscriber = bodySubscriberSupplier.get();
+        bodySubscriber.onSubscribe(new Flow.Subscription() {
+            @Override public void request(long n) { /* do nothing */ }
+            @Override public void cancel() { fail(); }
+        });
+
+        for (int i = 0; i < 5; i++) {
+            var subscription = new Flow.Subscription() {
+                volatile boolean cancelled;
+                @Override public void request(long n) { fail(); }
+                @Override public void cancel() { cancelled = true; }
+            };
+            bodySubscriber.onSubscribe(subscription);
+            assertTrue(subscription.cancelled);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/net/httpclient/RelayingPublishers.java	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,113 @@
+/*
+ * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import jdk.test.lib.util.FileUtils;
+import org.testng.annotations.Test;
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.net.http.HttpRequest.BodyPublisher;
+import java.net.http.HttpRequest.BodyPublishers;
+import java.nio.ByteBuffer;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.Flow;
+
+import static org.testng.Assert.assertEquals;
+
+/*
+ * @test
+ * @summary Verifies that some of the standard BodyPublishers relay exception
+ *          rather than throw it
+ * @bug 8226303
+ * @library /test/lib
+ * @run testng/othervm RelayingPublishers
+ */
+public class RelayingPublishers {
+
+    @Test
+    public void ofFile0() throws IOException {
+        Path directory = Files.createDirectory(Path.of("d"));
+        // Even though the path exists, the publisher should not be able
+        // to read from it, as that path denotes a directory, not a file
+        BodyPublisher pub = BodyPublishers.ofFile(directory);
+        CompletableSubscriber<ByteBuffer> s = new CompletableSubscriber<>();
+        pub.subscribe(s);
+        s.future().join();
+        // Interestingly enough, it's FileNotFoundException if a file
+        // is a directory
+        assertEquals(s.future().join().getClass(), FileNotFoundException.class);
+    }
+
+    @Test
+    public void ofFile1() throws IOException {
+        Path file = Files.createFile(Path.of("f"));
+        BodyPublisher pub = BodyPublishers.ofFile(file);
+        FileUtils.deleteFileWithRetry(file);
+        CompletableSubscriber<ByteBuffer> s = new CompletableSubscriber<>();
+        pub.subscribe(s);
+        assertEquals(s.future().join().getClass(), FileNotFoundException.class);
+    }
+
+    @Test
+    public void ofByteArrays() {
+        List<byte[]> bytes = new ArrayList<>();
+        bytes.add(null);
+        BodyPublisher pub = BodyPublishers.ofByteArrays(bytes);
+        CompletableSubscriber<ByteBuffer> s = new CompletableSubscriber<>();
+        pub.subscribe(s);
+        assertEquals(s.future().join().getClass(), NullPointerException.class);
+    }
+
+    static class CompletableSubscriber<T> implements Flow.Subscriber<T> {
+
+        final CompletableFuture<Throwable> f = new CompletableFuture<>();
+
+        @Override
+        public void onSubscribe(Flow.Subscription subscription) {
+            subscription.request(1);
+        }
+
+        @Override
+        public void onNext(T item) {
+            f.completeExceptionally(new RuntimeException("Unexpected onNext"));
+        }
+
+        @Override
+        public void onError(Throwable throwable) {
+            f.complete(throwable);
+        }
+
+        @Override
+        public void onComplete() {
+            f.completeExceptionally(new RuntimeException("Unexpected onNext"));
+        }
+
+        CompletableFuture<Throwable> future() {
+            return f.copy();
+        }
+    }
+}
--- a/test/jdk/java/net/httpclient/whitebox/java.net.http/jdk/internal/net/http/Http1HeaderParserTest.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/jdk/java/net/httpclient/whitebox/java.net.http/jdk/internal/net/http/Http1HeaderParserTest.java	Fri Jun 21 09:05:45 2019 -0700
@@ -375,6 +375,17 @@
              "HTTP/1.1 200OK\r\n\rT",
 
              "HTTP/1.1 200OK\rT",
+
+             "HTTP/1.0 FOO\r\n",
+
+             "HTTP/1.1 BAR\r\n",
+
+             "HTTP/1.1 +99\r\n",
+
+             "HTTP/1.1 -22\r\n",
+
+             "HTTP/1.1 -20 \r\n"
+
            };
         Arrays.stream(bad).forEach(responses::add);
 
--- a/test/jdk/java/net/ipv6tests/B6521014.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/jdk/java/net/ipv6tests/B6521014.java	Fri Jun 21 09:05:45 2019 -0700
@@ -67,7 +67,6 @@
         return NetworkConfiguration.probe()
                 .ip6Addresses()
                 .filter(Inet6Address::isLinkLocalAddress)
-                .map(B6521014::removeScope)
                 .findFirst();
     }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/nio/channels/DatagramChannel/PromiscuousIPv6.java	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,233 @@
+/*
+ * 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.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+
+/*
+ * @test
+ * @bug 8215294
+ * @requires os.family == "linux"
+ * @library /test/lib
+ * @build jdk.test.lib.NetworkConfiguration
+ *        PromiscuousIPv6
+ * @run main PromiscuousIPv6
+ * @key randomness
+ */
+
+import java.nio.ByteBuffer;
+import java.nio.channels.*;
+import java.net.*;
+import java.util.*;
+import java.io.IOException;
+import jdk.test.lib.NetworkConfiguration;
+import jtreg.SkippedException;
+import static java.net.StandardProtocolFamily.*;
+import static java.nio.charset.StandardCharsets.UTF_8;
+import static java.util.stream.Collectors.toList;
+
+/*
+ * This test was created as a copy of the Promiscuous test and adapted for
+ * IPv6 node-local and link-local multicast addresses on Linux.
+ */
+public class PromiscuousIPv6 {
+
+    static final Random rand = new Random();
+
+    static final ProtocolFamily UNSPEC = () -> "UNSPEC";
+
+    /**
+     * Sends a datagram to the given multicast group
+     */
+    static int sendDatagram(NetworkInterface nif,
+                            InetAddress group,
+                            int port)
+            throws IOException
+    {
+        ProtocolFamily family = (group instanceof Inet6Address) ? INET6 : INET;
+        DatagramChannel dc = DatagramChannel.open(family)
+                .setOption(StandardSocketOptions.IP_MULTICAST_IF, nif);
+        int id = rand.nextInt();
+        byte[] msg = Integer.toString(id).getBytes(UTF_8);
+        ByteBuffer buf = ByteBuffer.wrap(msg);
+        System.out.format("Send message -> group %s (id=0x%x)\n",
+                          group.getHostAddress(), id);
+        dc.send(buf, new InetSocketAddress(group, port));
+        dc.close();
+        return id;
+    }
+
+    /**
+     * Waits (with timeout) for datagram. The {@code datagramExpected}
+     * parameter indicates whether a datagram is expected, and if
+     * {@code true} then {@code id} is the identifier in the payload.
+     */
+    static void receiveDatagram(DatagramChannel dc,
+                                String name,
+                                boolean datagramExpected,
+                                int id)
+        throws IOException
+    {
+        System.out.println("Checking if received by " + name);
+
+        Selector sel = Selector.open();
+        dc.configureBlocking(false);
+        dc.register(sel, SelectionKey.OP_READ);
+        ByteBuffer buf = ByteBuffer.allocateDirect(100);
+
+        try {
+            for (;;) {
+                System.out.println("Waiting to receive message");
+                sel.select(5*1000);
+                SocketAddress sa = dc.receive(buf);
+
+                // no datagram received
+                if (sa == null) {
+                    if (datagramExpected) {
+                        throw new RuntimeException("Expected message not received");
+                    }
+                    System.out.println("No message received (correct)");
+                    return;
+                }
+
+                // datagram received
+
+                InetAddress sender = ((InetSocketAddress)sa).getAddress();
+                buf.flip();
+                byte[] bytes = new byte[buf.remaining()];
+                buf.get(bytes);
+                String s = new String(bytes, "UTF-8");
+                int receivedId = -1;
+                try {
+                    receivedId = Integer.parseInt(s);
+                    System.out.format("Received message from %s (id=0x%x)\n",
+                                      sender, receivedId);
+                } catch (NumberFormatException x) {
+                    System.out.format("Received message from %s (msg=%s)\n", sender, s);
+                }
+
+                if (!datagramExpected) {
+                    if (receivedId == id)
+                        throw new RuntimeException("Message not expected");
+                    System.out.println("Message ignored (has wrong id)");
+                } else {
+                    if (receivedId == id) {
+                        System.out.println("Message expected");
+                        return;
+                    }
+                    System.out.println("Message ignored (wrong sender)");
+                }
+
+                sel.selectedKeys().clear();
+                buf.rewind();
+            }
+        } finally {
+            sel.close();
+        }
+    }
+
+    static void test(ProtocolFamily family,
+                     NetworkInterface nif,
+                     InetAddress group1,
+                     InetAddress group2)
+            throws IOException
+    {
+
+        System.out.format("%nTest family=%s%n", family.name());
+
+        // Bind addresses should include the same network interface / scope, so
+        // as to not reply on the default route when there are multiple interfaces
+        InetAddress bindAddr1 = Inet6Address.getByAddress(null, group1.getAddress(), nif);
+        InetAddress bindAddr2 = Inet6Address.getByAddress(null, group2.getAddress(), nif);
+
+        DatagramChannel dc1 = (family == UNSPEC) ?
+                DatagramChannel.open() : DatagramChannel.open(family);
+        DatagramChannel dc2 = (family == UNSPEC) ?
+                DatagramChannel.open() : DatagramChannel.open(family);
+
+        try {
+            dc1.setOption(StandardSocketOptions.SO_REUSEADDR, true);
+            dc2.setOption(StandardSocketOptions.SO_REUSEADDR, true);
+
+            dc1.bind(new InetSocketAddress(bindAddr1, 0));
+            int port = dc1.socket().getLocalPort();
+            dc2.bind(new InetSocketAddress(bindAddr2, port));
+
+            System.out.format("dc1 joining [%s]:%d @ %s\n",
+                              group1.getHostAddress(), port, nif.getName());
+            System.out.format("dc2 joining [%s]:%d @ %s\n",
+                              group2.getHostAddress(), port, nif.getName());
+
+            dc1.join(group1, nif);
+            dc2.join(group2, nif);
+
+            int id = sendDatagram(nif, group1, port);
+
+            receiveDatagram(dc1, "dc1", true, id);
+            receiveDatagram(dc2, "dc2", false, id);
+
+            id = sendDatagram(nif, group2, port);
+
+            receiveDatagram(dc1, "dc1", false, id);
+            receiveDatagram(dc2, "dc2", true, id);
+
+        } finally {
+            dc1.close();
+            dc2.close();
+        }
+    }
+
+    public static void main(String[] args) throws IOException {
+
+        String os = System.getProperty("os.name");
+
+        if (!os.equals("Linux")) {
+            throw new SkippedException("This test should be run only on Linux");
+        } else {
+            String osVersion = System.getProperty("os.version");
+            String prefix = "3.10.0";
+            if (osVersion.startsWith(prefix)) {
+                throw new SkippedException(
+                        String.format("The behavior under test is known NOT to work on '%s' kernels", prefix));
+            }
+        }
+
+        NetworkConfiguration.printSystemConfiguration(System.out);
+        List<NetworkInterface> nifs = NetworkConfiguration.probe()
+                .ip6MulticastInterfaces()
+                .collect(toList());
+
+        if (nifs.size() == 0) {
+            throw new SkippedException(
+                    "No IPv6 interfaces that support multicast found");
+        }
+
+        InetAddress interfaceLocal1 = InetAddress.getByName("ff11::2.3.4.5");
+        InetAddress interfaceLocal2 = InetAddress.getByName("ff11::6.7.8.9");
+
+        InetAddress linkLocal1 = InetAddress.getByName("ff12::2.3.4.5");
+        InetAddress linkLocal2 = InetAddress.getByName("ff12::6.7.8.9");
+
+        for (NetworkInterface nif : nifs) {
+            test(INET6, nif, interfaceLocal1, interfaceLocal2);
+            test(INET6, nif, linkLocal1, linkLocal2);
+        }
+    }
+}
--- a/test/jdk/java/security/KeyAgreement/KeyAgreementTest.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/jdk/java/security/KeyAgreement/KeyAgreementTest.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, 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
@@ -23,7 +23,7 @@
 
  /*
  * @test
- * @bug 4936763 8184359 8205476
+ * @bug 4936763 8184359 8205476 8226307
  * @summary KeyAgreement Test with all supported algorithms from JCE.
  *          Arguments order <KeyExchangeAlgorithm> <KeyGenAlgorithm> <Provider>
  *          It removes com/sun/crypto/provider/KeyAgreement/DHGenSecretKey.java
@@ -73,7 +73,7 @@
                 // SEC2 prime curves
                 "secp112r1", "secp112r2", "secp128r1", "secp128r2", "secp160k1",
                 "secp160r1", "secp192k1", "secp192r1", "secp224k1", "secp224r1",
-                "secp256k1", "secp256r1", "secp384r1", "secp521r1",
+                "secp256k1", "secp256r1", "secp384r1", "secp521r1", "SECP521R1",
                 // ANSI X9.62 prime curves
                 "X9.62 prime192v2", "X9.62 prime192v3", "X9.62 prime239v1",
                 "X9.62 prime239v2", "X9.62 prime239v3",
@@ -87,7 +87,7 @@
                 "X9.62 c2tnb239v1", "X9.62 c2tnb239v2", "X9.62 c2tnb239v3",
                 "X9.62 c2tnb359v1", "X9.62 c2tnb431r1"
         ),
-        XDH("X25519", "X448"),
+        XDH("X25519", "X448", "x25519"),
         // There is no curve for DiffieHellman
         DiffieHellman(new String[]{});
 
--- a/test/jdk/java/security/cert/CertPathBuilder/selfIssued/KeyUsageMatters.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/jdk/java/security/cert/CertPathBuilder/selfIssued/KeyUsageMatters.java	Fri Jun 21 09:05:45 2019 -0700
@@ -29,13 +29,13 @@
 
 /**
  * @test
- * @bug 6852744
+ * @bug 6852744 8133489
  * @summary PIT b61: PKI test suite fails because self signed certificates
  *          are being rejected
  * @modules java.base/sun.security.util
- * @run main/othervm KeyUsageMatters subca
- * @run main/othervm KeyUsageMatters subci
- * @run main/othervm KeyUsageMatters alice
+ * @run main/othervm -Djava.security.debug=certpath KeyUsageMatters subca
+ * @run main/othervm -Djava.security.debug=certpath KeyUsageMatters subci
+ * @run main/othervm -Djava.security.debug=certpath KeyUsageMatters alice
  * @author Xuelei Fan
  */
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/util/HashMap/ToArray.java	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,155 @@
+/*
+ * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.LongStream;
+
+/*
+ * @test
+ * @summary HashMap.toArray() behavior tests
+ * @author tvaleev
+ */
+public class ToArray {
+    public static void main(String[] args) {
+        checkMap(false);
+        checkMap(true);
+        checkSet(false);
+        checkSet(true);
+    }
+
+    private static <T extends Comparable<T>> void checkToArray(String message, T[] expected, Collection<T> collection,
+                                                               boolean ignoreOrder) {
+        if (ignoreOrder) {
+            Arrays.sort(expected);
+        }
+        checkToObjectArray(message, expected, collection, ignoreOrder);
+        checkToTypedArray(message, expected, Arrays.copyOf(expected, 0), collection, ignoreOrder);
+        checkToTypedArray(message, expected, expected.clone(), collection, ignoreOrder);
+        if (expected.length > 0) {
+            T[] biggerArray = Arrays.copyOf(expected, expected.length * 2);
+            System.arraycopy(expected, 0, biggerArray, expected.length, expected.length);
+            checkToTypedArray(message, expected, biggerArray, collection, ignoreOrder);
+        }
+    }
+
+    private static <T extends Comparable<T>> void checkToTypedArray(String message, T[] expected, T[] inputArray,
+                                                                    Collection<T> collection, boolean ignoreOrder) {
+        T[] res = collection.toArray(inputArray);
+        if (expected.length <= inputArray.length && res != inputArray) {
+            throw new AssertionError(message + ": not the same array returned");
+        }
+        if (res.getClass() != expected.getClass()) {
+            throw new AssertionError(message + ": wrong class returned: " + res.getClass());
+        }
+        if (res.length < expected.length) {
+            throw new AssertionError(message + ": length is smaller than expected: " + res.length + " < " + expected.length);
+        }
+        if (ignoreOrder) {
+            Arrays.sort(res, 0, Math.min(res.length, expected.length));
+        }
+        if (inputArray.length <= expected.length) {
+            if (!Arrays.equals(res, expected)) {
+                throw new AssertionError(message + ": not equal: " + Arrays.toString(expected) + " != " +
+                        Arrays.toString(res));
+            }
+        } else {
+            int mismatch = Arrays.mismatch(expected, res);
+            if (mismatch != expected.length) {
+                throw new AssertionError(message + ": mismatch at " + mismatch);
+            }
+            if (res[expected.length] != null) {
+                throw new AssertionError(message + ": no null at position " + expected.length);
+            }
+            // The tail of bigger array after expected.length position must be untouched
+            mismatch = Arrays
+                    .mismatch(expected, 1, expected.length, res, expected.length + 1, res.length);
+            if (mismatch != -1) {
+                throw new AssertionError(message + ": mismatch at " + mismatch);
+            }
+        }
+    }
+
+    private static <T extends Comparable<T>> void checkToObjectArray(String message, T[] expected,
+                                                                     Collection<T> collection, boolean ignoreOrder) {
+        Object[] objects = collection.toArray();
+        if (objects.getClass() != Object[].class) {
+            throw new AssertionError(message + ": wrong class returned: " + objects.getClass());
+        }
+        if (ignoreOrder) {
+            Arrays.sort(objects);
+        }
+        int mismatch = Arrays.mismatch(expected, objects);
+        if (mismatch != -1) {
+            throw new AssertionError(message + ": mismatch at " + mismatch);
+        }
+    }
+
+    private static void checkMap(boolean ordered) {
+        Map<String, String> map = ordered ? new LinkedHashMap<>() : new HashMap<>();
+        checkToArray("Empty-keys", new String[0], map.keySet(), !ordered);
+        checkToArray("Empty-values", new String[0], map.values(), !ordered);
+
+        List<String> keys = new ArrayList<>();
+        List<String> values = new ArrayList<>();
+        for (int i = 0; i < 100; i++) {
+            keys.add(String.valueOf(i));
+            values.add(String.valueOf(i * 2));
+            map.put(String.valueOf(i), String.valueOf(i * 2));
+            checkToArray(i + "-keys", keys.toArray(new String[0]), map.keySet(), !ordered);
+            checkToArray(i + "-values", values.toArray(new String[0]), map.values(), !ordered);
+        }
+        map.clear();
+        checkToArray("Empty-keys", new String[0], map.keySet(), !ordered);
+        checkToArray("Empty-values", new String[0], map.values(), !ordered);
+    }
+
+    private static void checkSet(boolean ordered) {
+        Collection<String> set = ordered ? new LinkedHashSet<>() : new HashSet<>();
+        checkToArray("Empty", new String[0], set, !ordered);
+        set.add("foo");
+        checkToArray("One", new String[]{"foo"}, set, !ordered);
+        set.add("bar");
+        checkToArray("Two", new String[]{"foo", "bar"}, set, !ordered);
+
+        Collection<Long> longSet = ordered ? new LinkedHashSet<>() : new HashSet<>();
+        for (int x = 0; x < 100; x++) {
+            longSet.add((long) x);
+        }
+        checkToArray("100", LongStream.range(0, 100).boxed().toArray(Long[]::new), longSet, !ordered);
+        longSet.clear();
+        checkToArray("After clear", new Long[0], longSet, !ordered);
+        for (int x = 0; x < 100; x++) {
+            longSet.add(((long) x) | (((long) x) << 32));
+        }
+        checkToArray("Collisions", LongStream.range(0, 100).mapToObj(x -> x | (x << 32))
+                .toArray(Long[]::new), longSet, !ordered);
+    }
+}
--- a/test/jdk/java/util/zip/ZipFile/MultiThreadedReadTest.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/jdk/java/util/zip/ZipFile/MultiThreadedReadTest.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 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
@@ -28,14 +28,14 @@
  * @build jdk.test.lib.Platform
  *        jdk.test.lib.util.FileUtils
  * @run main MultiThreadedReadTest
- * @key randomness
  */
 
+import java.io.BufferedOutputStream;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.InputStream;
 import java.nio.file.Paths;
-import java.util.Random;
+import java.util.zip.CRC32;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
 import java.util.zip.ZipOutputStream;
@@ -44,7 +44,8 @@
 public class MultiThreadedReadTest extends Thread {
 
     private static final int NUM_THREADS = 10;
-    private static final String ZIPFILE_NAME = "large.zip";
+    private static final String ZIPFILE_NAME =
+        System.currentTimeMillis() + "-bug8038491-tmp.large.zip";
     private static final String ZIPENTRY_NAME = "random.txt";
     private static InputStream is = null;
 
@@ -63,23 +64,30 @@
                 threadArray[i].join();
             }
         } finally {
+            long t = System.currentTimeMillis();
             FileUtils.deleteFileIfExistsWithRetry(Paths.get(ZIPFILE_NAME));
+            System.out.println("Deleting zip file took:" +
+                    (System.currentTimeMillis() - t) + "ms");
         }
     }
 
     private static void createZipFile() throws Exception {
-        try (ZipOutputStream zos =
-            new ZipOutputStream(new FileOutputStream(ZIPFILE_NAME))) {
-
-            zos.putNextEntry(new ZipEntry(ZIPENTRY_NAME));
-            StringBuilder sb = new StringBuilder();
-            Random rnd = new Random();
-            for(int i = 0; i < 1000; i++) {
-                // append some random string for ZipEntry
-                sb.append(Long.toString(rnd.nextLong()));
-            }
-            byte[] b = sb.toString().getBytes();
-            zos.write(b, 0, b.length);
+        CRC32 crc32 = new CRC32();
+        long t = System.currentTimeMillis();
+        File zipFile = new File(ZIPFILE_NAME);
+        try (FileOutputStream fos = new FileOutputStream(zipFile);
+            BufferedOutputStream bos = new BufferedOutputStream(fos);
+            ZipOutputStream zos = new ZipOutputStream(bos)) {
+            ZipEntry e = new ZipEntry(ZIPENTRY_NAME);
+            e.setMethod(ZipEntry.STORED);
+            byte[] toWrite = "BLAH".repeat(10_000).getBytes();
+            e.setTime(t);
+            e.setSize(toWrite.length);
+            crc32.reset();
+            crc32.update(toWrite);
+            e.setCrc(crc32.getValue());
+            zos.putNextEntry(e);
+            zos.write(toWrite);
         }
     }
 
@@ -88,6 +96,7 @@
         try {
             while (is.read() != -1) { }
         } catch (Exception e) {
+            System.out.println("read exception:" + e);
             // Swallow any Exceptions (which are expected) - we're only interested in the crash
         }
     }
--- a/test/jdk/javax/net/ssl/SSLSocket/Tls13PacketSize.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/jdk/javax/net/ssl/SSLSocket/Tls13PacketSize.java	Fri Jun 21 09:05:45 2019 -0700
@@ -53,6 +53,9 @@
 
     @Override
     protected void runServerApplication(SSLSocket socket) throws Exception {
+        // Set SO_LINGER in case of slow socket
+        socket.setSoLinger(true, 10);
+
         // here comes the test logic
         InputStream sslIS = socket.getInputStream();
         OutputStream sslOS = socket.getOutputStream();
@@ -81,6 +84,9 @@
      * @see #isCustomizedClientConnection()
      */
     protected void runClientApplication(SSLSocket socket) throws Exception {
+        // Set SO_LINGER in case of slow socket
+        socket.setSoLinger(true, 10);
+
         socket.setEnabledProtocols(new String[] {"TLSv1.3"});
         InputStream sslIS = socket.getInputStream();
         OutputStream sslOS = socket.getOutputStream();
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/jdk/jfr/jcmd/TestJcmdDumpWithFileName.java	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,120 @@
+/*
+ * Copyright (c) 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.
+ */
+
+package jdk.jfr.jcmd;
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.stream.Stream;
+
+import jdk.jfr.Recording;
+import jdk.test.lib.Asserts;
+
+/**
+ * @test
+ * @bug 8220657
+ * @key jfr
+ * @requires vm.hasJFR
+ * @library /test/lib /test/jdk
+ * @run main/othervm jdk.jfr.jcmd.TestJcmdDumpWithFileName
+ */
+public class TestJcmdDumpWithFileName {
+
+    public static void main(String[] args) throws Exception {
+        testDumpAll();
+        testDumpNamed();
+        testDumpNamedWithFilename();
+    }
+
+    private static void testDumpAll() throws Exception {
+        Path p = Path.of("testDumpAll.jfr").toAbsolutePath();
+        try (Recording r = new Recording()) {
+            r.setName("testDumpAll");
+            r.setDestination(p);
+            r.start();
+
+            JcmdHelper.jcmd("JFR.dump");
+
+            Asserts.assertFalse(namedFile(p), "Unexpected file: " + p.toString());
+            Asserts.assertTrue(generatedFile(), "Expected generated file");
+        }
+        cleanup();
+    }
+
+    private static void testDumpNamed() throws Exception {
+        Path p = Path.of("testDumpNamed.jfr").toAbsolutePath();
+        try (Recording r = new Recording()) {
+            r.setName("testDumpNamed");
+            r.setDestination(p);
+            r.start();
+
+            JcmdHelper.jcmd("JFR.dump", "name=testDumpNamed");
+
+            Asserts.assertTrue(namedFile(p), "Expected file: " + p.toString());
+            Asserts.assertFalse(generatedFile(), "Unexpected generated file");
+        }
+        cleanup();
+    }
+
+    private static void testDumpNamedWithFilename() throws Exception {
+        Path p = Path.of("testDumpNamedWithFilename.jfr").toAbsolutePath();
+        Path override = Path.of("override.jfr").toAbsolutePath();
+        try (Recording r = new Recording()) {
+            r.setName("testDumpNamedWithFilename");
+            r.setDestination(p);
+            r.start();
+
+            JcmdHelper.jcmd("JFR.dump", "name=testDumpNamedWithFilename", "filename=" + override.toString());
+
+            Asserts.assertFalse(namedFile(p), "Unexpected file: " + p.toString());
+            Asserts.assertTrue(namedFile(override), "Expected file: " + override.toString());
+            Asserts.assertFalse(generatedFile(), "Unexpected generated file");
+        }
+        cleanup();
+    }
+
+    private static boolean namedFile(Path dumpFile) throws IOException {
+        return Files.exists(dumpFile) && (Files.size(dumpFile) > 0);
+    }
+
+    private static boolean generatedFile() throws IOException {
+        long pid = ProcessHandle.current().pid();
+        Stream<Path> stream = Files.find(Path.of("."), 1, (p, a) -> p.toString()
+                                                                     .matches("^.*hotspot-pid-" + pid + "-[0-9_]+\\.jfr$") && (a.size() > 0L));
+        try (stream) {
+            return stream.findAny()
+                         .isPresent();
+        }
+    }
+
+    private static void cleanup() throws IOException {
+        Stream<Path> stream = Files.find(Path.of("."), 1, (p, a) -> p.toString().endsWith(".jfr"));
+        try (stream) {
+            stream.forEach(p -> p.toFile().delete());
+        }
+    }
+
+}
--- a/test/jdk/sun/security/lib/cacerts/VerifyCACerts.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/jdk/sun/security/lib/cacerts/VerifyCACerts.java	Fri Jun 21 09:05:45 2019 -0700
@@ -26,11 +26,13 @@
  * @test
  * @bug 8189131 8198240 8191844 8189949 8191031 8196141 8204923 8195774 8199779
  *      8209452 8209506 8210432 8195793 8216577 8222089 8222133 8222137 8222136
- *      8223499
+ *      8223499 8225392
  * @summary Check root CA entries in cacerts file
  */
+import java.io.ByteArrayInputStream;
 import java.io.File;
-import java.io.FileInputStream;
+import java.nio.file.Files;
+import java.nio.file.Path;
 import java.security.KeyStore;
 import java.security.MessageDigest;
 import java.security.cert.Certificate;
@@ -52,6 +54,11 @@
     // The numbers of certs now.
     private static final int COUNT = 88;
 
+    // SHA-256 of cacerts, can be generated with
+    // shasum -a 256 cacerts | sed -e 's/../&:/g' | tr '[:lower:]' '[:upper:]' | cut -c1-95
+    private static final String CHECKSUM
+            = "4E:21:94:7C:1D:49:28:BB:34:B0:40:DF:AE:19:B4:41:C6:B5:8A:EE:EB:D5:DE:B4:EF:07:AF:63:18:73:A6:FE";
+
     // map of cert alias to SHA-256 fingerprint
     @SuppressWarnings("serial")
     private static final Map<String, String> FINGERPRINT_MAP = new HashMap<>() {
@@ -255,8 +262,16 @@
     public static void main(String[] args) throws Exception {
         System.out.println("cacerts file: " + CACERTS);
         md = MessageDigest.getInstance("SHA-256");
+
+        byte[] data = Files.readAllBytes(Path.of(CACERTS));
+        String checksum = toHexString(md.digest(data));
+        if (!checksum.equals(CHECKSUM)) {
+            atLeastOneFailed = true;
+            System.err.println("ERROR: wrong checksum\n" + checksum);
+        }
+
         KeyStore ks = KeyStore.getInstance("JKS");
-        ks.load(new FileInputStream(CACERTS), "changeit".toCharArray());
+        ks.load(new ByteArrayInputStream(data), "changeit".toCharArray());
 
         // check the count of certs inside
         if (ks.size() != COUNT) {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/sun/security/mscapi/NullKey.java	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.security.InvalidKeyException;
+import java.security.PublicKey;
+import java.security.Signature;
+import java.util.List;
+
+/**
+ * @test
+ * @bug 8225180
+ * @requires os.family == "windows"
+ * @summary SunMSCAPI Signature should throw InvalidKeyException when
+ *          initialized with a null key
+ */
+
+public class NullKey {
+    public static void main(String[] args) throws Exception {
+        for (String alg : List.of(
+                "SHA256withRSA", "SHA256withECDSA", "RSASSA-PSS")) {
+            Signature sig = Signature.getInstance(alg, "SunMSCAPI");
+            try {
+                sig.initSign(null);
+            } catch (InvalidKeyException e) {
+                // Expected
+            }
+            try {
+                sig.initVerify((PublicKey)null);
+            } catch (InvalidKeyException e) {
+                // Expected
+            }
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/sun/security/ssl/SSLSocketImpl/BlockedAsyncClose.java	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,147 @@
+/*
+ * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+//
+// SunJSSE does not support dynamic system properties, no way to re-use
+// system properties in samevm/agentvm mode.
+//
+
+/*
+ * @test
+ * @bug 8224829
+ * @summary AsyncSSLSocketClose.java has timing issue
+ * @run main/othervm BlockedAsyncClose
+ */
+
+import javax.net.ssl.*;
+import java.io.*;
+import java.net.SocketException;
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+public class BlockedAsyncClose implements Runnable {
+    SSLSocket socket;
+    SSLServerSocket ss;
+
+    // Is the socket ready to close?
+    private final CountDownLatch closeCondition = new CountDownLatch(1);
+
+    // Where do we find the keystores?
+    static String pathToStores = "../../../../javax/net/ssl/etc";
+    static String keyStoreFile = "keystore";
+    static String trustStoreFile = "truststore";
+    static String passwd = "passphrase";
+
+    public static void main(String[] args) throws Exception {
+        String keyFilename =
+            System.getProperty("test.src", "./") + "/" + pathToStores +
+                "/" + keyStoreFile;
+        String trustFilename =
+            System.getProperty("test.src", "./") + "/" + pathToStores +
+                "/" + trustStoreFile;
+
+        System.setProperty("javax.net.ssl.keyStore", keyFilename);
+        System.setProperty("javax.net.ssl.keyStorePassword", passwd);
+        System.setProperty("javax.net.ssl.trustStore", trustFilename);
+        System.setProperty("javax.net.ssl.trustStorePassword", passwd);
+
+        new BlockedAsyncClose();
+    }
+
+    public BlockedAsyncClose() throws Exception {
+        SSLServerSocketFactory sslssf =
+                (SSLServerSocketFactory)SSLServerSocketFactory.getDefault();
+        InetAddress loopback = InetAddress.getLoopbackAddress();
+        ss = (SSLServerSocket)sslssf.createServerSocket();
+        ss.bind(new InetSocketAddress(loopback, 0));
+
+        SSLSocketFactory sslsf =
+            (SSLSocketFactory)SSLSocketFactory.getDefault();
+        socket = (SSLSocket)sslsf.createSocket(loopback, ss.getLocalPort());
+        SSLSocket serverSoc = (SSLSocket)ss.accept();
+        ss.close();
+
+        (new Thread(this)).start();
+        serverSoc.startHandshake();
+
+        boolean closeIsReady = closeCondition.await(90L, TimeUnit.SECONDS);
+        if (!closeIsReady) {
+            System.out.println(
+                    "Ignore, the closure is not ready yet in 90 seconds.");
+            return;
+        }
+
+        socket.setSoLinger(true, 10);
+        System.out.println("Calling Socket.close");
+
+        // Sleep for a while so that the write thread blocks by hitting the
+        // output stream buffer limit.
+        Thread.sleep(1000);
+
+        socket.close();
+        System.out.println("ssl socket get closed");
+        System.out.flush();
+    }
+
+    // block in write
+    public void run() {
+        byte[] ba = new byte[1024];
+        for (int i = 0; i < ba.length; i++) {
+            ba[i] = 0x7A;
+        }
+
+        try {
+            OutputStream os = socket.getOutputStream();
+            int count = 0;
+
+            // 1st round write
+            count += ba.length;
+            System.out.println(count + " bytes to be written");
+            os.write(ba);
+            System.out.println(count + " bytes written");
+
+            // Signal, ready to close.
+            closeCondition.countDown();
+
+            // write more
+            while (true) {
+                count += ba.length;
+                System.out.println(count + " bytes to be written");
+                os.write(ba);
+                System.out.println(count + " bytes written");
+            }
+        } catch (SocketException se) {
+            // the closing may be in progress
+            System.out.println("interrupted? " + se);
+        } catch (Exception e) {
+            if (socket.isClosed() || socket.isOutputShutdown()) {
+                System.out.println("interrupted, the socket is closed");
+            } else {
+                throw new RuntimeException("interrupted?", e);
+            }
+        }
+    }
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/sun/security/ssl/SignatureScheme/Tls13NamedGroups.java	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,188 @@
+/*
+ * Copyright (c) 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.
+ */
+
+//
+// SunJSSE does not support dynamic system properties, no way to re-use
+// system properties in samevm/agentvm mode.
+//
+
+/*
+ * @test
+ * @bug 8225766
+ * @summary Curve in certificate should not affect signature scheme
+ *          when using TLSv1.3
+ * @library /javax/net/ssl/templates
+ * @run main/othervm Tls13NamedGroups
+ */
+
+import java.net.*;
+import java.io.*;
+import javax.net.ssl.*;
+import java.security.*;
+import java.security.cert.*;
+import java.security.spec.*;
+import java.security.interfaces.*;
+import java.util.Base64;
+
+public class Tls13NamedGroups extends SSLSocketTemplate {
+
+    public static void main(String[] args) throws Exception {
+        // Limit the supported named group to secp521r1.
+        System.setProperty("jdk.tls.namedGroups", "secp521r1");
+
+        new Tls13NamedGroups().run();
+    }
+
+    @Override
+    protected SSLContext createServerSSLContext() throws Exception {
+        return generateSSLContext();
+    }
+
+    @Override
+    protected void configureServerSocket(SSLServerSocket socket) {
+        socket.setNeedClientAuth(true);
+    }
+
+    @Override
+    protected SSLContext createClientSSLContext() throws Exception {
+        return generateSSLContext();
+    }
+
+    /*
+     * =============================================================
+     * The remainder is just support stuff
+     */
+
+    // Certificates and key used in the test.
+    //
+    // Trusted Certificate.
+    static String trustedCertStr =
+        // SHA256withECDSA, curve prime256v1
+        // Validity
+        //     Not Before: May 22 07:18:16 2018 GMT
+        //     Not After : May 17 07:18:16 2038 GMT
+        // Subject Key Identifier:
+        //     60:CF:BD:73:FF:FA:1A:30:D2:A4:EC:D3:49:71:46:EF:1A:35:A0:86
+        "-----BEGIN CERTIFICATE-----\n" +
+        "MIIBvjCCAWOgAwIBAgIJAIvFG6GbTroCMAoGCCqGSM49BAMCMDsxCzAJBgNVBAYT\n" +
+        "AlVTMQ0wCwYDVQQKDARKYXZhMR0wGwYDVQQLDBRTdW5KU1NFIFRlc3QgU2VyaXZj\n" +
+        "ZTAeFw0xODA1MjIwNzE4MTZaFw0zODA1MTcwNzE4MTZaMDsxCzAJBgNVBAYTAlVT\n" +
+        "MQ0wCwYDVQQKDARKYXZhMR0wGwYDVQQLDBRTdW5KU1NFIFRlc3QgU2VyaXZjZTBZ\n" +
+        "MBMGByqGSM49AgEGCCqGSM49AwEHA0IABBz1WeVb6gM2mh85z3QlvaB/l11b5h0v\n" +
+        "LIzmkC3DKlVukZT+ltH2Eq1oEkpXuf7QmbM0ibrUgtjsWH3mULfmcWmjUDBOMB0G\n" +
+        "A1UdDgQWBBRgz71z//oaMNKk7NNJcUbvGjWghjAfBgNVHSMEGDAWgBRgz71z//oa\n" +
+        "MNKk7NNJcUbvGjWghjAMBgNVHRMEBTADAQH/MAoGCCqGSM49BAMCA0kAMEYCIQCG\n" +
+        "6wluh1r2/T6L31mZXRKf9JxeSf9pIzoLj+8xQeUChQIhAJ09wAi1kV8yePLh2FD9\n" +
+        "2YEHlSQUAbwwqCDEVB5KxaqP\n" +
+        "-----END CERTIFICATE-----";
+        // -----BEGIN PRIVATE KEY-----
+        // MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg/HcHdoLJCdq3haVd
+        // XZTSKP00YzM3xX97l98vGL/RI1KhRANCAAQc9VnlW+oDNpofOc90Jb2gf5ddW+Yd
+        // LyyM5pAtwypVbpGU/pbR9hKtaBJKV7n+0JmzNIm61ILY7Fh95lC35nFp
+        // -----END PRIVATE KEY-----
+
+    // End entity certificate.
+    static String targetCertStr =
+        // SHA256withECDSA, curve prime256v1
+        // Validity
+        //     Not Before: May 22 07:18:16 2018 GMT
+        //     Not After : May 17 07:18:16 2038 GMT
+        // Authority Key Identifier:
+        //     60:CF:BD:73:FF:FA:1A:30:D2:A4:EC:D3:49:71:46:EF:1A:35:A0:86
+        "-----BEGIN CERTIFICATE-----\n" +
+        "MIIBqjCCAVCgAwIBAgIJAPLY8qZjgNRAMAoGCCqGSM49BAMCMDsxCzAJBgNVBAYT\n" +
+        "AlVTMQ0wCwYDVQQKDARKYXZhMR0wGwYDVQQLDBRTdW5KU1NFIFRlc3QgU2VyaXZj\n" +
+        "ZTAeFw0xODA1MjIwNzE4MTZaFw0zODA1MTcwNzE4MTZaMFUxCzAJBgNVBAYTAlVT\n" +
+        "MQ0wCwYDVQQKDARKYXZhMR0wGwYDVQQLDBRTdW5KU1NFIFRlc3QgU2VyaXZjZTEY\n" +
+        "MBYGA1UEAwwPUmVncmVzc2lvbiBUZXN0MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcD\n" +
+        "QgAEb+9n05qfXnfHUb0xtQJNS4JeSi6IjOfW5NqchvKnfJey9VkJzR7QHLuOESdf\n" +
+        "xlR7q8YIWgih3iWLGfB+wxHiOqMjMCEwHwYDVR0jBBgwFoAUYM+9c//6GjDSpOzT\n" +
+        "SXFG7xo1oIYwCgYIKoZIzj0EAwIDSAAwRQIgWpRegWXMheiD3qFdd8kMdrkLxRbq\n" +
+        "1zj8nQMEwFTUjjQCIQDRIrAjZX+YXHN9b0SoWWLPUq0HmiFIi8RwMnO//wJIGQ==\n" +
+        "-----END CERTIFICATE-----";
+
+    // Private key in the format of PKCS#8.
+    static String targetPrivateKey =
+        //
+        // EC private key related to cert endEntityCertStrs[0].
+        //
+        "MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgn5K03bpTLjEtFQRa\n" +
+        "JUtx22gtmGEvvSUSQdimhGthdtihRANCAARv72fTmp9ed8dRvTG1Ak1Lgl5KLoiM\n" +
+        "59bk2pyG8qd8l7L1WQnNHtAcu44RJ1/GVHurxghaCKHeJYsZ8H7DEeI6";
+
+    static char passphrase[] = "passphrase".toCharArray();
+
+    // Create the SSLContext instance.
+    private static SSLContext generateSSLContext() throws Exception {
+
+        // generate certificate from cert string
+        CertificateFactory cf = CertificateFactory.getInstance("X.509");
+
+        // create a key store
+        KeyStore ks = KeyStore.getInstance("JKS");
+        ks.load(null, null);
+
+        // import the trused cert
+        X509Certificate trusedCert = null;
+        ByteArrayInputStream is =
+                new ByteArrayInputStream(trustedCertStr.getBytes());
+        trusedCert = (X509Certificate)cf.generateCertificate(is);
+        is.close();
+
+        ks.setCertificateEntry("Trusted EC Signer", trusedCert);
+
+        // generate the private key.
+        PKCS8EncodedKeySpec priKeySpec = new PKCS8EncodedKeySpec(
+                            Base64.getMimeDecoder().decode(targetPrivateKey));
+        KeyFactory kf = KeyFactory.getInstance("EC");
+        ECPrivateKey priKey =
+                (ECPrivateKey)kf.generatePrivate(priKeySpec);
+
+        // generate certificate chain
+        is = new ByteArrayInputStream(targetCertStr.getBytes());
+        X509Certificate keyCert = (X509Certificate)cf.generateCertificate(is);
+        is.close();
+
+        X509Certificate[] chain = new X509Certificate[2];
+        chain[0] = keyCert;
+        chain[1] = trusedCert;
+
+        // import the key entry and the chain
+        ks.setKeyEntry("TheKey", priKey, passphrase, chain);
+
+        // create SSL context
+        TrustManagerFactory tmf = TrustManagerFactory.getInstance("PKIX");
+        tmf.init(ks);
+
+        KeyManagerFactory kmf = KeyManagerFactory.getInstance("NewSunX509");
+        kmf.init(ks, passphrase);
+
+        SSLContext ctx = SSLContext.getInstance("TLSv1.3");
+        ctx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
+        ks = null;
+
+        return ctx;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/sun/security/tools/keytool/ListOrder.java	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * @test
+ * @bug 8225392
+ * @summary Comparison builds are failing due to cacerts file
+ * @library /test/lib
+ */
+
+import jdk.test.lib.SecurityTools;
+
+import java.util.Random;
+
+public class ListOrder {
+
+    public static void main(String[] args) throws Throwable {
+
+        Random rand = new Random();
+        for (int i = 0; i < 10; i++) {
+            gen(String.format("a%02d", rand.nextInt(100)));
+        }
+
+        String last = "";
+        for (String line : SecurityTools.keytool(
+                "-keystore ks -storepass changeit -list").asLines()) {
+            if (line.contains("PrivateKeyEntry")) {
+                // This is the line starting with the alias
+                System.out.println(line);
+                if (line.compareTo(last) <= 0) {
+                    throw new RuntimeException("Not ordered");
+                } else {
+                    last = line;
+                }
+            }
+        }
+    }
+
+    static void gen(String a) throws Exception {
+        // Do not check result, there might be duplicated alias(es).
+        SecurityTools.keytool("-keystore ks -storepass changeit "
+                + "-keyalg ec -genkeypair -alias " + a + " -dname CN=" + a);
+    }
+}
--- a/test/jdk/sun/tools/jcmd/TestProcessHelper.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/jdk/sun/tools/jcmd/TestProcessHelper.java	Fri Jun 21 09:05:45 2019 -0700
@@ -73,13 +73,21 @@
             .resolve(TEST_PROCESS_MAIN_CLASS_NAME + ".class");
 
     private static final String[] CP_OPTIONS = {"-cp", "-classpath", "--class-path"};
-    private static final String[][] VM_ARGS = {{}, {"-Dtest1=aaa"}, {"-Dtest1=aaa", "-Dtest2=bbb"}};
+    private static final String[][] VM_ARGS = {{}, {"-Dtest1=aaa"}, {"-Dtest1=aaa", "-Dtest2=bbb ccc"}};
     private static final String[][] ARGS = {{}, {"param1"}, {"param1", "param2"}};
     private static final String[] MP_OPTIONS = {"-p", "--module-path"};
-    private static final String[] MODULE_OPTIONS = {"-m", "--module"};
+    private static final String[] MODULE_OPTIONS = {"-m", "--module", "--module="};
     private static final String JAR_OPTION = "-jar";
     private static final String MODULE_NAME = "module1";
+    private static final String[][] EXTRA_MODULAR_OPTIONS = {null,
+            {"--add-opens", "java.base/java.net=ALL-UNNAMED"},
+            {"--add-exports", "java.base/java.net=ALL-UNNAMED"},
+            {"--add-reads", "java.base/java.net=ALL-UNNAMED"},
+            {"--add-modules", "java.management"},
+            {"--limit-modules", "java.management"},
+            {"--upgrade-module-path", "test"}};
 
+    private static final String[] PATCH_MODULE_OPTIONS = {"--patch-module", null};
 
     public static void main(String[] args) throws Exception {
         new TestProcessHelper().runTests();
@@ -97,18 +105,24 @@
         for (String cp : CP_OPTIONS) {
             for (String[] vma : VM_ARGS) {
                 for (String[] arg : ARGS) {
-                    List<String> cmd = new LinkedList<>();
-                    cmd.add(JAVA_PATH);
-                    cmd.add(cp);
-                    cmd.add(TEST_CLASSES.toAbsolutePath().toString());
-                    for (String v : vma) {
-                        cmd.add(v);
+                    for (String[] modularOptions : EXTRA_MODULAR_OPTIONS) {
+                        List<String> cmd = new LinkedList<>();
+                        cmd.add(JAVA_PATH);
+                        cmd.add(cp);
+                        cmd.add(TEST_CLASSES.toAbsolutePath().toString());
+                        for (String v : vma) {
+                            cmd.add(v);
+                        }
+                        if (modularOptions != null) {
+                            cmd.add(modularOptions[0]);
+                            cmd.add(modularOptions[1]);
+                        }
+                        cmd.add(TEST_PROCESS_MAIN_CLASS);
+                        for (String a : arg) {
+                            cmd.add(a);
+                        }
+                        testProcessHelper(cmd, TEST_PROCESS_MAIN_CLASS);
                     }
-                    cmd.add(TEST_PROCESS_MAIN_CLASS);
-                    for (String a : arg) {
-                        cmd.add(a);
-                    }
-                    testProcessHelper(cmd, TEST_PROCESS_MAIN_CLASS);
                 }
             }
         }
@@ -144,19 +158,29 @@
             for (String m : MODULE_OPTIONS) {
                 for (String[] vma : VM_ARGS) {
                     for (String[] arg : ARGS) {
-                        List<String> cmd = new LinkedList<>();
-                        cmd.add(JAVA_PATH);
-                        cmd.add(mp);
-                        cmd.add(TEST_MODULES.toAbsolutePath().toString());
-                        for (String v : vma) {
-                            cmd.add(v);
+                        for(String patchModuleOption : PATCH_MODULE_OPTIONS) {
+                            List<String> cmd = new LinkedList<>();
+                            cmd.add(JAVA_PATH);
+                            cmd.add(mp);
+                            cmd.add(TEST_MODULES.toAbsolutePath().toString());
+                            if (patchModuleOption != null) {
+                                cmd.add(patchModuleOption);
+                                cmd.add(MODULE_NAME + "=" + TEST_MODULES.toAbsolutePath().toString());
+                            }
+                            for (String v : vma) {
+                                cmd.add(v);
+                            }
+                            if (m.endsWith("=")) {
+                                cmd.add(m + MODULE_NAME + "/" + TEST_PROCESS_MAIN_CLASS);
+                            } else {
+                                cmd.add(m);
+                                cmd.add(MODULE_NAME + "/" + TEST_PROCESS_MAIN_CLASS);
+                            }
+                            for (String a : arg) {
+                                cmd.add(a);
+                            }
+                            testProcessHelper(cmd, MODULE_NAME + "/" + TEST_PROCESS_MAIN_CLASS);
                         }
-                        cmd.add(m);
-                        cmd.add(MODULE_NAME + "/" + TEST_PROCESS_MAIN_CLASS);
-                        for (String a : arg) {
-                            cmd.add(a);
-                        }
-                        testProcessHelper(cmd, MODULE_NAME + "/" + TEST_PROCESS_MAIN_CLASS);
                     }
                 }
             }
--- a/test/langtools/ProblemList.txt	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/ProblemList.txt	Fri Jun 21 09:05:45 2019 -0700
@@ -37,7 +37,6 @@
 
 jdk/jshell/UserJdiUserRemoteTest.java                                           8173079    linux-all
 jdk/jshell/UserInputTest.java                                                   8169536    generic-all
-jdk/jshell/ExceptionsTest.java                                                  8200701    windows-all
 
 ###########################################################################
 #
--- a/test/langtools/jdk/jshell/ClassesTest.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/jdk/jshell/ClassesTest.java	Fri Jun 21 09:05:45 2019 -0700
@@ -344,7 +344,7 @@
                    "  public T get() {return null;}\n" +
                    "}",
                    added(VALID),
-                   ste(aClass, Status.RECOVERABLE_DEFINED, Status.VALID, true, null));
+                   ste(aClass, Status.RECOVERABLE_DEFINED, Status.VALID, false, null));
         assertEval("new A()");
     }
 
--- a/test/langtools/jdk/jshell/ExceptionsTest.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/jdk/jshell/ExceptionsTest.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -24,7 +24,7 @@
 /*
  * @test
  * @summary Tests for exceptions
- * @bug 8198801
+ * @bug 8198801 8212167
  * @build KullaTesting TestingInputStream
  * @run testng ExceptionsTest
  */
@@ -207,6 +207,49 @@
                         newStackTraceElement("", "", cr2.snippet(), 1)));
     }
 
+    // test 8212167
+    public void throwLineFormat1() {
+        SnippetEvent se = assertEvalException(
+                "if (true) { \n" +
+                        "   int x = 10; \n" +
+                        "   int y = 10 / 0;}"
+        );
+        assertExceptionMatch(se,
+                new ExceptionInfo(ArithmeticException.class, "/ by zero",
+                        newStackTraceElement("", "", se.snippet(), 3)));
+    }
+
+    public void throwLineFormat3() {
+        Snippet sp = methodKey(assertEval(
+                "int p() \n" +
+                        "  { return 4/0; }"));
+        Snippet sm = methodKey(assertEval(
+                "int m(int x)\n" +
+                        "       \n" +
+                        "       {\n" +
+                        "          return p() + x; \n" +
+                        "       }"));
+        Snippet sn = methodKey(assertEval(
+                "int n(int x) {\n" +
+                        "         try {\n" +
+                        "           return m(x);\n" +
+                        "         }\n" +
+                        "         catch (Throwable ex) {\n" +
+                        "           throw new IllegalArgumentException( \"GOT:\", ex);\n" +
+                        "         }\n" +
+                        "       }"));
+        SnippetEvent se = assertEvalException("n(33);");
+        assertExceptionMatch(se,
+                new ExceptionInfo(IllegalArgumentException.class, null,
+                        new ExceptionInfo(ArithmeticException.class, "/ by zero",
+                                newStackTraceElement("", "p", sp, 2),
+                                newStackTraceElement("", "m", sm, 4),
+                                newStackTraceElement("", "n", sn, 3),
+                                newStackTraceElement("", "", se.snippet(), 1)),
+                        newStackTraceElement("", "n", sn, 6),
+                        newStackTraceElement("", "", se.snippet(), 1)));
+    }
+
     @Test(enabled = false) // TODO 8129427
     public void outOfMemory() {
         assertEval("import java.util.*;");
@@ -333,7 +376,8 @@
                     }
                     assertEquals(actualElement.getFileName(), expectedElement.getFileName(), message + " : file names");
                     assertEquals(actualElement.getLineNumber(), expectedElement.getLineNumber(), message + " : line numbers"
-                        + " -- actual: " + actual + ", expected: " + expected);
+                        + " -- actual: " + actualElement.getLineNumber() + ", expected: " + expectedElement.getLineNumber() +
+                            " -- in: " + actualElement.getClassName());
                 }
             }
         }
--- a/test/langtools/jdk/jshell/KullaTesting.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/jdk/jshell/KullaTesting.java	Fri Jun 21 09:05:45 2019 -0700
@@ -911,7 +911,10 @@
 
     public void assertCompletionIncludesExcludes(String code, Boolean isSmart, Set<String> expected, Set<String> notExpected) {
         List<String> completions = computeCompletions(code, isSmart);
-        assertTrue(completions.containsAll(expected), String.valueOf(completions));
+        assertTrue(completions.containsAll(expected), "Expected completions: "
+                + String.valueOf(expected)
+                + ", got: "
+                + String.valueOf(completions));
         assertTrue(Collections.disjoint(completions, notExpected), String.valueOf(completions));
     }
 
--- a/test/langtools/jdk/jshell/WrapperTest.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/jdk/jshell/WrapperTest.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8159111
+ * @bug 8159111 8159740
  * @summary test wrappers and dependencies
  * @modules jdk.jshell/jdk.jshell
  * @build KullaTesting
@@ -62,15 +62,126 @@
         assertPosition(swg, src, 15, 6);
     }
 
-    @Test(enabled = false) // TODO 8159740
+    // test 8159740
     public void testMethodCorralled() {
         String src = "void glib() { f(); }";
+        //            _123456789_123456789
         Snippet g = methodKey(assertEval(src, added(RECOVERABLE_DEFINED)));
         SnippetWrapper swg = getState().sourceCodeAnalysis().wrapper(g);
-        assertWrapperHas(swg, src, Kind.METHOD, "void", "glib");
+        assertWrapperHas(swg, src, Kind.METHOD, "SPIResolutionException",
+                "void", "glib");
+        assertPosition(swg, src, 0, 4);
         assertPosition(swg, src, 5, 4);
     }
 
+    // test 8159740
+    public void testClassCorralled0() {
+        String src = "class AAA { float mmm(double d1234) { return (float) (f0 * d1234); } }";
+        //            _123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789
+        Snippet a = classKey(assertEval(src, added(RECOVERABLE_DEFINED)));
+        SnippetWrapper swa = getState().sourceCodeAnalysis().wrapper(a);
+        assertWrapperHas(swa, src, Kind.TYPE_DECL, "SPIResolutionException",
+                "class", "AAA", "float", "mmm", "double", "d1234");
+        assertPosition(swa, src, 0, 5);
+        assertPosition(swa, src, 6, 3);
+        assertPosition(swa, src, 12, 5);
+        assertPosition(swa, src, 18, 3);
+        assertPosition(swa, src, 22, 6);
+        assertPosition(swa, src, 29, 5);
+    }
+
+    // test 8159740
+    public void testClassCorralled() {
+        String src = "class AAA { int xxx = x0 + 4; float mmm(float ffff) { return f0 * ffff; } }";
+        //            _123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789
+        Snippet a = classKey(assertEval(src, added(RECOVERABLE_DEFINED)));
+        SnippetWrapper swa = getState().sourceCodeAnalysis().wrapper(a);
+        assertWrapperHas(swa, src, Kind.TYPE_DECL, "SPIResolutionException",
+                "class", "AAA", "int", "xxx", "float", "mmm", "ffff");
+        assertPosition(swa, src, 0, 5);
+        assertPosition(swa, src, 6, 3);
+        assertPosition(swa, src, 12, 3);
+        assertPosition(swa, src, 16, 3);
+        assertPosition(swa, src, 30, 5);
+        assertPosition(swa, src, 36, 3);
+        assertPosition(swa, src, 40, 5);
+        assertPosition(swa, src, 46, 4);
+    }
+
+    // test 8159740
+    public void testClassWithConstructorCorralled() {
+        String src = "public class AAA { AAA(String b) {} int xxx = x0 + 4; float mmm(float ffff) { return f0 * ffff; } }";
+        //            _123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789
+        Snippet a = classKey(assertEval(src, added(RECOVERABLE_DEFINED)));
+        SnippetWrapper swa = getState().sourceCodeAnalysis().wrapper(a);
+        assertWrapperHas(swa, src, Kind.TYPE_DECL, "SPIResolutionException",
+                "class", "AAA", "String", "int", "xxx", "float", "mmm", "ffff");
+        assertPosition(swa, src, 7, 5);
+        assertPosition(swa, src, 13, 3);
+        assertPosition(swa, src, 19, 3);
+        assertPosition(swa, src, 23, 5);
+        assertPosition(swa, src, 30, 1);
+        assertPosition(swa, src, 36, 3);
+        assertPosition(swa, src, 40, 3);
+        assertPosition(swa, src, 54, 5);
+        assertPosition(swa, src, 60, 3);
+        assertPosition(swa, src, 64, 5);
+        assertPosition(swa, src, 70, 4);
+    }
+
+    // test 8159740
+    public void testInterfaceCorralled() {
+        String src = "interface AAA { default float mmm(double d1234) { return (float) (f0 * d1234); } }";
+        //            _123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789
+        Snippet a = classKey(assertEval(src, added(RECOVERABLE_DEFINED)));
+        SnippetWrapper swa = getState().sourceCodeAnalysis().wrapper(a);
+        assertWrapperHas(swa, src, Kind.TYPE_DECL, "SPIResolutionException",
+                "interface", "AAA", "float", "mmm", "double", "d1234");
+        assertPosition(swa, src, 0, 9);
+        assertPosition(swa, src, 10, 3);
+        assertPosition(swa, src, 16, 7);
+        assertPosition(swa, src, 24, 5);
+        assertPosition(swa, src, 30, 3);
+        assertPosition(swa, src, 34, 6);
+        assertPosition(swa, src, 41, 5);
+    }
+
+    // test 8159740
+    public void testEnumCorralled() {
+        String src =
+                "public enum Planet {\n" +
+                "    MERCURY (3.303e+23, 2.4397e6),\n" +
+                "    VENUS   (4.869e+24, 6.0518e6),\n" +
+                "    EARTH   (5.976e+24, 6.37814e6),\n" +
+                "    MARS    (6.421e+23, 3.3972e6),\n" +
+                "    JUPITER (1.9e+27,   7.1492e7),\n" +
+                "    SATURN  (5.688e+26, 6.0268e7),\n" +
+                "    URANUS  (8.686e+25, 2.5559e7),\n" +
+                "    NEPTUNE (1.024e+26, 2.4746e7);\n" +
+                "\n" +
+                "    private final double mass;   // in kilograms\n" +
+                "    private final double radius; // in meters\n" +
+                "    Planet(double mass, double radius) {\n" +
+                "        this.mass = mass;\n" +
+                "        this.radius = radius;\n" +
+                "    }\n" +
+                "    private double mass() { return mass; }\n" +
+                "    private double radius() { return radius; }\n" +
+                "\n" +
+                "    double surfaceGravity() {\n" +
+                "        return GRAVITATIONAL_CONSTANT * mass / (radius * radius);\n" +
+                "    }\n" +
+                "    double surfaceWeight(double otherMass) {\n" +
+                "        return otherMass * surfaceGravity();\n" +
+                "    }\n" +
+                "}\n";
+        Snippet a = classKey(assertEval(src, added(RECOVERABLE_DEFINED)));
+        SnippetWrapper swa = getState().sourceCodeAnalysis().wrapper(a);
+        assertWrapperHas(swa, src, Kind.TYPE_DECL, "SPIResolutionException",
+                "enum", "Planet", "double", "mass", "EARTH", "NEPTUNE", "MERCURY",
+                "radius", "surfaceGravity", "surfaceWeight");
+    }
+
     public void testMethodBad() {
         String src = "void flob() { ?????; }";
         List<SnippetWrapper> swl = getState().sourceCodeAnalysis().wrappers(src);
@@ -182,23 +293,36 @@
     private void assertWrapperHas(SnippetWrapper sw, String source, Kind kind, String... has) {
         assertEquals(sw.source(), source);
         assertEquals(sw.kind(), kind);
+        String s = sw.wrapped();
         if (kind == Kind.IMPORT) {
-            assertTrue(sw.wrapped().contains("import"));
+            assertHas(s, "import");
         } else {
             String cn = sw.fullClassName();
             int idx = cn.lastIndexOf(".");
-            assertTrue(sw.wrapped().contains(cn.substring(idx+1)));
-            assertTrue(sw.wrapped().contains("class"));
+            assertHas(s, cn.substring(idx+1));
+            assertHas(s, "class");
         }
-        for (String s : has) {
-            assertTrue(sw.wrapped().contains(s));
+        for (String hx : has) {
+            assertHas(s, hx);
         }
     }
 
+    private void assertHas(String s, String has) {
+        assertTrue(s.contains(has), "Expected to find '" + has + "' in: '" + s + "'");
+    }
+
     private void assertPosition(SnippetWrapper sw, String source, int start, int length) {
+        //System.err.printf("\n#assertPosition:\n#  debug-source: %s\n#  SnippetWrapper --\n#    source: %s\n#    wrapped: %s\n",
+        //        source, sw.source(), sw.wrapped());
+        //System.err.printf("#  start: %d    length: %d\n", start, length);
         int wpg = sw.sourceToWrappedPosition(start);
-        assertEquals(sw.wrapped().substring(wpg, wpg+length),
-                source.substring(start, start+length),
+        //System.err.printf("#  wrappedPos: %d\n", wpg);
+        String wrappedPart = sw.wrapped().substring(wpg, wpg+length);
+        String sourcePart = source.substring(start, start+length);
+        //System.err.printf("#  wrapped @ wrappedPos: %s\n", wrappedPart);
+        //System.err.printf("#  source @ start: %s\n", sourcePart);
+
+        assertEquals(wrappedPart, sourcePart,
                 "position " + wpg + " in " + sw.wrapped());
         assertEquals(sw.wrappedToSourcePosition(wpg), start);
     }
--- a/test/langtools/tools/javac/T6942649.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/T6942649.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 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
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 6942649
+ * @bug 6942649 8225748
  * @summary add hidden option to identify location and version of javac classes
  * @modules jdk.compiler
  */
@@ -60,7 +60,7 @@
                 throw new Exception("location of class not found in output");
         }
 
-        if (!out.contains("MD5 checksum: "))
+        if (!out.contains("SHA-256 checksum: "))
             throw new Exception("checksum not found in output");
     }
 }
--- a/test/langtools/tools/javac/annotations/repeatingAnnotations/combo/ReflectionTest.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/annotations/repeatingAnnotations/combo/ReflectionTest.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -193,12 +193,12 @@
     enum TestCase {
         BasicNonRepeatable_Legacy(
         "@ExpectedBase(value=Foo.class, "
-                + "getAnnotationVal = \"@Foo(value=0)\", "
-                + "getAnnotationsVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=0)\"}, "
-                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=0)\"}, "
-                + "getDeclAnnoVal = \"@Foo(value=0)\", "
-                + "getAnnosArgs = {\"@Foo(value=0)\"}, "
-                + "getDeclAnnosArgs = {\"@Foo(value=0)\"}) ",
+                + "getAnnotationVal = \"@Foo(0)\", "
+                + "getAnnotationsVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(0)\"}, "
+                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(0)\"}, "
+                + "getDeclAnnoVal = \"@Foo(0)\", "
+                + "getAnnosArgs = {\"@Foo(0)\"}, "
+                + "getDeclAnnosArgs = {\"@Foo(0)\"}) ",
         "@ExpectedContainer") {
 
             @Override
@@ -274,11 +274,11 @@
         },
         SingleAnnoInherited_Legacy(
         "@ExpectedBase(value=Foo.class, "
-                + "getAnnotationVal = \"@Foo(value=0)\", "
-                + "getAnnotationsVals = {\"@Foo(value=0)\", \"ExpectedBase\", \"ExpectedContainer\"}, "
+                + "getAnnotationVal = \"@Foo(0)\", "
+                + "getAnnotationsVals = {\"@Foo(0)\", \"ExpectedBase\", \"ExpectedContainer\"}, "
                 + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\"}, "
                 + "getDeclAnnoVal = \"NULL\", "
-                + "getAnnosArgs = {\"@Foo(value=0)\"}, "
+                + "getAnnosArgs = {\"@Foo(0)\"}, "
                 + "getDeclAnnosArgs = {})",
         "@ExpectedContainer") {
 
@@ -401,18 +401,18 @@
         },
         AnnoOnSuperAndSubClass_Inherited_Legacy(
         "@ExpectedBase(value=Foo.class, "
-                + "getAnnotationVal = \"@Foo(value=2)\", "
-                + "getAnnotationsVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=2)\"}, "
+                + "getAnnotationVal = \"@Foo(2)\", "
+                + "getAnnotationsVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(2)\"}, "
                 + // override every annotation on superClass
-                "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=2)\"}, "
+                "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(2)\"}, "
                 + // ignores inherited annotations
-                "getDeclAnnoVal = \"@Foo(value=2)\", " // ignores inherited
-                + "getAnnosArgs = {\"@Foo(value=2)\"}, "
-                + "getDeclAnnosArgs = { \"@Foo(value=2)\" })", // ignores inherited
+                "getDeclAnnoVal = \"@Foo(2)\", " // ignores inherited
+                + "getAnnosArgs = {\"@Foo(2)\"}, "
+                + "getDeclAnnosArgs = { \"@Foo(2)\" })", // ignores inherited
         "@ExpectedContainer(value=FooContainer.class, "
                 + "getAnnotationVal = \"NULL\", "
-                + "getAnnotationsVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=2)\"}, "
-                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=2)\"}, "
+                + "getAnnotationsVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(2)\"}, "
+                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(2)\"}, "
                 + // ignores inherited annotations
                 "getDeclAnnoVal = \"NULL\", " + // ignores inherited
                 "getAnnosArgs = {}, " + "getDeclAnnosArgs = {})") { // ignores inherited
@@ -481,19 +481,19 @@
             }
         },
         BasicContainer_Legacy(
-        "@ExpectedBase(value = Foo.class, "
+        "@ExpectedBase(value=Foo.class, "
                 + "getAnnotationVal = \"NULL\","
-                + "getAnnotationsVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
-                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
+                + "getAnnotationsVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer({@Foo(1), @Foo(2)})\"}, "
+                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer({@Foo(1), @Foo(2)})\"}, "
                 + "getDeclAnnoVal = \"NULL\", " + "getAnnosArgs = {}, "
                 + "getDeclAnnosArgs = {} )",
         "@ExpectedContainer(value=FooContainer.class, "
-                + "getAnnotationVal = \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\", "
-                + "getAnnotationsVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
-                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
-                + "getDeclAnnoVal = \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\", "
-                + "getAnnosArgs = {\"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
-                + "getDeclAnnosArgs = {\"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"} )") {
+                + "getAnnotationVal = \"@FooContainer({@Foo(1), @Foo(2)})\", "
+                + "getAnnotationsVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer({@Foo(1), @Foo(2)})\"}, "
+                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer({@Foo(1), @Foo(2)})\"}, "
+                + "getDeclAnnoVal = \"@FooContainer({@Foo(1), @Foo(2)})\", "
+                + "getAnnosArgs = {\"@FooContainer({@Foo(1), @Foo(2)})\"}, "
+                + "getDeclAnnosArgs = {\"@FooContainer({@Foo(1), @Foo(2)})\"} )") {
 
             @Override
             public Iterable<? extends JavaFileObject> getTestFiles(SrcType srcType,
@@ -580,24 +580,24 @@
             }
         },
         SingleAndContainerOnSuper_Legacy(
-        "@ExpectedBase(value = Foo.class, "
-                + "getAnnotationVal = \"@Foo(value=0)\","
+        "@ExpectedBase(value=Foo.class, "
+                + "getAnnotationVal = \"@Foo(0)\","
                 + "getAnnotationsVals = {"
-                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=0)\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
+                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(0)\", \"@FooContainer({@Foo(1), @Foo(2)})\"}, "
                 + "getDeclAnnosVals = {"
-                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=0)\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
-                + "getDeclAnnoVal = \"@Foo(value=0)\", "
-                + "getAnnosArgs = {\"@Foo(value=0)\"}, "
-                + "getDeclAnnosArgs = {\"@Foo(value=0)\"} )",
+                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(0)\", \"@FooContainer({@Foo(1), @Foo(2)})\"}, "
+                + "getDeclAnnoVal = \"@Foo(0)\", "
+                + "getAnnosArgs = {\"@Foo(0)\"}, "
+                + "getDeclAnnosArgs = {\"@Foo(0)\"} )",
         "@ExpectedContainer(value=FooContainer.class, "
-                + "getAnnotationVal = \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\", "
+                + "getAnnotationVal = \"@FooContainer({@Foo(1), @Foo(2)})\", "
                 + "getAnnotationsVals = {"
-                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=0)\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
+                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(0)\", \"@FooContainer({@Foo(1), @Foo(2)})\"}, "
                 + "getDeclAnnosVals = {"
-                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=0)\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
-                + "getDeclAnnoVal = \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\", "
-                + "getAnnosArgs = {\"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
-                + "getDeclAnnosArgs = {\"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"} )") {
+                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(0)\", \"@FooContainer({@Foo(1), @Foo(2)})\"}, "
+                + "getDeclAnnoVal = \"@FooContainer({@Foo(1), @Foo(2)})\", "
+                + "getAnnosArgs = {\"@FooContainer({@Foo(1), @Foo(2)})\"}, "
+                + "getDeclAnnosArgs = {\"@FooContainer({@Foo(1), @Foo(2)})\"} )") {
 
             @Override
             public Iterable<? extends JavaFileObject> getTestFiles(SrcType srcType,
@@ -689,19 +689,19 @@
             }
         },
         BasicContainer_Inherited_Legacy(
-        "@ExpectedBase(value = Foo.class, "
+        "@ExpectedBase(value=Foo.class, "
                 + "getAnnotationVal = \"NULL\","
-                + "getAnnotationsVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
+                + "getAnnotationsVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer({@Foo(1), @Foo(2)})\"}, "
                 + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\"}, "
                 + "getDeclAnnoVal = \"NULL\", "
                 + "getAnnosArgs = {}, "
                 + "getDeclAnnosArgs = {} )",
         "@ExpectedContainer(value=FooContainer.class, "
-                + "getAnnotationVal = \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\", "
-                + "getAnnotationsVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
+                + "getAnnotationVal = \"@FooContainer({@Foo(1), @Foo(2)})\", "
+                + "getAnnotationsVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer({@Foo(1), @Foo(2)})\"}, "
                 + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\"}, "
                 + "getDeclAnnoVal = \"NULL\", "
-                + "getAnnosArgs = {\"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
+                + "getAnnosArgs = {\"@FooContainer({@Foo(1), @Foo(2)})\"}, "
                 + "getDeclAnnosArgs = {} )") {
 
             @Override
@@ -763,20 +763,20 @@
         },
         ContainerOnSuperSingleOnSub_Inherited_Legacy(
         "@ExpectedBase(value=Foo.class, "
-                + "getAnnotationVal = \"@Foo(value=0)\", "
+                + "getAnnotationVal = \"@Foo(0)\", "
                 + "getAnnotationsVals = {"
-                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\", \"@Foo(value=0)\"}, "
-                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=0)\"},"
-                + "getDeclAnnoVal = \"@Foo(value=0)\","
-                + "getAnnosArgs = {\"@Foo(value=0)\"},"
-                + "getDeclAnnosArgs = {\"@Foo(value=0)\"})",
+                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer({@Foo(1), @Foo(2)})\", \"@Foo(0)\"}, "
+                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(0)\"},"
+                + "getDeclAnnoVal = \"@Foo(0)\","
+                + "getAnnosArgs = {\"@Foo(0)\"},"
+                + "getDeclAnnosArgs = {\"@Foo(0)\"})",
         "@ExpectedContainer(value=FooContainer.class, "
-                + "getAnnotationVal = \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\", "
+                + "getAnnotationVal = \"@FooContainer({@Foo(1), @Foo(2)})\", "
                 + "getAnnotationsVals = {"
-                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\", \"@Foo(value=0)\"}, "
-                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=0)\"},"
+                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer({@Foo(1), @Foo(2)})\", \"@Foo(0)\"}, "
+                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(0)\"},"
                 + "getDeclAnnoVal = \"NULL\","
-                + "getAnnosArgs = {\"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"},"
+                + "getAnnosArgs = {\"@FooContainer({@Foo(1), @Foo(2)})\"},"
                 + "getDeclAnnosArgs = {})") {
 
             @Override
@@ -842,20 +842,20 @@
         // fail with ordering issues
         ContainerAndSingleOnSuperSingleOnSub_Inherited_Legacy(
         "@ExpectedBase(value=Foo.class, "
-                + "getAnnotationVal = \"@Foo(value=0)\", "
+                + "getAnnotationVal = \"@Foo(0)\", "
                 + "getAnnotationsVals = {"
-                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\", \"@Foo(value=0)\"}, "
-                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=0)\"},"
-                + "getDeclAnnoVal = \"@Foo(value=0)\","
-                + "getAnnosArgs = {\"@Foo(value=0)\"},"
-                + "getDeclAnnosArgs = {\"@Foo(value=0)\"})",
+                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer({@Foo(1), @Foo(2)})\", \"@Foo(0)\"}, "
+                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(0)\"},"
+                + "getDeclAnnoVal = \"@Foo(0)\","
+                + "getAnnosArgs = {\"@Foo(0)\"},"
+                + "getDeclAnnosArgs = {\"@Foo(0)\"})",
         "@ExpectedContainer(value=FooContainer.class, "
-                + "getAnnotationVal = \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\", "
+                + "getAnnotationVal = \"@FooContainer({@Foo(1), @Foo(2)})\", "
                 + "getAnnotationsVals = {"
-                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\", \"@Foo(value=0)\"}, "
-                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=0)\"},"
+                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer({@Foo(1), @Foo(2)})\", \"@Foo(0)\"}, "
+                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(0)\"},"
                 + "getDeclAnnoVal = \"NULL\","
-                + "getAnnosArgs = {\"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"},"
+                + "getAnnosArgs = {\"@FooContainer({@Foo(1), @Foo(2)})\"},"
                 + "getDeclAnnosArgs = {})") {
 
             @Override
@@ -921,21 +921,21 @@
         // fail with ordering issues
         SingleOnSuperContainerOnSub_Inherited_Legacy(
         "@ExpectedBase(value=Foo.class, "
-                + "getAnnotationVal = \"@Foo(value=0)\", "
+                + "getAnnotationVal = \"@Foo(0)\", "
                 + "getAnnotationsVals = {"
-                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=0)\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
-                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"},"
+                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(0)\", \"@FooContainer({@Foo(1), @Foo(2)})\"}, "
+                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer({@Foo(1), @Foo(2)})\"},"
                 + "getDeclAnnoVal = \"NULL\","
-                + "getAnnosArgs = {\"@Foo(value=0)\"},"
+                + "getAnnosArgs = {\"@Foo(0)\"},"
                 + "getDeclAnnosArgs = {})",
         "@ExpectedContainer(value=FooContainer.class, "
-                + "getAnnotationVal = \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\", "
+                + "getAnnotationVal = \"@FooContainer({@Foo(1), @Foo(2)})\", "
                 + "getAnnotationsVals = {"
-                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=0)\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
-                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"},"
-                + "getDeclAnnoVal = \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\","
-                + "getAnnosArgs = {\"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"},"
-                + "getDeclAnnosArgs = {\"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"})") {
+                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(0)\", \"@FooContainer({@Foo(1), @Foo(2)})\"}, "
+                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer({@Foo(1), @Foo(2)})\"},"
+                + "getDeclAnnoVal = \"@FooContainer({@Foo(1), @Foo(2)})\","
+                + "getAnnosArgs = {\"@FooContainer({@Foo(1), @Foo(2)})\"},"
+                + "getDeclAnnosArgs = {\"@FooContainer({@Foo(1), @Foo(2)})\"})") {
 
             @Override
             public Iterable<? extends JavaFileObject> getTestFiles(SrcType srcType,
@@ -998,23 +998,23 @@
         // fail with ordering issues
         SingleOnSuperContainerAndSingleOnSub_Inherited_Legacy(
         "@ExpectedBase(value=Foo.class, "
-                + "getAnnotationVal = \"@Foo(value=3)\", "
+                + "getAnnotationVal = \"@Foo(3)\", "
                 + "getAnnotationsVals = {"
-                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\", \"@Foo(value=3)\"}, "
+                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer({@Foo(1), @Foo(2)})\", \"@Foo(3)\"}, "
                 + "getDeclAnnosVals = {"
-                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\", \"@Foo(value=3)\"},"
-                + "getDeclAnnoVal = \"@Foo(value=3)\","
-                + "getAnnosArgs = {\"@Foo(value=3)\"},"
-                + "getDeclAnnosArgs = {\"@Foo(value=3)\"})",
+                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer({@Foo(1), @Foo(2)})\", \"@Foo(3)\"},"
+                + "getDeclAnnoVal = \"@Foo(3)\","
+                + "getAnnosArgs = {\"@Foo(3)\"},"
+                + "getDeclAnnosArgs = {\"@Foo(3)\"})",
         "@ExpectedContainer(value=FooContainer.class, "
-                + "getAnnotationVal = \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\", "
+                + "getAnnotationVal = \"@FooContainer({@Foo(1), @Foo(2)})\", "
                 + "getAnnotationsVals = {"
-                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\", \"@Foo(value=3)\"}, "
+                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer({@Foo(1), @Foo(2)})\", \"@Foo(3)\"}, "
                 + "getDeclAnnosVals = {"
-                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\", \"@Foo(value=3)\"},"
-                + "getDeclAnnoVal = \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\","
-                + "getAnnosArgs = {\"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"},"
-                + "getDeclAnnosArgs = {\"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"})") {
+                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer({@Foo(1), @Foo(2)})\", \"@Foo(3)\"},"
+                + "getDeclAnnoVal = \"@FooContainer({@Foo(1), @Foo(2)})\","
+                + "getAnnosArgs = {\"@FooContainer({@Foo(1), @Foo(2)})\"},"
+                + "getDeclAnnosArgs = {\"@FooContainer({@Foo(1), @Foo(2)})\"})") {
 
             @Override
             public Iterable<? extends JavaFileObject> getTestFiles(SrcType srcType,
@@ -1077,18 +1077,18 @@
         BasicRepeatable(
         "@ExpectedBase(value=Foo.class, "
                 + "getAnnotationVal = \"NULL\", "
-                + "getAnnotationsVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\" }, "
-                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"},"
+                + "getAnnotationsVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer({@Foo(1), @Foo(2)})\" }, "
+                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer({@Foo(1), @Foo(2)})\"},"
                 + "getDeclAnnoVal = \"NULL\","
-                + "getAnnosArgs = {\"@Foo(value=1)\", \"@Foo(value=2)\"},"
-                + "getDeclAnnosArgs = {\"@Foo(value=1)\", \"@Foo(value=2)\"})",
+                + "getAnnosArgs = {\"@Foo(1)\", \"@Foo(2)\"},"
+                + "getDeclAnnosArgs = {\"@Foo(1)\", \"@Foo(2)\"})",
         "@ExpectedContainer(value=FooContainer.class, "
-                + "getAnnotationVal = \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\","
-                + "getAnnotationsVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"},"
-                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
-                + "getDeclAnnoVal = \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\","
-                + "getAnnosArgs = {\"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"},"
-                + "getDeclAnnosArgs = {\"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"} )") {
+                + "getAnnotationVal = \"@FooContainer({@Foo(1), @Foo(2)})\","
+                + "getAnnotationsVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer({@Foo(1), @Foo(2)})\"},"
+                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer({@Foo(1), @Foo(2)})\"}, "
+                + "getDeclAnnoVal = \"@FooContainer({@Foo(1), @Foo(2)})\","
+                + "getAnnosArgs = {\"@FooContainer({@Foo(1), @Foo(2)})\"},"
+                + "getDeclAnnosArgs = {\"@FooContainer({@Foo(1), @Foo(2)})\"} )") {
 
             @Override
             public Iterable<? extends JavaFileObject> getTestFiles(SrcType srcType,
@@ -1179,21 +1179,21 @@
         "@ExpectedBase(value=Foo.class, "
                 + "getAnnotationVal = \"NULL\", "
                 + "getAnnotationsVals = {"
-                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
+                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer({@Foo(1), @Foo(2)})\"}, "
                 + "getDeclAnnosVals = {"
-                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"},"
+                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer({@Foo(1), @Foo(2)})\"},"
                 + "getDeclAnnoVal = \"NULL\","
-                + "getAnnosArgs = {\"@Foo(value=1)\", \"@Foo(value=2)\"},"
-                + "getDeclAnnosArgs = {\"@Foo(value=1)\", \"@Foo(value=2)\"})",
+                + "getAnnosArgs = {\"@Foo(1)\", \"@Foo(2)\"},"
+                + "getDeclAnnosArgs = {\"@Foo(1)\", \"@Foo(2)\"})",
         "@ExpectedContainer(value=FooContainer.class, "
-                + "getAnnotationVal = \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\","
+                + "getAnnotationVal = \"@FooContainer({@Foo(1), @Foo(2)})\","
                 + "getAnnotationsVals = {"
-                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"},"
+                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer({@Foo(1), @Foo(2)})\"},"
                 + "getDeclAnnosVals = {"
-                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
-                + "getDeclAnnoVal = \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\","
-                + "getAnnosArgs = {\"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"},"
-                + "getDeclAnnosArgs = {\"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"} )") {
+                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer({@Foo(1), @Foo(2)})\"}, "
+                + "getDeclAnnoVal = \"@FooContainer({@Foo(1), @Foo(2)})\","
+                + "getAnnosArgs = {\"@FooContainer({@Foo(1), @Foo(2)})\"},"
+                + "getDeclAnnosArgs = {\"@FooContainer({@Foo(1), @Foo(2)})\"} )") {
 
             @Override
             public Iterable<? extends JavaFileObject> getTestFiles(SrcType srcType,
@@ -1283,17 +1283,17 @@
         BasicContainerRepeatable_Inherited(
         "@ExpectedBase(value=Foo.class, "
                 + "getAnnotationVal = \"NULL\", "
-                + "getAnnotationsVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
+                + "getAnnotationsVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer({@Foo(1), @Foo(2)})\"}, "
                 + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\"}, "
                 + "getDeclAnnoVal = \"NULL\", "
-                + "getAnnosArgs = {\"@Foo(value=1)\", \"@Foo(value=2)\"}, "
+                + "getAnnosArgs = {\"@Foo(1)\", \"@Foo(2)\"}, "
                 + "getDeclAnnosArgs = {})",
         "@ExpectedContainer(value=FooContainer.class, "
-                + "getAnnotationVal = \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\", "
-                + "getAnnotationsVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
+                + "getAnnotationVal = \"@FooContainer({@Foo(1), @Foo(2)})\", "
+                + "getAnnotationsVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer({@Foo(1), @Foo(2)})\"}, "
                 + "getDeclAnnosVals = { \"ExpectedBase\", \"ExpectedContainer\"}, "
                 + "getDeclAnnoVal = \"NULL\", "
-                + "getAnnosArgs = {\"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
+                + "getAnnosArgs = {\"@FooContainer({@Foo(1), @Foo(2)})\"}, "
                 + "getDeclAnnosArgs = {})") {
 
             @Override
@@ -1356,21 +1356,21 @@
         RepeatableAnnoInherited(
         "@ExpectedBase(value=Foo.class, "
                 + "getAnnotationVal = \"NULL\", "
-                + "getAnnotationsVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
+                + "getAnnotationsVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer({@Foo(1), @Foo(2)})\"}, "
                 + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\"}, "
                 + // ignores inherited annotations
                 "getDeclAnnoVal = \"NULL\", "
                 + // ignores inherited
-                "getAnnosArgs = {\"@Foo(value=1)\", \"@Foo(value=2)\"}, "
+                "getAnnosArgs = {\"@Foo(1)\", \"@Foo(2)\"}, "
                 + "getDeclAnnosArgs = {})", // ignores inherited
         "@ExpectedContainer(value=FooContainer.class, "
-                + "getAnnotationVal = \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\", "
-                + "getAnnotationsVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
+                + "getAnnotationVal = \"@FooContainer({@Foo(1), @Foo(2)})\", "
+                + "getAnnotationsVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer({@Foo(1), @Foo(2)})\"}, "
                 + "getDeclAnnosVals = { \"ExpectedBase\", \"ExpectedContainer\"}, "
                 + // ignores inherited annotations
                 "getDeclAnnoVal = \"NULL\", "
                 + // ignores inherited
-                "getAnnosArgs = {\"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
+                "getAnnosArgs = {\"@FooContainer({@Foo(1), @Foo(2)})\"}, "
                 + "getDeclAnnosArgs = {})") { // ignores inherited
 
             @Override
@@ -1434,23 +1434,23 @@
         // fail with ordering issues
         SingleAnnoWithContainer(
         "@ExpectedBase(value=Foo.class, "
-                + "getAnnotationVal = \"@Foo(value=0)\", "
+                + "getAnnotationVal = \"@Foo(0)\", "
                 + "getAnnotationsVals = {"
-                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=0)\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"},"
+                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(0)\", \"@FooContainer({@Foo(1), @Foo(2)})\"},"
                 + "getDeclAnnosVals = {"
-                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=0)\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"},"
-                + "getDeclAnnoVal = \"@Foo(value=0)\","
-                + "getAnnosArgs = {\"@Foo(value=0)\", \"@Foo(value=1)\", \"@Foo(value=2)\"},"
-                + "getDeclAnnosArgs = {\"@Foo(value=0)\", \"@Foo(value=1)\",\"@Foo(value=2)\"})",
+                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(0)\", \"@FooContainer({@Foo(1), @Foo(2)})\"},"
+                + "getDeclAnnoVal = \"@Foo(0)\","
+                + "getAnnosArgs = {\"@Foo(0)\", \"@Foo(1)\", \"@Foo(2)\"},"
+                + "getDeclAnnosArgs = {\"@Foo(0)\", \"@Foo(1)\",\"@Foo(2)\"})",
         "@ExpectedContainer(value=FooContainer.class, "
-                + "getAnnotationVal = \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\", "
+                + "getAnnotationVal = \"@FooContainer({@Foo(1), @Foo(2)})\", "
                 + "getAnnotationsVals = {"
-                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=0)\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"},"
+                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(0)\", \"@FooContainer({@Foo(1), @Foo(2)})\"},"
                 + "getDeclAnnosVals = {"
-                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=0)\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
-                + "getDeclAnnoVal = \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\","
-                + "getDeclAnnosArgs = {\"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"},"
-                + "getAnnosArgs = {\"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"})") {
+                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(0)\", \"@FooContainer({@Foo(1), @Foo(2)})\"}, "
+                + "getDeclAnnoVal = \"@FooContainer({@Foo(1), @Foo(2)})\","
+                + "getDeclAnnosArgs = {\"@FooContainer({@Foo(1), @Foo(2)})\"},"
+                + "getAnnosArgs = {\"@FooContainer({@Foo(1), @Foo(2)})\"})") {
 
             @Override
             public Iterable<? extends JavaFileObject> getTestFiles(SrcType srcType,
@@ -1543,18 +1543,18 @@
         },
         AnnoOnSuperAndSubClass_Inherited(
         "@ExpectedBase(value=Foo.class, "
-                + "getAnnotationVal = \"@Foo(value=1)\", "
-                + "getAnnotationsVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=1)\" }, "
+                + "getAnnotationVal = \"@Foo(1)\", "
+                + "getAnnotationsVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(1)\" }, "
                 + // override every annotation on superClass
-                "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=1)\"}, "
+                "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(1)\"}, "
                 + // ignores inherited annotations
-                "getDeclAnnoVal = \"@Foo(value=1)\", " // ignores inherited
-                + "getAnnosArgs = {\"@Foo(value=1)\"}, "
-                + "getDeclAnnosArgs = { \"@Foo(value=1)\" })", // ignores inherited
+                "getDeclAnnoVal = \"@Foo(1)\", " // ignores inherited
+                + "getAnnosArgs = {\"@Foo(1)\"}, "
+                + "getDeclAnnosArgs = { \"@Foo(1)\" })", // ignores inherited
         "@ExpectedContainer(value=FooContainer.class, "
                 + "getAnnotationVal = \"NULL\", "
-                + "getAnnotationsVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=1)\" }, "
-                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=1)\"}, "
+                + "getAnnotationsVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(1)\" }, "
+                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(1)\"}, "
                 + // ignores inherited annotations
                 "getDeclAnnoVal = \"NULL\", " + // ignores inherited
                 "getAnnosArgs = {}, " + "getDeclAnnosArgs = {})") {
@@ -1622,23 +1622,23 @@
         // fail with ordering issues
         RepeatableOnSuperSingleOnSub_Inherited(
         "@ExpectedBase(value=Foo.class, "
-                + "getAnnotationVal = \"@Foo(value=3)\", "
+                + "getAnnotationVal = \"@Foo(3)\", "
                 + "getAnnotationsVals = {"
-                + "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=3)\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
+                + "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(3)\", \"@FooContainer({@Foo(1), @Foo(2)})\"}, "
                 + //override every annotation on superClass
-                "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=3)\"}, "
+                "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(3)\"}, "
                 + // ignores inherited annotations
-                "getDeclAnnoVal = \"@Foo(value=3)\", " // ignores inherited
-                + "getAnnosArgs = {\"@Foo(value=3)\"}, "
-                + "getDeclAnnosArgs = { \"@Foo(value=3)\" })", // ignores inherited
+                "getDeclAnnoVal = \"@Foo(3)\", " // ignores inherited
+                + "getAnnosArgs = {\"@Foo(3)\"}, "
+                + "getDeclAnnosArgs = { \"@Foo(3)\" })", // ignores inherited
         "@ExpectedContainer(value=FooContainer.class, "
-                + "getAnnotationVal = \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\", "
+                + "getAnnotationVal = \"@FooContainer({@Foo(1), @Foo(2)})\", "
                 + "getAnnotationsVals = {"
-                + "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=3)\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
-                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=3)\"}, "
+                + "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(3)\", \"@FooContainer({@Foo(1), @Foo(2)})\"}, "
+                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(3)\"}, "
                 + // ignores inherited annotations
                 "getDeclAnnoVal = \"NULL\", "
-                + "getAnnosArgs = {\"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
+                + "getAnnosArgs = {\"@FooContainer({@Foo(1), @Foo(2)})\"}, "
                 + "getDeclAnnosArgs = {}) // ignores inherited ") {
 
             @Override
@@ -1702,24 +1702,24 @@
         // fail with ordering issues
         SingleOnSuperRepeatableOnSub_Inherited(
         "@ExpectedBase(value=Foo.class, "
-                + "getAnnotationVal = \"@Foo(value=0)\", "
+                + "getAnnotationVal = \"@Foo(0)\", "
                 + "getAnnotationsVals = {"
-                + "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=0)\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
+                + "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(0)\", \"@FooContainer({@Foo(1), @Foo(2)})\"}, "
                 + //override every annotation on superClass
-                "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
+                "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer({@Foo(1), @Foo(2)})\"}, "
                 + // ignores inherited annotations
                 "getDeclAnnoVal = \"NULL\","// ignores inherited
-                + "getAnnosArgs = {\"@Foo(value=1)\", \"@Foo(value=2)\"}, "
-                + "getDeclAnnosArgs = { \"@Foo(value=1)\", \"@Foo(value=2)\"})",
+                + "getAnnosArgs = {\"@Foo(1)\", \"@Foo(2)\"}, "
+                + "getDeclAnnosArgs = { \"@Foo(1)\", \"@Foo(2)\"})",
         "@ExpectedContainer(value=FooContainer.class, "
-                + "getAnnotationVal = \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\", "
+                + "getAnnotationVal = \"@FooContainer({@Foo(1), @Foo(2)})\", "
                 + "getAnnotationsVals = {"
-                + "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=0)\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
-                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
+                + "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(0)\", \"@FooContainer({@Foo(1), @Foo(2)})\"}, "
+                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer({@Foo(1), @Foo(2)})\"}, "
                 + // ignores inherited annotations
-                "getDeclAnnoVal = \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\", "// ignores inherited
-                + "getAnnosArgs = {\"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
-                + "getDeclAnnosArgs = {\"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"})") {
+                "getDeclAnnoVal = \"@FooContainer({@Foo(1), @Foo(2)})\", "// ignores inherited
+                + "getAnnosArgs = {\"@FooContainer({@Foo(1), @Foo(2)})\"}, "
+                + "getDeclAnnosArgs = {\"@FooContainer({@Foo(1), @Foo(2)})\"})") {
 
             @Override
             public Iterable<? extends JavaFileObject> getTestFiles(SrcType srcType,
@@ -1783,20 +1783,20 @@
         // fail with ordering issues
         ContainerOnSuperSingleOnSub_Inherited(
         "@ExpectedBase(value=Foo.class, "
-                + "getAnnotationVal = \"@Foo(value=0)\", "
+                + "getAnnotationVal = \"@Foo(0)\", "
                 + "getAnnotationsVals = {"
-                + "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=0)\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
-                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=0)\"},"
-                + "getDeclAnnoVal = \"@Foo(value=0)\","
-                + "getAnnosArgs = {\"@Foo(value=0)\"},"
-                + "getDeclAnnosArgs = {\"@Foo(value=0)\"})",
+                + "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(0)\", \"@FooContainer({@Foo(1), @Foo(2)})\"}, "
+                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(0)\"},"
+                + "getDeclAnnoVal = \"@Foo(0)\","
+                + "getAnnosArgs = {\"@Foo(0)\"},"
+                + "getDeclAnnosArgs = {\"@Foo(0)\"})",
         "@ExpectedContainer(value=FooContainer.class, "
-                + "getAnnotationVal = \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\", "
+                + "getAnnotationVal = \"@FooContainer({@Foo(1), @Foo(2)})\", "
                 + "getAnnotationsVals = {"
-                + "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=0)\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
-                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=0)\"},"
+                + "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(0)\", \"@FooContainer({@Foo(1), @Foo(2)})\"}, "
+                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(0)\"},"
                 + "getDeclAnnoVal = \"NULL\","
-                + "getAnnosArgs = {\"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"},"
+                + "getAnnosArgs = {\"@FooContainer({@Foo(1), @Foo(2)})\"},"
                 + "getDeclAnnosArgs = {})") {
 
             @Override
@@ -1861,21 +1861,21 @@
         // fail with ordering issues
         SingleOnSuperContainerOnSub_Inherited(
         "@ExpectedBase(value=Foo.class, "
-                + "getAnnotationVal = \"@Foo(value=0)\", "
+                + "getAnnotationVal = \"@Foo(0)\", "
                 + "getAnnotationsVals = {"
-                + "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=0)\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
-                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"},"
+                + "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(0)\", \"@FooContainer({@Foo(1), @Foo(2)})\"}, "
+                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer({@Foo(1), @Foo(2)})\"},"
                 + "getDeclAnnoVal = \"NULL\","
-                + "getAnnosArgs = {\"@Foo(value=1)\", \"@Foo(value=2)\"},"
-                + "getDeclAnnosArgs = {\"@Foo(value=1)\", \"@Foo(value=2)\"})",
+                + "getAnnosArgs = {\"@Foo(1)\", \"@Foo(2)\"},"
+                + "getDeclAnnosArgs = {\"@Foo(1)\", \"@Foo(2)\"})",
         "@ExpectedContainer(value=FooContainer.class, "
-                + "getAnnotationVal = \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\", "
+                + "getAnnotationVal = \"@FooContainer({@Foo(1), @Foo(2)})\", "
                 + "getAnnotationsVals = {"
-                + "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=0)\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
-                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"},"
-                + "getDeclAnnoVal = \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\","
-                + "getAnnosArgs = {\"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"},"
-                + "getDeclAnnosArgs = {\"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"})") {
+                + "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(0)\", \"@FooContainer({@Foo(1), @Foo(2)})\"}, "
+                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer({@Foo(1), @Foo(2)})\"},"
+                + "getDeclAnnoVal = \"@FooContainer({@Foo(1), @Foo(2)})\","
+                + "getAnnosArgs = {\"@FooContainer({@Foo(1), @Foo(2)})\"},"
+                + "getDeclAnnosArgs = {\"@FooContainer({@Foo(1), @Foo(2)})\"})") {
 
             @Override
             public Iterable<? extends JavaFileObject> getTestFiles(SrcType srcType,
@@ -1939,23 +1939,23 @@
         // fail with ordering issues
         SingleOnSuperContainerAndSingleOnSub_Inherited(
         "@ExpectedBase(value=Foo.class, "
-                + "getAnnotationVal = \"@Foo(value=3)\", "
+                + "getAnnotationVal = \"@Foo(3)\", "
                 + "getAnnotationsVals = {"
-                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\", \"@Foo(value=3)\"}, "
+                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer({@Foo(1), @Foo(2)})\", \"@Foo(3)\"}, "
                 + "getDeclAnnosVals = {"
-                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\", \"@Foo(value=3)\"},"
-                + "getDeclAnnoVal = \"@Foo(value=3)\","
-                + "getAnnosArgs = {\"@Foo(value=1)\", \"@Foo(value=2)\", \"@Foo(value=3)\"},"
-                + "getDeclAnnosArgs = {\"@Foo(value=1)\", \"@Foo(value=2)\", \"@Foo(value=3)\"})",
+                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer({@Foo(1), @Foo(2)})\", \"@Foo(3)\"},"
+                + "getDeclAnnoVal = \"@Foo(3)\","
+                + "getAnnosArgs = {\"@Foo(1)\", \"@Foo(2)\", \"@Foo(3)\"},"
+                + "getDeclAnnosArgs = {\"@Foo(1)\", \"@Foo(2)\", \"@Foo(3)\"})",
         "@ExpectedContainer(value=FooContainer.class, "
-                + "getAnnotationVal = \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\", "
+                + "getAnnotationVal = \"@FooContainer({@Foo(1), @Foo(2)})\", "
                 + "getAnnotationsVals = {"
-                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\", \"@Foo(value=3)\"}, "
+                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer({@Foo(1), @Foo(2)})\", \"@Foo(3)\"}, "
                 + "getDeclAnnosVals = {"
-                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\", \"@Foo(value=3)\"},"
-                + "getDeclAnnoVal = \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\","
-                + "getAnnosArgs = {\"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"},"
-                + "getDeclAnnosArgs = {\"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"})") {
+                +       "\"ExpectedBase\", \"ExpectedContainer\", \"@FooContainer({@Foo(1), @Foo(2)})\", \"@Foo(3)\"},"
+                + "getDeclAnnoVal = \"@FooContainer({@Foo(1), @Foo(2)})\","
+                + "getAnnosArgs = {\"@FooContainer({@Foo(1), @Foo(2)})\"},"
+                + "getDeclAnnosArgs = {\"@FooContainer({@Foo(1), @Foo(2)})\"})") {
 
             @Override
             public Iterable<? extends JavaFileObject> getTestFiles(SrcType srcType,
@@ -2019,20 +2019,20 @@
         // fail with ordering issues
         ContainerAndSingleOnSuperSingleOnSub_Inherited(
         "@ExpectedBase(value=Foo.class, "
-                + "getAnnotationVal = \"@Foo(value=0)\", "
+                + "getAnnotationVal = \"@Foo(0)\", "
                 + "getAnnotationsVals = {"
-                + "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=0)\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
-                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=0)\"},"
-                + "getDeclAnnoVal = \"@Foo(value=0)\","
-                + "getAnnosArgs = {\"@Foo(value=0)\"},"
-                + "getDeclAnnosArgs = {\"@Foo(value=0)\"})",
+                + "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(0)\", \"@FooContainer({@Foo(1), @Foo(2)})\"}, "
+                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(0)\"},"
+                + "getDeclAnnoVal = \"@Foo(0)\","
+                + "getAnnosArgs = {\"@Foo(0)\"},"
+                + "getDeclAnnosArgs = {\"@Foo(0)\"})",
         "@ExpectedContainer(value=FooContainer.class, "
-                + "getAnnotationVal = \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\", "
+                + "getAnnotationVal = \"@FooContainer({@Foo(1), @Foo(2)})\", "
                 + "getAnnotationsVals = {"
-                + "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=0)\", \"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"}, "
-                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(value=0)\"},"
+                + "\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(0)\", \"@FooContainer({@Foo(1), @Foo(2)})\"}, "
+                + "getDeclAnnosVals = {\"ExpectedBase\", \"ExpectedContainer\", \"@Foo(0)\"},"
                 + "getDeclAnnoVal = \"NULL\","
-                + "getAnnosArgs = {\"@FooContainer(value={@Foo(value=1), @Foo(value=2)})\"},"
+                + "getAnnosArgs = {\"@FooContainer({@Foo(1), @Foo(2)})\"},"
                 + "getDeclAnnosArgs = {})") {
 
             @Override
--- a/test/langtools/tools/javac/annotations/typeAnnotations/classfile/AnonymousExtendsTest.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/annotations/typeAnnotations/classfile/AnonymousExtendsTest.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -52,10 +52,10 @@
 
     public void testIt() {
         checkAnnotations(TestClass.class.getAnnotatedSuperclass(),
-              "[@AnonymousExtendsTest$TA(value=1)],[@AnonymousExtendsTest$TA(value=2)]");
+              "[@AnonymousExtendsTest$TA(1)],[@AnonymousExtendsTest$TA(2)]");
         checkAnnotations(new @TA(3) ArrayList<@TA(4) List<Number>>() {
                          }.getClass().getAnnotatedSuperclass(),
-              "[@AnonymousExtendsTest$TA(value=3)],[@AnonymousExtendsTest$TA(value=4)]");
+              "[@AnonymousExtendsTest$TA(3)],[@AnonymousExtendsTest$TA(4)]");
     }
 
     public void checkAnnotations(AnnotatedType type, String expected) {
@@ -74,4 +74,4 @@
     public static void main(String[] args) {
         new AnonymousExtendsTest().testIt();
     }
-}
\ No newline at end of file
+}
--- a/test/langtools/tools/javac/api/T6395981.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/api/T6395981.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,7 @@
  * @run main/fail T6395981
  * @run main/fail T6395981 RELEASE_3 RELEASE_5 RELEASE_6
  * @run main/fail T6395981 RELEASE_0 RELEASE_1 RELEASE_2 RELEASE_3 RELEASE_4 RELEASE_5 RELEASE_6
- * @run main T6395981 RELEASE_3 RELEASE_4 RELEASE_5 RELEASE_6 RELEASE_7 RELEASE_8 RELEASE_9 RELEASE_10 RELEASE_11 RELEASE_12  RELEASE_13
+ * @run main T6395981 RELEASE_3 RELEASE_4 RELEASE_5 RELEASE_6 RELEASE_7 RELEASE_8 RELEASE_9 RELEASE_10 RELEASE_11 RELEASE_12 RELEASE_13 RELEASE_14
  */
 
 import java.util.EnumSet;
--- a/test/langtools/tools/javac/classfiles/ClassVersionChecker.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/classfiles/ClassVersionChecker.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -48,7 +48,8 @@
         TEN("10", 54),
         ELEVEN("11", 55),
         TWELVE("12", 56),
-        THIRTEEN("13", 57);
+        THIRTEEN("13", 57),
+        FOURTEEN("14", 58);
 
         private Version(String release, int classFileVer) {
             this.release = release;
--- a/test/langtools/tools/javac/diags/examples/InvalidYield.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/diags/examples/InvalidYield.java	Fri Jun 21 09:05:45 2019 -0700
@@ -22,7 +22,7 @@
  */
 
 // key: compiler.err.invalid.yield
-// options: --enable-preview --source 13
+// options: --enable-preview --source ${jdk.version}
 
 class BreakComplexValueNoSwitchExpressions {
     void t() {
--- a/test/langtools/tools/javac/diags/examples/InvalidYieldWarning.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/diags/examples/InvalidYieldWarning.java	Fri Jun 21 09:05:45 2019 -0700
@@ -22,7 +22,7 @@
  */
 
 // key: compiler.warn.invalid.yield
-// options: --source 13
+// options: --source ${jdk.version}
 
 class BreakComplexValueNoSwitchExpressions {
     void t() {
--- a/test/langtools/tools/javac/diags/examples/NoSwitchExpression.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/diags/examples/NoSwitchExpression.java	Fri Jun 21 09:05:45 2019 -0700
@@ -22,7 +22,7 @@
  */
 
 // key: compiler.err.no.switch.expression
-// options: --enable-preview --source 13
+// options: --enable-preview --source ${jdk.version}
 
 class BreakComplexValueNoSwitchExpressions {
     void t() {
--- a/test/langtools/tools/javac/diags/examples/NoSwitchExpressionQualify.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/diags/examples/NoSwitchExpressionQualify.java	Fri Jun 21 09:05:45 2019 -0700
@@ -22,7 +22,7 @@
  */
 
 // key: compiler.err.no.switch.expression.qualify
-// options: --enable-preview --source 13
+// options: --enable-preview --source ${jdk.version}
 
 class BreakComplexValueNoSwitchExpressions {
     void t() {
--- a/test/langtools/tools/javac/lib/JavacTestingAbstractProcessor.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/lib/JavacTestingAbstractProcessor.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 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
@@ -110,7 +110,7 @@
      * corresponding platform visitor type.
      */
 
-    @SupportedSourceVersion(RELEASE_13)
+    @SupportedSourceVersion(RELEASE_14)
     public static abstract class AbstractAnnotationValueVisitor<R, P> extends AbstractAnnotationValueVisitor9<R, P> {
 
         /**
@@ -121,7 +121,7 @@
         }
     }
 
-    @SupportedSourceVersion(RELEASE_13)
+    @SupportedSourceVersion(RELEASE_14)
     public static abstract class AbstractElementVisitor<R, P> extends AbstractElementVisitor9<R, P> {
         /**
          * Constructor for concrete subclasses to call.
@@ -131,7 +131,7 @@
         }
     }
 
-    @SupportedSourceVersion(RELEASE_13)
+    @SupportedSourceVersion(RELEASE_14)
     public static abstract class AbstractTypeVisitor<R, P> extends AbstractTypeVisitor9<R, P> {
         /**
          * Constructor for concrete subclasses to call.
@@ -141,7 +141,7 @@
         }
     }
 
-    @SupportedSourceVersion(RELEASE_13)
+    @SupportedSourceVersion(RELEASE_14)
     public static class ElementKindVisitor<R, P> extends ElementKindVisitor9<R, P> {
         /**
          * Constructor for concrete subclasses; uses {@code null} for the
@@ -162,7 +162,7 @@
         }
     }
 
-    @SupportedSourceVersion(RELEASE_13)
+    @SupportedSourceVersion(RELEASE_14)
     public static class ElementScanner<R, P> extends ElementScanner9<R, P> {
         /**
          * Constructor for concrete subclasses; uses {@code null} for the
@@ -181,7 +181,7 @@
         }
     }
 
-    @SupportedSourceVersion(RELEASE_13)
+    @SupportedSourceVersion(RELEASE_14)
     public static class SimpleAnnotationValueVisitor<R, P> extends SimpleAnnotationValueVisitor9<R, P> {
         /**
          * Constructor for concrete subclasses; uses {@code null} for the
@@ -202,7 +202,7 @@
         }
     }
 
-    @SupportedSourceVersion(RELEASE_13)
+    @SupportedSourceVersion(RELEASE_14)
     public static class SimpleElementVisitor<R, P> extends SimpleElementVisitor9<R, P> {
         /**
          * Constructor for concrete subclasses; uses {@code null} for the
@@ -223,7 +223,7 @@
         }
     }
 
-    @SupportedSourceVersion(RELEASE_13)
+    @SupportedSourceVersion(RELEASE_14)
     public static class SimpleTypeVisitor<R, P> extends SimpleTypeVisitor9<R, P> {
         /**
          * Constructor for concrete subclasses; uses {@code null} for the
@@ -244,7 +244,7 @@
         }
     }
 
-    @SupportedSourceVersion(RELEASE_13)
+    @SupportedSourceVersion(RELEASE_14)
     public static class TypeKindVisitor<R, P> extends TypeKindVisitor9<R, P> {
         /**
          * Constructor for concrete subclasses to call; uses {@code null}
--- a/test/langtools/tools/javac/modules/AnnotationsOnModules.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/modules/AnnotationsOnModules.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -609,11 +609,11 @@
             new TestCase("package test; public enum E {A, B;}",
                          "public E value();",
                          "test.E.A",
-                         "@test.A(test.E.A)"),
+                         "@test.A(A)"),
             new TestCase("package test; public enum E {A, B;}",
                          "public E[] value();",
                          "{test.E.A, test.E.B}",
-                         "@test.A({test.E.A, test.E.B})"),
+                         "@test.A({A, B})"),
             new TestCase("package test; public class Extra {}",
                          "public Class value();",
                          "test.Extra.class",
@@ -641,7 +641,7 @@
             new TestCase("package test; public enum E {A;}",
                         "int integer(); boolean flag(); double value(); String string(); E enumeration(); ",
                         "enumeration = test.E.A, integer = 42, flag = true, value = 3.5, string = \"Text\"",
-                        "@test.A(enumeration=test.E.A, integer=42, flag=true, value=3.5, string=\"Text\")"),
+                        "@test.A(enumeration=A, integer=42, flag=true, value=3.5, string=\"Text\")"),
         };
 
         Path extraSrc = base.resolve("extra-src");
--- a/test/langtools/tools/javac/preview/classReaderTest/Client.nopreview.out	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/preview/classReaderTest/Client.nopreview.out	Fri Jun 21 09:05:45 2019 -0700
@@ -1,2 +1,2 @@
-- compiler.err.preview.feature.disabled.classfile: Bar.class, 13
+- compiler.err.preview.feature.disabled.classfile: Bar.class, 14
 1 error
--- a/test/langtools/tools/javac/preview/classReaderTest/Client.preview.out	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/preview/classReaderTest/Client.preview.out	Fri Jun 21 09:05:45 2019 -0700
@@ -1,4 +1,4 @@
-- compiler.warn.preview.feature.use.classfile: Bar.class, 13
+- compiler.warn.preview.feature.use.classfile: Bar.class, 14
 - compiler.err.warnings.and.werror
 1 error
 1 warning
--- a/test/langtools/tools/javac/processing/messager/6388543/T6388543.out	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/processing/messager/6388543/T6388543.out	Fri Jun 21 09:05:45 2019 -0700
@@ -7,9 +7,9 @@
 T6388543.java:33:16: compiler.note.proc.messager: note:value @A({4, 5}) + {4, 5}
 T6388543.java:33:17: compiler.note.proc.messager: note:value @A({4, 5}) + 4
 T6388543.java:33:20: compiler.note.proc.messager: note:value @A({4, 5}) + 5
-T6388543.java:36:12: compiler.note.proc.messager: note:value @B(x=@C(x=E.ONE, y=E.TWO), y=@C(x=E.ONE, y=E.TWO)) + @C(x=E.ONE, y=E.TWO)
-T6388543.java:36:20: compiler.note.proc.messager: note:value @B(x=@C(x=E.ONE, y=E.TWO), y=@C(x=E.ONE, y=E.TWO)) + E.ONE
-T6388543.java:36:31: compiler.note.proc.messager: note:value @B(x=@C(x=E.ONE, y=E.TWO), y=@C(x=E.ONE, y=E.TWO)) + E.TWO
-T6388543.java:36:42: compiler.note.proc.messager: note:value @B(x=@C(x=E.ONE, y=E.TWO), y=@C(x=E.ONE, y=E.TWO)) + @C(x=E.ONE, y=E.TWO)
-T6388543.java:36:50: compiler.note.proc.messager: note:value @B(x=@C(x=E.ONE, y=E.TWO), y=@C(x=E.ONE, y=E.TWO)) + E.ONE
-T6388543.java:36:61: compiler.note.proc.messager: note:value @B(x=@C(x=E.ONE, y=E.TWO), y=@C(x=E.ONE, y=E.TWO)) + E.TWO
+T6388543.java:36:12: compiler.note.proc.messager: note:value @B(x=@C(x=ONE, y=TWO), y=@C(x=ONE, y=TWO)) + @C(x=ONE, y=TWO)
+T6388543.java:36:20: compiler.note.proc.messager: note:value @B(x=@C(x=ONE, y=TWO), y=@C(x=ONE, y=TWO)) + ONE
+T6388543.java:36:31: compiler.note.proc.messager: note:value @B(x=@C(x=ONE, y=TWO), y=@C(x=ONE, y=TWO)) + TWO
+T6388543.java:36:42: compiler.note.proc.messager: note:value @B(x=@C(x=ONE, y=TWO), y=@C(x=ONE, y=TWO)) + @C(x=ONE, y=TWO)
+T6388543.java:36:50: compiler.note.proc.messager: note:value @B(x=@C(x=ONE, y=TWO), y=@C(x=ONE, y=TWO)) + ONE
+T6388543.java:36:61: compiler.note.proc.messager: note:value @B(x=@C(x=ONE, y=TWO), y=@C(x=ONE, y=TWO)) + TWO
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/langtools/tools/javac/processing/model/element/AnnotationToStringTest.java	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,405 @@
+/*
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8164819
+ * @summary Test of toString on normal annotations
+ * @library /tools/javac/lib
+ * @build   JavacTestingAbstractProcessor AnnotationToStringTest
+ * @compile -processor AnnotationToStringTest -proc:only AnnotationToStringTest.java
+ */
+
+// See also the sibling core reflection test
+// test/jdk/java/lang/annotation/AnnotationToStringTest.java
+
+import java.lang.annotation.*;
+import java.lang.reflect.*;
+import java.util.*;
+import javax.annotation.processing.*;
+import javax.lang.model.AnnotatedConstruct;
+import javax.lang.model.element.*;
+import javax.lang.model.util.*;
+
+/**
+ * The expected string values are stored in @ExpectedString
+ * annotations. The essence of the test is comparing the toString()
+ * result of annotations to the corresponding ExpectedString.value().
+ *
+ * Two flavors of comparison are made:
+ *
+ * 1) Against the AnnotationMirror value from getAnnotationMirrors()
+ *
+ * 2) Against the *Annotation* from getAnnotation(Class<A>)
+ *
+ * These have separate but related implementations.
+ */
+public class AnnotationToStringTest extends JavacTestingAbstractProcessor {
+    public boolean process(Set<? extends TypeElement> annotations,
+                           RoundEnvironment roundEnv) {
+        if (!roundEnv.processingOver()) {
+
+            int failures = 0;
+
+            TypeElement primHostElt =
+                Objects.requireNonNull(elements.getTypeElement("AnnotationToStringTest.PrimHost"));
+
+            List<? extends AnnotationMirror> annotMirrors = primHostElt.getAnnotationMirrors();
+
+            String expectedString = primHostElt.getAnnotation(MostlyPrimitive.class).toString();
+
+            failures += check(expectedString,
+                              primHostElt.getAnnotation(ExpectedString.class).value());
+
+            failures += check(expectedString,
+                              retrieveAnnotationMirrorAsString(primHostElt,
+                                                               "MostlyPrimitive"));
+            failures += classyTest();
+            failures += arrayAnnotationTest();
+
+            if (failures > 0)
+                throw new RuntimeException(failures + " failures");
+        }
+        return true;
+    }
+
+    /**
+     * Examine annotation mirrors, find the one that matches
+     * annotationName, and return its toString value.
+     */
+    private String retrieveAnnotationMirrorAsString(AnnotatedConstruct annotated,
+                                                    String annotationName) {
+        return retrieveAnnotationMirror(annotated, annotationName).toString();
+    }
+
+    private String retrieveAnnotationMirrorValue(AnnotatedConstruct annotated,
+                                                 String annotationName) {
+        AnnotationMirror annotationMirror =
+            retrieveAnnotationMirror(annotated, annotationName);
+        for (var entry : annotationMirror.getElementValues().entrySet()) {
+            if (entry.getKey().getSimpleName().contentEquals("value")) {
+                return entry.getValue().toString();
+            }
+        }
+        throw new RuntimeException("Annotation value() method not found: " +
+                                   annotationMirror.toString());
+    }
+
+    private AnnotationMirror retrieveAnnotationMirror(AnnotatedConstruct annotated,
+                                                      String annotationName) {
+        for (AnnotationMirror annotationMirror : annotated.getAnnotationMirrors()) {
+            System.out.println(annotationMirror.getAnnotationType());
+            if (annotationMirror
+                .getAnnotationType()
+                .toString()
+                .equals(annotationName) ) {
+                return annotationMirror;
+            }
+        }
+        throw new RuntimeException("Annotation " + annotationName + " not found.");
+    }
+
+    private static int check(String expected, String actual) {
+        if (!expected.equals(actual)) {
+            System.err.printf("ERROR: Expected ''%s'';%ngot             ''%s''.\n",
+                              expected, actual);
+            return 1;
+        } else
+            return 0;
+    }
+
+    @ExpectedString(
+        "@MostlyPrimitive(c0='a', "+
+        "c1='\\'', " +
+        "b0=(byte)0x01, " +
+        "i0=1, " +
+        "i1=2, " +
+        "f0=1.0f, " +
+        "f1=0.0f/0.0f, " +
+        "d0=0.0, " +
+        "d1=1.0/0.0, " +
+        "l0=5L, " +
+        "l1=9223372036854775807L, " +
+        "l2=-9223372036854775808L, " +
+        "l3=-2147483648L, " +
+        "s0=\"Hello world.\", " +
+        "s1=\"a\\\"b\", " +
+        "class0=Obj[].class, " +
+        "classArray={Obj[].class})")
+    @MostlyPrimitive(
+        c0='a',
+        c1='\'',
+        b0=1,
+        i0=1,
+        i1=2,
+        f0=1.0f,
+        f1=Float.NaN,
+        d0=0.0,
+        d1=2.0/0.0,
+        l0=5,
+        l1=Long.MAX_VALUE,
+        l2=Long.MIN_VALUE,
+        l3=Integer.MIN_VALUE,
+        s0="Hello world.",
+        s1="a\"b",
+        class0=Obj[].class,
+        classArray={Obj[].class}
+    )
+    static class PrimHost{}
+
+    private int classyTest() {
+        int failures = 0;
+
+        TypeElement annotationHostElt =
+            Objects.requireNonNull(elements.getTypeElement("AnnotationToStringTest.AnnotationHost"));
+
+        for (VariableElement f : ElementFilter.fieldsIn(annotationHostElt.getEnclosedElements())) {
+            String expected = f.getAnnotation(ExpectedString.class).value();
+            Annotation a = f.getAnnotation(Classy.class);
+
+            System.out.println(a);
+            failures += check(expected, a.toString());
+
+            failures += check(expected,
+                              retrieveAnnotationMirrorAsString(f, "Classy") );
+        }
+        return failures;
+    }
+
+    static class AnnotationHost {
+        @ExpectedString(
+       "@Classy(Obj.class)")
+        @Classy(Obj.class)
+        public int f0;
+
+        @ExpectedString(
+       "@Classy(Obj[].class)")
+        @Classy(Obj[].class)
+        public int f1;
+
+        @ExpectedString(
+       "@Classy(Obj[][].class)")
+        @Classy(Obj[][].class)
+        public int f2;
+
+        @ExpectedString(
+       "@Classy(Obj[][][].class)")
+        @Classy(Obj[][][].class)
+        public int f3;
+
+        @ExpectedString(
+       "@Classy(int.class)")
+        @Classy(int.class)
+        public int f4;
+
+        @ExpectedString(
+       "@Classy(int[][][].class)")
+        @Classy(int[][][].class)
+        public int f5;
+    }
+
+    /**
+     * Each field should have two annotations, the first being
+     * @ExpectedString and the second the annotation under test.
+     */
+    private int arrayAnnotationTest() {
+        int failures = 0;
+
+        TypeElement arrayAnnotationHostElt =
+            Objects.requireNonNull(elements
+                                   .getTypeElement("AnnotationToStringTest.ArrayAnnotationHost"));
+
+        for (VariableElement f :
+                 ElementFilter.fieldsIn(arrayAnnotationHostElt.getEnclosedElements())) {
+            var annotations = f.getAnnotationMirrors();
+            // String expected = retrieveAnnotationMirrorValue(f, "ExpectedString");
+            String expected = f.getAnnotation(ExpectedString.class).value();
+
+            // Problem with
+            // Need a de-quote method...
+            // expected = expected.substring(1, expected.length() - 1);
+
+              failures +=
+                  check(expected,
+                        annotations.get(1).toString());
+
+            // Get the array-valued annotation as an annotation
+              failures +=
+                  check(expected,
+                        retrieveAnnotationMirrorAsString(f,
+                                                         annotations.get(1)
+                                                         .getAnnotationType().toString()));
+        }
+        return failures;
+    }
+
+    static class ArrayAnnotationHost {
+        @ExpectedString(
+       "@BooleanArray({true, false, true})")
+        @BooleanArray({true, false, true})
+        public boolean[]   f0;
+
+        @ExpectedString(
+       "@FloatArray({3.0f, 4.0f, 0.0f/0.0f, -1.0f/0.0f, 1.0f/0.0f})")
+        @FloatArray({3.0f, 4.0f, Float.NaN, Float.NEGATIVE_INFINITY, Float.POSITIVE_INFINITY})
+        public float[]     f1;
+
+        @ExpectedString(
+       "@DoubleArray({1.0, 2.0, 0.0/0.0, 1.0/0.0, -1.0/0.0})")
+        @DoubleArray({1.0, 2.0, Double.NaN, Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY,})
+        public double[]    f2;
+
+
+        @ExpectedString(
+       "@ByteArray({(byte)0x0a, (byte)0x0b, (byte)0x0c})")
+        @ByteArray({10, 11, 12})
+        public byte[]      f3;
+
+        @ExpectedString(
+       "@ShortArray({0, 4, 5})")
+        @ShortArray({0, 4, 5})
+        public short[]     f4;
+
+        @ExpectedString(
+       "@CharArray({'a', 'b', 'c', '\\''})")
+        @CharArray({'a', 'b', 'c', '\''})
+        public char[]      f5;
+
+        @ExpectedString(
+       "@IntArray({1})")
+        @IntArray({1})
+        public int[]       f6;
+
+        @ExpectedString(
+       "@LongArray({-9223372036854775808L, -2147483649L, -2147483648L," +
+                " -2147483647L, 2147483648L, 9223372036854775807L})")
+        @LongArray({Long.MIN_VALUE, Integer.MIN_VALUE-1L, Integer.MIN_VALUE,
+                -Integer.MAX_VALUE, Integer.MAX_VALUE+1L, Long.MAX_VALUE})
+        public long[]      f7;
+
+        @ExpectedString(
+       "@StringArray({\"A\", \"B\", \"C\", \"\\\"Quote\\\"\"})")
+        @StringArray({"A", "B", "C", "\"Quote\""})
+        public String[]    f8;
+
+        @ExpectedString(
+       "@ClassArray({int.class, Obj[].class})")
+        @ClassArray({int.class, Obj[].class})
+        public Class<?>[]  f9;
+
+        @ExpectedString(
+       "@EnumArray({SOURCE})")
+        @EnumArray({RetentionPolicy.SOURCE})
+        public RetentionPolicy[]  f10;
+    }
+}
+
+// ------------ Supporting types ------------
+
+class Obj {}
+
+@Retention(RetentionPolicy.RUNTIME)
+@interface ExpectedString {
+    String value();
+}
+
+@Retention(RetentionPolicy.RUNTIME)
+@interface Classy {
+    Class<?> value();
+}
+
+@Retention(RetentionPolicy.RUNTIME)
+@interface BooleanArray {
+    boolean[] value();
+}
+
+@Retention(RetentionPolicy.RUNTIME)
+@interface FloatArray {
+    float[] value();
+}
+
+@Retention(RetentionPolicy.RUNTIME)
+@interface DoubleArray {
+    double[] value();
+}
+
+@Retention(RetentionPolicy.RUNTIME)
+@interface ByteArray {
+    byte[] value();
+}
+
+@Retention(RetentionPolicy.RUNTIME)
+@interface ShortArray {
+    short[] value();
+}
+
+@Retention(RetentionPolicy.RUNTIME)
+@interface CharArray {
+    char[] value();
+}
+
+@Retention(RetentionPolicy.RUNTIME)
+@interface IntArray {
+    int[] value();
+}
+
+@Retention(RetentionPolicy.RUNTIME)
+@interface LongArray {
+    long[] value();
+}
+
+@Retention(RetentionPolicy.RUNTIME)
+@interface ClassArray {
+    Class<?>[] value() default {int.class, Obj[].class};
+}
+
+@Retention(RetentionPolicy.RUNTIME)
+@interface StringArray {
+    String[] value();
+}
+
+@Retention(RetentionPolicy.RUNTIME)
+@interface EnumArray {
+    RetentionPolicy[] value();
+}
+
+@Retention(RetentionPolicy.RUNTIME)
+@interface MostlyPrimitive {
+    char   c0();
+    char   c1();
+    byte   b0();
+    int    i0();
+    int    i1();
+    float  f0();
+    float  f1();
+    double d0();
+    double d1();
+    long   l0();
+    long   l1();
+    long   l2();
+    long   l3();
+    String s0();
+    String s1();
+    Class<?> class0();
+    Class<?>[] classArray();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/langtools/tools/javac/processing/model/element/TestExecutableReceiverType.java	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,112 @@
+/*
+ * Copyright (c) 2013, 2019, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8222369
+ * @summary Test behavior of ExecutableElement.getReceiverType
+ * @library /tools/javac/lib
+ * @build   JavacTestingAbstractProcessor TestExecutableReceiverType
+ * @compile -processor TestExecutableReceiverType -proc:only TestExecutableReceiverType.java
+ */
+
+import java.util.Set;
+import java.lang.annotation.*;
+import javax.annotation.processing.*;
+import javax.lang.model.element.*;
+import javax.lang.model.type.*;
+import javax.lang.model.util.*;
+import static javax.tools.Diagnostic.Kind.*;
+
+/**
+ * Verify that proper type objects are returned from ExecutableElement.getReceiverType
+ */
+public class TestExecutableReceiverType extends JavacTestingAbstractProcessor {
+    public boolean process(Set<? extends TypeElement> annotations,
+                           RoundEnvironment roundEnv) {
+        if (!roundEnv.processingOver()) {
+            int count = 0;
+            count += testType(elements.getTypeElement("MethodHost"));
+            count += testType(elements.getTypeElement("MethodHost.Nested"));
+
+            if (count == 0) {
+                messager.printMessage(ERROR, "No executables visited.");
+            }
+        }
+        return true;
+    }
+
+    int testType(TypeElement typeElement) {
+        int count = 0;
+        for (ExecutableElement executable :
+                 ElementFilter.constructorsIn(typeElement.getEnclosedElements())) {
+            count += testExecutable(executable);
+        }
+
+        for (ExecutableElement executable :
+                 ElementFilter.methodsIn(typeElement.getEnclosedElements())) {
+            count += testExecutable(executable);
+        }
+        return count;
+    }
+
+    int testExecutable(ExecutableElement executable) {
+        TypeKind expectedKind = executable.getAnnotation(ReceiverTypeKind.class).value();
+        TypeKind actualKind = executable.getReceiverType().getKind();
+
+        if (actualKind != expectedKind) {
+            messager.printMessage(ERROR,
+                                  String.format("Unexpected TypeKind on receiver of %s:" +
+                                                " expected %s\t got %s%n",
+                                                executable, expectedKind, actualKind));
+        }
+        return 1;
+    }
+}
+
+@Retention(RetentionPolicy.RUNTIME)
+@interface ReceiverTypeKind {
+    TypeKind value();
+}
+
+/**
+ * Class to host various methods, etc.
+ */
+class MethodHost {
+    @ReceiverTypeKind(TypeKind.NONE)
+    public MethodHost() {}
+
+    @ReceiverTypeKind(TypeKind.NONE)
+    public static void foo() {return;}
+
+    @ReceiverTypeKind(TypeKind.NONE)
+    public void bar() {return;}
+
+    @ReceiverTypeKind(TypeKind.DECLARED)
+    public void quux(MethodHost this) {return;}
+
+    private class Nested {
+        @ReceiverTypeKind(TypeKind.DECLARED)
+        public Nested(MethodHost MethodHost.this) {}
+    }
+}
--- a/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/MixRepeatableAndOfficialContainerBasicTest.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/MixRepeatableAndOfficialContainerBasicTest.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -37,11 +37,11 @@
 
 @ExpectedBase(
         value = Bar.class,
-        getAnnotation = "@Bar(value=0)",
+        getAnnotation = "@Bar(0)",
         getAnnotationsByType = {
-            "@Bar(value=0)",
-            "@Bar(value=1)",
-            "@Bar(value=2)"
+            "@Bar(0)",
+            "@Bar(1)",
+            "@Bar(2)"
         },
         getAllAnnotationMirrors = {
             "@Bar(0)",
@@ -57,19 +57,19 @@
         })
 @ExpectedContainer(
         value = BarContainer.class,
-        getAnnotation = "@BarContainer(value={@Bar(value=1), @Bar(value=2)})",
-        getAnnotationsByType = {"@BarContainer(value={@Bar(value=1), @Bar(value=2)})"})
+        getAnnotation = "@BarContainer({@Bar(1), @Bar(2)})",
+        getAnnotationsByType = {"@BarContainer({@Bar(1), @Bar(2)})"})
 @Bar(value = 0)
 @BarContainer(value = {@Bar(value = 1), @Bar(value = 2)})
 class MixRepeatableAndOfficialContainerBasicTest {
 
     @ExpectedBase(
             value = Bar.class,
-            getAnnotation = "@Bar(value=0)",
+            getAnnotation = "@Bar(0)",
             getAnnotationsByType = {
-                "@Bar(value=0)",
-                "@Bar(value=1)",
-                "@Bar(value=2)"
+                "@Bar(0)",
+                "@Bar(1)",
+                "@Bar(2)"
             },
             getAllAnnotationMirrors = {
                 "@Bar(0)",
@@ -85,19 +85,19 @@
             })
     @ExpectedContainer(
             value = BarContainer.class,
-            getAnnotation = "@BarContainer(value={@Bar(value=1), @Bar(value=2)})",
-            getAnnotationsByType = {"@BarContainer(value={@Bar(value=1), @Bar(value=2)})"})
+            getAnnotation = "@BarContainer({@Bar(1), @Bar(2)})",
+            getAnnotationsByType = {"@BarContainer({@Bar(1), @Bar(2)})"})
     @Bar(value = 0)
     @BarContainer(value = {@Bar(value = 1), @Bar(value = 2)})
     int testField = 0;
 
     @ExpectedBase(
             value = Bar.class,
-            getAnnotation = "@Bar(value=0)",
+            getAnnotation = "@Bar(0)",
             getAnnotationsByType = {
-                "@Bar(value=0)",
-                "@Bar(value=1)",
-                "@Bar(value=2)"
+                "@Bar(0)",
+                "@Bar(1)",
+                "@Bar(2)"
             },
             getAllAnnotationMirrors = {
                 "@Bar(0)",
@@ -113,8 +113,8 @@
             })
     @ExpectedContainer(
             value = BarContainer.class,
-            getAnnotation = "@BarContainer(value={@Bar(value=1), @Bar(value=2)})",
-            getAnnotationsByType = {"@BarContainer(value={@Bar(value=1), @Bar(value=2)})"})
+            getAnnotation = "@BarContainer({@Bar(1), @Bar(2)})",
+            getAnnotationsByType = {"@BarContainer({@Bar(1), @Bar(2)})"})
     @Bar(value = 0)
     @BarContainer(value = {@Bar(value = 1), @Bar(value = 2)})
     void testMethod() {}
--- a/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/MixRepeatableAndOfficialContainerInheritedA1Test.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/MixRepeatableAndOfficialContainerInheritedA1Test.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -35,15 +35,15 @@
  * MixRepeatableAndOfficialContainerInheritedA1Test.java
  */
 
-@BarInherited(value = 0)
+@BarInherited(0)
 class E {}
 
 @ExpectedBase(
         value = BarInherited.class,
-        getAnnotation = "@BarInherited(value=0)",
+        getAnnotation = "@BarInherited(0)",
         getAnnotationsByType = {
-            "@BarInherited(value=1)",
-            "@BarInherited(value=2)"
+            "@BarInherited(1)",
+            "@BarInherited(2)"
         },
         getAllAnnotationMirrors = {
             "@BarInherited(0)",
@@ -59,8 +59,8 @@
 @ExpectedContainer(
         value = BarInheritedContainer.class,
         getAnnotation = "@BarInheritedContainer("
-        + "value={@BarInherited(value=1), @BarInherited(value=2)})",
+        + "{@BarInherited(1), @BarInherited(2)})",
         getAnnotationsByType = {"@BarInheritedContainer("
-                + "value={@BarInherited(value=1), @BarInherited(value=2)})"})
-@BarInheritedContainer(value = {@BarInherited(value = 1), @BarInherited(value = 2)})
+                + "{@BarInherited(1), @BarInherited(2)})"})
+@BarInheritedContainer({@BarInherited(1), @BarInherited(2)})
 class MixRepeatableAndOfficialContainerInheritedA1Test extends E {}
--- a/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/MixRepeatableAndOfficialContainerInheritedA2Test.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/MixRepeatableAndOfficialContainerInheritedA2Test.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -35,16 +35,16 @@
  * MixRepeatableAndOfficialContainerInheritedA2Test.java
  */
 
-@BarInherited(value = 0)
+@BarInherited(0)
 class N {}
 
 @ExpectedBase(
         value = BarInherited.class,
-        getAnnotation = "@BarInherited(value=3)",
+        getAnnotation = "@BarInherited(3)",
         getAnnotationsByType = {
-            "@BarInherited(value=1)",
-            "@BarInherited(value=2)",
-            "@BarInherited(value=3)"
+            "@BarInherited(1)",
+            "@BarInherited(2)",
+            "@BarInherited(3)"
         },
         getAllAnnotationMirrors = {
             "@BarInherited(3)",
@@ -61,9 +61,9 @@
 @ExpectedContainer(
         value = BarInheritedContainer.class,
         getAnnotation = "@BarInheritedContainer("
-        + "value={@BarInherited(value=1), @BarInherited(value=2)})",
+        + "{@BarInherited(1), @BarInherited(2)})",
         getAnnotationsByType = {"@BarInheritedContainer("
-                + "value={@BarInherited(value=1), @BarInherited(value=2)})"})
-@BarInheritedContainer(value = {@BarInherited(value = 1), @BarInherited(value = 2)})
-@BarInherited(value = 3)
+                + "{@BarInherited(1), @BarInherited(2)})"})
+@BarInheritedContainer({@BarInherited(1), @BarInherited(2)})
+@BarInherited(3)
 class MixRepeatableAndOfficialContainerInheritedA2Test extends N {}
--- a/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/MixRepeatableAndOfficialContainerInheritedB1Test.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/MixRepeatableAndOfficialContainerInheritedB1Test.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -40,8 +40,8 @@
 
 @ExpectedBase(
         value = BarInherited.class,
-        getAnnotation = "@BarInherited(value=0)",
-        getAnnotationsByType = {"@BarInherited(value=0)"},
+        getAnnotation = "@BarInherited(0)",
+        getAnnotationsByType = {"@BarInherited(0)"},
         getAllAnnotationMirrors = {
             "@BarInherited(0)",
             "@BarInheritedContainer({@BarInherited(1), @BarInherited(2)})",
@@ -56,8 +56,8 @@
 @ExpectedContainer(
         value = BarInheritedContainer.class,
         getAnnotation = "@BarInheritedContainer("
-        + "value={@BarInherited(value=1), @BarInherited(value=2)})",
+        + "{@BarInherited(1), @BarInherited(2)})",
         getAnnotationsByType = {"@BarInheritedContainer("
-                + "value={@BarInherited(value=1), @BarInherited(value=2)})"})
-@BarInherited(value = 0)
+                + "{@BarInherited(1), @BarInherited(2)})"})
+@BarInherited(0)
 class MixRepeatableAndOfficialContainerInheritedB1Test extends M {}
--- a/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/MixRepeatableAndOfficialContainerInheritedB2Test.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/MixRepeatableAndOfficialContainerInheritedB2Test.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -35,14 +35,14 @@
  * MixRepeatableAndOfficialContainerInheritedB2Test.java
  */
 
-@BarInheritedContainer(value = {@BarInherited(value = 1), @BarInherited(value = 2)})
-@BarInherited(value = 3)
+@BarInheritedContainer({@BarInherited(1), @BarInherited(2)})
+@BarInherited(3)
 class H {}
 
 @ExpectedBase(
         value = BarInherited.class,
-        getAnnotation = "@BarInherited(value=0)",
-        getAnnotationsByType = {"@BarInherited(value=0)"},
+        getAnnotation = "@BarInherited(0)",
+        getAnnotationsByType = {"@BarInherited(0)"},
         getAllAnnotationMirrors = {
             "@BarInherited(0)",
             "@BarInheritedContainer({@BarInherited(1), @BarInherited(2)})",
@@ -57,8 +57,8 @@
 @ExpectedContainer(
         value = BarInheritedContainer.class,
         getAnnotation = "@BarInheritedContainer("
-        + "value={@BarInherited(value=1), @BarInherited(value=2)})",
+        + "{@BarInherited(1), @BarInherited(2)})",
         getAnnotationsByType = {"@BarInheritedContainer("
-                + "value={@BarInherited(value=1), @BarInherited(value=2)})"})
-@BarInherited(value = 0)
+                + "{@BarInherited(1), @BarInherited(2)})"})
+@BarInherited(0)
 class MixRepeatableAndOfficialContainerInheritedB2Test extends H {}
--- a/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/MixSingularAndUnofficialContainerBasicTest.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/MixSingularAndUnofficialContainerBasicTest.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -36,8 +36,8 @@
 
 @ExpectedBase(
         value = Foo.class,
-        getAnnotation = "@Foo(value=0)",
-        getAnnotationsByType = {"@Foo(value=0)"},
+        getAnnotation = "@Foo(0)",
+        getAnnotationsByType = {"@Foo(0)"},
         getAllAnnotationMirrors = {
             "@Foo(0)",
             "@UnofficialContainer({@Foo(1), @Foo(2)})",
@@ -53,17 +53,17 @@
 @ExpectedContainer(
         value = UnofficialContainer.class,
         getAnnotation = "@UnofficialContainer("
-        + "value={@Foo(value=1), @Foo(value=2)})",
+        + "{@Foo(1), @Foo(2)})",
         getAnnotationsByType = {"@UnofficialContainer("
-                + "value={@Foo(value=1), @Foo(value=2)})"})
-@Foo(value = 0)
-@UnofficialContainer(value = {@Foo(value = 1), @Foo(value = 2)})
+                + "{@Foo(1), @Foo(2)})"})
+@Foo(0)
+@UnofficialContainer({@Foo(1), @Foo(2)})
 class MixSingularAndUnofficialContainerBasicTest {
 
     @ExpectedBase(
             value = Foo.class,
-            getAnnotation = "@Foo(value=0)",
-            getAnnotationsByType = {"@Foo(value=0)"},
+            getAnnotation = "@Foo(0)",
+            getAnnotationsByType = {"@Foo(0)"},
             getAllAnnotationMirrors = {
                 "@Foo(0)",
                 "@UnofficialContainer({@Foo(1), @Foo(2)})",
@@ -79,17 +79,17 @@
     @ExpectedContainer(
             value = UnofficialContainer.class,
             getAnnotation = "@UnofficialContainer("
-            + "value={@Foo(value=1), @Foo(value=2)})",
+            + "{@Foo(1), @Foo(2)})",
             getAnnotationsByType = {"@UnofficialContainer("
-                    + "value={@Foo(value=1), @Foo(value=2)})"})
-    @Foo(value = 0)
-    @UnofficialContainer(value = {@Foo(value = 1), @Foo(value = 2)})
+                    + "{@Foo(1), @Foo(2)})"})
+    @Foo(0)
+    @UnofficialContainer({@Foo(1), @Foo(2)})
     int testField = 0;
 
     @ExpectedBase(
             value = Foo.class,
-            getAnnotation = "@Foo(value=0)",
-            getAnnotationsByType = {"@Foo(value=0)"},
+            getAnnotation = "@Foo(0)",
+            getAnnotationsByType = {"@Foo(0)"},
             getAllAnnotationMirrors = {
                 "@Foo(0)",
                 "@UnofficialContainer({@Foo(1), @Foo(2)})",
@@ -105,10 +105,10 @@
     @ExpectedContainer(
             value = UnofficialContainer.class,
             getAnnotation = "@UnofficialContainer("
-            + "value={@Foo(value=1), @Foo(value=2)})",
+            + "{@Foo(1), @Foo(2)})",
             getAnnotationsByType = {"@UnofficialContainer("
-                    + "value={@Foo(value=1), @Foo(value=2)})"})
-    @Foo(value = 0)
-    @UnofficialContainer(value = {@Foo(value = 1), @Foo(value = 2)})
+                    + "{@Foo(1), @Foo(2)})"})
+    @Foo(0)
+    @UnofficialContainer({@Foo(1), @Foo(2)})
     void testMethod() {}
 }
--- a/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/MixSingularAndUnofficialContainerInheritedA1Test.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/MixSingularAndUnofficialContainerInheritedA1Test.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -35,13 +35,13 @@
  * MixSingularAndUnofficialContainerInheritedA1Test.java
  */
 
-@FooInherited(value = 0)
+@FooInherited(0)
 class L {}
 
 @ExpectedBase(
         value = FooInherited.class,
-        getAnnotation = "@FooInherited(value=0)",
-        getAnnotationsByType = {"@FooInherited(value=0)"},
+        getAnnotation = "@FooInherited(0)",
+        getAnnotationsByType = {"@FooInherited(0)"},
         getAllAnnotationMirrors = {
             "@FooInherited(0)",
             "@UnofficialInheritedContainer({@FooInherited(1), @FooInherited(2)})",
@@ -56,8 +56,8 @@
 @ExpectedContainer(
         value = UnofficialInheritedContainer.class,
         getAnnotation = "@UnofficialInheritedContainer("
-        + "value={@FooInherited(value=1), @FooInherited(value=2)})",
+        + "{@FooInherited(1), @FooInherited(2)})",
         getAnnotationsByType = {"@UnofficialInheritedContainer("
-                + "value={@FooInherited(value=1), @FooInherited(value=2)})"})
-@UnofficialInheritedContainer(value = {@FooInherited(value = 1), @FooInherited(value = 2)})
+                + "{@FooInherited(1), @FooInherited(2)})"})
+@UnofficialInheritedContainer({@FooInherited(1), @FooInherited(2)})
 class MixSingularAndUnofficialContainerInheritedA1Test extends L {}
--- a/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/MixSingularAndUnofficialContainerInheritedA2Test.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/MixSingularAndUnofficialContainerInheritedA2Test.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -35,13 +35,13 @@
  * MixSingularAndUnofficialContainerInheritedA2Test.java
  */
 
-@FooInherited(value = 0)
+@FooInherited(0)
 class K {}
 
 @ExpectedBase(
         value = FooInherited.class,
-        getAnnotation = "@FooInherited(value=3)",
-        getAnnotationsByType = {"@FooInherited(value=3)"},
+        getAnnotation = "@FooInherited(3)",
+        getAnnotationsByType = {"@FooInherited(3)"},
         getAllAnnotationMirrors = {
             "@FooInherited(3)",
             "@UnofficialInheritedContainer({@FooInherited(1), @FooInherited(2)})",
@@ -57,9 +57,9 @@
 @ExpectedContainer(
         value = UnofficialInheritedContainer.class,
         getAnnotation = "@UnofficialInheritedContainer("
-        + "value={@FooInherited(value=1), @FooInherited(value=2)})",
+        + "{@FooInherited(1), @FooInherited(2)})",
         getAnnotationsByType = {"@UnofficialInheritedContainer("
-                + "value={@FooInherited(value=1), @FooInherited(value=2)})"})
-@UnofficialInheritedContainer(value = {@FooInherited(value = 1), @FooInherited(value = 2)})
-@FooInherited(value = 3)
+                + "{@FooInherited(1), @FooInherited(2)})"})
+@UnofficialInheritedContainer({@FooInherited(1), @FooInherited(2)})
+@FooInherited(3)
 class MixSingularAndUnofficialContainerInheritedA2Test extends K {}
--- a/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/MixSingularAndUnofficialContainerInheritedB1Test.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/MixSingularAndUnofficialContainerInheritedB1Test.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -35,13 +35,13 @@
  * MixSingularAndUnofficialContainerInheritedB1Test.java
  */
 
-@UnofficialInheritedContainer(value = {@FooInherited(value = 1),@FooInherited(value = 2)})
+@UnofficialInheritedContainer({@FooInherited(1),@FooInherited(2)})
 class J {}
 
 @ExpectedBase(
         value = FooInherited.class,
-        getAnnotation = "@FooInherited(value=0)",
-        getAnnotationsByType = {"@FooInherited(value=0)"},
+        getAnnotation = "@FooInherited(0)",
+        getAnnotationsByType = {"@FooInherited(0)"},
         getAllAnnotationMirrors = {
             "@FooInherited(0)",
             "@UnofficialInheritedContainer({@FooInherited(1), @FooInherited(2)})",
@@ -56,8 +56,8 @@
 @ExpectedContainer(
         value = UnofficialInheritedContainer.class,
         getAnnotation = "@UnofficialInheritedContainer("
-        + "value={@FooInherited(value=1), @FooInherited(value=2)})",
+        + "{@FooInherited(1), @FooInherited(2)})",
         getAnnotationsByType = {"@UnofficialInheritedContainer("
-                + "value={@FooInherited(value=1), @FooInherited(value=2)})"})
-@FooInherited(value = 0)
+                + "{@FooInherited(1), @FooInherited(2)})"})
+@FooInherited(0)
 class MixSingularAndUnofficialContainerInheritedB1Test extends J {}
--- a/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/MixSingularAndUnofficialContainerInheritedB2Test.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/MixSingularAndUnofficialContainerInheritedB2Test.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -35,14 +35,14 @@
  * MixSingularAndUnofficialContainerInheritedB2Test.java
  */
 
-@UnofficialInheritedContainer(value = {@FooInherited(value = 1), @FooInherited(value = 2)})
-@FooInherited(value = 3)
+@UnofficialInheritedContainer({@FooInherited(1), @FooInherited(2)})
+@FooInherited(3)
 class G {}
 
 @ExpectedBase(
         value = FooInherited.class,
-        getAnnotation = "@FooInherited(value=0)",
-        getAnnotationsByType = {"@FooInherited(value=0)"},
+        getAnnotation = "@FooInherited(0)",
+        getAnnotationsByType = {"@FooInherited(0)"},
         getAllAnnotationMirrors = {
             "@FooInherited(0)",
             "@UnofficialInheritedContainer({@FooInherited(1), @FooInherited(2)})",
@@ -57,8 +57,8 @@
 @ExpectedContainer(
         value = UnofficialInheritedContainer.class,
         getAnnotation = "@UnofficialInheritedContainer("
-        + "value={@FooInherited(value=1), @FooInherited(value=2)})",
+        + "{@FooInherited(1), @FooInherited(2)})",
         getAnnotationsByType = {"@UnofficialInheritedContainer("
-                + "value={@FooInherited(value=1), @FooInherited(value=2)})"})
-@FooInherited(value = 0)
+                + "{@FooInherited(1), @FooInherited(2)})"})
+@FooInherited(0)
 class MixSingularAndUnofficialContainerInheritedB2Test extends G{}
--- a/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/OfficialContainerBasicTest.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/OfficialContainerBasicTest.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -38,8 +38,8 @@
         value = Bar.class,
         getAnnotation = "null",
         getAnnotationsByType = {
-            "@Bar(value=1)",
-            "@Bar(value=2)"
+            "@Bar(1)",
+            "@Bar(2)"
         },
         getAllAnnotationMirrors = {
             "@BarContainer({@Bar(1), @Bar(2)})",
@@ -53,17 +53,17 @@
         })
 @ExpectedContainer(
         value = BarContainer.class,
-        getAnnotation = "@BarContainer(value={@Bar(value=1), @Bar(value=2)})",
-        getAnnotationsByType = {"@BarContainer(value={@Bar(value=1), @Bar(value=2)})"})
-@BarContainer(value = {@Bar(value = 1), @Bar(value = 2)})
+        getAnnotation = "@BarContainer({@Bar(1), @Bar(2)})",
+        getAnnotationsByType = {"@BarContainer({@Bar(1), @Bar(2)})"})
+@BarContainer({@Bar(1), @Bar(2)})
 class OfficialContainerBasicTest {
 
     @ExpectedBase(
             value = Bar.class,
             getAnnotation = "null",
             getAnnotationsByType = {
-                "@Bar(value=1)",
-                "@Bar(value=2)"
+                "@Bar(1)",
+                "@Bar(2)"
             },
             getAllAnnotationMirrors = {
                 "@BarContainer({@Bar(1), @Bar(2)})",
@@ -77,17 +77,17 @@
             })
     @ExpectedContainer(
             value = BarContainer.class,
-            getAnnotation = "@BarContainer(value={@Bar(value=1), @Bar(value=2)})",
-            getAnnotationsByType = {"@BarContainer(value={@Bar(value=1), @Bar(value=2)})"})
-    @BarContainer(value = {@Bar(value = 1), @Bar(value = 2)})
+            getAnnotation = "@BarContainer({@Bar(1), @Bar(2)})",
+            getAnnotationsByType = {"@BarContainer({@Bar(1), @Bar(2)})"})
+    @BarContainer({@Bar(1), @Bar(2)})
     int testField = 0;
 
     @ExpectedBase(
             value = Bar.class,
             getAnnotation = "null",
             getAnnotationsByType = {
-                "@Bar(value=1)",
-                "@Bar(value=2)"
+                "@Bar(1)",
+                "@Bar(2)"
             },
             getAllAnnotationMirrors = {
                 "@BarContainer({@Bar(1), @Bar(2)})",
@@ -101,8 +101,8 @@
             })
     @ExpectedContainer(
             value = BarContainer.class,
-            getAnnotation = "@BarContainer(value={@Bar(value=1), @Bar(value=2)})",
-            getAnnotationsByType = {"@BarContainer(value={@Bar(value=1), @Bar(value=2)})"})
-    @BarContainer(value = {@Bar(value = 1), @Bar(value = 2)})
+            getAnnotation = "@BarContainer({@Bar(1), @Bar(2)})",
+            getAnnotationsByType = {"@BarContainer({@Bar(1), @Bar(2)})"})
+    @BarContainer({@Bar(1), @Bar(2)})
     void testMethod() {}
 }
--- a/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/OfficialContainerInheritedTest.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/OfficialContainerInheritedTest.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -34,15 +34,15 @@
  * @compile -processor ElementRepAnnoTester -proc:only OfficialContainerInheritedTest.java
  */
 
-@BarInheritedContainer(value = {@BarInherited(value = 1), @BarInherited(value = 2)})
+@BarInheritedContainer({@BarInherited(1), @BarInherited(2)})
 class D {}
 
 @ExpectedBase(
         value = BarInherited.class,
         getAnnotation = "null",
         getAnnotationsByType = {
-            "@BarInherited(value=1)",
-            "@BarInherited(value=2)"
+            "@BarInherited(1)",
+            "@BarInherited(2)"
         },
         getAllAnnotationMirrors = {
             "@BarInheritedContainer({@BarInherited(1), @BarInherited(2)})",
@@ -56,7 +56,7 @@
 @ExpectedContainer(
         value = BarInheritedContainer.class,
         getAnnotation = "@BarInheritedContainer("
-        + "value={@BarInherited(value=1), @BarInherited(value=2)})",
+        + "{@BarInherited(1), @BarInherited(2)})",
         getAnnotationsByType = {"@BarInheritedContainer("
-                + "value={@BarInherited(value=1), @BarInherited(value=2)})"})
+                + "{@BarInherited(1), @BarInherited(2)})"})
 class OfficialContainerInheritedTest extends D {}
--- a/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/RepeatableBasicTest.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/RepeatableBasicTest.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -38,8 +38,8 @@
         value = Bar.class,
         getAnnotation = "null",
         getAnnotationsByType = {
-            "@Bar(value=1)",
-            "@Bar(value=2)"
+            "@Bar(1)",
+            "@Bar(2)"
         },
         getAllAnnotationMirrors = {
             "@BarContainer({@Bar(1), @Bar(2)})",
@@ -53,18 +53,18 @@
         })
 @ExpectedContainer(
         value = BarContainer.class,
-        getAnnotation = "@BarContainer(value={@Bar(value=1), @Bar(value=2)})",
-        getAnnotationsByType = {"@BarContainer(value={@Bar(value=1), @Bar(value=2)})"})
-@Bar(value = 1)
-@Bar(value = 2)
+        getAnnotation = "@BarContainer({@Bar(1), @Bar(2)})",
+        getAnnotationsByType = {"@BarContainer({@Bar(1), @Bar(2)})"})
+@Bar(1)
+@Bar(2)
 class RepeatableBasicTest {
 
     @ExpectedBase(
             value = Bar.class,
             getAnnotation = "null",
             getAnnotationsByType = {
-                "@Bar(value=1)",
-                "@Bar(value=2)"
+                "@Bar(1)",
+                "@Bar(2)"
             },
             getAllAnnotationMirrors = {
                 "@BarContainer({@Bar(1), @Bar(2)})",
@@ -78,18 +78,18 @@
             })
     @ExpectedContainer(
             value = BarContainer.class,
-            getAnnotation = "@BarContainer(value={@Bar(value=1), @Bar(value=2)})",
-            getAnnotationsByType = {"@BarContainer(value={@Bar(value=1), @Bar(value=2)})"})
-    @Bar(value = 1)
-    @Bar(value = 2)
+            getAnnotation = "@BarContainer({@Bar(1), @Bar(2)})",
+            getAnnotationsByType = {"@BarContainer({@Bar(1), @Bar(2)})"})
+    @Bar(1)
+    @Bar(2)
     int testField = 0;
 
     @ExpectedBase(
             value = Bar.class,
             getAnnotation = "null",
             getAnnotationsByType = {
-                "@Bar(value=1)",
-                "@Bar(value=2)"
+                "@Bar(1)",
+                "@Bar(2)"
             },
             getAllAnnotationMirrors = {
                 "@BarContainer({@Bar(1), @Bar(2)})",
@@ -103,9 +103,9 @@
             })
     @ExpectedContainer(
             value = BarContainer.class,
-            getAnnotation = "@BarContainer(value={@Bar(value=1), @Bar(value=2)})",
-            getAnnotationsByType = {"@BarContainer(value={@Bar(value=1), @Bar(value=2)})"})
-    @Bar(value = 1)
-    @Bar(value = 2)
+            getAnnotation = "@BarContainer({@Bar(1), @Bar(2)})",
+            getAnnotationsByType = {"@BarContainer({@Bar(1), @Bar(2)})"})
+    @Bar(1)
+    @Bar(2)
     void testMethod() {}
 }
--- a/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/RepeatableInheritedTest.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/RepeatableInheritedTest.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -34,16 +34,16 @@
  * @compile -processor ElementRepAnnoTester -proc:only RepeatableInheritedTest.java
  */
 
-@BarInherited(value = 1)
-@BarInherited(value = 2)
+@BarInherited(1)
+@BarInherited(2)
 class I {}
 
 @ExpectedBase(
         value = BarInherited.class,
         getAnnotation = "null",
         getAnnotationsByType = {
-            "@BarInherited(value=1)",
-            "@BarInherited(value=2)"
+            "@BarInherited(1)",
+            "@BarInherited(2)"
         },
         getAllAnnotationMirrors = {
             "@BarInheritedContainer({@BarInherited(1), @BarInherited(2)})",
@@ -57,7 +57,7 @@
 @ExpectedContainer(
         value = BarInheritedContainer.class,
         getAnnotation = "@BarInheritedContainer("
-        + "value={@BarInherited(value=1), @BarInherited(value=2)})",
+        + "{@BarInherited(1), @BarInherited(2)})",
         getAnnotationsByType = {"@BarInheritedContainer("
-                + "value={@BarInherited(value=1), @BarInherited(value=2)})"})
+                + "{@BarInherited(1), @BarInherited(2)})"})
 class RepeatableInheritedTest extends I {}
--- a/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/RepeatableOfficialContainerBasicTest.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/RepeatableOfficialContainerBasicTest.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -52,10 +52,10 @@
         value = BarContainer.class,
         getAnnotation = "null",
         getAnnotationsByType = {
-            "@BarContainer(value={@Bar(value=1)})",
-            "@BarContainer(value={@Bar(value=2)})"})
-@BarContainer(value = {@Bar(value = 1)})
-@BarContainer(value = {@Bar(value = 2)})
+            "@BarContainer({@Bar(1)})",
+            "@BarContainer({@Bar(2)})"})
+@BarContainer({@Bar(1)})
+@BarContainer({@Bar(2)})
 class RepeatableOfficialContainerBasicTest {
 
     @ExpectedBase(
@@ -76,10 +76,10 @@
             value = BarContainer.class,
             getAnnotation = "null",
             getAnnotationsByType = {
-                "@BarContainer(value={@Bar(value=1)})",
-                "@BarContainer(value={@Bar(value=2)})"})
-    @BarContainer(value = {@Bar(value = 1)})
-    @BarContainer(value = {@Bar(value = 2)})
+                "@BarContainer({@Bar(1)})",
+                "@BarContainer({@Bar(2)})"})
+    @BarContainer({@Bar(1)})
+    @BarContainer({@Bar(2)})
     int testField = 0;
 
     @ExpectedBase(
@@ -100,9 +100,9 @@
             value = BarContainer.class,
             getAnnotation = "null",
             getAnnotationsByType = {
-                "@BarContainer(value={@Bar(value=1)})",
-                "@BarContainer(value={@Bar(value=2)})"})
-    @BarContainer(value = {@Bar(value = 1)})
-    @BarContainer(value = {@Bar(value = 2)})
+                "@BarContainer({@Bar(1)})",
+                "@BarContainer({@Bar(2)})"})
+    @BarContainer({@Bar(1)})
+    @BarContainer({@Bar(2)})
     void testMethod() {}
 }
--- a/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/RepeatableOfficialContainerInheritedTest.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/RepeatableOfficialContainerInheritedTest.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -35,16 +35,16 @@
  * RepeatableOfficialContainerInheritedTest.java
  */
 
-@BarInheritedContainer(value = {@BarInherited(value = 1)})
-@BarInheritedContainer(value = {@BarInherited(value = 2)})
+@BarInheritedContainer({@BarInherited(1)})
+@BarInheritedContainer({@BarInherited(2)})
 class O {}
 
 @ExpectedBase(
         value = BarInheritedContainer.class,
         getAnnotation = "null",
         getAnnotationsByType = {
-            "@BarInheritedContainer(value={@BarInherited(value=1)})",
-            "@BarInheritedContainer(value={@BarInherited(value=2)})"
+            "@BarInheritedContainer({@BarInherited(1)})",
+            "@BarInheritedContainer({@BarInherited(2)})"
         },
         getAllAnnotationMirrors = {
             "@BarInheritedContainerContainer("
@@ -60,9 +60,9 @@
 @ExpectedContainer(
         value = BarInheritedContainerContainer.class,
         getAnnotation = "@BarInheritedContainerContainer("
-        + "value={@BarInheritedContainer(value={@BarInherited(value=1)}),"
-        + " @BarInheritedContainer(value={@BarInherited(value=2)})})",
+        + "{@BarInheritedContainer({@BarInherited(1)}),"
+        + " @BarInheritedContainer({@BarInherited(2)})})",
         getAnnotationsByType = {"@BarInheritedContainerContainer("
-                + "value={@BarInheritedContainer(value={@BarInherited(value=1)}),"
-        + " @BarInheritedContainer(value={@BarInherited(value=2)})})"})
+                + "{@BarInheritedContainer({@BarInherited(1)}),"
+        + " @BarInheritedContainer({@BarInherited(2)})})"})
 class RepeatableOfficialContainerInheritedTest extends O {}
--- a/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/RepeatableOverrideATest.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/RepeatableOverrideATest.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -34,14 +34,14 @@
  * @compile -processor ElementRepAnnoTester -proc:only RepeatableOverrideATest.java
  */
 
-@BarInherited(value = 1)
-@BarInherited(value = 2)
+@BarInherited(1)
+@BarInherited(2)
 class B {}
 
 @ExpectedBase(
         value = BarInherited.class,
-        getAnnotation = "@BarInherited(value=3)",
-        getAnnotationsByType = {"@BarInherited(value=3)"},
+        getAnnotation = "@BarInherited(3)",
+        getAnnotationsByType = {"@BarInherited(3)"},
         getAllAnnotationMirrors = {
             "@BarInherited(3)",
             "@BarInheritedContainer({@BarInherited(1), @BarInherited(2)})",
@@ -56,8 +56,8 @@
 @ExpectedContainer(
         value = BarInheritedContainer.class,
         getAnnotation = "@BarInheritedContainer("
-        + "value={@BarInherited(value=1), @BarInherited(value=2)})",
+        + "{@BarInherited(1), @BarInherited(2)})",
         getAnnotationsByType = {"@BarInheritedContainer("
-                + "value={@BarInherited(value=1), @BarInherited(value=2)})"})
-@BarInherited(value = 3)
+                + "{@BarInherited(1), @BarInherited(2)})"})
+@BarInherited(3)
 class RepeatableOverrideATest extends B {}
--- a/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/RepeatableOverrideBTest.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/RepeatableOverrideBTest.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -34,15 +34,15 @@
  * @compile -processor ElementRepAnnoTester -proc:only RepeatableOverrideBTest.java
  */
 
-@BarInherited(value = 0)
+@BarInherited(0)
 class C {}
 
 @ExpectedBase(
         value = BarInherited.class,
-        getAnnotation = "@BarInherited(value=0)",
+        getAnnotation = "@BarInherited(0)",
         getAnnotationsByType = {
-            "@BarInherited(value=1)",
-            "@BarInherited(value=2)"
+            "@BarInherited(1)",
+            "@BarInherited(2)"
         },
         getAllAnnotationMirrors = {
             "@BarInherited(0)",
@@ -58,9 +58,9 @@
 @ExpectedContainer(
         value = BarInheritedContainer.class,
         getAnnotation = "@BarInheritedContainer("
-        + "value={@BarInherited(value=1), @BarInherited(value=2)})",
+        + "{@BarInherited(1), @BarInherited(2)})",
         getAnnotationsByType = {"@BarInheritedContainer("
-                + "value={@BarInherited(value=1), @BarInherited(value=2)})"})
-@BarInherited(value = 1)
-@BarInherited(value = 2)
+                + "{@BarInherited(1), @BarInherited(2)})"})
+@BarInherited(1)
+@BarInherited(2)
 class RepeatableOverrideBTest extends C {}
--- a/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/SingularBasicTest.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/SingularBasicTest.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -36,8 +36,8 @@
 
 @ExpectedBase(
         value = Foo.class,
-        getAnnotation = "@Foo(value=0)",
-        getAnnotationsByType = {"@Foo(value=0)"},
+        getAnnotation = "@Foo(0)",
+        getAnnotationsByType = {"@Foo(0)"},
         getAllAnnotationMirrors = {
             "@Foo(0)",
             "ExpectedBase",
@@ -49,13 +49,13 @@
             "ExpectedContainer"
         })
 @ExpectedContainer
-@Foo(value = 0)
+@Foo(0)
 public class SingularBasicTest {
 
     @ExpectedBase(
             value = Foo.class,
-            getAnnotation = "@Foo(value=0)",
-            getAnnotationsByType = {"@Foo(value=0)"},
+            getAnnotation = "@Foo(0)",
+            getAnnotationsByType = {"@Foo(0)"},
             getAllAnnotationMirrors = {
                 "@Foo(0)",
                 "ExpectedBase",
@@ -67,13 +67,13 @@
                 "ExpectedContainer"
             })
     @ExpectedContainer
-    @Foo(value = 0)
+    @Foo(0)
     int testField = 0;
 
     @ExpectedBase(
             value = Foo.class,
-            getAnnotation = "@Foo(value=0)",
-            getAnnotationsByType = {"@Foo(value=0)"},
+            getAnnotation = "@Foo(0)",
+            getAnnotationsByType = {"@Foo(0)"},
             getAllAnnotationMirrors = {
                 "@Foo(0)",
                 "ExpectedBase",
@@ -85,7 +85,7 @@
                 "ExpectedContainer"
             })
     @ExpectedContainer
-    @Foo(value = 0)
+    @Foo(0)
     void testMethod() {
     }
 }
--- a/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/SingularInheritedATest.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/SingularInheritedATest.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -34,13 +34,13 @@
  * @compile -processor ElementRepAnnoTester -proc:only SingularInheritedATest.java
  */
 
-@FooInherited(value = 0)
+@FooInherited(0)
 class A {}
 
 @ExpectedBase(
         value = FooInherited.class,
-        getAnnotation = "@FooInherited(value=0)",
-        getAnnotationsByType = {"@FooInherited(value=0)"},
+        getAnnotation = "@FooInherited(0)",
+        getAnnotationsByType = {"@FooInherited(0)"},
         getAllAnnotationMirrors = {
             "@FooInherited(0)",
             "ExpectedBase",
--- a/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/SingularInheritedBTest.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/SingularInheritedBTest.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -34,13 +34,13 @@
  * @compile -processor ElementRepAnnoTester -proc:only SingularInheritedBTest.java
  */
 
-@FooInherited(value = 1)
+@FooInherited(1)
 class P {}
 
 @ExpectedBase(
         value = FooInherited.class,
-        getAnnotation = "@FooInherited(value=2)",
-        getAnnotationsByType = {"@FooInherited(value=2)"},
+        getAnnotation = "@FooInherited(2)",
+        getAnnotationsByType = {"@FooInherited(2)"},
         getAllAnnotationMirrors = {
             "@FooInherited(2)",
             "ExpectedBase",
@@ -55,5 +55,5 @@
         value = UnofficialInheritedContainer.class,
         getAnnotation = "null",
         getAnnotationsByType = {})
-@FooInherited(value = 2)
+@FooInherited(2)
 class SingularInheritedBTest extends P {}
--- a/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/UnofficialContainerBasicTest.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/UnofficialContainerBasicTest.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -50,9 +50,9 @@
         })
 @ExpectedContainer(
         value = UnofficialContainer.class,
-        getAnnotation = "@UnofficialContainer(value={@Foo(value=1), @Foo(value=2)})",
-        getAnnotationsByType = {"@UnofficialContainer(value={@Foo(value=1), @Foo(value=2)})"})
-@UnofficialContainer(value = {@Foo(value = 1), @Foo(value = 2)})
+        getAnnotation = "@UnofficialContainer({@Foo(1), @Foo(2)})",
+        getAnnotationsByType = {"@UnofficialContainer({@Foo(1), @Foo(2)})"})
+@UnofficialContainer({@Foo(1), @Foo(2)})
 class UnofficialContainerBasicTest {
 
     @ExpectedBase(
@@ -71,9 +71,9 @@
             })
     @ExpectedContainer(
             value = UnofficialContainer.class,
-            getAnnotation = "@UnofficialContainer(value={@Foo(value=1), @Foo(value=2)})",
-            getAnnotationsByType = {"@UnofficialContainer(value={@Foo(value=1), @Foo(value=2)})"})
-    @UnofficialContainer(value = {@Foo(value = 1), @Foo(value = 2)})
+            getAnnotation = "@UnofficialContainer({@Foo(1), @Foo(2)})",
+            getAnnotationsByType = {"@UnofficialContainer({@Foo(1), @Foo(2)})"})
+    @UnofficialContainer({@Foo(1), @Foo(2)})
     int testField = 0;
 
     @ExpectedBase(
@@ -92,8 +92,8 @@
             })
     @ExpectedContainer(
             value = UnofficialContainer.class,
-            getAnnotation = "@UnofficialContainer(value={@Foo(value=1), @Foo(value=2)})",
-            getAnnotationsByType = {"@UnofficialContainer(value={@Foo(value=1), @Foo(value=2)})"})
-    @UnofficialContainer(value = {@Foo(value = 1), @Foo(value = 2)})
+            getAnnotation = "@UnofficialContainer({@Foo(1), @Foo(2)})",
+            getAnnotationsByType = {"@UnofficialContainer({@Foo(1), @Foo(2)})"})
+    @UnofficialContainer({@Foo(1), @Foo(2)})
     void testMethod() {}
 }
--- a/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/UnofficialContainerInheritedTest.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/processing/model/element/repeatingAnnotations/UnofficialContainerInheritedTest.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -35,7 +35,7 @@
  * UnofficialContainerInheritedTest.java
  */
 
-@UnofficialInheritedContainer(value = {@FooInherited(value = 1),@FooInherited(value = 2)})
+@UnofficialInheritedContainer({@FooInherited(1),@FooInherited(2)})
 class F {}
 
 @ExpectedBase(
@@ -54,7 +54,7 @@
 @ExpectedContainer(
         value = UnofficialInheritedContainer.class,
         getAnnotation = "@UnofficialInheritedContainer("
-        + "value={@FooInherited(value=1), @FooInherited(value=2)})",
+        + "{@FooInherited(1), @FooInherited(2)})",
         getAnnotationsByType = {"@UnofficialInheritedContainer("
-                + "value={@FooInherited(value=1), @FooInherited(value=2)})"})
+                + "{@FooInherited(1), @FooInherited(2)})"})
 class UnofficialContainerInheritedTest extends F {}
--- a/test/langtools/tools/javac/profiles/ProfileOptionTest.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/profiles/ProfileOptionTest.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
  /*
- * Copyright (c) 2011, 2018, 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
@@ -152,6 +152,7 @@
                     case JDK1_11:
                     case JDK1_12:
                     case JDK1_13:
+                    case JDK1_14:
                         if (p == Profile.DEFAULT)
                             break;
                         if (ise == null)
--- a/test/langtools/tools/javac/switchexpr/WarnWrongYieldTest.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/switchexpr/WarnWrongYieldTest.java	Fri Jun 21 09:05:45 2019 -0700
@@ -25,7 +25,7 @@
  * @test
  * @bug 8223305
  * @summary Verify correct warnings w.r.t. yield
- * @compile/ref=WarnWrongYieldTest.out -source 13 -XDrawDiagnostics -XDshould-stop.at=ATTR WarnWrongYieldTest.java
+ * @compile/ref=WarnWrongYieldTest.out -source ${jdk.version} -XDrawDiagnostics -XDshould-stop.at=ATTR WarnWrongYieldTest.java
  */
 
 package t;
--- a/test/langtools/tools/javac/sym/ElementStructureTest.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/sym/ElementStructureTest.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -128,16 +128,16 @@
         (byte) 0xB7, (byte) 0x52, (byte) 0x0F, (byte) 0x68
     };
     static final byte[] hash7 = new byte[] {
-        (byte) 0x6B, (byte) 0xA2, (byte) 0xE9, (byte) 0x8E,
-        (byte) 0xE1, (byte) 0x8E, (byte) 0x60, (byte) 0xBE,
-        (byte) 0x54, (byte) 0xC4, (byte) 0x33, (byte) 0x3E,
-        (byte) 0x0C, (byte) 0x2D, (byte) 0x3A, (byte) 0x7C
+        (byte) 0x3C, (byte) 0x03, (byte) 0xEA, (byte) 0x4A,
+        (byte) 0x62, (byte) 0xD2, (byte) 0x18, (byte) 0xE5,
+        (byte) 0xA5, (byte) 0xC2, (byte) 0xB7, (byte) 0x85,
+        (byte) 0x90, (byte) 0xFA, (byte) 0x98, (byte) 0xCD
     };
     static final byte[] hash8 = new byte[] {
-        (byte) 0x44, (byte) 0x77, (byte) 0x6E, (byte) 0x52,
-        (byte) 0x2B, (byte) 0x16, (byte) 0xD3, (byte) 0x3C,
-        (byte) 0x78, (byte) 0x75, (byte) 0xF5, (byte) 0x0A,
-        (byte) 0x01, (byte) 0x24, (byte) 0xBD, (byte) 0x2A
+        (byte) 0x0B, (byte) 0xEB, (byte) 0x16, (byte) 0xF5,
+        (byte) 0x7F, (byte) 0xB0, (byte) 0x18, (byte) 0xF1,
+        (byte) 0x78, (byte) 0x11, (byte) 0xED, (byte) 0x30,
+        (byte) 0x19, (byte) 0x4D, (byte) 0xDE, (byte) 0x8A
     };
 
     final static Map<String, byte[]> version2Hash = new HashMap<>();
@@ -409,7 +409,7 @@
                 for (VariableElement param : e.getParameters()) {
                     visit(param, p);
                 }
-                out.write(String.valueOf(e.getReceiverType()));
+                out.write(String.valueOf(typeMirrorTranslate(e.getReceiverType())));
                 write(e.getReturnType());
                 out.write(e.getSimpleName().toString());
                 writeTypes(e.getThrownTypes());
@@ -425,6 +425,18 @@
             return null;
         }
 
+        /**
+         * Original implementation of getReceiverType returned null
+         * for many cases where TypeKind.NONE was specified; translate
+         * back to null to compare against old hashes.
+         */
+        private TypeMirror typeMirrorTranslate(TypeMirror type) {
+            if (type.getKind() == javax.lang.model.type.TypeKind.NONE)
+                return null;
+            else
+                return type;
+        }
+
         @Override
         public Void visitPackage(PackageElement e, Void p) {
             List<Element> types = new ArrayList<>(e.getEnclosedElements());
--- a/test/langtools/tools/javac/versions/Versions.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javac/versions/Versions.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 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
@@ -69,9 +69,9 @@
         Set.of("1.2", "1.3", "1.4", "1.5", "1.6");
 
     public static final Set<String> VALID_SOURCES =
-        Set.of("1.7", "1.8", "1.9", "1.10", "11", "12", "13");
+        Set.of("1.7", "1.8", "1.9", "1.10", "11", "12", "13", "14");
 
-    public static final String LATEST_MAJOR_VERSION = "57.0";
+    public static final String LATEST_MAJOR_VERSION = "58.0";
 
     static enum SourceTarget {
         SEVEN(true,   "51.0",  "7", Versions::checksrc17),
@@ -80,7 +80,8 @@
         TEN(true,     "54.0", "10", Versions::checksrc110),
         ELEVEN(false, "55.0", "11", Versions::checksrc111),
         TWELVE(false, "56.0", "12", Versions::checksrc112),
-        THIRTEEN(false, "57.0", "13", Versions::checksrc113);
+        THIRTEEN(false, "57.0", "13", Versions::checksrc113),
+        FOURTEEN(false, "58.0", "14", Versions::checksrc114);
 
         private final boolean dotOne;
         private final String classFileVer;
@@ -299,6 +300,11 @@
         checksrc111(args);
     }
 
+    protected void checksrc114(String... args) {
+        printargs("checksrc114", args);
+        checksrc111(args);
+    }
+
     protected void pass(String... args) {
         printargs("pass", args);
 
--- a/test/langtools/tools/javap/T4884240.java	Tue Jun 18 21:40:50 2019 -0700
+++ b/test/langtools/tools/javap/T4884240.java	Fri Jun 21 09:05:45 2019 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 4884240
+ * @bug 4884240 8225748
  * @summary additional option required for javap
  * @modules jdk.jdeps/com.sun.tools.javap
  */
@@ -47,7 +47,7 @@
         if (lines.length < 3
             || !lines[0].trim().startsWith("Classfile")
             || !lines[1].trim().startsWith("Last modified")
-            || !lines[2].trim().startsWith("MD5")) {
+            || !lines[2].trim().startsWith("SHA-256")) {
             System.out.println(sw);
             throw new Exception("unexpected output");
         }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/micro/org/openjdk/bench/java/util/HashMapToArray.java	Fri Jun 21 09:05:45 2019 -0700
@@ -0,0 +1,95 @@
+/*
+ * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package org.openjdk.bench.java.util;
+
+import org.openjdk.jmh.annotations.Benchmark;
+import org.openjdk.jmh.annotations.BenchmarkMode;
+import org.openjdk.jmh.annotations.Fork;
+import org.openjdk.jmh.annotations.Measurement;
+import org.openjdk.jmh.annotations.Mode;
+import org.openjdk.jmh.annotations.OutputTimeUnit;
+import org.openjdk.jmh.annotations.Param;
+import org.openjdk.jmh.annotations.Scope;
+import org.openjdk.jmh.annotations.Setup;
+import org.openjdk.jmh.annotations.State;
+import org.openjdk.jmh.annotations.Warmup;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+@BenchmarkMode(Mode.AverageTime)
+@OutputTimeUnit(TimeUnit.NANOSECONDS)
+@Warmup(iterations = 5, time = 500, timeUnit = TimeUnit.MILLISECONDS)
+@Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS)
+@Fork(3)
+@State(Scope.Thread)
+public class HashMapToArray {
+
+    @Param({"0", "1", "10", "1000", "100000"})
+    public int size;
+
+    @Param({"HashMap", "LinkedHashMap"})
+    public String mapType;
+
+    private Map<Integer, Integer> map;
+
+    @Setup
+    public void setup() {
+        switch (mapType) {
+            case "HashMap":
+                map = new HashMap<>();
+                break;
+            case "LinkedHashMap":
+                map = new LinkedHashMap<>();
+                break;
+            default:
+                throw new IllegalStateException();
+        }
+        for (int i = 0; i < size; i++) {
+            map.put(i, i * i);
+        }
+    }
+
+    @Benchmark
+    public Object[] testKeySetToArray() {
+        return map.keySet().toArray();
+    }
+
+    @Benchmark
+    public Object[] testKeySetToArrayTyped() {
+        return map.keySet().toArray(new Integer[0]);
+    }
+
+    @Benchmark
+    public Object[] testValuesToArray() {
+        return map.values().toArray();
+    }
+
+    @Benchmark
+    public Object[] testValuesToArrayTyped() {
+        return map.values().toArray(new Integer[0]);
+    }
+}