http-client-branch: merge with default http-client-branch
authorchegar
Mon, 16 Jul 2018 12:11:02 +0100
branchhttp-client-branch
changeset 56833 be0819373531
parent 56819 4cd8d88dab38 (current diff)
parent 51093 4db6e8715e35 (diff)
child 56834 577317b61442
http-client-branch: merge with default
make/common/Modules.gmk
make/data/symbols/java.base-6.sym.txt
make/data/symbols/java.compiler-6.sym.txt
make/data/symbols/java.desktop-6.sym.txt
make/data/symbols/java.logging-6.sym.txt
make/data/symbols/java.management-6.sym.txt
make/data/symbols/java.rmi-6.sym.txt
make/data/symbols/java.security.jgss-6.sym.txt
make/data/symbols/java.sql-6.sym.txt
make/data/symbols/java.sql.rowset-6.sym.txt
make/data/symbols/java.xml-6.sym.txt
make/data/symbols/java.xml.bind-6.sym.txt
make/data/symbols/java.xml.ws-6.sym.txt
make/data/symbols/java.xml.ws.annotation-6.sym.txt
make/data/symbols/jdk.management-6.sym.txt
make/data/symbols/jdk.sctp-6.sym.txt
make/data/symbols/jdk.security.jgss-6.sym.txt
src/java.base/share/classes/sun/net/NetworkServer.java
src/java.base/share/classes/sun/net/URLCanonicalizer.java
src/java.net.http/share/classes/jdk/internal/net/http/AbstractAsyncSSLConnection.java
src/java.net.http/share/classes/jdk/internal/net/http/Exchange.java
src/java.net.http/share/classes/jdk/internal/net/http/Http1AsyncReceiver.java
src/java.net.http/share/classes/jdk/internal/net/http/Http1Exchange.java
src/java.net.http/share/classes/jdk/internal/net/http/Http2Connection.java
src/java.net.http/share/classes/jdk/internal/net/http/HttpClientImpl.java
src/java.net.http/share/classes/jdk/internal/net/http/SocketTube.java
src/java.net.http/share/classes/jdk/internal/net/http/Stream.java
src/java.net.http/share/classes/jdk/internal/net/http/WindowUpdateSender.java
src/java.net.http/share/classes/jdk/internal/net/http/common/SSLFlowDelegate.java
src/java.net.http/share/classes/jdk/internal/net/http/common/SSLTube.java
src/java.net.http/share/classes/jdk/internal/net/http/frame/SettingsFrame.java
src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/memory/AltHashing.java
src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/memory/SymbolTable.java
test/hotspot/jtreg/runtime/SharedArchiveFile/SASymbolTableTest.java
test/hotspot/jtreg/runtime/SharedArchiveFile/SASymbolTableTestAgent.java
test/hotspot/jtreg/serviceability/sa/ClhsdbSymbol.java
test/hotspot/jtreg/serviceability/sa/ClhsdbSymbolTable.java
test/jdk/ProblemList.txt
test/jdk/java/lang/System/SetProperties.java
test/jdk/java/net/httpclient/CancelledResponse.java
test/jdk/java/net/httpclient/MockServer.java
test/jdk/java/net/httpclient/ShortResponseBody.java
test/jdk/java/net/httpclient/SplitResponse.java
test/jdk/java/net/httpclient/http2/FixedThreadPoolTest.java
test/jdk/java/net/httpclient/http2/TLSConnection.java
test/jdk/java/net/httpclient/whitebox/java.net.http/jdk/internal/net/http/SSLEchoTubeTest.java
test/jdk/sun/tools/jhsdb/AlternateHashingTest.java
test/jdk/sun/tools/jhsdb/LingeredAppWithAltHashing.java
test/langtools/tools/javac/6558548/T6558548_6.out
test/langtools/tools/javac/8013179/T8013179.java
test/langtools/tools/javac/8013179/T8013179.out
test/langtools/tools/javac/StringsInSwitch/BadlyTypedLabel1_6.out
test/langtools/tools/javac/StringsInSwitch/BadlyTypedLabel2_6.out
test/langtools/tools/javac/StringsInSwitch/NonConstantLabel6.out
test/langtools/tools/javac/StringsInSwitch/OneCaseSwitches.out
test/langtools/tools/javac/StringsInSwitch/RSCL1_6.out
test/langtools/tools/javac/StringsInSwitch/RSCL2_6.out
test/langtools/tools/javac/TryWithResources/BadTwr6.out
test/langtools/tools/javac/TryWithResources/BadTwrSyntax6.out
test/langtools/tools/javac/TryWithResources/PlainTry6.out
test/langtools/tools/javac/TryWithResources/TwrOnNonResource6.out
test/langtools/tools/javac/annotations/repeatingAnnotations/WrongVersion6.out
test/langtools/tools/javac/annotations/typeAnnotations/failures/AnnotationVersion.out
test/langtools/tools/javac/defaultMethods/static/StaticInvokeQualified6.out
test/langtools/tools/javac/defaultMethods/static/StaticInvokeSimple6.out
test/langtools/tools/javac/diags/examples/MethodInvokedWithWrongNumberOfArgs.java
test/langtools/tools/javac/diags/examples/MulticatchNotSupported.java
test/langtools/tools/javac/diags/examples/StringSwitchNotSupported.java
test/langtools/tools/javac/diags/examples/TryResourceNotSupported.java
test/langtools/tools/javac/diags/examples/TryWithoutCatchOrFinally.java
test/langtools/tools/javac/diags/examples/UnsupportedBinaryLiteral.java
test/langtools/tools/javac/diags/examples/UnsupportedUnderscoreLiteral.java
test/langtools/tools/javac/literals/BadBinaryLiterals.6.out
test/langtools/tools/javac/literals/BadUnderscoreLiterals.6.out
test/langtools/tools/javac/types/CastObjectToPrimitiveTest.out
--- a/.hgtags	Tue Jul 03 14:12:49 2018 +0100
+++ b/.hgtags	Mon Jul 16 12:11:02 2018 +0100
@@ -493,3 +493,7 @@
 36ca515343e00b021dcfc902e986d26ec994a2e5 jdk-11+19
 95aad0c785e497f1bade3955c4e4a677b629fa9d jdk-12+0
 9816d7cc655e53ba081f938b656e31971b8f097a jdk-11+20
+14708e1acdc3974f4539027cbbcfa6d69f83cf51 jdk-11+21
+00b16d0457e43d23f6ca5ade6b243edce62750a0 jdk-12+1
+9937ef7499dcd7673714517fd5e450410c14ba4e jdk-11+22
+69b438908512d3dfef5852c6a843a5778333a309 jdk-12+2
--- a/make/Docs.gmk	Tue Jul 03 14:12:49 2018 +0100
+++ b/make/Docs.gmk	Mon Jul 16 12:11:02 2018 +0100
@@ -274,6 +274,8 @@
   $1_INDIRECT_EXPORTS := $$(call FindTransitiveIndirectDepsForModules, $$($1_MODULES))
   $1_ALL_MODULES := $$(sort $$($1_MODULES) $$($1_INDIRECT_EXPORTS))
 
+  $1_JAVA_ARGS := -Dextlink.spec.version=$$(VERSION_SPECIFICATION)
+
   ifeq ($$(ENABLE_FULL_DOCS), true)
     # Tell the ModuleGraph taglet to generate html links to soon-to-be-created
     # png files with module graphs.
@@ -327,9 +329,10 @@
   )
 
   ifeq ($$($1_JAVADOC_CMD), )
-    $1_JAVADOC_CMD := $$(JAVA) -Djava.awt.headless=true \
-        -Dextlink.spec.version=$$(VERSION_SPECIFICATION) $$($1_JAVA_ARGS) \
+    $1_JAVADOC_CMD := $$(JAVA) -Djava.awt.headless=true $$($1_JAVA_ARGS) \
         $$(NEW_JAVADOC)
+  else
+    $1_OPTIONS += $$(addprefix -J, $$($1_JAVA_ARGS)) 
   endif
 
   $1_VARDEPS := $$($1_JAVA_ARGS) $$($1_OPTIONS) $$(MODULES_SOURCE_PATH) \
@@ -463,7 +466,9 @@
 # Setup generation of the reference Java SE API documentation (javadoc + modulegraph)
 
 # The reference javadoc is just the same as javase, but using the BootJDK javadoc
-# and a stable set of javadoc options.
+# and a stable set of javadoc options.  Typically it is used for generating 
+# diffs between the reference javadoc and a javadoc bundle of a specific build
+# generated in the same way.
 
 $(eval $(call SetupApiDocsGeneration, REFERENCE_API, \
     MODULES := $(JAVASE_MODULES), \
@@ -497,10 +502,9 @@
 JDK_INDEX_TARGETS += $(COPY_GLOBAL_RESOURCES)
 
 # Copy the legal notices distributed with the docs bundle
-DOCS_LEGAL_NOTICES := jquery.md jszip.md pako.md
 $(eval $(call SetupCopyFiles, COPY_DOCS_LEGAL_NOTICES, \
     SRC := $(TOPDIR)/src/jdk.javadoc/share/legal, \
-    FILES := $(DOCS_LEGAL_NOTICES), \
+    FILES := $(wildcard $(TOPDIR)/src/jdk.javadoc/share/legal/*), \
     DEST := $(DOCS_OUTPUTDIR)/legal, \
 ))
 JDK_INDEX_TARGETS += $(COPY_DOCS_LEGAL_NOTICES)
--- a/make/autoconf/hotspot.m4	Tue Jul 03 14:12:49 2018 +0100
+++ b/make/autoconf/hotspot.m4	Mon Jul 16 12:11:02 2018 +0100
@@ -201,8 +201,6 @@
     ENABLE_AOT="true"
   elif test "x$enable_aot" = "xno"; then
     ENABLE_AOT="false"
-    AC_MSG_CHECKING([if aot should be enabled])
-    AC_MSG_RESULT([no, forced])
   else
     AC_MSG_ERROR([Invalid value for --enable-aot: $enable_aot])
   fi
@@ -228,7 +226,7 @@
     else
       ENABLE_AOT="false"
       if test "x$enable_aot" = "xyes"; then
-        AC_MSG_ERROR([AOT is currently only supported on x86_64. Remove --enable-aot.])
+        AC_MSG_ERROR([AOT is currently only supported on x86_64 and aarch64. Remove --enable-aot.])
       fi
     fi
   fi
@@ -374,57 +372,106 @@
     fi
   fi
 
-  # Only enable jvmci on x86_64, sparcv9 and aarch64.
-  if test "x$OPENJDK_TARGET_CPU" = "xx86_64" || \
-     test "x$OPENJDK_TARGET_CPU" = "xsparcv9" || \
-     test "x$OPENJDK_TARGET_CPU" = "xaarch64" ; then
-    JVM_FEATURES_jvmci="jvmci"
+  AC_MSG_CHECKING([if jvmci module jdk.internal.vm.ci should be built])
+  # Check if jvmci is diabled
+  DISABLE_JVMCI=`$ECHO $DISABLED_JVM_FEATURES | $GREP jvmci`
+  if test "x$DISABLE_JVMCI" = "xjvmci"; then
+    AC_MSG_RESULT([no, forced])
+    JVM_FEATURES_jvmci=""
+    INCLUDE_JVMCI="false"
   else
-    JVM_FEATURES_jvmci=""
+    # Only enable jvmci on x86_64, sparcv9 and aarch64
+    if test "x$OPENJDK_TARGET_CPU" = "xx86_64" || \
+       test "x$OPENJDK_TARGET_CPU" = "xsparcv9" || \
+       test "x$OPENJDK_TARGET_CPU" = "xaarch64" ; then
+      AC_MSG_RESULT([yes])
+      JVM_FEATURES_jvmci="jvmci"
+      INCLUDE_JVMCI="true"
+    else
+      AC_MSG_RESULT([no])
+      JVM_FEATURES_jvmci=""
+      INCLUDE_JVMCI="false"
+      if HOTSPOT_CHECK_JVM_FEATURE(jvmci); then
+        AC_MSG_ERROR([JVMCI is currently not supported on this platform.])
+      fi
+    fi
   fi
 
-  AC_MSG_CHECKING([if jdk.internal.vm.compiler should be built])
-  if HOTSPOT_CHECK_JVM_FEATURE(graal); then
-    AC_MSG_RESULT([yes, forced])
-    if test "x$JVM_FEATURES_jvmci" != "xjvmci" ; then
-      AC_MSG_ERROR([Specified JVM feature 'graal' requires feature 'jvmci'])
-    fi
-    INCLUDE_GRAAL="true"
+  AC_SUBST(INCLUDE_JVMCI)
+
+  AC_MSG_CHECKING([if graal module jdk.internal.vm.compiler should be built])
+  # Check if graal is diabled
+  DISABLE_GRAAL=`$ECHO $DISABLED_JVM_FEATURES | $GREP graal`
+  if test "x$DISABLE_GRAAL" = "xgraal"; then
+    AC_MSG_RESULT([no, forced])
+    JVM_FEATURES_graal=""
+    INCLUDE_GRAAL="false"
   else
-    # By default enable graal build on x64 or where AOT is available.
-    # graal build requires jvmci.
-    if test "x$JVM_FEATURES_jvmci" = "xjvmci" && \
-        (test "x$OPENJDK_TARGET_CPU" = "xx86_64" || \
-         test "x$ENABLE_AOT" = "xtrue") ; then
-      AC_MSG_RESULT([yes])
+    if HOTSPOT_CHECK_JVM_FEATURE(graal); then
+      AC_MSG_RESULT([yes, forced])
+      if test "x$JVM_FEATURES_jvmci" != "xjvmci" ; then
+        AC_MSG_ERROR([Specified JVM feature 'graal' requires feature 'jvmci'])
+      fi
       JVM_FEATURES_graal="graal"
       INCLUDE_GRAAL="true"
     else
-      AC_MSG_RESULT([no])
-      JVM_FEATURES_graal=""
-      INCLUDE_GRAAL="false"
+      # By default enable graal build on x64 or where AOT is available.
+      # graal build requires jvmci.
+      if test "x$JVM_FEATURES_jvmci" = "xjvmci" && \
+          (test "x$OPENJDK_TARGET_CPU" = "xx86_64" || \
+           test "x$ENABLE_AOT" = "xtrue") ; then
+        AC_MSG_RESULT([yes])
+        JVM_FEATURES_graal="graal"
+        INCLUDE_GRAAL="true"
+      else
+        AC_MSG_RESULT([no])
+        JVM_FEATURES_graal=""
+        INCLUDE_GRAAL="false"
+      fi
     fi
   fi
 
   AC_SUBST(INCLUDE_GRAAL)
 
+  # Disable aot with '--with-jvm-features=-aot'
+  DISABLE_AOT=`$ECHO $DISABLED_JVM_FEATURES | $GREP aot`
+  if test "x$DISABLE_AOT" = "xaot"; then
+    ENABLE_AOT="false"
+  fi
+
   AC_MSG_CHECKING([if aot should be enabled])
   if test "x$ENABLE_AOT" = "xtrue"; then
-    if test "x$enable_aot" = "xyes"; then
-      AC_MSG_RESULT([yes, forced])
+    if test "x$JVM_FEATURES_graal" != "xgraal"; then
+      if test "x$enable_aot" = "xyes" || HOTSPOT_CHECK_JVM_FEATURE(aot); then
+        AC_MSG_RESULT([yes, forced])
+        AC_MSG_ERROR([Specified JVM feature 'aot' requires feature 'graal'])
+      else
+        AC_MSG_RESULT([no])
+      fi
+      JVM_FEATURES_aot=""
+      ENABLE_AOT="false"
     else
-      AC_MSG_RESULT([yes])
+      if test "x$enable_aot" = "xyes" || HOTSPOT_CHECK_JVM_FEATURE(aot); then
+        AC_MSG_RESULT([yes, forced])
+      else
+        AC_MSG_RESULT([yes])
+      fi
+      JVM_FEATURES_aot="aot"
     fi
-    JVM_FEATURES_aot="aot"
   else
-    if test "x$enable_aot" = "xno"; then
+    if test "x$enable_aot" = "xno" || "x$DISABLE_AOT" = "xaot"; then
       AC_MSG_RESULT([no, forced])
     else
       AC_MSG_RESULT([no])
     fi
     JVM_FEATURES_aot=""
+    if HOTSPOT_CHECK_JVM_FEATURE(aot); then
+      AC_MSG_ERROR([To enable aot, you must use --enable-aot])
+    fi
   fi
 
+  AC_SUBST(ENABLE_AOT)
+
   if test "x$OPENJDK_TARGET_CPU" = xarm ; then
     # Default to use link time optimizations on minimal on arm
     JVM_FEATURES_link_time_opt="link-time-opt"
@@ -453,7 +500,7 @@
 
   # Enable features depending on variant.
   JVM_FEATURES_server="compiler1 compiler2 $NON_MINIMAL_FEATURES $JVM_FEATURES $JVM_FEATURES_jvmci $JVM_FEATURES_aot $JVM_FEATURES_graal"
-  JVM_FEATURES_client="compiler1 $NON_MINIMAL_FEATURES $JVM_FEATURES $JVM_FEATURES_jvmci"
+  JVM_FEATURES_client="compiler1 $NON_MINIMAL_FEATURES $JVM_FEATURES"
   JVM_FEATURES_core="$NON_MINIMAL_FEATURES $JVM_FEATURES"
   JVM_FEATURES_minimal="compiler1 minimal serialgc $JVM_FEATURES $JVM_FEATURES_link_time_opt"
   JVM_FEATURES_zero="zero $NON_MINIMAL_FEATURES $JVM_FEATURES"
--- a/make/autoconf/spec.gmk.in	Tue Jul 03 14:12:49 2018 +0100
+++ b/make/autoconf/spec.gmk.in	Mon Jul 16 12:11:02 2018 +0100
@@ -814,6 +814,7 @@
 
 INCLUDE_SA=@INCLUDE_SA@
 INCLUDE_GRAAL=@INCLUDE_GRAAL@
+INCLUDE_JVMCI=@INCLUDE_JVMCI@
 
 OS_VERSION_MAJOR:=@OS_VERSION_MAJOR@
 OS_VERSION_MINOR:=@OS_VERSION_MINOR@
--- a/make/common/MakeBase.gmk	Tue Jul 03 14:12:49 2018 +0100
+++ b/make/common/MakeBase.gmk	Mon Jul 16 12:11:02 2018 +0100
@@ -1015,7 +1015,7 @@
   $(call LogCmdlines, Exececuting: [$(strip $2)]) \
   $(call MakeDir, $(dir $(strip $1))) \
   $(call WriteFile, $2, $(strip $1).cmdline) \
-  ( $(strip $2) > >($(TEE) $(strip $1).log) 2> >($(TEE) $(strip $1).log >&2) || \
+  ( $(RM) $(strip $1).log && $(strip $2) > >($(TEE) -a $(strip $1).log) 2> >($(TEE) -a $(strip $1).log >&2) || \
       ( exitcode=$(DOLLAR)? && \
       $(CP) $(strip $1).log $(MAKESUPPORT_OUTPUTDIR)/failure-logs/$(subst /,_,$(patsubst $(OUTPUTDIR)/%,%,$(strip $1))).log && \
       $(CP) $(strip $1).cmdline $(MAKESUPPORT_OUTPUTDIR)/failure-logs/$(subst /,_,$(patsubst $(OUTPUTDIR)/%,%,$(strip $1))).cmdline && \
--- a/make/common/Modules.gmk	Tue Jul 03 14:12:49 2018 +0100
+++ b/make/common/Modules.gmk	Mon Jul 16 12:11:02 2018 +0100
@@ -205,7 +205,14 @@
 endif
 
 ################################################################################
-# Filter out Graal specific modules if Graal build is disabled
+# Filter out jvmci specific modules if jvmci is disabled
+
+ifeq ($(INCLUDE_JVMCI), false)
+  MODULES_FILTER += jdk.internal.vm.ci
+endif
+
+################################################################################
+# Filter out Graal specific modules if Graal is disabled
 
 ifeq ($(INCLUDE_GRAAL), false)
   MODULES_FILTER += jdk.internal.vm.compiler
--- a/make/conf/jib-profiles.js	Tue Jul 03 14:12:49 2018 +0100
+++ b/make/conf/jib-profiles.js	Mon Jul 16 12:11:02 2018 +0100
@@ -239,7 +239,7 @@
 
     // These are the base setttings for all the main build profiles.
     common.main_profile_base = {
-        dependencies: ["boot_jdk", "gnumake", "jtreg", "jib"],
+        dependencies: ["boot_jdk", "gnumake", "jtreg", "jib", "autoconf"],
         default_make_targets: ["product-bundles", "test-bundles"],
         configure_args: concat(["--enable-jtreg-failure-handler"],
             "--with-exclude-translations=de,es,fr,it,ko,pt_BR,sv,ca,tr,cs,sk,ja_JP_A,ja_JP_HA,ja_JP_HI,ja_JP_I",
@@ -378,7 +378,7 @@
         "linux-x64": {
             target_os: "linux",
             target_cpu: "x64",
-            dependencies: ["devkit", "autoconf", "graphviz", "pandoc", "graalunit_lib"],
+            dependencies: ["devkit", "graphviz", "pandoc", "graalunit_lib"],
             configure_args: concat(common.configure_args_64bit,
                 "--enable-full-docs", "--with-zlib=system"),
             default_make_targets: ["docs-bundles"],
@@ -388,7 +388,7 @@
             target_os: "linux",
             target_cpu: "x86",
             build_cpu: "x64",
-            dependencies: ["devkit", "autoconf"],
+            dependencies: ["devkit"],
             configure_args: concat(common.configure_args_32bit,
                 "--with-jvm-variants=minimal,server", "--with-zlib=system"),
         },
@@ -396,7 +396,7 @@
         "macosx-x64": {
             target_os: "macosx",
             target_cpu: "x64",
-            dependencies: ["devkit", "autoconf", "graalunit_lib"],
+            dependencies: ["devkit", "graalunit_lib"],
             configure_args: concat(common.configure_args_64bit, "--with-zlib=system",
                 "--with-macosx-version-max=10.9.0"),
         },
@@ -404,7 +404,7 @@
         "solaris-x64": {
             target_os: "solaris",
             target_cpu: "x64",
-            dependencies: ["devkit", "autoconf", "cups"],
+            dependencies: ["devkit", "cups"],
             configure_args: concat(common.configure_args_64bit,
                 "--with-zlib=system", "--enable-dtrace"),
         },
@@ -412,7 +412,7 @@
         "solaris-sparcv9": {
             target_os: "solaris",
             target_cpu: "sparcv9",
-            dependencies: ["devkit", "autoconf", "cups"],
+            dependencies: ["devkit", "cups"],
             configure_args: concat(common.configure_args_64bit,
                 "--with-zlib=system", "--enable-dtrace"),
         },
@@ -420,7 +420,7 @@
         "windows-x64": {
             target_os: "windows",
             target_cpu: "x64",
-            dependencies: ["devkit", "autoconf", "graalunit_lib"],
+            dependencies: ["devkit", "graalunit_lib"],
             configure_args: concat(common.configure_args_64bit),
         },
 
@@ -428,7 +428,7 @@
             target_os: "windows",
             target_cpu: "x86",
             build_cpu: "x64",
-            dependencies: ["devkit", "autoconf"],
+            dependencies: ["devkit"],
             configure_args: concat(common.configure_args_32bit),
         },
 
@@ -436,7 +436,7 @@
             target_os: "linux",
             target_cpu: "aarch64",
             build_cpu: "x64",
-            dependencies: ["devkit", "autoconf", "build_devkit", "cups"],
+            dependencies: ["devkit", "build_devkit", "cups"],
             configure_args: [
                 "--openjdk-target=aarch64-linux-gnu", "--with-freetype=bundled",
                 "--disable-warnings-as-errors", "--with-cpu-port=aarch64",
@@ -447,7 +447,7 @@
             target_os: "linux",
             target_cpu: "aarch64",
             build_cpu: "x64",
-            dependencies: ["devkit", "autoconf", "build_devkit", "cups", "headless_stubs"],
+            dependencies: ["devkit", "build_devkit", "cups", "headless_stubs"],
             configure_args: [
                 "--with-cpu-port=arm64",
                 "--with-jvm-variants=server",
@@ -460,7 +460,7 @@
             target_os: "linux",
             target_cpu: "arm",
             build_cpu: "x64",
-            dependencies: ["devkit", "autoconf", "build_devkit", "cups"],
+            dependencies: ["devkit", "build_devkit", "cups"],
             configure_args: [
                 "--openjdk-target=arm-linux-gnueabihf", "--with-freetype=bundled",
                 "--with-abi-profile=arm-vfp-hflt", "--disable-warnings-as-errors"
@@ -471,7 +471,7 @@
             target_os: "linux",
             target_cpu: "arm",
             build_cpu: "x64",
-            dependencies: ["devkit", "autoconf", "build_devkit", "cups"],
+            dependencies: ["devkit", "build_devkit", "cups"],
             configure_args: [
                 "--with-jvm-variants=minimal1,client",
                 "--with-x=" + input.get("devkit", "install_path") + "/arm-linux-gnueabihf/libc/usr/X11R6-PI",
--- a/make/data/symbols/java.base-6.sym.txt	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,890 +0,0 @@
-#
-# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-# ##########################################################
-# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
-# ##########################################################
-#
-class name java/io/Closeable
-header extends java/lang/Object flags 601
-
-class name java/io/File
--method name toPath descriptor ()Ljava/nio/file/Path;
-
-class name java/io/FileOutputStream
--method name write descriptor (I)V
-method name write descriptor (I)V thrownTypes java/io/IOException flags 101
-
-class name java/io/ObjectInput
-header extends java/lang/Object implements java/io/DataInput flags 601
-
-class name java/io/ObjectOutput
-header extends java/lang/Object implements java/io/DataOutput flags 601
-
-class name java/lang/AssertionError
--method name <init> descriptor (Ljava/lang/String;Ljava/lang/Throwable;)V
-
--class name java/lang/AutoCloseable
-
-class name java/lang/Boolean
--method name compare descriptor (ZZ)I
-
--class name java/lang/BootstrapMethodError
-
-class name java/lang/Byte
--method name compare descriptor (BB)I
-
-class name java/lang/Character
-header extends java/lang/Object implements java/io/Serializable,java/lang/Comparable flags 31 signature Ljava/lang/Object;Ljava/io/Serializable;Ljava/lang/Comparable<Ljava/lang/Character;>;
-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
--method name isBmpCodePoint descriptor (I)Z
--method name isSurrogate descriptor (C)Z
--method name highSurrogate descriptor (I)C
--method name lowSurrogate descriptor (I)C
--method name isAlphabetic descriptor (I)Z
--method name isIdeographic descriptor (I)Z
--method name compare descriptor (CC)I
--method name getName descriptor (I)Ljava/lang/String;
-
-class name java/lang/Character$UnicodeBlock
--field name ARABIC_SUPPLEMENT descriptor Ljava/lang/Character$UnicodeBlock;
--field name NKO descriptor Ljava/lang/Character$UnicodeBlock;
--field name SAMARITAN descriptor Ljava/lang/Character$UnicodeBlock;
--field name MANDAIC descriptor Ljava/lang/Character$UnicodeBlock;
--field name ETHIOPIC_SUPPLEMENT descriptor Ljava/lang/Character$UnicodeBlock;
--field name UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED descriptor Ljava/lang/Character$UnicodeBlock;
--field name NEW_TAI_LUE descriptor Ljava/lang/Character$UnicodeBlock;
--field name BUGINESE descriptor Ljava/lang/Character$UnicodeBlock;
--field name TAI_THAM descriptor Ljava/lang/Character$UnicodeBlock;
--field name BALINESE descriptor Ljava/lang/Character$UnicodeBlock;
--field name SUNDANESE descriptor Ljava/lang/Character$UnicodeBlock;
--field name BATAK descriptor Ljava/lang/Character$UnicodeBlock;
--field name LEPCHA descriptor Ljava/lang/Character$UnicodeBlock;
--field name OL_CHIKI descriptor Ljava/lang/Character$UnicodeBlock;
--field name VEDIC_EXTENSIONS descriptor Ljava/lang/Character$UnicodeBlock;
--field name PHONETIC_EXTENSIONS_SUPPLEMENT descriptor Ljava/lang/Character$UnicodeBlock;
--field name COMBINING_DIACRITICAL_MARKS_SUPPLEMENT descriptor Ljava/lang/Character$UnicodeBlock;
--field name GLAGOLITIC descriptor Ljava/lang/Character$UnicodeBlock;
--field name LATIN_EXTENDED_C descriptor Ljava/lang/Character$UnicodeBlock;
--field name COPTIC descriptor Ljava/lang/Character$UnicodeBlock;
--field name GEORGIAN_SUPPLEMENT descriptor Ljava/lang/Character$UnicodeBlock;
--field name TIFINAGH descriptor Ljava/lang/Character$UnicodeBlock;
--field name ETHIOPIC_EXTENDED descriptor Ljava/lang/Character$UnicodeBlock;
--field name CYRILLIC_EXTENDED_A descriptor Ljava/lang/Character$UnicodeBlock;
--field name SUPPLEMENTAL_PUNCTUATION descriptor Ljava/lang/Character$UnicodeBlock;
--field name CJK_STROKES descriptor Ljava/lang/Character$UnicodeBlock;
--field name LISU descriptor Ljava/lang/Character$UnicodeBlock;
--field name VAI descriptor Ljava/lang/Character$UnicodeBlock;
--field name CYRILLIC_EXTENDED_B descriptor Ljava/lang/Character$UnicodeBlock;
--field name BAMUM descriptor Ljava/lang/Character$UnicodeBlock;
--field name MODIFIER_TONE_LETTERS descriptor Ljava/lang/Character$UnicodeBlock;
--field name LATIN_EXTENDED_D descriptor Ljava/lang/Character$UnicodeBlock;
--field name SYLOTI_NAGRI descriptor Ljava/lang/Character$UnicodeBlock;
--field name COMMON_INDIC_NUMBER_FORMS descriptor Ljava/lang/Character$UnicodeBlock;
--field name PHAGS_PA descriptor Ljava/lang/Character$UnicodeBlock;
--field name SAURASHTRA descriptor Ljava/lang/Character$UnicodeBlock;
--field name DEVANAGARI_EXTENDED descriptor Ljava/lang/Character$UnicodeBlock;
--field name KAYAH_LI descriptor Ljava/lang/Character$UnicodeBlock;
--field name REJANG descriptor Ljava/lang/Character$UnicodeBlock;
--field name HANGUL_JAMO_EXTENDED_A descriptor Ljava/lang/Character$UnicodeBlock;
--field name JAVANESE descriptor Ljava/lang/Character$UnicodeBlock;
--field name CHAM descriptor Ljava/lang/Character$UnicodeBlock;
--field name MYANMAR_EXTENDED_A descriptor Ljava/lang/Character$UnicodeBlock;
--field name TAI_VIET descriptor Ljava/lang/Character$UnicodeBlock;
--field name ETHIOPIC_EXTENDED_A descriptor Ljava/lang/Character$UnicodeBlock;
--field name MEETEI_MAYEK descriptor Ljava/lang/Character$UnicodeBlock;
--field name HANGUL_JAMO_EXTENDED_B descriptor Ljava/lang/Character$UnicodeBlock;
--field name VERTICAL_FORMS descriptor Ljava/lang/Character$UnicodeBlock;
--field name ANCIENT_GREEK_NUMBERS descriptor Ljava/lang/Character$UnicodeBlock;
--field name ANCIENT_SYMBOLS descriptor Ljava/lang/Character$UnicodeBlock;
--field name PHAISTOS_DISC descriptor Ljava/lang/Character$UnicodeBlock;
--field name LYCIAN descriptor Ljava/lang/Character$UnicodeBlock;
--field name CARIAN descriptor Ljava/lang/Character$UnicodeBlock;
--field name OLD_PERSIAN descriptor Ljava/lang/Character$UnicodeBlock;
--field name IMPERIAL_ARAMAIC descriptor Ljava/lang/Character$UnicodeBlock;
--field name PHOENICIAN descriptor Ljava/lang/Character$UnicodeBlock;
--field name LYDIAN descriptor Ljava/lang/Character$UnicodeBlock;
--field name KHAROSHTHI descriptor Ljava/lang/Character$UnicodeBlock;
--field name OLD_SOUTH_ARABIAN descriptor Ljava/lang/Character$UnicodeBlock;
--field name AVESTAN descriptor Ljava/lang/Character$UnicodeBlock;
--field name INSCRIPTIONAL_PARTHIAN descriptor Ljava/lang/Character$UnicodeBlock;
--field name INSCRIPTIONAL_PAHLAVI descriptor Ljava/lang/Character$UnicodeBlock;
--field name OLD_TURKIC descriptor Ljava/lang/Character$UnicodeBlock;
--field name RUMI_NUMERAL_SYMBOLS descriptor Ljava/lang/Character$UnicodeBlock;
--field name BRAHMI descriptor Ljava/lang/Character$UnicodeBlock;
--field name KAITHI descriptor Ljava/lang/Character$UnicodeBlock;
--field name CUNEIFORM descriptor Ljava/lang/Character$UnicodeBlock;
--field name CUNEIFORM_NUMBERS_AND_PUNCTUATION descriptor Ljava/lang/Character$UnicodeBlock;
--field name EGYPTIAN_HIEROGLYPHS descriptor Ljava/lang/Character$UnicodeBlock;
--field name BAMUM_SUPPLEMENT descriptor Ljava/lang/Character$UnicodeBlock;
--field name KANA_SUPPLEMENT descriptor Ljava/lang/Character$UnicodeBlock;
--field name ANCIENT_GREEK_MUSICAL_NOTATION descriptor Ljava/lang/Character$UnicodeBlock;
--field name COUNTING_ROD_NUMERALS descriptor Ljava/lang/Character$UnicodeBlock;
--field name MAHJONG_TILES descriptor Ljava/lang/Character$UnicodeBlock;
--field name DOMINO_TILES descriptor Ljava/lang/Character$UnicodeBlock;
--field name PLAYING_CARDS descriptor Ljava/lang/Character$UnicodeBlock;
--field name ENCLOSED_ALPHANUMERIC_SUPPLEMENT descriptor Ljava/lang/Character$UnicodeBlock;
--field name ENCLOSED_IDEOGRAPHIC_SUPPLEMENT descriptor Ljava/lang/Character$UnicodeBlock;
--field name MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS descriptor Ljava/lang/Character$UnicodeBlock;
--field name EMOTICONS descriptor Ljava/lang/Character$UnicodeBlock;
--field name TRANSPORT_AND_MAP_SYMBOLS descriptor Ljava/lang/Character$UnicodeBlock;
--field name ALCHEMICAL_SYMBOLS descriptor Ljava/lang/Character$UnicodeBlock;
--field name CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C descriptor Ljava/lang/Character$UnicodeBlock;
--field name CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D descriptor Ljava/lang/Character$UnicodeBlock;
-
--class name java/lang/Character$UnicodeScript
-
-class name java/lang/ClassLoader
--method name loadClass descriptor (Ljava/lang/String;Z)Ljava/lang/Class;
--method name getClassLoadingLock descriptor (Ljava/lang/String;)Ljava/lang/Object;
--method name setDefaultAssertionStatus descriptor (Z)V
--method name setPackageAssertionStatus descriptor (Ljava/lang/String;Z)V
--method name setClassAssertionStatus descriptor (Ljava/lang/String;Z)V
--method name clearAssertionStatus descriptor ()V
--method name registerAsParallelCapable descriptor ()Z
-method name loadClass descriptor (Ljava/lang/String;Z)Ljava/lang/Class; thrownTypes java/lang/ClassNotFoundException flags 24 signature (Ljava/lang/String;Z)Ljava/lang/Class<*>;
-method name setDefaultAssertionStatus descriptor (Z)V flags 21
-method name setPackageAssertionStatus descriptor (Ljava/lang/String;Z)V flags 21
-method name setClassAssertionStatus descriptor (Ljava/lang/String;Z)V flags 21
-method name clearAssertionStatus descriptor ()V flags 21
-
-class name java/lang/ClassNotFoundException
-header extends java/lang/Exception flags 21
-
--class name java/lang/ClassValue
-
-class name java/lang/Deprecated
-header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljava/lang/annotation/Documented;@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)
-
-class name java/lang/Error
--method name <init> descriptor (Ljava/lang/String;Ljava/lang/Throwable;ZZ)V
-
-class name java/lang/Exception
--method name <init> descriptor (Ljava/lang/String;Ljava/lang/Throwable;ZZ)V
-
-class name java/lang/IllegalAccessException
-header extends java/lang/Exception flags 21
-
-class name java/lang/InstantiationException
-header extends java/lang/Exception flags 21
-
-class name java/lang/Integer
--method name compare descriptor (II)I
-
-class name java/lang/LinkageError
--method name <init> descriptor (Ljava/lang/String;Ljava/lang/Throwable;)V
-
-class name java/lang/Long
--method name compare descriptor (JJ)I
-
-class name java/lang/NoSuchFieldException
-header extends java/lang/Exception flags 21
-
-class name java/lang/NoSuchMethodException
-header extends java/lang/Exception flags 21
-
-class name java/lang/ProcessBuilder
-header extends java/lang/Object flags 31
--method name redirectInput descriptor (Ljava/lang/ProcessBuilder$Redirect;)Ljava/lang/ProcessBuilder;
--method name redirectOutput descriptor (Ljava/lang/ProcessBuilder$Redirect;)Ljava/lang/ProcessBuilder;
--method name redirectError descriptor (Ljava/lang/ProcessBuilder$Redirect;)Ljava/lang/ProcessBuilder;
--method name redirectInput descriptor (Ljava/io/File;)Ljava/lang/ProcessBuilder;
--method name redirectOutput descriptor (Ljava/io/File;)Ljava/lang/ProcessBuilder;
--method name redirectError descriptor (Ljava/io/File;)Ljava/lang/ProcessBuilder;
--method name redirectInput descriptor ()Ljava/lang/ProcessBuilder$Redirect;
--method name redirectOutput descriptor ()Ljava/lang/ProcessBuilder$Redirect;
--method name redirectError descriptor ()Ljava/lang/ProcessBuilder$Redirect;
--method name inheritIO descriptor ()Ljava/lang/ProcessBuilder;
-
--class name java/lang/ProcessBuilder$Redirect
-
--class name java/lang/ProcessBuilder$Redirect$Type
-
--class name java/lang/ReflectiveOperationException
-
-class name java/lang/RuntimeException
--method name <init> descriptor (Ljava/lang/String;Ljava/lang/Throwable;ZZ)V
-
--class name java/lang/SafeVarargs
-
-class name java/lang/Short
--method name compare descriptor (SS)I
-
-class name java/lang/StrictMath
--method name ceil descriptor (D)D
--method name floor descriptor (D)D
-method name ceil descriptor (D)D flags 109
-method name floor descriptor (D)D flags 109
-
-class name java/lang/System
--method name lineSeparator descriptor ()Ljava/lang/String;
-
-class name java/lang/Thread
--method name clone descriptor ()Ljava/lang/Object;
-
-class name java/lang/Throwable
--method name <init> descriptor (Ljava/lang/String;Ljava/lang/Throwable;ZZ)V
--method name getCause descriptor ()Ljava/lang/Throwable;
--method name fillInStackTrace descriptor ()Ljava/lang/Throwable;
--method name addSuppressed descriptor (Ljava/lang/Throwable;)V
--method name getSuppressed descriptor ()[Ljava/lang/Throwable;
-method name getCause descriptor ()Ljava/lang/Throwable; flags 1
-method name fillInStackTrace descriptor ()Ljava/lang/Throwable; flags 121
-
--class name java/lang/invoke/CallSite
-
--class name java/lang/invoke/ConstantCallSite
-
--class name java/lang/invoke/MethodHandle
-
--class name java/lang/invoke/MethodHandleProxies
-
--class name java/lang/invoke/MethodHandles
-
--class name java/lang/invoke/MethodHandles$Lookup
-
--class name java/lang/invoke/MethodType
-
--class name java/lang/invoke/MutableCallSite
-
--class name java/lang/invoke/SwitchPoint
-
--class name java/lang/invoke/VolatileCallSite
-
--class name java/lang/invoke/WrongMethodTypeException
-
-class name java/lang/reflect/InvocationTargetException
-header extends java/lang/Exception flags 21
-
-class name java/lang/reflect/Modifier
--method name classModifiers descriptor ()I
--method name interfaceModifiers descriptor ()I
--method name constructorModifiers descriptor ()I
--method name methodModifiers descriptor ()I
--method name fieldModifiers descriptor ()I
-
-class name java/net/DatagramSocket
-header extends java/lang/Object flags 21
-
-class name java/net/HttpCookie
--method name isHttpOnly descriptor ()Z
--method name setHttpOnly descriptor (Z)V
-
-class name java/net/HttpURLConnection
--field name fixedContentLengthLong descriptor J
--method name setFixedLengthStreamingMode descriptor (J)V
-
-class name java/net/InetAddress
--method name getLoopbackAddress descriptor ()Ljava/net/InetAddress;
-
-class name java/net/InetSocketAddress
--method name getHostString descriptor ()Ljava/lang/String;
-
-class name java/net/NetworkInterface
--method name getIndex descriptor ()I
--method name getByIndex descriptor (I)Ljava/net/NetworkInterface;
-
--class name java/net/ProtocolFamily
-
-class name java/net/ServerSocket
-header extends java/lang/Object flags 21
-
-class name java/net/Socket
-header extends java/lang/Object flags 21
-
--class name java/net/SocketOption
-
--class name java/net/StandardProtocolFamily
-
--class name java/net/StandardSocketOptions
-
-class name java/net/URLClassLoader
-header extends java/security/SecureClassLoader flags 21
--method name getResourceAsStream descriptor (Ljava/lang/String;)Ljava/io/InputStream;
--method name close descriptor ()V
-
-class name java/net/URLConnection
--method name getContentLengthLong descriptor ()J
--method name getHeaderFieldLong descriptor (Ljava/lang/String;J)J
-
-class name java/nio/CharBuffer
--method name subSequence descriptor (II)Ljava/nio/CharBuffer;
--method name subSequence descriptor (II)Ljava/lang/CharSequence;
-method name subSequence descriptor (II)Ljava/lang/CharSequence; flags 401
-
--class name java/nio/channels/AcceptPendingException
-
--class name java/nio/channels/AlreadyBoundException
-
--class name java/nio/channels/AsynchronousByteChannel
-
--class name java/nio/channels/AsynchronousChannel
-
--class name java/nio/channels/AsynchronousChannelGroup
-
--class name java/nio/channels/AsynchronousFileChannel
-
--class name java/nio/channels/AsynchronousServerSocketChannel
-
--class name java/nio/channels/AsynchronousSocketChannel
-
-class name java/nio/channels/Channels
--method name newInputStream descriptor (Ljava/nio/channels/AsynchronousByteChannel;)Ljava/io/InputStream;
--method name newOutputStream descriptor (Ljava/nio/channels/AsynchronousByteChannel;)Ljava/io/OutputStream;
-
--class name java/nio/channels/CompletionHandler
-
-class name java/nio/channels/DatagramChannel
-header extends java/nio/channels/spi/AbstractSelectableChannel implements java/nio/channels/ByteChannel,java/nio/channels/ScatteringByteChannel,java/nio/channels/GatheringByteChannel flags 421
--method name open descriptor (Ljava/net/ProtocolFamily;)Ljava/nio/channels/DatagramChannel;
--method name bind descriptor (Ljava/net/SocketAddress;)Ljava/nio/channels/DatagramChannel;
--method name setOption descriptor (Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/nio/channels/DatagramChannel;
--method name getRemoteAddress descriptor ()Ljava/net/SocketAddress;
--method name setOption descriptor (Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/nio/channels/NetworkChannel;
--method name bind descriptor (Ljava/net/SocketAddress;)Ljava/nio/channels/NetworkChannel;
-
-class name java/nio/channels/FileChannel
-header extends java/nio/channels/spi/AbstractInterruptibleChannel implements java/nio/channels/ByteChannel,java/nio/channels/GatheringByteChannel,java/nio/channels/ScatteringByteChannel flags 421
-innerclass innerClass java/nio/channels/FileChannel$MapMode outerClass java/nio/channels/FileChannel innerClassName MapMode flags 9
--method name open descriptor (Ljava/nio/file/Path;Ljava/util/Set;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/channels/FileChannel;
--method name open descriptor (Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/nio/channels/FileChannel;
--method name truncate descriptor (J)Ljava/nio/channels/SeekableByteChannel;
--method name position descriptor (J)Ljava/nio/channels/SeekableByteChannel;
-
-class name java/nio/channels/FileLock
-header extends java/lang/Object flags 421
--method name <init> descriptor (Ljava/nio/channels/AsynchronousFileChannel;JJZ)V
--method name acquiredBy descriptor ()Ljava/nio/channels/Channel;
--method name close descriptor ()V
-
--class name java/nio/channels/IllegalChannelGroupException
-
--class name java/nio/channels/InterruptedByTimeoutException
-
--class name java/nio/channels/MembershipKey
-
--class name java/nio/channels/MulticastChannel
-
--class name java/nio/channels/NetworkChannel
-
--class name java/nio/channels/ReadPendingException
-
--class name java/nio/channels/SeekableByteChannel
-
-class name java/nio/channels/Selector
-header extends java/lang/Object flags 421
-
-class name java/nio/channels/ServerSocketChannel
-header extends java/nio/channels/spi/AbstractSelectableChannel flags 421
--method name bind descriptor (Ljava/net/SocketAddress;)Ljava/nio/channels/ServerSocketChannel;
--method name bind descriptor (Ljava/net/SocketAddress;I)Ljava/nio/channels/ServerSocketChannel;
--method name setOption descriptor (Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/nio/channels/ServerSocketChannel;
--method name setOption descriptor (Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/nio/channels/NetworkChannel;
--method name bind descriptor (Ljava/net/SocketAddress;)Ljava/nio/channels/NetworkChannel;
-
--class name java/nio/channels/ShutdownChannelGroupException
-
-class name java/nio/channels/SocketChannel
-header extends java/nio/channels/spi/AbstractSelectableChannel implements java/nio/channels/ByteChannel,java/nio/channels/ScatteringByteChannel,java/nio/channels/GatheringByteChannel flags 421
--method name bind descriptor (Ljava/net/SocketAddress;)Ljava/nio/channels/SocketChannel;
--method name setOption descriptor (Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/nio/channels/SocketChannel;
--method name shutdownInput descriptor ()Ljava/nio/channels/SocketChannel;
--method name shutdownOutput descriptor ()Ljava/nio/channels/SocketChannel;
--method name getRemoteAddress descriptor ()Ljava/net/SocketAddress;
--method name setOption descriptor (Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/nio/channels/NetworkChannel;
--method name bind descriptor (Ljava/net/SocketAddress;)Ljava/nio/channels/NetworkChannel;
-
--class name java/nio/channels/WritePendingException
-
--class name java/nio/channels/spi/AsynchronousChannelProvider
-
-class name java/nio/channels/spi/SelectorProvider
--method name openDatagramChannel descriptor (Ljava/net/ProtocolFamily;)Ljava/nio/channels/DatagramChannel;
-
--class name java/nio/charset/StandardCharsets
-
--class name java/nio/file/AccessDeniedException
-
--class name java/nio/file/AccessMode
-
--class name java/nio/file/AtomicMoveNotSupportedException
-
--class name java/nio/file/ClosedDirectoryStreamException
-
--class name java/nio/file/ClosedFileSystemException
-
--class name java/nio/file/ClosedWatchServiceException
-
--class name java/nio/file/CopyOption
-
--class name java/nio/file/DirectoryIteratorException
-
--class name java/nio/file/DirectoryNotEmptyException
-
--class name java/nio/file/DirectoryStream
-
--class name java/nio/file/DirectoryStream$Filter
-
--class name java/nio/file/FileAlreadyExistsException
-
--class name java/nio/file/FileStore
-
--class name java/nio/file/FileSystem
-
--class name java/nio/file/FileSystemAlreadyExistsException
-
--class name java/nio/file/FileSystemException
-
--class name java/nio/file/FileSystemLoopException
-
--class name java/nio/file/FileSystemNotFoundException
-
--class name java/nio/file/FileSystems
-
--class name java/nio/file/FileVisitOption
-
--class name java/nio/file/FileVisitResult
-
--class name java/nio/file/FileVisitor
-
--class name java/nio/file/Files
-
--class name java/nio/file/InvalidPathException
-
--class name java/nio/file/LinkOption
-
--class name java/nio/file/LinkPermission
-
--class name java/nio/file/NoSuchFileException
-
--class name java/nio/file/NotDirectoryException
-
--class name java/nio/file/NotLinkException
-
--class name java/nio/file/OpenOption
-
--class name java/nio/file/Path
-
--class name java/nio/file/PathMatcher
-
--class name java/nio/file/Paths
-
--class name java/nio/file/ProviderMismatchException
-
--class name java/nio/file/ProviderNotFoundException
-
--class name java/nio/file/ReadOnlyFileSystemException
-
--class name java/nio/file/SecureDirectoryStream
-
--class name java/nio/file/SimpleFileVisitor
-
--class name java/nio/file/StandardCopyOption
-
--class name java/nio/file/StandardOpenOption
-
--class name java/nio/file/StandardWatchEventKinds
-
--class name java/nio/file/WatchEvent
-
--class name java/nio/file/WatchEvent$Kind
-
--class name java/nio/file/WatchEvent$Modifier
-
--class name java/nio/file/WatchKey
-
--class name java/nio/file/WatchService
-
--class name java/nio/file/Watchable
-
--class name java/nio/file/attribute/AclEntry
-
--class name java/nio/file/attribute/AclEntry$Builder
-
--class name java/nio/file/attribute/AclEntryFlag
-
--class name java/nio/file/attribute/AclEntryPermission
-
--class name java/nio/file/attribute/AclEntryType
-
--class name java/nio/file/attribute/AclFileAttributeView
-
--class name java/nio/file/attribute/AttributeView
-
--class name java/nio/file/attribute/BasicFileAttributeView
-
--class name java/nio/file/attribute/BasicFileAttributes
-
--class name java/nio/file/attribute/DosFileAttributeView
-
--class name java/nio/file/attribute/DosFileAttributes
-
--class name java/nio/file/attribute/FileAttribute
-
--class name java/nio/file/attribute/FileAttributeView
-
--class name java/nio/file/attribute/FileOwnerAttributeView
-
--class name java/nio/file/attribute/FileStoreAttributeView
-
--class name java/nio/file/attribute/FileTime
-
--class name java/nio/file/attribute/GroupPrincipal
-
--class name java/nio/file/attribute/PosixFileAttributeView
-
--class name java/nio/file/attribute/PosixFileAttributes
-
--class name java/nio/file/attribute/PosixFilePermission
-
--class name java/nio/file/attribute/PosixFilePermissions
-
--class name java/nio/file/attribute/UserDefinedFileAttributeView
-
--class name java/nio/file/attribute/UserPrincipal
-
--class name java/nio/file/attribute/UserPrincipalLookupService
-
--class name java/nio/file/attribute/UserPrincipalNotFoundException
-
--class name java/nio/file/spi/FileSystemProvider
-
--class name java/nio/file/spi/FileTypeDetector
-
--class name java/security/AlgorithmConstraints
-
--class name java/security/CryptoPrimitive
-
--class name java/security/cert/CRLReason
-
-class name java/security/cert/CertPathValidatorException
-header extends java/security/GeneralSecurityException flags 21
--method name <init> descriptor (Ljava/lang/String;Ljava/lang/Throwable;Ljava/security/cert/CertPath;ILjava/security/cert/CertPathValidatorException$Reason;)V
--method name getReason descriptor ()Ljava/security/cert/CertPathValidatorException$Reason;
-
--class name java/security/cert/CertPathValidatorException$BasicReason
-
--class name java/security/cert/CertPathValidatorException$Reason
-
--class name java/security/cert/CertificateRevokedException
-
--class name java/security/cert/Extension
-
--class name java/security/cert/PKIXReason
-
-class name java/security/cert/X509CRLEntry
--method name getRevocationReason descriptor ()Ljava/security/cert/CRLReason;
-
-class name java/util/ArrayList
--method name removeAll descriptor (Ljava/util/Collection;)Z
--method name retainAll descriptor (Ljava/util/Collection;)Z
--method name listIterator descriptor (I)Ljava/util/ListIterator;
--method name listIterator descriptor ()Ljava/util/ListIterator;
--method name iterator descriptor ()Ljava/util/Iterator;
--method name subList descriptor (II)Ljava/util/List;
-
-class name java/util/Arrays
--method name asList descriptor ([Ljava/lang/Object;)Ljava/util/List;
-method name asList descriptor ([Ljava/lang/Object;)Ljava/util/List; flags 89 signature <T:Ljava/lang/Object;>([TT;)Ljava/util/List<TT;>;
-
-class name java/util/BitSet
--method name valueOf descriptor ([J)Ljava/util/BitSet;
--method name valueOf descriptor (Ljava/nio/LongBuffer;)Ljava/util/BitSet;
--method name valueOf descriptor ([B)Ljava/util/BitSet;
--method name valueOf descriptor (Ljava/nio/ByteBuffer;)Ljava/util/BitSet;
--method name toByteArray descriptor ()[B
--method name toLongArray descriptor ()[J
--method name previousSetBit descriptor (I)I
--method name previousClearBit descriptor (I)I
-
-class name java/util/Calendar
--method name isWeekDateSupported descriptor ()Z
--method name getWeekYear descriptor ()I
--method name setWeekDate descriptor (III)V
--method name getWeeksInWeekYear descriptor ()I
-
-class name java/util/Collections
--method name emptyIterator descriptor ()Ljava/util/Iterator;
--method name emptyListIterator descriptor ()Ljava/util/ListIterator;
--method name emptyEnumeration descriptor ()Ljava/util/Enumeration;
--method name addAll descriptor (Ljava/util/Collection;[Ljava/lang/Object;)Z
-method name addAll descriptor (Ljava/util/Collection;[Ljava/lang/Object;)Z flags 89 signature <T:Ljava/lang/Object;>(Ljava/util/Collection<-TT;>;[TT;)Z
-
-class name java/util/ConcurrentModificationException
--method name <init> descriptor (Ljava/lang/Throwable;)V
--method name <init> descriptor (Ljava/lang/String;Ljava/lang/Throwable;)V
-
-class name java/util/Currency
--method name getAvailableCurrencies descriptor ()Ljava/util/Set;
--method name getNumericCode descriptor ()I
--method name getDisplayName descriptor ()Ljava/lang/String;
--method name getDisplayName descriptor (Ljava/util/Locale;)Ljava/lang/String;
-
-class name java/util/EnumMap
--method name hashCode descriptor ()I
-
-class name java/util/EnumSet
--method name of descriptor (Ljava/lang/Enum;[Ljava/lang/Enum;)Ljava/util/EnumSet;
-method name of descriptor (Ljava/lang/Enum;[Ljava/lang/Enum;)Ljava/util/EnumSet; flags 89 signature <E:Ljava/lang/Enum<TE;>;>(TE;[TE;)Ljava/util/EnumSet<TE;>;
-
-class name java/util/EventListenerProxy
-header extends java/lang/Object implements java/util/EventListener flags 421
--method name <init> descriptor (Ljava/util/EventListener;)V
--method name getListener descriptor ()Ljava/util/EventListener;
-method name <init> descriptor (Ljava/util/EventListener;)V flags 1
-method name getListener descriptor ()Ljava/util/EventListener; flags 1
-
-class name java/util/GregorianCalendar
--method name isWeekDateSupported descriptor ()Z
--method name getWeekYear descriptor ()I
--method name setWeekDate descriptor (III)V
--method name getWeeksInWeekYear descriptor ()I
-
--class name java/util/IllformedLocaleException
-
-class name java/util/Locale
-header extends java/lang/Object implements java/lang/Cloneable,java/io/Serializable flags 31
--field name PRIVATE_USE_EXTENSION descriptor C
--field name UNICODE_LOCALE_EXTENSION descriptor C
--method name getDefault descriptor (Ljava/util/Locale$Category;)Ljava/util/Locale;
--method name setDefault descriptor (Ljava/util/Locale$Category;Ljava/util/Locale;)V
--method name getScript descriptor ()Ljava/lang/String;
--method name getExtension descriptor (C)Ljava/lang/String;
--method name getExtensionKeys descriptor ()Ljava/util/Set;
--method name getUnicodeLocaleAttributes descriptor ()Ljava/util/Set;
--method name getUnicodeLocaleType descriptor (Ljava/lang/String;)Ljava/lang/String;
--method name getUnicodeLocaleKeys descriptor ()Ljava/util/Set;
--method name toLanguageTag descriptor ()Ljava/lang/String;
--method name forLanguageTag descriptor (Ljava/lang/String;)Ljava/util/Locale;
--method name getDisplayScript descriptor ()Ljava/lang/String;
--method name getDisplayScript descriptor (Ljava/util/Locale;)Ljava/lang/String;
-
--class name java/util/Locale$Builder
-
--class name java/util/Locale$Category
-
--class name java/util/Objects
-
-class name java/util/Properties
--method name save descriptor (Ljava/io/OutputStream;Ljava/lang/String;)V
--method name storeToXML descriptor (Ljava/io/OutputStream;Ljava/lang/String;)V
--method name storeToXML descriptor (Ljava/io/OutputStream;Ljava/lang/String;Ljava/lang/String;)V
-method name save descriptor (Ljava/io/OutputStream;Ljava/lang/String;)V flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;
-method name storeToXML descriptor (Ljava/io/OutputStream;Ljava/lang/String;)V thrownTypes java/io/IOException flags 21
-method name storeToXML descriptor (Ljava/io/OutputStream;Ljava/lang/String;Ljava/lang/String;)V thrownTypes java/io/IOException flags 21
-
-class name java/util/Scanner
-header extends java/lang/Object implements java/util/Iterator flags 31 signature Ljava/lang/Object;Ljava/util/Iterator<Ljava/lang/String;>;
--method name <init> descriptor (Ljava/nio/file/Path;)V
--method name <init> descriptor (Ljava/nio/file/Path;Ljava/lang/String;)V
-
-class name java/util/SimpleTimeZone
--method name observesDaylightTime descriptor ()Z
-
-class name java/util/TimeZone
--method name observesDaylightTime descriptor ()Z
-
-class name java/util/Vector
--method name listIterator descriptor (I)Ljava/util/ListIterator;
--method name listIterator descriptor ()Ljava/util/ListIterator;
--method name iterator descriptor ()Ljava/util/Iterator;
-
--class name java/util/concurrent/ConcurrentLinkedDeque
-
-class name java/util/concurrent/ConcurrentLinkedQueue
--method name addAll descriptor (Ljava/util/Collection;)Z
-
--class name java/util/concurrent/ForkJoinPool
-
--class name java/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory
-
--class name java/util/concurrent/ForkJoinPool$ManagedBlocker
-
--class name java/util/concurrent/ForkJoinTask
-
--class name java/util/concurrent/ForkJoinWorkerThread
-
-class name java/util/concurrent/LinkedBlockingQueue
--method name contains descriptor (Ljava/lang/Object;)Z
-
--class name java/util/concurrent/LinkedTransferQueue
-
--class name java/util/concurrent/Phaser
-
--class name java/util/concurrent/RecursiveAction
-
--class name java/util/concurrent/RecursiveTask
-
-class name java/util/concurrent/ScheduledThreadPoolExecutor
--method name setRemoveOnCancelPolicy descriptor (Z)V
--method name getRemoveOnCancelPolicy descriptor ()Z
-method name remove descriptor (Ljava/lang/Runnable;)Z flags 1
-
--class name java/util/concurrent/ThreadLocalRandom
-
-class name java/util/concurrent/ThreadPoolExecutor
--method name toString descriptor ()Ljava/lang/String;
-
--class name java/util/concurrent/TransferQueue
-
-class name java/util/concurrent/locks/AbstractQueuedLongSynchronizer
--method name hasQueuedPredecessors descriptor ()Z
-
-class name java/util/concurrent/locks/AbstractQueuedSynchronizer
--method name hasQueuedPredecessors descriptor ()Z
-
-class name java/util/regex/Matcher
--method name group descriptor (Ljava/lang/String;)Ljava/lang/String;
-
-class name java/util/regex/Pattern
--field name UNICODE_CHARACTER_CLASS descriptor I
-
-class name java/util/spi/CurrencyNameProvider
--method name getDisplayName descriptor (Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String;
-
-class name java/util/spi/LocaleNameProvider
--method name getDisplayScript descriptor (Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String;
-
-class name java/util/zip/Deflater
--field name NO_FLUSH descriptor I
--field name SYNC_FLUSH descriptor I
--field name FULL_FLUSH descriptor I
--method name setInput descriptor ([BII)V
--method name setDictionary descriptor ([BII)V
--method name setStrategy descriptor (I)V
--method name setLevel descriptor (I)V
--method name finish descriptor ()V
--method name finished descriptor ()Z
--method name deflate descriptor ([BII)I
--method name deflate descriptor ([BIII)I
--method name getAdler descriptor ()I
--method name getBytesRead descriptor ()J
--method name getBytesWritten descriptor ()J
--method name reset descriptor ()V
--method name end descriptor ()V
-method name setInput descriptor ([BII)V flags 21
-method name setDictionary descriptor ([BII)V flags 21
-method name setStrategy descriptor (I)V flags 21
-method name setLevel descriptor (I)V flags 21
-method name finish descriptor ()V flags 21
-method name finished descriptor ()Z flags 21
-method name deflate descriptor ([BII)I flags 21
-method name getAdler descriptor ()I flags 21
-method name getBytesRead descriptor ()J flags 21
-method name getBytesWritten descriptor ()J flags 21
-method name reset descriptor ()V flags 21
-method name end descriptor ()V flags 21
-
-class name java/util/zip/DeflaterOutputStream
--method name <init> descriptor (Ljava/io/OutputStream;Ljava/util/zip/Deflater;IZ)V
--method name <init> descriptor (Ljava/io/OutputStream;Ljava/util/zip/Deflater;Z)V
--method name <init> descriptor (Ljava/io/OutputStream;Z)V
--method name flush descriptor ()V
-
-class name java/util/zip/GZIPOutputStream
--method name <init> descriptor (Ljava/io/OutputStream;IZ)V
--method name <init> descriptor (Ljava/io/OutputStream;Z)V
-
-class name java/util/zip/Inflater
--method name setInput descriptor ([BII)V
--method name setDictionary descriptor ([BII)V
--method name getRemaining descriptor ()I
--method name needsInput descriptor ()Z
--method name needsDictionary descriptor ()Z
--method name finished descriptor ()Z
--method name inflate descriptor ([BII)I
--method name getAdler descriptor ()I
--method name getBytesRead descriptor ()J
--method name getBytesWritten descriptor ()J
--method name reset descriptor ()V
--method name end descriptor ()V
-method name setInput descriptor ([BII)V flags 21
-method name setDictionary descriptor ([BII)V flags 21
-method name getRemaining descriptor ()I flags 21
-method name needsInput descriptor ()Z flags 21
-method name needsDictionary descriptor ()Z flags 21
-method name finished descriptor ()Z flags 21
-method name inflate descriptor ([BII)I thrownTypes java/util/zip/DataFormatException flags 21
-method name getAdler descriptor ()I flags 21
-method name getBytesRead descriptor ()J flags 21
-method name getBytesWritten descriptor ()J flags 21
-method name reset descriptor ()V flags 21
-method name end descriptor ()V flags 21
-
-class name java/util/zip/ZipFile
-header extends java/lang/Object implements java/util/zip/ZipConstants flags 21
--method name <init> descriptor (Ljava/io/File;ILjava/nio/charset/Charset;)V
--method name <init> descriptor (Ljava/lang/String;Ljava/nio/charset/Charset;)V
--method name <init> descriptor (Ljava/io/File;Ljava/nio/charset/Charset;)V
--method name getComment descriptor ()Ljava/lang/String;
-
-class name java/util/zip/ZipInputStream
--method name <init> descriptor (Ljava/io/InputStream;Ljava/nio/charset/Charset;)V
-
-class name java/util/zip/ZipOutputStream
--method name <init> descriptor (Ljava/io/OutputStream;Ljava/nio/charset/Charset;)V
-
--class name javax/crypto/AEADBadTagException
-
-class name javax/crypto/Cipher
--method name updateAAD descriptor ([B)V
--method name updateAAD descriptor ([BII)V
--method name updateAAD descriptor (Ljava/nio/ByteBuffer;)V
-
-class name javax/crypto/CipherSpi
--method name engineUpdateAAD descriptor ([BII)V
--method name engineUpdateAAD descriptor (Ljava/nio/ByteBuffer;)V
-
--class name javax/crypto/spec/GCMParameterSpec
-
--class name javax/net/ssl/ExtendedSSLSession
-
-class name javax/net/ssl/SSLEngine
--method name getHandshakeSession descriptor ()Ljavax/net/ssl/SSLSession;
-
-class name javax/net/ssl/SSLEngineResult
-header extends java/lang/Object flags 21
-innerclass innerClass javax/net/ssl/SSLEngineResult$HandshakeStatus outerClass javax/net/ssl/SSLEngineResult innerClassName HandshakeStatus flags 4019
-innerclass innerClass javax/net/ssl/SSLEngineResult$Status outerClass javax/net/ssl/SSLEngineResult innerClassName Status flags 4019
-
-class name javax/net/ssl/SSLParameters
--method name getAlgorithmConstraints descriptor ()Ljava/security/AlgorithmConstraints;
--method name setAlgorithmConstraints descriptor (Ljava/security/AlgorithmConstraints;)V
--method name getEndpointIdentificationAlgorithm descriptor ()Ljava/lang/String;
--method name setEndpointIdentificationAlgorithm descriptor (Ljava/lang/String;)V
-
-class name javax/net/ssl/SSLServerSocket
--method name getSSLParameters descriptor ()Ljavax/net/ssl/SSLParameters;
--method name setSSLParameters descriptor (Ljavax/net/ssl/SSLParameters;)V
-
-class name javax/net/ssl/SSLSocket
--method name getHandshakeSession descriptor ()Ljavax/net/ssl/SSLSession;
-
--class name javax/net/ssl/X509ExtendedTrustManager
-
-class name javax/security/auth/login/Configuration
--method name getConfiguration descriptor ()Ljavax/security/auth/login/Configuration;
-method name getConfiguration descriptor ()Ljavax/security/auth/login/Configuration; flags 29
-
--- a/make/data/symbols/java.compiler-6.sym.txt	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-#
-# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-# ##########################################################
-# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
-# ##########################################################
-#
-class name javax/lang/model/SourceVersion
--field name RELEASE_7 descriptor Ljavax/lang/model/SourceVersion;
-
--class name javax/lang/model/UnknownEntityException
-
-class name javax/lang/model/element/ElementKind
--field name RESOURCE_VARIABLE descriptor Ljavax/lang/model/element/ElementKind;
-
-class name javax/lang/model/element/ExecutableElement
-header extends java/lang/Object implements javax/lang/model/element/Element flags 601
--method name getSimpleName descriptor ()Ljavax/lang/model/element/Name;
-
-class name javax/lang/model/element/PackageElement
-header extends java/lang/Object implements javax/lang/model/element/Element flags 601
--method name getSimpleName descriptor ()Ljavax/lang/model/element/Name;
--method name getEnclosingElement descriptor ()Ljavax/lang/model/element/Element;
-
--class name javax/lang/model/element/Parameterizable
-
--class name javax/lang/model/element/QualifiedNameable
-
-class name javax/lang/model/element/TypeElement
-header extends java/lang/Object implements javax/lang/model/element/Element flags 601
--method name getEnclosedElements descriptor ()Ljava/util/List;
--method name getSimpleName descriptor ()Ljavax/lang/model/element/Name;
--method name getEnclosingElement descriptor ()Ljavax/lang/model/element/Element;
-
-class name javax/lang/model/element/TypeParameterElement
--method name getEnclosingElement descriptor ()Ljavax/lang/model/element/Element;
-
-class name javax/lang/model/element/UnknownAnnotationValueException
-header extends java/lang/RuntimeException flags 21
-
-class name javax/lang/model/element/UnknownElementException
-header extends java/lang/RuntimeException flags 21
-
-class name javax/lang/model/type/MirroredTypeException
-header extends java/lang/RuntimeException flags 21
-
-class name javax/lang/model/type/TypeKind
--field name UNION descriptor Ljavax/lang/model/type/TypeKind;
-
-class name javax/lang/model/type/TypeVisitor
--method name visitUnion descriptor (Ljavax/lang/model/type/UnionType;Ljava/lang/Object;)Ljava/lang/Object;
-
--class name javax/lang/model/type/UnionType
-
-class name javax/lang/model/type/UnknownTypeException
-header extends java/lang/RuntimeException flags 21
-
--class name javax/lang/model/util/AbstractAnnotationValueVisitor7
-
--class name javax/lang/model/util/AbstractElementVisitor7
-
-class name javax/lang/model/util/AbstractTypeVisitor6
--method name visitUnion descriptor (Ljavax/lang/model/type/UnionType;Ljava/lang/Object;)Ljava/lang/Object;
-
--class name javax/lang/model/util/AbstractTypeVisitor7
-
-class name javax/lang/model/util/ElementKindVisitor6
--method name visitVariableAsResourceVariable descriptor (Ljavax/lang/model/element/VariableElement;Ljava/lang/Object;)Ljava/lang/Object;
-
--class name javax/lang/model/util/ElementKindVisitor7
-
--class name javax/lang/model/util/ElementScanner7
-
--class name javax/lang/model/util/SimpleAnnotationValueVisitor7
-
--class name javax/lang/model/util/SimpleElementVisitor7
-
--class name javax/lang/model/util/SimpleTypeVisitor7
-
--class name javax/lang/model/util/TypeKindVisitor7
-
--- a/make/data/symbols/java.desktop-6.sym.txt	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1136 +0,0 @@
-#
-# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-# ##########################################################
-# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
-# ##########################################################
-#
-class name java/applet/Applet
--method name isValidateRoot descriptor ()Z
-
-class name java/awt/BasicStroke
--method name <init> descriptor (FIIF[FF)V
-method name <init> descriptor (FIIF[FF)V flags 1
-
-class name java/awt/Color
--method name <init> descriptor (IIII)V
-method name <init> descriptor (IIII)V flags 1
-
-class name java/awt/Component
--method name isVisible descriptor ()Z
--method name getForeground descriptor ()Ljava/awt/Color;
--method name getBackground descriptor ()Ljava/awt/Color;
--method name getFont descriptor ()Ljava/awt/Font;
--method name revalidate descriptor ()V
--method name add descriptor (Ljava/awt/PopupMenu;)V
--method name remove descriptor (Ljava/awt/MenuComponent;)V
--method name addPropertyChangeListener descriptor (Ljava/beans/PropertyChangeListener;)V
--method name removePropertyChangeListener descriptor (Ljava/beans/PropertyChangeListener;)V
--method name getPropertyChangeListeners descriptor ()[Ljava/beans/PropertyChangeListener;
--method name addPropertyChangeListener descriptor (Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V
--method name removePropertyChangeListener descriptor (Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V
--method name getPropertyChangeListeners descriptor (Ljava/lang/String;)[Ljava/beans/PropertyChangeListener;
-method name isVisible descriptor ()Z flags 1
-method name getForeground descriptor ()Ljava/awt/Color; flags 1
-method name getBackground descriptor ()Ljava/awt/Color; flags 1
-method name getFont descriptor ()Ljava/awt/Font; flags 1
-method name add descriptor (Ljava/awt/PopupMenu;)V flags 21
-method name remove descriptor (Ljava/awt/MenuComponent;)V flags 21
-method name addPropertyChangeListener descriptor (Ljava/beans/PropertyChangeListener;)V flags 21
-method name removePropertyChangeListener descriptor (Ljava/beans/PropertyChangeListener;)V flags 21
-method name getPropertyChangeListeners descriptor ()[Ljava/beans/PropertyChangeListener; flags 21
-method name addPropertyChangeListener descriptor (Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V flags 21
-method name removePropertyChangeListener descriptor (Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V flags 21
-method name getPropertyChangeListeners descriptor (Ljava/lang/String;)[Ljava/beans/PropertyChangeListener; flags 21
-
-class name java/awt/Container
--method name isValidateRoot descriptor ()Z
-method name transferFocusBackward descriptor ()V flags 1
-
-class name java/awt/Cursor
--field name predefined descriptor [Ljava/awt/Cursor;
-field name predefined descriptor [Ljava/awt/Cursor; flags c
--method name <init> descriptor (I)V
-method name <init> descriptor (I)V flags 1
-
-class name java/awt/Dialog
--method name setOpacity descriptor (F)V
--method name setShape descriptor (Ljava/awt/Shape;)V
--method name setBackground descriptor (Ljava/awt/Color;)V
-
-class name java/awt/Dimension
--method name getSize descriptor ()Ljava/awt/Dimension;
-method name getSize descriptor ()Ljava/awt/Dimension; flags 1
-
-class name java/awt/EventQueue
--method name peekEvent descriptor ()Ljava/awt/AWTEvent;
--method name peekEvent descriptor (I)Ljava/awt/AWTEvent;
--method name push descriptor (Ljava/awt/EventQueue;)V
--method name createSecondaryLoop descriptor ()Ljava/awt/SecondaryLoop;
-method name peekEvent descriptor ()Ljava/awt/AWTEvent; flags 21
-method name peekEvent descriptor (I)Ljava/awt/AWTEvent; flags 21
-method name push descriptor (Ljava/awt/EventQueue;)V flags 21
-
-class name java/awt/FileDialog
--method name getFiles descriptor ()[Ljava/io/File;
--method name setMultipleMode descriptor (Z)V
--method name isMultipleMode descriptor ()Z
-
-class name java/awt/Font
-method name finalize descriptor ()V thrownTypes java/lang/Throwable flags 4
-
-class name java/awt/Frame
--method name setExtendedState descriptor (I)V
--method name getExtendedState descriptor ()I
--method name setMaximizedBounds descriptor (Ljava/awt/Rectangle;)V
--method name setOpacity descriptor (F)V
--method name setShape descriptor (Ljava/awt/Shape;)V
--method name setBackground descriptor (Ljava/awt/Color;)V
-method name setExtendedState descriptor (I)V flags 21
-method name getExtendedState descriptor ()I flags 21
-method name setMaximizedBounds descriptor (Ljava/awt/Rectangle;)V flags 21
-
-class name java/awt/GradientPaint
--method name <init> descriptor (Ljava/awt/geom/Point2D;Ljava/awt/Color;Ljava/awt/geom/Point2D;Ljava/awt/Color;Z)V
-method name <init> descriptor (Ljava/awt/geom/Point2D;Ljava/awt/Color;Ljava/awt/geom/Point2D;Ljava/awt/Color;Z)V flags 1
-
-class name java/awt/GraphicsConfiguration
--method name createCompatibleImage descriptor (II)Ljava/awt/image/BufferedImage;
--method name isTranslucencyCapable descriptor ()Z
-method name createCompatibleImage descriptor (II)Ljava/awt/image/BufferedImage; flags 401
-
-class name java/awt/GraphicsDevice
-header extends java/lang/Object flags 421
--method name isWindowTranslucencySupported descriptor (Ljava/awt/GraphicsDevice$WindowTranslucency;)Z
-
--class name java/awt/GraphicsDevice$WindowTranslucency
-
-class name java/awt/LinearGradientPaint
--method name <init> descriptor (Ljava/awt/geom/Point2D;Ljava/awt/geom/Point2D;[F[Ljava/awt/Color;Ljava/awt/MultipleGradientPaint$CycleMethod;Ljava/awt/MultipleGradientPaint$ColorSpaceType;Ljava/awt/geom/AffineTransform;)V
-method name <init> descriptor (Ljava/awt/geom/Point2D;Ljava/awt/geom/Point2D;[F[Ljava/awt/Color;Ljava/awt/MultipleGradientPaint$CycleMethod;Ljava/awt/MultipleGradientPaint$ColorSpaceType;Ljava/awt/geom/AffineTransform;)V flags 1
-
-class name java/awt/Point
--method name getLocation descriptor ()Ljava/awt/Point;
-method name getLocation descriptor ()Ljava/awt/Point; flags 1
-
-class name java/awt/RadialGradientPaint
--method name <init> descriptor (Ljava/awt/geom/Point2D;FLjava/awt/geom/Point2D;[F[Ljava/awt/Color;Ljava/awt/MultipleGradientPaint$CycleMethod;Ljava/awt/MultipleGradientPaint$ColorSpaceType;Ljava/awt/geom/AffineTransform;)V
-method name <init> descriptor (Ljava/awt/geom/Point2D;FLjava/awt/geom/Point2D;[F[Ljava/awt/Color;Ljava/awt/MultipleGradientPaint$CycleMethod;Ljava/awt/MultipleGradientPaint$ColorSpaceType;Ljava/awt/geom/AffineTransform;)V flags 1
-
-class name java/awt/Rectangle
--method name getBounds descriptor ()Ljava/awt/Rectangle;
-method name getBounds descriptor ()Ljava/awt/Rectangle; flags 1
-
-class name java/awt/ScrollPane
--method name <init> descriptor (I)V
--method name getScrollPosition descriptor ()Ljava/awt/Point;
-method name <init> descriptor (I)V thrownTypes java/awt/HeadlessException flags 1
-method name getScrollPosition descriptor ()Ljava/awt/Point; flags 1
-
--class name java/awt/SecondaryLoop
-
-class name java/awt/SplashScreen
--method name getSplashScreen descriptor ()Ljava/awt/SplashScreen;
--method name getImageURL descriptor ()Ljava/net/URL;
--method name close descriptor ()V
-method name getSplashScreen descriptor ()Ljava/awt/SplashScreen; flags 29
-method name getImageURL descriptor ()Ljava/net/URL; thrownTypes java/lang/IllegalStateException flags 21
-method name close descriptor ()V thrownTypes java/lang/IllegalStateException flags 21
-
-class name java/awt/SystemColor
-method name getRGB descriptor ()I flags 1
-method name createContext descriptor (Ljava/awt/image/ColorModel;Ljava/awt/Rectangle;Ljava/awt/geom/Rectangle2D;Ljava/awt/geom/AffineTransform;Ljava/awt/RenderingHints;)Ljava/awt/PaintContext; flags 1
-
-class name java/awt/TextField
--method name setColumns descriptor (I)V
-method name setColumns descriptor (I)V flags 21
-
-class name java/awt/Toolkit
--method name addPropertyChangeListener descriptor (Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V
--method name removePropertyChangeListener descriptor (Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V
--method name getPropertyChangeListeners descriptor (Ljava/lang/String;)[Ljava/beans/PropertyChangeListener;
--method name areExtraMouseButtonsEnabled descriptor ()Z
-method name addPropertyChangeListener descriptor (Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V flags 21
-method name removePropertyChangeListener descriptor (Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V flags 21
-method name getPropertyChangeListeners descriptor (Ljava/lang/String;)[Ljava/beans/PropertyChangeListener; flags 21
-
-class name java/awt/Window
-header extends java/awt/Container implements javax/accessibility/Accessible flags 21
-innerclass innerClass java/awt/Window$AccessibleAWTWindow outerClass java/awt/Window innerClassName AccessibleAWTWindow flags 4
-innerclass innerClass java/awt/Dialog$ModalExclusionType outerClass java/awt/Dialog innerClassName ModalExclusionType flags 4019
--method name setLocation descriptor (II)V
--method name setLocation descriptor (Ljava/awt/Point;)V
--method name setAutoRequestFocus descriptor (Z)V
--method name isAutoRequestFocus descriptor ()Z
--method name isValidateRoot descriptor ()Z
--method name setType descriptor (Ljava/awt/Window$Type;)V
--method name getType descriptor ()Ljava/awt/Window$Type;
--method name getOpacity descriptor ()F
--method name setOpacity descriptor (F)V
--method name getShape descriptor ()Ljava/awt/Shape;
--method name setShape descriptor (Ljava/awt/Shape;)V
--method name getBackground descriptor ()Ljava/awt/Color;
--method name setBackground descriptor (Ljava/awt/Color;)V
--method name isOpaque descriptor ()Z
--method name paint descriptor (Ljava/awt/Graphics;)V
-method name getGraphicsConfiguration descriptor ()Ljava/awt/GraphicsConfiguration; flags 1
-
--class name java/awt/Window$Type
-
-class name java/awt/event/AWTEventListenerProxy
-header extends java/util/EventListenerProxy implements java/awt/event/AWTEventListener flags 21
-
-class name java/awt/event/InputEvent
--method name getMaskForButton descriptor (I)I
-
-class name java/awt/event/InvocationEvent
--method name isDispatched descriptor ()Z
-
-class name java/awt/event/KeyEvent
--method name getExtendedKeyCode descriptor ()I
--method name getExtendedKeyCodeForChar descriptor (I)I
-
-class name java/awt/event/MouseEvent
--method name getModifiersEx descriptor ()I
-
-class name java/awt/event/MouseWheelEvent
--method name <init> descriptor (Ljava/awt/Component;IJIIIIIIZIIID)V
--method name getPreciseWheelRotation descriptor ()D
-
-class name java/awt/font/NumericShaper
-header extends java/lang/Object implements java/io/Serializable flags 31
--method name getShaper descriptor (Ljava/awt/font/NumericShaper$Range;)Ljava/awt/font/NumericShaper;
--method name getContextualShaper descriptor (Ljava/util/Set;)Ljava/awt/font/NumericShaper;
--method name getContextualShaper descriptor (Ljava/util/Set;Ljava/awt/font/NumericShaper$Range;)Ljava/awt/font/NumericShaper;
--method name shape descriptor ([CIILjava/awt/font/NumericShaper$Range;)V
--method name getRangeSet descriptor ()Ljava/util/Set;
-
--class name java/awt/font/NumericShaper$Range
-
-class name java/awt/geom/AffineTransform
--method name <init> descriptor (FFFFFF)V
-method name <init> descriptor (FFFFFF)V flags 1
-
-class name java/awt/geom/Arc2D
--method name <init> descriptor ()V
-
-class name java/awt/geom/Path2D
--method name getPathIterator descriptor (Ljava/awt/geom/AffineTransform;D)Ljava/awt/geom/PathIterator;
-method name getPathIterator descriptor (Ljava/awt/geom/AffineTransform;D)Ljava/awt/geom/PathIterator; flags 1
-
-class name java/awt/geom/Path2D$Double
--method name getPathIterator descriptor (Ljava/awt/geom/AffineTransform;)Ljava/awt/geom/PathIterator;
-method name getPathIterator descriptor (Ljava/awt/geom/AffineTransform;)Ljava/awt/geom/PathIterator; flags 1
-
-class name java/awt/geom/Path2D$Float
--method name getPathIterator descriptor (Ljava/awt/geom/AffineTransform;)Ljava/awt/geom/PathIterator;
-method name getPathIterator descriptor (Ljava/awt/geom/AffineTransform;)Ljava/awt/geom/PathIterator; flags 1
-
-class name java/awt/geom/RectangularShape
--method name getFrame descriptor ()Ljava/awt/geom/Rectangle2D;
-method name getFrame descriptor ()Ljava/awt/geom/Rectangle2D; flags 1
-
-class name java/awt/im/InputContext
--method name isCompositionEnabled descriptor ()Z
-method name isCompositionEnabled descriptor ()Z flags 1
-
-class name java/awt/peer/CanvasPeer
--method name getAppropriateGraphicsConfiguration descriptor (Ljava/awt/GraphicsConfiguration;)Ljava/awt/GraphicsConfiguration;
-
-class name java/awt/peer/ChoicePeer
-method name addItem descriptor (Ljava/lang/String;I)V flags 401
-
-class name java/awt/peer/ComponentPeer
--method name flip descriptor (IIIILjava/awt/BufferCapabilities$FlipContents;)V
--method name applyShape descriptor (Lsun/java2d/pipe/Region;)V
--method name setZOrder descriptor (Ljava/awt/peer/ComponentPeer;)V
--method name updateGraphicsData descriptor (Ljava/awt/GraphicsConfiguration;)Z
-method name repaint descriptor (JIIII)V flags 401
-method name flip descriptor (Ljava/awt/BufferCapabilities$FlipContents;)V flags 401
-method name getBounds descriptor ()Ljava/awt/Rectangle; flags 401
-method name preferredSize descriptor ()Ljava/awt/Dimension; flags 401
-method name minimumSize descriptor ()Ljava/awt/Dimension; flags 401
-method name show descriptor ()V flags 401
-method name hide descriptor ()V flags 401
-method name enable descriptor ()V flags 401
-method name disable descriptor ()V flags 401
-method name reshape descriptor (IIII)V flags 401
-
-class name java/awt/peer/ContainerPeer
-method name isPaintPending descriptor ()Z flags 401
-method name restack descriptor ()V flags 401
-method name isRestackSupported descriptor ()Z flags 401
-method name insets descriptor ()Ljava/awt/Insets; flags 401
-
-class name java/awt/peer/DialogPeer
--method name blockWindows descriptor (Ljava/util/List;)V
-
-class name java/awt/peer/KeyboardFocusManagerPeer
-method name setCurrentFocusedWindow descriptor (Ljava/awt/Window;)V flags 401
-
-class name java/awt/peer/ListPeer
-method name addItem descriptor (Ljava/lang/String;I)V flags 401
-method name clear descriptor ()V flags 401
-method name setMultipleSelections descriptor (Z)V flags 401
-method name preferredSize descriptor (I)Ljava/awt/Dimension; flags 401
-method name minimumSize descriptor (I)Ljava/awt/Dimension; flags 401
-
-class name java/awt/peer/MenuItemPeer
-method name enable descriptor ()V flags 401
-method name disable descriptor ()V flags 401
-
-class name java/awt/peer/RobotPeer
--method name dispose descriptor ()V
-
-class name java/awt/peer/TextAreaPeer
-method name insertText descriptor (Ljava/lang/String;I)V flags 401
-method name replaceText descriptor (Ljava/lang/String;II)V flags 401
-method name preferredSize descriptor (II)Ljava/awt/Dimension; flags 401
-method name minimumSize descriptor (II)Ljava/awt/Dimension; flags 401
-
-class name java/awt/peer/TextComponentPeer
-method name getIndexAtPoint descriptor (II)I flags 401
-method name getCharacterBounds descriptor (I)Ljava/awt/Rectangle; flags 401
-method name filterEvents descriptor (J)J flags 401
-
-class name java/awt/peer/TextFieldPeer
-method name setEchoCharacter descriptor (C)V flags 401
-method name preferredSize descriptor (I)Ljava/awt/Dimension; flags 401
-method name minimumSize descriptor (I)Ljava/awt/Dimension; flags 401
-
-class name java/awt/peer/WindowPeer
--method name setOpacity descriptor (F)V
--method name setOpaque descriptor (Z)V
--method name updateWindow descriptor ()V
--method name repositionSecurityWarning descriptor ()V
-method name requestWindowFocus descriptor ()Z flags 401
-
-class name java/beans/EventHandler
--method name <init> descriptor (Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-method name <init> descriptor (Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V flags 1
-
-class name java/beans/Expression
--method name <init> descriptor (Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
--method name execute descriptor ()V
-method name <init> descriptor (Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V flags 1
-
-class name java/beans/FeatureDescriptor
--method name toString descriptor ()Ljava/lang/String;
-
-class name java/beans/Introspector
--method name getBeanInfo descriptor (Ljava/lang/Class;Ljava/lang/Class;I)Ljava/beans/BeanInfo;
--method name getBeanInfoSearchPath descriptor ()[Ljava/lang/String;
--method name setBeanInfoSearchPath descriptor ([Ljava/lang/String;)V
-method name getBeanInfoSearchPath descriptor ()[Ljava/lang/String; flags 29
-method name setBeanInfoSearchPath descriptor ([Ljava/lang/String;)V flags 29
-
-class name java/beans/PropertyChangeEvent
--method name toString descriptor ()Ljava/lang/String;
-
-class name java/beans/PropertyChangeListenerProxy
-header extends java/util/EventListenerProxy implements java/beans/PropertyChangeListener flags 21
-
-class name java/beans/PropertyChangeSupport
--method name addPropertyChangeListener descriptor (Ljava/beans/PropertyChangeListener;)V
--method name removePropertyChangeListener descriptor (Ljava/beans/PropertyChangeListener;)V
--method name getPropertyChangeListeners descriptor ()[Ljava/beans/PropertyChangeListener;
--method name addPropertyChangeListener descriptor (Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V
--method name removePropertyChangeListener descriptor (Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V
--method name getPropertyChangeListeners descriptor (Ljava/lang/String;)[Ljava/beans/PropertyChangeListener;
--method name hasListeners descriptor (Ljava/lang/String;)Z
-method name addPropertyChangeListener descriptor (Ljava/beans/PropertyChangeListener;)V flags 21
-method name removePropertyChangeListener descriptor (Ljava/beans/PropertyChangeListener;)V flags 21
-method name getPropertyChangeListeners descriptor ()[Ljava/beans/PropertyChangeListener; flags 21
-method name addPropertyChangeListener descriptor (Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V flags 21
-method name removePropertyChangeListener descriptor (Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V flags 21
-method name getPropertyChangeListeners descriptor (Ljava/lang/String;)[Ljava/beans/PropertyChangeListener; flags 21
-method name hasListeners descriptor (Ljava/lang/String;)Z flags 21
-
-class name java/beans/PropertyEditorManager
--method name findEditor descriptor (Ljava/lang/Class;)Ljava/beans/PropertyEditor;
--method name getEditorSearchPath descriptor ()[Ljava/lang/String;
--method name setEditorSearchPath descriptor ([Ljava/lang/String;)V
-method name findEditor descriptor (Ljava/lang/Class;)Ljava/beans/PropertyEditor; flags 29 signature (Ljava/lang/Class<*>;)Ljava/beans/PropertyEditor;
-method name getEditorSearchPath descriptor ()[Ljava/lang/String; flags 29
-method name setEditorSearchPath descriptor ([Ljava/lang/String;)V flags 29
-
-class name java/beans/Statement
--method name <init> descriptor (Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
-method name <init> descriptor (Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V flags 1
-
--class name java/beans/Transient
-
-class name java/beans/VetoableChangeListenerProxy
-header extends java/util/EventListenerProxy implements java/beans/VetoableChangeListener flags 21
-
-class name java/beans/VetoableChangeSupport
--method name addVetoableChangeListener descriptor (Ljava/beans/VetoableChangeListener;)V
--method name removeVetoableChangeListener descriptor (Ljava/beans/VetoableChangeListener;)V
--method name getVetoableChangeListeners descriptor ()[Ljava/beans/VetoableChangeListener;
--method name addVetoableChangeListener descriptor (Ljava/lang/String;Ljava/beans/VetoableChangeListener;)V
--method name removeVetoableChangeListener descriptor (Ljava/lang/String;Ljava/beans/VetoableChangeListener;)V
--method name getVetoableChangeListeners descriptor (Ljava/lang/String;)[Ljava/beans/VetoableChangeListener;
--method name hasListeners descriptor (Ljava/lang/String;)Z
-method name addVetoableChangeListener descriptor (Ljava/beans/VetoableChangeListener;)V flags 21
-method name removeVetoableChangeListener descriptor (Ljava/beans/VetoableChangeListener;)V flags 21
-method name getVetoableChangeListeners descriptor ()[Ljava/beans/VetoableChangeListener; flags 21
-method name addVetoableChangeListener descriptor (Ljava/lang/String;Ljava/beans/VetoableChangeListener;)V flags 21
-method name removeVetoableChangeListener descriptor (Ljava/lang/String;Ljava/beans/VetoableChangeListener;)V flags 21
-method name getVetoableChangeListeners descriptor (Ljava/lang/String;)[Ljava/beans/VetoableChangeListener; flags 21
-method name hasListeners descriptor (Ljava/lang/String;)Z flags 21
-
-class name java/beans/XMLDecoder
-header extends java/lang/Object flags 21
--method name <init> descriptor (Lorg/xml/sax/InputSource;)V
--method name createHandler descriptor (Ljava/lang/Object;Ljava/beans/ExceptionListener;Ljava/lang/ClassLoader;)Lorg/xml/sax/helpers/DefaultHandler;
-
-class name java/beans/XMLEncoder
-header extends java/beans/Encoder flags 21
--method name <init> descriptor (Ljava/io/OutputStream;Ljava/lang/String;ZI)V
-
-class name javax/imageio/metadata/IIOMetadataNode
--method name getNodeValue descriptor ()Ljava/lang/String;
--method name setNodeValue descriptor (Ljava/lang/String;)V
--method name getSchemaTypeInfo descriptor ()Lorg/w3c/dom/TypeInfo;
--method name setUserData descriptor (Ljava/lang/String;Ljava/lang/Object;Lorg/w3c/dom/UserDataHandler;)Ljava/lang/Object;
--method name getUserData descriptor (Ljava/lang/String;)Ljava/lang/Object;
--method name getFeature descriptor (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
--method name isSameNode descriptor (Lorg/w3c/dom/Node;)Z
--method name isEqualNode descriptor (Lorg/w3c/dom/Node;)Z
--method name lookupNamespaceURI descriptor (Ljava/lang/String;)Ljava/lang/String;
--method name isDefaultNamespace descriptor (Ljava/lang/String;)Z
--method name lookupPrefix descriptor (Ljava/lang/String;)Ljava/lang/String;
--method name getBaseURI descriptor ()Ljava/lang/String;
-method name getNodeValue descriptor ()Ljava/lang/String; thrownTypes org/w3c/dom/DOMException flags 1
-method name setNodeValue descriptor (Ljava/lang/String;)V thrownTypes org/w3c/dom/DOMException flags 1
-method name getSchemaTypeInfo descriptor ()Lorg/w3c/dom/TypeInfo; flags 1
-method name setUserData descriptor (Ljava/lang/String;Ljava/lang/Object;Lorg/w3c/dom/UserDataHandler;)Ljava/lang/Object; flags 1
-method name getUserData descriptor (Ljava/lang/String;)Ljava/lang/Object; flags 1
-method name getFeature descriptor (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object; flags 1
-method name isSameNode descriptor (Lorg/w3c/dom/Node;)Z flags 1
-method name isEqualNode descriptor (Lorg/w3c/dom/Node;)Z flags 1
-method name lookupNamespaceURI descriptor (Ljava/lang/String;)Ljava/lang/String; flags 1
-method name isDefaultNamespace descriptor (Ljava/lang/String;)Z flags 1
-method name lookupPrefix descriptor (Ljava/lang/String;)Ljava/lang/String; flags 1
-method name getBaseURI descriptor ()Ljava/lang/String; flags 1
-
-class name javax/imageio/spi/ImageReaderSpi
--field name STANDARD_INPUT_TYPE descriptor [Ljava/lang/Class;
-field name STANDARD_INPUT_TYPE descriptor [Ljava/lang/Class; flags 19
-
-class name javax/imageio/spi/ImageWriterSpi
--field name STANDARD_OUTPUT_TYPE descriptor [Ljava/lang/Class;
-field name STANDARD_OUTPUT_TYPE descriptor [Ljava/lang/Class; flags 19
-
-class name javax/imageio/stream/ImageInputStream
-header extends java/lang/Object implements java/io/DataInput flags 601
-
--class name javax/print/attribute/standard/DialogTypeSelection
-
-class name javax/sound/midi/MetaMessage
--method name <init> descriptor (I[BI)V
-
-class name javax/sound/midi/MidiDevice
-header extends java/lang/Object flags 601
-innerclass innerClass javax/sound/midi/MidiDevice$Info outerClass javax/sound/midi/MidiDevice innerClassName Info flags 9
-
--class name javax/sound/midi/MidiDeviceReceiver
-
--class name javax/sound/midi/MidiDeviceTransmitter
-
-class name javax/sound/midi/Receiver
-header extends java/lang/Object flags 601
-
-class name javax/sound/midi/ShortMessage
--method name <init> descriptor (I)V
--method name <init> descriptor (III)V
--method name <init> descriptor (IIII)V
-
-class name javax/sound/midi/SysexMessage
--method name <init> descriptor ([BI)V
--method name <init> descriptor (I[BI)V
-
-class name javax/sound/midi/Transmitter
-header extends java/lang/Object flags 601
-
-class name javax/sound/sampled/AudioFormat$Encoding
--field name PCM_FLOAT descriptor Ljavax/sound/sampled/AudioFormat$Encoding;
-
-class name javax/sound/sampled/Line
-header extends java/lang/Object flags 601
-innerclass innerClass javax/sound/sampled/Line$Info outerClass javax/sound/sampled/Line innerClassName Info flags 9
-innerclass innerClass javax/sound/sampled/Control$Type outerClass javax/sound/sampled/Control innerClassName Type flags 9
-
-class name javax/swing/AbstractButton
--method name getDisabledIcon descriptor ()Ljavax/swing/Icon;
-method name getDisabledIcon descriptor ()Ljavax/swing/Icon; flags 1
-
-class name javax/swing/AbstractListModel
-header extends java/lang/Object implements javax/swing/ListModel,java/io/Serializable flags 421
-
-class name javax/swing/AbstractSpinnerModel
-header extends java/lang/Object implements javax/swing/SpinnerModel flags 421
-
-class name javax/swing/BorderFactory
--method name createLineBorder descriptor (Ljava/awt/Color;IZ)Ljavax/swing/border/Border;
--method name createRaisedSoftBevelBorder descriptor ()Ljavax/swing/border/Border;
--method name createLoweredSoftBevelBorder descriptor ()Ljavax/swing/border/Border;
--method name createSoftBevelBorder descriptor (I)Ljavax/swing/border/Border;
--method name createSoftBevelBorder descriptor (ILjava/awt/Color;Ljava/awt/Color;)Ljavax/swing/border/Border;
--method name createSoftBevelBorder descriptor (ILjava/awt/Color;Ljava/awt/Color;Ljava/awt/Color;Ljava/awt/Color;)Ljavax/swing/border/Border;
--method name createStrokeBorder descriptor (Ljava/awt/BasicStroke;)Ljavax/swing/border/Border;
--method name createStrokeBorder descriptor (Ljava/awt/BasicStroke;Ljava/awt/Paint;)Ljavax/swing/border/Border;
--method name createDashedBorder descriptor (Ljava/awt/Paint;)Ljavax/swing/border/Border;
--method name createDashedBorder descriptor (Ljava/awt/Paint;FF)Ljavax/swing/border/Border;
--method name createDashedBorder descriptor (Ljava/awt/Paint;FFFZ)Ljavax/swing/border/Border;
-
-class name javax/swing/Box$Filler
--method name <init> descriptor (Ljava/awt/Dimension;Ljava/awt/Dimension;Ljava/awt/Dimension;)V
-method name <init> descriptor (Ljava/awt/Dimension;Ljava/awt/Dimension;Ljava/awt/Dimension;)V flags 1
-
-class name javax/swing/BoxLayout
--method name <init> descriptor (Ljava/awt/Container;I)V
-method name <init> descriptor (Ljava/awt/Container;I)V flags 1
-
-class name javax/swing/ComboBoxModel
-header extends java/lang/Object implements javax/swing/ListModel flags 601
-
-class name javax/swing/DefaultCellEditor
--method name <init> descriptor (Ljavax/swing/JTextField;)V
-method name <init> descriptor (Ljavax/swing/JTextField;)V flags 1
-
-class name javax/swing/DefaultComboBoxModel
-header extends javax/swing/AbstractListModel implements javax/swing/MutableComboBoxModel,java/io/Serializable flags 21
--method name <init> descriptor ([Ljava/lang/Object;)V
--method name <init> descriptor (Ljava/util/Vector;)V
--method name getElementAt descriptor (I)Ljava/lang/Object;
--method name addElement descriptor (Ljava/lang/Object;)V
--method name insertElementAt descriptor (Ljava/lang/Object;I)V
-method name <init> descriptor ([Ljava/lang/Object;)V flags 1
-method name <init> descriptor (Ljava/util/Vector;)V flags 1 signature (Ljava/util/Vector<*>;)V
-method name getElementAt descriptor (I)Ljava/lang/Object; flags 1
-method name addElement descriptor (Ljava/lang/Object;)V flags 1
-method name insertElementAt descriptor (Ljava/lang/Object;I)V flags 1
-
-class name javax/swing/DefaultListCellRenderer
-header extends javax/swing/JLabel implements javax/swing/ListCellRenderer,java/io/Serializable flags 21
-innerclass innerClass javax/swing/DefaultListCellRenderer$UIResource outerClass javax/swing/DefaultListCellRenderer innerClassName UIResource flags 9
--method name getListCellRendererComponent descriptor (Ljavax/swing/JList;Ljava/lang/Object;IZZ)Ljava/awt/Component;
-method name getListCellRendererComponent descriptor (Ljavax/swing/JList;Ljava/lang/Object;IZZ)Ljava/awt/Component; flags 1
-
-class name javax/swing/DefaultListModel
-header extends javax/swing/AbstractListModel flags 21
--method name getElementAt descriptor (I)Ljava/lang/Object;
--method name elements descriptor ()Ljava/util/Enumeration;
--method name elementAt descriptor (I)Ljava/lang/Object;
--method name firstElement descriptor ()Ljava/lang/Object;
--method name lastElement descriptor ()Ljava/lang/Object;
--method name setElementAt descriptor (Ljava/lang/Object;I)V
--method name insertElementAt descriptor (Ljava/lang/Object;I)V
--method name addElement descriptor (Ljava/lang/Object;)V
--method name get descriptor (I)Ljava/lang/Object;
--method name set descriptor (ILjava/lang/Object;)Ljava/lang/Object;
--method name add descriptor (ILjava/lang/Object;)V
--method name remove descriptor (I)Ljava/lang/Object;
-method name getElementAt descriptor (I)Ljava/lang/Object; flags 1
-method name elements descriptor ()Ljava/util/Enumeration; flags 1 signature ()Ljava/util/Enumeration<*>;
-method name elementAt descriptor (I)Ljava/lang/Object; flags 1
-method name firstElement descriptor ()Ljava/lang/Object; flags 1
-method name lastElement descriptor ()Ljava/lang/Object; flags 1
-method name setElementAt descriptor (Ljava/lang/Object;I)V flags 1
-method name insertElementAt descriptor (Ljava/lang/Object;I)V flags 1
-method name addElement descriptor (Ljava/lang/Object;)V flags 1
-method name get descriptor (I)Ljava/lang/Object; flags 1
-method name set descriptor (ILjava/lang/Object;)Ljava/lang/Object; flags 1
-method name add descriptor (ILjava/lang/Object;)V flags 1
-method name remove descriptor (I)Ljava/lang/Object; flags 1
-
-class name javax/swing/DefaultListSelectionModel
--method name getAnchorSelectionIndex descriptor ()I
--method name getLeadSelectionIndex descriptor ()I
-method name getAnchorSelectionIndex descriptor ()I flags 1
-method name getLeadSelectionIndex descriptor ()I flags 1
-
-class name javax/swing/ImageIcon
--method name <init> descriptor (Ljava/lang/String;)V
--method name getImage descriptor ()Ljava/awt/Image;
--method name getImageObserver descriptor ()Ljava/awt/image/ImageObserver;
-method name <init> descriptor (Ljava/lang/String;)V flags 1
-method name getImage descriptor ()Ljava/awt/Image; flags 1
-method name getImageObserver descriptor ()Ljava/awt/image/ImageObserver; flags 1
-
-class name javax/swing/JButton
--method name <init> descriptor (Ljava/lang/String;)V
-method name <init> descriptor (Ljava/lang/String;)V flags 1
-
-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 flags 21
-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
--field name dataModel descriptor Ljavax/swing/ComboBoxModel;
--field name renderer descriptor Ljavax/swing/ListCellRenderer;
-field name dataModel descriptor Ljavax/swing/ComboBoxModel; flags 4
-field name renderer descriptor Ljavax/swing/ListCellRenderer; flags 4
--method name <init> descriptor (Ljavax/swing/ComboBoxModel;)V
--method name <init> descriptor ([Ljava/lang/Object;)V
--method name <init> descriptor (Ljava/util/Vector;)V
--method name setModel descriptor (Ljavax/swing/ComboBoxModel;)V
--method name getModel descriptor ()Ljavax/swing/ComboBoxModel;
--method name setRenderer descriptor (Ljavax/swing/ListCellRenderer;)V
--method name getRenderer descriptor ()Ljavax/swing/ListCellRenderer;
--method name getSelectedIndex descriptor ()I
--method name getPrototypeDisplayValue descriptor ()Ljava/lang/Object;
--method name setPrototypeDisplayValue descriptor (Ljava/lang/Object;)V
--method name addItem descriptor (Ljava/lang/Object;)V
--method name insertItemAt descriptor (Ljava/lang/Object;I)V
--method name getItemAt descriptor (I)Ljava/lang/Object;
-method name <init> descriptor (Ljavax/swing/ComboBoxModel;)V flags 1
-method name <init> descriptor ([Ljava/lang/Object;)V flags 1
-method name <init> descriptor (Ljava/util/Vector;)V flags 1 signature (Ljava/util/Vector<*>;)V
-method name setModel descriptor (Ljavax/swing/ComboBoxModel;)V flags 1
-method name getModel descriptor ()Ljavax/swing/ComboBoxModel; flags 1
-method name setRenderer descriptor (Ljavax/swing/ListCellRenderer;)V flags 1
-method name getRenderer descriptor ()Ljavax/swing/ListCellRenderer; flags 1
-method name getSelectedIndex descriptor ()I flags 1
-method name getPrototypeDisplayValue descriptor ()Ljava/lang/Object; flags 1
-method name setPrototypeDisplayValue descriptor (Ljava/lang/Object;)V flags 1
-method name addItem descriptor (Ljava/lang/Object;)V flags 1
-method name insertItemAt descriptor (Ljava/lang/Object;I)V flags 1
-method name getItemAt descriptor (I)Ljava/lang/Object; flags 1
-
-class name javax/swing/JComponent
--method name getPreferredSize descriptor ()Ljava/awt/Dimension;
--method name getMaximumSize descriptor ()Ljava/awt/Dimension;
--method name getMinimumSize descriptor ()Ljava/awt/Dimension;
--method name isPaintingOrigin descriptor ()Z
-method name getPreferredSize descriptor ()Ljava/awt/Dimension; flags 1
-method name getMaximumSize descriptor ()Ljava/awt/Dimension; flags 1
-method name getMinimumSize descriptor ()Ljava/awt/Dimension; flags 1
-
-class name javax/swing/JLabel
--method name getDisabledIcon descriptor ()Ljavax/swing/Icon;
-method name getDisabledIcon descriptor ()Ljavax/swing/Icon; flags 1
-
--class name javax/swing/JLayer
-
-class name javax/swing/JList
-header extends javax/swing/JComponent implements javax/swing/Scrollable,javax/accessibility/Accessible flags 21
-innerclass innerClass javax/swing/JList$DropLocation outerClass javax/swing/JList innerClassName DropLocation 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/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
--method name <init> descriptor (Ljavax/swing/ListModel;)V
--method name <init> descriptor ([Ljava/lang/Object;)V
--method name <init> descriptor (Ljava/util/Vector;)V
--method name getPrototypeCellValue descriptor ()Ljava/lang/Object;
--method name setPrototypeCellValue descriptor (Ljava/lang/Object;)V
--method name getCellRenderer descriptor ()Ljavax/swing/ListCellRenderer;
--method name setCellRenderer descriptor (Ljavax/swing/ListCellRenderer;)V
--method name getModel descriptor ()Ljavax/swing/ListModel;
--method name setModel descriptor (Ljavax/swing/ListModel;)V
--method name setListData descriptor ([Ljava/lang/Object;)V
--method name setListData descriptor (Ljava/util/Vector;)V
--method name getSelectedIndices descriptor ()[I
--method name getSelectedValues descriptor ()[Ljava/lang/Object;
--method name getSelectedValuesList descriptor ()Ljava/util/List;
--method name getSelectedValue descriptor ()Ljava/lang/Object;
-method name <init> descriptor (Ljavax/swing/ListModel;)V flags 1
-method name <init> descriptor ([Ljava/lang/Object;)V flags 1
-method name <init> descriptor (Ljava/util/Vector;)V flags 1 signature (Ljava/util/Vector<*>;)V
-method name getPrototypeCellValue descriptor ()Ljava/lang/Object; flags 1
-method name setPrototypeCellValue descriptor (Ljava/lang/Object;)V flags 1
-method name getCellRenderer descriptor ()Ljavax/swing/ListCellRenderer; flags 1
-method name setCellRenderer descriptor (Ljavax/swing/ListCellRenderer;)V flags 1
-method name getModel descriptor ()Ljavax/swing/ListModel; flags 1
-method name setModel descriptor (Ljavax/swing/ListModel;)V flags 1
-method name setListData descriptor ([Ljava/lang/Object;)V flags 1
-method name setListData descriptor (Ljava/util/Vector;)V flags 1 signature (Ljava/util/Vector<*>;)V
-method name getSelectedIndices descriptor ()[I flags 1
-method name getSelectedValues descriptor ()[Ljava/lang/Object; flags 1
-method name getSelectedValue descriptor ()Ljava/lang/Object; flags 1
-
-class name javax/swing/JList$AccessibleJList$AccessibleJListChild
--method name <init> descriptor (Ljavax/swing/JList$AccessibleJList;Ljavax/swing/JList;I)V
-method name <init> descriptor (Ljavax/swing/JList$AccessibleJList;Ljavax/swing/JList;I)V flags 1
-
-class name javax/swing/JMenuBar
--method name getHelpMenu descriptor ()Ljavax/swing/JMenu;
-method name getHelpMenu descriptor ()Ljavax/swing/JMenu; flags 1
-
-class name javax/swing/JScrollPane
--method name getHorizontalScrollBar descriptor ()Ljavax/swing/JScrollBar;
--method name getVerticalScrollBar descriptor ()Ljavax/swing/JScrollBar;
--method name getRowHeader descriptor ()Ljavax/swing/JViewport;
--method name getColumnHeader descriptor ()Ljavax/swing/JViewport;
-method name getHorizontalScrollBar descriptor ()Ljavax/swing/JScrollBar; flags 1
-method name getVerticalScrollBar descriptor ()Ljavax/swing/JScrollBar; flags 1
-method name getRowHeader descriptor ()Ljavax/swing/JViewport; flags 1
-method name getColumnHeader descriptor ()Ljavax/swing/JViewport; flags 1
-
-class name javax/swing/JSlider
--method name imageUpdate descriptor (Ljava/awt/Image;IIIII)Z
-
-class name javax/swing/JSplitPane
--method name <init> descriptor (I)V
-method name <init> descriptor (I)V flags 1
-
-class name javax/swing/JTabbedPane
--method name getSelectedIndex descriptor ()I
--method name getSelectedComponent descriptor ()Ljava/awt/Component;
-method name getSelectedIndex descriptor ()I flags 1
-method name getSelectedComponent descriptor ()Ljava/awt/Component; flags 1
-
-class name javax/swing/JTree
--method name <init> descriptor (Ljavax/swing/tree/TreeModel;)V
-method name <init> descriptor (Ljavax/swing/tree/TreeModel;)V flags 1
-
-class name javax/swing/JTree$EmptySelectionModel
--method name setSelectionMode descriptor (I)V
--method name setRowMapper descriptor (Ljavax/swing/tree/RowMapper;)V
--method name addTreeSelectionListener descriptor (Ljavax/swing/event/TreeSelectionListener;)V
--method name removeTreeSelectionListener descriptor (Ljavax/swing/event/TreeSelectionListener;)V
--method name addPropertyChangeListener descriptor (Ljava/beans/PropertyChangeListener;)V
--method name removePropertyChangeListener descriptor (Ljava/beans/PropertyChangeListener;)V
-
-class name javax/swing/JViewport
--method name isPaintingOrigin descriptor ()Z
--method name getExtentSize descriptor ()Ljava/awt/Dimension;
-method name getExtentSize descriptor ()Ljava/awt/Dimension; flags 1
-
-class name javax/swing/ListCellRenderer
-header extends java/lang/Object flags 601
--method name getListCellRendererComponent descriptor (Ljavax/swing/JList;Ljava/lang/Object;IZZ)Ljava/awt/Component;
-method name getListCellRendererComponent descriptor (Ljavax/swing/JList;Ljava/lang/Object;IZZ)Ljava/awt/Component; flags 401
-
-class name javax/swing/ListModel
-header extends java/lang/Object flags 601
--method name getElementAt descriptor (I)Ljava/lang/Object;
-method name getElementAt descriptor (I)Ljava/lang/Object; flags 401
-
-class name javax/swing/MutableComboBoxModel
-header extends java/lang/Object implements javax/swing/ComboBoxModel flags 601
--method name addElement descriptor (Ljava/lang/Object;)V
--method name insertElementAt descriptor (Ljava/lang/Object;I)V
-method name addElement descriptor (Ljava/lang/Object;)V flags 401
-method name insertElementAt descriptor (Ljava/lang/Object;I)V flags 401
-
-class name javax/swing/OverlayLayout
--method name <init> descriptor (Ljava/awt/Container;)V
-method name <init> descriptor (Ljava/awt/Container;)V flags 1
-
--class name javax/swing/Painter
-
-class name javax/swing/SwingUtilities
--method name getUnwrappedParent descriptor (Ljava/awt/Component;)Ljava/awt/Container;
--method name getUnwrappedView descriptor (Ljavax/swing/JViewport;)Ljava/awt/Component;
-
-class name javax/swing/SwingWorker
--method name publish descriptor ([Ljava/lang/Object;)V
-method name publish descriptor ([Ljava/lang/Object;)V flags 94 signature ([TV;)V
-
-class name javax/swing/TransferHandler
--method name setDragImage descriptor (Ljava/awt/Image;)V
--method name getDragImage descriptor ()Ljava/awt/Image;
--method name setDragImageOffset descriptor (Ljava/awt/Point;)V
--method name getDragImageOffset descriptor ()Ljava/awt/Point;
-
-class name javax/swing/border/BevelBorder
--method name <init> descriptor (ILjava/awt/Color;Ljava/awt/Color;Ljava/awt/Color;Ljava/awt/Color;)V
-method name <init> descriptor (ILjava/awt/Color;Ljava/awt/Color;Ljava/awt/Color;Ljava/awt/Color;)V flags 1
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/border/CompoundBorder
--method name <init> descriptor (Ljavax/swing/border/Border;Ljavax/swing/border/Border;)V
-method name <init> descriptor (Ljavax/swing/border/Border;Ljavax/swing/border/Border;)V flags 1
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/border/EmptyBorder
--method name <init> descriptor (Ljava/awt/Insets;)V
-method name <init> descriptor (Ljava/awt/Insets;)V flags 1
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/border/EtchedBorder
--method name <init> descriptor (ILjava/awt/Color;Ljava/awt/Color;)V
-method name <init> descriptor (ILjava/awt/Color;Ljava/awt/Color;)V flags 1
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/border/LineBorder
--method name <init> descriptor (Ljava/awt/Color;IZ)V
-method name <init> descriptor (Ljava/awt/Color;IZ)V flags 1
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/border/MatteBorder
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/border/SoftBevelBorder
--method name <init> descriptor (ILjava/awt/Color;Ljava/awt/Color;Ljava/awt/Color;Ljava/awt/Color;)V
-method name <init> descriptor (ILjava/awt/Color;Ljava/awt/Color;Ljava/awt/Color;Ljava/awt/Color;)V flags 1
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
--class name javax/swing/border/StrokeBorder
-
-class name javax/swing/border/TitledBorder
--method name <init> descriptor (Ljavax/swing/border/Border;Ljava/lang/String;IILjava/awt/Font;Ljava/awt/Color;)V
-method name <init> descriptor (Ljavax/swing/border/Border;Ljava/lang/String;IILjava/awt/Font;Ljava/awt/Color;)V flags 1
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/event/HyperlinkEvent
--method name <init> descriptor (Ljava/lang/Object;Ljavax/swing/event/HyperlinkEvent$EventType;Ljava/net/URL;Ljava/lang/String;Ljavax/swing/text/Element;Ljava/awt/event/InputEvent;)V
--method name getInputEvent descriptor ()Ljava/awt/event/InputEvent;
-
-class name javax/swing/plaf/BorderUIResource$BevelBorderUIResource
--method name <init> descriptor (ILjava/awt/Color;Ljava/awt/Color;Ljava/awt/Color;Ljava/awt/Color;)V
-method name <init> descriptor (ILjava/awt/Color;Ljava/awt/Color;Ljava/awt/Color;Ljava/awt/Color;)V flags 1
-
-class name javax/swing/plaf/BorderUIResource$CompoundBorderUIResource
--method name <init> descriptor (Ljavax/swing/border/Border;Ljavax/swing/border/Border;)V
-method name <init> descriptor (Ljavax/swing/border/Border;Ljavax/swing/border/Border;)V flags 1
-
-class name javax/swing/plaf/BorderUIResource$EmptyBorderUIResource
--method name <init> descriptor (Ljava/awt/Insets;)V
-method name <init> descriptor (Ljava/awt/Insets;)V flags 1
-
-class name javax/swing/plaf/BorderUIResource$EtchedBorderUIResource
--method name <init> descriptor (ILjava/awt/Color;Ljava/awt/Color;)V
-method name <init> descriptor (ILjava/awt/Color;Ljava/awt/Color;)V flags 1
-
-class name javax/swing/plaf/BorderUIResource$LineBorderUIResource
--method name <init> descriptor (Ljava/awt/Color;I)V
-method name <init> descriptor (Ljava/awt/Color;I)V flags 1
-
-class name javax/swing/plaf/BorderUIResource$TitledBorderUIResource
--method name <init> descriptor (Ljavax/swing/border/Border;Ljava/lang/String;IILjava/awt/Font;Ljava/awt/Color;)V
-method name <init> descriptor (Ljavax/swing/border/Border;Ljava/lang/String;IILjava/awt/Font;Ljava/awt/Color;)V flags 1
-
-class name javax/swing/plaf/ColorUIResource
--method name <init> descriptor (III)V
-method name <init> descriptor (III)V flags 1
-
-class name javax/swing/plaf/FileChooserUI
--method name getDefaultButton descriptor (Ljavax/swing/JFileChooser;)Ljavax/swing/JButton;
-
--class name javax/swing/plaf/LayerUI
-
-class name javax/swing/plaf/basic/BasicBorders$ButtonBorder
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/plaf/basic/BasicBorders$FieldBorder
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/plaf/basic/BasicBorders$MarginBorder
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/plaf/basic/BasicBorders$MenuBarBorder
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/plaf/basic/BasicBorders$RadioButtonBorder
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/plaf/basic/BasicBorders$ToggleButtonBorder
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/plaf/basic/BasicColorChooserUI
--method name uninstallPreviewPanel descriptor ()V
-
-class name javax/swing/plaf/basic/BasicComboBoxUI
--field name squareButton descriptor Z
--field name padding descriptor Ljava/awt/Insets;
--method name getSizeForComponent descriptor (Ljava/awt/Component;)Ljava/awt/Dimension;
-
-class name javax/swing/plaf/basic/BasicDirectoryModel
-header extends javax/swing/AbstractListModel implements java/beans/PropertyChangeListener flags 21
-
-class name javax/swing/plaf/basic/BasicFileChooserUI
--field name viewMenuIcon descriptor Ljavax/swing/Icon;
--method name createUI descriptor (Ljavax/swing/JComponent;)Ljavax/swing/plaf/ComponentUI;
--method name getDefaultButton descriptor (Ljavax/swing/JFileChooser;)Ljavax/swing/JButton;
-
-class name javax/swing/plaf/basic/BasicMenuItemUI
--field name acceleratorDelimiter descriptor Ljava/lang/String;
-
-class name javax/swing/plaf/basic/BasicScrollBarUI
--field name scrollBarWidth descriptor I
--field name incrGap descriptor I
--field name decrGap descriptor I
-
-class name javax/swing/plaf/basic/BasicSliderUI
--method name uninstallDefaults descriptor (Ljavax/swing/JSlider;)V
-
-class name javax/swing/plaf/basic/BasicTreeUI
--method name isDropLine descriptor (Ljavax/swing/JTree$DropLocation;)Z
--method name paintDropLine descriptor (Ljava/awt/Graphics;)V
--method name getDropLineRect descriptor (Ljavax/swing/JTree$DropLocation;)Ljava/awt/Rectangle;
--method name updateLeadSelectionRow descriptor ()V
--method name getLeadSelectionRow descriptor ()I
-
-class name javax/swing/plaf/metal/BumpBuffer
-method name getImageSize descriptor ()Ljava/awt/Dimension; flags 1
-
-class name javax/swing/plaf/metal/MetalBorders$ButtonBorder
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/plaf/metal/MetalBorders$Flush3DBorder
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/plaf/metal/MetalBorders$InternalFrameBorder
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/plaf/metal/MetalBorders$MenuBarBorder
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/plaf/metal/MetalBorders$MenuItemBorder
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/plaf/metal/MetalBorders$OptionDialogBorder
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/plaf/metal/MetalBorders$PaletteBorder
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/plaf/metal/MetalBorders$PopupMenuBorder
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/plaf/metal/MetalBorders$ScrollPaneBorder
--method name getBorderInsets descriptor (Ljava/awt/Component;Ljava/awt/Insets;)Ljava/awt/Insets;
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/plaf/metal/MetalBorders$TableHeaderBorder
--method name getBorderInsets descriptor (Ljava/awt/Component;Ljava/awt/Insets;)Ljava/awt/Insets;
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/plaf/metal/MetalBorders$ToolBarBorder
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/plaf/metal/MetalBumps
-field name buffers descriptor Ljava/util/Vector; flags c
-method name <init> descriptor (Ljava/awt/Dimension;)V flags 1
-method name <init> descriptor (II)V flags 1
-
-class name javax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxModel
-header extends javax/swing/AbstractListModel implements javax/swing/ComboBoxModel flags 21
-innerclass innerClass javax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxModel outerClass javax/swing/plaf/metal/MetalFileChooserUI innerClassName DirectoryComboBoxModel flags 4
-
-class name javax/swing/plaf/metal/MetalFileChooserUI$FilterComboBoxModel
-header extends javax/swing/AbstractListModel implements javax/swing/ComboBoxModel,java/beans/PropertyChangeListener flags 21
-innerclass innerClass javax/swing/plaf/metal/MetalFileChooserUI$FilterComboBoxModel outerClass javax/swing/plaf/metal/MetalFileChooserUI innerClassName FilterComboBoxModel flags 4
-
-class name javax/swing/plaf/metal/MetalScrollPaneUI
--method name uninstallListeners descriptor (Ljavax/swing/JComponent;)V
--method name uninstallListeners descriptor (Ljavax/swing/JScrollPane;)V
-method name uninstallListeners descriptor (Ljavax/swing/JScrollPane;)V flags 1
-
--class name javax/swing/plaf/nimbus/AbstractRegionPainter
-
--class name javax/swing/plaf/nimbus/AbstractRegionPainter$PaintContext
-
--class name javax/swing/plaf/nimbus/AbstractRegionPainter$PaintContext$CacheMode
-
--class name javax/swing/plaf/nimbus/NimbusLookAndFeel
-
--class name javax/swing/plaf/nimbus/NimbusStyle
-
--class name javax/swing/plaf/nimbus/State
-
--class name javax/swing/plaf/synth/SynthButtonUI
-
--class name javax/swing/plaf/synth/SynthCheckBoxMenuItemUI
-
--class name javax/swing/plaf/synth/SynthCheckBoxUI
-
--class name javax/swing/plaf/synth/SynthColorChooserUI
-
--class name javax/swing/plaf/synth/SynthComboBoxUI
-
--class name javax/swing/plaf/synth/SynthDesktopIconUI
-
--class name javax/swing/plaf/synth/SynthDesktopPaneUI
-
--class name javax/swing/plaf/synth/SynthEditorPaneUI
-
--class name javax/swing/plaf/synth/SynthFormattedTextFieldUI
-
--class name javax/swing/plaf/synth/SynthInternalFrameUI
-
--class name javax/swing/plaf/synth/SynthLabelUI
-
--class name javax/swing/plaf/synth/SynthListUI
-
-class name javax/swing/plaf/synth/SynthLookAndFeel
--method name shouldUpdateStyleOnEvent descriptor (Ljava/beans/PropertyChangeEvent;)Z
-
--class name javax/swing/plaf/synth/SynthMenuBarUI
-
--class name javax/swing/plaf/synth/SynthMenuItemUI
-
--class name javax/swing/plaf/synth/SynthMenuUI
-
--class name javax/swing/plaf/synth/SynthOptionPaneUI
-
--class name javax/swing/plaf/synth/SynthPanelUI
-
--class name javax/swing/plaf/synth/SynthPasswordFieldUI
-
--class name javax/swing/plaf/synth/SynthPopupMenuUI
-
--class name javax/swing/plaf/synth/SynthProgressBarUI
-
--class name javax/swing/plaf/synth/SynthRadioButtonMenuItemUI
-
--class name javax/swing/plaf/synth/SynthRadioButtonUI
-
--class name javax/swing/plaf/synth/SynthRootPaneUI
-
--class name javax/swing/plaf/synth/SynthScrollBarUI
-
--class name javax/swing/plaf/synth/SynthScrollPaneUI
-
--class name javax/swing/plaf/synth/SynthSeparatorUI
-
--class name javax/swing/plaf/synth/SynthSliderUI
-
--class name javax/swing/plaf/synth/SynthSpinnerUI
-
--class name javax/swing/plaf/synth/SynthSplitPaneUI
-
--class name javax/swing/plaf/synth/SynthTabbedPaneUI
-
--class name javax/swing/plaf/synth/SynthTableHeaderUI
-
--class name javax/swing/plaf/synth/SynthTableUI
-
--class name javax/swing/plaf/synth/SynthTextAreaUI
-
--class name javax/swing/plaf/synth/SynthTextFieldUI
-
--class name javax/swing/plaf/synth/SynthTextPaneUI
-
--class name javax/swing/plaf/synth/SynthToggleButtonUI
-
--class name javax/swing/plaf/synth/SynthToolBarUI
-
--class name javax/swing/plaf/synth/SynthToolTipUI
-
--class name javax/swing/plaf/synth/SynthTreeUI
-
--class name javax/swing/plaf/synth/SynthUI
-
--class name javax/swing/plaf/synth/SynthViewportUI
-
-class name javax/swing/table/JTableHeader
--method name getDefaultRenderer descriptor ()Ljavax/swing/table/TableCellRenderer;
-method name getDefaultRenderer descriptor ()Ljavax/swing/table/TableCellRenderer; flags 1
-
-class name javax/swing/text/AbstractDocument$DefaultDocumentEvent
-header extends javax/swing/undo/CompoundEdit implements javax/swing/event/DocumentEvent flags 21
-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 javax/swing/text/AbstractDocument$DefaultDocumentEvent outerClass javax/swing/text/AbstractDocument innerClassName DefaultDocumentEvent flags 1
-
-class name javax/swing/text/DefaultStyledDocument
--method name removeElement descriptor (Ljavax/swing/text/Element;)V
-
-class name javax/swing/text/GlyphView
--method name getMinimumSpan descriptor (I)F
-
-class name javax/swing/text/JTextComponent
--method name getCaret descriptor ()Ljavax/swing/text/Caret;
--method name getCaretPosition descriptor ()I
--method name getSelectionStart descriptor ()I
--method name getSelectionEnd descriptor ()I
--method name saveComposedText descriptor (I)Z
--method name restoreComposedText descriptor ()V
-method name getCaret descriptor ()Ljavax/swing/text/Caret; flags 1
-method name getCaretPosition descriptor ()I flags 1
-method name getSelectionStart descriptor ()I flags 1
-method name getSelectionEnd descriptor ()I flags 1
-
-class name javax/swing/text/ParagraphView
-header extends javax/swing/text/FlowView implements javax/swing/text/TabExpander flags 21
-innerclass innerClass javax/swing/text/ParagraphView$Row outerClass javax/swing/text/ParagraphView innerClassName Row flags 0
-innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
--method name calculateMinorAxisRequirements descriptor (ILjavax/swing/SizeRequirements;)Ljavax/swing/SizeRequirements;
-method name adjustRow descriptor (Ljavax/swing/text/ParagraphView$Row;II)V flags 4
-
-class name javax/swing/text/ParagraphView$Row
-header extends javax/swing/text/BoxView flags 20
-innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
-innerclass innerClass javax/swing/text/ParagraphView$Row outerClass javax/swing/text/ParagraphView innerClassName Row flags 0
-method name loadChildren descriptor (Ljavax/swing/text/ViewFactory;)V flags 4
-method name getAttributes descriptor ()Ljavax/swing/text/AttributeSet; flags 1
-method name getAlignment descriptor (I)F flags 1
-method name modelToView descriptor (ILjava/awt/Shape;Ljavax/swing/text/Position$Bias;)Ljava/awt/Shape; thrownTypes javax/swing/text/BadLocationException flags 1
-method name getStartOffset descriptor ()I flags 1
-method name getEndOffset descriptor ()I flags 1
-method name layoutMinorAxis descriptor (II[I[I)V flags 4
-method name calculateMinorAxisRequirements descriptor (ILjavax/swing/SizeRequirements;)Ljavax/swing/SizeRequirements; flags 4
-method name calculateMajorAxisRequirements descriptor (ILjavax/swing/SizeRequirements;)Ljavax/swing/SizeRequirements; flags 4
-method name layoutMajorAxis descriptor (II[I[I)V flags 4
-method name getMaximumSpan descriptor (I)F flags 1
-method name getViewIndexAtPosition descriptor (I)I flags 4
-method name getLeftInset descriptor ()S flags 4
-method name getBottomInset descriptor ()S flags 4
-
-class name javax/swing/text/html/CSS
-header extends java/lang/Object implements java/io/Serializable 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
-
-class name javax/swing/text/html/CSS$Attribute
--field name BORDER_BOTTOM_COLOR descriptor Ljavax/swing/text/html/CSS$Attribute;
--field name BORDER_BOTTOM_STYLE descriptor Ljavax/swing/text/html/CSS$Attribute;
--field name BORDER_LEFT_COLOR descriptor Ljavax/swing/text/html/CSS$Attribute;
--field name BORDER_LEFT_STYLE descriptor Ljavax/swing/text/html/CSS$Attribute;
--field name BORDER_RIGHT_COLOR descriptor Ljavax/swing/text/html/CSS$Attribute;
--field name BORDER_RIGHT_STYLE descriptor Ljavax/swing/text/html/CSS$Attribute;
--field name BORDER_TOP_COLOR descriptor Ljavax/swing/text/html/CSS$Attribute;
--field name BORDER_TOP_STYLE descriptor Ljavax/swing/text/html/CSS$Attribute;
-
-class name javax/swing/text/html/HTMLFrameHyperlinkEvent
--method name <init> descriptor (Ljava/lang/Object;Ljavax/swing/event/HyperlinkEvent$EventType;Ljava/net/URL;Ljava/lang/String;Ljavax/swing/text/Element;Ljava/awt/event/InputEvent;Ljava/lang/String;)V
-
-class name javax/swing/text/html/parser/ParserDelegator
--method name setDefaultDTD descriptor ()V
-method name setDefaultDTD descriptor ()V flags 2c
-
-class name javax/swing/tree/DefaultTreeCellRenderer
--method name updateUI descriptor ()V
-
-class name javax/swing/tree/DefaultTreeModel
--method name <init> descriptor (Ljavax/swing/tree/TreeNode;)V
-method name <init> descriptor (Ljavax/swing/tree/TreeNode;)V flags 1
-
-class name javax/swing/tree/DefaultTreeSelectionModel
--method name notifyPathChange descriptor (Ljava/util/Vector;Ljavax/swing/tree/TreePath;)V
-method name notifyPathChange descriptor (Ljava/util/Vector;Ljavax/swing/tree/TreePath;)V flags 4 signature (Ljava/util/Vector<Ljavax/swing/tree/PathPlaceHolder;>;Ljavax/swing/tree/TreePath;)V
-
-class name javax/swing/tree/PathPlaceHolder
-header extends java/lang/Object flags 20
-field name isNew descriptor Z flags 4
-field name path descriptor Ljavax/swing/tree/TreePath; flags 4
-
-class name javax/swing/tree/TreePath
--method name <init> descriptor ([Ljava/lang/Object;)V
-method name <init> descriptor ([Ljava/lang/Object;)V flags 1
-
--- a/make/data/symbols/java.logging-6.sym.txt	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-#
-# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-# ##########################################################
-# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
-# ##########################################################
-#
-class name java/util/logging/Logger
--method name getGlobal descriptor ()Ljava/util/logging/Logger;
--method name getAnonymousLogger descriptor ()Ljava/util/logging/Logger;
--method name addHandler descriptor (Ljava/util/logging/Handler;)V
--method name removeHandler descriptor (Ljava/util/logging/Handler;)V
--method name getHandlers descriptor ()[Ljava/util/logging/Handler;
--method name setUseParentHandlers descriptor (Z)V
--method name getUseParentHandlers descriptor ()Z
--method name getLogger descriptor (Ljava/lang/String;)Ljava/util/logging/Logger;
--method name getLogger descriptor (Ljava/lang/String;Ljava/lang/String;)Ljava/util/logging/Logger;
--method name getAnonymousLogger descriptor (Ljava/lang/String;)Ljava/util/logging/Logger;
-method name getLogger descriptor (Ljava/lang/String;)Ljava/util/logging/Logger; flags 29
-method name getLogger descriptor (Ljava/lang/String;Ljava/lang/String;)Ljava/util/logging/Logger; flags 29
-method name getAnonymousLogger descriptor ()Ljava/util/logging/Logger; flags 29
-method name getAnonymousLogger descriptor (Ljava/lang/String;)Ljava/util/logging/Logger; flags 29
-method name addHandler descriptor (Ljava/util/logging/Handler;)V thrownTypes java/lang/SecurityException flags 21
-method name removeHandler descriptor (Ljava/util/logging/Handler;)V thrownTypes java/lang/SecurityException flags 21
-method name getHandlers descriptor ()[Ljava/util/logging/Handler; flags 21
-method name setUseParentHandlers descriptor (Z)V flags 21
-method name getUseParentHandlers descriptor ()Z flags 21
-
--- a/make/data/symbols/java.management-6.sym.txt	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,122 +0,0 @@
-#
-# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-# ##########################################################
-# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
-# ##########################################################
-#
--class name java/lang/management/BufferPoolMXBean
-
-class name java/lang/management/ClassLoadingMXBean
-header extends java/lang/Object flags 601
-
-class name java/lang/management/CompilationMXBean
-header extends java/lang/Object flags 601
-
-class name java/lang/management/ManagementFactory
--method name getPlatformMXBean descriptor (Ljava/lang/Class;)Ljava/lang/management/PlatformManagedObject;
--method name getPlatformMXBeans descriptor (Ljava/lang/Class;)Ljava/util/List;
--method name getPlatformMXBean descriptor (Ljavax/management/MBeanServerConnection;Ljava/lang/Class;)Ljava/lang/management/PlatformManagedObject;
--method name getPlatformMXBeans descriptor (Ljavax/management/MBeanServerConnection;Ljava/lang/Class;)Ljava/util/List;
--method name getPlatformManagementInterfaces descriptor ()Ljava/util/Set;
-
-class name java/lang/management/MemoryMXBean
-header extends java/lang/Object flags 601
-
-class name java/lang/management/MemoryManagerMXBean
-header extends java/lang/Object flags 601
-
-class name java/lang/management/MemoryPoolMXBean
-header extends java/lang/Object flags 601
-
-class name java/lang/management/OperatingSystemMXBean
-header extends java/lang/Object flags 601
-
--class name java/lang/management/PlatformLoggingMXBean
-
--class name java/lang/management/PlatformManagedObject
-
-class name java/lang/management/RuntimeMXBean
-header extends java/lang/Object flags 601
-
-class name java/lang/management/ThreadMXBean
-header extends java/lang/Object flags 601
-
-class name javax/management/AttributeValueExp
--method name setMBeanServer descriptor (Ljavax/management/MBeanServer;)V
-method name setMBeanServer descriptor (Ljavax/management/MBeanServer;)V flags 1
-
-class name javax/management/DefaultLoaderRepository
--method name loadClass descriptor (Ljava/lang/String;)Ljava/lang/Class;
--method name loadClassWithout descriptor (Ljava/lang/ClassLoader;Ljava/lang/String;)Ljava/lang/Class;
-method name loadClass descriptor (Ljava/lang/String;)Ljava/lang/Class; thrownTypes java/lang/ClassNotFoundException flags 9
-method name loadClassWithout descriptor (Ljava/lang/ClassLoader;Ljava/lang/String;)Ljava/lang/Class; thrownTypes java/lang/ClassNotFoundException flags 9
-
-class name javax/management/MBeanConstructorInfo
--method name <init> descriptor (Ljava/lang/String;Ljava/lang/reflect/Constructor;)V
-method name <init> descriptor (Ljava/lang/String;Ljava/lang/reflect/Constructor;)V flags 1
-
-class name javax/management/MBeanServerNotification
--method name toString descriptor ()Ljava/lang/String;
-
-class name javax/management/ObjectName
--method name getInstance descriptor (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljavax/management/ObjectName;
--method name getInstance descriptor (Ljava/lang/String;Ljava/util/Hashtable;)Ljavax/management/ObjectName;
--method name getInstance descriptor (Ljavax/management/ObjectName;)Ljavax/management/ObjectName;
--method name <init> descriptor (Ljava/lang/String;)V
--method name <init> descriptor (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
--method name <init> descriptor (Ljava/lang/String;Ljava/util/Hashtable;)V
--method name isPropertyValuePattern descriptor (Ljava/lang/String;)Z
--method name getKeyProperty descriptor (Ljava/lang/String;)Ljava/lang/String;
--method name quote descriptor (Ljava/lang/String;)Ljava/lang/String;
--method name unquote descriptor (Ljava/lang/String;)Ljava/lang/String;
--method name apply descriptor (Ljavax/management/ObjectName;)Z
-method name getInstance descriptor (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljavax/management/ObjectName; thrownTypes javax/management/MalformedObjectNameException,java/lang/NullPointerException flags 9
-method name getInstance descriptor (Ljava/lang/String;Ljava/util/Hashtable;)Ljavax/management/ObjectName; thrownTypes javax/management/MalformedObjectNameException,java/lang/NullPointerException flags 9 signature (Ljava/lang/String;Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/String;>;)Ljavax/management/ObjectName;
-method name getInstance descriptor (Ljavax/management/ObjectName;)Ljavax/management/ObjectName; thrownTypes java/lang/NullPointerException flags 9
-method name <init> descriptor (Ljava/lang/String;)V thrownTypes javax/management/MalformedObjectNameException,java/lang/NullPointerException flags 1
-method name <init> descriptor (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V thrownTypes javax/management/MalformedObjectNameException,java/lang/NullPointerException flags 1
-method name <init> descriptor (Ljava/lang/String;Ljava/util/Hashtable;)V thrownTypes javax/management/MalformedObjectNameException,java/lang/NullPointerException flags 1 signature (Ljava/lang/String;Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/String;>;)V
-method name isPropertyValuePattern descriptor (Ljava/lang/String;)Z thrownTypes java/lang/NullPointerException,java/lang/IllegalArgumentException flags 1
-method name getKeyProperty descriptor (Ljava/lang/String;)Ljava/lang/String; thrownTypes java/lang/NullPointerException flags 1
-method name quote descriptor (Ljava/lang/String;)Ljava/lang/String; thrownTypes java/lang/NullPointerException flags 9
-method name unquote descriptor (Ljava/lang/String;)Ljava/lang/String; thrownTypes java/lang/IllegalArgumentException,java/lang/NullPointerException flags 9
-method name apply descriptor (Ljavax/management/ObjectName;)Z thrownTypes java/lang/NullPointerException flags 1
-
-class name javax/management/StringValueExp
--method name setMBeanServer descriptor (Ljavax/management/MBeanServer;)V
-method name setMBeanServer descriptor (Ljavax/management/MBeanServer;)V flags 1
-
-class name javax/management/loading/DefaultLoaderRepository
--method name loadClass descriptor (Ljava/lang/String;)Ljava/lang/Class;
--method name loadClassWithout descriptor (Ljava/lang/ClassLoader;Ljava/lang/String;)Ljava/lang/Class;
-method name loadClass descriptor (Ljava/lang/String;)Ljava/lang/Class; thrownTypes java/lang/ClassNotFoundException flags 9
-method name loadClassWithout descriptor (Ljava/lang/ClassLoader;Ljava/lang/String;)Ljava/lang/Class; thrownTypes java/lang/ClassNotFoundException flags 9
-
-class name javax/management/modelmbean/ModelMBeanConstructorInfo
--method name <init> descriptor (Ljava/lang/String;Ljava/lang/reflect/Constructor;)V
--method name <init> descriptor (Ljava/lang/String;Ljava/lang/reflect/Constructor;Ljavax/management/Descriptor;)V
-method name <init> descriptor (Ljava/lang/String;Ljava/lang/reflect/Constructor;)V flags 1
-method name <init> descriptor (Ljava/lang/String;Ljava/lang/reflect/Constructor;Ljavax/management/Descriptor;)V flags 1
-
--- a/make/data/symbols/java.rmi-6.sym.txt	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-#
-# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-# ##########################################################
-# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
-# ##########################################################
-#
-class name javax/rmi/ssl/SslRMIServerSocketFactory
--method name <init> descriptor (Ljavax/net/ssl/SSLContext;[Ljava/lang/String;[Ljava/lang/String;Z)V
-
--- a/make/data/symbols/java.security.jgss-6.sym.txt	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-#
-# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-# ##########################################################
-# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
-# ##########################################################
-#
--class name javax/security/auth/kerberos/KeyTab
-
--- a/make/data/symbols/java.sql-6.sym.txt	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-#
-# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-# ##########################################################
-# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
-# ##########################################################
-#
-class name java/sql/CallableStatement
--method name getObject descriptor (ILjava/lang/Class;)Ljava/lang/Object;
--method name getObject descriptor (Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
-
-class name java/sql/Connection
-header extends java/lang/Object implements java/sql/Wrapper flags 601
--method name setSchema descriptor (Ljava/lang/String;)V
--method name getSchema descriptor ()Ljava/lang/String;
--method name abort descriptor (Ljava/util/concurrent/Executor;)V
--method name setNetworkTimeout descriptor (Ljava/util/concurrent/Executor;I)V
--method name getNetworkTimeout descriptor ()I
-
-class name java/sql/DatabaseMetaData
--method name getPseudoColumns descriptor (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;
--method name generatedKeyAlwaysReturned descriptor ()Z
-
-class name java/sql/Driver
--method name getParentLogger descriptor ()Ljava/util/logging/Logger;
-
--class name java/sql/PseudoColumnUsage
-
-class name java/sql/ResultSet
-header extends java/lang/Object implements java/sql/Wrapper flags 601
--method name getObject descriptor (ILjava/lang/Class;)Ljava/lang/Object;
--method name getObject descriptor (Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
-
-class name java/sql/Statement
-header extends java/lang/Object implements java/sql/Wrapper flags 601
--method name closeOnCompletion descriptor ()V
--method name isCloseOnCompletion descriptor ()Z
-
-class name java/sql/Timestamp
--method name hashCode descriptor ()I
-
-class name javax/sql/CommonDataSource
--method name getParentLogger descriptor ()Ljava/util/logging/Logger;
-
--- a/make/data/symbols/java.sql.rowset-6.sym.txt	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,74 +0,0 @@
-#
-# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-# ##########################################################
-# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
-# ##########################################################
-#
-class name javax/sql/rowset/CachedRowSet
--field name COMMIT_ON_ACCEPT_CHANGES descriptor Z
-field name COMMIT_ON_ACCEPT_CHANGES descriptor Z constantValue true flags 19
-
--class name javax/sql/rowset/RowSetFactory
-
--class name javax/sql/rowset/RowSetProvider
-
-class name javax/sql/rowset/WebRowSet
--field name PUBLIC_XML_SCHEMA descriptor Ljava/lang/String;
-field name PUBLIC_XML_SCHEMA descriptor Ljava/lang/String; constantValue --//Sun\u0020;Microsystems,\u0020;Inc.//XSD\u0020;Schema//EN flags 19
-
-class name javax/sql/rowset/spi/SyncFactory
--field name ROWSET_SYNC_PROVIDER descriptor Ljava/lang/String;
--field name ROWSET_SYNC_VENDOR descriptor Ljava/lang/String;
--field name ROWSET_SYNC_PROVIDER_VERSION descriptor Ljava/lang/String;
-field name ROWSET_SYNC_PROVIDER descriptor Ljava/lang/String; flags 9
-field name ROWSET_SYNC_VENDOR descriptor Ljava/lang/String; flags 9
-field name ROWSET_SYNC_PROVIDER_VERSION descriptor Ljava/lang/String; flags 9
--method name setJNDIContext descriptor (Ljavax/naming/Context;)V
-method name setJNDIContext descriptor (Ljavax/naming/Context;)V thrownTypes javax/sql/rowset/spi/SyncFactoryException flags 9
-
-class name javax/sql/rowset/spi/SyncProvider
--field name GRADE_NONE descriptor I
--field name GRADE_CHECK_MODIFIED_AT_COMMIT descriptor I
--field name GRADE_CHECK_ALL_AT_COMMIT descriptor I
--field name GRADE_LOCK_WHEN_MODIFIED descriptor I
--field name GRADE_LOCK_WHEN_LOADED descriptor I
--field name DATASOURCE_NO_LOCK descriptor I
--field name DATASOURCE_ROW_LOCK descriptor I
--field name DATASOURCE_TABLE_LOCK descriptor I
--field name DATASOURCE_DB_LOCK descriptor I
--field name UPDATABLE_VIEW_SYNC descriptor I
--field name NONUPDATABLE_VIEW_SYNC descriptor I
-field name GRADE_NONE descriptor I flags 9
-field name GRADE_CHECK_MODIFIED_AT_COMMIT descriptor I flags 9
-field name GRADE_CHECK_ALL_AT_COMMIT descriptor I flags 9
-field name GRADE_LOCK_WHEN_MODIFIED descriptor I flags 9
-field name GRADE_LOCK_WHEN_LOADED descriptor I flags 9
-field name DATASOURCE_NO_LOCK descriptor I flags 9
-field name DATASOURCE_ROW_LOCK descriptor I flags 9
-field name DATASOURCE_TABLE_LOCK descriptor I flags 9
-field name DATASOURCE_DB_LOCK descriptor I flags 9
-field name UPDATABLE_VIEW_SYNC descriptor I flags 9
-field name NONUPDATABLE_VIEW_SYNC descriptor I flags 9
-
--- a/make/data/symbols/java.xml-6.sym.txt	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-#
-# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-# ##########################################################
-# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
-# ##########################################################
-#
-class name javax/xml/parsers/FactoryConfigurationError
--method name getCause descriptor ()Ljava/lang/Throwable;
-
-class name javax/xml/stream/FactoryConfigurationError
--method name getCause descriptor ()Ljava/lang/Throwable;
-
-class name javax/xml/stream/XMLEventFactory
--method name newFactory descriptor ()Ljavax/xml/stream/XMLEventFactory;
--method name newInstance descriptor (Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/stream/XMLEventFactory;
--method name newFactory descriptor (Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/stream/XMLEventFactory;
-method name newInstance descriptor (Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/stream/XMLEventFactory; thrownTypes javax/xml/stream/FactoryConfigurationError flags 9
-
-class name javax/xml/stream/XMLInputFactory
--method name newFactory descriptor ()Ljavax/xml/stream/XMLInputFactory;
--method name newInstance descriptor (Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/stream/XMLInputFactory;
--method name newFactory descriptor (Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/stream/XMLInputFactory;
-method name newInstance descriptor (Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/stream/XMLInputFactory; thrownTypes javax/xml/stream/FactoryConfigurationError flags 9
-
-class name javax/xml/stream/XMLOutputFactory
--method name newFactory descriptor ()Ljavax/xml/stream/XMLOutputFactory;
--method name newInstance descriptor (Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/stream/XMLInputFactory;
--method name newFactory descriptor (Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/stream/XMLOutputFactory;
-method name newInstance descriptor (Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/stream/XMLInputFactory; thrownTypes javax/xml/stream/FactoryConfigurationError flags 9
-
-class name javax/xml/transform/TransformerFactoryConfigurationError
--method name getCause descriptor ()Ljava/lang/Throwable;
-
-class name org/xml/sax/SAXException
--method name getCause descriptor ()Ljava/lang/Throwable;
-
-class name org/xml/sax/SAXParseException
--method name toString descriptor ()Ljava/lang/String;
-
--- a/make/data/symbols/java.xml.bind-6.sym.txt	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-#
-# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-# ##########################################################
-# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
-# ##########################################################
-#
--class name javax/xml/bind/JAXBPermission
-
-class name javax/xml/bind/annotation/XmlElement
-header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;FIELD;eLjava/lang/annotation/ElementType;METHOD;})
-innerclass innerClass javax/xml/bind/annotation/XmlElement$DEFAULT outerClass javax/xml/bind/annotation/XmlElement innerClassName DEFAULT flags 19
-
-class name javax/xml/bind/annotation/XmlElementRef
--method name required descriptor ()Z
-
--- a/make/data/symbols/java.xml.ws-6.sym.txt	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,103 +0,0 @@
-#
-# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-# ##########################################################
-# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
-# ##########################################################
-#
-class name javax/xml/ws/Endpoint
--method name create descriptor (Ljava/lang/Object;[Ljavax/xml/ws/WebServiceFeature;)Ljavax/xml/ws/Endpoint;
--method name create descriptor (Ljava/lang/String;Ljava/lang/Object;[Ljavax/xml/ws/WebServiceFeature;)Ljavax/xml/ws/Endpoint;
--method name publish descriptor (Ljava/lang/String;Ljava/lang/Object;[Ljavax/xml/ws/WebServiceFeature;)Ljavax/xml/ws/Endpoint;
--method name publish descriptor (Ljavax/xml/ws/spi/http/HttpContext;)V
--method name setEndpointContext descriptor (Ljavax/xml/ws/EndpointContext;)V
-
--class name javax/xml/ws/EndpointContext
-
-class name javax/xml/ws/FaultAction
--method name className descriptor ()Ljava/lang/Class;
-method name className descriptor ()Ljava/lang/Class; flags 401
-
-class name javax/xml/ws/Holder
-header extends java/lang/Object flags 31 signature <T:Ljava/lang/Object;>Ljava/lang/Object;
-
-class name javax/xml/ws/RequestWrapper
--method name partName descriptor ()Ljava/lang/String;
-
-class name javax/xml/ws/RespectBinding
-header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;TYPE;})@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)@Ljava/lang/annotation/Documented;@Ljavax/xml/ws/spi/WebServiceFeatureAnnotation;(id="javax.xml.ws.RespectBindingFeature",bean=cLjavax/xml/ws/RespectBindingFeature;)
-
-class name javax/xml/ws/ResponseWrapper
--method name partName descriptor ()Ljava/lang/String;
-
-class name javax/xml/ws/Service
--method name <init> descriptor (Ljava/net/URL;Ljavax/xml/namespace/QName;[Ljavax/xml/ws/WebServiceFeature;)V
--method name create descriptor (Ljava/net/URL;Ljavax/xml/namespace/QName;[Ljavax/xml/ws/WebServiceFeature;)Ljavax/xml/ws/Service;
--method name create descriptor (Ljavax/xml/namespace/QName;[Ljavax/xml/ws/WebServiceFeature;)Ljavax/xml/ws/Service;
-
-class name javax/xml/ws/WebFault
--method name messageName descriptor ()Ljava/lang/String;
-
-class name javax/xml/ws/WebServiceRef
--method name type descriptor ()Ljava/lang/Class;
--method name value descriptor ()Ljava/lang/Class;
--method name lookup descriptor ()Ljava/lang/String;
-method name type descriptor ()Ljava/lang/Class; annotationDefaultValue cLjava/lang/Object; flags 401
-method name value descriptor ()Ljava/lang/Class; annotationDefaultValue cLjava/lang/Object; flags 401
-
-class name javax/xml/ws/soap/Addressing
-header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;TYPE;})@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)@Ljava/lang/annotation/Documented;@Ljavax/xml/ws/spi/WebServiceFeatureAnnotation;(id="http://www.w3.org/2005/08/addressing/module",bean=cLjavax/xml/ws/soap/AddressingFeature;)
--method name responses descriptor ()Ljavax/xml/ws/soap/AddressingFeature$Responses;
-
-class name javax/xml/ws/soap/AddressingFeature
-header extends javax/xml/ws/WebServiceFeature flags 31
--method name <init> descriptor (ZZLjavax/xml/ws/soap/AddressingFeature$Responses;)V
--method name getResponses descriptor ()Ljavax/xml/ws/soap/AddressingFeature$Responses;
-
--class name javax/xml/ws/soap/AddressingFeature$Responses
-
-class name javax/xml/ws/soap/MTOM
-header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;TYPE;})@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)@Ljava/lang/annotation/Documented;@Ljavax/xml/ws/spi/WebServiceFeatureAnnotation;(id="http://www.w3.org/2004/08/soap/features/http-optimization",bean=cLjavax/xml/ws/soap/MTOMFeature;)
-
--class name javax/xml/ws/spi/Invoker
-
-class name javax/xml/ws/spi/Provider
--method name createServiceDelegate descriptor (Ljava/net/URL;Ljavax/xml/namespace/QName;Ljava/lang/Class;)Ljavax/xml/ws/spi/ServiceDelegate;
--method name createServiceDelegate descriptor (Ljava/net/URL;Ljavax/xml/namespace/QName;Ljava/lang/Class;[Ljavax/xml/ws/WebServiceFeature;)Ljavax/xml/ws/spi/ServiceDelegate;
--method name createW3CEndpointReference descriptor (Ljava/lang/String;Ljavax/xml/namespace/QName;Ljavax/xml/namespace/QName;Ljavax/xml/namespace/QName;Ljava/util/List;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/Map;)Ljavax/xml/ws/wsaddressing/W3CEndpointReference;
--method name createAndPublishEndpoint descriptor (Ljava/lang/String;Ljava/lang/Object;[Ljavax/xml/ws/WebServiceFeature;)Ljavax/xml/ws/Endpoint;
--method name createEndpoint descriptor (Ljava/lang/String;Ljava/lang/Object;[Ljavax/xml/ws/WebServiceFeature;)Ljavax/xml/ws/Endpoint;
--method name createEndpoint descriptor (Ljava/lang/String;Ljava/lang/Class;Ljavax/xml/ws/spi/Invoker;[Ljavax/xml/ws/WebServiceFeature;)Ljavax/xml/ws/Endpoint;
-method name createServiceDelegate descriptor (Ljava/net/URL;Ljavax/xml/namespace/QName;Ljava/lang/Class;)Ljavax/xml/ws/spi/ServiceDelegate; flags 401
-
--class name javax/xml/ws/spi/http/HttpContext
-
--class name javax/xml/ws/spi/http/HttpExchange
-
--class name javax/xml/ws/spi/http/HttpHandler
-
--class name javax/xml/ws/wsaddressing/W3CEndpointReference
-
--class name javax/xml/ws/wsaddressing/W3CEndpointReferenceBuilder
-
--- a/make/data/symbols/java.xml.ws.annotation-6.sym.txt	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-#
-# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-# ##########################################################
-# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
-# ##########################################################
-#
-class name javax/annotation/Resource
--method name lookup descriptor ()Ljava/lang/String;
-
--- a/make/data/symbols/jdk.management-6.sym.txt	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-#
-# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-# ##########################################################
-# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
-# ##########################################################
-#
--class name com/sun/management/GarbageCollectionNotificationInfo
-
-class name com/sun/management/HotSpotDiagnosticMXBean
-header extends java/lang/Object flags 601
-
-class name com/sun/management/OperatingSystemMXBean
--method name getSystemCpuLoad descriptor ()D
--method name getProcessCpuLoad descriptor ()D
-
--class name com/sun/management/ThreadMXBean
-
--- a/make/data/symbols/jdk.sctp-6.sym.txt	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-#
-# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-# ##########################################################
-# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
-# ##########################################################
-#
--class name com/sun/nio/sctp/AbstractNotificationHandler
-
--class name com/sun/nio/sctp/Association
-
--class name com/sun/nio/sctp/AssociationChangeNotification
-
--class name com/sun/nio/sctp/AssociationChangeNotification$AssocChangeEvent
-
--class name com/sun/nio/sctp/HandlerResult
-
--class name com/sun/nio/sctp/IllegalReceiveException
-
--class name com/sun/nio/sctp/IllegalUnbindException
-
--class name com/sun/nio/sctp/InvalidStreamException
-
--class name com/sun/nio/sctp/MessageInfo
-
--class name com/sun/nio/sctp/Notification
-
--class name com/sun/nio/sctp/NotificationHandler
-
--class name com/sun/nio/sctp/PeerAddressChangeNotification
-
--class name com/sun/nio/sctp/PeerAddressChangeNotification$AddressChangeEvent
-
--class name com/sun/nio/sctp/SctpChannel
-
--class name com/sun/nio/sctp/SctpMultiChannel
-
--class name com/sun/nio/sctp/SctpServerChannel
-
--class name com/sun/nio/sctp/SctpSocketOption
-
--class name com/sun/nio/sctp/SctpStandardSocketOptions
-
--class name com/sun/nio/sctp/SctpStandardSocketOptions$InitMaxStreams
-
--class name com/sun/nio/sctp/SendFailedNotification
-
--class name com/sun/nio/sctp/ShutdownNotification
-
--- a/make/data/symbols/jdk.security.jgss-6.sym.txt	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-#
-# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-# ##########################################################
-# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
-# ##########################################################
-#
--class name com/sun/security/jgss/AuthorizationDataEntry
-
--class name com/sun/security/jgss/ExtendedGSSContext
-
--class name com/sun/security/jgss/InquireSecContextPermission
-
--class name com/sun/security/jgss/InquireType
-
--- a/make/data/symbols/symbols	Tue Jul 03 14:12:49 2018 +0100
+++ b/make/data/symbols/symbols	Mon Jul 16 12:11:02 2018 +0100
@@ -29,9 +29,8 @@
 #command used to generate this file:
 #build.tools.symbolgenerator.CreateSymbols build-description-incremental symbols include.list
 #
-generate platforms 6:7:8:9:A
+generate platforms 7:8:9:A
 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 6 base 7 files java.base-6.sym.txt:java.compiler-6.sym.txt:java.desktop-6.sym.txt:java.logging-6.sym.txt:java.management-6.sym.txt:java.rmi-6.sym.txt:java.security.jgss-6.sym.txt:java.sql-6.sym.txt:java.sql.rowset-6.sym.txt:java.xml-6.sym.txt:java.xml.bind-6.sym.txt:java.xml.ws-6.sym.txt:java.xml.ws.annotation-6.sym.txt:jdk.management-6.sym.txt:jdk.sctp-6.sym.txt:jdk.security.jgss-6.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
--- a/make/hotspot/gensrc/GensrcJfr.gmk	Tue Jul 03 14:12:49 2018 +0100
+++ b/make/hotspot/gensrc/GensrcJfr.gmk	Mon Jul 16 12:11:02 2018 +0100
@@ -27,7 +27,7 @@
 # Build tools needed for the JFR source code generation
 
 JFR_TOOLS_SRCDIR := $(TOPDIR)/make/src/classes
-JFR_TOOLS_OUTPUTDIR := $(OUTPUTDIR)/buildtools/tools_classes
+JFR_TOOLS_OUTPUTDIR := $(JVM_VARIANT_OUTPUTDIR)/buildtools/tools_classes
 
 $(eval $(call SetupJavaCompiler, GENERATE_JFRBYTECODE, \
     JAVAC := $(JAVAC), \
--- a/make/hotspot/lib/JvmFeatures.gmk	Tue Jul 03 14:12:49 2018 +0100
+++ b/make/hotspot/lib/JvmFeatures.gmk	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -109,6 +109,7 @@
       classListParser.cpp \
       classLoaderExt.cpp \
       filemap.cpp \
+      heapShared.cpp \
       metaspaceShared.cpp \
       metaspaceShared_$(HOTSPOT_TARGET_CPU).cpp \
       metaspaceShared_$(HOTSPOT_TARGET_CPU_ARCH).cpp \
--- a/make/hotspot/symbols/symbols-unix	Tue Jul 03 14:12:49 2018 +0100
+++ b/make/hotspot/symbols/symbols-unix	Mon Jul 16 12:11:02 2018 +0100
@@ -136,6 +136,7 @@
 JVM_InitProperties
 JVM_InitStackTraceElement
 JVM_InitStackTraceElementArray
+JVM_InitializeFromArchive
 JVM_InternString
 JVM_Interrupt
 JVM_InvokeMethod
--- a/make/scripts/compare.sh	Tue Jul 03 14:12:49 2018 +0100
+++ b/make/scripts/compare.sh	Mon Jul 16 12:11:02 2018 +0100
@@ -1385,26 +1385,22 @@
         echo "  $OTHER_SPARKLE_DIR"
     fi
 
-    if [ -d "$OTHER/images" ]; then
-        OTHER_SEC_DIR="$OTHER/images"
-    else
-        OTHER_SEC_DIR="$OTHER/tmp"
-    fi
-    if [ -f "$THIS_SEC_DIR/sec-bin.zip" ]; then
+    THIS_SEC_DIR="$THIS/images"
+    OTHER_SEC_DIR="$OTHER/images"
+    if [ -f "$THIS_SEC_DIR/sec-bin.zip" ] && [ -f "$OTHER_SEC_DIR/sec-bin.zip" ]; then
         OTHER_SEC_BIN="$OTHER_SEC_DIR/sec-bin.zip"
-        THIS_SEC_DIR="$THIS/images"
         THIS_SEC_BIN="$THIS_SEC_DIR/sec-bin.zip"
-    fi
-    if [ "$OPENJDK_TARGET_OS" = "windows" ]; then
-        if [ "$OPENJDK_TARGET_CPU" = "x86_64" ]; then
-            JGSS_WINDOWS_BIN="jgss-windows-x64-bin.zip"
-        else
-            JGSS_WINDOWS_BIN="jgss-windows-i586-bin.zip"
+        if [ "$OPENJDK_TARGET_OS" = "windows" ]; then
+            if [ "$OPENJDK_TARGET_CPU" = "x86_64" ]; then
+                JGSS_WINDOWS_BIN="jgss-windows-x64-bin.zip"
+            else
+                JGSS_WINDOWS_BIN="jgss-windows-i586-bin.zip"
+            fi
+            OTHER_SEC_WINDOWS_BIN="$OTHER_SEC_DIR/sec-windows-bin.zip"
+            OTHER_JGSS_WINDOWS_BIN="$OTHER_SEC_DIR/$JGSS_WINDOWS_BIN"
+            THIS_SEC_WINDOWS_BIN="$THIS_SEC_DIR/sec-windows-bin.zip"
+            THIS_JGSS_WINDOWS_BIN="$THIS_SEC_DIR/$JGSS_WINDOWS_BIN"
         fi
-        OTHER_SEC_WINDOWS_BIN="$OTHER_SEC_DIR/sec-windows-bin.zip"
-        OTHER_JGSS_WINDOWS_BIN="$OTHER_SEC_DIR/$JGSS_WINDOWS_BIN"
-        THIS_SEC_WINDOWS_BIN="$THIS_SEC_DIR/sec-windows-bin.zip"
-        THIS_JGSS_WINDOWS_BIN="$THIS_SEC_DIR/$JGSS_WINDOWS_BIN"
     fi
 
     if [ -d "$THIS/images/docs" ] && [ -d "$OTHER/images/docs" ]; then
--- a/make/test/JtregNativeHotspot.gmk	Tue Jul 03 14:12:49 2018 +0100
+++ b/make/test/JtregNativeHotspot.gmk	Mon Jul 16 12:11:02 2018 +0100
@@ -836,6 +836,10 @@
 
 ################################################################################
 
+ifeq ($(TOOLCHAIN_TYPE), solstudio)
+   BUILD_HOTSPOT_JTREG_LIBRARIES_CFLAGS_libji06t001 += -erroff=E_END_OF_LOOP_CODE_NOT_REACHED
+endif
+
 # Platform specific setup
 ifneq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH), solaris-sparc)
   BUILD_HOTSPOT_JTREG_EXCLUDE += liboverflow.c exeThreadSignalMask.c
@@ -858,9 +862,13 @@
 
 BUILD_HOTSPOT_JTREG_EXECUTABLES_LIBS_exesigtest := -ljvm
 
+ifeq ($(OPENJDK_TARGET_OS), solaris)
+    BUILD_HOTSPOT_JTREG_EXCLUDE += libterminatedThread.c
+endif
+
 ifeq ($(OPENJDK_TARGET_OS), windows)
     BUILD_HOTSPOT_JTREG_EXECUTABLES_CFLAGS_exeFPRegs := -MT
-    BUILD_HOTSPOT_JTREG_EXCLUDE += exesigtest.c
+    BUILD_HOTSPOT_JTREG_EXCLUDE += exesigtest.c libterminatedThread.c
 
 else
     BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libbootclssearch_agent += -lpthread
@@ -1494,6 +1502,7 @@
     BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libvmdeath001 += -lpthread
     BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libgetphase001 += -lpthread
     BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libgetphase002 += -lpthread
+    BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libterminatedThread += -lpthread
 endif
 
 $(eval $(call SetupTestFilesCompilation, BUILD_HOTSPOT_JTREG_LIBRARIES, \
--- a/src/hotspot/cpu/aarch64/aarch64.ad	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/cpu/aarch64/aarch64.ad	Mon Jul 16 12:11:02 2018 +0100
@@ -1471,7 +1471,7 @@
   // Ctl+Mem to a StoreB node (which does the actual card mark).
   //
   // n.b. a StoreCM node will only appear in this configuration when
-  // using CMS. StoreCM differs from a normal card mark write (StoreB)
+  // using CMS or G1. StoreCM differs from a normal card mark write (StoreB)
   // because it implies a requirement to order visibility of the card
   // mark (StoreCM) relative to the object put (StoreP/N) using a
   // StoreStore memory barrier (arguably this ought to be represented
@@ -1481,16 +1481,12 @@
   // the sequence
   //
   //   dmb ishst
-  //   stlrb
-  //
-  // However, in the case of a volatile put if we can recognise this
-  // configuration and plant an stlr for the object write then we can
-  // omit the dmb and just plant an strb since visibility of the stlr
-  // is ordered before visibility of subsequent stores. StoreCM nodes
-  // also arise when using G1 or using CMS with conditional card
-  // marking. In these cases (as we shall see) we don't need to insert
-  // the dmb when translating StoreCM because there is already an
-  // intervening StoreLoad barrier between it and the StoreP/N.
+  //   strb
+  //
+  // However, when using G1 or CMS with conditional card marking (as
+  // we shall see) we don't need to insert the dmb when translating
+  // StoreCM because there is already an intervening StoreLoad barrier
+  // between it and the StoreP/N.
   //
   // It is also possible to perform the card mark conditionally on it
   // currently being unmarked in which case the volatile put graph
@@ -2868,50 +2864,17 @@
 {
   assert(storecm->Opcode()  == Op_StoreCM, "expecting a StoreCM");
 
-  // we only ever need to generate a dmb ishst between an object put
-  // and the associated card mark when we are using CMS without
-  // conditional card marking
-
-  if (!UseConcMarkSweepGC || UseCondCardMark) {
-    return true;
-  }
-
-  // if we are implementing volatile puts using barriers then the
-  // object put is an str so we must insert the dmb ishst
-
-  if (UseBarriersForVolatile) {
+  // we need to generate a dmb ishst between an object put and the
+  // associated card mark when we are using CMS without conditional
+  // card marking
+
+  if (UseConcMarkSweepGC && !UseCondCardMark) {
     return false;
   }
 
-  // we can omit the dmb ishst if this StoreCM is part of a volatile
-  // put because in thta case the put will be implemented by stlr
-  //
-  // we need to check for a normal subgraph feeding this StoreCM.
-  // that means the StoreCM must be fed Memory from a leading membar,
-  // either a MemBarRelease or its dependent MemBarCPUOrder, and the
-  // leading membar must be part of a normal subgraph
-
-  Node *x = storecm->in(StoreNode::Memory);
-
-  if (!x->is_Proj()) {
-    return false;
-  }
-
-  x = x->in(0);
-
-  if (!x->is_MemBar()) {
-    return false;
-  }
-
-  MemBarNode *leading = x->as_MemBar();
-
-  // reject invalid candidates
-  if (!leading_membar(leading)) {
-    return false;
-  }
-
-  // we can omit the StoreStore if it is the head of a normal subgraph
-  return (leading_to_normal(leading) != NULL);
+  // a storestore is unnecesary in all other cases
+
+  return true;
 }
 
 
--- a/src/hotspot/cpu/aarch64/globals_aarch64.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/cpu/aarch64/globals_aarch64.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -164,7 +164,7 @@
   product(int, SoftwarePrefetchHintDistance, -1,                        \
           "Use prfm hint with specified distance in compiled code."     \
           "Value -1 means off.")                                        \
-          range(-1, 32760)
+          range(-1, 4096)
 #endif
 
 
--- a/src/hotspot/cpu/ppc/vm_version_ext_ppc.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/cpu/ppc/vm_version_ext_ppc.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -25,19 +25,30 @@
 #include "jvm.h"
 #include "memory/allocation.hpp"
 #include "memory/allocation.inline.hpp"
+#include "runtime/vm_version.hpp"
 #include "vm_version_ext_ppc.hpp"
 
 // VM_Version_Ext statics
 int   VM_Version_Ext::_no_of_threads = 0;
 int   VM_Version_Ext::_no_of_cores = 0;
 int   VM_Version_Ext::_no_of_sockets = 0;
+bool  VM_Version_Ext::_initialized = false;
 char  VM_Version_Ext::_cpu_name[CPU_TYPE_DESC_BUF_SIZE] = {0};
 char  VM_Version_Ext::_cpu_desc[CPU_DETAILED_DESC_BUF_SIZE] = {0};
 
 // get cpu information.
-bool VM_Version_Ext::initialize_cpu_information(void) {
-  // Not yet implemented.
-  return false;
+void VM_Version_Ext::initialize_cpu_information(void) {
+  // do nothing if cpu info has been initialized
+  if (_initialized) {
+    return;
+  }
+
+  _no_of_cores  = os::processor_count();
+  _no_of_threads = _no_of_cores;
+  _no_of_sockets = _no_of_cores;
+  snprintf(_cpu_name, CPU_TYPE_DESC_BUF_SIZE, "PowerPC POWER%lu", PowerArchitecturePPC64);
+  snprintf(_cpu_desc, CPU_DETAILED_DESC_BUF_SIZE, "PPC %s", features_string());
+  _initialized = true;
 }
 
 int VM_Version_Ext::number_of_threads(void) {
@@ -56,9 +67,7 @@
 }
 
 const char* VM_Version_Ext::cpu_name(void) {
-  if (!initialize_cpu_information()) {
-    return NULL;
-  }
+  initialize_cpu_information();
   char* tmp = NEW_C_HEAP_ARRAY_RETURN_NULL(char, CPU_TYPE_DESC_BUF_SIZE, mtTracing);
   if (NULL == tmp) {
     return NULL;
@@ -68,9 +77,7 @@
 }
 
 const char* VM_Version_Ext::cpu_description(void) {
-  if (!initialize_cpu_information()) {
-    return NULL;
-  }
+  initialize_cpu_information();
   char* tmp = NEW_C_HEAP_ARRAY_RETURN_NULL(char, CPU_DETAILED_DESC_BUF_SIZE, mtTracing);
   if (NULL == tmp) {
     return NULL;
--- a/src/hotspot/cpu/ppc/vm_version_ext_ppc.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/cpu/ppc/vm_version_ext_ppc.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -43,10 +43,11 @@
   static int               _no_of_threads;
   static int               _no_of_cores;
   static int               _no_of_sockets;
+  static bool              _initialized;
   static char              _cpu_name[CPU_TYPE_DESC_BUF_SIZE];
   static char              _cpu_desc[CPU_DETAILED_DESC_BUF_SIZE];
 
-  static bool initialize_cpu_information(void);
+  static void initialize_cpu_information(void);
 
  public:
 
--- a/src/hotspot/cpu/s390/s390.ad	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/cpu/s390/s390.ad	Mon Jul 16 12:11:02 2018 +0100
@@ -9839,7 +9839,7 @@
   match(Set index (PartialSubtypeCheck sub super));
   effect(KILL pcc, KILL scratch1, KILL scratch2);
   ins_cost(10 * DEFAULT_COST);
-  size(12);
+  // TODO: s390 port size(FIXED_SIZE);
   format %{ "  CALL   PartialSubtypeCheck\n" %}
   ins_encode %{
     AddressLiteral stub_address(StubRoutines::zarch::partial_subtype_check());
--- a/src/hotspot/cpu/s390/templateTable_s390.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/cpu/s390/templateTable_s390.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -3636,7 +3636,7 @@
 
   NearLabel subtype, no_such_interface;
 
-  __ check_klass_subtype(klass, interface, Z_tmp_2, Z_tmp_3, subtype);
+  __ check_klass_subtype(klass, interface, Z_tmp_2, flags/*scratch*/, subtype);
   // If we get here the typecheck failed
   __ z_bru(no_such_interface);
   __ bind(subtype);
@@ -3649,7 +3649,6 @@
   __ bind(notVFinal);
 
   // Get receiver klass into klass - also a null check.
-  __ restore_locals();
   __ load_klass(klass, receiver);
 
   __ lookup_interface_method(klass, interface, noreg, noreg, /*temp*/Z_ARG1,
@@ -3680,7 +3679,7 @@
   // interpreter entry point and a conditional jump to it in case of a null
   // method.
   __ compareU64_and_branch(method2, (intptr_t) 0,
-                            Assembler::bcondZero, no_such_method);
+                           Assembler::bcondZero, no_such_method);
 
   __ profile_arguments_type(Z_tmp_1, method2, Z_tmp_2, true);
 
@@ -3695,8 +3694,6 @@
   __ bind(no_such_method);
 
   // Throw exception.
-  __ restore_bcp();      // Bcp must be correct for exception handler   (was destroyed).
-  __ restore_locals();   // Make sure locals pointer is correct as well (was destroyed).
   // Pass arguments for generating a verbose error message.
   __ z_lgr(Z_tmp_1, method); // Prevent register clash.
   __ call_VM(noreg,
@@ -3709,8 +3706,6 @@
   __ bind(no_such_interface);
 
   // Throw exception.
-  __ restore_bcp();      // Bcp must be correct for exception handler   (was destroyed).
-  __ restore_locals();   // Make sure locals pointer is correct as well (was destroyed).
   // Pass arguments for generating a verbose error message.
   __ call_VM(noreg,
              CAST_FROM_FN_PTR(address,
--- a/src/hotspot/cpu/s390/vm_version_ext_s390.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/cpu/s390/vm_version_ext_s390.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -31,13 +31,23 @@
 int   VM_Version_Ext::_no_of_threads = 0;
 int   VM_Version_Ext::_no_of_cores = 0;
 int   VM_Version_Ext::_no_of_sockets = 0;
+bool  VM_Version_Ext::_initialized = false;
 char  VM_Version_Ext::_cpu_name[CPU_TYPE_DESC_BUF_SIZE] = {0};
 char  VM_Version_Ext::_cpu_desc[CPU_DETAILED_DESC_BUF_SIZE] = {0};
 
 // get cpu information.
-bool VM_Version_Ext::initialize_cpu_information(void) {
-  // Not yet implemented.
-  return false;
+void  VM_Version_Ext::initialize_cpu_information(void) {
+  // do nothing if cpu info has been initialized
+  if (_initialized) {
+    return;
+  }
+
+  _no_of_cores  = os::processor_count();
+  _no_of_threads = _no_of_cores;
+  _no_of_sockets = _no_of_cores;
+  snprintf(_cpu_name, CPU_TYPE_DESC_BUF_SIZE, "s390 %s", VM_Version::get_model_string());
+  snprintf(_cpu_desc, CPU_DETAILED_DESC_BUF_SIZE, "zArch %s", features_string());
+  _initialized = true;
 }
 
 int VM_Version_Ext::number_of_threads(void) {
@@ -56,9 +66,7 @@
 }
 
 const char* VM_Version_Ext::cpu_name(void) {
-  if (!initialize_cpu_information()) {
-    return NULL;
-  }
+  initialize_cpu_information();
   char* tmp = NEW_C_HEAP_ARRAY_RETURN_NULL(char, CPU_TYPE_DESC_BUF_SIZE, mtTracing);
   if (NULL == tmp) {
     return NULL;
@@ -68,9 +76,7 @@
 }
 
 const char* VM_Version_Ext::cpu_description(void) {
-  if (!initialize_cpu_information()) {
-    return NULL;
-  }
+  initialize_cpu_information();
   char* tmp = NEW_C_HEAP_ARRAY_RETURN_NULL(char, CPU_DETAILED_DESC_BUF_SIZE, mtTracing);
   if (NULL == tmp) {
     return NULL;
--- a/src/hotspot/cpu/s390/vm_version_ext_s390.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/cpu/s390/vm_version_ext_s390.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -43,10 +43,11 @@
   static int               _no_of_threads;
   static int               _no_of_cores;
   static int               _no_of_sockets;
+  static bool              _initialized;
   static char              _cpu_name[CPU_TYPE_DESC_BUF_SIZE];
   static char              _cpu_desc[CPU_DETAILED_DESC_BUF_SIZE];
 
-  static bool initialize_cpu_information(void);
+  static void initialize_cpu_information(void);
 
  public:
 
--- a/src/hotspot/cpu/s390/vm_version_s390.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/cpu/s390/vm_version_s390.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,6 +1,6 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2016, 2017 SAP SE. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018 SAP SE. 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,6 +36,7 @@
 # include <sys/sysinfo.h>
 
 bool VM_Version::_is_determine_features_test_running  = false;
+const char*   VM_Version::_model_string;
 
 unsigned long VM_Version::_features[_features_buffer_len]           = {0, 0, 0, 0};
 unsigned long VM_Version::_cipher_features[_features_buffer_len]    = {0, 0, 0, 0};
@@ -210,6 +211,10 @@
     FLAG_SET_DEFAULT(UseSHA512Intrinsics, false);
   }
 
+  if (!(UseSHA1Intrinsics || UseSHA256Intrinsics || UseSHA512Intrinsics)) {
+    FLAG_SET_DEFAULT(UseSHA, false);
+  }
+
   if (FLAG_IS_DEFAULT(UseMultiplyToLenIntrinsic)) {
     FLAG_SET_DEFAULT(UseMultiplyToLenIntrinsic, true);
   }
@@ -244,32 +249,40 @@
 void VM_Version::set_features_string() {
 
   unsigned int ambiguity = 0;
+  _model_string = z_name[0];
   if (is_z13()) {
     _features_string = "System z G7-z13  (LDISP_fast, ExtImm, PCrel Load/Store, CmpB, Cond Load/Store, Interlocked Update, TxM, VectorInstr)";
+    _model_string = z_name[7];
     ambiguity++;
   }
   if (is_ec12()) {
     _features_string = "System z G6-EC12 (LDISP_fast, ExtImm, PCrel Load/Store, CmpB, Cond Load/Store, Interlocked Update, TxM)";
+    _model_string = z_name[6];
     ambiguity++;
   }
   if (is_z196()) {
     _features_string = "System z G5-z196 (LDISP_fast, ExtImm, PCrel Load/Store, CmpB, Cond Load/Store, Interlocked Update)";
+    _model_string = z_name[5];
     ambiguity++;
   }
   if (is_z10()) {
     _features_string = "System z G4-z10  (LDISP_fast, ExtImm, PCrel Load/Store, CmpB)";
+    _model_string = z_name[4];
     ambiguity++;
   }
   if (is_z9()) {
     _features_string = "System z G3-z9   (LDISP_fast, ExtImm), out-of-support as of 2016-04-01";
+    _model_string = z_name[3];
     ambiguity++;
   }
   if (is_z990()) {
     _features_string = "System z G2-z990 (LDISP_fast), out-of-support as of 2014-07-01";
+    _model_string = z_name[2];
     ambiguity++;
   }
   if (is_z900()) {
     _features_string = "System z G1-z900 (LDISP), out-of-support as of 2014-07-01";
+    _model_string = z_name[1];
     ambiguity++;
   }
 
--- a/src/hotspot/cpu/s390/vm_version_s390.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/cpu/s390/vm_version_s390.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,6 +1,6 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2016 SAP SE. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018 SAP SE. 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
@@ -131,6 +131,7 @@
   static unsigned int  _Dcache_lineSize;
   static unsigned int  _Icache_lineSize;
   static bool          _is_determine_features_test_running;
+  static const char*   _model_string;
 
   static bool test_feature_bit(unsigned long* featureBuffer, int featureNum, unsigned int bufLen);
   static void set_features_string();
@@ -346,6 +347,7 @@
   static bool is_determine_features_test_running() { return _is_determine_features_test_running; }
 
   // CPU feature query functions
+  static const char* get_model_string()       { return _model_string; }
   static bool has_StoreFacilityListExtended() { return  (_features[0] & StoreFacilityListExtendedMask) == StoreFacilityListExtendedMask; }
   static bool has_Crypto()                    { return  (_features[0] & CryptoFacilityMask)            == CryptoFacilityMask; }
   static bool has_ETF2()                      { return  (_features[0] & ETF2Mask)                      == ETF2Mask; }
--- a/src/hotspot/cpu/x86/methodHandles_x86.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/cpu/x86/methodHandles_x86.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -25,6 +25,7 @@
 #include "precompiled.hpp"
 #include "jvm.h"
 #include "asm/macroAssembler.hpp"
+#include "compiler/disassembler.hpp"
 #include "classfile/javaClasses.inline.hpp"
 #include "interpreter/interpreter.hpp"
 #include "interpreter/interpreterRuntime.hpp"
@@ -35,7 +36,7 @@
 #include "runtime/frame.inline.hpp"
 #include "utilities/preserveException.hpp"
 
-#define __ _masm->
+#define __ Disassembler::hook<MacroAssembler>(__FILE__, __LINE__, _masm)->
 
 #ifdef PRODUCT
 #define BLOCK_COMMENT(str) /* nothing */
@@ -440,8 +441,6 @@
         verify_ref_kind(_masm, JVM_REF_invokeInterface, member_reg, temp3);
       }
 
-      BarrierSetAssembler* bs = BarrierSet::barrier_set()->barrier_set_assembler();
-
       Register temp3_intf = temp3;
       __ load_heap_oop(temp3_intf, member_clazz);
       load_klass_from_Class(_masm, temp3_intf);
--- a/src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -24,6 +24,7 @@
 
 #include "precompiled.hpp"
 #include "asm/macroAssembler.hpp"
+#include "compiler/disassembler.hpp"
 #include "gc/shared/barrierSetAssembler.hpp"
 #include "interpreter/bytecodeHistogram.hpp"
 #include "interpreter/interp_masm.hpp"
@@ -48,7 +49,7 @@
 #include "utilities/debug.hpp"
 #include "utilities/macros.hpp"
 
-#define __ _masm->
+#define __ Disassembler::hook<InterpreterMacroAssembler>(__FILE__, __LINE__, _masm)->
 
 // Size of interpreter code.  Increase if too small.  Interpreter will
 // fail with a guarantee ("not enough space for interpreter generation");
@@ -1774,18 +1775,30 @@
                                                          address& vep) {
   assert(t->is_valid() && t->tos_in() == vtos, "illegal template");
   Label L;
-  aep = __ pc();  __ push_ptr();   __ jmp(L);
+  aep = __ pc();     // atos entry point
+      __ push_ptr();
+      __ jmp(L);
 #ifndef _LP64
-  fep = __ pc(); __ push(ftos); __ jmp(L);
-  dep = __ pc(); __ push(dtos); __ jmp(L);
+  fep = __ pc();     // ftos entry point
+      __ push(ftos);
+      __ jmp(L);
+  dep = __ pc();     // dtos entry point
+      __ push(dtos);
+      __ jmp(L);
 #else
-  fep = __ pc();  __ push_f(xmm0); __ jmp(L);
-  dep = __ pc();  __ push_d(xmm0); __ jmp(L);
+  fep = __ pc();     // ftos entry point
+      __ push_f(xmm0);
+      __ jmp(L);
+  dep = __ pc();     // dtos entry point
+      __ push_d(xmm0);
+      __ jmp(L);
 #endif // _LP64
-  lep = __ pc();  __ push_l();     __ jmp(L);
-  bep = cep = sep =
-  iep = __ pc();  __ push_i();
-  vep = __ pc();
+  lep = __ pc();     // ltos entry point
+      __ push_l();
+      __ jmp(L);
+  bep = cep = sep = iep = __ pc();      // [bcsi]tos entry point
+      __ push_i();
+  vep = __ pc();    // vtos entry point
   __ bind(L);
   generate_and_dispatch(t);
 }
--- a/src/hotspot/cpu/x86/templateInterpreterGenerator_x86_32.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/cpu/x86/templateInterpreterGenerator_x86_32.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -24,6 +24,7 @@
 
 #include "precompiled.hpp"
 #include "asm/macroAssembler.hpp"
+#include "compiler/disassembler.hpp"
 #include "interpreter/interp_masm.hpp"
 #include "interpreter/interpreter.hpp"
 #include "interpreter/interpreterRuntime.hpp"
@@ -31,7 +32,7 @@
 #include "runtime/arguments.hpp"
 #include "runtime/sharedRuntime.hpp"
 
-#define __ _masm->
+#define __ Disassembler::hook<InterpreterMacroAssembler>(__FILE__, __LINE__, _masm)->
 
 
 address TemplateInterpreterGenerator::generate_slow_signature_handler() {
--- a/src/hotspot/cpu/x86/templateInterpreterGenerator_x86_64.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/cpu/x86/templateInterpreterGenerator_x86_64.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,6 +24,7 @@
 
 #include "precompiled.hpp"
 #include "asm/macroAssembler.hpp"
+#include "compiler/disassembler.hpp"
 #include "interpreter/interp_masm.hpp"
 #include "interpreter/interpreter.hpp"
 #include "interpreter/interpreterRuntime.hpp"
@@ -31,7 +32,7 @@
 #include "runtime/arguments.hpp"
 #include "runtime/sharedRuntime.hpp"
 
-#define __ _masm->
+#define __ Disassembler::hook<InterpreterMacroAssembler>(__FILE__, __LINE__, _masm)->
 
 #ifdef _WIN64
 address TemplateInterpreterGenerator::generate_slow_signature_handler() {
--- a/src/hotspot/cpu/x86/templateTable_x86.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/cpu/x86/templateTable_x86.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -24,6 +24,7 @@
 
 #include "precompiled.hpp"
 #include "asm/macroAssembler.hpp"
+#include "compiler/disassembler.hpp"
 #include "interpreter/interpreter.hpp"
 #include "interpreter/interpreterRuntime.hpp"
 #include "interpreter/interp_masm.hpp"
@@ -40,7 +41,7 @@
 #include "runtime/synchronizer.hpp"
 #include "utilities/macros.hpp"
 
-#define __ _masm->
+#define __ Disassembler::hook<InterpreterMacroAssembler>(__FILE__, __LINE__, _masm)->
 
 // Global Register Names
 static const Register rbcp     = LP64_ONLY(r13) NOT_LP64(rsi);
--- a/src/hotspot/cpu/x86/vm_version_ext_x86.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/cpu/x86/vm_version_ext_x86.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -470,8 +470,8 @@
 }
 
 size_t VM_Version_Ext::cpu_write_support_string(char* const buf, size_t buf_len) {
-  assert(buf != NULL, "buffer is NULL!");
-  assert(buf_len > 0, "buffer len not enough!");
+  guarantee(buf != NULL, "buffer is NULL!");
+  guarantee(buf_len > 0, "buffer len not enough!");
 
   unsigned int flag = 0;
   unsigned int fi = 0;
@@ -481,8 +481,7 @@
 #define WRITE_TO_BUF(string)                                                          \
   {                                                                                   \
     int res = jio_snprintf(&buf[written], buf_len - written, "%s%s", prefix, string); \
-    if (res < 0 || (size_t) res >= buf_len - 1) {                                     \
-      buf[buf_len-1] = '\0';                                                          \
+    if (res < 0) {                                                                    \
       return buf_len - 1;                                                             \
     }                                                                                 \
     written += res;                                                                   \
@@ -592,7 +591,7 @@
     _cpuid_info.ext_cpuid1_edx);
 
   if (outputLen < 0 || (size_t) outputLen >= buf_len - 1) {
-    buf[buf_len-1] = '\0';
+    if (buf_len > 0) { buf[buf_len-1] = '\0'; }
     return OS_ERR;
   }
 
--- a/src/hotspot/cpu/x86/vm_version_ext_x86.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/cpu/x86/vm_version_ext_x86.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -63,6 +63,7 @@
   static bool cpu_is_em64t(void);
   static bool is_netburst(void);
 
+  // Returns bytes written excluding termninating null byte.
   static size_t cpu_write_support_string(char* const buf, size_t buf_len);
   static void resolve_cpu_information_details(void);
   static jlong max_qualified_cpu_freq_from_brand_string(void);
--- a/src/hotspot/cpu/x86/x86.ad	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/cpu/x86/x86.ad	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+// Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
 // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 //
 // This code is free software; you can redistribute it and/or modify it
@@ -1444,6 +1444,7 @@
       case Op_CMoveVF:
         if (vlen != 8)
           ret_value  = false;
+        break;
       case Op_CMoveVD:
         if (vlen != 4)
           ret_value  = false;
--- a/src/hotspot/os/aix/os_aix.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/os/aix/os_aix.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -576,7 +576,9 @@
       }
     }
     Arguments::set_java_home(buf);
-    set_boot_path('/', ':');
+    if (!set_boot_path('/', ':')) {
+      vm_exit_during_initialization("Failed setting boot class path.", NULL);
+    }
   }
 
   // Where to look for native libraries.
@@ -1208,22 +1210,6 @@
   ::abort();
 }
 
-// This method is a copy of JDK's sysGetLastErrorString
-// from src/solaris/hpi/src/system_md.c
-
-size_t os::lasterror(char *buf, size_t len) {
-  if (errno == 0) return 0;
-
-  const char *s = os::strerror(errno);
-  size_t n = ::strlen(s);
-  if (n >= len) {
-    n = len - 1;
-  }
-  ::strncpy(buf, s, n);
-  buf[n] = '\0';
-  return n;
-}
-
 intx os::current_thread_id() {
   return (intx)pthread_self();
 }
--- a/src/hotspot/os/bsd/os_bsd.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/os/bsd/os_bsd.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -372,7 +372,9 @@
       }
     }
     Arguments::set_java_home(buf);
-    set_boot_path('/', ':');
+    if (!set_boot_path('/', ':')) {
+      vm_exit_during_initialization("Failed setting boot class path.", NULL);
+    }
   }
 
   // Where to look for native libraries.
@@ -1081,22 +1083,6 @@
   ::abort();
 }
 
-// This method is a copy of JDK's sysGetLastErrorString
-// from src/solaris/hpi/src/system_md.c
-
-size_t os::lasterror(char *buf, size_t len) {
-  if (errno == 0)  return 0;
-
-  const char *s = os::strerror(errno);
-  size_t n = ::strlen(s);
-  if (n >= len) {
-    n = len - 1;
-  }
-  ::strncpy(buf, s, n);
-  buf[n] = '\0';
-  return n;
-}
-
 // Information of current thread in variety of formats
 pid_t os::Bsd::gettid() {
   int retval = -1;
--- a/src/hotspot/os/linux/os_linux.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/os/linux/os_linux.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -367,7 +367,9 @@
       }
     }
     Arguments::set_java_home(buf);
-    set_boot_path('/', ':');
+    if (!set_boot_path('/', ':')) {
+      vm_exit_during_initialization("Failed setting boot class path.", NULL);
+    }
   }
 
   // Where to look for native libraries.
@@ -1419,23 +1421,6 @@
   ::abort();
 }
 
-
-// This method is a copy of JDK's sysGetLastErrorString
-// from src/solaris/hpi/src/system_md.c
-
-size_t os::lasterror(char *buf, size_t len) {
-  if (errno == 0)  return 0;
-
-  const char *s = os::strerror(errno);
-  size_t n = ::strlen(s);
-  if (n >= len) {
-    n = len - 1;
-  }
-  ::strncpy(buf, s, n);
-  buf[n] = '\0';
-  return n;
-}
-
 // thread_id is kernel thread id (similar to Solaris LWP id)
 intx os::current_thread_id() { return os::Linux::gettid(); }
 int os::current_process_id() {
@@ -2108,7 +2093,9 @@
   // special case for debian
   if (file_exists("/etc/debian_version")) {
     strncpy(buf, "Debian ", buflen);
-    parse_os_info(&buf[7], buflen-7, "/etc/debian_version");
+    if (buflen > 7) {
+      parse_os_info(&buf[7], buflen-7, "/etc/debian_version");
+    }
   } else {
     strncpy(buf, "Linux", buflen);
   }
@@ -2820,8 +2807,8 @@
 }
 
 int os::Linux::get_existing_num_nodes() {
-  size_t node;
-  size_t highest_node_number = Linux::numa_max_node();
+  int node;
+  int highest_node_number = Linux::numa_max_node();
   int num_nodes = 0;
 
   // Get the total number of nodes in the system including nodes without memory.
@@ -2834,14 +2821,14 @@
 }
 
 size_t os::numa_get_leaf_groups(int *ids, size_t size) {
-  size_t highest_node_number = Linux::numa_max_node();
+  int highest_node_number = Linux::numa_max_node();
   size_t i = 0;
 
-  // Map all node ids in which is possible to allocate memory. Also nodes are
+  // Map all node ids in which it is possible to allocate memory. Also nodes are
   // not always consecutively available, i.e. available from 0 to the highest
   // node number.
-  for (size_t node = 0; node <= highest_node_number; node++) {
-    if (Linux::isnode_in_configured_nodes(node)) {
+  for (int node = 0; node <= highest_node_number; node++) {
+    if (Linux::isnode_in_configured_nodes((unsigned int)node)) {
       ids[i++] = node;
     }
   }
@@ -5572,14 +5559,18 @@
 
 static jlong slow_thread_cpu_time(Thread *thread, bool user_sys_cpu_time);
 
-static clockid_t thread_cpu_clockid(Thread* thread) {
-  pthread_t tid = thread->osthread()->pthread_id();
-  clockid_t clockid;
-
-  // Get thread clockid
-  int rc = os::Linux::pthread_getcpuclockid(tid, &clockid);
-  assert(rc == 0, "pthread_getcpuclockid is expected to return 0 code");
-  return clockid;
+static jlong fast_cpu_time(Thread *thread) {
+    clockid_t clockid;
+    int rc = os::Linux::pthread_getcpuclockid(thread->osthread()->pthread_id(),
+                                              &clockid);
+    if (rc == 0) {
+      return os::Linux::fast_thread_cpu_time(clockid);
+    } else {
+      // It's possible to encounter a terminated native thread that failed
+      // to detach itself from the VM - which should result in ESRCH.
+      assert_status(rc == ESRCH, rc, "pthread_getcpuclockid failed");
+      return -1;
+    }
 }
 
 // current_thread_cpu_time(bool) and thread_cpu_time(Thread*, bool)
@@ -5601,7 +5592,7 @@
 jlong os::thread_cpu_time(Thread* thread) {
   // consistent with what current_thread_cpu_time() returns
   if (os::Linux::supports_fast_thread_cpu_time()) {
-    return os::Linux::fast_thread_cpu_time(thread_cpu_clockid(thread));
+    return fast_cpu_time(thread);
   } else {
     return slow_thread_cpu_time(thread, true /* user + sys */);
   }
@@ -5617,7 +5608,7 @@
 
 jlong os::thread_cpu_time(Thread *thread, bool user_sys_cpu_time) {
   if (user_sys_cpu_time && os::Linux::supports_fast_thread_cpu_time()) {
-    return os::Linux::fast_thread_cpu_time(thread_cpu_clockid(thread));
+    return fast_cpu_time(thread);
   } else {
     return slow_thread_cpu_time(thread, user_sys_cpu_time);
   }
--- a/src/hotspot/os/linux/perfMemory_linux.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/os/linux/perfMemory_linux.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -534,15 +534,14 @@
   // directory search
   char* oldest_user = NULL;
   time_t oldest_ctime = 0;
-  char buffer[TMP_BUFFER_LEN];
+  char buffer[MAXPATHLEN + 1];
   int searchpid;
   char* tmpdirname = (char *)os::get_temp_directory();
   assert(strlen(tmpdirname) == 4, "No longer using /tmp - update buffer size");
 
   if (nspid == -1) {
     searchpid = vmid;
-  }
-  else {
+  } else {
     jio_snprintf(buffer, MAXPATHLEN, "/proc/%d/root%s", vmid, tmpdirname);
     tmpdirname = buffer;
     searchpid = nspid;
--- a/src/hotspot/os/posix/os_posix.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/os/posix/os_posix.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -150,6 +150,19 @@
   return errno;
 }
 
+size_t os::lasterror(char *buf, size_t len) {
+  if (errno == 0)  return 0;
+
+  const char *s = os::strerror(errno);
+  size_t n = ::strlen(s);
+  if (n >= len) {
+    n = len - 1;
+  }
+  ::strncpy(buf, s, n);
+  buf[n] = '\0';
+  return n;
+}
+
 bool os::is_debugger_attached() {
   // not implemented
   return false;
--- a/src/hotspot/os/solaris/os_solaris.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/os/solaris/os_solaris.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -580,7 +580,9 @@
       }
     }
     Arguments::set_java_home(buf);
-    set_boot_path('/', ':');
+    if (!set_boot_path('/', ':')) {
+      vm_exit_during_initialization("Failed setting boot class path.", NULL);
+    }
   }
 
   // Where to look for native libraries.
@@ -2010,23 +2012,6 @@
   // no suffix required
 }
 
-// This method is a copy of JDK's sysGetLastErrorString
-// from src/solaris/hpi/src/system_md.c
-
-size_t os::lasterror(char *buf, size_t len) {
-  if (errno == 0)  return 0;
-
-  const char *s = os::strerror(errno);
-  size_t n = ::strlen(s);
-  if (n >= len) {
-    n = len - 1;
-  }
-  ::strncpy(buf, s, n);
-  buf[n] = '\0';
-  return n;
-}
-
-
 // sun.misc.Signal
 
 extern "C" {
--- a/src/hotspot/os/windows/os_windows.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/os/windows/os_windows.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -230,7 +230,7 @@
     FREE_C_HEAP_ARRAY(char, dll_path);
 
     if (!set_boot_path('\\', ';')) {
-      return;
+      vm_exit_during_initialization("Failed setting boot class path.", NULL);
     }
   }
 
--- a/src/hotspot/os_cpu/aix_ppc/orderAccess_aix_ppc.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/os_cpu/aix_ppc/orderAccess_aix_ppc.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -82,7 +82,7 @@
 struct OrderAccess::PlatformOrderedLoad<byte_size, X_ACQUIRE>
 {
   template <typename T>
-  T operator()(const volatile T* p) const { register T t = Atomic::load(p); inlasm_acquire_reg(t); return t; }
+  T operator()(const volatile T* p) const { T t = Atomic::load(p); inlasm_acquire_reg(t); return t; }
 };
 
 #undef inlasm_sync
--- a/src/hotspot/os_cpu/bsd_x86/os_bsd_x86.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/os_cpu/bsd_x86/os_bsd_x86.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -279,11 +279,11 @@
 
 address os::current_stack_pointer() {
 #if defined(__clang__) || defined(__llvm__)
-  register void *esp;
+  void *esp;
   __asm__("mov %%" SPELL_REG_SP ", %0":"=r"(esp));
   return (address) esp;
 #elif defined(SPARC_WORKS)
-  register void *esp;
+  void *esp;
   __asm__("mov %%" SPELL_REG_SP ", %0":"=r"(esp));
   return (address) ((char*)esp + sizeof(long)*2);
 #else
@@ -415,7 +415,7 @@
 
 intptr_t* _get_previous_fp() {
 #if defined(SPARC_WORKS) || defined(__clang__) || defined(__llvm__)
-  register intptr_t **ebp;
+  intptr_t **ebp;
   __asm__("mov %%" SPELL_REG_FP ", %0":"=r"(ebp));
 #else
   register intptr_t **ebp __asm__ (SPELL_REG_FP);
--- a/src/hotspot/os_cpu/linux_ppc/orderAccess_linux_ppc.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/os_cpu/linux_ppc/orderAccess_linux_ppc.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -85,7 +85,7 @@
 struct OrderAccess::PlatformOrderedLoad<byte_size, X_ACQUIRE>
 {
   template <typename T>
-  T operator()(const volatile T* p) const { register T t = Atomic::load(p); inlasm_acquire_reg(t); return t; }
+  T operator()(const volatile T* p) const { T t = Atomic::load(p); inlasm_acquire_reg(t); return t; }
 };
 
 #undef inlasm_sync
--- a/src/hotspot/os_cpu/linux_s390/orderAccess_linux_s390.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/os_cpu/linux_s390/orderAccess_linux_s390.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -79,7 +79,7 @@
 struct OrderAccess::PlatformOrderedLoad<byte_size, X_ACQUIRE>
 {
   template <typename T>
-  T operator()(const volatile T* p) const { register T t = *p; inlasm_zarch_acquire(); return t; }
+  T operator()(const volatile T* p) const { T t = *p; inlasm_zarch_acquire(); return t; }
 };
 
 #undef inlasm_compiler_barrier
--- a/src/hotspot/os_cpu/linux_x86/gc/z/zBackingFile_linux_x86.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/os_cpu/linux_x86/gc/z/zBackingFile_linux_x86.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -28,7 +28,6 @@
 #include "gc/z/zErrno.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"
@@ -47,10 +46,6 @@
 // Sysfs file for transparent huge page on tmpfs
 #define ZFILENAME_SHMEM_ENABLED          "/sys/kernel/mm/transparent_hugepage/shmem_enabled"
 
-// Default mount points
-#define ZMOUNTPOINT_TMPFS                "/dev/shm"
-#define ZMOUNTPOINT_HUGETLBFS            "/hugepages"
-
 // Java heap filename
 #define ZFILENAME_HEAP                   "java_heap"
 
@@ -79,13 +74,30 @@
 #define HUGETLBFS_MAGIC                  0x958458f6
 #endif
 
+// 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_memfd_create(const char *name, unsigned int flags) {
   return syscall(__NR_memfd_create, name, flags);
 }
 
+bool ZBackingFile::_hugetlbfs_mmap_retry = true;
+
 ZBackingFile::ZBackingFile() :
     _fd(-1),
     _filesystem(0),
+    _available(0),
     _initialized(false) {
 
   // Create backing file
@@ -94,39 +106,47 @@
     return;
   }
 
-  // Get filesystem type
+  // Get filesystem statistics
   struct statfs statfs_buf;
   if (fstatfs(_fd, &statfs_buf) == -1) {
     ZErrno err;
-    log_error(gc, init)("Failed to determine filesystem type for backing file (%s)", err.to_string());
+    log_error(gc, init)("Failed to determine filesystem type for backing file (%s)",
+                        err.to_string());
     return;
   }
+
   _filesystem = statfs_buf.f_type;
+  _available = statfs_buf.f_bavail * statfs_buf.f_bsize;
 
   // Make sure we're on a supported filesystem
   if (!is_tmpfs() && !is_hugetlbfs()) {
-    log_error(gc, init)("Backing file must be located on a %s or a %s filesystem", ZFILESYSTEM_TMPFS, ZFILESYSTEM_HUGETLBFS);
+    log_error(gc, init)("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, init)("-XX:+UseTransparentHugePages can only be enable when using a %s filesystem", ZFILESYSTEM_TMPFS);
+    log_error(gc, init)("-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, init)("-XX:+UseTransparentHugePages on a %s filesystem not supported by kernel", ZFILESYSTEM_TMPFS);
+    log_error(gc, init)("-XX:+UseTransparentHugePages on a %s filesystem not supported by kernel",
+                        ZFILESYSTEM_TMPFS);
     return;
   }
 
   if (ZLargePages::is_explicit() && !is_hugetlbfs()) {
-    log_error(gc, init)("-XX:+UseLargePages (without -XX:+UseTransparentHugePages) can only be enabled when using a %s filesystem", ZFILESYSTEM_HUGETLBFS);
+    log_error(gc, init)("-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, init)("-XX:+UseLargePages must be enabled when using a %s filesystem", ZFILESYSTEM_HUGETLBFS);
+    log_error(gc, init)("-XX:+UseLargePages must be enabled when using a %s filesystem",
+                        ZFILESYSTEM_HUGETLBFS);
     return;
   }
 
@@ -149,17 +169,21 @@
     return -1;
   }
 
-  log_debug(gc, init)("Heap backed by file /memfd:%s", filename);
+  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 mountpoint = ZLargePages::is_explicit() ? ZMOUNTPOINT_HUGETLBFS : ZMOUNTPOINT_TMPFS;
+  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, mountpoint);
+  ZBackingPath path(filesystem, preferred_mountpoints);
   if (path.get() == NULL) {
     log_error(gc, init)("Use -XX:ZPath to specify the path to a %s filesystem", filesystem);
     return -1;
@@ -181,7 +205,7 @@
       return -1;
     }
 
-    log_debug(gc, init)("Heap backed by file %s/#" UINT64_FORMAT, path.get(), (uint64_t)stat_buf.st_ino);
+    log_info(gc, init)("Heap backed by file: %s/#" UINT64_FORMAT, path.get(), (uint64_t)stat_buf.st_ino);
 
     return fd_anon;
   }
@@ -207,7 +231,7 @@
     return -1;
   }
 
-  log_debug(gc, init)("Heap backed by file %s", filename);
+  log_info(gc, init)("Heap backed by file: %s", filename);
 
   return fd;
 }
@@ -238,6 +262,10 @@
   return _fd;
 }
 
+size_t ZBackingFile::available() const {
+  return _available;
+}
+
 bool ZBackingFile::is_tmpfs() const {
   return _filesystem == TMPFS_MAGIC;
 }
@@ -292,12 +320,12 @@
   return true;
 }
 
-bool ZBackingFile::expand_tmpfs(size_t offset, size_t length) const {
+bool ZBackingFile::try_expand_tmpfs(size_t offset, size_t length) const {
   assert(is_tmpfs(), "Wrong filesystem");
   return try_expand_tmpfs(offset, length, os::vm_page_size());
 }
 
-bool ZBackingFile::expand_hugetlbfs(size_t offset, size_t length) const {
+bool ZBackingFile::try_expand_hugetlbfs(size_t offset, size_t length) const {
   assert(is_hugetlbfs(), "Wrong filesystem");
 
   // Prior to kernel 4.3, hugetlbfs did not support posix_fallocate().
@@ -320,11 +348,11 @@
   // process being returned to the huge page pool and made available for new
   // allocations.
   void* addr = MAP_FAILED;
-  const int max_attempts = 3;
+  const int max_attempts = 5;
   for (int attempt = 1; attempt <= max_attempts; attempt++) {
     addr = mmap(0, length, PROT_READ|PROT_WRITE, MAP_SHARED, _fd, offset);
-    if (addr != MAP_FAILED || is_init_completed()) {
-      // Mapping was successful or initialization phase has completed
+    if (addr != MAP_FAILED || !_hugetlbfs_mmap_retry) {
+      // Mapping was successful or mmap retry is disabled
       break;
     }
 
@@ -337,6 +365,11 @@
     sleep(1);
   }
 
+  // Disable mmap retry from now on
+  if (_hugetlbfs_mmap_retry) {
+    _hugetlbfs_mmap_retry = false;
+  }
+
   if (addr == MAP_FAILED) {
     // Not enough huge pages left
     ZErrno err;
@@ -355,6 +388,39 @@
   return true;
 }
 
-bool ZBackingFile::expand(size_t offset, size_t length) const {
-  return is_hugetlbfs() ? expand_hugetlbfs(offset, length) : expand_tmpfs(offset, length);
+bool ZBackingFile::try_expand_tmpfs_or_hugetlbfs(size_t offset, size_t length, size_t alignment) const {
+  assert(is_aligned(offset, alignment), "Invalid offset");
+  assert(is_aligned(length, alignment), "Invalid length");
+
+  log_debug(gc)("Expanding heap from " SIZE_FORMAT "M to " SIZE_FORMAT "M", offset / M, (offset + length) / M);
+
+  return is_hugetlbfs() ? try_expand_hugetlbfs(offset, length) : try_expand_tmpfs(offset, length);
 }
+
+size_t ZBackingFile::try_expand(size_t offset, size_t length, size_t alignment) const {
+  size_t start = offset;
+  size_t end = offset + length;
+
+  // Try to expand
+  if (try_expand_tmpfs_or_hugetlbfs(start, length, alignment)) {
+    // Success
+    return end;
+  }
+
+  // Failed, try to expand as much as possible
+  for (;;) {
+    length = align_down((end - start) / 2, alignment);
+    if (length < alignment) {
+      // Done, don't expand more
+      return start;
+    }
+
+    if (try_expand_tmpfs_or_hugetlbfs(start, length, alignment)) {
+      // Success, try expand more
+      start += length;
+    } else {
+      // Failed, try expand less
+      end -= length;
+    }
+  }
+}
--- a/src/hotspot/os_cpu/linux_x86/gc/z/zBackingFile_linux_x86.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/os_cpu/linux_x86/gc/z/zBackingFile_linux_x86.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -28,8 +28,11 @@
 
 class ZBackingFile {
 private:
+  static bool _hugetlbfs_mmap_retry;
+
   int      _fd;
   uint64_t _filesystem;
+  size_t   _available;
   bool     _initialized;
 
   int create_mem_fd(const char* name) const;
@@ -42,9 +45,9 @@
 
   bool try_split_and_expand_tmpfs(size_t offset, size_t length, size_t alignment) const;
   bool try_expand_tmpfs(size_t offset, size_t length, size_t alignment) const;
-  bool expand_tmpfs(size_t offset, size_t length) const;
-
-  bool expand_hugetlbfs(size_t offset, size_t length) const;
+  bool try_expand_tmpfs(size_t offset, size_t length) const;
+  bool try_expand_hugetlbfs(size_t offset, size_t length) const;
+  bool try_expand_tmpfs_or_hugetlbfs(size_t offset, size_t length, size_t alignment) const;
 
 public:
   ZBackingFile();
@@ -52,7 +55,9 @@
   bool is_initialized() const;
 
   int fd() const;
-  bool expand(size_t offset, size_t length) const;
+  size_t available() const;
+
+  size_t try_expand(size_t offset, size_t length, size_t alignment) const;
 };
 
 #endif // OS_CPU_LINUX_X86_ZBACKINGFILE_LINUX_X86_HPP
--- a/src/hotspot/os_cpu/linux_x86/gc/z/zBackingPath_linux_x86.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/os_cpu/linux_x86/gc/z/zBackingPath_linux_x86.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -33,13 +33,13 @@
 // Mount information, see proc(5) for more details.
 #define PROC_SELF_MOUNTINFO        "/proc/self/mountinfo"
 
-ZBackingPath::ZBackingPath(const char* filesystem, const char* preferred_path) {
+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_path);
+    _path = find_mountpoint(filesystem, preferred_mountpoints);
   }
 }
 
@@ -52,8 +52,8 @@
   char* line_mountpoint = NULL;
   char* line_filesystem = NULL;
 
-  // Parse line and return a newly allocated string containing the mountpoint if
-  // the line contains a matching filesystem and the mountpoint is accessible by
+  // 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 ||
@@ -68,7 +68,7 @@
   return line_mountpoint;
 }
 
-void ZBackingPath::get_mountpoints(ZArray<char*>* mountpoints, const char* filesystem) const {
+void ZBackingPath::get_mountpoints(const char* filesystem, ZArray<char*>* mountpoints) const {
   FILE* fd = fopen(PROC_SELF_MOUNTINFO, "r");
   if (fd == NULL) {
     ZErrno err;
@@ -98,37 +98,45 @@
   mountpoints->clear();
 }
 
-char* ZBackingPath::find_mountpoint(const char* filesystem, const char* preferred_mountpoint) const {
+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, init)("More than one %s filesystem found:", filesystem);
+  ZArrayIterator<char*> iter2(mountpoints);
+  for (char* mountpoint; iter2.next(&mountpoint);) {
+    log_error(gc, init)("  %s", mountpoint);
+  }
+
+  return NULL;
+}
+
+char* ZBackingPath::find_mountpoint(const char* filesystem, const char** preferred_mountpoints) const {
   char* path = NULL;
   ZArray<char*> mountpoints;
 
-  get_mountpoints(&mountpoints, filesystem);
+  get_mountpoints(filesystem, &mountpoints);
 
   if (mountpoints.size() == 0) {
-    // No filesystem found
+    // No mount point found
     log_error(gc, init)("Failed to find an accessible %s filesystem", filesystem);
   } else if (mountpoints.size() == 1) {
-    // One filesystem found
+    // One mount point found
     path = strdup(mountpoints.at(0));
-  } else if (mountpoints.size() > 1) {
-    // More than one filesystem found
-    ZArrayIterator<char*> iter(&mountpoints);
-    for (char* mountpoint; iter.next(&mountpoint);) {
-      if (!strcmp(mountpoint, preferred_mountpoint)) {
-        // Preferred mount point found
-        path = strdup(mountpoint);
-        break;
-      }
-    }
-
-    if (path == NULL) {
-      // Preferred mount point not found
-      log_error(gc, init)("More than one %s filesystem found:", filesystem);
-      ZArrayIterator<char*> iter2(&mountpoints);
-      for (char* mountpoint; iter2.next(&mountpoint);) {
-        log_error(gc, init)("  %s", mountpoint);
-      }
-    }
+  } else {
+    // More than one mount point found
+    path = find_preferred_mountpoint(filesystem, &mountpoints, preferred_mountpoints);
   }
 
   free_mountpoints(&mountpoints);
--- a/src/hotspot/os_cpu/linux_x86/gc/z/zBackingPath_linux_x86.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/os_cpu/linux_x86/gc/z/zBackingPath_linux_x86.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -31,13 +31,19 @@
 private:
   char* _path;
 
-  char* get_mountpoint(const char* line, const char* filesystem) const;
-  void get_mountpoints(ZArray<char*>* mountpoints, const char* filesystem) const;
+  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_mountpoint(const char* filesystem, const char* preferred_mountpoint) 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_path);
+  ZBackingPath(const char* filesystem, const char** preferred_mountpoints);
   ~ZBackingPath();
 
   const char* get() const;
--- a/src/hotspot/os_cpu/linux_x86/gc/z/zPhysicalMemoryBacking_linux_x86.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/os_cpu/linux_x86/gc/z/zPhysicalMemoryBacking_linux_x86.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -52,8 +52,15 @@
     _file(),
     _granule_size(granule_size) {
 
-  // Check and warn if max map count seems too low
+  if (!_file.is_initialized()) {
+    return;
+  }
+
+  // Check and warn if max map count is too low
   check_max_map_count(max_capacity, granule_size);
+
+  // Check and warn if available space on filesystem is too low
+  check_available_space_on_filesystem(max_capacity);
 }
 
 void ZPhysicalMemoryBacking::check_max_map_count(size_t max_capacity, size_t granule_size) const {
@@ -61,7 +68,7 @@
   FILE* const file = fopen(filename, "r");
   if (file == NULL) {
     // Failed to open file, skip check
-    log_debug(gc)("Failed to open %s", filename);
+    log_debug(gc, init)("Failed to open %s", filename);
     return;
   }
 
@@ -70,7 +77,7 @@
   fclose(file);
   if (result != 1) {
     // Failed to read file, skip check
-    log_debug(gc)("Failed to read %s", filename);
+    log_debug(gc, init)("Failed to read %s", filename);
     return;
   }
 
@@ -81,15 +88,43 @@
   // We speculate that we need another 20% to allow for non-ZGC subsystems to map memory.
   const size_t required_max_map_count = (max_capacity / granule_size) * 3 * 1.2;
   if (actual_max_map_count < required_max_map_count) {
-    log_warning(gc)("The system limit on number of memory mappings "
-                    "per process might be too low for the given");
-    log_warning(gc)("Java heap size (" SIZE_FORMAT "M). Please "
-                    "adjust %s to allow for at least", max_capacity / M, filename);
-    log_warning(gc)(SIZE_FORMAT " mappings (current limit is " SIZE_FORMAT "). "
-                    "Continuing execution with the current limit could",
-                    required_max_map_count, actual_max_map_count);
-    log_warning(gc)("lead to a fatal error down the line, due to failed "
-                    "attempts to map memory.");
+    log_warning(gc, init)("***** WARNING! INCORRECT SYSTEM CONFIGURATION DETECTED! *****");
+    log_warning(gc, init)("The system limit on number of memory mappings per process might be too low "
+                          "for the given");
+    log_warning(gc, init)("max Java heap size (" SIZE_FORMAT "M). Please adjust %s to allow for at",
+                          max_capacity / M, filename);
+    log_warning(gc, init)("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, init)("limit could lead to a fatal error, due to failure to map memory.");
+  }
+}
+
+void ZPhysicalMemoryBacking::check_available_space_on_filesystem(size_t max_capacity) 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_capacity) {
+    log_warning(gc, init)("***** WARNING! INCORRECT SYSTEM CONFIGURATION DETECTED! *****");
+    log_warning(gc, init)("Not enough space available on the backing filesystem to hold the current "
+                          "max Java heap");
+    log_warning(gc, init)("size (" SIZE_FORMAT "M). Please adjust the size of the backing filesystem "
+                          "accordingly (available", max_capacity / M);
+    log_warning(gc, init)("space is currently " SIZE_FORMAT "M). Continuing execution with the current "
+                          "filesystem size could", available / M);
+    log_warning(gc, init)("lead to a premature OutOfMemoryError being thrown, due to failure to map "
+                          "memory.");
   }
 }
 
@@ -97,18 +132,16 @@
   return _file.is_initialized();
 }
 
-bool ZPhysicalMemoryBacking::expand(size_t from, size_t to) {
-  const size_t size = to - from;
+size_t ZPhysicalMemoryBacking::try_expand(size_t old_capacity, size_t new_capacity) {
+  assert(old_capacity < new_capacity, "Invalid old/new capacity");
 
-  // Expand
-  if (!_file.expand(from, size)) {
-    return false;
+  const size_t capacity = _file.try_expand(old_capacity, new_capacity - old_capacity, _granule_size);
+  if (capacity > old_capacity) {
+    // Add expanded capacity to free list
+    _manager.free(old_capacity, capacity - old_capacity);
   }
 
-  // Add expanded space to free list
-  _manager.free(from, size);
-
-  return true;
+  return capacity;
 }
 
 ZPhysicalMemory ZPhysicalMemoryBacking::alloc(size_t size) {
--- a/src/hotspot/os_cpu/linux_x86/gc/z/zPhysicalMemoryBacking_linux_x86.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/os_cpu/linux_x86/gc/z/zPhysicalMemoryBacking_linux_x86.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -37,6 +37,7 @@
   const size_t   _granule_size;
 
   void check_max_map_count(size_t max_capacity, size_t granule_size) const;
+  void check_available_space_on_filesystem(size_t max_capacity) const;
   void map_failed(ZErrno err) const;
 
   void advise_view(uintptr_t addr, size_t size) const;
@@ -49,7 +50,8 @@
 
   bool is_initialized() const;
 
-  bool expand(size_t from, size_t to);
+  size_t try_expand(size_t old_capacity, size_t new_capacity);
+
   ZPhysicalMemory alloc(size_t size);
   void free(ZPhysicalMemory pmem);
 
--- a/src/hotspot/os_cpu/linux_x86/os_linux_x86.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/os_cpu/linux_x86/os_linux_x86.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -95,11 +95,11 @@
 
 address os::current_stack_pointer() {
 #ifdef SPARC_WORKS
-  register void *esp;
+  void *esp;
   __asm__("mov %%" SPELL_REG_SP ", %0":"=r"(esp));
   return (address) ((char*)esp + sizeof(long)*2);
 #elif defined(__clang__)
-  intptr_t* esp;
+  void* esp;
   __asm__ __volatile__ ("mov %%" SPELL_REG_SP ", %0":"=r"(esp):);
   return (address) esp;
 #else
@@ -233,7 +233,7 @@
 
 intptr_t* _get_previous_fp() {
 #ifdef SPARC_WORKS
-  register intptr_t **ebp;
+  intptr_t **ebp;
   __asm__("mov %%" SPELL_REG_FP ", %0":"=r"(ebp));
 #elif defined(__clang__)
   intptr_t **ebp;
--- a/src/hotspot/share/adlc/adlparse.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/adlc/adlparse.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -4564,7 +4564,7 @@
 // string(still inside the file buffer).  Returns a pointer to the string or
 // NULL if some other token is found instead.
 char *ADLParser::get_ident_common(bool do_preproc) {
-  register char c;
+  char c;
   char *start;                    // Pointer to start of token
   char *end;                      // Pointer to end of token
 
@@ -4762,7 +4762,7 @@
 // invokes a parse_err if the next token is not an integer.
 // This routine does not leave the integer null-terminated.
 int ADLParser::get_int(void) {
-  register char c;
+  char          c;
   char         *start;            // Pointer to start of token
   char         *end;              // Pointer to end of token
   int           result;           // Storage for integer result
--- a/src/hotspot/share/adlc/archDesc.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/adlc/archDesc.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 //
-// Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+// Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
 // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 //
 // This code is free software; you can redistribute it and/or modify it
@@ -543,14 +543,18 @@
   }
 
   // Identify index position among ideal operands
-  intptr_t    index     = _last_opcode;
-  const char *indexStr  = node ? node->_opType : (char *) " ";
-  index            = (intptr_t)_idealIndex[indexStr];
+  intptr_t index = _last_opcode;
+  const char *indexStr = node ? node->_opType : (char *) " ";
+  index = (intptr_t)_idealIndex[indexStr];
   if (index == 0) {
     fprintf(stderr, "error: operand \"%s\" not found\n", indexStr);
     assert(0, "fatal error");
   }
 
+  if (node == NULL) {
+    fprintf(stderr, "error: node is NULL\n");
+    assert(0, "fatal error");
+  }
   // Build MatchLists for children
   // Check each child for an internal operand name, and use that name
   // for the parent's matchlist entry if it exists
--- a/src/hotspot/share/adlc/arena.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/adlc/arena.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -43,7 +43,7 @@
   while( k ) {
     Chunk *tmp = k->_next;
     // clear out this chunk (to detect allocation bugs)
-    memset(k, 0xBAADBABE, k->_len);
+    memset(k, 0xBE, k->_len);
     free(k);                    // Free chunk (was malloc'd)
     k = tmp;
   }
@@ -79,7 +79,7 @@
 // Total of all Chunks in arena
 size_t Arena::used() const {
   size_t sum = _chunk->_len - (_max-_hwm); // Size leftover in this Chunk
-  register Chunk *k = _first;
+  Chunk *k = _first;
   while( k != _chunk) {         // Whilst have Chunks in a row
     sum += k->_len;             // Total size of this Chunk
     k = k->_next;               // Bump along to next Chunk
@@ -93,7 +93,7 @@
   // Get minimal required size.  Either real big, or even bigger for giant objs
   size_t len = max(x, Chunk::size);
 
-  register Chunk *k = _chunk;   // Get filled-up chunk address
+  Chunk *k = _chunk;            // Get filled-up chunk address
   _chunk = new (len) Chunk(len);
 
   if( k ) k->_next = _chunk;    // Append new chunk to end of linked list
--- a/src/hotspot/share/adlc/dfa.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/adlc/dfa.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -502,9 +502,11 @@
     case '"':  // such as: #line 10 "myfile.ad"\n mypredicate
       return true;
     case '|':
-      if( prev != pred && *(prev-1) == '|' ) return true;
+      if (prev != pred && *(prev-1) == '|') return true;
+      break;
     case '&':
-      if( prev != pred && *(prev-1) == '&' ) return true;
+      if (prev != pred && *(prev-1) == '&') return true;
+      break;
     default:
       return false;
     }
@@ -717,21 +719,21 @@
 
   // Preserve use of external name which has a zero value
   if( c1->_external_name != NULL ) {
-    sprintf( string_buffer, "%s", c1->as_string());
+    sprintf(string_buffer, "%s", c1->as_string());
     if( !c2->is_zero() ) {
-      strcat( string_buffer, "+");
-      strcat( string_buffer, c2->as_string());
+      strncat(string_buffer, "+", STRING_BUFFER_LENGTH);
+      strncat(string_buffer, c2->as_string(), STRING_BUFFER_LENGTH);
     }
     result = strdup(string_buffer);
   }
   else if( c2->_external_name != NULL ) {
     if( !c1->is_zero() ) {
-      sprintf( string_buffer, "%s", c1->as_string());
-      strcat( string_buffer, " + ");
+      sprintf(string_buffer, "%s", c1->as_string());
+      strncat(string_buffer, " + ", STRING_BUFFER_LENGTH);
     } else {
       string_buffer[0] = '\0';
     }
-    strcat( string_buffer, c2->_external_name );
+    strncat(string_buffer, c2->_external_name, STRING_BUFFER_LENGTH);
     result = strdup(string_buffer);
   }
   return result;
@@ -741,8 +743,8 @@
   if( !c1->is_zero() ) {
     sprintf( string_buffer, "%s", c1->_expr);
     if( !c2->is_zero() ) {
-      strcat( string_buffer, "+");
-      strcat( string_buffer, c2->_expr);
+      strncat(string_buffer, "+", STRING_BUFFER_LENGTH);
+      strncat(string_buffer, c2->_expr, STRING_BUFFER_LENGTH);
     }
   }
   else if( !c2->is_zero() ) {
--- a/src/hotspot/share/adlc/dict2.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/adlc/dict2.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -283,9 +283,9 @@
 // limited to MAXID characters in length.  Experimental evidence on 150K of
 // C text shows excellent spreading of values for any size hash table.
 int hashstr(const void *t) {
-  register char c, k = 0;
-  register int sum = 0;
-  register const char *s = (const char *)t;
+  char c, k = 0;
+  int sum = 0;
+  const char *s = (const char *)t;
 
   while (((c = s[k]) != '\0') && (k < MAXID-1)) { // Get characters till nul
     c = (char) ((c << 1) + 1);    // Characters are always odd!
--- a/src/hotspot/share/adlc/filebuff.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/adlc/filebuff.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -95,8 +95,11 @@
   va_start(args, fmt);
   switch (flag) {
   case 0: _AD._warnings += _AD.emit_msg(0, flag, linenum, fmt, args);
+    break;
   case 1: _AD._syntax_errs += _AD.emit_msg(0, flag, linenum, fmt, args);
+    break;
   case 2: _AD._semantic_errs += _AD.emit_msg(0, flag, linenum, fmt, args);
+    break;
   default: assert(0, ""); break;
   }
   va_end(args);
--- a/src/hotspot/share/adlc/formssel.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/adlc/formssel.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -3634,7 +3634,7 @@
         && (is_load_from_memory(mRule2->_opType) == data_type) // reg vs. (load memory)
         && (name_left != NULL)       // NOT (load)
         && (name_right == NULL) ) {  // NOT (load memory foo)
-      const Form *form2_left = name_left ? globals[name_left] : NULL;
+      const Form *form2_left = globals[name_left];
       if( form2_left && form2_left->is_cisc_mem(globals) ) {
         cisc_spillable = Is_cisc_spillable;
         operand        = _name;
@@ -3645,7 +3645,7 @@
       }
     }
     // Detect reg vs memory
-    else if( form->is_cisc_reg(globals) && form2->is_cisc_mem(globals) ) {
+    else if (form->is_cisc_reg(globals) && form2 != NULL && form2->is_cisc_mem(globals)) {
       cisc_spillable = Is_cisc_spillable;
       operand        = _name;
       reg_type       = _result;
@@ -3710,8 +3710,12 @@
   }
 
   // Check right operands: recursive walk to identify reg->mem operand
-  if( (_rChild == NULL) && (mRule2->_rChild == NULL) ) {
-    right_spillable =  Maybe_cisc_spillable;
+  if (_rChild == NULL) {
+    if (mRule2->_rChild == NULL) {
+      right_spillable =  Maybe_cisc_spillable;
+    } else {
+      assert(0, "_rChild should not be NULL");
+    }
   } else {
     right_spillable = _rChild->cisc_spill_match(globals, registers, mRule2->_rChild, operand, reg_type);
   }
--- a/src/hotspot/share/adlc/main.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/adlc/main.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -58,7 +58,7 @@
 
   // Read command line arguments and file names
   for( int i = 1; i < argc; i++ ) { // For all arguments
-    register char *s = argv[i]; // Get option/filename
+    char *s = argv[i];          // Get option/filename
 
     if( *s++ == '-' ) {         // It's a flag? (not a filename)
       if( !*s ) {               // Stand-alone `-' means stdin
@@ -142,7 +142,7 @@
       const char *base = strip_ext(strdup(argv[i]));
       char       *temp = base_plus_suffix("dfa_",base);
       AD._DFA_file._name = base_plus_suffix(temp,".cpp");
-      delete temp;
+      delete[] temp;
       temp = base_plus_suffix("ad_",base);
       AD._CPP_file._name          = base_plus_suffix(temp,".cpp");
       AD._CPP_CLONE_file._name    = base_plus_suffix(temp,"_clone.cpp");
@@ -153,13 +153,13 @@
       AD._CPP_PEEPHOLE_file._name = base_plus_suffix(temp,"_peephole.cpp");
       AD._CPP_PIPELINE_file._name = base_plus_suffix(temp,"_pipeline.cpp");
       AD._HPP_file._name = base_plus_suffix(temp,".hpp");
-      delete temp;
+      delete[] temp;
       temp = base_plus_suffix("adGlobals_",base);
       AD._VM_file._name = base_plus_suffix(temp,".hpp");
-      delete temp;
+      delete[] temp;
       temp = base_plus_suffix("bugs_",base);
       AD._bug_file._name = base_plus_suffix(temp,".out");
-      delete temp;
+      delete[] temp;
     }                           // End of files vs options...
   }                             // End of while have command line arguments
 
--- a/src/hotspot/share/adlc/output_c.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/adlc/output_c.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -1936,6 +1936,7 @@
           _AD.syntax_err( _ins_encode._linenum,
                           "Parameter %s not passed to enc_class %s from instruct %s.\n",
                           rep_var, _encoding._name, _inst._ident);
+          assert(false, "inst_rep_var == NULL, cannot continue.");
         }
 
         // Check if instruction's actual parameter is a local name in the instruction
@@ -1976,8 +1977,8 @@
         }
         else {
           // Check for unimplemented functionality before hard failure
-          assert( strcmp(opc->_ident,"label")==0, "Unimplemented() Label");
-          assert( false, "ShouldNotReachHere()");
+          assert(opc != NULL && strcmp(opc->_ident, "label") == 0, "Unimplemented Label");
+          assert(false, "ShouldNotReachHere()");
         }
       } // done checking which operand this is.
     } else {
@@ -2450,8 +2451,8 @@
       }
       else {
         // Check for unimplemented functionality before hard failure
-        assert( strcmp(opc->_ident,"label")==0, "Unimplemented() Label");
-        assert( false, "ShouldNotReachHere()");
+        assert(opc != NULL && strcmp(opc->_ident, "label") == 0, "Unimplemented Label");
+        assert(false, "ShouldNotReachHere()");
       }
       // all done
     }
@@ -3305,9 +3306,11 @@
   // Output the definitions for machine node specific pipeline data
   _machnodes.reset();
 
-  for ( ; (machnode = (MachNodeForm*)_machnodes.iter()) != NULL; ) {
-    fprintf(_CPP_PIPELINE_file._fp, "const Pipeline * %sNode::pipeline() const { return (&pipeline_class_%03d); }\n",
-      machnode->_ident, ((class PipeClassForm *)_pipeline->_classdict[machnode->_machnode_pipe])->_num);
+  if (_pipeline != NULL) {
+    for ( ; (machnode = (MachNodeForm*)_machnodes.iter()) != NULL; ) {
+      fprintf(_CPP_PIPELINE_file._fp, "const Pipeline * %sNode::pipeline() const { return (&pipeline_class_%03d); }\n",
+              machnode->_ident, ((class PipeClassForm *)_pipeline->_classdict[machnode->_machnode_pipe])->_num);
+    }
   }
 
   fprintf(_CPP_PIPELINE_file._fp, "\n");
@@ -3315,13 +3318,15 @@
   // Output the definitions for instruction pipeline static data references
   _instructions.reset();
 
-  for ( ; (instr = (InstructForm*)_instructions.iter()) != NULL; ) {
-    if (instr->_ins_pipe && _pipeline->_classlist.search(instr->_ins_pipe)) {
-      fprintf(_CPP_PIPELINE_file._fp, "\n");
-      fprintf(_CPP_PIPELINE_file._fp, "const Pipeline * %*sNode::pipeline_class() { return (&pipeline_class_%03d); }\n",
-        max_ident_len, instr->_ident, ((class PipeClassForm *)_pipeline->_classdict[instr->_ins_pipe])->_num);
-      fprintf(_CPP_PIPELINE_file._fp, "const Pipeline * %*sNode::pipeline() const { return (&pipeline_class_%03d); }\n",
-        max_ident_len, instr->_ident, ((class PipeClassForm *)_pipeline->_classdict[instr->_ins_pipe])->_num);
+  if (_pipeline != NULL) {
+    for ( ; (instr = (InstructForm*)_instructions.iter()) != NULL; ) {
+      if (instr->_ins_pipe && _pipeline->_classlist.search(instr->_ins_pipe)) {
+        fprintf(_CPP_PIPELINE_file._fp, "\n");
+        fprintf(_CPP_PIPELINE_file._fp, "const Pipeline * %*sNode::pipeline_class() { return (&pipeline_class_%03d); }\n",
+                max_ident_len, instr->_ident, ((class PipeClassForm *)_pipeline->_classdict[instr->_ins_pipe])->_num);
+        fprintf(_CPP_PIPELINE_file._fp, "const Pipeline * %*sNode::pipeline() const { return (&pipeline_class_%03d); }\n",
+                max_ident_len, instr->_ident, ((class PipeClassForm *)_pipeline->_classdict[instr->_ins_pipe])->_num);
+      }
     }
   }
 }
--- a/src/hotspot/share/aot/aotCodeHeap.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/aot/aotCodeHeap.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -549,7 +549,7 @@
     _lib_symbols_initialized = true;
 
     CollectedHeap* heap = Universe::heap();
-    SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_card_table_address", address, ci_card_table_address());
+    SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_card_table_address", address, (BarrierSet::barrier_set()->is_a(BarrierSet::CardTableBarrierSet) ? ci_card_table_address() : NULL));
     SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_heap_top_address", address, (heap->supports_inline_contig_alloc() ? heap->top_addr() : NULL));
     SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_heap_end_address", address, (heap->supports_inline_contig_alloc() ? heap->end_addr() : NULL));
     SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_polling_page", address, os::get_polling_page());
--- a/src/hotspot/share/aot/aotCompiledMethod.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/aot/aotCompiledMethod.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -272,6 +272,7 @@
           if (md != _method) f(md);
         }
       } else if (iter.type() == relocInfo::virtual_call_type) {
+        ResourceMark rm;
         // Check compiledIC holders associated with this nmethod
         CompiledIC *ic = CompiledIC_at(&iter);
         if (ic->is_icholder_call()) {
@@ -444,6 +445,7 @@
     return;
   }
 
+  ResourceMark rm;
   RelocIterator iter(this);
   while (iter.next()) {
     iter.reloc()->clear_inline_cache();
--- a/src/hotspot/share/asm/codeBuffer.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/asm/codeBuffer.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -187,7 +187,7 @@
   cs->_limit = new_limit;
   cs->_locs_limit = new_locs_limit;
   cs->_frozen = true;
-  if (!next_cs->is_allocated() && !next_cs->is_frozen()) {
+  if (next_cs != NULL && !next_cs->is_allocated() && !next_cs->is_frozen()) {
     // Give remaining buffer space to the following section.
     next_cs->initialize(new_limit, old_limit - new_limit);
     next_cs->initialize_shared_locs(new_locs_limit,
@@ -494,10 +494,13 @@
       // Compute initial padding; assign it to the previous non-empty guy.
       // Cf. figure_expanded_capacities.
       csize_t padding = cs->align_at_start(buf_offset) - buf_offset;
-      if (padding != 0) {
-        buf_offset += padding;
-        assert(prev_dest_cs != NULL, "sanity");
-        prev_dest_cs->_limit += padding;
+      if (prev_dest_cs != NULL) {
+        if (padding != 0) {
+          buf_offset += padding;
+          prev_dest_cs->_limit += padding;
+        }
+      } else {
+        guarantee(padding == 0, "In first iteration no padding should be needed.");
       }
       #ifdef ASSERT
       if (prev_cs != NULL && prev_cs->is_frozen() && n < (SECT_LIMIT - 1)) {
--- a/src/hotspot/share/c1/c1_IR.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/c1/c1_IR.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -1386,7 +1386,7 @@
     n->values_do(this);
     // need to remove this instruction from the instruction stream
     if (n->subst() != n) {
-      assert(last != NULL, "must have last");
+      guarantee(last != NULL, "must have last");
       last->set_next(n->next());
     } else {
       last = n;
--- a/src/hotspot/share/c1/c1_LIRGenerator.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/c1/c1_LIRGenerator.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -2311,7 +2311,9 @@
   if (compilation()->env()->comp_level() == CompLevel_full_profile && UseSwitchProfiling) {
     ciMethod* method = x->state()->scope()->method();
     ciMethodData* md = method->method_data_or_null();
+    assert(md != NULL, "Sanity");
     ciProfileData* data = md->bci_to_data(x->state()->bci());
+    assert(data != NULL, "must have profiling data");
     assert(data->is_MultiBranchData(), "bad profile data?");
     int default_count_offset = md->byte_offset_of_slot(data, MultiBranchData::default_count_offset());
     LIR_Opr md_reg = new_register(T_METADATA);
@@ -2367,7 +2369,9 @@
   if (compilation()->env()->comp_level() == CompLevel_full_profile && UseSwitchProfiling) {
     ciMethod* method = x->state()->scope()->method();
     ciMethodData* md = method->method_data_or_null();
+    assert(md != NULL, "Sanity");
     ciProfileData* data = md->bci_to_data(x->state()->bci());
+    assert(data != NULL, "must have profiling data");
     assert(data->is_MultiBranchData(), "bad profile data?");
     int default_count_offset = md->byte_offset_of_slot(data, MultiBranchData::default_count_offset());
     LIR_Opr md_reg = new_register(T_METADATA);
@@ -3076,6 +3080,7 @@
   if (compilation()->profile_arguments()) {
     int bci = x->bci_of_invoke();
     ciMethodData* md = x->method()->method_data_or_null();
+    assert(md != NULL, "Sanity");
     ciProfileData* data = md->bci_to_data(bci);
     if (data != NULL) {
       if ((data->is_CallTypeData() && data->as_CallTypeData()->has_arguments()) ||
@@ -3212,6 +3217,7 @@
 void LIRGenerator::do_ProfileReturnType(ProfileReturnType* x) {
   int bci = x->bci_of_invoke();
   ciMethodData* md = x->method()->method_data_or_null();
+  assert(md != NULL, "Sanity");
   ciProfileData* data = md->bci_to_data(bci);
   if (data != NULL) {
     assert(data->is_CallTypeData() || data->is_VirtualCallTypeData(), "wrong profile data type");
--- a/src/hotspot/share/c1/c1_LinearScan.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/c1/c1_LinearScan.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -3954,7 +3954,7 @@
     if (!processed_interval) {
       // no move could be processed because there is a cycle in the move list
       // (e.g. r1 -> r2, r2 -> r1), so one interval must be spilled to memory
-      assert(spill_candidate != -1, "no interval in register for spilling found");
+      guarantee(spill_candidate != -1, "no interval in register for spilling found");
 
       // create a new spill interval and assign a stack slot to it
       Interval* from_interval = _mapping_from.at(spill_candidate);
@@ -6301,7 +6301,8 @@
                   assert(prev_branch->cond() == prev_cmp->condition(), "should be the same");
                 }
               }
-              assert(prev_cmp != NULL, "should have found comp instruction for branch");
+              // Guarantee because it is dereferenced below.
+              guarantee(prev_cmp != NULL, "should have found comp instruction for branch");
               if (prev_branch->block() == code->at(i + 1) && prev_branch->info() == NULL) {
 
                 TRACE_LINEAR_SCAN(3, tty->print_cr("Negating conditional branch and deleting unconditional branch at end of block B%d", block->block_id()));
--- a/src/hotspot/share/ci/ciEnv.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/ci/ciEnv.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -938,9 +938,9 @@
       _inc_decompile_count_on_failure = false;
       record_failure("call site target change");
     } else if (Dependencies::is_klass_type(result)) {
-      record_failure("invalid non-klass dependency");
+      record_failure("concurrent class loading");
     } else {
-      record_failure("concurrent class loading");
+      record_failure("invalid non-klass dependency");
     }
   }
 }
--- a/src/hotspot/share/ci/ciStreams.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/ci/ciStreams.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -255,8 +255,7 @@
 // constant.
 constantTag ciBytecodeStream::get_constant_pool_tag(int index) const {
   VM_ENTRY_MARK;
-  BasicType bt = _method->get_Method()->constants()->basic_type_for_constant_at(index);
-  return constantTag::ofBasicType(bt);
+  return _method->get_Method()->constants()->constant_tag_at(index);
 }
 
 // ------------------------------------------------------------------
--- a/src/hotspot/share/classfile/classListParser.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/classfile/classListParser.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -48,14 +48,13 @@
   _instance = this;
   _classlist_file = file;
   _file = fopen(file, "r");
-  _line_no = 0;
-  _interfaces = new (ResourceObj::C_HEAP, mtClass) GrowableArray<int>(10, true);
-
   if (_file == NULL) {
     char errmsg[JVM_MAXPATHLEN];
     os::lasterror(errmsg, JVM_MAXPATHLEN);
     vm_exit_during_initialization("Loading classlist failed", errmsg);
   }
+  _line_no = 0;
+  _interfaces = new (ResourceObj::C_HEAP, mtClass) GrowableArray<int>(10, true);
 }
 
 ClassListParser::~ClassListParser() {
--- a/src/hotspot/share/classfile/classLoader.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/classfile/classLoader.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -298,8 +298,6 @@
   char *copy = NEW_C_HEAP_ARRAY(char, strlen(zip_name)+1, mtClass);
   strcpy(copy, zip_name);
   _zip_name = copy;
-  _is_boot_append = is_boot_append;
-  _multi_versioned = _unknown;
 }
 
 ClassPathZipEntry::~ClassPathZipEntry() {
@@ -338,95 +336,11 @@
   return buffer;
 }
 
-#if INCLUDE_CDS
-u1* ClassPathZipEntry::open_versioned_entry(const char* name, jint* filesize, TRAPS) {
-  u1* buffer = NULL;
-  if (DumpSharedSpaces && !_is_boot_append) {
-    // We presume default is multi-release enabled
-    const char* multi_ver = Arguments::get_property("jdk.util.jar.enableMultiRelease");
-    const char* verstr = Arguments::get_property("jdk.util.jar.version");
-    bool is_multi_ver = (multi_ver == NULL ||
-                         strcmp(multi_ver, "true") == 0 ||
-                         strcmp(multi_ver, "force")  == 0) &&
-                         is_multiple_versioned(THREAD);
-    // command line version setting
-    int version = 0;
-    const int base_version = 8; // JDK8
-    int cur_ver = JDK_Version::current().major_version();
-    if (verstr != NULL) {
-      version = atoi(verstr);
-      if (version < base_version || version > cur_ver) {
-        // If the specified version is lower than the base version, the base
-        // entry will be used; if the version is higher than the current
-        // jdk version, the highest versioned entry will be used.
-        if (version < base_version) {
-          is_multi_ver = false;
-        }
-        // print out warning, do not use assertion here since it will continue to look
-        // for proper version.
-        warning("JDK%d is not supported in multiple version jars", version);
-      }
-    }
-
-    if (is_multi_ver) {
-      int n;
-      const char* version_entry = "META-INF/versions/";
-      // 10 is the max length of a decimal 32-bit non-negative number
-      // 2 includes the '/' and trailing zero
-      size_t entry_name_len = strlen(version_entry) + 10 + strlen(name) + 2;
-      char* entry_name = NEW_RESOURCE_ARRAY_IN_THREAD(THREAD, char, entry_name_len);
-      if (version > 0) {
-        n = jio_snprintf(entry_name, entry_name_len, "%s%d/%s", version_entry, version, name);
-        entry_name[n] = '\0';
-        buffer = open_entry((const char*)entry_name, filesize, false, CHECK_NULL);
-        if (buffer == NULL) {
-          warning("Could not find %s in %s, try to find highest version instead", entry_name, _zip_name);
-        }
-      }
-      if (buffer == NULL) {
-        for (int i = cur_ver; i >= base_version; i--) {
-          n = jio_snprintf(entry_name, entry_name_len, "%s%d/%s", version_entry, i, name);
-          entry_name[n] = '\0';
-          buffer = open_entry((const char*)entry_name, filesize, false, CHECK_NULL);
-          if (buffer != NULL) {
-            break;
-          }
-        }
-      }
-      FREE_RESOURCE_ARRAY(char, entry_name, entry_name_len);
-    }
-  }
-  return buffer;
-}
-
-bool ClassPathZipEntry::is_multiple_versioned(TRAPS) {
-  assert(DumpSharedSpaces, "called only at dump time");
-  if (_multi_versioned != _unknown) {
-    return (_multi_versioned == _yes) ? true : false;
-  }
-  jint size;
-  char* buffer = (char*)open_entry("META-INF/MANIFEST.MF", &size, true, CHECK_false);
-  if (buffer != NULL) {
-    char* p = buffer;
-    for ( ; *p; ++p) *p = tolower(*p);
-    if (strstr(buffer, "multi-release: true") != NULL) {
-      _multi_versioned = _yes;
-      return true;
-    }
-  }
-  _multi_versioned = _no;
-  return false;
-}
-#endif // INCLUDE_CDS
-
 ClassFileStream* ClassPathZipEntry::open_stream(const char* name, TRAPS) {
   jint filesize;
-  u1* buffer = open_versioned_entry(name, &filesize, CHECK_NULL);
+  u1* buffer = open_entry(name, &filesize, false, CHECK_NULL);
   if (buffer == NULL) {
-    buffer = open_entry(name, &filesize, false, CHECK_NULL);
-    if (buffer == NULL) {
-      return NULL;
-    }
+    return NULL;
   }
   if (UsePerfData) {
     ClassLoader::perf_sys_classfile_bytes_read()->inc(filesize);
@@ -635,6 +549,7 @@
 
 void ClassLoader::setup_bootstrap_search_path() {
   const char* sys_class_path = Arguments::get_sysclasspath();
+  assert(sys_class_path != NULL, "System boot class path must not be NULL");
   if (PrintSharedArchiveAndExit) {
     // Don't print sys_class_path - this is the bootcp of this current VM process, not necessarily
     // the same as the bootcp of the shared archive.
--- a/src/hotspot/share/classfile/classLoader.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/classfile/classLoader.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -94,17 +94,9 @@
 } jzentry;
 
 class ClassPathZipEntry: public ClassPathEntry {
- enum {
-   _unknown = 0,
-   _yes     = 1,
-   _no      = 2
- };
  private:
   jzfile* _zip;              // The zip archive
   const char*   _zip_name;   // Name of zip archive
-  bool _is_boot_append;      // entry coming from -Xbootclasspath/a
-  u1 _multi_versioned;       // indicates if the jar file has multi-versioned entries.
-                             // It can have value of "_unknown", "_yes", or "_no"
  public:
   bool is_modules_image() const { return false; }
   bool is_jar_file() const { return true;  }
@@ -113,10 +105,8 @@
   ClassPathZipEntry(jzfile* zip, const char* zip_name, bool is_boot_append);
   virtual ~ClassPathZipEntry();
   u1* open_entry(const char* name, jint* filesize, bool nul_terminate, TRAPS);
-  u1* open_versioned_entry(const char* name, jint* filesize, TRAPS) NOT_CDS_RETURN_(NULL);
   ClassFileStream* open_stream(const char* name, TRAPS);
   void contents_do(void f(const char* name, void* context), void* context);
-  bool is_multiple_versioned(TRAPS) NOT_CDS_RETURN_(false);
   // Debugging
   NOT_PRODUCT(void compile_the_world(Handle loader, TRAPS);)
 };
--- a/src/hotspot/share/classfile/javaClasses.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/classfile/javaClasses.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1051,8 +1051,9 @@
       ResetMirrorField reset(archived_mirror_h);
       InstanceKlass::cast(k)->do_nonstatic_fields(&reset);
 
-      log_trace(cds, mirror)("Archived %s mirror object from " PTR_FORMAT " ==> " PTR_FORMAT,
-                             type2name((BasicType)t), p2i(Universe::_mirrors[t]), p2i(archived_m));
+      log_trace(cds, heap, mirror)(
+        "Archived %s mirror object from " PTR_FORMAT " ==> " PTR_FORMAT,
+        type2name((BasicType)t), p2i(Universe::_mirrors[t]), p2i(archived_m));
 
       Universe::_mirrors[t] = archived_m;
     }
@@ -1133,8 +1134,9 @@
   k->set_has_raw_archived_mirror();
 
   ResourceMark rm;
-  log_trace(cds, mirror)("Archived %s mirror object from " PTR_FORMAT " ==> " PTR_FORMAT,
-                         k->external_name(), p2i(mirror), p2i(archived_mirror));
+  log_trace(cds, heap, mirror)(
+    "Archived %s mirror object from " PTR_FORMAT " ==> " PTR_FORMAT,
+    k->external_name(), p2i(mirror), p2i(archived_mirror));
 
   return archived_mirror;
 }
@@ -1186,8 +1188,9 @@
   // klass. Updated the field in the archived mirror to point to the relocated
   // klass in the archive.
   Klass *reloc_k = MetaspaceShared::get_relocated_klass(as_Klass(mirror));
-  log_debug(cds, mirror)("Relocate mirror metadata field at _klass_offset from " PTR_FORMAT " ==> " PTR_FORMAT,
-                         p2i(as_Klass(mirror)), p2i(reloc_k));
+  log_debug(cds, heap, mirror)(
+    "Relocate mirror metadata field at _klass_offset from " PTR_FORMAT " ==> " PTR_FORMAT,
+    p2i(as_Klass(mirror)), p2i(reloc_k));
   archived_mirror->metadata_field_put(_klass_offset, reloc_k);
 
   // The field at _array_klass_offset is pointing to the original one dimension
@@ -1195,8 +1198,9 @@
   Klass *arr = array_klass_acquire(mirror);
   if (arr != NULL) {
     Klass *reloc_arr = MetaspaceShared::get_relocated_klass(arr);
-    log_debug(cds, mirror)("Relocate mirror metadata field at _array_klass_offset from " PTR_FORMAT " ==> " PTR_FORMAT,
-                           p2i(arr), p2i(reloc_arr));
+    log_debug(cds, heap, mirror)(
+      "Relocate mirror metadata field at _array_klass_offset from " PTR_FORMAT " ==> " PTR_FORMAT,
+      p2i(arr), p2i(reloc_arr));
     archived_mirror->metadata_field_put(_array_klass_offset, reloc_arr);
   }
   return archived_mirror;
@@ -1247,7 +1251,8 @@
   set_mirror_module_field(k, mirror, module, THREAD);
 
   ResourceMark rm;
-  log_trace(cds, mirror)("Restored %s archived mirror " PTR_FORMAT, k->external_name(), p2i(mirror()));
+  log_trace(cds, heap, mirror)(
+    "Restored %s archived mirror " PTR_FORMAT, k->external_name(), p2i(mirror()));
 
   return true;
 }
@@ -4273,6 +4278,9 @@
 int java_util_concurrent_locks_AbstractOwnableSynchronizer::_owner_offset;
 int reflect_ConstantPool::_oop_offset;
 int reflect_UnsafeStaticFieldAccessorImpl::_base_offset;
+int jdk_internal_module_ArchivedModuleGraph::_archivedSystemModules_offset;
+int jdk_internal_module_ArchivedModuleGraph::_archivedModuleFinder_offset;
+int jdk_internal_module_ArchivedModuleGraph::_archivedMainModule_offset;
 
 #define STACKTRACEELEMENT_FIELDS_DO(macro) \
   macro(declaringClassObject_offset,  k, "declaringClassObject", class_signature, false); \
@@ -4435,6 +4443,23 @@
   return (hardcoded_offset * heapOopSize) + instanceOopDesc::base_offset_in_bytes();
 }
 
+#define MODULEBOOTSTRAP_FIELDS_DO(macro) \
+  macro(_archivedSystemModules_offset,      k, "archivedSystemModules", systemModules_signature, true); \
+  macro(_archivedModuleFinder_offset,       k, "archivedModuleFinder",  moduleFinder_signature,  true); \
+  macro(_archivedMainModule_offset,         k, "archivedMainModule",    string_signature,        true)
+
+void jdk_internal_module_ArchivedModuleGraph::compute_offsets() {
+  InstanceKlass* k = SystemDictionary::ArchivedModuleGraph_klass();
+  assert(k != NULL, "must be loaded");
+  MODULEBOOTSTRAP_FIELDS_DO(FIELD_COMPUTE_OFFSET);
+}
+
+#if INCLUDE_CDS
+void jdk_internal_module_ArchivedModuleGraph::serialize(SerializeClosure* f) {
+  MODULEBOOTSTRAP_FIELDS_DO(FIELD_SERIALIZE_OFFSET);
+}
+#endif
+
 // Compute hard-coded offsets
 // Invoked before SystemDictionary::initialize, so pre-loaded classes
 // are not available to determine the offset_of_static_fields.
@@ -4493,6 +4518,8 @@
   java_lang_LiveStackFrameInfo::compute_offsets();
   java_util_concurrent_locks_AbstractOwnableSynchronizer::compute_offsets();
 
+  jdk_internal_module_ArchivedModuleGraph::compute_offsets();
+
   // generated interpreter code wants to know about the offsets we just computed:
   AbstractAssembler::update_delayed_values();
 }
--- a/src/hotspot/share/classfile/javaClasses.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/classfile/javaClasses.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1491,6 +1491,19 @@
   static void serialize(SerializeClosure* f) NOT_CDS_RETURN;
 };
 
+class jdk_internal_module_ArchivedModuleGraph: AllStatic {
+ private:
+  static int _archivedSystemModules_offset;
+  static int _archivedModuleFinder_offset;
+  static int _archivedMainModule_offset;
+ public:
+  static int  archivedSystemModules_offset()      { return _archivedSystemModules_offset; }
+  static int  archivedModuleFinder_offset()       { return _archivedModuleFinder_offset; }
+  static int  archivedMainModule_offset()         { return _archivedMainModule_offset; }
+  static void compute_offsets();
+  static void serialize(SerializeClosure* f) NOT_CDS_RETURN;
+};
+
 // Use to declare fields that need to be injected into Java classes
 // for the JVM to use.  The name_index and signature_index are
 // declared in vmSymbols.  The may_be_java flag is used to declare
--- a/src/hotspot/share/classfile/moduleEntry.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/classfile/moduleEntry.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -387,7 +387,8 @@
     entry->set_is_patched();
     if (log_is_enabled(Trace, module, patch)) {
       ResourceMark rm;
-      log_trace(module, patch)("Marked module %s as patched from --patch-module", name->as_C_string());
+      log_trace(module, patch)("Marked module %s as patched from --patch-module",
+                               name != NULL ? name->as_C_string() : UNNAMED_MODULE);
     }
   }
 
--- a/src/hotspot/share/classfile/stringTable.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/classfile/stringTable.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -785,6 +785,10 @@
 oop StringTable::create_archived_string(oop s, Thread* THREAD) {
   assert(DumpSharedSpaces, "this function is only used with -Xshare:dump");
 
+  if (MetaspaceShared::is_archive_object(s)) {
+    return s;
+  }
+
   oop new_s = NULL;
   typeArrayOop v = java_lang_String::value_no_keepalive(s);
   typeArrayOop new_v =
--- a/src/hotspot/share/classfile/systemDictionary.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/classfile/systemDictionary.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1364,18 +1364,18 @@
 
     // notify a class loaded from shared object
     ClassLoadingService::notify_class_loaded(ik, true /* shared class */);
-  }
-
-  ik->set_has_passed_fingerprint_check(false);
-  if (UseAOT && ik->supers_have_passed_fingerprint_checks()) {
-    uint64_t aot_fp = AOTLoader::get_saved_fingerprint(ik);
-    uint64_t cds_fp = ik->get_stored_fingerprint();
-    if (aot_fp != 0 && aot_fp == cds_fp) {
-      // This class matches with a class saved in an AOT library
-      ik->set_has_passed_fingerprint_check(true);
-    } else {
-      ResourceMark rm;
-      log_info(class, fingerprint)("%s :  expected = " PTR64_FORMAT " actual = " PTR64_FORMAT, ik->external_name(), aot_fp, cds_fp);
+
+    ik->set_has_passed_fingerprint_check(false);
+    if (UseAOT && ik->supers_have_passed_fingerprint_checks()) {
+      uint64_t aot_fp = AOTLoader::get_saved_fingerprint(ik);
+      uint64_t cds_fp = ik->get_stored_fingerprint();
+      if (aot_fp != 0 && aot_fp == cds_fp) {
+        // This class matches with a class saved in an AOT library
+        ik->set_has_passed_fingerprint_check(true);
+      } else {
+        ResourceMark rm;
+        log_info(class, fingerprint)("%s :  expected = " PTR64_FORMAT " actual = " PTR64_FORMAT, ik->external_name(), aot_fp, cds_fp);
+      }
     }
   }
   return ik;
--- a/src/hotspot/share/classfile/systemDictionary.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/classfile/systemDictionary.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -187,6 +187,7 @@
   do_klass(jdk_internal_loader_ClassLoaders_AppClassLoader_klass,      jdk_internal_loader_ClassLoaders_AppClassLoader,       Pre ) \
   do_klass(jdk_internal_loader_ClassLoaders_PlatformClassLoader_klass, jdk_internal_loader_ClassLoaders_PlatformClassLoader,  Pre ) \
   do_klass(CodeSource_klass,                            java_security_CodeSource,                  Pre                 ) \
+  do_klass(ArchivedModuleGraph_klass,                   jdk_internal_module_ArchivedModuleGraph,   Pre                 ) \
                                                                                                                          \
   do_klass(StackTraceElement_klass,                     java_lang_StackTraceElement,               Opt                 ) \
                                                                                                                          \
--- a/src/hotspot/share/classfile/systemDictionaryShared.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/classfile/systemDictionaryShared.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -766,10 +766,11 @@
   SharedDictionaryEntry* entry = ((SharedDictionary*)(k->class_loader_data()->dictionary()))->find_entry_for(k);
   ResourceMark rm;
   // Lambda classes are not archived and will be regenerated at runtime.
-  if (entry == NULL && strstr(k->name()->as_C_string(), "Lambda$") != NULL) {
+  if (entry == NULL) {
+    guarantee(strstr(k->name()->as_C_string(), "Lambda$") != NULL,
+              "class should be in dictionary before being verified");
     return true;
   }
-  assert(entry != NULL, "class should be in dictionary before being verified");
   entry->add_verification_constraint(name, from_name, from_field_is_protected,
                                      from_is_array, from_is_object);
   if (entry->is_builtin()) {
--- a/src/hotspot/share/classfile/verifier.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/classfile/verifier.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -719,7 +719,8 @@
         ResourceMark rm(THREAD);
         LogStream ls(lt);
         current_frame.print_on(&ls);
-        lt.print("offset = %d,  opcode = %s", bci, Bytecodes::name(opcode));
+        lt.print("offset = %d,  opcode = %s", bci,
+                 opcode == Bytecodes::_illegal ? "illegal" : Bytecodes::name(opcode));
       }
 
       // Make sure wide instruction is in correct format
--- a/src/hotspot/share/classfile/vmSymbols.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/classfile/vmSymbols.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -124,6 +124,7 @@
   template(getBootClassPathEntryForClass_name,        "getBootClassPathEntryForClass")            \
   template(jdk_internal_vm_PostVMInitHook,            "jdk/internal/vm/PostVMInitHook")           \
   template(sun_net_www_ParseUtil,                     "sun/net/www/ParseUtil")                    \
+  template(jdk_internal_module_ArchivedModuleGraph,   "jdk/internal/module/ArchivedModuleGraph")  \
                                                                                                   \
   template(jdk_internal_loader_ClassLoaders_AppClassLoader,      "jdk/internal/loader/ClassLoaders$AppClassLoader")      \
   template(jdk_internal_loader_ClassLoaders_PlatformClassLoader, "jdk/internal/loader/ClassLoaders$PlatformClassLoader") \
@@ -652,6 +653,8 @@
   template(url_void_signature,                     "(Ljava/net/URL;)V")                                           \
   template(toFileURL_name,                         "toFileURL")                                                   \
   template(toFileURL_signature,                    "(Ljava/lang/String;)Ljava/net/URL;")                          \
+  template(moduleFinder_signature,                 "Ljava/lang/module/ModuleFinder;")                             \
+  template(systemModules_signature,                "Ljdk/internal/module/SystemModules;")                         \
                                                                                                                   \
   /*end*/
 
--- a/src/hotspot/share/code/codeCache.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/code/codeCache.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1363,22 +1363,22 @@
       const char *msg1 = msg1_stream.as_string();
       const char *msg2 = msg2_stream.as_string();
 
-      log_warning(codecache)(msg1);
-      log_warning(codecache)(msg2);
-      warning(msg1);
-      warning(msg2);
+      log_warning(codecache)("%s", msg1);
+      log_warning(codecache)("%s", msg2);
+      warning("%s", msg1);
+      warning("%s", msg2);
     } else {
       const char *msg1 = "CodeCache is full. Compiler has been disabled.";
       const char *msg2 = "Try increasing the code cache size using -XX:ReservedCodeCacheSize=";
 
-      log_warning(codecache)(msg1);
-      log_warning(codecache)(msg2);
-      warning(msg1);
-      warning(msg2);
+      log_warning(codecache)("%s", msg1);
+      log_warning(codecache)("%s", msg2);
+      warning("%s", msg1);
+      warning("%s", msg2);
     }
     ResourceMark rm;
     stringStream s;
-    // Dump code cache  into a buffer before locking the tty,
+    // Dump code cache into a buffer before locking the tty.
     {
       MutexLockerEx mu(CodeCache_lock, Mutex::_no_safepoint_check_flag);
       print_summary(&s);
--- a/src/hotspot/share/code/compiledMethod.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/code/compiledMethod.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -325,6 +325,7 @@
 // Clear ICStubs of all compiled ICs
 void CompiledMethod::clear_ic_stubs() {
   assert_locked_or_safepoint(CompiledIC_lock);
+  ResourceMark rm;
   RelocIterator iter(this);
   while(iter.next()) {
     if (iter.type() == relocInfo::virtual_call_type) {
@@ -547,6 +548,7 @@
 bool CompiledMethod::cleanup_inline_caches_impl(bool parallel, bool unloading_occurred, bool clean_all) {
   assert_locked_or_safepoint(CompiledIC_lock);
   bool postponed = false;
+  ResourceMark rm;
 
   // Find all calls in an nmethod and clear the ones that point to non-entrant,
   // zombie and unloaded nmethods.
--- a/src/hotspot/share/compiler/compileBroker.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/compiler/compileBroker.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -530,7 +530,6 @@
 
 void CompileBroker::print_compile_queues(outputStream* st) {
   st->print_cr("Current compiles: ");
-  MutexLocker locker(MethodCompileQueue_lock);
 
   char buf[2000];
   int buflen = sizeof(buf);
@@ -546,7 +545,7 @@
 }
 
 void CompileQueue::print(outputStream* st) {
-  assert(MethodCompileQueue_lock->owned_by_self(), "must own lock");
+  assert_locked_or_safepoint(MethodCompileQueue_lock);
   st->print_cr("%s:", name());
   CompileTask* task = _first;
   if (task == NULL) {
--- a/src/hotspot/share/compiler/compileLog.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/compiler/compileLog.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -217,14 +217,17 @@
       file->print_raw_cr("'>");
 
       size_t nr; // number read into buf from partial log
+      // In case of unsuccessful completion, read returns -1.
+      ssize_t bytes_read;
       // Copy data up to the end of the last <event> element:
       julong to_read = log->_file_end;
       while (to_read > 0) {
         if (to_read < (julong)buflen)
               nr = (size_t)to_read;
         else  nr = buflen;
-        nr = read(partial_fd, buf, (int)nr);
-        if (nr <= 0)  break;
+        bytes_read = read(partial_fd, buf, (int)nr);
+        if (bytes_read <= 0) break;
+        nr = bytes_read;
         to_read -= (julong)nr;
         file->write(buf, nr);
       }
@@ -232,7 +235,8 @@
       // Copy any remaining data inside a quote:
       bool saw_slop = false;
       int end_cdata = 0;  // state machine [0..2] watching for too many "]]"
-      while ((nr = read(partial_fd, buf, buflen-1)) > 0) {
+      while ((bytes_read = read(partial_fd, buf, buflen-1)) > 0) {
+        nr = bytes_read;
         buf[buflen-1] = '\0';
         if (!saw_slop) {
           file->print_raw_cr("<fragment>");
--- a/src/hotspot/share/compiler/compilerDefinitions.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/compiler/compilerDefinitions.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -253,17 +253,18 @@
     if (FLAG_IS_DEFAULT(OnStackReplacePercentage)) {
       FLAG_SET_DEFAULT(OnStackReplacePercentage, 933);
     }
+    // JVMCI needs values not less than defaults
     if (FLAG_IS_DEFAULT(ReservedCodeCacheSize)) {
-      FLAG_SET_DEFAULT(ReservedCodeCacheSize, 64*M);
+      FLAG_SET_DEFAULT(ReservedCodeCacheSize, MAX2(64*M, ReservedCodeCacheSize));
     }
     if (FLAG_IS_DEFAULT(InitialCodeCacheSize)) {
-      FLAG_SET_DEFAULT(InitialCodeCacheSize, 16*M);
+      FLAG_SET_DEFAULT(InitialCodeCacheSize, MAX2(16*M, InitialCodeCacheSize));
     }
     if (FLAG_IS_DEFAULT(MetaspaceSize)) {
-      FLAG_SET_DEFAULT(MetaspaceSize, 12*M);
+      FLAG_SET_DEFAULT(MetaspaceSize, MAX2(12*M, MetaspaceSize));
     }
     if (FLAG_IS_DEFAULT(NewSizeThreadIncrease)) {
-      FLAG_SET_DEFAULT(NewSizeThreadIncrease, 4*K);
+      FLAG_SET_DEFAULT(NewSizeThreadIncrease, MAX2(4*K, NewSizeThreadIncrease));
     }
     if (TieredStopAtLevel != CompLevel_full_optimization) {
       // Currently JVMCI compiler can only work at the full optimization level
--- a/src/hotspot/share/compiler/disassembler.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/compiler/disassembler.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -23,6 +23,7 @@
  */
 
 #include "precompiled.hpp"
+#include "asm/macroAssembler.hpp"
 #include "ci/ciUtilities.hpp"
 #include "classfile/javaClasses.hpp"
 #include "code/codeCache.hpp"
@@ -36,6 +37,7 @@
 #include "runtime/os.hpp"
 #include "runtime/stubCodeGenerator.hpp"
 #include "runtime/stubRoutines.hpp"
+#include "utilities/resourceHash.hpp"
 #include CPU_HEADER(depChecker)
 
 void*       Disassembler::_library               = NULL;
@@ -49,7 +51,7 @@
 static const char decode_instructions_virtual_name[] = "decode_instructions_virtual";
 static const char decode_instructions_name[] = "decode_instructions";
 static bool use_new_version = true;
-#define COMMENT_COLUMN  40 LP64_ONLY(+8) /*could be an option*/
+#define COMMENT_COLUMN  52 LP64_ONLY(+8) /*could be an option*/
 #define BYTES_COMMENT   ";..."  /* funky byte display comment */
 
 bool Disassembler::load_library() {
@@ -122,7 +124,7 @@
     _decode_instructions_virtual = CAST_TO_FN_PTR(Disassembler::decode_func_virtual,
                                           os::dll_lookup(_library, decode_instructions_virtual_name));
   }
-  if (_decode_instructions_virtual == NULL) {
+  if (_decode_instructions_virtual == NULL && _library != NULL) {
     // could not spot in new version, try old version
     _decode_instructions = CAST_TO_FN_PTR(Disassembler::decode_func,
                                           os::dll_lookup(_library, decode_instructions_name));
@@ -163,6 +165,7 @@
   bool          _print_bytes;
   address       _cur_insn;
   int           _bytes_per_line; // arch-specific formatting option
+  bool          _print_file_name;
 
   static bool match(const char* event, const char* tag) {
     size_t taglen = strlen(tag);
@@ -191,6 +194,51 @@
   void print_insn_bytes(address pc0, address pc);
   void print_address(address value);
 
+  struct SourceFileInfo {
+    struct Link : public CHeapObj<mtCode> {
+      const char* file;
+      int line;
+      Link* next;
+      Link(const char* f, int l) : file(f), line(l), next(NULL) {}
+    };
+    Link *head, *tail;
+
+    static unsigned hash(const address& a) {
+      return primitive_hash<address>(a);
+    }
+    static bool equals(const address& a0, const address& a1) {
+      return primitive_equals<address>(a0, a1);
+    }
+    void append(const char* file, int line) {
+      if (tail != NULL && tail->file == file && tail->line == line) {
+        // Don't print duplicated lines at the same address. This could happen with C
+        // macros that end up having multiple "__" tokens on the same __LINE__.
+        return;
+      }
+      Link *link = new Link(file, line);
+      if (head == NULL) {
+        head = tail = link;
+      } else {
+        tail->next = link;
+        tail = link;
+      }
+    }
+    SourceFileInfo(const char* file, int line) : head(NULL), tail(NULL) {
+      append(file, line);
+    }
+  };
+
+  typedef ResourceHashtable<
+      address, SourceFileInfo,
+      SourceFileInfo::hash,
+      SourceFileInfo::equals,
+      15889,      // prime number
+      ResourceObj::C_HEAP> SourceFileInfoTable;
+
+  static SourceFileInfoTable _src_table;
+  static const char* _cached_src;
+  static GrowableArray<const char*>* _cached_src_lines;
+
  public:
   decode_env(CodeBlob* code, outputStream* output,
              CodeStrings c = CodeStrings(), ptrdiff_t offset = 0);
@@ -212,6 +260,7 @@
       _nm->print_code_comment_on(st, COMMENT_COLUMN, pc0, pc);
       // this calls reloc_string_for which calls oop::print_value_on
     }
+    print_hook_comments(pc0, _nm != NULL);
     // follow each complete insn by a nice newline
     st->cr();
   }
@@ -221,8 +270,96 @@
   outputStream* output() { return _output; }
   address cur_insn() { return _cur_insn; }
   const char* options() { return _option_buf; }
+  static void hook(const char* file, int line, address pc);
+  void print_hook_comments(address pc, bool newline);
 };
 
+decode_env::SourceFileInfoTable decode_env::_src_table;
+const char* decode_env::_cached_src = NULL;
+GrowableArray<const char*>* decode_env::_cached_src_lines = NULL;
+
+void decode_env::hook(const char* file, int line, address pc) {
+  // For simplication, we never free from this table. It's really not
+  // necessary as we add to the table only when PrintInterpreter is true,
+  // which means we are debugging the VM and a little bit of extra
+  // memory usage doesn't matter.
+  SourceFileInfo* found = _src_table.get(pc);
+  if (found != NULL) {
+    found->append(file, line);
+  } else {
+    SourceFileInfo sfi(file, line);
+    _src_table.put(pc, sfi); // sfi is copied by value
+  }
+}
+
+void decode_env::print_hook_comments(address pc, bool newline) {
+  SourceFileInfo* found = _src_table.get(pc);
+  outputStream* st = output();
+  if (found != NULL) {
+    for (SourceFileInfo::Link *link = found->head; link; link = link->next) {
+      const char* file = link->file;
+      int line = link->line;
+      if (_cached_src == NULL || strcmp(_cached_src, file) != 0) {
+        FILE* fp;
+
+        // _cached_src_lines is a single cache of the lines of a source file, and we refill this cache
+        // every time we need to print a line from a different source file. It's not the fastest,
+        // but seems bearable.
+        if (_cached_src_lines != NULL) {
+          for (int i=0; i<_cached_src_lines->length(); i++) {
+            os::free((void*)_cached_src_lines->at(i));
+          }
+          _cached_src_lines->clear();
+        } else {
+          _cached_src_lines = new (ResourceObj::C_HEAP, mtCode)GrowableArray<const char*>(0, true);
+        }
+
+        if ((fp = fopen(file, "r")) == NULL) {
+          _cached_src = NULL;
+          return;
+        }
+        _cached_src = file;
+
+        char line[500]; // don't write lines that are too long in your source files!
+        while (fgets(line, sizeof(line), fp) != NULL) {
+          size_t len = strlen(line);
+          if (len > 0 && line[len-1] == '\n') {
+            line[len-1] = '\0';
+          }
+          _cached_src_lines->append(os::strdup(line));
+        }
+        fclose(fp);
+        _print_file_name = true;
+      }
+
+      if (_print_file_name) {
+        // We print the file name whenever we switch to a new file, or when
+        // Disassembler::decode is called to disassemble a new block of code.
+        _print_file_name = false;
+        if (newline) {
+          st->cr();
+        }
+        st->move_to(COMMENT_COLUMN);
+        st->print(";;@FILE: %s", file);
+        newline = true;
+      }
+
+      int index = line - 1; // 1-based line number -> 0-based index.
+      if (index >= _cached_src_lines->length()) {
+        // This could happen if source file is mismatched.
+      } else {
+        const char* source_line = _cached_src_lines->at(index);
+        if (newline) {
+          st->cr();
+        }
+        st->move_to(COMMENT_COLUMN);
+        st->print(";;%5d: %s", line, source_line);
+        newline = true;
+      }
+    }
+  }
+}
+
 decode_env::decode_env(CodeBlob* code, outputStream* output, CodeStrings c,
                        ptrdiff_t offset) {
   memset(this, 0, sizeof(*this)); // Beware, this zeroes bits of fields.
@@ -237,6 +374,7 @@
   _print_pc       = true;
   _print_bytes    = false;
   _bytes_per_line = Disassembler::pd_instruction_alignment();
+  _print_file_name= true;
 
   // parse the global option string:
   collect_options(Disassembler::pd_cpu_opts());
@@ -558,3 +696,9 @@
 
   env.decode_instructions(p, end);
 }
+
+// To prevent excessive code expansion in the interpreter generator, we
+// do not inline this function into Disassembler::hook().
+void Disassembler::_hook(const char* file, int line, MacroAssembler* masm) {
+  decode_env::hook(file, line, masm->code_section()->end());
+}
--- a/src/hotspot/share/compiler/disassembler.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/compiler/disassembler.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -77,6 +77,17 @@
   static void decode(nmethod* nm,                outputStream* st = NULL);
   static void decode(address begin, address end, outputStream* st = NULL,
                      CodeStrings c = CodeStrings(), ptrdiff_t offset = 0);
+  static void _hook(const char* file, int line, class MacroAssembler* masm);
+
+  // This functions makes it easy to generate comments in the generated
+  // interpreter code, by riding on the customary __ macro in the interpreter generator.
+  // See templateTable_x86.cpp for an example.
+  template<class T> inline static T* hook(const char* file, int line, T* masm) {
+    if (PrintInterpreter) {
+      _hook(file, line, masm);
+    }
+    return masm;
+  }
 };
 
 #endif // SHARE_VM_COMPILER_DISASSEMBLER_HPP
--- a/src/hotspot/share/compiler/methodLiveness.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/compiler/methodLiveness.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -484,7 +484,7 @@
     while (block == NULL && t > 0) {
      block = _block_map->at(--t);
     }
-    assert( block != NULL, "invalid bytecode index; must be instruction index" );
+    guarantee(block != NULL, "invalid bytecode index; must be instruction index");
     assert(bci >= block->start_bci() && bci < block->limit_bci(), "block must contain bci.");
 
     answer = block->get_liveness_at(method(), bci);
--- a/src/hotspot/share/compiler/oopMap.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/compiler/oopMap.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -571,14 +571,14 @@
 
 const ImmutableOopMap* ImmutableOopMapSet::find_map_at_offset(int pc_offset) const {
   ImmutableOopMapPair* pairs = get_pairs();
-  ImmutableOopMapPair* last = NULL;
 
-  for (int i = 0; i < _count; ++i) {
+  int i;
+  for (i = 0; i < _count; ++i) {
     if (pairs[i].pc_offset() >= pc_offset) {
-      last = &pairs[i];
       break;
     }
   }
+  ImmutableOopMapPair* last = &pairs[i];
 
   assert(last->pc_offset() == pc_offset, "oopmap not found");
   return last->get_from(this);
--- a/src/hotspot/share/gc/epsilon/epsilonHeap.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/gc/epsilon/epsilonHeap.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -121,6 +121,11 @@
     safe_object_iterate(cl);
   }
 
+  // Object pinning support: every object is implicitly pinned
+  virtual bool supports_object_pinning() const           { return true; }
+  virtual oop pin_object(JavaThread* thread, oop obj)    { return obj; }
+  virtual void unpin_object(JavaThread* thread, oop obj) { }
+
   // No support for block parsing.
   virtual HeapWord* block_start(const void* addr) const { return NULL;  }
   virtual size_t block_size(const HeapWord* addr) const { return 0;     }
--- a/src/hotspot/share/gc/g1/g1ConcurrentMark.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/gc/g1/g1ConcurrentMark.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1024,11 +1024,17 @@
 
     uint _num_regions_selected_for_rebuild;  // The number of regions actually selected for rebuild.
 
-    void update_remset_before_rebuild(HeapRegion * hr) {
+    void update_remset_before_rebuild(HeapRegion* hr) {
       G1RemSetTrackingPolicy* tracking_policy = _g1h->g1_policy()->remset_tracker();
 
-      size_t const live_bytes = _cm->liveness(hr->hrm_index()) * HeapWordSize;
-      bool selected_for_rebuild = tracking_policy->update_before_rebuild(hr, live_bytes);
+      bool selected_for_rebuild;
+      if (hr->is_humongous()) {
+        bool const is_live = _cm->liveness(hr->humongous_start_region()->hrm_index()) > 0;
+        selected_for_rebuild = tracking_policy->update_humongous_before_rebuild(hr, is_live);
+      } else {
+        size_t const live_bytes = _cm->liveness(hr->hrm_index());
+        selected_for_rebuild = tracking_policy->update_before_rebuild(hr, live_bytes);
+      }
       if (selected_for_rebuild) {
         _num_regions_selected_for_rebuild++;
       }
--- a/src/hotspot/share/gc/g1/g1RemSetTrackingPolicy.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/gc/g1/g1RemSetTrackingPolicy.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -29,10 +29,6 @@
 #include "gc/g1/heapRegionRemSet.hpp"
 #include "runtime/safepoint.hpp"
 
-bool G1RemSetTrackingPolicy::is_interesting_humongous_region(HeapRegion* r) const {
-  return r->is_humongous() && oop(r->humongous_start_region()->bottom())->is_typeArray();
-}
-
 bool G1RemSetTrackingPolicy::needs_scan_for_rebuild(HeapRegion* r) const {
   // All non-free, non-young, non-closed archive regions need to be scanned for references;
   // At every gc we gather references to other regions in young, and closed archive
@@ -64,51 +60,81 @@
   /* nothing to do */
 }
 
+static void print_before_rebuild(HeapRegion* r, bool selected_for_rebuild, size_t total_live_bytes, size_t live_bytes) {
+  log_trace(gc, remset, tracking)("Before rebuild region %u "
+                                  "(ntams: " PTR_FORMAT ") "
+                                  "total_live_bytes " SIZE_FORMAT " "
+                                  "selected %s "
+                                  "(live_bytes " SIZE_FORMAT " "
+                                  "next_marked " SIZE_FORMAT " "
+                                  "marked " SIZE_FORMAT " "
+                                  "type %s)",
+                                  r->hrm_index(),
+                                  p2i(r->next_top_at_mark_start()),
+                                  total_live_bytes,
+                                  BOOL_TO_STR(selected_for_rebuild),
+                                  live_bytes,
+                                  r->next_marked_bytes(),
+                                  r->marked_bytes(),
+                                  r->get_type_str());
+}
+
+bool G1RemSetTrackingPolicy::update_humongous_before_rebuild(HeapRegion* r, bool is_live) {
+  assert(SafepointSynchronize::is_at_safepoint(), "should be at safepoint");
+  assert(r->is_humongous(), "Region %u should be humongous", r->hrm_index());
+
+  if (r->is_archive()) {
+    return false;
+  }
+
+  assert(!r->rem_set()->is_updating(), "Remembered set of region %u is updating before rebuild", r->hrm_index());
+
+  bool selected_for_rebuild = false;
+  // For humongous regions, to be of interest for rebuilding the remembered set the following must apply:
+  // - We always try to update the remembered sets of humongous regions containing
+  // type arrays as they might have been reset after full gc.
+  if (is_live && oop(r->humongous_start_region()->bottom())->is_typeArray() && !r->rem_set()->is_tracked()) {
+    r->rem_set()->set_state_updating();
+    selected_for_rebuild = true;
+  }
+
+  size_t const live_bytes = is_live ? HeapRegion::GrainBytes : 0;
+  print_before_rebuild(r, selected_for_rebuild, live_bytes, live_bytes);
+
+  return selected_for_rebuild;
+}
+
 bool G1RemSetTrackingPolicy::update_before_rebuild(HeapRegion* r, size_t live_bytes) {
   assert(SafepointSynchronize::is_at_safepoint(), "should be at safepoint");
-
-  bool selected_for_rebuild = false;
+  assert(!r->is_humongous(), "Region %u is humongous", r->hrm_index());
 
   // Only consider updating the remembered set for old gen regions - excluding archive regions
   // which never move (but are "Old" regions).
-  if (r->is_old_or_humongous() && !r->is_archive()) {
-    size_t between_ntams_and_top = (r->top() - r->next_top_at_mark_start()) * HeapWordSize;
-    size_t total_live_bytes = live_bytes + between_ntams_and_top;
-    // Completely free regions after rebuild are of no interest wrt rebuilding the
-    // remembered set.
-    assert(!r->rem_set()->is_updating(), "Remembered set of region %u is updating before rebuild", r->hrm_index());
-    // To be of interest for rebuilding the remembered set the following must apply:
-    // - They must contain some live data in them.
-    // - We always try to update the remembered sets of humongous regions containing
-    // type arrays if they are empty as they might have been reset after full gc.
-    // - Only need to rebuild non-complete remembered sets.
-    // - Otherwise only add those old gen regions which occupancy is low enough that there
-    // is a chance that we will ever evacuate them in the mixed gcs.
-    if ((total_live_bytes > 0) &&
-        (is_interesting_humongous_region(r) || CollectionSetChooser::region_occupancy_low_enough_for_evac(total_live_bytes)) &&
-        !r->rem_set()->is_tracked()) {
+  if (!r->is_old() || r->is_archive()) {
+    return false;
+  }
+
+  assert(!r->rem_set()->is_updating(), "Remembered set of region %u is updating before rebuild", r->hrm_index());
+
+  size_t between_ntams_and_top = (r->top() - r->next_top_at_mark_start()) * HeapWordSize;
+  size_t total_live_bytes = live_bytes + between_ntams_and_top;
 
-      r->rem_set()->set_state_updating();
-      selected_for_rebuild = true;
-    }
-    log_trace(gc, remset, tracking)("Before rebuild region %u "
-                                    "(ntams: " PTR_FORMAT ") "
-                                    "total_live_bytes " SIZE_FORMAT " "
-                                    "selected %s "
-                                    "(live_bytes " SIZE_FORMAT " "
-                                    "next_marked " SIZE_FORMAT " "
-                                    "marked " SIZE_FORMAT " "
-                                    "type %s)",
-                                    r->hrm_index(),
-                                    p2i(r->next_top_at_mark_start()),
-                                    total_live_bytes,
-                                    BOOL_TO_STR(selected_for_rebuild),
-                                    live_bytes,
-                                    r->next_marked_bytes(),
-                                    r->marked_bytes(),
-                                    r->get_type_str());
+  bool selected_for_rebuild = false;
+  // For old regions, to be of interest for rebuilding the remembered set the following must apply:
+  // - They must contain some live data in them.
+  // - Only need to rebuild non-complete remembered sets.
+  // - Otherwise only add those old gen regions which occupancy is low enough that there
+  // is a chance that we will ever evacuate them in the mixed gcs.
+  if ((total_live_bytes > 0) &&
+      CollectionSetChooser::region_occupancy_low_enough_for_evac(total_live_bytes) &&
+      !r->rem_set()->is_tracked()) {
+
+    r->rem_set()->set_state_updating();
+    selected_for_rebuild = true;
   }
 
+  print_before_rebuild(r, selected_for_rebuild, total_live_bytes, live_bytes);
+
   return selected_for_rebuild;
 }
 
@@ -149,4 +175,3 @@
                                     r->rem_set()->mem_size());
   }
 }
-
--- a/src/hotspot/share/gc/g1/g1RemSetTrackingPolicy.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/gc/g1/g1RemSetTrackingPolicy.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -33,10 +33,6 @@
 // the remembered set, ie. when it should be tracked, and if/when the remembered
 // set is complete.
 class G1RemSetTrackingPolicy : public CHeapObj<mtGC> {
-private:
-  // Is the given region an interesting humongous region to start remembered set tracking
-  // for?
-  bool is_interesting_humongous_region(HeapRegion* r) const;
 public:
   // Do we need to scan the given region to get all outgoing references for remembered
   // set rebuild?
@@ -45,6 +41,9 @@
   // called at any time. The caller makes sure that the changes to the remembered
   // set state are visible to other threads.
   void update_at_allocate(HeapRegion* r);
+  // Update remembered set tracking state for humongous regions before we are going to
+  // rebuild remembered sets. Called at safepoint in the remark pause.
+  bool update_humongous_before_rebuild(HeapRegion* r, bool is_live);
   // Update remembered set tracking state before we are going to rebuild remembered
   // sets. Called at safepoint in the remark pause.
   bool update_before_rebuild(HeapRegion* r, size_t live_bytes);
--- a/src/hotspot/share/gc/shared/barrierSet.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/gc/shared/barrierSet.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -199,7 +199,7 @@
 
     template <typename T>
     static T atomic_cmpxchg_in_heap_at(T new_value, oop base, ptrdiff_t offset, T compare_value) {
-      return Raw::oop_atomic_cmpxchg_at(new_value, base, offset, compare_value);
+      return Raw::atomic_cmpxchg_at(new_value, base, offset, compare_value);
     }
 
     template <typename T>
--- a/src/hotspot/share/gc/shared/oopStorage.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/gc/shared/oopStorage.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -45,47 +45,47 @@
 #include "utilities/ostream.hpp"
 #include "utilities/spinYield.hpp"
 
-OopStorage::AllocateEntry::AllocateEntry() : _prev(NULL), _next(NULL) {}
+OopStorage::AllocationListEntry::AllocationListEntry() : _prev(NULL), _next(NULL) {}
 
-OopStorage::AllocateEntry::~AllocateEntry() {
+OopStorage::AllocationListEntry::~AllocationListEntry() {
   assert(_prev == NULL, "deleting attached block");
   assert(_next == NULL, "deleting attached block");
 }
 
-OopStorage::AllocateList::AllocateList() : _head(NULL), _tail(NULL) {}
+OopStorage::AllocationList::AllocationList() : _head(NULL), _tail(NULL) {}
 
-OopStorage::AllocateList::~AllocateList() {
+OopStorage::AllocationList::~AllocationList() {
   // ~OopStorage() empties its lists before destroying them.
   assert(_head == NULL, "deleting non-empty block list");
   assert(_tail == NULL, "deleting non-empty block list");
 }
 
-void OopStorage::AllocateList::push_front(const Block& block) {
+void OopStorage::AllocationList::push_front(const Block& block) {
   const Block* old = _head;
   if (old == NULL) {
     assert(_tail == NULL, "invariant");
     _head = _tail = &block;
   } else {
-    block.allocate_entry()._next = old;
-    old->allocate_entry()._prev = &block;
+    block.allocation_list_entry()._next = old;
+    old->allocation_list_entry()._prev = &block;
     _head = &block;
   }
 }
 
-void OopStorage::AllocateList::push_back(const Block& block) {
+void OopStorage::AllocationList::push_back(const Block& block) {
   const Block* old = _tail;
   if (old == NULL) {
     assert(_head == NULL, "invariant");
     _head = _tail = &block;
   } else {
-    old->allocate_entry()._next = &block;
-    block.allocate_entry()._prev = old;
+    old->allocation_list_entry()._next = &block;
+    block.allocation_list_entry()._prev = old;
     _tail = &block;
   }
 }
 
-void OopStorage::AllocateList::unlink(const Block& block) {
-  const AllocateEntry& block_entry = block.allocate_entry();
+void OopStorage::AllocationList::unlink(const Block& block) {
+  const AllocationListEntry& block_entry = block.allocation_list_entry();
   const Block* prev_blk = block_entry._prev;
   const Block* next_blk = block_entry._next;
   block_entry._prev = NULL;
@@ -96,15 +96,15 @@
     _head = _tail = NULL;
   } else if (prev_blk == NULL) {
     assert(_head == &block, "invariant");
-    next_blk->allocate_entry()._prev = NULL;
+    next_blk->allocation_list_entry()._prev = NULL;
     _head = next_blk;
   } else if (next_blk == NULL) {
     assert(_tail == &block, "invariant");
-    prev_blk->allocate_entry()._next = NULL;
+    prev_blk->allocation_list_entry()._next = NULL;
     _tail = prev_blk;
   } else {
-    next_blk->allocate_entry()._prev = prev_blk;
-    prev_blk->allocate_entry()._next = next_blk;
+    next_blk->allocation_list_entry()._prev = prev_blk;
+    prev_blk->allocation_list_entry()._next = next_blk;
   }
 }
 
@@ -210,7 +210,7 @@
   _owner(owner),
   _memory(memory),
   _active_index(0),
-  _allocate_entry(),
+  _allocation_list_entry(),
   _deferred_updates_next(NULL),
   _release_refcount(0)
 {
@@ -367,65 +367,65 @@
 //////////////////////////////////////////////////////////////////////////////
 // Allocation
 //
-// Allocation involves the _allocate_list, which contains a subset of the
+// Allocation involves the _allocation_list, which contains a subset of the
 // blocks owned by a storage object.  This is a doubly-linked list, linked
 // through dedicated fields in the blocks.  Full blocks are removed from this
 // list, though they are still present in the _active_array.  Empty blocks are
-// kept at the end of the _allocate_list, to make it easy for empty block
+// kept at the end of the _allocation_list, to make it easy for empty block
 // deletion to find them.
 //
 // allocate(), and delete_empty_blocks_concurrent() lock the
-// _allocate_mutex while performing any list and array modifications.
+// _allocation_mutex while performing any list and array modifications.
 //
 // allocate() and release() update a block's _allocated_bitmask using CAS
 // loops.  This prevents loss of updates even though release() performs
 // its updates without any locking.
 //
-// allocate() obtains the entry from the first block in the _allocate_list,
+// allocate() obtains the entry from the first block in the _allocation_list,
 // and updates that block's _allocated_bitmask to indicate the entry is in
 // use.  If this makes the block full (all entries in use), the block is
-// removed from the _allocate_list so it won't be considered by future
+// removed from the _allocation_list so it won't be considered by future
 // allocations until some entries in it are released.
 //
 // release() is performed lock-free. release() first looks up the block for
 // the entry, using address alignment to find the enclosing block (thereby
 // avoiding iteration over the _active_array).  Once the block has been
 // determined, its _allocated_bitmask needs to be updated, and its position in
-// the _allocate_list may need to be updated.  There are two cases:
+// the _allocation_list may need to be updated.  There are two cases:
 //
 // (a) If the block is neither full nor would become empty with the release of
 // the entry, only its _allocated_bitmask needs to be updated.  But if the CAS
 // update fails, the applicable case may change for the retry.
 //
-// (b) Otherwise, the _allocate_list also needs to be modified.  This requires
-// locking the _allocate_mutex.  To keep the release() operation lock-free,
-// rather than updating the _allocate_list itself, it instead performs a
+// (b) Otherwise, the _allocation_list also needs to be modified.  This requires
+// locking the _allocation_mutex.  To keep the release() operation lock-free,
+// rather than updating the _allocation_list itself, it instead performs a
 // lock-free push of the block onto the _deferred_updates list.  Entries on
 // that list are processed by allocate() and delete_empty_blocks_XXX(), while
 // they already hold the necessary lock.  That processing makes the block's
 // list state consistent with its current _allocated_bitmask.  The block is
-// added to the _allocate_list if not already present and the bitmask is not
-// full.  The block is moved to the end of the _allocated_list if the bitmask
+// added to the _allocation_list if not already present and the bitmask is not
+// full.  The block is moved to the end of the _allocation_list if the bitmask
 // is empty, for ease of empty block deletion processing.
 
 oop* OopStorage::allocate() {
-  MutexLockerEx ml(_allocate_mutex, Mutex::_no_safepoint_check_flag);
+  MutexLockerEx ml(_allocation_mutex, Mutex::_no_safepoint_check_flag);
   // Do some deferred update processing every time we allocate.
-  // Continue processing deferred updates if _allocate_list is empty,
+  // Continue processing deferred updates if _allocation_list is empty,
   // in the hope that we'll get a block from that, rather than
   // allocating a new block.
-  while (reduce_deferred_updates() && (_allocate_list.head() == NULL)) {}
+  while (reduce_deferred_updates() && (_allocation_list.head() == NULL)) {}
 
-  // Use the first block in _allocate_list for the allocation.
-  Block* block = _allocate_list.head();
+  // Use the first block in _allocation_list for the allocation.
+  Block* block = _allocation_list.head();
   if (block == NULL) {
     // No available blocks; make a new one, and add to storage.
     {
-      MutexUnlockerEx mul(_allocate_mutex, Mutex::_no_safepoint_check_flag);
+      MutexUnlockerEx mul(_allocation_mutex, Mutex::_no_safepoint_check_flag);
       block = Block::new_block(this);
     }
     if (block == NULL) {
-      while (_allocate_list.head() == NULL) {
+      while (_allocation_list.head() == NULL) {
         if (!reduce_deferred_updates()) {
           // Failed to make new block, no other thread made a block
           // available while the mutex was released, and didn't get
@@ -448,13 +448,13 @@
           return NULL;
         }
       }
-      // Add to end of _allocate_list.  The mutex release allowed
-      // other threads to add blocks to the _allocate_list.  We prefer
+      // Add to end of _allocation_list.  The mutex release allowed
+      // other threads to add blocks to the _allocation_list.  We prefer
       // to allocate from non-empty blocks, to allow empty blocks to
       // be deleted.
-      _allocate_list.push_back(*block);
+      _allocation_list.push_back(*block);
     }
-    block = _allocate_list.head();
+    block = _allocation_list.head();
   }
   // Allocate from first block.
   assert(block != NULL, "invariant");
@@ -471,7 +471,7 @@
     // Transitioning from not full to full.
     // Remove full blocks from consideration by future allocates.
     log_debug(oopstorage, blocks)("%s: block full " PTR_FORMAT, name(), p2i(block));
-    _allocate_list.unlink(*block);
+    _allocation_list.unlink(*block);
   }
   log_info(oopstorage, ref)("%s: allocated " PTR_FORMAT, name(), p2i(result));
   return result;
@@ -482,7 +482,7 @@
 // Return true if the array was successfully expanded, false to
 // indicate allocation failure.
 bool OopStorage::expand_active_array() {
-  assert_lock_strong(_allocate_mutex);
+  assert_lock_strong(_allocation_mutex);
   ActiveArray* old_array = _active_array;
   size_t new_size = 2 * old_array->size();
   log_info(oopstorage, blocks)("%s: expand active array " SIZE_FORMAT,
@@ -632,7 +632,7 @@
   // (updated bitmask is empty or old bitmask was full), atomically push
   // this block onto the deferred updates list.  Some future call to
   // reduce_deferred_updates will make any needed changes related to this
-  // block and _allocate_list.  This deferral avoids list updates and the
+  // block and _allocation_list.  This deferral avoids list updates and the
   // associated locking here.
   if ((releasing == old_allocated) || is_full_bitmask(old_allocated)) {
     // Log transitions.  Both transitions are possible in a single update.
@@ -663,7 +663,7 @@
 
 // Process one available deferred update.  Returns true if one was processed.
 bool OopStorage::reduce_deferred_updates() {
-  assert_locked_or_safepoint(_allocate_mutex);
+  assert_locked_or_safepoint(_allocation_mutex);
   // Atomically pop a block off the list, if any available.
   // No ABA issue because this is only called by one thread at a time.
   // The atomicity is wrto pushes by release().
@@ -687,20 +687,20 @@
   uintx allocated = block->allocated_bitmask();
 
   // Make membership in list consistent with bitmask state.
-  if ((_allocate_list.ctail() != NULL) &&
-      ((_allocate_list.ctail() == block) ||
-       (_allocate_list.next(*block) != NULL))) {
-    // Block is in the allocate list.
+  if ((_allocation_list.ctail() != NULL) &&
+      ((_allocation_list.ctail() == block) ||
+       (_allocation_list.next(*block) != NULL))) {
+    // Block is in the _allocation_list.
     assert(!is_full_bitmask(allocated), "invariant");
   } else if (!is_full_bitmask(allocated)) {
-    // Block is not in the allocate list, but now should be.
-    _allocate_list.push_front(*block);
+    // Block is not in the _allocation_list, but now should be.
+    _allocation_list.push_front(*block);
   } // Else block is full and not in list, which is correct.
 
   // Move empty block to end of list, for possible deletion.
   if (is_empty_bitmask(allocated)) {
-    _allocate_list.unlink(*block);
-    _allocate_list.push_back(*block);
+    _allocation_list.unlink(*block);
+    _allocation_list.push_back(*block);
   }
 
   log_debug(oopstorage, blocks)("%s: processed deferred update " PTR_FORMAT,
@@ -759,24 +759,24 @@
 const size_t initial_active_array_size = 8;
 
 OopStorage::OopStorage(const char* name,
-                       Mutex* allocate_mutex,
+                       Mutex* allocation_mutex,
                        Mutex* active_mutex) :
   _name(dup_name(name)),
   _active_array(ActiveArray::create(initial_active_array_size)),
-  _allocate_list(),
+  _allocation_list(),
   _deferred_updates(NULL),
-  _allocate_mutex(allocate_mutex),
+  _allocation_mutex(allocation_mutex),
   _active_mutex(active_mutex),
   _allocation_count(0),
   _concurrent_iteration_active(false)
 {
   _active_array->increment_refcount();
-  assert(_active_mutex->rank() < _allocate_mutex->rank(),
-         "%s: active_mutex must have lower rank than allocate_mutex", _name);
+  assert(_active_mutex->rank() < _allocation_mutex->rank(),
+         "%s: active_mutex must have lower rank than allocation_mutex", _name);
   assert(_active_mutex->_safepoint_check_required != Mutex::_safepoint_check_always,
          "%s: active mutex requires safepoint check", _name);
-  assert(_allocate_mutex->_safepoint_check_required != Mutex::_safepoint_check_always,
-         "%s: allocate mutex requires safepoint check", _name);
+  assert(_allocation_mutex->_safepoint_check_required != Mutex::_safepoint_check_always,
+         "%s: allocation mutex requires safepoint check", _name);
 }
 
 void OopStorage::delete_empty_block(const Block& block) {
@@ -791,8 +791,8 @@
     _deferred_updates = block->deferred_updates_next();
     block->set_deferred_updates_next(NULL);
   }
-  while ((block = _allocate_list.head()) != NULL) {
-    _allocate_list.unlink(*block);
+  while ((block = _allocation_list.head()) != NULL) {
+    _allocation_list.unlink(*block);
   }
   bool unreferenced = _active_array->decrement_refcount();
   assert(unreferenced, "deleting storage while _active_array is referenced");
@@ -811,18 +811,18 @@
   while (reduce_deferred_updates()) {}
   // Don't interfere with a concurrent iteration.
   if (_concurrent_iteration_active) return;
-  // Delete empty (and otherwise deletable) blocks from end of _allocate_list.
-  for (Block* block = _allocate_list.tail();
+  // Delete empty (and otherwise deletable) blocks from end of _allocation_list.
+  for (Block* block = _allocation_list.tail();
        (block != NULL) && block->is_deletable();
-       block = _allocate_list.tail()) {
+       block = _allocation_list.tail()) {
     _active_array->remove(block);
-    _allocate_list.unlink(*block);
+    _allocation_list.unlink(*block);
     delete_empty_block(*block);
   }
 }
 
 void OopStorage::delete_empty_blocks_concurrent() {
-  MutexLockerEx ml(_allocate_mutex, Mutex::_no_safepoint_check_flag);
+  MutexLockerEx ml(_allocation_mutex, Mutex::_no_safepoint_check_flag);
   // Other threads could be adding to the empty block count while we
   // release the mutex across the block deletions.  Set an upper bound
   // on how many blocks we'll try to release, so other threads can't
@@ -834,7 +834,7 @@
     // lock.  But limit number processed to limit lock duration.
     reduce_deferred_updates();
 
-    Block* block = _allocate_list.tail();
+    Block* block = _allocation_list.tail();
     if ((block == NULL) || !block->is_deletable()) {
       // No block to delete, so done.  There could be more pending
       // deferred updates that could give us more work to do; deal with
@@ -848,10 +848,10 @@
       if (_concurrent_iteration_active) return;
       _active_array->remove(block);
     }
-    // Remove block from _allocate_list and delete it.
-    _allocate_list.unlink(*block);
+    // Remove block from _allocation_list and delete it.
+    _allocation_list.unlink(*block);
     // Release mutex while deleting block.
-    MutexUnlockerEx ul(_allocate_mutex, Mutex::_no_safepoint_check_flag);
+    MutexUnlockerEx ul(_allocation_mutex, Mutex::_no_safepoint_check_flag);
     delete_empty_block(*block);
   }
 }
@@ -860,7 +860,7 @@
   const Block* block = find_block_or_null(ptr);
   if (block != NULL) {
     // Prevent block deletion and _active_array modification.
-    MutexLockerEx ml(_allocate_mutex, Mutex::_no_safepoint_check_flag);
+    MutexLockerEx ml(_allocation_mutex, Mutex::_no_safepoint_check_flag);
     // Block could be a false positive, so get index carefully.
     size_t index = Block::active_index_safe(block);
     if ((index < _active_array->block_count()) &&
--- a/src/hotspot/share/gc/shared/oopStorage.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/gc/shared/oopStorage.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -73,7 +73,7 @@
 
 class OopStorage : public CHeapObj<mtGC> {
 public:
-  OopStorage(const char* name, Mutex* allocate_mutex, Mutex* active_mutex);
+  OopStorage(const char* name, Mutex* allocation_mutex, Mutex* active_mutex);
   ~OopStorage();
 
   // These count and usage accessors are racy unless at a safepoint.
@@ -94,12 +94,12 @@
     ALLOCATED_ENTRY
   };
 
-  // Locks _allocate_mutex.
+  // Locks _allocation_mutex.
   // precondition: ptr != NULL.
   EntryStatus allocation_status(const oop* ptr) const;
 
   // Allocates and returns a new entry.  Returns NULL if memory allocation
-  // failed.  Locks _allocate_mutex.
+  // failed.  Locks _allocation_mutex.
   // postcondition: *result == NULL.
   oop* allocate();
 
@@ -152,7 +152,7 @@
 
   // Block cleanup functions are for the exclusive use of the GC.
   // Both stop deleting if there is an in-progress concurrent iteration.
-  // Concurrent deletion locks both the allocate_mutex and the active_mutex.
+  // Concurrent deletion locks both the _allocation_mutex and the _active_mutex.
   void delete_empty_blocks_safepoint();
   void delete_empty_blocks_concurrent();
 
@@ -172,20 +172,20 @@
 NOT_AIX( private: )
   class Block;                  // Fixed-size array of oops, plus bookkeeping.
   class ActiveArray;            // Array of Blocks, plus bookkeeping.
-  class AllocateEntry;          // Provides AllocateList links in a Block.
+  class AllocationListEntry;    // Provides AllocationList links in a Block.
 
   // Doubly-linked list of Blocks.
-  class AllocateList {
+  class AllocationList {
     const Block* _head;
     const Block* _tail;
 
     // Noncopyable.
-    AllocateList(const AllocateList&);
-    AllocateList& operator=(const AllocateList&);
+    AllocationList(const AllocationList&);
+    AllocationList& operator=(const AllocationList&);
 
   public:
-    AllocateList();
-    ~AllocateList();
+    AllocationList();
+    ~AllocationList();
 
     Block* head();
     Block* tail();
@@ -219,10 +219,10 @@
 private:
   const char* _name;
   ActiveArray* _active_array;
-  AllocateList _allocate_list;
+  AllocationList _allocation_list;
   Block* volatile _deferred_updates;
 
-  Mutex* _allocate_mutex;
+  Mutex* _allocation_mutex;
   Mutex* _active_mutex;
 
   // Volatile for racy unlocked accesses.
--- a/src/hotspot/share/gc/shared/oopStorage.inline.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/gc/shared/oopStorage.inline.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -107,10 +107,10 @@
   return *block_ptr(index);
 }
 
-// A Block has an embedded AllocateEntry to provide the links between
-// Blocks in a AllocateList.
-class OopStorage::AllocateEntry {
-  friend class OopStorage::AllocateList;
+// A Block has an embedded AllocationListEntry to provide the links between
+// Blocks in an AllocationList.
+class OopStorage::AllocationListEntry {
+  friend class OopStorage::AllocationList;
 
   // Members are mutable, and we deal exclusively with pointers to
   // const, to make const blocks easier to use; a block being const
@@ -119,18 +119,18 @@
   mutable const Block* _next;
 
   // Noncopyable.
-  AllocateEntry(const AllocateEntry&);
-  AllocateEntry& operator=(const AllocateEntry&);
+  AllocationListEntry(const AllocationListEntry&);
+  AllocationListEntry& operator=(const AllocationListEntry&);
 
 public:
-  AllocateEntry();
-  ~AllocateEntry();
+  AllocationListEntry();
+  ~AllocationListEntry();
 };
 
 // Fixed-sized array of oops, plus bookkeeping data.
 // All blocks are in the storage's _active_array, at the block's _active_index.
-// Non-full blocks are in the storage's _allocate_list, linked through the
-// block's _allocate_entry.  Empty blocks are at the end of that list.
+// Non-full blocks are in the storage's _allocation_list, linked through the
+// block's _allocation_list_entry.  Empty blocks are at the end of that list.
 class OopStorage::Block /* No base class, to avoid messing up alignment. */ {
   // _data must be the first non-static data member, for alignment.
   oop _data[BitsPerWord];
@@ -140,7 +140,7 @@
   const OopStorage* _owner;
   void* _memory;              // Unaligned storage containing block.
   size_t _active_index;
-  AllocateEntry _allocate_entry;
+  AllocationListEntry _allocation_list_entry;
   Block* volatile _deferred_updates_next;
   volatile uintx _release_refcount;
 
@@ -158,7 +158,7 @@
   Block& operator=(const Block&);
 
 public:
-  const AllocateEntry& allocate_entry() const;
+  const AllocationListEntry& allocation_list_entry() const;
 
   static size_t allocation_size();
   static size_t allocation_alignment_shift();
@@ -197,36 +197,36 @@
   template<typename F> bool iterate(F f) const;
 }; // class Block
 
-inline OopStorage::Block* OopStorage::AllocateList::head() {
+inline OopStorage::Block* OopStorage::AllocationList::head() {
   return const_cast<Block*>(_head);
 }
 
-inline OopStorage::Block* OopStorage::AllocateList::tail() {
+inline OopStorage::Block* OopStorage::AllocationList::tail() {
   return const_cast<Block*>(_tail);
 }
 
-inline const OopStorage::Block* OopStorage::AllocateList::chead() const {
+inline const OopStorage::Block* OopStorage::AllocationList::chead() const {
   return _head;
 }
 
-inline const OopStorage::Block* OopStorage::AllocateList::ctail() const {
+inline const OopStorage::Block* OopStorage::AllocationList::ctail() const {
   return _tail;
 }
 
-inline OopStorage::Block* OopStorage::AllocateList::prev(Block& block) {
-  return const_cast<Block*>(block.allocate_entry()._prev);
+inline OopStorage::Block* OopStorage::AllocationList::prev(Block& block) {
+  return const_cast<Block*>(block.allocation_list_entry()._prev);
 }
 
-inline OopStorage::Block* OopStorage::AllocateList::next(Block& block) {
-  return const_cast<Block*>(block.allocate_entry()._next);
+inline OopStorage::Block* OopStorage::AllocationList::next(Block& block) {
+  return const_cast<Block*>(block.allocation_list_entry()._next);
 }
 
-inline const OopStorage::Block* OopStorage::AllocateList::prev(const Block& block) const {
-  return block.allocate_entry()._prev;
+inline const OopStorage::Block* OopStorage::AllocationList::prev(const Block& block) const {
+  return block.allocation_list_entry()._prev;
 }
 
-inline const OopStorage::Block* OopStorage::AllocateList::next(const Block& block) const {
-  return block.allocate_entry()._next;
+inline const OopStorage::Block* OopStorage::AllocationList::next(const Block& block) const {
+  return block.allocation_list_entry()._next;
 }
 
 template<typename Closure>
@@ -298,8 +298,8 @@
 
 // Inline Block accesses for use in iteration loops.
 
-inline const OopStorage::AllocateEntry& OopStorage::Block::allocate_entry() const {
-  return _allocate_entry;
+inline const OopStorage::AllocationListEntry& OopStorage::Block::allocation_list_entry() const {
+  return _allocation_list_entry;
 }
 
 inline void OopStorage::Block::check_index(unsigned index) const {
--- a/src/hotspot/share/gc/shared/oopStorageParState.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/gc/shared/oopStorageParState.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -52,7 +52,7 @@
 // interfering with with each other.
 //
 // Both allocate() and delete_empty_blocks_concurrent() lock the
-// _allocate_mutex while performing their respective list and array
+// _allocation_mutex while performing their respective list and array
 // manipulations, preventing them from interfering with each other.
 //
 // When allocate() creates a new block, it is added to the end of the
--- a/src/hotspot/share/gc/shared/referenceProcessorPhaseTimes.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/gc/shared/referenceProcessorPhaseTimes.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -80,8 +80,7 @@
 STATIC_ASSERT((REF_PHANTOM + 1) == ARRAY_SIZE(ReferenceTypeNames));
 
 static const char* phase_enum_2_phase_string(ReferenceProcessor::RefProcPhases phase) {
-  assert(phase >= ReferenceProcessor::RefPhase1 && phase <= ReferenceProcessor::RefPhaseMax,
-         "Invalid reference processing phase (%d)", phase);
+  ASSERT_PHASE(phase);
   return PhaseNames[phase];
 }
 
--- a/src/hotspot/share/gc/shared/space.inline.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/gc/shared/space.inline.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -25,6 +25,7 @@
 #ifndef SHARE_VM_GC_SHARED_SPACE_INLINE_HPP
 #define SHARE_VM_GC_SHARED_SPACE_INLINE_HPP
 
+#include "gc/shared/blockOffsetTable.inline.hpp"
 #include "gc/shared/collectedHeap.hpp"
 #include "gc/shared/generation.hpp"
 #include "gc/shared/space.hpp"
--- a/src/hotspot/share/gc/shared/taskqueue.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/gc/shared/taskqueue.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -61,10 +61,11 @@
 public:
   inline TaskQueueStats()       { reset(); }
 
-  inline void record_push()     { ++_stats[push]; }
-  inline void record_pop()      { ++_stats[pop]; }
-  inline void record_pop_slow() { record_pop(); ++_stats[pop_slow]; }
-  inline void record_steal(bool success);
+  inline void record_push()          { ++_stats[push]; }
+  inline void record_pop()           { ++_stats[pop]; }
+  inline void record_pop_slow()      { record_pop(); ++_stats[pop_slow]; }
+  inline void record_steal_attempt() { ++_stats[steal_attempt]; }
+  inline void record_steal()         { ++_stats[steal]; }
   inline void record_overflow(size_t new_length);
 
   TaskQueueStats & operator +=(const TaskQueueStats & addend);
@@ -87,11 +88,6 @@
   static const char * const _names[last_stat_id];
 };
 
-void TaskQueueStats::record_steal(bool success) {
-  ++_stats[steal_attempt];
-  if (success) ++_stats[steal];
-}
-
 void TaskQueueStats::record_overflow(size_t new_len) {
   ++_stats[overflow];
   if (new_len > _stats[overflow_max_len]) _stats[overflow_max_len] = new_len;
@@ -364,18 +360,19 @@
 
 template<class T, MEMFLAGS F>
 class GenericTaskQueueSet: public TaskQueueSetSuperImpl<F> {
+public:
+  typedef typename T::element_type E;
+
 private:
   uint _n;
   T** _queues;
 
+  bool steal_best_of_2(uint queue_num, int* seed, E& t);
+
 public:
-  typedef typename T::element_type E;
-
   GenericTaskQueueSet(int n);
   ~GenericTaskQueueSet();
 
-  bool steal_best_of_2(uint queue_num, int* seed, E& t);
-
   void register_queue(uint i, T* q);
 
   T* queue(uint n);
--- a/src/hotspot/share/gc/shared/taskqueue.inline.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/gc/shared/taskqueue.inline.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -252,12 +252,12 @@
 template<class T, MEMFLAGS F> bool
 GenericTaskQueueSet<T, F>::steal(uint queue_num, int* seed, E& t) {
   for (uint i = 0; i < 2 * _n; i++) {
+    TASKQUEUE_STATS_ONLY(queue(queue_num)->stats.record_steal_attempt());
     if (steal_best_of_2(queue_num, seed, t)) {
-      TASKQUEUE_STATS_ONLY(queue(queue_num)->stats.record_steal(true));
+      TASKQUEUE_STATS_ONLY(queue(queue_num)->stats.record_steal());
       return true;
     }
   }
-  TASKQUEUE_STATS_ONLY(queue(queue_num)->stats.record_steal(false));
   return false;
 }
 
--- a/src/hotspot/share/gc/z/zDirector.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/gc/z/zDirector.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -81,7 +81,7 @@
   // Perform GC if heap usage passes 10/20/30% and no other GC has been
   // performed yet. This allows us to get some early samples of the GC
   // duration, which is needed by the other rules.
-  const size_t max_capacity = ZHeap::heap()->max_capacity();
+  const size_t max_capacity = ZHeap::heap()->current_max_capacity();
   const size_t used = ZHeap::heap()->used();
   const double used_threshold_percent = (ZStatCycle::ncycles() + 1) * 0.1;
   const size_t used_threshold = max_capacity * used_threshold_percent;
@@ -107,7 +107,7 @@
   // Calculate amount of free memory available to Java threads. Note that
   // the heap reserve is not available to Java threads and is therefore not
   // considered part of the free memory.
-  const size_t max_capacity = ZHeap::heap()->max_capacity();
+  const size_t max_capacity = ZHeap::heap()->current_max_capacity();
   const size_t max_reserve = ZHeap::heap()->max_reserve();
   const size_t used = ZHeap::heap()->used();
   const size_t free_with_reserve = max_capacity - used;
@@ -155,7 +155,7 @@
   // passed since the previous GC. This helps avoid superfluous GCs when running
   // applications with very low allocation rate.
   const size_t used_after_last_gc = ZStatHeap::used_at_relocate_end();
-  const size_t used_increase_threshold = ZHeap::heap()->max_capacity() * 0.10; // 10%
+  const size_t used_increase_threshold = ZHeap::heap()->current_max_capacity() * 0.10; // 10%
   const size_t used_threshold = used_after_last_gc + used_increase_threshold;
   const size_t used = ZHeap::heap()->used();
   const double time_since_last_gc = ZStatCycle::time_since_last();
--- a/src/hotspot/share/gc/z/zHash.inline.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/gc/z/zHash.inline.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -21,6 +21,38 @@
  * questions.
  */
 
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file:
+ *
+ *  (C) 2009 by Remo Dentato (rdentato@gmail.com)
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *     * Redistributions of source code must retain the above copyright notice,
+ *       this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright notice,
+ *       this list of conditions and the following disclaimer in the documentation
+ *       and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * http://opensource.org/licenses/bsd-license.php
+ */
+
 #ifndef SHARE_GC_Z_ZHASH_INLINE_HPP
 #define SHARE_GC_Z_ZHASH_INLINE_HPP
 
--- a/src/hotspot/share/gc/z/zHeap.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/gc/z/zHeap.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -107,6 +107,10 @@
   return _page_allocator.max_capacity();
 }
 
+size_t ZHeap::current_max_capacity() const {
+  return _page_allocator.current_max_capacity();
+}
+
 size_t ZHeap::capacity() const {
   return _page_allocator.capacity();
 }
--- a/src/hotspot/share/gc/z/zHeap.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/gc/z/zHeap.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -79,6 +79,7 @@
   // Heap metrics
   size_t min_capacity() const;
   size_t max_capacity() const;
+  size_t current_max_capacity() const;
   size_t capacity() const;
   size_t max_reserve() const;
   size_t used_high() const;
--- a/src/hotspot/share/gc/z/zPageAllocator.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/gc/z/zPageAllocator.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -84,11 +84,12 @@
 ZPage* const ZPageAllocator::gc_marker = (ZPage*)-1;
 
 ZPageAllocator::ZPageAllocator(size_t min_capacity, size_t max_capacity, size_t max_reserve) :
+    _lock(),
     _virtual(),
     _physical(max_capacity, ZPageSizeMin),
     _cache(),
-    _pre_mapped(_virtual, _physical, min_capacity),
     _max_reserve(max_reserve),
+    _pre_mapped(_virtual, _physical, try_ensure_unused_for_pre_mapped(min_capacity)),
     _used_high(0),
     _used_low(0),
     _used(0),
@@ -107,6 +108,10 @@
   return _physical.max_capacity();
 }
 
+size_t ZPageAllocator::current_max_capacity() const {
+  return _physical.current_max_capacity();
+}
+
 size_t ZPageAllocator::capacity() const {
   return _physical.capacity();
 }
@@ -169,18 +174,43 @@
   }
 }
 
-size_t ZPageAllocator::available(ZAllocationFlags flags) const {
-  size_t available = max_capacity() - used();
-  assert(_physical.available() + _pre_mapped.available() + _cache.available()  == available, "Should be equal");
+size_t ZPageAllocator::max_available(bool no_reserve) const {
+  size_t available = current_max_capacity() - used();
 
-  if (flags.no_reserve()) {
-    // The memory reserve should not be considered free
+  if (no_reserve) {
+    // The reserve should not be considered available
     available -= MIN2(available, max_reserve());
   }
 
   return available;
 }
 
+size_t ZPageAllocator::try_ensure_unused(size_t size, bool no_reserve) {
+  // Ensure that we always have space available for the reserve. This
+  // is needed to avoid losing the reserve because of failure to map
+  // more memory before reaching max capacity.
+  _physical.try_ensure_unused_capacity(size + max_reserve());
+
+  size_t unused = _physical.unused_capacity();
+
+  if (no_reserve) {
+    // The reserve should not be considered unused
+    unused -= MIN2(unused, max_reserve());
+  }
+
+  return MIN2(size, unused);
+}
+
+size_t ZPageAllocator::try_ensure_unused_for_pre_mapped(size_t size) {
+  // This function is called during construction, where the
+  // physical memory manager might have failed to initialied.
+  if (!_physical.is_initialized()) {
+    return 0;
+  }
+
+  return try_ensure_unused(size, true /* no_reserve */);
+}
+
 ZPage* ZPageAllocator::create_page(uint8_t type, size_t size) {
   // Allocate physical memory
   const ZPhysicalMemory pmem = _physical.alloc(size);
@@ -259,8 +289,8 @@
 }
 
 ZPage* ZPageAllocator::alloc_page_common_inner(uint8_t type, size_t size, ZAllocationFlags flags) {
-  const size_t available_total = available(flags);
-  if (available_total < size) {
+  const size_t max = max_available(flags.no_reserve());
+  if (max < size) {
     // Not enough free memory
     return NULL;
   }
@@ -281,11 +311,11 @@
   // subsequent allocations can use the physical memory.
   flush_pre_mapped();
 
-  // Check if physical memory is available
-  const size_t available_physical = _physical.available();
-  if (available_physical < size) {
+  // Try ensure that physical memory is available
+  const size_t unused = try_ensure_unused(size, flags.no_reserve());
+  if (unused < size) {
     // Flush cache to free up more physical memory
-    flush_cache(size - available_physical);
+    flush_cache(size - unused);
   }
 
   // Create new page and allocate physical memory
@@ -303,7 +333,7 @@
   increase_used(size, flags.relocation());
 
   // Send trace event
-  ZTracer::tracer()->report_page_alloc(size, used(), available(flags), _cache.available(), flags);
+  ZTracer::tracer()->report_page_alloc(size, used(), max_available(flags.no_reserve()), _cache.available(), flags);
 
   return page;
 }
--- a/src/hotspot/share/gc/z/zPageAllocator.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/gc/z/zPageAllocator.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -43,8 +43,8 @@
   ZVirtualMemoryManager    _virtual;
   ZPhysicalMemoryManager   _physical;
   ZPageCache               _cache;
+  const size_t             _max_reserve;
   ZPreMappedMemory         _pre_mapped;
-  const size_t             _max_reserve;
   size_t                   _used_high;
   size_t                   _used_low;
   size_t                   _used;
@@ -58,7 +58,9 @@
   void increase_used(size_t size, bool relocation);
   void decrease_used(size_t size, bool reclaimed);
 
-  size_t available(ZAllocationFlags flags) const;
+  size_t max_available(bool no_reserve) const;
+  size_t try_ensure_unused(size_t size, bool no_reserve);
+  size_t try_ensure_unused_for_pre_mapped(size_t size);
 
   ZPage* create_page(uint8_t type, size_t size);
   void map_page(ZPage* page);
@@ -83,6 +85,7 @@
   bool is_initialized() const;
 
   size_t max_capacity() const;
+  size_t current_max_capacity() const;
   size_t capacity() const;
   size_t max_reserve() const;
   size_t used_high() const;
--- a/src/hotspot/share/gc/z/zPhysicalMemory.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/gc/z/zPhysicalMemory.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,6 +27,7 @@
 #include "memory/allocation.inline.hpp"
 #include "services/memTracker.hpp"
 #include "utilities/debug.hpp"
+#include "utilities/globalDefinitions.hpp"
 
 ZPhysicalMemory::ZPhysicalMemory() :
     _nsegments(0),
@@ -93,6 +94,7 @@
 ZPhysicalMemoryManager::ZPhysicalMemoryManager(size_t max_capacity, size_t granule_size) :
     _backing(max_capacity, granule_size),
     _max_capacity(max_capacity),
+    _current_max_capacity(max_capacity),
     _capacity(0),
     _used(0) {}
 
@@ -100,31 +102,34 @@
   return _backing.is_initialized();
 }
 
-bool ZPhysicalMemoryManager::ensure_available(size_t size) {
-  const size_t unused_capacity = _capacity - _used;
-  if (unused_capacity >= size) {
-    // Enough unused capacity available
-    return true;
+void ZPhysicalMemoryManager::try_ensure_unused_capacity(size_t size) {
+  const size_t unused = unused_capacity();
+  if (unused >= size) {
+    // Don't try to expand, enough unused capacity available
+    return;
+  }
+
+  const size_t current_max = current_max_capacity();
+  if (_capacity == current_max) {
+    // Don't try to expand, current max capacity reached
+    return;
   }
 
-  const size_t expand_with = size - unused_capacity;
-  const size_t new_capacity = _capacity + expand_with;
-  if (new_capacity > _max_capacity) {
-    // Can not expand beyond max capacity
-    return false;
-  }
+  // Try to expand
+  const size_t old_capacity = capacity();
+  const size_t new_capacity = MIN2(old_capacity + size - unused, current_max);
+  _capacity = _backing.try_expand(old_capacity, new_capacity);
 
-  // Expand
-  if (!_backing.expand(_capacity, new_capacity)) {
-    log_error(gc)("Failed to expand Java heap with " SIZE_FORMAT "%s",
-                  byte_size_in_proper_unit(expand_with),
-                  proper_unit_for_byte_size(expand_with));
-    return false;
+  if (_capacity != new_capacity) {
+    // Failed, or partly failed, to expand
+    log_error(gc, init)("Not enough space available on the backing filesystem to hold the current max");
+    log_error(gc, init)("Java heap size (" SIZE_FORMAT "M). Forcefully lowering max Java heap size to "
+                        SIZE_FORMAT "M (%.0lf%%).", current_max / M, _capacity / M,
+                        percent_of(_capacity, current_max));
+
+    // Adjust current max capacity to avoid further expand attempts
+    _current_max_capacity = _capacity;
   }
-
-  _capacity = new_capacity;
-
-  return true;
 }
 
 void ZPhysicalMemoryManager::nmt_commit(ZPhysicalMemory pmem, uintptr_t offset) {
@@ -144,7 +149,7 @@
 }
 
 ZPhysicalMemory ZPhysicalMemoryManager::alloc(size_t size) {
-  if (!ensure_available(size)) {
+  if (unused_capacity() < size) {
     // Not enough memory available
     return ZPhysicalMemory();
   }
--- a/src/hotspot/share/gc/z/zPhysicalMemory.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/gc/z/zPhysicalMemory.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -70,11 +70,10 @@
 private:
   ZPhysicalMemoryBacking _backing;
   const size_t           _max_capacity;
+  size_t                 _current_max_capacity;
   size_t                 _capacity;
   size_t                 _used;
 
-  bool ensure_available(size_t size);
-
   void nmt_commit(ZPhysicalMemory pmem, uintptr_t offset);
   void nmt_uncommit(ZPhysicalMemory pmem, uintptr_t offset);
 
@@ -84,9 +83,11 @@
   bool is_initialized() const;
 
   size_t max_capacity() const;
+  size_t current_max_capacity() const;
   size_t capacity() const;
-  size_t used() const;
-  size_t available() const;
+  size_t unused_capacity() const;
+
+  void try_ensure_unused_capacity(size_t size);
 
   ZPhysicalMemory alloc(size_t size);
   void free(ZPhysicalMemory pmem);
--- a/src/hotspot/share/gc/z/zPhysicalMemory.inline.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/gc/z/zPhysicalMemory.inline.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -71,16 +71,16 @@
   return _max_capacity;
 }
 
+inline size_t ZPhysicalMemoryManager::current_max_capacity() const {
+  return _current_max_capacity;
+}
+
 inline size_t ZPhysicalMemoryManager::capacity() const {
   return _capacity;
 }
 
-inline size_t ZPhysicalMemoryManager::used() const {
-  return _used;
-}
-
-inline size_t ZPhysicalMemoryManager::available() const {
-  return _max_capacity - _used;
+inline size_t ZPhysicalMemoryManager::unused_capacity() const {
+  return _capacity - _used;
 }
 
 #endif // SHARE_GC_Z_ZPHYSICALMEMORY_INLINE_HPP
--- a/src/hotspot/share/gc/z/zPreMappedMemory.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/gc/z/zPreMappedMemory.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -42,22 +42,26 @@
   log_info(gc, init)("Pre-touching: %s", AlwaysPreTouch ? "Enabled" : "Disabled");
   log_info(gc, init)("Pre-mapping: " SIZE_FORMAT "M", size / M);
 
-  _pmem = pmm.alloc(size);
-  if (_pmem.is_null()) {
-    // Out of memory
-    return;
-  }
+  if (size > 0) {
+    _pmem = pmm.alloc(size);
+    if (_pmem.is_null()) {
+      // Out of memory
+      log_error(gc, init)("Failed to pre-map Java heap (Cannot allocate physical memory)");
+      return;
+    }
 
-  _vmem = vmm.alloc(size, true /* alloc_from_front */);
-  if (_vmem.is_null()) {
-    // Out of address space
-    pmm.free(_pmem);
-    return;
+    _vmem = vmm.alloc(size, true /* alloc_from_front */);
+    if (_vmem.is_null()) {
+      // Out of address space
+      log_error(gc, init)("Failed to pre-map Java heap (Cannot allocate virtual memory)");
+      pmm.free(_pmem);
+      return;
+    }
+
+    // Map physical memory
+    pmm.map(_pmem, _vmem.start());
   }
 
-  // Map physical memory
-  pmm.map(_pmem, _vmem.start());
-
   _initialized = true;
 }
 
--- a/src/hotspot/share/include/jvm.h	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/include/jvm.h	Mon Jul 16 12:11:02 2018 +0100
@@ -171,6 +171,8 @@
 JNIEXPORT jobjectArray JNICALL
 JVM_GetVmArguments(JNIEnv *env);
 
+JNIEXPORT void JNICALL
+JVM_InitializeFromArchive(JNIEnv* env, jclass cls);
 
 /*
  * java.lang.Throwable
--- a/src/hotspot/share/interpreter/bytecodeInterpreter.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/interpreter/bytecodeInterpreter.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -494,13 +494,13 @@
   interpreterState orig = istate;
 #endif
 
-  register intptr_t*        topOfStack = (intptr_t *)istate->stack(); /* access with STACK macros */
-  register address          pc = istate->bcp();
-  register jubyte opcode;
-  register intptr_t*        locals = istate->locals();
-  register ConstantPoolCache*    cp = istate->constants(); // method()->constants()->cache()
+  intptr_t*        topOfStack = (intptr_t *)istate->stack(); /* access with STACK macros */
+  address          pc = istate->bcp();
+  jubyte opcode;
+  intptr_t*        locals = istate->locals();
+  ConstantPoolCache*    cp = istate->constants(); // method()->constants()->cache()
 #ifdef LOTS_OF_REGS
-  register JavaThread*      THREAD = istate->thread();
+  JavaThread*      THREAD = istate->thread();
 #else
 #undef THREAD
 #define THREAD istate->thread()
@@ -589,7 +589,7 @@
 /* 0xF8 */ &&opc_default,     &&opc_default,        &&opc_default,      &&opc_default,
 /* 0xFC */ &&opc_default,     &&opc_default,        &&opc_default,      &&opc_default
   };
-  register uintptr_t *dispatch_table = (uintptr_t*)&opclabels_data[0];
+  uintptr_t *dispatch_table = (uintptr_t*)&opclabels_data[0];
 #endif /* USELABELS */
 
 #ifdef ASSERT
--- a/src/hotspot/share/interpreter/linkResolver.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/interpreter/linkResolver.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1221,17 +1221,14 @@
       // check if the method is not <init>
       resolved_method->name() != vmSymbols::object_initializer_name()) {
 
-     // check if this is an old-style super call and do a new lookup if so
-     // a) check if ACC_SUPER flag is set for the current class
     Klass* current_klass = link_info.current_klass();
-    if ((current_klass->is_super() || !AllowNonVirtualCalls) &&
-        // b) check if the class of the resolved_klass is a superclass
-        // (not supertype in order to exclude interface classes) of the current class.
-        // This check is not performed for super.invoke for interface methods
-        // in super interfaces.
-        current_klass->is_subclass_of(resolved_klass) &&
-        current_klass != resolved_klass
-        ) {
+
+    // Check if the class of the resolved_klass is a superclass
+    // (not supertype in order to exclude interface classes) of the current class.
+    // This check is not performed for super.invoke for interface methods
+    // in super interfaces.
+    if (current_klass->is_subclass_of(resolved_klass) &&
+        current_klass != resolved_klass) {
       // Lookup super method
       Klass* super_klass = current_klass->super();
       sel_method = lookup_instance_method_in_klasses(super_klass,
--- a/src/hotspot/share/interpreter/templateInterpreterGenerator.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/interpreter/templateInterpreterGenerator.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -23,6 +23,7 @@
  */
 
 #include "precompiled.hpp"
+#include "compiler/disassembler.hpp"
 #include "interpreter/interpreter.hpp"
 #include "interpreter/interpreterRuntime.hpp"
 #include "interpreter/interp_masm.hpp"
@@ -33,7 +34,7 @@
 
 #ifndef CC_INTERP
 
-# define __ _masm->
+#define __ Disassembler::hook<InterpreterMacroAssembler>(__FILE__, __LINE__, _masm)->
 
 TemplateInterpreterGenerator::TemplateInterpreterGenerator(StubQueue* _code): AbstractInterpreterGenerator(_code) {
   _unimplemented_bytecode    = NULL;
--- a/src/hotspot/share/jfr/jfr.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/jfr/jfr.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -26,10 +26,10 @@
 #include "jfr/jfr.hpp"
 #include "jfr/leakprofiler/leakProfiler.hpp"
 #include "jfr/periodic/sampling/jfrThreadSampler.hpp"
-#include "jfr/recorder/service/jfrOptionSet.hpp"
 #include "jfr/recorder/jfrRecorder.hpp"
 #include "jfr/recorder/checkpoint/jfrCheckpointManager.hpp"
 #include "jfr/recorder/repository/jfrEmergencyDump.hpp"
+#include "jfr/recorder/service/jfrOptionSet.hpp"
 #include "jfr/support/jfrThreadLocal.hpp"
 #include "runtime/java.hpp"
 
@@ -64,9 +64,7 @@
 }
 
 void Jfr::on_thread_exit(JavaThread* thread) {
-  if (JfrRecorder::is_recording()) {
-    JfrThreadLocal::on_exit(thread);
-  }
+  JfrThreadLocal::on_exit(thread);
 }
 
 void Jfr::on_thread_destruct(Thread* thread) {
--- a/src/hotspot/share/jfr/leakprofiler/utilities/saveRestore.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/jfr/leakprofiler/utilities/saveRestore.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -74,7 +74,6 @@
 
 CLDClaimContext::~CLDClaimContext() {
   if (_cld != NULL) {
-    assert(!_cld->claimed(), "invariant");
     _cld->claim();
     assert(_cld->claimed(), "invariant");
   }
--- a/src/hotspot/share/jfr/recorder/checkpoint/types/jfrType.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/jfr/recorder/checkpoint/types/jfrType.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -60,22 +60,32 @@
 #include "gc/g1/g1YCTypes.hpp"
 #endif
 
-class JfrCheckpointThreadCountClosure : public ThreadClosure {
-private:
-  u4 _total_threads;
-public:
-  JfrCheckpointThreadCountClosure() : _total_threads(0) {}
-  u4 total_threads() { return _total_threads; }
-  void do_thread(Thread *t) { _total_threads++; }
-};
-
 // Requires a ResourceMark for get_thread_name/as_utf8
 class JfrCheckpointThreadClosure : public ThreadClosure {
  private:
   JfrCheckpointWriter& _writer;
-  Thread* _curthread;
+  JfrCheckpointContext _ctx;
+  const intptr_t _count_position;
+  Thread* const _curthread;
+  u4 _count;
+
  public:
-  JfrCheckpointThreadClosure(JfrCheckpointWriter& writer) : _writer(writer), _curthread(Thread::current()) {}
+  JfrCheckpointThreadClosure(JfrCheckpointWriter& writer) : _writer(writer),
+                                                            _ctx(writer.context()),
+                                                            _count_position(writer.reserve(sizeof(u4))),
+                                                            _curthread(Thread::current()),
+                                                            _count(0) {
+  }
+
+  ~JfrCheckpointThreadClosure() {
+    if (_count == 0) {
+      // restore
+      _writer.set_context(_ctx);
+      return;
+    }
+    _writer.write_count(_count, _count_position);
+  }
+
   void do_thread(Thread* t);
 };
 
@@ -83,10 +93,16 @@
 void JfrCheckpointThreadClosure::do_thread(Thread* t) {
   assert(t != NULL, "invariant");
   assert_locked_or_safepoint(Threads_lock);
-  _writer.write_key(t->jfr_thread_local()->thread_id());
+  const JfrThreadLocal* const tl = t->jfr_thread_local();
+  assert(tl != NULL, "invariant");
+  if (tl->is_dead()) {
+    return;
+  }
+  ++_count;
+  _writer.write_key(tl->thread_id());
   _writer.write(t->name());
   const OSThread* const os_thread = t->osthread();
-  _writer.write<traceid>(os_thread != NULL ? os_thread->thread_id() : (u8)0);
+  _writer.write<traceid>(os_thread != NULL ? os_thread->thread_id() : 0);
   if (t->is_Java_thread()) {
     JavaThread* const jt = (JavaThread*)t;
     _writer.write(jt->name());
@@ -97,17 +113,12 @@
     return;
   }
   _writer.write((const char*)NULL); // java name
-  _writer.write<traceid>((traceid)0); // java thread id
-  _writer.write<traceid>((traceid)0); // java thread group
+  _writer.write((traceid)0); // java thread id
+  _writer.write((traceid)0); // java thread group
 }
 
 void JfrThreadConstantSet::serialize(JfrCheckpointWriter& writer) {
   assert(SafepointSynchronize::is_at_safepoint(), "invariant");
-  JfrCheckpointThreadCountClosure tcc;
-  Threads::threads_do(&tcc);
-  const u4 total_threads = tcc.total_threads();
-  // THREADS
-  writer.write_count(total_threads);
   JfrCheckpointThreadClosure tc(writer);
   Threads::threads_do(&tc);
 }
@@ -334,7 +345,7 @@
   writer.write_count(1);
   writer.write_key(_thread->jfr_thread_local()->thread_id());
   writer.write(thread_name);
-  writer.write((u8)_thread->osthread()->thread_id());
+  writer.write((traceid)_thread->osthread()->thread_id());
   writer.write(thread_name);
   writer.write(java_lang_thread_id);
   writer.write(thread_group_id);
--- a/src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeManager.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeManager.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -148,9 +148,8 @@
 }
 
 void JfrTypeManager::write_type_set() {
-  assert(!SafepointSynchronize::is_at_safepoint(), "invariant");
   // can safepoint here because of Module_lock
-  MutexLockerEx lock(Module_lock);
+  MutexLockerEx lock(SafepointSynchronize::is_at_safepoint() ? NULL : Module_lock);
   JfrCheckpointWriter writer(true, true, Thread::current());
   TypeSet set;
   set.serialize(writer);
--- a/src/hotspot/share/jfr/support/jfrThreadLocal.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/jfr/support/jfrThreadLocal.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -23,8 +23,9 @@
  */
 
 #include "precompiled.hpp"
+#include "jfr/jni/jfrJavaSupport.hpp"
 #include "jfr/periodic/jfrThreadCPULoadEvent.hpp"
-#include "jfr/jni/jfrJavaSupport.hpp"
+#include "jfr/recorder/jfrRecorder.hpp"
 #include "jfr/recorder/checkpoint/jfrCheckpointManager.hpp"
 #include "jfr/recorder/checkpoint/types/traceid/jfrTraceId.inline.hpp"
 #include "jfr/recorder/service/jfrOptionSet.hpp"
@@ -51,7 +52,8 @@
   _wallclock_time(os::javaTimeNanos()),
   _stack_trace_hash(0),
   _stackdepth(0),
-  _entering_suspend_flag(0) {}
+  _entering_suspend_flag(0),
+  _dead(false) {}
 
 u8 JfrThreadLocal::add_data_lost(u8 value) {
   _data_lost += value;
@@ -71,9 +73,17 @@
   return _thread_cp;
 }
 
+void JfrThreadLocal::set_dead() {
+  assert(!is_dead(), "invariant");
+  _dead = true;
+}
+
 void JfrThreadLocal::on_exit(JavaThread* thread) {
-  JfrCheckpointManager::write_thread_checkpoint(thread);
-  JfrThreadCPULoadEvent::send_event_for_thread(thread);
+  if (JfrRecorder::is_recording()) {
+    JfrCheckpointManager::write_thread_checkpoint(thread);
+    JfrThreadCPULoadEvent::send_event_for_thread(thread);
+  }
+  thread->jfr_thread_local()->set_dead();
 }
 
 void JfrThreadLocal::on_destruct(Thread* thread) {
--- a/src/hotspot/share/jfr/support/jfrThreadLocal.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/jfr/support/jfrThreadLocal.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -50,11 +50,14 @@
   unsigned int _stack_trace_hash;
   mutable u4 _stackdepth;
   volatile jint _entering_suspend_flag;
+  bool _dead;
 
   JfrBuffer* install_native_buffer() const;
   JfrBuffer* install_java_buffer() const;
   JfrStackFrame* install_stackframes() const;
 
+  void set_dead();
+
  public:
   JfrThreadLocal();
 
@@ -202,6 +205,10 @@
     _trace_id = id;
   }
 
+  bool is_dead() const {
+    return _dead;
+  }
+
   bool has_thread_checkpoint() const;
   void set_thread_checkpoint(const JfrCheckpointBlobHandle& handle);
   const JfrCheckpointBlobHandle& thread_checkpoint() const;
--- a/src/hotspot/share/jvmci/jvmciCodeInstaller.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/jvmci/jvmciCodeInstaller.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -236,6 +236,8 @@
 
   JVMCIKlassHandle klass(THREAD);
   oop result = NULL;
+  guarantee(h != NULL,
+            "If DebugInformationRecorder::describe_scope passes NULL oldCount == newCount must hold.");
   if (h->is_klass()) {
     klass = (Klass*) h;
     result = CompilerToVM::get_jvmci_type(klass, CATCH);
--- a/src/hotspot/share/jvmci/jvmciCompilerToVM.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/jvmci/jvmciCompilerToVM.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -349,7 +349,9 @@
     klass = *((Klass**) (intptr_t) (base_address + offset));
   } else {
     THROW_MSG_0(vmSymbols::java_lang_IllegalArgumentException(),
-                err_msg("Unexpected arguments: %s " JLONG_FORMAT " %s", base_object->klass()->external_name(), offset, compressed ? "true" : "false"));
+                err_msg("Unexpected arguments: %s " JLONG_FORMAT " %s",
+                        base_object != NULL ? base_object->klass()->external_name() : "null",
+                        offset, compressed ? "true" : "false"));
   }
   assert (klass == NULL || klass->is_klass(), "invalid read");
   oop result = CompilerToVM::get_jvmci_type(klass, CHECK_NULL);
--- a/src/hotspot/share/libadt/dict.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/libadt/dict.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -305,9 +305,9 @@
 // limited to MAXID characters in length.  Experimental evidence on 150K of
 // C text shows excellent spreading of values for any size hash table.
 int hashstr(const void *t) {
-  register char c, k = 0;
-  register int32_t sum = 0;
-  register const char *s = (const char *)t;
+  char c, k = 0;
+  int32_t sum = 0;
+  const char *s = (const char *)t;
 
   while( ((c = *s++) != '\0') && (k < MAXID-1) ) { // Get characters till null or MAXID-1
     c = (c<<1)+1;               // Characters are always odd!
--- a/src/hotspot/share/libadt/set.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/libadt/set.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -64,7 +64,7 @@
   uint len = 128;               // Total string space
   char *buf = NEW_C_HEAP_ARRAY(char,len, mtCompiler);// Some initial string space
 
-  register char *s = buf;       // Current working string pointer
+  char *s = buf;                // Current working string pointer
   *s++ = '{';
   *s = '\0';
 
@@ -116,8 +116,8 @@
 // Set.  Return the amount of text parsed in "len", or zero in "len".
 int Set::parse(const char *s)
 {
-  register char c;              // Parse character
-  register const char *t = s;   // Save the starting position of s.
+  char c;                       // Parse character
+  const char *t = s;            // Save the starting position of s.
   do c = *s++;                  // Skip characters
   while( c && (c <= ' ') );     // Till no more whitespace or EOS
   if( c != '{' ) return 0;      // Oops, not a Set openner
--- a/src/hotspot/share/libadt/vectset.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/libadt/vectset.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -101,8 +101,8 @@
 // Insert a member into an existing Set.
 Set &VectorSet::operator <<= (uint elem)
 {
-  register uint word = elem >> 5;            // Get the longword offset
-  register uint32_t mask = 1L << (elem & 31);  // Get bit mask
+  uint word = elem >> 5;            // Get the longword offset
+  uint32_t mask = 1L << (elem & 31);  // Get bit mask
 
   if( word >= size )            // Need to grow set?
     grow(elem+1);               // Then grow it
@@ -114,10 +114,10 @@
 // Delete a member from an existing Set.
 Set &VectorSet::operator >>= (uint elem)
 {
-  register uint word = elem >> 5; // Get the longword offset
+  uint word = elem >> 5;          // Get the longword offset
   if( word >= size )              // Beyond the last?
     return *this;                 // Then it's clear & return clear
-  register uint32_t mask = 1L << (elem & 31);     // Get bit mask
+  uint32_t mask = 1L << (elem & 31);     // Get bit mask
   data[word] &= ~mask;            // Clear bit
   return *this;
 }
@@ -128,8 +128,8 @@
 {
   // NOTE: The intersection is never any larger than the smallest set.
   if( s.size < size ) size = s.size; // Get smaller size
-  register uint32_t *u1 = data;   // Pointer to the destination data
-  register uint32_t *u2 = s.data; // Pointer to the source data
+  uint32_t *u1 = data;          // Pointer to the destination data
+  uint32_t *u2 = s.data;        // Pointer to the source data
   for( uint i=0; i<size; i++)   // For data in set
     *u1++ &= *u2++;             // Copy and AND longwords
   return *this;                 // Return set
@@ -147,9 +147,9 @@
 VectorSet &VectorSet::operator |= (const VectorSet &s)
 {
   // This many words must be unioned
-  register uint cnt = ((size<s.size)?size:s.size);
-  register uint32_t *u1 = data;   // Pointer to the destination data
-  register uint32_t *u2 = s.data; // Pointer to the source data
+  uint cnt = ((size<s.size)?size:s.size);
+  uint32_t *u1 = data;          // Pointer to the destination data
+  uint32_t *u2 = s.data;        // Pointer to the source data
   for( uint i=0; i<cnt; i++)    // Copy and OR the two sets
     *u1++ |= *u2++;
   if( size < s.size ) {         // Is set 2 larger than set 1?
@@ -172,9 +172,9 @@
 VectorSet &VectorSet::operator -= (const VectorSet &s)
 {
   // This many words must be unioned
-  register uint cnt = ((size<s.size)?size:s.size);
-  register uint32_t *u1 = data;   // Pointer to the destination data
-  register uint32_t *u2 = s.data; // Pointer to the source data
+  uint cnt = ((size<s.size)?size:s.size);
+  uint32_t *u1 = data;          // Pointer to the destination data
+  uint32_t *u2 = s.data;        // Pointer to the source data
   for( uint i=0; i<cnt; i++ )   // For data in set
     *u1++ &= ~(*u2++);          // A <-- A & ~B  with longwords
   return *this;                 // Return new set
@@ -195,17 +195,17 @@
 //        1X --  B is a subset of A
 int VectorSet::compare (const VectorSet &s) const
 {
-  register uint32_t *u1 = data;   // Pointer to the destination data
-  register uint32_t *u2 = s.data; // Pointer to the source data
-  register uint32_t AnotB = 0, BnotA = 0;
+  uint32_t *u1 = data;          // Pointer to the destination data
+  uint32_t *u2 = s.data;        // Pointer to the source data
+  uint32_t AnotB = 0, BnotA = 0;
   // This many words must be unioned
-  register uint cnt = ((size<s.size)?size:s.size);
+  uint cnt = ((size<s.size)?size:s.size);
 
   // Get bits for both sets
   uint i;                       // Exit value of loop
   for( i=0; i<cnt; i++ ) {      // For data in BOTH sets
-    register uint32_t A = *u1++;  // Data from one guy
-    register uint32_t B = *u2++;  // Data from other guy
+    uint32_t A = *u1++;         // Data from one guy
+    uint32_t B = *u2++;         // Data from other guy
     AnotB |= (A & ~B);          // Compute bits in A not B
     BnotA |= (B & ~A);          // Compute bits in B not A
   }
@@ -245,9 +245,9 @@
   const VectorSet &s = *(set.asVectorSet());
 
   // NOTE: The intersection is never any larger than the smallest set.
-  register uint small_size = ((size<s.size)?size:s.size);
-  register uint32_t *u1 = data;        // Pointer to the destination data
-  register uint32_t *u2 = s.data;      // Pointer to the source data
+  uint small_size = ((size<s.size)?size:s.size);
+  uint32_t *u1 = data;               // Pointer to the destination data
+  uint32_t *u2 = s.data;             // Pointer to the source data
   for( uint i=0; i<small_size; i++)  // For data in set
     if( *u1++ & *u2++ )              // If any elements in common
       return 0;                      // Then not disjoint
@@ -286,11 +286,11 @@
 // Test for membership.  A Zero/Non-Zero value is returned!
 int VectorSet::operator[](uint elem) const
 {
-  register uint word = elem >> 5; // Get the longword offset
-  if( word >= size )              // Beyond the last?
-    return 0;                     // Then it's clear
-  register uint32_t mask = 1L << (elem & 31);  // Get bit mask
-  return ((data[word] & mask))!=0;           // Return the sense of the bit
+  uint word = elem >> 5;              // Get the longword offset
+  if( word >= size )                  // Beyond the last?
+    return 0;                         // Then it's clear
+  uint32_t mask = 1L << (elem & 31);  // Get bit mask
+  return ((data[word] & mask))!=0;    // Return the sense of the bit
 }
 
 //------------------------------getelem----------------------------------------
--- a/src/hotspot/share/logging/logOutput.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/logging/logOutput.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -262,7 +262,9 @@
   while (n_deviates > 0) {
     size_t prev_deviates = n_deviates;
     int max_score = 0;
-    const LogSelection* best_selection = NULL;
+
+    guarantee(n_selections > 0, "Cannot find maximal selection.");
+    const LogSelection* best_selection = &selections[0];
     for (size_t i = 0; i < n_selections; i++) {
 
       // Give the selection a score based on how many deviating tag sets it selects (with correct level)
@@ -287,13 +289,12 @@
 
       // Pick the selection with the best score, or in the case of a tie, the one with fewest tags
       if (score > max_score ||
-          (score == max_score && best_selection != NULL && selections[i].ntags() < best_selection->ntags())) {
+          (score == max_score && selections[i].ntags() < best_selection->ntags())) {
         max_score = score;
         best_selection = &selections[i];
       }
     }
 
-    assert(best_selection != NULL, "must always find a maximal selection");
     add_to_config_string(*best_selection);
 
     // Remove all deviates that this selection covered
--- a/src/hotspot/share/memory/arena.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/memory/arena.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -335,7 +335,7 @@
 // Total of all Chunks in arena
 size_t Arena::used() const {
   size_t sum = _chunk->length() - (_max-_hwm); // Size leftover in this Chunk
-  register Chunk *k = _first;
+  Chunk *k = _first;
   while( k != _chunk) {         // Whilst have Chunks in a row
     sum += k->length();         // Total size of this Chunk
     k = k->next();              // Bump along to next Chunk
--- a/src/hotspot/share/memory/filemap.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/memory/filemap.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -631,7 +631,9 @@
   si->_read_only = read_only;
   si->_allow_exec = allow_exec;
   si->_crc = ClassLoader::crc32(0, base, (jint)size);
-  write_bytes_aligned(base, (int)size);
+  if (base != NULL) {
+    write_bytes_aligned(base, (int)size);
+  }
 }
 
 // Write out the given archive heap memory regions.  GC code combines multiple
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hotspot/share/memory/heapShared.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,506 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 "classfile/javaClasses.inline.hpp"
+#include "classfile/vmSymbols.hpp"
+#include "logging/log.hpp"
+#include "logging/logMessage.hpp"
+#include "logging/logStream.hpp"
+#include "memory/heapShared.hpp"
+#include "memory/iterator.inline.hpp"
+#include "memory/metadataFactory.hpp"
+#include "memory/metaspaceClosure.hpp"
+#include "memory/metaspaceShared.hpp"
+#include "memory/resourceArea.hpp"
+#include "oops/compressedOops.inline.hpp"
+#include "oops/oop.inline.hpp"
+
+#if INCLUDE_CDS_JAVA_HEAP
+KlassSubGraphInfo* HeapShared::_subgraph_info_list = NULL;
+int HeapShared::_num_archived_subgraph_info_records = 0;
+Array<ArchivedKlassSubGraphInfoRecord>* HeapShared::_archived_subgraph_info_records = NULL;
+
+// Currently there is only one class mirror (ArchivedModuleGraph) with archived
+// sub-graphs.
+KlassSubGraphInfo* HeapShared::find_subgraph_info(Klass* k) {
+  KlassSubGraphInfo* info = _subgraph_info_list;
+  while (info != NULL) {
+    if (info->klass() == k) {
+      return info;
+    }
+    info = info->next();
+  }
+  return NULL;
+}
+
+// Get the subgraph_info for Klass k. A new subgraph_info is created if
+// there is no existing one for k. The subgraph_info records the relocated
+// Klass* of the original k.
+KlassSubGraphInfo* HeapShared::get_subgraph_info(Klass* k) {
+  Klass* relocated_k = MetaspaceShared::get_relocated_klass(k);
+  KlassSubGraphInfo* info = find_subgraph_info(relocated_k);
+  if (info != NULL) {
+    return info;
+  }
+
+  info = new KlassSubGraphInfo(relocated_k, _subgraph_info_list);
+  _subgraph_info_list = info;
+  return info;
+}
+
+int HeapShared::num_of_subgraph_infos() {
+  int num = 0;
+  KlassSubGraphInfo* info = _subgraph_info_list;
+  while (info != NULL) {
+    num ++;
+    info = info->next();
+  }
+  return num;
+}
+
+// Add an entry field to the current KlassSubGraphInfo.
+void KlassSubGraphInfo::add_subgraph_entry_field(int static_field_offset, oop v) {
+  assert(DumpSharedSpaces, "dump time only");
+  if (_subgraph_entry_fields == NULL) {
+    _subgraph_entry_fields =
+      new(ResourceObj::C_HEAP, mtClass) GrowableArray<juint>(10, true);
+  }
+  _subgraph_entry_fields->append((juint)static_field_offset);
+  _subgraph_entry_fields->append(CompressedOops::encode(v));
+}
+
+// Add the Klass* for an object in the current KlassSubGraphInfo's subgraphs.
+// Only objects of boot classes can be included in sub-graph.
+void KlassSubGraphInfo::add_subgraph_object_klass(Klass* orig_k, Klass *relocated_k) {
+  assert(DumpSharedSpaces, "dump time only");
+  assert(relocated_k == MetaspaceShared::get_relocated_klass(orig_k),
+         "must be the relocated Klass in the shared space");
+
+  if (_subgraph_object_klasses == NULL) {
+    _subgraph_object_klasses =
+      new(ResourceObj::C_HEAP, mtClass) GrowableArray<Klass*>(50, true);
+  }
+
+  assert(relocated_k->is_shared(), "must be a shared class");
+  if (relocated_k->is_instance_klass()) {
+    assert(InstanceKlass::cast(relocated_k)->is_shared_boot_class(),
+          "must be boot class");
+    // SystemDictionary::xxx_klass() are not updated, need to check
+    // the original Klass*
+    if (orig_k == SystemDictionary::String_klass() ||
+        orig_k == SystemDictionary::Object_klass()) {
+      // Initialized early during VM initialization. No need to be added
+      // to the sub-graph object class list.
+      return;
+    }
+  } else if (relocated_k->is_objArray_klass()) {
+    Klass* abk = ObjArrayKlass::cast(relocated_k)->bottom_klass();
+    if (abk->is_instance_klass()) {
+      assert(InstanceKlass::cast(abk)->is_shared_boot_class(),
+            "must be boot class");
+    }
+    if (relocated_k == Universe::objectArrayKlassObj()) {
+      // Initialized early during Universe::genesis. No need to be added
+      // to the list.
+      return;
+    }
+  } else {
+    assert(relocated_k->is_typeArray_klass(), "must be");
+    // Primitive type arrays are created early during Universe::genesis.
+    return;
+  }
+
+  _subgraph_object_klasses->append_if_missing(relocated_k);
+}
+
+// Initialize an archived subgraph_info_record from the given KlassSubGraphInfo.
+void ArchivedKlassSubGraphInfoRecord::init(KlassSubGraphInfo* info) {
+  _k = info->klass();
+  _next = NULL;
+  _entry_field_records = NULL;
+  _subgraph_klasses = NULL;
+
+  // populate the entry fields
+  GrowableArray<juint>* entry_fields = info->subgraph_entry_fields();
+  if (entry_fields != NULL) {
+    int num_entry_fields = entry_fields->length();
+    assert(num_entry_fields % 2 == 0, "sanity");
+    _entry_field_records =
+      MetaspaceShared::new_ro_array<juint>(num_entry_fields);
+    for (int i = 0 ; i < num_entry_fields; i++) {
+      _entry_field_records->at_put(i, entry_fields->at(i));
+    }
+  }
+
+  // the Klasses of the objects in the sub-graphs
+  GrowableArray<Klass*>* subgraph_klasses = info->subgraph_object_klasses();
+  if (subgraph_klasses != NULL) {
+    int num_subgraphs_klasses = subgraph_klasses->length();
+    _subgraph_klasses =
+      MetaspaceShared::new_ro_array<Klass*>(num_subgraphs_klasses);
+    for (int i = 0; i < num_subgraphs_klasses; i++) {
+      Klass* subgraph_k = subgraph_klasses->at(i);
+      if (log_is_enabled(Info, cds, heap)) {
+        ResourceMark rm;
+        log_info(cds, heap)(
+          "Archived object klass (%d): %s in %s sub-graphs",
+          i, subgraph_k->external_name(), _k->external_name());
+      }
+      _subgraph_klasses->at_put(i, subgraph_k);
+    }
+  }
+}
+
+// Build the records of archived subgraph infos, which include:
+// - Entry points to all subgraphs from the containing class mirror. The entry
+//   points are static fields in the mirror. For each entry point, the field
+//   offset and value are recorded in the sub-graph info. The value are stored
+//   back to the corresponding field at runtime.
+// - A list of klasses that need to be loaded/initialized before archived
+//   java object sub-graph can be accessed at runtime.
+//
+// The records are saved in the archive file and reloaded at runtime. Currently
+// there is only one class mirror (ArchivedModuleGraph) with archived sub-graphs.
+//
+// Layout of the archived subgraph info records:
+//
+// records_size | num_records | records*
+// ArchivedKlassSubGraphInfoRecord | entry_fields | subgraph_object_klasses
+size_t HeapShared::build_archived_subgraph_info_records(int num_records) {
+  // remember the start address
+  char* start_p = MetaspaceShared::read_only_space_top();
+
+  // now populate the archived subgraph infos, which will be saved in the
+  // archive file
+  _archived_subgraph_info_records =
+    MetaspaceShared::new_ro_array<ArchivedKlassSubGraphInfoRecord>(num_records);
+  KlassSubGraphInfo* info = _subgraph_info_list;
+  int i = 0;
+  while (info != NULL) {
+    assert(i < _archived_subgraph_info_records->length(), "sanity");
+    ArchivedKlassSubGraphInfoRecord* record =
+      _archived_subgraph_info_records->adr_at(i);
+    record->init(info);
+    info = info->next();
+    i ++;
+  }
+
+  // _subgraph_info_list is no longer needed
+  delete _subgraph_info_list;
+  _subgraph_info_list = NULL;
+
+  char* end_p = MetaspaceShared::read_only_space_top();
+  size_t records_size = end_p - start_p;
+  return records_size;
+}
+
+// Write the subgraph info records in the shared _ro region
+void HeapShared::write_archived_subgraph_infos() {
+  assert(DumpSharedSpaces, "dump time only");
+
+  Array<intptr_t>* records_header = MetaspaceShared::new_ro_array<intptr_t>(3);
+
+  _num_archived_subgraph_info_records = num_of_subgraph_infos();
+  size_t records_size = build_archived_subgraph_info_records(
+                             _num_archived_subgraph_info_records);
+
+  // Now write the header information:
+  // records_size, num_records, _archived_subgraph_info_records
+  assert(records_header != NULL, "sanity");
+  intptr_t* p = (intptr_t*)(records_header->data());
+  *p = (intptr_t)records_size;
+  p ++;
+  *p = (intptr_t)_num_archived_subgraph_info_records;
+  p ++;
+  *p = (intptr_t)_archived_subgraph_info_records;
+}
+
+char* HeapShared::read_archived_subgraph_infos(char* buffer) {
+  Array<intptr_t>* records_header = (Array<intptr_t>*)buffer;
+  intptr_t* p = (intptr_t*)(records_header->data());
+  size_t records_size = (size_t)(*p);
+  p ++;
+  _num_archived_subgraph_info_records = *p;
+  p ++;
+  _archived_subgraph_info_records =
+    (Array<ArchivedKlassSubGraphInfoRecord>*)(*p);
+
+  buffer = (char*)_archived_subgraph_info_records + records_size;
+  return buffer;
+}
+
+void HeapShared::initialize_from_archived_subgraph(Klass* k) {
+  if (!MetaspaceShared::open_archive_heap_region_mapped()) {
+    return; // nothing to do
+  }
+
+  if (_num_archived_subgraph_info_records == 0) {
+    return; // no subgraph info records
+  }
+
+  // Initialize from archived data. Currently only ArchivedModuleGraph
+  // has archived object subgraphs, which is used during VM initialization
+  // time when bootstraping the system modules. No lock is needed.
+  Thread* THREAD = Thread::current();
+  for (int i = 0; i < _archived_subgraph_info_records->length(); i++) {
+    ArchivedKlassSubGraphInfoRecord* record = _archived_subgraph_info_records->adr_at(i);
+    if (record->klass() == k) {
+      int i;
+      // Found the archived subgraph info record for the requesting klass.
+      // Load/link/initialize the klasses of the objects in the subgraph.
+      // NULL class loader is used.
+      Array<Klass*>* klasses = record->subgraph_klasses();
+      if (klasses != NULL) {
+        for (i = 0; i < klasses->length(); i++) {
+          Klass* obj_k = klasses->at(i);
+          Klass* resolved_k = SystemDictionary::resolve_or_null(
+                                                (obj_k)->name(), THREAD);
+          if (resolved_k != obj_k) {
+            return;
+          }
+          if ((obj_k)->is_instance_klass()) {
+            InstanceKlass* ik = InstanceKlass::cast(obj_k);
+            ik->initialize(THREAD);
+          } else if ((obj_k)->is_objArray_klass()) {
+            ObjArrayKlass* oak = ObjArrayKlass::cast(obj_k);
+            oak->initialize(THREAD);
+          }
+        }
+      }
+
+      if (HAS_PENDING_EXCEPTION) {
+        CLEAR_PENDING_EXCEPTION;
+        // None of the field value will be set if there was an exception.
+        // The java code will not see any of the archived objects in the
+        // subgraphs referenced from k in this case.
+        return;
+      }
+
+      // Load the subgraph entry fields from the record and store them back to
+      // the corresponding fields within the mirror.
+      oop m = k->java_mirror();
+      Array<juint>* entry_field_records = record->entry_field_records();
+      if (entry_field_records != NULL) {
+        int efr_len = entry_field_records->length();
+        assert(efr_len % 2 == 0, "sanity");
+        for (i = 0; i < efr_len;) {
+          int field_offset = entry_field_records->at(i);
+          // The object refereced by the field becomes 'known' by GC from this
+          // point. All objects in the subgraph reachable from the object are
+          // also 'known' by GC.
+          oop v = MetaspaceShared::materialize_archived_object(
+            CompressedOops::decode(entry_field_records->at(i+1)));
+          m->obj_field_put(field_offset, v);
+          i += 2;
+        }
+      }
+
+      // Done. Java code can see the archived sub-graphs referenced from k's
+      // mirror after this point.
+      return;
+    }
+  }
+}
+
+class WalkOopAndArchiveClosure: public BasicOopIterateClosure {
+  int _level;
+  KlassSubGraphInfo* _subgraph_info;
+  oop _orig_referencing_obj;
+  oop _archived_referencing_obj;
+ public:
+  WalkOopAndArchiveClosure(int level, KlassSubGraphInfo* subgraph_info,
+           oop orig, oop archived) : _level(level),
+                                     _subgraph_info(subgraph_info),
+                                     _orig_referencing_obj(orig),
+                                     _archived_referencing_obj(archived) {}
+  void do_oop(narrowOop *p) { WalkOopAndArchiveClosure::do_oop_work(p); }
+  void do_oop(      oop *p) { WalkOopAndArchiveClosure::do_oop_work(p); }
+
+ protected:
+  template <class T> void do_oop_work(T *p) {
+    oop obj = RawAccess<>::oop_load(p);
+    if (!CompressedOops::is_null(obj)) {
+      // A java.lang.Class instance can not be included in an archived
+      // object sub-graph.
+      if (java_lang_Class::is_instance(obj)) {
+        tty->print("Unknown java.lang.Class object is in the archived sub-graph\n");
+        vm_exit(1);
+      }
+
+      LogTarget(Debug, cds, heap) log;
+      LogStream ls(log);
+      outputStream* out = &ls;
+      {
+        ResourceMark rm;
+        log.print("(%d) %s <--- referenced from:  %s",
+                  _level, obj->klass()->external_name(),
+                  CompressedOops::is_null(_orig_referencing_obj) ?
+                         "" : _orig_referencing_obj->klass()->external_name());
+        obj->print_on(out);
+      }
+
+      if (MetaspaceShared::is_archive_object(obj)) {
+        // The current oop is an archived oop, nothing needs to be done
+        log.print("--- object is already archived ---");
+        return;
+      }
+
+      size_t field_delta = pointer_delta(
+        p, _orig_referencing_obj, sizeof(char));
+      T* new_p = (T*)(address(_archived_referencing_obj) + field_delta);
+      oop archived = MetaspaceShared::find_archived_heap_object(obj);
+      if (archived != NULL) {
+        // There is an archived copy existing, update reference to point
+        // to the archived copy
+        RawAccess<IS_NOT_NULL>::oop_store(new_p, archived);
+        log.print(
+          "--- found existing archived copy, store archived " PTR_FORMAT " in " PTR_FORMAT,
+          p2i(archived), p2i(new_p));
+        return;
+      }
+
+      int l = _level + 1;
+      Thread* THREAD = Thread::current();
+      // Archive the current oop before iterating through its references
+      archived = MetaspaceShared::archive_heap_object(obj, THREAD);
+      assert(MetaspaceShared::is_archive_object(archived), "must be archived");
+      log.print("=== archiving oop " PTR_FORMAT " ==> " PTR_FORMAT,
+                 p2i(obj), p2i(archived));
+
+      // Following the references in the current oop and archive any
+      // encountered objects during the process
+      WalkOopAndArchiveClosure walker(l, _subgraph_info, obj, archived);
+      obj->oop_iterate(&walker);
+
+      // Update the reference in the archived copy of the referencing object
+      RawAccess<IS_NOT_NULL>::oop_store(new_p, archived);
+      log.print("=== store archived " PTR_FORMAT " in " PTR_FORMAT,
+                p2i(archived), p2i(new_p));
+
+      // Add the klass to the list of classes that need to be loaded before
+      // module system initialization
+      Klass *orig_k = obj->klass();
+      Klass *relocated_k = archived->klass();
+      _subgraph_info->add_subgraph_object_klass(orig_k, relocated_k);
+    }
+  }
+};
+
+//
+// Start from the given static field in a java mirror and archive the
+// complete sub-graph of java heap objects that are reached directly
+// or indirectly from the starting object by following references.
+// Currently, only ArchivedModuleGraph class instance (mirror) has archived
+// object subgraphs. Sub-graph archiving restrictions (current):
+//
+// - All classes of objects in the archived sub-graph (including the
+//   entry class) must be boot class only.
+// - No java.lang.Class instance (java mirror) can be included inside
+//   an archived sub-graph. Mirror can only be the sub-graph entry object.
+//
+// The Java heap object sub-graph archiving process (see
+// WalkOopAndArchiveClosure):
+//
+// 1) Java object sub-graph archiving starts from a given static field
+// within a Class instance (java mirror). If the static field is a
+// refererence field and points to a non-null java object, proceed to
+// the next step.
+//
+// 2) Archives the referenced java object. If an archived copy of the
+// current object already exists, updates the pointer in the archived
+// copy of the referencing object to point to the current archived object.
+// Otherwise, proceed to the next step.
+//
+// 3) Follows all references within the current java object and recursively
+// archive the sub-graph of objects starting from each reference.
+//
+// 4) Updates the pointer in the archived copy of referencing object to
+//    point to the current archived object.
+//
+// 5) The Klass of the current java object is added to the list of Klasses
+// for loading and initialzing before any object in the archived graph can
+// be accessed at runtime.
+//
+void HeapShared::archive_reachable_objects_from_static_field(Klass *k,
+                                                             int field_offset,
+                                                             BasicType field_type,
+                                                             TRAPS) {
+  assert(DumpSharedSpaces, "dump time only");
+  assert(k->is_instance_klass(), "sanity");
+  assert(InstanceKlass::cast(k)->is_shared_boot_class(),
+         "must be boot class");
+
+  oop m = k->java_mirror();
+  oop archived_m = MetaspaceShared::find_archived_heap_object(m);
+  if (CompressedOops::is_null(archived_m)) {
+    return;
+  }
+
+  if (field_type == T_OBJECT) {
+    // obtain k's subGraph Info
+    KlassSubGraphInfo* subgraph_info = get_subgraph_info(k);
+
+    // get the object referenced by the field
+    oop f = m->obj_field(field_offset);
+    if (!CompressedOops::is_null(f)) {
+      LogTarget(Debug, cds, heap) log;
+      LogStream ls(log);
+      outputStream* out = &ls;
+      log.print("Start from: ");
+      f->print_on(out);
+
+      // get the archived copy of the field referenced object
+      oop af = MetaspaceShared::archive_heap_object(f, THREAD);
+      if (!MetaspaceShared::is_archive_object(f)) {
+        WalkOopAndArchiveClosure walker(1, subgraph_info, f, af);
+        f->oop_iterate(&walker);
+      }
+
+      // The field value is not preserved in the archived mirror.
+      // Record the field as a new subGraph entry point. The recorded
+      // information is restored from the archive at runtime.
+      subgraph_info->add_subgraph_entry_field(field_offset, af);
+      Klass *relocated_k = af->klass();
+      Klass *orig_k = f->klass();
+      subgraph_info->add_subgraph_object_klass(orig_k, relocated_k);
+    } else {
+      // The field contains null, we still need to record the entry point,
+      // so it can be restored at runtime.
+      subgraph_info->add_subgraph_entry_field(field_offset, NULL);
+    }
+  } else {
+    ShouldNotReachHere();
+  }
+}
+
+#define do_module_object_graph(archive_object_graph_do) \
+  archive_object_graph_do(SystemDictionary::ArchivedModuleGraph_klass(), jdk_internal_module_ArchivedModuleGraph::archivedSystemModules_offset(), T_OBJECT, CHECK); \
+  archive_object_graph_do(SystemDictionary::ArchivedModuleGraph_klass(), jdk_internal_module_ArchivedModuleGraph::archivedModuleFinder_offset(), T_OBJECT, CHECK); \
+  archive_object_graph_do(SystemDictionary::ArchivedModuleGraph_klass(), jdk_internal_module_ArchivedModuleGraph::archivedMainModule_offset(), T_OBJECT, CHECK)
+
+void HeapShared::archive_module_graph_objects(Thread* THREAD) {
+  do_module_object_graph(archive_reachable_objects_from_static_field);
+}
+#endif // INCLUDE_CDS_JAVA_HEAP
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hotspot/share/memory/heapShared.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,134 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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_VM_MEMORY_HEAPSHARED_HPP
+#define SHARE_VM_MEMORY_HEAPSHARED_HPP
+
+#include "classfile/systemDictionary.hpp"
+#include "memory/universe.hpp"
+#include "oops/objArrayKlass.hpp"
+#include "oops/oop.hpp"
+#include "oops/typeArrayKlass.hpp"
+#include "utilities/growableArray.hpp"
+
+#if INCLUDE_CDS_JAVA_HEAP
+// A dump time sub-graph info for Klass _k. It includes the entry points
+// (static fields in _k's mirror) of the archived sub-graphs reachable
+// from _k's mirror. It also contains a list of Klasses of the objects
+// within the sub-graphs.
+class KlassSubGraphInfo: public CHeapObj<mtClass> {
+ private:
+  KlassSubGraphInfo* _next;
+  // The class that contains the static field(s) as the entry point(s)
+  // of archived object sub-graph(s).
+  Klass* _k;
+  // A list of classes need to be loaded and initialized before the archived
+  // object sub-graphs can be accessed at runtime.
+  GrowableArray<Klass*>* _subgraph_object_klasses;
+  // A list of _k's static fields as the entry points of archived sub-graphs.
+  // For each entry field, it is a pair of field_offset and field_value.
+  GrowableArray<juint>*  _subgraph_entry_fields;
+
+ public:
+  KlassSubGraphInfo(Klass* k, KlassSubGraphInfo* next) :
+    _next(next), _k(k),  _subgraph_object_klasses(NULL),
+    _subgraph_entry_fields(NULL) {}
+  ~KlassSubGraphInfo() {
+    if (_subgraph_object_klasses != NULL) {
+      delete _subgraph_object_klasses;
+    }
+    if (_subgraph_entry_fields != NULL) {
+      delete _subgraph_entry_fields;
+    }
+  };
+
+  KlassSubGraphInfo* next() { return _next; }
+  Klass* klass()            { return _k; }
+  GrowableArray<Klass*>* subgraph_object_klasses() {
+    return _subgraph_object_klasses;
+  }
+  GrowableArray<juint>*  subgraph_entry_fields() {
+    return _subgraph_entry_fields;
+  }
+  void add_subgraph_entry_field(int static_field_offset, oop v);
+  void add_subgraph_object_klass(Klass *orig_k, Klass *relocated_k);
+};
+
+// An archived record of object sub-graphs reachable from static
+// fields within _k's mirror. The record is reloaded from the archive
+// at runtime.
+class ArchivedKlassSubGraphInfoRecord {
+ private:
+  ArchivedKlassSubGraphInfoRecord* _next;
+  Klass* _k;
+
+  // contains pairs of field offset and value for each subgraph entry field
+  Array<juint>* _entry_field_records;
+
+  // klasses of objects in archived sub-graphs referenced from the entry points
+  // (static fields) in the containing class
+  Array<Klass*>* _subgraph_klasses;
+ public:
+  ArchivedKlassSubGraphInfoRecord() :
+    _next(NULL), _k(NULL), _entry_field_records(NULL), _subgraph_klasses(NULL) {}
+  void init(KlassSubGraphInfo* info);
+  Klass* klass() { return _k; }
+  ArchivedKlassSubGraphInfoRecord* next() { return _next; }
+  void set_next(ArchivedKlassSubGraphInfoRecord* next) { _next = next; }
+  Array<juint>*  entry_field_records() { return _entry_field_records; }
+  Array<Klass*>* subgraph_klasses() { return _subgraph_klasses; }
+};
+#endif // INCLUDE_CDS_JAVA_HEAP
+
+class HeapShared: AllStatic {
+ private:
+#if INCLUDE_CDS_JAVA_HEAP
+  // This is a list of subgraph infos built at dump time while
+  // archiving object subgraphs.
+  static KlassSubGraphInfo* _subgraph_info_list;
+
+  // Contains a list of ArchivedKlassSubGraphInfoRecords that is stored
+  // in the archive file and reloaded at runtime.
+  static int _num_archived_subgraph_info_records;
+  static Array<ArchivedKlassSubGraphInfoRecord>* _archived_subgraph_info_records;
+
+  // Archive object sub-graph starting from the given static field
+  // in Klass k's mirror.
+  static void archive_reachable_objects_from_static_field(
+    Klass* k, int field_ofset, BasicType field_type, TRAPS);
+
+  static KlassSubGraphInfo* find_subgraph_info(Klass *k);
+  static KlassSubGraphInfo* get_subgraph_info(Klass *k);
+  static int num_of_subgraph_infos();
+
+  static size_t build_archived_subgraph_info_records(int num_records);
+#endif // INCLUDE_CDS_JAVA_HEAP
+ public:
+  static char* read_archived_subgraph_infos(char* buffer) NOT_CDS_JAVA_HEAP_RETURN_(buffer);
+  static void write_archived_subgraph_infos() NOT_CDS_JAVA_HEAP_RETURN;
+  static void initialize_from_archived_subgraph(Klass* k) NOT_CDS_JAVA_HEAP_RETURN;
+
+  static void archive_module_graph_objects(Thread* THREAD) NOT_CDS_JAVA_HEAP_RETURN;
+};
+#endif // SHARE_VM_MEMORY_HEAPSHARED_HPP
--- a/src/hotspot/share/memory/metaspace.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/memory/metaspace.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1260,7 +1260,9 @@
       tty->print_cr("Please increase MaxMetaspaceSize (currently " SIZE_FORMAT " bytes).", MaxMetaspaceSize);
       vm_exit(1);
     }
-    report_metadata_oome(loader_data, word_size, type, mdtype, CHECK_NULL);
+    report_metadata_oome(loader_data, word_size, type, mdtype, THREAD);
+    assert(HAS_PENDING_EXCEPTION, "sanity");
+    return NULL;
   }
 
   // Zero initialize.
--- a/src/hotspot/share/memory/metaspaceShared.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/memory/metaspaceShared.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -39,6 +39,7 @@
 #include "logging/log.hpp"
 #include "logging/logMessage.hpp"
 #include "memory/filemap.hpp"
+#include "memory/heapShared.hpp"
 #include "memory/metaspace.hpp"
 #include "memory/metaspaceClosure.hpp"
 #include "memory/metaspaceShared.hpp"
@@ -207,6 +208,10 @@
   return _ro_region.allocate(num_bytes);
 }
 
+char* MetaspaceShared::read_only_space_top() {
+  return _ro_region.top();
+}
+
 void MetaspaceShared::initialize_runtime_shared_and_meta_spaces() {
   assert(UseSharedSpaces, "Must be called when UseSharedSpaces is enabled");
 
@@ -456,6 +461,7 @@
   java_lang_StackFrameInfo::serialize(soc);
   java_lang_LiveStackFrameInfo::serialize(soc);
   java_util_concurrent_locks_AbstractOwnableSynchronizer::serialize(soc);
+  jdk_internal_module_ArchivedModuleGraph::serialize(soc);
 }
 
 address MetaspaceShared::cds_i2i_entry_code_buffers(size_t total_size) {
@@ -1350,6 +1356,11 @@
   char* table_top = _ro_region.allocate(table_bytes, sizeof(intptr_t));
   SystemDictionary::copy_table(table_top, _ro_region.top());
 
+  // Write the archived object sub-graph infos. For each klass with sub-graphs,
+  // the info includes the static fields (sub-graph entry points) and Klasses
+  // of objects included in the sub-graph.
+  HeapShared::write_archived_subgraph_infos();
+
   // Write the other data to the output array.
   WriteClosure wc(&_ro_region);
   MetaspaceShared::serialize(&wc);
@@ -1861,6 +1872,8 @@
 
   MetaspaceShared::archive_klass_objects(THREAD);
 
+  HeapShared::archive_module_graph_objects(THREAD);
+
   G1CollectedHeap::heap()->end_archive_alloc_range(open_archive,
                                                    os::vm_allocation_granularity());
 }
@@ -1906,14 +1919,16 @@
     ArchivedObjectCache* cache = MetaspaceShared::archive_object_cache();
     cache->put(obj, archived_oop);
   }
-  log_debug(cds)("Archived heap object " PTR_FORMAT " ==> " PTR_FORMAT,
-                 p2i(obj), p2i(archived_oop));
+  log_debug(cds, heap)("Archived heap object " PTR_FORMAT " ==> " PTR_FORMAT,
+                       p2i(obj), p2i(archived_oop));
   return archived_oop;
 }
 
 oop MetaspaceShared::materialize_archived_object(oop obj) {
-  assert(obj != NULL, "sanity");
-  return G1CollectedHeap::heap()->materialize_archived_object(obj);
+  if (obj != NULL) {
+    return G1CollectedHeap::heap()->materialize_archived_object(obj);
+  }
+  return NULL;
 }
 
 void MetaspaceShared::archive_klass_objects(Thread* THREAD) {
@@ -2121,6 +2136,9 @@
   buffer += sizeof(intptr_t);
   buffer += len;
 
+  // The table of archived java heap object sub-graph infos
+  buffer = HeapShared::read_archived_subgraph_infos(buffer);
+
   // Verify various attributes of the archive, plus initialize the
   // shared string/symbol tables
   intptr_t* array = (intptr_t*)buffer;
--- a/src/hotspot/share/memory/metaspaceShared.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/memory/metaspaceShared.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -232,6 +232,8 @@
   static char* misc_code_space_alloc(size_t num_bytes);
   static char* read_only_space_alloc(size_t num_bytes);
 
+  static char* read_only_space_top();
+
   template <typename T>
   static Array<T>* new_ro_array(int length) {
 #if INCLUDE_CDS
--- a/src/hotspot/share/memory/virtualspace.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/memory/virtualspace.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -70,6 +70,18 @@
   initialize(size, alignment, large, NULL, executable);
 }
 
+ReservedSpace::ReservedSpace(char* base, size_t size, size_t alignment,
+                             bool special, bool executable) : _fd_for_heap(-1) {
+  assert((size % os::vm_allocation_granularity()) == 0,
+         "size not allocation aligned");
+  _base = base;
+  _size = size;
+  _alignment = alignment;
+  _noaccess_prefix = 0;
+  _special = special;
+  _executable = executable;
+}
+
 // Helper method
 static void unmap_or_release_memory(char* base, size_t size, bool is_file_mapped) {
   if (is_file_mapped) {
@@ -218,20 +230,6 @@
   }
 }
 
-
-ReservedSpace::ReservedSpace(char* base, size_t size, size_t alignment,
-                             bool special, bool executable) {
-  assert((size % os::vm_allocation_granularity()) == 0,
-         "size not allocation aligned");
-  _base = base;
-  _size = size;
-  _alignment = alignment;
-  _noaccess_prefix = 0;
-  _special = special;
-  _executable = executable;
-}
-
-
 ReservedSpace ReservedSpace::first_part(size_t partition_size, size_t alignment,
                                         bool split, bool realloc) {
   assert(partition_size <= size(), "partition failed");
--- a/src/hotspot/share/oops/constantPool.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/oops/constantPool.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -807,6 +807,17 @@
   }
 }
 
+constantTag ConstantPool::constant_tag_at(int which) {
+  constantTag tag = tag_at(which);
+  if (tag.is_dynamic_constant() ||
+      tag.is_dynamic_constant_in_error()) {
+    // have to look at the signature for this one
+    Symbol* constant_type = uncached_signature_ref_at(which);
+    return constantTag::ofBasicType(FieldType::basic_type(constant_type));
+  }
+  return tag;
+}
+
 BasicType ConstantPool::basic_type_for_constant_at(int which) {
   constantTag tag = tag_at(which);
   if (tag.is_dynamic_constant() ||
--- a/src/hotspot/share/oops/constantPool.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/oops/constantPool.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -719,6 +719,9 @@
   enum { _no_index_sentinel = -1, _possible_index_sentinel = -2 };
  public:
 
+  // Get the tag for a constant, which may involve a constant dynamic
+  constantTag constant_tag_at(int which);
+  // Get the basic type for a constant, which may involve a constant dynamic
   BasicType basic_type_for_constant_at(int which);
 
   // Resolve late bound constants.
--- a/src/hotspot/share/opto/arraycopynode.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/opto/arraycopynode.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -366,6 +366,9 @@
   if (!forward_ctl->is_top()) {
     // copy forward
     mem = start_mem_dest;
+    uint alias_idx_src = phase->C->get_alias_index(atp_src);
+    uint alias_idx_dest = phase->C->get_alias_index(atp_dest);
+    bool same_alias = (alias_idx_src == alias_idx_dest);
 
     if (count > 0) {
       Node* v = LoadNode::make(*phase, forward_ctl, start_mem_src, adr_src, atp_src, value_type, copy_type, MemNode::unordered);
@@ -376,7 +379,7 @@
         Node* off  = phase->MakeConX(type2aelembytes(copy_type) * i);
         Node* next_src = phase->transform(new AddPNode(base_src,adr_src,off));
         Node* next_dest = phase->transform(new AddPNode(base_dest,adr_dest,off));
-        v = LoadNode::make(*phase, forward_ctl, mem, next_src, atp_src, value_type, copy_type, MemNode::unordered);
+        v = LoadNode::make(*phase, forward_ctl, same_alias ? mem : start_mem_src, next_src, atp_src, value_type, copy_type, MemNode::unordered);
         v = phase->transform(v);
         mem = StoreNode::make(*phase, forward_ctl,mem,next_dest,atp_dest,v, copy_type, MemNode::unordered);
         mem = phase->transform(mem);
@@ -408,18 +411,21 @@
   if (!backward_ctl->is_top()) {
     // copy backward
     mem = start_mem_dest;
+    uint alias_idx_src = phase->C->get_alias_index(atp_src);
+    uint alias_idx_dest = phase->C->get_alias_index(atp_dest);
+    bool same_alias = (alias_idx_src == alias_idx_dest);
 
     if (count > 0) {
       for (int i = count-1; i >= 1; i--) {
         Node* off  = phase->MakeConX(type2aelembytes(copy_type) * i);
         Node* next_src = phase->transform(new AddPNode(base_src,adr_src,off));
         Node* next_dest = phase->transform(new AddPNode(base_dest,adr_dest,off));
-        Node* v = LoadNode::make(*phase, backward_ctl, mem, next_src, atp_src, value_type, copy_type, MemNode::unordered);
+        Node* v = LoadNode::make(*phase, backward_ctl, same_alias ? mem : start_mem_src, next_src, atp_src, value_type, copy_type, MemNode::unordered);
         v = phase->transform(v);
         mem = StoreNode::make(*phase, backward_ctl,mem,next_dest,atp_dest,v, copy_type, MemNode::unordered);
         mem = phase->transform(mem);
       }
-      Node* v = LoadNode::make(*phase, backward_ctl, mem, adr_src, atp_src, value_type, copy_type, MemNode::unordered);
+      Node* v = LoadNode::make(*phase, backward_ctl, same_alias ? mem : start_mem_src, adr_src, atp_src, value_type, copy_type, MemNode::unordered);
       v = phase->transform(v);
       mem = StoreNode::make(*phase, backward_ctl, mem, adr_dest, atp_dest, v, copy_type, MemNode::unordered);
       mem = phase->transform(mem);
@@ -659,7 +665,8 @@
   c = bs->step_over_gc_barrier(c);
 
   CallNode* call = NULL;
-  if (c != NULL && c->is_Region()) {
+  guarantee(c != NULL, "step_over_gc_barrier failed, there must be something to step to.");
+  if (c->is_Region()) {
     for (uint i = 1; i < c->req(); i++) {
       if (c->in(i) != NULL) {
         Node* n = c->in(i)->in(0);
--- a/src/hotspot/share/opto/bytecodeInfo.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/opto/bytecodeInfo.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -520,10 +520,10 @@
                                                caller_bci, inline_msg);
   if (C->print_inlining()) {
     C->print_inlining(callee_method, inline_level(), caller_bci, inline_msg);
-    if (callee_method == NULL) tty->print(" callee not monotonic or profiled");
-    if (Verbose && callee_method) {
+    guarantee(callee_method != NULL, "would crash in post_inlining_event");
+    if (Verbose) {
       const InlineTree *top = this;
-      while( top->caller_tree() != NULL ) { top = top->caller_tree(); }
+      while (top->caller_tree() != NULL) { top = top->caller_tree(); }
       //tty->print("  bcs: %d+%d  invoked: %d", top->count_inline_bcs(), callee_method->code_size(), callee_method->interpreter_invocation_count());
     }
   }
--- a/src/hotspot/share/opto/callnode.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/opto/callnode.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -759,6 +759,7 @@
         }
       }
     }
+    guarantee(dest != NULL, "Call had only one ptr in, broken IR!");
     if (!dest->is_top() && may_modify_arraycopy_helper(phase->type(dest)->is_oopptr(), t_oop, phase)) {
       return true;
     }
--- a/src/hotspot/share/opto/compile.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/opto/compile.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -4049,9 +4049,9 @@
 
 int Compile::ConstantTable::find_offset(Constant& con) const {
   int idx = _constants.find(con);
-  assert(idx != -1, "constant must be in constant table");
+  guarantee(idx != -1, "constant must be in constant table");
   int offset = _constants.at(idx).offset();
-  assert(offset != -1, "constant table not emitted yet?");
+  guarantee(offset != -1, "constant table not emitted yet?");
   return offset;
 }
 
--- a/src/hotspot/share/opto/gcm.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/opto/gcm.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1263,6 +1263,7 @@
         Node* use = self->fast_out(i);
         LCA = raise_LCA_above_use(LCA, use, self, this);
       }
+      guarantee(LCA != NULL, "There must be a LCA");
     }  // (Hide defs of imax, i from rest of block.)
 
     // Place temps in the block of their use.  This isn't a
--- a/src/hotspot/share/opto/ifnode.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/opto/ifnode.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -387,6 +387,7 @@
     } else {
       assert( 0, "do not know how to handle this guy" );
     }
+    guarantee(proj != NULL, "sanity");
 
     Node *proj_path_data, *proj_path_ctrl;
     if( proj->Opcode() == Op_IfTrue ) {
--- a/src/hotspot/share/opto/indexSet.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/opto/indexSet.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -319,7 +319,7 @@
   if (_max_blocks <= preallocated_block_list_size) {
     _blocks = _preallocated_block_list;
   } else {
-    _blocks = (IndexSet::BitBlock**) arena()->Amalloc_4(sizeof(IndexSet::BitBlock**) * _max_blocks);
+    _blocks = (IndexSet::BitBlock**) arena()->Amalloc_4(sizeof(IndexSet::BitBlock*) * _max_blocks);
   }
   for (uint i = 0; i < _max_blocks; i++) {
     set_block(i, &_empty_block);
@@ -343,7 +343,7 @@
   if (_max_blocks <= preallocated_block_list_size) {
     _blocks = _preallocated_block_list;
   } else {
-    _blocks = (IndexSet::BitBlock**) arena->Amalloc_4(sizeof(IndexSet::BitBlock**) * _max_blocks);
+    _blocks = (IndexSet::BitBlock**) arena->Amalloc_4(sizeof(IndexSet::BitBlock*) * _max_blocks);
   }
   for (uint i = 0; i < _max_blocks; i++) {
     set_block(i, &_empty_block);
--- a/src/hotspot/share/opto/lcm.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/opto/lcm.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -646,7 +646,7 @@
     }
   } // End of for all ready nodes in worklist
 
-  assert(idx >= 0, "index should be set");
+  guarantee(idx >= 0, "index should be set");
   Node *n = worklist[(uint)idx];      // Get the winner
 
   worklist.map((uint)idx, worklist.pop());     // Compress worklist
--- a/src/hotspot/share/opto/loopPredicate.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/opto/loopPredicate.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -684,6 +684,7 @@
   Node* max_idx_expr = NULL;
   const TypeInt* idx_type = TypeInt::INT;
   if ((stride > 0) == (scale > 0) == upper) {
+    guarantee(limit != NULL, "sanity");
     if (TraceLoopPredicate) {
       if (limit->is_Con()) {
         predString->print("(%d ", con_limit);
--- a/src/hotspot/share/opto/loopTransform.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/opto/loopTransform.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -768,11 +768,12 @@
   Node *init_n = cl->init_trip();
   Node *limit_n = cl->limit();
   int stride_con = cl->stride_con();
+  if (limit_n == NULL) return false; // We will dereference it below.
+
   // Non-constant bounds.
   // Protect against over-unrolling when init or/and limit are not constant
   // (so that trip_count's init value is maxint) but iv range is known.
-  if (init_n   == NULL || !init_n->is_Con()  ||
-      limit_n  == NULL || !limit_n->is_Con()) {
+  if (init_n == NULL || !init_n->is_Con() || !limit_n->is_Con()) {
     Node* phi = cl->phi();
     if (phi != NULL) {
       assert(phi->is_Phi() && phi->in(0) == _head, "Counted loop should have iv phi.");
@@ -861,7 +862,9 @@
 
   // Check for being too big
   if (body_size > (uint)_local_loop_unroll_limit) {
-    if ((UseSubwordForMaxVector || xors_in_loop >= 4) && body_size < (uint)LoopUnrollLimit * 4) return true;
+    if ((cl->is_subword_loop() || xors_in_loop >= 4) && body_size < (uint)LoopUnrollLimit * 4) {
+      return true;
+    }
     // Normal case: loop too big
     return false;
   }
--- a/src/hotspot/share/opto/loopnode.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/opto/loopnode.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -616,6 +616,11 @@
     }
 
     IfNode* check_iff = limit_check_proj->in(0)->as_If();
+
+    if (!is_dominator(get_ctrl(limit), check_iff->in(0))) {
+      return false;
+    }
+
     Node* cmp_limit;
     Node* bol;
 
--- a/src/hotspot/share/opto/loopnode.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/opto/loopnode.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -75,7 +75,8 @@
          HasRangeChecks=8192,
          IsMultiversioned=16384,
          StripMined=32768,
-         ProfileTripFailed=65536};
+         SubwordLoop=65536,
+         ProfileTripFailed=131072};
   char _unswitch_count;
   enum { _unswitch_max=3 };
   char _postloop_flags;
@@ -99,6 +100,7 @@
   bool partial_peel_has_failed() const { return _loop_flags & PartialPeelFailed; }
   bool is_strip_mined() const { return _loop_flags & StripMined; }
   bool is_profile_trip_failed() const { return _loop_flags & ProfileTripFailed; }
+  bool is_subword_loop() const { return _loop_flags & SubwordLoop; }
 
   void mark_partial_peel_failed() { _loop_flags |= PartialPeelFailed; }
   void mark_has_reductions() { _loop_flags |= HasReductions; }
@@ -112,6 +114,7 @@
   void mark_strip_mined() { _loop_flags |= StripMined; }
   void clear_strip_mined() { _loop_flags &= ~StripMined; }
   void mark_profile_trip_failed() { _loop_flags |= ProfileTripFailed; }
+  void mark_subword_loop() { _loop_flags |= SubwordLoop; }
 
   int unswitch_max() { return _unswitch_max; }
   int unswitch_count() { return _unswitch_count; }
--- a/src/hotspot/share/opto/macro.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/opto/macro.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -2154,6 +2154,7 @@
 
   Node* mem  = alock->in(TypeFunc::Memory);
   Node* ctrl = alock->in(TypeFunc::Control);
+  guarantee(ctrl != NULL, "missing control projection, cannot replace_node() with NULL");
 
   extract_call_projections(alock);
   // There are 2 projections from the lock.  The lock node will
@@ -2188,8 +2189,7 @@
   }
 
   // Seach for MemBarReleaseLock node and delete it also.
-  if (alock->is_Unlock() && ctrl != NULL && ctrl->is_Proj() &&
-      ctrl->in(0)->is_MemBar()) {
+  if (alock->is_Unlock() && ctrl->is_Proj() && ctrl->in(0)->is_MemBar()) {
     MemBarNode* membar = ctrl->in(0)->as_MemBar();
     assert(membar->Opcode() == Op_MemBarReleaseLock &&
            mem->is_Proj() && membar == mem->in(0), "");
--- a/src/hotspot/share/opto/memnode.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/opto/memnode.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -370,10 +370,10 @@
 
   if (mem != old_mem) {
     set_req(MemNode::Memory, mem);
-    if (can_reshape && old_mem->outcnt() == 0) {
-        igvn->_worklist.push(old_mem);
+    if (can_reshape && old_mem->outcnt() == 0 && igvn != NULL) {
+      igvn->_worklist.push(old_mem);
     }
-    if (phase->type( mem ) == Type::TOP) return NodeSentinel;
+    if (phase->type(mem) == Type::TOP) return NodeSentinel;
     return this;
   }
 
@@ -825,7 +825,7 @@
     }
     break;
   default:
-    // ShouldNotReachHere(); ???
+    ShouldNotReachHere();
     break;
   }
   assert(load != NULL, "LoadNode should have been created");
--- a/src/hotspot/share/opto/mulnode.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/opto/mulnode.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -47,7 +47,7 @@
 //------------------------------Identity---------------------------------------
 // Multiplying a one preserves the other argument
 Node* MulNode::Identity(PhaseGVN* phase) {
-  register const Type *one = mul_id();  // The multiplicative identity
+  const Type *one = mul_id();  // The multiplicative identity
   if( phase->type( in(1) )->higher_equal( one ) ) return in(2);
   if( phase->type( in(2) )->higher_equal( one ) ) return in(1);
 
--- a/src/hotspot/share/opto/node.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/opto/node.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1689,9 +1689,10 @@
   int block_idx = (idx >> _log2_node_notes_block_size);
   int grow_by = (block_idx - (arr == NULL? 0: arr->length()));
   if (grow_by >= 0) {
-    if (!can_grow)  return NULL;
+    if (!can_grow) return NULL;
     grow_node_notes(arr, grow_by + 1);
   }
+  if (arr == NULL) return NULL;
   // (Every element of arr is a sub-array of length _node_notes_block_size.)
   return arr->at(block_idx) + (idx & (_node_notes_block_size-1));
 }
--- a/src/hotspot/share/opto/output.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/opto/output.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1424,7 +1424,7 @@
 
       // See if this instruction has a delay slot
       if (valid_bundle_info(n) && node_bundling(n)->use_unconditional_delay()) {
-        assert(delay_slot != NULL, "expecting delay slot node");
+        guarantee(delay_slot != NULL, "expecting delay slot node");
 
         // Back up 1 instruction
         cb->set_insts_end(cb->insts_end() - Pipeline::instr_unit_size());
--- a/src/hotspot/share/opto/parse1.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/opto/parse1.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -1823,7 +1823,7 @@
       // Instead, wire the new split into a MergeMem on the backedge.
       // The optimizer will sort it out, slicing the phi.
       if (remerge == NULL) {
-        assert(base != NULL, "");
+        guarantee(base != NULL, "");
         assert(base->in(0) != NULL, "should not be xformed away");
         remerge = MergeMemNode::make(base->in(pnum));
         gvn().set_type(remerge, Type::MEMORY);
--- a/src/hotspot/share/opto/reg_split.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/opto/reg_split.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -683,7 +683,7 @@
         if( needs_phi ) {
           // create a new phi node and insert it into the block
           // type is taken from left over pointer to a predecessor
-          assert(n3,"No non-NULL reaching DEF for a Phi");
+          guarantee(n3, "No non-NULL reaching DEF for a Phi");
           phi = new PhiNode(b->head(), n3->bottom_type());
           // initialize the Reaches entry for this LRG
           Reachblock[slidx] = phi;
--- a/src/hotspot/share/opto/runtime.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/opto/runtime.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1608,7 +1608,12 @@
     }
     int bci = jvms->bci();
     if (bci < 0) bci = 0;
-    st.print("%s.%s@%d", m->holder()->name()->as_utf8(), m->name()->as_utf8(), bci);
+    if (m != NULL) {
+      st.print("%s.%s", m->holder()->name()->as_utf8(), m->name()->as_utf8());
+    } else {
+      st.print("no method");
+    }
+    st.print("@%d", bci);
     // To print linenumbers instead of bci use: m->line_number_from_bci(bci)
   }
   NamedCounter* c;
--- a/src/hotspot/share/opto/superword.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/opto/superword.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -376,6 +376,7 @@
                 if (same_type) {
                   max_vector = cur_max_vector;
                   flag_small_bt = true;
+                  cl->mark_subword_loop();
                 }
               }
             }
--- a/src/hotspot/share/opto/type.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/opto/type.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -252,17 +252,16 @@
         ciObject* oop_constant = constant.as_object();
         if (oop_constant->is_null_object()) {
           con_type = Type::get_zero_type(T_OBJECT);
-        } else if (require_constant || oop_constant->should_be_constant()) {
+        } else {
+          guarantee(require_constant || oop_constant->should_be_constant(), "con_type must get computed");
           con_type = TypeOopPtr::make_from_constant(oop_constant, require_constant);
-          if (con_type != NULL) {
-            if (Compile::current()->eliminate_boxing() && is_autobox_cache) {
-              con_type = con_type->is_aryptr()->cast_to_autobox_cache(true);
-            }
-            if (stable_dimension > 0) {
-              assert(FoldStableValues, "sanity");
-              assert(!con_type->is_zero_type(), "default value for stable field");
-              con_type = con_type->is_aryptr()->cast_to_stable(true, stable_dimension);
-            }
+          if (Compile::current()->eliminate_boxing() && is_autobox_cache) {
+            con_type = con_type->is_aryptr()->cast_to_autobox_cache(true);
+          }
+          if (stable_dimension > 0) {
+            assert(FoldStableValues, "sanity");
+            assert(!con_type->is_zero_type(), "default value for stable field");
+            con_type = con_type->is_aryptr()->cast_to_stable(true, stable_dimension);
           }
         }
         if (is_narrow_oop) {
--- a/src/hotspot/share/prims/jniCheck.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/prims/jniCheck.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1995,9 +1995,6 @@
   checked_jni_GetModule(JNIEnv *env,
                         jclass clazz))
     functionEnter(thr);
-    IN_VM(
-      jniCheck::validate_class(thr, clazz, false);
-    )
     jobject result = UNCHECKED()->GetModule(env,clazz);
     functionExit(thr);
     return result;
--- a/src/hotspot/share/prims/jvm.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/prims/jvm.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -39,6 +39,7 @@
 #include "interpreter/bytecode.hpp"
 #include "jfr/jfrEvents.hpp"
 #include "logging/log.hpp"
+#include "memory/heapShared.hpp"
 #include "memory/oopFactory.hpp"
 #include "memory/referenceType.hpp"
 #include "memory/resourceArea.hpp"
@@ -3598,6 +3599,13 @@
   return VM_Version::supports_cx8();
 JVM_END
 
+JVM_ENTRY(void, JVM_InitializeFromArchive(JNIEnv* env, jclass cls))
+  JVMWrapper("JVM_InitializeFromArchive");
+  Klass* k = java_lang_Class::as_Klass(JNIHandles::resolve(cls));
+  assert(k->is_klass(), "just checking");
+  HeapShared::initialize_from_archived_subgraph(k);
+JVM_END
+
 // Returns an array of all live Thread objects (VM internal JavaThreads,
 // jvmti agent threads, and JNI attaching threads  are skipped)
 // See CR 6404306 regarding JNI attaching threads
--- a/src/hotspot/share/prims/jvmtiEnvBase.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/prims/jvmtiEnvBase.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1219,7 +1219,7 @@
   }
   infop->state = state;
 
-  if (thr != NULL || (state & JVMTI_THREAD_STATE_ALIVE) != 0) {
+  if (thr != NULL && (state & JVMTI_THREAD_STATE_ALIVE) != 0) {
     infop->frame_buffer = NEW_RESOURCE_ARRAY(jvmtiFrameInfo, max_frame_count());
     env()->get_stack_trace(thr, 0, max_frame_count(),
                            infop->frame_buffer, &(infop->frame_count));
--- a/src/hotspot/share/runtime/arguments.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/runtime/arguments.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -535,12 +535,7 @@
   { "IgnoreUnverifiableClassesDuringDump", JDK_Version::jdk(10),  JDK_Version::undefined(), JDK_Version::undefined() },
   { "CompilerThreadHintNoPreempt",  JDK_Version::jdk(11), JDK_Version::jdk(12), JDK_Version::jdk(13) },
   { "VMThreadHintNoPreempt",        JDK_Version::jdk(11), JDK_Version::jdk(12), JDK_Version::jdk(13) },
-  { "PrintSafepointStatistics",     JDK_Version::jdk(11), JDK_Version::jdk(12), JDK_Version::jdk(13) },
-  { "PrintSafepointStatisticsTimeout", JDK_Version::jdk(11), JDK_Version::jdk(12), JDK_Version::jdk(13) },
-  { "PrintSafepointStatisticsCount",JDK_Version::jdk(11), JDK_Version::jdk(12), JDK_Version::jdk(13) },
   { "AggressiveOpts",               JDK_Version::jdk(11), JDK_Version::jdk(12), JDK_Version::jdk(13) },
-  { "AllowNonVirtualCalls",         JDK_Version::jdk(11), JDK_Version::jdk(12), JDK_Version::jdk(13) },
-  { "UnlinkSymbolsALot",            JDK_Version::jdk(11), JDK_Version::jdk(12), JDK_Version::jdk(13) },
 
   // --- Deprecated alias flags (see also aliased_jvm_flags) - sorted by obsolete_in then expired_in:
   { "DefaultMaxRAMFraction",        JDK_Version::jdk(8),  JDK_Version::undefined(), JDK_Version::undefined() },
@@ -573,6 +568,11 @@
   { "NativeMonitorTimeout",          JDK_Version::undefined(), JDK_Version::jdk(11), JDK_Version::jdk(12) },
   { "NativeMonitorSpinLimit",        JDK_Version::undefined(), JDK_Version::jdk(11), JDK_Version::jdk(12) },
   { "NativeMonitorFlags",            JDK_Version::undefined(), JDK_Version::jdk(11), JDK_Version::jdk(12) },
+  { "UnlinkSymbolsALot",             JDK_Version::jdk(11),     JDK_Version::jdk(12), JDK_Version::jdk(13) },
+  { "AllowNonVirtualCalls",          JDK_Version::jdk(11),     JDK_Version::jdk(12), JDK_Version::jdk(13) },
+  { "PrintSafepointStatistics",      JDK_Version::jdk(11),     JDK_Version::jdk(12), JDK_Version::jdk(13) },
+  { "PrintSafepointStatisticsTimeout",JDK_Version::jdk(11),    JDK_Version::jdk(12), JDK_Version::jdk(13) },
+  { "PrintSafepointStatisticsCount", JDK_Version::jdk(11),     JDK_Version::jdk(12), JDK_Version::jdk(13) },
 
 #ifdef TEST_VERIFY_SPECIAL_JVM_FLAGS
   { "dep > obs",                    JDK_Version::jdk(9), JDK_Version::jdk(8), JDK_Version::undefined() },
--- a/src/hotspot/share/runtime/deoptimization.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/runtime/deoptimization.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -2044,7 +2044,7 @@
   bool ignore_maybe_prior_recompile;
   assert(!reason_is_speculate(reason), "reason speculate only used by compiler");
   // JVMCI uses the total counts to determine if deoptimizations are happening too frequently -> do not adjust total counts
-  bool update_total_counts = JVMCI_ONLY(false) NOT_JVMCI(true);
+  bool update_total_counts = true JVMCI_ONLY( && !UseJVMCICompiler);
   query_update_method_data(trap_mdo, trap_bci,
                            (DeoptReason)reason,
                            update_total_counts,
--- a/src/hotspot/share/runtime/flags/jvmFlag.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/runtime/flags/jvmFlag.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -939,6 +939,10 @@
     }
   }
 
+  if (match == NULL) {
+    return NULL;
+  }
+
   if (!(match->is_unlocked() || match->is_unlocker())) {
     if (!allow_locked) {
       return NULL;
--- a/src/hotspot/share/runtime/globals.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/runtime/globals.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -486,9 +486,6 @@
   notproduct(bool, ZombieALot, false,                                       \
           "Create zombies (non-entrant) at exit from the runtime system")   \
                                                                             \
-  product(bool, UnlinkSymbolsALot, false,                                   \
-          "Unlink unreferenced symbols from the symbol table at safepoints")\
-                                                                            \
   notproduct(bool, WalkStackALot, false,                                    \
           "Trace stack (no print) at every exit from the runtime system")   \
                                                                             \
@@ -1180,20 +1177,6 @@
           "null (+offset) will not raise a SIGSEGV, i.e.,"                  \
           "ImplicitNullChecks don't work (PPC64).")                         \
                                                                             \
-  product(bool, PrintSafepointStatistics, false,                            \
-          "(Deprecated) Print statistics about safepoint synchronization")  \
-                                                                            \
-  product(intx, PrintSafepointStatisticsCount, 300,                         \
-          "(Deprecated) Total number of safepoint statistics collected "    \
-          "before printing them out")                                       \
-          range(1, max_intx)                                                \
-                                                                            \
-  product(intx, PrintSafepointStatisticsTimeout,  -1,                       \
-          "(Deprecated) Print safepoint statistics only when safepoint takes "  \
-          "more than PrintSafepointSatisticsTimeout in millis")             \
-  LP64_ONLY(range(-1, max_intx/MICROUNITS))                                 \
-  NOT_LP64(range(-1, max_intx))                                             \
-                                                                            \
   diagnostic(bool, EnableThreadSMRExtraValidityChecks, true,                \
              "Enable Thread SMR extra validity checks")                     \
                                                                             \
@@ -2571,9 +2554,6 @@
            "Default survivor space alignment in bytes")                     \
            constraint(SurvivorAlignmentInBytesConstraintFunc,AfterErgo)     \
                                                                             \
-  product(bool , AllowNonVirtualCalls, false,                               \
-          "Obey the ACC_SUPER flag and allow invokenonvirtual calls")       \
-                                                                            \
   product(ccstr, DumpLoadedClassList, NULL,                                 \
           "Dump the names all loaded classes, that could be stored into "   \
           "the CDS archive, in the specified file")                         \
--- a/src/hotspot/share/runtime/init.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/runtime/init.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -28,6 +28,8 @@
 #include "code/icBuffer.hpp"
 #include "gc/shared/collectedHeap.hpp"
 #include "interpreter/bytecodes.hpp"
+#include "logging/log.hpp"
+#include "logging/logTag.hpp"
 #include "memory/universe.hpp"
 #include "prims/methodHandles.hpp"
 #include "runtime/flags/jvmFlag.hpp"
@@ -165,7 +167,7 @@
   if (!destructorsCalled) {
     destructorsCalled = true;
     perfMemory_exit();
-    if (PrintSafepointStatistics) {
+    if (log_is_enabled(Debug, safepoint, stats)) {
       // Print the collected safepoint statistics.
       SafepointSynchronize::print_stat_on_exit();
     }
--- a/src/hotspot/share/runtime/interfaceSupport.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/runtime/interfaceSupport.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -66,9 +66,6 @@
   if (ZombieALot) {
     InterfaceSupport::zombieAll();
   }
-  if (UnlinkSymbolsALot) {
-    InterfaceSupport::unlinkSymbols();
-  }
   // do verification AFTER potential deoptimization
   if (VerifyStack) {
     InterfaceSupport::verify_stack();
@@ -208,11 +205,6 @@
   zombieAllCounter++;
 }
 
-void InterfaceSupport::unlinkSymbols() {
-  VM_UnlinkSymbols op;
-  VMThread::execute(&op);
-}
-
 void InterfaceSupport::deoptimizeAll() {
   // This method is called by all threads when a thread make
   // transition to VM state (for example, runtime calls).
--- a/src/hotspot/share/runtime/interfaceSupport.inline.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/runtime/interfaceSupport.inline.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -60,7 +60,6 @@
   static void walk_stack();
 
   static void zombieAll();
-  static void unlinkSymbols();
   static void deoptimizeAll();
   static void stress_derived_pointers();
   static void verify_stack();
--- a/src/hotspot/share/runtime/safepoint.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/runtime/safepoint.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -150,15 +150,23 @@
 static volatile int TryingToBlock = 0 ;    // proximate value -- for advisory use only
 static bool timeout_error_printed = false;
 
+
+// Statistic related statics
+julong SafepointSynchronize::_coalesced_vmop_count = 0;
+static jlong _safepoint_begin_time = 0;
+static float _ts_of_current_safepoint = 0.0f;
+static volatile int _nof_threads_hit_polling_page = 0;
+
 // Roll all threads forward to a safepoint and suspend them all
 void SafepointSynchronize::begin() {
   EventSafepointBegin begin_event;
   Thread* myThread = Thread::current();
   assert(myThread->is_VM_thread(), "Only VM thread may execute a safepoint");
 
-  if (PrintSafepointStatistics || PrintSafepointStatisticsTimeout > 0) {
+  if (log_is_enabled(Debug, safepoint, stats)) {
     _safepoint_begin_time = os::javaTimeNanos();
     _ts_of_current_safepoint = tty->time_stamp().seconds();
+    _nof_threads_hit_polling_page = 0;
   }
 
   Universe::heap()->safepoint_synchronize_begin();
@@ -190,14 +198,6 @@
   jlong safepoint_limit_time = 0;
   timeout_error_printed = false;
 
-  // PrintSafepointStatisticsTimeout can be specified separately. When
-  // specified, PrintSafepointStatistics will be set to true in
-  // deferred_initialize_stat method. The initialization has to be done
-  // early enough to avoid any races. See bug 6880029 for details.
-  if (PrintSafepointStatistics || PrintSafepointStatisticsTimeout > 0) {
-    deferred_initialize_stat();
-  }
-
   // Begin the process of bringing the system to a safepoint.
   // Java threads can be in several different states and are
   // stopped by different mechanisms:
@@ -312,7 +312,7 @@
 
         if (iterations == 0) {
           initial_running = still_running;
-          if (PrintSafepointStatistics) {
+          if (log_is_enabled(Debug, safepoint, stats)) {
             begin_statistics(nof_threads, still_running);
           }
         }
@@ -403,7 +403,7 @@
     } // ThreadsListHandle destroyed here.
     assert(still_running == 0, "sanity check");
 
-    if (PrintSafepointStatistics) {
+    if (log_is_enabled(Debug, safepoint, stats)) {
       update_statistics_on_spin_end();
     }
     if (sync_event.should_commit()) {
@@ -436,7 +436,7 @@
     if (SafepointTimeout) {
       jlong current_time = os::javaTimeNanos();
       if (safepoint_limit_time < current_time) {
-        tty->print_cr("# SafepointSynchronize: Finished after "
+        log_warning(safepoint)("# SafepointSynchronize: Finished after "
                       INT64_FORMAT_W(6) " ms",
                       (int64_t)((current_time - safepoint_limit_time) / MICROUNITS +
                                 (jlong)SafepointTimeoutDelay));
@@ -470,7 +470,7 @@
   log_info(safepoint)("Entering safepoint region: %s", VMThread::vm_safepoint_description());
 
   RuntimeService::record_safepoint_synchronized();
-  if (PrintSafepointStatistics) {
+  if (log_is_enabled(Debug, safepoint, stats)) {
     update_statistics_on_sync_end(os::javaTimeNanos());
   }
 
@@ -483,7 +483,7 @@
     }
   }
 
-  if (PrintSafepointStatistics) {
+  if (log_is_enabled(Debug, safepoint, stats)) {
     // Record how much time spend on the above cleanup tasks
     update_statistics_on_cleanup_end(os::javaTimeNanos());
   }
@@ -506,7 +506,7 @@
   DEBUG_ONLY(Thread* myThread = Thread::current();)
   assert(myThread->is_VM_thread(), "Only VM thread can execute a safepoint");
 
-  if (PrintSafepointStatistics) {
+  if (log_is_enabled(Debug, safepoint, stats)) {
     end_statistics(os::javaTimeNanos());
   }
 
@@ -952,8 +952,8 @@
     assert(SafepointSynchronize::is_synchronizing(), "polling encountered outside safepoint synchronization");
   }
 
-  if (PrintSafepointStatistics) {
-    inc_page_trap_count();
+  if (log_is_enabled(Debug, safepoint, stats)) {
+    Atomic::inc(&_nof_threads_hit_polling_page);
   }
 
   ThreadSafepointState* state = thread->safepoint_state();
@@ -967,29 +967,34 @@
     timeout_error_printed = true;
     // Print out the thread info which didn't reach the safepoint for debugging
     // purposes (useful when there are lots of threads in the debugger).
-    tty->cr();
-    tty->print_cr("# SafepointSynchronize::begin: Timeout detected:");
-    if (reason ==  _spinning_timeout) {
-      tty->print_cr("# SafepointSynchronize::begin: Timed out while spinning to reach a safepoint.");
-    } else if (reason == _blocking_timeout) {
-      tty->print_cr("# SafepointSynchronize::begin: Timed out while waiting for threads to stop.");
-    }
+    LogTarget(Warning, safepoint) lt;
+    if (lt.is_enabled()) {
+      ResourceMark rm;
+      LogStream ls(lt);
+
+      ls.cr();
+      ls.print_cr("# SafepointSynchronize::begin: Timeout detected:");
+      if (reason ==  _spinning_timeout) {
+        ls.print_cr("# SafepointSynchronize::begin: Timed out while spinning to reach a safepoint.");
+      } else if (reason == _blocking_timeout) {
+        ls.print_cr("# SafepointSynchronize::begin: Timed out while waiting for threads to stop.");
+      }
 
-    tty->print_cr("# SafepointSynchronize::begin: Threads which did not reach the safepoint:");
-    ThreadSafepointState *cur_state;
-    ResourceMark rm;
-    for (JavaThreadIteratorWithHandle jtiwh; JavaThread *cur_thread = jtiwh.next(); ) {
-      cur_state = cur_thread->safepoint_state();
+      ls.print_cr("# SafepointSynchronize::begin: Threads which did not reach the safepoint:");
+      ThreadSafepointState *cur_state;
+      for (JavaThreadIteratorWithHandle jtiwh; JavaThread *cur_thread = jtiwh.next(); ) {
+        cur_state = cur_thread->safepoint_state();
 
-      if (cur_thread->thread_state() != _thread_blocked &&
-        ((reason == _spinning_timeout && cur_state->is_running()) ||
-           (reason == _blocking_timeout && !cur_state->has_called_back()))) {
-        tty->print("# ");
-        cur_thread->print();
-        tty->cr();
+        if (cur_thread->thread_state() != _thread_blocked &&
+          ((reason == _spinning_timeout && cur_state->is_running()) ||
+             (reason == _blocking_timeout && !cur_state->has_called_back()))) {
+          ls.print("# ");
+          cur_thread->print_on(&ls);
+          ls.cr();
+        }
       }
+      ls.print_cr("# SafepointSynchronize::begin: (End of list)");
     }
-    tty->print_cr("# SafepointSynchronize::begin: (End of list)");
   }
 
   // To debug the long safepoint, specify both DieOnSafepointTimeout &
@@ -1239,67 +1244,42 @@
 //
 //                     Statistics & Instrumentations
 //
-SafepointSynchronize::SafepointStats*  SafepointSynchronize::_safepoint_stats = NULL;
-jlong  SafepointSynchronize::_safepoint_begin_time = 0;
-int    SafepointSynchronize::_cur_stat_index = 0;
-julong SafepointSynchronize::_safepoint_reasons[VM_Operation::VMOp_Terminating];
-julong SafepointSynchronize::_coalesced_vmop_count = 0;
-jlong  SafepointSynchronize::_max_sync_time = 0;
-jlong  SafepointSynchronize::_max_vmop_time = 0;
-float  SafepointSynchronize::_ts_of_current_safepoint = 0.0f;
+struct SafepointStats {
+    float  _time_stamp;                        // record when the current safepoint occurs in seconds
+    int    _vmop_type;                         // tyep of VM operation triggers the safepoint
+    int    _nof_total_threads;                 // total number of Java threads
+    int    _nof_initial_running_threads;       // total number of initially seen running threads
+    int    _nof_threads_wait_to_block;         // total number of threads waiting for to block
+    bool   _page_armed;                        // true if polling page is armed, false otherwise
+    int _nof_threads_hit_page_trap;            // total number of threads hitting the page trap
+    jlong  _time_to_spin;                      // total time in millis spent in spinning
+    jlong  _time_to_wait_to_block;             // total time in millis spent in waiting for to block
+    jlong  _time_to_do_cleanups;               // total time in millis spent in performing cleanups
+    jlong  _time_to_sync;                      // total time in millis spent in getting to _synchronized
+    jlong  _time_to_exec_vmop;                 // total time in millis spent in vm operation itself
+};
+
+static const int _statistics_header_count = 30;
+static int _cur_stat_index = 0;
+static SafepointStats safepoint_stats = {0};  // zero initialize
+static SafepointStats* spstat = &safepoint_stats;
+
+static julong _safepoint_reasons[VM_Operation::VMOp_Terminating];
+static jlong  _max_sync_time = 0;
+static jlong  _max_vmop_time = 0;
 
 static jlong  cleanup_end_time = 0;
-static bool   init_done = false;
-
-// Helper method to print the header.
-static void print_header() {
-  // The number of spaces is significant here, and should match the format
-  // specifiers in print_statistics().
-
-  tty->print("          vmop                            "
-             "[ threads:    total initially_running wait_to_block ]"
-             "[ time:    spin   block    sync cleanup    vmop ] ");
-
-  tty->print_cr("page_trap_count");
-}
-
-void SafepointSynchronize::deferred_initialize_stat() {
-  if (init_done) return;
-
-  // If PrintSafepointStatisticsTimeout is specified, the statistics data will
-  // be printed right away, in which case, _safepoint_stats will regress to
-  // a single element array. Otherwise, it is a circular ring buffer with default
-  // size of PrintSafepointStatisticsCount.
-  int stats_array_size;
-  if (PrintSafepointStatisticsTimeout > 0) {
-    stats_array_size = 1;
-    PrintSafepointStatistics = true;
-  } else {
-    stats_array_size = PrintSafepointStatisticsCount;
-  }
-  _safepoint_stats = (SafepointStats*)os::malloc(stats_array_size
-                                                 * sizeof(SafepointStats), mtInternal);
-  guarantee(_safepoint_stats != NULL,
-            "not enough memory for safepoint instrumentation data");
-
-  init_done = true;
-}
 
 void SafepointSynchronize::begin_statistics(int nof_threads, int nof_running) {
-  assert(init_done, "safepoint statistics array hasn't been initialized");
-  SafepointStats *spstat = &_safepoint_stats[_cur_stat_index];
 
   spstat->_time_stamp = _ts_of_current_safepoint;
 
   VM_Operation *op = VMThread::vm_operation();
-  spstat->_vmop_type = (op != NULL ? op->type() : -1);
-  if (op != NULL) {
-    _safepoint_reasons[spstat->_vmop_type]++;
-  }
+  spstat->_vmop_type = op != NULL ? op->type() : VM_Operation::VMOp_None;
+  _safepoint_reasons[spstat->_vmop_type]++;
 
   spstat->_nof_total_threads = nof_threads;
   spstat->_nof_initial_running_threads = nof_running;
-  spstat->_nof_threads_hit_page_trap = 0;
 
   // Records the start time of spinning. The real time spent on spinning
   // will be adjusted when spin is done. Same trick is applied for time
@@ -1312,8 +1292,6 @@
 }
 
 void SafepointSynchronize::update_statistics_on_spin_end() {
-  SafepointStats *spstat = &_safepoint_stats[_cur_stat_index];
-
   jlong cur_time = os::javaTimeNanos();
 
   spstat->_nof_threads_wait_to_block = _waiting_to_block;
@@ -1330,7 +1308,6 @@
 }
 
 void SafepointSynchronize::update_statistics_on_sync_end(jlong end_time) {
-  SafepointStats *spstat = &_safepoint_stats[_cur_stat_index];
 
   if (spstat->_nof_threads_wait_to_block != 0) {
     spstat->_time_to_wait_to_block = end_time -
@@ -1349,106 +1326,90 @@
 }
 
 void SafepointSynchronize::update_statistics_on_cleanup_end(jlong end_time) {
-  SafepointStats *spstat = &_safepoint_stats[_cur_stat_index];
 
   // Record how long spent in cleanup tasks.
   spstat->_time_to_do_cleanups = end_time - spstat->_time_to_do_cleanups;
-
   cleanup_end_time = end_time;
 }
 
 void SafepointSynchronize::end_statistics(jlong vmop_end_time) {
-  SafepointStats *spstat = &_safepoint_stats[_cur_stat_index];
 
   // Update the vm operation time.
   spstat->_time_to_exec_vmop = vmop_end_time -  cleanup_end_time;
   if (spstat->_time_to_exec_vmop > _max_vmop_time) {
     _max_vmop_time = spstat->_time_to_exec_vmop;
   }
-  // Only the sync time longer than the specified
-  // PrintSafepointStatisticsTimeout will be printed out right away.
-  // By default, it is -1 meaning all samples will be put into the list.
-  if ( PrintSafepointStatisticsTimeout > 0) {
-    if (spstat->_time_to_sync > (jlong)PrintSafepointStatisticsTimeout * MICROUNITS) {
-      print_statistics();
-    }
-  } else {
-    // The safepoint statistics will be printed out when the _safepoin_stats
-    // array fills up.
-    if (_cur_stat_index == PrintSafepointStatisticsCount - 1) {
-      print_statistics();
-      _cur_stat_index = 0;
-    } else {
-      _cur_stat_index++;
-    }
-  }
+
+  spstat->_nof_threads_hit_page_trap = _nof_threads_hit_polling_page;
+
+  print_statistics();
+}
+
+// Helper method to print the header.
+static void print_header(outputStream* st) {
+  // The number of spaces is significant here, and should match the format
+  // specifiers in print_statistics().
+
+  st->print("          vmop                            "
+            "[ threads:    total initially_running wait_to_block ]"
+            "[ time:    spin   block    sync cleanup    vmop ] ");
+
+  st->print_cr("page_trap_count");
 }
 
+// This prints a nice table.  To get the statistics to not shift due to the logging uptime
+// decorator, use the option as: -Xlog:safepoint+stats=debug:[outputfile]:none
 void SafepointSynchronize::print_statistics() {
-  for (int index = 0; index <= _cur_stat_index; index++) {
-    if (index % 30 == 0) {
-      print_header();
-    }
-    SafepointStats* sstats = &_safepoint_stats[index];
-    tty->print("%8.3f: ", sstats->_time_stamp);
-    tty->print("%-30s  [          "
-               INT32_FORMAT_W(8) " " INT32_FORMAT_W(17) " " INT32_FORMAT_W(13) " "
-               "]",
-               (sstats->_vmop_type == -1 ? "no vm operation" : VM_Operation::name(sstats->_vmop_type)),
-               sstats->_nof_total_threads,
-               sstats->_nof_initial_running_threads,
-               sstats->_nof_threads_wait_to_block);
-    // "/ MICROUNITS " is to convert the unit from nanos to millis.
-    tty->print("[       "
-               INT64_FORMAT_W(7) " " INT64_FORMAT_W(7) " "
-               INT64_FORMAT_W(7) " " INT64_FORMAT_W(7) " "
-               INT64_FORMAT_W(7) " ] ",
-               (int64_t)(sstats->_time_to_spin / MICROUNITS),
-               (int64_t)(sstats->_time_to_wait_to_block / MICROUNITS),
-               (int64_t)(sstats->_time_to_sync / MICROUNITS),
-               (int64_t)(sstats->_time_to_do_cleanups / MICROUNITS),
-               (int64_t)(sstats->_time_to_exec_vmop / MICROUNITS));
+  LogTarget(Debug, safepoint, stats) lt;
+  assert (lt.is_enabled(), "should only be called when printing statistics is enabled");
+  LogStream ls(lt);
+
+  // Print header every 30 entries
+  if ((_cur_stat_index % _statistics_header_count) == 0) {
+    print_header(&ls);
+    _cur_stat_index = 1;  // wrap
+  } else {
+    _cur_stat_index++;
+  }
 
-    tty->print_cr(INT32_FORMAT_W(15) " ", sstats->_nof_threads_hit_page_trap);
-  }
+  ls.print("%8.3f: ", spstat->_time_stamp);
+  ls.print("%-28s  [          "
+           INT32_FORMAT_W(8) " " INT32_FORMAT_W(17) " " INT32_FORMAT_W(13) " "
+           "]",
+           VM_Operation::name(spstat->_vmop_type),
+           spstat->_nof_total_threads,
+           spstat->_nof_initial_running_threads,
+           spstat->_nof_threads_wait_to_block);
+  // "/ MICROUNITS " is to convert the unit from nanos to millis.
+  ls.print("[       "
+           INT64_FORMAT_W(7) " " INT64_FORMAT_W(7) " "
+           INT64_FORMAT_W(7) " " INT64_FORMAT_W(7) " "
+           INT64_FORMAT_W(7) " ] ",
+           (int64_t)(spstat->_time_to_spin / MICROUNITS),
+           (int64_t)(spstat->_time_to_wait_to_block / MICROUNITS),
+           (int64_t)(spstat->_time_to_sync / MICROUNITS),
+           (int64_t)(spstat->_time_to_do_cleanups / MICROUNITS),
+           (int64_t)(spstat->_time_to_exec_vmop / MICROUNITS));
+
+  ls.print_cr(INT32_FORMAT_W(15) " ", spstat->_nof_threads_hit_page_trap);
 }
 
-// This method will be called when VM exits. It will first call
-// print_statistics to print out the rest of the sampling.  Then
-// it tries to summarize the sampling.
+// This method will be called when VM exits. This tries to summarize the sampling.
+// Current thread may already be deleted, so don't use ResourceMark.
 void SafepointSynchronize::print_stat_on_exit() {
-  if (_safepoint_stats == NULL) return;
-
-  SafepointStats *spstat = &_safepoint_stats[_cur_stat_index];
-
-  // During VM exit, end_statistics may not get called and in that
-  // case, if the sync time is less than PrintSafepointStatisticsTimeout,
-  // don't print it out.
-  // Approximate the vm op time.
-  _safepoint_stats[_cur_stat_index]._time_to_exec_vmop =
-    os::javaTimeNanos() - cleanup_end_time;
-
-  if ( PrintSafepointStatisticsTimeout < 0 ||
-       spstat->_time_to_sync > (jlong)PrintSafepointStatisticsTimeout * MICROUNITS) {
-    print_statistics();
-  }
-  tty->cr();
-
-  // Print out polling page sampling status.
-  tty->print_cr("Polling page always armed");
 
   for (int index = 0; index < VM_Operation::VMOp_Terminating; index++) {
     if (_safepoint_reasons[index] != 0) {
-      tty->print_cr("%-26s" UINT64_FORMAT_W(10), VM_Operation::name(index),
-                    _safepoint_reasons[index]);
+      log_debug(safepoint, stats)("%-28s" UINT64_FORMAT_W(10), VM_Operation::name(index),
+                _safepoint_reasons[index]);
     }
   }
 
-  tty->print_cr(UINT64_FORMAT_W(5) " VM operations coalesced during safepoint",
-                _coalesced_vmop_count);
-  tty->print_cr("Maximum sync time  " INT64_FORMAT_W(5) " ms",
-                (int64_t)(_max_sync_time / MICROUNITS));
-  tty->print_cr("Maximum vm operation time (except for Exit VM operation)  "
-                INT64_FORMAT_W(5) " ms",
-                (int64_t)(_max_vmop_time / MICROUNITS));
+  log_debug(safepoint, stats)("VM operations coalesced during safepoint " INT64_FORMAT,
+                              _coalesced_vmop_count);
+  log_debug(safepoint, stats)("Maximum sync time  " INT64_FORMAT" ms",
+                              (int64_t)(_max_sync_time / MICROUNITS));
+  log_debug(safepoint, stats)("Maximum vm operation time (except for Exit VM operation)  "
+                              INT64_FORMAT " ms",
+                              (int64_t)(_max_vmop_time / MICROUNITS));
 }
--- a/src/hotspot/share/runtime/safepoint.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/runtime/safepoint.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -89,20 +89,6 @@
     SAFEPOINT_CLEANUP_NUM_TASKS
   };
 
-  typedef struct {
-    float  _time_stamp;                        // record when the current safepoint occurs in seconds
-    int    _vmop_type;                         // type of VM operation triggers the safepoint
-    int    _nof_total_threads;                 // total number of Java threads
-    int    _nof_initial_running_threads;       // total number of initially seen running threads
-    int    _nof_threads_wait_to_block;         // total number of threads waiting for to block
-    int    _nof_threads_hit_page_trap;         // total number of threads hitting the page trap
-    jlong  _time_to_spin;                      // total time in millis spent in spinning
-    jlong  _time_to_wait_to_block;             // total time in millis spent in waiting for to block
-    jlong  _time_to_do_cleanups;               // total time in millis spent in performing cleanups
-    jlong  _time_to_sync;                      // total time in millis spent in getting to _synchronized
-    jlong  _time_to_exec_vmop;                 // total time in millis spent in vm operation itself
-  } SafepointStats;
-
  private:
   static volatile SynchronizeState _state;     // Threads might read this flag directly, without acquiring the Threads_lock
   static volatile int _waiting_to_block;       // number of threads we are waiting for to block
@@ -118,27 +104,16 @@
 public:
   static volatile int _safepoint_counter;
 private:
-  static long       _end_of_last_safepoint;     // Time of last safepoint in milliseconds
+  static long         _end_of_last_safepoint;     // Time of last safepoint in milliseconds
+  static julong       _coalesced_vmop_count;     // coalesced vmop count
 
   // Statistics
-  static jlong            _safepoint_begin_time;     // time when safepoint begins
-  static SafepointStats*  _safepoint_stats;          // array of SafepointStats struct
-  static int              _cur_stat_index;           // current index to the above array
-  static julong           _safepoint_reasons[];      // safepoint count for each VM op
-  static julong           _coalesced_vmop_count;     // coalesced vmop count
-  static jlong            _max_sync_time;            // maximum sync time in nanos
-  static jlong            _max_vmop_time;            // maximum vm operation time in nanos
-  static float            _ts_of_current_safepoint;  // time stamp of current safepoint in seconds
-
   static void begin_statistics(int nof_threads, int nof_running);
   static void update_statistics_on_spin_end();
   static void update_statistics_on_sync_end(jlong end_time);
   static void update_statistics_on_cleanup_end(jlong end_time);
   static void end_statistics(jlong end_time);
   static void print_statistics();
-  inline static void inc_page_trap_count() {
-    Atomic::inc(&_safepoint_stats[_cur_stat_index]._nof_threads_hit_page_trap);
-  }
 
   // For debug long safepoint
   static void print_safepoint_timeout(SafepointTimeoutReason timeout_reason);
@@ -192,7 +167,6 @@
   static bool is_cleanup_needed();
   static void do_cleanup_tasks();
 
-  static void deferred_initialize_stat();
   static void print_stat_on_exit();
   inline static void inc_vmop_coalesced_count() { _coalesced_vmop_count++; }
 
--- a/src/hotspot/share/runtime/simpleThresholdPolicy.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/runtime/simpleThresholdPolicy.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -266,8 +266,9 @@
     max_method = max_task->method();
   }
 
-  if (max_task->comp_level() == CompLevel_full_profile && TieredStopAtLevel > CompLevel_full_profile
-      && is_method_profiled(max_method)) {
+  if (max_task != NULL && max_task->comp_level() == CompLevel_full_profile &&
+      TieredStopAtLevel > CompLevel_full_profile &&
+      max_method != NULL && is_method_profiled(max_method)) {
     max_task->set_comp_level(CompLevel_limited_profile);
     if (PrintTieredEvents) {
       print_event(UPDATE_IN_QUEUE, max_method, max_method, max_task->osr_bci(), (CompLevel)max_task->comp_level());
--- a/src/hotspot/share/runtime/thread.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/runtime/thread.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -963,7 +963,7 @@
 
 // The flag: potential_vm_operation notifies if this particular safepoint state could potentially
 // invoke the vm-thread (e.g., an oop allocation). In that case, we also have to make sure that
-// no threads which allow_vm_block's are held
+// no locks which allow_vm_block's are held
 void Thread::check_for_valid_safepoint_state(bool potential_vm_operation) {
   // Check if current thread is allowed to block at a safepoint
   if (!(_allow_safepoint_count == 0)) {
--- a/src/hotspot/share/runtime/vmThread.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/runtime/vmThread.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -47,8 +47,8 @@
 #include "utilities/xmlstream.hpp"
 
 // Dummy VM operation to act as first element in our circular double-linked list
-class VM_Dummy: public VM_Operation {
-  VMOp_Type type() const { return VMOp_Dummy; }
+class VM_None: public VM_Operation {
+  VMOp_Type type() const { return VMOp_None; }
   void  doit() {};
 };
 
@@ -58,7 +58,7 @@
   for(int i = 0; i < nof_priorities; i++) {
     _queue_length[i] = 0;
     _queue_counter = 0;
-    _queue[i] = new VM_Dummy();
+    _queue[i] = new VM_None();
     _queue[i]->set_next(_queue[i]);
     _queue[i]->set_prev(_queue[i]);
   }
@@ -511,7 +511,7 @@
               _vm_queue->set_drain_list(next);
               evaluate_operation(_cur_vm_operation);
               _cur_vm_operation = next;
-              if (PrintSafepointStatistics) {
+              if (log_is_enabled(Debug, safepoint, stats)) {
                 SafepointSynchronize::inc_vmop_coalesced_count();
               }
             } while (_cur_vm_operation != NULL);
--- a/src/hotspot/share/runtime/vm_operations.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/runtime/vm_operations.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -192,12 +192,6 @@
 
 #endif // !PRODUCT
 
-void VM_UnlinkSymbols::doit() {
-  JavaThread *thread = (JavaThread *)calling_thread();
-  assert(thread->is_Java_thread(), "must be a Java thread");
-  SymbolTable::unlink();
-}
-
 void VM_Verify::doit() {
   Universe::heap()->prepare_for_verify();
   Universe::verify();
--- a/src/hotspot/share/runtime/vm_operations.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/runtime/vm_operations.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -40,7 +40,7 @@
 
 // Note: When new VM_XXX comes up, add 'XXX' to the template table.
 #define VM_OPS_DO(template)                       \
-  template(Dummy)                                 \
+  template(None)                                  \
   template(ThreadStop)                            \
   template(ThreadDump)                            \
   template(PrintThreads)                          \
@@ -52,7 +52,6 @@
   template(DeoptimizeFrame)                       \
   template(DeoptimizeAll)                         \
   template(ZombieAll)                             \
-  template(UnlinkSymbols)                         \
   template(Verify)                                \
   template(PrintJNI)                              \
   template(HeapDumper)                            \
@@ -353,14 +352,6 @@
 };
 #endif // PRODUCT
 
-class VM_UnlinkSymbols: public VM_Operation {
- public:
-  VM_UnlinkSymbols() {}
-  VMOp_Type type() const                         { return VMOp_UnlinkSymbols; }
-  void doit();
-  bool allow_nested_vm_operations() const        { return true; }
-};
-
 class VM_Verify: public VM_Operation {
  public:
   VMOp_Type type() const { return VMOp_Verify; }
--- a/src/hotspot/share/services/mallocSiteTable.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/services/mallocSiteTable.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -28,34 +28,10 @@
 #include "runtime/atomic.hpp"
 #include "services/mallocSiteTable.hpp"
 
-/*
- * Early os::malloc() calls come from initializations of static variables, long before entering any
- * VM code. Upon the arrival of the first os::malloc() call, malloc site hashtable has to be
- * initialized, along with the allocation site for the hashtable entries.
- * To ensure that malloc site hashtable can be initialized without triggering any additional os::malloc()
- * call, the hashtable bucket array and hashtable entry allocation site have to be static.
- * It is not a problem for hashtable bucket, since it is an array of pointer type, C runtime just
- * allocates a block memory and zero the memory for it.
- * But for hashtable entry allocation site object, things get tricky. C runtime not only allocates
- * memory for it, but also calls its constructor at some later time. If we initialize the allocation site
- * at the first os::malloc() call, the object will be reinitialized when its constructor is called
- * by C runtime.
- * To workaround above issue, we declare a static size_t array with the size of the CallsiteHashtableEntry,
- * the memory is used to instantiate CallsiteHashtableEntry for the hashtable entry allocation site.
- * Given it is a primitive type array, C runtime will do nothing other than assign the memory block for the variable,
- * which is exactly what we want.
- * The same trick is also applied to create NativeCallStack object for CallsiteHashtableEntry memory allocation.
- *
- * Note: C++ object usually aligns to particular alignment, depends on compiler implementation, we declare
- * the memory as size_t arrays, to ensure the memory is aligned to native machine word alignment.
- */
-
-// Reserve enough memory for NativeCallStack and MallocSiteHashtableEntry objects
-size_t MallocSiteTable::_hash_entry_allocation_stack[CALC_OBJ_SIZE_IN_TYPE(NativeCallStack, size_t)];
-size_t MallocSiteTable::_hash_entry_allocation_site[CALC_OBJ_SIZE_IN_TYPE(MallocSiteHashtableEntry, size_t)];
-
 // Malloc site hashtable buckets
 MallocSiteHashtableEntry*  MallocSiteTable::_table[MallocSiteTable::table_size];
+const NativeCallStack* MallocSiteTable::_hash_entry_allocation_stack = NULL;
+const MallocSiteHashtableEntry* MallocSiteTable::_hash_entry_allocation_site = NULL;
 
 // concurrent access counter
 volatile int MallocSiteTable::_access_count = 0;
@@ -73,9 +49,6 @@
  * time, it is in single-threaded mode from JVM perspective.
  */
 bool MallocSiteTable::initialize() {
-  assert(sizeof(_hash_entry_allocation_stack) >= sizeof(NativeCallStack), "Sanity Check");
-  assert(sizeof(_hash_entry_allocation_site) >= sizeof(MallocSiteHashtableEntry),
-    "Sanity Check");
   assert((size_t)table_size <= MAX_MALLOCSITE_TABLE_SIZE, "Hashtable overflow");
 
   // Fake the call stack for hashtable entry allocation
@@ -84,24 +57,32 @@
   // Create pseudo call stack for hashtable entry allocation
   address pc[3];
   if (NMT_TrackingStackDepth >= 3) {
-    pc[2] = (address)MallocSiteTable::allocation_at;
+    uintx *fp = (uintx*)MallocSiteTable::allocation_at;
+    // On ppc64, 'fp' is a pointer to a function descriptor which is a struct  of
+    // three native pointers where the first pointer is the real function address.
+    // See: http://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi-1.9.html#FUNC-DES
+    pc[2] = (address)(fp PPC64_ONLY(BIG_ENDIAN_ONLY([0])));
   }
   if (NMT_TrackingStackDepth >= 2) {
-    pc[1] = (address)MallocSiteTable::lookup_or_add;
+    uintx *fp = (uintx*)MallocSiteTable::lookup_or_add;
+    pc[1] = (address)(fp PPC64_ONLY(BIG_ENDIAN_ONLY([0])));
   }
-  pc[0] = (address)MallocSiteTable::new_entry;
+  uintx *fp = (uintx*)MallocSiteTable::new_entry;
+  pc[0] = (address)(fp PPC64_ONLY(BIG_ENDIAN_ONLY([0])));
 
-  // Instantiate NativeCallStack object, have to use placement new operator. (see comments above)
-  NativeCallStack* stack = ::new ((void*)_hash_entry_allocation_stack)
-    NativeCallStack(pc, MIN2(((int)(sizeof(pc) / sizeof(address))), ((int)NMT_TrackingStackDepth)));
+  static const NativeCallStack stack(pc, MIN2(((int)(sizeof(pc) / sizeof(address))), ((int)NMT_TrackingStackDepth)));
+  static const MallocSiteHashtableEntry entry(stack, mtNMT);
 
-  // Instantiate hash entry for hashtable entry allocation callsite
-  MallocSiteHashtableEntry* entry = ::new ((void*)_hash_entry_allocation_site)
-    MallocSiteHashtableEntry(*stack, mtNMT);
+  assert(_hash_entry_allocation_stack == NULL &&
+         _hash_entry_allocation_site == NULL,
+         "Already initailized");
+
+  _hash_entry_allocation_stack = &stack;
+  _hash_entry_allocation_site = &entry;
 
   // Add the allocation site to hashtable.
-  int index = hash_to_index(stack->hash());
-  _table[index] = entry;
+  int index = hash_to_index(stack.hash());
+  _table[index] = const_cast<MallocSiteHashtableEntry*>(&entry);
 
   return true;
 }
@@ -204,6 +185,9 @@
     _table[index] = NULL;
     delete_linked_list(head);
   }
+
+  _hash_entry_allocation_stack = NULL;
+  _hash_entry_allocation_site = NULL;
 }
 
 void MallocSiteTable::delete_linked_list(MallocSiteHashtableEntry* head) {
@@ -211,7 +195,7 @@
   while (head != NULL) {
     p = head;
     head = (MallocSiteHashtableEntry*)head->next();
-    if (p != (MallocSiteHashtableEntry*)_hash_entry_allocation_site) {
+    if (p != hash_entry_allocation_site()) {
       delete p;
     }
   }
--- a/src/hotspot/share/services/mallocSiteTable.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/services/mallocSiteTable.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -247,7 +247,13 @@
   }
 
   static inline const NativeCallStack* hash_entry_allocation_stack() {
-    return (NativeCallStack*)_hash_entry_allocation_stack;
+    assert(_hash_entry_allocation_stack != NULL, "Must be set");
+    return _hash_entry_allocation_stack;
+  }
+
+  static inline const MallocSiteHashtableEntry* hash_entry_allocation_site() {
+    assert(_hash_entry_allocation_site != NULL, "Must be set");
+    return _hash_entry_allocation_site;
   }
 
  private:
@@ -256,15 +262,11 @@
 
   // The callsite hashtable. It has to be a static table,
   // since malloc call can come from C runtime linker.
-  static MallocSiteHashtableEntry*   _table[table_size];
+  static MallocSiteHashtableEntry*        _table[table_size];
+  static const NativeCallStack*           _hash_entry_allocation_stack;
+  static const MallocSiteHashtableEntry*  _hash_entry_allocation_site;
 
 
-  // Reserve enough memory for placing the objects
-
-  // The memory for hashtable entry allocation stack object
-  static size_t _hash_entry_allocation_stack[CALC_OBJ_SIZE_IN_TYPE(NativeCallStack, size_t)];
-  // The memory for hashtable entry allocation callsite object
-  static size_t _hash_entry_allocation_site[CALC_OBJ_SIZE_IN_TYPE(MallocSiteHashtableEntry, size_t)];
   NOT_PRODUCT(static int     _peak_count;)
 };
 
--- a/src/hotspot/share/services/memTracker.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/services/memTracker.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -68,10 +68,6 @@
     os::unsetenv(buf);
   }
 
-  // Construct NativeCallStack::EMPTY_STACK. It may get constructed twice,
-  // but it is benign, the results are the same.
-  ::new ((void*)&NativeCallStack::EMPTY_STACK) NativeCallStack(0, false);
-
   if (!MallocTracker::initialize(level) ||
       !VirtualMemoryTracker::initialize(level)) {
     level = NMT_off;
--- a/src/hotspot/share/services/writeableFlags.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/services/writeableFlags.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -79,7 +79,7 @@
     case JVMFlag::NON_WRITABLE:
       buffer_concat(buffer, "flag is not writeable."); break;
     case JVMFlag::OUT_OF_BOUNDS:
-      print_flag_error_message_bounds(name, buffer); break;
+      if (name != NULL) { print_flag_error_message_bounds(name, buffer); } break;
     case JVMFlag::VIOLATES_CONSTRAINT:
       buffer_concat(buffer, "value violates its flag's constraint."); break;
     case JVMFlag::INVALID_FLAG:
--- a/src/hotspot/share/utilities/concurrentHashTable.inline.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/utilities/concurrentHashTable.inline.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -263,8 +263,11 @@
       Prefetch::read(*pref->value(), 0);
       pref = pref->next();
     }
-    if (next->next() != NULL) {
-      Prefetch::read(*next->next()->value(), 0);
+    // Read next() Node* once.  May be racing with a thread moving the next
+    // pointers.
+    Node* next_pref = next->next();
+    if (next_pref != NULL) {
+      Prefetch::read(*next_pref->value(), 0);
     }
     if (eval_f(next->value())) {
       return true;
@@ -546,8 +549,9 @@
     lookup_f.equals(rem_n->value(), &is_dead);
     if (is_dead) {
       ndel[dels++] = rem_n;
-      bucket->release_assign_node_ptr(rem_n_prev, rem_n->next());
-      rem_n = rem_n->next();
+      Node* next_node = rem_n->next();
+      bucket->release_assign_node_ptr(rem_n_prev, next_node);
+      rem_n = next_node;
       if (dels == BULK_DELETE_LIMIT) {
         break;
       }
@@ -654,32 +658,33 @@
   while (aux != NULL) {
     bool dead_hash = false;
     size_t aux_hash = CONFIG::get_hash(*aux->value(), &dead_hash);
+    Node* aux_next = aux->next();
     if (dead_hash) {
       delete_me = aux;
       // This item is dead, move both list to next
       new_table->get_bucket(odd_index)->release_assign_node_ptr(odd,
-                                                                aux->next());
+                                                                aux_next);
       new_table->get_bucket(even_index)->release_assign_node_ptr(even,
-                                                                 aux->next());
+                                                                 aux_next);
     } else {
       size_t aux_index = bucket_idx_hash(new_table, aux_hash);
       if (aux_index == even_index) {
         // This is a even, so move odd to aux/even next
         new_table->get_bucket(odd_index)->release_assign_node_ptr(odd,
-                                                                  aux->next());
+                                                                  aux_next);
         // Keep in even list
         even = aux->next_ptr();
       } else if (aux_index == odd_index) {
         // This is a odd, so move odd to aux/odd next
         new_table->get_bucket(even_index)->release_assign_node_ptr(even,
-                                                                   aux->next());
+                                                                   aux_next);
         // Keep in odd list
         odd = aux->next_ptr();
       } else {
         fatal("aux_index does not match even or odd indices");
       }
     }
-    aux = aux->next();
+    aux = aux_next;
 
     // We can only move 1 pointer otherwise a reader might be moved to the wrong
     // chain. E.g. looking for even hash value but got moved to the odd bucket
@@ -976,8 +981,9 @@
   while (rem_n != NULL) {
     if (eval_f(rem_n->value())) {
       ndel[dels++] = rem_n;
-      bucket->release_assign_node_ptr(rem_n_prev, rem_n->next());
-      rem_n = rem_n->next();
+      Node* next_node = rem_n->next();
+      bucket->release_assign_node_ptr(rem_n_prev, next_node);
+      rem_n = next_node;
       if (dels == num_del) {
         break;
       }
--- a/src/hotspot/share/utilities/macros.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/utilities/macros.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -569,6 +569,14 @@
 #define NOT_AARCH64(code) code
 #endif
 
+#ifdef VM_LITTLE_ENDIAN
+#define LITTLE_ENDIAN_ONLY(code) code
+#define BIG_ENDIAN_ONLY(code)
+#else
+#define LITTLE_ENDIAN_ONLY(code)
+#define BIG_ENDIAN_ONLY(code) code
+#endif
+
 #define define_pd_global(type, name, value) const type pd_##name = value;
 
 // Helper macros for constructing file names for includes.
--- a/src/hotspot/share/utilities/nativeCallStack.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/utilities/nativeCallStack.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -28,8 +28,6 @@
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/nativeCallStack.hpp"
 
-NativeCallStack NativeCallStack::EMPTY_STACK(0, false);
-
 NativeCallStack::NativeCallStack(int toSkip, bool fillStack) :
   _hash_value(0) {
 
--- a/src/hotspot/share/utilities/nativeCallStack.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/utilities/nativeCallStack.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -54,18 +54,16 @@
 class MemTracker;
 
 class NativeCallStack : public StackObj {
-  friend class MemTracker;
-
 private:
   address       _stack[NMT_TrackingStackDepth];
   unsigned int  _hash_value;
 
-  static NativeCallStack EMPTY_STACK;
 public:
   NativeCallStack(int toSkip = 0, bool fillStack = false);
   NativeCallStack(address* pc, int frameCount);
 
   static inline const NativeCallStack& empty_stack() {
+    static const NativeCallStack EMPTY_STACK(0, false);
     return EMPTY_STACK;
   }
 
--- a/src/hotspot/share/utilities/ostream.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/hotspot/share/utilities/ostream.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -531,7 +531,8 @@
 long fileStream::fileSize() {
   long size = -1;
   if (_file != NULL) {
-    long pos  = ::ftell(_file);
+    long pos = ::ftell(_file);
+    if (pos < 0) return pos;
     if (::fseek(_file, 0, SEEK_END) == 0) {
       size = ::ftell(_file);
     }
--- a/src/java.base/linux/classes/jdk/internal/platform/cgroupv1/SubSystem.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.base/linux/classes/jdk/internal/platform/cgroupv1/SubSystem.java	Mon Jul 16 12:11:02 2018 +0100
@@ -27,6 +27,7 @@
 
 import java.io.BufferedReader;
 import java.io.IOException;
+import java.math.BigInteger;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
@@ -100,11 +101,20 @@
 
     public static long getLongValue(SubSystem subsystem, String parm) {
         String strval = getStringValue(subsystem, parm);
+        long retval = 0;
 
         if (strval == null) return 0L;
 
-        long retval = Long.parseLong(strval);
-
+        try {
+            retval = Long.parseLong(strval);
+        } catch (NumberFormatException e) {
+            // For some properties (e.g. memory.limit_in_bytes) we may overflow the range of signed long.
+            // In this case, return Long.max
+            BigInteger b = new BigInteger(strval);
+            if (b.compareTo(BigInteger.valueOf(Long.MAX_VALUE)) > 0) {
+                return Long.MAX_VALUE;
+            }
+        }
         return retval;
     }
 
--- a/src/java.base/share/classes/com/sun/crypto/provider/AESCrypt.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.base/share/classes/com/sun/crypto/provider/AESCrypt.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -39,7 +39,6 @@
 import java.security.InvalidKeyException;
 import java.security.MessageDigest;
 import java.util.Arrays;
-import java.util.Objects;
 
 import jdk.internal.HotSpotIntrinsicCandidate;
 
@@ -351,8 +350,8 @@
      */
     void encryptBlock(byte[] in, int inOffset,
                       byte[] out, int outOffset) {
-        Objects.checkFromIndexSize(inOffset, AES_BLOCK_SIZE, in.length);
-        Objects.checkFromIndexSize(outOffset, AES_BLOCK_SIZE, out.length);
+        // Array bound checks are done in caller code, i.e.
+        // FeedbackCipher.encrypt/decrypt(...) to improve performance.
         implEncryptBlock(in, inOffset, out, outOffset);
     }
 
@@ -430,8 +429,8 @@
      */
     void decryptBlock(byte[] in, int inOffset,
                       byte[] out, int outOffset) {
-        Objects.checkFromIndexSize(inOffset, AES_BLOCK_SIZE, in.length);
-        Objects.checkFromIndexSize(outOffset, AES_BLOCK_SIZE, out.length);
+        // Array bound checks are done in caller code, i.e.
+        // FeedbackCipher.encrypt/decrypt(...) to improve performance.
         implDecryptBlock(in, inOffset, out, outOffset);
     }
 
--- a/src/java.base/share/classes/com/sun/crypto/provider/CipherBlockChaining.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.base/share/classes/com/sun/crypto/provider/CipherBlockChaining.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -30,6 +30,7 @@
 import java.util.Objects;
 
 import jdk.internal.HotSpotIntrinsicCandidate;
+import sun.security.util.ArrayUtil;
 
 
 /**
@@ -145,9 +146,9 @@
         if (plainLen <= 0) {
             return plainLen;
         }
-        cryptBlockSizeCheck(plainLen);
-        cryptNullAndBoundsCheck(plain, plainOffset, plainLen);
-        cryptNullAndBoundsCheck(cipher, cipherOffset, plainLen);
+        ArrayUtil.blockSizeCheck(plainLen, blockSize);
+        ArrayUtil.nullAndBoundsCheck(plain, plainOffset, plainLen);
+        ArrayUtil.nullAndBoundsCheck(cipher, cipherOffset, plainLen);
         return implEncrypt(plain, plainOffset, plainLen,
                            cipher, cipherOffset);
     }
@@ -196,9 +197,9 @@
         if (cipherLen <= 0) {
             return cipherLen;
         }
-        cryptBlockSizeCheck(cipherLen);
-        cryptNullAndBoundsCheck(cipher, cipherOffset, cipherLen);
-        cryptNullAndBoundsCheck(plain, plainOffset, cipherLen);
+        ArrayUtil.blockSizeCheck(cipherLen, blockSize);
+        ArrayUtil.nullAndBoundsCheck(cipher, cipherOffset, cipherLen);
+        ArrayUtil.nullAndBoundsCheck(plain, plainOffset, cipherLen);
         return implDecrypt(cipher, cipherOffset, cipherLen, plain, plainOffset);
     }
 
@@ -218,23 +219,4 @@
         }
         return cipherLen;
     }
-
-    private void cryptBlockSizeCheck(int len) {
-        if ((len % blockSize) != 0) {
-            throw new ProviderException("Internal error in input buffering");
-        }
-    }
-
-    private static void cryptNullAndBoundsCheck(byte[] array, int offset, int len) {
-        Objects.requireNonNull(array);
-
-        if (offset < 0 || offset >= array.length) {
-            throw new ArrayIndexOutOfBoundsException(offset);
-        }
-
-        int endIndex = offset + len - 1;
-        if (endIndex < 0 || endIndex >= array.length) {
-            throw new ArrayIndexOutOfBoundsException(endIndex);
-        }
-    }
 }
--- a/src/java.base/share/classes/com/sun/crypto/provider/CipherFeedback.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.base/share/classes/com/sun/crypto/provider/CipherFeedback.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,6 +27,7 @@
 
 import java.security.InvalidKeyException;
 import java.security.ProviderException;
+import sun.security.util.ArrayUtil;
 
 /**
  * This class represents ciphers in cipher-feedback (CFB) mode.
@@ -149,9 +150,9 @@
      */
     int encrypt(byte[] plain, int plainOffset, int plainLen,
                 byte[] cipher, int cipherOffset) {
-        if ((plainLen % numBytes) != 0) {
-            throw new ProviderException("Internal error in input buffering");
-        }
+        ArrayUtil.blockSizeCheck(plainLen, numBytes);
+        ArrayUtil.nullAndBoundsCheck(plain, plainOffset, plainLen);
+        ArrayUtil.nullAndBoundsCheck(cipher, cipherOffset, plainLen);
 
         int nShift = blockSize - numBytes;
         int loopCount = plainLen / numBytes;
@@ -225,9 +226,10 @@
      */
     int decrypt(byte[] cipher, int cipherOffset, int cipherLen,
                 byte[] plain, int plainOffset) {
-        if ((cipherLen % numBytes) != 0) {
-            throw new ProviderException("Internal error in input buffering");
-        }
+
+        ArrayUtil.blockSizeCheck(cipherLen, numBytes);
+        ArrayUtil.nullAndBoundsCheck(cipher, cipherOffset, cipherLen);
+        ArrayUtil.nullAndBoundsCheck(plain, plainOffset, cipherLen);
 
         int nShift = blockSize - numBytes;
         int loopCount = cipherLen / numBytes;
--- a/src/java.base/share/classes/com/sun/crypto/provider/CounterMode.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.base/share/classes/com/sun/crypto/provider/CounterMode.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,9 +26,9 @@
 package com.sun.crypto.provider;
 
 import java.security.InvalidKeyException;
-import java.util.Objects;
 
 import jdk.internal.HotSpotIntrinsicCandidate;
+import sun.security.util.ArrayUtil;
 
 /**
  * This class represents ciphers in counter (CTR) mode.
@@ -175,8 +175,9 @@
         if (len == 0) {
             return 0;
         }
-        Objects.checkFromIndexSize(inOff, len, in.length);
-        Objects.checkFromIndexSize(outOff, len, out.length);
+
+        ArrayUtil.nullAndBoundsCheck(in, inOff, len);
+        ArrayUtil.nullAndBoundsCheck(out, outOff, len);
         return implCrypt(in, inOff, len, out, outOff);
     }
 
--- a/src/java.base/share/classes/com/sun/crypto/provider/ElectronicCodeBook.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.base/share/classes/com/sun/crypto/provider/ElectronicCodeBook.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,6 +27,7 @@
 
 import java.security.InvalidKeyException;
 import java.security.ProviderException;
+import sun.security.util.ArrayUtil;
 
 /**
  * This class represents ciphers in electronic codebook (ECB) mode.
@@ -112,9 +113,10 @@
      * @return the length of the encrypted data
      */
     int encrypt(byte[] in, int inOff, int len, byte[] out, int outOff) {
-        if ((len % blockSize) != 0) {
-             throw new ProviderException("Internal error in input buffering");
-        }
+        ArrayUtil.blockSizeCheck(len, blockSize);
+        ArrayUtil.nullAndBoundsCheck(in, inOff, len);
+        ArrayUtil.nullAndBoundsCheck(out, outOff, len);
+
         for (int i = len; i >= blockSize; i -= blockSize) {
             embeddedCipher.encryptBlock(in, inOff, out, outOff);
             inOff += blockSize;
@@ -141,9 +143,10 @@
      * @return the length of the decrypted data
      */
     int decrypt(byte[] in, int inOff, int len, byte[] out, int outOff) {
-        if ((len % blockSize) != 0) {
-             throw new ProviderException("Internal error in input buffering");
-        }
+        ArrayUtil.blockSizeCheck(len, blockSize);
+        ArrayUtil.nullAndBoundsCheck(in, inOff, len);
+        ArrayUtil.nullAndBoundsCheck(out, outOff, len);
+
         for (int i = len; i >= blockSize; i -= blockSize) {
             embeddedCipher.decryptBlock(in, inOff, out, outOff);
             inOff += blockSize;
--- a/src/java.base/share/classes/com/sun/crypto/provider/GaloisCounterMode.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.base/share/classes/com/sun/crypto/provider/GaloisCounterMode.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -30,6 +30,8 @@
 import java.security.*;
 import javax.crypto.*;
 import static com.sun.crypto.provider.AESConstants.AES_BLOCK_SIZE;
+import sun.security.util.ArrayUtil;
+
 
 /**
  * This class represents ciphers in GaloisCounter (GCM) mode.
@@ -406,8 +408,8 @@
     /**
      * Performs encryption operation.
      *
-     * <p>The input plain text <code>in</code>, starting at <code>inOff</code>
-     * and ending at <code>(inOff + len - 1)</code>, is encrypted. The result
+     * <p>The input plain text <code>in</code>, starting at <code>inOfs</code>
+     * and ending at <code>(inOfs + len - 1)</code>, is encrypted. The result
      * is stored in <code>out</code>, starting at <code>outOfs</code>.
      *
      * @param in the buffer with the input data to be encrypted
@@ -420,18 +422,21 @@
      * @return the number of bytes placed into the <code>out</code> buffer
      */
     int encrypt(byte[] in, int inOfs, int len, byte[] out, int outOfs) {
-        if ((len % blockSize) != 0) {
-             throw new ProviderException("Internal error in input buffering");
-        }
+        ArrayUtil.blockSizeCheck(len, blockSize);
 
         checkDataLength(processed, len);
 
         processAAD();
+
         if (len > 0) {
+            ArrayUtil.nullAndBoundsCheck(in, inOfs, len);
+            ArrayUtil.nullAndBoundsCheck(out, outOfs, len);
+
             gctrPAndC.update(in, inOfs, len, out, outOfs);
             processed += len;
             ghashAllToS.update(out, outOfs, len);
         }
+
         return len;
     }
 
@@ -451,7 +456,10 @@
             throw new ShortBufferException
                 ("Can't fit both data and tag into one buffer");
         }
-        if (out.length - outOfs < (len + tagLenBytes)) {
+        try {
+            ArrayUtil.nullAndBoundsCheck(out, outOfs,
+                (len + tagLenBytes));
+        } catch (ArrayIndexOutOfBoundsException aiobe) {
             throw new ShortBufferException("Output buffer too small");
         }
 
@@ -459,6 +467,8 @@
 
         processAAD();
         if (len > 0) {
+            ArrayUtil.nullAndBoundsCheck(in, inOfs, len);
+
             doLastBlock(in, inOfs, len, out, outOfs, true);
         }
 
@@ -492,9 +502,7 @@
      * @return the number of bytes placed into the <code>out</code> buffer
      */
     int decrypt(byte[] in, int inOfs, int len, byte[] out, int outOfs) {
-        if ((len % blockSize) != 0) {
-             throw new ProviderException("Internal error in input buffering");
-        }
+        ArrayUtil.blockSizeCheck(len, blockSize);
 
         checkDataLength(ibuffer.size(), len);
 
@@ -504,6 +512,7 @@
             // store internally until decryptFinal is called because
             // spec mentioned that only return recovered data after tag
             // is successfully verified
+            ArrayUtil.nullAndBoundsCheck(in, inOfs, len);
             ibuffer.write(in, inOfs, len);
         }
         return 0;
@@ -532,22 +541,28 @@
         if (len < tagLenBytes) {
             throw new AEADBadTagException("Input too short - need tag");
         }
+
         // do this check here can also catch the potential integer overflow
         // scenario for the subsequent output buffer capacity check.
         checkDataLength(ibuffer.size(), (len - tagLenBytes));
 
-        if (out.length - outOfs < ((ibuffer.size() + len) - tagLenBytes)) {
+        try {
+            ArrayUtil.nullAndBoundsCheck(out, outOfs,
+                (ibuffer.size() + len) - tagLenBytes);
+        } catch (ArrayIndexOutOfBoundsException aiobe) {
             throw new ShortBufferException("Output buffer too small");
         }
 
         processAAD();
 
+        ArrayUtil.nullAndBoundsCheck(in, inOfs, len);
+
         // get the trailing tag bytes from 'in'
         byte[] tag = new byte[tagLenBytes];
         System.arraycopy(in, inOfs + len - tagLenBytes, tag, 0, tagLenBytes);
         len -= tagLenBytes;
 
-        if (len != 0) {
+        if (len > 0) {
             ibuffer.write(in, inOfs, len);
         }
 
--- a/src/java.base/share/classes/com/sun/crypto/provider/OutputFeedback.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.base/share/classes/com/sun/crypto/provider/OutputFeedback.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,6 +27,7 @@
 
 import java.security.InvalidKeyException;
 import java.security.ProviderException;
+import sun.security.util.ArrayUtil;
 
 /**
  * This class represents ciphers in output-feedback (OFB) mode.
@@ -148,10 +149,10 @@
      */
     int encrypt(byte[] plain, int plainOffset, int plainLen,
                 byte[] cipher, int cipherOffset) {
+        ArrayUtil.blockSizeCheck(plainLen, numBytes);
+        ArrayUtil.nullAndBoundsCheck(plain, plainOffset, plainLen);
+        ArrayUtil.nullAndBoundsCheck(cipher, cipherOffset, plainLen);
 
-        if ((plainLen % numBytes) != 0) {
-            throw new ProviderException("Internal error in input buffering");
-        }
         int nShift = blockSize - numBytes;
         int loopCount = plainLen / numBytes;
 
@@ -189,6 +190,9 @@
      */
     int encryptFinal(byte[] plain, int plainOffset, int plainLen,
                      byte[] cipher, int cipherOffset) {
+        ArrayUtil.nullAndBoundsCheck(plain, plainOffset, plainLen);
+        ArrayUtil.nullAndBoundsCheck(cipher, cipherOffset, plainLen);
+
         int oddBytes = plainLen % numBytes;
         int len = encrypt(plain, plainOffset, (plainLen - oddBytes),
                           cipher, cipherOffset);
--- a/src/java.base/share/classes/com/sun/crypto/provider/PCBC.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.base/share/classes/com/sun/crypto/provider/PCBC.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,6 +27,7 @@
 
 import java.security.InvalidKeyException;
 import java.security.ProviderException;
+import sun.security.util.ArrayUtil;
 
 
 /**
@@ -136,9 +137,10 @@
     int encrypt(byte[] plain, int plainOffset, int plainLen,
                 byte[] cipher, int cipherOffset)
     {
-        if ((plainLen % blockSize) != 0) {
-            throw new ProviderException("Internal error in input buffering");
-        }
+        ArrayUtil.blockSizeCheck(plainLen, blockSize);
+        ArrayUtil.nullAndBoundsCheck(plain, plainOffset, plainLen);
+        ArrayUtil.nullAndBoundsCheck(cipher, cipherOffset, plainLen);
+
         int i;
         int endIndex = plainOffset + plainLen;
 
@@ -176,9 +178,10 @@
     int decrypt(byte[] cipher, int cipherOffset, int cipherLen,
                 byte[] plain, int plainOffset)
     {
-        if ((cipherLen % blockSize) != 0) {
-             throw new ProviderException("Internal error in input buffering");
-        }
+        ArrayUtil.blockSizeCheck(cipherLen, blockSize);
+        ArrayUtil.nullAndBoundsCheck(cipher, cipherOffset, cipherLen);
+        ArrayUtil.nullAndBoundsCheck(plain, plainOffset, cipherLen);
+
         int i;
         int endIndex = cipherOffset + cipherLen;
 
--- a/src/java.base/share/classes/java/io/FileSystem.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.base/share/classes/java/io/FileSystem.java	Mon Jul 16 12:11:02 2018 +0100
@@ -231,8 +231,8 @@
 
     // Flags for enabling/disabling performance optimizations for file
     // name canonicalization
-    static boolean useCanonCaches      = true;
-    static boolean useCanonPrefixCache = true;
+    static boolean useCanonCaches;
+    static boolean useCanonPrefixCache;
 
     private static boolean getBooleanProperty(String prop, boolean defaultVal) {
         return Boolean.parseBoolean(System.getProperty(prop,
--- a/src/java.base/share/classes/java/lang/invoke/MethodHandles.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.base/share/classes/java/lang/invoke/MethodHandles.java	Mon Jul 16 12:11:02 2018 +0100
@@ -71,6 +71,9 @@
  * <li>Combinator methods, which combine or transform pre-existing method handles into new ones.
  * <li>Other factory methods to create method handles that emulate other common JVM operations or control flow patterns.
  * </ul>
+ * A lookup, combinator, or factory method will fail and throw an
+ * {@code IllegalArgumentException} if the created method handle's type
+ * would have <a href="MethodHandle.html#maxarity">too many parameters</a>.
  *
  * @author John Rose, JSR 292 EG
  * @since 1.7
@@ -386,8 +389,9 @@
      * constant is not subject to security manager checks.
      * <li>If the looked-up method has a
      * <a href="MethodHandle.html#maxarity">very large arity</a>,
-     * the method handle creation may fail, due to the method handle
-     * type having too many parameters.
+     * the method handle creation may fail with an
+     * {@code IllegalArgumentException}, due to the method handle type having
+     * <a href="MethodHandle.html#maxarity">too many parameters.</a>
      * </ul>
      *
      * <h1><a id="access"></a>Access checking</h1>
--- a/src/java.base/share/classes/java/nio/Bits.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.base/share/classes/java/nio/Bits.java	Mon Jul 16 12:11:02 2018 +0100
@@ -207,43 +207,24 @@
         assert cnt >= 0 && reservedMem >= 0 && totalCap >= 0;
     }
 
-    // -- Monitoring of direct buffer usage --
-
-    static {
-        // setup access to this package in SharedSecrets
-        SharedSecrets.setJavaNioAccess(
-            new JavaNioAccess() {
-                @Override
-                public JavaNioAccess.BufferPool getDirectBufferPool() {
-                    return new JavaNioAccess.BufferPool() {
-                        @Override
-                        public String getName() {
-                            return "direct";
-                        }
-                        @Override
-                        public long getCount() {
-                            return Bits.COUNT.get();
-                        }
-                        @Override
-                        public long getTotalCapacity() {
-                            return Bits.TOTAL_CAPACITY.get();
-                        }
-                        @Override
-                        public long getMemoryUsed() {
-                            return Bits.RESERVED_MEMORY.get();
-                        }
-                    };
-                }
-                @Override
-                public ByteBuffer newDirectByteBuffer(long addr, int cap, Object ob) {
-                    return new DirectByteBuffer(addr, cap, ob);
-                }
-                @Override
-                public void truncate(Buffer buf) {
-                    buf.truncate();
-                }
-        });
-    }
+    static final JavaNioAccess.BufferPool BUFFER_POOL = new JavaNioAccess.BufferPool() {
+        @Override
+        public String getName() {
+            return "direct";
+        }
+        @Override
+        public long getCount() {
+            return Bits.COUNT.get();
+        }
+        @Override
+        public long getTotalCapacity() {
+            return Bits.TOTAL_CAPACITY.get();
+        }
+        @Override
+        public long getMemoryUsed() {
+            return Bits.RESERVED_MEMORY.get();
+        }
+    };
 
     // These numbers represent the point at which we have empirically
     // determined that the average cost of a JNI call exceeds the expense
--- a/src/java.base/share/classes/java/nio/Buffer.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.base/share/classes/java/nio/Buffer.java	Mon Jul 16 12:11:02 2018 +0100
@@ -26,6 +26,8 @@
 package java.nio;
 
 import jdk.internal.HotSpotIntrinsicCandidate;
+import jdk.internal.misc.JavaNioAccess;
+import jdk.internal.misc.SharedSecrets;
 import jdk.internal.misc.Unsafe;
 
 import java.util.Spliterator;
@@ -707,4 +709,23 @@
             throw new IndexOutOfBoundsException();
     }
 
+    static {
+        // setup access to this package in SharedSecrets
+        SharedSecrets.setJavaNioAccess(
+            new JavaNioAccess() {
+                @Override
+                public JavaNioAccess.BufferPool getDirectBufferPool() {
+                    return Bits.BUFFER_POOL;
+                }
+                @Override
+                public ByteBuffer newDirectByteBuffer(long addr, int cap, Object ob) {
+                    return new DirectByteBuffer(addr, cap, ob);
+                }
+                @Override
+                public void truncate(Buffer buf) {
+                    buf.truncate();
+                }
+            });
+    }
+
 }
--- a/src/java.base/share/classes/java/text/SimpleDateFormat.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.base/share/classes/java/text/SimpleDateFormat.java	Mon Jul 16 12:11:02 2018 +0100
@@ -831,7 +831,7 @@
                             break;
                         }
                     }
-                    compiledCode.append((char)(TAG_QUOTE_CHARS << 8 | (j - i)));
+                    encode(TAG_QUOTE_CHARS, j - i, compiledCode);
                     for (; i < j; i++) {
                         compiledCode.append(pattern.charAt(i));
                     }
--- a/src/java.base/share/classes/java/util/ArrayDeque.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.base/share/classes/java/util/ArrayDeque.java	Mon Jul 16 12:11:02 2018 +0100
@@ -180,7 +180,7 @@
      * sufficient to hold 16 elements.
      */
     public ArrayDeque() {
-        elements = new Object[16];
+        elements = new Object[16 + 1];
     }
 
     /**
--- a/src/java.base/share/classes/java/util/HashMap.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.base/share/classes/java/util/HashMap.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1263,9 +1263,7 @@
     @Override
     public V merge(K key, V value,
                    BiFunction<? super V, ? super V, ? extends V> remappingFunction) {
-        if (value == null)
-            throw new NullPointerException();
-        if (remappingFunction == null)
+        if (value == null || remappingFunction == null)
             throw new NullPointerException();
         int hash = hash(key);
         Node<K,V>[] tab; Node<K,V> first; int n, i;
@@ -1308,8 +1306,7 @@
             else
                 removeNode(hash, key, null, false, true);
             return v;
-        }
-        if (value != null) {
+        } else {
             if (t != null)
                 t.putTreeVal(this, tab, hash, key, value);
             else {
@@ -1320,8 +1317,8 @@
             ++modCount;
             ++size;
             afterNodeInsertion(true);
+            return value;
         }
-        return value;
     }
 
     @Override
--- a/src/java.base/share/classes/java/util/zip/ZipOutputStream.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.base/share/classes/java/util/zip/ZipOutputStream.java	Mon Jul 16 12:11:02 2018 +0100
@@ -582,7 +582,9 @@
                 uctime > UPPER_UNIXTIME_BOUND) {
                 elen += 36;         // NTFS time total 36 bytes
             } else {
-                elen += 9;          // headid(2) + sz(2) + flag(1) + mtime (4)
+                elen += 5;          // headid(2) + sz(2) + flag(1)
+                if (e.mtime != null)
+                    elen += 4;      // + mtime (4)
             }
         }
         writeShort(elen);
--- a/src/java.base/share/classes/jdk/internal/misc/SharedSecrets.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.base/share/classes/jdk/internal/misc/SharedSecrets.java	Mon Jul 16 12:11:02 2018 +0100
@@ -194,10 +194,9 @@
 
     public static JavaNioAccess getJavaNioAccess() {
         if (javaNioAccess == null) {
-            // Ensure java.nio.ByteOrder is initialized; we know that
-            // this class initializes java.nio.Bits that provides the
+            // Ensure java.nio.Buffer is initialized, which provides the
             // shared secret.
-            unsafe.ensureClassInitialized(java.nio.ByteOrder.class);
+            unsafe.ensureClassInitialized(java.nio.Buffer.class);
         }
         return javaNioAccess;
     }
--- a/src/java.base/share/classes/jdk/internal/misc/VM.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.base/share/classes/jdk/internal/misc/VM.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1996, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -413,4 +413,15 @@
         initialize();
     }
     private static native void initialize();
+
+    /**
+     * Initialize archived static fields in the given Class using archived
+     * values from CDS dump time. Also initialize the classes of objects in
+     * the archived graph referenced by those fields.
+     *
+     * Those static fields remain as uninitialized if there is no mapped CDS
+     * java heap data or there is any error during initialization of the
+     * object class in the archived graph.
+     */
+    public static native void initializeFromArchive(Class<?> c);
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/share/classes/jdk/internal/module/ArchivedModuleGraph.java	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package jdk.internal.module;
+
+import java.lang.module.ModuleFinder;
+import java.util.Objects;
+import jdk.internal.misc.VM;
+
+/**
+ * Used by ModuleBootstrap to obtain the archived system modules and finder.
+ */
+final class ArchivedModuleGraph {
+    private static String archivedMainModule;
+    private static SystemModules archivedSystemModules;
+    private static ModuleFinder archivedModuleFinder;
+
+    private final SystemModules systemModules;
+    private final ModuleFinder finder;
+
+    private ArchivedModuleGraph(SystemModules modules, ModuleFinder finder) {
+        this.systemModules = modules;
+        this.finder = finder;
+    }
+
+    SystemModules systemModules() {
+        return systemModules;
+    }
+
+    ModuleFinder finder() {
+        return finder;
+    }
+
+    // A factory method that ModuleBootstrap can use to obtain the
+    // ArchivedModuleGraph.
+    static ArchivedModuleGraph get(String mainModule) {
+        if (Objects.equals(mainModule, archivedMainModule)
+                && archivedSystemModules != null
+                && archivedModuleFinder != null) {
+            return new ArchivedModuleGraph(archivedSystemModules,
+                                           archivedModuleFinder);
+        } else {
+            return null;
+        }
+    }
+
+    // Used at CDS dump time
+    static void archive(String mainModule, SystemModules systemModules,
+                        ModuleFinder finder) {
+        if (archivedMainModule != null)
+            throw new UnsupportedOperationException();
+        archivedMainModule = mainModule;
+        archivedSystemModules = systemModules;
+        archivedModuleFinder = finder;
+    }
+
+    static {
+        VM.initializeFromArchive(ArchivedModuleGraph.class);
+    }
+}
--- a/src/java.base/share/classes/jdk/internal/module/ModuleBootstrap.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.base/share/classes/jdk/internal/module/ModuleBootstrap.java	Mon Jul 16 12:11:02 2018 +0100
@@ -54,6 +54,7 @@
 import jdk.internal.misc.JavaLangAccess;
 import jdk.internal.misc.JavaLangModuleAccess;
 import jdk.internal.misc.SharedSecrets;
+import jdk.internal.misc.VM;
 import jdk.internal.perf.PerfCounter;
 
 /**
@@ -172,23 +173,45 @@
         boolean haveModulePath = (appModulePath != null || upgradeModulePath != null);
         boolean needResolution = true;
 
-        if (!haveModulePath && addModules.isEmpty() && limitModules.isEmpty()) {
-            systemModules = SystemModuleFinders.systemModules(mainModule);
-            if (systemModules != null && !isPatched && (traceOutput == null)) {
-                needResolution = false;
+        // If the java heap was archived at CDS dump time and the environment
+        // at dump time matches the current environment then use the archived
+        // system modules and finder.
+        ArchivedModuleGraph archivedModuleGraph = ArchivedModuleGraph.get(mainModule);
+        if (archivedModuleGraph != null
+                && !haveModulePath
+                && addModules.isEmpty()
+                && limitModules.isEmpty()
+                && !isPatched) {
+            systemModules = archivedModuleGraph.systemModules();
+            systemModuleFinder = archivedModuleGraph.finder();
+            needResolution = (traceOutput != null);
+        } else {
+            boolean canArchive = false;
+            if (!haveModulePath && addModules.isEmpty() && limitModules.isEmpty()) {
+                systemModules = SystemModuleFinders.systemModules(mainModule);
+                if (systemModules != null && !isPatched) {
+                    needResolution = (traceOutput != null);
+                    canArchive = true;
+                }
             }
-        }
-        if (systemModules == null) {
-            // all system modules are observable
-            systemModules = SystemModuleFinders.allSystemModules();
-        }
-        if (systemModules != null) {
-            // images build
-            systemModuleFinder = SystemModuleFinders.of(systemModules);
-        } else {
-            // exploded build or testing
-            systemModules = new ExplodedSystemModules();
-            systemModuleFinder = SystemModuleFinders.ofSystem();
+            if (systemModules == null) {
+                // all system modules are observable
+                systemModules = SystemModuleFinders.allSystemModules();
+            }
+            if (systemModules != null) {
+                // images build
+                systemModuleFinder = SystemModuleFinders.of(systemModules);
+            } else {
+                // exploded build or testing
+                systemModules = new ExplodedSystemModules();
+                systemModuleFinder = SystemModuleFinders.ofSystem();
+            }
+
+            // Module graph can be archived at CDS dump time. Only allow the
+            // unnamed module case for now.
+            if (canArchive && (mainModule == null)) {
+                ArchivedModuleGraph.archive(mainModule, systemModules, systemModuleFinder);
+            }
         }
 
         Counters.add("jdk.module.boot.1.systemModulesTime", t1);
--- a/src/java.base/share/classes/sun/invoke/util/VerifyAccess.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.base/share/classes/sun/invoke/util/VerifyAccess.java	Mon Jul 16 12:11:02 2018 +0100
@@ -333,7 +333,6 @@
      * @return whether they are in the same package
      */
     public static boolean isSamePackage(Class<?> class1, Class<?> class2) {
-        assert(!class1.isArray() && !class2.isArray());
         if (class1 == class2)
             return true;
         if (class1.getClassLoader() != class2.getClassLoader())
--- a/src/java.base/share/classes/sun/net/NetworkServer.java	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,151 +0,0 @@
-/*
- * Copyright (c) 1995, 2011, 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 sun.net;
-
-import java.io.*;
-import java.net.Socket;
-import java.net.ServerSocket;
-
-/**
- * This is the base class for network servers.  To define a new type
- * of server define a new subclass of NetworkServer with a serviceRequest
- * method that services one request.  Start the server by executing:
- * <pre>
- *      new MyServerClass().startServer(port);
- * </pre>
- */
-public class NetworkServer implements Runnable, Cloneable {
-    /** Socket for communicating with client. */
-    public Socket clientSocket = null;
-    private Thread serverInstance;
-    private ServerSocket serverSocket;
-
-    /** Stream for printing to the client. */
-    public PrintStream clientOutput;
-
-    /** Buffered stream for reading replies from client. */
-    public InputStream clientInput;
-
-    /** Close an open connection to the client. */
-    public void close() throws IOException {
-        clientSocket.close();
-        clientSocket = null;
-        clientInput = null;
-        clientOutput = null;
-    }
-
-    /** Return client connection status */
-    public boolean clientIsOpen() {
-        return clientSocket != null;
-    }
-
-    public final void run() {
-        if (serverSocket != null) {
-            Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
-            // System.out.print("Server starts " + serverSocket + "\n");
-            while (true) {
-                try {
-                    Socket ns = serverSocket.accept();
-//                  System.out.print("New connection " + ns + "\n");
-                    NetworkServer n = (NetworkServer)clone();
-                    n.serverSocket = null;
-                    n.clientSocket = ns;
-                    new Thread(null, n, "NetworkServer", 0, false).start();
-                } catch(Exception e) {
-                    System.out.print("Server failure\n");
-                    e.printStackTrace();
-                    try {
-                        serverSocket.close();
-                    } catch(IOException e2) {}
-                    System.out.print("cs="+serverSocket+"\n");
-                    break;
-                }
-            }
-//          close();
-        } else {
-            try {
-                clientOutput = new PrintStream(
-                        new BufferedOutputStream(clientSocket.getOutputStream()),
-                                               false, "ISO8859_1");
-                clientInput = new BufferedInputStream(clientSocket.getInputStream());
-                serviceRequest();
-                // System.out.print("Service handler exits
-                // "+clientSocket+"\n");
-            } catch(Exception e) {
-                // System.out.print("Service handler failure\n");
-                // e.printStackTrace();
-            }
-            try {
-                close();
-            } catch(IOException e2) {}
-        }
-    }
-
-    /** Start a server on port <i>port</i>.  It will call serviceRequest()
-        for each new connection. */
-    public final void startServer(int port) throws IOException {
-        serverSocket = new ServerSocket(port, 50);
-        serverInstance = new Thread(null, this, "NetworkServer", 0, false);
-        serverInstance.start();
-    }
-
-    /** Service one request.  It is invoked with the clientInput and
-        clientOutput streams initialized.  This method handles one client
-        connection. When it is done, it can simply exit. The default
-        server just echoes it's input. It is invoked in it's own private
-        thread. */
-    public void serviceRequest() throws IOException {
-        byte buf[] = new byte[300];
-        int n;
-        clientOutput.print("Echo server " + getClass().getName() + "\n");
-        clientOutput.flush();
-        while ((n = clientInput.read(buf, 0, buf.length)) >= 0) {
-            clientOutput.write(buf, 0, n);
-        }
-    }
-
-    public static void main(String argv[]) {
-        try {
-            new NetworkServer ().startServer(8888);
-        } catch (IOException e) {
-            System.out.print("Server failed: "+e+"\n");
-        }
-    }
-
-    /**
-     * Clone this object;
-     */
-    public Object clone() {
-        try {
-            return super.clone();
-        } catch (CloneNotSupportedException e) {
-            // this shouldn't happen, since we are Cloneable
-            throw new InternalError(e);
-        }
-    }
-
-    public NetworkServer () {
-    }
-}
--- a/src/java.base/share/classes/sun/net/URLCanonicalizer.java	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,129 +0,0 @@
-/*
- * Copyright (c) 1996, 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 sun.net;
-
-/**
- * Helper class to map URL "abbreviations" to real URLs.
- * The default implementation supports the following mappings:
- * <pre>{@code
- *   ftp.mumble.bar/... => ftp://ftp.mumble.bar/...
- *   gopher.mumble.bar/... => gopher://gopher.mumble.bar/...
- *   other.name.dom/... => http://other.name.dom/...
- *   /foo/... => file:/foo/...
- * }</pre>
- *
- * Full URLs (those including a protocol name) are passed through unchanged.
- *
- * Subclassers can override or extend this behavior to support different
- * or additional canonicalization policies.
- *
- * @author      Steve Byrne
- */
-
-public class URLCanonicalizer {
-    /**
-     * Creates the default canonicalizer instance.
-     */
-    public URLCanonicalizer() { }
-
-    /**
-     * Given a possibly abbreviated URL (missing a protocol name, typically),
-     * this method's job is to transform that URL into a canonical form,
-     * by including a protocol name and additional syntax, if necessary.
-     *
-     * For a correctly formed URL, this method should just return its argument.
-     */
-    public String canonicalize(String simpleURL) {
-        String resultURL = simpleURL;
-        if (simpleURL.startsWith("ftp.")) {
-            resultURL = "ftp://" + simpleURL;
-        } else if (simpleURL.startsWith("gopher.")) {
-            resultURL = "gopher://" + simpleURL;
-        } else if (simpleURL.startsWith("/")) {
-            resultURL = "file:" + simpleURL;
-        } else if (!hasProtocolName(simpleURL)) {
-            if (isSimpleHostName(simpleURL)) {
-                simpleURL = "www." + simpleURL + ".com";
-            }
-            resultURL = "http://" + simpleURL;
-        }
-
-        return resultURL;
-    }
-
-    /**
-     * Given a possibly abbreviated URL, this predicate function returns
-     * true if it appears that the URL contains a protocol name
-     */
-    public boolean hasProtocolName(String url) {
-        int index = url.indexOf(':');
-        if (index <= 0) {       // treat ":foo" as not having a protocol spec
-            return false;
-        }
-
-        for (int i = 0; i < index; i++) {
-            char c = url.charAt(i);
-
-            // REMIND: this is a guess at legal characters in a protocol --
-            // need to be verified
-            if ((c >= 'A' && c <= 'Z')
-                || (c >= 'a' && c <= 'z')
-                || (c == '-')) {
-                continue;
-            }
-
-            // found an illegal character
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * Returns true if the URL is just a single name, no periods or
-     * slashes, false otherwise
-     **/
-    protected boolean isSimpleHostName(String url) {
-
-        for (int i = 0; i < url.length(); i++) {
-            char c = url.charAt(i);
-
-            // REMIND: this is a guess at legal characters in a protocol --
-            // need to be verified
-            if ((c >= 'A' && c <= 'Z')
-                || (c >= 'a' && c <= 'z')
-                || (c >= '0' && c <= '9')
-                || (c == '-')) {
-                continue;
-            }
-
-            // found an illegal character
-            return false;
-        }
-
-        return true;
-    }
-}
--- a/src/java.base/share/classes/sun/security/pkcs12/PKCS12KeyStore.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.base/share/classes/sun/security/pkcs12/PKCS12KeyStore.java	Mon Jul 16 12:11:02 2018 +0100
@@ -296,6 +296,9 @@
             } catch (Exception e) {
                 if (password.length == 0) {
                     // Retry using an empty password with a NUL terminator.
+                    if (debug != null) {
+                        debug.println("Retry with a NUL password");
+                    }
                     return f.tryOnce(new char[1]);
                 }
                 throw e;
@@ -376,7 +379,7 @@
 
        try {
             PBEParameterSpec pbeSpec;
-            int ic = 0;
+            int ic;
 
             if (algParams != null) {
                 try {
@@ -390,65 +393,69 @@
                 if (ic > MAX_ITERATION_COUNT) {
                     throw new IOException("PBE iteration count too large");
                 }
+            } else {
+                ic = 0;
             }
 
-            byte[] keyInfo = RetryWithZero.run(pass -> {
+            key = RetryWithZero.run(pass -> {
                 // Use JCE
                 SecretKey skey = getPBEKey(pass);
                 Cipher cipher = Cipher.getInstance(
                         mapPBEParamsToAlgorithm(algOid, algParams));
                 cipher.init(Cipher.DECRYPT_MODE, skey, algParams);
-                return cipher.doFinal(encryptedKey);
+                byte[] keyInfo = cipher.doFinal(encryptedKey);
+                /*
+                 * Parse the key algorithm and then use a JCA key factory
+                 * to re-create the key.
+                 */
+                DerValue val = new DerValue(keyInfo);
+                DerInputStream in = val.toDerInputStream();
+                int i = in.getInteger();
+                DerValue[] value = in.getSequence(2);
+                AlgorithmId algId = new AlgorithmId(value[0].getOID());
+                String keyAlgo = algId.getName();
+
+                // decode private key
+                if (entry instanceof PrivateKeyEntry) {
+                    KeyFactory kfac = KeyFactory.getInstance(keyAlgo);
+                    PKCS8EncodedKeySpec kspec = new PKCS8EncodedKeySpec(keyInfo);
+                    Key tmp = kfac.generatePrivate(kspec);
+
+                    if (debug != null) {
+                        debug.println("Retrieved a protected private key at alias" +
+                                " '" + alias + "' (" +
+                                new AlgorithmId(algOid).getName() +
+                                " iterations: " + ic + ")");
+                    }
+                    return tmp;
+                    // decode secret key
+                } else {
+                    byte[] keyBytes = in.getOctetString();
+                    SecretKeySpec secretKeySpec =
+                            new SecretKeySpec(keyBytes, keyAlgo);
+
+                    // Special handling required for PBE: needs a PBEKeySpec
+                    Key tmp;
+                    if (keyAlgo.startsWith("PBE")) {
+                        SecretKeyFactory sKeyFactory =
+                                SecretKeyFactory.getInstance(keyAlgo);
+                        KeySpec pbeKeySpec =
+                                sKeyFactory.getKeySpec(secretKeySpec, PBEKeySpec.class);
+                        tmp = sKeyFactory.generateSecret(pbeKeySpec);
+                    } else {
+                        tmp = secretKeySpec;
+                    }
+
+                    if (debug != null) {
+                        debug.println("Retrieved a protected secret key at alias " +
+                                "'" + alias + "' (" +
+                                new AlgorithmId(algOid).getName() +
+                                " iterations: " + ic + ")");
+                    }
+                    return tmp;
+                }
             }, password);
 
-            /*
-             * Parse the key algorithm and then use a JCA key factory
-             * to re-create the key.
-             */
-            DerValue val = new DerValue(keyInfo);
-            DerInputStream in = val.toDerInputStream();
-            int i = in.getInteger();
-            DerValue[] value = in.getSequence(2);
-            AlgorithmId algId = new AlgorithmId(value[0].getOID());
-            String keyAlgo = algId.getName();
-
-            // decode private key
-            if (entry instanceof PrivateKeyEntry) {
-                KeyFactory kfac = KeyFactory.getInstance(keyAlgo);
-                PKCS8EncodedKeySpec kspec = new PKCS8EncodedKeySpec(keyInfo);
-                key = kfac.generatePrivate(kspec);
-
-                if (debug != null) {
-                    debug.println("Retrieved a protected private key at alias" +
-                        " '" + alias + "' (" +
-                        new AlgorithmId(algOid).getName() +
-                        " iterations: " + ic + ")");
-                }
-
-            // decode secret key
-            } else {
-                byte[] keyBytes = in.getOctetString();
-                SecretKeySpec secretKeySpec =
-                    new SecretKeySpec(keyBytes, keyAlgo);
-
-                // Special handling required for PBE: needs a PBEKeySpec
-                if (keyAlgo.startsWith("PBE")) {
-                    SecretKeyFactory sKeyFactory =
-                        SecretKeyFactory.getInstance(keyAlgo);
-                    KeySpec pbeKeySpec =
-                        sKeyFactory.getKeySpec(secretKeySpec, PBEKeySpec.class);
-                    key = sKeyFactory.generateSecret(pbeKeySpec);
-                } else {
-                    key = secretKeySpec;
-                }
-
-                if (debug != null) {
-                    debug.println("Retrieved a protected secret key at alias " +
-                        "'" + alias + "' (" +
-                        new AlgorithmId(algOid).getName() +
-                        " iterations: " + ic + ")");
-                }
-            }
         } catch (Exception e) {
             UnrecoverableKeyException uke =
                 new UnrecoverableKeyException("Get Key failed: " +
@@ -2019,7 +2026,6 @@
          * Spin over the ContentInfos.
          */
         for (int i = 0; i < count; i++) {
-            byte[] safeContentsData;
             ContentInfo safeContents;
             DerInputStream sci;
             byte[] eAlgId = null;
@@ -2027,14 +2033,13 @@
             sci = new DerInputStream(safeContentsArray[i].toByteArray());
             safeContents = new ContentInfo(sci);
             contentType = safeContents.getContentType();
-            safeContentsData = null;
             if (contentType.equals(ContentInfo.DATA_OID)) {
 
                 if (debug != null) {
                     debug.println("Loading PKCS#7 data");
                 }
 
-                safeContentsData = safeContents.getData();
+                loadSafeContents(new DerInputStream(safeContents.getData()));
             } else if (contentType.equals(ContentInfo.ENCRYPTED_DATA_OID)) {
                 if (password == null) {
 
@@ -2058,7 +2063,7 @@
                 if (seq[2].isConstructed())
                    newTag |= 0x20;
                 seq[2].resetTag(newTag);
-                safeContentsData = seq[2].getOctetString();
+                byte[] rawData = seq[2].getOctetString();
 
                 // parse Algorithm parameters
                 DerInputStream in = seq[1].toDerInputStream();
@@ -2089,14 +2094,14 @@
                         " iterations: " + ic + ")");
                 }
 
-                byte[] rawData = safeContentsData;
                 try {
-                    safeContentsData = RetryWithZero.run(pass -> {
+                    RetryWithZero.run(pass -> {
                         // Use JCE
                         SecretKey skey = getPBEKey(pass);
                         Cipher cipher = Cipher.getInstance(algOid.toString());
                         cipher.init(Cipher.DECRYPT_MODE, skey, algParams);
-                        return cipher.doFinal(rawData);
+                        loadSafeContents(new DerInputStream(cipher.doFinal(rawData)));
+                        return null;
                     }, password);
                 } catch (Exception e) {
                     throw new IOException("keystore password was incorrect",
@@ -2107,8 +2112,6 @@
                 throw new IOException("public key protected PKCS12" +
                                         " not supported");
             }
-            DerInputStream sc = new DerInputStream(safeContentsData);
-            loadSafeContents(sc, password);
         }
 
         // The MacData is optional.
@@ -2242,7 +2245,7 @@
         else return null;
     }
 
-    private void loadSafeContents(DerInputStream stream, char[] password)
+    private void loadSafeContents(DerInputStream stream)
         throws IOException, NoSuchAlgorithmException, CertificateException
     {
         DerValue[] safeBags = stream.getSequence(2);
--- a/src/java.base/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.base/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java	Mon Jul 16 12:11:02 2018 +0100
@@ -73,12 +73,20 @@
             boolean withDefaultCertPathConstraints) {
         AlgorithmConstraints configuredConstraints = null;
         if (socket != null) {
-            HandshakeContext hc =
-                    ((SSLSocketImpl)socket).conContext.handshakeContext;
-            if (hc != null) {
-                configuredConstraints = hc.sslConfig.algorithmConstraints;
+            // Note that the KeyManager or TrustManager implementation may be
+            // not implemented in the same provider as SSLSocket/SSLEngine.
+            // Please check the instance before casting to use SSLSocketImpl.
+            if (socket instanceof SSLSocketImpl) {
+                HandshakeContext hc =
+                        ((SSLSocketImpl)socket).conContext.handshakeContext;
+                if (hc != null) {
+                    configuredConstraints = hc.sslConfig.algorithmConstraints;
+                } else {
+                    configuredConstraints = null;
+                }
             } else {
-                configuredConstraints = null;
+                configuredConstraints =
+                        socket.getSSLParameters().getAlgorithmConstraints();
             }
         }
         this.userSpecifiedConstraints = configuredConstraints;
@@ -90,12 +98,20 @@
             boolean withDefaultCertPathConstraints) {
         AlgorithmConstraints configuredConstraints = null;
         if (engine != null) {
-            HandshakeContext hc =
-                    ((SSLEngineImpl)engine).conContext.handshakeContext;
-            if (hc != null) {
-                configuredConstraints = hc.sslConfig.algorithmConstraints;
+            // Note that the KeyManager or TrustManager implementation may be
+            // not implemented in the same provider as SSLSocket/SSLEngine.
+            // Please check the instance before casting to use SSLEngineImpl.
+            if (engine instanceof SSLEngineImpl) {
+                HandshakeContext hc =
+                        ((SSLEngineImpl)engine).conContext.handshakeContext;
+                if (hc != null) {
+                    configuredConstraints = hc.sslConfig.algorithmConstraints;
+                } else {
+                    configuredConstraints = null;
+                }
             } else {
-                configuredConstraints = null;
+                configuredConstraints =
+                        engine.getSSLParameters().getAlgorithmConstraints();
             }
         }
         this.userSpecifiedConstraints = configuredConstraints;
--- a/src/java.base/share/classes/sun/security/ssl/SSLSessionImpl.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.base/share/classes/sun/security/ssl/SSLSessionImpl.java	Mon Jul 16 12:11:02 2018 +0100
@@ -658,7 +658,7 @@
      */
     @Override
     public Principal getLocalPrincipal() {
-        return ((localCerts == null && localCerts.length != 0) ? null :
+        return ((localCerts == null || localCerts.length == 0) ? null :
                 localCerts[0].getSubjectX500Principal());
     }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/share/classes/sun/security/util/ArrayUtil.java	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package sun.security.util;
+
+import java.util.List;
+import java.util.function.BiFunction;
+import java.security.*;
+import jdk.internal.util.Preconditions;
+
+
+/**
+ * This class holds the various utility methods for array range checks.
+ */
+
+public final class ArrayUtil {
+
+    private static final BiFunction<String, List<Integer>,
+            ArrayIndexOutOfBoundsException> AIOOBE_SUPPLIER =
+            Preconditions.outOfBoundsExceptionFormatter
+            (ArrayIndexOutOfBoundsException::new);
+
+    public static void blockSizeCheck(int len, int blockSize) {
+        if ((len % blockSize) != 0) {
+            throw new ProviderException("Internal error in input buffering");
+        }
+    }
+
+    public static void nullAndBoundsCheck(byte[] array, int offset, int len) {
+        // NPE is thrown when array is null
+        Preconditions.checkFromIndexSize(offset, len, array.length, AIOOBE_SUPPLIER);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/share/classes/sun/util/cldr/CLDRCalendarNameProviderImpl.java	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,68 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package sun.util.cldr;
+
+import static sun.util.locale.provider.LocaleProviderAdapter.Type;
+
+import java.util.Locale;
+import java.util.Set;
+import sun.util.locale.provider.AvailableLanguageTags;
+import sun.util.locale.provider.CalendarNameProviderImpl;
+import sun.util.locale.provider.LocaleProviderAdapter;
+
+
+public class CLDRCalendarNameProviderImpl extends CalendarNameProviderImpl implements AvailableLanguageTags{
+
+    public CLDRCalendarNameProviderImpl(Type type, Set<String> langtags) {
+        super(type, langtags);
+    }
+
+    @Override
+    public boolean isSupportedLocale(Locale locale) {
+        if (Locale.ROOT.equals(locale)) {
+            return true;
+        }
+        String calendarType = null;
+        if (locale.hasExtensions()) {
+            calendarType = locale.getUnicodeLocaleType("ca");
+            locale = locale.stripExtensions();
+        }
+        if (calendarType != null) {
+            switch (calendarType) {
+                case "buddhist":
+                case "japanese":
+                case "gregory":
+                case "islamic":
+                case "roc":
+                    break;
+                default:
+                    // Unknown calendar type
+                    return false;
+            }
+        }
+        return LocaleProviderAdapter.forType(Type.CLDR).isSupportedProviderLocale(locale, langtags);
+    }
+}
--- a/src/java.base/share/classes/sun/util/cldr/CLDRLocaleProviderAdapter.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.base/share/classes/sun/util/cldr/CLDRLocaleProviderAdapter.java	Mon Jul 16 12:11:02 2018 +0100
@@ -45,6 +45,7 @@
 import java.util.StringTokenizer;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.spi.CalendarDataProvider;
+import java.util.spi.CalendarNameProvider;
 import java.util.spi.TimeZoneNameProvider;
 import sun.util.locale.provider.JRELocaleProviderAdapter;
 import sun.util.locale.provider.LocaleDataMetaInfo;
@@ -133,6 +134,24 @@
     }
 
     @Override
+    public CalendarNameProvider getCalendarNameProvider() {
+        if (calendarNameProvider == null) {
+            CalendarNameProvider provider = AccessController.doPrivileged(
+                    (PrivilegedAction<CalendarNameProvider>) ()
+                    -> new CLDRCalendarNameProviderImpl(
+                            getAdapterType(),
+                            getLanguageTagSet("FormatData")));
+
+            synchronized (this) {
+                if (calendarNameProvider == null) {
+                    calendarNameProvider = provider;
+                }
+            }
+        }
+        return calendarNameProvider;
+    }
+
+    @Override
     public CollatorProvider getCollatorProvider() {
         return null;
     }
@@ -166,7 +185,7 @@
         return locs;
     }
 
-    private Locale applyAliases(Locale loc) {
+    private static Locale applyAliases(Locale loc) {
         if (langAliasesMap.isEmpty()) {
             langAliasesMap = baseMetaInfo.getLanguageAliasMap();
         }
@@ -264,19 +283,18 @@
     }
 
     /**
-     * This method returns equivalent CLDR supported locale for zh-HK,
-     * no, no-NO locales so that COMPAT locales do not precede
-     * those locales during ResourceBundle search path.
+     * This method returns equivalent CLDR supported locale
+     * for no, no-NO locales so that COMPAT locales do not precede
+     * those locales during ResourceBundle search path, also if an alias exists for a locale,
+     * it returns equivalent locale, e.g for zh_HK it returns zh_Hant-HK.
      */
     private static Locale getEquivalentLoc(Locale locale) {
         switch (locale.toString()) {
-            case "zh_HK":
-                return Locale.forLanguageTag("zh-Hant-HK");
             case "no":
             case "no_NO":
                 return Locale.forLanguageTag("nb");
         }
-        return locale;
+        return applyAliases(locale);
     }
 
     @Override
--- a/src/java.base/share/classes/sun/util/cldr/CLDRTimeZoneNameProviderImpl.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.base/share/classes/sun/util/cldr/CLDRTimeZoneNameProviderImpl.java	Mon Jul 16 12:11:02 2018 +0100
@@ -130,7 +130,8 @@
 
         // Fill in for the empty names.
         // English names are prefilled for performance.
-        if (locale.getLanguage() != "en") {
+        if (!locale.equals(Locale.ENGLISH) &&
+            !locale.equals(Locale.US)) {
             for (int zoneIndex = 0; zoneIndex < ret.length; zoneIndex++) {
                 deriveFallbackNames(ret[zoneIndex], locale);
             }
--- a/src/java.base/share/classes/sun/util/locale/provider/CalendarNameProviderImpl.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.base/share/classes/sun/util/locale/provider/CalendarNameProviderImpl.java	Mon Jul 16 12:11:02 2018 +0100
@@ -42,8 +42,8 @@
  * @author Naoto Sato
  */
 public class CalendarNameProviderImpl extends CalendarNameProvider implements AvailableLanguageTags {
-    private final LocaleProviderAdapter.Type type;
-    private final Set<String> langtags;
+    protected final LocaleProviderAdapter.Type type;
+    protected final Set<String> langtags;
 
     public CalendarNameProviderImpl(LocaleProviderAdapter.Type type, Set<String> langtags) {
         this.type = type;
@@ -248,11 +248,8 @@
         if (langtags.contains(locale.toLanguageTag())) {
             return true;
         }
-        if (type == LocaleProviderAdapter.Type.JRE) {
-            String oldname = locale.toString().replace('_', '-');
-            return langtags.contains(oldname);
-        }
-        return false;
+        String oldname = locale.toString().replace('_', '-');
+        return langtags.contains(oldname);
     }
 
     @Override
--- a/src/java.base/share/classes/sun/util/locale/provider/JRELocaleProviderAdapter.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.base/share/classes/sun/util/locale/provider/JRELocaleProviderAdapter.java	Mon Jul 16 12:11:02 2018 +0100
@@ -131,7 +131,7 @@
     private volatile LocaleNameProvider localeNameProvider;
     protected volatile TimeZoneNameProvider timeZoneNameProvider;
     protected volatile CalendarDataProvider calendarDataProvider;
-    private volatile CalendarNameProvider calendarNameProvider;
+    protected volatile CalendarNameProvider calendarNameProvider;
 
     private volatile CalendarProvider calendarProvider;
     private volatile JavaTimeDateTimePatternProvider javaTimeDateTimePatternProvider;
--- a/src/java.base/share/native/libjava/VM.c	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.base/share/native/libjava/VM.c	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -60,3 +60,9 @@
 Java_jdk_internal_misc_VM_getRuntimeArguments(JNIEnv *env, jclass cls) {
     return JVM_GetVmArguments(env);
 }
+
+JNIEXPORT void JNICALL
+Java_jdk_internal_misc_VM_initializeFromArchive(JNIEnv *env, jclass ignore,
+                                                jclass c) {
+    JVM_InitializeFromArchive(env, c);
+}
--- a/src/java.base/unix/classes/sun/nio/ch/UnixAsynchronousSocketChannelImpl.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.base/unix/classes/sun/nio/ch/UnixAsynchronousSocketChannelImpl.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -273,6 +273,7 @@
 
         // invoke handler and set result
         CompletionHandler<Void,Object> handler = connectHandler;
+        connectHandler = null;
         Object att = connectAttachment;
         PendingFuture<Void,Object> future = connectFuture;
         if (handler == null) {
@@ -405,6 +406,7 @@
             this.readBuffer = null;
             this.readBuffers = null;
             this.readAttachment = null;
+            this.readHandler = null;
 
             // allow another read to be initiated
             enableReading();
@@ -600,6 +602,7 @@
             this.writeBuffer = null;
             this.writeBuffers = null;
             this.writeAttachment = null;
+            this.writeHandler = null;
 
             // allow another write to be initiated
             enableWriting();
--- a/src/java.base/unix/native/libjava/java_props_md.c	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.base/unix/native/libjava/java_props_md.c	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -297,7 +297,23 @@
         if (strcmp(p, "EUC-JP") == 0) {
             *std_encoding = "EUC-JP-LINUX";
         }
-#else
+#endif
+
+#ifdef _AIX
+        if (strcmp(p, "big5") == 0) {
+            /* On AIX Traditional Chinese Big5 codeset is mapped to IBM-950 */
+            *std_encoding = "IBM-950";
+        } else if (strcmp(p, "IBM-943") == 0) {
+            /*
+             * On AIX, IBM-943 is mapped to IBM-943C in which symbol 'yen' and
+             * 'overline' are replaced with 'backslash' and 'tilde' from ASCII
+             * making first 96 code points same as ASCII.
+             */
+            *std_encoding = "IBM-943C";
+        }
+#endif
+
+#ifdef __solaris__
         if (strcmp(p,"eucJP") == 0) {
             /* For Solaris use customized vendor defined character
              * customized EUC-JP converter
--- a/src/java.base/windows/classes/sun/nio/fs/WindowsSecurity.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.base/windows/classes/sun/nio/fs/WindowsSecurity.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -102,9 +102,8 @@
         final boolean stopImpersontating = impersontating;
         final boolean needToRevert = elevated;
 
-        return new Privilege() {
-            @Override
-            public void drop() {
+        return () -> {
+            try {
                 if (token != 0L) {
                     try {
                         if (stopImpersontating)
@@ -118,6 +117,8 @@
                         CloseHandle(token);
                     }
                 }
+            } finally {
+                LocalFree(pLuid);
             }
         };
     }
--- a/src/java.base/windows/native/libjava/io_util_md.c	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.base/windows/native/libjava/io_util_md.c	Mon Jul 16 12:11:02 2018 +0100
@@ -165,9 +165,6 @@
                      pathbuf = (WCHAR*)malloc((pathlen + 6) * sizeof(WCHAR));
                      if (pathbuf != 0) {
                          wcscpy(pathbuf, ps);
-                     } else {
-                         JNU_ThrowOutOfMemoryError(env, "native memory allocation failed");
-                         return NULL;
                      }
                  }
             } else {
@@ -191,9 +188,6 @@
                     pathbuf = (WCHAR*)malloc((pathlen + 6) * sizeof(WCHAR));
                     if (pathbuf != 0) {
                         wcscpy(pathbuf, ps);
-                    } else {
-                        JNU_ThrowOutOfMemoryError(env, "native memory allocation failed");
-                        return NULL;
                     }
                 }
             }
@@ -210,15 +204,11 @@
             pathbuf = (WCHAR*)malloc(sizeof(WCHAR));
             if (pathbuf != NULL) {
                 pathbuf[0] = L'\0';
-            } else {
-                JNU_ThrowOutOfMemoryError(env, 0);
-                return NULL;
             }
         }
     }
     if (pathbuf == 0) {
-        JNU_ThrowOutOfMemoryError(env, 0);
-        return NULL;
+        JNU_ThrowOutOfMemoryError(env, "native memory allocation failed");
     }
     return pathbuf;
 }
--- a/src/java.base/windows/native/libnio/fs/WindowsNativeDispatcher.c	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.base/windows/native/libnio/fs/WindowsNativeDispatcher.c	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -1043,8 +1043,11 @@
     if (pLuid == NULL) {
         JNU_ThrowInternalError(env, "Unable to allocate LUID structure");
     } else {
-        if (LookupPrivilegeValueW(NULL, lpName, pLuid) == 0)
+        if (LookupPrivilegeValueW(NULL, lpName, pLuid) == 0) {
+            LocalFree(pLuid);
             throwWindowsException(env, GetLastError());
+            return (jlong)0;
+        }
     }
     return ptr_to_jlong(pLuid);
 }
--- a/src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor7.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor7.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -64,9 +64,12 @@
 
     /**
      * Constructor for concrete subclasses to call.
+     *
+     * @deprecated Release 7 is obsolete; update to a visitor for a newer
+     * release level.
      */
-    @SuppressWarnings("deprecation") // Superclass constructor deprecated
+    @Deprecated
     protected AbstractAnnotationValueVisitor7() {
-        super();
+        super(); // Superclass constructor deprecated too
     }
 }
--- a/src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor8.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor8.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -65,6 +65,7 @@
     /**
      * Constructor for concrete subclasses to call.
      */
+    @SuppressWarnings("deprecation") // Superclass constructor deprecated
     protected AbstractAnnotationValueVisitor8() {
         super();
     }
--- a/src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor7.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor7.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oacle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -67,9 +67,12 @@
 public abstract class AbstractElementVisitor7<R, P> extends AbstractElementVisitor6<R, P> {
     /**
      * Constructor for concrete subclasses to call.
+     *
+     * @deprecated Release 7 is obsolete; update to a visitor for a newer
+     * release level.
      */
-    @SuppressWarnings("deprecation") // Superclass constructor deprecated
+    @Deprecated
     protected AbstractElementVisitor7(){
-        super();
+        super(); // Superclass constructor deprecated too
     }
 }
--- a/src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor8.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor8.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -68,6 +68,7 @@
     /**
      * Constructor for concrete subclasses to call.
      */
+    @SuppressWarnings("deprecation") // Superclass constructor deprecated
     protected AbstractElementVisitor8(){
         super();
     }
--- a/src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitor7.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitor7.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -67,10 +67,13 @@
 public abstract class AbstractTypeVisitor7<R, P> extends AbstractTypeVisitor6<R, P> {
     /**
      * Constructor for concrete subclasses to call.
+     *
+     * @deprecated Release 7 is obsolete; update to a visitor for a newer
+     * release level.
      */
-    @SuppressWarnings("deprecation") // Superclass constructor deprecated
+    @Deprecated
     protected AbstractTypeVisitor7() {
-        super();
+        super();  // Superclass constructor deprecated too
     }
 
     /**
--- a/src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitor8.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitor8.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -68,6 +68,7 @@
     /**
      * Constructor for concrete subclasses to call.
      */
+    @SuppressWarnings("deprecation") // Superclass constructor deprecated
     protected AbstractTypeVisitor8() {
         super();
     }
--- a/src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor7.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor7.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -81,10 +81,13 @@
     /**
      * Constructor for concrete subclasses; uses {@code null} for the
      * default value.
+     *
+     * @deprecated Release 7 is obsolete; update to a visitor for a newer
+     * release level.
      */
-    @SuppressWarnings("deprecation") // Superclass constructor deprecated
+    @Deprecated
     protected ElementKindVisitor7() {
-        super(null);
+        super(null); // Superclass constructor deprecated too
     }
 
     /**
@@ -92,10 +95,13 @@
      * default value.
      *
      * @param defaultValue the value to assign to {@link #DEFAULT_VALUE}
+     *
+     * @deprecated Release 7 is obsolete; update to a visitor for a newer
+     * release level.
      */
-    @SuppressWarnings("deprecation") // Superclass constructor deprecated
+    @Deprecated
     protected ElementKindVisitor7(R defaultValue) {
-        super(defaultValue);
+        super(defaultValue); // Superclass constructor deprecated too
     }
 
     /**
--- a/src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor8.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor8.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -82,6 +82,7 @@
      * Constructor for concrete subclasses; uses {@code null} for the
      * default value.
      */
+    @SuppressWarnings("deprecation") // Superclass constructor deprecated
     protected ElementKindVisitor8() {
         super(null);
     }
@@ -92,6 +93,7 @@
      *
      * @param defaultValue the value to assign to {@link #DEFAULT_VALUE}
      */
+    @SuppressWarnings("deprecation") // Superclass constructor deprecated
     protected ElementKindVisitor8(R defaultValue) {
         super(defaultValue);
     }
--- a/src/java.compiler/share/classes/javax/lang/model/util/ElementScanner7.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.compiler/share/classes/javax/lang/model/util/ElementScanner7.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -94,10 +94,13 @@
     /**
      * Constructor for concrete subclasses; uses {@code null} for the
      * default value.
+     *
+     * @deprecated Release 7 is obsolete; update to a visitor for a newer
+     * release level.
      */
-    @SuppressWarnings("deprecation") // Superclass constructor deprecated
+    @Deprecated
     protected ElementScanner7(){
-        super(null);
+        super(null); // Superclass constructor deprecated too
     }
 
     /**
@@ -105,10 +108,13 @@
      * default value.
      *
      * @param defaultValue the default value
+     *
+     * @deprecated Release 7 is obsolete; update to a visitor for a newer
+     * release level.
      */
-    @SuppressWarnings("deprecation") // Superclass constructor deprecated
+    @Deprecated
     protected ElementScanner7(R defaultValue){
-        super(defaultValue);
+        super(defaultValue); // Superclass constructor deprecated too
     }
 
     /**
--- a/src/java.compiler/share/classes/javax/lang/model/util/ElementScanner8.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.compiler/share/classes/javax/lang/model/util/ElementScanner8.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -95,6 +95,7 @@
      * Constructor for concrete subclasses; uses {@code null} for the
      * default value.
      */
+    @SuppressWarnings("deprecation") // Superclass constructor deprecated
     protected ElementScanner8(){
         super(null);
     }
@@ -105,6 +106,7 @@
      *
      * @param defaultValue the default value
      */
+    @SuppressWarnings("deprecation") // Superclass constructor deprecated
     protected ElementScanner8(R defaultValue){
         super(defaultValue);
     }
--- a/src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor7.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor7.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -71,10 +71,13 @@
     /**
      * Constructor for concrete subclasses; uses {@code null} for the
      * default value.
+     *
+     * @deprecated Release 7 is obsolete; update to a visitor for a newer
+     * release level.
      */
-    @SuppressWarnings("deprecation") // Superclass constructor deprecated
+    @Deprecated
     protected SimpleAnnotationValueVisitor7() {
-        super(null);
+        super(null); // Superclass constructor deprecated too
     }
 
     /**
@@ -82,9 +85,12 @@
      * default value.
      *
      * @param defaultValue the value to assign to {@link #DEFAULT_VALUE}
+     *
+     * @deprecated Release 7 is obsolete; update to a visitor for a newer
+     * release level.
      */
-    @SuppressWarnings("deprecation") // Superclass constructor deprecated
+    @Deprecated
     protected SimpleAnnotationValueVisitor7(R defaultValue) {
-        super(defaultValue);
+        super(defaultValue); // Superclass constructor deprecated too
     }
 }
--- a/src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor8.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor8.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -72,6 +72,7 @@
      * Constructor for concrete subclasses; uses {@code null} for the
      * default value.
      */
+    @SuppressWarnings("deprecation") // Superclass constructor deprecated
     protected SimpleAnnotationValueVisitor8() {
         super(null);
     }
@@ -82,6 +83,7 @@
      *
      * @param defaultValue the value to assign to {@link #DEFAULT_VALUE}
      */
+    @SuppressWarnings("deprecation") // Superclass constructor deprecated
     protected SimpleAnnotationValueVisitor8(R defaultValue) {
         super(defaultValue);
     }
--- a/src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor7.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor7.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -77,10 +77,13 @@
     /**
      * Constructor for concrete subclasses; uses {@code null} for the
      * default value.
+     *
+     * @deprecated Release 7 is obsolete; update to a visitor for a newer
+     * release level.
      */
-    @SuppressWarnings("deprecation") // Superclass constructor deprecated
+    @Deprecated
     protected SimpleElementVisitor7(){
-        super(null);
+        super(null); // Superclass constructor deprecated too
     }
 
     /**
@@ -88,10 +91,13 @@
      * default value.
      *
      * @param defaultValue the value to assign to {@link #DEFAULT_VALUE}
+     *
+     * @deprecated Release 7 is obsolete; update to a visitor for a newer
+     * release level.
      */
-    @SuppressWarnings("deprecation") // Superclass constructor deprecated
+    @Deprecated
     protected SimpleElementVisitor7(R defaultValue){
-        super(defaultValue);
+        super(defaultValue); // Superclass constructor deprecated too
     }
 
     /**
--- a/src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor8.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor8.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -77,6 +77,7 @@
      * Constructor for concrete subclasses; uses {@code null} for the
      * default value.
      */
+    @SuppressWarnings("deprecation") // Superclass constructor deprecated
     protected SimpleElementVisitor8(){
         super(null);
     }
@@ -87,6 +88,7 @@
      *
      * @param defaultValue the value to assign to {@link #DEFAULT_VALUE}
      */
+    @SuppressWarnings("deprecation") // Superclass constructor deprecated
     protected SimpleElementVisitor8(R defaultValue){
         super(defaultValue);
     }
--- a/src/java.compiler/share/classes/javax/lang/model/util/SimpleTypeVisitor7.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.compiler/share/classes/javax/lang/model/util/SimpleTypeVisitor7.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -77,10 +77,13 @@
     /**
      * Constructor for concrete subclasses; uses {@code null} for the
      * default value.
+     *
+     * @deprecated Release 7 is obsolete; update to a visitor for a newer
+     * release level.
      */
-    @SuppressWarnings("deprecation") // Superclass constructor deprecated
+    @Deprecated
     protected SimpleTypeVisitor7(){
-        super(null);
+        super(null); // Superclass constructor deprecated too
     }
 
     /**
@@ -88,10 +91,13 @@
      * default value.
      *
      * @param defaultValue the value to assign to {@link #DEFAULT_VALUE}
+     *
+     * @deprecated Release 7 is obsolete; update to a visitor for a newer
+     * release level.
      */
-    @SuppressWarnings("deprecation") // Superclass constructor deprecated
+    @Deprecated
     protected SimpleTypeVisitor7(R defaultValue){
-        super(defaultValue);
+        super(defaultValue); // Superclass constructor deprecated too
     }
 
     /**
--- a/src/java.compiler/share/classes/javax/lang/model/util/SimpleTypeVisitor8.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.compiler/share/classes/javax/lang/model/util/SimpleTypeVisitor8.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -78,6 +78,7 @@
      * Constructor for concrete subclasses; uses {@code null} for the
      * default value.
      */
+    @SuppressWarnings("deprecation") // Superclass constructor deprecated
     protected SimpleTypeVisitor8(){
         super(null);
     }
@@ -88,6 +89,7 @@
      *
      * @param defaultValue the value to assign to {@link #DEFAULT_VALUE}
      */
+    @SuppressWarnings("deprecation") // Superclass constructor deprecated
     protected SimpleTypeVisitor8(R defaultValue){
         super(defaultValue);
     }
--- a/src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor7.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor7.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -78,10 +78,13 @@
     /**
      * Constructor for concrete subclasses to call; uses {@code null}
      * for the default value.
+     *
+     * @deprecated Release 7 is obsolete; update to a visitor for a newer
+     * release level.
      */
-    @SuppressWarnings("deprecation") // Superclass constructor deprecated
+    @Deprecated
     protected TypeKindVisitor7() {
-        super(null);
+        super(null); // Superclass constructor deprecated too
     }
 
     /**
@@ -89,10 +92,13 @@
      * for the default value.
      *
      * @param defaultValue the value to assign to {@link #DEFAULT_VALUE}
+     *
+     * @deprecated Release 7 is obsolete; update to a visitor for a newer
+     * release level.
      */
-    @SuppressWarnings("deprecation") // Superclass constructor deprecated
+    @Deprecated
     protected TypeKindVisitor7(R defaultValue) {
-        super(defaultValue);
+        super(defaultValue); // Superclass constructor deprecated too
     }
 
     /**
--- a/src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor8.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor8.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -79,6 +79,7 @@
      * Constructor for concrete subclasses to call; uses {@code null}
      * for the default value.
      */
+    @SuppressWarnings("deprecation") // Superclass constructor deprecated
     protected TypeKindVisitor8() {
         super(null);
     }
@@ -89,6 +90,7 @@
      *
      * @param defaultValue the value to assign to {@link #DEFAULT_VALUE}
      */
+    @SuppressWarnings("deprecation") // Superclass constructor deprecated
     protected TypeKindVisitor8(R defaultValue) {
         super(defaultValue);
     }
--- a/src/java.desktop/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.desktop/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java	Mon Jul 16 12:11:02 2018 +0100
@@ -378,7 +378,7 @@
 
         // Either java.awt.Frame or java.awt.Dialog can be resizable, however java.awt.Window is never resizable
         {
-            final boolean resizable = isFrame ? ((Frame)target).isResizable() : (isDialog ? ((Dialog)target).isResizable() : false);
+            final boolean resizable = isTargetResizable() && isNativelyFocusableWindow();
             styleBits = SET(styleBits, RESIZABLE, resizable);
             if (!resizable) {
                 styleBits = SET(styleBits, ZOOMABLE, false);
@@ -482,6 +482,16 @@
         return styleBits;
     }
 
+    private boolean isTargetResizable() {
+        if (target instanceof Frame) {
+            return ((Frame)target).isResizable();
+        } else if (target instanceof Dialog) {
+            return ((Dialog)target).isResizable();
+        }
+
+        return false;
+    }
+
     // this is the counter-point to -[CWindow _nativeSetStyleBit:]
     private void setStyleBits(final int mask, final boolean value) {
         execute(ptr -> nativeSetNSWindowStyleBits(ptr, mask, value ? mask : 0));
@@ -676,10 +686,9 @@
         // Manage the extended state when showing
         if (visible) {
             /* Frame or Dialog should be set property WINDOW_FULLSCREENABLE to true if the
-            Frame or Dialog is resizable.
+            Frame or Dialog is resizable and focusable.
             **/
-            final boolean resizable = (target instanceof Frame) ? ((Frame)target).isResizable() :
-            ((target instanceof Dialog) ? ((Dialog)target).isResizable() : false);
+            final boolean resizable = isTargetResizable() && isNativelyFocusableWindow();
             if (resizable) {
                 setCanFullscreen(true);
             }
@@ -814,9 +823,10 @@
 
     @Override
     public void setResizable(final boolean resizable) {
-        setCanFullscreen(resizable);
-        setStyleBits(RESIZABLE, resizable);
-        setStyleBits(ZOOMABLE, resizable);
+        final boolean windowResizable = resizable && isNativelyFocusableWindow();
+        setCanFullscreen(windowResizable);
+        setStyleBits(RESIZABLE, windowResizable);
+        setStyleBits(ZOOMABLE, windowResizable);
     }
 
     @Override
@@ -858,8 +868,8 @@
 
     @Override
     public void updateFocusableWindowState() {
-        final boolean isFocusable = isNativelyFocusableWindow();
-        setStyleBits(SHOULD_BECOME_KEY | SHOULD_BECOME_MAIN | RESIZABLE, isFocusable); // set bits at once
+        setStyleBits(SHOULD_BECOME_KEY | SHOULD_BECOME_MAIN | RESIZABLE,
+                (isNativelyFocusableWindow() && isTargetResizable()));
     }
 
     @Override
--- a/src/java.desktop/share/classes/com/sun/awt/SecurityWarning.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.desktop/share/classes/com/sun/awt/SecurityWarning.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -45,7 +45,10 @@
  * for limited use outside of the core platform. This API may change
  * drastically between update release, and it may even be
  * removed or be moved to some other packages or classes.
+ *
+ * @deprecated This class is deprecated, no replacement.
  */
+@Deprecated(since = "11", forRemoval = true)
 public final class SecurityWarning {
 
     /**
--- a/src/java.desktop/share/classes/com/sun/media/sound/EventDispatcher.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.desktop/share/classes/com/sun/media/sound/EventDispatcher.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -308,7 +308,12 @@
      * called from auto-closing clips when their closed() method is called.
      */
     void autoClosingClipClosed(AutoClosingClip clip) {
-        // nothing to do -- is removed from arraylist above
+        synchronized(autoClosingClips) {
+            int index = getAutoClosingClipIndex(clip);
+            if (index != -1) {
+                autoClosingClips.remove(index);
+            }
+        }
     }
 
 
--- a/src/java.desktop/share/classes/com/sun/media/sound/JavaSoundAudioClip.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.desktop/share/classes/com/sun/media/sound/JavaSoundAudioClip.java	Mon Jul 16 12:11:02 2018 +0100
@@ -173,29 +173,31 @@
         if (DEBUG || Printer.debug) Printer.debug("JavaSoundAudioClip.startImpl(loop="+loop+")");
         try {
             if (clip != null) {
-                if (!clip.isOpen()) {
-                    if (DEBUG || Printer.trace)Printer.trace("JavaSoundAudioClip: clip.open()");
-                    clip.open(loadedAudioFormat, loadedAudio, 0, loadedAudioByteLength);
-                } else {
-                    if (DEBUG || Printer.trace)Printer.trace("JavaSoundAudioClip: clip.flush()");
-                    clip.flush();
-                    if (loop != clipLooping) {
-                        // need to stop in case the looped status changed
-                        if (DEBUG || Printer.trace)Printer.trace("JavaSoundAudioClip: clip.stop()");
-                        clip.stop();
+                // We need to disable autoclosing mechanism otherwise the clip
+                // can be closed after "!clip.isOpen()" check, because of
+                // previous inactivity.
+                clip.setAutoClosing(false);
+                try {
+                    if (!clip.isOpen()) {
+                        clip.open(loadedAudioFormat, loadedAudio, 0,
+                                  loadedAudioByteLength);
+                    } else {
+                        clip.flush();
+                        if (loop != clipLooping) {
+                            // need to stop in case the looped status changed
+                            clip.stop();
+                        }
                     }
+                    clip.setFramePosition(0);
+                    if (loop) {
+                        clip.loop(Clip.LOOP_CONTINUOUSLY);
+                    } else {
+                        clip.start();
+                    }
+                    clipLooping = loop;
+                } finally {
+                    clip.setAutoClosing(true);
                 }
-                clip.setFramePosition(0);
-                if (loop) {
-                    if (DEBUG || Printer.trace)Printer.trace("JavaSoundAudioClip: clip.loop()");
-                    clip.loop(Clip.LOOP_CONTINUOUSLY);
-                } else {
-                    if (DEBUG || Printer.trace)Printer.trace("JavaSoundAudioClip: clip.start()");
-                    clip.start();
-                }
-                clipLooping = loop;
-                if (DEBUG || Printer.debug)Printer.debug("Clip should be playing/looping");
-
             } else if (datapusher != null ) {
                 datapusher.start(loop);
                 if (DEBUG || Printer.debug)Printer.debug("Stream should be playing/looping");
--- a/src/java.desktop/share/classes/java/awt/Component.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.desktop/share/classes/java/awt/Component.java	Mon Jul 16 12:11:02 2018 +0100
@@ -5987,7 +5987,8 @@
      * {@code InputMethodRequests} instance.
      * If listener {@code l} is {@code null},
      * no exception is thrown and no action is performed.
-     * <p>Refer to <a href="{@docRoot}/java/awt/doc-files/AWTThreadIssues.html#ListenersThreads"
+     * <p>Refer to
+     * <a href="{@docRoot}/java.desktop/java/awt/doc-files/AWTThreadIssues.html#ListenersThreads"
      * >AWT Threading Issues</a> for details on AWT's threading model.
      *
      * @param    l   the input method listener
--- a/src/java.desktop/share/classes/java/awt/Shape.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.desktop/share/classes/java/awt/Shape.java	Mon Jul 16 12:11:02 2018 +0100
@@ -90,7 +90,8 @@
      * representation.
      *
      * <p>
-     * Note that the <a href="{@docRoot}/java/awt/Shape.html#def_insideness">
+     * Note that the
+     * <a href="{@docRoot}/java.desktop/java/awt/Shape.html#def_insideness">
      * definition of insideness</a> can lead to situations where points
      * on the defining outline of the {@code shape} may not be considered
      * contained in the returned {@code bounds} object, but only in cases
@@ -135,7 +136,8 @@
      * store the dimensions.
      *
      * <p>
-     * Note that the <a href="{@docRoot}/java/awt/Shape.html#def_insideness">
+     * Note that the
+     * <a href="{@docRoot}/java.desktop/java/awt/Shape.html#def_insideness">
      * definition of insideness</a> can lead to situations where points
      * on the defining outline of the {@code shape} may not be considered
      * contained in the returned {@code bounds} object, but only in cases
@@ -169,7 +171,7 @@
     /**
      * Tests if the specified coordinates are inside the boundary of the
      * {@code Shape}, as described by the
-     * <a href="{@docRoot}/java/awt/Shape.html#def_insideness">
+     * <a href="{@docRoot}/java.desktop/java/awt/Shape.html#def_insideness">
      * definition of insideness</a>.
      * @param x the specified X coordinate to be tested
      * @param y the specified Y coordinate to be tested
@@ -183,7 +185,7 @@
     /**
      * Tests if a specified {@link Point2D} is inside the boundary
      * of the {@code Shape}, as described by the
-     * <a href="{@docRoot}/java/awt/Shape.html#def_insideness">
+     * <a href="{@docRoot}/java.desktop/java/awt/Shape.html#def_insideness">
      * definition of insideness</a>.
      * @param p the specified {@code Point2D} to be tested
      * @return {@code true} if the specified {@code Point2D} is
--- a/src/java.desktop/share/classes/javax/imageio/metadata/IIOMetadataNode.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.desktop/share/classes/javax/imageio/metadata/IIOMetadataNode.java	Mon Jul 16 12:11:02 2018 +0100
@@ -198,9 +198,7 @@
 
 /**
  * A class representing a node in a meta-data tree, which implements
- * the <a
- * href="../../../../api/org/w3c/dom/Element.html">
- * {@code org.w3c.dom.Element}</a> interface and additionally allows
+ * the {@link Element org.w3c.dom.Element} interface and additionally allows
  * for the storage of non-textual objects via the
  * {@code getUserObject} and {@code setUserObject} methods.
  *
--- a/src/java.desktop/share/classes/javax/swing/JButton.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.desktop/share/classes/javax/swing/JButton.java	Mon Jul 16 12:11:02 2018 +0100
@@ -151,7 +151,7 @@
      * @see UIDefaults#getUI
      */
     @BeanProperty(bound = false, expert = true, description
-            = "A string that specifies the name of the L&amp;F class.")
+            = "A string that specifies the name of the L&F class.")
     public String getUIClassID() {
         return uiClassID;
     }
--- a/src/java.desktop/share/classes/javax/swing/JCheckBox.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.desktop/share/classes/javax/swing/JCheckBox.java	Mon Jul 16 12:11:02 2018 +0100
@@ -235,7 +235,7 @@
      * @see UIDefaults#getUI
      */
     @BeanProperty(bound = false, expert = true, description
-            = "A string that specifies the name of the L&amp;F class")
+            = "A string that specifies the name of the L&F class")
     public String getUIClassID() {
         return uiClassID;
     }
--- a/src/java.desktop/share/classes/javax/swing/JFileChooser.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.desktop/share/classes/javax/swing/JFileChooser.java	Mon Jul 16 12:11:02 2018 +0100
@@ -861,7 +861,7 @@
      * @since 1.3
      */
     @BeanProperty(preferred = true, description
-            = "Sets whether the approve &amp; cancel buttons are shown.")
+            = "Sets whether the approve & cancel buttons are shown.")
     public void setControlButtonsAreShown(boolean b) {
         if(controlsShown == b) {
             return;
@@ -1838,7 +1838,7 @@
      * @see UIDefaults#getUI
      */
     @BeanProperty(bound = false, expert = true, description
-            = "A string that specifies the name of the L&amp;F class.")
+            = "A string that specifies the name of the L&F class.")
     public String getUIClassID() {
         return uiClassID;
     }
--- a/src/java.desktop/share/classes/javax/swing/JPanel.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.desktop/share/classes/javax/swing/JPanel.java	Mon Jul 16 12:11:02 2018 +0100
@@ -127,7 +127,7 @@
     }
 
     /**
-     * Returns the look and feel (L&amp;amp;F) object that renders this component.
+     * Returns the look and feel (L&amp;F) object that renders this component.
      *
      * @return the PanelUI object that renders this component
      * @since 1.4
@@ -159,7 +159,7 @@
      * @see UIDefaults#getUI
      */
     @BeanProperty(bound = false, expert = true, description
-            = "A string that specifies the name of the L&amp;F class.")
+            = "A string that specifies the name of the L&F class.")
     public String getUIClassID() {
         return uiClassID;
     }
--- a/src/java.desktop/share/classes/javax/swing/JRadioButton.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.desktop/share/classes/javax/swing/JRadioButton.java	Mon Jul 16 12:11:02 2018 +0100
@@ -201,7 +201,7 @@
      * @see UIDefaults#getUI
      */
     @BeanProperty(bound = false, expert = true, description
-            = "A string that specifies the name of the L&amp;F class.")
+            = "A string that specifies the name of the L&F class.")
     public String getUIClassID() {
         return uiClassID;
     }
--- a/src/java.desktop/share/classes/javax/swing/JSplitPane.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.desktop/share/classes/javax/swing/JSplitPane.java	Mon Jul 16 12:11:02 2018 +0100
@@ -377,7 +377,7 @@
      * @return the <code>SplitPaneUI</code> object that renders this component
      */
     @BeanProperty(bound = false, expert = true, description
-            = "The L&amp;F object that renders this component.")
+            = "The L&F object that renders this component.")
     public SplitPaneUI getUI() {
         return (SplitPaneUI)ui;
     }
@@ -404,7 +404,7 @@
      * @see UIDefaults#getUI
      */
     @BeanProperty(bound = false, expert = true, description
-            = "A string that specifies the name of the L&amp;F class.")
+            = "A string that specifies the name of the L&F class.")
     public String getUIClassID() {
         return uiClassID;
     }
@@ -824,7 +824,7 @@
      *          <code>null</code>
      */
     @BeanProperty(bound = false, description
-            = "The minimum location of the divider from the L&amp;F.")
+            = "The minimum location of the divider from the L&F.")
     public int getMinimumDividerLocation() {
         SplitPaneUI         ui = getUI();
 
--- a/src/java.desktop/share/classes/javax/swing/JToggleButton.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.desktop/share/classes/javax/swing/JToggleButton.java	Mon Jul 16 12:11:02 2018 +0100
@@ -195,7 +195,7 @@
      * @see UIDefaults#getUI
      */
     @BeanProperty(bound = false, description
-            = "A string that specifies the name of the L&amp;F class")
+            = "A string that specifies the name of the L&F class")
     public String getUIClassID() {
         return uiClassID;
     }
--- a/src/java.desktop/share/classes/javax/swing/text/html/ImageView.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.desktop/share/classes/javax/swing/text/html/ImageView.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,13 +24,41 @@
  */
 package javax.swing.text.html;
 
-import java.awt.*;
+import java.awt.Rectangle;
+import java.awt.Image;
+import java.awt.Container;
+import java.awt.Color;
+import java.awt.Shape;
+import java.awt.Graphics;
+import java.awt.Toolkit;
+
 import java.awt.image.ImageObserver;
-import java.net.*;
+import java.net.URL;
+import java.net.MalformedURLException;
+
 import java.util.Dictionary;
-import javax.swing.*;
-import javax.swing.text.*;
-import javax.swing.event.*;
+
+import javax.swing.GrayFilter;
+import javax.swing.ImageIcon;
+import javax.swing.Icon;
+import javax.swing.UIManager;
+import javax.swing.SwingUtilities;
+
+import javax.swing.text.JTextComponent;
+import javax.swing.text.StyledDocument;
+import javax.swing.text.View;
+import javax.swing.text.AttributeSet;
+import javax.swing.text.Element;
+import javax.swing.text.ViewFactory;
+import javax.swing.text.Position;
+import javax.swing.text.Segment;
+import javax.swing.text.Highlighter;
+import javax.swing.text.LayeredHighlighter;
+import javax.swing.text.AbstractDocument;
+import javax.swing.text.Document;
+import javax.swing.text.BadLocationException;
+
+import javax.swing.event.DocumentEvent;
 
 /**
  * View of an Image, intended to support the HTML &lt;IMG&gt; tag.
@@ -744,12 +772,22 @@
             // anything that might cause the image to be loaded, and thus the
             // ImageHandler to be called.
             newWidth = getIntAttr(HTML.Attribute.WIDTH, -1);
+            newHeight = getIntAttr(HTML.Attribute.HEIGHT, -1);
+
             if (newWidth > 0) {
                 newState |= WIDTH_FLAG;
+                if (newHeight <= 0) {
+                    newHeight = newWidth;
+                    newState |= HEIGHT_FLAG;
+                }
             }
-            newHeight = getIntAttr(HTML.Attribute.HEIGHT, -1);
+
             if (newHeight > 0) {
                 newState |= HEIGHT_FLAG;
+                if (newWidth <= 0) {
+                    newWidth = newHeight;
+                    newState |= WIDTH_FLAG;
+                }
             }
 
             if (newWidth <= 0) {
--- a/src/java.desktop/share/legal/harfbuzz.md	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.desktop/share/legal/harfbuzz.md	Mon Jul 16 12:11:02 2018 +0100
@@ -1,4 +1,4 @@
-## Harfbuzz v1.8.1
+## Harfbuzz v1.8.2
 
 ### Harfbuzz License
 
--- a/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-blob.cc	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-blob.cc	Mon Jul 16 12:11:02 2018 +0100
@@ -489,10 +489,10 @@
 
 #if defined(_WIN32) || defined(__CYGWIN__)
 # include <windows.h>
-#endif
-
-#ifndef _O_BINARY
-# define _O_BINARY 0
+#else
+# ifndef _O_BINARY
+#  define _O_BINARY 0
+# endif
 #endif
 
 #ifndef MAP_NORESERVE
@@ -517,7 +517,7 @@
   UnmapViewOfFile (file->contents);
   CloseHandle (file->mapping);
 #else
-  free (file->contents);
+  assert (0); // If we don't have mmap we shouldn't reach here
 #endif
 
   free (file);
@@ -534,77 +534,103 @@
 hb_blob_t *
 hb_blob_create_from_file (const char *file_name)
 {
-  // Adopted from glib's gmappedfile.c with Matthias Clasen and
-  // Allison Lortie permission but changed a lot to suit our need.
-  bool writable = false;
-  hb_memory_mode_t mm = HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITABLE;
+  /* Adopted from glib's gmappedfile.c with Matthias Clasen and
+     Allison Lortie permission but changed a lot to suit our need. */
+#if defined(HAVE_MMAP) && !defined(HB_NO_MMAP)
   hb_mapped_file_t *file = (hb_mapped_file_t *) calloc (1, sizeof (hb_mapped_file_t));
   if (unlikely (!file)) return hb_blob_get_empty ();
 
-#ifdef HAVE_MMAP
-  int fd = open (file_name, (writable ? O_RDWR : O_RDONLY) | _O_BINARY, 0);
-# define CLOSE close
+  int fd = open (file_name, O_RDONLY | _O_BINARY, 0);
   if (unlikely (fd == -1)) goto fail_without_close;
 
   struct stat st;
   if (unlikely (fstat (fd, &st) == -1)) goto fail;
 
-  // See https://github.com/GNOME/glib/blob/f9faac7/glib/gmappedfile.c#L139-L142
-  if (unlikely (st.st_size == 0 && S_ISREG (st.st_mode))) goto fail;
-
   file->length = (unsigned long) st.st_size;
-  file->contents = (char *) mmap (nullptr, file->length,
-                                  writable ? PROT_READ|PROT_WRITE : PROT_READ,
+  file->contents = (char *) mmap (nullptr, file->length, PROT_READ,
                                   MAP_PRIVATE | MAP_NORESERVE, fd, 0);
 
   if (unlikely (file->contents == MAP_FAILED)) goto fail;
 
-#elif defined(_WIN32) || defined(__CYGWIN__)
-  HANDLE fd = CreateFile (file_name,
-                          writable ? GENERIC_READ|GENERIC_WRITE : GENERIC_READ,
-                          FILE_SHARE_READ, nullptr, OPEN_EXISTING,
-                          FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, nullptr);
-# define CLOSE CloseHandle
+  close (fd);
+
+  return hb_blob_create (file->contents, file->length,
+                         HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITABLE, (void *) file,
+                         (hb_destroy_func_t) _hb_mapped_file_destroy);
+
+fail:
+  close (fd);
+fail_without_close:
+  free (file);
+
+#elif (defined(_WIN32) || defined(__CYGWIN__)) && !defined(HB_NO_MMAP)
+  hb_mapped_file_t *file = (hb_mapped_file_t *) calloc (1, sizeof (hb_mapped_file_t));
+  if (unlikely (!file)) return hb_blob_get_empty ();
+
+  HANDLE fd = CreateFile (file_name, GENERIC_READ, FILE_SHARE_READ, nullptr,
+                          OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,
+                          nullptr);
 
   if (unlikely (fd == INVALID_HANDLE_VALUE)) goto fail_without_close;
 
   file->length = (unsigned long) GetFileSize (fd, nullptr);
-  file->mapping = CreateFileMapping (fd, nullptr,
-                                     writable ? PAGE_WRITECOPY : PAGE_READONLY,
-                                     0, 0, nullptr);
+  file->mapping = CreateFileMapping (fd, nullptr, PAGE_READONLY, 0, 0, nullptr);
   if (unlikely (file->mapping == nullptr)) goto fail;
 
-  file->contents = (char *) MapViewOfFile (file->mapping,
-                                           writable ? FILE_MAP_COPY : FILE_MAP_READ,
-                                           0, 0, 0);
+  file->contents = (char *) MapViewOfFile (file->mapping, FILE_MAP_READ, 0, 0, 0);
   if (unlikely (file->contents == nullptr)) goto fail;
 
-#else
-  mm = HB_MEMORY_MODE_WRITABLE;
-
-  FILE *fd = fopen (file_name, "rb");
-# define CLOSE fclose
-  if (unlikely (!fd)) goto fail_without_close;
+  CloseHandle (fd);
+  return hb_blob_create (file->contents, file->length,
+                         HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITABLE, (void *) file,
+                         (hb_destroy_func_t) _hb_mapped_file_destroy);
 
-  fseek (fd, 0, SEEK_END);
-  file->length = ftell (fd);
-  rewind (fd);
-  file->contents = (char *) malloc (file->length);
-  if (unlikely (!file->contents)) goto fail;
-
-  if (unlikely (fread (file->contents, 1, file->length, fd) != file->length))
-    goto fail;
+fail:
+  CloseHandle (fd);
+fail_without_close:
+  free (file);
 
 #endif
 
-  CLOSE (fd);
-  return hb_blob_create (file->contents, file->length, mm, (void *) file,
-                         (hb_destroy_func_t) _hb_mapped_file_destroy);
+  /* The following tries to read a file without knowing its size beforehand
+     It's used as a fallback for systems without mmap or to read from pipes */
+  unsigned long len = 0, allocated = BUFSIZ * 16;
+  char *data = (char *) malloc (allocated);
+  if (unlikely (data == nullptr)) return hb_blob_get_empty ();
+
+  FILE *fp = fopen (file_name, "rb");
+  if (unlikely (fp == nullptr)) goto fread_fail_without_close;
 
-fail:
-  CLOSE (fd);
-#undef CLOSE
-fail_without_close:
-  free (file);
+  while (!feof (fp))
+  {
+    if (allocated - len < BUFSIZ)
+    {
+      allocated *= 2;
+      /* Don't allocate and go more than ~536MB, our mmap reader still
+         can cover files like that but lets limit our fallback reader */
+      if (unlikely (allocated > (2 << 28))) goto fread_fail;
+      char *new_data = (char *) realloc (data, allocated);
+      if (unlikely (new_data == nullptr)) goto fread_fail;
+      data = new_data;
+    }
+
+    unsigned long addition = fread (data + len, 1, allocated - len, fp);
+
+    int err = ferror (fp);
+#ifdef EINTR // armcc doesn't have it
+    if (unlikely (err == EINTR)) continue;
+#endif
+    if (unlikely (err)) goto fread_fail;
+
+    len += addition;
+  }
+
+  return hb_blob_create (data, len, HB_MEMORY_MODE_WRITABLE, data,
+                         (hb_destroy_func_t) free);
+
+fread_fail:
+  fclose (fp);
+fread_fail_without_close:
+  free (data);
   return hb_blob_get_empty ();
 }
--- a/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-open-file-private.hh	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-open-file-private.hh	Mon Jul 16 12:11:02 2018 +0100
@@ -286,6 +286,197 @@
   } u;
 };
 
+/*
+ * Mac Resource Fork
+ */
+
+struct ResourceRefItem
+{
+  inline bool sanitize (hb_sanitize_context_t *c) const
+  {
+    TRACE_SANITIZE (this);
+    // actual data sanitization is done on ResourceForkHeader sanitizer
+    return_trace (likely (c->check_struct (this)));
+  }
+
+  HBINT16       id;             /* Resource ID, is really should be signed? */
+  HBINT16       nameOffset;     /* Offset from beginning of resource name list
+                                 * to resource name, minus means there is no */
+  HBUINT8       attr;           /* Resource attributes */
+  HBUINT24      dataOffset;     /* Offset from beginning of resource data to
+                                 * data for this resource */
+  HBUINT32      reserved;       /* Reserved for handle to resource */
+  public:
+  DEFINE_SIZE_STATIC (12);
+};
+
+struct ResourceTypeItem
+{
+  inline bool sanitize (hb_sanitize_context_t *c) const
+  {
+    TRACE_SANITIZE (this);
+    // RefList sanitization is done on ResourceMap sanitizer
+    return_trace (likely (c->check_struct (this)));
+  }
+
+  inline unsigned int get_resource_count () const
+  {
+    return numRes + 1;
+  }
+
+  inline bool is_sfnt () const
+  {
+    return type == HB_TAG ('s','f','n','t');
+  }
+
+  inline const ResourceRefItem& get_ref_item (const void *base,
+                                              unsigned int i) const
+  {
+    return (base+refList)[i];
+  }
+
+  protected:
+  Tag           type;           /* Resource type */
+  HBUINT16      numRes;         /* Number of resource this type in map minus 1 */
+  OffsetTo<UnsizedArrayOf<ResourceRefItem> >
+                refList;        /* Offset from beginning of resource type list
+                                 * to reference list for this type */
+  public:
+  DEFINE_SIZE_STATIC (8);
+};
+
+struct ResourceMap
+{
+  inline bool sanitize (hb_sanitize_context_t *c) const
+  {
+    TRACE_SANITIZE (this);
+    if (unlikely (!c->check_struct (this)))
+      return_trace (false);
+    for (unsigned int i = 0; i < get_types_count (); ++i)
+    {
+      const ResourceTypeItem& type = get_type (i);
+      if (unlikely (!type.sanitize (c)))
+        return_trace (false);
+      for (unsigned int j = 0; j < type.get_resource_count (); ++j)
+        if (unlikely (!get_ref_item (type, j).sanitize (c)))
+          return_trace (false);
+    }
+    return_trace (true);
+  }
+
+  inline const ResourceTypeItem& get_type (unsigned int i) const
+  {
+    // Why offset from the second byte of the object? I'm not sure
+    return ((&reserved[2])+typeList)[i];
+  }
+
+  inline unsigned int get_types_count () const
+  {
+    return nTypes + 1;
+  }
+
+  inline const ResourceRefItem &get_ref_item (const ResourceTypeItem &type,
+                                              unsigned int i) const
+  {
+    return type.get_ref_item (&(this+typeList), i);
+  }
+
+  inline const PString& get_name (const ResourceRefItem &item,
+                                  unsigned int i) const
+  {
+    if (item.nameOffset == -1)
+      return Null (PString);
+
+    return StructAtOffset<PString> (this, nameList + item.nameOffset);
+  }
+
+  protected:
+  HBUINT8       reserved[16];   /* Reserved for copy of resource header */
+  LOffsetTo<ResourceMap>
+                reserved1;      /* Reserved for handle to next resource map */
+  HBUINT16      reserved2;      /* Reserved for file reference number */
+  HBUINT16      attr;           /* Resource fork attribute */
+  OffsetTo<UnsizedArrayOf<ResourceTypeItem> >
+                typeList;       /* Offset from beginning of map to
+                                 * resource type list */
+  HBUINT16      nameList;       /* Offset from beginning of map to
+                                 * resource name list */
+  HBUINT16      nTypes;         /* Number of types in the map minus 1 */
+  public:
+  DEFINE_SIZE_STATIC (30);
+};
+
+struct ResourceForkHeader
+{
+  inline unsigned int get_face_count () const
+  {
+    const ResourceMap &resource_map = this+map;
+    for (unsigned int i = 0; i < resource_map.get_types_count (); ++i)
+    {
+      const ResourceTypeItem& type = resource_map.get_type (i);
+      if (type.is_sfnt ())
+        return type.get_resource_count ();
+    }
+    return 0;
+  }
+
+  inline const LArrayOf<HBUINT8>& get_data (const ResourceTypeItem& type,
+                                            unsigned int idx) const
+  {
+    const ResourceMap &resource_map = this+map;
+    unsigned int offset = dataOffset;
+    offset += resource_map.get_ref_item (type, idx).dataOffset;
+    return StructAtOffset<LArrayOf<HBUINT8> > (this, offset);
+  }
+
+  inline const OpenTypeFontFace& get_face (unsigned int idx) const
+  {
+    const ResourceMap &resource_map = this+map;
+    for (unsigned int i = 0; i < resource_map.get_types_count (); ++i)
+    {
+      const ResourceTypeItem& type = resource_map.get_type (i);
+      if (type.is_sfnt () && idx < type.get_resource_count ())
+        return (OpenTypeFontFace&) get_data (type, idx).arrayZ;
+    }
+    return Null (OpenTypeFontFace);
+  }
+
+  inline bool sanitize (hb_sanitize_context_t *c) const
+  {
+    TRACE_SANITIZE (this);
+    if (unlikely (!c->check_struct (this)))
+      return_trace (false);
+
+    const ResourceMap &resource_map = this+map;
+    if (unlikely (!resource_map.sanitize (c)))
+      return_trace (false);
+
+    for (unsigned int i = 0; i < resource_map.get_types_count (); ++i)
+    {
+      const ResourceTypeItem& type = resource_map.get_type (i);
+      for (unsigned int j = 0; j < type.get_resource_count (); ++j)
+      {
+        const LArrayOf<HBUINT8>& data = get_data (type, j);
+        if (unlikely (!(data.sanitize (c) &&
+                        ((OpenTypeFontFace&) data.arrayZ).sanitize (c))))
+          return_trace (false);
+      }
+    }
+
+    return_trace (true);
+  }
+
+  protected:
+  HBUINT32      dataOffset;     /* Offset from beginning of resource fork
+                                 * to resource data */
+  LOffsetTo<ResourceMap>
+                map;            /* Offset from beginning of resource fork
+                                 * to resource map */
+  HBUINT32      dataLen;        /* Length of resource data */
+  HBUINT32      mapLen;         /* Length of resource map */
+  public:
+  DEFINE_SIZE_STATIC (16);
+};
 
 /*
  * OpenType Font File
@@ -299,6 +490,7 @@
     CFFTag              = HB_TAG ('O','T','T','O'), /* OpenType with Postscript outlines */
     TrueTypeTag = HB_TAG ( 0 , 1 , 0 , 0 ), /* OpenType with TrueType outlines */
     TTCTag              = HB_TAG ('t','t','c','f'), /* TrueType Collection */
+    DFontTag            = HB_TAG ( 0 , 0 , 1 , 0 ), /* DFont Mac Resource Fork */
     TrueTag             = HB_TAG ('t','r','u','e'), /* Obsolete Apple TrueType */
     Typ1Tag             = HB_TAG ('t','y','p','1')  /* Obsolete Apple Type1 font in SFNT container */
   };
@@ -313,6 +505,7 @@
     case Typ1Tag:
     case TrueTypeTag:   return 1;
     case TTCTag:        return u.ttcHeader.get_face_count ();
+//    case DFontTag:    return u.rfHeader.get_face_count ();
     default:            return 0;
     }
   }
@@ -327,6 +520,7 @@
     case Typ1Tag:
     case TrueTypeTag:   return u.fontFace;
     case TTCTag:        return u.ttcHeader.get_face (i);
+//    case DFontTag:    return u.rfHeader.get_face (i);
     default:            return Null(OpenTypeFontFace);
     }
   }
@@ -353,6 +547,7 @@
     case Typ1Tag:
     case TrueTypeTag:   return_trace (u.fontFace.sanitize (c));
     case TTCTag:        return_trace (u.ttcHeader.sanitize (c));
+//    case DFontTag:    return_trace (u.rfHeader.sanitize (c));
     default:            return_trace (true);
     }
   }
@@ -362,6 +557,7 @@
   Tag                   tag;            /* 4-byte identifier. */
   OpenTypeFontFace      fontFace;
   TTCHeader             ttcHeader;
+  ResourceForkHeader    rfHeader;
   } u;
   public:
   DEFINE_SIZE_UNION (4, tag);
--- a/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-open-type-private.hh	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-open-type-private.hh	Mon Jul 16 12:11:02 2018 +0100
@@ -1033,6 +1033,7 @@
   DEFINE_SIZE_ARRAY (sizeof (LenType), arrayZ);
 };
 template <typename Type> struct LArrayOf : ArrayOf<Type, HBUINT32> {};
+typedef ArrayOf<HBUINT8, HBUINT8> PString;
 
 /* Array of Offset's */
 template <typename Type, typename OffsetType=HBUINT16>
--- a/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-layout-common-private.hh	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-layout-common-private.hh	Mon Jul 16 12:11:02 2018 +0100
@@ -832,7 +832,12 @@
       c = &c_;
       coverage = 0;
       i = 0;
-      j = c->rangeRecord.len ? c_.rangeRecord[0].start : 0;
+      j = c->rangeRecord.len ? c->rangeRecord[0].start : 0;
+      if (unlikely (c->rangeRecord[0].start > c->rangeRecord[0].end))
+      {
+        /* Broken table. Skip. */
+        i = c->rangeRecord.len;
+      }
     }
     inline bool more (void) { return i < c->rangeRecord.len; }
     inline void next (void)
@@ -842,7 +847,14 @@
         i++;
         if (more ())
         {
+          hb_codepoint_t old = j;
           j = c->rangeRecord[i].start;
+          if (unlikely (j <= old))
+          {
+            /* Broken table. Skip. Important to avoid DoS. */
+           i = c->rangeRecord.len;
+           return;
+          }
           coverage = c->rangeRecord[i].value;
         }
         return;
@@ -855,7 +867,8 @@
 
     private:
     const struct CoverageFormat2 *c;
-    unsigned int i, j, coverage;
+    unsigned int i, coverage;
+    hb_codepoint_t j;
   };
   private:
 
--- a/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-layout-gpos-table.hh	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-layout-gpos-table.hh	Mon Jul 16 12:11:02 2018 +0100
@@ -1074,10 +1074,13 @@
       if (!skippy_iter.prev ()) return_trace (false);
       /* We only want to attach to the first of a MultipleSubst sequence.
        * https://github.com/harfbuzz/harfbuzz/issues/740
-       * Reject others. */
+       * Reject others...
+       * ...but stop if we find a mark in the MultipleSubst sequence:
+       * https://github.com/harfbuzz/harfbuzz/issues/1020 */
       if (!_hb_glyph_info_multiplied (&buffer->info[skippy_iter.idx]) ||
           0 == _hb_glyph_info_get_lig_comp (&buffer->info[skippy_iter.idx]) ||
           (skippy_iter.idx == 0 ||
+           _hb_glyph_info_is_mark (&buffer->info[skippy_iter.idx - 1]) ||
            _hb_glyph_info_get_lig_id (&buffer->info[skippy_iter.idx]) !=
            _hb_glyph_info_get_lig_id (&buffer->info[skippy_iter.idx - 1]) ||
            _hb_glyph_info_get_lig_comp (&buffer->info[skippy_iter.idx]) !=
--- a/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex-indic.cc	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex-indic.cc	Mon Jul 16 12:11:02 2018 +0100
@@ -668,8 +668,9 @@
    *
    * Reports suggest that in some scripts Uniscribe does this only if there
    * is *not* a Halant after last consonant already (eg. Kannada), while it
-   * does it unconditionally in other scripts (eg. Malayalam).  We don't
-   * currently know about other scripts, so we single out Malayalam for now.
+   * does it unconditionally in other scripts (eg. Malayalam, Bengali).  We
+   * don't currently know about other scripts, so we whitelist Malayalam and
+   * Bengali for now.
    *
    * Kannada test case:
    * U+0C9A,U+0CCD,U+0C9A,U+0CCD
@@ -679,10 +680,16 @@
    * Malayalam test case:
    * U+0D38,U+0D4D,U+0D31,U+0D4D,U+0D31,U+0D4D
    * With lohit-ttf-20121122/Lohit-Malayalam.ttf
+   *
+   * Bengali test case
+   * U+0998,U+09CD,U+09AF,U+09CD
+   * With Windows XP vrinda.ttf
+   * https://github.com/harfbuzz/harfbuzz/issues/1073
    */
   if (indic_plan->is_old_spec)
   {
-    bool disallow_double_halants = buffer->props.script != HB_SCRIPT_MALAYALAM;
+    bool disallow_double_halants = buffer->props.script != HB_SCRIPT_MALAYALAM &&
+                                   buffer->props.script != HB_SCRIPT_BENGALI;
     for (unsigned int i = base + 1; i < end; i++)
       if (info[i].indic_category() == OT_H)
       {
--- a/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex-khmer.cc	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex-khmer.cc	Mon Jul 16 12:11:02 2018 +0100
@@ -372,22 +372,25 @@
         break;
       }
 
-    /* Note!  syllable() is a one-byte field. */
-    for (unsigned int i = base; i < end; i++)
-      if (info[i].syllable() != 255)
-      {
-        unsigned int max = i;
-        unsigned int j = start + info[i].syllable();
-        while (j != i)
+    if (unlikely (end - start >= 127))
+      buffer->merge_clusters (start, end);
+    else
+      /* Note!  syllable() is a one-byte field. */
+      for (unsigned int i = base; i < end; i++)
+        if (info[i].syllable() != 255)
         {
-          max = MAX (max, j);
-          unsigned int next = start + info[j].syllable();
-          info[j].syllable() = 255; /* So we don't process j later again. */
-          j = next;
+          unsigned int max = i;
+          unsigned int j = start + info[i].syllable();
+          while (j != i)
+          {
+            max = MAX (max, j);
+            unsigned int next = start + info[j].syllable();
+            info[j].syllable() = 255; /* So we don't process j later again. */
+            j = next;
+          }
+          if (i != max)
+            buffer->merge_clusters (i, max + 1);
         }
-        if (i != max)
-          buffer->merge_clusters (i, max + 1);
-      }
 
     /* Put syllable back in. */
     for (unsigned int i = start; i < end; i++)
--- a/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-private.hh	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-private.hh	Mon Jul 16 12:11:02 2018 +0100
@@ -1228,13 +1228,14 @@
 /* fallback for round() */
 #if !defined (HAVE_ROUND) && !defined (HAVE_DECL_ROUND)
 static inline double
-round (double x)
+_hb_round (double x)
 {
   if (x >= 0)
     return floor (x + 0.5);
   else
     return ceil (x - 0.5);
 }
+#define round(x) _hb_round(x)
 #endif
 
 
--- a/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-version.h	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-version.h	Mon Jul 16 12:11:02 2018 +0100
@@ -38,9 +38,9 @@
 
 #define HB_VERSION_MAJOR 1
 #define HB_VERSION_MINOR 8
-#define HB_VERSION_MICRO 1
+#define HB_VERSION_MICRO 2
 
-#define HB_VERSION_STRING "1.8.1"
+#define HB_VERSION_STRING "1.8.2"
 
 #define HB_VERSION_ATLEAST(major,minor,micro) \
         ((major)*10000+(minor)*100+(micro) <= \
--- a/src/java.desktop/unix/native/common/awt/CUPSfuncs.c	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.desktop/unix/native/common/awt/CUPSfuncs.c	Mon Jul 16 12:11:02 2018 +0100
@@ -29,6 +29,16 @@
 #include <dlfcn.h>
 #include <cups/cups.h>
 #include <cups/ppd.h>
+/*
+ * CUPS #define's __attribute__(x) to be empty unless __GNUC__ is defined.
+ * However OpenJDK officially uses the SunStudio compiler on Solaris.
+ * We need to #undef this else it breaks use of this keyword used by JNIEXPORT.
+ * See: https://github.com/apple/cups/issues/5349
+ */
+#ifdef __SUNPRO_C
+#undef __attribute__
+#endif
+
 
 //#define CUPS_DEBUG
 
--- a/src/java.desktop/windows/classes/sun/awt/shell/Win32ShellFolder2.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.desktop/windows/classes/sun/awt/shell/Win32ShellFolder2.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -170,7 +170,7 @@
     }
 
     // Known Folder data
-    static class KnownFolderDefinition {
+    static final class KnownFolderDefinition {
         String guid;
         int category;
         String name;
@@ -187,7 +187,10 @@
         String ftidType;
         String path;
         String saveLocation;
-        static final List<KnownFolderDefinition> libraries = getLibraries();
+    }
+
+    static final class KnownLibraries {
+        static final List<KnownFolderDefinition> INSTANCE = getLibraries();
     }
 
     static class FolderDisposer implements sun.java2d.DisposerRecord {
@@ -625,7 +628,7 @@
         // this is a temp fix until java.io starts support Libraries
         if( path != null && path.startsWith("::{") &&
                 path.toLowerCase().endsWith(".library-ms")) {
-            for (KnownFolderDefinition kf : KnownFolderDefinition.libraries) {
+            for (KnownFolderDefinition kf : KnownLibraries.INSTANCE) {
                 if (path.toLowerCase().endsWith(
                         "\\" + kf.relativePath.toLowerCase()) &&
                         path.toUpperCase().startsWith(
--- a/src/java.desktop/windows/native/libawt/windows/ShellFolder2.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.desktop/windows/native/libawt/windows/ShellFolder2.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -1398,7 +1398,7 @@
     DEFINE_FIELD_ID(field_defenitionFlags, cl, "defenitionFlags", "I");
     DEFINE_FIELD_ID(field_ftidType, cl, "ftidType", "Ljava/lang/String;");
 
-    jobjectArray result;
+    jobjectArray result = NULL;
     KNOWNFOLDERID* pFoldersIds = NULL;
     UINT count = 0;
     if (SUCCEEDED(pkfm->GetFolderIds(&pFoldersIds, &count))) {
--- a/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -84,7 +84,7 @@
  * @author G. Todd Miller
  * @author Morten Jorgensen
  * @author Santiago Pericas-Geertsen
- * @LastModified: Nov 2017
+ * @LastModified: July 2018
  */
 public class TransformerFactoryImpl
     extends SAXTransformerFactory implements SourceLoader, ErrorListener
@@ -1211,7 +1211,7 @@
                     return null;
                 }
                 catch (TransformerException e2) {
-                    new TransformerConfigurationException(e2);
+                    throw new TransformerConfigurationException(e2);
                 }
             }
             throw e1;
--- a/src/java.xml/share/classes/javax/xml/stream/events/StartElement.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/java.xml/share/classes/javax/xml/stream/events/StartElement.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -47,11 +47,11 @@
   public QName getName();
 
   /**
-   * Returns an Iterator of non-namespace declared attributes declared on
-   * this START_ELEMENT,
-   * returns an empty iterator if there are no attributes.  The
-   * iterator must contain only implementations of the javax.xml.stream.Attribute
-   * interface.   Attributes are fundamentally unordered and may not be reported
+   * Returns an Iterator of non-namespace attributes declared on this START_ELEMENT.
+   * Returns an empty iterator if there are no attributes.
+   * The iterator must contain only implementations of the
+   * {@link Attribute} interface.
+   * Attributes are fundamentally unordered and may be reported
    * in any order.
    *
    * @return a readonly Iterator over Attribute interfaces, or an
@@ -68,9 +68,9 @@
    * current context of namespace declarations.
    *
    * <p>The iterator must contain only implementations of the
-   * javax.xml.stream.Namespace interface.
+   * {@link Namespace} interface.
    *
-   * <p>A Namespace isA Attribute.  One
+   * <p>A {@link Namespace} is an {@link Attribute}.  One
    * can iterate over a list of namespaces as a list of attributes.
    * However this method returns only the list of namespaces
    * declared on this START_ELEMENT and does not
@@ -85,8 +85,8 @@
   public Iterator<Namespace> getNamespaces();
 
   /**
-   * Returns the attribute referred to by this name
-   * @param name the qname of the desired name
+   * Returns the attribute referred to by the qname.
+   * @param name the qname of the desired attribute
    * @return the attribute corresponding to the name value or null
    */
   public Attribute getAttributeByName(QName name);
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/api/JavacTaskPool.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/api/JavacTaskPool.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,10 +27,22 @@
 
 import java.io.PrintStream;
 import java.io.Writer;
+import java.util.ArrayDeque;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Queue;
+import java.util.Set;
+import java.util.stream.Collectors;
+import java.util.stream.StreamSupport;
+
+import javax.tools.Diagnostic;
+import javax.tools.DiagnosticListener;
+import javax.tools.JavaFileManager;
+import javax.tools.JavaFileObject;
 
 import com.sun.source.tree.ClassTree;
 import com.sun.source.tree.CompilationUnitTree;
@@ -53,21 +65,8 @@
 import com.sun.tools.javac.comp.Modules;
 import com.sun.tools.javac.main.Arguments;
 import com.sun.tools.javac.main.JavaCompiler;
+import com.sun.tools.javac.model.JavacElements;
 import com.sun.tools.javac.tree.JCTree.JCClassDecl;
-
-import javax.tools.Diagnostic;
-import javax.tools.DiagnosticListener;
-import javax.tools.JavaFileManager;
-import javax.tools.JavaFileObject;
-
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.stream.Collectors;
-import java.util.stream.StreamSupport;
-
-import com.sun.tools.javac.model.JavacElements;
 import com.sun.tools.javac.util.Context;
 import com.sun.tools.javac.util.DefinedBy;
 import com.sun.tools.javac.util.DefinedBy.Api;
@@ -101,9 +100,10 @@
 public class JavacTaskPool {
 
     private static final JavacTool systemProvider = JavacTool.create();
+    private static final Queue<ReusableContext> EMPTY_QUEUE = new ArrayDeque<>(0);
 
     private final int maxPoolSize;
-    private final Map<List<String>, List<ReusableContext>> options2Contexts = new HashMap<>();
+    private final Map<List<String>, Queue<ReusableContext>> options2Contexts = new HashMap<>();
     private int id;
 
     private int statReused = 0;
@@ -159,14 +159,14 @@
         ReusableContext ctx;
 
         synchronized (this) {
-            List<ReusableContext> cached =
-                    options2Contexts.getOrDefault(opts, Collections.emptyList());
+            Queue<ReusableContext> cached =
+                    options2Contexts.getOrDefault(opts, EMPTY_QUEUE);
 
             if (cached.isEmpty()) {
                 ctx = new ReusableContext(opts);
                 statNew++;
             } else {
-                ctx = cached.remove(0);
+                ctx = cached.remove();
                 statReused++;
             }
         }
@@ -200,7 +200,7 @@
                     options2Contexts.get(toRemove.arguments).remove(toRemove);
                     statRemoved++;
                 }
-                options2Contexts.computeIfAbsent(ctx.arguments, x -> new ArrayList<>()).add(ctx);
+                options2Contexts.computeIfAbsent(ctx.arguments, x -> new ArrayDeque<>()).add(ctx);
                 ctx.timeStamp = id++;
             }
         }
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java	Mon Jul 16 12:11:02 2018 +0100
@@ -121,7 +121,7 @@
         this.name = name;
     }
 
-    public static final Source MIN = Source.JDK6;
+    public static final Source MIN = Source.JDK7;
 
     private static final Source MAX = values()[values().length - 1];
 
@@ -131,6 +131,10 @@
         return tab.get(name);
     }
 
+    public boolean isSupported() {
+        return this.compareTo(MIN) >= 0;
+    }
+
     public Target requiredTarget() {
         if (this.compareTo(JDK12) >= 0) return Target.JDK1_12;
         if (this.compareTo(JDK11) >= 0) return Target.JDK1_11;
@@ -152,19 +156,9 @@
     public enum Feature {
 
         DIAMOND(JDK7, Fragments.FeatureDiamond, DiagKind.NORMAL),
-        MULTICATCH(JDK7, Fragments.FeatureMulticatch, DiagKind.PLURAL),
-        IMPROVED_RETHROW_ANALYSIS(JDK7),
-        IMPROVED_CATCH_ANALYSIS(JDK7),
         MODULES(JDK9, Fragments.FeatureModules, DiagKind.PLURAL),
-        TRY_WITH_RESOURCES(JDK7, Fragments.FeatureTryWithResources, DiagKind.NORMAL),
         EFFECTIVELY_FINAL_VARIABLES_IN_TRY_WITH_RESOURCES(JDK9, Fragments.FeatureVarInTryWithResources, DiagKind.PLURAL),
-        BINARY_LITERALS(JDK7, Fragments.FeatureBinaryLit, DiagKind.PLURAL),
-        UNDERSCORES_IN_LITERALS(JDK7, Fragments.FeatureUnderscoreLit, DiagKind.PLURAL),
-        STRINGS_IN_SWITCH(JDK7, Fragments.FeatureStringSwitch, DiagKind.PLURAL),
         DEPRECATION_ON_IMPORT(MIN, JDK8),
-        SIMPLIFIED_VARARGS(JDK7),
-        OBJECT_TO_PRIMITIVE_CAST(JDK7),
-        ENFORCE_THIS_DOT_INIT(JDK7),
         POLY(JDK8),
         LAMBDA(JDK8, Fragments.FeatureLambda, DiagKind.PLURAL),
         METHOD_REFERENCES(JDK8, Fragments.FeatureMethodReferences, DiagKind.PLURAL),
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java	Mon Jul 16 12:11:02 2018 +0100
@@ -89,7 +89,6 @@
     final Symtab syms;
     final JavacMessages messages;
     final Names names;
-    final boolean allowObjectToPrimitiveCast;
     final boolean allowDefaultMethods;
     final boolean mapCapturesToBounds;
     final Check chk;
@@ -113,7 +112,6 @@
         syms = Symtab.instance(context);
         names = Names.instance(context);
         Source source = Source.instance(context);
-        allowObjectToPrimitiveCast = Feature.OBJECT_TO_PRIMITIVE_CAST.allowedInSource(source);
         allowDefaultMethods = Feature.DEFAULT_METHODS.allowedInSource(source);
         mapCapturesToBounds = Feature.MAP_CAPTURES_TO_BOUNDS.allowedInSource(source);
         chk = Check.instance(context);
@@ -1639,8 +1637,7 @@
         if (t.isPrimitive() != s.isPrimitive()) {
             t = skipTypeVars(t, false);
             return (isConvertible(t, s, warn)
-                    || (allowObjectToPrimitiveCast &&
-                        s.isPrimitive() &&
+                    || (s.isPrimitive() &&
                         isSubtype(boxedClass(s).type, t)));
         }
         if (warn != warnStack.head) {
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Analyzer.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Analyzer.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,11 +25,20 @@
 
 package com.sun.tools.javac.comp;
 
-import java.util.ArrayList;
+import java.util.ArrayDeque;
+import java.util.EnumSet;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Queue;
+import java.util.function.Predicate;
 
 import com.sun.source.tree.LambdaExpressionTree;
+import com.sun.source.tree.NewClassTree;
+import com.sun.tools.javac.code.Flags;
+import com.sun.tools.javac.code.Kinds.Kind;
 import com.sun.tools.javac.code.Source;
 import com.sun.tools.javac.code.Source.Feature;
+import com.sun.tools.javac.code.Symbol.ClassSymbol;
 import com.sun.tools.javac.code.Type;
 import com.sun.tools.javac.code.Types;
 import com.sun.tools.javac.comp.ArgumentAttr.LocalCacheContext;
@@ -48,7 +57,9 @@
 import com.sun.tools.javac.tree.JCTree.JCNewClass;
 import com.sun.tools.javac.tree.JCTree.JCStatement;
 import com.sun.tools.javac.tree.JCTree.JCSwitch;
+import com.sun.tools.javac.tree.JCTree.JCTry;
 import com.sun.tools.javac.tree.JCTree.JCTypeApply;
+import com.sun.tools.javac.tree.JCTree.JCUnary;
 import com.sun.tools.javac.tree.JCTree.JCVariableDecl;
 import com.sun.tools.javac.tree.JCTree.JCWhileLoop;
 import com.sun.tools.javac.tree.JCTree.Tag;
@@ -56,9 +67,11 @@
 import com.sun.tools.javac.tree.TreeInfo;
 import com.sun.tools.javac.tree.TreeMaker;
 import com.sun.tools.javac.tree.TreeScanner;
+import com.sun.tools.javac.util.Assert;
 import com.sun.tools.javac.util.Context;
 import com.sun.tools.javac.util.DefinedBy;
 import com.sun.tools.javac.util.DefinedBy.Api;
+import com.sun.tools.javac.util.DiagnosticSource;
 import com.sun.tools.javac.util.JCDiagnostic.DiagnosticType;
 import com.sun.tools.javac.util.List;
 import com.sun.tools.javac.util.ListBuffer;
@@ -66,20 +79,6 @@
 import com.sun.tools.javac.util.Options;
 import com.sun.tools.javac.util.Position;
 
-import java.util.EnumSet;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.function.Predicate;
-
-import com.sun.source.tree.NewClassTree;
-import com.sun.tools.javac.code.Flags;
-import com.sun.tools.javac.code.Kinds.Kind;
-import com.sun.tools.javac.code.Symbol.ClassSymbol;
-import com.sun.tools.javac.tree.JCTree.JCTry;
-import com.sun.tools.javac.tree.JCTree.JCUnary;
-import com.sun.tools.javac.util.Assert;
-import com.sun.tools.javac.util.DiagnosticSource;
-
 import static com.sun.tools.javac.code.Flags.GENERATEDCONSTR;
 import static com.sun.tools.javac.code.TypeTag.CLASS;
 import static com.sun.tools.javac.tree.JCTree.Tag.APPLY;
@@ -521,11 +520,11 @@
      */
     DeferredAnalysisHelper queueDeferredHelper = new DeferredAnalysisHelper() {
 
-        Map<ClassSymbol, ArrayList<RewritingContext>> Q = new HashMap<>();
+        Map<ClassSymbol, Queue<RewritingContext>> Q = new HashMap<>();
 
         @Override
         public void queue(RewritingContext rewriting) {
-            ArrayList<RewritingContext> s = Q.computeIfAbsent(rewriting.env.enclClass.sym.outermostClass(), k -> new ArrayList<>());
+            Queue<RewritingContext> s = Q.computeIfAbsent(rewriting.env.enclClass.sym.outermostClass(), k -> new ArrayDeque<>());
             s.add(rewriting);
         }
 
@@ -535,9 +534,9 @@
                 DeferredAnalysisHelper prevHelper = deferredAnalysisHelper;
                 try {
                     deferredAnalysisHelper = flushDeferredHelper;
-                    ArrayList<RewritingContext> rewritings = Q.get(flushEnv.enclClass.sym.outermostClass());
+                    Queue<RewritingContext> rewritings = Q.get(flushEnv.enclClass.sym.outermostClass());
                     while (rewritings != null && !rewritings.isEmpty()) {
-                        doAnalysis(rewritings.remove(0));
+                        doAnalysis(rewritings.remove());
                     }
                 } finally {
                     deferredAnalysisHelper = prevHelper;
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java	Mon Jul 16 12:11:02 2018 +0100
@@ -153,7 +153,6 @@
         Options options = Options.instance(context);
 
         Source source = Source.instance(context);
-        allowStringsInSwitch = Feature.STRINGS_IN_SWITCH.allowedInSource(source);
         allowPoly = Feature.POLY.allowedInSource(source);
         allowTypeAnnos = Feature.TYPE_ANNOTATIONS.allowedInSource(source);
         allowLambda = Feature.LAMBDA.allowedInSource(source);
@@ -198,11 +197,6 @@
     boolean useBeforeDeclarationWarning;
 
     /**
-     * Switch: allow strings in switch?
-     */
-    boolean allowStringsInSwitch;
-
-    /**
      * Switch: name of source level; used for error reporting.
      */
     String sourceName;
@@ -1403,9 +1397,6 @@
 
             boolean enumSwitch = (seltype.tsym.flags() & Flags.ENUM) != 0;
             boolean stringSwitch = types.isSameType(seltype, syms.stringType);
-            if (stringSwitch && !allowStringsInSwitch) {
-                log.error(DiagnosticFlag.SOURCE_LEVEL, tree.selector.pos(), Feature.STRINGS_IN_SWITCH.error(sourceName));
-            }
             if (!enumSwitch && !stringSwitch)
                 seltype = chk.checkType(tree.selector.pos(), seltype, syms.intType);
 
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java	Mon Jul 16 12:11:02 2018 +0100
@@ -236,7 +236,7 @@
      *  @param pos        Position to be used for error reporting.
      */
     void warnUnsafeVararg(DiagnosticPosition pos, Warning warnKey) {
-        if (lint.isEnabled(LintCategory.VARARGS) && Feature.SIMPLIFIED_VARARGS.allowedInSource(source))
+        if (lint.isEnabled(LintCategory.VARARGS))
             log.warning(LintCategory.VARARGS, pos, warnKey);
     }
 
@@ -886,7 +886,6 @@
 
     void checkVarargsMethodDecl(Env<AttrContext> env, JCMethodDecl tree) {
         MethodSymbol m = tree.sym;
-        if (!Feature.SIMPLIFIED_VARARGS.allowedInSource(source)) return;
         boolean hasTrustMeAnno = m.attribute(syms.trustMeType.tsym) != null;
         Type varargElemType = null;
         if (m.isVarArgs()) {
@@ -998,16 +997,12 @@
         if (useVarargs) {
             Type argtype = owntype.getParameterTypes().last();
             if (!types.isReifiable(argtype) &&
-                (!Feature.SIMPLIFIED_VARARGS.allowedInSource(source) ||
-                 sym.baseSymbol().attribute(syms.trustMeType.tsym) == null ||
+                (sym.baseSymbol().attribute(syms.trustMeType.tsym) == null ||
                  !isTrustMeAllowedOnMethod(sym))) {
                 warnUnchecked(env.tree.pos(), Warnings.UncheckedGenericArrayCreation(argtype));
             }
             TreeInfo.setVarargsElement(env.tree, types.elemtype(argtype));
          }
-         if ((sym.flags() & SIGNATURE_POLYMORPHIC) != 0 && !target.hasMethodHandles()) {
-            log.error(env.tree, Errors.BadTargetSigpolyCall(target, Target.JDK1_7));
-         }
          return owntype;
     }
     //where
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Flow.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Flow.java	Mon Jul 16 12:11:02 2018 +0100
@@ -200,10 +200,7 @@
     private final JCDiagnostic.Factory diags;
     private Env<AttrContext> attrEnv;
     private       Lint lint;
-    private final boolean allowImprovedRethrowAnalysis;
-    private final boolean allowImprovedCatchAnalysis;
     private final boolean allowEffectivelyFinalInInnerClasses;
-    private final boolean enforceThisDotInit;
 
     public static Flow instance(Context context) {
         Flow instance = context.get(flowKey);
@@ -294,10 +291,7 @@
         rs = Resolve.instance(context);
         diags = JCDiagnostic.Factory.instance(context);
         Source source = Source.instance(context);
-        allowImprovedRethrowAnalysis = Feature.IMPROVED_RETHROW_ANALYSIS.allowedInSource(source);
-        allowImprovedCatchAnalysis = Feature.IMPROVED_CATCH_ANALYSIS.allowedInSource(source);
         allowEffectivelyFinalInInnerClasses = Feature.EFFECTIVELY_FINAL_IN_INNER_CLASSES.allowedInSource(source);
-        enforceThisDotInit = Feature.ENFORCE_THIS_DOT_INIT.allowedInSource(source);
     }
 
     /**
@@ -1106,9 +1100,7 @@
                 }
             }
             scan(tree.body);
-            List<Type> thrownInTry = allowImprovedCatchAnalysis ?
-                chk.union(thrown, List.of(syms.runtimeExceptionType, syms.errorType)) :
-                thrown;
+            List<Type> thrownInTry = chk.union(thrown, List.of(syms.runtimeExceptionType, syms.errorType));
             thrown = thrownPrev;
             caught = caughtPrev;
 
@@ -1177,7 +1169,7 @@
                     !isExceptionOrThrowable(exc) &&
                     !chk.intersects(exc, thrownInTry)) {
                 log.error(pos, Errors.ExceptNeverThrownInTry(exc));
-            } else if (allowImprovedCatchAnalysis) {
+            } else {
                 List<Type> catchableThrownTypes = chk.intersect(List.of(exc), thrownInTry);
                 // 'catchableThrownTypes' cannnot possibly be empty - if 'exc' was an
                 // unchecked exception, the result list would not be empty, as the augmented
@@ -1217,8 +1209,7 @@
             if (sym != null &&
                 sym.kind == VAR &&
                 (sym.flags() & (FINAL | EFFECTIVELY_FINAL)) != 0 &&
-                preciseRethrowTypes.get(sym) != null &&
-                allowImprovedRethrowAnalysis) {
+                preciseRethrowTypes.get(sym) != null) {
                 for (Type t : preciseRethrowTypes.get(sym)) {
                     markThrown(tree, t);
                 }
@@ -2401,9 +2392,8 @@
         // assigned before reading their value
         public void visitSelect(JCFieldAccess tree) {
             super.visitSelect(tree);
-            if (enforceThisDotInit &&
-                    TreeInfo.isThisQualifier(tree.selected) &&
-                    tree.sym.kind == VAR) {
+            if (TreeInfo.isThisQualifier(tree.selected) &&
+                tree.sym.kind == VAR) {
                 checkInit(tree.pos(), (VarSymbol)tree.sym);
             }
         }
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java	Mon Jul 16 12:11:02 2018 +0100
@@ -100,7 +100,6 @@
     ModuleFinder moduleFinder;
     Types types;
     JCDiagnostic.Factory diags;
-    public final boolean allowMethodHandles;
     public final boolean allowFunctionalInterfaceMostSpecific;
     public final boolean allowModules;
     public final boolean checkVarargsAccessAfterResolution;
@@ -135,7 +134,6 @@
                 options.isUnset(Option.XDIAGS) && options.isUnset("rawDiagnostics");
         verboseResolutionMode = VerboseResolutionMode.getVerboseResolutionMode(options);
         Target target = Target.instance(context);
-        allowMethodHandles = target.hasMethodHandles();
         allowFunctionalInterfaceMostSpecific = Feature.FUNCTIONAL_INTERFACE_MOST_SPECIFIC.allowedInSource(source);
         allowLocalVariableTypeInference = Feature.LOCAL_VARIABLE_TYPE_INFERENCE.allowedInSource(source);
         checkVarargsAccessAfterResolution =
@@ -2659,7 +2657,7 @@
             Symbol access(Env<AttrContext> env, DiagnosticPosition pos, Symbol location, Symbol sym) {
                 if (sym.kind.isResolutionError()) {
                     sym = super.access(env, pos, location, sym);
-                } else if (allowMethodHandles) {
+                } else {
                     MethodSymbol msym = (MethodSymbol)sym;
                     if ((msym.flags() & SIGNATURE_POLYMORPHIC) != 0) {
                         env.info.pendingResolutionPhase = BASIC;
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassReader.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassReader.java	Mon Jul 16 12:11:02 2018 +0100
@@ -105,10 +105,6 @@
      */
     public boolean readAllOfClassFile = false;
 
-    /** Switch: allow simplified varargs.
-     */
-    boolean allowSimplifiedVarargs;
-
     /** Switch: allow modules.
      */
     boolean allowModules;
@@ -276,7 +272,6 @@
 
         Source source = Source.instance(context);
         preview = Preview.instance(context);
-        allowSimplifiedVarargs = Feature.SIMPLIFIED_VARARGS.allowedInSource(source);
         allowModules     = Feature.MODULES.allowedInSource(source);
 
         saveParameterNames = options.isSet(PARAMETERS);
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Gen.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Gen.java	Mon Jul 16 12:11:02 2018 +0100
@@ -125,7 +125,6 @@
             : options.isSet(G_CUSTOM, "vars");
         genCrt = options.isSet(XJCOV);
         debugCode = options.isSet("debug.code");
-        allowBetterNullChecks = target.hasObjects();
         disableVirtualizedPrivateInvoke = options.isSet("disableVirtualizedPrivateInvoke");
         pool = new Pool(types);
 
@@ -140,7 +139,6 @@
     private final boolean varDebugInfo;
     private final boolean genCrt;
     private final boolean debugCode;
-    private final boolean allowBetterNullChecks;
     private boolean disableVirtualizedPrivateInvoke;
 
     /** Code buffer, set by genMethod.
@@ -1919,13 +1917,8 @@
     /** Generate a null check from the object value at stack top. */
     private void genNullCheck(JCTree tree) {
         code.statBegin(tree.pos);
-        if (allowBetterNullChecks) {
-            callMethod(tree.pos(), syms.objectsType, names.requireNonNull,
-                    List.of(syms.objectType), true);
-        } else {
-            callMethod(tree.pos(), syms.objectType, names.getClass,
-                    List.nil(), false);
-        }
+        callMethod(tree.pos(), syms.objectsType, names.requireNonNull,
+                   List.of(syms.objectType), true);
         code.emitop0(pop);
     }
 
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Target.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Target.java	Mon Jul 16 12:11:02 2018 +0100
@@ -49,22 +49,22 @@
     JDK1_4("1.4", 48, 0),
 
     /** JDK 5, codename Tiger. */
-    JDK1_5("1.5", 49, 0),
+    JDK1_5("5", 49, 0),
 
     /** JDK 6. */
-    JDK1_6("1.6", 50, 0),
+    JDK1_6("6", 50, 0),
 
     /** JDK 7. */
-    JDK1_7("1.7", 51, 0),
+    JDK1_7("7", 51, 0),
 
     /** JDK 8. */
-    JDK1_8("1.8", 52, 0),
+    JDK1_8("8", 52, 0),
 
     /** JDK 9. */
-    JDK1_9("1.9", 53, 0),
+    JDK1_9("9", 53, 0),
 
     /** JDK 10. */
-    JDK1_10("1.10", 54, 0),
+    JDK1_10("10", 54, 0),
 
     /** JDK 11. */
     JDK1_11("11", 55, 0),
@@ -86,7 +86,7 @@
         return instance;
     }
 
-    public static final Target MIN = Target.JDK1_6;
+    public static final Target MIN = Target.JDK1_7;
 
     private static final Target MAX = values()[values().length - 1];
 
@@ -95,14 +95,12 @@
         for (Target t : values()) {
             tab.put(t.name, t);
         }
-        tab.put("5", JDK1_5);
-        tab.put("6", JDK1_6);
-        tab.put("7", JDK1_7);
-        tab.put("8", JDK1_8);
-        tab.put("9", JDK1_9);
-        tab.put("10", JDK1_10);
-        tab.put("11", JDK1_11);
-        tab.put("12", JDK1_12);
+        tab.put("1.5", JDK1_5);
+        tab.put("1.6", JDK1_6);
+        tab.put("1.7", JDK1_7);
+        tab.put("1.8", JDK1_8);
+        tab.put("1.9", JDK1_9);
+        tab.put("1.10", JDK1_10);
     }
 
     public final String name;
@@ -120,6 +118,10 @@
         return tab.get(name);
     }
 
+    public boolean isSupported() {
+        return this.compareTo(MIN) >= 0;
+    }
+
     /** Return the character to be used in constructing synthetic
      *  identifiers, where not specified by the JLS.
      */
@@ -127,32 +129,12 @@
         return '$';
     }
 
-    /** Does the VM support an invokedynamic instruction?
-     */
-    public boolean hasInvokedynamic() {
-        return compareTo(JDK1_7) >= 0;
-    }
-
-    /** Does the target JDK contains the java.util.Objects class?
-     */
-    public boolean hasObjects() {
-        return compareTo(JDK1_7) >= 0;
-    }
-
     /** Does the target VM expect MethodParameters attributes?
      */
     public boolean hasMethodParameters() {
         return compareTo(JDK1_8) >= 0;
     }
 
-    /** Does the VM support polymorphic method handle invocation?
-     *  Affects the linkage information output to the classfile.
-     *  An alias for {@code hasInvokedynamic}, since all the JSR 292 features appear together.
-     */
-    public boolean hasMethodHandles() {
-        return hasInvokedynamic();
-    }
-
     /** Does the target JDK contain StringConcatFactory class?
      */
     public boolean hasStringConcatFactory() {
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/main/Option.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/main/Option.java	Mon Jul 16 12:11:02 2018 +0100
@@ -41,6 +41,7 @@
 import java.util.Locale;
 import java.util.ServiceLoader;
 import java.util.Set;
+import java.util.StringJoiner;
 import java.util.TreeSet;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
@@ -295,6 +296,16 @@
             }
             super.process(helper, option, operand);
         }
+
+        @Override
+        protected void help(Log log) {
+            StringJoiner sj = new StringJoiner(", ");
+            for(Source source :  Source.values()) {
+                if (source.isSupported())
+                    sj.add(source.name);
+            }
+            super.help(log, log.localize(PrefixKind.JAVAC, descrKey, sj.toString()));
+        }
     },
 
     TARGET("-target", "opt.arg.release", "opt.target", STANDARD, BASIC) {
@@ -306,6 +317,16 @@
             }
             super.process(helper, option, operand);
         }
+
+        @Override
+        protected void help(Log log) {
+            StringJoiner sj = new StringJoiner(", ");
+            for(Target target :  Target.values()) {
+                if (target.isSupported())
+                    sj.add(target.name);
+            }
+            super.help(log, log.localize(PrefixKind.JAVAC, descrKey, sj.toString()));
+        }
     },
 
     RELEASE("--release", "opt.arg.release", "opt.release", STANDARD, BASIC) {
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavaTokenizer.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavaTokenizer.java	Mon Jul 16 12:11:02 2018 +0100
@@ -206,8 +206,6 @@
         do {
             if (reader.ch != '_') {
                 reader.putChar(false);
-            } else {
-                checkSourceLevel(pos, Feature.UNDERSCORES_IN_LITERALS);
             }
             saveCh = reader.ch;
             savePos = reader.bp;
@@ -518,7 +516,6 @@
                         skipIllegalUnderscores();
                         scanNumber(pos, 16);
                     } else if (reader.ch == 'b' || reader.ch == 'B') {
-                        checkSourceLevel(pos, Feature.BINARY_LITERALS);
                         reader.scanChar();
                         skipIllegalUnderscores();
                         scanNumber(pos, 2);
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java	Mon Jul 16 12:11:02 2018 +0100
@@ -2566,7 +2566,6 @@
             nextToken();
             List<JCTree> resources = List.nil();
             if (token.kind == LPAREN) {
-                checkSourceLevel(Feature.TRY_WITH_RESOURCES);
                 nextToken();
                 resources = resources();
                 accept(RPAREN);
@@ -2582,11 +2581,7 @@
                 }
             } else {
                 if (resources.isEmpty()) {
-                    if (Feature.TRY_WITH_RESOURCES.allowedInSource(source)) {
-                        log.error(DiagnosticFlag.SYNTAX, pos, Errors.TryWithoutCatchFinallyOrResourceDecls);
-                    } else {
-                        log.error(DiagnosticFlag.SYNTAX, pos, Errors.TryWithoutCatchOrFinally);
-                    }
+                    log.error(DiagnosticFlag.SYNTAX, pos, Errors.TryWithoutCatchFinallyOrResourceDecls);
                 }
             }
             return F.at(pos).Try(resources, body, catchers.toList(), finalizer);
@@ -2699,7 +2694,6 @@
         ListBuffer<JCExpression> catchTypes = new ListBuffer<>();
         catchTypes.add(parseType());
         while (token.kind == BAR) {
-            checkSourceLevel(Feature.MULTICATCH);
             nextToken();
             // Instead of qualident this is now parseType.
             // But would that allow too much, e.g. arrays or generics?
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1179,7 +1179,9 @@
                         cs.reset();
                         cs.classfile = file;
                         cs.completer = initialCompleter;
-                        cs.owner.members().enter(cs); //XXX - OverwriteBetweenCompilations; syms.getClass is not sufficient anymore
+                        if (cs.owner.kind == PCK) {
+                            cs.owner.members().enter(cs); //XXX - OverwriteBetweenCompilations; syms.getClass is not sufficient anymore
+                        }
                     }
                     list = list.prepend(cs);
                 }
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java	Mon Jul 16 12:11:02 2018 +0100
@@ -123,7 +123,7 @@
                     enclosing != null &&
                     NestingKind.ANONYMOUS ==
                     // Use an anonymous class to determine anonymity!
-                    (new SimpleElementVisitor7<NestingKind, Void>() {
+                    (new SimpleElementVisitor9<NestingKind, Void>() {
                         @Override @DefinedBy(Api.LANGUAGE_MODEL)
                         public NestingKind visitType(TypeElement e, Void p) {
                             return e.getNestingKind();
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties	Mon Jul 16 12:11:02 2018 +0100
@@ -1135,9 +1135,6 @@
 compiler.err.throws.not.allowed.in.intf.annotation=\
     throws clause not allowed in @interface members
 
-compiler.err.try.without.catch.or.finally=\
-    ''try'' without ''catch'' or ''finally''
-
 compiler.err.try.without.catch.finally.or.resource.decls=\
     ''try'' without ''catch'', ''finally'' or resource declarations
 
@@ -1720,11 +1717,6 @@
     cast to {0} for a varargs call\n\
     cast to {1} for a non-varargs call and to suppress this warning
 
-# 0: target, 1: target
-compiler.err.bad.target.sigpoly.call=\
-    polymorphic signature calls are not supported in -target {0}\n\
-    (use -target {1} or higher to enable polymorphic signature calls)
-
 # 0: list of type
 compiler.warn.unreachable.catch=\
     unreachable catch clause\n\
@@ -2740,15 +2732,6 @@
 compiler.misc.feature.diamond.and.anon.class=\
     ''<>'' with anonymous inner classes
 
-compiler.misc.feature.binary.lit=\
-    binary literals
-
-compiler.misc.feature.underscore.lit=\
-    underscores in literals
-
-compiler.misc.feature.try.with.resources=\
-    try-with-resources
-
 compiler.misc.feature.var.in.try.with.resources=\
     variables in try-with-resources
 
@@ -2764,12 +2747,6 @@
 compiler.misc.feature.diamond=\
     diamond operator
 
-compiler.misc.feature.multicatch=\
-    multi-catch statements
-
-compiler.misc.feature.string.switch=\
-    strings in switch
-
 compiler.misc.feature.lambda=\
     lambda expressions
 
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/javac.properties	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/javac.properties	Mon Jul 16 12:11:02 2018 +0100
@@ -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
+    Generate class files for specific VM version. Supported versions: {0}
 javac.opt.release=\
-    Compile for a specific VM version. Supported targets: {0}
+    Compile for a specific release. Supported releases: {0}
 javac.opt.source=\
-    Provide source compatibility with specified release
+    Provide source compatibility with specified release. Supported releases: {0}
 javac.opt.Werror=\
     Terminate compilation if warnings occur
 javac.opt.A=\
--- a/src/jdk.crypto.ec/share/classes/sun/security/ec/XDHKeyAgreement.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.crypto.ec/share/classes/sun/security/ec/XDHKeyAgreement.java	Mon Jul 16 12:11:02 2018 +0100
@@ -69,13 +69,15 @@
 
         initImpl(key);
 
-        // the private key parameters must match params
-        XECParameters xecParams = XECParameters.get(
-            InvalidAlgorithmParameterException::new, params);
-        if (!xecParams.oidEquals(this.ops.getParameters())) {
-            throw new InvalidKeyException(
-                "Incorrect private key parameters"
-            );
+        // the private key parameters must match params, if present
+        if (params != null) {
+            XECParameters xecParams = XECParameters.get(
+                InvalidAlgorithmParameterException::new, params);
+            if (!xecParams.oidEquals(this.ops.getParameters())) {
+                throw new InvalidKeyException(
+                    "Incorrect private key parameters"
+                );
+            }
         }
     }
 
@@ -171,7 +173,9 @@
             throw new IllegalStateException("Not initialized correctly");
         }
 
-        return secret.clone();
+        byte[] result = secret;
+        secret = null;
+        return result;
     }
 
     @Override
@@ -189,7 +193,8 @@
         }
 
         System.arraycopy(this.secret, 0, sharedSecret, offset, secretLen);
-        return secret.length;
+        secret = null;
+        return secretLen;
     }
 
     @Override
--- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/CommandProcessor.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/CommandProcessor.java	Mon Jul 16 12:11:02 2018 +0100
@@ -50,7 +50,6 @@
 import sun.jvm.hotspot.debugger.OopHandle;
 import sun.jvm.hotspot.classfile.ClassLoaderDataGraph;
 import sun.jvm.hotspot.memory.FileMapInfo;
-import sun.jvm.hotspot.memory.SymbolTable;
 import sun.jvm.hotspot.memory.SystemDictionary;
 import sun.jvm.hotspot.memory.Universe;
 import sun.jvm.hotspot.gc.shared.CollectedHeap;
@@ -628,35 +627,6 @@
                 }
             }
         },
-        new Command("symboltable", "symboltable name", false) {
-            public void doit(Tokens t) {
-                if (t.countTokens() != 1) {
-                    usage();
-                } else {
-                    out.println(SymbolTable.getTheTable().probe(t.nextToken()));
-                }
-            }
-        },
-        new Command("symboldump", "symboldump", false) {
-            public void doit(Tokens t) {
-                SymbolTable theTable = SymbolTable.getTheTable();
-                theTable.symbolsDo(new SymbolTable.SymbolVisitor() {
-                        public void visit(Symbol sym) {
-                            sym.printValueOn(out);
-                            out.println();
-                        }
-                    });
-                CompactHashTable sharedTable = theTable.getSharedTable();
-                if (sharedTable != null) {
-                    sharedTable.symbolsDo(new CompactHashTable.SymbolVisitor() {
-                            public void visit(Symbol sym) {
-                                sym.printValueOn(out);
-                                out.println();
-                            }
-                        });
-                }
-            }
-        },
         new Command("flags", "flags [ flag | -nd ]", false) {
             public void doit(Tokens t) {
                 int tokens = t.countTokens();
--- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/classfile/ClassLoaderData.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/classfile/ClassLoaderData.java	Mon Jul 16 12:11:02 2018 +0100
@@ -92,9 +92,9 @@
   public Klass getKlasses()    { return (Klass)klassesField.getValue(this);  }
 
   /** Lookup an already loaded class. If not found null is returned. */
-  public Klass find(Symbol className) {
+  public Klass find(String className) {
     for (Klass l = getKlasses(); l != null; l = l.getNextLinkKlass()) {
-        if (className.equals(l.getName())) {
+        if (l.getName().equals(className)) {
             return l;
         }
     }
--- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/classfile/ClassLoaderDataGraph.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/classfile/ClassLoaderDataGraph.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -55,10 +55,8 @@
 
   /** Lookup an already loaded class in any class loader. */
   public Klass find(String className) {
-    Symbol sym = VM.getVM().getSymbolTable().probe(className);
-    if (sym == null) return null;
     for (ClassLoaderData cld = getClassLoaderGraphHead(); cld != null; cld = cld.next()) {
-        Klass k = cld.find(sym);
+        Klass k = cld.find(className);
         if (k != null) {
             return k;
         }
--- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/memory/AltHashing.java	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-/*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * 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 sun.jvm.hotspot.memory;
-
-public class AltHashing {
-    public static long murmur3_32(long seed, byte[] data) {
-      long h1 = seed;
-      int len = data.length;
-      int count = len;
-
-      int offset = 0;
-
-      // body
-      while (count >= 4) {
-          long k1 = (data[offset] & 0x0FF)
-              | (data[offset + 1] & 0x0FF) << 8
-              | (data[offset + 2] & 0x0FF) << 16
-              | data[offset + 3] << 24;
-
-          count -= 4;
-          offset += 4;
-
-          k1 *= 0xcc9e2d51;
-          k1 = Integer.rotateLeft((int)k1, 15);
-          k1 *= 0x1b873593;
-          k1 &= 0xFFFFFFFFL;
-
-          h1 ^= k1;
-          h1 = Integer.rotateLeft((int)h1, 13);
-          h1 = h1 * 5 + 0xe6546b64;
-          h1 &= 0xFFFFFFFFL;
-      }
-
-      //tail
-      if (count > 0) {
-          long k1 = 0;
-
-          switch (count) {
-              case 3:
-                  k1 ^= (data[offset + 2] & 0xff) << 16;
-                  // fall through
-              case 2:
-                  k1 ^= (data[offset + 1] & 0xff) << 8;
-                  // fall through
-              case 1:
-                  k1 ^= (data[offset] & 0xff);
-                  // fall through
-              default:
-                  k1 *= 0xcc9e2d51;
-                  k1 = Integer.rotateLeft((int)k1, 15);
-                  k1 *= 0x1b873593;
-                  k1 &= 0xFFFFFFFFL;
-                  h1 ^= k1;
-                  h1 &= 0xFFFFFFFFL;
-          }
-      }
-
-      // finalization
-      h1 ^= len;
-
-      // finalization mix force all bits of a hash block to avalanche
-      h1 ^= h1 >> 16;
-      h1 *= 0x85ebca6b;
-      h1 &= 0xFFFFFFFFL;
-      h1 ^= h1 >> 13;
-      h1 *= 0xc2b2ae35;
-      h1 &= 0xFFFFFFFFL;
-      h1 ^= h1 >> 16;
-
-      return h1 & 0xFFFFFFFFL;
-  }
-}
--- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/memory/SymbolTable.java	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,155 +0,0 @@
-/*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * 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 sun.jvm.hotspot.memory;
-
-import java.io.*;
-import java.util.*;
-import sun.jvm.hotspot.debugger.*;
-import sun.jvm.hotspot.oops.*;
-import sun.jvm.hotspot.types.*;
-import sun.jvm.hotspot.runtime.*;
-import sun.jvm.hotspot.utilities.*;
-
-public class SymbolTable extends sun.jvm.hotspot.utilities.Hashtable {
-  static {
-    VM.registerVMInitializedObserver(new Observer() {
-        public void update(Observable o, Object data) {
-          initialize(VM.getVM().getTypeDataBase());
-        }
-      });
-  }
-
-  private static synchronized void initialize(TypeDataBase db) {
-    Type type = db.lookupType("SymbolTable");
-    theTableField  = type.getAddressField("_the_table");
-    sharedTableField = type.getAddressField("_shared_table");
-    type = db.lookupType("RehashableSymbolHashtable");
-    seedField = type.getCIntegerField("_seed");
-  }
-
-  // Fields
-  private static AddressField theTableField;
-  private static AddressField sharedTableField;
-  private static CIntegerField seedField;
-
-  private CompactHashTable sharedTable;
-
-  // Accessors
-  public static SymbolTable getTheTable() {
-    Address tmp = theTableField.getValue();
-    SymbolTable table = (SymbolTable) VMObjectFactory.newObject(SymbolTable.class, tmp);
-    Address shared = sharedTableField.getStaticFieldAddress();
-    table.sharedTable = (CompactHashTable)VMObjectFactory.newObject(CompactHashTable.class, shared);
-    return table;
-  }
-
-  public CompactHashTable getSharedTable() {
-      return sharedTable;
-  }
-
-  public static long getSeed() {
-      return (long) seedField.getValue();
-  }
-
-  public static boolean useAlternateHashcode() {
-      if (getSeed() != 0) {
-          return true;
-      }
-      return false;
-  }
-
-  public SymbolTable(Address addr) {
-    super(addr);
-  }
-
-  /** Clone of VM's "temporary" probe routine, as the SA currently
-      does not support mutation so lookup() would have no effect
-      anyway. Returns null if the given string is not in the symbol
-      table. */
-  public Symbol probe(String name) {
-    try {
-      return probe(toModifiedUTF8Bytes(name));
-    } catch (IOException e) {
-      return null;
-    }
-  }
-
-  /** Clone of VM's "temporary" probe routine, as the SA currently
-      does not support mutation so lookup() would have no effect
-      anyway. Searches the regular symbol table and the shared symbol
-      table. Null is returned if the given name is not found in both
-      tables. */
-  public Symbol probe(byte[] name) {
-    long hashValue = hashSymbol(name);
-
-    // shared table does not use alternate hashing algorithm,
-    // it always uses the same original hash code.
-    Symbol s = sharedTable.probe(name, hashValue);
-    if (s != null) {
-      return s;
-    }
-
-    if (useAlternateHashcode()) {
-        hashValue = AltHashing.murmur3_32(getSeed(), name);
-    }
-
-    for (HashtableEntry e = (HashtableEntry) bucket(hashToIndex(hashValue)); e != null; e = (HashtableEntry) e.next()) {
-      if (e.hash() == hashValue) {
-         Symbol sym = Symbol.create(e.literalValue());
-         if (sym.equals(name)) {
-           return sym;
-         }
-      }
-    }
-
-    return null;
-  }
-
-  public interface SymbolVisitor {
-    public void visit(Symbol sym);
-  }
-
-  public void symbolsDo(SymbolVisitor visitor) {
-    int numBuckets = tableSize();
-    for (int i = 0; i < numBuckets; i++) {
-      for (HashtableEntry e = (HashtableEntry) bucket(i); e != null;
-           e = (HashtableEntry) e.next()) {
-        visitor.visit(Symbol.create(e.literalValue()));
-      }
-    }
-  }
-
-  private static byte[] toModifiedUTF8Bytes(String name) throws IOException {
-    ByteArrayOutputStream baos = new ByteArrayOutputStream();
-    DataOutputStream dos = new DataOutputStream(baos);
-    dos.writeUTF(name);
-    dos.flush();
-    byte[] buf = baos.toByteArray();
-    byte[] res = new byte[buf.length - 2];
-    // skip the length part
-    System.arraycopy(buf, 2, res, 0, res.length);
-    return res;
-  }
-}
--- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/ArrayKlass.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/ArrayKlass.java	Mon Jul 16 12:11:02 2018 +0100
@@ -72,27 +72,27 @@
   public Klass getLowerDimension()  { return (Klass) lowerDimension.getValue(this); }
 
   // constant class names - javaLangCloneable, javaIoSerializable, javaLangObject
-  // Initialized lazily to avoid initialization ordering dependencies between ArrayKlass and SymbolTable
-  private static Symbol javaLangCloneableName;
-  private static Symbol javaLangObjectName;
-  private static Symbol javaIoSerializableName;
-  private static Symbol javaLangCloneableName() {
+  // Initialized lazily to avoid initialization ordering dependencies between ArrayKlass and String
+  private static String javaLangCloneableName;
+  private static String javaLangObjectName;
+  private static String javaIoSerializableName;
+  private static String javaLangCloneableName() {
     if (javaLangCloneableName == null) {
-      javaLangCloneableName = VM.getVM().getSymbolTable().probe("java/lang/Cloneable");
+      javaLangCloneableName = "java/lang/Cloneable";
     }
     return javaLangCloneableName;
   }
 
-  private static Symbol javaLangObjectName() {
+  private static String javaLangObjectName() {
     if (javaLangObjectName == null) {
-      javaLangObjectName = VM.getVM().getSymbolTable().probe("java/lang/Object");
+      javaLangObjectName = "java/lang/Object";
     }
     return javaLangObjectName;
   }
 
-  private static Symbol javaIoSerializableName() {
+  private static String javaIoSerializableName() {
     if (javaIoSerializableName == null) {
-      javaIoSerializableName = VM.getVM().getSymbolTable().probe("java/io/Serializable");
+      javaIoSerializableName = "java/io/Serializable";
     }
     return javaIoSerializableName;
   }
--- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/ConstantPool.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/ConstantPool.java	Mon Jul 16 12:11:02 2018 +0100
@@ -355,7 +355,7 @@
     if (klass.isArrayKlass()) {
        klass = klass.getJavaSuper();
     }
-    return ((InstanceKlass)klass).findMethod(name, sig);
+    return ((InstanceKlass)klass).findMethod(name.asString(), sig.asString());
   }
 
   // returns null, if not resolved.
@@ -364,7 +364,7 @@
     if (klass == null) return null;
     Symbol name = getNameRefAt(which);
     Symbol sig  = getSignatureRefAt(which);
-    return klass.findField(name, sig);
+    return klass.findField(name.asString(), sig.asString());
   }
 
   public int getNameAndTypeRefIndexAt(int index) {
--- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/Field.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/Field.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -47,7 +47,7 @@
     offset               = holder.getFieldOffset(fieldIndex);
     genericSignature     = holder.getFieldGenericSignature(fieldIndex);
 
-    Symbol name          = holder.getFieldName(fieldIndex);
+    name                 = holder.getFieldName(fieldIndex);
     id          = new NamedFieldIdentifier(name.asString());
 
     signature            = holder.getFieldSignature(fieldIndex);
@@ -57,6 +57,7 @@
     accessFlags = new AccessFlags(access);
   }
 
+  private Symbol          name;
   private long            offset;
   private FieldIdentifier id;
   private boolean         isVMField;
@@ -74,6 +75,8 @@
   /** Returns the identifier of the field */
   public FieldIdentifier getID() { return id; }
 
+  public Symbol getName() { return name; }
+
   /** Indicates whether this is a VM field */
   public boolean isVMField() { return isVMField; }
 
--- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/InstanceKlass.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/InstanceKlass.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -729,12 +729,12 @@
   }
 
   /** Field access by name. */
-  public Field findLocalField(Symbol name, Symbol sig) {
+  public Field findLocalField(String name, String sig) {
     int length = getJavaFieldsCount();
     for (int i = 0; i < length; i++) {
       Symbol f_name = getFieldName(i);
       Symbol f_sig  = getFieldSignature(i);
-      if (name.equals(f_name) && sig.equals(f_sig)) {
+      if (f_name.equals(name) && f_sig.equals(sig)) {
         return newField(i);
       }
     }
@@ -743,14 +743,14 @@
   }
 
   /** Find field in direct superinterfaces. */
-  public Field findInterfaceField(Symbol name, Symbol sig) {
+  public Field findInterfaceField(String name, String sig) {
     KlassArray interfaces = getLocalInterfaces();
     int n = interfaces.length();
     for (int i = 0; i < n; i++) {
       InstanceKlass intf1 = (InstanceKlass) interfaces.getAt(i);
       if (Assert.ASSERTS_ENABLED) {
         Assert.that(intf1.isInterface(), "just checking type");
-      }
+     }
       // search for field in current interface
       Field f = intf1.findLocalField(name, sig);
       if (f != null) {
@@ -769,7 +769,7 @@
 
   /** Find field according to JVM spec 5.4.3.2, returns the klass in
       which the field is defined. */
-  public Field findField(Symbol name, Symbol sig) {
+  public Field findField(String name, String sig) {
     // search order according to newest JVM spec (5.4.3.2, p.167).
     // 1) search for field in current klass
     Field f = findLocalField(name, sig);
@@ -788,18 +788,6 @@
   }
 
   /** Find field according to JVM spec 5.4.3.2, returns the klass in
-      which the field is defined (convenience routine) */
-  public Field findField(String name, String sig) {
-    SymbolTable symbols = VM.getVM().getSymbolTable();
-    Symbol nameSym = symbols.probe(name);
-    Symbol sigSym  = symbols.probe(sig);
-    if (nameSym == null || sigSym == null) {
-      return null;
-    }
-    return findField(nameSym, sigSym);
-  }
-
-  /** Find field according to JVM spec 5.4.3.2, returns the klass in
       which the field is defined (retained only for backward
       compatibility with jdbx) */
   public Field findFieldDbg(String name, String sig) {
@@ -932,20 +920,8 @@
      return "L" + super.signature() + ";";
   }
 
-  /** Convenience routine taking Strings; lookup is done in
-      SymbolTable. */
+  /** Find method in vtable. */
   public Method findMethod(String name, String sig) {
-    SymbolTable syms = VM.getVM().getSymbolTable();
-    Symbol nameSym = syms.probe(name);
-    Symbol sigSym  = syms.probe(sig);
-    if (nameSym == null || sigSym == null) {
-      return null;
-    }
-    return findMethod(nameSym, sigSym);
-  }
-
-  /** Find method in vtable. */
-  public Method findMethod(Symbol name, Symbol sig) {
     return findMethod(getMethods(), name, sig);
   }
 
@@ -1055,56 +1031,16 @@
     throw new RuntimeException("Illegal field type at index " + index);
   }
 
-  private static Method findMethod(MethodArray methods, Symbol name, Symbol signature) {
-    int len = methods.length();
-    // methods are sorted, so do binary search
-    int l = 0;
-    int h = len - 1;
-    while (l <= h) {
-      int mid = (l + h) >> 1;
-      Method m = methods.at(mid);
-      long res = m.getName().fastCompare(name);
-      if (res == 0) {
-        // found matching name; do linear search to find matching signature
-        // first, quick check for common case
-        if (m.getSignature().equals(signature)) return m;
-        // search downwards through overloaded methods
-        int i;
-        for (i = mid - 1; i >= l; i--) {
-          Method m1 = methods.at(i);
-          if (!m1.getName().equals(name)) break;
-          if (m1.getSignature().equals(signature)) return m1;
-        }
-        // search upwards
-        for (i = mid + 1; i <= h; i++) {
-          Method m1 = methods.at(i);
-          if (!m1.getName().equals(name)) break;
-          if (m1.getSignature().equals(signature)) return m1;
-        }
-        // not found
-        if (Assert.ASSERTS_ENABLED) {
-          int index = linearSearch(methods, name, signature);
-          if (index != -1) {
-            throw new DebuggerException("binary search bug: should have found entry " + index);
-          }
-        }
-        return null;
-      } else if (res < 0) {
-        l = mid + 1;
-      } else {
-        h = mid - 1;
-      }
+  private static Method findMethod(MethodArray methods, String name, String signature) {
+    int index = linearSearch(methods, name, signature);
+    if (index != -1) {
+      return methods.at(index);
+    } else {
+      return null;
     }
-    if (Assert.ASSERTS_ENABLED) {
-      int index = linearSearch(methods, name, signature);
-      if (index != -1) {
-        throw new DebuggerException("binary search bug: should have found entry " + index);
-      }
-    }
-    return null;
   }
 
-  private static int linearSearch(MethodArray methods, Symbol name, Symbol signature) {
+  private static int linearSearch(MethodArray methods, String name, String signature) {
     int len = (int) methods.length();
     for (int index = 0; index < len; index++) {
       Method m = methods.at(index);
--- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/Method.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/Method.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -93,18 +93,18 @@
 
 
   // constant method names - <init>, <clinit>
-  // Initialized lazily to avoid initialization ordering dependencies between Method and SymbolTable
-  private static Symbol objectInitializerName;
-  private static Symbol classInitializerName;
-  private static Symbol objectInitializerName() {
+  // Initialized lazily to avoid initialization ordering dependencies between ArrayKlass and String
+  private static String objectInitializerName;
+  private static String classInitializerName;
+  private static String objectInitializerName() {
     if (objectInitializerName == null) {
-      objectInitializerName = VM.getVM().getSymbolTable().probe("<init>");
+      objectInitializerName = "<init>";
     }
     return objectInitializerName;
   }
-  private static Symbol classInitializerName() {
+  private static String classInitializerName() {
     if (classInitializerName == null) {
-      classInitializerName = VM.getVM().getSymbolTable().probe("<clinit>");
+      classInitializerName = "<clinit>";
     }
     return classInitializerName;
   }
--- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/Symbol.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/Symbol.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -106,6 +106,10 @@
     return true;
   }
 
+  public boolean equals(String string) {
+    return asString().equals(string);
+  }
+
   public byte[] asByteArray() {
     int length = (int) getLength();
     byte [] result = new byte [length];
--- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/VM.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/VM.java	Mon Jul 16 12:11:02 2018 +0100
@@ -78,7 +78,6 @@
   private long         logAddressSize;
   private Universe     universe;
   private ObjectHeap   heap;
-  private SymbolTable  symbols;
   private SystemDictionary dict;
   private ClassLoaderDataGraph cldGraph;
   private Threads      threads;
@@ -647,13 +646,6 @@
     return heap;
   }
 
-  public SymbolTable getSymbolTable() {
-    if (symbols == null) {
-      symbols = SymbolTable.getTheTable();
-    }
-    return symbols;
-  }
-
   public SystemDictionary getSystemDictionary() {
     if (dict == null) {
       dict = new SystemDictionary();
--- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/utilities/AbstractHeapGraphWriter.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/utilities/AbstractHeapGraphWriter.java	Mon Jul 16 12:11:02 2018 +0100
@@ -43,10 +43,9 @@
 public abstract class AbstractHeapGraphWriter implements HeapGraphWriter {
     // the function iterates heap and calls Oop type specific writers
     protected void write() throws IOException {
-        SymbolTable symTbl = VM.getVM().getSymbolTable();
-        javaLangClass = symTbl.probe("java/lang/Class");
-        javaLangString = symTbl.probe("java/lang/String");
-        javaLangThread = symTbl.probe("java/lang/Thread");
+        javaLangClass = "java/lang/Class";
+        javaLangString = "java/lang/String";
+        javaLangThread = "java/lang/Thread";
         ObjectHeap heap = VM.getVM().getObjectHeap();
         try {
             heap.iterate(new DefaultHeapVisitor() {
@@ -458,7 +457,7 @@
         }
     }
 
-    protected Symbol javaLangClass;
-    protected Symbol javaLangString;
-    protected Symbol javaLangThread;
+    protected String javaLangClass;
+    protected String javaLangString;
+    protected String javaLangThread;
 }
--- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/utilities/HeapHprofBinWriter.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/utilities/HeapHprofBinWriter.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -309,6 +309,9 @@
 
 public class HeapHprofBinWriter extends AbstractHeapGraphWriter {
 
+    // Record which Symbol names have been dumped already.
+    private HashSet<Symbol> names;
+
     private static final long HPROF_SEGMENTED_HEAP_DUMP_THRESHOLD = 2L * 0x40000000;
 
     // The approximate size of a heap segment. Used to calculate when to create
@@ -381,6 +384,7 @@
 
     public HeapHprofBinWriter() {
         this.KlassMap = new ArrayList<Klass>();
+        this.names = new HashSet<Symbol>();
     }
 
     public synchronized void write(String fileName) throws IOException {
@@ -391,7 +395,6 @@
         VM vm = VM.getVM();
         dbg = vm.getDebugger();
         objectHeap = vm.getObjectHeap();
-        symTbl = vm.getSymbolTable();
 
         OBJ_ID_SIZE = (int) vm.getOopSize();
 
@@ -745,6 +748,11 @@
         } else {
             lineNumber = m.getLineNumberFromBCI(bci);
         }
+        // First dump UTF8 if needed
+        writeSymbol(m.getName());                              // method's name
+        writeSymbol(m.getSignature());                         // method's signature
+        writeSymbol(m.getMethodHolder().getSourceFileName());  // source file name
+        // Then write FRAME descriptor
         writeHeader(HPROF_FRAME, 4 * (int)VM.getVM().getOopSize() + 2 * (int)INT_SIZE);
         writeObjectID(frameSN);                                  // frame serial number
         writeSymbolID(m.getName());                              // method's name
@@ -955,7 +963,7 @@
         out.writeShort((short) fields.size());
         for (Iterator itr = fields.iterator(); itr.hasNext();) {
             Field field = (Field) itr.next();
-            Symbol name = symTbl.probe(field.getID().getName());
+            Symbol name = field.getName();
             writeSymbolID(name);
             char typeCode = (char) field.getSignature().getByteAt(0);
             int kind = signatureToHprofKind(typeCode);
@@ -1049,27 +1057,44 @@
         out.writeInt(0);
     }
 
+    private void writeClassSymbols(Klass k) throws IOException {
+        writeSymbol(k.getName());
+        if (k instanceof InstanceKlass) {
+            InstanceKlass ik = (InstanceKlass) k;
+            List declaredFields = ik.getImmediateFields();
+            for (Iterator itr = declaredFields.iterator(); itr.hasNext();) {
+                Field field = (Field) itr.next();
+                writeSymbol(field.getName());
+            }
+        }
+    }
+
     private void writeSymbols() throws IOException {
+        // Write all the symbols that are used by the classes
+        ClassLoaderDataGraph cldGraph = VM.getVM().getClassLoaderDataGraph();
         try {
-            symTbl.symbolsDo(new SymbolTable.SymbolVisitor() {
-                    public void visit(Symbol sym) {
-                        try {
-                            writeSymbol(sym);
-                        } catch (IOException exp) {
-                            throw new RuntimeException(exp);
-                        }
-                    }
-                });
+             cldGraph.classesDo(new ClassLoaderDataGraph.ClassVisitor() {
+                            public void visit(Klass k) {
+                                try {
+                                    writeClassSymbols(k);
+                                } catch (IOException e) {
+                                    throw new RuntimeException(e);
+                                }
+                            }
+                        });
         } catch (RuntimeException re) {
             handleRuntimeException(re);
         }
     }
 
     private void writeSymbol(Symbol sym) throws IOException {
-        byte[] buf = sym.asString().getBytes("UTF-8");
-        writeHeader(HPROF_UTF8, buf.length + OBJ_ID_SIZE);
-        writeSymbolID(sym);
-        out.write(buf);
+        // If name is already written don't write it again.
+        if (names.add(sym)) {
+            byte[] buf = sym.asString().getBytes("UTF-8");
+            writeHeader(HPROF_UTF8, buf.length + OBJ_ID_SIZE);
+            writeSymbolID(sym);
+            out.write(buf);
+        }
     }
 
     private void writeClasses() throws IOException {
@@ -1118,6 +1143,7 @@
     }
 
     private void writeSymbolID(Symbol sym) throws IOException {
+        assert names.contains(sym);
         writeObjectID(getAddressValue(sym.getAddress()));
     }
 
@@ -1195,7 +1221,6 @@
     private FileOutputStream fos;
     private Debugger dbg;
     private ObjectHeap objectHeap;
-    private SymbolTable symTbl;
     private ArrayList<Klass> KlassMap;
 
     // oopSize of the debuggee
--- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/utilities/ObjectReader.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/utilities/ObjectReader.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -135,39 +135,35 @@
       }
    }
 
-   protected Symbol javaLangString;
-   protected Symbol javaUtilHashtableEntry;
-   protected Symbol javaUtilHashtable;
-   protected Symbol javaUtilProperties;
+   protected String javaLangString;
+   protected String javaUtilHashtableEntry;
+   protected String javaUtilHashtable;
+   protected String javaUtilProperties;
 
-   protected Symbol getVMSymbol(String name) {
-      return VM.getVM().getSymbolTable().probe(name);
-   }
-
-   protected Symbol javaLangString() {
+   protected String javaLangString() {
       if (javaLangString == null) {
-         javaLangString = getVMSymbol("java/lang/String");
+         javaLangString = "java/lang/String";
       }
       return javaLangString;
    }
 
-   protected Symbol javaUtilHashtableEntry() {
+   protected String javaUtilHashtableEntry() {
       if (javaUtilHashtableEntry == null) {
-         javaUtilHashtableEntry = getVMSymbol("java/util/Hashtable$Entry");
+         javaUtilHashtableEntry = "java/util/Hashtable$Entry";
       }
       return javaUtilHashtableEntry;
    }
 
-   protected Symbol javaUtilHashtable() {
+   protected String javaUtilHashtable() {
       if (javaUtilHashtable == null) {
-         javaUtilHashtable = getVMSymbol("java/util/Hashtable");
+         javaUtilHashtable = "java/util/Hashtable";
       }
       return javaUtilHashtable;
    }
 
-   protected Symbol javaUtilProperties() {
+   protected String javaUtilProperties() {
       if (javaUtilProperties == null) {
-         javaUtilProperties = getVMSymbol("java/util/Properties");
+         javaUtilProperties = "java/util/Properties";
       }
       return javaUtilProperties;
    }
--- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaFactoryImpl.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaFactoryImpl.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -127,31 +127,27 @@
    }
 
    // -- Internals only below this point
-   private Symbol javaLangString() {
+   private String javaLangString() {
       if (javaLangString == null) {
-         javaLangString = getSymbol("java/lang/String");
+         javaLangString = "java/lang/String";
       }
       return javaLangString;
    }
 
-   private Symbol javaLangThread() {
+   private String javaLangThread() {
       if (javaLangThread == null) {
-         javaLangThread = getSymbol("java/lang/Thread");
+         javaLangThread = "java/lang/Thread";
       }
       return javaLangThread;
    }
 
-   private Symbol javaLangClass() {
+   private String javaLangClass() {
       if (javaLangClass == null) {
-         javaLangClass = getSymbol("java/lang/Class");
+         javaLangClass = "java/lang/Class";
       }
       return javaLangClass;
    }
 
-   private Symbol getSymbol(String str) {
-      return VM.getVM().getSymbolTable().probe(str);
-   }
-
    private JSJavaObject newJavaInstance(Instance instance) {
       // look for well-known classes
       Symbol className = instance.getKlass().getName();
@@ -196,7 +192,7 @@
 
    // Map<Oop, SoftReference<JSJavaObject>>
    private Map om = new HashMap();
-   private Symbol javaLangString;
-   private Symbol javaLangThread;
-   private Symbol javaLangClass;
+   private String javaLangString;
+   private String javaLangThread;
+   private String javaLangClass;
 }
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.aarch64/src/org/graalvm/compiler/lir/aarch64/AArch64AtomicMove.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.aarch64/src/org/graalvm/compiler/lir/aarch64/AArch64AtomicMove.java	Mon Jul 16 12:11:02 2018 +0100
@@ -83,7 +83,7 @@
             if (AArch64LIRFlagsVersioned.useLSE(masm.target.arch)) {
                 Register expected = asRegister(expectedValue);
                 masm.mov(size, result, expected);
-                masm.cas(size, expected, newVal, address, true /* acquire */, true /* release */);
+                masm.cas(size, result, newVal, address, true /* acquire */, true /* release */);
                 AArch64Compare.gpCompare(masm, resultValue, expectedValue);
             } else {
                 // We could avoid using a scratch register here, by reusing resultValue for the
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/api/package-info.java	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ *  This package provides the javadoc implementation of relevant
+ *  public API defined in {@link javax.tools}, which provides an
+ *  API alternative to invoking javadoc via the command line.
+ *
+ *  <p><b>This is NOT part of any supported API.
+ *  If you write code that depends on this, you do so at your own risk.
+ *  This code and its internal interfaces are subject to change or
+ *  deletion without notice.</b>
+ */
+package jdk.javadoc.internal.api;
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/Contents.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/Contents.java	Mon Jul 16 12:11:02 2018 +0100
@@ -118,7 +118,6 @@
     public final Content indexLabel;
     public final Content interfaceLabel;
     public final Content interfaces;
-    public final Content interfacesItalic;
     public final Content methodDetailLabel;
     public final Content methodLabel;
     public final Content methodSummary;
@@ -157,9 +156,10 @@
     public final Content properties;
     public final Content propertyLabel;
     public final Content propertyDetailsLabel;
-    public final Content propertySummary;
+    public final Content propertySummaryLabel;
     public final Content seeLabel;
     public final Content serializedForm;
+    public final Content servicesLabel;
     public final Content specifiedByLabel;
     public final Content subclassesLabel;
     public final Content subinterfacesLabel;
@@ -245,7 +245,6 @@
         indexLabel = getContent("doclet.Index");
         interfaceLabel = getContent("doclet.Interface");
         interfaces = getContent("doclet.Interfaces");
-        interfacesItalic = getContent("doclet.Interfaces_Italic");
         methodDetailLabel = getContent("doclet.Method_Detail");
         methodSummary = getContent("doclet.Method_Summary");
         methodLabel = getContent("doclet.Method");
@@ -284,9 +283,10 @@
         properties = getContent("doclet.Properties");
         propertyLabel = getContent("doclet.Property");
         propertyDetailsLabel = getContent("doclet.Property_Detail");
-        propertySummary = getContent("doclet.Property_Summary");
+        propertySummaryLabel = getContent("doclet.Property_Summary");
         seeLabel = getContent("doclet.See");
         serializedForm = getContent("doclet.Serialized_Form");
+        servicesLabel = getContent("doclet.Services");
         specifiedByLabel = getContent("doclet.Specified_By");
         subclassesLabel = getContent("doclet.Subclasses");
         subinterfacesLabel = getContent("doclet.Subinterfaces");
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HelpWriter.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HelpWriter.java	Mon Jul 16 12:11:02 2018 +0100
@@ -143,9 +143,13 @@
             htmlTree = (configuration.allowTag(HtmlTag.SECTION))
                     ? HtmlTree.SECTION(overviewHeading)
                     : HtmlTree.LI(HtmlStyle.blockList, overviewHeading);
-            Content overviewBody = contents.getContent("doclet.help.overview.body",
-                    links.createLink(DocPaths.overviewSummary(configuration.frames),
-                    resources.getText("doclet.Overview")));
+            String overviewKey = configuration.showModules
+                    ? "doclet.help.overview.modules.body"
+                    : "doclet.help.overview.packages.body";
+            Content overviewLink = links.createLink(
+                    DocPaths.overviewSummary(configuration.frames),
+                    resources.getText("doclet.Overview"));
+            Content overviewBody = contents.getContent(overviewKey, overviewLink);
             Content overviewPara = HtmlTree.P(overviewBody);
             htmlTree.addContent(overviewPara);
             if (configuration.allowTag(HtmlTag.SECTION)) {
@@ -155,6 +159,29 @@
             }
         }
 
+        // Module
+        if (configuration.showModules) {
+            Content moduleHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
+                    contents.moduleLabel);
+            htmlTree = (configuration.allowTag(HtmlTag.SECTION))
+                    ? HtmlTree.SECTION(moduleHead)
+                    : HtmlTree.LI(HtmlStyle.blockList, moduleHead);
+            Content moduleIntro = contents.getContent("doclet.help.module.intro");
+            Content modulePara = HtmlTree.P(moduleIntro);
+            htmlTree.addContent(modulePara);
+            HtmlTree ulModule = new HtmlTree(HtmlTag.UL);
+            ulModule.addContent(HtmlTree.LI(contents.packagesLabel));
+            ulModule.addContent(HtmlTree.LI(contents.modulesLabel));
+            ulModule.addContent(HtmlTree.LI(contents.servicesLabel));
+            htmlTree.addContent(ulModule);
+            if (configuration.allowTag(HtmlTag.SECTION)) {
+                ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
+            } else {
+                ul.addContent(htmlTree);
+            }
+
+        }
+
         // Package
         Content packageHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
                 contents.packageLabel);
@@ -165,7 +192,7 @@
         Content packagePara = HtmlTree.P(packageIntro);
         htmlTree.addContent(packagePara);
         HtmlTree ulPackage = new HtmlTree(HtmlTag.UL);
-        ulPackage.addContent(HtmlTree.LI(contents.interfacesItalic));
+        ulPackage.addContent(HtmlTree.LI(contents.interfaces));
         ulPackage.addContent(HtmlTree.LI(contents.classes));
         ulPackage.addContent(HtmlTree.LI(contents.enums));
         ulPackage.addContent(HtmlTree.LI(contents.exceptions));
@@ -195,14 +222,18 @@
         ul1.addContent(HtmlTree.LI(contents.getContent("doclet.help.class_interface.declaration")));
         ul1.addContent(HtmlTree.LI(contents.getContent("doclet.help.class_interface.description")));
         htmlTree.addContent(ul1);
+        htmlTree.addContent(new HtmlTree(HtmlTag.BR));
         HtmlTree ul2 = new HtmlTree(HtmlTag.UL);
         ul2.addContent(HtmlTree.LI(contents.nestedClassSummary));
         ul2.addContent(HtmlTree.LI(contents.fieldSummaryLabel));
+        ul2.addContent(HtmlTree.LI(contents.propertySummaryLabel));
         ul2.addContent(HtmlTree.LI(contents.constructorSummaryLabel));
         ul2.addContent(HtmlTree.LI(contents.methodSummary));
         htmlTree.addContent(ul2);
+        htmlTree.addContent(new HtmlTree(HtmlTag.BR));
         HtmlTree ul3 = new HtmlTree(HtmlTag.UL);
         ul3.addContent(HtmlTree.LI(contents.fieldDetailsLabel));
+        ul3.addContent(HtmlTree.LI(contents.propertyDetailsLabel));
         ul3.addContent(HtmlTree.LI(contents.constructorDetailsLabel));
         ul3.addContent(HtmlTree.LI(contents.methodDetailLabel));
         htmlTree.addContent(ul3);
@@ -342,21 +373,6 @@
             }
         }
 
-        // Prev/Next
-        Content prevHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
-                contents.getContent("doclet.help.prev_next.head"));
-        htmlTree = (configuration.allowTag(HtmlTag.SECTION))
-                ? HtmlTree.SECTION(prevHead)
-                : HtmlTree.LI(HtmlStyle.blockList, prevHead);
-        Content prevBody = contents.getContent("doclet.help.prev_next.body");
-        Content prevPara = HtmlTree.P(prevBody);
-        htmlTree.addContent(prevPara);
-        if (configuration.allowTag(HtmlTag.SECTION)) {
-            ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
-        } else {
-            ul.addContent(htmlTree);
-        }
-
         // Frames
         if (configuration.frames) {
             Content frameHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
@@ -367,12 +383,12 @@
             Content framesBody = contents.getContent("doclet.help.frames.body");
             Content framePara = HtmlTree.P(framesBody);
             htmlTree.addContent(framePara);
-        }
 
-        if (configuration.allowTag(HtmlTag.SECTION)) {
-            ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
-        } else {
-            ul.addContent(htmlTree);
+            if (configuration.allowTag(HtmlTag.SECTION)) {
+                ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
+            } else {
+                ul.addContent(htmlTree);
+            }
         }
 
         // Serialized Form
@@ -407,10 +423,26 @@
             ul.addContent(htmlTree);
         }
 
+        // Search
+        Content searchHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
+                contents.getContent("doclet.help.search.head"));
+        htmlTree = (configuration.allowTag(HtmlTag.SECTION))
+                ? HtmlTree.SECTION(searchHead)
+                : HtmlTree.LI(HtmlStyle.blockList, searchHead);
+        Content searchBody = contents.getContent("doclet.help.search.body");
+        Content searchPara = HtmlTree.P(searchBody);
+        htmlTree.addContent(searchPara);
+        if (configuration.allowTag(HtmlTag.SECTION)) {
+            ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
+        } else {
+            ul.addContent(htmlTree);
+        }
+
         Content divContent = HtmlTree.DIV(HtmlStyle.contentContainer, ul);
-        Content line30 = HtmlTree.SPAN(HtmlStyle.emphasizedPhrase,
+        divContent.addContent(new HtmlTree(HtmlTag.HR));
+        Content footnote = HtmlTree.SPAN(HtmlStyle.emphasizedPhrase,
                 contents.getContent("doclet.help.footnote"));
-        divContent.addContent(line30);
+        divContent.addContent(footnote);
         if (configuration.allowTag(HtmlTag.MAIN)) {
             mainTree.addContent(divContent);
             contentTree.addContent(mainTree);
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PropertyWriterImpl.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PropertyWriterImpl.java	Mon Jul 16 12:11:02 2018 +0100
@@ -37,7 +37,6 @@
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
-import jdk.javadoc.internal.doclets.formats.html.markup.Navigation;
 import jdk.javadoc.internal.doclets.formats.html.markup.StringContent;
 import jdk.javadoc.internal.doclets.toolkit.Content;
 import jdk.javadoc.internal.doclets.toolkit.MemberSummaryWriter;
@@ -206,7 +205,7 @@
     @Override
     public void addSummaryLabel(Content memberTree) {
         Content label = HtmlTree.HEADING(HtmlConstants.SUMMARY_HEADING,
-                contents.propertySummary);
+                contents.propertySummaryLabel);
         memberTree.addContent(label);
     }
 
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/package-info.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/package-info.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,17 +24,18 @@
  */
 
 /**
- * This package contains classes that create and write HTML markup tags.
+ *  This package contains classes that create and write HTML markup tags.
  *
- * The primary low level classes are {@link HtmlTree} and subtypes
- * of {@code Content}. In addition, there are mid-level builders
- * like {@link TableHeader} and {@link Table} to help build more
- * complex HTML trees.
+ *  <p>The primary low level classes are
+ *  {@link jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree HtmlTree}
+ *  and other subtypes of {@code Content}. In addition, there are mid-level builders
+ *  like {@link jdk.javadoc.internal.doclets.formats.html.markup.TableHeader TableHeader}
+ *  and {@link jdk.javadoc.internal.doclets.formats.html.markup.Table Table}
+ *  to help build more complex HTML trees.
  *
  *  <p><b>This is NOT part of any supported API.
  *  If you write code that depends on this, you do so at your own risk.
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  */
-
 package jdk.javadoc.internal.doclets.formats.html.markup;
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard.properties	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard.properties	Mon Jul 16 12:11:02 2018 +0100
@@ -92,7 +92,7 @@
 doclet.Description_From_Interface=Description copied from interface:
 doclet.Description_From_Class=Description copied from class:
 doclet.No_Non_Deprecated_Classes_To_Document=No non-deprecated classes found to document.
-doclet.Interfaces_Italic=Interfaces (italic)
+doclet.Interfaces=Interfaces
 doclet.Enclosing_Class=Enclosing class:
 doclet.Enclosing_Interface=Enclosing interface:
 doclet.Window_Source_title=Source code
@@ -103,20 +103,26 @@
 doclet.help.intro=\
     This API (Application Programming Interface) document has pages corresponding to the items in \
     the navigation bar, described as follows.
-doclet.help.overview.body=\
+doclet.help.overview.modules.body=\
+    The {0} page is the front page of this API document and provides a list of all modules with a \
+    summary for each.  This page can also contain an overall description of the set of modules.
+doclet.help.overview.packages.body=\
     The {0} page is the front page of this API document and provides a list of all packages with a \
     summary for each.  This page can also contain an overall description of the set of packages.
 doclet.help.package.intro=\
     Each package has a page that contains a list of its classes and interfaces, with a summary for \
-    each. This page can contain six categories:
+    each. These pages may contain six categories:
+doclet.help.module.intro=\
+    Each module has a page that contains a list of its packages, dependencies on other modules, \
+    and services, with a summary for each. These page may contain three categories:
 doclet.help.class_interface.head=\
-    Class/Interface
+    Class or Interface
 doclet.help.class_interface.intro=\
     Each class, interface, nested class and nested interface has its own separate page. Each of \
     these pages has three sections consisting of a class/interface description, summary tables, \
     and detailed member descriptions:
 doclet.help.class_interface.inheritance_diagram=\
-    Class inheritance diagram
+    Class Inheritance Diagram
 doclet.help.class_interface.subclasses=\
     Direct Subclasses
 doclet.help.class_interface.subinterfaces=\
@@ -124,9 +130,9 @@
 doclet.help.class_interface.implementations=\
     All Known Implementing Classes
 doclet.help.class_interface.declaration=\
-    Class/interface declaration
+    Class or Interface Declaration
 doclet.help.class_interface.description=\
-    Class/interface description
+    Class or Interface Description
 doclet.help.class_interface.summary=\
     Each summary entry contains the first sentence from the detailed description for that item. \
     The summary entries are alphabetical, while the detailed descriptions are in the order they \
@@ -136,7 +142,7 @@
 doclet.help.use.body=\
     Each documented package, class and interface has its own Use page.  This page describes what \
     packages, classes, methods, constructors and fields use any part of the given class or \
-    package. Given a class or interface A, its Use page includes subclasses of A, fields declared \
+    package. Given a class or interface A, its "Use" page includes subclasses of A, fields declared \
     as A, methods that return A, and methods and constructors with parameters of type A.  \
     You can access this page by first going to the package, class or interface, then clicking on \
     the "Use" link in the navigation bar.
@@ -144,12 +150,12 @@
     Tree (Class Hierarchy)
 doclet.help.tree.intro=\
     There is a {0} page for all packages, plus a hierarchy for each package. Each hierarchy page \
-    contains a list of classes and a list of interfaces. The classes are organized by inheritance \
-    structure starting with {1}. The interfaces do not inherit from {1}.
+    contains a list of classes and a list of interfaces. Classes are organized by inheritance \
+    structure starting with {1}. Interfaces do not inherit from {1}.
 doclet.help.tree.overview=\
     When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
 doclet.help.tree.package=\
-    When viewing a particular package, class or interface page, clicking "Tree" displays the \
+    When viewing a particular package, class or interface page, clicking on "Tree" displays the \
     hierarchy for only that package.
 doclet.help.deprecated.body=\
     The {0} page lists all of the API that have been deprecated. A deprecated API is not \
@@ -158,12 +164,8 @@
 doclet.help.index.head=\
     Index
 doclet.help.index.body=\
-    The {0} contains an alphabetic list of all classes, interfaces, constructors, methods, \
-    and fields.
-doclet.help.prev_next.head=\
-    Prev/Next
-doclet.help.prev_next.body=\
-    These links take you to the next or previous class, interface, package, or related page.
+    The {0} contains an alphabetic index of all classes, interfaces, constructors, methods, \
+    and fields, as well as lists of all packages and all classes.
 doclet.help.frames.head=\
     Frames/No Frames
 doclet.help.frames.body=\
@@ -177,19 +179,23 @@
 doclet.help.constants.body=\
     The {0} page lists the static final fields and their values.
 doclet.help.footnote=\
-    This help file applies to API documentation generated using the standard doclet.
+    This help file applies to API documentation generated by the standard doclet.
 doclet.help.enum.intro=\
     Each enum has its own separate page with the following sections:
 doclet.help.enum.declaration=\
-    Enum declaration
+    Enum Declaration
 doclet.help.enum.definition=\
-    Enum description
+    Enum Description
 doclet.help.annotation_type.intro=\
     Each annotation type has its own separate page with the following sections:
 doclet.help.annotation_type.declaration=\
-    Annotation Type declaration
+    Annotation Type Declaration
 doclet.help.annotation_type.description=\
-    Annotation Type description
+    Annotation Type Description
+doclet.help.search.head=Search
+doclet.help.search.body=You can search for definitions of modules, packages, types, fields, methods \
+    and other terms defined in the API, using some or all of the name. "Camel-case" abbreviations \
+    are supported: for example, "InpStr" will find "InputStream" and "InputStreamReader".
 
 doclet.ClassUse_Packages.that.use.0=Packages that use {0}
 doclet.ClassUse_Uses.of.0.in.1=Uses of {0} in {1}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/package-info.java	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+/**
+ *  The set of low-level file-formats, to be used in conjunction with
+ *  the {@link jdk.javadoc.internal.doclets.toolkit doclets.toolkit} API.
+ *
+ *  <p>Currently, only {@link jdk.javadoc.internal.doclets.formats.html HTML}
+ *  format is supported.
+ *
+ *  <p><b>This is NOT part of any supported API.
+ *  If you write code that depends on this, you do so at your own risk.
+ *  This code and its internal interfaces are subject to change or
+ *  deletion without notice.</b>
+ */
+package jdk.javadoc.internal.doclets.formats;
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/package-info.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/package-info.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,10 +24,25 @@
  */
 
 /**
-    <p><b>This is NOT part of any supported API.
-    If you write code that depends on this, you do so at your own risk.
-    This code and its internal interfaces are subject to change or
-    deletion without notice.</b>
+ *  Doclets provide the user-selectable backends for processing the
+ *  documentation comnments in Java source code.
+ *
+ *  <p>Doclets are implementations of the {@link jdk.javadoc.doclet Doclet API}.</p>
+ *
+ *  <p>Currently, there is only one supported doclet, the
+ *  {@link jdk.javadoc.internal.doclets.formats.html.HtmlDoclet HtmlDoclet},
+ *  for writing API documentation in HTML. Nevertheless, in order to
+ *  separate the high-level code for the general content of each page
+ *  from the low-level details of how to write such content, the code is
+ *  organized in two sections: a format-neutral
+ *  {@link jdk.javadoc.internal.doclets.toolkit toolkit API},
+ *  and a specific {@link jdk.javadoc.internal.doclets.formats format},
+ *  such as {@link jdk.javadoc.internal.doclets.formats.html HTML format}.
+ *
+ *  <p><b>This is NOT part of any supported API.
+ *  If you write code that depends on this, you do so at your own risk.
+ *  This code and its internal interfaces are subject to change or
+ *  deletion without notice.</b>
 */
 
 package jdk.javadoc.internal.doclets;
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/package-info.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/package-info.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,17 +24,17 @@
  */
 
 /**
-    This doclet-independent package has a set of classes and
-    interfaces that are the building blocks for doclets. They
-    define the basic structure of doclets and make doclet
-    writing much easier because they provide the content generation
-    code to be shared among different doclets. Builders only provide
-    the structure and content of API documentation.
-    They will not provide any style markup.
-
-    <p><b>This is NOT part of any supported API.
-    If you write code that depends on this, you do so at your own risk.
-    This code and its internal interfaces are subject to change or
-    deletion without notice.</b>
-*/
+ *  This doclet-independent package has a set of classes and
+ *  interfaces that are the building blocks for doclets. They
+ *  define the basic structure of doclets and make doclet
+ *  writing much easier because they provide the content generation
+ *  code to be shared among different doclets. Builders only provide
+ *  the structure and content of API documentation.
+ *  They do not directly provide any style markup.
+ *
+ *  <p><b>This is NOT part of any supported API.
+ *  If you write code that depends on this, you do so at your own risk.
+ *  This code and its internal interfaces are subject to change or
+ *  deletion without notice.</b>
+ */
 package jdk.javadoc.internal.doclets.toolkit.builders;
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets.properties	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets.properties	Mon Jul 16 12:11:02 2018 +0100
@@ -75,6 +75,7 @@
 doclet.See_Also=See Also:
 doclet.See=See:
 doclet.SerialData=Serial Data:
+doclet.Services=Services
 doclet.Since=Since:
 doclet.Throws=Throws:
 doclet.Version=Version:
@@ -117,7 +118,6 @@
 doclet.Exceptions=Exceptions
 doclet.Errors=Errors
 doclet.Classes=Classes
-doclet.Packages=Packages
 doclet.packages=packages
 doclet.modules=modules
 doclet.types=types
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/package-info.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/package-info.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,29 +24,28 @@
  */
 
 /**
-    This package has classes used to generate Javadoc tag documentation.
-    Doclets no longer have to implement its own version of standard tags
-    such as &#64;param and &#64;throws.  This is the single, doclet
-    implementation of each standard tag that is shared by all
-    doclets.  Each doclet must have a taglet writer that takes a taglet
-    as input and writes doclet-dependent output. The taglet itself will
-    do the tag processing. For example, suppose we are outputing
-    &#64;throws tags. The taglet would:
-    <ul>
-        <li> Retrieve the list of throws tags to be documented.
-        <li> Replace {&#64;inheritDoc} with the appropriate documentation.
-        <li> Add throws documentation for exceptions that are declared in
-             the signature of the method but
-             not documented with the throws tags.
-    </ul>
-    After doing the steps above, the taglet would pass the information to
-    the taglet writer for writing. The taglets are essentially builders for
-    tags.
-
-    <p><b>This is NOT part of any supported API.
-    If you write code that depends on this, you do so at your own risk.
-    This code and its internal interfaces are subject to change or
-    deletion without notice.</b>
-*/
-
+ *  This package has classes used to generate output for Javadoc tags.
+ *
+ *  <p>Doclets no longer have to implement their own version of standard tags
+ *  such as &#64;param and &#64;throws.  Individual taglets provide
+ *  common processing, independent of the output format.
+ *  Each doclet must have a taglet writer that takes a taglet
+ *  as input and writes doclet-dependent output. The taglet itself will
+ *  do the tag processing. For example, suppose we are outputing
+ *  &#64;throws tags. The taglet would:
+ *  <ul>
+ *      <li> Retrieve the list of throws tags to be documented.
+ *      <li> Replace {&#64;inheritDoc} with the appropriate documentation.
+ *      <li> Add throws documentation for exceptions that are declared in
+ *           the signature of the method but not documented with the throws tags.
+ *  </ul>
+ *  After doing the steps above, the taglet would pass the information to
+ *  the taglet writer for writing. The taglets are essentially builders for
+ *  tags.
+ *
+ *  <p><b>This is NOT part of any supported API.
+ *  If you write code that depends on this, you do so at your own risk.
+ *  This code and its internal interfaces are subject to change or
+ *  deletion without notice.</b>
+ */
 package jdk.javadoc.internal.doclets.toolkit.taglets;
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/links/LinkInfo.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/links/LinkInfo.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -33,14 +33,14 @@
 import jdk.javadoc.internal.doclets.toolkit.Content;
 
 /**
- * Encapsulates information about a link.
+ *  Encapsulates information about a link.
  *
  *  <p><b>This is NOT part of any supported API.
  *  If you write code that depends on this, you do so at your own risk.
  *  This code and its internal interfaces are subject to change or
  *  deletion without notice.</b>
  *
- * @author Jamie Ho
+ *  @author Jamie Ho
  */
 public abstract class LinkInfo {
 
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/links/LinkOutput.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/links/LinkOutput.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,7 @@
 package jdk.javadoc.internal.doclets.toolkit.util.links;
 
 /**
- * Stores output of a link.
+ *  Stores output of a link.
  *
  *  <p><b>This is NOT part of any supported API.
  *  If you write code that depends on this, you do so at your own risk.
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/links/package-info.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/links/package-info.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,12 +24,11 @@
  */
 
 /**
-    Provides a factory for constructing links.
-
-    <p><b>This is NOT part of any supported API.
-    If you write code that depends on this, you do so at your own risk.
-    This code and its internal interfaces are subject to change or
-    deletion without notice.</b>
-*/
-
+ *  Provides a factory for constructing links.
+ *
+ *  <p><b>This is NOT part of any supported API.
+ *  If you write code that depends on this, you do so at your own risk.
+ *  This code and its internal interfaces are subject to change or
+ *  deletion without notice.</b>
+ */
 package jdk.javadoc.internal.doclets.toolkit.util.links;
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/package-info.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/package-info.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,13 +24,12 @@
  */
 
 /**
-    This package has utility classes that perform common services required
-    for API documentation generation.
-
-    <p><b>This is NOT part of any supported API.
-    If you write code that depends on this, you do so at your own risk.
-    This code and its internal interfaces are subject to change or
-    deletion without notice.</b>
-*/
-
+ *  This package has utility classes that perform common services required
+ *  for API documentation generation.
+ *
+ *  <p><b>This is NOT part of any supported API.
+ *  If you write code that depends on this, you do so at your own risk.
+ *  This code and its internal interfaces are subject to change or
+ *  deletion without notice.</b>
+ */
 package jdk.javadoc.internal.doclets.toolkit.util;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/package-info.java	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ *  The implementation of the javadoc tool, and associated doclets.
+ *
+ *  <p>Internally, javadoc is composed of two primary parts:
+ *  the {@link jdk.javadoc.internal.tool tool}, and a series of
+ *  {@link jdk.javadoc.internal.doclets doclets}.
+ *
+ *  The tool provides a common infrastructure for command-line processing,
+ *  and for reading the documentation comments in Java source files,
+ *  while doclets provide a user-selectable backend for determining
+ *  how to process the documentation comments.
+ *
+ *  <p><em>Historical Note:</em> Prior to the introduction of the
+ *  {@link javax.lang.model Language Model API} in JDK 6, it was
+ *  not unusual to use the {@link com.sun.javadoc} API as a
+ *  modeling API. But the Language Model API, and associated
+ *  {@link javax.annotation.processing Annotation Processing API}
+ *  provided a better way to model programs, and in JDK 9,
+ *  javadoc itself was converted to using the Language Model API,
+ *  with the {@code com.sun.javadoc API} being deprecated for
+ *  eventual removal.
+ *  </p>
+ *
+ *  <p><b>This is NOT part of any supported API.
+ *  If you write code that depends on this, you do so at your own risk.
+ *  This code and its internal interfaces are subject to change or
+ *  deletion without notice.</b>
+ */
+package jdk.javadoc.internal;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/package-info.java	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ *  Provides the front end for the javadoc tool.
+ *
+ *  <p>The main entry points are in {@link jdk.javadoc.internal.tool.Main}
+ *  which calls the (poorly-named) {@link jdk.javadoc.internal.tool.Start}
+ *  which provides the overall functionality of the tool.
+ *
+ *  <p>The classes provide a framework for processing command-line options
+ *  and determining the set of elements (modules, packages, types and members)
+ *  to be documented.
+ *
+ *  <p>The classes also provide the means to use the javac front end to read
+ *  source files, including the documentation comments.
+ *
+ *  <p>Finally, once the appropriate files have been read, the classes invoke
+ *  the selected doclet to process those files, typically to generate API
+ *  documentation.
+ *
+ *  <p><b>This is NOT part of any supported API.
+ *  If you write code that depends on this, you do so at your own risk.
+ *  This code and its internal interfaces are subject to change or
+ *  deletion without notice.</b>
+ */
+package jdk.javadoc.internal.tool;
--- a/src/jdk.jdi/share/classes/com/sun/tools/jdi/ReferenceTypeImpl.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.jdi/share/classes/com/sun/tools/jdi/ReferenceTypeImpl.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -1153,7 +1153,7 @@
         this.genericSignatureGotten = true;
     }
 
-    private static boolean isPrimitiveArray(String signature) {
+    private static boolean isOneDimensionalPrimitiveArray(String signature) {
         int i = signature.lastIndexOf('[');
         /*
          * TO DO: Centralize JNI signature knowledge.
@@ -1162,7 +1162,7 @@
          *  jdk1.4/doc/guide/jpda/jdi/com/sun/jdi/doc-files/signature.html
          */
         boolean isPA;
-        if (i < 0) {
+        if (i < 0 || signature.startsWith("[[")) {
             isPA = false;
         } else {
             char c = signature.charAt(i + 1);
@@ -1186,7 +1186,7 @@
             ClassLoaderReferenceImpl loader =
                        (ClassLoaderReferenceImpl)classLoader();
             if ((loader == null) ||
-                (isPrimitiveArray(signature)) //Work around 4450091
+                (isOneDimensionalPrimitiveArray(signature)) //Work around 4450091
                 ) {
                 // Caller wants type of boot class field
                 type = vm.findBootType(signature);
--- a/src/jdk.jdwp.agent/unix/native/libdt_socket/socket_md.c	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.jdwp.agent/unix/native/libdt_socket/socket_md.c	Mon Jul 16 12:11:02 2018 +0100
@@ -145,9 +145,15 @@
 
 int dbgsysSocketClose(int fd) {
     int rv;
+
+    /* AIX recommends to repeat the close call on EINTR */
+#if defined(_AIX)
     do {
         rv = close(fd);
     } while (rv == -1 && errno == EINTR);
+#else
+    rv = close(fd);
+#endif
 
     return rv;
 }
--- a/src/jdk.jsobject/share/classes/netscape/javascript/JSObject.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.jsobject/share/classes/netscape/javascript/JSObject.java	Mon Jul 16 12:11:02 2018 +0100
@@ -151,7 +151,7 @@
      * JavaScript engine or if applet is {@code null}
      *
      * @deprecated  The Applet API is deprecated. See the
-     * <a href="{@docRoot}/java/applet/package-summary.html">
+     * <a href="{@docRoot}/java.desktop/java/applet/package-summary.html">
      * java.applet package documentation</a> for further information.
      */
 
--- a/src/jdk.localedata/share/classes/sun/text/resources/ext/FormatData_ja.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.localedata/share/classes/sun/text/resources/ext/FormatData_ja.java	Mon Jul 16 12:11:02 2018 +0100
@@ -91,7 +91,7 @@
             "\u5927\u6b63", // Taisho
             "\u662d\u548c", // Showa
             "\u5e73\u6210", // Heisei
-            "\u65b0\u5143\u53f7", // NewEra
+            "\u5143\u53f7", // NewEra
         };
         final String[] rocEras = {
             "\u6c11\u56fd\u524d",
--- a/src/jdk.localedata/share/classes/sun/text/resources/ext/JavaTimeSupplementary_ja.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.localedata/share/classes/sun/text/resources/ext/JavaTimeSupplementary_ja.java	Mon Jul 16 12:11:02 2018 +0100
@@ -154,7 +154,7 @@
             "\u5927\u6b63",
             "\u662d\u548c",
             "\u5e73\u6210",
-            "\u65b0\u5143\u53f7", // NewEra
+            "\u5143\u53f7", // NewEra
         };
 
         final String[] sharedJavaTimeShortEras = {
--- a/src/jdk.security.auth/share/classes/com/sun/security/auth/UnixNumericGroupPrincipal.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/src/jdk.security.auth/share/classes/com/sun/security/auth/UnixNumericGroupPrincipal.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,6 +26,7 @@
 package com.sun.security.auth;
 
 import java.security.Principal;
+import java.util.Objects;
 
 /**
  * This class implements the {@code Principal} interface
@@ -195,6 +196,6 @@
      * @return a hash code for this {@code UnixNumericGroupPrincipal}.
      */
     public int hashCode() {
-        return toString().hashCode();
+        return Objects.hash(name, isPrimaryGroup());
     }
 }
--- a/test/hotspot/gtest/gc/g1/test_heapRegion.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/gtest/gc/g1/test_heapRegion.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,6 +27,9 @@
 #include "gc/g1/g1ConcurrentMarkBitMap.inline.hpp"
 #include "gc/g1/heapRegion.inline.hpp"
 #include "gc/shared/referenceProcessor.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
+#include "runtime/vm_operations.hpp"
+#include "runtime/vmThread.hpp"
 #include "unittest.hpp"
 
 class VerifyAndCountMarkClosure : public StackObj {
@@ -60,11 +63,12 @@
 #define MARK_OFFSET_2 ( 99 * MinObjAlignment)
 #define MARK_OFFSET_3 (337 * MinObjAlignment)
 
-TEST_OTHER_VM(HeapRegion, apply_to_marked_objects) {
-  if (!UseG1GC) {
-    return;
-  }
+class VM_HeapRegionApplyToMarkedObjectsTest : public VM_GTestExecuteAtSafepoint {
+public:
+  void doit();
+};
 
+void VM_HeapRegionApplyToMarkedObjectsTest::doit() {
   G1CollectedHeap* heap = G1CollectedHeap::heap();
 
   // Using region 0 for testing.
@@ -80,6 +84,8 @@
 
   VerifyAndCountMarkClosure cl(bitmap);
 
+  HeapWord* old_top = region->top();
+
   // When top is equal to bottom the closure should not be
   // applied to any object because apply_to_marked_objects
   // will stop at HeapRegion::scan_limit which is equal to top.
@@ -112,5 +118,19 @@
   region->apply_to_marked_objects(bitmap, &cl);
   EXPECT_EQ(4, cl.count());
   cl.reset();
+
+  region->set_top(old_top);
 }
 
+TEST_VM(HeapRegion, apply_to_marked_object) {
+  if (!UseG1GC) {
+    return;
+  }
+
+  // Run the test in our very own safepoint, because otherwise it
+  // modifies a region behind the back of a possibly using allocation
+  // or running GC.
+  VM_HeapRegionApplyToMarkedObjectsTest op;
+  ThreadInVMfromNative invm(JavaThread::current());
+  VMThread::execute(&op);
+}
--- a/test/hotspot/gtest/gc/shared/test_oopStorage.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/gtest/gc/shared/test_oopStorage.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -52,23 +52,23 @@
 class OopStorage::TestAccess : public AllStatic {
 public:
   typedef OopStorage::Block Block;
-  typedef OopStorage::AllocateList AllocateList;
+  typedef OopStorage::AllocationList AllocationList;
   typedef OopStorage::ActiveArray ActiveArray;
 
   static ActiveArray& active_array(const OopStorage& storage) {
     return *storage._active_array;
   }
 
-  static AllocateList& allocate_list(OopStorage& storage) {
-    return storage._allocate_list;
+  static AllocationList& allocation_list(OopStorage& storage) {
+    return storage._allocation_list;
   }
 
-  static const AllocateList& allocate_list(const OopStorage& storage) {
-    return storage._allocate_list;
+  static const AllocationList& allocation_list(const OopStorage& storage) {
+    return storage._allocation_list;
   }
 
-  static Mutex* allocate_mutex(const OopStorage& storage) {
-    return storage._allocate_mutex;
+  static Mutex* allocation_mutex(const OopStorage& storage) {
+    return storage._allocation_mutex;
   }
 
   static bool reduce_deferred_updates(OopStorage& storage) {
@@ -109,13 +109,13 @@
 // building with precompiled headers, or for consistency with that
 // workaround.  There really should be an opto namespace.
 typedef TestAccess::Block OopBlock;
-typedef TestAccess::AllocateList AllocateList;
+typedef TestAccess::AllocationList AllocationList;
 typedef TestAccess::ActiveArray ActiveArray;
 
 // Using EXPECT_EQ can't use NULL directly. Otherwise AIX build breaks.
 const OopBlock* const NULL_BLOCK = NULL;
 
-static size_t list_length(const AllocateList& list) {
+static size_t list_length(const AllocationList& list) {
   size_t result = 0;
   for (const OopBlock* block = list.chead();
        block != NULL;
@@ -125,7 +125,7 @@
   return result;
 }
 
-static void clear_list(AllocateList& list) {
+static void clear_list(AllocationList& list) {
   OopBlock* next;
   for (OopBlock* block = list.head(); block != NULL; block = next) {
     next = list.next(*block);
@@ -133,12 +133,12 @@
   }
 }
 
-static bool is_list_empty(const AllocateList& list) {
+static bool is_list_empty(const AllocationList& list) {
   return list.chead() == NULL;
 }
 
 static bool process_deferred_updates(OopStorage& storage) {
-  MutexLockerEx ml(TestAccess::allocate_mutex(storage), Mutex::_no_safepoint_check_flag);
+  MutexLockerEx ml(TestAccess::allocation_mutex(storage), Mutex::_no_safepoint_check_flag);
   bool result = false;
   while (TestAccess::reduce_deferred_updates(storage)) {
     result = true;
@@ -155,7 +155,7 @@
 }
 
 static size_t empty_block_count(const OopStorage& storage) {
-  const AllocateList& list = TestAccess::allocate_list(storage);
+  const AllocationList& list = TestAccess::allocation_list(storage);
   size_t count = 0;
   for (const OopBlock* block = list.ctail();
        (block != NULL) && block->is_empty();
@@ -183,7 +183,7 @@
   OopStorageTest();
   ~OopStorageTest();
 
-  Mutex _allocate_mutex;
+  Mutex _allocation_mutex;
   Mutex _active_mutex;
   OopStorage _storage;
 
@@ -195,19 +195,19 @@
 };
 
 OopStorageTest::OopStorageTest() :
-  _allocate_mutex(_allocate_rank,
-                  "test_OopStorage_allocate",
-                  false,
-                  Mutex::_safepoint_check_never),
+  _allocation_mutex(_allocate_rank,
+                    "test_OopStorage_allocation",
+                    false,
+                    Mutex::_safepoint_check_never),
   _active_mutex(_active_rank,
                 "test_OopStorage_active",
                 false,
                 Mutex::_safepoint_check_never),
-  _storage("Test Storage", &_allocate_mutex, &_active_mutex)
+  _storage("Test Storage", &_allocation_mutex, &_active_mutex)
 { }
 
 OopStorageTest::~OopStorageTest() {
-  clear_list(TestAccess::allocate_list(_storage));
+  clear_list(TestAccess::allocation_list(_storage));
 }
 
 class OopStorageTestWithAllocation : public OopStorageTest {
@@ -243,10 +243,10 @@
   OopStorage* _storage;
 };
 
-static bool is_allocate_list_sorted(const OopStorage& storage) {
-  // The allocate_list isn't strictly sorted.  Rather, all empty
+static bool is_allocation_list_sorted(const OopStorage& storage) {
+  // The allocation_list isn't strictly sorted.  Rather, all empty
   // blocks are segregated to the end of the list.
-  const AllocateList& list = TestAccess::allocate_list(storage);
+  const AllocationList& list = TestAccess::allocation_list(storage);
   const OopBlock* block = list.ctail();
   for ( ; (block != NULL) && block->is_empty(); block = list.prev(*block)) {}
   for ( ; block != NULL; block = list.prev(*block)) {
@@ -269,7 +269,7 @@
 
 TEST_VM_F(OopStorageTest, allocate_one) {
   EXPECT_EQ(0u, active_count(_storage));
-  EXPECT_TRUE(is_list_empty(TestAccess::allocate_list(_storage)));
+  EXPECT_TRUE(is_list_empty(TestAccess::allocation_list(_storage)));
 
   oop* ptr = _storage.allocate();
   EXPECT_TRUE(ptr != NULL);
@@ -277,11 +277,11 @@
 
   EXPECT_EQ(1u, active_count(_storage));
   EXPECT_EQ(1u, _storage.block_count());
-  EXPECT_EQ(1u, list_length(TestAccess::allocate_list(_storage)));
+  EXPECT_EQ(1u, list_length(TestAccess::allocation_list(_storage)));
 
   EXPECT_EQ(0u, empty_block_count(_storage));
 
-  const OopBlock* block = TestAccess::allocate_list(_storage).chead();
+  const OopBlock* block = TestAccess::allocation_list(_storage).chead();
   EXPECT_NE(block, (OopBlock*)NULL);
   EXPECT_EQ(block, active_head(_storage));
   EXPECT_FALSE(TestAccess::block_is_empty(*block));
@@ -293,11 +293,11 @@
 
   EXPECT_EQ(1u, active_count(_storage));
   EXPECT_EQ(1u, _storage.block_count());
-  EXPECT_EQ(1u, list_length(TestAccess::allocate_list(_storage)));
+  EXPECT_EQ(1u, list_length(TestAccess::allocation_list(_storage)));
 
   EXPECT_EQ(1u, empty_block_count(_storage));
 
-  const OopBlock* new_block = TestAccess::allocate_list(_storage).chead();
+  const OopBlock* new_block = TestAccess::allocation_list(_storage).chead();
   EXPECT_EQ(block, new_block);
   EXPECT_EQ(block, active_head(_storage));
   EXPECT_TRUE(TestAccess::block_is_empty(*block));
@@ -309,11 +309,11 @@
   static const size_t max_entries = 1000;
   oop* entries[max_entries];
 
-  AllocateList& allocate_list = TestAccess::allocate_list(_storage);
+  AllocationList& allocation_list = TestAccess::allocation_list(_storage);
 
   EXPECT_EQ(0u, active_count(_storage));
   EXPECT_EQ(0u, _storage.block_count());
-  EXPECT_TRUE(is_list_empty(allocate_list));
+  EXPECT_TRUE(is_list_empty(allocation_list));
 
   size_t allocated = 0;
   for ( ; allocated < max_entries; ++allocated) {
@@ -326,8 +326,8 @@
       if (TestAccess::block_is_full(block)) {
         break;
       } else {
-        EXPECT_FALSE(is_list_empty(allocate_list));
-        EXPECT_EQ(&block, allocate_list.chead());
+        EXPECT_FALSE(is_list_empty(allocation_list));
+        EXPECT_EQ(&block, allocation_list.chead());
       }
     }
     entries[allocated] = _storage.allocate();
@@ -336,7 +336,7 @@
   EXPECT_EQ(allocated, _storage.allocation_count());
   EXPECT_EQ(1u, active_count(_storage));
   EXPECT_EQ(1u, _storage.block_count());
-  EXPECT_TRUE(is_list_empty(allocate_list));
+  EXPECT_TRUE(is_list_empty(allocation_list));
   const OopBlock& block = *TestAccess::active_array(_storage).at(0);
   EXPECT_TRUE(TestAccess::block_is_full(block));
   EXPECT_EQ(allocated, TestAccess::block_allocation_count(block));
@@ -346,7 +346,7 @@
     size_t remaining = allocated - (i + 1);
     EXPECT_EQ(remaining, TestAccess::block_allocation_count(block));
     EXPECT_EQ(remaining, _storage.allocation_count());
-    EXPECT_FALSE(is_list_empty(allocate_list));
+    EXPECT_FALSE(is_list_empty(allocation_list));
   }
 }
 
@@ -354,7 +354,7 @@
   static const size_t max_entries = 1000;
   oop* entries[max_entries];
 
-  AllocateList& allocate_list = TestAccess::allocate_list(_storage);
+  AllocationList& allocation_list = TestAccess::allocation_list(_storage);
 
   EXPECT_EQ(0u, empty_block_count(_storage));
 
@@ -362,12 +362,12 @@
   ASSERT_TRUE(entries[0] != NULL);
   EXPECT_EQ(1u, active_count(_storage));
   EXPECT_EQ(1u, _storage.block_count());
-  EXPECT_EQ(1u, list_length(allocate_list));
+  EXPECT_EQ(1u, list_length(allocation_list));
   EXPECT_EQ(0u, empty_block_count(_storage));
 
   const OopBlock* block = TestAccess::active_array(_storage).at(0);
   EXPECT_EQ(1u, TestAccess::block_allocation_count(*block));
-  EXPECT_EQ(block, allocate_list.chead());
+  EXPECT_EQ(block, allocation_list.chead());
 
   for (size_t i = 1; i < max_entries; ++i) {
     entries[i] = _storage.allocate();
@@ -376,40 +376,40 @@
     EXPECT_EQ(0u, empty_block_count(_storage));
 
     if (block == NULL) {
-      ASSERT_FALSE(is_list_empty(allocate_list));
-      EXPECT_EQ(1u, list_length(allocate_list));
-      block = allocate_list.chead();
+      ASSERT_FALSE(is_list_empty(allocation_list));
+      EXPECT_EQ(1u, list_length(allocation_list));
+      block = allocation_list.chead();
       EXPECT_EQ(1u, TestAccess::block_allocation_count(*block));
       EXPECT_EQ(block, active_head(_storage));
     } else if (TestAccess::block_is_full(*block)) {
-      EXPECT_TRUE(is_list_empty(allocate_list));
+      EXPECT_TRUE(is_list_empty(allocation_list));
       block = NULL;
     } else {
-      EXPECT_FALSE(is_list_empty(allocate_list));
-      EXPECT_EQ(block, allocate_list.chead());
+      EXPECT_FALSE(is_list_empty(allocation_list));
+      EXPECT_EQ(block, allocation_list.chead());
       EXPECT_EQ(block, active_head(_storage));
     }
   }
 
   if (block != NULL) {
     EXPECT_NE(0u, TestAccess::block_allocation_count(*block));
-    EXPECT_FALSE(is_list_empty(allocate_list));
-    EXPECT_EQ(block, allocate_list.chead());
+    EXPECT_FALSE(is_list_empty(allocation_list));
+    EXPECT_EQ(block, allocation_list.chead());
     EXPECT_EQ(block, active_head(_storage));
   }
 
   for (size_t i = 0; i < max_entries; ++i) {
     release_entry(_storage, entries[i]);
-    EXPECT_TRUE(is_allocate_list_sorted(_storage));
+    EXPECT_TRUE(is_allocation_list_sorted(_storage));
     EXPECT_EQ(max_entries - (i + 1), total_allocation_count(_storage));
   }
 
-  EXPECT_EQ(active_count(_storage), list_length(allocate_list));
+  EXPECT_EQ(active_count(_storage), list_length(allocation_list));
   EXPECT_EQ(active_count(_storage), _storage.block_count());
   EXPECT_EQ(active_count(_storage), empty_block_count(_storage));
-  for (const OopBlock* block = allocate_list.chead();
+  for (const OopBlock* block = allocation_list.chead();
        block != NULL;
-       block = allocate_list.next(*block)) {
+       block = allocation_list.next(*block)) {
     EXPECT_TRUE(TestAccess::block_is_empty(*block));
   }
 }
@@ -420,10 +420,10 @@
 
   EXPECT_EQ(0u, empty_block_count(_storage));
 
-  AllocateList& allocate_list = TestAccess::allocate_list(_storage);
+  AllocationList& allocation_list = TestAccess::allocation_list(_storage);
 
   EXPECT_EQ(_max_entries, total_allocation_count(_storage));
-  EXPECT_GE(1u, list_length(allocate_list));
+  EXPECT_GE(1u, list_length(allocation_list));
 
   // Release all entries in "random" order.
   size_t released = 0;
@@ -433,14 +433,14 @@
       _entries[i] = NULL;
       ++released;
       EXPECT_EQ(_max_entries - released, total_allocation_count(_storage));
-      EXPECT_TRUE(is_allocate_list_sorted(_storage));
+      EXPECT_TRUE(is_allocation_list_sorted(_storage));
     }
   }
 
-  EXPECT_EQ(active_count(_storage), list_length(allocate_list));
+  EXPECT_EQ(active_count(_storage), list_length(allocation_list));
   EXPECT_EQ(active_count(_storage), _storage.block_count());
   EXPECT_EQ(0u, total_allocation_count(_storage));
-  EXPECT_EQ(list_length(allocate_list), empty_block_count(_storage));
+  EXPECT_EQ(list_length(allocation_list), empty_block_count(_storage));
 }
 
 TEST_VM_F(OopStorageTestWithAllocation, random_allocate_release) {
@@ -450,10 +450,10 @@
 
   EXPECT_EQ(0u, empty_block_count(_storage));
 
-  AllocateList& allocate_list = TestAccess::allocate_list(_storage);
+  AllocationList& allocation_list = TestAccess::allocation_list(_storage);
 
   EXPECT_EQ(_max_entries, total_allocation_count(_storage));
-  EXPECT_GE(1u, list_length(allocate_list));
+  EXPECT_GE(1u, list_length(allocation_list));
 
   // Release all entries in "random" order, "randomly" interspersed
   // with additional allocations.
@@ -466,20 +466,20 @@
       ++released;
       ++total_released;
       EXPECT_EQ(_max_entries - released, total_allocation_count(_storage));
-      EXPECT_TRUE(is_allocate_list_sorted(_storage));
+      EXPECT_TRUE(is_allocation_list_sorted(_storage));
       if (total_released % allocate_step == 0) {
         _entries[i] = _storage.allocate();
         --released;
         EXPECT_EQ(_max_entries - released, total_allocation_count(_storage));
-        EXPECT_TRUE(is_allocate_list_sorted(_storage));
+        EXPECT_TRUE(is_allocation_list_sorted(_storage));
       }
     }
   }
 
-  EXPECT_EQ(active_count(_storage), list_length(allocate_list));
+  EXPECT_EQ(active_count(_storage), list_length(allocation_list));
   EXPECT_EQ(active_count(_storage), _storage.block_count());
   EXPECT_EQ(0u, total_allocation_count(_storage));
-  EXPECT_EQ(list_length(allocate_list), empty_block_count(_storage));
+  EXPECT_EQ(list_length(allocation_list), empty_block_count(_storage));
 }
 
 template<bool sorted>
@@ -1200,10 +1200,10 @@
 const size_t OopStorageBlockCollectionTest::nvalues;
 const void* const OopStorageBlockCollectionTest::_pseudo_owner[] = {};
 
-class OopStorageAllocateListTest : public OopStorageBlockCollectionTest {};
+class OopStorageAllocationListTest : public OopStorageBlockCollectionTest {};
 
-TEST_F(OopStorageAllocateListTest, empty_list) {
-  AllocateList list;
+TEST_F(OopStorageAllocationListTest, empty_list) {
+  AllocationList list;
 
   EXPECT_TRUE(is_list_empty(list));
   EXPECT_EQ(NULL_BLOCK, list.head());
@@ -1211,8 +1211,8 @@
   EXPECT_EQ(NULL_BLOCK, list.ctail());
 }
 
-TEST_F(OopStorageAllocateListTest, push_back) {
-  AllocateList list;
+TEST_F(OopStorageAllocationListTest, push_back) {
+  AllocationList list;
 
   for (size_t i = 0; i < nvalues; ++i) {
     list.push_back(*values[i]);
@@ -1241,8 +1241,8 @@
   clear_list(list);
 }
 
-TEST_F(OopStorageAllocateListTest, push_front) {
-  AllocateList list;
+TEST_F(OopStorageAllocationListTest, push_front) {
+  AllocationList list;
 
   for (size_t i = 0; i < nvalues; ++i) {
     list.push_front(*values[i]);
@@ -1271,22 +1271,22 @@
   clear_list(list);
 }
 
-class OopStorageAllocateListTestWithList : public OopStorageAllocateListTest {
+class OopStorageAllocationListTestWithList : public OopStorageAllocationListTest {
 public:
-  OopStorageAllocateListTestWithList() : list() {
+  OopStorageAllocationListTestWithList() : list() {
     for (size_t i = 0; i < nvalues; ++i) {
       list.push_back(*values[i]);
     }
   }
 
-  ~OopStorageAllocateListTestWithList() {
+  ~OopStorageAllocationListTestWithList() {
     clear_list(list);
   }
 
-  AllocateList list;
+  AllocationList list;
 };
 
-TEST_F(OopStorageAllocateListTestWithList, unlink_front) {
+TEST_F(OopStorageAllocationListTestWithList, unlink_front) {
   EXPECT_EQ(list.chead(), values[0]);
   EXPECT_EQ(list.ctail(), values[nvalues - 1]);
 
@@ -1304,7 +1304,7 @@
   EXPECT_EQ(NULL_BLOCK, block);
 }
 
-TEST_F(OopStorageAllocateListTestWithList, unlink_back) {
+TEST_F(OopStorageAllocationListTestWithList, unlink_back) {
   EXPECT_EQ(list.chead(), values[0]);
 
   list.unlink(*values[nvalues - 1]);
@@ -1321,7 +1321,7 @@
   EXPECT_EQ(NULL_BLOCK, block);
 }
 
-TEST_F(OopStorageAllocateListTestWithList, unlink_middle) {
+TEST_F(OopStorageAllocationListTestWithList, unlink_middle) {
   EXPECT_EQ(list.chead(), values[0]);
 
   size_t index = nvalues / 2;
@@ -1344,8 +1344,8 @@
   EXPECT_EQ(NULL_BLOCK, block);
 }
 
-TEST_F(OopStorageAllocateListTest, single) {
-  AllocateList list;
+TEST_F(OopStorageAllocationListTest, single) {
+  AllocationList list;
 
   list.push_back(*values[0]);
   EXPECT_EQ(NULL_BLOCK, list.next(*values[0]));
--- a/test/hotspot/gtest/gc/z/test_zAddress.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/gtest/gc/z/test_zAddress.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,6 +1,24 @@
 /*
  * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
- * ORACLE PROPRIETARY/CONFIDENTIAL.  Use is subject to license terms.
+ * 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"
--- a/test/hotspot/gtest/gc/z/test_zArray.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/gtest/gc/z/test_zArray.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,6 +1,24 @@
 /*
  * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * ORACLE PROPRIETARY/CONFIDENTIAL.  Use is subject to license terms.
+ * 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"
--- a/test/hotspot/gtest/gc/z/test_zBitField.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/gtest/gc/z/test_zBitField.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,6 +1,24 @@
 /*
  * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * ORACLE PROPRIETARY/CONFIDENTIAL.  Use is subject to license terms.
+ * 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"
--- a/test/hotspot/gtest/gc/z/test_zBitMap.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/gtest/gc/z/test_zBitMap.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,6 +1,24 @@
 /*
  * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
- * ORACLE PROPRIETARY/CONFIDENTIAL.  Use is subject to license terms.
+ * 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"
--- a/test/hotspot/gtest/gc/z/test_zForwardingTable.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/gtest/gc/z/test_zForwardingTable.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,6 +1,24 @@
 /*
  * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
- * ORACLE PROPRIETARY/CONFIDENTIAL.  Use is subject to license terms.
+ * 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"
--- a/test/hotspot/gtest/gc/z/test_zList.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/gtest/gc/z/test_zList.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,6 +1,24 @@
 /*
  * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
- * ORACLE PROPRIETARY/CONFIDENTIAL.  Use is subject to license terms.
+ * 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"
--- a/test/hotspot/gtest/gc/z/test_zLiveMap.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/gtest/gc/z/test_zLiveMap.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,6 +1,24 @@
 /*
  * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * ORACLE PROPRIETARY/CONFIDENTIAL.  Use is subject to license terms.
+ * 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"
--- a/test/hotspot/gtest/gc/z/test_zPhysicalMemory.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/gtest/gc/z/test_zPhysicalMemory.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,6 +1,24 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
- * ORACLE PROPRIETARY/CONFIDENTIAL.  Use is subject to license terms.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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"
@@ -37,6 +55,9 @@
 
   ZPhysicalMemoryManager pmem_manager(10 * SegmentSize, SegmentSize);
 
+  pmem_manager.try_ensure_unused_capacity(10 * SegmentSize);
+  EXPECT_EQ(pmem_manager.unused_capacity(), 10 * SegmentSize);
+
   ZPhysicalMemory pmem = pmem_manager.alloc(8 * SegmentSize);
   EXPECT_EQ(pmem.nsegments(), 1u) << "wrong number of segments";
 
--- a/test/hotspot/gtest/gc/z/test_zUtils.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/gtest/gc/z/test_zUtils.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,6 +1,24 @@
 /*
  * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * ORACLE PROPRIETARY/CONFIDENTIAL.  Use is subject to license terms.
+ * 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"
--- a/test/hotspot/gtest/gc/z/test_zVirtualMemory.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/gtest/gc/z/test_zVirtualMemory.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,6 +1,24 @@
 /*
  * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
- * ORACLE PROPRIETARY/CONFIDENTIAL.  Use is subject to license terms.
+ * 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"
--- a/test/hotspot/gtest/logging/logTestUtils.inline.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/gtest/logging/logTestUtils.inline.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -95,6 +95,7 @@
   int buflen = 512;
   char* buf = NEW_RESOURCE_ARRAY(char, buflen);
   long pos = ftell(fp);
+  if (pos < 0) return NULL;
 
   char* ret = fgets(buf, buflen, fp);
   while (ret != NULL && buf[strlen(buf) - 1] != '\n' && !feof(fp)) {
--- a/test/hotspot/gtest/memory/test_metachunk.cpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/gtest/memory/test_metachunk.cpp	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -60,7 +60,7 @@
   // Check sizes
   EXPECT_EQ(metachunk->size(), metachunk->word_size());
   EXPECT_EQ(pointer_delta(metachunk->end(), metachunk->bottom(),
-                sizeof (MetaWord*)),
+                          sizeof (MetaWord)),
             metachunk->word_size());
 
   // Check usage
--- a/test/hotspot/gtest/utilities/utilitiesHelper.inline.hpp	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/gtest/utilities/utilitiesHelper.inline.hpp	Mon Jul 16 12:11:02 2018 +0100
@@ -35,7 +35,7 @@
 public:
   Semaphore* _test_complete;
   VM_StopSafepoint(Semaphore* wait_for) : _test_complete(wait_for) {}
-  VMOp_Type type() const          { return VMOp_Dummy; }
+  VMOp_Type type() const          { return VMOp_None; }
   Mode evaluation_mode() const    { return _no_safepoint; }
   bool is_cheap_allocated() const { return false; }
   void doit()                     { _test_complete->wait(); }
--- a/test/hotspot/jtreg/Makefile	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/Makefile	Mon Jul 16 12:11:02 2018 +0100
@@ -4,9 +4,7 @@
 #
 # This code is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
+# published by the Free Software Foundation.
 #
 # This code is distributed in the hope that it will be useful, but WITHOUT
 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/ProblemList-graal.txt	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/ProblemList-graal.txt	Mon Jul 16 12:11:02 2018 +0100
@@ -95,6 +95,7 @@
 compiler/intrinsics/mathexact/sanity/MultiplyExactLongTest.java  8202124   generic-all
 compiler/intrinsics/mathexact/sanity/MultiplyExactIntTest.java   8202124   generic-all
 compiler/whitebox/DeoptimizeAllTest.java                         8202124   generic-all
+compiler/whitebox/DeoptimizeFramesTest.java                      8202124   generic-all
 compiler/whitebox/DeoptimizeMethodTest.java                      8202124   generic-all
 compiler/whitebox/ForceNMethodSweepTest.java                     8202124   generic-all
 compiler/whitebox/GetNMethodTest.java                            8202124   generic-all
@@ -181,3 +182,5 @@
 org.graalvm.compiler.core.test.CountedLoopTest                   8199885
 org.graalvm.compiler.debug.test.DebugContextTest                 8203504
 org.graalvm.compiler.core.test.VerifyDebugUsageTest              8205078
+
+org.graalvm.compiler.hotspot.test.GraalOSRTest                   8206947
--- a/test/hotspot/jtreg/ProblemList.txt	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/ProblemList.txt	Mon Jul 16 12:11:02 2018 +0100
@@ -81,7 +81,6 @@
 
 serviceability/sa/TestRevPtrsForInvokeDynamic.java   8191270 generic-all
 serviceability/sa/sadebugd/SADebugDTest.java         8163805 generic-all
-serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorGCCMSTest.java 8205643 generic-all
 serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorStatArrayCorrectnessTest.java 8205541 generic-all
 serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorStatRateTest.java 8205652 generic-all
 
@@ -139,10 +138,6 @@
 vmTestbase/nsk/jvmti/AttachOnDemand/attach034/TestDescription.java 8042145 generic-all
 vmTestbase/nsk/jvmti/AttachOnDemand/attach045/TestDescription.java 8202971 generic-all
 vmTestbase/nsk/jvmti/unit/heap/HeapWalkTests/TestDescription.java 8016181 generic-all
-vmTestbase/nsk/jvmti/IterateThroughHeap/filter-tagged/TestDescription.java 8201513 generic-all
-vmTestbase/nsk/jvmti/IterateThroughHeap/filter-class-untagged/TestDescription.java 8201513 generic-all
-vmTestbase/nsk/jvmti/IterateThroughHeap/filter-class-tagged/TestDescription.java 8201513 generic-all
-vmTestbase/nsk/jvmti/IterateThroughHeap/filter-untagged/TestDescription.java 8201513 generic-all
 
 vmTestbase/gc/lock/jni/jnilock002/TestDescription.java 8191869,8192647 generic-all
 
@@ -166,7 +161,6 @@
 vmTestbase/vm/mlvm/indy/func/jvmti/mergeCP_indy2manyDiff_b/TestDescription.java 8013267 generic-all
 vmTestbase/vm/mlvm/indy/func/jvmti/mergeCP_indy2manySame_b/TestDescription.java 8013267 generic-all
 
-vmTestbase/nsk/jdb/exclude/exclude001/exclude001.java 8197938 windows-all
 
 vmTestbase/nsk/jdwp/ThreadReference/ForceEarlyReturn/forceEarlyReturn001/forceEarlyReturn001.java 7199837 generic-all
 
--- a/test/hotspot/jtreg/TEST.ROOT	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/TEST.ROOT	Mon Jul 16 12:11:02 2018 +0100
@@ -29,7 +29,7 @@
 # The list of keywords supported in this test suite
 keys=cte_test jcmd nmt regression gc stress metaspace headful intermittent
 
-groups=TEST.groups
+groups=TEST.groups TEST.quick-groups
 
 # Source files for classes that will be used at the beginning of each test suite run,
 # to determine additional characteristics of the system for use with the @requires tag.
--- a/test/hotspot/jtreg/TEST.groups	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/TEST.groups	Mon Jul 16 12:11:02 2018 +0100
@@ -329,846 +329,19 @@
 vmTestbase_nsk_monitoring = \
   vmTestbase/nsk/monitoring
 
-vmTestbase_nsk_monitoring_quick = \
-  vmTestbase/nsk/monitoring/MemoryNotificationInfo/MemoryNotificationInfo/info001/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryNotificationInfo/from/from001/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryNotificationInfo/getCount/getcount001/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryNotificationInfo/getPoolName/getpoolname001/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryNotificationInfo/getUsage/getusage001/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsage/getusage001/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsage/getusage002/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsage/getusage003/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsage/getusage004/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsage/getusage005/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThreshold/getthreshold001/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThreshold/getthreshold002/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThreshold/getthreshold003/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThreshold/getthreshold004/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThreshold/getthreshold005/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThresholdCount/getcount001/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThresholdCount/getcount002/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThresholdCount/getcount003/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThresholdCount/getcount004/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThresholdCount/getcount005/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/getPeakUsage/getpeak001/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/getPeakUsage/getpeak002/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/getPeakUsage/getpeak003/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/getPeakUsage/getpeak004/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/getPeakUsage/getpeak005/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsage/getusage001/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsage/getusage002/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsage/getusage003/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsage/getusage004/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsage/getusage005/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThreshold/getthreshold001/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThreshold/getthreshold002/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThreshold/getthreshold003/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThreshold/getthreshold004/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThreshold/getthreshold005/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThresholdCount/getcount001/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThresholdCount/getcount002/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThresholdCount/getcount003/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThresholdCount/getcount004/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThresholdCount/getcount005/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdExceeded/isexceeded001/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdExceeded/isexceeded002/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdExceeded/isexceeded003/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdExceeded/isexceeded004/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdExceeded/isexceeded005/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdSupported/issupported001/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdSupported/issupported002/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdSupported/issupported003/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdSupported/issupported004/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdSupported/issupported005/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdExceeded/isexceeded001/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdExceeded/isexceeded002/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdExceeded/isexceeded003/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdExceeded/isexceeded004/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdExceeded/isexceeded005/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdSupported/issupported001/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdSupported/issupported002/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdSupported/issupported003/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdSupported/issupported004/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdSupported/issupported005/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/resetPeakUsage/reset001/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/resetPeakUsage/reset002/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/resetPeakUsage/reset003/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/resetPeakUsage/reset004/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/resetPeakUsage/reset005/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/setCollectionUsageThreshold/setthreshold001/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/setCollectionUsageThreshold/setthreshold002/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/setCollectionUsageThreshold/setthreshold003/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/setCollectionUsageThreshold/setthreshold004/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/setCollectionUsageThreshold/setthreshold005/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/setUsageThreshold/setthreshold001/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/setUsageThreshold/setthreshold002/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/setUsageThreshold/setthreshold003/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/setUsageThreshold/setthreshold004/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryPoolMBean/setUsageThreshold/setthreshold005/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryUsage/MemoryUsage/memoryusage001/TestDescription.java \
-  vmTestbase/nsk/monitoring/MemoryUsage/from/from001/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadInfo/from_c/from_c001/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadInfo/getLockName/getlockname001/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadInfo/getLockOwnerName/getlockownername001/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadInfo/isInNative/isinnative001/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadInfo/isSuspended/issuspended001/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadInfo/isSuspended/issuspended002/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/findMonitorDeadlockedThreads/find001/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/findMonitorDeadlockedThreads/find002/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/findMonitorDeadlockedThreads/find003/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/findMonitorDeadlockedThreads/find004/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/findMonitorDeadlockedThreads/find005/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/findMonitorDeadlockedThreads/find006/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/isCurrentThreadCpuTimeSupported/curthcputime001/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/isCurrentThreadCpuTimeSupported/curthcputime002/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/isCurrentThreadCpuTimeSupported/curthcputime003/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/isCurrentThreadCpuTimeSupported/curthcputime004/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/isCurrentThreadCpuTimeSupported/curthcputime005/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/isThreadContentionMonitoringSupported/thcontmonitor001/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/isThreadContentionMonitoringSupported/thcontmonitor002/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/isThreadContentionMonitoringSupported/thcontmonitor003/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/isThreadContentionMonitoringSupported/thcontmonitor004/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/isThreadContentionMonitoringSupported/thcontmonitor005/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/isThreadCpuTimeSupported/thcputime001/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/isThreadCpuTimeSupported/thcputime002/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/isThreadCpuTimeSupported/thcputime003/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/isThreadCpuTimeSupported/thcputime004/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/isThreadCpuTimeSupported/thcputime005/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/resetPeakThreadCount/reset001/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/resetPeakThreadCount/reset002/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/resetPeakThreadCount/reset003/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/resetPeakThreadCount/reset004/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/resetPeakThreadCount/reset005/TestDescription.java \
-  vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerLevel/getloggerlevel001/TestDescription.java \
-  vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerLevel/getloggerlevel002/TestDescription.java \
-  vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerLevel/getloggerlevel003/TestDescription.java \
-  vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerLevel/getloggerlevel004/TestDescription.java \
-  vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerLevel/getloggerlevel005/TestDescription.java \
-  vmTestbase/nsk/monitoring/LoggingMXBean/setLoggerLevel/setloggerlevel001/TestDescription.java \
-  vmTestbase/nsk/monitoring/LoggingMXBean/setLoggerLevel/setloggerlevel002/TestDescription.java \
-  vmTestbase/nsk/monitoring/LoggingMXBean/setLoggerLevel/setloggerlevel003/TestDescription.java \
-  vmTestbase/nsk/monitoring/LoggingMXBean/setLoggerLevel/setloggerlevel004/TestDescription.java \
-  vmTestbase/nsk/monitoring/LoggingMXBean/setLoggerLevel/setloggerlevel005/TestDescription.java \
-  vmTestbase/nsk/monitoring/LoggingMXBean/getParentLoggerName/getparentloggername001/TestDescription.java \
-  vmTestbase/nsk/monitoring/LoggingMXBean/getParentLoggerName/getparentloggername002/TestDescription.java \
-  vmTestbase/nsk/monitoring/LoggingMXBean/getParentLoggerName/getparentloggername003/TestDescription.java \
-  vmTestbase/nsk/monitoring/LoggingMXBean/getParentLoggerName/getparentloggername004/TestDescription.java \
-  vmTestbase/nsk/monitoring/LoggingMXBean/getParentLoggerName/getparentloggername005/TestDescription.java \
-  vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerNames/getloggernames001/TestDescription.java \
-  vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerNames/getloggernames002/TestDescription.java \
-  vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerNames/getloggernames003/TestDescription.java \
-  vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerNames/getloggernames004/TestDescription.java \
-  vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerNames/getloggernames005/TestDescription.java \
-  vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionCount/getcollectioncount001/TestDescription.java \
-  vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionCount/getcollectioncount002/TestDescription.java \
-  vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionCount/getcollectioncount003/TestDescription.java \
-  vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionCount/getcollectioncount004/TestDescription.java \
-  vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionCount/getcollectioncount005/TestDescription.java \
-  vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionTime/getcollectiontime001/TestDescription.java \
-  vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionTime/getcollectiontime002/TestDescription.java \
-  vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionTime/getcollectiontime003/TestDescription.java \
-  vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionTime/getcollectiontime004/TestDescription.java \
-  vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionTime/getcollectiontime005/TestDescription.java \
-  vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean001/RuntimeMXBean001.java \
-  vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean002/TestDescription.java \
-  vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean003/TestDescription.java \
-  vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean004/TestDescription.java \
-  vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean005/TestDescription.java \
-  vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean006/RuntimeMXBean006.java \
-  vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean007/TestDescription.java \
-  vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean008/TestDescription.java \
-  vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean009/TestDescription.java \
-  vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean010/TestDescription.java \
-  vmTestbase/nsk/monitoring/CompilationMXBean/comptimemon001/comptimemon001.java \
-  vmTestbase/nsk/monitoring/CompilationMXBean/comptimemon002/TestDescription.java \
-  vmTestbase/nsk/monitoring/CompilationMXBean/comptimemon003/TestDescription.java \
-  vmTestbase/nsk/monitoring/CompilationMXBean/comptimemon004/TestDescription.java \
-  vmTestbase/nsk/monitoring/CompilationMXBean/comptimemon005/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/TimedWaitingThread/TimedWaitingThread001/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/TimedWaitingThread/TimedWaitingThread002/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/TimedWaitingThread/TimedWaitingThread003/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/TimedWaitingThread/TimedWaitingThread004/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/TimedWaitingThread/TimedWaitingThread005/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/RunningThread/RunningThread001/RunningThread001.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/RunningThread/RunningThread002/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/RunningThread/RunningThread003/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/RunningThread/RunningThread004/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/RunningThread/RunningThread005/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SleepingThread/SleepingThread001/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SleepingThread/SleepingThread002/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SleepingThread/SleepingThread003/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SleepingThread/SleepingThread004/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SleepingThread/SleepingThread005/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/WaitingThread/WaitingThread001/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/WaitingThread/WaitingThread002/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/WaitingThread/WaitingThread003/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/WaitingThread/WaitingThread004/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/WaitingThread/WaitingThread005/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/BlockedThread/BlockedThread001/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/BlockedThread/BlockedThread002/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/BlockedThread/BlockedThread003/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/BlockedThread/BlockedThread004/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/BlockedThread/BlockedThread005/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NativeBlockedThread/NativeBlockedThread001/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NativeBlockedThread/NativeBlockedThread002/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NativeBlockedThread/NativeBlockedThread003/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NativeBlockedThread/NativeBlockedThread004/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NativeBlockedThread/NativeBlockedThread005/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NewThread/NewThread001/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NewThread/NewThread002/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NewThread/NewThread003/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NewThread/NewThread004/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NewThread/NewThread005/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/FinishedThread/FinishedThread001/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/FinishedThread/FinishedThread002/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/FinishedThread/FinishedThread003/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/FinishedThread/FinishedThread004/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/FinishedThread/FinishedThread005/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/LockingThreads/LockingThreads001/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/LockingThreads/LockingThreads002/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/LockingThreads/LockingThreads003/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/LockingThreads/LockingThreads004/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/LockingThreads/LockingThreads005/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SynchronizerLockingThreads/SynchronizerLockingThreads001/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SynchronizerLockingThreads/SynchronizerLockingThreads002/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SynchronizerLockingThreads/SynchronizerLockingThreads003/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SynchronizerLockingThreads/SynchronizerLockingThreads004/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SynchronizerLockingThreads/SynchronizerLockingThreads005/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Deadlock/JavaDeadlock001/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Deadlock/JavaDeadlock002/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Deadlock/JavaDeadlock003/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Deadlock/JavaDeadlock004/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Deadlock/JavaDeadlock005/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Deadlock/NativeDeadlock001/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Deadlock/SynchronizerDeadlock001/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Deadlock/SynchronizedMethodDeadlock001/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Deadlock/MixedDeadlock001/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/baseBehaviorTest_directly/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/baseBehaviorTest_server_default/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/baseBehaviorTest_server_custom/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/baseBehaviorTest_proxy_default/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/baseBehaviorTest_proxy_custom/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/illegalArgumentsTest_directly/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/illegalArgumentsTest_server_default/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/illegalArgumentsTest_server_custom/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/illegalArgumentsTest_proxy_default/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/illegalArgumentsTest_proxy_custom/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/allocatedMemorySupportedTest_directly/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/allocatedMemorySupportedTest_server_default/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/allocatedMemorySupportedTest_server_custom/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/allocatedMemorySupportedTest_proxy_default/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/allocatedMemorySupportedTest_proxy_custom/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/baseBehaviorTest_directly/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/baseBehaviorTest_server_default/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/baseBehaviorTest_server_custom/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/baseBehaviorTest_proxy_default/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/baseBehaviorTest_proxy_custom/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_directly_array/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_server_default_array/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_server_custom_array/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_proxy_default_array/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_proxy_custom_array/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_directly_string/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_server_default_string/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_server_custom_string/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_proxy_default_string/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_proxy_custom_string/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_directly_array/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_server_default_array/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_server_custom_array/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_proxy_default_array/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_proxy_custom_array/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_directly_string/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_server_default_string/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_server_custom_string/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_proxy_default_string/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_proxy_custom_string/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/illegalArgumentsTest_directly/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/illegalArgumentsTest_server_default/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/illegalArgumentsTest_server_custom/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/illegalArgumentsTest_proxy_default/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/illegalArgumentsTest_proxy_custom/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/noAllocationTest_directly/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/noAllocationTest_server_default/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/noAllocationTest_server_custom/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/noAllocationTest_proxy_default/TestDescription.java \
-  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/noAllocationTest_proxy_custom/TestDescription.java
-
-
 # Tests for default method implementation
 vmTestbase_vm_defmeth = \
   vmTestbase/vm/runtime/defmeth
 
-
 # JDI tests
 vmTestbase_nsk_jdi = \
   vmTestbase/nsk/jdi
 
-
 # Stress tests for classes loading/unloading
 # NSK tests for functionality of the HS system dictionary
 vmTestbase_nsk_sysdict = \
   vmTestbase/nsk/sysdict/vm/stress
 
-
-vmTestbase_nsk_jdi_quick = \
-  vmTestbase/nsk/jdi/Argument/description/description001/TestDescription.java \
-  vmTestbase/nsk/jdi/Argument/isValid/isvalid001/TestDescription.java \
-  vmTestbase/nsk/jdi/Argument/isValid/isvalid002/TestDescription.java \
-  vmTestbase/nsk/jdi/Argument/isValid/isvalid003/TestDescription.java \
-  vmTestbase/nsk/jdi/Argument/isValid/isvalid004/TestDescription.java \
-  vmTestbase/nsk/jdi/Argument/isValid/isvalid005/TestDescription.java \
-  vmTestbase/nsk/jdi/Argument/name/name001/TestDescription.java \
-  vmTestbase/nsk/jdi/Argument/value/value001/TestDescription.java \
-  vmTestbase/nsk/jdi/Argument/value/value002/TestDescription.java \
-  vmTestbase/nsk/jdi/Argument/value/value003/TestDescription.java \
-  vmTestbase/nsk/jdi/Argument/setValue/setvalue001/TestDescription.java \
-  vmTestbase/nsk/jdi/Argument/setValue/setvalue002/TestDescription.java \
-  vmTestbase/nsk/jdi/Argument/mustSpecify/mustspecify001/TestDescription.java \
-  vmTestbase/nsk/jdi/AttachingConnector/attach/attach002/TestDescription.java \
-  vmTestbase/nsk/jdi/BooleanArgument/booleanValue/booleanvalue001/TestDescription.java \
-  vmTestbase/nsk/jdi/BooleanArgument/booleanValue/booleanvalue002/TestDescription.java \
-  vmTestbase/nsk/jdi/BooleanArgument/isValid/isvalid001/TestDescription.java \
-  vmTestbase/nsk/jdi/BooleanArgument/isValid/isvalid002/TestDescription.java \
-  vmTestbase/nsk/jdi/BooleanArgument/setValue/setvalue001/TestDescription.java \
-  vmTestbase/nsk/jdi/BooleanArgument/setValue/setvalue002/TestDescription.java \
-  vmTestbase/nsk/jdi/BooleanArgument/stringValueOf/stringvalueof001/TestDescription.java \
-  vmTestbase/nsk/jdi/BooleanArgument/stringValueOf/stringvalueof002/TestDescription.java \
-  vmTestbase/nsk/jdi/ClassLoaderReference/definedClasses/definedclasses001/TestDescription.java \
-  vmTestbase/nsk/jdi/ClassLoaderReference/definedClasses/definedclasses002/TestDescription.java \
-  vmTestbase/nsk/jdi/ClassLoaderReference/definedClasses/definedclasses003/TestDescription.java \
-  vmTestbase/nsk/jdi/ClassLoaderReference/definedClasses/definedclasses004/TestDescription.java \
-  vmTestbase/nsk/jdi/ClassLoaderReference/definedClasses/definedclasses005/TestDescription.java \
-  vmTestbase/nsk/jdi/ClassLoaderReference/visibleClasses/visibleclasses002/TestDescription.java \
-  vmTestbase/nsk/jdi/Connector/defaultArguments/defaultArguments001/TestDescription.java \
-  vmTestbase/nsk/jdi/Connector/defaultArguments/defaultArguments002/TestDescription.java \
-  vmTestbase/nsk/jdi/Connector/defaultArguments/defaultArguments003/TestDescription.java \
-  vmTestbase/nsk/jdi/Connector/description/description001/TestDescription.java \
-  vmTestbase/nsk/jdi/Connector/name/name001/TestDescription.java \
-  vmTestbase/nsk/jdi/Connector/transport/transport001/TestDescription.java \
-  vmTestbase/nsk/jdi/FloatValue/compareTo/compareto001/TestDescription.java \
-  vmTestbase/nsk/jdi/IntegerArgument/intValue/intvalue001/TestDescription.java \
-  vmTestbase/nsk/jdi/IntegerArgument/intValue/intvalue002/TestDescription.java \
-  vmTestbase/nsk/jdi/IntegerArgument/isValid/isvalid001/TestDescription.java \
-  vmTestbase/nsk/jdi/IntegerArgument/isValid/isvalid002/TestDescription.java \
-  vmTestbase/nsk/jdi/IntegerArgument/isValid/isvalid003/TestDescription.java \
-  vmTestbase/nsk/jdi/IntegerArgument/max/max001/TestDescription.java \
-  vmTestbase/nsk/jdi/IntegerArgument/min/min001/TestDescription.java \
-  vmTestbase/nsk/jdi/IntegerArgument/setValue/setvalue001/TestDescription.java \
-  vmTestbase/nsk/jdi/IntegerArgument/stringValueOf/stringvalueof001/TestDescription.java \
-  vmTestbase/nsk/jdi/IntegerValue/compareTo/compareto001/TestDescription.java \
-  vmTestbase/nsk/jdi/LaunchingConnector/launch/launch001/TestDescription.java \
-  vmTestbase/nsk/jdi/LaunchingConnector/launch/launch002/TestDescription.java \
-  vmTestbase/nsk/jdi/LaunchingConnector/launch/launch004/TestDescription.java \
-  vmTestbase/nsk/jdi/ListeningConnector/accept/accept001/TestDescription.java \
-  vmTestbase/nsk/jdi/ListeningConnector/accept/accept002/TestDescription.java \
-  vmTestbase/nsk/jdi/ListeningConnector/stopListening/stoplis001/TestDescription.java \
-  vmTestbase/nsk/jdi/ListeningConnector/supportsMultipleConnections/supportsmultipleconnections001/TestDescription.java \
-  vmTestbase/nsk/jdi/ListeningConnector/listennosuspend/listennosuspend001/TestDescription.java \
-  vmTestbase/nsk/jdi/LongValue/compareTo/compareto001/TestDescription.java \
-  vmTestbase/nsk/jdi/ObjectReference/entryCount/entrycount002/TestDescription.java \
-  vmTestbase/nsk/jdi/ObjectReference/owningThread/owningthread002/TestDescription.java \
-  vmTestbase/nsk/jdi/ObjectReference/waitingThreads/waitingthreads002/TestDescription.java \
-  vmTestbase/nsk/jdi/ObjectReference/waitingThreads/waitingthreads003/TestDescription.java \
-  vmTestbase/nsk/jdi/ObjectReference/waitingThreads/waitingthreads004/TestDescription.java \
-  vmTestbase/nsk/jdi/ReferenceType/isVerified/isverified003/TestDescription.java \
-  vmTestbase/nsk/jdi/SelectedArgument/choices/choices001/TestDescription.java \
-  vmTestbase/nsk/jdi/SelectedArgument/isValid/isvalid001/TestDescription.java \
-  vmTestbase/nsk/jdi/SelectedArgument/isValid/isvalid002/TestDescription.java \
-  vmTestbase/nsk/jdi/ShortType/_itself_/shorttype001/TestDescription.java \
-  vmTestbase/nsk/jdi/ShortValue/compareTo/compareto001/TestDescription.java \
-  vmTestbase/nsk/jdi/StackFrame/thisObject/thisobject002/TestDescription.java \
-  vmTestbase/nsk/jdi/StackFrame/thread/thread001/TestDescription.java \
-  vmTestbase/nsk/jdi/StackFrame/visibleVariableByName/visiblevarbyname001/TestDescription.java \
-  vmTestbase/nsk/jdi/StackFrame/visibleVariableByName/visiblevarbyname002/TestDescription.java \
-  vmTestbase/nsk/jdi/StackFrame/visibleVariables/visiblevariables001/TestDescription.java \
-  vmTestbase/nsk/jdi/StackFrame/visibleVariables/visiblevariables002/TestDescription.java \
-  vmTestbase/nsk/jdi/StepEvent/_itself_/stepevent001/TestDescription.java \
-  vmTestbase/nsk/jdi/StepEvent/_itself_/stepevent002/TestDescription.java \
-  vmTestbase/nsk/jdi/StepRequest/addClassExclusionFilter/filter001/TestDescription.java \
-  vmTestbase/nsk/jdi/StepRequest/addClassExclusionFilter/filter002/TestDescription.java \
-  vmTestbase/nsk/jdi/StepRequest/addClassFilter_s/filter_s001/TestDescription.java \
-  vmTestbase/nsk/jdi/StepRequest/addClassFilter_s/filter_s002/TestDescription.java \
-  vmTestbase/nsk/jdi/StepRequest/addClassFilter_rt/filter_rt001/TestDescription.java \
-  vmTestbase/nsk/jdi/StepRequest/addClassFilter_rt/filter_rt002/TestDescription.java \
-  vmTestbase/nsk/jdi/StepRequest/depth/depth001/TestDescription.java \
-  vmTestbase/nsk/jdi/StepRequest/depth/depth002/TestDescription.java \
-  vmTestbase/nsk/jdi/StepRequest/depth/depth003/TestDescription.java \
-  vmTestbase/nsk/jdi/StepRequest/size/size001/TestDescription.java \
-  vmTestbase/nsk/jdi/StepRequest/size/size002/TestDescription.java \
-  vmTestbase/nsk/jdi/StepRequest/thread/thread001/TestDescription.java \
-  vmTestbase/nsk/jdi/StringArgument/isValid/isvalid001/TestDescription.java \
-  vmTestbase/nsk/jdi/StringArgument/isValid/isvalid002/TestDescription.java \
-  vmTestbase/nsk/jdi/StringArgument/isValid/isvalid003/TestDescription.java \
-  vmTestbase/nsk/jdi/StringReference/value/value001/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadDeathEvent/thread/thread001/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadDeathRequest/addThreadFilter/addthreadfilter001/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadDeathRequest/addThreadFilter/addthreadfilter002/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadDeathRequest/addThreadFilter/addthreadfilter003/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadDeathRequest/addThreadFilter/addthreadfilter004/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadDeathRequest/addThreadFilter/addthreadfilter005/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadGroupReference/name/name001/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadGroupReference/parent/parent001/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadGroupReference/resume/resume001/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadGroupReference/suspend/suspend001/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadGroupReference/threadGroups/threadgroups001/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadGroupReference/threads/threads001/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadReference/frame/frame001/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadReference/frameCount/framecount001/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadReference/frames/frames001/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadReference/frames_ii/frames_ii002/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadReference/isAtBreakpoint/isatbreakpoint001/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadReference/isSuspended/issuspended001/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadReference/isSuspended/issuspended003/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadReference/isSuspended/issuspended004/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadReference/name/name001/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadReference/ownedMonitors/ownedmonitors001/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadReference/suspendCount/suspendcount001/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadReference/threadGroup/threadgroup001/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadReference/currentContendedMonitor/currentcm001/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadReference/interrupt/interrupt001/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadReference/resume/resume001/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadReference/status/status003/status003.java \
-  vmTestbase/nsk/jdi/ThreadReference/status/status004/status004.java \
-  vmTestbase/nsk/jdi/ThreadReference/status/status005/status005.java \
-  vmTestbase/nsk/jdi/ThreadReference/status/status006/status006.java \
-  vmTestbase/nsk/jdi/ThreadReference/status/status007/status007.java \
-  vmTestbase/nsk/jdi/ThreadReference/status/status008/status008.java \
-  vmTestbase/nsk/jdi/ThreadReference/stop/stop001/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadStartRequest/addThreadFilter/addthreadfilter001/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadStartRequest/addThreadFilter/addthreadfilter002/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadStartRequest/addThreadFilter/addthreadfilter003/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadStartRequest/addThreadFilter/addthreadfilter004/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadStartRequest/addThreadFilter/addthreadfilter005/TestDescription.java \
-  vmTestbase/nsk/jdi/Transport/name/name001/TestDescription.java \
-  vmTestbase/nsk/jdi/Type/name/name001/TestDescription.java \
-  vmTestbase/nsk/jdi/Type/name/name002/TestDescription.java \
-  vmTestbase/nsk/jdi/Type/name/name003/TestDescription.java \
-  vmTestbase/nsk/jdi/Type/signature/signature001/TestDescription.java \
-  vmTestbase/nsk/jdi/Type/signature/signature002/TestDescription.java \
-  vmTestbase/nsk/jdi/Type/signature/signature003/TestDescription.java \
-  vmTestbase/nsk/jdi/TypeComponent/declaringType/decltype001/TestDescription.java \
-  vmTestbase/nsk/jdi/TypeComponent/declaringType/decltype002/TestDescription.java \
-  vmTestbase/nsk/jdi/TypeComponent/declaringType/decltype003/TestDescription.java \
-  vmTestbase/nsk/jdi/TypeComponent/declaringType/decltype007/TestDescription.java \
-  vmTestbase/nsk/jdi/TypeComponent/declaringType/decltype008/TestDescription.java \
-  vmTestbase/nsk/jdi/TypeComponent/isFinal/isfinal001/TestDescription.java \
-  vmTestbase/nsk/jdi/TypeComponent/isFinal/isfinal003/TestDescription.java \
-  vmTestbase/nsk/jdi/TypeComponent/isStatic/isstatic001/TestDescription.java \
-  vmTestbase/nsk/jdi/TypeComponent/isStatic/isstatic003/TestDescription.java \
-  vmTestbase/nsk/jdi/TypeComponent/isSynthetic/issynthetic001/TestDescription.java \
-  vmTestbase/nsk/jdi/TypeComponent/isSynthetic/issynthetic002/TestDescription.java \
-  vmTestbase/nsk/jdi/TypeComponent/name/name001/TestDescription.java \
-  vmTestbase/nsk/jdi/TypeComponent/name/name003/TestDescription.java \
-  vmTestbase/nsk/jdi/TypeComponent/signature/sign001/TestDescription.java \
-  vmTestbase/nsk/jdi/TypeComponent/signature/sign003/TestDescription.java \
-  vmTestbase/nsk/jdi/Value/type/type001/TestDescription.java \
-  vmTestbase/nsk/jdi/Value/type/type002/type002.java \
-  vmTestbase/nsk/jdi/Value/type/type003/TestDescription.java \
-  vmTestbase/nsk/jdi/Value/_itself_/value001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/allClasses/allclasses001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/allClasses/allclasses002/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/allThreads/allthreads001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/canGetBytecodes/cangetbytecodes001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/canGetCurrentContendedMonitor/cangccm001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/canGetMonitorInfo/cangetmonitorinfo001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/canGetOwnedMonitorInfo/cangetinfo001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/canGetSyntheticAttribute/cangetattr001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/canWatchFieldAccess/canwatchaccess001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/canWatchFieldModification/canwatchmod001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/classesByName/classesbyname001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/description/description001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/eventQueue/eventqueue001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/eventRequestManager/eventrmanager001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/exit/exit001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/exit/exit002/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/mirrorOf_bool/mirrorof_bool001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/mirrorOf_byte/mirrorof_byte001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/mirrorOf_char/mirrorof_char001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/mirrorOf_double/mirrorof_double001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/mirrorOf_float/mirrorof_float001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/mirrorOf_int/mirrorof_int001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/mirrorOf_long/mirrorof_long001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/mirrorOf_short/mirrorof_short001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/mirrorOf_string/mirrorof_string001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/name/name001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/process/process001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/topLevelThreadGroups/toplevelgroups001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/version/version001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachineManager/allConnectors/allconnectors001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachineManager/attachingConnectors/attaching001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachineManager/connectedVirtualMachines/convm001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachineManager/connectedVirtualMachines/convm002/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachineManager/connectedVirtualMachines/convm003/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachineManager/defaultConnector/default001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachineManager/launchingConnectors/launching001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachineManager/listeningConnectors/listening001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachineManager/majorInterfaceVersion/major001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachineManager/minorInterfaceVersion/minor001/TestDescription.java \
-  vmTestbase/nsk/jdi/VoidType/_itself_/voidtype001/TestDescription.java \
-  vmTestbase/nsk/jdi/VoidValue/equals/equals001/equals001.java \
-  vmTestbase/nsk/jdi/VoidValue/hashCode/hashcode001/hashcode001.java \
-  vmTestbase/nsk/jdi/VMDeathEvent/_itself_/vmdeath001/TestDescription.java \
-  vmTestbase/nsk/jdi/VMDeathEvent/_itself_/vmdeath002/TestDescription.java \
-  vmTestbase/nsk/jdi/VMDeathEvent/_itself_/vmdeath003/TestDescription.java \
-  vmTestbase/nsk/jdi/VMDisconnectEvent/_itself_/disconnect001/TestDescription.java \
-  vmTestbase/nsk/jdi/VMDisconnectEvent/_itself_/disconnect002/TestDescription.java \
-  vmTestbase/nsk/jdi/VMDisconnectEvent/_itself_/disconnect003/TestDescription.java \
-  vmTestbase/nsk/jdi/VMStartEvent/thread/thread001/TestDescription.java \
-  vmTestbase/nsk/jdi/WatchpointEvent/object/object001/TestDescription.java \
-  vmTestbase/nsk/jdi/WatchpointEvent/field/field001/TestDescription.java \
-  vmTestbase/nsk/jdi/WatchpointEvent/valueCurrent/valuecur001/TestDescription.java \
-  vmTestbase/nsk/jdi/WatchpointRequest/addClassExclusionFilter/filter001/TestDescription.java \
-  vmTestbase/nsk/jdi/WatchpointRequest/addClassExclusionFilter/filter002/TestDescription.java \
-  vmTestbase/nsk/jdi/WatchpointRequest/addClassExclusionFilter/filter003/TestDescription.java \
-  vmTestbase/nsk/jdi/WatchpointRequest/addClassExclusionFilter/filter004/TestDescription.java \
-  vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_s/filter_s001/TestDescription.java \
-  vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_s/filter_s002/TestDescription.java \
-  vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_s/filter_s003/TestDescription.java \
-  vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_s/filter_s004/TestDescription.java \
-  vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_rt/filter_rt001/TestDescription.java \
-  vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_rt/filter_rt002/TestDescription.java \
-  vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_rt/filter_rt003/TestDescription.java \
-  vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_rt/filter_rt004/TestDescription.java \
-  vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_rt/filter_rt005/TestDescription.java \
-  vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_rt/filter_rt006/TestDescription.java \
-  vmTestbase/nsk/jdi/WatchpointRequest/addThreadFilter/addthreadfilter001/TestDescription.java \
-  vmTestbase/nsk/jdi/WatchpointRequest/addThreadFilter/addthreadfilter002/TestDescription.java \
-  vmTestbase/nsk/jdi/WatchpointRequest/addThreadFilter/addthreadfilter003/TestDescription.java \
-  vmTestbase/nsk/jdi/WatchpointRequest/addThreadFilter/addthreadfilter004/TestDescription.java \
-  vmTestbase/nsk/jdi/WatchpointRequest/addThreadFilter/addthreadfilter005/TestDescription.java \
-  vmTestbase/nsk/jdi/WatchpointRequest/addThreadFilter/addthreadfilter006/TestDescription.java \
-  vmTestbase/nsk/jdi/WatchpointRequest/addThreadFilter/addthreadfilter007/TestDescription.java \
-  vmTestbase/nsk/jdi/WatchpointRequest/addThreadFilter/addthreadfilter008/TestDescription.java \
-  vmTestbase/nsk/jdi/WatchpointRequest/field/field001/TestDescription.java \
-  vmTestbase/nsk/jdi/WatchpointRequest/field/field002/TestDescription.java \
-  vmTestbase/nsk/jdi/AttachingConnector/attach/attach003/TestDescription.java \
-  vmTestbase/nsk/jdi/ClassObjectReference/toString/tostring001/TestDescription.java \
-  vmTestbase/nsk/jdi/ClassType/invokeMethod/invokemethod003/TestDescription.java \
-  vmTestbase/nsk/jdi/ClassType/invokeMethod/invokemethod010/TestDescription.java \
-  vmTestbase/nsk/jdi/ClassType/invokeMethod/invokemethod011/TestDescription.java \
-  vmTestbase/nsk/jdi/ClassType/invokeMethod/invokemethod012/TestDescription.java \
-  vmTestbase/nsk/jdi/ClassType/invokeMethod/invokemethod013/TestDescription.java \
-  vmTestbase/nsk/jdi/ClassType/invokeMethod/invokemethod014/TestDescription.java \
-  vmTestbase/nsk/jdi/ClassType/newInstance/newinstance009/TestDescription.java \
-  vmTestbase/nsk/jdi/ClassType/setValue/setvalue006/TestDescription.java \
-  vmTestbase/nsk/jdi/ClassType/setValue/setvalue007/TestDescription.java \
-  vmTestbase/nsk/jdi/Connector/_bounds_/bounds001/TestDescription.java \
-  vmTestbase/nsk/jdi/Connector/toString/tostring001/TestDescription.java \
-  vmTestbase/nsk/jdi/BScenarios/hotswap/tc01x001/TestDescription.java \
-  vmTestbase/nsk/jdi/BScenarios/hotswap/tc01x002/TestDescription.java \
-  vmTestbase/nsk/jdi/BScenarios/hotswap/tc02x001/TestDescription.java \
-  vmTestbase/nsk/jdi/BScenarios/hotswap/tc02x002/TestDescription.java \
-  vmTestbase/nsk/jdi/BScenarios/hotswap/tc03x001/TestDescription.java \
-  vmTestbase/nsk/jdi/BScenarios/hotswap/tc04x001/TestDescription.java \
-  vmTestbase/nsk/jdi/BScenarios/hotswap/tc04x002/TestDescription.java \
-  vmTestbase/nsk/jdi/BScenarios/hotswap/tc05x002/TestDescription.java \
-  vmTestbase/nsk/jdi/BScenarios/hotswap/tc06x001/TestDescription.java \
-  vmTestbase/nsk/jdi/BScenarios/hotswap/tc07x001/TestDescription.java \
-  vmTestbase/nsk/jdi/BScenarios/hotswap/tc08x001/TestDescription.java \
-  vmTestbase/nsk/jdi/BScenarios/hotswap/tc09x001/TestDescription.java \
-  vmTestbase/nsk/jdi/BScenarios/hotswap/tc09x002/TestDescription.java \
-  vmTestbase/nsk/jdi/BScenarios/hotswap/tc10x001/TestDescription.java \
-  vmTestbase/nsk/jdi/BScenarios/hotswap/tc10x002/TestDescription.java \
-  vmTestbase/nsk/jdi/BScenarios/multithrd/tc01x001/TestDescription.java \
-  vmTestbase/nsk/jdi/BScenarios/multithrd/tc02x001/TestDescription.java \
-  vmTestbase/nsk/jdi/BScenarios/multithrd/tc02x002/TestDescription.java \
-  vmTestbase/nsk/jdi/BScenarios/multithrd/tc02x003/TestDescription.java \
-  vmTestbase/nsk/jdi/BScenarios/multithrd/tc02x004/TestDescription.java \
-  vmTestbase/nsk/jdi/BScenarios/multithrd/tc03x001/TestDescription.java \
-  vmTestbase/nsk/jdi/BScenarios/multithrd/tc04x001/TestDescription.java \
-  vmTestbase/nsk/jdi/BScenarios/singlethrd/tc01x001/TestDescription.java \
-  vmTestbase/nsk/jdi/BScenarios/singlethrd/tc01x002/TestDescription.java \
-  vmTestbase/nsk/jdi/BScenarios/singlethrd/tc02x001/TestDescription.java \
-  vmTestbase/nsk/jdi/BScenarios/singlethrd/tc03x001/TestDescription.java \
-  vmTestbase/nsk/jdi/BScenarios/singlethrd/tc03x002/TestDescription.java \
-  vmTestbase/nsk/jdi/BScenarios/singlethrd/tc03x003/TestDescription.java \
-  vmTestbase/nsk/jdi/BScenarios/singlethrd/tc04x001/TestDescription.java \
-  vmTestbase/nsk/jdi/BScenarios/singlethrd/tc05x001/TestDescription.java \
-  vmTestbase/nsk/jdi/Event/equals/equals001/TestDescription.java \
-  vmTestbase/nsk/jdi/Event/hashCode/hashcode001/TestDescription.java \
-  vmTestbase/nsk/jdi/EventQueue/hashCode/hashcode001/TestDescription.java \
-  vmTestbase/nsk/jdi/EventRequest/disable/disable003/TestDescription.java \
-  vmTestbase/nsk/jdi/EventRequest/hashCode/hashcode001/TestDescription.java \
-  vmTestbase/nsk/jdi/EventRequestManager/deleteEventRequest/delevtreq003/TestDescription.java \
-  vmTestbase/nsk/jdi/EventRequestManager/hashCode/hashcode001/TestDescription.java \
-  vmTestbase/nsk/jdi/EventSet/resume/resume011/TestDescription.java \
-  vmTestbase/nsk/jdi/EventSet/toString/tostring001/TestDescription.java \
-  vmTestbase/nsk/jdi/EventSet/virtualMachine/virtualmachine001/TestDescription.java \
-  vmTestbase/nsk/jdi/LocalVariable/toString/tostring001/TestDescription.java \
-  vmTestbase/nsk/jdi/Method/_bounds_/bounds001/TestDescription.java \
-  vmTestbase/nsk/jdi/Method/isObsolete/isobsolete003/TestDescription.java \
-  vmTestbase/nsk/jdi/MethodEntryRequest/_bounds_/filters001/TestDescription.java \
-  vmTestbase/nsk/jdi/MethodExitRequest/_bounds_/filters001/TestDescription.java \
-  vmTestbase/nsk/jdi/Mirror/hashCode/hashcode001/TestDescription.java \
-  vmTestbase/nsk/jdi/ObjectReference/_bounds_/bounds001/TestDescription.java \
-  vmTestbase/nsk/jdi/ObjectReference/_bounds_/bounds002/TestDescription.java \
-  vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod002/TestDescription.java \
-  vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod003/TestDescription.java \
-  vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod004/TestDescription.java \
-  vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod005/TestDescription.java \
-  vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod007/TestDescription.java \
-  vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod008/TestDescription.java \
-  vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod009/TestDescription.java \
-  vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod010/TestDescription.java \
-  vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod011/TestDescription.java \
-  vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod012/TestDescription.java \
-  vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod013/TestDescription.java \
-  vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod014/TestDescription.java \
-  vmTestbase/nsk/jdi/ObjectReference/setValue/setvalue002/TestDescription.java \
-  vmTestbase/nsk/jdi/ObjectReference/setValue/setvalue003/TestDescription.java \
-  vmTestbase/nsk/jdi/ObjectReference/setValue/setvalue004/TestDescription.java \
-  vmTestbase/nsk/jdi/ObjectReference/setValue/setvalue005/TestDescription.java \
-  vmTestbase/nsk/jdi/ReferenceType/_bounds_/bounds001/TestDescription.java \
-  vmTestbase/nsk/jdi/ReferenceType/_bounds_/bounds002/TestDescription.java \
-  vmTestbase/nsk/jdi/ReferenceType/allFields/allfields005/TestDescription.java \
-  vmTestbase/nsk/jdi/ReferenceType/allLineLocations/alllinelocations002/TestDescription.java \
-  vmTestbase/nsk/jdi/ReferenceType/allLineLocations_ss/alllinelocations_ss002/TestDescription.java \
-  vmTestbase/nsk/jdi/ReferenceType/allMethods/allmethods005/TestDescription.java \
-  vmTestbase/nsk/jdi/ReferenceType/fields/fields005/TestDescription.java \
-  vmTestbase/nsk/jdi/ReferenceType/getValue/getvalue004/TestDescription.java \
-  vmTestbase/nsk/jdi/ReferenceType/getValue/getvalue005/TestDescription.java \
-  vmTestbase/nsk/jdi/ReferenceType/getValues/getvalues002/TestDescription.java \
-  vmTestbase/nsk/jdi/ReferenceType/getValues/getvalues003/TestDescription.java \
-  vmTestbase/nsk/jdi/ReferenceType/locationsOfLine_i/locationsofline_i002/TestDescription.java \
-  vmTestbase/nsk/jdi/ReferenceType/locationsOfLine_ssi/locationsofline_ssi002/TestDescription.java \
-  vmTestbase/nsk/jdi/ReferenceType/methods/methods005/TestDescription.java \
-  vmTestbase/nsk/jdi/ReferenceType/sourceName/sourcename004/TestDescription.java \
-  vmTestbase/nsk/jdi/ReferenceType/sourceNames/sourcenames002/TestDescription.java \
-  vmTestbase/nsk/jdi/ReferenceType/sourcePaths/sourcepaths002/TestDescription.java \
-  vmTestbase/nsk/jdi/ReferenceType/visibleFields/visibfield005/TestDescription.java \
-  vmTestbase/nsk/jdi/ReferenceType/visibleMethods/visibmethod006/TestDescription.java \
-  vmTestbase/nsk/jdi/Scenarios/invokeMethod/popframes001/TestDescription.java \
-  vmTestbase/nsk/jdi/Scenarios/invokeMethod/redefineclasses001/TestDescription.java \
-  vmTestbase/nsk/jdi/StackFrame/_bounds_/bounds002/TestDescription.java \
-  vmTestbase/nsk/jdi/StackFrame/getValue/getvalue003/TestDescription.java \
-  vmTestbase/nsk/jdi/StackFrame/getValues/getvalues003/TestDescription.java \
-  vmTestbase/nsk/jdi/StackFrame/hashCode/hashcode001/TestDescription.java \
-  vmTestbase/nsk/jdi/StackFrame/setValue/setvalue005/setvalue005.java \
-  vmTestbase/nsk/jdi/StackFrame/setValue/setvalue006/setvalue006.java \
-  vmTestbase/nsk/jdi/StackFrame/toString/tostring001/TestDescription.java \
-  vmTestbase/nsk/jdi/StepRequest/_bounds_/filters001/TestDescription.java \
-  vmTestbase/nsk/jdi/StepRequest/addClassFilter_rt/filter_rt003/TestDescription.java \
-  vmTestbase/nsk/jdi/StepRequest/addInstanceFilter/instancefilter001/TestDescription.java \
-  vmTestbase/nsk/jdi/StepRequest/addInstanceFilter/instancefilter002/TestDescription.java \
-  vmTestbase/nsk/jdi/StepRequest/addInstanceFilter/instancefilter003/TestDescription.java \
-  vmTestbase/nsk/jdi/StepRequest/addInstanceFilter/instancefilter004/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadGroupReference/toString/tostring001/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadReference/frames_ii/frames_ii001/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadReference/ownedMonitors/ownedmonitors002/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadReference/popFrames/popframes001/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadReference/popFrames/popframes002/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadReference/popFrames/popframes003/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadReference/popFrames/popframes004/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadReference/popFrames/popframes005/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadReference/popFrames/popframes006/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadReference/popFrames/popframes007/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadReference/stop/stop002/TestDescription.java \
-  vmTestbase/nsk/jdi/Type/hashCode/hashcode001/TestDescription.java \
-  vmTestbase/nsk/jdi/TypeComponent/isPackagePrivate/ispackageprivate001/TestDescription.java \
-  vmTestbase/nsk/jdi/TypeComponent/isPrivate/isprivate001/TestDescription.java \
-  vmTestbase/nsk/jdi/TypeComponent/isProtected/isprotected001/TestDescription.java \
-  vmTestbase/nsk/jdi/TypeComponent/isPublic/ispublic001/TestDescription.java \
-  vmTestbase/nsk/jdi/WatchpointEvent/_itself_/wevent001/TestDescription.java \
-  vmTestbase/nsk/jdi/WatchpointRequest/_bounds_/filters001/TestDescription.java \
-  vmTestbase/nsk/jdi/WatchpointRequest/addInstanceFilter/instancefilter001/TestDescription.java \
-  vmTestbase/nsk/jdi/WatchpointRequest/addInstanceFilter/instancefilter002/TestDescription.java \
-  vmTestbase/nsk/jdi/WatchpointRequest/addInstanceFilter/instancefilter003/TestDescription.java \
-  vmTestbase/nsk/jdi/WatchpointRequest/addInstanceFilter/instancefilter004/TestDescription.java \
-  vmTestbase/nsk/jdi/WatchpointRequest/addInstanceFilter/instancefilter005/TestDescription.java \
-  vmTestbase/nsk/jdi/WatchpointRequest/addInstanceFilter/instancefilter006/TestDescription.java \
-  vmTestbase/nsk/jdi/WatchpointRequest/addInstanceFilter/instancefilter007/TestDescription.java \
-  vmTestbase/nsk/jdi/WatchpointRequest/addInstanceFilter/instancefilter008/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/canAddMethod/canaddmethod001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/canGetSourceDebugExtension/cangetsde001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/canPopFrames/canpopframes001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/canRedefineClasses/canredefineclasses001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/canRequestVMDeathEvent/canreqvmdev001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/canUnrestrictedlyRedefineClasses/curc001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/canUseInstanceFilters/canusefilters001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/getDefaultStratum/getdefaultstratum001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses002/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses003/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses004/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses005/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses006/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses007/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses008/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses009/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses010/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses011/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses012/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses013/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses014/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses015/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses016/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses020/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses022/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses024/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses026/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses027/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses028/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses029/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses030/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses032/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses034/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses035/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/setDefaultStratum/setdefaultstratum001/TestDescription.java \
-  vmTestbase/nsk/jdi/VoidType/toString/tostring001/TestDescription.java \
-  vmTestbase/nsk/jdi/VoidValue/equals/equals002/TestDescription.java \
-  vmTestbase/nsk/jdi/VoidValue/toString/tostring001/TestDescription.java \
-  vmTestbase/nsk/jdi/ConstantField/values001/TestDescription.java \
-  vmTestbase/nsk/jdi/Accessible/isPackagePrivate/accipp002/TestDescription.java \
-  vmTestbase/nsk/jdi/Accessible/isPrivate/isprivate002/TestDescription.java \
-  vmTestbase/nsk/jdi/Accessible/isProtected/isprotected002/TestDescription.java \
-  vmTestbase/nsk/jdi/Accessible/isPublic/ispublic002/TestDescription.java \
-  vmTestbase/nsk/jdi/Accessible/isPublic/ispublic003/TestDescription.java \
-  vmTestbase/nsk/jdi/Accessible/modifiers/modifiers002/TestDescription.java \
-  vmTestbase/nsk/jdi/ClassType/allInterfaces/allinterfaces002/TestDescription.java \
-  vmTestbase/nsk/jdi/ClassType/interfaces/interfaces002/TestDescription.java \
-  vmTestbase/nsk/jdi/ClassType/invokeMethod/invokemethod015/TestDescription.java \
-  vmTestbase/nsk/jdi/ClassType/isEnum/isenum001/TestDescription.java \
-  vmTestbase/nsk/jdi/ClassType/setValue/setvalue008/TestDescription.java \
-  vmTestbase/nsk/jdi/ClassType/subclasses/subclasses002/TestDescription.java \
-  vmTestbase/nsk/jdi/ClassType/superclass/superclass002/TestDescription.java \
-  vmTestbase/nsk/jdi/Field/isEnumConstant/isenumconstant001/TestDescription.java \
-  vmTestbase/nsk/jdi/Field/type/type004/TestDescription.java \
-  vmTestbase/nsk/jdi/Field/typeName/typename002/TestDescription.java \
-  vmTestbase/nsk/jdi/LocalVariable/genericSignature/gensignature001/TestDescription.java \
-  vmTestbase/nsk/jdi/Method/arguments/arguments003/TestDescription.java \
-  vmTestbase/nsk/jdi/Method/argumentTypeNames/argumenttypenames003/TestDescription.java \
-  vmTestbase/nsk/jdi/Method/isBridge/isbridge001/TestDescription.java \
-  vmTestbase/nsk/jdi/Method/isVarArgs/isvarargs001/TestDescription.java \
-  vmTestbase/nsk/jdi/PlugConnectors/AttachConnector/plugAttachConnect001/plugAttachConnect001.java \
-  vmTestbase/nsk/jdi/PlugConnectors/AttachConnector/plugAttachConnect002/plugAttachConnect002.java \
-  vmTestbase/nsk/jdi/PlugConnectors/AttachConnector/plugAttachConnect003/plugAttachConnect003.java \
-  vmTestbase/nsk/jdi/PlugConnectors/LaunchConnector/plugLaunchConnect001/plugLaunchConnect001.java \
-  vmTestbase/nsk/jdi/PlugConnectors/LaunchConnector/plugLaunchConnect002/plugLaunchConnect002.java \
-  vmTestbase/nsk/jdi/PlugConnectors/LaunchConnector/plugLaunchConnect003/plugLaunchConnect003.java \
-  vmTestbase/nsk/jdi/PlugConnectors/ListenConnector/plugListenConnect001/plugListenConnect001.java \
-  vmTestbase/nsk/jdi/PlugConnectors/ListenConnector/plugListenConnect002/plugListenConnect002.java \
-  vmTestbase/nsk/jdi/PlugConnectors/ListenConnector/plugListenConnect003/plugListenConnect003.java \
-  vmTestbase/nsk/jdi/PlugConnectors/MultiConnectors/plugMultiConnect001/plugMultiConnect001.java \
-  vmTestbase/nsk/jdi/PlugConnectors/MultiConnectors/plugMultiConnect002/plugMultiConnect002.java \
-  vmTestbase/nsk/jdi/PlugConnectors/MultiConnectors/plugMultiConnect003/plugMultiConnect003.java \
-  vmTestbase/nsk/jdi/PlugConnectors/MultiConnectors/plugMultiConnect004/plugMultiConnect004.java \
-  vmTestbase/nsk/jdi/PlugConnectors/MultiConnectors/plugMultiConnect005/plugMultiConnect005.java \
-  vmTestbase/nsk/jdi/PlugConnectors/MultiConnectors/plugMultiConnect006/plugMultiConnect006.java \
-  vmTestbase/nsk/jdi/PlugConnectors/TransportService/transportService001/transportService001.java \
-  vmTestbase/nsk/jdi/PlugConnectors/TransportService/transportService002/transportService002.java \
-  vmTestbase/nsk/jdi/PlugConnectors/TransportService/transportService003/transportService003.java \
-  vmTestbase/nsk/jdi/ReferenceType/allFields/allfields006/TestDescription.java \
-  vmTestbase/nsk/jdi/ReferenceType/allMethods/allmethods006/TestDescription.java \
-  vmTestbase/nsk/jdi/ReferenceType/classObject/classobj003/TestDescription.java \
-  vmTestbase/nsk/jdi/ReferenceType/fields/fields006/TestDescription.java \
-  vmTestbase/nsk/jdi/ReferenceType/genericSignature/genericSignature001/TestDescription.java \
-  vmTestbase/nsk/jdi/ReferenceType/genericSignature/genericSignature002/TestDescription.java \
-  vmTestbase/nsk/jdi/ReferenceType/isAbstract/isabstract003/TestDescription.java \
-  vmTestbase/nsk/jdi/ReferenceType/isFinal/isfinal002/TestDescription.java \
-  vmTestbase/nsk/jdi/ReferenceType/isInitialized/isinit003/TestDescription.java \
-  vmTestbase/nsk/jdi/ReferenceType/methods/methods006/TestDescription.java \
-  vmTestbase/nsk/jdi/ReferenceType/visibleFields/visibfield006/TestDescription.java \
-  vmTestbase/nsk/jdi/ReferenceType/visibleMethods/visibmethod007/TestDescription.java \
-  vmTestbase/nsk/jdi/TypeComponent/declaringType/decltype009/TestDescription.java \
-  vmTestbase/nsk/jdi/TypeComponent/genericSignature/genericSignature001/TestDescription.java \
-  vmTestbase/nsk/jdi/TypeComponent/genericSignature/genericSignature002/TestDescription.java \
-  vmTestbase/nsk/jdi/TypeComponent/isFinal/isfinal004/TestDescription.java \
-  vmTestbase/nsk/jdi/TypeComponent/isStatic/isstatic004/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/canBeModified/canbemodified001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachineManager/createVirtualMachine/createVM001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachineManager/createVirtualMachine/createVM002/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachineManager/createVirtualMachine/createVM003/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachineManager/createVirtualMachine/createVM004/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachineManager/createVirtualMachine/createVM005/TestDescription.java \
-  vmTestbase/nsk/jdi/VMCannotBeModifiedEx/_itself_/canntbemod001/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/instanceCounts/instancecounts001/instancecounts001.java \
-  vmTestbase/nsk/jdi/VirtualMachine/instanceCounts/instancecounts002/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/instanceCounts/instancecounts003/instancecounts003.java \
-  vmTestbase/nsk/jdi/VirtualMachine/instanceCounts/instancecounts004/instancecounts004.java \
-  vmTestbase/nsk/jdi/ReferenceType/instances/instances001/instances001.java \
-  vmTestbase/nsk/jdi/ReferenceType/instances/instances002/instances002.java \
-  vmTestbase/nsk/jdi/ReferenceType/instances/instances005/instances005.java \
-  vmTestbase/nsk/jdi/ObjectReference/referringObjects/referringObjects001/referringObjects001.java \
-  vmTestbase/nsk/jdi/ObjectReference/referringObjects/referringObjects002/referringObjects002.java \
-  vmTestbase/nsk/jdi/ObjectReference/referringObjects/referringObjects003/referringObjects003.java \
-  vmTestbase/nsk/jdi/ObjectReference/referringObjects/referringObjects004/referringObjects004.java \
-  vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn002/forceEarlyReturn002.java \
-  vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn003/forceEarlyReturn003.java \
-  vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn004/forceEarlyReturn004.java \
-  vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn005/forceEarlyReturn005.java \
-  vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn006/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn007/TestDescription.java \
-  vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn008/forceEarlyReturn008.java \
-  vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn009/forceEarlyReturn009.java \
-  vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn013/forceEarlyReturn013.java \
-  vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn014/forceEarlyReturn014.java \
-  vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn015/forceEarlyReturn015.java \
-  vmTestbase/nsk/jdi/ThreadReference/ownedMonitorsAndFrames/ownedMonitorsAndFrames001/ownedMonitorsAndFrames001.java \
-  vmTestbase/nsk/jdi/ThreadReference/ownedMonitorsAndFrames/ownedMonitorsAndFrames002/ownedMonitorsAndFrames002.java \
-  vmTestbase/nsk/jdi/ThreadReference/ownedMonitorsAndFrames/ownedMonitorsAndFrames003/ownedMonitorsAndFrames003.java \
-  vmTestbase/nsk/jdi/ThreadReference/ownedMonitorsAndFrames/ownedMonitorsAndFrames004/ownedMonitorsAndFrames004.java \
-  vmTestbase/nsk/jdi/ThreadReference/ownedMonitorsAndFrames/ownedMonitorsAndFrames005/ownedMonitorsAndFrames005.java \
-  vmTestbase/nsk/jdi/ThreadReference/ownedMonitorsAndFrames/ownedMonitorsAndFrames008/TestDescription.java \
-  vmTestbase/nsk/jdi/MonitorContendedEnteredRequest/addClassExclusionFilter/TestDescription.java \
-  vmTestbase/nsk/jdi/MonitorContendedEnteredRequest/addClassFilter_ClassName/TestDescription.java \
-  vmTestbase/nsk/jdi/MonitorContendedEnteredRequest/addClassFilter_ReferenceType/TestDescription.java \
-  vmTestbase/nsk/jdi/MonitorContendedEnteredRequest/addInstanceFilter/TestDescription.java \
-  vmTestbase/nsk/jdi/MonitorContendedEnteredRequest/addThreadFilter/TestDescription.java \
-  vmTestbase/nsk/jdi/MonitorContendedEnterRequest/addClassExclusionFilter/TestDescription.java \
-  vmTestbase/nsk/jdi/MonitorContendedEnterRequest/addClassFilter_ClassName/TestDescription.java \
-  vmTestbase/nsk/jdi/MonitorContendedEnterRequest/addClassFilter_ReferenceType/TestDescription.java \
-  vmTestbase/nsk/jdi/MonitorContendedEnterRequest/addInstanceFilter/TestDescription.java \
-  vmTestbase/nsk/jdi/MonitorContendedEnterRequest/addThreadFilter/TestDescription.java \
-  vmTestbase/nsk/jdi/MonitorWaitRequest/addClassExclusionFilter/TestDescription.java \
-  vmTestbase/nsk/jdi/MonitorWaitRequest/addClassFilter_ClassName/TestDescription.java \
-  vmTestbase/nsk/jdi/MonitorWaitRequest/addClassFilter_ReferenceType/TestDescription.java \
-  vmTestbase/nsk/jdi/MonitorWaitRequest/addInstanceFilter/TestDescription.java \
-  vmTestbase/nsk/jdi/MonitorWaitRequest/addThreadFilter/TestDescription.java \
-  vmTestbase/nsk/jdi/MonitorWaitedRequest/addClassExclusionFilter/TestDescription.java \
-  vmTestbase/nsk/jdi/MonitorWaitedRequest/addClassFilter_ClassName/TestDescription.java \
-  vmTestbase/nsk/jdi/MonitorWaitedRequest/addClassFilter_ReferenceType/TestDescription.java \
-  vmTestbase/nsk/jdi/MonitorWaitedRequest/addInstanceFilter/TestDescription.java \
-  vmTestbase/nsk/jdi/MonitorWaitedRequest/addThreadFilter/TestDescription.java \
-  vmTestbase/nsk/jdi/stress/ClassPrepareEvents/ClassPrepareEvents001/ClassPrepareEvents001.java \
-  vmTestbase/nsk/jdi/ClassPrepareRequest/addSourceNameFilter/addSourceNameFilter001/addSourceNameFilter001.java \
-  vmTestbase/nsk/jdi/ClassPrepareRequest/addSourceNameFilter/addSourceNameFilter002/addSourceNameFilter002.java \
-  vmTestbase/nsk/jdi/VMOutOfMemoryException/VMOutOfMemoryException001/VMOutOfMemoryException001.java \
-  vmTestbase/nsk/jdi/stress/serial/forceEarlyReturn001/TestDescription.java \
-  vmTestbase/nsk/jdi/stress/serial/heapwalking001/TestDescription.java \
-  vmTestbase/nsk/jdi/stress/serial/monitorEvents001/TestDescription.java \
-  vmTestbase/nsk/jdi/stress/serial/ownedMonitorsAndFrames001/TestDescription.java \
-  vmTestbase/nsk/jdi/stress/serial/mixed001/TestDescription.java \
-  vmTestbase/nsk/jdi/stress/serial/forceEarlyReturn002/TestDescription.java \
-  vmTestbase/nsk/jdi/stress/serial/monitorEvents002/TestDescription.java \
-  vmTestbase/nsk/jdi/stress/serial/ownedMonitorsAndFrames002/TestDescription.java \
-  vmTestbase/nsk/jdi/VirtualMachine/setDefaultStratum/setDefaultStratum002/setDefaultStratum002.java \
-  vmTestbase/nsk/jdi/ReferenceType/allLineLocations_ss/allLineLocations_ss003/allLineLocations_ss003.java \
-  vmTestbase/nsk/jdi/ReferenceType/allLineLocations_ss/allLineLocations_ss004/allLineLocations_ss004.java \
-  vmTestbase/nsk/jdi/Method/allLineLocations_ss/allLineLocations_ss002/allLineLocations_ss002.java \
-  vmTestbase/nsk/jdi/Method/allLineLocations_ss/allLineLocations_ss003/allLineLocations_ss003.java \
-  vmTestbase/nsk/jdi/ReferenceType/locationsOfLine_ssi/locationsOfLine_ssi003/locationsOfLine_ssi003.java \
-  vmTestbase/nsk/jdi/ReferenceType/locationsOfLine_ssi/locationsOfLine_ssi004/locationsOfLine_ssi004.java \
-  vmTestbase/nsk/jdi/Method/locationsOfLine_ssi/locationsOfLine_ssi002/locationsOfLine_ssi002.java \
-  vmTestbase/nsk/jdi/Method/locationsOfLine_ssi/locationsOfLine_ssi003/locationsOfLine_ssi003.java \
-  vmTestbase/nsk/jdi/ReferenceType/sourceNames/sourceNames003/sourceNames003.java \
-  vmTestbase/nsk/jdi/ReferenceType/sourcePaths/sourcePaths003/sourcePaths003.java \
-  vmTestbase/nsk/jdi/ReferenceType/availableStrata/availableStrata002/availableStrata002.java \
-  vmTestbase/nsk/jdi/ReferenceType/defaultStratum/defaultStratum002/defaultStratum002.java \
-  vmTestbase/nsk/jdi/Location/lineNumber_s/lineNumber_s002/lineNumber_s002.java \
-  vmTestbase/nsk/jdi/Location/sourceName_s/sourceName_s002/sourceName_s002.java \
-  vmTestbase/nsk/jdi/Location/sourcePath_s/sourcePath_s002/sourcePath_s002.java \
-  vmTestbase/nsk/jdi/AttachingConnector/attach/attach005/TestDescription.java \
-  vmTestbase/nsk/jdi/AttachingConnector/attachnosuspend/attachnosuspend002/TestDescription.java \
-  vmTestbase/nsk/jdi/AttachingConnector/attachnosuspend/attachnosuspend003/TestDescription.java \
-  vmTestbase/nsk/jdi/MethodExitEvent/returnValue/returnValue001/returnValue001.java \
-  vmTestbase/nsk/jdi/MethodExitEvent/returnValue/returnValue002/returnValue002.java \
-  vmTestbase/nsk/jdi/MethodExitEvent/returnValue/returnValue003/returnValue003.java \
-  vmTestbase/nsk/jdi/MethodExitEvent/returnValue/returnValue004/returnValue004.java \
-  vmTestbase/nsk/jdi/StackFrame/getArgumentValues/getArgumentValues001/getArgumentValues001.java \
-  vmTestbase/nsk/jdi/StackFrame/getArgumentValues/getArgumentValues002/getArgumentValues002.java \
-  vmTestbase/nsk/jdi/StackFrame/getArgumentValues/getArgumentValues003/getArgumentValues003.java
-
 vmTestbase_vm_metaspace = \
   vmTestbase/metaspace
 
@@ -1176,702 +349,10 @@
 vmTestbase_nsk_jvmti = \
   vmTestbase/nsk/jvmti
 
-vmTestbase_nsk_jvmti_quick = \
-  vmTestbase/nsk/jvmti/AddCapabilities/addcaps001/TestDescription.java \
-  vmTestbase/nsk/jvmti/AddCapabilities/addcaps002/TestDescription.java \
-  vmTestbase/nsk/jvmti/AddCapabilities/addcaps003/TestDescription.java \
-  vmTestbase/nsk/jvmti/AddToBootstrapClassLoaderSearch/bootclssearch001/TestDescription.java \
-  vmTestbase/nsk/jvmti/AddToBootstrapClassLoaderSearch/bootclssearch002/TestDescription.java \
-  vmTestbase/nsk/jvmti/AddToBootstrapClassLoaderSearch/bootclssearch003/TestDescription.java \
-  vmTestbase/nsk/jvmti/AddToBootstrapClassLoaderSearch/bootclssearch004/TestDescription.java \
-  vmTestbase/nsk/jvmti/AddToBootstrapClassLoaderSearch/bootclssearch007/TestDescription.java \
-  vmTestbase/nsk/jvmti/AddToBootstrapClassLoaderSearch/bootclssearch008/TestDescription.java \
-  vmTestbase/nsk/jvmti/AddToBootstrapClassLoaderSearch/bootclssearch009/TestDescription.java \
-  vmTestbase/nsk/jvmti/AddToBootstrapClassLoaderSearch/bootclssearch010/TestDescription.java \
-  vmTestbase/nsk/jvmti/AddToSystemClassLoaderSearch/systemclssearch001/TestDescription.java \
-  vmTestbase/nsk/jvmti/AddToSystemClassLoaderSearch/systemclssearch002/TestDescription.java \
-  vmTestbase/nsk/jvmti/AddToSystemClassLoaderSearch/systemclssearch003/TestDescription.java \
-  vmTestbase/nsk/jvmti/AddToSystemClassLoaderSearch/systemclssearch004/TestDescription.java \
-  vmTestbase/nsk/jvmti/AddToSystemClassLoaderSearch/systemclssearch005/TestDescription.java \
-  vmTestbase/nsk/jvmti/AddToSystemClassLoaderSearch/systemclssearch006/TestDescription.java \
-  vmTestbase/nsk/jvmti/Agent_OnLoad/agentonload001/TestDescription.java \
-  vmTestbase/nsk/jvmti/Agent_OnLoad/agentonload002/TestDescription.java \
-  vmTestbase/nsk/jvmti/Agent_OnLoad/agentonload003/TestDriver.java \
-  vmTestbase/nsk/jvmti/Agent_OnUnload/agentonunload001/TestDriver.java \
-  vmTestbase/nsk/jvmti/Breakpoint/breakpoint001/TestDescription.java \
-  vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk001/TestDescription.java \
-  vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk002/TestDescription.java \
-  vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk003/TestDescription.java \
-  vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk004/TestDescription.java \
-  vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk005/TestDescription.java \
-  vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk006/TestDescription.java \
-  vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk007/TestDescription.java \
-  vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk008/TestDescription.java \
-  vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk009/TestDescription.java \
-  vmTestbase/nsk/jvmti/ClassLoad/classload001/TestDescription.java \
-  vmTestbase/nsk/jvmti/ClassPrepare/classprep001/TestDescription.java \
-  vmTestbase/nsk/jvmti/ClearBreakpoint/clrbrk001/TestDescription.java \
-  vmTestbase/nsk/jvmti/ClearBreakpoint/clrbrk002/TestDescription.java \
-  vmTestbase/nsk/jvmti/ClearBreakpoint/clrbrk005/TestDescription.java \
-  vmTestbase/nsk/jvmti/ClearFieldAccessWatch/clrfldw001/TestDescription.java \
-  vmTestbase/nsk/jvmti/ClearFieldAccessWatch/clrfldw002/TestDescription.java \
-  vmTestbase/nsk/jvmti/ClearFieldModificationWatch/clrfmodw001/TestDescription.java \
-  vmTestbase/nsk/jvmti/ClearFieldModificationWatch/clrfmodw002/TestDescription.java \
-  vmTestbase/nsk/jvmti/CompiledMethodLoad/compmethload001/TestDescription.java \
-  vmTestbase/nsk/jvmti/CreateRawMonitor/crrawmon001/TestDescription.java \
-  vmTestbase/nsk/jvmti/CreateRawMonitor/crrawmon002/TestDescription.java \
-  vmTestbase/nsk/jvmti/DisposeEnvironment/disposeenv001/TestDescription.java \
-  vmTestbase/nsk/jvmti/DisposeEnvironment/disposeenv002/TestDescription.java \
-  vmTestbase/nsk/jvmti/Deallocate/dealloc001/TestDescription.java \
-  vmTestbase/nsk/jvmti/DestroyRawMonitor/drrawmon001/TestDescription.java \
-  vmTestbase/nsk/jvmti/DestroyRawMonitor/drrawmon003/TestDescription.java \
-  vmTestbase/nsk/jvmti/DestroyRawMonitor/drrawmon004/TestDescription.java \
-  vmTestbase/nsk/jvmti/DynamicCodeGenerated/dyncodgen001/TestDescription.java \
-  vmTestbase/nsk/jvmti/Exception/exception001/TestDescription.java \
-  vmTestbase/nsk/jvmti/ExceptionCatch/excatch001/TestDescription.java \
-  vmTestbase/nsk/jvmti/FieldAccess/fieldacc001/TestDescription.java \
-  vmTestbase/nsk/jvmti/FieldAccess/fieldacc002/TestDescription.java \
-  vmTestbase/nsk/jvmti/FieldAccess/fieldacc003/TestDescription.java \
-  vmTestbase/nsk/jvmti/FieldAccess/fieldacc004/TestDescription.java \
-  vmTestbase/nsk/jvmti/FieldModification/fieldmod001/TestDescription.java \
-  vmTestbase/nsk/jvmti/FieldModification/fieldmod002/TestDescription.java \
-  vmTestbase/nsk/jvmti/ForceGarbageCollection/forcegc001/TestDescription.java \
-  vmTestbase/nsk/jvmti/ForceGarbageCollection/forcegc002/TestDescription.java \
-  vmTestbase/nsk/jvmti/FramePop/framepop001/TestDescription.java \
-  vmTestbase/nsk/jvmti/FramePop/framepop002/TestDescription.java \
-  vmTestbase/nsk/jvmti/GenerateEvents/genevents001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetAllThreads/allthr001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetAllThreads/allthr002/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetAvailableProcessors/getavailproc001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetArgumentsSize/argsize001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetArgumentsSize/argsize002/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetBytecodes/bytecodes001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetBytecodes/bytecodes002/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetBytecodes/bytecodes003/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetCapabilities/getcaps001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetCapabilities/getcaps002/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetClassFields/getclfld005/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetClassFields/getclfld006/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetClassFields/getclfld007/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetClassLoader/getclsldr001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetClassLoader/getclsldr002/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetClassLoader/getclsldr003/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetClassLoaderClasses/clsldrclss001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetClassLoaderClasses/clsldrclss002/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetClassMethods/getclmthd005/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetClassMethods/getclmthd006/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetClassMethods/getclmthd007/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetClassModifiers/getclmdf004/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetClassModifiers/getclmdf005/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetClassModifiers/getclmdf006/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetClassModifiers/getclmdf007/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetClassSignature/getclsig004/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetClassSignature/getclsig005/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetClassSignature/getclsig006/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetClassStatus/getclstat005/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetClassStatus/getclstat006/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetClassStatus/getclstat007/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetCurrentContendedMonitor/contmon001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetCurrentContendedMonitor/contmon002/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetCurrentContendedMonitor/contmon003/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetCurrentThreadCpuTime/curthrcputime001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetCurrentThreadCpuTimerInfo/curthrtimerinfo001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetEnvironmentLocalStorage/getenvstor001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetErrorName/geterrname001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetErrorName/geterrname002/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetExtensionEvents/extevents001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetExtensionFunctions/extfuncs001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetFieldDeclaringClass/getfldecl001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetFieldDeclaringClass/getfldecl002/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetFieldDeclaringClass/getfldecl004/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetFieldModifiers/getfldmdf003/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetFieldModifiers/getfldmdf004/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetFieldName/getfldnm003/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetFieldName/getfldnm004/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetFieldName/getfldnm005/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetFrameCount/framecnt001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetFrameCount/framecnt002/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetFrameCount/framecnt003/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetFrameLocation/frameloc002/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetFrameLocation/frameloc003/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetImplementedInterfaces/getintrf005/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetImplementedInterfaces/getintrf006/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetImplementedInterfaces/getintrf007/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetJLocationFormat/getjlocfmt001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetJLocationFormat/getjlocfmt002/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetJNIFunctionTable/getjniftab001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetJNIFunctionTable/getjniftab002/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetLineNumberTable/linetab001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetLineNumberTable/linetab002/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetLineNumberTable/linetab003/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetLoadedClasses/loadedclss001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetLoadedClasses/loadedclss002/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetLocalVariable/getlocal001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetLocalVariable/getlocal002/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetLocalVariableTable/localtab001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetLocalVariableTable/localtab002/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetLocalVariableTable/localtab003/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetLocalVariableTable/localtab004/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetLocalVariableTable/localtab005/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetMaxLocals/maxloc001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetMaxLocals/maxloc002/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetMethodDeclaringClass/declcls001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetMethodDeclaringClass/declcls002/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetMethodDeclaringClass/declcls003/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetObjectHashCode/objhashcode001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetMethodLocation/methloc001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetMethodLocation/methloc002/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetMethodModifiers/methmod001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetMethodModifiers/methmod002/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetMethodName/methname001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetMethodName/methname002/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetMethodName/methname003/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage002/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage003/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage004/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage005/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetObjectSize/objsize001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetObjectsWithTags/objwithtags001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetOwnedMonitorInfo/ownmoninf001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetOwnedMonitorInfo/ownmoninf002/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetOwnedMonitorInfo/ownmoninf003/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetPhase/getphase001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetPhase/getphase002/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetPotentialCapabilities/getpotcaps001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetSourceDebugExtension/srcdebugex001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetSourceDebugExtension/srcdebugex002/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetSourceDebugExtension/srcdebugex003/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetSourceFileName/getsrcfn004/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetSourceFileName/getsrcfn005/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetSourceFileName/getsrcfn006/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetSystemProperties/getsysprops001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetSystemProperties/getsysprops002/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetSystemProperty/getsysprop001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetSystemProperty/getsysprop002/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetStackTrace/getstacktr001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetStackTrace/getstacktr002/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetStackTrace/getstacktr003/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetStackTrace/getstacktr004/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetStackTrace/getstacktr005/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetStackTrace/getstacktr006/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetStackTrace/getstacktr007/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetStackTrace/getstacktr008/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetStackTrace/getstacktr009/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetTag/gettag001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetThreadCpuTime/thrcputime001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetThreadCpuTime/thrcputime002/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetThreadCpuTimerInfo/thrtimerinfo001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetThreadGroupChildren/getthrdgrpchld001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetThreadGroupInfo/thrgrpinfo001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetThreadGroupInfo/thrgrpinfo002/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetThreadInfo/thrinfo001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetThreadInfo/thrinfo002/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetThreadLocalStorage/getthrdstor001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetThreadState/thrstat001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetThreadState/thrstat002/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetThreadState/thrstat003/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetThreadState/thrstat004/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetThreadState/thrstat005/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetTime/gettime001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetTimerInfo/timerinfo001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetTopThreadGroups/topthrgrp001/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetTopThreadGroups/topthrgrp002/TestDescription.java \
-  vmTestbase/nsk/jvmti/GetVersionNumber/getvern001/TestDescription.java \
-  vmTestbase/nsk/jvmti/InterruptThread/intrpthrd001/TestDescription.java \
-  vmTestbase/nsk/jvmti/InterruptThread/intrpthrd002/TestDescription.java \
-  vmTestbase/nsk/jvmti/InterruptThread/intrpthrd003/TestDescription.java \
-  vmTestbase/nsk/jvmti/IsArrayClass/isarray004/TestDescription.java \
-  vmTestbase/nsk/jvmti/IsArrayClass/isarray005/TestDescription.java \
-  vmTestbase/nsk/jvmti/IsFieldSynthetic/isfldsin002/TestDescription.java \
-  vmTestbase/nsk/jvmti/IsFieldSynthetic/isfldsin003/TestDescription.java \
-  vmTestbase/nsk/jvmti/IsInterface/isintrf004/TestDescription.java \
-  vmTestbase/nsk/jvmti/IsInterface/isintrf005/TestDescription.java \
-  vmTestbase/nsk/jvmti/IsMethodNative/isnative001/TestDescription.java \
-  vmTestbase/nsk/jvmti/IsMethodNative/isnative002/TestDescription.java \
-  vmTestbase/nsk/jvmti/IsMethodObsolete/isobsolete001/TestDescription.java \
-  vmTestbase/nsk/jvmti/IsMethodSynthetic/issynth001/TestDescription.java \
-  vmTestbase/nsk/jvmti/IsMethodSynthetic/issynth002/TestDescription.java \
-  vmTestbase/nsk/jvmti/IterateOverHeap/iterheap001/TestDescription.java \
-  vmTestbase/nsk/jvmti/IterateOverHeap/iterheap002/TestDescription.java \
-  vmTestbase/nsk/jvmti/IterateOverHeap/iterheap003/TestDescription.java \
-  vmTestbase/nsk/jvmti/IterateOverHeap/iterheap004/TestDescription.java \
-  vmTestbase/nsk/jvmti/IterateOverHeap/iterheap005/TestDescription.java \
-  vmTestbase/nsk/jvmti/IterateOverHeap/iterheap006/TestDescription.java \
-  vmTestbase/nsk/jvmti/IterateOverHeap/iterheap007/TestDescription.java \
-  vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls001/TestDescription.java \
-  vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls002/TestDescription.java \
-  vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls003/TestDescription.java \
-  vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls004/TestDescription.java \
-  vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls005/TestDescription.java \
-  vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls006/TestDescription.java \
-  vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls007/TestDescription.java \
-  vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj001/TestDescription.java \
-  vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj002/TestDescription.java \
-  vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj003/TestDescription.java \
-  vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj004/TestDescription.java \
-  vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj005/TestDescription.java \
-  vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj001/TestDescription.java \
-  vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj002/TestDescription.java \
-  vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj003/TestDescription.java \
-  vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj004/TestDescription.java \
-  vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj005/TestDescription.java \
-  vmTestbase/nsk/jvmti/IterateThroughHeap/callbacks/Callbacks.java \
-  vmTestbase/nsk/jvmti/IterateThroughHeap/concrete-klass-filter/TestDescription.java \
-  vmTestbase/nsk/jvmti/IterateThroughHeap/non-concrete-klass-filter/TestDescription.java \
-  vmTestbase/nsk/jvmti/IterateThroughHeap/filter-tagged/TestDescription.java \
-  vmTestbase/nsk/jvmti/IterateThroughHeap/filter-untagged/TestDescription.java \
-  vmTestbase/nsk/jvmti/IterateThroughHeap/filter-class-tagged/TestDescription.java \
-  vmTestbase/nsk/jvmti/IterateThroughHeap/filter-class-untagged/TestDescription.java \
-  vmTestbase/nsk/jvmti/IterateThroughHeap/abort/Abort.java \
-  vmTestbase/nsk/jvmti/MethodEntry/mentry001/TestDescription.java \
-  vmTestbase/nsk/jvmti/MethodEntry/mentry002/TestDescription.java \
-  vmTestbase/nsk/jvmti/MethodExit/mexit002/TestDescription.java \
-  vmTestbase/nsk/jvmti/MonitorContendedEnter/mcontenter001/TestDescription.java \
-  vmTestbase/nsk/jvmti/MonitorContendedEntered/mcontentered001/TestDescription.java \
-  vmTestbase/nsk/jvmti/MonitorWait/monitorwait001/TestDescription.java \
-  vmTestbase/nsk/jvmti/MonitorWaited/monitorwaited001/TestDescription.java \
-  vmTestbase/nsk/jvmti/NativeMethodBind/nativemethbind001/TestDescription.java \
-  vmTestbase/nsk/jvmti/NativeMethodBind/nativemethbind002/TestDescription.java \
-  vmTestbase/nsk/jvmti/NativeMethodBind/nativemethbind003/TestDescription.java \
-  vmTestbase/nsk/jvmti/NativeMethodBind/nativemethbind004/TestDescription.java \
-  vmTestbase/nsk/jvmti/NotifyFramePop/nframepop001/TestDescription.java \
-  vmTestbase/nsk/jvmti/NotifyFramePop/nframepop002/TestDescription.java \
-  vmTestbase/nsk/jvmti/NotifyFramePop/nframepop003/TestDescription.java \
-  vmTestbase/nsk/jvmti/ObjectFree/objfree002/TestDescription.java \
-  vmTestbase/nsk/jvmti/PopFrame/popframe001/TestDescription.java \
-  vmTestbase/nsk/jvmti/PopFrame/popframe002/TestDescription.java \
-  vmTestbase/nsk/jvmti/PopFrame/popframe003/TestDescription.java \
-  vmTestbase/nsk/jvmti/PopFrame/popframe004/TestDescription.java \
-  vmTestbase/nsk/jvmti/PopFrame/popframe005/TestDescription.java \
-  vmTestbase/nsk/jvmti/PopFrame/popframe006/TestDescription.java \
-  vmTestbase/nsk/jvmti/PopFrame/popframe007/TestDescription.java \
-  vmTestbase/nsk/jvmti/PopFrame/popframe008/TestDescription.java \
-  vmTestbase/nsk/jvmti/PopFrame/popframe009/TestDescription.java \
-  vmTestbase/nsk/jvmti/PopFrame/popframe010/TestDescription.java \
-  vmTestbase/nsk/jvmti/RawMonitorEnter/rawmonenter001/TestDescription.java \
-  vmTestbase/nsk/jvmti/RawMonitorEnter/rawmonenter002/TestDescription.java \
-  vmTestbase/nsk/jvmti/RawMonitorEnter/rawmonenter003/TestDescription.java \
-  vmTestbase/nsk/jvmti/RawMonitorEnter/rawmonenter004/TestDescription.java \
-  vmTestbase/nsk/jvmti/RawMonitorExit/rawmonexit001/TestDescription.java \
-  vmTestbase/nsk/jvmti/RawMonitorExit/rawmonexit002/TestDescription.java \
-  vmTestbase/nsk/jvmti/RawMonitorExit/rawmonexit003/TestDescription.java \
-  vmTestbase/nsk/jvmti/RawMonitorExit/rawmonexit005/TestDescription.java \
-  vmTestbase/nsk/jvmti/RawMonitorNotify/rawmnntfy001/TestDescription.java \
-  vmTestbase/nsk/jvmti/RawMonitorNotify/rawmnntfy002/TestDescription.java \
-  vmTestbase/nsk/jvmti/RawMonitorNotify/rawmnntfy003/TestDescription.java \
-  vmTestbase/nsk/jvmti/RawMonitorNotify/rawmnntfy004/TestDescription.java \
-  vmTestbase/nsk/jvmti/RawMonitorNotifyAll/rawmnntfyall001/TestDescription.java \
-  vmTestbase/nsk/jvmti/RawMonitorNotifyAll/rawmnntfyall002/TestDescription.java \
-  vmTestbase/nsk/jvmti/RawMonitorNotifyAll/rawmnntfyall003/TestDescription.java \
-  vmTestbase/nsk/jvmti/RawMonitorNotifyAll/rawmnntfyall004/TestDescription.java \
-  vmTestbase/nsk/jvmti/RawMonitorWait/rawmnwait001/TestDescription.java \
-  vmTestbase/nsk/jvmti/RawMonitorWait/rawmnwait002/TestDescription.java \
-  vmTestbase/nsk/jvmti/RawMonitorWait/rawmnwait003/TestDescription.java \
-  vmTestbase/nsk/jvmti/RawMonitorWait/rawmnwait004/TestDescription.java \
-  vmTestbase/nsk/jvmti/RawMonitorWait/rawmnwait005/TestDescription.java \
-  vmTestbase/nsk/jvmti/RedefineClasses/StressRedefine/TestDescription.java \
-  vmTestbase/nsk/jvmti/RedefineClasses/StressRedefineWithoutBytecodeCorruption/TestDescription.java \
-  vmTestbase/nsk/jvmti/RedefineClasses/redefclass001/TestDescription.java \
-  vmTestbase/nsk/jvmti/RedefineClasses/redefclass002/TestDescription.java \
-  vmTestbase/nsk/jvmti/RedefineClasses/redefclass003/TestDescription.java \
-  vmTestbase/nsk/jvmti/RedefineClasses/redefclass004/TestDescription.java \
-  vmTestbase/nsk/jvmti/RedefineClasses/redefclass005/TestDescription.java \
-  vmTestbase/nsk/jvmti/RedefineClasses/redefclass006/TestDescription.java \
-  vmTestbase/nsk/jvmti/RedefineClasses/redefclass008/TestDescription.java \
-  vmTestbase/nsk/jvmti/RedefineClasses/redefclass009/TestDescription.java \
-  vmTestbase/nsk/jvmti/RedefineClasses/redefclass010/TestDescription.java \
-  vmTestbase/nsk/jvmti/RedefineClasses/redefclass011/TestDescription.java \
-  vmTestbase/nsk/jvmti/RedefineClasses/redefclass012/TestDescription.java \
-  vmTestbase/nsk/jvmti/RedefineClasses/redefclass013/TestDescription.java \
-  vmTestbase/nsk/jvmti/RedefineClasses/redefclass014/TestDescription.java \
-  vmTestbase/nsk/jvmti/RedefineClasses/redefclass015/TestDescription.java \
-  vmTestbase/nsk/jvmti/RedefineClasses/redefclass016/TestDescription.java \
-  vmTestbase/nsk/jvmti/RedefineClasses/redefclass017/TestDescription.java \
-  vmTestbase/nsk/jvmti/RedefineClasses/redefclass018/TestDescription.java \
-  vmTestbase/nsk/jvmti/RedefineClasses/redefclass019/TestDescription.java \
-  vmTestbase/nsk/jvmti/RedefineClasses/redefclass020/TestDescription.java \
-  vmTestbase/nsk/jvmti/RedefineClasses/redefclass021/TestDescription.java \
-  vmTestbase/nsk/jvmti/RedefineClasses/redefclass022/TestDescription.java \
-  vmTestbase/nsk/jvmti/RedefineClasses/redefclass023/TestDescription.java \
-  vmTestbase/nsk/jvmti/RedefineClasses/redefclass024/TestDescription.java \
-  vmTestbase/nsk/jvmti/RedefineClasses/redefclass025/TestDescription.java \
-  vmTestbase/nsk/jvmti/RedefineClasses/redefclass026/TestDescription.java \
-  vmTestbase/nsk/jvmti/RedefineClasses/redefclass027/TestDescription.java \
-  vmTestbase/nsk/jvmti/RedefineClasses/redefclass028/TestDescription.java \
-  vmTestbase/nsk/jvmti/RedefineClasses/redefclass029/TestDescription.java \
-  vmTestbase/nsk/jvmti/RedefineClasses/redefclass030/TestDescription.java \
-  vmTestbase/nsk/jvmti/RedefineClasses/redefclass031/TestDescription.java \
-  vmTestbase/nsk/jvmti/RelinquishCapabilities/relcaps001/TestDescription.java \
-  vmTestbase/nsk/jvmti/RelinquishCapabilities/relcaps002/TestDescription.java \
-  vmTestbase/nsk/jvmti/ResumeThread/resumethrd001/TestDescription.java \
-  vmTestbase/nsk/jvmti/ResumeThread/resumethrd002/TestDescription.java \
-  vmTestbase/nsk/jvmti/ResumeThreadList/resumethrdlst001/TestDescription.java \
-  vmTestbase/nsk/jvmti/ResumeThreadList/resumethrdlst002/TestDescription.java \
-  vmTestbase/nsk/jvmti/RunAgentThread/agentthr001/TestDescription.java \
-  vmTestbase/nsk/jvmti/RunAgentThread/agentthr002/TestDescription.java \
-  vmTestbase/nsk/jvmti/RunAgentThread/agentthr003/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetBreakpoint/setbrk002/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetBreakpoint/setbrk003/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetBreakpoint/setbrk005/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetBreakpoint/setbrk007/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetBreakpoint/setbrk008/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetEnvironmentLocalStorage/setenvstor001/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetEnvironmentLocalStorage/setenvstor002/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetEnvironmentLocalStorage/setenvstor003/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetEventCallbacks/setevntcallb001/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetEventCallbacks/setevntcallb002/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetEventCallbacks/setevntcallb003/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetEventNotificationMode/setnotif001/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetExtensionEventCallback/setextevent001/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw001/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw002/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw003/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw004/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw005/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw006/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetFieldModificationWatch/setfmodw002/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetFieldModificationWatch/setfmodw003/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetFieldModificationWatch/setfmodw004/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetFieldModificationWatch/setfmodw005/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetFieldModificationWatch/setfmodw006/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetJNIFunctionTable/setjniftab001/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetJNIFunctionTable/setjniftab002/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetLocalVariable/setlocal001/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetLocalVariable/setlocal002/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetLocalVariable/setlocal003/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetLocalVariable/setlocal004/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetSystemProperty/setsysprop002/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetSystemProperty/setsysprop003/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetTag/settag001/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetThreadLocalStorage/setthrdstor001/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetThreadLocalStorage/setthrdstor002/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetThreadLocalStorage/setthrdstor003/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetVerboseFlag/setvrbflag001/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetVerboseFlag/setvrbflag002/TestDescription.java \
-  vmTestbase/nsk/jvmti/SingleStep/singlestep001/TestDescription.java \
-  vmTestbase/nsk/jvmti/SingleStep/singlestep003/TestDescription.java \
-  vmTestbase/nsk/jvmti/SuspendThread/suspendthrd001/TestDescription.java \
-  vmTestbase/nsk/jvmti/SuspendThreadList/suspendthrdlst001/TestDescription.java \
-  vmTestbase/nsk/jvmti/StopThread/stopthrd006/TestDescription.java \
-  vmTestbase/nsk/jvmti/StopThread/stopthrd007/TestDescription.java \
-  vmTestbase/nsk/jvmti/ThreadEnd/threadend001/TestDescription.java \
-  vmTestbase/nsk/jvmti/ThreadEnd/threadend002/TestDescription.java \
-  vmTestbase/nsk/jvmti/ThreadStart/threadstart001/TestDescription.java \
-  vmTestbase/nsk/jvmti/ThreadStart/threadstart002/TestDescription.java \
-  vmTestbase/nsk/jvmti/ThreadStart/threadstart003/TestDescription.java \
-  vmTestbase/nsk/jvmti/VMDeath/vmdeath001/TestDescription.java \
-  vmTestbase/nsk/jvmti/VMInit/vminit001/TestDescription.java \
-  vmTestbase/nsk/jvmti/VMObjectAlloc/vmobjalloc001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/allocation/AP01/ap01t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/allocation/AP02/ap02t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/allocation/AP03/ap03t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/allocation/AP05/ap05t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/allocation/AP05/ap05t002/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/allocation/AP06/ap06t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/allocation/AP07/ap07t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/allocation/AP07/ap07t002/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/allocation/AP09/ap09t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/allocation/AP10/ap10t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/allocation/AP11/ap11t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/bcinstr/BI01/bi01t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/bcinstr/BI01/bi01t002/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/bcinstr/BI02/bi02t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/bcinstr/BI02/bi02t002/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/bcinstr/BI03/bi03t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/bcinstr/BI03/bi03t002/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/bcinstr/BI04/bi04t002/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t002/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t003/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t004/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t005/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t006/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t008/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t009/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t010/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t011/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t012/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t013/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t014/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t015/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t016/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t017/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t018/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t019/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t020/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t021/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/capability/CM02/cm02t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/contention/TC01/tc01t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/contention/TC02/tc02t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/contention/TC03/tc03t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/contention/TC03/tc03t002/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/contention/TC04/tc04t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/events/EM01/em01t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/events/EM01/em01t002/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t004/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t008/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t009/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t010/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t011/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/events/EM04/em04t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/events/EM05/em05t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/events/EM06/em06t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/events/EM07/em07t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/general_functions/GF01/gf01t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/general_functions/GF04/gf04t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/general_functions/GF06/gf06t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/general_functions/GF08/gf08t001/TestDriver.java \
-  vmTestbase/nsk/jvmti/scenarios/general_functions/GF08/gf08t002/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/general_functions/GF08/gf08t003/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS101/hs101t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS101/hs101t002/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS101/hs101t003/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS101/hs101t004/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS101/hs101t005/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS101/hs101t006/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS101/hs101t007/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS101/hs101t008/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS102/hs102t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS102/hs102t002/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS103/hs103t002/hs103t002.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS104/hs104t001/hs104t001.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS104/hs104t002/hs104t002.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS201/hs201t002/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS201/hs201t003/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS202/hs202t001/hs202t001.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS202/hs202t002/hs202t002.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS203/hs203t001/hs203t001.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS203/hs203t002/hs203t002.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS203/hs203t003/hs203t003.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS204/hs204t002/hs204t002.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS204/hs204t003/hs204t003.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS204/hs204t004/hs204t004.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t001/hs301t001.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t002/hs301t002.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t003/hs301t003.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t004/hs301t004.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t005/hs301t005.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t001/hs302t001.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t002/hs302t002.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t003/hs302t003.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t004/hs302t004.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t005/hs302t005.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t006/hs302t006.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t007/hs302t007.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t008/hs302t008.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t009/hs302t009.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t010/hs302t010.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t011/hs302t011.java \
-  vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t012/hs302t012.java \
-  vmTestbase/nsk/jvmti/scenarios/jni_interception/JI01/ji01t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/jni_interception/JI03/ji03t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/jni_interception/JI03/ji03t002/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/jni_interception/JI03/ji03t003/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/jni_interception/JI05/ji05t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/jni_interception/JI06/ji06t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/multienv/MA01/ma01t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/multienv/MA02/ma02t001/TestDriver.java \
-  vmTestbase/nsk/jvmti/scenarios/multienv/MA03/ma03t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/multienv/MA04/ma04t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/multienv/MA04/ma04t002/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/multienv/MA04/ma04t003/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/multienv/MA05/ma05t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/multienv/MA06/ma06t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/multienv/MA07/ma07t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/multienv/MA08/ma08t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t002/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t003/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t004/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t005/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t006/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t007/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t008/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/sampling/SP01/sp01t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/sampling/SP02/sp02t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/sampling/SP02/sp02t002/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/sampling/SP02/sp02t003/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/sampling/SP03/sp03t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/sampling/SP03/sp03t002/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/sampling/SP04/sp04t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/sampling/SP04/sp04t002/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/sampling/SP05/sp05t002/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/sampling/SP05/sp05t003/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/sampling/SP06/sp06t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/sampling/SP06/sp06t002/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/sampling/SP06/sp06t003/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/sampling/SP07/sp07t001/TestDescription.java \
-  vmTestbase/nsk/jvmti/scenarios/sampling/SP07/sp07t002/TestDescription.java \
-  vmTestbase/nsk/jvmti/AttachOnDemand/attach002a/TestDescription.java \
-  vmTestbase/nsk/jvmti/AttachOnDemand/attach024/TestDescription.java \
-  vmTestbase/nsk/jvmti/RetransformClasses/retransform002/TestDescription.java \
-  vmTestbase/nsk/jvmti/RetransformClasses/retransform003/TestDriver.java \
-  vmTestbase/nsk/jvmti/RetransformClasses/retransform004/TestDescription.java \
-  vmTestbase/nsk/jvmti/ForceEarlyReturn/ForceEarlyReturn001/TestDescription.java \
-  vmTestbase/nsk/jvmti/ForceEarlyReturn/ForceEarlyReturn002/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetNativeMethodPrefix/SetNativeMethodPrefix001/TestDescription.java \
-  vmTestbase/nsk/jvmti/SetNativeMethodPrefix/SetNativeMethodPrefix002/TestDriver.java \
-  vmTestbase/nsk/jvmti/GetEnv/GetEnv001/GetEnv001.java \
-  vmTestbase/nsk/jvmti/unit/MethodBind/JvmtiTest/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/OnUnload/JvmtiTest/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/StackTrace/JvmtiTest/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/agentthr/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/clsldrclss00x/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/events/redefineCFLH/JvmtiTest/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/extmech/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/functions/AddToBootstrapClassLoaderSearch/JvmtiTest/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/functions/Dispose/JvmtiTest/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/functions/environment/JvmtiTest/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/functions/nosuspendMonitorInfo/JvmtiTest/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/functions/nosuspendStackTrace/JvmtiTest/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/functions/rawmonitor/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/heap/BasicIterationTests/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/heap/BasicTagTests/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/heap/GetWithTests/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/heap/HeapWalkTests/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/heap/ObjectFreeTests/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/heap/ObjectSizeTests/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/heapref/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/refignore/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/setNullVMInit/JvmtiTest/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/GetLineNumberTable/linetab004/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/GetLocalVariable/getlocal003/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/GetLocalVariable/getlocal004/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/IsSynthetic/issynth001/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/FollowReferences/followref001/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/FollowReferences/followref002/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/FollowReferences/followref003/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/FollowReferences/followref004/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/FollowReferences/followref005/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/FollowReferences/followref006/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretbase/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretfp/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretint/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretlong/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretobj/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretstr/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretvoid/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/GetAllStackTraces/getallstktr001/TestDescription.java \
-  vmTestbase/nsk/jvmti/unit/GetConstantPool/getcpool001/TestDescription.java
-
 # JDWP tests
 vmTestbase_nsk_jdwp = \
   vmTestbase/nsk/jdwp
 
-vmTestbase_nsk_jdwp_quick = \
-  vmTestbase/nsk/jdwp/ArrayReference/GetValues/getvalues001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ArrayReference/GetValues/getvalues002/TestDescription.java \
-  vmTestbase/nsk/jdwp/ArrayReference/Length/length001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ArrayReference/SetValues/setvalues001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ArrayType/NewInstance/newinstance001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ClassLoaderReference/VisibleClasses/visibclasses001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ClassObjectReference/ReflectedType/reflectype001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ClassType/InvokeMethod/invokemeth001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ClassType/NewInstance/newinst001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ClassType/SetValues/setvalues001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ClassType/Superclass/superclass001/TestDescription.java \
-  vmTestbase/nsk/jdwp/Event/BREAKPOINT/breakpoint001/TestDescription.java \
-  vmTestbase/nsk/jdwp/Event/EXCEPTION/exception001/TestDescription.java \
-  vmTestbase/nsk/jdwp/Event/FIELD_ACCESS/fldaccess001/TestDescription.java \
-  vmTestbase/nsk/jdwp/Event/FIELD_MODIFICATION/fldmodification001/TestDescription.java \
-  vmTestbase/nsk/jdwp/Event/CLASS_PREPARE/clsprepare001/TestDescription.java \
-  vmTestbase/nsk/jdwp/Event/CLASS_UNLOAD/clsunload001/TestDescription.java \
-  vmTestbase/nsk/jdwp/Event/METHOD_ENTRY/methentry001/TestDescription.java \
-  vmTestbase/nsk/jdwp/Event/METHOD_EXIT/methexit001/TestDescription.java \
-  vmTestbase/nsk/jdwp/Event/SINGLE_STEP/singlestep001/TestDescription.java \
-  vmTestbase/nsk/jdwp/Event/SINGLE_STEP/singlestep002/TestDescription.java \
-  vmTestbase/nsk/jdwp/Event/SINGLE_STEP/singlestep003/TestDescription.java \
-  vmTestbase/nsk/jdwp/Event/THREAD_DEATH/thrdeath001/TestDescription.java \
-  vmTestbase/nsk/jdwp/Event/THREAD_START/thrstart001/TestDescription.java \
-  vmTestbase/nsk/jdwp/Event/VM_DEATH/vmdeath001/TestDescription.java \
-  vmTestbase/nsk/jdwp/Event/VM_START/vmstart001/TestDescription.java \
-  vmTestbase/nsk/jdwp/Event/Composite/composite001/TestDescription.java \
-  vmTestbase/nsk/jdwp/EventRequest/Clear/clear001/TestDescription.java \
-  vmTestbase/nsk/jdwp/EventRequest/ClearAllBreakpoints/clrallbreakp001/TestDescription.java \
-  vmTestbase/nsk/jdwp/EventRequest/ClearAllBreakpoints/clrallbreakp002/TestDescription.java \
-  vmTestbase/nsk/jdwp/EventRequest/ClearAllBreakpoints/clrallbreakp003/TestDescription.java \
-  vmTestbase/nsk/jdwp/EventRequest/Set/set001/TestDescription.java \
-  vmTestbase/nsk/jdwp/EventRequest/Set/set002/TestDescription.java \
-  vmTestbase/nsk/jdwp/Method/LineTable/linetable001/TestDescription.java \
-  vmTestbase/nsk/jdwp/Method/VariableTable/vartable001/TestDescription.java \
-  vmTestbase/nsk/jdwp/Method/Bytecodes/bytecodes001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ObjectReference/DisableCollection/disablecol001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ObjectReference/EnableCollection/enablecol001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ObjectReference/GetValues/getvalues001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ObjectReference/InvokeMethod/invokemeth001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ObjectReference/IsCollected/iscollected001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ObjectReference/MonitorInfo/monitorinfo001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ObjectReference/ReferenceType/referencetype001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ObjectReference/SetValues/setvalues001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ReferenceType/ClassLoader/classloader001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ReferenceType/ClassObject/classobj001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ReferenceType/Fields/fields001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ReferenceType/GetValues/getvalues001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ReferenceType/Interfaces/interfaces001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ReferenceType/Methods/methods001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ReferenceType/Modifiers/modifiers001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ReferenceType/NestedTypes/nestedtypes001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ReferenceType/Signature/signature001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ReferenceType/SourceFile/srcfile001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ReferenceType/Status/status001/TestDescription.java \
-  vmTestbase/nsk/jdwp/StackFrame/GetValues/getvalues001/TestDescription.java \
-  vmTestbase/nsk/jdwp/StackFrame/SetValues/setvalues001/TestDescription.java \
-  vmTestbase/nsk/jdwp/StackFrame/ThisObject/thisobject001/TestDescription.java \
-  vmTestbase/nsk/jdwp/StringReference/Value/value001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ThreadGroupReference/Children/children001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ThreadGroupReference/Name/name001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ThreadGroupReference/Parent/parent001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ThreadReference/CurrentContendedMonitor/curcontmonitor001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ThreadReference/Frames/frames001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ThreadReference/FrameCount/framecnt001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ThreadReference/Interrupt/interrupt001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ThreadReference/Name/name001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ThreadReference/OwnedMonitors/ownmonitors001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ThreadReference/Resume/resume001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ThreadReference/Status/status001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ThreadReference/Stop/stop001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ThreadReference/Suspend/suspend001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ThreadReference/SuspendCount/suspendcnt001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ThreadReference/ThreadGroup/threadgroup001/TestDescription.java \
-  vmTestbase/nsk/jdwp/VirtualMachine/AllThreads/allthreads001/TestDescription.java \
-  vmTestbase/nsk/jdwp/VirtualMachine/Capabilities/capabilities001/TestDescription.java \
-  vmTestbase/nsk/jdwp/VirtualMachine/ClassPaths/classpaths001/TestDescription.java \
-  vmTestbase/nsk/jdwp/VirtualMachine/ClassesBySignature/classbysig001/TestDescription.java \
-  vmTestbase/nsk/jdwp/VirtualMachine/CreateString/createstr001/TestDescription.java \
-  vmTestbase/nsk/jdwp/VirtualMachine/Dispose/dispose001/TestDescription.java \
-  vmTestbase/nsk/jdwp/VirtualMachine/DisposeObjects/disposeobj001/TestDescription.java \
-  vmTestbase/nsk/jdwp/VirtualMachine/Exit/exit001/TestDescription.java \
-  vmTestbase/nsk/jdwp/VirtualMachine/HoldEvents/holdevents001/TestDescription.java \
-  vmTestbase/nsk/jdwp/VirtualMachine/IDSizes/idsizes001/TestDescription.java \
-  vmTestbase/nsk/jdwp/VirtualMachine/TopLevelThreadGroups/threadgroups001/TestDescription.java \
-  vmTestbase/nsk/jdwp/VirtualMachine/ReleaseEvents/releaseevents001/TestDescription.java \
-  vmTestbase/nsk/jdwp/VirtualMachine/ReleaseEvents/releaseevents002/TestDescription.java \
-  vmTestbase/nsk/jdwp/VirtualMachine/Resume/resume001/TestDescription.java \
-  vmTestbase/nsk/jdwp/VirtualMachine/Version/version001/TestDescription.java \
-  vmTestbase/nsk/jdwp/VirtualMachine/Version/version002/TestDescription.java \
-  vmTestbase/nsk/jdwp/Event/VM_DEATH/vmdeath002/TestDescription.java \
-  vmTestbase/nsk/jdwp/Method/IsObsolete/isobsolete001/TestDescription.java \
-  vmTestbase/nsk/jdwp/Method/IsObsolete/isobsolete002/TestDescription.java \
-  vmTestbase/nsk/jdwp/ReferenceType/SourceDebugExtension/srcdebugext001/TestDescription.java \
-  vmTestbase/nsk/jdwp/StackFrame/PopFrames/popframes001/TestDescription.java \
-  vmTestbase/nsk/jdwp/VirtualMachine/CapabilitiesNew/capabilitiesnew001/TestDescription.java \
-  vmTestbase/nsk/jdwp/VirtualMachine/RedefineClasses/redefinecls001/TestDescription.java \
-  vmTestbase/nsk/jdwp/VirtualMachine/SetDefaultStratum/setdefstrat001/TestDescription.java \
-  vmTestbase/nsk/jdwp/Method/VariableTableWithGeneric/vartblwithgen001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ReferenceType/FieldsWithGeneric/fldwithgeneric001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ReferenceType/MethodsWithGeneric/methwithgeneric001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ReferenceType/SignatureWithGeneric/sigwithgeneric001/TestDescription.java \
-  vmTestbase/nsk/jdwp/ReferenceType/Instances/instances001/instances001.java \
-  vmTestbase/nsk/jdwp/ReferenceType/Instances/instances002/instances002.java \
-  vmTestbase/nsk/jdwp/ObjectReference/ReferringObjects/referringObjects001/referringObjects001.java \
-  vmTestbase/nsk/jdwp/ObjectReference/ReferringObjects/referringObjects002/referringObjects002.java \
-  vmTestbase/nsk/jdwp/VirtualMachine/InstanceCounts/instanceCounts001/instanceCounts001.java \
-  vmTestbase/nsk/jdwp/ThreadReference/ForceEarlyReturn/forceEarlyReturn002/forceEarlyReturn002.java \
-  vmTestbase/nsk/jdwp/ThreadReference/OwnedMonitorsStackDepthInfo/ownedMonitorsStackDepthInfo001/ownedMonitorsStackDepthInfo001.java \
-  vmTestbase/nsk/jdwp/ThreadReference/OwnedMonitorsStackDepthInfo/ownedMonitorsStackDepthInfo002/ownedMonitorsStackDepthInfo002.java
-
 vmTestbase_nsk_stress = \
   vmTestbase/nsk/stress
 
@@ -1888,32 +369,6 @@
   :vmTestbase_vm_gc_misc \
   :vmTestbase_vm_gc_ref
 
-# vmTestbase_vm_gc w/ 'quick' k/w
-vmTestbase_vm_gc_quick = \
-  vmTestbase/vm/gc/compact/Compact_Arrays \
-  vmTestbase/vm/gc/compact/Compact_Strings_TwoFields \
-  vmTestbase/vm/gc/compact/Compact_InternedStrings_Strings \
-  vmTestbase/vm/gc/compact/Humongous_Arrays5M \
-  vmTestbase/vm/gc/compact/Humongous_NonbranchyTree \
-  vmTestbase/vm/gc/containers/LinkedBlockingDeque_Arrays/TestDescription.java \
-  vmTestbase/vm/gc/containers/LinkedHashMap_Arrays/TestDescription.java \
-  vmTestbase/vm/gc/containers/Combination05/TestDescription.java \
-  vmTestbase/gc/ArrayJuggle/Juggle01 \
-  vmTestbase/gc/ArrayJuggle/Juggle14 \
-  vmTestbase/gc/ArrayJuggle/Juggle22 \
-  vmTestbase/gc/ArrayJuggle/Juggle29 \
-  vmTestbase/gc/ArrayJuggle/Juggle34 \
-  vmTestbase/gc/gctests/LargeObjects/large001/large001.java \
-  vmTestbase/gc/gctests/LoadUnloadGC2/LoadUnloadGC2.java \
-  vmTestbase/gc/gctests/StringGC/StringGC.java \
-  vmTestbase/gc/gctests/StringInternGC/StringInternGC.java \
-  vmTestbase/gc/gctests/ReferencesGC/ReferencesGC.java \
-  vmTestbase/vm/gc/kind/parOld/TestDescription.java \
-  vmTestbase/gc/lock/jni/jnilock001/TestDescription.java \
-  vmTestbase/gc/lock/jniref/jnireflock04/TestDescription.java \
-  vmTestbase/gc/lock/jvmti/alloc/jvmtialloclock02/TestDescription.java \
-  vmTestbase/gc/lock/malloc/malloclock03/TestDescription.java
-
 # In a loop: fill out the heap until OOME and then partly clear it. Variate object type and size
 vmTestbase_vm_gc_compact = \
   vmTestbase/vm/gc/compact
@@ -1983,287 +438,6 @@
   vmTestbase/jit \
   vmTestbase/vm/jit
 
-vmTestbase_vm_compiler_quick = \
-  vmTestbase/vm/compiler/jbe/constprop/constprop01/constprop01.java \
-  vmTestbase/vm/compiler/jbe/constprop/constprop02/constprop02.java \
-  vmTestbase/vm/compiler/jbe/dead/dead01/dead01.java \
-  vmTestbase/vm/compiler/jbe/dead/dead02/dead02.java \
-  vmTestbase/vm/compiler/jbe/dead/dead03/dead03.java \
-  vmTestbase/vm/compiler/jbe/dead/dead04/dead04.java \
-  vmTestbase/vm/compiler/jbe/dead/dead05/dead05.java \
-  vmTestbase/vm/compiler/jbe/dead/dead06/dead06.java \
-  vmTestbase/vm/compiler/jbe/dead/dead07/dead07.java \
-  vmTestbase/vm/compiler/jbe/dead/dead08/dead08.java \
-  vmTestbase/vm/compiler/jbe/dead/dead09/dead09.java \
-  vmTestbase/vm/compiler/jbe/dead/dead10/dead10.java \
-  vmTestbase/vm/compiler/jbe/dead/dead11/dead11.java \
-  vmTestbase/vm/compiler/jbe/dead/dead12/dead12.java \
-  vmTestbase/vm/compiler/jbe/dead/dead13/dead13.java \
-  vmTestbase/vm/compiler/jbe/dead/dead14/dead14.java \
-  vmTestbase/vm/compiler/jbe/dead/dead15/dead15.java \
-  vmTestbase/vm/compiler/jbe/dead/dead16/dead16.java \
-  vmTestbase/vm/compiler/jbe/hoist/hoist01/hoist01.java \
-  vmTestbase/vm/compiler/jbe/hoist/hoist02/hoist02.java \
-  vmTestbase/vm/compiler/jbe/hoist/hoist03/hoist03.java \
-  vmTestbase/vm/compiler/jbe/hoist/hoist04/hoist04.java \
-  vmTestbase/vm/compiler/jbe/subcommon/subcommon01/subcommon01.java \
-  vmTestbase/vm/compiler/jbe/subcommon/subcommon03/subcommon03.java \
-  vmTestbase/vm/compiler/jbe/subcommon/subcommon04/subcommon04.java \
-  vmTestbase/vm/compiler/jbe/subcommon/subcommon05/subcommon05.java \
-  vmTestbase/vm/compiler/coverage/parentheses/TestDescription.java \
-  vmTestbase/vm/compiler/optimizations/stringconcat/explicit/Explicit01/cs_disabled/TestDescription.java \
-  vmTestbase/vm/compiler/optimizations/stringconcat/explicit/Explicit01/cs_enabled/TestDescription.java \
-  vmTestbase/vm/compiler/optimizations/stringconcat/explicit/Merge01/cs_disabled/TestDescription.java \
-  vmTestbase/vm/compiler/optimizations/stringconcat/explicit/Merge01/cs_enabled/TestDescription.java \
-  vmTestbase/vm/compiler/optimizations/stringconcat/implicit/Implicit01/cs_disabled/TestDescription.java \
-  vmTestbase/vm/compiler/optimizations/stringconcat/implicit/Implicit01/cs_enabled/TestDescription.java \
-  vmTestbase/vm/compiler/optimizations/stringconcat/implicit/Merge01/cs_disabled/TestDescription.java \
-  vmTestbase/vm/compiler/optimizations/stringconcat/implicit/Merge01/cs_enabled/TestDescription.java \
-  vmTestbase/vm/compiler/optimizations/partialpeel/ForWhile/TestDescription.java \
-  vmTestbase/vm/compiler/optimizations/partialpeel/While/TestDescription.java \
-  vmTestbase/vm/compiler/optimizations/partialpeel/WhileWhile/TestDescription.java \
-  vmTestbase/vm/compiler/optimizations/partialpeel/Do/TestDescription.java \
-  vmTestbase/vm/compiler/complog/uninit/uninit001/uninit001.java \
-  vmTestbase/vm/compiler/complog/uninit/uninit002/uninit002.java \
-  vmTestbase/vm/compiler/complog/uninit/uninit003/uninit003.java \
-  vmTestbase/vm/compiler/complog/uninit/uninit004/uninit004.java \
-  vmTestbase/vm/compiler/complog/uninit/uninit005/uninit005.java \
-  vmTestbase/vm/compiler/complog/uninit/uninit006/uninit006.java \
-  vmTestbase/vm/compiler/complog/uninit/uninit007/uninit007.java \
-  vmTestbase/vm/compiler/complog/uninit/uninit008/uninit008.java \
-  vmTestbase/vm/compiler/complog/uninit/uninit009/uninit009.java \
-  vmTestbase/vm/compiler/complog/uninit/uninit010/uninit010.java \
-  vmTestbase/vm/compiler/complog/uninit/uninit011/uninit011.java \
-  vmTestbase/vm/compiler/complog/uninit/uninit012/uninit012.java \
-  vmTestbase/vm/compiler/complog/uninit/uninit013/uninit013.java \
-  vmTestbase/jit/Arrays/ArrayBounds/ArrayBounds.java \
-  vmTestbase/jit/Arrays/ArrayStoreCheck/ArrayStoreCheck.java \
-  vmTestbase/jit/Arrays/ArrayTests/ArrayTests.java \
-  vmTestbase/jit/CEETest/CEETest.java \
-  vmTestbase/jit/CondExpr/CondExpr.java \
-  vmTestbase/jit/DivTest/DivTest.java \
-  vmTestbase/jit/ExcOpt/ExcOpt.java \
-  vmTestbase/jit/FloatingPoint/FPCompare/TestFPBinop/TestFPBinop.java \
-  vmTestbase/jit/FloatingPoint/gen_math/Filtering/Filtering.java \
-  vmTestbase/jit/FloatingPoint/gen_math/Loops01/Loops01.java \
-  vmTestbase/jit/FloatingPoint/gen_math/Loops02/Loops02.java \
-  vmTestbase/jit/FloatingPoint/gen_math/Loops03/Loops03.java \
-  vmTestbase/jit/FloatingPoint/gen_math/Loops04/Loops04.java \
-  vmTestbase/jit/FloatingPoint/gen_math/Loops05/Loops05.java \
-  vmTestbase/jit/FloatingPoint/gen_math/Loops06/Loops06.java \
-  vmTestbase/jit/FloatingPoint/gen_math/Loops07/Loops07.java \
-  vmTestbase/jit/FloatingPoint/gen_math/Matrix_3d/Matrix_3d.java \
-  vmTestbase/jit/FloatingPoint/gen_math/ShortCircuitTest/ShortCircuitTest.java \
-  vmTestbase/jit/FloatingPoint/gen_math/Summ/Summ.java \
-  vmTestbase/jit/PrintProperties/PrintProperties.java \
-  vmTestbase/jit/PrintThis/PrintThis.java \
-  vmTestbase/jit/Robert/Robert.java \
-  vmTestbase/jit/Sleeper/Sleeper.java \
-  vmTestbase/jit/bounds/bounds.java \
-  vmTestbase/jit/collapse/collapse.java \
-  vmTestbase/jit/deoptimization/test01/test01.java \
-  vmTestbase/jit/deoptimization/test02/test02.java \
-  vmTestbase/jit/deoptimization/test03/test03.java \
-  vmTestbase/jit/deoptimization/test04/test04.java \
-  vmTestbase/jit/deoptimization/test05/test05.java \
-  vmTestbase/jit/deoptimization/test06/test06.java \
-  vmTestbase/jit/deoptimization/test07/test07.java \
-  vmTestbase/jit/deoptimization/test08/test08.java \
-  vmTestbase/jit/escape/AdaptiveBlocking/AdaptiveBlocking001/AdaptiveBlocking001.java \
-  vmTestbase/jit/escape/LockElision/MatMul/MatMul.java \
-  vmTestbase/jit/escape/LockCoarsening/LockCoarsening002/TestDescription.java \
-  vmTestbase/jit/exception/exception.java \
-  vmTestbase/jit/graph/cgt0/cgt0.java \
-  vmTestbase/jit/graph/cgt1/cgt1.java \
-  vmTestbase/jit/graph/cgt2/cgt2.java \
-  vmTestbase/jit/graph/cgt3/cgt3.java \
-  vmTestbase/jit/graph/cgt4/cgt4.java \
-  vmTestbase/jit/graph/cgt5/cgt5.java \
-  vmTestbase/jit/graph/cgt6/cgt6.java \
-  vmTestbase/jit/graph/cgt7/cgt7.java \
-  vmTestbase/jit/graph/cgt8/cgt8.java \
-  vmTestbase/jit/graph/cgt9/cgt9.java \
-  vmTestbase/jit/graph/cgt10/cgt10.java \
-  vmTestbase/jit/graph/cgt11/cgt11.java \
-  vmTestbase/jit/init/init01/init01.java \
-  vmTestbase/jit/init/init02/init02.java \
-  vmTestbase/jit/inline/inline003/inline003.java \
-  vmTestbase/jit/inline/inline004/inline004.java \
-  vmTestbase/jit/inline/inline005/inline005.java \
-  vmTestbase/jit/inline/inline007/inline007.java \
-  vmTestbase/jit/misctests/JitBug1/JitBug1.java \
-  vmTestbase/jit/misctests/Pi/Pi.java \
-  vmTestbase/jit/misctests/clss14702/clss14702.java \
-  vmTestbase/jit/misctests/fpustack/GraphApplet.java \
-  vmTestbase/jit/misctests/putfield00802/putfield00802.java \
-  vmTestbase/jit/misctests/t5/t5.java \
-  vmTestbase/jit/overflow/overflow.java \
-  vmTestbase/jit/regression/b4427606/b4427606.java \
-  vmTestbase/jit/regression/b4446672/b4446672.java \
-  vmTestbase/jit/regression/CrashC1/CrashC1.java \
-  vmTestbase/jit/series/series.java \
-  vmTestbase/jit/t/t001/t001.java \
-  vmTestbase/jit/t/t002/t002.java \
-  vmTestbase/jit/t/t003/t003.java \
-  vmTestbase/jit/t/t004/t004.java \
-  vmTestbase/jit/t/t005/t005.java \
-  vmTestbase/jit/t/t006/t006.java \
-  vmTestbase/jit/t/t007/t007.java \
-  vmTestbase/jit/t/t008/t008.java \
-  vmTestbase/jit/t/t009/t009.java \
-  vmTestbase/jit/t/t011/t011.java \
-  vmTestbase/jit/t/t012/t012.java \
-  vmTestbase/jit/t/t013/t013.java \
-  vmTestbase/jit/t/t014/t014.java \
-  vmTestbase/jit/t/t015/t015.java \
-  vmTestbase/jit/t/t016/t016.java \
-  vmTestbase/jit/t/t017/t017.java \
-  vmTestbase/jit/t/t018/t018.java \
-  vmTestbase/jit/t/t019/t019.java \
-  vmTestbase/jit/t/t020/t020.java \
-  vmTestbase/jit/t/t021/t021.java \
-  vmTestbase/jit/t/t022/t022.java \
-  vmTestbase/jit/t/t023/t023.java \
-  vmTestbase/jit/t/t024/t024.java \
-  vmTestbase/jit/t/t025/t025.java \
-  vmTestbase/jit/t/t026/t026.java \
-  vmTestbase/jit/t/t027/t027.java \
-  vmTestbase/jit/t/t028/t028.java \
-  vmTestbase/jit/t/t029/t029.java \
-  vmTestbase/jit/t/t030/t030.java \
-  vmTestbase/jit/t/t031/t031.java \
-  vmTestbase/jit/t/t032/t032.java \
-  vmTestbase/jit/t/t033/t033.java \
-  vmTestbase/jit/t/t034/t034.java \
-  vmTestbase/jit/t/t035/t035.java \
-  vmTestbase/jit/t/t036/t036.java \
-  vmTestbase/jit/t/t037/t037.java \
-  vmTestbase/jit/t/t038/t038.java \
-  vmTestbase/jit/t/t039/t039.java \
-  vmTestbase/jit/t/t040/t040.java \
-  vmTestbase/jit/t/t041/t041.java \
-  vmTestbase/jit/t/t042/t042.java \
-  vmTestbase/jit/t/t043/t043.java \
-  vmTestbase/jit/t/t044/t044.java \
-  vmTestbase/jit/t/t045/t045.java \
-  vmTestbase/jit/t/t046/t046.java \
-  vmTestbase/jit/t/t047/t047.java \
-  vmTestbase/jit/t/t048/t048.java \
-  vmTestbase/jit/t/t049/t049.java \
-  vmTestbase/jit/t/t050/t050.java \
-  vmTestbase/jit/t/t051/t051.java \
-  vmTestbase/jit/t/t052/t052.java \
-  vmTestbase/jit/t/t053/t053.java \
-  vmTestbase/jit/t/t054/t054.java \
-  vmTestbase/jit/t/t055/t055.java \
-  vmTestbase/jit/t/t056/t056.java \
-  vmTestbase/jit/t/t057/t057.java \
-  vmTestbase/jit/t/t058/t058.java \
-  vmTestbase/jit/t/t059/t059.java \
-  vmTestbase/jit/t/t060/t060.java \
-  vmTestbase/jit/t/t061/t061.java \
-  vmTestbase/jit/t/t062/t062.java \
-  vmTestbase/jit/t/t063/t063.java \
-  vmTestbase/jit/t/t064/t064.java \
-  vmTestbase/jit/t/t065/t065.java \
-  vmTestbase/jit/t/t066/t066.java \
-  vmTestbase/jit/t/t067/t067.java \
-  vmTestbase/jit/t/t068/t068.java \
-  vmTestbase/jit/t/t069/t069.java \
-  vmTestbase/jit/t/t070/t070.java \
-  vmTestbase/jit/t/t071/t071.java \
-  vmTestbase/jit/t/t072/t072.java \
-  vmTestbase/jit/t/t073/t073.java \
-  vmTestbase/jit/t/t074/t074.java \
-  vmTestbase/jit/t/t075/t075.java \
-  vmTestbase/jit/t/t076/t076.java \
-  vmTestbase/jit/t/t077/t077.java \
-  vmTestbase/jit/t/t078/t078.java \
-  vmTestbase/jit/t/t079/t079.java \
-  vmTestbase/jit/t/t080/t080.java \
-  vmTestbase/jit/t/t081/t081.java \
-  vmTestbase/jit/t/t086/t086.java \
-  vmTestbase/jit/t/t087/t087.java \
-  vmTestbase/jit/t/t088/t088.java \
-  vmTestbase/jit/t/t091/t091.java \
-  vmTestbase/jit/t/t093/t093.java \
-  vmTestbase/jit/t/t094/t094.java \
-  vmTestbase/jit/t/t095/t095.java \
-  vmTestbase/jit/t/t096/t096.java \
-  vmTestbase/jit/t/t098/t098.java \
-  vmTestbase/jit/t/t099/t099.java \
-  vmTestbase/jit/t/t100/t100.java \
-  vmTestbase/jit/t/t101/t101.java \
-  vmTestbase/jit/t/t102/t102.java \
-  vmTestbase/jit/t/t103/t103.java \
-  vmTestbase/jit/t/t104/t104.java \
-  vmTestbase/jit/t/t105/t105.java \
-  vmTestbase/jit/t/t106/t106.java \
-  vmTestbase/jit/t/t107/t107.java \
-  vmTestbase/jit/t/t108/TestDescription.java \
-  vmTestbase/jit/t/t109/TestDescription.java \
-  vmTestbase/jit/t/t110/TestDescription.java \
-  vmTestbase/jit/t/t111/TestDescription.java \
-  vmTestbase/jit/t/t112/TestDescription.java \
-  vmTestbase/jit/t/t113/TestDescription.java \
-  vmTestbase/jit/tiered/TestDescription.java \
-  vmTestbase/jit/verifier/VerifyInitLocal/VerifyInitLocal.java \
-  vmTestbase/jit/verifier/VerifyMergeStack/VerifyMergeStack.java \
-  vmTestbase/jit/wide/wide01/wide01.java \
-  vmTestbase/jit/wide/wide02/wide02.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc1/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc2/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc3/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc4/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc5/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc6/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc7/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc8/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc9/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc10/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc11/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc12/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc13/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc14/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc15/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc16/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc17/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc18/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc19/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc20/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc21/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc22/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc23/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc24/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc25/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc26/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc27/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc28/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc29/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc30/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc31/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc32/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc33/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc34/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc35/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc36/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc37/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc38/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc39/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc40/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc41/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc42/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc43/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc44/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc45/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc46/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc47/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc48/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc49/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc50/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc51/TestDescription.java \
-  vmTestbase/vm/jit/LongTransitions/nativeFnc52/TestDescription.java
-
 # JSR292 tests (invokedynamic AKA Multi-Language VM AKA Da Vinci Machine)
 vmTestbase_vm_mlvm = \
   vmTestbase/vm/mlvm
@@ -2275,3 +449,5 @@
 # JDB tests
 vmTestbase_nsk_jdb = \
   vmTestbase/nsk/jdb
+
+# vmTestbase_*_quick groups are defined in TEST.quick-groups
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/TEST.quick-groups	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,1844 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# 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.
+#
+
+vmTestbase_nsk_monitoring_quick = \
+  vmTestbase/nsk/monitoring/MemoryNotificationInfo/MemoryNotificationInfo/info001/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryNotificationInfo/from/from001/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryNotificationInfo/getCount/getcount001/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryNotificationInfo/getPoolName/getpoolname001/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryNotificationInfo/getUsage/getusage001/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsage/getusage001/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsage/getusage002/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsage/getusage003/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsage/getusage004/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsage/getusage005/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThreshold/getthreshold001/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThreshold/getthreshold002/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThreshold/getthreshold003/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThreshold/getthreshold004/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThreshold/getthreshold005/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThresholdCount/getcount001/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThresholdCount/getcount002/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThresholdCount/getcount003/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThresholdCount/getcount004/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThresholdCount/getcount005/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/getPeakUsage/getpeak001/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/getPeakUsage/getpeak002/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/getPeakUsage/getpeak003/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/getPeakUsage/getpeak004/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/getPeakUsage/getpeak005/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsage/getusage001/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsage/getusage002/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsage/getusage003/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsage/getusage004/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsage/getusage005/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThreshold/getthreshold001/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThreshold/getthreshold002/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThreshold/getthreshold003/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThreshold/getthreshold004/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThreshold/getthreshold005/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThresholdCount/getcount001/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThresholdCount/getcount002/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThresholdCount/getcount003/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThresholdCount/getcount004/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThresholdCount/getcount005/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdExceeded/isexceeded001/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdExceeded/isexceeded002/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdExceeded/isexceeded003/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdExceeded/isexceeded004/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdExceeded/isexceeded005/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdSupported/issupported001/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdSupported/issupported002/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdSupported/issupported003/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdSupported/issupported004/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdSupported/issupported005/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdExceeded/isexceeded001/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdExceeded/isexceeded002/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdExceeded/isexceeded003/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdExceeded/isexceeded004/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdExceeded/isexceeded005/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdSupported/issupported001/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdSupported/issupported002/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdSupported/issupported003/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdSupported/issupported004/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdSupported/issupported005/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/resetPeakUsage/reset001/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/resetPeakUsage/reset002/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/resetPeakUsage/reset003/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/resetPeakUsage/reset004/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/resetPeakUsage/reset005/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/setCollectionUsageThreshold/setthreshold001/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/setCollectionUsageThreshold/setthreshold002/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/setCollectionUsageThreshold/setthreshold003/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/setCollectionUsageThreshold/setthreshold004/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/setCollectionUsageThreshold/setthreshold005/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/setUsageThreshold/setthreshold001/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/setUsageThreshold/setthreshold002/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/setUsageThreshold/setthreshold003/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/setUsageThreshold/setthreshold004/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryPoolMBean/setUsageThreshold/setthreshold005/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryUsage/MemoryUsage/memoryusage001/TestDescription.java \
+  vmTestbase/nsk/monitoring/MemoryUsage/from/from001/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadInfo/from_c/from_c001/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadInfo/getLockName/getlockname001/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadInfo/getLockOwnerName/getlockownername001/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadInfo/isInNative/isinnative001/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadInfo/isSuspended/issuspended001/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadInfo/isSuspended/issuspended002/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/findMonitorDeadlockedThreads/find001/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/findMonitorDeadlockedThreads/find002/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/findMonitorDeadlockedThreads/find003/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/findMonitorDeadlockedThreads/find004/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/findMonitorDeadlockedThreads/find005/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/findMonitorDeadlockedThreads/find006/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/isCurrentThreadCpuTimeSupported/curthcputime001/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/isCurrentThreadCpuTimeSupported/curthcputime002/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/isCurrentThreadCpuTimeSupported/curthcputime003/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/isCurrentThreadCpuTimeSupported/curthcputime004/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/isCurrentThreadCpuTimeSupported/curthcputime005/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/isThreadContentionMonitoringSupported/thcontmonitor001/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/isThreadContentionMonitoringSupported/thcontmonitor002/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/isThreadContentionMonitoringSupported/thcontmonitor003/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/isThreadContentionMonitoringSupported/thcontmonitor004/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/isThreadContentionMonitoringSupported/thcontmonitor005/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/isThreadCpuTimeSupported/thcputime001/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/isThreadCpuTimeSupported/thcputime002/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/isThreadCpuTimeSupported/thcputime003/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/isThreadCpuTimeSupported/thcputime004/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/isThreadCpuTimeSupported/thcputime005/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/resetPeakThreadCount/reset001/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/resetPeakThreadCount/reset002/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/resetPeakThreadCount/reset003/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/resetPeakThreadCount/reset004/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/resetPeakThreadCount/reset005/TestDescription.java \
+  vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerLevel/getloggerlevel001/TestDescription.java \
+  vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerLevel/getloggerlevel002/TestDescription.java \
+  vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerLevel/getloggerlevel003/TestDescription.java \
+  vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerLevel/getloggerlevel004/TestDescription.java \
+  vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerLevel/getloggerlevel005/TestDescription.java \
+  vmTestbase/nsk/monitoring/LoggingMXBean/setLoggerLevel/setloggerlevel001/TestDescription.java \
+  vmTestbase/nsk/monitoring/LoggingMXBean/setLoggerLevel/setloggerlevel002/TestDescription.java \
+  vmTestbase/nsk/monitoring/LoggingMXBean/setLoggerLevel/setloggerlevel003/TestDescription.java \
+  vmTestbase/nsk/monitoring/LoggingMXBean/setLoggerLevel/setloggerlevel004/TestDescription.java \
+  vmTestbase/nsk/monitoring/LoggingMXBean/setLoggerLevel/setloggerlevel005/TestDescription.java \
+  vmTestbase/nsk/monitoring/LoggingMXBean/getParentLoggerName/getparentloggername001/TestDescription.java \
+  vmTestbase/nsk/monitoring/LoggingMXBean/getParentLoggerName/getparentloggername002/TestDescription.java \
+  vmTestbase/nsk/monitoring/LoggingMXBean/getParentLoggerName/getparentloggername003/TestDescription.java \
+  vmTestbase/nsk/monitoring/LoggingMXBean/getParentLoggerName/getparentloggername004/TestDescription.java \
+  vmTestbase/nsk/monitoring/LoggingMXBean/getParentLoggerName/getparentloggername005/TestDescription.java \
+  vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerNames/getloggernames001/TestDescription.java \
+  vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerNames/getloggernames002/TestDescription.java \
+  vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerNames/getloggernames003/TestDescription.java \
+  vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerNames/getloggernames004/TestDescription.java \
+  vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerNames/getloggernames005/TestDescription.java \
+  vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionCount/getcollectioncount001/TestDescription.java \
+  vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionCount/getcollectioncount002/TestDescription.java \
+  vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionCount/getcollectioncount003/TestDescription.java \
+  vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionCount/getcollectioncount004/TestDescription.java \
+  vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionCount/getcollectioncount005/TestDescription.java \
+  vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionTime/getcollectiontime001/TestDescription.java \
+  vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionTime/getcollectiontime002/TestDescription.java \
+  vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionTime/getcollectiontime003/TestDescription.java \
+  vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionTime/getcollectiontime004/TestDescription.java \
+  vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionTime/getcollectiontime005/TestDescription.java \
+  vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean001/RuntimeMXBean001.java \
+  vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean002/TestDescription.java \
+  vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean003/TestDescription.java \
+  vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean004/TestDescription.java \
+  vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean005/TestDescription.java \
+  vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean006/RuntimeMXBean006.java \
+  vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean007/TestDescription.java \
+  vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean008/TestDescription.java \
+  vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean009/TestDescription.java \
+  vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean010/TestDescription.java \
+  vmTestbase/nsk/monitoring/CompilationMXBean/comptimemon001/comptimemon001.java \
+  vmTestbase/nsk/monitoring/CompilationMXBean/comptimemon002/TestDescription.java \
+  vmTestbase/nsk/monitoring/CompilationMXBean/comptimemon003/TestDescription.java \
+  vmTestbase/nsk/monitoring/CompilationMXBean/comptimemon004/TestDescription.java \
+  vmTestbase/nsk/monitoring/CompilationMXBean/comptimemon005/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/TimedWaitingThread/TimedWaitingThread001/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/TimedWaitingThread/TimedWaitingThread002/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/TimedWaitingThread/TimedWaitingThread003/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/TimedWaitingThread/TimedWaitingThread004/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/TimedWaitingThread/TimedWaitingThread005/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/RunningThread/RunningThread001/RunningThread001.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/RunningThread/RunningThread002/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/RunningThread/RunningThread003/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/RunningThread/RunningThread004/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/RunningThread/RunningThread005/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SleepingThread/SleepingThread001/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SleepingThread/SleepingThread002/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SleepingThread/SleepingThread003/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SleepingThread/SleepingThread004/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SleepingThread/SleepingThread005/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/WaitingThread/WaitingThread001/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/WaitingThread/WaitingThread002/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/WaitingThread/WaitingThread003/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/WaitingThread/WaitingThread004/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/WaitingThread/WaitingThread005/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/BlockedThread/BlockedThread001/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/BlockedThread/BlockedThread002/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/BlockedThread/BlockedThread003/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/BlockedThread/BlockedThread004/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/BlockedThread/BlockedThread005/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NativeBlockedThread/NativeBlockedThread001/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NativeBlockedThread/NativeBlockedThread002/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NativeBlockedThread/NativeBlockedThread003/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NativeBlockedThread/NativeBlockedThread004/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NativeBlockedThread/NativeBlockedThread005/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NewThread/NewThread001/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NewThread/NewThread002/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NewThread/NewThread003/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NewThread/NewThread004/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NewThread/NewThread005/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/FinishedThread/FinishedThread001/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/FinishedThread/FinishedThread002/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/FinishedThread/FinishedThread003/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/FinishedThread/FinishedThread004/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/FinishedThread/FinishedThread005/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/LockingThreads/LockingThreads001/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/LockingThreads/LockingThreads002/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/LockingThreads/LockingThreads003/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/LockingThreads/LockingThreads004/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/LockingThreads/LockingThreads005/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SynchronizerLockingThreads/SynchronizerLockingThreads001/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SynchronizerLockingThreads/SynchronizerLockingThreads002/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SynchronizerLockingThreads/SynchronizerLockingThreads003/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SynchronizerLockingThreads/SynchronizerLockingThreads004/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SynchronizerLockingThreads/SynchronizerLockingThreads005/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Deadlock/JavaDeadlock001/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Deadlock/JavaDeadlock002/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Deadlock/JavaDeadlock003/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Deadlock/JavaDeadlock004/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Deadlock/JavaDeadlock005/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Deadlock/NativeDeadlock001/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Deadlock/SynchronizerDeadlock001/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Deadlock/SynchronizedMethodDeadlock001/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Deadlock/MixedDeadlock001/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/baseBehaviorTest_directly/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/baseBehaviorTest_server_default/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/baseBehaviorTest_server_custom/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/baseBehaviorTest_proxy_default/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/baseBehaviorTest_proxy_custom/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/illegalArgumentsTest_directly/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/illegalArgumentsTest_server_default/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/illegalArgumentsTest_server_custom/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/illegalArgumentsTest_proxy_default/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/illegalArgumentsTest_proxy_custom/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/allocatedMemorySupportedTest_directly/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/allocatedMemorySupportedTest_server_default/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/allocatedMemorySupportedTest_server_custom/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/allocatedMemorySupportedTest_proxy_default/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/allocatedMemorySupportedTest_proxy_custom/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/baseBehaviorTest_directly/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/baseBehaviorTest_server_default/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/baseBehaviorTest_server_custom/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/baseBehaviorTest_proxy_default/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/baseBehaviorTest_proxy_custom/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_directly_array/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_server_default_array/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_server_custom_array/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_proxy_default_array/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_proxy_custom_array/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_directly_string/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_server_default_string/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_server_custom_string/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_proxy_default_string/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_proxy_custom_string/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_directly_array/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_server_default_array/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_server_custom_array/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_proxy_default_array/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_proxy_custom_array/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_directly_string/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_server_default_string/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_server_custom_string/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_proxy_default_string/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_proxy_custom_string/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/illegalArgumentsTest_directly/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/illegalArgumentsTest_server_default/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/illegalArgumentsTest_server_custom/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/illegalArgumentsTest_proxy_default/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/illegalArgumentsTest_proxy_custom/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/noAllocationTest_directly/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/noAllocationTest_server_default/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/noAllocationTest_server_custom/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/noAllocationTest_proxy_default/TestDescription.java \
+  vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/noAllocationTest_proxy_custom/TestDescription.java
+
+vmTestbase_nsk_jdi_quick = \
+  vmTestbase/nsk/jdi/Argument/description/description001/TestDescription.java \
+  vmTestbase/nsk/jdi/Argument/isValid/isvalid001/TestDescription.java \
+  vmTestbase/nsk/jdi/Argument/isValid/isvalid002/TestDescription.java \
+  vmTestbase/nsk/jdi/Argument/isValid/isvalid003/TestDescription.java \
+  vmTestbase/nsk/jdi/Argument/isValid/isvalid004/TestDescription.java \
+  vmTestbase/nsk/jdi/Argument/isValid/isvalid005/TestDescription.java \
+  vmTestbase/nsk/jdi/Argument/name/name001/TestDescription.java \
+  vmTestbase/nsk/jdi/Argument/value/value001/TestDescription.java \
+  vmTestbase/nsk/jdi/Argument/value/value002/TestDescription.java \
+  vmTestbase/nsk/jdi/Argument/value/value003/TestDescription.java \
+  vmTestbase/nsk/jdi/Argument/setValue/setvalue001/TestDescription.java \
+  vmTestbase/nsk/jdi/Argument/setValue/setvalue002/TestDescription.java \
+  vmTestbase/nsk/jdi/Argument/mustSpecify/mustspecify001/TestDescription.java \
+  vmTestbase/nsk/jdi/AttachingConnector/attach/attach002/TestDescription.java \
+  vmTestbase/nsk/jdi/BooleanArgument/booleanValue/booleanvalue001/TestDescription.java \
+  vmTestbase/nsk/jdi/BooleanArgument/booleanValue/booleanvalue002/TestDescription.java \
+  vmTestbase/nsk/jdi/BooleanArgument/isValid/isvalid001/TestDescription.java \
+  vmTestbase/nsk/jdi/BooleanArgument/isValid/isvalid002/TestDescription.java \
+  vmTestbase/nsk/jdi/BooleanArgument/setValue/setvalue001/TestDescription.java \
+  vmTestbase/nsk/jdi/BooleanArgument/setValue/setvalue002/TestDescription.java \
+  vmTestbase/nsk/jdi/BooleanArgument/stringValueOf/stringvalueof001/TestDescription.java \
+  vmTestbase/nsk/jdi/BooleanArgument/stringValueOf/stringvalueof002/TestDescription.java \
+  vmTestbase/nsk/jdi/ClassLoaderReference/definedClasses/definedclasses001/TestDescription.java \
+  vmTestbase/nsk/jdi/ClassLoaderReference/definedClasses/definedclasses002/TestDescription.java \
+  vmTestbase/nsk/jdi/ClassLoaderReference/definedClasses/definedclasses003/TestDescription.java \
+  vmTestbase/nsk/jdi/ClassLoaderReference/definedClasses/definedclasses004/TestDescription.java \
+  vmTestbase/nsk/jdi/ClassLoaderReference/definedClasses/definedclasses005/TestDescription.java \
+  vmTestbase/nsk/jdi/ClassLoaderReference/visibleClasses/visibleclasses002/TestDescription.java \
+  vmTestbase/nsk/jdi/Connector/defaultArguments/defaultArguments001/TestDescription.java \
+  vmTestbase/nsk/jdi/Connector/defaultArguments/defaultArguments002/TestDescription.java \
+  vmTestbase/nsk/jdi/Connector/defaultArguments/defaultArguments003/TestDescription.java \
+  vmTestbase/nsk/jdi/Connector/description/description001/TestDescription.java \
+  vmTestbase/nsk/jdi/Connector/name/name001/TestDescription.java \
+  vmTestbase/nsk/jdi/Connector/transport/transport001/TestDescription.java \
+  vmTestbase/nsk/jdi/FloatValue/compareTo/compareto001/TestDescription.java \
+  vmTestbase/nsk/jdi/IntegerArgument/intValue/intvalue001/TestDescription.java \
+  vmTestbase/nsk/jdi/IntegerArgument/intValue/intvalue002/TestDescription.java \
+  vmTestbase/nsk/jdi/IntegerArgument/isValid/isvalid001/TestDescription.java \
+  vmTestbase/nsk/jdi/IntegerArgument/isValid/isvalid002/TestDescription.java \
+  vmTestbase/nsk/jdi/IntegerArgument/isValid/isvalid003/TestDescription.java \
+  vmTestbase/nsk/jdi/IntegerArgument/max/max001/TestDescription.java \
+  vmTestbase/nsk/jdi/IntegerArgument/min/min001/TestDescription.java \
+  vmTestbase/nsk/jdi/IntegerArgument/setValue/setvalue001/TestDescription.java \
+  vmTestbase/nsk/jdi/IntegerArgument/stringValueOf/stringvalueof001/TestDescription.java \
+  vmTestbase/nsk/jdi/IntegerValue/compareTo/compareto001/TestDescription.java \
+  vmTestbase/nsk/jdi/LaunchingConnector/launch/launch001/TestDescription.java \
+  vmTestbase/nsk/jdi/LaunchingConnector/launch/launch002/TestDescription.java \
+  vmTestbase/nsk/jdi/LaunchingConnector/launch/launch004/TestDescription.java \
+  vmTestbase/nsk/jdi/ListeningConnector/accept/accept001/TestDescription.java \
+  vmTestbase/nsk/jdi/ListeningConnector/accept/accept002/TestDescription.java \
+  vmTestbase/nsk/jdi/ListeningConnector/stopListening/stoplis001/TestDescription.java \
+  vmTestbase/nsk/jdi/ListeningConnector/supportsMultipleConnections/supportsmultipleconnections001/TestDescription.java \
+  vmTestbase/nsk/jdi/ListeningConnector/listennosuspend/listennosuspend001/TestDescription.java \
+  vmTestbase/nsk/jdi/LongValue/compareTo/compareto001/TestDescription.java \
+  vmTestbase/nsk/jdi/ObjectReference/entryCount/entrycount002/TestDescription.java \
+  vmTestbase/nsk/jdi/ObjectReference/owningThread/owningthread002/TestDescription.java \
+  vmTestbase/nsk/jdi/ObjectReference/waitingThreads/waitingthreads002/TestDescription.java \
+  vmTestbase/nsk/jdi/ObjectReference/waitingThreads/waitingthreads003/TestDescription.java \
+  vmTestbase/nsk/jdi/ObjectReference/waitingThreads/waitingthreads004/TestDescription.java \
+  vmTestbase/nsk/jdi/ReferenceType/isVerified/isverified003/TestDescription.java \
+  vmTestbase/nsk/jdi/SelectedArgument/choices/choices001/TestDescription.java \
+  vmTestbase/nsk/jdi/SelectedArgument/isValid/isvalid001/TestDescription.java \
+  vmTestbase/nsk/jdi/SelectedArgument/isValid/isvalid002/TestDescription.java \
+  vmTestbase/nsk/jdi/ShortType/_itself_/shorttype001/TestDescription.java \
+  vmTestbase/nsk/jdi/ShortValue/compareTo/compareto001/TestDescription.java \
+  vmTestbase/nsk/jdi/StackFrame/thisObject/thisobject002/TestDescription.java \
+  vmTestbase/nsk/jdi/StackFrame/thread/thread001/TestDescription.java \
+  vmTestbase/nsk/jdi/StackFrame/visibleVariableByName/visiblevarbyname001/TestDescription.java \
+  vmTestbase/nsk/jdi/StackFrame/visibleVariableByName/visiblevarbyname002/TestDescription.java \
+  vmTestbase/nsk/jdi/StackFrame/visibleVariables/visiblevariables001/TestDescription.java \
+  vmTestbase/nsk/jdi/StackFrame/visibleVariables/visiblevariables002/TestDescription.java \
+  vmTestbase/nsk/jdi/StepEvent/_itself_/stepevent001/TestDescription.java \
+  vmTestbase/nsk/jdi/StepEvent/_itself_/stepevent002/TestDescription.java \
+  vmTestbase/nsk/jdi/StepRequest/addClassExclusionFilter/filter001/TestDescription.java \
+  vmTestbase/nsk/jdi/StepRequest/addClassExclusionFilter/filter002/TestDescription.java \
+  vmTestbase/nsk/jdi/StepRequest/addClassFilter_s/filter_s001/TestDescription.java \
+  vmTestbase/nsk/jdi/StepRequest/addClassFilter_s/filter_s002/TestDescription.java \
+  vmTestbase/nsk/jdi/StepRequest/addClassFilter_rt/filter_rt001/TestDescription.java \
+  vmTestbase/nsk/jdi/StepRequest/addClassFilter_rt/filter_rt002/TestDescription.java \
+  vmTestbase/nsk/jdi/StepRequest/depth/depth001/TestDescription.java \
+  vmTestbase/nsk/jdi/StepRequest/depth/depth002/TestDescription.java \
+  vmTestbase/nsk/jdi/StepRequest/depth/depth003/TestDescription.java \
+  vmTestbase/nsk/jdi/StepRequest/size/size001/TestDescription.java \
+  vmTestbase/nsk/jdi/StepRequest/size/size002/TestDescription.java \
+  vmTestbase/nsk/jdi/StepRequest/thread/thread001/TestDescription.java \
+  vmTestbase/nsk/jdi/StringArgument/isValid/isvalid001/TestDescription.java \
+  vmTestbase/nsk/jdi/StringArgument/isValid/isvalid002/TestDescription.java \
+  vmTestbase/nsk/jdi/StringArgument/isValid/isvalid003/TestDescription.java \
+  vmTestbase/nsk/jdi/StringReference/value/value001/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadDeathEvent/thread/thread001/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadDeathRequest/addThreadFilter/addthreadfilter001/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadDeathRequest/addThreadFilter/addthreadfilter002/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadDeathRequest/addThreadFilter/addthreadfilter003/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadDeathRequest/addThreadFilter/addthreadfilter004/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadDeathRequest/addThreadFilter/addthreadfilter005/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadGroupReference/name/name001/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadGroupReference/parent/parent001/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadGroupReference/resume/resume001/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadGroupReference/suspend/suspend001/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadGroupReference/threadGroups/threadgroups001/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadGroupReference/threads/threads001/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadReference/frame/frame001/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadReference/frameCount/framecount001/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadReference/frames/frames001/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadReference/frames_ii/frames_ii002/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadReference/isAtBreakpoint/isatbreakpoint001/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadReference/isSuspended/issuspended001/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadReference/isSuspended/issuspended003/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadReference/isSuspended/issuspended004/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadReference/name/name001/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadReference/ownedMonitors/ownedmonitors001/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadReference/suspendCount/suspendcount001/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadReference/threadGroup/threadgroup001/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadReference/currentContendedMonitor/currentcm001/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadReference/interrupt/interrupt001/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadReference/resume/resume001/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadReference/status/status003/status003.java \
+  vmTestbase/nsk/jdi/ThreadReference/status/status004/status004.java \
+  vmTestbase/nsk/jdi/ThreadReference/status/status005/status005.java \
+  vmTestbase/nsk/jdi/ThreadReference/status/status006/status006.java \
+  vmTestbase/nsk/jdi/ThreadReference/status/status007/status007.java \
+  vmTestbase/nsk/jdi/ThreadReference/status/status008/status008.java \
+  vmTestbase/nsk/jdi/ThreadReference/stop/stop001/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadStartRequest/addThreadFilter/addthreadfilter001/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadStartRequest/addThreadFilter/addthreadfilter002/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadStartRequest/addThreadFilter/addthreadfilter003/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadStartRequest/addThreadFilter/addthreadfilter004/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadStartRequest/addThreadFilter/addthreadfilter005/TestDescription.java \
+  vmTestbase/nsk/jdi/Transport/name/name001/TestDescription.java \
+  vmTestbase/nsk/jdi/Type/name/name001/TestDescription.java \
+  vmTestbase/nsk/jdi/Type/name/name002/TestDescription.java \
+  vmTestbase/nsk/jdi/Type/name/name003/TestDescription.java \
+  vmTestbase/nsk/jdi/Type/signature/signature001/TestDescription.java \
+  vmTestbase/nsk/jdi/Type/signature/signature002/TestDescription.java \
+  vmTestbase/nsk/jdi/Type/signature/signature003/TestDescription.java \
+  vmTestbase/nsk/jdi/TypeComponent/declaringType/decltype001/TestDescription.java \
+  vmTestbase/nsk/jdi/TypeComponent/declaringType/decltype002/TestDescription.java \
+  vmTestbase/nsk/jdi/TypeComponent/declaringType/decltype003/TestDescription.java \
+  vmTestbase/nsk/jdi/TypeComponent/declaringType/decltype007/TestDescription.java \
+  vmTestbase/nsk/jdi/TypeComponent/declaringType/decltype008/TestDescription.java \
+  vmTestbase/nsk/jdi/TypeComponent/isFinal/isfinal001/TestDescription.java \
+  vmTestbase/nsk/jdi/TypeComponent/isFinal/isfinal003/TestDescription.java \
+  vmTestbase/nsk/jdi/TypeComponent/isStatic/isstatic001/TestDescription.java \
+  vmTestbase/nsk/jdi/TypeComponent/isStatic/isstatic003/TestDescription.java \
+  vmTestbase/nsk/jdi/TypeComponent/isSynthetic/issynthetic001/TestDescription.java \
+  vmTestbase/nsk/jdi/TypeComponent/isSynthetic/issynthetic002/TestDescription.java \
+  vmTestbase/nsk/jdi/TypeComponent/name/name001/TestDescription.java \
+  vmTestbase/nsk/jdi/TypeComponent/name/name003/TestDescription.java \
+  vmTestbase/nsk/jdi/TypeComponent/signature/sign001/TestDescription.java \
+  vmTestbase/nsk/jdi/TypeComponent/signature/sign003/TestDescription.java \
+  vmTestbase/nsk/jdi/Value/type/type001/TestDescription.java \
+  vmTestbase/nsk/jdi/Value/type/type002/type002.java \
+  vmTestbase/nsk/jdi/Value/type/type003/TestDescription.java \
+  vmTestbase/nsk/jdi/Value/_itself_/value001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/allClasses/allclasses001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/allClasses/allclasses002/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/allThreads/allthreads001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/canGetBytecodes/cangetbytecodes001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/canGetCurrentContendedMonitor/cangccm001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/canGetMonitorInfo/cangetmonitorinfo001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/canGetOwnedMonitorInfo/cangetinfo001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/canGetSyntheticAttribute/cangetattr001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/canWatchFieldAccess/canwatchaccess001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/canWatchFieldModification/canwatchmod001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/classesByName/classesbyname001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/description/description001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/eventQueue/eventqueue001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/eventRequestManager/eventrmanager001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/exit/exit001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/exit/exit002/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/mirrorOf_bool/mirrorof_bool001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/mirrorOf_byte/mirrorof_byte001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/mirrorOf_char/mirrorof_char001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/mirrorOf_double/mirrorof_double001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/mirrorOf_float/mirrorof_float001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/mirrorOf_int/mirrorof_int001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/mirrorOf_long/mirrorof_long001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/mirrorOf_short/mirrorof_short001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/mirrorOf_string/mirrorof_string001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/name/name001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/process/process001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/topLevelThreadGroups/toplevelgroups001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/version/version001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachineManager/allConnectors/allconnectors001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachineManager/attachingConnectors/attaching001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachineManager/connectedVirtualMachines/convm001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachineManager/connectedVirtualMachines/convm002/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachineManager/connectedVirtualMachines/convm003/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachineManager/defaultConnector/default001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachineManager/launchingConnectors/launching001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachineManager/listeningConnectors/listening001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachineManager/majorInterfaceVersion/major001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachineManager/minorInterfaceVersion/minor001/TestDescription.java \
+  vmTestbase/nsk/jdi/VoidType/_itself_/voidtype001/TestDescription.java \
+  vmTestbase/nsk/jdi/VoidValue/equals/equals001/equals001.java \
+  vmTestbase/nsk/jdi/VoidValue/hashCode/hashcode001/hashcode001.java \
+  vmTestbase/nsk/jdi/VMDeathEvent/_itself_/vmdeath001/TestDescription.java \
+  vmTestbase/nsk/jdi/VMDeathEvent/_itself_/vmdeath002/TestDescription.java \
+  vmTestbase/nsk/jdi/VMDeathEvent/_itself_/vmdeath003/TestDescription.java \
+  vmTestbase/nsk/jdi/VMDisconnectEvent/_itself_/disconnect001/TestDescription.java \
+  vmTestbase/nsk/jdi/VMDisconnectEvent/_itself_/disconnect002/TestDescription.java \
+  vmTestbase/nsk/jdi/VMDisconnectEvent/_itself_/disconnect003/TestDescription.java \
+  vmTestbase/nsk/jdi/VMStartEvent/thread/thread001/TestDescription.java \
+  vmTestbase/nsk/jdi/WatchpointEvent/object/object001/TestDescription.java \
+  vmTestbase/nsk/jdi/WatchpointEvent/field/field001/TestDescription.java \
+  vmTestbase/nsk/jdi/WatchpointEvent/valueCurrent/valuecur001/TestDescription.java \
+  vmTestbase/nsk/jdi/WatchpointRequest/addClassExclusionFilter/filter001/TestDescription.java \
+  vmTestbase/nsk/jdi/WatchpointRequest/addClassExclusionFilter/filter002/TestDescription.java \
+  vmTestbase/nsk/jdi/WatchpointRequest/addClassExclusionFilter/filter003/TestDescription.java \
+  vmTestbase/nsk/jdi/WatchpointRequest/addClassExclusionFilter/filter004/TestDescription.java \
+  vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_s/filter_s001/TestDescription.java \
+  vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_s/filter_s002/TestDescription.java \
+  vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_s/filter_s003/TestDescription.java \
+  vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_s/filter_s004/TestDescription.java \
+  vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_rt/filter_rt001/TestDescription.java \
+  vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_rt/filter_rt002/TestDescription.java \
+  vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_rt/filter_rt003/TestDescription.java \
+  vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_rt/filter_rt004/TestDescription.java \
+  vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_rt/filter_rt005/TestDescription.java \
+  vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_rt/filter_rt006/TestDescription.java \
+  vmTestbase/nsk/jdi/WatchpointRequest/addThreadFilter/addthreadfilter001/TestDescription.java \
+  vmTestbase/nsk/jdi/WatchpointRequest/addThreadFilter/addthreadfilter002/TestDescription.java \
+  vmTestbase/nsk/jdi/WatchpointRequest/addThreadFilter/addthreadfilter003/TestDescription.java \
+  vmTestbase/nsk/jdi/WatchpointRequest/addThreadFilter/addthreadfilter004/TestDescription.java \
+  vmTestbase/nsk/jdi/WatchpointRequest/addThreadFilter/addthreadfilter005/TestDescription.java \
+  vmTestbase/nsk/jdi/WatchpointRequest/addThreadFilter/addthreadfilter006/TestDescription.java \
+  vmTestbase/nsk/jdi/WatchpointRequest/addThreadFilter/addthreadfilter007/TestDescription.java \
+  vmTestbase/nsk/jdi/WatchpointRequest/addThreadFilter/addthreadfilter008/TestDescription.java \
+  vmTestbase/nsk/jdi/WatchpointRequest/field/field001/TestDescription.java \
+  vmTestbase/nsk/jdi/WatchpointRequest/field/field002/TestDescription.java \
+  vmTestbase/nsk/jdi/AttachingConnector/attach/attach003/TestDescription.java \
+  vmTestbase/nsk/jdi/ClassObjectReference/toString/tostring001/TestDescription.java \
+  vmTestbase/nsk/jdi/ClassType/invokeMethod/invokemethod003/TestDescription.java \
+  vmTestbase/nsk/jdi/ClassType/invokeMethod/invokemethod010/TestDescription.java \
+  vmTestbase/nsk/jdi/ClassType/invokeMethod/invokemethod011/TestDescription.java \
+  vmTestbase/nsk/jdi/ClassType/invokeMethod/invokemethod012/TestDescription.java \
+  vmTestbase/nsk/jdi/ClassType/invokeMethod/invokemethod013/TestDescription.java \
+  vmTestbase/nsk/jdi/ClassType/invokeMethod/invokemethod014/TestDescription.java \
+  vmTestbase/nsk/jdi/ClassType/newInstance/newinstance009/TestDescription.java \
+  vmTestbase/nsk/jdi/ClassType/setValue/setvalue006/TestDescription.java \
+  vmTestbase/nsk/jdi/ClassType/setValue/setvalue007/TestDescription.java \
+  vmTestbase/nsk/jdi/Connector/_bounds_/bounds001/TestDescription.java \
+  vmTestbase/nsk/jdi/Connector/toString/tostring001/TestDescription.java \
+  vmTestbase/nsk/jdi/BScenarios/hotswap/tc01x001/TestDescription.java \
+  vmTestbase/nsk/jdi/BScenarios/hotswap/tc01x002/TestDescription.java \
+  vmTestbase/nsk/jdi/BScenarios/hotswap/tc02x001/TestDescription.java \
+  vmTestbase/nsk/jdi/BScenarios/hotswap/tc02x002/TestDescription.java \
+  vmTestbase/nsk/jdi/BScenarios/hotswap/tc03x001/TestDescription.java \
+  vmTestbase/nsk/jdi/BScenarios/hotswap/tc04x001/TestDescription.java \
+  vmTestbase/nsk/jdi/BScenarios/hotswap/tc04x002/TestDescription.java \
+  vmTestbase/nsk/jdi/BScenarios/hotswap/tc05x002/TestDescription.java \
+  vmTestbase/nsk/jdi/BScenarios/hotswap/tc06x001/TestDescription.java \
+  vmTestbase/nsk/jdi/BScenarios/hotswap/tc07x001/TestDescription.java \
+  vmTestbase/nsk/jdi/BScenarios/hotswap/tc08x001/TestDescription.java \
+  vmTestbase/nsk/jdi/BScenarios/hotswap/tc09x001/TestDescription.java \
+  vmTestbase/nsk/jdi/BScenarios/hotswap/tc09x002/TestDescription.java \
+  vmTestbase/nsk/jdi/BScenarios/hotswap/tc10x001/TestDescription.java \
+  vmTestbase/nsk/jdi/BScenarios/hotswap/tc10x002/TestDescription.java \
+  vmTestbase/nsk/jdi/BScenarios/multithrd/tc01x001/TestDescription.java \
+  vmTestbase/nsk/jdi/BScenarios/multithrd/tc02x001/TestDescription.java \
+  vmTestbase/nsk/jdi/BScenarios/multithrd/tc02x002/TestDescription.java \
+  vmTestbase/nsk/jdi/BScenarios/multithrd/tc02x003/TestDescription.java \
+  vmTestbase/nsk/jdi/BScenarios/multithrd/tc02x004/TestDescription.java \
+  vmTestbase/nsk/jdi/BScenarios/multithrd/tc03x001/TestDescription.java \
+  vmTestbase/nsk/jdi/BScenarios/multithrd/tc04x001/TestDescription.java \
+  vmTestbase/nsk/jdi/BScenarios/singlethrd/tc01x001/TestDescription.java \
+  vmTestbase/nsk/jdi/BScenarios/singlethrd/tc01x002/TestDescription.java \
+  vmTestbase/nsk/jdi/BScenarios/singlethrd/tc02x001/TestDescription.java \
+  vmTestbase/nsk/jdi/BScenarios/singlethrd/tc03x001/TestDescription.java \
+  vmTestbase/nsk/jdi/BScenarios/singlethrd/tc03x002/TestDescription.java \
+  vmTestbase/nsk/jdi/BScenarios/singlethrd/tc03x003/TestDescription.java \
+  vmTestbase/nsk/jdi/BScenarios/singlethrd/tc04x001/TestDescription.java \
+  vmTestbase/nsk/jdi/BScenarios/singlethrd/tc05x001/TestDescription.java \
+  vmTestbase/nsk/jdi/Event/equals/equals001/TestDescription.java \
+  vmTestbase/nsk/jdi/Event/hashCode/hashcode001/TestDescription.java \
+  vmTestbase/nsk/jdi/EventQueue/hashCode/hashcode001/TestDescription.java \
+  vmTestbase/nsk/jdi/EventRequest/disable/disable003/TestDescription.java \
+  vmTestbase/nsk/jdi/EventRequest/hashCode/hashcode001/TestDescription.java \
+  vmTestbase/nsk/jdi/EventRequestManager/deleteEventRequest/delevtreq003/TestDescription.java \
+  vmTestbase/nsk/jdi/EventRequestManager/hashCode/hashcode001/TestDescription.java \
+  vmTestbase/nsk/jdi/EventSet/resume/resume011/TestDescription.java \
+  vmTestbase/nsk/jdi/EventSet/toString/tostring001/TestDescription.java \
+  vmTestbase/nsk/jdi/EventSet/virtualMachine/virtualmachine001/TestDescription.java \
+  vmTestbase/nsk/jdi/LocalVariable/toString/tostring001/TestDescription.java \
+  vmTestbase/nsk/jdi/Method/_bounds_/bounds001/TestDescription.java \
+  vmTestbase/nsk/jdi/Method/isObsolete/isobsolete003/TestDescription.java \
+  vmTestbase/nsk/jdi/MethodEntryRequest/_bounds_/filters001/TestDescription.java \
+  vmTestbase/nsk/jdi/MethodExitRequest/_bounds_/filters001/TestDescription.java \
+  vmTestbase/nsk/jdi/Mirror/hashCode/hashcode001/TestDescription.java \
+  vmTestbase/nsk/jdi/ObjectReference/_bounds_/bounds001/TestDescription.java \
+  vmTestbase/nsk/jdi/ObjectReference/_bounds_/bounds002/TestDescription.java \
+  vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod002/TestDescription.java \
+  vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod003/TestDescription.java \
+  vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod004/TestDescription.java \
+  vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod005/TestDescription.java \
+  vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod007/TestDescription.java \
+  vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod008/TestDescription.java \
+  vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod009/TestDescription.java \
+  vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod010/TestDescription.java \
+  vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod011/TestDescription.java \
+  vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod012/TestDescription.java \
+  vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod013/TestDescription.java \
+  vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod014/TestDescription.java \
+  vmTestbase/nsk/jdi/ObjectReference/setValue/setvalue002/TestDescription.java \
+  vmTestbase/nsk/jdi/ObjectReference/setValue/setvalue003/TestDescription.java \
+  vmTestbase/nsk/jdi/ObjectReference/setValue/setvalue004/TestDescription.java \
+  vmTestbase/nsk/jdi/ObjectReference/setValue/setvalue005/TestDescription.java \
+  vmTestbase/nsk/jdi/ReferenceType/_bounds_/bounds001/TestDescription.java \
+  vmTestbase/nsk/jdi/ReferenceType/_bounds_/bounds002/TestDescription.java \
+  vmTestbase/nsk/jdi/ReferenceType/allFields/allfields005/TestDescription.java \
+  vmTestbase/nsk/jdi/ReferenceType/allLineLocations/alllinelocations002/TestDescription.java \
+  vmTestbase/nsk/jdi/ReferenceType/allLineLocations_ss/alllinelocations_ss002/TestDescription.java \
+  vmTestbase/nsk/jdi/ReferenceType/allMethods/allmethods005/TestDescription.java \
+  vmTestbase/nsk/jdi/ReferenceType/fields/fields005/TestDescription.java \
+  vmTestbase/nsk/jdi/ReferenceType/getValue/getvalue004/TestDescription.java \
+  vmTestbase/nsk/jdi/ReferenceType/getValue/getvalue005/TestDescription.java \
+  vmTestbase/nsk/jdi/ReferenceType/getValues/getvalues002/TestDescription.java \
+  vmTestbase/nsk/jdi/ReferenceType/getValues/getvalues003/TestDescription.java \
+  vmTestbase/nsk/jdi/ReferenceType/locationsOfLine_i/locationsofline_i002/TestDescription.java \
+  vmTestbase/nsk/jdi/ReferenceType/locationsOfLine_ssi/locationsofline_ssi002/TestDescription.java \
+  vmTestbase/nsk/jdi/ReferenceType/methods/methods005/TestDescription.java \
+  vmTestbase/nsk/jdi/ReferenceType/sourceName/sourcename004/TestDescription.java \
+  vmTestbase/nsk/jdi/ReferenceType/sourceNames/sourcenames002/TestDescription.java \
+  vmTestbase/nsk/jdi/ReferenceType/sourcePaths/sourcepaths002/TestDescription.java \
+  vmTestbase/nsk/jdi/ReferenceType/visibleFields/visibfield005/TestDescription.java \
+  vmTestbase/nsk/jdi/ReferenceType/visibleMethods/visibmethod006/TestDescription.java \
+  vmTestbase/nsk/jdi/Scenarios/invokeMethod/popframes001/TestDescription.java \
+  vmTestbase/nsk/jdi/Scenarios/invokeMethod/redefineclasses001/TestDescription.java \
+  vmTestbase/nsk/jdi/StackFrame/_bounds_/bounds002/TestDescription.java \
+  vmTestbase/nsk/jdi/StackFrame/getValue/getvalue003/TestDescription.java \
+  vmTestbase/nsk/jdi/StackFrame/getValues/getvalues003/TestDescription.java \
+  vmTestbase/nsk/jdi/StackFrame/hashCode/hashcode001/TestDescription.java \
+  vmTestbase/nsk/jdi/StackFrame/setValue/setvalue005/setvalue005.java \
+  vmTestbase/nsk/jdi/StackFrame/setValue/setvalue006/setvalue006.java \
+  vmTestbase/nsk/jdi/StackFrame/toString/tostring001/TestDescription.java \
+  vmTestbase/nsk/jdi/StepRequest/_bounds_/filters001/TestDescription.java \
+  vmTestbase/nsk/jdi/StepRequest/addClassFilter_rt/filter_rt003/TestDescription.java \
+  vmTestbase/nsk/jdi/StepRequest/addInstanceFilter/instancefilter001/TestDescription.java \
+  vmTestbase/nsk/jdi/StepRequest/addInstanceFilter/instancefilter002/TestDescription.java \
+  vmTestbase/nsk/jdi/StepRequest/addInstanceFilter/instancefilter003/TestDescription.java \
+  vmTestbase/nsk/jdi/StepRequest/addInstanceFilter/instancefilter004/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadGroupReference/toString/tostring001/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadReference/frames_ii/frames_ii001/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadReference/ownedMonitors/ownedmonitors002/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadReference/popFrames/popframes001/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadReference/popFrames/popframes002/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadReference/popFrames/popframes003/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadReference/popFrames/popframes004/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadReference/popFrames/popframes005/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadReference/popFrames/popframes006/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadReference/popFrames/popframes007/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadReference/stop/stop002/TestDescription.java \
+  vmTestbase/nsk/jdi/Type/hashCode/hashcode001/TestDescription.java \
+  vmTestbase/nsk/jdi/TypeComponent/isPackagePrivate/ispackageprivate001/TestDescription.java \
+  vmTestbase/nsk/jdi/TypeComponent/isPrivate/isprivate001/TestDescription.java \
+  vmTestbase/nsk/jdi/TypeComponent/isProtected/isprotected001/TestDescription.java \
+  vmTestbase/nsk/jdi/TypeComponent/isPublic/ispublic001/TestDescription.java \
+  vmTestbase/nsk/jdi/WatchpointEvent/_itself_/wevent001/TestDescription.java \
+  vmTestbase/nsk/jdi/WatchpointRequest/_bounds_/filters001/TestDescription.java \
+  vmTestbase/nsk/jdi/WatchpointRequest/addInstanceFilter/instancefilter001/TestDescription.java \
+  vmTestbase/nsk/jdi/WatchpointRequest/addInstanceFilter/instancefilter002/TestDescription.java \
+  vmTestbase/nsk/jdi/WatchpointRequest/addInstanceFilter/instancefilter003/TestDescription.java \
+  vmTestbase/nsk/jdi/WatchpointRequest/addInstanceFilter/instancefilter004/TestDescription.java \
+  vmTestbase/nsk/jdi/WatchpointRequest/addInstanceFilter/instancefilter005/TestDescription.java \
+  vmTestbase/nsk/jdi/WatchpointRequest/addInstanceFilter/instancefilter006/TestDescription.java \
+  vmTestbase/nsk/jdi/WatchpointRequest/addInstanceFilter/instancefilter007/TestDescription.java \
+  vmTestbase/nsk/jdi/WatchpointRequest/addInstanceFilter/instancefilter008/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/canAddMethod/canaddmethod001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/canGetSourceDebugExtension/cangetsde001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/canPopFrames/canpopframes001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/canRedefineClasses/canredefineclasses001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/canRequestVMDeathEvent/canreqvmdev001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/canUnrestrictedlyRedefineClasses/curc001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/canUseInstanceFilters/canusefilters001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/getDefaultStratum/getdefaultstratum001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses002/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses003/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses004/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses005/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses006/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses007/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses008/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses009/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses010/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses011/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses012/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses013/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses014/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses015/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses016/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses020/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses022/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses024/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses026/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses027/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses028/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses029/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses030/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses032/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses034/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses035/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/setDefaultStratum/setdefaultstratum001/TestDescription.java \
+  vmTestbase/nsk/jdi/VoidType/toString/tostring001/TestDescription.java \
+  vmTestbase/nsk/jdi/VoidValue/equals/equals002/TestDescription.java \
+  vmTestbase/nsk/jdi/VoidValue/toString/tostring001/TestDescription.java \
+  vmTestbase/nsk/jdi/ConstantField/values001/TestDescription.java \
+  vmTestbase/nsk/jdi/Accessible/isPackagePrivate/accipp002/TestDescription.java \
+  vmTestbase/nsk/jdi/Accessible/isPrivate/isprivate002/TestDescription.java \
+  vmTestbase/nsk/jdi/Accessible/isProtected/isprotected002/TestDescription.java \
+  vmTestbase/nsk/jdi/Accessible/isPublic/ispublic002/TestDescription.java \
+  vmTestbase/nsk/jdi/Accessible/isPublic/ispublic003/TestDescription.java \
+  vmTestbase/nsk/jdi/Accessible/modifiers/modifiers002/TestDescription.java \
+  vmTestbase/nsk/jdi/ClassType/allInterfaces/allinterfaces002/TestDescription.java \
+  vmTestbase/nsk/jdi/ClassType/interfaces/interfaces002/TestDescription.java \
+  vmTestbase/nsk/jdi/ClassType/invokeMethod/invokemethod015/TestDescription.java \
+  vmTestbase/nsk/jdi/ClassType/isEnum/isenum001/TestDescription.java \
+  vmTestbase/nsk/jdi/ClassType/setValue/setvalue008/TestDescription.java \
+  vmTestbase/nsk/jdi/ClassType/subclasses/subclasses002/TestDescription.java \
+  vmTestbase/nsk/jdi/ClassType/superclass/superclass002/TestDescription.java \
+  vmTestbase/nsk/jdi/Field/isEnumConstant/isenumconstant001/TestDescription.java \
+  vmTestbase/nsk/jdi/Field/type/type004/TestDescription.java \
+  vmTestbase/nsk/jdi/Field/typeName/typename002/TestDescription.java \
+  vmTestbase/nsk/jdi/LocalVariable/genericSignature/gensignature001/TestDescription.java \
+  vmTestbase/nsk/jdi/Method/arguments/arguments003/TestDescription.java \
+  vmTestbase/nsk/jdi/Method/argumentTypeNames/argumenttypenames003/TestDescription.java \
+  vmTestbase/nsk/jdi/Method/isBridge/isbridge001/TestDescription.java \
+  vmTestbase/nsk/jdi/Method/isVarArgs/isvarargs001/TestDescription.java \
+  vmTestbase/nsk/jdi/PlugConnectors/AttachConnector/plugAttachConnect001/plugAttachConnect001.java \
+  vmTestbase/nsk/jdi/PlugConnectors/AttachConnector/plugAttachConnect002/plugAttachConnect002.java \
+  vmTestbase/nsk/jdi/PlugConnectors/AttachConnector/plugAttachConnect003/plugAttachConnect003.java \
+  vmTestbase/nsk/jdi/PlugConnectors/LaunchConnector/plugLaunchConnect001/plugLaunchConnect001.java \
+  vmTestbase/nsk/jdi/PlugConnectors/LaunchConnector/plugLaunchConnect002/plugLaunchConnect002.java \
+  vmTestbase/nsk/jdi/PlugConnectors/LaunchConnector/plugLaunchConnect003/plugLaunchConnect003.java \
+  vmTestbase/nsk/jdi/PlugConnectors/ListenConnector/plugListenConnect001/plugListenConnect001.java \
+  vmTestbase/nsk/jdi/PlugConnectors/ListenConnector/plugListenConnect002/plugListenConnect002.java \
+  vmTestbase/nsk/jdi/PlugConnectors/ListenConnector/plugListenConnect003/plugListenConnect003.java \
+  vmTestbase/nsk/jdi/PlugConnectors/MultiConnectors/plugMultiConnect001/plugMultiConnect001.java \
+  vmTestbase/nsk/jdi/PlugConnectors/MultiConnectors/plugMultiConnect002/plugMultiConnect002.java \
+  vmTestbase/nsk/jdi/PlugConnectors/MultiConnectors/plugMultiConnect003/plugMultiConnect003.java \
+  vmTestbase/nsk/jdi/PlugConnectors/MultiConnectors/plugMultiConnect004/plugMultiConnect004.java \
+  vmTestbase/nsk/jdi/PlugConnectors/MultiConnectors/plugMultiConnect005/plugMultiConnect005.java \
+  vmTestbase/nsk/jdi/PlugConnectors/MultiConnectors/plugMultiConnect006/plugMultiConnect006.java \
+  vmTestbase/nsk/jdi/PlugConnectors/TransportService/transportService001/transportService001.java \
+  vmTestbase/nsk/jdi/PlugConnectors/TransportService/transportService002/transportService002.java \
+  vmTestbase/nsk/jdi/PlugConnectors/TransportService/transportService003/transportService003.java \
+  vmTestbase/nsk/jdi/ReferenceType/allFields/allfields006/TestDescription.java \
+  vmTestbase/nsk/jdi/ReferenceType/allMethods/allmethods006/TestDescription.java \
+  vmTestbase/nsk/jdi/ReferenceType/classObject/classobj003/TestDescription.java \
+  vmTestbase/nsk/jdi/ReferenceType/fields/fields006/TestDescription.java \
+  vmTestbase/nsk/jdi/ReferenceType/genericSignature/genericSignature001/TestDescription.java \
+  vmTestbase/nsk/jdi/ReferenceType/genericSignature/genericSignature002/TestDescription.java \
+  vmTestbase/nsk/jdi/ReferenceType/isAbstract/isabstract003/TestDescription.java \
+  vmTestbase/nsk/jdi/ReferenceType/isFinal/isfinal002/TestDescription.java \
+  vmTestbase/nsk/jdi/ReferenceType/isInitialized/isinit003/TestDescription.java \
+  vmTestbase/nsk/jdi/ReferenceType/methods/methods006/TestDescription.java \
+  vmTestbase/nsk/jdi/ReferenceType/visibleFields/visibfield006/TestDescription.java \
+  vmTestbase/nsk/jdi/ReferenceType/visibleMethods/visibmethod007/TestDescription.java \
+  vmTestbase/nsk/jdi/TypeComponent/declaringType/decltype009/TestDescription.java \
+  vmTestbase/nsk/jdi/TypeComponent/genericSignature/genericSignature001/TestDescription.java \
+  vmTestbase/nsk/jdi/TypeComponent/genericSignature/genericSignature002/TestDescription.java \
+  vmTestbase/nsk/jdi/TypeComponent/isFinal/isfinal004/TestDescription.java \
+  vmTestbase/nsk/jdi/TypeComponent/isStatic/isstatic004/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/canBeModified/canbemodified001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachineManager/createVirtualMachine/createVM001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachineManager/createVirtualMachine/createVM002/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachineManager/createVirtualMachine/createVM003/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachineManager/createVirtualMachine/createVM004/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachineManager/createVirtualMachine/createVM005/TestDescription.java \
+  vmTestbase/nsk/jdi/VMCannotBeModifiedEx/_itself_/canntbemod001/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/instanceCounts/instancecounts001/instancecounts001.java \
+  vmTestbase/nsk/jdi/VirtualMachine/instanceCounts/instancecounts002/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/instanceCounts/instancecounts003/instancecounts003.java \
+  vmTestbase/nsk/jdi/VirtualMachine/instanceCounts/instancecounts004/instancecounts004.java \
+  vmTestbase/nsk/jdi/ReferenceType/instances/instances001/instances001.java \
+  vmTestbase/nsk/jdi/ReferenceType/instances/instances002/instances002.java \
+  vmTestbase/nsk/jdi/ReferenceType/instances/instances005/instances005.java \
+  vmTestbase/nsk/jdi/ObjectReference/referringObjects/referringObjects001/referringObjects001.java \
+  vmTestbase/nsk/jdi/ObjectReference/referringObjects/referringObjects002/referringObjects002.java \
+  vmTestbase/nsk/jdi/ObjectReference/referringObjects/referringObjects003/referringObjects003.java \
+  vmTestbase/nsk/jdi/ObjectReference/referringObjects/referringObjects004/referringObjects004.java \
+  vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn002/forceEarlyReturn002.java \
+  vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn003/forceEarlyReturn003.java \
+  vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn004/forceEarlyReturn004.java \
+  vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn005/forceEarlyReturn005.java \
+  vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn006/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn007/TestDescription.java \
+  vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn008/forceEarlyReturn008.java \
+  vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn009/forceEarlyReturn009.java \
+  vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn013/forceEarlyReturn013.java \
+  vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn014/forceEarlyReturn014.java \
+  vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn015/forceEarlyReturn015.java \
+  vmTestbase/nsk/jdi/ThreadReference/ownedMonitorsAndFrames/ownedMonitorsAndFrames001/ownedMonitorsAndFrames001.java \
+  vmTestbase/nsk/jdi/ThreadReference/ownedMonitorsAndFrames/ownedMonitorsAndFrames002/ownedMonitorsAndFrames002.java \
+  vmTestbase/nsk/jdi/ThreadReference/ownedMonitorsAndFrames/ownedMonitorsAndFrames003/ownedMonitorsAndFrames003.java \
+  vmTestbase/nsk/jdi/ThreadReference/ownedMonitorsAndFrames/ownedMonitorsAndFrames004/ownedMonitorsAndFrames004.java \
+  vmTestbase/nsk/jdi/ThreadReference/ownedMonitorsAndFrames/ownedMonitorsAndFrames005/ownedMonitorsAndFrames005.java \
+  vmTestbase/nsk/jdi/ThreadReference/ownedMonitorsAndFrames/ownedMonitorsAndFrames008/TestDescription.java \
+  vmTestbase/nsk/jdi/MonitorContendedEnteredRequest/addClassExclusionFilter/TestDescription.java \
+  vmTestbase/nsk/jdi/MonitorContendedEnteredRequest/addClassFilter_ClassName/TestDescription.java \
+  vmTestbase/nsk/jdi/MonitorContendedEnteredRequest/addClassFilter_ReferenceType/TestDescription.java \
+  vmTestbase/nsk/jdi/MonitorContendedEnteredRequest/addInstanceFilter/TestDescription.java \
+  vmTestbase/nsk/jdi/MonitorContendedEnteredRequest/addThreadFilter/TestDescription.java \
+  vmTestbase/nsk/jdi/MonitorContendedEnterRequest/addClassExclusionFilter/TestDescription.java \
+  vmTestbase/nsk/jdi/MonitorContendedEnterRequest/addClassFilter_ClassName/TestDescription.java \
+  vmTestbase/nsk/jdi/MonitorContendedEnterRequest/addClassFilter_ReferenceType/TestDescription.java \
+  vmTestbase/nsk/jdi/MonitorContendedEnterRequest/addInstanceFilter/TestDescription.java \
+  vmTestbase/nsk/jdi/MonitorContendedEnterRequest/addThreadFilter/TestDescription.java \
+  vmTestbase/nsk/jdi/MonitorWaitRequest/addClassExclusionFilter/TestDescription.java \
+  vmTestbase/nsk/jdi/MonitorWaitRequest/addClassFilter_ClassName/TestDescription.java \
+  vmTestbase/nsk/jdi/MonitorWaitRequest/addClassFilter_ReferenceType/TestDescription.java \
+  vmTestbase/nsk/jdi/MonitorWaitRequest/addInstanceFilter/TestDescription.java \
+  vmTestbase/nsk/jdi/MonitorWaitRequest/addThreadFilter/TestDescription.java \
+  vmTestbase/nsk/jdi/MonitorWaitedRequest/addClassExclusionFilter/TestDescription.java \
+  vmTestbase/nsk/jdi/MonitorWaitedRequest/addClassFilter_ClassName/TestDescription.java \
+  vmTestbase/nsk/jdi/MonitorWaitedRequest/addClassFilter_ReferenceType/TestDescription.java \
+  vmTestbase/nsk/jdi/MonitorWaitedRequest/addInstanceFilter/TestDescription.java \
+  vmTestbase/nsk/jdi/MonitorWaitedRequest/addThreadFilter/TestDescription.java \
+  vmTestbase/nsk/jdi/stress/ClassPrepareEvents/ClassPrepareEvents001/ClassPrepareEvents001.java \
+  vmTestbase/nsk/jdi/ClassPrepareRequest/addSourceNameFilter/addSourceNameFilter001/addSourceNameFilter001.java \
+  vmTestbase/nsk/jdi/ClassPrepareRequest/addSourceNameFilter/addSourceNameFilter002/addSourceNameFilter002.java \
+  vmTestbase/nsk/jdi/VMOutOfMemoryException/VMOutOfMemoryException001/VMOutOfMemoryException001.java \
+  vmTestbase/nsk/jdi/stress/serial/forceEarlyReturn001/TestDescription.java \
+  vmTestbase/nsk/jdi/stress/serial/heapwalking001/TestDescription.java \
+  vmTestbase/nsk/jdi/stress/serial/monitorEvents001/TestDescription.java \
+  vmTestbase/nsk/jdi/stress/serial/ownedMonitorsAndFrames001/TestDescription.java \
+  vmTestbase/nsk/jdi/stress/serial/mixed001/TestDescription.java \
+  vmTestbase/nsk/jdi/stress/serial/forceEarlyReturn002/TestDescription.java \
+  vmTestbase/nsk/jdi/stress/serial/monitorEvents002/TestDescription.java \
+  vmTestbase/nsk/jdi/stress/serial/ownedMonitorsAndFrames002/TestDescription.java \
+  vmTestbase/nsk/jdi/VirtualMachine/setDefaultStratum/setDefaultStratum002/setDefaultStratum002.java \
+  vmTestbase/nsk/jdi/ReferenceType/allLineLocations_ss/allLineLocations_ss003/allLineLocations_ss003.java \
+  vmTestbase/nsk/jdi/ReferenceType/allLineLocations_ss/allLineLocations_ss004/allLineLocations_ss004.java \
+  vmTestbase/nsk/jdi/Method/allLineLocations_ss/allLineLocations_ss002/allLineLocations_ss002.java \
+  vmTestbase/nsk/jdi/Method/allLineLocations_ss/allLineLocations_ss003/allLineLocations_ss003.java \
+  vmTestbase/nsk/jdi/ReferenceType/locationsOfLine_ssi/locationsOfLine_ssi003/locationsOfLine_ssi003.java \
+  vmTestbase/nsk/jdi/ReferenceType/locationsOfLine_ssi/locationsOfLine_ssi004/locationsOfLine_ssi004.java \
+  vmTestbase/nsk/jdi/Method/locationsOfLine_ssi/locationsOfLine_ssi002/locationsOfLine_ssi002.java \
+  vmTestbase/nsk/jdi/Method/locationsOfLine_ssi/locationsOfLine_ssi003/locationsOfLine_ssi003.java \
+  vmTestbase/nsk/jdi/ReferenceType/sourceNames/sourceNames003/sourceNames003.java \
+  vmTestbase/nsk/jdi/ReferenceType/sourcePaths/sourcePaths003/sourcePaths003.java \
+  vmTestbase/nsk/jdi/ReferenceType/availableStrata/availableStrata002/availableStrata002.java \
+  vmTestbase/nsk/jdi/ReferenceType/defaultStratum/defaultStratum002/defaultStratum002.java \
+  vmTestbase/nsk/jdi/Location/lineNumber_s/lineNumber_s002/lineNumber_s002.java \
+  vmTestbase/nsk/jdi/Location/sourceName_s/sourceName_s002/sourceName_s002.java \
+  vmTestbase/nsk/jdi/Location/sourcePath_s/sourcePath_s002/sourcePath_s002.java \
+  vmTestbase/nsk/jdi/AttachingConnector/attach/attach005/TestDescription.java \
+  vmTestbase/nsk/jdi/AttachingConnector/attachnosuspend/attachnosuspend002/TestDescription.java \
+  vmTestbase/nsk/jdi/AttachingConnector/attachnosuspend/attachnosuspend003/TestDescription.java \
+  vmTestbase/nsk/jdi/MethodExitEvent/returnValue/returnValue001/returnValue001.java \
+  vmTestbase/nsk/jdi/MethodExitEvent/returnValue/returnValue002/returnValue002.java \
+  vmTestbase/nsk/jdi/MethodExitEvent/returnValue/returnValue003/returnValue003.java \
+  vmTestbase/nsk/jdi/MethodExitEvent/returnValue/returnValue004/returnValue004.java \
+  vmTestbase/nsk/jdi/StackFrame/getArgumentValues/getArgumentValues001/getArgumentValues001.java \
+  vmTestbase/nsk/jdi/StackFrame/getArgumentValues/getArgumentValues002/getArgumentValues002.java \
+  vmTestbase/nsk/jdi/StackFrame/getArgumentValues/getArgumentValues003/getArgumentValues003.java
+
+vmTestbase_nsk_jvmti_quick = \
+  vmTestbase/nsk/jvmti/AddCapabilities/addcaps001/TestDescription.java \
+  vmTestbase/nsk/jvmti/AddCapabilities/addcaps002/TestDescription.java \
+  vmTestbase/nsk/jvmti/AddCapabilities/addcaps003/TestDescription.java \
+  vmTestbase/nsk/jvmti/AddToBootstrapClassLoaderSearch/bootclssearch001/TestDescription.java \
+  vmTestbase/nsk/jvmti/AddToBootstrapClassLoaderSearch/bootclssearch002/TestDescription.java \
+  vmTestbase/nsk/jvmti/AddToBootstrapClassLoaderSearch/bootclssearch003/TestDescription.java \
+  vmTestbase/nsk/jvmti/AddToBootstrapClassLoaderSearch/bootclssearch004/TestDescription.java \
+  vmTestbase/nsk/jvmti/AddToBootstrapClassLoaderSearch/bootclssearch007/TestDescription.java \
+  vmTestbase/nsk/jvmti/AddToBootstrapClassLoaderSearch/bootclssearch008/TestDescription.java \
+  vmTestbase/nsk/jvmti/AddToBootstrapClassLoaderSearch/bootclssearch009/TestDescription.java \
+  vmTestbase/nsk/jvmti/AddToBootstrapClassLoaderSearch/bootclssearch010/TestDescription.java \
+  vmTestbase/nsk/jvmti/AddToSystemClassLoaderSearch/systemclssearch001/TestDescription.java \
+  vmTestbase/nsk/jvmti/AddToSystemClassLoaderSearch/systemclssearch002/TestDescription.java \
+  vmTestbase/nsk/jvmti/AddToSystemClassLoaderSearch/systemclssearch003/TestDescription.java \
+  vmTestbase/nsk/jvmti/AddToSystemClassLoaderSearch/systemclssearch004/TestDescription.java \
+  vmTestbase/nsk/jvmti/AddToSystemClassLoaderSearch/systemclssearch005/TestDescription.java \
+  vmTestbase/nsk/jvmti/AddToSystemClassLoaderSearch/systemclssearch006/TestDescription.java \
+  vmTestbase/nsk/jvmti/Agent_OnLoad/agentonload001/TestDescription.java \
+  vmTestbase/nsk/jvmti/Agent_OnLoad/agentonload002/TestDescription.java \
+  vmTestbase/nsk/jvmti/Agent_OnLoad/agentonload003/TestDriver.java \
+  vmTestbase/nsk/jvmti/Agent_OnUnload/agentonunload001/TestDriver.java \
+  vmTestbase/nsk/jvmti/Breakpoint/breakpoint001/TestDescription.java \
+  vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk001/TestDescription.java \
+  vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk002/TestDescription.java \
+  vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk003/TestDescription.java \
+  vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk004/TestDescription.java \
+  vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk005/TestDescription.java \
+  vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk006/TestDescription.java \
+  vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk007/TestDescription.java \
+  vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk008/TestDescription.java \
+  vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk009/TestDescription.java \
+  vmTestbase/nsk/jvmti/ClassLoad/classload001/TestDescription.java \
+  vmTestbase/nsk/jvmti/ClassPrepare/classprep001/TestDescription.java \
+  vmTestbase/nsk/jvmti/ClearBreakpoint/clrbrk001/TestDescription.java \
+  vmTestbase/nsk/jvmti/ClearBreakpoint/clrbrk002/TestDescription.java \
+  vmTestbase/nsk/jvmti/ClearBreakpoint/clrbrk005/TestDescription.java \
+  vmTestbase/nsk/jvmti/ClearFieldAccessWatch/clrfldw001/TestDescription.java \
+  vmTestbase/nsk/jvmti/ClearFieldAccessWatch/clrfldw002/TestDescription.java \
+  vmTestbase/nsk/jvmti/ClearFieldModificationWatch/clrfmodw001/TestDescription.java \
+  vmTestbase/nsk/jvmti/ClearFieldModificationWatch/clrfmodw002/TestDescription.java \
+  vmTestbase/nsk/jvmti/CompiledMethodLoad/compmethload001/TestDescription.java \
+  vmTestbase/nsk/jvmti/CreateRawMonitor/crrawmon001/TestDescription.java \
+  vmTestbase/nsk/jvmti/CreateRawMonitor/crrawmon002/TestDescription.java \
+  vmTestbase/nsk/jvmti/DisposeEnvironment/disposeenv001/TestDescription.java \
+  vmTestbase/nsk/jvmti/DisposeEnvironment/disposeenv002/TestDescription.java \
+  vmTestbase/nsk/jvmti/Deallocate/dealloc001/TestDescription.java \
+  vmTestbase/nsk/jvmti/DestroyRawMonitor/drrawmon001/TestDescription.java \
+  vmTestbase/nsk/jvmti/DestroyRawMonitor/drrawmon003/TestDescription.java \
+  vmTestbase/nsk/jvmti/DestroyRawMonitor/drrawmon004/TestDescription.java \
+  vmTestbase/nsk/jvmti/DynamicCodeGenerated/dyncodgen001/TestDescription.java \
+  vmTestbase/nsk/jvmti/Exception/exception001/TestDescription.java \
+  vmTestbase/nsk/jvmti/ExceptionCatch/excatch001/TestDescription.java \
+  vmTestbase/nsk/jvmti/FieldAccess/fieldacc001/TestDescription.java \
+  vmTestbase/nsk/jvmti/FieldAccess/fieldacc002/TestDescription.java \
+  vmTestbase/nsk/jvmti/FieldAccess/fieldacc003/TestDescription.java \
+  vmTestbase/nsk/jvmti/FieldAccess/fieldacc004/TestDescription.java \
+  vmTestbase/nsk/jvmti/FieldModification/fieldmod001/TestDescription.java \
+  vmTestbase/nsk/jvmti/FieldModification/fieldmod002/TestDescription.java \
+  vmTestbase/nsk/jvmti/ForceGarbageCollection/forcegc001/TestDescription.java \
+  vmTestbase/nsk/jvmti/ForceGarbageCollection/forcegc002/TestDescription.java \
+  vmTestbase/nsk/jvmti/FramePop/framepop001/TestDescription.java \
+  vmTestbase/nsk/jvmti/FramePop/framepop002/TestDescription.java \
+  vmTestbase/nsk/jvmti/GenerateEvents/genevents001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetAllThreads/allthr001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetAllThreads/allthr002/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetAvailableProcessors/getavailproc001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetArgumentsSize/argsize001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetArgumentsSize/argsize002/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetBytecodes/bytecodes001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetBytecodes/bytecodes002/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetBytecodes/bytecodes003/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetCapabilities/getcaps001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetCapabilities/getcaps002/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetClassFields/getclfld005/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetClassFields/getclfld006/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetClassFields/getclfld007/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetClassLoader/getclsldr001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetClassLoader/getclsldr002/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetClassLoader/getclsldr003/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetClassLoaderClasses/clsldrclss001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetClassLoaderClasses/clsldrclss002/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetClassMethods/getclmthd005/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetClassMethods/getclmthd006/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetClassMethods/getclmthd007/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetClassModifiers/getclmdf004/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetClassModifiers/getclmdf005/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetClassModifiers/getclmdf006/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetClassModifiers/getclmdf007/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetClassSignature/getclsig004/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetClassSignature/getclsig005/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetClassSignature/getclsig006/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetClassStatus/getclstat005/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetClassStatus/getclstat006/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetClassStatus/getclstat007/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetCurrentContendedMonitor/contmon001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetCurrentContendedMonitor/contmon002/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetCurrentContendedMonitor/contmon003/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetCurrentThreadCpuTime/curthrcputime001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetCurrentThreadCpuTimerInfo/curthrtimerinfo001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetEnvironmentLocalStorage/getenvstor001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetErrorName/geterrname001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetErrorName/geterrname002/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetExtensionEvents/extevents001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetExtensionFunctions/extfuncs001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetFieldDeclaringClass/getfldecl001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetFieldDeclaringClass/getfldecl002/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetFieldDeclaringClass/getfldecl004/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetFieldModifiers/getfldmdf003/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetFieldModifiers/getfldmdf004/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetFieldName/getfldnm003/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetFieldName/getfldnm004/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetFieldName/getfldnm005/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetFrameCount/framecnt001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetFrameCount/framecnt002/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetFrameCount/framecnt003/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetFrameLocation/frameloc002/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetFrameLocation/frameloc003/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetImplementedInterfaces/getintrf005/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetImplementedInterfaces/getintrf006/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetImplementedInterfaces/getintrf007/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetJLocationFormat/getjlocfmt001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetJLocationFormat/getjlocfmt002/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetJNIFunctionTable/getjniftab001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetJNIFunctionTable/getjniftab002/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetLineNumberTable/linetab001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetLineNumberTable/linetab002/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetLineNumberTable/linetab003/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetLoadedClasses/loadedclss001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetLoadedClasses/loadedclss002/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetLocalVariable/getlocal001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetLocalVariable/getlocal002/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetLocalVariableTable/localtab001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetLocalVariableTable/localtab002/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetLocalVariableTable/localtab003/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetLocalVariableTable/localtab004/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetLocalVariableTable/localtab005/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetMaxLocals/maxloc001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetMaxLocals/maxloc002/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetMethodDeclaringClass/declcls001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetMethodDeclaringClass/declcls002/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetMethodDeclaringClass/declcls003/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetObjectHashCode/objhashcode001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetMethodLocation/methloc001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetMethodLocation/methloc002/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetMethodModifiers/methmod001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetMethodModifiers/methmod002/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetMethodName/methname001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetMethodName/methname002/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetMethodName/methname003/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage002/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage003/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage004/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage005/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetObjectSize/objsize001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetObjectsWithTags/objwithtags001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetOwnedMonitorInfo/ownmoninf001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetOwnedMonitorInfo/ownmoninf002/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetOwnedMonitorInfo/ownmoninf003/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetPhase/getphase001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetPhase/getphase002/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetPotentialCapabilities/getpotcaps001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetSourceDebugExtension/srcdebugex001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetSourceDebugExtension/srcdebugex002/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetSourceDebugExtension/srcdebugex003/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetSourceFileName/getsrcfn004/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetSourceFileName/getsrcfn005/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetSourceFileName/getsrcfn006/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetSystemProperties/getsysprops001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetSystemProperties/getsysprops002/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetSystemProperty/getsysprop001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetSystemProperty/getsysprop002/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetStackTrace/getstacktr001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetStackTrace/getstacktr002/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetStackTrace/getstacktr003/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetStackTrace/getstacktr004/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetStackTrace/getstacktr005/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetStackTrace/getstacktr006/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetStackTrace/getstacktr007/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetStackTrace/getstacktr008/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetStackTrace/getstacktr009/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetTag/gettag001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetThreadCpuTime/thrcputime001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetThreadCpuTime/thrcputime002/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetThreadCpuTimerInfo/thrtimerinfo001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetThreadGroupChildren/getthrdgrpchld001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetThreadGroupInfo/thrgrpinfo001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetThreadGroupInfo/thrgrpinfo002/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetThreadInfo/thrinfo001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetThreadInfo/thrinfo002/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetThreadLocalStorage/getthrdstor001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetThreadState/thrstat001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetThreadState/thrstat002/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetThreadState/thrstat003/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetThreadState/thrstat004/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetThreadState/thrstat005/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetTime/gettime001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetTimerInfo/timerinfo001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetTopThreadGroups/topthrgrp001/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetTopThreadGroups/topthrgrp002/TestDescription.java \
+  vmTestbase/nsk/jvmti/GetVersionNumber/getvern001/TestDescription.java \
+  vmTestbase/nsk/jvmti/InterruptThread/intrpthrd001/TestDescription.java \
+  vmTestbase/nsk/jvmti/InterruptThread/intrpthrd002/TestDescription.java \
+  vmTestbase/nsk/jvmti/InterruptThread/intrpthrd003/TestDescription.java \
+  vmTestbase/nsk/jvmti/IsArrayClass/isarray004/TestDescription.java \
+  vmTestbase/nsk/jvmti/IsArrayClass/isarray005/TestDescription.java \
+  vmTestbase/nsk/jvmti/IsFieldSynthetic/isfldsin002/TestDescription.java \
+  vmTestbase/nsk/jvmti/IsFieldSynthetic/isfldsin003/TestDescription.java \
+  vmTestbase/nsk/jvmti/IsInterface/isintrf004/TestDescription.java \
+  vmTestbase/nsk/jvmti/IsInterface/isintrf005/TestDescription.java \
+  vmTestbase/nsk/jvmti/IsMethodNative/isnative001/TestDescription.java \
+  vmTestbase/nsk/jvmti/IsMethodNative/isnative002/TestDescription.java \
+  vmTestbase/nsk/jvmti/IsMethodObsolete/isobsolete001/TestDescription.java \
+  vmTestbase/nsk/jvmti/IsMethodSynthetic/issynth001/TestDescription.java \
+  vmTestbase/nsk/jvmti/IsMethodSynthetic/issynth002/TestDescription.java \
+  vmTestbase/nsk/jvmti/IterateOverHeap/iterheap001/TestDescription.java \
+  vmTestbase/nsk/jvmti/IterateOverHeap/iterheap002/TestDescription.java \
+  vmTestbase/nsk/jvmti/IterateOverHeap/iterheap003/TestDescription.java \
+  vmTestbase/nsk/jvmti/IterateOverHeap/iterheap004/TestDescription.java \
+  vmTestbase/nsk/jvmti/IterateOverHeap/iterheap005/TestDescription.java \
+  vmTestbase/nsk/jvmti/IterateOverHeap/iterheap006/TestDescription.java \
+  vmTestbase/nsk/jvmti/IterateOverHeap/iterheap007/TestDescription.java \
+  vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls001/TestDescription.java \
+  vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls002/TestDescription.java \
+  vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls003/TestDescription.java \
+  vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls004/TestDescription.java \
+  vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls005/TestDescription.java \
+  vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls006/TestDescription.java \
+  vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls007/TestDescription.java \
+  vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj001/TestDescription.java \
+  vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj002/TestDescription.java \
+  vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj003/TestDescription.java \
+  vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj004/TestDescription.java \
+  vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj005/TestDescription.java \
+  vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj001/TestDescription.java \
+  vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj002/TestDescription.java \
+  vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj003/TestDescription.java \
+  vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj004/TestDescription.java \
+  vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj005/TestDescription.java \
+  vmTestbase/nsk/jvmti/IterateThroughHeap/callbacks/Callbacks.java \
+  vmTestbase/nsk/jvmti/IterateThroughHeap/concrete-klass-filter/TestDescription.java \
+  vmTestbase/nsk/jvmti/IterateThroughHeap/non-concrete-klass-filter/TestDescription.java \
+  vmTestbase/nsk/jvmti/IterateThroughHeap/filter-tagged/TestDescription.java \
+  vmTestbase/nsk/jvmti/IterateThroughHeap/filter-untagged/TestDescription.java \
+  vmTestbase/nsk/jvmti/IterateThroughHeap/filter-class-tagged/TestDescription.java \
+  vmTestbase/nsk/jvmti/IterateThroughHeap/filter-class-untagged/TestDescription.java \
+  vmTestbase/nsk/jvmti/IterateThroughHeap/abort/Abort.java \
+  vmTestbase/nsk/jvmti/MethodEntry/mentry001/TestDescription.java \
+  vmTestbase/nsk/jvmti/MethodEntry/mentry002/TestDescription.java \
+  vmTestbase/nsk/jvmti/MethodExit/mexit002/TestDescription.java \
+  vmTestbase/nsk/jvmti/MonitorContendedEnter/mcontenter001/TestDescription.java \
+  vmTestbase/nsk/jvmti/MonitorContendedEntered/mcontentered001/TestDescription.java \
+  vmTestbase/nsk/jvmti/MonitorWait/monitorwait001/TestDescription.java \
+  vmTestbase/nsk/jvmti/MonitorWaited/monitorwaited001/TestDescription.java \
+  vmTestbase/nsk/jvmti/NativeMethodBind/nativemethbind001/TestDescription.java \
+  vmTestbase/nsk/jvmti/NativeMethodBind/nativemethbind002/TestDescription.java \
+  vmTestbase/nsk/jvmti/NativeMethodBind/nativemethbind003/TestDescription.java \
+  vmTestbase/nsk/jvmti/NativeMethodBind/nativemethbind004/TestDescription.java \
+  vmTestbase/nsk/jvmti/NotifyFramePop/nframepop001/TestDescription.java \
+  vmTestbase/nsk/jvmti/NotifyFramePop/nframepop002/TestDescription.java \
+  vmTestbase/nsk/jvmti/NotifyFramePop/nframepop003/TestDescription.java \
+  vmTestbase/nsk/jvmti/ObjectFree/objfree002/TestDescription.java \
+  vmTestbase/nsk/jvmti/PopFrame/popframe001/TestDescription.java \
+  vmTestbase/nsk/jvmti/PopFrame/popframe002/TestDescription.java \
+  vmTestbase/nsk/jvmti/PopFrame/popframe003/TestDescription.java \
+  vmTestbase/nsk/jvmti/PopFrame/popframe004/TestDescription.java \
+  vmTestbase/nsk/jvmti/PopFrame/popframe005/TestDescription.java \
+  vmTestbase/nsk/jvmti/PopFrame/popframe006/TestDescription.java \
+  vmTestbase/nsk/jvmti/PopFrame/popframe007/TestDescription.java \
+  vmTestbase/nsk/jvmti/PopFrame/popframe008/TestDescription.java \
+  vmTestbase/nsk/jvmti/PopFrame/popframe009/TestDescription.java \
+  vmTestbase/nsk/jvmti/PopFrame/popframe010/TestDescription.java \
+  vmTestbase/nsk/jvmti/RawMonitorEnter/rawmonenter001/TestDescription.java \
+  vmTestbase/nsk/jvmti/RawMonitorEnter/rawmonenter002/TestDescription.java \
+  vmTestbase/nsk/jvmti/RawMonitorEnter/rawmonenter003/TestDescription.java \
+  vmTestbase/nsk/jvmti/RawMonitorEnter/rawmonenter004/TestDescription.java \
+  vmTestbase/nsk/jvmti/RawMonitorExit/rawmonexit001/TestDescription.java \
+  vmTestbase/nsk/jvmti/RawMonitorExit/rawmonexit002/TestDescription.java \
+  vmTestbase/nsk/jvmti/RawMonitorExit/rawmonexit003/TestDescription.java \
+  vmTestbase/nsk/jvmti/RawMonitorExit/rawmonexit005/TestDescription.java \
+  vmTestbase/nsk/jvmti/RawMonitorNotify/rawmnntfy001/TestDescription.java \
+  vmTestbase/nsk/jvmti/RawMonitorNotify/rawmnntfy002/TestDescription.java \
+  vmTestbase/nsk/jvmti/RawMonitorNotify/rawmnntfy003/TestDescription.java \
+  vmTestbase/nsk/jvmti/RawMonitorNotify/rawmnntfy004/TestDescription.java \
+  vmTestbase/nsk/jvmti/RawMonitorNotifyAll/rawmnntfyall001/TestDescription.java \
+  vmTestbase/nsk/jvmti/RawMonitorNotifyAll/rawmnntfyall002/TestDescription.java \
+  vmTestbase/nsk/jvmti/RawMonitorNotifyAll/rawmnntfyall003/TestDescription.java \
+  vmTestbase/nsk/jvmti/RawMonitorNotifyAll/rawmnntfyall004/TestDescription.java \
+  vmTestbase/nsk/jvmti/RawMonitorWait/rawmnwait001/TestDescription.java \
+  vmTestbase/nsk/jvmti/RawMonitorWait/rawmnwait002/TestDescription.java \
+  vmTestbase/nsk/jvmti/RawMonitorWait/rawmnwait003/TestDescription.java \
+  vmTestbase/nsk/jvmti/RawMonitorWait/rawmnwait004/TestDescription.java \
+  vmTestbase/nsk/jvmti/RawMonitorWait/rawmnwait005/TestDescription.java \
+  vmTestbase/nsk/jvmti/RedefineClasses/StressRedefine/TestDescription.java \
+  vmTestbase/nsk/jvmti/RedefineClasses/StressRedefineWithoutBytecodeCorruption/TestDescription.java \
+  vmTestbase/nsk/jvmti/RedefineClasses/redefclass001/TestDescription.java \
+  vmTestbase/nsk/jvmti/RedefineClasses/redefclass002/TestDescription.java \
+  vmTestbase/nsk/jvmti/RedefineClasses/redefclass003/TestDescription.java \
+  vmTestbase/nsk/jvmti/RedefineClasses/redefclass004/TestDescription.java \
+  vmTestbase/nsk/jvmti/RedefineClasses/redefclass005/TestDescription.java \
+  vmTestbase/nsk/jvmti/RedefineClasses/redefclass006/TestDescription.java \
+  vmTestbase/nsk/jvmti/RedefineClasses/redefclass008/TestDescription.java \
+  vmTestbase/nsk/jvmti/RedefineClasses/redefclass009/TestDescription.java \
+  vmTestbase/nsk/jvmti/RedefineClasses/redefclass010/TestDescription.java \
+  vmTestbase/nsk/jvmti/RedefineClasses/redefclass011/TestDescription.java \
+  vmTestbase/nsk/jvmti/RedefineClasses/redefclass012/TestDescription.java \
+  vmTestbase/nsk/jvmti/RedefineClasses/redefclass013/TestDescription.java \
+  vmTestbase/nsk/jvmti/RedefineClasses/redefclass014/TestDescription.java \
+  vmTestbase/nsk/jvmti/RedefineClasses/redefclass015/TestDescription.java \
+  vmTestbase/nsk/jvmti/RedefineClasses/redefclass016/TestDescription.java \
+  vmTestbase/nsk/jvmti/RedefineClasses/redefclass017/TestDescription.java \
+  vmTestbase/nsk/jvmti/RedefineClasses/redefclass018/TestDescription.java \
+  vmTestbase/nsk/jvmti/RedefineClasses/redefclass019/TestDescription.java \
+  vmTestbase/nsk/jvmti/RedefineClasses/redefclass020/TestDescription.java \
+  vmTestbase/nsk/jvmti/RedefineClasses/redefclass021/TestDescription.java \
+  vmTestbase/nsk/jvmti/RedefineClasses/redefclass022/TestDescription.java \
+  vmTestbase/nsk/jvmti/RedefineClasses/redefclass023/TestDescription.java \
+  vmTestbase/nsk/jvmti/RedefineClasses/redefclass024/TestDescription.java \
+  vmTestbase/nsk/jvmti/RedefineClasses/redefclass025/TestDescription.java \
+  vmTestbase/nsk/jvmti/RedefineClasses/redefclass026/TestDescription.java \
+  vmTestbase/nsk/jvmti/RedefineClasses/redefclass027/TestDescription.java \
+  vmTestbase/nsk/jvmti/RedefineClasses/redefclass028/TestDescription.java \
+  vmTestbase/nsk/jvmti/RedefineClasses/redefclass029/TestDescription.java \
+  vmTestbase/nsk/jvmti/RedefineClasses/redefclass030/TestDescription.java \
+  vmTestbase/nsk/jvmti/RedefineClasses/redefclass031/TestDescription.java \
+  vmTestbase/nsk/jvmti/RelinquishCapabilities/relcaps001/TestDescription.java \
+  vmTestbase/nsk/jvmti/RelinquishCapabilities/relcaps002/TestDescription.java \
+  vmTestbase/nsk/jvmti/ResumeThread/resumethrd001/TestDescription.java \
+  vmTestbase/nsk/jvmti/ResumeThread/resumethrd002/TestDescription.java \
+  vmTestbase/nsk/jvmti/ResumeThreadList/resumethrdlst001/TestDescription.java \
+  vmTestbase/nsk/jvmti/ResumeThreadList/resumethrdlst002/TestDescription.java \
+  vmTestbase/nsk/jvmti/RunAgentThread/agentthr001/TestDescription.java \
+  vmTestbase/nsk/jvmti/RunAgentThread/agentthr002/TestDescription.java \
+  vmTestbase/nsk/jvmti/RunAgentThread/agentthr003/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetBreakpoint/setbrk002/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetBreakpoint/setbrk003/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetBreakpoint/setbrk005/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetBreakpoint/setbrk007/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetBreakpoint/setbrk008/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetEnvironmentLocalStorage/setenvstor001/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetEnvironmentLocalStorage/setenvstor002/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetEnvironmentLocalStorage/setenvstor003/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetEventCallbacks/setevntcallb001/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetEventCallbacks/setevntcallb002/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetEventCallbacks/setevntcallb003/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetEventNotificationMode/setnotif001/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetExtensionEventCallback/setextevent001/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw001/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw002/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw003/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw004/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw005/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw006/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetFieldModificationWatch/setfmodw002/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetFieldModificationWatch/setfmodw003/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetFieldModificationWatch/setfmodw004/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetFieldModificationWatch/setfmodw005/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetFieldModificationWatch/setfmodw006/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetJNIFunctionTable/setjniftab001/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetJNIFunctionTable/setjniftab002/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetLocalVariable/setlocal001/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetLocalVariable/setlocal002/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetLocalVariable/setlocal003/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetLocalVariable/setlocal004/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetSystemProperty/setsysprop002/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetSystemProperty/setsysprop003/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetTag/settag001/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetThreadLocalStorage/setthrdstor001/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetThreadLocalStorage/setthrdstor002/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetThreadLocalStorage/setthrdstor003/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetVerboseFlag/setvrbflag001/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetVerboseFlag/setvrbflag002/TestDescription.java \
+  vmTestbase/nsk/jvmti/SingleStep/singlestep001/TestDescription.java \
+  vmTestbase/nsk/jvmti/SingleStep/singlestep003/TestDescription.java \
+  vmTestbase/nsk/jvmti/SuspendThread/suspendthrd001/TestDescription.java \
+  vmTestbase/nsk/jvmti/SuspendThreadList/suspendthrdlst001/TestDescription.java \
+  vmTestbase/nsk/jvmti/StopThread/stopthrd006/TestDescription.java \
+  vmTestbase/nsk/jvmti/StopThread/stopthrd007/TestDescription.java \
+  vmTestbase/nsk/jvmti/ThreadEnd/threadend001/TestDescription.java \
+  vmTestbase/nsk/jvmti/ThreadEnd/threadend002/TestDescription.java \
+  vmTestbase/nsk/jvmti/ThreadStart/threadstart001/TestDescription.java \
+  vmTestbase/nsk/jvmti/ThreadStart/threadstart002/TestDescription.java \
+  vmTestbase/nsk/jvmti/ThreadStart/threadstart003/TestDescription.java \
+  vmTestbase/nsk/jvmti/VMDeath/vmdeath001/TestDescription.java \
+  vmTestbase/nsk/jvmti/VMInit/vminit001/TestDescription.java \
+  vmTestbase/nsk/jvmti/VMObjectAlloc/vmobjalloc001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/allocation/AP01/ap01t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/allocation/AP02/ap02t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/allocation/AP03/ap03t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/allocation/AP05/ap05t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/allocation/AP05/ap05t002/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/allocation/AP06/ap06t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/allocation/AP07/ap07t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/allocation/AP07/ap07t002/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/allocation/AP09/ap09t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/allocation/AP10/ap10t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/allocation/AP11/ap11t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/bcinstr/BI01/bi01t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/bcinstr/BI01/bi01t002/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/bcinstr/BI02/bi02t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/bcinstr/BI02/bi02t002/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/bcinstr/BI03/bi03t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/bcinstr/BI03/bi03t002/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/bcinstr/BI04/bi04t002/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t002/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t003/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t004/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t005/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t006/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t008/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t009/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t010/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t011/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t012/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t013/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t014/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t015/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t016/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t017/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t018/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t019/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t020/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t021/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/capability/CM02/cm02t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/contention/TC01/tc01t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/contention/TC02/tc02t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/contention/TC03/tc03t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/contention/TC03/tc03t002/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/contention/TC04/tc04t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/events/EM01/em01t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/events/EM01/em01t002/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t004/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t008/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t009/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t010/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t011/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/events/EM04/em04t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/events/EM05/em05t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/events/EM06/em06t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/events/EM07/em07t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/general_functions/GF01/gf01t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/general_functions/GF04/gf04t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/general_functions/GF06/gf06t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/general_functions/GF08/gf08t001/TestDriver.java \
+  vmTestbase/nsk/jvmti/scenarios/general_functions/GF08/gf08t002/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/general_functions/GF08/gf08t003/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS101/hs101t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS101/hs101t002/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS101/hs101t003/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS101/hs101t004/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS101/hs101t005/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS101/hs101t006/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS101/hs101t007/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS101/hs101t008/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS102/hs102t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS102/hs102t002/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS103/hs103t002/hs103t002.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS104/hs104t001/hs104t001.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS104/hs104t002/hs104t002.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS201/hs201t002/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS201/hs201t003/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS202/hs202t001/hs202t001.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS202/hs202t002/hs202t002.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS203/hs203t001/hs203t001.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS203/hs203t002/hs203t002.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS203/hs203t003/hs203t003.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS204/hs204t002/hs204t002.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS204/hs204t003/hs204t003.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS204/hs204t004/hs204t004.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t001/hs301t001.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t002/hs301t002.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t003/hs301t003.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t004/hs301t004.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t005/hs301t005.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t001/hs302t001.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t002/hs302t002.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t003/hs302t003.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t004/hs302t004.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t005/hs302t005.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t006/hs302t006.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t007/hs302t007.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t008/hs302t008.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t009/hs302t009.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t010/hs302t010.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t011/hs302t011.java \
+  vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t012/hs302t012.java \
+  vmTestbase/nsk/jvmti/scenarios/jni_interception/JI01/ji01t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/jni_interception/JI03/ji03t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/jni_interception/JI03/ji03t002/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/jni_interception/JI03/ji03t003/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/jni_interception/JI05/ji05t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/jni_interception/JI06/ji06t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/multienv/MA01/ma01t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/multienv/MA02/ma02t001/TestDriver.java \
+  vmTestbase/nsk/jvmti/scenarios/multienv/MA03/ma03t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/multienv/MA04/ma04t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/multienv/MA04/ma04t002/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/multienv/MA04/ma04t003/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/multienv/MA05/ma05t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/multienv/MA06/ma06t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/multienv/MA07/ma07t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/multienv/MA08/ma08t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t002/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t003/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t004/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t005/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t006/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t007/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t008/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/sampling/SP01/sp01t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/sampling/SP02/sp02t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/sampling/SP02/sp02t002/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/sampling/SP02/sp02t003/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/sampling/SP03/sp03t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/sampling/SP03/sp03t002/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/sampling/SP04/sp04t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/sampling/SP04/sp04t002/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/sampling/SP05/sp05t002/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/sampling/SP05/sp05t003/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/sampling/SP06/sp06t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/sampling/SP06/sp06t002/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/sampling/SP06/sp06t003/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/sampling/SP07/sp07t001/TestDescription.java \
+  vmTestbase/nsk/jvmti/scenarios/sampling/SP07/sp07t002/TestDescription.java \
+  vmTestbase/nsk/jvmti/AttachOnDemand/attach002a/TestDescription.java \
+  vmTestbase/nsk/jvmti/AttachOnDemand/attach024/TestDescription.java \
+  vmTestbase/nsk/jvmti/RetransformClasses/retransform002/TestDescription.java \
+  vmTestbase/nsk/jvmti/RetransformClasses/retransform003/TestDriver.java \
+  vmTestbase/nsk/jvmti/RetransformClasses/retransform004/TestDescription.java \
+  vmTestbase/nsk/jvmti/ForceEarlyReturn/ForceEarlyReturn001/TestDescription.java \
+  vmTestbase/nsk/jvmti/ForceEarlyReturn/ForceEarlyReturn002/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetNativeMethodPrefix/SetNativeMethodPrefix001/TestDescription.java \
+  vmTestbase/nsk/jvmti/SetNativeMethodPrefix/SetNativeMethodPrefix002/TestDriver.java \
+  vmTestbase/nsk/jvmti/GetEnv/GetEnv001/GetEnv001.java \
+  vmTestbase/nsk/jvmti/unit/MethodBind/JvmtiTest/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/OnUnload/JvmtiTest/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/StackTrace/JvmtiTest/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/agentthr/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/clsldrclss00x/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/events/redefineCFLH/JvmtiTest/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/extmech/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/functions/AddToBootstrapClassLoaderSearch/JvmtiTest/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/functions/Dispose/JvmtiTest/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/functions/environment/JvmtiTest/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/functions/nosuspendMonitorInfo/JvmtiTest/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/functions/nosuspendStackTrace/JvmtiTest/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/functions/rawmonitor/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/heap/BasicIterationTests/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/heap/BasicTagTests/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/heap/GetWithTests/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/heap/HeapWalkTests/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/heap/ObjectFreeTests/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/heap/ObjectSizeTests/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/heapref/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/refignore/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/setNullVMInit/JvmtiTest/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/GetLineNumberTable/linetab004/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/GetLocalVariable/getlocal003/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/GetLocalVariable/getlocal004/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/IsSynthetic/issynth001/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/FollowReferences/followref001/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/FollowReferences/followref002/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/FollowReferences/followref003/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/FollowReferences/followref004/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/FollowReferences/followref005/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/FollowReferences/followref006/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretbase/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretfp/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretint/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretlong/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretobj/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretstr/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretvoid/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/GetAllStackTraces/getallstktr001/TestDescription.java \
+  vmTestbase/nsk/jvmti/unit/GetConstantPool/getcpool001/TestDescription.java
+
+vmTestbase_nsk_jdwp_quick = \
+  vmTestbase/nsk/jdwp/ArrayReference/GetValues/getvalues001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ArrayReference/GetValues/getvalues002/TestDescription.java \
+  vmTestbase/nsk/jdwp/ArrayReference/Length/length001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ArrayReference/SetValues/setvalues001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ArrayType/NewInstance/newinstance001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ClassLoaderReference/VisibleClasses/visibclasses001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ClassObjectReference/ReflectedType/reflectype001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ClassType/InvokeMethod/invokemeth001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ClassType/NewInstance/newinst001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ClassType/SetValues/setvalues001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ClassType/Superclass/superclass001/TestDescription.java \
+  vmTestbase/nsk/jdwp/Event/BREAKPOINT/breakpoint001/TestDescription.java \
+  vmTestbase/nsk/jdwp/Event/EXCEPTION/exception001/TestDescription.java \
+  vmTestbase/nsk/jdwp/Event/FIELD_ACCESS/fldaccess001/TestDescription.java \
+  vmTestbase/nsk/jdwp/Event/FIELD_MODIFICATION/fldmodification001/TestDescription.java \
+  vmTestbase/nsk/jdwp/Event/CLASS_PREPARE/clsprepare001/TestDescription.java \
+  vmTestbase/nsk/jdwp/Event/CLASS_UNLOAD/clsunload001/TestDescription.java \
+  vmTestbase/nsk/jdwp/Event/METHOD_ENTRY/methentry001/TestDescription.java \
+  vmTestbase/nsk/jdwp/Event/METHOD_EXIT/methexit001/TestDescription.java \
+  vmTestbase/nsk/jdwp/Event/SINGLE_STEP/singlestep001/TestDescription.java \
+  vmTestbase/nsk/jdwp/Event/SINGLE_STEP/singlestep002/TestDescription.java \
+  vmTestbase/nsk/jdwp/Event/SINGLE_STEP/singlestep003/TestDescription.java \
+  vmTestbase/nsk/jdwp/Event/THREAD_DEATH/thrdeath001/TestDescription.java \
+  vmTestbase/nsk/jdwp/Event/THREAD_START/thrstart001/TestDescription.java \
+  vmTestbase/nsk/jdwp/Event/VM_DEATH/vmdeath001/TestDescription.java \
+  vmTestbase/nsk/jdwp/Event/VM_START/vmstart001/TestDescription.java \
+  vmTestbase/nsk/jdwp/Event/Composite/composite001/TestDescription.java \
+  vmTestbase/nsk/jdwp/EventRequest/Clear/clear001/TestDescription.java \
+  vmTestbase/nsk/jdwp/EventRequest/ClearAllBreakpoints/clrallbreakp001/TestDescription.java \
+  vmTestbase/nsk/jdwp/EventRequest/ClearAllBreakpoints/clrallbreakp002/TestDescription.java \
+  vmTestbase/nsk/jdwp/EventRequest/ClearAllBreakpoints/clrallbreakp003/TestDescription.java \
+  vmTestbase/nsk/jdwp/EventRequest/Set/set001/TestDescription.java \
+  vmTestbase/nsk/jdwp/EventRequest/Set/set002/TestDescription.java \
+  vmTestbase/nsk/jdwp/Method/LineTable/linetable001/TestDescription.java \
+  vmTestbase/nsk/jdwp/Method/VariableTable/vartable001/TestDescription.java \
+  vmTestbase/nsk/jdwp/Method/Bytecodes/bytecodes001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ObjectReference/DisableCollection/disablecol001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ObjectReference/EnableCollection/enablecol001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ObjectReference/GetValues/getvalues001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ObjectReference/InvokeMethod/invokemeth001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ObjectReference/IsCollected/iscollected001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ObjectReference/MonitorInfo/monitorinfo001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ObjectReference/ReferenceType/referencetype001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ObjectReference/SetValues/setvalues001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ReferenceType/ClassLoader/classloader001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ReferenceType/ClassObject/classobj001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ReferenceType/Fields/fields001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ReferenceType/GetValues/getvalues001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ReferenceType/Interfaces/interfaces001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ReferenceType/Methods/methods001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ReferenceType/Modifiers/modifiers001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ReferenceType/NestedTypes/nestedtypes001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ReferenceType/Signature/signature001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ReferenceType/SourceFile/srcfile001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ReferenceType/Status/status001/TestDescription.java \
+  vmTestbase/nsk/jdwp/StackFrame/GetValues/getvalues001/TestDescription.java \
+  vmTestbase/nsk/jdwp/StackFrame/SetValues/setvalues001/TestDescription.java \
+  vmTestbase/nsk/jdwp/StackFrame/ThisObject/thisobject001/TestDescription.java \
+  vmTestbase/nsk/jdwp/StringReference/Value/value001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ThreadGroupReference/Children/children001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ThreadGroupReference/Name/name001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ThreadGroupReference/Parent/parent001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ThreadReference/CurrentContendedMonitor/curcontmonitor001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ThreadReference/Frames/frames001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ThreadReference/FrameCount/framecnt001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ThreadReference/Interrupt/interrupt001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ThreadReference/Name/name001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ThreadReference/OwnedMonitors/ownmonitors001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ThreadReference/Resume/resume001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ThreadReference/Status/status001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ThreadReference/Stop/stop001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ThreadReference/Suspend/suspend001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ThreadReference/SuspendCount/suspendcnt001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ThreadReference/ThreadGroup/threadgroup001/TestDescription.java \
+  vmTestbase/nsk/jdwp/VirtualMachine/AllThreads/allthreads001/TestDescription.java \
+  vmTestbase/nsk/jdwp/VirtualMachine/Capabilities/capabilities001/TestDescription.java \
+  vmTestbase/nsk/jdwp/VirtualMachine/ClassPaths/classpaths001/TestDescription.java \
+  vmTestbase/nsk/jdwp/VirtualMachine/ClassesBySignature/classbysig001/TestDescription.java \
+  vmTestbase/nsk/jdwp/VirtualMachine/CreateString/createstr001/TestDescription.java \
+  vmTestbase/nsk/jdwp/VirtualMachine/Dispose/dispose001/TestDescription.java \
+  vmTestbase/nsk/jdwp/VirtualMachine/DisposeObjects/disposeobj001/TestDescription.java \
+  vmTestbase/nsk/jdwp/VirtualMachine/Exit/exit001/TestDescription.java \
+  vmTestbase/nsk/jdwp/VirtualMachine/HoldEvents/holdevents001/TestDescription.java \
+  vmTestbase/nsk/jdwp/VirtualMachine/IDSizes/idsizes001/TestDescription.java \
+  vmTestbase/nsk/jdwp/VirtualMachine/TopLevelThreadGroups/threadgroups001/TestDescription.java \
+  vmTestbase/nsk/jdwp/VirtualMachine/ReleaseEvents/releaseevents001/TestDescription.java \
+  vmTestbase/nsk/jdwp/VirtualMachine/ReleaseEvents/releaseevents002/TestDescription.java \
+  vmTestbase/nsk/jdwp/VirtualMachine/Resume/resume001/TestDescription.java \
+  vmTestbase/nsk/jdwp/VirtualMachine/Version/version001/TestDescription.java \
+  vmTestbase/nsk/jdwp/VirtualMachine/Version/version002/TestDescription.java \
+  vmTestbase/nsk/jdwp/Event/VM_DEATH/vmdeath002/TestDescription.java \
+  vmTestbase/nsk/jdwp/Method/IsObsolete/isobsolete001/TestDescription.java \
+  vmTestbase/nsk/jdwp/Method/IsObsolete/isobsolete002/TestDescription.java \
+  vmTestbase/nsk/jdwp/ReferenceType/SourceDebugExtension/srcdebugext001/TestDescription.java \
+  vmTestbase/nsk/jdwp/StackFrame/PopFrames/popframes001/TestDescription.java \
+  vmTestbase/nsk/jdwp/VirtualMachine/CapabilitiesNew/capabilitiesnew001/TestDescription.java \
+  vmTestbase/nsk/jdwp/VirtualMachine/RedefineClasses/redefinecls001/TestDescription.java \
+  vmTestbase/nsk/jdwp/VirtualMachine/SetDefaultStratum/setdefstrat001/TestDescription.java \
+  vmTestbase/nsk/jdwp/Method/VariableTableWithGeneric/vartblwithgen001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ReferenceType/FieldsWithGeneric/fldwithgeneric001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ReferenceType/MethodsWithGeneric/methwithgeneric001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ReferenceType/SignatureWithGeneric/sigwithgeneric001/TestDescription.java \
+  vmTestbase/nsk/jdwp/ReferenceType/Instances/instances001/instances001.java \
+  vmTestbase/nsk/jdwp/ReferenceType/Instances/instances002/instances002.java \
+  vmTestbase/nsk/jdwp/ObjectReference/ReferringObjects/referringObjects001/referringObjects001.java \
+  vmTestbase/nsk/jdwp/ObjectReference/ReferringObjects/referringObjects002/referringObjects002.java \
+  vmTestbase/nsk/jdwp/VirtualMachine/InstanceCounts/instanceCounts001/instanceCounts001.java \
+  vmTestbase/nsk/jdwp/ThreadReference/ForceEarlyReturn/forceEarlyReturn002/forceEarlyReturn002.java \
+  vmTestbase/nsk/jdwp/ThreadReference/OwnedMonitorsStackDepthInfo/ownedMonitorsStackDepthInfo001/ownedMonitorsStackDepthInfo001.java \
+  vmTestbase/nsk/jdwp/ThreadReference/OwnedMonitorsStackDepthInfo/ownedMonitorsStackDepthInfo002/ownedMonitorsStackDepthInfo002.java
+
+# vmTestbase_vm_gc w/ 'quick' k/w
+vmTestbase_vm_gc_quick = \
+  vmTestbase/vm/gc/compact/Compact_Arrays \
+  vmTestbase/vm/gc/compact/Compact_Strings_TwoFields \
+  vmTestbase/vm/gc/compact/Compact_InternedStrings_Strings \
+  vmTestbase/vm/gc/compact/Humongous_Arrays5M \
+  vmTestbase/vm/gc/compact/Humongous_NonbranchyTree \
+  vmTestbase/vm/gc/containers/LinkedBlockingDeque_Arrays/TestDescription.java \
+  vmTestbase/vm/gc/containers/LinkedHashMap_Arrays/TestDescription.java \
+  vmTestbase/vm/gc/containers/Combination05/TestDescription.java \
+  vmTestbase/gc/ArrayJuggle/Juggle01 \
+  vmTestbase/gc/ArrayJuggle/Juggle14 \
+  vmTestbase/gc/ArrayJuggle/Juggle22 \
+  vmTestbase/gc/ArrayJuggle/Juggle29 \
+  vmTestbase/gc/ArrayJuggle/Juggle34 \
+  vmTestbase/gc/gctests/LargeObjects/large001/large001.java \
+  vmTestbase/gc/gctests/LoadUnloadGC2/LoadUnloadGC2.java \
+  vmTestbase/gc/gctests/StringGC/StringGC.java \
+  vmTestbase/gc/gctests/StringInternGC/StringInternGC.java \
+  vmTestbase/gc/gctests/ReferencesGC/ReferencesGC.java \
+  vmTestbase/vm/gc/kind/parOld/TestDescription.java \
+  vmTestbase/gc/lock/jni/jnilock001/TestDescription.java \
+  vmTestbase/gc/lock/jniref/jnireflock04/TestDescription.java \
+  vmTestbase/gc/lock/jvmti/alloc/jvmtialloclock02/TestDescription.java \
+  vmTestbase/gc/lock/malloc/malloclock03/TestDescription.java
+
+vmTestbase_vm_compiler_quick = \
+  vmTestbase/vm/compiler/jbe/constprop/constprop01/constprop01.java \
+  vmTestbase/vm/compiler/jbe/constprop/constprop02/constprop02.java \
+  vmTestbase/vm/compiler/jbe/dead/dead01/dead01.java \
+  vmTestbase/vm/compiler/jbe/dead/dead02/dead02.java \
+  vmTestbase/vm/compiler/jbe/dead/dead03/dead03.java \
+  vmTestbase/vm/compiler/jbe/dead/dead04/dead04.java \
+  vmTestbase/vm/compiler/jbe/dead/dead05/dead05.java \
+  vmTestbase/vm/compiler/jbe/dead/dead06/dead06.java \
+  vmTestbase/vm/compiler/jbe/dead/dead07/dead07.java \
+  vmTestbase/vm/compiler/jbe/dead/dead08/dead08.java \
+  vmTestbase/vm/compiler/jbe/dead/dead09/dead09.java \
+  vmTestbase/vm/compiler/jbe/dead/dead10/dead10.java \
+  vmTestbase/vm/compiler/jbe/dead/dead11/dead11.java \
+  vmTestbase/vm/compiler/jbe/dead/dead12/dead12.java \
+  vmTestbase/vm/compiler/jbe/dead/dead13/dead13.java \
+  vmTestbase/vm/compiler/jbe/dead/dead14/dead14.java \
+  vmTestbase/vm/compiler/jbe/dead/dead15/dead15.java \
+  vmTestbase/vm/compiler/jbe/dead/dead16/dead16.java \
+  vmTestbase/vm/compiler/jbe/hoist/hoist01/hoist01.java \
+  vmTestbase/vm/compiler/jbe/hoist/hoist02/hoist02.java \
+  vmTestbase/vm/compiler/jbe/hoist/hoist03/hoist03.java \
+  vmTestbase/vm/compiler/jbe/hoist/hoist04/hoist04.java \
+  vmTestbase/vm/compiler/jbe/subcommon/subcommon01/subcommon01.java \
+  vmTestbase/vm/compiler/jbe/subcommon/subcommon03/subcommon03.java \
+  vmTestbase/vm/compiler/jbe/subcommon/subcommon04/subcommon04.java \
+  vmTestbase/vm/compiler/jbe/subcommon/subcommon05/subcommon05.java \
+  vmTestbase/vm/compiler/coverage/parentheses/TestDescription.java \
+  vmTestbase/vm/compiler/optimizations/stringconcat/explicit/Explicit01/cs_disabled/TestDescription.java \
+  vmTestbase/vm/compiler/optimizations/stringconcat/explicit/Explicit01/cs_enabled/TestDescription.java \
+  vmTestbase/vm/compiler/optimizations/stringconcat/explicit/Merge01/cs_disabled/TestDescription.java \
+  vmTestbase/vm/compiler/optimizations/stringconcat/explicit/Merge01/cs_enabled/TestDescription.java \
+  vmTestbase/vm/compiler/optimizations/stringconcat/implicit/Implicit01/cs_disabled/TestDescription.java \
+  vmTestbase/vm/compiler/optimizations/stringconcat/implicit/Implicit01/cs_enabled/TestDescription.java \
+  vmTestbase/vm/compiler/optimizations/stringconcat/implicit/Merge01/cs_disabled/TestDescription.java \
+  vmTestbase/vm/compiler/optimizations/stringconcat/implicit/Merge01/cs_enabled/TestDescription.java \
+  vmTestbase/vm/compiler/optimizations/partialpeel/ForWhile/TestDescription.java \
+  vmTestbase/vm/compiler/optimizations/partialpeel/While/TestDescription.java \
+  vmTestbase/vm/compiler/optimizations/partialpeel/WhileWhile/TestDescription.java \
+  vmTestbase/vm/compiler/optimizations/partialpeel/Do/TestDescription.java \
+  vmTestbase/vm/compiler/complog/uninit/uninit001/uninit001.java \
+  vmTestbase/vm/compiler/complog/uninit/uninit002/uninit002.java \
+  vmTestbase/vm/compiler/complog/uninit/uninit003/uninit003.java \
+  vmTestbase/vm/compiler/complog/uninit/uninit004/uninit004.java \
+  vmTestbase/vm/compiler/complog/uninit/uninit005/uninit005.java \
+  vmTestbase/vm/compiler/complog/uninit/uninit006/uninit006.java \
+  vmTestbase/vm/compiler/complog/uninit/uninit007/uninit007.java \
+  vmTestbase/vm/compiler/complog/uninit/uninit008/uninit008.java \
+  vmTestbase/vm/compiler/complog/uninit/uninit009/uninit009.java \
+  vmTestbase/vm/compiler/complog/uninit/uninit010/uninit010.java \
+  vmTestbase/vm/compiler/complog/uninit/uninit011/uninit011.java \
+  vmTestbase/vm/compiler/complog/uninit/uninit012/uninit012.java \
+  vmTestbase/vm/compiler/complog/uninit/uninit013/uninit013.java \
+  vmTestbase/jit/Arrays/ArrayBounds/ArrayBounds.java \
+  vmTestbase/jit/Arrays/ArrayStoreCheck/ArrayStoreCheck.java \
+  vmTestbase/jit/Arrays/ArrayTests/ArrayTests.java \
+  vmTestbase/jit/CEETest/CEETest.java \
+  vmTestbase/jit/CondExpr/CondExpr.java \
+  vmTestbase/jit/DivTest/DivTest.java \
+  vmTestbase/jit/ExcOpt/ExcOpt.java \
+  vmTestbase/jit/FloatingPoint/FPCompare/TestFPBinop/TestFPBinop.java \
+  vmTestbase/jit/FloatingPoint/gen_math/Filtering/Filtering.java \
+  vmTestbase/jit/FloatingPoint/gen_math/Loops01/Loops01.java \
+  vmTestbase/jit/FloatingPoint/gen_math/Loops02/Loops02.java \
+  vmTestbase/jit/FloatingPoint/gen_math/Loops03/Loops03.java \
+  vmTestbase/jit/FloatingPoint/gen_math/Loops04/Loops04.java \
+  vmTestbase/jit/FloatingPoint/gen_math/Loops05/Loops05.java \
+  vmTestbase/jit/FloatingPoint/gen_math/Loops06/Loops06.java \
+  vmTestbase/jit/FloatingPoint/gen_math/Loops07/Loops07.java \
+  vmTestbase/jit/FloatingPoint/gen_math/Matrix_3d/Matrix_3d.java \
+  vmTestbase/jit/FloatingPoint/gen_math/ShortCircuitTest/ShortCircuitTest.java \
+  vmTestbase/jit/FloatingPoint/gen_math/Summ/Summ.java \
+  vmTestbase/jit/PrintProperties/PrintProperties.java \
+  vmTestbase/jit/PrintThis/PrintThis.java \
+  vmTestbase/jit/Robert/Robert.java \
+  vmTestbase/jit/Sleeper/Sleeper.java \
+  vmTestbase/jit/bounds/bounds.java \
+  vmTestbase/jit/collapse/collapse.java \
+  vmTestbase/jit/deoptimization/test01/test01.java \
+  vmTestbase/jit/deoptimization/test02/test02.java \
+  vmTestbase/jit/deoptimization/test03/test03.java \
+  vmTestbase/jit/deoptimization/test04/test04.java \
+  vmTestbase/jit/deoptimization/test05/test05.java \
+  vmTestbase/jit/deoptimization/test06/test06.java \
+  vmTestbase/jit/deoptimization/test07/test07.java \
+  vmTestbase/jit/deoptimization/test08/test08.java \
+  vmTestbase/jit/escape/AdaptiveBlocking/AdaptiveBlocking001/AdaptiveBlocking001.java \
+  vmTestbase/jit/escape/LockElision/MatMul/MatMul.java \
+  vmTestbase/jit/escape/LockCoarsening/LockCoarsening002/TestDescription.java \
+  vmTestbase/jit/exception/exception.java \
+  vmTestbase/jit/graph/cgt0/cgt0.java \
+  vmTestbase/jit/graph/cgt1/cgt1.java \
+  vmTestbase/jit/graph/cgt2/cgt2.java \
+  vmTestbase/jit/graph/cgt3/cgt3.java \
+  vmTestbase/jit/graph/cgt4/cgt4.java \
+  vmTestbase/jit/graph/cgt5/cgt5.java \
+  vmTestbase/jit/graph/cgt6/cgt6.java \
+  vmTestbase/jit/graph/cgt7/cgt7.java \
+  vmTestbase/jit/graph/cgt8/cgt8.java \
+  vmTestbase/jit/graph/cgt9/cgt9.java \
+  vmTestbase/jit/graph/cgt10/cgt10.java \
+  vmTestbase/jit/graph/cgt11/cgt11.java \
+  vmTestbase/jit/init/init01/init01.java \
+  vmTestbase/jit/init/init02/init02.java \
+  vmTestbase/jit/inline/inline003/inline003.java \
+  vmTestbase/jit/inline/inline004/inline004.java \
+  vmTestbase/jit/inline/inline005/inline005.java \
+  vmTestbase/jit/inline/inline007/inline007.java \
+  vmTestbase/jit/misctests/JitBug1/JitBug1.java \
+  vmTestbase/jit/misctests/Pi/Pi.java \
+  vmTestbase/jit/misctests/clss14702/clss14702.java \
+  vmTestbase/jit/misctests/fpustack/GraphApplet.java \
+  vmTestbase/jit/misctests/putfield00802/putfield00802.java \
+  vmTestbase/jit/misctests/t5/t5.java \
+  vmTestbase/jit/overflow/overflow.java \
+  vmTestbase/jit/regression/b4427606/b4427606.java \
+  vmTestbase/jit/regression/b4446672/b4446672.java \
+  vmTestbase/jit/regression/CrashC1/CrashC1.java \
+  vmTestbase/jit/series/series.java \
+  vmTestbase/jit/t/t001/t001.java \
+  vmTestbase/jit/t/t002/t002.java \
+  vmTestbase/jit/t/t003/t003.java \
+  vmTestbase/jit/t/t004/t004.java \
+  vmTestbase/jit/t/t005/t005.java \
+  vmTestbase/jit/t/t006/t006.java \
+  vmTestbase/jit/t/t007/t007.java \
+  vmTestbase/jit/t/t008/t008.java \
+  vmTestbase/jit/t/t009/t009.java \
+  vmTestbase/jit/t/t011/t011.java \
+  vmTestbase/jit/t/t012/t012.java \
+  vmTestbase/jit/t/t013/t013.java \
+  vmTestbase/jit/t/t014/t014.java \
+  vmTestbase/jit/t/t015/t015.java \
+  vmTestbase/jit/t/t016/t016.java \
+  vmTestbase/jit/t/t017/t017.java \
+  vmTestbase/jit/t/t018/t018.java \
+  vmTestbase/jit/t/t019/t019.java \
+  vmTestbase/jit/t/t020/t020.java \
+  vmTestbase/jit/t/t021/t021.java \
+  vmTestbase/jit/t/t022/t022.java \
+  vmTestbase/jit/t/t023/t023.java \
+  vmTestbase/jit/t/t024/t024.java \
+  vmTestbase/jit/t/t025/t025.java \
+  vmTestbase/jit/t/t026/t026.java \
+  vmTestbase/jit/t/t027/t027.java \
+  vmTestbase/jit/t/t028/t028.java \
+  vmTestbase/jit/t/t029/t029.java \
+  vmTestbase/jit/t/t030/t030.java \
+  vmTestbase/jit/t/t031/t031.java \
+  vmTestbase/jit/t/t032/t032.java \
+  vmTestbase/jit/t/t033/t033.java \
+  vmTestbase/jit/t/t034/t034.java \
+  vmTestbase/jit/t/t035/t035.java \
+  vmTestbase/jit/t/t036/t036.java \
+  vmTestbase/jit/t/t037/t037.java \
+  vmTestbase/jit/t/t038/t038.java \
+  vmTestbase/jit/t/t039/t039.java \
+  vmTestbase/jit/t/t040/t040.java \
+  vmTestbase/jit/t/t041/t041.java \
+  vmTestbase/jit/t/t042/t042.java \
+  vmTestbase/jit/t/t043/t043.java \
+  vmTestbase/jit/t/t044/t044.java \
+  vmTestbase/jit/t/t045/t045.java \
+  vmTestbase/jit/t/t046/t046.java \
+  vmTestbase/jit/t/t047/t047.java \
+  vmTestbase/jit/t/t048/t048.java \
+  vmTestbase/jit/t/t049/t049.java \
+  vmTestbase/jit/t/t050/t050.java \
+  vmTestbase/jit/t/t051/t051.java \
+  vmTestbase/jit/t/t052/t052.java \
+  vmTestbase/jit/t/t053/t053.java \
+  vmTestbase/jit/t/t054/t054.java \
+  vmTestbase/jit/t/t055/t055.java \
+  vmTestbase/jit/t/t056/t056.java \
+  vmTestbase/jit/t/t057/t057.java \
+  vmTestbase/jit/t/t058/t058.java \
+  vmTestbase/jit/t/t059/t059.java \
+  vmTestbase/jit/t/t060/t060.java \
+  vmTestbase/jit/t/t061/t061.java \
+  vmTestbase/jit/t/t062/t062.java \
+  vmTestbase/jit/t/t063/t063.java \
+  vmTestbase/jit/t/t064/t064.java \
+  vmTestbase/jit/t/t065/t065.java \
+  vmTestbase/jit/t/t066/t066.java \
+  vmTestbase/jit/t/t067/t067.java \
+  vmTestbase/jit/t/t068/t068.java \
+  vmTestbase/jit/t/t069/t069.java \
+  vmTestbase/jit/t/t070/t070.java \
+  vmTestbase/jit/t/t071/t071.java \
+  vmTestbase/jit/t/t072/t072.java \
+  vmTestbase/jit/t/t073/t073.java \
+  vmTestbase/jit/t/t074/t074.java \
+  vmTestbase/jit/t/t075/t075.java \
+  vmTestbase/jit/t/t076/t076.java \
+  vmTestbase/jit/t/t077/t077.java \
+  vmTestbase/jit/t/t078/t078.java \
+  vmTestbase/jit/t/t079/t079.java \
+  vmTestbase/jit/t/t080/t080.java \
+  vmTestbase/jit/t/t081/t081.java \
+  vmTestbase/jit/t/t086/t086.java \
+  vmTestbase/jit/t/t087/t087.java \
+  vmTestbase/jit/t/t088/t088.java \
+  vmTestbase/jit/t/t091/t091.java \
+  vmTestbase/jit/t/t093/t093.java \
+  vmTestbase/jit/t/t094/t094.java \
+  vmTestbase/jit/t/t095/t095.java \
+  vmTestbase/jit/t/t096/t096.java \
+  vmTestbase/jit/t/t098/t098.java \
+  vmTestbase/jit/t/t099/t099.java \
+  vmTestbase/jit/t/t100/t100.java \
+  vmTestbase/jit/t/t101/t101.java \
+  vmTestbase/jit/t/t102/t102.java \
+  vmTestbase/jit/t/t103/t103.java \
+  vmTestbase/jit/t/t104/t104.java \
+  vmTestbase/jit/t/t105/t105.java \
+  vmTestbase/jit/t/t106/t106.java \
+  vmTestbase/jit/t/t107/t107.java \
+  vmTestbase/jit/t/t108/TestDescription.java \
+  vmTestbase/jit/t/t109/TestDescription.java \
+  vmTestbase/jit/t/t110/TestDescription.java \
+  vmTestbase/jit/t/t111/TestDescription.java \
+  vmTestbase/jit/t/t112/TestDescription.java \
+  vmTestbase/jit/t/t113/TestDescription.java \
+  vmTestbase/jit/tiered/TestDescription.java \
+  vmTestbase/jit/verifier/VerifyInitLocal/VerifyInitLocal.java \
+  vmTestbase/jit/verifier/VerifyMergeStack/VerifyMergeStack.java \
+  vmTestbase/jit/wide/wide01/wide01.java \
+  vmTestbase/jit/wide/wide02/wide02.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc1/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc2/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc3/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc4/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc5/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc6/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc7/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc8/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc9/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc10/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc11/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc12/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc13/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc14/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc15/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc16/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc17/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc18/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc19/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc20/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc21/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc22/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc23/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc24/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc25/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc26/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc27/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc28/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc29/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc30/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc31/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc32/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc33/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc34/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc35/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc36/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc37/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc38/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc39/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc40/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc41/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc42/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc43/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc44/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc45/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc46/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc47/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc48/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc49/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc50/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc51/TestDescription.java \
+  vmTestbase/vm/jit/LongTransitions/nativeFnc52/TestDescription.java
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/compiler/arraycopy/ACasLoadsStoresBadMem.java	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2018, Red Hat, Inc. 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 8200282
+ * @summary arraycopy converted as a series of loads/stores uses wrong slice for loads
+ *
+ * @run main/othervm -XX:-TieredCompilation -XX:-BackgroundCompilation -XX:-UseOnStackReplacement -XX:CompileCommand=dontinline,ACasLoadsStoresBadMem::not_inlined  ACasLoadsStoresBadMem
+ *
+ */
+
+public class ACasLoadsStoresBadMem {
+    public static void main(String[] args) {
+        int[] dst = new int[5];
+        for (int i = 0; i < 20_000; i++) {
+            test1(dst, 1);
+            for (int j = 1; j < 5; j++) {
+                if (dst[j] != j) {
+                    throw new RuntimeException("Bad copy ");
+                }
+            }
+        }
+    }
+
+    private static void test1(int[] dst, int dstPos) {
+        int[] src = new int[4];
+        not_inlined();
+        src[0] = 1;
+        src[1] = 2;
+        src[2] = 3;
+        src[3] = 4;
+        System.arraycopy(src, 0, dst, dstPos, 4);
+    }
+
+    private static void not_inlined() {
+    }
+}
--- a/test/hotspot/jtreg/compiler/c2/Test8062950.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/compiler/c2/Test8062950.java	Mon Jul 16 12:11:02 2018 +0100
@@ -24,6 +24,7 @@
 /*
  * @test
  * @bug 8062950
+ * @requires vm.flavor == "server"
  * @key regression
  * @library /test/lib
  * @run driver compiler.c2.Test8062950
--- a/test/hotspot/jtreg/compiler/c2/aarch64/TestVolatiles.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/compiler/c2/aarch64/TestVolatiles.java	Mon Jul 16 12:11:02 2018 +0100
@@ -34,7 +34,7 @@
  *                       TestUnsafeVolatileCAS}
  * and <testtype> in {G1,
  *                    CMS,
- *                    CMSCondCardMark,
+ *                    CMSCondMark,
  *                    Serial,
  *                    Parallel}
  */
@@ -287,7 +287,7 @@
                     "ret"
                 };
                 break;
-            case "CMSCondCardMark":
+            case "CMSCondMark":
                 // a card mark volatile barrier should be generated
                 // before the card mark strb from the StoreCM and the
                 // storestore barrier from the StoreCM should be elided
@@ -305,11 +305,13 @@
             case "CMS":
                 // a volatile card mark membar should not be generated
                 // before the card mark strb from the StoreCM and the
-                // storestore barrier from the StoreCM should be elided
+                // storestore barrier from the StoreCM should be
+                // generated as "dmb ishst"
                 matches = new String[] {
                     "membar_release (elided)",
                     "stlrw",
-                    "storestore (elided)",
+                    "storestore",
+                    "dmb ishst",
                     "strb",
                     "membar_volatile (elided)",
                     "ret"
@@ -344,7 +346,7 @@
                     "ret"
                 };
                 break;
-            case "CMSCondCardMark":
+            case "CMSCondMark":
                 // a card mark volatile barrier should be generated
                 // before the card mark strb from the StoreCM and the
                 // storestore barrier from the StoreCM should be elided
@@ -443,7 +445,7 @@
                     "ret"
                 };
                 break;
-            case "CMSCondCardMark":
+            case "CMSCondMark":
                 // a card mark volatile barrier should be generated
                 // before the card mark strb from the StoreCM and the
                 // storestore barrier from the StoreCM should be elided
@@ -465,7 +467,8 @@
                 matches = new String[] {
                     "membar_release (elided)",
                     "cmpxchgw_acq",
-                    "storestore (elided)",
+                    "storestore",
+                    "dmb ishst",
                     "strb",
                     "membar_acquire (elided)",
                     "ret"
@@ -500,7 +503,7 @@
                     "ret"
                 };
                 break;
-            case "CMSCondCardMark":
+            case "CMSCondMark":
                 // a card mark volatile barrier should be generated
                 // before the card mark strb from the StoreCM and the
                 // storestore barrier from the StoreCM should be elided
--- a/test/hotspot/jtreg/compiler/debug/TraceIterativeGVN.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/compiler/debug/TraceIterativeGVN.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/compiler/dependencies/MonomorphicObjectCall/java.base/java/lang/Object.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/compiler/dependencies/MonomorphicObjectCall/java.base/java/lang/Object.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 1994, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1994, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/compiler/eliminateAutobox/UnsignedLoads.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/compiler/eliminateAutobox/UnsignedLoads.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/compiler/intrinsics/string/TestHasNegatives.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/compiler/intrinsics/string/TestHasNegatives.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/compiler/intrinsics/string/TestStringIntrinsicRangeChecks.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/compiler/intrinsics/string/TestStringIntrinsicRangeChecks.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/compiler/intrinsics/string/TestStringUTF16IntrinsicRangeChecks.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/compiler/intrinsics/string/TestStringUTF16IntrinsicRangeChecks.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/compiler/loopopts/IterationSplitPredicateInconsistency.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/compiler/loopopts/IterationSplitPredicateInconsistency.java	Mon Jul 16 12:11:02 2018 +0100
@@ -25,6 +25,7 @@
  * @test
  * @bug 8193130 8203915
  * @summary Bad graph when unrolled loop bounds conflicts with range checks
+ * @requires vm.flavor == "server"
  *
  * @run main/othervm IterationSplitPredicateInconsistency
  * @run main/othervm -XX:-UseLoopPredicate IterationSplitPredicateInconsistency
--- a/test/hotspot/jtreg/compiler/loopopts/TestCMovSplitThruPhi.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/compiler/loopopts/TestCMovSplitThruPhi.java	Mon Jul 16 12:11:02 2018 +0100
@@ -25,6 +25,7 @@
  * @test
  * @bug 8187822
  * @summary C2 conditonal move optimization might create broken graph
+ * @requires vm.flavor == "server"
  * @run main/othervm -XX:-UseOnStackReplacement -XX:-BackgroundCompilation -XX:CompileCommand=dontinline,TestCMovSplitThruPhi::not_inlined -XX:CompileOnly=TestCMovSplitThruPhi::test -XX:-LoopUnswitching TestCMovSplitThruPhi
  *
  */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/compiler/loopopts/TestLimitLoadBelowLoopLimitCheck.java	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 2018, Red Hat, Inc. 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 8202123
+ * @summary C2 Crash in Node::in(unsigned int) const+0x14
+ *
+ * @run main/othervm TestLimitLoadBelowLoopLimitCheck
+ *
+ */
+
+public class TestLimitLoadBelowLoopLimitCheck {
+    public static int[] run(int[] arr) {
+        int max = 0;
+        for (int i : arr) {
+            if (i > max) {
+                max = i;
+            }
+        }
+
+        int[] counts = new int[10];
+
+        int i = 0;
+        for (i = 0; i < counts.length; i += 1) {
+            for (int j = 0; j < counts[i]; j += 1) {
+            }
+        }
+
+        while (i < max) {
+            for (int j = 0; j < counts[i]; j += 1) {
+                arr[0] = i;
+            }
+        }
+
+        return arr;
+    }
+
+    public static void main(String[] args) {
+        int[] arr = new int[1000 * 1000];
+
+        for (int i = 0; i < 100; i++) {
+            run(arr);
+        }
+    }
+}
--- a/test/hotspot/jtreg/compiler/loopstripmining/CheckLoopStripMiningIterShortLoop.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/compiler/loopstripmining/CheckLoopStripMiningIterShortLoop.java	Mon Jul 16 12:11:02 2018 +0100
@@ -25,6 +25,7 @@
  * @test
  * @bug 8196294
  * @summary when loop strip is enabled, LoopStripMiningIterShortLoop should be not null
+ * @requires vm.flavor == "server"
  * @library /test/lib /
  * @modules java.base/jdk.internal.misc
  *          java.management
--- a/test/hotspot/jtreg/compiler/patches/java.base/java/lang/Helper.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/compiler/patches/java.base/java/lang/Helper.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/compiler/profiling/TestTypeProfiling.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/compiler/profiling/TestTypeProfiling.java	Mon Jul 16 12:11:02 2018 +0100
@@ -117,22 +117,15 @@
         }
 
         // should deoptimize for speculative type check
+        // Intepreter will also add actual type check trap information into MDO
+        // when it throw ClassCastException
         if (!deoptimize(method, src_obj)) {
             throw new RuntimeException(method.getName() + " is not deoptimized");
         }
 
         // compile again
-        WHITE_BOX.enqueueMethodForCompilation(method, CompilerWhiteBoxTest.COMP_LEVEL_FULL_OPTIMIZATION);
-        if (!WHITE_BOX.isMethodCompiled(method)) {
-            throw new RuntimeException(method.getName() + " is not recompiled");
-        }
-
-        // should deoptimize for actual type check
-        if (!deoptimize(method, src_obj)) {
-            throw new RuntimeException(method.getName() + " is not deoptimized (should deoptimize for actual type check)");
-        }
-
-        // compile once again
+        // c2 will generate throw instead of uncommon trap because
+        // actual type check trap information is present in MDO
         WHITE_BOX.enqueueMethodForCompilation(method, CompilerWhiteBoxTest.COMP_LEVEL_FULL_OPTIMIZATION);
         if (!WHITE_BOX.isMethodCompiled(method)) {
             throw new RuntimeException(method.getName() + " is not recompiled");
--- a/test/hotspot/jtreg/compiler/stable/StableConfiguration.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/compiler/stable/StableConfiguration.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/compiler/stable/TestStableBoolean.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/compiler/stable/TestStableBoolean.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/compiler/stable/TestStableByte.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/compiler/stable/TestStableByte.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/compiler/stable/TestStableChar.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/compiler/stable/TestStableChar.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/compiler/stable/TestStableDouble.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/compiler/stable/TestStableDouble.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/compiler/stable/TestStableFloat.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/compiler/stable/TestStableFloat.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/compiler/stable/TestStableInt.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/compiler/stable/TestStableInt.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/compiler/stable/TestStableLong.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/compiler/stable/TestStableLong.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/compiler/stable/TestStableMemoryBarrier.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/compiler/stable/TestStableMemoryBarrier.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/compiler/stable/TestStableObject.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/compiler/stable/TestStableObject.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/compiler/stable/TestStableShort.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/compiler/stable/TestStableShort.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/compiler/stable/TestStableUByte.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/compiler/stable/TestStableUByte.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/compiler/stable/TestStableUShort.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/compiler/stable/TestStableUShort.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/compiler/unsafe/OpaqueAccesses.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/compiler/unsafe/OpaqueAccesses.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/compiler/unsafe/UnsafeGetConstantField.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/compiler/unsafe/UnsafeGetConstantField.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/compiler/unsafe/UnsafeGetStableArrayElement.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/compiler/unsafe/UnsafeGetStableArrayElement.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/compiler/vectorization/TestUnexpectedLoadOrdering.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/compiler/vectorization/TestUnexpectedLoadOrdering.java	Mon Jul 16 12:11:02 2018 +0100
@@ -25,6 +25,7 @@
  * @test
  * @bug 8201367
  * @summary RPO walk of counted loop block doesn't properly order loads
+ * @requires vm.flavor == "server"
  *
  * @run main/othervm -XX:-BackgroundCompilation -XX:-UseCountedLoopSafepoints TestUnexpectedLoadOrdering
  *
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/gc/g1/TestHumongousRemsetsMatch.java	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,79 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 TestHumongousRemSetsMatch
+ * @bug 8205426
+ * @summary Test to make sure that humongous object remset states are in sync
+ * @key gc
+ * @requires vm.gc.G1
+ * @library /test/lib
+ * @build sun.hotspot.WhiteBox
+ * @run driver ClassFileInstaller sun.hotspot.WhiteBox
+ * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -Xmx512M -Xms512M -Xmn10M -XX:ParallelGCThreads=2 -XX:-UseDynamicNumberOfGCThreads -XX:+UseG1GC -XX:+WhiteBoxAPI -XX:G1HeapRegionSize=1M -XX:+VerifyAfterGC -Xlog:gc,gc+remset+tracking=trace TestHumongousRemsetsMatch
+ */
+
+import sun.hotspot.WhiteBox;
+
+public class TestHumongousRemsetsMatch {
+
+    // G1 at the moment uses one thread every this amount of regions.
+    private static final int WorkerThreadBoundary = 384;
+
+    private static final int ObjSizeInRegions = 17;
+    private static final int M = 1024 * 1024;
+    private static final int TypeArrayObjSize = ObjSizeInRegions * M / 4 /* sizeof(int) */ - 1024 /* > header size */;
+
+    public static void main(String[] args) throws Exception {
+        WhiteBox wb = WhiteBox.getWhiteBox();
+
+        for (int j = 0; j < 3; j++) {
+            wb.fullGC(); // Start with a clean slate
+
+            // It may happen that our 7-region sized humongous objects may just be "misaligned"
+            // so that they do not cross the region 384 boundary. Try to counter this by offsetting
+            // the humongous objects just a little.
+            Object alignmentFudge = new int[(j + 1) * M / 4 /* sizeof(int) */ - 1024];
+
+            // Fill the heap so that more than WorkerThreadBoundary regions are occupied with humongous objects
+            // and hopefully one of these objects crosses the region WorkerThreadBoundary boundary.
+            Object[] lotsOfHumongousObjects = new Object[(WorkerThreadBoundary / ObjSizeInRegions) + 3];
+
+            for (int i = 0; i < lotsOfHumongousObjects.length; i++) {
+                lotsOfHumongousObjects[i] = new int[TypeArrayObjSize];
+            }
+
+            wb.fullGC();
+
+            // Trigger a concurrent cycle and wait until the Remark pause
+            wb.g1StartConcMarkCycle();
+            while (wb.g1InConcurrentMark()) {
+                Thread.sleep(200);
+            }
+            wb.youngGC(); // Trigger verification error.
+
+            System.out.println(lotsOfHumongousObjects + " " + alignmentFudge);
+        }
+    }
+}
+
--- a/test/hotspot/jtreg/runtime/ElfDecoder/TestElfDirectRead.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/ElfDecoder/TestElfDirectRead.java	Mon Jul 16 12:11:02 2018 +0100
@@ -25,13 +25,38 @@
  * @test
  * @bug 8193373
  * @summary Test reading ELF info direct from underlaying file
- * @requires (os.family == "linux")
+ * @requires (os.family == "linux") & (os.arch != "ppc64")
  * @modules java.base/jdk.internal.misc
  * @library /test/lib
  * @build sun.hotspot.WhiteBox
  * @run driver ClassFileInstaller sun.hotspot.WhiteBox
- *                              sun.hotspot.WhiteBox$WhiteBoxPermission
- * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:NativeMemoryTracking=detail TestElfDirectRead
+ *                                sun.hotspot.WhiteBox$WhiteBoxPermission
+ * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI
+                     -XX:NativeMemoryTracking=detail TestElfDirectRead
+ */
+
+// This test intentionally disables caching of Elf sections during symbol lookup
+// with WhiteBox.disableElfSectionCache(). On platforms which do not use file
+// descriptors instead of plain function pointers this slows down the lookup just a
+// little bit, because all the symbols from an Elf file are still read consecutively
+// after one 'fseek()' call. But on platforms with file descriptors like ppc64
+// big-endian, we get two 'fseek()' calls for each symbol read from the Elf file
+// because reading the file descriptor table is nested inside the loop which reads
+// the symbols. This really trashes the I/O system and considerable slows down the
+// test, so we need an extra long timeout setting.
+
+/*
+ * @test
+ * @bug 8193373
+ * @summary Test reading ELF info direct from underlaying file
+ * @requires (os.family == "linux") & (os.arch == "ppc64")
+ * @modules java.base/jdk.internal.misc
+ * @library /test/lib
+ * @build sun.hotspot.WhiteBox
+ * @run driver ClassFileInstaller sun.hotspot.WhiteBox
+ *                                sun.hotspot.WhiteBox$WhiteBoxPermission
+ * @run main/othervm/timeout=600 -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI
+                                 -XX:NativeMemoryTracking=detail TestElfDirectRead
  */
 
 import jdk.test.lib.process.ProcessTools;
--- a/test/hotspot/jtreg/runtime/ReservedStack/ReservedStackTest.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/ReservedStack/ReservedStackTest.java	Mon Jul 16 12:11:02 2018 +0100
@@ -24,7 +24,7 @@
 /*
  * @test ReservedStackTest
  *
- * @requires vm.opt.DeoptimizeAlot == null | vm.opt.DeoptimizeAlot == false
+ * @requires vm.opt.DeoptimizeALot == null | vm.opt.DeoptimizeALot == false
  * @library /test/lib
  * @modules java.base/jdk.internal.misc
  * @modules java.base/jdk.internal.vm.annotation
--- a/test/hotspot/jtreg/runtime/ReservedStack/ReservedStackTestCompiler.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/ReservedStack/ReservedStackTestCompiler.java	Mon Jul 16 12:11:02 2018 +0100
@@ -26,7 +26,7 @@
  * @summary Run ReservedStackTest with dedicated compilers C1 and C2.
  *
  * @requires vm.flavor == "server" & !vm.emulatedClient
- * @requires vm.opt.DeoptimizeAlot == null | vm.opt.DeoptimizeAlot == false
+ * @requires vm.opt.DeoptimizeALot == null | vm.opt.DeoptimizeALot == false
  * @library /test/lib
  * @modules java.base/jdk.internal.misc
  * @modules java.base/jdk.internal.vm.annotation
--- a/test/hotspot/jtreg/runtime/SharedArchiveFile/SASymbolTableTest.java	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-/*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * 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 SASymbolTableTest
- * @summary Walk symbol table using SA, with and without CDS.
- * @requires vm.cds & vm.hasSAandCanAttach
- * @library /test/lib
- * @modules java.base/jdk.internal.misc
- *          jdk.hotspot.agent/sun.jvm.hotspot.oops
- *          jdk.hotspot.agent/sun.jvm.hotspot.memory
- *          jdk.hotspot.agent/sun.jvm.hotspot.runtime
- *          jdk.hotspot.agent/sun.jvm.hotspot.tools
- *          java.management
- * @build SASymbolTableTestAgent
- * @run main SASymbolTableTest
- */
-
-import java.util.Arrays;
-import java.util.List;
-import jdk.test.lib.cds.CDSTestUtils;
-import jdk.test.lib.process.ProcessTools;
-import jdk.test.lib.process.OutputAnalyzer;
-import jdk.test.lib.JDKToolFinder;
-import jdk.test.lib.Platform;
-import jdk.test.lib.apps.LingeredApp;
-
-/*
- * The purpose of this test is to validate that we can use SA to
- * attach a process and walk its SymbolTable, regardless whether
- * the attachee process runs in CDS mode or not.
- *
- * SASymbolTableTest Just sets up the agent and attachee processes.
- * The SymbolTable walking is done in the SASymbolTableTestAgent class.
- */
-public class SASymbolTableTest {
-    static String jsaName = "./SASymbolTableTest.jsa";
-    private static LingeredApp theApp = null;
-
-
-    public static void main(String[] args) throws Exception {
-        CDSTestUtils.createArchiveAndCheck();
-        run(true);
-        run(false);
-    }
-
-
-    private static void run(boolean useArchive) throws Exception {
-        String flag = useArchive ? "auto" : "off";
-
-        try {
-            // (1) Launch the attachee process
-            System.out.println("Starting LingeredApp");
-            List<String> vmOpts = Arrays.asList(
-                    "-XX:SharedArchiveFile=" + jsaName,
-                    "-Xshare:" + flag,
-                    "-showversion");                // so we can see "sharing" in the output
-
-            theApp = LingeredApp.startApp(vmOpts);
-
-            // (2) Launch the agent process
-            long pid = theApp.getPid();
-            System.out.println("Attaching agent to " + pid );
-            ProcessBuilder tool = ProcessTools.createJavaProcessBuilder(
-                    "--add-modules=jdk.hotspot.agent",
-                    "--add-exports=jdk.hotspot.agent/sun.jvm.hotspot.oops=ALL-UNNAMED",
-                    "--add-exports=jdk.hotspot.agent/sun.jvm.hotspot.memory=ALL-UNNAMED",
-                    "--add-exports=jdk.hotspot.agent/sun.jvm.hotspot.runtime=ALL-UNNAMED",
-                    "--add-exports=jdk.hotspot.agent/sun.jvm.hotspot.tools=ALL-UNNAMED",
-                    "SASymbolTableTestAgent",
-                    Long.toString(pid));
-            OutputAnalyzer output = CDSTestUtils.executeAndLog(tool, "tool");
-            if (output.getStdout().contains("connected too early")) {
-                System.out.println("SymbolTable not created by VM - test skipped");
-                return;
-            }
-            output.shouldHaveExitValue(0);
-        } catch (Exception ex) {
-            throw new RuntimeException("Test ERROR " + ex, ex);
-        } finally {
-            LingeredApp.stopApp(theApp);
-        }
-    }
-}
--- a/test/hotspot/jtreg/runtime/SharedArchiveFile/SASymbolTableTestAgent.java	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,146 +0,0 @@
-/*
- * Copyright (c) 2016, 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 sun.jvm.hotspot.memory.SymbolTable;
-import sun.jvm.hotspot.oops.Symbol;
-import sun.jvm.hotspot.runtime.VM;
-import sun.jvm.hotspot.tools.Tool;
-
-/**
- * This class is launched in a sub-process by the main test,
- * SASymbolTableTest.java.
- *
- * It uses SA to connect to another JVM process, whose PID is specified in args[].
- * The purpose of the test is to validate that we can walk the SymbolTable
- * and CompactHashTable of the other process. Everything should work regardless
- * of whether the other process runs in CDS mode or not.
- *
- * Note: CompactHashTable is used only when CDS is enabled.
- */
-public class SASymbolTableTestAgent extends Tool {
-    public SASymbolTableTestAgent() {
-        super();
-    }
-    public static void main(String args[]) {
-        SASymbolTableTestAgent tool = new SASymbolTableTestAgent();
-        tool.execute(args);
-    }
-
-    static String[] commonNames = {
-        "java/lang/Object",
-        "java/lang/String",
-        "java/lang/Class",
-        "java/lang/Cloneable",
-        "java/lang/ClassLoader",
-        "java/io/Serializable",
-        "java/lang/System",
-        "java/lang/Throwable",
-        "java/lang/Error",
-        "java/lang/ThreadDeath",
-        "java/lang/Exception",
-        "java/lang/RuntimeException",
-        "java/lang/SecurityManager",
-        "java/security/ProtectionDomain",
-        "java/security/AccessControlContext",
-        "java/security/SecureClassLoader",
-        "java/lang/ClassNotFoundException",
-        "java/lang/NoClassDefFoundError",
-        "java/lang/LinkageError",
-        "java/lang/ClassCastException",
-        "java/lang/ArrayStoreException",
-        "java/lang/VirtualMachineError",
-        "java/lang/OutOfMemoryError",
-        "java/lang/StackOverflowError",
-        "java/lang/IllegalMonitorStateException",
-        "java/lang/ref/Reference",
-        "java/lang/ref/SoftReference",
-        "java/lang/ref/WeakReference",
-        "java/lang/ref/FinalReference",
-        "java/lang/ref/PhantomReference",
-        "java/lang/ref/Finalizer",
-        "java/lang/Thread",
-        "java/lang/ThreadGroup",
-        "java/util/Properties",
-        "java/lang/reflect/AccessibleObject",
-        "java/lang/reflect/Field",
-        "java/lang/reflect/Method",
-        "java/lang/reflect/Constructor",
-        "java/lang/invoke/MethodHandle",
-        "java/lang/invoke/MemberName",
-        "java/lang/invoke/MethodHandleNatives",
-        "java/lang/invoke/MethodType",
-        "java/lang/BootstrapMethodError",
-        "java/lang/invoke/CallSite",
-        "java/lang/invoke/ConstantCallSite",
-        "java/lang/invoke/MutableCallSite",
-        "java/lang/invoke/VolatileCallSite",
-        "java/lang/StringBuffer",
-        "java/lang/StringBuilder",
-        "java/io/ByteArrayInputStream",
-        "java/io/File",
-        "java/net/URLClassLoader",
-        "java/net/URL",
-        "java/util/jar/Manifest",
-        "java/security/CodeSource",
-    };
-
-    static String[] badNames = {
-        "java/lang/badbadbad",
-        "java/io/badbadbadbad",
-        "this*symbol*must*not*exist"
-    };
-
-    public void run() {
-        System.out.println("SASymbolTableTestAgent: starting");
-        try {
-            VM vm = VM.getVM();
-            SymbolTable table = vm.getSymbolTable();
-
-            // (a) These are names that are likely to exist in the symbol table
-            //     of a JVM after start-up. They were taken from vmSymbols.hpp
-            //     during the middle of JDK9 development.
-            //
-            //     The purpose is not to check that each name must exist (a future
-            //     version of JDK may not preload some of the classes).
-            //
-            //     The purpose of this loops is to ensure that we check a lot of symbols,
-            //     so we will (most likely) hit on both VALUE_ONLY_BUCKET_TYPE and normal bucket type
-            //     in CompactHashTable.probe().
-            for (String n : commonNames) {
-                Symbol s = table.probe(n);
-                System.out.format("%-40s = %s\n", n, s);
-            }
-
-            System.out.println("======================================================================");
-
-            // (b) Also test a few strings that are known to not exist in the table. This will
-            //     both the compact table (if it exists) and the regular table to be walked.
-            for (String n : badNames) {
-                Symbol s = table.probe(n);
-                System.out.format("%-40s = %s\n", n, s);
-            }
-        } catch (NullPointerException e) {
-            System.out.println("connected too early -- please try again");
-        }
-    }
-}
--- a/test/hotspot/jtreg/runtime/appcds/MoveJDKTest.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/appcds/MoveJDKTest.java	Mon Jul 16 12:11:02 2018 +0100
@@ -108,6 +108,16 @@
             out.shouldNotContain("shared class paths mismatch");
             out.shouldNotContain("BOOT classpath mismatch");
         }
+
+        // Test with no modules image in the <java home>/lib directory
+        renameModulesFile(java_home_dst);
+        {
+            ProcessBuilder pb = makeBuilder(java_home_dst + "/bin/java",
+                                            "-version");
+            OutputAnalyzer out = TestCommon.executeAndLog(pb, "exec-missing-modules");
+            out.shouldHaveExitValue(1);
+            out.shouldContain("Failed setting boot class path.");
+        }
     }
 
     // Do a cheap clone of the JDK. Most files can be sym-linked. However, $JAVA_HOME/bin/java and $JAVA_HOME/lib/.../libjvm.so"
@@ -144,6 +154,24 @@
         }
     }
 
+    static void renameModulesFile(String javaHome) throws Exception {
+        String modulesDir = javaHome + File.separator + "lib";
+        File origModules = new File(modulesDir, "modules");
+        if (!origModules.exists()) {
+            throw new RuntimeException("modules file not found");
+        }
+
+        File renamedModules = new File(modulesDir, "orig_modules");
+        if (renamedModules.exists()) {
+            throw new RuntimeException("found orig_modules unexpectedly");
+        }
+
+        boolean success = origModules.renameTo(renamedModules);
+        if (!success) {
+            throw new RuntimeException("rename modules file failed");
+        }
+    }
+
     static ProcessBuilder makeBuilder(String... args) throws Exception {
         System.out.print("[");
         for (String s : args) {
--- a/test/hotspot/jtreg/runtime/appcds/TestCommon.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/appcds/TestCommon.java	Mon Jul 16 12:11:02 2018 +0100
@@ -33,6 +33,7 @@
 import jdk.test.lib.process.OutputAnalyzer;
 import java.io.File;
 import java.text.SimpleDateFormat;
+import java.util.Arrays;
 import java.util.ArrayList;
 import java.util.Date;
 
@@ -343,4 +344,22 @@
         }
         return dirFile.getPath();
     }
+
+    public static boolean checkOutputStrings(String outputString1,
+                                             String outputString2,
+                                             String split_regex) {
+        String[] sa1 = outputString1.split(split_regex);
+        String[] sa2 = outputString2.split(split_regex);
+        Arrays.sort(sa1);
+        Arrays.sort(sa2);
+
+        int i = 0;
+        for (String s : sa1) {
+            if (!s.equals(sa2[i])) {
+                throw new RuntimeException(s + " is different from " + sa2[i]);
+            }
+            i ++;
+        }
+        return true;
+    }
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/runtime/appcds/cacheObject/ArchivedModuleComboTest.java	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,138 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 Test archived system module sub-graph and verify objects are archived.
+ * @requires vm.cds.archived.java.heap
+ * @library /test/jdk/lib/testlibrary /test/lib /test/hotspot/jtreg/runtime/appcds
+ * @modules java.base/jdk.internal.misc
+ *          java.management
+ *          jdk.jartool/sun.tools.jar
+ * @build sun.hotspot.WhiteBox
+ * @compile CheckArchivedModuleApp.java
+ * @run driver ClassFileInstaller -jar app.jar CheckArchivedModuleApp
+ * @run driver ClassFileInstaller -jar WhiteBox.jar sun.hotspot.WhiteBox
+ * @run main ArchivedModuleComboTest
+ */
+
+import java.io.File;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import jdk.test.lib.process.OutputAnalyzer;
+import jdk.test.lib.process.ProcessTools;
+import sun.hotspot.WhiteBox;
+
+public class ArchivedModuleComboTest {
+    public static void main(String[] args) throws Exception {
+        String wbJar = ClassFileInstaller.getJarPath("WhiteBox.jar");
+        String use_whitebox_jar = "-Xbootclasspath/a:" + wbJar;
+        String appJar = ClassFileInstaller.getJarPath("app.jar");
+
+        Path userDir = Paths.get(System.getProperty("user.dir"));
+        Path moduleDir = Files.createTempDirectory(userDir, "mods");
+
+        // Dump without --module-path
+        OutputAnalyzer output = TestCommon.dump(appJar,
+                                    TestCommon.list("CheckArchivedModuleApp"),
+                                    use_whitebox_jar);
+        TestCommon.checkDump(output);
+
+        // Test case 1)
+        // - Dump without --module-path
+        // - Run from -cp only, archived boot layer module ModuleDescriptors
+        //   should be used.
+        System.out.println("----------------------- Test case 1 ----------------------");
+        output = TestCommon.exec(appJar, use_whitebox_jar,
+                                 "-XX:+UnlockDiagnosticVMOptions",
+                                 "-XX:+WhiteBoxAPI",
+                                 "CheckArchivedModuleApp",
+                                 "yes");
+        TestCommon.checkExec(output);
+
+        // Test case 2)
+        // - Dump without --module-path
+        // - Run from -cp only, archived boot layer module ModuleDescriptors
+        //   should be used with --show-module-resolution (requires resolution).
+        System.out.println("----------------------- Test case 2 ----------------------");
+        output = TestCommon.exec(appJar, use_whitebox_jar,
+                                 "--show-module-resolution",
+                                 "-XX:+UnlockDiagnosticVMOptions",
+                                 "-XX:+WhiteBoxAPI",
+                                 "CheckArchivedModuleApp",
+                                 "yes");
+        TestCommon.checkExec(output);
+
+        // Test case 3)
+        // - Dump without --module-path
+        // - Run with --module-path, archived boot layer module ModuleDescriptors
+        //   should be disabled.
+        System.out.println("----------------------- Test case 3 ----------------------");
+        output = TestCommon.exec(appJar, use_whitebox_jar,
+                                 "--module-path",
+                                 moduleDir.toString(),
+                                 "-XX:+UnlockDiagnosticVMOptions",
+                                 "-XX:+WhiteBoxAPI",
+                                 "CheckArchivedModuleApp",
+                                 "no");
+        TestCommon.checkExec(output);
+
+        // Dump with --module-path specified (test case 4, 5). Use an
+        // empty directory as it's simple and still triggers the case
+        // where system module objects are not archived.
+        output = TestCommon.dump(appJar,
+                                 TestCommon.list("CheckArchivedModuleApp"),
+                                 "--module-path",
+                                 moduleDir.toString(),
+                                 use_whitebox_jar);
+        TestCommon.checkDump(output);
+
+        // Test case 4)
+        // - Dump with --module-path
+        // - Run from -cp only, no archived boot layer module ModuleDescriptors
+        //   should be found.
+        System.out.println("----------------------- Test case 4 ----------------------");
+        output = TestCommon.exec(appJar, use_whitebox_jar,
+                                 "-XX:+UnlockDiagnosticVMOptions",
+                                 "-XX:+WhiteBoxAPI",
+                                 "CheckArchivedModuleApp",
+                                 "no");
+        TestCommon.checkExec(output);
+
+        // Test case 5)
+        // - Dump with --module-path
+        // - Run with --module-path, no archived boot layer module ModuleDescriptors
+        //   should be found.
+        System.out.println("----------------------- Test case 5 ----------------------");
+        output = TestCommon.exec(appJar, use_whitebox_jar,
+                                 "--module-path",
+                                 moduleDir.toString(),
+                                 "-XX:+UnlockDiagnosticVMOptions",
+                                 "-XX:+WhiteBoxAPI",
+                                 "CheckArchivedModuleApp",
+                                 "no");
+        TestCommon.checkExec(output);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/runtime/appcds/cacheObject/ArchivedModuleCompareTest.java	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,91 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 Compare archived system modules with non-archived.
+ * @requires vm.cds.archived.java.heap
+ * @library /test/jdk/lib/testlibrary /test/lib /test/hotspot/jtreg/runtime/appcds
+ * @modules java.base/jdk.internal.misc
+ *          java.management
+ *          jdk.jartool/sun.tools.jar
+ * @compile PrintSystemModulesApp.java
+ * @run driver ClassFileInstaller -jar app.jar PrintSystemModulesApp
+ * @run main ArchivedModuleCompareTest
+ */
+
+import jdk.test.lib.process.OutputAnalyzer;
+import jdk.test.lib.process.ProcessTools;
+
+public class ArchivedModuleCompareTest {
+    public static void main(String[] args) throws Exception {
+        String appJar = ClassFileInstaller.getJarPath("app.jar");
+
+        // Test case 1)
+        // Compare the list of archived system module names with non-archived
+        // list. They must be the same.
+        System.out.println("---------------- Test case 1 -----------------");
+        OutputAnalyzer output = TestCommon.dump(appJar,
+                        TestCommon.list("PrintSystemModulesApp"));
+        TestCommon.checkDump(output);
+
+        ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
+                                 "-cp", appJar,
+                                 "-Xshare:off",
+                                 "PrintSystemModulesApp");
+        output = TestCommon.executeAndLog(pb, "print.system.module.share.off");
+        output.shouldHaveExitValue(0);
+        String bootModules1 = output.getStdout();
+
+        output = TestCommon.exec(appJar,
+                                 "PrintSystemModulesApp");
+        TestCommon.checkExec(output);
+        if (output.getStderr().contains("sharing")) {
+            String bootModules2 = output.getStdout();
+            TestCommon.checkOutputStrings(bootModules1, bootModules2, ", ");
+        }
+
+        // Test case 2)
+        // Verify --show-module-resolution output with the output from
+        // -Xshare:off run
+        System.out.println("---------------- Test case 2 -----------------");
+        pb = ProcessTools.createJavaProcessBuilder(
+                                 "-Xshare:off",
+                                 "--show-module-resolution",
+                                 "-version");
+        output = TestCommon.executeAndLog(pb, "show.module.resolution.share.off");
+        output.shouldHaveExitValue(0);
+        String moduleResolutionOut1 = output.getStdout();
+
+        output = TestCommon.exec(appJar,
+                                 "--show-module-resolution",
+                                 "-version");
+        TestCommon.checkExec(output);
+        if (output.getStderr().contains("sharing")) {
+            String moduleResolutionOut2 = output.getStdout();
+            TestCommon.checkOutputStrings(
+                moduleResolutionOut1, moduleResolutionOut2, "\n");
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/runtime/appcds/cacheObject/ArchivedModuleWithCustomImageTest.java	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,184 @@
+/**
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 Test archived module graph with custom runtime image
+ * @requires vm.cds.archived.java.heap
+ * @library /test/jdk/lib/testlibrary /test/lib /test/hotspot/jtreg/runtime/appcds
+ * @modules java.base/jdk.internal.module
+ *          java.management
+ *          jdk.jlink
+ *          jdk.compiler
+ * @build sun.hotspot.WhiteBox
+ * @compile CheckArchivedModuleApp.java
+ * @run driver ClassFileInstaller -jar app.jar CheckArchivedModuleApp
+ * @run driver ClassFileInstaller -jar WhiteBox.jar sun.hotspot.WhiteBox
+ * @run main ArchivedModuleWithCustomImageTest
+ */
+
+import java.io.File;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+
+import jdk.test.lib.compiler.CompilerUtils;
+import jdk.test.lib.process.OutputAnalyzer;
+import jdk.test.lib.process.ProcessTools;
+
+public class ArchivedModuleWithCustomImageTest {
+    private static final String JAVA_HOME = System.getProperty("java.home");
+    private static final String TEST_MODULE = "test";
+    private static final Path jdkHome = Paths.get(System.getProperty("test.jdk"));
+    private static final Path jdkMods = jdkHome.resolve("jmods");
+    private static final Path testSrc = Paths.get(System.getProperty("test.src"));
+    private static final Path src = testSrc.resolve("src").resolve(TEST_MODULE);
+    private static final Path classes = Paths.get("classes");
+    private static final Path jmods = Paths.get("jmods");
+
+    public static void main(String[] args) throws Throwable {
+        if (Files.notExists(jdkMods)) {
+            System.out.println("No jmods/ in test JDK, not supported.");
+            return;
+        }
+
+        // compile test module class
+        if (!CompilerUtils.compile(src, classes)) {
+            throw new RuntimeException("Compilation failure.");
+        }
+
+        // create custom runtime image named 'myimage'
+        Files.createDirectories(jmods);
+        Path image = Paths.get("myimage");
+        runJmod(classes.toString(), TEST_MODULE);
+        runJlink(image, TEST_MODULE);
+
+        // test using 'myimage'
+        testArchivedModuleUsingImage(image);
+
+        Files.delete(jmods.resolve(TEST_MODULE + ".jmod"));
+    }
+
+    private static void runJlink(Path image, String modName) throws Throwable {
+        Path jlink = Paths.get(JAVA_HOME, "bin", "jlink");
+        OutputAnalyzer output = ProcessTools.executeProcess(jlink.toString(),
+                        "--output", image.toString(),
+                        "--add-modules", modName,
+                        "--module-path", jdkMods + File.pathSeparator + jmods);
+        output.shouldHaveExitValue(0);
+    }
+
+    private static void runJmod(String cp, String modName) throws Throwable {
+        Path jmod = Paths.get(JAVA_HOME, "bin", "jmod");
+        OutputAnalyzer output = ProcessTools.executeProcess(jmod.toString(),
+                       "create",
+                       "--class-path", cp,
+                       "--module-version", "1.0",
+                       "--main-class", "jdk.test.Test",
+                       jmods.resolve(modName + ".jmod").toString());
+        output.shouldHaveExitValue(0);
+    }
+
+    private static void testArchivedModuleUsingImage(Path image)
+                            throws Throwable {
+        String wbJar = ClassFileInstaller.getJarPath("WhiteBox.jar");
+        String use_whitebox_jar = "-Xbootclasspath/a:" + wbJar;
+        String appJar = ClassFileInstaller.getJarPath("app.jar");
+        Path customJava = Paths.get(image.toString(), "bin", "java");
+
+        // -Xshare:dump with custom runtime image
+        String[] dumpCmd = {
+            customJava.toString(),
+            "-XX:SharedArchiveFile=./ArchivedModuleWithCustomImageTest.jsa",
+            "-Xshare:dump"};
+        printCommand(dumpCmd);
+        ProcessBuilder pbDump = new ProcessBuilder();
+        pbDump.command(dumpCmd);
+        OutputAnalyzer output = TestCommon.executeAndLog(
+            pbDump, "custom.runtime.image.dump");
+        TestCommon.checkDump(output);
+
+        // Test case 1):
+        // test archived module graph objects are used with custome runtime image
+        System.out.println("------------------- Test case 1 -------------------");
+        String[] runCmd = {customJava.toString(),
+                           use_whitebox_jar,
+                           "-XX:SharedArchiveFile=./ArchivedModuleWithCustomImageTest.jsa",
+                           "-cp",
+                           appJar,
+                           "-Xshare:on",
+                           "-XX:+UnlockDiagnosticVMOptions",
+                           "-XX:+WhiteBoxAPI",
+                           "CheckArchivedModuleApp",
+                           "yes"};
+        printCommand(runCmd);
+        ProcessBuilder pbRun = new ProcessBuilder();
+        pbRun.command(runCmd);
+        output = TestCommon.executeAndLog(pbRun, "custom.runtime.image.run");
+        output.shouldHaveExitValue(0);
+
+
+        // Test case 2):
+        // verify --show-module-resolution output
+        System.out.println("------------------- Test case 2 -------------------");
+
+        // myimage/bin/java -Xshare:off --show-module-resolution -version
+        String[] showModuleCmd1 = {customJava.toString(),
+                                   "-Xshare:off",
+                                   "--show-module-resolution",
+                                   "-version"};
+        printCommand(showModuleCmd1);
+        pbRun = new ProcessBuilder();
+        pbRun.command(showModuleCmd1);
+        output = TestCommon.executeAndLog(
+            pbRun, "custom.runtime.image.showModuleResolution.nocds");
+        output.shouldHaveExitValue(0);
+        String moduleResolutionOut1 = output.getStdout();
+
+        // myimage/bin/java -Xshare:on --show-module-resolution -version
+        //    -XX:SharedArchiveFile=./ArchivedModuleWithCustomImageTest.jsa
+        String[] showModuleCmd2 = {
+            customJava.toString(),
+            "-XX:SharedArchiveFile=./ArchivedModuleWithCustomImageTest.jsa",
+            "-Xshare:on",
+            "--show-module-resolution",
+            "-version"};
+        printCommand(showModuleCmd2);
+        pbRun = new ProcessBuilder();
+        pbRun.command(showModuleCmd2);
+        output = TestCommon.executeAndLog(
+            pbRun, "custom.runtime.image.showModuleResolution.cds");
+        if (output.getStderr().contains("sharing")) {
+            String moduleResolutionOut2 = output.getStdout();
+            TestCommon.checkOutputStrings(
+                moduleResolutionOut1, moduleResolutionOut2, "\n");
+        }
+    }
+
+    private static void printCommand(String opts[]) {
+        StringBuilder cmdLine = new StringBuilder();
+        for (String cmd : opts)
+            cmdLine.append(cmd).append(' ');
+        System.out.println("Command line: [" + cmdLine.toString() + "]");
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/runtime/appcds/cacheObject/CheckArchivedModuleApp.java	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,70 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.io.File;
+import java.lang.module.ModuleDescriptor;
+import java.util.Set;
+import sun.hotspot.WhiteBox;
+
+//
+// Test archived system module graph when open archive heap objects are mapped:
+//
+public class CheckArchivedModuleApp {
+    static WhiteBox wb;
+    public static void main(String args[]) throws Exception {
+        wb = WhiteBox.getWhiteBox();
+
+        if (!wb.areOpenArchiveHeapObjectsMapped()) {
+            System.out.println("Archived open_archive_heap objects are not mapped.");
+            System.out.println("This may happen during normal operation. Test Skipped.");
+            return;
+        }
+
+        boolean expectArchived = "yes".equals(args[0]);
+        checkModuleDescriptors(expectArchived);
+    }
+
+    private static void checkModuleDescriptors(boolean expectArchived) {
+        Set<Module> modules = ModuleLayer.boot().modules();
+        for (Module m : modules) {
+            ModuleDescriptor md = m.getDescriptor();
+            String name = md.name();
+            if (expectArchived) {
+                if (wb.isShared(md)) {
+                    System.out.println(name + " is archived. Expected.");
+                } else {
+                    throw new RuntimeException(
+                        "FAILED. " + name + " is not archived. Expect archived.");
+                }
+            } else {
+                if (!wb.isShared(md)) {
+                    System.out.println(name + " is not archived. Expected.");
+                } else {
+                    throw new RuntimeException(
+                        "FAILED. " + name + " is archived. Expect not archived.");
+                }
+            }
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/runtime/appcds/cacheObject/PrintSystemModulesApp.java	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.
+ *
+ */
+
+//
+// Print the system module names
+//
+public class PrintSystemModulesApp {
+    public static void main(String args[]) throws Exception {
+        String modules = ModuleLayer.boot().toString();
+        System.out.println(modules + ", ");
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/runtime/appcds/cacheObject/src/test/jdk/test/Test.java	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,39 @@
+/**
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.test;
+
+public class Test {
+    public static void main(String[] args) {
+        ClassLoader scl = ClassLoader.getSystemClassLoader();
+        ClassLoader cl1 = Test.class.getClassLoader();
+        Module testModule = Test.class.getModule();
+        ClassLoader cl2 = ModuleLayer.boot().findLoader(testModule.getName());
+
+        if (cl1 != scl)
+            throw new RuntimeException("Not loaded by system class loader");
+        if (cl2 != scl)
+            throw new RuntimeException("Not associated with system class loader");
+
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/runtime/appcds/cacheObject/src/test/module-info.java	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,25 @@
+/*
+ * Copyright (c) 2014, 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.
+ */
+
+module test {
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/runtime/jni/terminatedThread/TestTerminatedThread.java	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,112 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.lang.management.*;
+
+/*
+ * @test
+ * @bug     8205878 8206954
+ * @requires os.family != "windows" & os.family != "solaris"
+ * @summary Basic test of Thread and ThreadMXBean queries on a natively
+ *          attached thread that has failed to detach before terminating.
+ * @comment The native code only supports POSIX so no windows testing; also
+ *          we have to skip solaris as a terminating thread that fails to
+ *          detach will hit an infinite loop due to TLS destructor issues - see
+ *          comments in JDK-8156708
+ * @run main/othervm/native TestTerminatedThread
+ */
+
+public class TestTerminatedThread {
+
+    static native Thread createTerminatedThread();
+
+    static {
+        System.loadLibrary("terminatedThread");
+    }
+
+    private static ThreadMXBean mbean = ManagementFactory.getThreadMXBean();
+
+    public static void main(String[] args) throws Throwable {
+
+        Thread t = createTerminatedThread();
+
+        if (!t.isAlive())
+            throw new Error("Thread is only supposed to terminate at native layer!");
+
+        // Now invoke the various functions on this thread to
+        // make sure the VM handles it okay. The focus is on
+        // functions with an underlying native OS implementation.
+        // Generally as long as we don't crash or throw unexpected
+        // exceptions then the test passes. In some cases we know exactly
+        // what a function should return and so can check that.
+
+        System.out.println("Working with thread: " + t +
+                           ",  in state: " + t.getState());
+
+        System.out.println("Calling suspend ...");
+        t.suspend();
+        System.out.println("Calling resume ...");
+        t.resume();
+        System.out.println("Calling getStackTrace ...");
+        StackTraceElement[] stack = t.getStackTrace();
+        System.out.println(java.util.Arrays.toString(stack));
+        if (stack.length != 0)
+            throw new Error("Terminated thread should have empty java stack trace");
+        System.out.println("Calling setName(\"NewName\") ...");
+        t.setName("NewName");
+        System.out.println("Calling interrupt ...");
+        t.interrupt();
+        System.out.println("Calling stop ...");
+        t.stop();
+
+        // Now the ThreadMXBean functions
+
+        if (mbean.isThreadCpuTimeSupported() &&
+            mbean.isThreadCpuTimeEnabled() ) {
+            System.out.println("Calling getThreadCpuTime ...");
+            long t1 = mbean.getThreadCpuTime(t.getId());
+            if (t1 != -1) {
+                throw new RuntimeException("Invalid ThreadCpuTime returned = " +
+                                           t1 + " expected = -1");
+            }
+            System.out.println("Okay: getThreadCpuTime() reported -1 as expected");
+        } else {
+            System.out.println("Skipping Thread CPU time test as it's not supported");
+        }
+
+        System.out.println("Calling getThreadUserTime ...");
+        long t1 = mbean.getThreadUserTime(t.getId());
+        if (t1 != -1) {
+            throw new RuntimeException("Invalid ThreadUserTime returned = " +
+                                       t1 + " expected = -1");
+        }
+        System.out.println("Okay: getThreadUserTime() reported -1 as expected");
+
+        System.out.println("Calling getThreadInfo ...");
+        ThreadInfo info = mbean.getThreadInfo(t.getId());
+        System.out.println(info);
+
+        System.out.println("Calling getThreadInfo with stack ...");
+        info = mbean.getThreadInfo(t.getId(), Integer.MAX_VALUE);
+        System.out.println(info);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/runtime/jni/terminatedThread/libterminatedThread.c	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,96 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 <stdio.h>
+#include <stdlib.h>
+
+#include <pthread.h>
+#include <string.h>
+
+#include "jni.h"
+#include "jni_util.h"
+
+
+JavaVM* jvm;
+jobject nativeThread;
+
+static void * thread_start(void* unused) {
+  JNIEnv *env;
+  jclass class_id;
+  jmethodID method_id;
+  int res;
+
+  printf("Native thread is running and attaching as daemon ...\n");
+
+  res = (*jvm)->AttachCurrentThreadAsDaemon(jvm, (void **)&env, NULL);
+  if (res != JNI_OK) {
+    fprintf(stderr, "Test ERROR. Can't attach current thread: %d\n", res);
+    exit(1);
+  }
+
+  class_id = (*env)->FindClass (env, "java/lang/Thread");
+  if (class_id == NULL) {
+    fprintf(stderr, "Test ERROR. Can't load class Thread\n");
+    exit(1);
+  }
+
+  method_id = (*env)->GetStaticMethodID(env, class_id, "currentThread",
+                                        "()Ljava/lang/Thread;");
+  if (method_id == NULL) {
+    fprintf(stderr, "Test ERROR. Can't find method currentThread\n");
+    exit(1);
+  }
+
+  nativeThread = (*env)->CallStaticObjectMethod(env, class_id, method_id, NULL);
+
+  if ((*env)->ExceptionOccurred(env) != NULL) {
+    (*env)->ExceptionDescribe(env);
+    exit(1);
+  }
+  printf("Native thread terminating\n");
+
+  return NULL;
+}
+
+JNIEXPORT jobject JNICALL
+Java_TestTerminatedThread_createTerminatedThread
+(JNIEnv *env, jclass cls) {
+  pthread_t thread;
+  int res = (*env)->GetJavaVM(env, &jvm);
+  if (res != JNI_OK) {
+    fprintf(stderr, "Test ERROR. Can't extract JavaVM: %d\n", res);
+    exit(1);
+  }
+
+  if ((res = pthread_create(&thread, NULL, thread_start, NULL)) != 0) {
+    fprintf(stderr, "TEST ERROR: pthread_create failed: %s (%d)\n", strerror(res), res);
+    exit(1);
+  }
+
+  if ((res = pthread_join(thread, NULL)) != 0) {
+    fprintf(stderr, "TEST ERROR: pthread_join failed: %s (%d)\n", strerror(res), res);
+    exit(1);
+  }
+
+  return nativeThread;
+}
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/CheckRead.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/CheckRead.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/DiffCL_CheckRead.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/DiffCL_CheckRead.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/DiffCL_ExpQualOther.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/DiffCL_ExpQualOther.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/DiffCL_ExpQualToM1.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/DiffCL_ExpQualToM1.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/DiffCL_ExpUnqual.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/DiffCL_ExpUnqual.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/DiffCL_PkgNotExp.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/DiffCL_PkgNotExp.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/DiffCL_Umod.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/DiffCL_Umod.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/DiffCL_UmodUpkg.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/DiffCL_UmodUpkg.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/ExpQualOther.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/ExpQualOther.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/ExpQualToM1.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/ExpQualToM1.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/ExpQualToM1PrivateMethodIAE.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/ExpQualToM1PrivateMethodIAE.java	Mon Jul 16 12:11:02 2018 +0100
@@ -4,9 +4,7 @@
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
  *
  * This code is distributed in the hope that it will be useful, but WITHOUT
  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/ExpUnqual.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/ExpUnqual.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/ExportAllUnnamed.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/ExportAllUnnamed.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/PkgNotExp.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/PkgNotExp.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/Umod.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/Umod.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodDiffCL_ExpQualOther.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodDiffCL_ExpQualOther.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodDiffCL_ExpUnqual.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodDiffCL_ExpUnqual.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodDiffCL_PkgNotExp.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodDiffCL_PkgNotExp.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodDiffCL_Umod.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodDiffCL_Umod.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodDiffCL_UmodUpkg.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodDiffCL_UmodUpkg.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodUPkg.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodUPkg.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodUpkgDiffCL_ExpQualOther.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodUpkgDiffCL_ExpQualOther.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodUpkgDiffCL_NotExp.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodUpkgDiffCL_NotExp.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodUpkgDiffCL_Umod.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodUpkgDiffCL_Umod.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodUpkg_ExpQualOther.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodUpkg_ExpQualOther.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodUpkg_NotExp.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodUpkg_NotExp.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodUpkg_Umod.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodUpkg_Umod.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/Umod_ExpQualOther.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/Umod_ExpQualOther.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/Umod_ExpUnqual.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/Umod_ExpUnqual.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/Umod_PkgNotExp.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/Umod_PkgNotExp.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/Umod_UmodUpkg.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/Umod_UmodUpkg.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/p1/c1.jasm	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/p1/c1.jasm	Mon Jul 16 12:11:02 2018 +0100
@@ -4,9 +4,7 @@
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
  *
  * This code is distributed in the hope that it will be useful, but WITHOUT
  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/p2/c2.jasm	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/p2/c2.jasm	Mon Jul 16 12:11:02 2018 +0100
@@ -4,9 +4,7 @@
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
  *
  * This code is distributed in the hope that it will be useful, but WITHOUT
  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/ModuleStress/ModuleNonBuiltinCLMain.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/modules/ModuleStress/ModuleNonBuiltinCLMain.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/runtime/modules/ModuleStress/ModuleSameCLMain.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/modules/ModuleStress/ModuleSameCLMain.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/runtime/modules/ModuleStress/ModuleStress.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/runtime/modules/ModuleStress/ModuleStress.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitor.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitor.java	Mon Jul 16 12:11:02 2018 +0100
@@ -23,9 +23,13 @@
 
 package MyPackage;
 
+import java.lang.management.ManagementFactory;
 import java.util.ArrayList;
 import java.util.List;
 
+import com.sun.management.HotSpotDiagnosticMXBean;
+import com.sun.management.VMOption;
+
 /** API for handling the underlying heap sampling monitoring system. */
 public class HeapMonitor {
   private static int[][] arrays;
@@ -56,7 +60,7 @@
     int sum = 0;
     List<Frame> frames = new ArrayList<Frame>();
     allocate(frames);
-    frames.add(new Frame("allocate", "()Ljava/util/List;", "HeapMonitor.java", 58));
+    frames.add(new Frame("allocate", "()Ljava/util/List;", "HeapMonitor.java", 62));
     return frames;
   }
 
@@ -65,8 +69,8 @@
     for (int j = 0; j < allocationIterations; j++) {
       sum += actuallyAllocate();
     }
-    frames.add(new Frame("actuallyAllocate", "()I", "HeapMonitor.java", 93));
-    frames.add(new Frame("allocate", "(Ljava/util/List;)V", "HeapMonitor.java", 66));
+    frames.add(new Frame("actuallyAllocate", "()I", "HeapMonitor.java", 97));
+    frames.add(new Frame("allocate", "(Ljava/util/List;)V", "HeapMonitor.java", 70));
   }
 
   public static List<Frame> repeatAllocate(int max) {
@@ -74,7 +78,7 @@
     for (int i = 0; i < max; i++) {
       frames = allocate();
     }
-    frames.add(new Frame("repeatAllocate", "(I)Ljava/util/List;", "HeapMonitor.java", 75));
+    frames.add(new Frame("repeatAllocate", "(I)Ljava/util/List;", "HeapMonitor.java", 79));
     return frames;
   }
 
@@ -152,14 +156,42 @@
   }
 
   public native static int sampledEvents();
-  public native static boolean obtainedEvents(Frame[] frames);
-  public native static boolean garbageContains(Frame[] frames);
+  public native static boolean obtainedEvents(Frame[] frames, boolean checkLines);
+  public native static boolean garbageContains(Frame[] frames, boolean checkLines);
   public native static boolean eventStorageIsEmpty();
   public native static void resetEventStorage();
   public native static int getEventStorageElementCount();
   public native static void forceGarbageCollection();
   public native static boolean enableVMEvents();
 
+  private static boolean getCheckLines() {
+    boolean checkLines = true;
+
+    // Do not check lines for Graal since it is not always "precise" with BCIs at uncommon traps.
+    try {
+      HotSpotDiagnosticMXBean bean = ManagementFactory.getPlatformMXBean(HotSpotDiagnosticMXBean.class);
+
+      VMOption enableJVMCI = bean.getVMOption("EnableJVMCI");
+      VMOption useJVMCICompiler = bean.getVMOption("UseJVMCICompiler");
+      String compiler = System.getProperty("jvmci.Compiler");
+
+      checkLines = !(enableJVMCI.getValue().equals("true")
+          && useJVMCICompiler.getValue().equals("true") && compiler.equals("graal"));
+    } catch (Exception e) {
+      // NOP.
+    }
+
+    return checkLines;
+  }
+
+  public static boolean obtainedEvents(Frame[] frames) {
+    return obtainedEvents(frames, getCheckLines());
+  }
+
+  public static boolean garbageContains(Frame[] frames) {
+    return garbageContains(frames, getCheckLines());
+  }
+
   public static boolean statsHaveExpectedNumberSamples(int expected, int acceptedErrorPercentage) {
     double actual = getEventStorageElementCount();
     double diffPercentage = Math.abs(actual - expected) / expected;
--- a/test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorGCCMSTest.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorGCCMSTest.java	Mon Jul 16 12:11:02 2018 +0100
@@ -28,6 +28,7 @@
  * @summary Verifies the JVMTI Heap Monitor Statistics using CMS GC
  * @build Frame HeapMonitor
  * @requires vm.gc == "ConcMarkSweep" | vm.gc == "null"
+ * @requires !vm.graal.enabled
  * @compile HeapMonitorGCCMSTest.java
  * @run main/othervm/native -agentlib:HeapMonitorTest -XX:+UseConcMarkSweepGC MyPackage.HeapMonitorGCTest
  */
--- a/test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorVMEventsTest.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorVMEventsTest.java	Mon Jul 16 12:11:02 2018 +0100
@@ -26,11 +26,13 @@
 import java.util.ArrayList;
 import java.util.List;
 
+// Graal is not tested here due to Graal not supporting DisableIntrinsic.
 /**
  * @test
  * @summary Verifies that when the VM event is sent, sampled events are also collected.
  * @build Frame HeapMonitor
  * @compile HeapMonitorVMEventsTest.java
+ * @requires !vm.graal.enabled
  * @run main/othervm/native -XX:+UnlockDiagnosticVMOptions
  *                          -XX:DisableIntrinsic=_clone
  *                          -agentlib:HeapMonitorTest MyPackage.HeapMonitorVMEventsTest
--- a/test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/libHeapMonitorTest.c	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/libHeapMonitorTest.c	Mon Jul 16 12:11:02 2018 +0100
@@ -208,6 +208,7 @@
                                      ObjectTrace* trace,
                                      ExpectedContentFrame *expected,
                                      size_t expected_count,
+                                     jboolean check_lines,
                                      int print_out_comparisons) {
   jvmtiFrameInfo* frames;
   size_t i;
@@ -224,6 +225,7 @@
     char *name = NULL, *signature = NULL, *file_name = NULL;
     jclass declaring_class;
     int line_number;
+    jboolean differ;
     jvmtiError err;
 
     if (bci < 0 && expected[i].line_number != -1) {
@@ -258,23 +260,21 @@
       return FALSE;
     }
 
+    differ = (strcmp(name, expected[i].name) ||
+              strcmp(signature, expected[i].signature) ||
+              strcmp(file_name, expected[i].file_name) ||
+              (check_lines && line_number != expected[i].line_number));
+
     if (print_out_comparisons) {
-      fprintf(stderr, "\tComparing:\n");
+      fprintf(stderr, "\tComparing: (check_lines: %d)\n", check_lines);
       fprintf(stderr, "\t\tNames: %s and %s\n", name, expected[i].name);
       fprintf(stderr, "\t\tSignatures: %s and %s\n", signature, expected[i].signature);
       fprintf(stderr, "\t\tFile name: %s and %s\n", file_name, expected[i].file_name);
       fprintf(stderr, "\t\tLines: %d and %d\n", line_number, expected[i].line_number);
-      fprintf(stderr, "\t\tResult is %d\n",
-              (strcmp(name, expected[i].name) ||
-               strcmp(signature, expected[i].signature) ||
-               strcmp(file_name, expected[i].file_name) ||
-               line_number != expected[i].line_number));
+      fprintf(stderr, "\t\tResult is %d\n", differ);
     }
 
-    if (strcmp(name, expected[i].name) ||
-        strcmp(signature, expected[i].signature) ||
-        strcmp(file_name, expected[i].file_name) ||
-        line_number != expected[i].line_number) {
+    if (differ) {
       return FALSE;
     }
   }
@@ -388,14 +388,15 @@
 static jboolean event_storage_contains(JNIEnv* env,
                                        EventStorage* storage,
                                        ExpectedContentFrame* frames,
-                                       size_t size) {
+                                       size_t size,
+                                       jboolean check_lines) {
   int i;
   event_storage_lock(storage);
   fprintf(stderr, "Checking storage count %d\n", storage->live_object_count);
   for (i = 0; i < storage->live_object_count; i++) {
     ObjectTrace* trace = storage->live_objects[i];
 
-    if (check_sample_content(env, trace, frames, size, PRINT_OUT)) {
+    if (check_sample_content(env, trace, frames, size, check_lines, PRINT_OUT)) {
       event_storage_unlock(storage);
       return TRUE;
     }
@@ -407,7 +408,8 @@
 static jboolean event_storage_garbage_contains(JNIEnv* env,
                                                EventStorage* storage,
                                                ExpectedContentFrame* frames,
-                                               size_t size) {
+                                               size_t size,
+                                               jboolean check_lines) {
   int i;
   event_storage_lock(storage);
   fprintf(stderr, "Checking garbage storage count %d\n",
@@ -419,7 +421,7 @@
       continue;
     }
 
-    if (check_sample_content(env, trace, frames, size, PRINT_OUT)) {
+    if (check_sample_content(env, trace, frames, size, check_lines, PRINT_OUT)) {
       event_storage_unlock(storage);
       return TRUE;
     }
@@ -876,7 +878,9 @@
 }
 
 JNIEXPORT jboolean JNICALL
-Java_MyPackage_HeapMonitor_obtainedEvents(JNIEnv* env, jclass cls, jobjectArray frames) {
+Java_MyPackage_HeapMonitor_obtainedEvents(JNIEnv* env, jclass cls,
+                                          jobjectArray frames,
+                                          jboolean check_lines) {
   jboolean result;
   jsize size = (*env)->GetArrayLength(env, frames);
   ExpectedContentFrame *native_frames = malloc(size * sizeof(*native_frames));
@@ -886,14 +890,17 @@
   }
 
   fill_native_frames(env, frames, native_frames, size);
-  result = event_storage_contains(env, &global_event_storage, native_frames, size);
+  result = event_storage_contains(env, &global_event_storage, native_frames,
+                                  size, check_lines);
 
   free(native_frames), native_frames = NULL;
   return result;
 }
 
 JNIEXPORT jboolean JNICALL
-Java_MyPackage_HeapMonitor_garbageContains(JNIEnv* env, jclass cls, jobjectArray frames) {
+Java_MyPackage_HeapMonitor_garbageContains(JNIEnv* env, jclass cls,
+                                           jobjectArray frames,
+                                           jboolean check_lines) {
   jboolean result;
   jsize size = (*env)->GetArrayLength(env, frames);
   ExpectedContentFrame *native_frames = malloc(size * sizeof(*native_frames));
@@ -903,7 +910,8 @@
   }
 
   fill_native_frames(env, frames, native_frames, size);
-  result = event_storage_garbage_contains(env, &global_event_storage, native_frames, size);
+  result = event_storage_garbage_contains(env, &global_event_storage,
+                                          native_frames, size, check_lines);
 
   free(native_frames), native_frames = NULL;
   return result;
--- a/test/hotspot/jtreg/serviceability/sa/ClhsdbPrintStatics.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/serviceability/sa/ClhsdbPrintStatics.java	Mon Jul 16 12:11:02 2018 +0100
@@ -57,7 +57,7 @@
             expStrMap.put("printstatics", List.of(
                     "All known static fields",
                     "Abstract_VM_Version::_vm_major_version",
-                    "ClassLoaderDataGraph::_head", "SymbolTable::_the_table",
+                    "ClassLoaderDataGraph::_head",
                     "JNIHandles::_weak_global_handles", "PerfMemory::_top",
                     "ObjectSynchronizer::gBlockList",
                     "java_lang_Class::_oop_size_offset",
--- a/test/hotspot/jtreg/serviceability/sa/ClhsdbSource.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/serviceability/sa/ClhsdbSource.java	Mon Jul 16 12:11:02 2018 +0100
@@ -66,8 +66,7 @@
                     "Available commands:",
                     "attach pid | exec core",
                     "intConstant [ name [ value ] ]",
-                    "type [ type [ name super isOop isInteger isUnsigned size ] ]",
-                    "symboltable name"));
+                    "type [ type [ name super isOop isInteger isUnsigned size ] ]"));
 
             Map<String, List<String>> unExpStrMap = new HashMap<>();
             unExpStrMap.put("source clhsdb_cmd_file", List.of(
--- a/test/hotspot/jtreg/serviceability/sa/ClhsdbSymbol.java	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-/*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * 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.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import jdk.test.lib.apps.LingeredApp;
-import jdk.test.lib.Platform;
-
-/**
- * @test
- * @bug 8190198
- * @summary Test clhsdb symboldump command
- * @requires vm.hasSA
- * @library /test/lib
- * @run main/othervm ClhsdbSymbol
- */
-
-public class ClhsdbSymbol {
-
-    public static void main(String[] args) throws Exception {
-        System.out.println("Starting ClhsdbSymbol test");
-
-        LingeredApp theApp = null;
-        try {
-            ClhsdbLauncher test = new ClhsdbLauncher();
-            theApp = LingeredApp.startApp();
-            System.out.println("Started LingeredApp with pid " + theApp.getPid());
-
-            List<String> cmds = List.of("symboldump");
-
-            Map<String, List<String>> expStrMap = new HashMap<>();
-            expStrMap.put("symboldump", List.of(
-                    "java/lang/String", "java/util/HashMap",
-                    "Ljava/io/InputStream", "LambdaMetafactory", "PerfCounter",
-                    "isAnonymousClass", "JVMTI_THREAD_STATE_TERMINATED", "jdi",
-                    "checkGetClassLoaderPermission", "lockCreationTime",
-                    "stderrBuffer", "stdoutBuffer", "getProcess",
-                    "LingeredApp"));
-
-            test.run(theApp.getPid(), cmds, expStrMap, null);
-        } catch (Exception ex) {
-            throw new RuntimeException("Test ERROR " + ex, ex);
-        } finally {
-            LingeredApp.stopApp(theApp);
-        }
-        System.out.println("Test PASSED");
-    }
-}
--- a/test/hotspot/jtreg/serviceability/sa/ClhsdbSymbolTable.java	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +0,0 @@
-/*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * 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.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.ArrayList;
-import jdk.test.lib.apps.LingeredApp;
-
-/**
- * @test
- * @bug 8191538
- * @summary Test the clhsdb 'symboltable' and 'symbol' commands
- * @requires vm.hasSA
- * @library /test/lib
- * @run main/othervm ClhsdbSymbolTable
- */
-
-public class ClhsdbSymbolTable {
-
-    public static void main(String[] args) throws Exception {
-        System.out.println("Starting the ClhsdbSymbolTable test");
-
-        LingeredApp theApp = null;
-        try {
-            ClhsdbLauncher test = new ClhsdbLauncher();
-
-            theApp = LingeredApp.startApp();
-            System.out.println("Started LingeredApp with pid " + theApp.getPid());
-
-            // Test the symboltable command
-            List<String> cmds = List.of(
-                "symboltable main",
-                "symboltable java/lang/Class",
-                "symboltable java/lang/Object",
-                "symboltable java/lang/String",
-                "symboltable java/util/List",
-                "symboltable jdk/test/lib/apps/LingeredApp");
-
-            Map<String, List<String>> expStrMap = new HashMap<>();
-            expStrMap.put("symboltable main", List.of(
-                "sun.jvm.hotspot.oops.Symbol@"));
-            expStrMap.put("symboltable java/lang/Class", List.of(
-                "sun.jvm.hotspot.oops.Symbol@"));
-            expStrMap.put("symboltable java/lang/Object", List.of(
-                "sun.jvm.hotspot.oops.Symbol@"));
-            expStrMap.put("symboltable java/lang/String", List.of(
-                "sun.jvm.hotspot.oops.Symbol@"));
-            expStrMap.put("symboltable java/util/List", List.of(
-                "sun.jvm.hotspot.oops.Symbol@"));
-            expStrMap.put("symboltable jdk/test/lib/apps/LingeredApp", List.of(
-                "sun.jvm.hotspot.oops.Symbol@"));
-            String consolidatedOutput =
-                test.run(theApp.getPid(), cmds, expStrMap, null);
-
-            // Test the 'symbol' command passing in the address obtained from
-            // the 'symboltable' command
-            expStrMap = new HashMap<>();
-            cmds = new ArrayList<String>();
-            int expectedStringsIdx = 0;
-            String expectedStrings[] = {"#main",
-                                        "#java/lang/Class", "#java/lang/Object",
-                                        "#java/lang/String", "#java/util/List",
-                                        "#jdk/test/lib/apps/LingeredApp"};
-            if (consolidatedOutput != null) {
-                // Output could be null due to attach permission issues
-                // and if we are skipping this.
-                String[] singleCommandOutputs = consolidatedOutput.split("hsdb>");
-
-                for (String singleCommandOutput : singleCommandOutputs) {
-                    if (singleCommandOutput.contains("@")) {
-                        String[] tokens = singleCommandOutput.split("@");
-                        String addressString = tokens[1].replace("\n","");
-
-                        // tokens[1] represents the address of the symbol
-                        String cmd = "symbol " + addressString;
-                        cmds.add(cmd);
-                        expStrMap.put(cmd, List.of
-                            (expectedStrings[expectedStringsIdx++]));
-                    }
-                }
-                test.run(theApp.getPid(), cmds, expStrMap, null);
-            }
-        } catch (Exception ex) {
-            throw new RuntimeException("Test ERROR " + ex, ex);
-        } finally {
-            LingeredApp.stopApp(theApp);
-        }
-        System.out.println("Test PASSED");
-    }
-}
--- a/test/hotspot/jtreg/serviceability/tmtools/jstat/GcCauseTest02.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/serviceability/tmtools/jstat/GcCauseTest02.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -32,10 +32,13 @@
  * @modules java.base/jdk.internal.misc
  * @library /test/lib
  * @library ../share
- * @run main/othervm -XX:+UsePerfData -XX:MaxNewSize=4m -XX:MaxHeapSize=128M -XX:MaxMetaspaceSize=128M GcCauseTest02
+ * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:-VerifyDependencies
+                     -XX:+UsePerfData -XX:MaxNewSize=4m -XX:MaxHeapSize=128M -XX:MaxMetaspaceSize=128M GcCauseTest02
  */
 import utils.*;
 
+// This test produces more than 90_000 classes until it eats up ~70% of the 128M meta space.
+// We turn off VerifyDependencies because it slows down the test considerably in debug builds.
 public class GcCauseTest02 {
 
     public static void main(String[] args) throws Exception {
--- a/test/hotspot/jtreg/serviceability/tmtools/jstat/GcTest02.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/serviceability/tmtools/jstat/GcTest02.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -32,10 +32,13 @@
  * @modules java.base/jdk.internal.misc
  * @library /test/lib
  * @library ../share
- * @run main/othervm -XX:+UsePerfData -XX:MaxNewSize=4m -XX:MaxHeapSize=128M -XX:MaxMetaspaceSize=128M GcTest02
+ * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:-VerifyDependencies
+                     -XX:+UsePerfData -XX:MaxNewSize=4m -XX:MaxHeapSize=128M -XX:MaxMetaspaceSize=128M GcTest02
  */
 import utils.*;
 
+// This test produces more than 90_000 classes until it eats up ~70% of the 128M meta space.
+// We turn off VerifyDependencies because it slows down the test considerably in debug builds.
 public class GcTest02 {
 
     public static void main(String[] args) throws Exception {
--- a/test/hotspot/jtreg/vmTestbase/nsk/jdb/eval/eval001/eval001.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jdb/eval/eval001/eval001.java	Mon Jul 16 12:11:02 2018 +0100
@@ -98,7 +98,8 @@
         { DEBUGGEE_CLASS + "._eval001a.myMethod()", "2147483647" },
         { "myClass.toString().equals(\"abcde\")", "true"},
         { "i + j + k", "777"},
-        { "new java.lang.String(\"Hello, World\").length()", "12"}
+        { "new java.lang.String(\"Hello, World\").length()", "12"},
+        { DEBUGGEE_CLASS + "._eval001a.testPrimitiveArray(test)", "1.0" }
                                           };
 
     protected void runCases() {
--- a/test/hotspot/jtreg/vmTestbase/nsk/jdb/eval/eval001/eval001a.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jdb/eval/eval001/eval001a.java	Mon Jul 16 12:11:02 2018 +0100
@@ -48,6 +48,7 @@
         int i = 111;
         int j = 222;
         int k = 444;
+        double[][][] test = new double[2][2][2];
 
         synchronized (this) {
             lastBreak();
@@ -81,4 +82,8 @@
              return line;
         }
     }
+
+    public double testPrimitiveArray(double[][][] d){
+        return 1.0;
+    }
 }
--- a/test/hotspot/jtreg/vmTestbase/nsk/jdb/exclude/exclude001/exclude001.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jdb/exclude/exclude001/exclude001.java	Mon Jul 16 12:11:02 2018 +0100
@@ -34,13 +34,13 @@
  * The debuggee program (exclude001a.java) starts three
  * addional threads of MyThread class. The 'run' method of these
  * threads invokes java.lang.System.currentTimeMillis() and
- * com.sun.jdi.Bootstrap.virtualMachineManager() methods.
+ * sun.util.calendar.Gregorian() methods.
  * There are three test cases:
  *  - block all exclude filter;
  *  - modified exclude filter allowing tracing events for java.* methods,
  *    which is set with 'exclude javax.*,sun.*,com.sun.*,jdk.*' command;
- *  - modified exclude filter allowing tracing events for com.sun.* methods,
- *    which is set with 'exclude java.*,javax.*,sun.*,jdk.*' command.
+ *  - modified exclude filter allowing tracing events for sun.* methods,
+ *    which is set with 'exclude java.*,javax.*,com.sun.*,jdk.*' command.
  *  - non-modified, predefined exclude filter;
  *  - modified exclude filter allowing tracing events for java.* methods,
  *    which is set with 'exclude javax.*,sun.*,com.sun.*' command;
@@ -102,7 +102,7 @@
     static final String DEBUGGEE_THREAD = PACKAGE_NAME + "." + MYTHREAD;
 
     static final String JAVA_CORE_METHOD = "java.lang.System.currentTimeMillis";
-    static final String COM_SUN_METHOD   = "com.sun.jdi.Bootstrap.virtualMachineManager";
+    static final String SUN_METHOD   = "sun.util.calendar.Gregorian";
 
     protected void runCases() {
         String[] reply;
@@ -152,8 +152,8 @@
                         case 1: // allow java.*
                                 reply = jdb.receiveReplyFor(JdbCommand.exclude + "javax.*,sun.*,com.sun.*,jdk.*");
                                 break;
-                        case 2: // allow com.sun.*
-                                reply = jdb.receiveReplyFor(JdbCommand.exclude + "java.*,javax.*,sun.*,jdk.");
+                        case 2: // allow sun.*
+                                reply = jdb.receiveReplyFor(JdbCommand.exclude + "java.*,javax.*,com.sun.*,jdk.");
                                 break;
                         }
 
@@ -172,12 +172,12 @@
                                 }
                             }
 
-                            count = grep.find(COM_SUN_METHOD);
+                            count = grep.find(SUN_METHOD);
                             if (count > 0) {
                                 if (testCase == 2) {
                                     comTraced = true;
                                 } else {
-                                    log.complain("Trace message for excluded method: " + COM_SUN_METHOD);
+                                    log.complain("Trace message for excluded method: " + SUN_METHOD);
                                 }
                             }
 
@@ -202,7 +202,7 @@
             success = false;
         }
         if (!comTraced) {
-            log.complain("There were no tracing events for " + COM_SUN_METHOD + "() method while turned off filter");
+            log.complain("There were no tracing events for " + SUN_METHOD + "() method while turned off filter");
             success = false;
         }
         if (!nskTraced) {
--- a/test/hotspot/jtreg/vmTestbase/nsk/jdb/exclude/exclude001/exclude001a.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jdb/exclude/exclude001/exclude001a.java	Mon Jul 16 12:11:02 2018 +0100
@@ -29,7 +29,7 @@
 
 import java.io.*;
 
-import com.sun.jdi.*;
+import java.util.*;
 
 
 /* This is debuggee aplication */
@@ -89,6 +89,6 @@
 
         long time = java.lang.System.currentTimeMillis();
 
-        VirtualMachineManager vmm = com.sun.jdi.Bootstrap.virtualMachineManager();
+        String caltype = GregorianCalendar.getInstance().getCalendarType();
     }
 }
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach024/java.base/java/util/TooManyListenersException.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach024/java.base/java/util/TooManyListenersException.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 1996, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * 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
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateThroughHeap/filter-tagged/HeapFilter.c	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateThroughHeap/filter-tagged/HeapFilter.c	Mon Jul 16 12:11:02 2018 +0100
@@ -163,7 +163,7 @@
                             void* user_data) {
   int object;
   int field;
-  if(!NSK_VERIFY(!verify_tag(object_class_tag, *object_tag_ptr))) {
+  if (!NSK_VERIFY(verify_tag(object_class_tag, *object_tag_ptr))) {
     nsk_jvmti_setFailStatus();
   }
 
@@ -190,7 +190,7 @@
                              void* user_data) {
   int object;
   int field;
-  if(!NSK_VERIFY(!verify_tag(class_tag, *tag_ptr))) {
+  if (!NSK_VERIFY(verify_tag(class_tag, *tag_ptr))) {
     nsk_jvmti_setFailStatus();
   }
   for(object = 0; object < TEST_OBJECTS_COUNT; object++) {
@@ -221,7 +221,7 @@
                             void* user_data) {
   int object;
   int field;
-  if(!NSK_VERIFY(!verify_tag(class_tag, *tag_ptr))) {
+  if (!NSK_VERIFY(verify_tag(class_tag, *tag_ptr))) {
     nsk_jvmti_setFailStatus();
   }
   for(object = 0; object < TEST_OBJECTS_COUNT; object++) {
@@ -247,7 +247,7 @@
                            jlong* tag_ptr,
                            jint length,
                            void* user_data) {
-  if(!NSK_VERIFY(!verify_tag(class_tag, *tag_ptr))) {
+  if (!NSK_VERIFY(verify_tag(class_tag, *tag_ptr))) {
     NSK_COMPLAIN0("Tag values invalid for selected heap filter were passed "
                   "to jvmtiHeapIterationCallback.\n");
     NSK_COMPLAIN2("\tClass tag: 0x%lX;\n\tObject tag: 0x%lX.\n", class_tag, *tag_ptr);
@@ -293,7 +293,7 @@
 
 /**
  * Read array of test objects.
- * Tag each of these objjects, their classes, non-primitive fields and non-primitive fields classes.
+ * Tag each of these objects, their classes, non-primitive fields and non-primitive fields classes.
  */
 int tag_objects(jvmtiEnv *jvmti, JNIEnv *jni) {
   jclass debugee;
@@ -502,7 +502,7 @@
     return;
   }
 
-  NSK_DISPLAY0("Verifying that all filds were found.\n");
+  NSK_DISPLAY0("Verifying that all fields were found.\n");
   verify_objects(1);
 
   if(!NSK_VERIFY(nsk_jvmti_resumeSync())) {
@@ -520,7 +520,7 @@
     return;
   }
 
-  NSK_DISPLAY0("Verifying that all filds were found.\n");
+  NSK_DISPLAY0("Verifying that all fields were found.\n");
   verify_objects(0);
 
   /*
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/jni_interception/JI05/ji05t001/ji05t001.c	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/jni_interception/JI05/ji05t001/ji05t001.c	Mon Jul 16 12:11:02 2018 +0100
@@ -333,8 +333,11 @@
     checkIntercept(1, 0, 1); /* expected interceptions: 1 */
     NSK_DISPLAY0("\n<<< TEST CASE #4) done\n");
 
-    NSK_DISPLAY1("\nagent A: returning exit code %d\n",
+    NSK_DISPLAY1("\nagent A: detaching and returning exit code %d\n",
         exitCode);
+    if ((res = JNI_ENV_PTR(vm)->DetachCurrentThread(JNI_ENV_ARG1(vm))) != 0) {
+        NSK_COMPLAIN1("TEST WARNING: agent A: DetachCurrentThread() returns: %d\n", res);
+    }
     return exitCode;
 }
 
@@ -393,8 +396,11 @@
 
     redir[1] = 1;
 
-    NSK_DISPLAY1("\nagent B: returning exit code %d\n",
+    NSK_DISPLAY1("\nagent B: detaching and returning exit code %d\n",
         exitCode);
+    if ((res = JNI_ENV_PTR(vm)->DetachCurrentThread(JNI_ENV_ARG1(vm))) != 0) {
+        NSK_COMPLAIN1("TEST WARNING: agent B: DetachCurrentThread() returns: %d\n", res);
+    }
     return exitCode;
 }
 /*********************/
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/jni_interception/JI06/ji06t001/ji06t001.c	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/jni_interception/JI06/ji06t001/ji06t001.c	Mon Jul 16 12:11:02 2018 +0100
@@ -62,6 +62,18 @@
 #define TRIES 30
 #define MAX_THREADS 5
 
+// Helper for thread detach and terminate
+#define THREAD_return(status) \
+  do { \
+      int res = JNI_ENV_PTR(vm)->DetachCurrentThread(JNI_ENV_ARG1(vm)); \
+      if (res != 0) \
+          NSK_COMPLAIN1("TEST WARNING: DetachCurrentThread() returns: %d\n", res); \
+      else \
+          NSK_DISPLAY0("Detaching thread ...\n"); \
+      return status; \
+  } while (0)
+
+
 static const char *javaField = "_ji06t001a";
 static const char *classSig =
     "Lnsk/jvmti/scenarios/jni_interception/JI06/ji06t001a;";
@@ -225,16 +237,16 @@
     thrStarted[indx-1] = 1; /* the thread is started */
 
     if (enterMonitor(env, "waitingThread") == STATUS_FAILED)
-        return STATUS_FAILED;
+        THREAD_return(STATUS_FAILED);
     if (verbose)
         printf("waitingThread: thread #%d entered the monitor\n",
             indx);
     if (exitMonitor(env, "waitingThread") == STATUS_FAILED)
-        return STATUS_FAILED;
+        THREAD_return(STATUS_FAILED);
 
     NSK_DISPLAY2("waitingThread: thread #%d exits the monitor\n\treturning %d\n",
         indx, exitCode);
-    return exitCode;
+    THREAD_return(exitCode);
 }
 
 static int ownerThread(void *context) {
@@ -254,7 +266,7 @@
 
     NSK_DISPLAY0("ownerThread: trying to enter the monitor ...\n");
     if (enterMonitor(env, "ownerThread") == STATUS_FAILED)
-        return STATUS_FAILED;
+        THREAD_return(STATUS_FAILED);
 
     monEntered = 1; /* the monitor has been entered */
     NSK_DISPLAY1("ownerThread: entered the monitor: monEntered=%d\n\
@@ -272,12 +284,12 @@
     } while(releaseMon != 1);
 
     if (exitMonitor(env, "ownerThread") == STATUS_FAILED)
-        return STATUS_FAILED;
+        THREAD_return(STATUS_FAILED);
 
     NSK_DISPLAY1("ownerThread: exits the monitor\n\treturning %d\n",
         exitCode);
 
-    return exitCode;
+    THREAD_return(exitCode);
 }
 
 static int redirectorThread(void *context) {
@@ -301,7 +313,7 @@
     NSK_DISPLAY1("redirectorThread: the MonitorEnter() redirected\n\treturning %d\n",
         exitCode);
 
-    return exitCode;
+    THREAD_return(exitCode);
 }
 /*********************/
 
--- a/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack001.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack001.java	Mon Jul 16 12:11:02 2018 +0100
@@ -51,6 +51,7 @@
  *     4254634     println() while catching StackOverflowError causes hotspot VM crash
  *     4302288 the second stack overflow causes Classic VM to exit on win32
  *
+ * @requires vm.opt.DeoptimizeALot == null | vm.opt.DeoptimizeALot == false
  * @run main/othervm nsk.stress.stack.stack001
  */
 
--- a/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack002.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack002.java	Mon Jul 16 12:11:02 2018 +0100
@@ -52,6 +52,7 @@
  *     4254634     println() while catching StackOverflowError causes hotspot VM crash
  *     4302288 the second stack overflow causes Classic VM to exit on win32
  *
+ * @requires vm.opt.DeoptimizeALot == null | vm.opt.DeoptimizeALot == false
  * @run main/othervm nsk.stress.stack.stack002
  */
 
--- a/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack003.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack003.java	Mon Jul 16 12:11:02 2018 +0100
@@ -46,6 +46,7 @@
  *     See the bug:
  *     4366625 (P4/S4) multiple stack overflow causes HS crash
  *
+ * @requires vm.opt.DeoptimizeALot == null | vm.opt.DeoptimizeALot == false
  * @run main/othervm nsk.stress.stack.stack003
  */
 
--- a/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack004.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack004.java	Mon Jul 16 12:11:02 2018 +0100
@@ -46,6 +46,7 @@
  *     See the bug:
  *     4366625 (P4/S4) multiple stack overflow causes HS crash
  *
+ * @requires vm.opt.DeoptimizeALot == null | vm.opt.DeoptimizeALot == false
  * @run main/othervm nsk.stress.stack.stack004
  */
 
--- a/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack005.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack005.java	Mon Jul 16 12:11:02 2018 +0100
@@ -46,6 +46,7 @@
  *     See the bug:
  *     4366625 (P4/S4) multiple stack overflow causes HS crash
  *
+ * @requires vm.opt.DeoptimizeALot == null | vm.opt.DeoptimizeALot == false
  * @run main/othervm nsk.stress.stack.stack005
  */
 
--- a/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack006.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack006.java	Mon Jul 16 12:11:02 2018 +0100
@@ -46,6 +46,7 @@
  *     See the bug:
  *     4366625 (P4/S4) multiple stack overflow causes HS crash
  *
+ * @requires vm.opt.DeoptimizeALot == null | vm.opt.DeoptimizeALot == false
  * @run main/othervm nsk.stress.stack.stack006
  */
 
--- a/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack007.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack007.java	Mon Jul 16 12:11:02 2018 +0100
@@ -45,6 +45,7 @@
  *     See also the bug:
  *     4366625 (P4/S4) multiple stack overflow causes HS crash
  *
+ * @requires vm.opt.DeoptimizeALot == null | vm.opt.DeoptimizeALot == false
  * @run main/othervm nsk.stress.stack.stack007
  */
 
--- a/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack008.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack008.java	Mon Jul 16 12:11:02 2018 +0100
@@ -47,6 +47,7 @@
  *     4366625 (P4/S4) multiple stack overflow causes HS crash
  *
  * @ignore 8139875
+ * @requires vm.opt.DeoptimizeALot == null | vm.opt.DeoptimizeALot == false
  * @run main/othervm nsk.stress.stack.stack008
  */
 
--- a/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack009.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack009.java	Mon Jul 16 12:11:02 2018 +0100
@@ -46,6 +46,7 @@
  *     See the bug:
  *     4366625 (P4/S4) multiple stack overflow causes HS crash
  *
+ * @requires vm.opt.DeoptimizeALot == null | vm.opt.DeoptimizeALot == false
  * @run main/othervm nsk.stress.stack.stack009
  */
 
--- a/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack010.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack010.java	Mon Jul 16 12:11:02 2018 +0100
@@ -46,6 +46,7 @@
  *     See the bug:
  *     4366625 (P4/S4) multiple stack overflow causes HS crash
  *
+ * @requires vm.opt.DeoptimizeALot == null | vm.opt.DeoptimizeALot == false
  * @run main/othervm nsk.stress.stack.stack010
  */
 
--- a/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack011.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack011.java	Mon Jul 16 12:11:02 2018 +0100
@@ -46,6 +46,7 @@
  *     See the bug:
  *     4366625 (P4/S4) multiple stack overflow causes HS crash
  *
+ * @requires vm.opt.DeoptimizeALot == null | vm.opt.DeoptimizeALot == false
  * @run main/othervm nsk.stress.stack.stack011
  */
 
--- a/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack012.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack012.java	Mon Jul 16 12:11:02 2018 +0100
@@ -47,6 +47,7 @@
  *     See the bug:
  *     4366625 (P4/S4) multiple stack overflow causes HS crash
  *
+ * @requires vm.opt.DeoptimizeALot == null | vm.opt.DeoptimizeALot == false
  * @run main/othervm nsk.stress.stack.stack012
  */
 
--- a/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack013.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack013.java	Mon Jul 16 12:11:02 2018 +0100
@@ -46,6 +46,7 @@
  *     See the bug:
  *     4366625 (P4/S4) multiple stack overflow causes HS crash
  *
+ * @requires vm.opt.DeoptimizeALot == null | vm.opt.DeoptimizeALot == false
  * @run main/othervm nsk.stress.stack.stack013
  */
 
--- a/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack014.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack014.java	Mon Jul 16 12:11:02 2018 +0100
@@ -49,6 +49,7 @@
  *     See the bug:
  *     4366625 (P4/S4) multiple stack overflow causes HS crash
  *
+ * @requires vm.opt.DeoptimizeALot == null | vm.opt.DeoptimizeALot == false
  * @run main/othervm nsk.stress.stack.stack014
  */
 
--- a/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack015.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack015.java	Mon Jul 16 12:11:02 2018 +0100
@@ -47,6 +47,7 @@
  *     See the bug:
  *     4366625 (P4/S4) multiple stack overflow causes HS crash
  *
+ * @requires vm.opt.DeoptimizeALot == null | vm.opt.DeoptimizeALot == false
  * @run main/othervm nsk.stress.stack.stack015
  */
 
--- a/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack016.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack016.java	Mon Jul 16 12:11:02 2018 +0100
@@ -50,6 +50,7 @@
  *     4366625 (P4/S4) multiple stack overflow causes HS crash
  *
  * @ignore 8139875
+ * @requires vm.opt.DeoptimizeALot == null | vm.opt.DeoptimizeALot == false
  * @run main/othervm nsk.stress.stack.stack016 -eager
  */
 
--- a/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack017.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack017.java	Mon Jul 16 12:11:02 2018 +0100
@@ -43,6 +43,7 @@
  *     4366625 (P4/S4) multiple stack overflow causes HS crash
  *
  * @ignore 8139875
+ * @requires vm.opt.DeoptimizeALot == null | vm.opt.DeoptimizeALot == false
  * @run main/othervm nsk.stress.stack.stack017 -eager
  */
 
--- a/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack018.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack018.java	Mon Jul 16 12:11:02 2018 +0100
@@ -48,6 +48,7 @@
  *     4366625 (P4/S4) multiple stack overflow causes HS crash
  *
  * @ignore 8139875
+ * @requires vm.opt.DeoptimizeALot == null | vm.opt.DeoptimizeALot == false
  * @run main/othervm nsk.stress.stack.stack018 -eager
  */
 
--- a/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack019.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack019.java	Mon Jul 16 12:11:02 2018 +0100
@@ -41,6 +41,7 @@
  *     4366625 (P4/S4) multiple stack overflow causes HS crash
  *
  * @ignore 8139875
+ * @requires vm.opt.DeoptimizeALot == null | vm.opt.DeoptimizeALot == false
  * @run main/othervm nsk.stress.stack.stack019 -eager
  */
 
--- a/test/hotspot/jtreg/vmTestbase/vm/mlvm/tools/Indify.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/hotspot/jtreg/vmTestbase/vm/mlvm/tools/Indify.java	Mon Jul 16 12:11:02 2018 +0100
@@ -4,9 +4,7 @@
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
  *
  * This code is distributed in the hope that it will be useful, but WITHOUT
  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jaxp/javax/xml/jaxp/unittest/transform/SAXTFactoryTest.java	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 transform;
+
+import java.util.Properties;
+import javax.xml.transform.Templates;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.sax.SAXTransformerFactory;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+import org.xml.sax.XMLFilter;
+
+/*
+ * @test
+ * @bug 8206164
+ * @modules java.xml
+ * @run testng transform.SAXTFactoryTest
+ * @summary Tests SAXTransformerFactory.
+ */
+public class SAXTFactoryTest {
+
+    /*
+     * Verifies that the default ErrorListener throws a TransformerException
+     * when a fatal error is encountered. It is then wrapped and thrown again in
+     * a TransformerConfigurationException.
+    */
+    @Test
+    public void testErrorListener() throws Exception {
+        try {
+            SAXTransformerFactory saxTFactory =
+                    (SAXTransformerFactory)TransformerFactory.newInstance();
+            XMLFilter filter = saxTFactory.newXMLFilter(new ATemplatesImpl());
+        } catch (TransformerConfigurationException tce) {
+            Throwable cause = tce.getCause();
+            Assert.assertTrue((cause != null && cause instanceof TransformerException),
+                    "The TransformerFactoryImpl terminates upon a fatal error "
+                            + "by throwing a TransformerException.");
+        }
+
+    }
+
+    class ATemplatesImpl implements Templates {
+
+        @Override
+        public Transformer newTransformer() throws TransformerConfigurationException {
+            throw new TransformerConfigurationException("TCE from ATemplatesImpl");
+        }
+
+        @Override
+        public Properties getOutputProperties() {
+            throw new UnsupportedOperationException("Not supported yet.");
+        }
+
+    }
+}
--- a/test/jdk/ProblemList.txt	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/jdk/ProblemList.txt	Mon Jul 16 12:11:02 2018 +0100
@@ -128,7 +128,7 @@
 java/awt/dnd/BadSerializaionTest/BadSerializationTest.java 8039082 generic-all
 java/awt/dnd/MissingEventsOnModalDialog/MissingEventsOnModalDialogTest.java 8164464 linux-all,macosx-all
 java/awt/dnd/URIListBetweenJVMsTest/URIListBetweenJVMsTest.html 8171510 macosx-all
-java/awt/dnd/7171812/bug7171812.java 8041447 macosx-all
+javax/swing/dnd/7171812/bug7171812.java 8041447 macosx-all
 java/awt/Focus/ChoiceFocus/ChoiceFocus.java 8169103 windows-all,macosx-all
 java/awt/Focus/ClearLwQueueBreakTest/ClearLwQueueBreakTest.java 8198618 macosx-all
 java/awt/Focus/ConsumeNextKeyTypedOnModalShowTest/ConsumeNextKeyTypedOnModalShowTest.java 6986252 macosx-all
@@ -196,7 +196,6 @@
 java/awt/TrayIcon/ActionEventTest/ActionEventTest.java 8150540 windows-all
 java/awt/TrayIcon/ModalityTest/ModalityTest.java 8150540 windows-all,macosx-all
 java/awt/TrayIcon/MouseEventMask/MouseEventMaskTest.java 8150540 windows-all
-java/awt/TrayIcon/MouseEventMask/MouseEventMovedTest.java 8150540 windows-all
 java/awt/TrayIcon/MouseMovedTest/MouseMovedTest.java 8150540 windows-all
 java/awt/TrayIcon/SecurityCheck/FunctionalityCheck/FunctionalityCheck.java 8150540 windows-all
 java/awt/TrayIcon/TrayIconEventModifiers/TrayIconEventModifiersTest.java 8150540 windows-all
@@ -244,7 +243,6 @@
 sun/java2d/SunGraphics2D/SourceClippingBlitTest/SourceClippingBlitTest.java 8196185 generic-all
 sun/java2d/pipe/InterpolationQualityTest.java 8171303 windows-all,linux-all,macosx-all
 java/awt/FullScreen/DisplayChangeVITest/DisplayChangeVITest.java 8169469 windows-all
-java/awt/Graphics/ClippedCopyAreaTest/ClippedCopyAreaTest.java 8196436 linux-all
 java/awt/Graphics2D/DrawString/DrawRotatedStringUsingRotatedFont.java 8197796 generic-all
 java/awt/TextArea/TextAreaScrolling/TextAreaScrolling.java 8196300 windows-all
 java/awt/print/PrinterJob/Margins.java 8196301 windows-all
@@ -399,8 +397,6 @@
 java/awt/Mouse/EnterExitEvents/FullscreenEnterEventTest.java 8051455 macosx-all
 java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Standard.java 7124407 macosx-all
 java/awt/Mouse/RemovedComponentMouseListener/RemovedComponentMouseListener.java 8157170 macosx-all
-java/awt/Focus/ForwardingFocusToProxyMotifTest/ForwardingFocusToProxyMotifTest.java 8196436 linux-all
-java/awt/Window/OverrideRedirectRemoved/ChildWindowProblem.java 8196438 linux-all
 java/awt/Modal/ToBack/ToBackAppModal1Test.java 8196441 linux-all,macosx-all
 java/awt/Modal/ToBack/ToBackAppModal2Test.java 8196441 linux-all,macosx-all
 java/awt/Modal/ToBack/ToBackAppModal3Test.java 8196441 linux-all,macosx-all
@@ -475,8 +471,6 @@
 java/awt/Focus/WindowUpdateFocusabilityTest/WindowUpdateFocusabilityTest.html 8202926 linux-all
 java/awt/datatransfer/ConstructFlavoredObjectTest/ConstructFlavoredObjectTest.java 8202860 linux-all
 java/awt/dnd/DisposeFrameOnDragCrash/DisposeFrameOnDragTest.java 8202790 macosx-all,linux-all
-java/awt/Clipboard/NoDataConversionFailureTest/NoDataConversionFailureTest.html 8202791 macosx-all
-java/awt/Clipboard/ImageTransferTest/ImageTransferTest.html 8202792 macosx-all
 java/awt/FileDialog/FilenameFilterTest/FilenameFilterTest.html 8202882 linux-all
 java/awt/MenuBar/8007006/bug8007006.java 8202886 macosx-all
 java/awt/Frame/FramesGC/FramesGC.java 8079069 macosx-all
@@ -526,6 +520,7 @@
 java/lang/management/MemoryMXBean/PendingAllGC.sh               8158837 generic-all
 
 java/lang/management/ThreadMXBean/ThreadMXBeanStateTest.java    8081652 generic-all
+java/lang/management/ThreadMXBean/AllThreadIds.java             8131745 generic-all
 
 ############################################################################
 
@@ -540,9 +535,6 @@
 com/sun/management/OperatingSystemMXBean/GetProcessCpuLoad.java 8030957 aix-all
 com/sun/management/OperatingSystemMXBean/GetSystemCpuLoad.java  8030957 aix-all
 
-sun/management/jmxremote/bootstrap/RmiSslBootstrapTest.sh       8205653 generic-all
-sun/management/jmxremote/bootstrap/RmiRegistrySslTest.java      8205653 generic-all
-
 ############################################################################
 
 # jdk_jmx
@@ -611,7 +603,6 @@
 javax/net/ssl/DTLS/RespondToRetransmit.java                     8169086 macosx-x64
 javax/net/ssl/DTLS/CipherSuite.java                             8202059 macosx-x64
 
-sun/security/krb5/auto/UnboundSSL.java                          8180265 windows-all
 sun/security/provider/KeyStore/DKSTest.sh                       8180266 windows-all
 
 sun/security/pkcs11/Cipher/ReinitCipher.java                    8204203 windows-all
@@ -679,6 +670,7 @@
 javax/sound/sampled/DirectAudio/bug6372428.java                      8055097 generic-all
 javax/sound/sampled/Clip/bug5070081.java                             8055097 generic-all
 javax/sound/sampled/DataLine/LongFramePosition.java                  8055097 generic-all
+javax/sound/sampled/Clip/AutoCloseTimeCheck.java                     8207150 generic-all
 
 javax/sound/sampled/Clip/Drain/ClipDrain.java          7062792 generic-all
 
@@ -717,7 +709,6 @@
 javax/swing/JSplitPane/4201995/bug4201995.java 8079127 generic-all
 javax/swing/JTree/DnD/LastNodeLowerHalfDrop.java 8159131 linux-all
 javax/swing/JTree/4633594/JTreeFocusTest.java 8173125 macosx-all
-javax/swing/JTree/8003400/Test8003401.java 8011259 macosx-all,linux-all
 javax/swing/JFileChooser/8041694/bug8041694.java 8196302 windows-all
 javax/swing/AbstractButton/6711682/bug6711682.java 8060765 windows-all,macosx-all
 javax/swing/Action/8133039/bug8133039.java 8196089 windows-all,macosx-all
@@ -798,7 +789,7 @@
 javax/swing/PopupFactory/8048506/bug8048506.java 8202660 windows-all
 javax/swing/JTextArea/TextViewOOM/TextViewOOM.java 8167355 generic-all
 javax/swing/JEditorPane/8195095/ImageViewTest.java 8202656 windows-all
-javax/swing/text/Utilities/8142966/SwingFontMetricsTest.java 8202663 windows-all
+javax/swing/text/Utilities/8142966/SwingFontMetricsTest.java 8199529 windows-all
 javax/swing/JPopupMenu/8075063/ContextMenuScrollTest.java 202880 linux-all
 javax/swing/dnd/8139050/NativeErrorsInTableDnD.java 8202765  macosx-all,linux-all
 javax/swing/Popup/TaskbarPositionTest.java 8065097 macosx-all,linux-all
@@ -819,9 +810,7 @@
 # core_tools
 
 tools/pack200/CommandLineTests.java                             8059906 generic-all
-
-tools/jimage/JImageExtractTest.java                             8198405,8198819 generic-all
-tools/jimage/JImageListTest.java                                8198405 windows-all
+tools/jimage/JImageListTest.java                                8206445 windows-all
 
 ############################################################################
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/crypto/provider/Cipher/ChaCha20/unittest/ChaCha20CipherUnitTest.java	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,252 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 8153029
+ * @library /test/lib
+ * @run main ChaCha20CipherUnitTest
+ * @summary Unit test for com.sun.crypto.provider.ChaCha20Cipher.
+ */
+
+import java.nio.ByteBuffer;
+import java.security.AlgorithmParameters;
+import java.security.InvalidAlgorithmParameterException;
+import java.security.NoSuchAlgorithmException;
+import java.security.SecureRandom;
+import java.util.Arrays;
+
+import javax.crypto.Cipher;
+import javax.crypto.spec.ChaCha20ParameterSpec;
+import javax.crypto.spec.IvParameterSpec;
+import javax.crypto.spec.SecretKeySpec;
+
+import jdk.test.lib.Utils;
+
+public class ChaCha20CipherUnitTest {
+
+    private static final byte[] NONCE
+            = Utils.toByteArray("012345670123456701234567");
+    private static final SecretKeySpec KEY = new SecretKeySpec(
+            Utils.toByteArray(
+                    "0123456701234567012345670123456701234567012345670123456701234567"),
+            "ChaCha20");
+    private static final ChaCha20ParameterSpec CHACHA20_PARAM_SPEC
+            = new ChaCha20ParameterSpec(NONCE, 0);
+    private static final IvParameterSpec IV_PARAM_SPEC
+            = new IvParameterSpec(NONCE);
+
+    public static void main(String[] args) throws Exception {
+        testTransformations();
+        testInit();
+        testAEAD();
+        testGetBlockSize();
+    }
+
+    private static void testTransformations() throws Exception {
+        System.out.println("== transformations ==");
+
+        checkTransformation("ChaCha20", true);
+        checkTransformation("ChaCha20/None/NoPadding", true);
+        checkTransformation("ChaCha20-Poly1305", true);
+        checkTransformation("ChaCha20-Poly1305/None/NoPadding", true);
+
+        checkTransformation("ChaCha20/ECB/NoPadding", false);
+        checkTransformation("ChaCha20/None/PKCS5Padding", false);
+        checkTransformation("ChaCha20-Poly1305/ECB/NoPadding", false);
+        checkTransformation("ChaCha20-Poly1305/None/PKCS5Padding", false);
+    }
+
+    private static void checkTransformation(String transformation,
+            boolean expected) throws Exception {
+        try {
+            Cipher.getInstance(transformation);
+            if (!expected) {
+                throw new RuntimeException(
+                        "Unexpected transformation: " + transformation);
+            } else {
+                System.out.println("Expected transformation: " + transformation);
+            }
+        } catch (NoSuchAlgorithmException e) {
+            if (!expected) {
+                System.out.println("Unexpected transformation: " + transformation);
+            } else {
+                throw new RuntimeException("Unexpected fail: " + transformation, e);
+            }
+        }
+    }
+
+    private static void testInit() throws Exception {
+        testInitOnCrypt(Cipher.ENCRYPT_MODE);
+        testInitOnCrypt(Cipher.DECRYPT_MODE);
+        testInitOnWrap(Cipher.WRAP_MODE);
+        testInitOnWrap(Cipher.UNWRAP_MODE);
+    }
+
+    private static void testInitOnCrypt(int opMode) throws Exception {
+        System.out.println("== init (" + getOpModeName(opMode) + ") ==");
+
+        Cipher.getInstance("ChaCha20").init(opMode, KEY, CHACHA20_PARAM_SPEC);
+        Cipher.getInstance("ChaCha20").init(opMode, KEY,
+                CHACHA20_PARAM_SPEC, new SecureRandom());
+
+        try {
+            Cipher.getInstance("ChaCha20").init(opMode, KEY, IV_PARAM_SPEC);
+            throw new RuntimeException("ChaCha20ParameterSpec is needed");
+        } catch (InvalidAlgorithmParameterException e) {
+            System.out.println("Expected " + e);
+        }
+
+        Cipher.getInstance("ChaCha20-Poly1305").init(opMode, KEY,
+                IV_PARAM_SPEC);
+        Cipher.getInstance("ChaCha20-Poly1305").init(opMode, KEY,
+                IV_PARAM_SPEC, new SecureRandom());
+
+        try {
+            Cipher.getInstance("ChaCha20-Poly1305").init(opMode, KEY,
+                    CHACHA20_PARAM_SPEC);
+            throw new RuntimeException("IvParameterSpec is needed");
+        } catch (InvalidAlgorithmParameterException e) {
+            System.out.println("Expected " + e);
+        }
+
+        AlgorithmParameters algorithmParameters =
+                AlgorithmParameters.getInstance("ChaCha20-Poly1305");
+        algorithmParameters.init(
+                new byte[] { 4, 12, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8 });
+        try {
+            Cipher.getInstance("ChaCha20").init(opMode, KEY,
+                    algorithmParameters, new SecureRandom());
+            throw new RuntimeException(
+                    "ChaCha20 cipher doesn't accept AlgorithmParameters");
+        } catch (InvalidAlgorithmParameterException e) {
+            System.out.println("Expected " + e);
+        }
+        Cipher.getInstance("ChaCha20-Poly1305").init(opMode, KEY,
+                algorithmParameters, new SecureRandom());
+    }
+
+    private static void testInitOnWrap(int opMode) throws Exception {
+        String opModeName = getOpModeName(opMode);
+        System.out.println("== init (" + opModeName + ") ==");
+
+        Cipher chacha20Cipher = Cipher.getInstance("ChaCha20");
+        try {
+            chacha20Cipher.init(opMode, KEY, new SecureRandom());
+            throw new RuntimeException(
+                    "Unexpected opration mode: " + opModeName);
+        } catch (Exception e) {
+            if (e instanceof UnsupportedOperationException) {
+                System.out.println("Expected " + e);
+            } else {
+                throw new RuntimeException("Unexpected exception: " + e);
+            }
+        }
+    }
+
+    private static void testAEAD() throws Exception {
+        byte[] expectedPlainttext = Utils.toByteArray("01234567");
+        byte[] ciphertext = testUpdateAAD(Cipher.ENCRYPT_MODE, expectedPlainttext);
+        byte[] plaintext = testUpdateAAD(Cipher.DECRYPT_MODE, ciphertext);
+        if (!Arrays.equals(plaintext, expectedPlainttext)) {
+            System.out.println("ciphertext: " + Arrays.toString(ciphertext));
+            System.out.println("plaintext: " + Arrays.toString(plaintext));
+            throw new RuntimeException("AEAD failed");
+        }
+    }
+
+    private static byte[] testUpdateAAD(int opMode, byte[] input)
+            throws Exception {
+        String opModeName = getOpModeName(opMode);
+        System.out.println("== updateAAD (" + opModeName + ") ==");
+
+        byte[] aad = Utils.toByteArray("0000");
+        ByteBuffer aadBuf = ByteBuffer.wrap(aad);
+
+        Cipher cipher = Cipher.getInstance("ChaCha20");
+        cipher.init(opMode, KEY, CHACHA20_PARAM_SPEC);
+        try {
+            cipher.updateAAD(aadBuf);
+            throw new RuntimeException("ChaCha20 cipher cannot apply AAD");
+        } catch (IllegalStateException e) {
+            System.out.println("Expected " + e);
+        }
+
+        Cipher aeadCipher = Cipher.getInstance("ChaCha20-Poly1305");
+        try {
+            aeadCipher.updateAAD(aadBuf);
+            throw new RuntimeException(
+                    "Cannot update AAD on uninitialized Cipher");
+        } catch (IllegalStateException e) {
+            System.out.println("Expected " + e);
+        }
+        aeadCipher.init(opMode, KEY, IV_PARAM_SPEC);
+        aeadCipher.update(input);
+        try {
+            aeadCipher.updateAAD(aad);
+            throw new RuntimeException(
+                    "Cannot update AAD after plaintext/cipertext update");
+        } catch (IllegalStateException e) {
+            System.out.println("Expected " + e);
+        }
+
+        aeadCipher = Cipher.getInstance("ChaCha20-Poly1305");
+        aeadCipher.init(opMode, KEY, IV_PARAM_SPEC);
+        aeadCipher.updateAAD(aadBuf);
+        return aeadCipher.doFinal(input);
+    }
+
+    private static void testGetBlockSize() throws Exception {
+        testGetBlockSize(Cipher.ENCRYPT_MODE);
+        testGetBlockSize(Cipher.DECRYPT_MODE);
+    }
+
+    private static void testGetBlockSize(int opMode) throws Exception {
+        System.out.println("== getBlockSize (" + getOpModeName(opMode) + ") ==");
+
+        Cipher cipher = Cipher.getInstance("ChaCha20");
+        cipher.init(opMode, KEY, CHACHA20_PARAM_SPEC);
+        if (cipher.getBlockSize() != 0) {
+            throw new RuntimeException("Block size must be 0");
+        }
+    }
+
+    private static String getOpModeName(int opMode) {
+        switch (opMode) {
+        case Cipher.ENCRYPT_MODE:
+            return "ENCRYPT";
+
+        case Cipher.DECRYPT_MODE:
+            return "DECRYPT";
+
+        case Cipher.WRAP_MODE:
+            return "WRAP";
+
+        case Cipher.UNWRAP_MODE:
+            return "UNWRAP";
+
+        default:
+            return "";
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/crypto/provider/Cipher/ChaCha20/unittest/ChaCha20Poly1305ParametersUnitTest.java	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,148 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 8153029
+ * @library /test/lib
+ * @run main ChaCha20Poly1305ParametersUnitTest
+ * @summary Unit test for com.sun.crypto.provider.ChaCha20Poly1305Parameters.
+ */
+
+import java.io.IOException;
+import java.security.AlgorithmParameters;
+import java.security.spec.InvalidParameterSpecException;
+import java.util.Arrays;
+
+import javax.crypto.spec.ChaCha20ParameterSpec;
+import javax.crypto.spec.IvParameterSpec;
+
+public class ChaCha20Poly1305ParametersUnitTest {
+
+    private static final String ALGORITHM = "ChaCha20-Poly1305";
+
+    private static final byte[] NONCE = {
+            0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8 };
+    private static final byte[] PARAM = {
+            4, 12, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8 };
+
+    private static final byte[] BAD_NONCE = {
+            0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
+    private static final byte[] BAD_PARAM = {
+            4, 13, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
+
+    public static void main(String[] args) throws Exception {
+        testInit();
+        testGetParameterSpec();
+        testGetEncoded();
+    }
+
+    private static void testInit() throws Exception {
+        System.out.println("== init ==");
+
+        AlgorithmParameters ap = AlgorithmParameters.getInstance(ALGORITHM);
+        ap.init(new IvParameterSpec(NONCE));
+        System.out.println("AlgorithmParameters: " + ap);
+
+        ap = AlgorithmParameters.getInstance(ALGORITHM);
+        ap.init(PARAM);
+
+        ap = AlgorithmParameters.getInstance(ALGORITHM);
+        try {
+            ap.init(new ChaCha20ParameterSpec(NONCE, 0));
+            throw new RuntimeException("IvParameterSpec is needed");
+        } catch (InvalidParameterSpecException e) {
+            System.out.println("Expected " + e);
+        }
+
+        ap = AlgorithmParameters.getInstance(ALGORITHM);
+        try {
+            ap.init(new IvParameterSpec(BAD_NONCE));
+            throw new RuntimeException("Nonce must be 96 bits in length");
+        } catch (InvalidParameterSpecException e) {
+            System.out.println("Expected " + e);
+        }
+
+        ap = AlgorithmParameters.getInstance(ALGORITHM);
+        try {
+            ap.init(BAD_PARAM);
+            throw new RuntimeException("Nonce must be 96 bits in length");
+        } catch (IOException e) {
+            System.out.println("Expected " + e);
+        }
+    }
+
+    private static void testGetParameterSpec() throws Exception {
+        System.out.println("== getParameterSpec ==");
+
+        AlgorithmParameters ap = AlgorithmParameters.getInstance(ALGORITHM);
+        ap.init(PARAM);
+
+        IvParameterSpec paramSpec = ap.getParameterSpec(IvParameterSpec.class);
+        byte[] nonce = paramSpec.getIV();
+        System.out.println("Nonce: " + Arrays.toString(nonce));
+        Arrays.equals(nonce, NONCE);
+
+        try {
+            ap.getParameterSpec(ChaCha20ParameterSpec.class);
+            throw new RuntimeException("IvParameterSpec is needed");
+        } catch (InvalidParameterSpecException e) {
+            System.out.println("Expected " + e);
+        }
+    }
+
+    private static void testGetEncoded() throws Exception {
+        System.out.println("== getEncoded ==");
+
+        AlgorithmParameters ap = AlgorithmParameters.getInstance(ALGORITHM);
+        ap.init(PARAM);
+
+        byte[] defaultFormatEncoded = ap.getEncoded();
+        System.out.println("Default format encoding: "
+                + Arrays.toString(defaultFormatEncoded));
+        if (!Arrays.equals(defaultFormatEncoded, PARAM)) {
+            throw new RuntimeException("Default format encoding failed");
+        }
+
+        byte[] asn1FormatEncoded = ap.getEncoded("ASN.1");
+        System.out.println("ASN.1 format encoding: "
+                + Arrays.toString(asn1FormatEncoded));
+        if (!Arrays.equals(asn1FormatEncoded, PARAM)) {
+            throw new RuntimeException("ASN.1 format encoding failed");
+        }
+
+        byte[] nullFormatEncoded = ap.getEncoded(null);
+        System.out.println("Null format encoding: "
+                + Arrays.toString(nullFormatEncoded));
+        if (!Arrays.equals(nullFormatEncoded, PARAM)) {
+            throw new RuntimeException("Null format encoding failed");
+        }
+
+        try {
+            ap.getEncoded("BAD");
+            throw new RuntimeException("Format must be ASN.1");
+        } catch (IOException e) {
+            System.out.println("Expected " + e);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/crypto/provider/Cipher/ChaCha20/unittest/Poly1305UnitTestDriver.java	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 8153029
+ * @modules java.base/com.sun.crypto.provider
+ * @run main java.base/com.sun.crypto.provider.Poly1305UnitTest
+ * @summary Unit test for com.sun.crypto.provider.Poly1305.
+ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/crypto/provider/Cipher/ChaCha20/unittest/java.base/com/sun/crypto/provider/Poly1305UnitTest.java	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 com.sun.crypto.provider;
+
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+
+import javax.crypto.spec.SecretKeySpec;
+
+public class Poly1305UnitTest {
+
+    public static void main(String[] args) throws Exception {
+        byte[] key = new byte[] {
+                 28, -110,   64,  -91,  -21,   85,  -45, -118,
+                -13,   51, -120, -122,    4,  -10,  -75,  -16,
+                 71,   57,   23,  -63,   64,   43, -128,    9,
+                -99,  -54,   92,  -68,   32,  112,  117,  -64
+        };
+
+        Poly1305 authenticator = new Poly1305();
+        if (authenticator.engineGetMacLength() != 16) {
+            throw new RuntimeException(
+                    "The length of Poly1305 MAC must be 16-bytes.");
+        }
+
+        authenticator.engineInit(new SecretKeySpec(key, 0, 32,
+                "Poly1305"), null);
+
+        byte[] message = new byte[] {
+                 39,   84,  119,   97,  115,   32,   98,  114,
+                105,  108,  108,  105,  103,   44,   32,   97,
+                110,  100,   32,  116,  104,  101,   32,  115,
+                108,  105,  116,  104,  121,   32,  116,  111,
+                118,  101,  115,   10,   68,  105,  100,   32,
+                103,  121,  114,  101,   32,   97,  110,  100,
+                 32,  103,  105,  109,   98,  108,  101,   32,
+                105,  110,   32,  116,  104,  101,   32,  119,
+                 97,   98,  101,   58,   10,   65,  108,  108,
+                 32,  109,  105,  109,  115,  121,   32,  119,
+                101,  114,  101,   32,  116,  104,  101,   32,
+                 98,  111,  114,  111,  103,  111,  118,  101,
+                115,   44,   10,   65,  110,  100,   32,  116,
+                104,  101,   32,  109,  111,  109,  101,   32,
+                114,   97,  116,  104,  115,   32,  111,  117,
+                116,  103,  114,   97,   98,  101,   46
+        };
+
+        authenticator.engineUpdate(
+                ByteBuffer.wrap(Arrays.copyOfRange(message, 0, 8)));
+        authenticator.engineUpdate(message, 8, 104);
+        authenticator.engineUpdate(message, 112, 7);
+        for (int i = 119; i < message.length; i++) {
+            authenticator.engineUpdate(message[i]);
+        }
+
+        byte[] tag = authenticator.engineDoFinal();
+        byte[] expectedTag = new byte[] {
+                 69,   65,  102, -102,  126,  -86,  -18,   97,
+                -25,    8,  -36,  124,  -68,  -59,  -21,   98
+        };
+        if (!Arrays.equals(tag, expectedTag)) {
+            throw new RuntimeException(
+                    "Unexpected tag: " + Arrays.toString(tag));
+        }
+    }
+}
--- a/test/jdk/com/sun/jdi/RedefineNestmateAttr/TestNestmateAttr.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/jdk/com/sun/jdi/RedefineNestmateAttr/TestNestmateAttr.java	Mon Jul 16 12:11:02 2018 +0100
@@ -189,12 +189,14 @@
 
         }
 
+        breakpoint();    // debugger runs to here before enabling events
         allowRedefine(); // debugger stops us here to attempt redefinitions
 
         System.out.println("Target executed okay");
     }
 
-    public static void allowRedefine() { }
+    static void allowRedefine() { }
+    static void breakpoint() { }
 }
 
 public class TestNestmateAttr extends TestScaffold {
@@ -226,7 +228,7 @@
 
     public void runTests() throws Exception {
         // Get Target into debuggable state
-        BreakpointEvent bpe = startToMain("Target");
+        BreakpointEvent bpe = startTo("Target", "breakpoint", "()V");
         EventRequestManager erm = vm().eventRequestManager();
         MethodEntryRequest mee = erm.createMethodEntryRequest();
         mee.addClassFilter("Target");
--- a/test/jdk/com/sun/jndi/dns/Test6991580.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/jdk/com/sun/jndi/dns/Test6991580.java	Mon Jul 16 12:11:02 2018 +0100
@@ -33,10 +33,11 @@
 /*
  * @test
  * @bug 6991580 8080108 8133035
- * @requires os.family != "windows"
  * @summary IPv6 Nameservers in resolv.conf throws NumberFormatException
  * @modules java.desktop
  *          jdk.naming.dns/com.sun.jndi.dns
+ * @requires os.family != "windows"
+ * @build IPv6NameserverPlatformParsingTest
  * @run main/manual Test6991580
  */
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/security/auth/UnixPrincipalHashCode.java	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 8198352
+ * @requires os.family != "windows"
+ * @run main/othervm/policy=uphc.policy
+ *      -Djava.security.auth.login.config=uphc.conf
+ *      UnixPrincipalHashCode
+ * @summary java.util.MissingResourceException: sun.security.util.AuthResources
+ *          when trying to use com.sun.security.auth.module.UnixLoginModule
+ */
+
+import javax.security.auth.Subject;
+import javax.security.auth.login.LoginContext;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.security.PrivilegedAction;
+import java.util.List;
+
+public class UnixPrincipalHashCode {
+    public static void main(java.lang.String[] args) throws Exception {
+        Files.write(Path.of("uphc.conf"), List.of(
+                "entry {",
+                "    com.sun.security.auth.module.UnixLoginModule required;",
+                "};"));
+        LoginContext lc = new LoginContext("entry");
+        lc.login();
+        Subject subject = lc.getSubject();
+        PrivilegedAction action = () -> {
+            System.out.println(subject);
+            return null;
+        };
+        Subject.doAsPrivileged(subject, action, null);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/security/auth/uphc.policy	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,6 @@
+grant {
+   permission java.io.FilePermission "./-", "write";
+   permission javax.security.auth.AuthPermission "modifyPrincipals";
+   permission javax.security.auth.AuthPermission "createLoginContext";
+   permission javax.security.auth.AuthPermission "doAsPrivileged";
+};
--- a/test/jdk/java/awt/Frame/UnfocusableMaximizedFrameResizablity/UnfocusableMaximizedFrameResizablity.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/jdk/java/awt/Frame/UnfocusableMaximizedFrameResizablity/UnfocusableMaximizedFrameResizablity.java	Mon Jul 16 12:11:02 2018 +0100
@@ -24,7 +24,7 @@
 /*
   @test
   @key headful
-  @bug 4980161 7158623
+  @bug 4980161 7158623 8204860
   @summary Setting focusable window state to false makes the maximized frame resizable
   @compile UnfocusableMaximizedFrameResizablity.java
   @run main UnfocusableMaximizedFrameResizablity
@@ -36,29 +36,84 @@
 import java.awt.AWTException;
 import java.awt.event.InputEvent;
 import java.awt.Robot;
+import javax.swing.JFrame;
+import javax.swing.SwingUtilities;
 
 public class UnfocusableMaximizedFrameResizablity {
 
     private static Frame frame;
+    private static JFrame jframe;
     private static Robot robot;
     private static boolean isProgInterruption = false;
     private static Thread mainThread = null;
     private static int sleepTime = 300000;
 
-    private static void createAndShowFrame() {
+    private static void createAndShowFrame() throws Exception {
 
         //The MAXIMIZED_BOTH state is not supported by the toolkit. Nothing to test.
         if (!Toolkit.getDefaultToolkit().isFrameStateSupported(Frame.MAXIMIZED_BOTH)) {
             return;
         }
 
-        frame = new Frame("Unfocusable frame");
+        //Case 1: Setting frame resizable to true followed by focusable to false
+        frame = createFrame("Resizable Unfocusable frame");
+        frame.setResizable(true);
+        frame.setFocusableWindowState(false);
+        tryToResizeFrame(frame);
+
+        //Case 2: Setting frame focusable to false followed by resizable to true
+        frame = createFrame("Unfocusable Resizable frame");
+        frame.setFocusableWindowState(false);
+        frame.setResizable(true);
+        tryToResizeFrame(frame);
+
+        //Case 3: Testing JFrame fullscreen behaviour only on Mac OS
+        if (System.getProperty("os.name").toLowerCase().startsWith("mac")) {
+            SwingUtilities.invokeAndWait(new Runnable() {
+
+                Override
+                public void run() {
+                    jframe = createJFrame("Unfocusable Resizable JFrame");
+                    jframe.setFocusableWindowState(false);
+                    jframe.setResizable(true);
+                    Object prop1 = jframe.getRootPane().getClientProperty("apple.awt.fullscreenable");
+                    jframe.setVisible(false);
+                    jframe.setVisible(true);
+                    Object prop2 = jframe.getRootPane().getClientProperty("apple.awt.fullscreenable");
+
+                    if((prop1 != null && prop2 != null) && (!prop1.equals(prop2))) {
+                        jframe.dispose();
+                        cleanup();
+                        throw new RuntimeException("Non-focusable resizable JFrame is fullscreenable!!");
+                    }
+                }
+            });
+        }
+
+        cleanup();
+    }
+
+    private static JFrame createJFrame(String title) {
+        JFrame jframe = new JFrame(title);
+        jframe.setMaximizedBounds(new Rectangle(0, 0, 300, 300));
+        jframe.setSize(200, 200);
+        jframe.setVisible(true);
+        jframe.setExtendedState(Frame.MAXIMIZED_BOTH);
+
+        return jframe;
+    }
+
+    private static Frame createFrame(String title) {
+        Frame frame = new Frame(title);
         frame.setMaximizedBounds(new Rectangle(0, 0, 300, 300));
         frame.setSize(200, 200);
         frame.setVisible(true);
         frame.setExtendedState(Frame.MAXIMIZED_BOTH);
-        frame.setFocusableWindowState(false);
 
+        return frame;
+    }
+
+    private static void tryToResizeFrame(Frame frame) {
         try {
             robot = new Robot();
         } catch (AWTException e) {
@@ -89,16 +144,16 @@
             cleanup();
             throw new RuntimeException("The maximized unfocusable frame can be resized.");
         }
-        cleanup();
+
+        frame.dispose();
     }
 
     private static void cleanup() {
-        frame.dispose();
         isProgInterruption = true;
         mainThread.interrupt();
     }
 
-    public static void main(String args[]) throws InterruptedException {
+    public static void main(String args[]) throws Exception {
 
         mainThread = Thread.currentThread();
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/beans/Beans/TypoInBeanDescription.java	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.beans.BeanInfo;
+import java.beans.IntrospectionException;
+import java.beans.Introspector;
+import java.io.IOException;
+import java.net.URI;
+import java.nio.file.FileSystem;
+import java.nio.file.FileSystems;
+import java.nio.file.FileVisitResult;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.SimpleFileVisitor;
+import java.nio.file.attribute.BasicFileAttributes;
+
+/**
+ * @test
+ * @bug 8205454
+ */
+public final class TypoInBeanDescription {
+
+    private static final String[] typos = {"&amp;", "&lt;", "&gt;", "&quot;"};
+
+    public static void main(final String[] args) throws IOException {
+        FileSystem fs = FileSystems.getFileSystem(URI.create("jrt:/"));
+        Files.walkFileTree(fs.getPath("/modules/java.desktop"), new SimpleFileVisitor<>() {
+            @Override
+            public FileVisitResult visitFile(Path file,
+                                             BasicFileAttributes attrs) {
+                file = file.subpath(2, file.getNameCount());
+                String name = file.toString();
+                if (name.endsWith(".class")) {
+                    name = name.substring(0, name.indexOf(".")).replace('/', '.');
+
+                    final Class<?> type;
+                    try {
+                        type = Class.forName(name);
+                    } catch (Throwable e) {
+                        return FileVisitResult.CONTINUE;
+                    }
+                    final BeanInfo beanInfo;
+                    try {
+                        beanInfo = Introspector.getBeanInfo(type);
+                    } catch (IntrospectionException e) {
+                        return FileVisitResult.CONTINUE;
+                    }
+                    test(beanInfo);
+                }
+                return FileVisitResult.CONTINUE;
+            }
+        });
+    }
+
+    private static void test(final BeanInfo beanInfo) {
+        for (var pd : beanInfo.getPropertyDescriptors()) {
+            String d = pd.getShortDescription();
+            String n = pd.getName();
+            String dn = pd.getDisplayName();
+            for (String typo : typos) {
+                if (d.contains(typo) || n.contains(typo) || dn.contains(typo)) {
+                    throw new RuntimeException("Wrong name: " + beanInfo.getBeanDescriptor());
+                }
+            }
+        }
+    }
+}
--- a/test/jdk/java/lang/Class/GetPackageBootLoaderChildLayer.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/jdk/java/lang/Class/GetPackageBootLoaderChildLayer.java	Mon Jul 16 12:11:02 2018 +0100
@@ -23,6 +23,7 @@
 
 /**
  * @test
+ * @requires !vm.graal.enabled
  * @modules jdk.attach
  * @run main/othervm --limit-modules jdk.attach -Djdk.attach.allowAttachSelf
  *    GetPackageBootLoaderChildLayer
--- a/test/jdk/java/lang/System/SetProperties.java	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * 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 4244670
- * @summary test System.setProperties(null)
- */
-
-import java.util.Properties;
-
-public class SetProperties {
-    public static void main(String [] argv) {
-        System.setProperties((Properties)null);
-        System.getProperties().containsKey("java.version");
-    }
-}
--- a/test/jdk/java/lang/System/SetPropertiesNull.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/jdk/java/lang/System/SetPropertiesNull.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,7 @@
  * reinitialized after setting System.setProperties(null).
  *
  * @test
- * @bug 8030781
+ * @bug 4244670 8030781
  * @summary Test for System.setProperties(null).
  */
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/lang/invoke/MethodHandlesArityLimitsTest.java	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,120 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 unit tests for arity limits of methods in java.lang.invoke.MethodHandles
+ * @run junit/othervm test.java.lang.invoke.MethodHandlesArityLimitsTest
+ **/
+
+package test.java.lang.invoke;
+
+import org.junit.*;
+
+import java.lang.invoke.MethodHandles;
+import java.lang.invoke.MethodHandle;
+import java.lang.invoke.WrongMethodTypeException;
+import java.lang.invoke.MethodType;
+import java.lang.invoke.VarHandle;
+import java.util.List;
+
+import java.util.stream.IntStream;
+
+import static org.junit.Assert.*;
+
+public class MethodHandlesArityLimitsTest {
+
+    private static MethodType mt254 = null;
+    private static MethodType mt255 = null;
+
+    static {
+        Class<?>[] classes254 = IntStream.range(0, 254)
+                                         .mapToObj(i -> int.class)
+                                         .toArray(Class[]::new);
+        mt254 = MethodType.methodType(void.class, classes254);
+        mt255 = mt254.appendParameterTypes(int.class);
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void testDropArgumentsToMatch() {
+        MethodHandles.dropArgumentsToMatch(MethodHandles.empty(mt254), 0, mt255.parameterList(), 0);
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void testEmpty() {
+        MethodHandles.empty(mt255);
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void testExplicitCastArguments() {
+        MethodHandles.explicitCastArguments(
+                                         MethodHandles.empty(mt254),
+                                         mt254.dropParameterTypes(0, 1).insertParameterTypes(0, long.class) );
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void testPermuteArguments() {
+        MethodHandles.permuteArguments(
+                                    MethodHandles.empty(MethodType.methodType(void.class)),
+                                    mt255);
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void testVarHandleInvoker() {
+        MethodHandles.varHandleInvoker(VarHandle.AccessMode.GET, mt254);
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void testVarHandleExactInvoker() {
+        MethodHandles.varHandleExactInvoker(VarHandle.AccessMode.GET, mt254);
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void testMHExactInvoker() {
+        MethodHandles.exactInvoker(mt255);
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void testMHInvoker() {
+        MethodHandles.invoker(mt255);
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void testMHSpreadInvoker() {
+        MethodHandles.spreadInvoker(mt255, 255);
+    }
+
+    @Test(expected = WrongMethodTypeException.class)
+    public void testAsType() throws ReflectiveOperationException {
+        MethodHandle asList = MethodHandles.lookup().findStatic(
+                                                java.util.Arrays.class,
+                                                "asList",
+                                                MethodType.methodType(List.class, Object[].class));
+        try {
+           asList.asType(MethodType.genericMethodType(254));//does not throw IAE or WMTE
+        }
+        catch(WrongMethodTypeException wmte) {
+           Assert.fail("Unexpected WrongMethodTypeException thrown");
+        }
+        asList.asType(MethodType.genericMethodType(255));//throws WMTE
+    }
+}
--- a/test/jdk/java/lang/invoke/t8150782/TestAccessClass.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/jdk/java/lang/invoke/t8150782/TestAccessClass.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,6 +24,7 @@
  */
 
 /* @test
+ * @bug 8150782 8207027
  * @compile TestAccessClass.java TestCls.java
  * @run testng/othervm -ea -esa test.java.lang.invoke.t8150782.TestAccessClass
  */
@@ -54,11 +55,17 @@
     }
 
     @Test
-    public void returnsSameClass() throws IllegalAccessException, ClassNotFoundException {
+    public void returnsSameClassInSamePackage() throws IllegalAccessException, ClassNotFoundException {
         Class<?> aClass = lookup().accessClass(Class1.class);
         assertEquals(Class1.class, aClass);
     }
 
+    @Test
+    public void returnsSameArrayClassInSamePackage() throws IllegalAccessException, ClassNotFoundException {
+        Class<?> aClass = lookup().accessClass(Class1[].class);
+        assertEquals(Class1[].class, aClass);
+    }
+
     @DataProvider
     Object[][] illegalAccessAccess() {
         return new Object[][] {
--- a/test/jdk/java/lang/invoke/t8150782/TestFindClass.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/jdk/java/lang/invoke/t8150782/TestFindClass.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,6 +24,7 @@
  */
 
 /* @test
+ * @bug 8150782 8207027
  * @compile TestFindClass.java TestCls.java
  * @run testng/othervm -ea -esa test.java.lang.invoke.t8150782.TestFindClass
  */
@@ -56,11 +57,17 @@
     }
 
     @Test
-    public void returnsRequestedClass() throws IllegalAccessException, ClassNotFoundException {
+    public void returnsRequestedClassInSamePackage() throws IllegalAccessException, ClassNotFoundException {
         Class<?> aClass = lookup().findClass(PACKAGE_PREFIX + "TestFindClass$Class1");
         assertEquals(Class1.class, aClass);
     }
 
+    @Test
+    public void returnsRequestedArrayClassInSamePackage() throws IllegalAccessException, ClassNotFoundException {
+        Class<?> aClass = lookup().findClass("[L" + PACKAGE_PREFIX + "TestFindClass$Class1;");
+        assertEquals(Class1[].class, aClass);
+    }
+
     @Test(expectedExceptions = {ClassNotFoundException.class})
     public void classNotFoundExceptionTest() throws IllegalAccessException, ClassNotFoundException {
         lookup().findClass(PACKAGE_PREFIX + "TestFindClass$NonExistent");
--- a/test/jdk/java/lang/reflect/OldenCompilingWithDefaults.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/jdk/java/lang/reflect/OldenCompilingWithDefaults.java	Mon Jul 16 12:11:02 2018 +0100
@@ -25,7 +25,6 @@
  * @test
  * @bug 8009267
  * @summary Verify uses of isAnnotationPresent compile under older source versions
- * @compile -source 1.6 -target 1.6 OldenCompilingWithDefaults.java
  * @compile -source 1.7 -target 1.7 OldenCompilingWithDefaults.java
  * @compile                         OldenCompilingWithDefaults.java
  */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/nio/channels/AsynchronousSocketChannel/CompletionHandlerRelease.java	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,211 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 8202252
+ * @run testng CompletionHandlerRelease
+ * @summary Verify that reference to CompletionHandler is cleared after use
+ */
+
+import java.io.Closeable;
+import java.io.IOException;
+import java.lang.ref.Reference;
+import java.lang.ref.ReferenceQueue;
+import java.lang.ref.WeakReference;
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import static java.net.StandardSocketOptions.*;
+import java.nio.ByteBuffer;
+import java.nio.channels.AsynchronousChannelGroup;
+import java.nio.channels.AsynchronousServerSocketChannel;
+import java.nio.channels.AsynchronousSocketChannel;
+import java.nio.channels.CompletionHandler;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+
+import org.testng.annotations.AfterTest;
+import org.testng.annotations.BeforeTest;
+import org.testng.annotations.Test;
+import static org.testng.Assert.*;
+
+public class CompletionHandlerRelease {
+    @Test
+    public void testConnect() throws Exception {
+        try (Server server = new Server()) {
+            try (AsynchronousSocketChannel ch =
+                 AsynchronousSocketChannel.open(GROUP)) {
+                CountDownLatch latch = new CountDownLatch(1);
+                Handler<Void,Object> handler =
+                    new Handler<Void,Object>("connect", latch);
+                ReferenceQueue queue = new ReferenceQueue<WeakReference>();
+                WeakReference<Object> ref =
+                    new WeakReference<Object>(handler, queue);
+
+                ch.connect(server.address(), null, handler);
+
+                try { latch.await(); } catch (InterruptedException ignore) { }
+
+                handler = null;
+                waitForRefToClear(ref, queue);
+
+                server.accept().get().close();
+            }
+        }
+    }
+
+    @Test
+    public void testWrite() throws Exception {
+        try (Server server = new Server();
+             AsynchronousSocketChannel ch =
+                 AsynchronousSocketChannel.open(GROUP)) {
+            ch.connect(server.address()).get();
+
+            try (AsynchronousSocketChannel sc = server.accept().get()) {
+                ByteBuffer src = ByteBuffer.wrap("hello".getBytes("UTF-8"));
+                sc.setOption(SO_SNDBUF, src.remaining());
+
+                CountDownLatch latch = new CountDownLatch(1);
+                Handler<Integer,Object> handler =
+                    new Handler<Integer,Object>("write", latch);
+                ReferenceQueue queue = new ReferenceQueue<WeakReference>();
+                WeakReference<Object> ref =
+                    new WeakReference<Object>(handler, queue);
+
+                sc.write(src, null, handler);
+
+                try { latch.await(); } catch (InterruptedException ignore) { }
+
+                handler = null;
+                waitForRefToClear(ref, queue);
+            }
+        }
+    }
+
+    @Test
+    public void testRead() throws Exception {
+        try (Server server = new Server();
+             AsynchronousSocketChannel ch =
+                 AsynchronousSocketChannel.open(GROUP)) {
+            ch.connect(server.address()).get();
+
+            try (AsynchronousSocketChannel sc = server.accept().get()) {
+                ByteBuffer src = ByteBuffer.wrap("hello".getBytes("UTF-8"));
+                sc.setOption(SO_SNDBUF, src.remaining());
+                sc.write(src).get();
+
+                CountDownLatch latch = new CountDownLatch(1);
+                Handler<Integer,Object> handler =
+                    new Handler<Integer,Object>("read", latch);
+                ReferenceQueue queue = new ReferenceQueue<WeakReference>();
+                WeakReference<Object> ref =
+                    new WeakReference<Object>(handler, queue);
+
+                ByteBuffer dst = ByteBuffer.allocate(64);
+                ch.read(dst, null, handler);
+
+                try { latch.await(); } catch (InterruptedException ignore) { }
+
+                handler = null;
+                waitForRefToClear(ref, queue);
+            }
+        }
+    }
+
+    private AsynchronousChannelGroup GROUP;
+
+    @BeforeTest
+    void setup() throws IOException {
+        GROUP = AsynchronousChannelGroup.withFixedThreadPool(2,
+            Executors.defaultThreadFactory());
+    }
+
+    @AfterTest
+    void cleanup() throws IOException {
+        GROUP.shutdownNow();
+    }
+
+    class Server implements Closeable {
+        private final AsynchronousServerSocketChannel ssc;
+        private final InetSocketAddress address;
+
+        Server() throws IOException {
+            this(0);
+        }
+
+        Server(int recvBufSize) throws IOException {
+            ssc = AsynchronousServerSocketChannel.open(GROUP);
+            if (recvBufSize > 0) {
+                ssc.setOption(SO_RCVBUF, recvBufSize);
+            }
+            ssc.bind(new InetSocketAddress(InetAddress.getLoopbackAddress(),
+                0));
+            address = (InetSocketAddress)ssc.getLocalAddress();
+        }
+
+        InetSocketAddress address() {
+            return address;
+        }
+
+        Future<AsynchronousSocketChannel> accept() throws IOException {
+            return ssc.accept();
+        }
+
+        public void close() throws IOException {
+            ssc.close();
+        }
+    }
+
+    static class Handler<V,A> implements CompletionHandler<V,A> {
+        private final String name;
+        private final CountDownLatch latch;
+
+        Handler(String name, CountDownLatch latch) {
+            this.name = name;
+            this.latch = latch;
+        }
+
+        public void completed(V result, A attachment) {
+            System.out.format("%s completed(%s, %s)%n",
+                name, result, attachment);
+            latch.countDown();
+        }
+
+        public void failed(Throwable exc, A attachment) {
+            System.out.format("%s failed(%s, %s)%n",
+                name, exc, attachment);
+            exc.printStackTrace();
+            latch.countDown();
+        }
+    }
+
+    private void waitForRefToClear(Reference ref, ReferenceQueue queue)
+        throws InterruptedException {
+        Reference r;
+        while ((r = queue.remove(20)) == null) {
+            System.gc();
+        }
+        assertEquals(r, ref);
+        assertNull(r.get());
+    }
+}
--- a/test/jdk/java/nio/channels/Selector/RegisterDuringSelect.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/jdk/java/nio/channels/Selector/RegisterDuringSelect.java	Mon Jul 16 12:11:02 2018 +0100
@@ -28,6 +28,7 @@
  */
 
 import java.io.IOException;
+import java.nio.channels.ClosedSelectorException;
 import java.nio.channels.Pipe;
 import java.nio.channels.SelectionKey;
 import java.nio.channels.Selector;
@@ -44,9 +45,14 @@
             @Override
             public Void call() throws IOException {
                 for (;;) {
-                    sel.select();
+                    try {
+                        sel.select();
+                    } catch (ClosedSelectorException ignore) {
+                        return null;
+                    }
                     if (sel.isOpen()) {
                         barrier.arriveAndAwaitAdvance();
+                        System.out.println("selectLoop advanced ...");
                     } else {
                         // closed
                         return null;
@@ -107,3 +113,4 @@
 
     }
 }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/text/Format/DateFormat/Bug8193444.java	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 8193444
+ * @summary Checks SimpleDateFormat.format/parse for the AIOOB exception when
+ *          formatting/parsing dates through a pattern string that contains a
+ *          sequence of 256 or more non-ASCII unicode characters.
+ * @run testng/othervm Bug8193444
+ */
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import static org.testng.Assert.assertEquals;
+
+public class Bug8193444 {
+
+    private static final String NON_ASCII_CHAR = "\u263A";
+
+    @DataProvider(name = "dateFormat")
+    Object[][] dateFormatData() {
+        return new Object[][]{
+            // short_length (between 0 and 254)
+            {250},
+            // boundary
+            {254},
+            // long_length
+            {257},};
+    }
+
+    @Test(dataProvider = "dateFormat")
+    public void testDateFormatAndParse(int length)
+            throws ParseException {
+
+        String pattern = NON_ASCII_CHAR.repeat(length);
+
+        DateFormat df = new SimpleDateFormat(pattern);
+        // format() should not throw AIOOB exception
+        String result = df.format(new Date());
+
+        // Since the tested format patterns do not contain any character
+        // representing date/time field, those characters are not interpreted,
+        // they are simply copied into the output string during formatting
+        assertEquals(result, pattern, "Failed to format the date using"
+                + " pattern of length: " + length);
+
+        // The format pattern used by this SimpleDateFormat
+        // contains a sequence of non-ASCII characters, which does not
+        // represent any date/time field. The same sequence is given
+        // for parsing, just to check that the parsing does
+        // not throw any AIOOB exception.
+        // Although as per the parse() specification, the calendar's default
+        // values of the date-time fields are used for any missing
+        // date-time information, but checking that is not the intention of
+        // this test.
+        df.parse(pattern);
+    }
+
+}
--- a/test/jdk/java/time/test/java/time/format/TestNonIsoFormatter.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/jdk/java/time/test/java/time/format/TestNonIsoFormatter.java	Mon Jul 16 12:11:02 2018 +0100
@@ -24,6 +24,7 @@
 /*
  *
  * @test
+ * @bug 8206120
  * @modules jdk.localedata
  */
 
@@ -44,6 +45,7 @@
 import java.time.format.DateTimeFormatterBuilder;
 import java.time.format.DateTimeParseException;
 import java.time.format.FormatStyle;
+import java.time.format.ResolverStyle;
 import java.time.format.TextStyle;
 import java.time.temporal.TemporalAccessor;
 import java.time.temporal.TemporalQueries;
@@ -135,6 +137,16 @@
         };
     }
 
+    @DataProvider(name="lenient_eraYear")
+    Object[][] lenientEraYear() {
+        return new Object[][] {
+            // Chronology, lenient era/year, strict era/year
+            { JAPANESE, "Meiji 123", "Heisei 2" },
+            { JAPANESE, "Showa 65", "Heisei 2" },
+            { JAPANESE, "Heisei 32", "NewEra 2" }, // NewEra
+        };
+    }
+
     @Test(dataProvider="format_data")
     public void test_formatLocalizedDate(Chronology chrono, Locale formatLocale, Locale numberingLocale,
                                          ChronoLocalDate date, String expected) {
@@ -173,4 +185,15 @@
         Chronology cal = ta.query(TemporalQueries.chronology());
         assertEquals(cal, chrono);
     }
+
+    @Test(dataProvider="lenient_eraYear")
+    public void test_lenientEraYear(Chronology chrono, String lenient, String strict) {
+        String mdStr = "-01-01";
+        DateTimeFormatter dtf = new DateTimeFormatterBuilder()
+            .appendPattern("GGGG y-M-d")
+            .toFormatter()
+            .withChronology(chrono);
+        DateTimeFormatter dtfLenient = dtf.withResolverStyle(ResolverStyle.LENIENT);
+        assertEquals(LocalDate.parse(lenient+mdStr, dtfLenient), LocalDate.parse(strict+mdStr, dtf));
+    }
 }
--- a/test/jdk/java/time/test/java/time/format/TestZoneTextPrinterParser.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/jdk/java/time/test/java/time/format/TestZoneTextPrinterParser.java	Mon Jul 16 12:11:02 2018 +0100
@@ -49,7 +49,7 @@
 
 /*
  * @test
- * @bug 8081022 8151876 8166875 8189784
+ * @bug 8081022 8151876 8166875 8189784 8206980
  * @key randomness
  */
 
@@ -156,12 +156,15 @@
             {"America/Chicago",  "CST",                   none,      Locale.ENGLISH, TextStyle.SHORT},
             {"Asia/Taipei",      "CST",                   preferred, Locale.ENGLISH, TextStyle.SHORT},
             {"Australia/South",  "ACST",                  preferred_s, Locale.ENGLISH, TextStyle.SHORT},
-            {"America/Chicago",  "CDT",                   none,        Locale.ENGLISH, TextStyle.SHORT},
+            {"America/Chicago",  "CDT",                   none,      Locale.ENGLISH, TextStyle.SHORT},
             {"Asia/Shanghai",    "CDT",                   preferred_s, Locale.ENGLISH, TextStyle.SHORT},
-            {"America/Juneau",   "AKST",                  none,        Locale.ENGLISH, TextStyle.SHORT},
-            {"America/Juneau",   "AKDT",                  none,        Locale.ENGLISH, TextStyle.SHORT},
-            {"Pacific/Honolulu", "HST",                   none,        Locale.ENGLISH, TextStyle.SHORT},
-            {"America/Halifax",  "AST",                   none,        Locale.ENGLISH, TextStyle.SHORT},
+            {"America/Juneau",   "AKST",                  none,      Locale.ENGLISH, TextStyle.SHORT},
+            {"America/Juneau",   "AKDT",                  none,      Locale.ENGLISH, TextStyle.SHORT},
+            {"Pacific/Honolulu", "HST",                   none,      Locale.ENGLISH, TextStyle.SHORT},
+            {"America/Halifax",  "AST",                   none,      Locale.ENGLISH, TextStyle.SHORT},
+            {"Z",                "Z",                     none,      Locale.ENGLISH, TextStyle.SHORT},
+            {"Z",                "Z",                     none,      Locale.US,      TextStyle.SHORT},
+            {"Z",                "Z",                     none,      Locale.CANADA,  TextStyle.SHORT},
        };
     }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/util/ArrayDeque/WhiteBox.java	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,153 @@
+/*
+ * 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.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file:
+ *
+ * Written by Martin Buchholz with assistance from members of JCP
+ * JSR-166 Expert Group and released to the public domain, as
+ * explained at http://creativecommons.org/publicdomain/zero/1.0/
+ */
+
+/*
+ * @test
+ * @modules java.base/java.util:open
+ * @run testng WhiteBox
+ * @summary White box tests of implementation details
+ */
+
+import static org.testng.Assert.*;
+import org.testng.annotations.Test;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.lang.invoke.MethodHandles;
+import java.lang.invoke.VarHandle;
+import java.util.ArrayDeque;
+import java.util.concurrent.ThreadLocalRandom;
+
+@Test
+public class WhiteBox {
+    final ThreadLocalRandom rnd = ThreadLocalRandom.current();
+    final VarHandle ELEMENTS, HEAD, TAIL;
+
+    WhiteBox() throws ReflectiveOperationException {
+        Class<?> klazz = ArrayDeque.class;
+        MethodHandles.Lookup lookup
+            = MethodHandles.privateLookupIn(klazz, MethodHandles.lookup());
+        ELEMENTS = lookup.findVarHandle(klazz, "elements", Object[].class);
+        HEAD = lookup.findVarHandle(klazz, "head", int.class);
+        TAIL = lookup.findVarHandle(klazz, "tail", int.class);
+    }
+
+    Object[] elements(ArrayDeque d) { return (Object[]) ELEMENTS.get(d); }
+    int head(ArrayDeque d) { return (int) HEAD.get(d); }
+    int tail(ArrayDeque d) { return (int) TAIL.get(d); }
+
+    void checkCapacity(ArrayDeque d, int capacity) {
+        assertTrue(d.isEmpty());
+        assertEquals(0, head(d));
+        assertEquals(0, tail(d));
+        Object[] initialElements = elements(d);
+
+        assertInvariants(d);
+        for (int i = capacity; i--> 0; ) {
+            d.add(rnd.nextInt(42));
+            assertSame(elements(d), initialElements);
+            assertInvariants(d);
+        }
+
+        d.add(rnd.nextInt(42));
+        assertNotSame(elements(d), initialElements);
+        assertInvariants(d);
+    }
+
+    @Test
+    public void defaultConstructor() {
+        checkCapacity(new ArrayDeque(), 16);
+    }
+
+    @Test
+    public void shouldNotResizeWhenInitialCapacityProvided() {
+        int initialCapacity = rnd.nextInt(20);
+        checkCapacity(new ArrayDeque(initialCapacity), initialCapacity);
+    }
+
+    byte[] serialBytes(Object o) {
+        try {
+            ByteArrayOutputStream bos = new ByteArrayOutputStream();
+            ObjectOutputStream oos = new ObjectOutputStream(bos);
+            oos.writeObject(o);
+            oos.flush();
+            oos.close();
+            return bos.toByteArray();
+        } catch (Exception fail) {
+            throw new AssertionError(fail);
+        }
+    }
+
+    @SuppressWarnings("unchecked")
+    <T> T serialClone(T o) {
+        try {
+            ObjectInputStream ois = new ObjectInputStream
+                (new ByteArrayInputStream(serialBytes(o)));
+            T clone = (T) ois.readObject();
+            assertNotSame(o, clone);
+            assertSame(o.getClass(), clone.getClass());
+            return clone;
+        } catch (Exception fail) {
+            throw new AssertionError(fail);
+        }
+    }
+
+    @Test
+    public void testSerialization() {
+        ArrayDeque[] ds = { new ArrayDeque(), new ArrayDeque(rnd.nextInt(20)) };
+        for (ArrayDeque d : ds) {
+            if (rnd.nextBoolean()) d.add(99);
+            ArrayDeque clone = serialClone(d);
+            assertInvariants(clone);
+            assertNotSame(elements(d), elements(clone));
+            assertEquals(d, clone);
+        }
+    }
+
+    /** Checks conditions which should always be true. */
+    void assertInvariants(ArrayDeque d) {
+        final Object[] elements = elements(d);
+        final int head = head(d);
+        final int tail = tail(d);
+        final int capacity = elements.length;
+        assertTrue(0 <= head && head < capacity);
+        assertTrue(0 <= tail && tail < capacity);
+        assertTrue(capacity > 0);
+        assertTrue(d.size() < capacity);
+        assertTrue((head == tail) ^ (elements[head] != null));
+        assertNull(elements[tail]);
+        assertTrue((head == tail) ^ (elements[Math.floorMod(tail - 1, capacity)] != null));
+    }
+}
--- a/test/jdk/java/util/Calendar/JapaneseEraNameTest.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/jdk/java/util/Calendar/JapaneseEraNameTest.java	Mon Jul 16 12:11:02 2018 +0100
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8202088
+ * @bug 8202088 8207152
  * @summary Test the localized Japanese new era name (May 1st. 2019-)
  *      is retrieved no matter CLDR provider contains the name or not.
  * @modules jdk.localedata
@@ -51,7 +51,7 @@
     Object[][] names() {
         return new Object[][] {
             // type,    locale,  name
-            { LONG,     JAPAN,   "\u65b0\u5143\u53f7" }, // NewEra
+            { LONG,     JAPAN,   "\u5143\u53f7" }, // NewEra
             { LONG,     US,      "NewEra" },
             { SHORT,    JAPAN,   "N" },
             { SHORT,    US,      "N" },
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/util/Calendar/JapaneseLenientEraTest.java	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 8206120
+ * @summary Test whether lenient era is accepted in JapaneseImperialCalendar
+ * @run testng/othervm JapaneseLenientEraTest
+ */
+
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.Locale;
+
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import static org.testng.Assert.assertEquals;
+
+@Test
+public class JapaneseLenientEraTest {
+
+    @DataProvider(name="lenientEra")
+    Object[][] names() {
+        return new Object[][] {
+            // lenient era/year, strict era/year
+            { "Meiji 123", "Heisei 2" },
+            { "Sh\u014dwa 65", "Heisei 2" },
+            { "Heisei 32", "NewEra 2" }, // NewEra
+        };
+    }
+
+    @Test(dataProvider="lenientEra")
+    public void testLenientEra(String lenient, String strict) throws Exception {
+        Calendar c = new Calendar.Builder()
+            .setCalendarType("japanese")
+            .build();
+        DateFormat df = new SimpleDateFormat("GGGG y-M-d", Locale.ROOT);
+        df.setCalendar(c);
+        Date lenDate = df.parse(lenient + "-01-01");
+        df.setLenient(false);
+        Date strDate = df.parse(strict + "-01-01");
+        assertEquals(lenDate, strDate);
+    }
+}
--- a/test/jdk/java/util/Locale/bcp47u/SystemPropertyTests.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/jdk/java/util/Locale/bcp47u/SystemPropertyTests.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -47,6 +47,7 @@
 public class SystemPropertyTests {
 
     private static String LANGPROP = "-Duser.language=en";
+    private static String SCPTPROP = "-Duser.script=";
     private static String CTRYPROP = "-Duser.country=US";
 
     @DataProvider(name="data")
@@ -88,7 +89,7 @@
     @Test(dataProvider="data")
     public void runTest(String extprop, String defLoc,
                         String defFmtLoc, String defDspLoc) throws Exception {
-        int exitValue = executeTestJava(LANGPROP, CTRYPROP,
+        int exitValue = executeTestJava(LANGPROP, SCPTPROP, CTRYPROP,
                                     extprop, "DefaultLocaleTest", defLoc, defFmtLoc, defDspLoc)
                             .outputTo(System.out)
                             .errorTo(System.out)
--- a/test/jdk/java/util/concurrent/forkjoin/FJExceptionTableLeak.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/jdk/java/util/concurrent/forkjoin/FJExceptionTableLeak.java	Mon Jul 16 12:11:02 2018 +0100
@@ -34,77 +34,102 @@
 
 /*
  * @test
- * @bug 8004138
+ * @bug 8004138 8205576
  * @modules java.base/java.util.concurrent:open
+ * @run testng FJExceptionTableLeak
  * @summary Checks that ForkJoinTask thrown exceptions are not leaked.
  * This whitebox test is sensitive to forkjoin implementation details.
  */
 
+import static org.testng.Assert.*;
+import org.testng.annotations.Test;
+
 import static java.util.concurrent.TimeUnit.MILLISECONDS;
 
 import java.lang.ref.ReferenceQueue;
 import java.lang.ref.WeakReference;
-import java.lang.reflect.Field;
+import java.lang.invoke.MethodHandles;
+import java.lang.invoke.VarHandle;
 import java.util.ArrayList;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.ForkJoinPool;
 import java.util.concurrent.ForkJoinTask;
 import java.util.concurrent.RecursiveAction;
+import java.util.concurrent.ThreadLocalRandom;
+import java.util.concurrent.locks.ReentrantLock;
 import java.util.function.BooleanSupplier;
 
+@Test
 public class FJExceptionTableLeak {
+    final ThreadLocalRandom rnd = ThreadLocalRandom.current();
+    final VarHandle NEXT, EX;
+    final Object[] exceptionTable;
+    final ReentrantLock exceptionTableLock;
+
+    FJExceptionTableLeak() throws ReflectiveOperationException {
+        MethodHandles.Lookup lookup = MethodHandles.privateLookupIn(
+            ForkJoinTask.class, MethodHandles.lookup());
+        Class<?> nodeClass = Class.forName(
+            ForkJoinTask.class.getName() + "$ExceptionNode");
+        VarHandle exceptionTableHandle = lookup.findStaticVarHandle(
+            ForkJoinTask.class, "exceptionTable", arrayClass(nodeClass));
+        VarHandle exceptionTableLockHandle = lookup.findStaticVarHandle(
+            ForkJoinTask.class, "exceptionTableLock", ReentrantLock.class);
+        exceptionTable = (Object[]) exceptionTableHandle.get();
+        exceptionTableLock = (ReentrantLock) exceptionTableLockHandle.get();
+
+        NEXT = lookup.findVarHandle(nodeClass, "next", nodeClass);
+        EX = lookup.findVarHandle(nodeClass, "ex", Throwable.class);
+    }
+
+    static <T> Class<T[]> arrayClass(Class<T> klazz) {
+        try {
+            return (Class<T[]>) Class.forName("[L" + klazz.getName() + ";");
+        } catch (ReflectiveOperationException ex) {
+            throw new Error(ex);
+        }
+    }
+
+    Object next(Object node) { return NEXT.get(node); }
+    Throwable ex(Object node) { return (Throwable) EX.get(node); }
+
     static class FailingTaskException extends RuntimeException {}
     static class FailingTask extends RecursiveAction {
         public void compute() { throw new FailingTaskException(); }
     }
 
-    static int bucketsInuse(Object[] exceptionTable) {
-        int count = 0;
-        for (Object x : exceptionTable)
-            if (x != null) count++;
-        return count;
+    /** Counts all FailingTaskExceptions still recorded in exceptionTable. */
+    int retainedExceptions() {
+        exceptionTableLock.lock();
+        try {
+            int count = 0;
+            for (Object node : exceptionTable)
+                for (; node != null; node = next(node))
+                    if (ex(node) instanceof FailingTaskException)
+                        count++;
+            return count;
+        } finally {
+            exceptionTableLock.unlock();
+        }
     }
 
-    public static void main(String[] args) throws Exception {
-        final ForkJoinPool pool = new ForkJoinPool(4);
-        final Field exceptionTableField =
-            ForkJoinTask.class.getDeclaredField("exceptionTable");
-        exceptionTableField.setAccessible(true);
-        final Object[] exceptionTable = (Object[]) exceptionTableField.get(null);
-
-        if (bucketsInuse(exceptionTable) != 0) throw new AssertionError();
-
-        final ArrayList<FailingTask> tasks = new ArrayList<>();
+    @Test
+    public void exceptionTableCleanup() throws Exception {
+        ArrayList<FailingTask> failedTasks = failedTasks();
 
-        // Keep submitting failing tasks until most of the exception
-        // table buckets are in use
-        do {
-            for (int i = 0; i < exceptionTable.length; i++) {
-                FailingTask task = new FailingTask();
-                pool.execute(task);
-                tasks.add(task); // retain strong refs to all tasks, for now
-            }
-            for (FailingTask task : tasks) {
-                try {
-                    task.join();
-                    throw new AssertionError("should throw");
-                } catch (FailingTaskException success) {}
-            }
-        } while (bucketsInuse(exceptionTable) < exceptionTable.length * 3 / 4);
-
-        // Retain a strong ref to one last failing task;
-        // task.join() will trigger exception table expunging.
-        FailingTask lastTask = tasks.get(0);
+        // Retain a strong ref to one last failing task
+        FailingTask lastTask = failedTasks.get(rnd.nextInt(failedTasks.size()));
 
         // Clear all other strong refs, making exception table cleanable
-        tasks.clear();
+        failedTasks.clear();
 
         BooleanSupplier exceptionTableIsClean = () -> {
             try {
+                // Trigger exception table expunging as side effect
                 lastTask.join();
                 throw new AssertionError("should throw");
             } catch (FailingTaskException expected) {}
-            int count = bucketsInuse(exceptionTable);
+            int count = retainedExceptions();
             if (count == 0)
                 throw new AssertionError("expected to find last task");
             return count == 1;
@@ -112,6 +137,35 @@
         gcAwait(exceptionTableIsClean);
     }
 
+    /** Sequestered into a separate method to inhibit GC retention. */
+    ArrayList<FailingTask> failedTasks()
+        throws Exception {
+        final ForkJoinPool pool = new ForkJoinPool(rnd.nextInt(1, 4));
+
+        assertEquals(0, retainedExceptions());
+
+        final ArrayList<FailingTask> tasks = new ArrayList<>();
+
+        for (int i = exceptionTable.length; i--> 0; ) {
+            FailingTask task = new FailingTask();
+            pool.execute(task);
+            tasks.add(task); // retain strong refs to all tasks, for now
+            task = null;     // excessive GC retention paranoia
+        }
+        for (FailingTask task : tasks) {
+            try {
+                task.join();
+                throw new AssertionError("should throw");
+            } catch (FailingTaskException success) {}
+            task = null;     // excessive GC retention paranoia
+        }
+
+        if (rnd.nextBoolean())
+            gcAwait(() -> retainedExceptions() == tasks.size());
+
+        return tasks;
+    }
+
     // --------------- GC finalization infrastructure ---------------
 
     /** No guarantees, but effective in practice. */
--- a/test/jdk/java/util/zip/TestExtraTime.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/jdk/java/util/zip/TestExtraTime.java	Mon Jul 16 12:11:02 2018 +0100
@@ -23,7 +23,8 @@
 
 /**
  * @test
- * @bug 4759491 6303183 7012868 8015666 8023713 8068790 8076641 8075526 8130914 8161942
+ * @bug 4759491 6303183 7012868 8015666 8023713 8068790 8076641 8075526 8130914
+ *      8161942 8206389
  * @summary Test ZOS and ZIS timestamp in extra field correctly
  */
 
@@ -96,6 +97,7 @@
         testNullHandling();
         testTagOnlyHandling();
         testTimeConversions();
+        testNullMtime();
     }
 
     static void test(FileTime mtime, FileTime atime, FileTime ctime,
@@ -192,9 +194,11 @@
                           ze.getTime(),
                           ze.getLastModifiedTime().to(TimeUnit.MILLISECONDS));
          */
-        if (mtime.to(TimeUnit.SECONDS) !=
-            ze.getLastModifiedTime().to(TimeUnit.SECONDS))
+        if (mtime != null &&
+            mtime.to(TimeUnit.SECONDS) !=
+            ze.getLastModifiedTime().to(TimeUnit.SECONDS)) {
             throw new RuntimeException("Timestamp: storing mtime failed!");
+        }
         if (atime != null &&
             atime.to(TimeUnit.SECONDS) !=
             ze.getLastAccessTime().to(TimeUnit.SECONDS))
@@ -305,4 +309,52 @@
             Files.delete(zpath);
         }
     }
+
+    static void checkLastModifiedTimeDOS(FileTime mtime, ZipEntry ze) {
+        FileTime lmt = ze.getLastModifiedTime();
+        if ((lmt.to(TimeUnit.SECONDS) >>> 1) != (mtime.to(TimeUnit.SECONDS) >>> 1) ||
+            lmt.to(TimeUnit.MILLISECONDS) != ze.getTime() ||
+            lmt.to(TimeUnit.MILLISECONDS) % 1000 != 0) {
+            throw new RuntimeException("Timestamp: storing mtime in dos format failed!");
+        }
+    }
+
+    static void testNullMtime() throws Throwable {
+        Instant now = Instant.now();
+        FileTime ctime = FileTime.from(now);
+        FileTime atime = FileTime.from(now.plusSeconds(7));
+        FileTime mtime = FileTime.from(now.plusSeconds(13));
+        System.out.printf("--------------------%nTesting: [%s]/[%s]/[%s]%n",
+                          mtime, atime, ctime);
+
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        try (ZipOutputStream zos = new ZipOutputStream(baos)) {
+            ZipEntry ze = new ZipEntry("TestExtraTime.java");
+            ze.setCreationTime(ctime);
+            ze.setLastAccessTime(atime);
+            // ze.setLastModifiedTime(now);
+            ze.setTime(mtime.toMillis());
+            zos.putNextEntry(ze);
+            zos.write(new byte[] { 1,2 ,3, 4});
+        }
+
+        try (ZipInputStream zis = new ZipInputStream(
+                 new ByteArrayInputStream(baos.toByteArray()))) {
+            ZipEntry ze = zis.getNextEntry();
+            // check LOC
+            check(null, atime, ctime, ze, null);
+            checkLastModifiedTimeDOS(mtime, ze);
+        }
+
+        Path zpath = Paths.get(System.getProperty("test.dir", "."),
+                               "TestExtraTime.zip");
+        Files.copy(new ByteArrayInputStream(baos.toByteArray()), zpath);
+        try (ZipFile zf = new ZipFile(zpath.toFile())) {
+            ZipEntry ze = zf.getEntry("TestExtraTime.java");
+            // check CEN
+            checkLastModifiedTimeDOS(mtime, ze);
+        } finally {
+            Files.delete(zpath);
+        }
+    }
 }
--- a/test/jdk/javax/net/ssl/SSLSession/TestEnabledProtocols.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/jdk/javax/net/ssl/SSLSession/TestEnabledProtocols.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -33,313 +33,251 @@
  *                  session
  *          4701722 protocol mismatch exceptions should be consistent between
  *                  SSLv3 and TLSv1
+ * @library /javax/net/ssl/templates
  * @run main/othervm TestEnabledProtocols
  * @author Ram Marti
  */
 
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import java.security.*;
-import javax.net.ssl.*;
-import java.security.cert.*;
-
-public class TestEnabledProtocols {
-
-    /*
-     * For each of the valid protocols combinations, start a server thread
-     * that sets up an SSLServerSocket supporting that protocol. Then run
-     * a client thread that attemps to open a connection with all
-     * possible protocol combinataion.  Verify that we get handshake
-     * exceptions correctly. Whenever the connection is established
-     * successfully, verify that the negotiated protocol was correct.
-     * See results file in this directory for complete results.
-     */
+import java.io.InputStream;
+import java.io.InterruptedIOException;
+import java.io.OutputStream;
+import java.security.Security;
+import java.util.Arrays;
 
-    static final String[][] protocolStrings = {
-                                {"TLSv1"},
-                                {"TLSv1", "SSLv2Hello"},
-                                {"TLSv1", "SSLv3"},
-                                {"SSLv3", "SSLv2Hello"},
-                                {"SSLv3"},
-                                {"TLSv1", "SSLv3", "SSLv2Hello"}
-                                };
+import javax.net.ssl.SSLException;
+import javax.net.ssl.SSLHandshakeException;
+import javax.net.ssl.SSLServerSocket;
+import javax.net.ssl.SSLSocket;
 
-    static final boolean [][] eXceptionArray = {
-        // Do we expect exception?       Protocols supported by the server
-        { false, true,  false, true,  true,  true }, // TLSv1
-        { false, false, false, true,  true,  false}, // TLSv1,SSLv2Hello
-        { false, true,  false, true,  false, true }, // TLSv1,SSLv3
-        { true,  true,  false, false, false, false}, // SSLv3, SSLv2Hello
-        { true,  true,  false, true,  false, true }, // SSLv3
-        { false, false, false, false, false, false } // TLSv1,SSLv3,SSLv2Hello
-        };
-
-    static final String[][] protocolSelected = {
-        // TLSv1
-        { "TLSv1",  null,   "TLSv1",  null,   null,     null },
-
-        // TLSv1,SSLv2Hello
-        { "TLSv1", "TLSv1", "TLSv1",  null,   null,    "TLSv1"},
-
-        // TLSv1,SSLv3
-        { "TLSv1",  null,   "TLSv1",  null,   "SSLv3",  null },
-
-        // SSLv3, SSLv2Hello
-        {  null,    null,   "SSLv3", "SSLv3", "SSLv3",  "SSLv3"},
+public class TestEnabledProtocols extends SSLSocketTemplate {
 
-        // SSLv3
-        {  null,    null,   "SSLv3",  null,   "SSLv3",  null },
-
-        // TLSv1,SSLv3,SSLv2Hello
-        { "TLSv1", "TLSv1", "TLSv1", "SSLv3", "SSLv3", "TLSv1" }
-
-    };
-
-    /*
-     * Where do we find the keystores?
-     */
-    final static String pathToStores = "../etc";
-    static String passwd = "passphrase";
-    static String keyStoreFile = "keystore";
-    static String trustStoreFile = "truststore";
-
-    /*
-     * Is the server ready to serve?
-     */
-    volatile static boolean serverReady = false;
-
-    /*
-     * Turn on SSL debugging?
-     */
-    final static boolean debug = false;
+    private final String[] serverProtocols;
+    private final String[] clientProtocols;
+    private final boolean exceptionExpected;
+    private final String selectedProtocol;
 
-    // use any free port by default
-    volatile int serverPort = 0;
-
-    volatile Exception clientException = null;
-
-    public static void main(String[] args) throws Exception {
-        // reset the security property to make sure that the algorithms
-        // and keys used in this test are not disabled.
-        Security.setProperty("jdk.tls.disabledAlgorithms", "");
+    public TestEnabledProtocols(String[] serverProtocols,
+            String[] clientProtocols, boolean exceptionExpected,
+            String selectedProtocol) {
+        this.serverProtocols = serverProtocols;
+        this.clientProtocols = clientProtocols;
+        this.exceptionExpected = exceptionExpected;
+        this.selectedProtocol = selectedProtocol;
+    }
 
-        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);
-
-        if (debug)
-            System.setProperty("javax.net.debug", "all");
-
-        new TestEnabledProtocols();
+    @Override
+    protected void configureServerSocket(SSLServerSocket sslServerSocket) {
+        sslServerSocket.setEnabledProtocols(serverProtocols);
     }
 
-    TestEnabledProtocols() throws Exception  {
-        /*
-         * Start the tests.
-         */
-        SSLServerSocketFactory sslssf =
-            (SSLServerSocketFactory) SSLServerSocketFactory.getDefault();
-        SSLServerSocket sslServerSocket =
-            (SSLServerSocket) sslssf.createServerSocket(serverPort);
-        serverPort = sslServerSocket.getLocalPort();
-        // sslServerSocket.setNeedClientAuth(true);
+    @Override
+    protected void runServerApplication(SSLSocket socket) throws Exception {
+        try {
+            socket.startHandshake();
+
+            InputStream in = socket.getInputStream();
+            OutputStream out = socket.getOutputStream();
+            out.write(280);
+            in.read();
+        } catch (SSLHandshakeException se) {
+            // ignore it; this is part of the testing
+            // log it for debugging
+            System.out.println("Server SSLHandshakeException:");
+            se.printStackTrace(System.out);
+        } catch (InterruptedIOException ioe) {
+            // must have been interrupted, no harm
+        } catch (SSLException ssle) {
+            // The client side may have closed the socket.
+            System.out.println("Server SSLException:");
+            ssle.printStackTrace(System.out);
+        } catch (Exception e) {
+            System.out.println("Server exception:");
+            e.printStackTrace(System.out);
+            throw new RuntimeException(e);
+        }
+    }
+
+    @Override
+    protected void runClientApplication(SSLSocket sslSocket) throws Exception {
+        try {
+            System.out.println("=== Starting new test run ===");
+            showProtocols("server", serverProtocols);
+            showProtocols("client", clientProtocols);
 
-        for (int i = 0; i < protocolStrings.length; i++) {
-            String [] serverProtocols = protocolStrings[i];
-            startServer ss = new startServer(serverProtocols,
-                sslServerSocket, protocolStrings.length);
-            ss.setDaemon(true);
-            ss.start();
-            for (int j = 0; j < protocolStrings.length; j++) {
-                String [] clientProtocols = protocolStrings[j];
-                startClient sc = new startClient(
-                    clientProtocols, serverProtocols,
-                    eXceptionArray[i][j], protocolSelected[i][j]);
-                sc.start();
-                sc.join();
-                if (clientException != null) {
-                    ss.requestStop();
-                    throw clientException;
-                }
+            sslSocket.setEnabledProtocols(clientProtocols);
+            sslSocket.startHandshake();
+
+            String protocolName = sslSocket.getSession().getProtocol();
+            System.out.println("Protocol name after getSession is " +
+                protocolName);
+
+            if (protocolName.equals(selectedProtocol)) {
+                System.out.println("** Success **");
+            } else {
+                System.out.println("** FAILURE ** ");
+                throw new RuntimeException
+                    ("expected protocol " + selectedProtocol +
+                     " but using " + protocolName);
             }
-            ss.requestStop();
-            System.out.println("Waiting for the server to complete");
-            ss.join();
+
+            InputStream in = sslSocket.getInputStream();
+            OutputStream out = sslSocket.getOutputStream();
+            in.read();
+            out.write(280);
+        } catch (SSLHandshakeException e) {
+            if (!exceptionExpected) {
+                System.out.println(
+                        "Client got UNEXPECTED SSLHandshakeException:");
+                e.printStackTrace(System.out);
+                System.out.println("** FAILURE **");
+                throw new RuntimeException(e);
+            } else {
+                System.out.println(
+                        "Client got expected SSLHandshakeException:");
+                e.printStackTrace(System.out);
+                System.out.println("** Success **");
+            }
+        } catch (Exception e) {
+            System.out.println("Client got UNEXPECTED Exception:");
+            e.printStackTrace(System.out);
+            System.out.println("** FAILURE **");
+            throw new RuntimeException(e);
         }
     }
 
-    class startServer extends Thread  {
-        private String[] enabledP = null;
-        SSLServerSocket sslServerSocket = null;
-        int numExpConns;
-        volatile boolean stopRequested = false;
+    public static void main(String[] args) throws Exception {
+        Security.setProperty("jdk.tls.disabledAlgorithms", "");
 
-        public startServer(String[] enabledProtocols,
-                            SSLServerSocket sslServerSocket,
-                            int numExpConns) {
-            super("Server Thread");
-            serverReady = false;
-            enabledP = enabledProtocols;
-            this.sslServerSocket = sslServerSocket;
-            sslServerSocket.setEnabledProtocols(enabledP);
-            this.numExpConns = numExpConns;
-        }
+        runCase(new String[] { "TLSv1" },
+                new String[] { "TLSv1" },
+                false, "TLSv1");
+        runCase(new String[] { "TLSv1" },
+                new String[] { "TLSv1", "SSLv2Hello" },
+                true, null);
+        runCase(new String[] { "TLSv1" },
+                new String[] { "TLSv1", "SSLv3" },
+                false, "TLSv1");
+        runCase(new String[] { "TLSv1" },
+                new String[] { "SSLv3", "SSLv2Hello" },
+                true, null);
+        runCase(new String[] { "TLSv1" },
+                new String[] { "SSLv3" },
+                true, null);
+        runCase(new String[] { "TLSv1" },
+                new String[] { "TLSv1", "SSLv3", "SSLv2Hello" },
+                true, null);
 
-        public void requestStop() {
-            stopRequested = true;
-        }
+        runCase(new String[] { "TLSv1", "SSLv2Hello" },
+                new String[] { "TLSv1" },
+                false, "TLSv1");
+        runCase(new String[] { "TLSv1", "SSLv2Hello" },
+                new String[] { "TLSv1", "SSLv2Hello" },
+                false, "TLSv1");
+        runCase(new String[] { "TLSv1", "SSLv2Hello" },
+                new String[] { "TLSv1", "SSLv3" },
+                false, "TLSv1");
+        runCase(new String[] { "TLSv1", "SSLv2Hello" },
+                new String[] { "SSLv3", "SSLv2Hello" },
+                true, null);
+        runCase(new String[] { "TLSv1", "SSLv2Hello" },
+                new String[] { "SSLv3" },
+                true, null);
+        runCase(new String[] { "TLSv1", "SSLv2Hello" },
+                new String[] { "TLSv1", "SSLv3", "SSLv2Hello" },
+                false, "TLSv1");
 
-        public void run() {
-            int conns = 0;
-            while (!stopRequested) {
-                SSLSocket socket = null;
-                try {
-                    serverReady = true;
-                    socket = (SSLSocket)sslServerSocket.accept();
-                    conns++;
-
-                    // set ready to false. this is just to make the
-                    // client wait and synchronise exception messages
-                    serverReady = false;
-                    socket.startHandshake();
-                    SSLSession session = socket.getSession();
-                    session.invalidate();
+        runCase(new String[] { "TLSv1", "SSLv3" },
+                new String[] { "TLSv1" },
+                false, "TLSv1");
+        runCase(new String[] { "TLSv1", "SSLv3" },
+                new String[] { "TLSv1", "SSLv2Hello" },
+                true, null);
+        runCase(new String[] { "TLSv1", "SSLv3" },
+                new String[] { "TLSv1", "SSLv3" },
+                false, "TLSv1");
+        runCase(new String[] { "TLSv1", "SSLv3" },
+                new String[] { "SSLv3", "SSLv2Hello" },
+                true, null);
+        runCase(new String[] { "TLSv1", "SSLv3" },
+                new String[] { "SSLv3" },
+                false, "SSLv3");
+        runCase(new String[] { "TLSv1", "SSLv3" },
+                new String[] { "TLSv1", "SSLv3", "SSLv2Hello" },
+                true, null);
 
-                    InputStream in = socket.getInputStream();
-                    OutputStream out = socket.getOutputStream();
-                    out.write(280);
-                    in.read();
+        runCase(new String[] { "SSLv3", "SSLv2Hello" },
+                new String[] { "TLSv1" },
+                true, null);
+        runCase(new String[] { "SSLv3", "SSLv2Hello" },
+                new String[] { "TLSv1", "SSLv2Hello" },
+                true, null);
+        runCase(new String[] { "SSLv3", "SSLv2Hello" },
+                new String[] { "TLSv1", "SSLv3" },
+                false, "SSLv3");
+        runCase(new String[] { "SSLv3", "SSLv2Hello" },
+                new String[] { "SSLv3", "SSLv2Hello" },
+                false, "SSLv3");
+        runCase(new String[] { "SSLv3", "SSLv2Hello" },
+                new String[] { "SSLv3" },
+                false, "SSLv3");
+        runCase(new String[] { "SSLv3", "SSLv2Hello" },
+                new String[] { "TLSv1", "SSLv3", "SSLv2Hello" },
+                false, "SSLv3");
 
-                    socket.close();
-                    // sleep for a while so that the server thread can be
-                    // stopped
-                    Thread.sleep(30);
-                } catch (SSLHandshakeException se) {
-                    // ignore it; this is part of the testing
-                    // log it for debugging
-                    System.out.println("Server SSLHandshakeException:");
-                    se.printStackTrace(System.out);
-                } catch (java.io.InterruptedIOException ioe) {
-                    // must have been interrupted, no harm
-                    break;
-                } catch (java.lang.InterruptedException ie) {
-                    // must have been interrupted, no harm
-                    break;
-                } catch (SSLException ssle) {
-                    // The client side may have closed the socket.
-                    System.out.println("Server SSLException:");
-                    ssle.printStackTrace(System.out);
-                } catch (Exception e) {
-                    System.out.println("Server exception:");
-                    e.printStackTrace(System.out);
-                    throw new RuntimeException(e);
-                } finally {
-                    try {
-                        if (socket != null) {
-                            socket.close();
-                        }
-                    } catch (IOException e) {
-                        // ignore
-                    }
-                }
-                if (conns >= numExpConns) {
-                    break;
-                }
-            }
-        }
+        runCase(new String[] { "SSLv3" },
+                new String[] { "TLSv1" },
+                true, null);
+        runCase(new String[] { "SSLv3" },
+                new String[] { "TLSv1", "SSLv2Hello" },
+                true, null);
+        runCase(new String[] { "SSLv3" },
+                new String[] { "TLSv1", "SSLv3" },
+                false, "SSLv3");
+        runCase(new String[] { "SSLv3" },
+                new String[] { "SSLv3", "SSLv2Hello" },
+                true, null);
+        runCase(new String[] { "SSLv3" },
+                new String[] { "SSLv3" },
+                false, "SSLv3");
+        runCase(new String[] { "SSLv3" },
+                new String[] { "TLSv1", "SSLv3", "SSLv2Hello" },
+                true, null);
+
+        runCase(new String[] { "TLSv1", "SSLv3", "SSLv2Hello" },
+                new String[] { "TLSv1" },
+                false, "TLSv1");
+        runCase(new String[] { "TLSv1", "SSLv3", "SSLv2Hello" },
+                new String[] { "TLSv1", "SSLv2Hello" },
+                false, "TLSv1");
+        runCase(new String[] { "TLSv1", "SSLv3", "SSLv2Hello" },
+                new String[] { "TLSv1", "SSLv3" },
+                false, "TLSv1");
+        runCase(new String[] { "TLSv1", "SSLv3", "SSLv2Hello" },
+                new String[] { "SSLv3", "SSLv2Hello" },
+                false, "SSLv3");
+        runCase(new String[] { "TLSv1", "SSLv3", "SSLv2Hello" },
+                new String[] { "SSLv3" },
+                false, "SSLv3");
+        runCase(new String[] { "TLSv1", "SSLv3", "SSLv2Hello" },
+                new String[] { "TLSv1", "SSLv3", "SSLv2Hello" },
+                false, "TLSv1");
+    }
+
+    private static void runCase(
+            String[] serverProtocols,
+            String[] clientProtocols,
+            boolean exceptionExpected,
+            String selectedProtocol) throws Exception {
+        new TestEnabledProtocols(
+                serverProtocols,
+                clientProtocols,
+                exceptionExpected,
+                selectedProtocol).run();
     }
 
     private static void showProtocols(String name, String[] protocols) {
-        System.out.println("Enabled protocols on the " + name + " are: " + Arrays.asList(protocols));
+        System.out.printf("Enabled protocols on the %s are: %s%n",
+                name,
+                Arrays.asList(protocols));
     }
-
-    class startClient extends Thread {
-        boolean hsCompleted = false;
-        boolean exceptionExpected = false;
-        private String[] enabledP = null;
-        private String[] serverP = null; // used to print the result
-        private String protocolToUse = null;
-
-        startClient(String[] enabledProtocol,
-                    String[] serverP,
-                    boolean eXception,
-                    String protocol) throws Exception {
-            super("Client Thread");
-            this.enabledP = enabledProtocol;
-            this.serverP = serverP;
-            this.exceptionExpected = eXception;
-            this.protocolToUse = protocol;
-        }
-
-        public void run() {
-            SSLSocket sslSocket = null;
-            try {
-                while (!serverReady) {
-                    Thread.sleep(50);
-                }
-                System.out.flush();
-                System.out.println("=== Starting new test run ===");
-                showProtocols("server", serverP);
-                showProtocols("client", enabledP);
-
-                SSLSocketFactory sslsf =
-                    (SSLSocketFactory)SSLSocketFactory.getDefault();
-                sslSocket = (SSLSocket)
-                    sslsf.createSocket("localhost", serverPort);
-                sslSocket.setEnabledProtocols(enabledP);
-                sslSocket.startHandshake();
-
-                SSLSession session = sslSocket.getSession();
-                session.invalidate();
-                String protocolName = session.getProtocol();
-                System.out.println("Protocol name after getSession is " +
-                    protocolName);
-
-                if (protocolName.equals(protocolToUse)) {
-                    System.out.println("** Success **");
-                } else {
-                    System.out.println("** FAILURE ** ");
-                    throw new RuntimeException
-                        ("expected protocol " + protocolToUse +
-                         " but using " + protocolName);
-                }
-
-                InputStream in = sslSocket.getInputStream();
-                OutputStream out = sslSocket.getOutputStream();
-                in.read();
-                out.write(280);
-
-                sslSocket.close();
-
-            } catch (SSLHandshakeException e) {
-                if (!exceptionExpected) {
-                    System.out.println("Client got UNEXPECTED SSLHandshakeException:");
-                    e.printStackTrace(System.out);
-                    System.out.println("** FAILURE **");
-                    clientException = e;
-                } else {
-                    System.out.println("Client got expected SSLHandshakeException:");
-                    e.printStackTrace(System.out);
-                    System.out.println("** Success **");
-                }
-            } catch (RuntimeException e) {
-                clientException = e;
-            } catch (Exception e) {
-                System.out.println("Client got UNEXPECTED Exception:");
-                e.printStackTrace(System.out);
-                System.out.println("** FAILURE **");
-                clientException = e;
-            }
-        }
-    }
-
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/javax/net/ssl/TLSCommon/TestSessionLocalPrincipal.java	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,344 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.security.KeyFactory;
+import java.security.KeyStore;
+import java.security.Principal;
+import java.security.PrivateKey;
+import java.security.Security;
+import java.security.cert.Certificate;
+import java.security.cert.CertificateFactory;
+import java.security.spec.PKCS8EncodedKeySpec;
+import java.util.Base64;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ThreadFactory;
+import javax.net.ssl.KeyManagerFactory;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLServerSocket;
+import javax.net.ssl.SSLServerSocketFactory;
+import javax.net.ssl.SSLSocket;
+import javax.net.ssl.SSLSocketFactory;
+import javax.net.ssl.TrustManagerFactory;
+
+/*
+ * @test
+ * @bug 8206355
+ * @summary Test principal that was sent to the peer during handshake.
+ * @run main/othervm TestSessionLocalPrincipal
+ */
+public class TestSessionLocalPrincipal {
+
+    public static void main(String[] args) throws Exception {
+
+        Security.setProperty("jdk.tls.disabledAlgorithms", "");
+        for (String tlsProtocol : new String[]{
+            "TLSv1.3", "TLSv1.2", "TLSv1.1", "TLSv1"}) {
+            for (boolean clientAuth : new boolean[]{true, false}) {
+                System.out.printf("Protocol %s: Client side auth enabled: %s%n",
+                        tlsProtocol, clientAuth);
+                CountDownLatch serverReady = new CountDownLatch(1);
+                Server server = new Server(tlsProtocol, clientAuth,
+                        serverReady);
+                server.start();
+
+                // Wait till server is ready to accept connection.
+                serverReady.await();
+                new Client(tlsProtocol, clientAuth, server.port).doClientSide();
+                if (server.serverExc != null) {
+                    throw new RuntimeException(server.serverExc);
+                }
+            }
+        }
+    }
+
+    public static class Server implements Runnable {
+
+        private volatile int port = 0;
+        private final String tlsProtocol;
+        private final boolean clientAuth;
+        private final CountDownLatch latch;
+        private volatile Exception serverExc;
+
+        public Server(String tlsProtocol, boolean clientAuth,
+                CountDownLatch latch) {
+            this.tlsProtocol = tlsProtocol;
+            this.clientAuth = clientAuth;
+            this.latch = latch;
+        }
+
+        public void start() {
+
+            ExecutorService executor = null;
+            try {
+                executor = Executors.newCachedThreadPool(new ThreadFactory() {
+                    @Override
+                    public Thread newThread(Runnable r) {
+                        Thread t = Executors.defaultThreadFactory()
+                                .newThread(r);
+                        t.setDaemon(true);
+                        return t;
+                    }
+                });
+                executor.execute(this);
+            } finally {
+                if (executor != null) {
+                    executor.shutdown();
+                }
+            }
+        }
+
+        /*
+         * Define the server side operation.
+         */
+        void doServerSide() throws Exception {
+
+            SSLContext ctx = getSSLContext(tlsProtocol);
+            SSLServerSocketFactory sslssf = ctx.getServerSocketFactory();
+            SSLServerSocket sslServerSocket
+                    = (SSLServerSocket) sslssf.createServerSocket(port);
+            port = sslServerSocket.getLocalPort();
+            System.out.println("Server listining on port: " + port);
+            sslServerSocket.setEnabledProtocols(new String[]{tlsProtocol});
+            /*
+             * Signal Client, the server is ready to accept client request.
+             */
+            latch.countDown();
+            try (SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept()) {
+                sslSocket.setNeedClientAuth(this.clientAuth);
+                sslSocket.setSoTimeout(5000);
+                try (InputStream sslIS = sslSocket.getInputStream();
+                        OutputStream sslOS = sslSocket.getOutputStream();) {
+                    sslIS.read();
+                    sslOS.write(85);
+                    sslOS.flush();
+                }
+            } finally {
+                sslServerSocket.close();
+            }
+        }
+
+        @Override
+        public void run() {
+            try {
+                doServerSide();
+            } catch (Exception e) {
+                // Print the exception for debug purpose.
+                e.printStackTrace(System.out);
+                serverExc = e;
+            }
+        }
+    }
+
+    /*
+     * Define the client side of the test.
+     */
+    public static class Client {
+
+        private final int serverPort;
+        private final String tlsProtocol;
+        private final boolean clientAuth;
+
+        public Client(String tlsProtocol, boolean clientAuth, int serverPort) {
+            this.tlsProtocol = tlsProtocol;
+            this.clientAuth = clientAuth;
+            this.serverPort = serverPort;
+        }
+
+        void doClientSide() throws Exception {
+
+            SSLContext ctx = getSSLContext(this.tlsProtocol);
+            SSLSocketFactory sslsf = ctx.getSocketFactory();
+            try (SSLSocket sslSocket
+                    = (SSLSocket) sslsf.createSocket("localhost", serverPort)) {
+                sslSocket.setEnabledProtocols(new String[]{this.tlsProtocol});
+                Principal principal = sslSocket.getSession().getLocalPrincipal();
+                if (this.clientAuth && principal == null) {
+                    throw new RuntimeException("Principal can not be null");
+                }
+                if (!this.clientAuth && principal != null) {
+                    throw new RuntimeException("Principal should be null");
+                }
+                try (InputStream sslIS = sslSocket.getInputStream();
+                        OutputStream sslOS = sslSocket.getOutputStream()) {
+                    sslOS.write(86);
+                    sslOS.flush();
+                    sslIS.read();
+                }
+            }
+        }
+    }
+
+    // get the ssl context
+    protected static SSLContext getSSLContext(String tlsProtocol)
+            throws Exception {
+
+        // Generate certificate from cert string
+        CertificateFactory cf = CertificateFactory.getInstance("X.509");
+
+        // Create a key store
+        KeyStore ts = KeyStore.getInstance("PKCS12");
+        KeyStore ks = KeyStore.getInstance("PKCS12");
+        ts.load(null, null);
+        ks.load(null, null);
+        char passphrase[] = "passphrase".toCharArray();
+
+        // Import the trusted cert
+        ts.setCertificateEntry("trusted-cert-"
+                + KeyType.rsa_pkcs1_sha256.getKeyType(),
+                cf.generateCertificate(new ByteArrayInputStream(
+                        KeyType.rsa_pkcs1_sha256.getTrustedCert().getBytes())));
+
+        boolean hasKeyMaterials = KeyType.rsa_pkcs1_sha256.getEndCert() != null
+                && KeyType.rsa_pkcs1_sha256.getPrivateKey() != null;
+        if (hasKeyMaterials) {
+
+            // Generate the private key.
+            PKCS8EncodedKeySpec priKeySpec = new PKCS8EncodedKeySpec(
+                    Base64.getMimeDecoder().decode(
+                            KeyType.rsa_pkcs1_sha256.getPrivateKey()));
+            KeyFactory kf = KeyFactory.getInstance(
+                    KeyType.rsa_pkcs1_sha256.getKeyType());
+            PrivateKey priKey = kf.generatePrivate(priKeySpec);
+
+            // Generate certificate chain
+            Certificate keyCert = cf.generateCertificate(
+                    new ByteArrayInputStream(
+                            KeyType.rsa_pkcs1_sha256.getEndCert().getBytes()));
+            Certificate[] chain = new Certificate[]{keyCert};
+
+            // Import the key entry.
+            ks.setKeyEntry("cert-" + KeyType.rsa_pkcs1_sha256.getKeyType(),
+                    priKey, passphrase, chain);
+        }
+
+        // Create SSL context
+        TrustManagerFactory tmf = TrustManagerFactory.getInstance("PKIX");
+        tmf.init(ts);
+
+        SSLContext context = SSLContext.getInstance(tlsProtocol);
+        if (hasKeyMaterials) {
+            KeyManagerFactory kmf = KeyManagerFactory.getInstance("NewSunX509");
+            kmf.init(ks, passphrase);
+            context.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
+        } else {
+            context.init(null, tmf.getTrustManagers(), null);
+        }
+        return context;
+    }
+}
+
+enum KeyType {
+
+    rsa_pkcs1_sha256(
+            "RSA",
+            /**
+             * Signature Algorithm: sha256WithRSAEncryption
+             * Issuer: CN = localhost
+             * Validity Not Before: Jun 4 15:22:04 2018 GMT
+             * Not After: May 30 15:22:04 2038 GMT
+             * Subject: CN = localhost
+             * Public Key Algorithm: rsaEncryption
+             */
+            "-----BEGIN CERTIFICATE-----\n"
+            + "MIIDBjCCAe6gAwIBAgIUc8yTYekR2LuXkkCJYqWlS/pBMKIwDQYJKoZIhvcNAQEL\n"
+            + "BQAwFDESMBAGA1UEAwwJbG9jYWxob3N0MB4XDTE4MDYwNDE1MjIwNFoXDTM4MDUz\n"
+            + "MDE1MjIwNFowFDESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEF\n"
+            + "AAOCAQ8AMIIBCgKCAQEA2jDPGMogc9dq2w5b+FHqbfaGPokRmyObiU8y/l/dqkM5\n"
+            + "9IV+qj8VQUI4NtpdCTWr16812z4AjXrk5HIBrECfQbHPUcm1rme5YVZ0WxV0+Ufy\n"
+            + "hDmrGwDLhkxGqc3hOhRrlF2wdXeUfjIzhvS9+S/401++t/jvq+cqFF1BHnzYOu+l\n"
+            + "nbi/o95Oqo8MlwiRqg3xy3fNRfqXk7DWy+QT8s+Vc3Pcj1EW6K0iJJ23BVTdv6YT\n"
+            + "Ja5IKiWL4XsLht3fWvZwF+PoYfKb+JYflt0rafpxg9xkowe7GnGh2SpV7bJaH/QN\n"
+            + "3PTFEKQWgWHjWwjR171GOzSaEgaklvKde6+zNWeYKwIDAQABo1AwTjAdBgNVHQ4E\n"
+            + "FgQUqCtGe8/Ky4O6pH7xeTUy9yrv4n0wHwYDVR0jBBgwFoAUqCtGe8/Ky4O6pH7x\n"
+            + "eTUy9yrv4n0wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAuqch30im\n"
+            + "M09sARarbfK3OExqYK2xoyuUscgTqQNDpNL2gMdXY9e0lTmGVgw9pVYtNZPZRxem\n"
+            + "jR5an2XegvG9qVU6vLENDwLCqZgsTb2gvmXngiG8NVcYd81GNqD228mkgBosNJku\n"
+            + "6BR+C8zlURzsNEt657eVvIp9ObGomdAbWhpdqihBD180PP18DIBWopyfHfJtT5FA\n"
+            + "U2kSPBp+P1EtdceW0zfwv3rF8hwRbnQBzuoYrZfn2PiMYaGUqOgbqUltCMD/Dp9G\n"
+            + "xK0nfAXEwIqHWWnijGwAd6YrszMjBUcSGmlehdF+XZK6jHNlw64RB4WTfavr+rY0\n"
+            + "dTe6g4o5GYr9nQ==\n"
+            + "-----END CERTIFICATE-----\n",
+            //
+            // Private key.
+            //
+            "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDaMM8YyiBz12rb\n"
+            + "Dlv4Uept9oY+iRGbI5uJTzL+X92qQzn0hX6qPxVBQjg22l0JNavXrzXbPgCNeuTk\n"
+            + "cgGsQJ9Bsc9RybWuZ7lhVnRbFXT5R/KEOasbAMuGTEapzeE6FGuUXbB1d5R+MjOG\n"
+            + "9L35L/jTX763+O+r5yoUXUEefNg676WduL+j3k6qjwyXCJGqDfHLd81F+peTsNbL\n"
+            + "5BPyz5Vzc9yPURborSIknbcFVN2/phMlrkgqJYvhewuG3d9a9nAX4+hh8pv4lh+W\n"
+            + "3Stp+nGD3GSjB7sacaHZKlXtslof9A3c9MUQpBaBYeNbCNHXvUY7NJoSBqSW8p17\n"
+            + "r7M1Z5grAgMBAAECggEAHs/7vw10TcejEHJTrJqs14CT7qresKDzqw1jLycMn6nE\n"
+            + "unJLs/EaqE+Yrq5hqxZIQTo+CcsUuuYbAuPStqedleJtW6h3nryJImTaI67BCR8O\n"
+            + "8XtPXY3cMAf/hqVLZC9UDey5Ka2Ma9HdEvbnCRSsN/VycnqWJhmMCLouowaQZqoE\n"
+            + "VopscUix8GqELv0vEo2CszZfUjtSVbNTlNgwDf5U7eSKXMuFsnSn/LE7AMvHsEyo\n"
+            + "HatxogwlM/WjpTnf/WIeJY3VhaK10IsP6OEgUn/p4VtI2DQ/TJdgYrvD5vhjY8ip\n"
+            + "XuUPuPILRvJWo8dRXJqa4diXB12q5YhP8iiOp4BgkQKBgQD1GtlOR+JVgOzpQ11h\n"
+            + "s5/iJOsczee80pQscbSRJnzSsIaP9WM8CyJgvbPxIQxLUQeYnxM/bxNKkpJtzxRK\n"
+            + "pob+v4NoRn8PTpqbOp1obmWJT7uHTaoeavQo7r7uZI4i3eEgHCCQkMzpqzz7UFTY\n"
+            + "2Yst7bBTPUivlSVQQBEc8bLpeQKBgQDj47EjpAlh8DmJRTElg58t+XJehXGTqmlx\n"
+            + "nYu8DQLSzGbOQ/Z4srakC1mkM0LHCmULIIWk3KhV1GBCeArv7DlZ9A1SkI95bsq9\n"
+            + "GBeQpovL0PXKkOOWMJBklP/CTECO4eyA8r6c1d8wytBb6MrJ8bi74DdT+JlFjK5A\n"
+            + "zNoeNx6JwwKBgQCehIPABeuSYvRVlDTDqFkh98B6+4wBaatc5xjhuyOFW5dbaVeJ\n"
+            + "kKXmLSpAK6B44WnpQhA/uUWfuBWtoPy9nt+1yARjnxwzuSFyfUEqNiPC32coBYmd\n"
+            + "bIyGIIopQa1PTXJ4wtgoxw1PnmitHHITYPaLeKrN2te0fuAH+7dVodeU+QKBgAct\n"
+            + "VJbaw7Dh7+3yz+lui8TW5lMzwK/13fxGCfCSOFSLO3Gjkk+a0UW5VclmE+RQ333K\n"
+            + "OGtIx8RsO9vcC/wiZGwA06qWAu7AHoJ2D8fudtikbBlFFuXUAbgpOSTVYfMeCmTF\n"
+            + "QFuQIMdYm9dJLZnOkxLXrOZoHeui0poX2Ya6FawhAoGAAI/QCyDbuvnJzGmjSbvl\n"
+            + "5Ndr9lNAansCXaUzXuVLp6dD6PnB8HVCE8tdETZrcXseyTBeltaxAhj+tCybJvDO\n"
+            + "sV8UmPR0w9ibExmUIVGX5BpoRlB/KWxEG3ar/wJbUZVZ2oSdIAZvCvdbN956SLDg\n"
+            + "Pg5M5wrRqs71s2EiIJd0HrU="
+    );
+    private final String keyType;
+    private final String trustedCert;
+    private final String endCert;
+    private final String privateKey;
+
+    private KeyType(String keyType, String selfCert, String privateKey) {
+        this.keyType = keyType;
+        this.trustedCert = selfCert;
+        this.endCert = selfCert;
+        this.privateKey = privateKey;
+    }
+
+    public String getKeyType() {
+        return keyType;
+    }
+
+    public String getTrustedCert() {
+        return trustedCert;
+    }
+
+    public String getEndCert() {
+        return endCert;
+    }
+
+    public String getPrivateKey() {
+        return privateKey;
+    }
+}
--- a/test/jdk/javax/net/ssl/compatibility/Compatibility.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/jdk/javax/net/ssl/compatibility/Compatibility.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,7 @@
  *     its usages, please look through README.
  *
  * @library /test/lib
- * @compile -source 1.6 -target 1.6 JdkUtils.java Parameter.java Server.java Client.java
+ * @compile -source 1.7 -target 1.7 JdkUtils.java Parameter.java Server.java Client.java
  * @run main/manual Compatibility
  */
 
@@ -51,6 +51,7 @@
 import java.util.concurrent.Future;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 import jdk.test.lib.process.OutputAnalyzer;
 
@@ -157,10 +158,6 @@
                                 "ServerStatus=%s, ClientStatus=%s, CaseStatus=%s%n",
                                 serverStatus, clientStatus, testCase.getStatus());
 
-                        // Confirm the server has stopped.
-                        if(new File(Utils.PORT_LOG).exists()) {
-                            throw new RuntimeException("Server doesn't stop.");
-                        }
                         System.out.println("----- Case end -----");
                     }
                 }
@@ -236,10 +233,12 @@
     private static List<String> jdkList(String listFileProp) throws IOException {
         String listFile = System.getProperty(listFileProp);
         System.out.println(listFileProp + "=" + listFile);
-        if (listFile != null && new File(listFile).exists()) {
-            return Files.lines(Paths.get(listFile))
-                        .filter(line -> { return !line.trim().isEmpty(); })
-                        .collect(Collectors.toList());
+        if (listFile != null && Files.exists(Paths.get(listFile))) {
+            try (Stream<String> lines = Files.lines(Paths.get(listFile))) {
+                return lines.filter(line -> {
+                    return !line.trim().isEmpty();
+                }).collect(Collectors.toList());
+            }
         } else {
             return new ArrayList<>();
         }
@@ -263,12 +262,13 @@
 
     // Retrieves the latest server port from port.log.
     private static int getServerPort() throws IOException {
-        if (!new File(Utils.PORT_LOG).exists()) {
+        if (!Files.exists(Paths.get(Utils.PORT_LOG))) {
             return -1;
         }
 
-        return Integer.valueOf(
-                Files.lines(Paths.get(Utils.PORT_LOG)).findFirst().get());
+        try (Stream<String> lines = Files.lines(Paths.get(Utils.PORT_LOG))) {
+            return Integer.valueOf(lines.findFirst().get());
+        }
     }
 
     private static OutputAnalyzer runServer(String jdkPath,
--- a/test/jdk/javax/net/ssl/compatibility/JdkRelease.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/jdk/javax/net/ssl/compatibility/JdkRelease.java	Mon Jul 16 12:11:02 2018 +0100
@@ -26,12 +26,12 @@
  */
 public enum JdkRelease {
 
-    JDK6(6, "1.6"),
     JDK7(7, "1.7"),
     JDK8(8, "1.8"),
     JDK9(9, "9"),
     JDK10(10, "10"),
-    JDK11(11, "11");
+    JDK11(11, "11"),
+    JDK12(12, "12");
 
     public final int sequence;
     public final String release;
@@ -42,9 +42,7 @@
     }
 
     public static JdkRelease getRelease(String jdkVersion) {
-        if (jdkVersion.startsWith(JDK6.release)) {
-            return JDK6;
-        } else if (jdkVersion.startsWith(JDK7.release)) {
+        if (jdkVersion.startsWith(JDK7.release)) {
             return JDK7;
         } else if (jdkVersion.startsWith(JDK8.release)) {
             return JDK8;
@@ -54,6 +52,8 @@
             return JDK10;
         } else if (jdkVersion.startsWith(JDK11.release)) {
             return JDK11;
+        } else if (jdkVersion.startsWith(JDK12.release)) {
+            return JDK12;
         }
 
         return null;
--- a/test/jdk/javax/net/ssl/compatibility/Parameter.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/jdk/javax/net/ssl/compatibility/Parameter.java	Mon Jul 16 12:11:02 2018 +0100
@@ -65,15 +65,15 @@
     TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384(
             Protocol.TLSV1_2, JdkRelease.JDK7),
     TLS_RSA_WITH_AES_256_CBC_SHA256(
-            Protocol.TLSV1_2, JdkRelease.JDK6),
+            Protocol.TLSV1_2, JdkRelease.JDK7),
     TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384(
             Protocol.TLSV1_2, JdkRelease.JDK7),
     TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384(
             Protocol.TLSV1_2, JdkRelease.JDK7),
     TLS_DHE_RSA_WITH_AES_256_CBC_SHA256(
-            Protocol.TLSV1_2, JdkRelease.JDK6),
+            Protocol.TLSV1_2, JdkRelease.JDK7),
     TLS_DHE_DSS_WITH_AES_256_CBC_SHA256(
-            Protocol.TLSV1_2, JdkRelease.JDK6),
+            Protocol.TLSV1_2, JdkRelease.JDK7),
     TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA(),
     TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA(),
     TLS_RSA_WITH_AES_256_CBC_SHA(),
@@ -86,15 +86,15 @@
     TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256(
             Protocol.TLSV1_2, JdkRelease.JDK7),
     TLS_RSA_WITH_AES_128_CBC_SHA256(
-            Protocol.TLSV1_2, JdkRelease.JDK6),
+            Protocol.TLSV1_2, JdkRelease.JDK7),
     TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256(
             Protocol.TLSV1_2, JdkRelease.JDK7),
     TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256(
             Protocol.TLSV1_2, JdkRelease.JDK7),
     TLS_DHE_RSA_WITH_AES_128_CBC_SHA256(
-            Protocol.TLSV1_2, JdkRelease.JDK6),
+            Protocol.TLSV1_2, JdkRelease.JDK7),
     TLS_DHE_DSS_WITH_AES_128_CBC_SHA256(
-            Protocol.TLSV1_2, JdkRelease.JDK6),
+            Protocol.TLSV1_2, JdkRelease.JDK7),
     TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA(),
     TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA(),
     TLS_RSA_WITH_AES_128_CBC_SHA(),
@@ -142,11 +142,11 @@
     SSL_RSA_WITH_RC4_128_SHA(),
     SSL_RSA_WITH_3DES_EDE_CBC_SHA(),
     SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA(
-            Protocol.SSLV3_0, JdkRelease.JDK6),
+            Protocol.SSLV3_0, JdkRelease.JDK7),
     SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA(
-            Protocol.SSLV3_0, JdkRelease.JDK6),
+            Protocol.SSLV3_0, JdkRelease.JDK7),
     SSL_RSA_WITH_RC4_128_MD5(
-            Protocol.SSLV3_0, JdkRelease.JDK6);
+            Protocol.SSLV3_0, JdkRelease.JDK7);
 
     private static final boolean FULL_CIPHER_SUITES
             = Utils.getBoolProperty("fullCipherSuites");
@@ -172,7 +172,7 @@
     }
 
     private CipherSuite() {
-        this(Protocol.TLSV1_0, null, JdkRelease.JDK6, null);
+        this(Protocol.TLSV1_0, null, JdkRelease.JDK7, null);
     }
 
     boolean supportedByProtocol(Protocol protocol) {
--- a/test/jdk/javax/net/ssl/compatibility/README	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/jdk/javax/net/ssl/compatibility/README	Mon Jul 16 12:11:02 2018 +0100
@@ -1,4 +1,4 @@
-# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -113,7 +113,6 @@
 
 Example 2
 $ cat /path/to/jdkList
-/path/to/jdk6
 /path/to/jdk7
 /path/to/jdk8
 /path/to/jdk9
@@ -125,6 +124,6 @@
     -DjdkListFile=/path/to/jdkList \
     $JDK_WS/jdk/test/javax/net/ssl/compatibility/Compatibility.java
 The above example uses a file "/path/to/jdkList" to contain the paths of local
-different JDK builds through 6 to 10. The execution uses each of JDK builds as
+different JDK builds through 7 to 10. The execution uses each of JDK builds as
 server and client respectively. And it enables SSL debug flag, and tests the
 full parameter value set.
\ No newline at end of file
--- a/test/jdk/javax/net/ssl/compatibility/Server.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/jdk/javax/net/ssl/compatibility/Server.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -146,10 +146,9 @@
                 server.close();
             }
 
-            // Cleanups port.log.
-            File file = new File(Utils.PORT_LOG);
-            if (file.exists()) {
-                file.delete();
+            // Cleanups port log.
+            if (!new File(Utils.PORT_LOG).delete()) {
+                throw new RuntimeException("Cannot delete port log");
             }
         }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/javax/sound/sampled/Clip/AutoCloseTimeCheck.java	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,128 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.applet.AudioClip;
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.file.Files;
+import java.util.concurrent.TimeUnit;
+
+import javax.sound.sampled.AudioFileFormat.Type;
+import javax.sound.sampled.AudioFormat;
+import javax.sound.sampled.AudioInputStream;
+import javax.sound.sampled.AudioSystem;
+
+import static javax.sound.sampled.AudioFormat.Encoding.PCM_SIGNED;
+import static javax.sound.sampled.AudioSystem.NOT_SPECIFIED;
+
+/**
+ * @test
+ * @bug 8202264
+ */
+public final class AutoCloseTimeCheck {
+
+    public static void main(final String[] args) throws Exception {
+        // Prepare the audio file
+        File file = new File("audio.wav");
+        try {
+            AudioFormat format =
+                    new AudioFormat(PCM_SIGNED, 44100, 8, 1, 1, 44100, false);
+            AudioSystem.write(getStream(format), Type.WAVE, file);
+        } catch (final Exception ignored) {
+            return; // the test is not applicable
+        }
+        try {
+            testSmallDelay(file);
+            testBigDelay(file);
+        } finally {
+            Files.delete(file.toPath());
+        }
+    }
+
+    /**
+     * Checks that after a big period of non-activity the clip will be closed
+     * and the "Direct Clip" thread will stop.
+     */
+    private static void testBigDelay(final File file) throws Exception {
+        AudioClip clip = (AudioClip) file.toURL().getContent();
+        clip.loop();
+        clip.stop();
+        sleep(20000); // 20 sec for slow systems
+        if (count() != 0) {
+            throw new RuntimeException("Thread was found");
+        }
+    }
+
+    /**
+     * Checks that after small period of non-activity the clip will not be
+     * closed and the "Direct Clip" thread will alive.
+     */
+    private static void testSmallDelay(final File file) throws IOException {
+        AudioClip clip = (AudioClip) file.toURL().getContent();
+        long threadID = 0;
+        // Will run the test no more than 15 seconds
+        long endtime = System.nanoTime() + TimeUnit.SECONDS.toNanos(15);
+        while (endtime - System.nanoTime() > 0) {
+            clip.loop();
+            sleep(500);
+
+            long data = count();
+            if (data != threadID) {
+                System.out.println("Playing on new thread: " + data + " at "
+                                           + new java.util.Date());
+                if (threadID == 0) {
+                    threadID = data;
+                } else {
+                    throw new RuntimeException("Thread was changed");
+                }
+            }
+
+            clip.stop();
+            sleep(500);
+        }
+    }
+
+    private static void sleep(int millis) {
+        try {
+            Thread.sleep(millis);
+        } catch (InterruptedException ignored) {
+        }
+    }
+
+    private static long count() {
+        for (final Thread t : Thread.getAllStackTraces().keySet()) {
+            if (t.getName().equals("Direct Clip")) {
+                return t.getId();
+            }
+        }
+        return 0;
+    }
+
+    private static AudioInputStream getStream(final AudioFormat format) {
+        final int dataSize = 5000 * format.getFrameSize();
+        final InputStream in = new ByteArrayInputStream(new byte[dataSize]);
+        return new AudioInputStream(in, format, NOT_SPECIFIED);
+    }
+}
--- a/test/jdk/javax/swing/JEditorPane/8195095/ImageViewTest.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/jdk/javax/swing/JEditorPane/8195095/ImageViewTest.java	Mon Jul 16 12:11:02 2018 +0100
@@ -24,7 +24,7 @@
 /**
  * @test
  * @key headful
- * @bug 8195095
+ * @bug 8195095 8206238
  * @summary Tests if Images are scaled correctly in JEditorPane.
  * @run main ImageViewTest
  */
@@ -40,22 +40,16 @@
 
 public class ImageViewTest {
 
-    private static final int WIDTH = 200;
-    private static final int HEIGHT = 200;
     private static JFrame f;
 
-    private static JEditorPane editorPane1;
-    private static JEditorPane editorPane2;
-    private static JEditorPane editorPane3;
-    private static JEditorPane editorPane4;
-
-    private static void test(Robot r, JEditorPane editorPane)  throws Exception {
+    private static void test(Robot r, JEditorPane editorPane,
+                            final int WIDTH, final int HEIGHT )  throws Exception {
 
         SwingUtilities.invokeAndWait(() -> {
             f = new JFrame();
             editorPane.setEditable(false);
             f.add(editorPane);
-            f.setSize(220,240);
+            f.setSize(WIDTH + 20, HEIGHT + 40);
             f.setLocationRelativeTo(null);
 
             f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
@@ -109,34 +103,78 @@
 
         Robot r = new Robot();
 
+        final JEditorPane[] editorPanes = new JEditorPane[11];
+
         SwingUtilities.invokeAndWait(() -> {
-            editorPane1 = new JEditorPane("text/html",
+            editorPanes[0] = new JEditorPane("text/html",
                     "<img height=\"200\" src=\"file:///" + ABSOLUTE_FILE_PATH + "\"");
 
-            editorPane2 = new JEditorPane("text/html",
+            editorPanes[1] = new JEditorPane("text/html",
                     "<img width=\"200\" src=\"file:///" + ABSOLUTE_FILE_PATH + "\"");
 
-            editorPane3 = new JEditorPane("text/html",
+            editorPanes[2] = new JEditorPane("text/html",
                     "<img width=\"200\" height=\"200\" src=\"file:///" + ABSOLUTE_FILE_PATH + "\"");
 
-            editorPane4 = new JEditorPane("text/html",
+            editorPanes[3] = new JEditorPane("text/html",
                     "<img src=\"file:///" + ABSOLUTE_FILE_PATH + "\"");
 
+            editorPanes[4] = new JEditorPane("text/html",
+                    "<img width=\"100\" src =\"file:///" + ABSOLUTE_FILE_PATH + "\"");
+
+            editorPanes[5] = new JEditorPane("text/html",
+                    "<img height=\"100\" src =\"file:///" + ABSOLUTE_FILE_PATH + "\"");
+
+            editorPanes[6] = new JEditorPane("text/html",
+                    "<img width=\"100\" height=\"100\" src =\"file:///" + ABSOLUTE_FILE_PATH + "\"");
+
+            editorPanes[7] = new JEditorPane("text/html",
+                    "<img width=\"50\" src =\"file:///" + ABSOLUTE_FILE_PATH + "\"");
+
+            editorPanes[8] = new JEditorPane("text/html",
+                    "<img height=\"50\" src =\"file:///" + ABSOLUTE_FILE_PATH + "\"");
+
+            editorPanes[9] = new JEditorPane("text/html",
+                    "<img width=\"300\" src =\"file:///" + ABSOLUTE_FILE_PATH + "\"");
+
+            editorPanes[10] = new JEditorPane("text/html",
+                    "<img height=\"300\" src =\"file:///" + ABSOLUTE_FILE_PATH + "\"");
+
         });
 
         r.waitForIdle();
 
         System.out.println("Test with only height set to 200");
-        test(r, editorPane1);
+        test(r, editorPanes[0], 200, 200);
 
         System.out.println("Test with only width set to 200");
-        test(r, editorPane2);
+        test(r, editorPanes[1], 200, 200);
+
+        System.out.println("Test with both of them set");
+        test(r, editorPanes[2], 200, 200);
+
+        System.out.println("Test with none of them set to 200");
+        test(r, editorPanes[3], 200, 200);
+
+        System.out.println("Test with only width set to 100");
+        test(r, editorPanes[4], 100, 100);
+
+        System.out.println("Test with only height set to 100");
+        test(r, editorPanes[5], 100, 100);
 
-        System.out.println("Test with none of them set");
-        test(r, editorPane3);
+        System.out.println("Test with both width and height set to 100");
+        test(r, editorPanes[6], 100, 100);
+
+        System.out.println("Test with only width set to 50");
+        test(r, editorPanes[7], 50, 50);
 
-        System.out.println("Test with both of them set to 200");
-        test(r, editorPane4);
+        System.out.println("Test with only height set to 50");
+        test(r, editorPanes[8], 50, 50);
+
+        System.out.println("Test with only width set to 300");
+        test(r, editorPanes[9], 300, 300);
+
+        System.out.println("Test with only height set to 300");
+        test(r, editorPanes[10], 300, 300);
 
         System.out.println("Test Passed.");
     }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/javax/swing/reliability/HangDuringStaticInitialization.java	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.net.URI;
+import java.nio.file.FileSystem;
+import java.nio.file.FileSystems;
+import java.nio.file.FileVisitResult;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.SimpleFileVisitor;
+import java.nio.file.attribute.BasicFileAttributes;
+
+/**
+ * @test
+ * @bug 8189604
+ * @run main/othervm -Djava.awt.headless=false HangDuringStaticInitialization
+ * @run main/othervm -Djava.awt.headless=true HangDuringStaticInitialization
+ */
+public final class HangDuringStaticInitialization {
+
+    public static void main(final String[] args) throws Exception {
+        FileSystem fs = FileSystems.getFileSystem(URI.create("jrt:/"));
+        test(fs, "/modules/java.desktop");
+        test(fs, "/modules/java.datatransfer");
+    }
+
+    private static void test(FileSystem fs, String s) throws Exception {
+        Files.walkFileTree(fs.getPath(s), new SimpleFileVisitor<>() {
+            @Override
+            public FileVisitResult visitFile(Path file,
+                                             BasicFileAttributes attrs) {
+                file = file.subpath(2, file.getNameCount());
+                String name = file.toString();
+                if (name.endsWith(".class")) {
+                    name = name.substring(0, name.indexOf(".")).replace('/', '.');
+                    try {
+                        Class.forName(name, true, null);
+                    } catch (Throwable e) {
+                        // only the crash / hang will be considered as failure
+                    }
+                }
+                return FileVisitResult.CONTINUE;
+            }
+        });
+    }
+}
\ No newline at end of file
--- a/test/jdk/jdk/internal/platform/docker/MetricsMemoryTester.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/jdk/jdk/internal/platform/docker/MetricsMemoryTester.java	Mon Jul 16 12:11:02 2018 +0100
@@ -95,10 +95,11 @@
 
     private static void testKernelMemoryLimit(String value) {
         long limit = getMemoryValue(value);
-        if (limit != Metrics.systemMetrics().getKernelMemoryLimit()) {
+        long kmemlimit = Metrics.systemMetrics().getKernelMemoryLimit();
+        if (kmemlimit != 0 && limit != kmemlimit) {
             throw new RuntimeException("Kernel Memory limit not equal, expected : ["
                     + limit + "]" + ", got : ["
-                    + Metrics.systemMetrics().getKernelMemoryLimit() + "]");
+                    + kmemlimit + "]");
         }
         System.out.println("TEST PASSED!!!");
     }
--- a/test/jdk/jdk/jfr/event/os/TestCPUInformation.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/jdk/jdk/jfr/event/os/TestCPUInformation.java	Mon Jul 16 12:11:02 2018 +0100
@@ -53,8 +53,8 @@
             Events.assertField(event, "hwThreads").atLeast(1);
             Events.assertField(event, "cores").atLeast(1);
             Events.assertField(event, "sockets").atLeast(1);
-            Events.assertField(event, "cpu").containsAny("Intel", "AMD", "Unknown x86", "sparc", "ARM", "PPC", "PowerPC", "AArch64");
-            Events.assertField(event, "description").containsAny("Intel", "AMD", "Unknown x86", "SPARC", "ARM", "PPC", "PowerPC", "AArch64");
+            Events.assertField(event, "cpu").containsAny("Intel", "AMD", "Unknown x86", "sparc", "ARM", "PPC", "PowerPC", "AArch64", "s390");
+            Events.assertField(event, "description").containsAny("Intel", "AMD", "Unknown x86", "SPARC", "ARM", "PPC", "PowerPC", "AArch64", "zArch");
         }
     }
 }
--- a/test/jdk/lib/security/cacerts/VerifyCACerts.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/jdk/lib/security/cacerts/VerifyCACerts.java	Mon Jul 16 12:11:02 2018 +0100
@@ -24,7 +24,7 @@
 
 /**
  * @test
- * @bug 8189131 8198240 8191844 8189949 8191031 8196141 8204923 8195774
+ * @bug 8189131 8198240 8191844 8189949 8191031 8196141 8204923 8195774 8199779
  * @requires java.runtime.name ~= "OpenJDK.*"
  * @summary Check root CA entries in cacerts file
  */
@@ -42,7 +42,7 @@
             + File.separator + "security" + File.separator + "cacerts";
 
     // The numbers of certs now.
-    private static final int COUNT = 83;
+    private static final int COUNT = 90;
 
     // map of cert alias to SHA-256 fingerprint
     private static final Map<String, String> FINGERPRINT_MAP
@@ -214,6 +214,20 @@
                     "03:76:AB:1D:54:C5:F9:80:3C:E4:B2:E2:01:A0:EE:7E:EF:7B:57:B6:36:E8:A9:3C:9B:8D:48:60:C9:6F:5F:A7");
             put("affirmtrustpremiumeccca [jdk]",
                     "BD:71:FD:F6:DA:97:E4:CF:62:D1:64:7A:DD:25:81:B0:7D:79:AD:F8:39:7E:B4:EC:BA:9C:5E:84:88:82:14:23");
+            put("deutschetelekomrootca2 [jdk]",
+                    "B6:19:1A:50:D0:C3:97:7F:7D:A9:9B:CD:AA:C8:6A:22:7D:AE:B9:67:9E:C7:0B:A3:B0:C9:D9:22:71:C1:70:D3");
+            put("ttelesecglobalrootclass3ca [jdk]",
+                    "FD:73:DA:D3:1C:64:4F:F1:B4:3B:EF:0C:CD:DA:96:71:0B:9C:D9:87:5E:CA:7E:31:70:7A:F3:E9:6D:52:2B:BD");
+            put("ttelesecglobalrootclass2ca [jdk]",
+                    "91:E2:F5:78:8D:58:10:EB:A7:BA:58:73:7D:E1:54:8A:8E:CA:CD:01:45:98:BC:0B:14:3E:04:1B:17:05:25:52");
+            put("starfieldservicesrootg2ca [jdk]",
+                    "56:8D:69:05:A2:C8:87:08:A4:B3:02:51:90:ED:CF:ED:B1:97:4A:60:6A:13:C6:E5:29:0F:CB:2A:E6:3E:DA:B5");
+            put("globalsignca [jdk]",
+                    "EB:D4:10:40:E4:BB:3E:C7:42:C9:E3:81:D3:1E:F2:A4:1A:48:B6:68:5C:96:E7:CE:F3:C1:DF:6C:D4:33:1C:99");
+            put("globalsignr3ca [jdk]",
+                    "CB:B5:22:D7:B7:F1:27:AD:6A:01:13:86:5B:DF:1C:D4:10:2E:7D:07:59:AF:63:5A:7C:F4:72:0D:C9:63:C5:3B");
+            put("globalsigneccrootcar5 [jdk]",
+                    "17:9F:BC:14:8A:3D:D0:0F:D2:4E:A1:34:58:CC:43:BF:A7:F5:9C:81:82:D7:83:A5:13:F6:EB:EC:10:0C:89:24");
         }
     };
 
--- a/test/jdk/sun/management/jmxremote/bootstrap/management_ssltest11_ok.properties.in	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/jdk/sun/management/jmxremote/bootstrap/management_ssltest11_ok.properties.in	Mon Jul 16 12:11:02 2018 +0100
@@ -1,6 +1,6 @@
-com.sun.management.jmxremote.ssl.enabled.cipher.suites=SSL_RSA_WITH_RC4_128_SHA,SSL_RSA_WITH_RC4_128_MD5
-com.sun.management.jmxremote.ssl.enabled.protocols=SSLv2Hello,SSLv3,TLSv1
+com.sun.management.jmxremote.ssl.enabled.cipher.suites=TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384
+com.sun.management.jmxremote.ssl.enabled.protocols=SSLv2Hello,SSLv3,TLSv1,TLSv1.1,TLSv1.2,TLSv1.3
 com.sun.management.jmxremote.ssl.need.client.auth=true
 com.sun.management.jmxremote.ssl.config.file=@TEST-SRC@/jmxremote_ssltest11_ok.ssl
 com.sun.management.jmxremote.authenticate=false
-javax.rmi.ssl.client.enabledCipherSuites=SSL_RSA_WITH_RC4_128_SHA,SSL_RSA_WITH_RC4_128_MD5
+javax.rmi.ssl.client.enabledCipherSuites=TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/sun/management/jmxremote/bootstrap/management_ssltest15_ok.properties.in	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,6 @@
+com.sun.management.jmxremote.ssl.enabled.cipher.suites=TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA
+com.sun.management.jmxremote.ssl.enabled.protocols=SSLv2Hello,SSLv3,TLSv1
+com.sun.management.jmxremote.ssl.need.client.auth=true
+com.sun.management.jmxremote.ssl.config.file=@TEST-SRC@/jmxremote_ssltest11_ok.ssl
+com.sun.management.jmxremote.authenticate=false
+javax.rmi.ssl.client.enabledCipherSuites=TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA
--- a/test/jdk/sun/management/jmxremote/bootstrap/ssl/Readme.txt	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/jdk/sun/management/jmxremote/bootstrap/ssl/Readme.txt	Mon Jul 16 12:11:02 2018 +0100
@@ -1,11 +1,10 @@
 The trustore and keystore are to be generated as follows:
 
-1. keytool -genkey -alias duke -keystore keystore -validity 36500
+1. keytool -genkey -alias duke -keyalg RSA -keysize 2048 -validity 36500 -keystore keystore -storepass password
 - use password 'password' for the keystore and key passwords
 - leave all values at default
 - the certificate validity will be 100 years (should be enough for now)
 2. keytool -export -keystore keystore -alias duke -file duke.crt
-3. keytool -import -keystore truststore -alias duke -file duke.crt
+3. keytool -import -alias duke -file duke.crt -keystore truststore -storepass trustword
 - use password 'trustword' for the keystore and key passwords
 - leave all values at default
-
Binary file test/jdk/sun/management/jmxremote/bootstrap/ssl/keystore has changed
Binary file test/jdk/sun/management/jmxremote/bootstrap/ssl/truststore has changed
--- a/test/jdk/sun/nio/cs/TestIBMBugs.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/jdk/sun/nio/cs/TestIBMBugs.java	Mon Jul 16 12:11:02 2018 +0100
@@ -30,6 +30,7 @@
 import java.io.*;
 import java.nio.*;
 import java.nio.charset.*;
+import java.util.Arrays;
 
 public class TestIBMBugs {
 
@@ -173,6 +174,53 @@
         }
     }
 
+    private static void bug8202329() throws Exception {
+        String original = "\\\u007E\u00A5\u203E"; // [backslash][tilde][yen][overscore]
+        byte[] expectedBytes; // bytes after conversion
+        String expectedStringfromBytes; // String constructed from bytes
+
+        Charset charset; // charset used for conversion
+
+        ByteBuffer bb; // Buffer that holds encoded bytes
+        byte[]  ba; // byte array that holds encoded bytes
+
+        CharBuffer cb; // Buffer that holds decoded chars
+
+
+        // Test IBM943, where \ and ~ are encoded to unmappable i.e., 0x3f
+        // and [yen] and [overscore] are encoded to 0x5c and 0x7e
+        charset = Charset.forName("IBM943");
+        expectedBytes = new byte[] {0x3f, 0x3f, 0x5c, 0x7e};
+        expectedStringfromBytes = "??\u00A5\u203E";
+        bb = charset.encode(original);
+        ba = new byte[bb.remaining()];
+        bb.get(ba, 0, ba.length);
+        if(!Arrays.equals(ba, expectedBytes)) {
+            throw new Exception("IBM943 failed to encode");
+        }
+        cb = charset.decode(ByteBuffer.wrap(expectedBytes));
+        if(!cb.toString().equals(expectedStringfromBytes)) {
+            throw new Exception("IBM943 failed to decode");
+        }
+
+
+        // Test IBM943C, where \ and ~ are encoded to 0x5c and 0x7e
+        // and [yen] and [overscore] are encoded to 0x5c and 0x7e
+        charset = Charset.forName("IBM943C");
+        expectedBytes = new byte[] {0x5c, 0x7e, 0x5c, 0x7e};
+        expectedStringfromBytes = "\\~\\~";
+        bb = charset.encode(original);
+        ba = new byte[bb.remaining()];
+        bb.get(ba, 0, ba.length);
+        if(!Arrays.equals(ba, expectedBytes)) {
+            throw new Exception("IBM943C failed to encode");
+        }
+        cb = charset.decode(ByteBuffer.wrap(expectedBytes));
+        if(!cb.toString().equals(expectedStringfromBytes)) {
+            throw new Exception("IBM943C failed to decode");
+        }
+    }
+
     public static void main (String[] args) throws Exception {
         bug6577466();
         // need to be tested before any other IBM949C test case
@@ -183,5 +231,6 @@
         bug6371619();
         bug6371431();
         bug6569191();
+        bug8202329();
     }
 }
--- a/test/jdk/sun/security/ec/xec/TestXDH.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/jdk/sun/security/ec/xec/TestXDH.java	Mon Jul 16 12:11:02 2018 +0100
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8171277
+ * @bug 8171277 8206915
  * @summary Test XDH key agreement
  * @library /test/lib
  * @build jdk.test.lib.Convert
@@ -66,15 +66,17 @@
         throws Exception {
 
         KeyPairGenerator kpg = KeyPairGenerator.getInstance(name);
+        AlgorithmParameterSpec paramSpec = null;
         if (param instanceof Integer) {
             kpg.initialize((Integer) param);
         } else if (param instanceof String) {
-            kpg.initialize(new NamedParameterSpec((String) param));
+            paramSpec = new NamedParameterSpec((String) param);
+            kpg.initialize(paramSpec);
         }
         KeyPair kp = kpg.generateKeyPair();
 
         KeyAgreement ka = KeyAgreement.getInstance(name);
-        ka.init(kp.getPrivate());
+        ka.init(kp.getPrivate(), paramSpec);
         ka.doPhase(kp.getPublic(), true);
 
         byte[] secret = ka.generateSecret();
@@ -96,6 +98,16 @@
             throw new RuntimeException("Arrays not equal");
         }
 
+        // make sure generateSecret() resets the state to after init()
+        try {
+            ka.generateSecret();
+            throw new RuntimeException("generateSecret does not reset state");
+        } catch (IllegalStateException ex) {
+            // do nothing---this is expected
+        }
+        ka.doPhase(pubKey, true);
+        ka.generateSecret();
+
         // test with XDH key specs
         XECPublicKeySpec xdhPublic =
             kf.getKeySpec(kp.getPublic(), XECPublicKeySpec.class);
--- a/test/jdk/sun/security/tools/jarsigner/compatibility/Compatibility.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/jdk/sun/security/tools/jarsigner/compatibility/Compatibility.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -36,7 +36,7 @@
  *          java.base/sun.security.util
  *          java.base/sun.security.x509
  * @library /test/lib /lib/testlibrary ../warnings
- * @compile -source 1.6 -target 1.6 JdkUtils.java
+ * @compile -source 1.7 -target 1.7 JdkUtils.java
  * @run main/manual/othervm Compatibility
  */
 
--- a/test/jdk/sun/tools/jhsdb/AlternateHashingTest.java	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,122 +0,0 @@
-/*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * 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 8030750
- * @summary Test alternate hashing of strings in Serviceability Agent.
- * @requires vm.hasSAandCanAttach
- * @library /test/lib
- * @library /lib/testlibrary
- * @compile AlternateHashingTest.java
- * @run main/timeout=240 AlternateHashingTest
- */
-
-import java.io.BufferedReader;
-import java.io.OutputStream;
-import java.io.InputStreamReader;
-import java.io.IOException;
-import java.util.Arrays;
-import jdk.testlibrary.JDKToolLauncher;
-import jdk.test.lib.apps.LingeredApp;
-import jdk.test.lib.Platform;
-
-public class AlternateHashingTest {
-
-    private static LingeredAppWithAltHashing theApp = null;
-
-    /**
-     *
-     * @param vmArgs  - tool arguments to launch jhsdb
-     * @return exit code of tool
-     */
-    public static void launch(String expectedMessage, String cmd) throws IOException {
-
-        System.out.println("Starting LingeredApp");
-        try {
-            theApp = new LingeredAppWithAltHashing();
-            LingeredApp.startApp(Arrays.asList("-Xmx256m"), theApp);
-
-            System.out.println("Starting clhsdb against " + theApp.getPid());
-            JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jhsdb");
-            launcher.addToolArg("clhsdb");
-            launcher.addToolArg("--pid=" + Long.toString(theApp.getPid()));
-
-            ProcessBuilder processBuilder = new ProcessBuilder(launcher.getCommand());
-            processBuilder.redirectError(ProcessBuilder.Redirect.INHERIT);
-            Process toolProcess = processBuilder.start();
-
-            try (OutputStream out = toolProcess.getOutputStream()) {
-                out.write(cmd.getBytes());
-                out.write("quit\n".getBytes());
-            }
-
-            boolean result = false;
-            try (BufferedReader reader =
-                 new BufferedReader(new InputStreamReader(toolProcess.getInputStream()))) {
-                String line;
-
-                while ((line = reader.readLine()) != null) {
-                    line = line.trim();
-                    System.out.println(line);
-
-                    if (line.contains(expectedMessage)) {
-                        result = true;
-                        break;
-                    }
-                }
-            }
-
-            toolProcess.waitFor();
-
-            if (toolProcess.exitValue() != 0) {
-                throw new RuntimeException("FAILED CLHSDB terminated with non-zero exit code " + toolProcess.exitValue());
-            }
-
-            if (!result) {
-                throw new RuntimeException(cmd + " command output is missing the message " + expectedMessage);
-            }
-
-        } catch (Exception ex) {
-            throw new RuntimeException("Test ERROR " + ex, ex);
-        } finally {
-            LingeredApp.stopApp(theApp);
-        }
-    }
-
-
-    public static void testAltHashing() throws IOException {
-
-        launch("Stack in use by Java", "threads\n");
-    }
-
-    public static void main(String[] args) throws Exception {
-
-        testAltHashing();
-
-        // The test throws RuntimeException on error.
-        // IOException is thrown if LingeredApp can't start because of some bad
-        // environment condition
-        System.out.println("Test PASSED");
-    }
-}
--- a/test/jdk/sun/tools/jhsdb/LingeredAppWithAltHashing.java	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,161 +0,0 @@
-/*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * 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.apps.LingeredApp;
-
-public class LingeredAppWithAltHashing extends LingeredApp {
-
-    public static void main(String args[]) {
-        LingeredApp.main(args);
-    }
-
-    // Following strings generate the same hashcode
-
-    static final String str1 = "AaAaAaAaAaAaAa";
-    static final String str2 = "AaAaAaAaAaAaBB";
-    static final String str3 = "AaAaAaAaAaBBAa";
-    static final String str4 = "AaAaAaAaAaBBBB";
-    static final String str5 = "AaAaAaAaBBAaAa";
-    static final String str6 = "AaAaAaAaBBAaBB";
-    static final String str7 = "AaAaAaAaBBBBAa";
-    static final String str8 = "AaAaAaAaBBBBBB";
-    static final String str9 = "AaAaAaBBAaAaAa";
-    static final String str10 = "AaAaAaBBAaAaBB";
-    static final String str11 = "AaAaAaBBAaBBAa";
-    static final String str12 = "AaAaAaBBAaBBBB";
-    static final String str13 = "AaAaAaBBBBAaAa";
-    static final String str14 = "AaAaAaBBBBAaBB";
-    static final String str15 = "AaAaAaBBBBBBAa";
-    static final String str16 = "AaAaAaBBBBBBBB";
-    static final String str17 = "AaAaBBAaAaAaAa";
-    static final String str18 = "AaAaBBAaAaAaBB";
-    static final String str19 = "AaAaBBAaAaBBAa";
-    static final String str20 = "AaAaBBAaAaBBBB";
-    static final String str21 = "AaAaBBAaBBAaAa";
-    static final String str22 = "AaAaBBAaBBAaBB";
-    static final String str23 = "AaAaBBAaBBBBAa";
-    static final String str24 = "AaAaBBAaBBBBBB";
-    static final String str25 = "AaAaBBBBAaAaAa";
-    static final String str26 = "AaAaBBBBAaAaBB";
-    static final String str27 = "AaAaBBBBAaBBAa";
-    static final String str28 = "AaAaBBBBAaBBBB";
-    static final String str29 = "AaAaBBBBBBAaAa";
-    static final String str30 = "AaAaBBBBBBAaBB";
-    static final String str31 = "AaAaBBBBBBBBAa";
-    static final String str32 = "AaAaBBBBBBBBBB";
-    static final String str33 = "AaBBAaAaAaAaAa";
-    static final String str34 = "AaBBAaAaAaAaBB";
-    static final String str35 = "AaBBAaAaAaBBAa";
-    static final String str36 = "AaBBAaAaAaBBBB";
-    static final String str37 = "AaBBAaAaBBAaAa";
-    static final String str38 = "AaBBAaAaBBAaBB";
-    static final String str39 = "AaBBAaAaBBBBAa";
-    static final String str40 = "AaBBAaAaBBBBBB";
-    static final String str41 = "AaBBAaBBAaAaAa";
-    static final String str42 = "AaBBAaBBAaAaBB";
-    static final String str43 = "AaBBAaBBAaBBAa";
-    static final String str44 = "AaBBAaBBAaBBBB";
-    static final String str45 = "AaBBAaBBBBAaAa";
-    static final String str46 = "AaBBAaBBBBAaBB";
-    static final String str47 = "AaBBAaBBBBBBAa";
-    static final String str48 = "AaBBAaBBBBBBBB";
-    static final String str49 = "AaBBBBAaAaAaAa";
-    static final String str50 = "AaBBBBAaAaAaBB";
-    static final String str51 = "AaBBBBAaAaBBAa";
-    static final String str52 = "AaBBBBAaAaBBBB";
-    static final String str53 = "AaBBBBAaBBAaAa";
-    static final String str54 = "AaBBBBAaBBAaBB";
-    static final String str55 = "AaBBBBAaBBBBAa";
-    static final String str56 = "AaBBBBAaBBBBBB";
-    static final String str57 = "AaBBBBBBAaAaAa";
-    static final String str58 = "AaBBBBBBAaAaBB";
-    static final String str59 = "AaBBBBBBAaBBAa";
-    static final String str60 = "AaBBBBBBAaBBBB";
-    static final String str61 = "AaBBBBBBBBAaAa";
-    static final String str62 = "AaBBBBBBBBAaBB";
-    static final String str63 = "AaBBBBBBBBBBAa";
-    static final String str64 = "AaBBBBBBBBBBBB";
-    static final String str65 = "BBAaAaAaAaAaAa";
-    static final String str66 = "BBAaAaAaAaAaBB";
-    static final String str67 = "BBAaAaAaAaBBAa";
-    static final String str68 = "BBAaAaAaAaBBBB";
-    static final String str69 = "BBAaAaAaBBAaAa";
-    static final String str70 = "BBAaAaAaBBAaBB";
-    static final String str71 = "BBAaAaAaBBBBAa";
-    static final String str72 = "BBAaAaAaBBBBBB";
-    static final String str73 = "BBAaAaBBAaAaAa";
-    static final String str74 = "BBAaAaBBAaAaBB";
-    static final String str75 = "BBAaAaBBAaBBAa";
-    static final String str76 = "BBAaAaBBAaBBBB";
-    static final String str77 = "BBAaAaBBBBAaAa";
-    static final String str78 = "BBAaAaBBBBAaBB";
-    static final String str79 = "BBAaAaBBBBBBAa";
-    static final String str80 = "BBAaAaBBBBBBBB";
-    static final String str81 = "BBAaBBAaAaAaAa";
-    static final String str82 = "BBAaBBAaAaAaBB";
-    static final String str83 = "BBAaBBAaAaBBAa";
-    static final String str84 = "BBAaBBAaAaBBBB";
-    static final String str85 = "BBAaBBAaBBAaAa";
-    static final String str86 = "BBAaBBAaBBAaBB";
-    static final String str87 = "BBAaBBAaBBBBAa";
-    static final String str88 = "BBAaBBAaBBBBBB";
-    static final String str89 = "BBAaBBBBAaAaAa";
-    static final String str90 = "BBAaBBBBAaAaBB";
-    static final String str91 = "BBAaBBBBAaBBAa";
-    static final String str92 = "BBAaBBBBAaBBBB";
-    static final String str93 = "BBAaBBBBBBAaAa";
-    static final String str94 = "BBAaBBBBBBAaBB";
-    static final String str95 = "BBAaBBBBBBBBAa";
-    static final String str96 = "BBAaBBBBBBBBBB";
-    static final String str97 = "BBBBAaAaAaAaAa";
-    static final String str98 = "BBBBAaAaAaAaBB";
-    static final String str99 = "BBBBAaAaAaBBAa";
-    static final String str100 = "BBBBAaAaAaBBBB";
-    static final String str101 = "BBBBAaAaBBAaAa";
-    static final String str102 = "BBBBAaAaBBAaBB";
-    static final String str103 = "BBBBAaAaBBBBAa";
-    static final String str104 = "BBBBAaAaBBBBBB";
-    static final String str105 = "BBBBAaBBAaAaAa";
-    static final String str106 = "BBBBAaBBAaAaBB";
-    static final String str107 = "BBBBAaBBAaBBAa";
-    static final String str108 = "BBBBAaBBAaBBBB";
-    static final String str109 = "BBBBAaBBBBAaAa";
-    static final String str110 = "BBBBAaBBBBAaBB";
-    static final String str111 = "BBBBAaBBBBBBAa";
-    static final String str112 = "BBBBAaBBBBBBBB";
-    static final String str113 = "BBBBBBAaAaAaAa";
-    static final String str114 = "BBBBBBAaAaAaBB";
-    static final String str115 = "BBBBBBAaAaBBAa";
-    static final String str116 = "BBBBBBAaAaBBBB";
-    static final String str117 = "BBBBBBAaBBAaAa";
-    static final String str118 = "BBBBBBAaBBAaBB";
-    static final String str119 = "BBBBBBAaBBBBAa";
-    static final String str120 = "BBBBBBAaBBBBBB";
-    static final String str121 = "BBBBBBBBAaAaAa";
-    static final String str122 = "BBBBBBBBAaAaBB";
-    static final String str123 = "BBBBBBBBAaBBAa";
-    static final String str124 = "BBBBBBBBAaBBBB";
-    static final String str125 = "BBBBBBBBBBAaAa";
-    static final String str126 = "BBBBBBBBBBAaBB";
-    static final String str127 = "BBBBBBBBBBBBAa";
-    static final String str128 = "BBBBBBBBBBBBBB";
- }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/sun/util/resources/cldr/Bug8204603.java	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,124 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+ /*
+ * @test
+ * @bug 8204603
+ * @summary Test that correct data is retrieved for zh_CN and zh_TW locales
+ * and CLDR provider supports all locales for which aliases exist.
+ * @modules java.base/sun.util.locale.provider
+ *          jdk.localedata
+ * @run main Bug8204603
+ */
+
+import java.text.DateFormatSymbols;
+import java.text.DecimalFormatSymbols;
+import java.util.Calendar;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
+import sun.util.locale.provider.LocaleProviderAdapter;
+
+/**
+ * This test is dependent on a particular version of CLDR data.
+ */
+public class Bug8204603 {
+
+    /**
+     * List of all locales for which CLDR provides alias Mappings. e.g alias of
+     * zh-HK is zh-Hant-HK
+     */
+    private static final List<Locale> ALIAS_LOCALES
+            = List.of(Locale.forLanguageTag("az-AZ"), Locale.forLanguageTag("bs-BA"),
+                    Locale.forLanguageTag("ha-Latn-GH"), Locale.forLanguageTag("ha-Latn-NE"),
+                    Locale.forLanguageTag("ha-Latn-NG"), Locale.forLanguageTag("i-lux"),
+                    Locale.forLanguageTag("kk-Cyrl-KZ"), Locale.forLanguageTag("ks-Arab-IN"),
+                    Locale.forLanguageTag("ky-Cyrl-KG"), Locale.forLanguageTag("lb"),
+                    Locale.forLanguageTag("lb"), Locale.forLanguageTag("mn-Cyrl-MN"),
+                    Locale.forLanguageTag("mo"), Locale.forLanguageTag("ms-Latn-BN"),
+                    Locale.forLanguageTag("ms-Latn-MY"), Locale.forLanguageTag("ms-Latn-SG"),
+                    Locale.forLanguageTag("pa-IN"), Locale.forLanguageTag("pa-PK"),
+                    Locale.forLanguageTag("scc"), Locale.forLanguageTag("scr"),
+                    Locale.forLanguageTag("sh"), Locale.forLanguageTag("shi-MA"),
+                    Locale.forLanguageTag("sr-BA"), Locale.forLanguageTag("sr-RS"),
+                    Locale.forLanguageTag("sr-XK"), Locale.forLanguageTag("tl"),
+                    Locale.forLanguageTag("tzm-Latn-MA"), Locale.forLanguageTag("ug-Arab-CN"),
+                    Locale.forLanguageTag("uz-AF"), Locale.forLanguageTag("uz-UZ"),
+                    Locale.forLanguageTag("vai-LR"), Locale.forLanguageTag("vai-LR"),
+                    Locale.forLanguageTag("yue-CN"), Locale.forLanguageTag("yue-HK"),
+                    Locale.forLanguageTag("zh-CN"), Locale.forLanguageTag("zh-HK"),
+                    Locale.forLanguageTag("zh-MO"), Locale.forLanguageTag("zh-SG"),
+                    Locale.forLanguageTag("zh-TW"));
+
+    private static final Map<Locale, String> CALENDAR_DATA_MAP = Map.of(
+            Locale.forLanguageTag("zh-CN"), "\u5468\u65E5",
+            Locale.forLanguageTag("zh-TW"), "\u9031\u65E5");
+    private static final Map<Locale, String> NAN_DATA_MAP = Map.of(
+            Locale.forLanguageTag("zh-CN"), "NaN",
+            Locale.forLanguageTag("zh-TW"), "\u975E\u6578\u503C");
+
+    public static void main(String[] args) {
+        testCldrSupportedLocales();
+        CALENDAR_DATA_MAP.forEach((k, v) -> testCalendarData(k, v));
+        NAN_DATA_MAP.forEach((k, v) -> testNanData(k, v));
+    }
+
+    /**
+     * tests that CLDR provider should return true for alias locales.
+     *
+     */
+    private static void testCldrSupportedLocales() {
+        LocaleProviderAdapter cldr = LocaleProviderAdapter.forType(LocaleProviderAdapter.Type.CLDR);
+        Set<Locale> availableLocs = Set.of(cldr.getAvailableLocales());
+        Set<String> langtags = new HashSet<>();
+        availableLocs.forEach(loc -> langtags.add(loc.toLanguageTag()));
+        ALIAS_LOCALES.stream().filter(loc -> !cldr.isSupportedProviderLocale(loc, langtags)).findAny()
+                .ifPresent(l -> {
+                    throw new RuntimeException("Locale " + l
+                            + "  is not supported by CLDR locale provider");
+                });
+    }
+
+    private static void testCalendarData(Locale loc, String expected) {
+        DateFormatSymbols dfs = DateFormatSymbols.getInstance(loc);
+        String[] shortDays = dfs.getShortWeekdays();
+        String actual = shortDays[Calendar.SUNDAY];
+        if (!actual.equals(expected)) {
+            throw new RuntimeException("Calendar data mismatch for locale: "
+                    + loc + ", expected  is: " + expected + ", actual is: " + actual);
+        }
+    }
+
+    private static void testNanData(Locale loc, String expected) {
+        DecimalFormatSymbols dfs = DecimalFormatSymbols.getInstance(loc);
+        String actual = dfs.getNaN();
+        if (!actual.equals(expected)) {
+            throw new RuntimeException("NaN mismatch for locale: "
+                    + loc + ", expected  is: " + expected + ", actual is: " + actual);
+        }
+    }
+}
--- a/test/jdk/tools/jimage/JImageExtractTest.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/jdk/tools/jimage/JImageExtractTest.java	Mon Jul 16 12:11:02 2018 +0100
@@ -34,11 +34,10 @@
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
-import java.nio.file.attribute.FileAttribute;
-import java.nio.file.attribute.PosixFilePermission;
-import java.nio.file.attribute.PosixFilePermissions;
+import java.nio.file.attribute.*;
 import java.util.Arrays;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Set;
 import java.util.stream.Collectors;
 
@@ -47,12 +46,13 @@
 
 public class JImageExtractTest extends JImageCliTest {
     public void testExtract() throws IOException {
+        Set<Path> notJImageModules = Files.walk(Paths.get("."),1).collect(Collectors.toSet());
         jimage("extract", getImagePath())
                 .assertSuccess()
                 .resultChecker(r -> {
                     assertTrue(r.output.isEmpty(), "Output is not expected");
                 });
-        verifyExplodedImage(Paths.get("."));
+        verifyExplodedImage(Paths.get("."), notJImageModules);
     }
 
     public void testExtractHelp() {
@@ -68,12 +68,13 @@
 
     public void testExtractToDir() throws IOException {
         Path tmp = Files.createTempDirectory(Paths.get("."), getClass().getName());
+        Set<Path> notJImageModules = Files.walk(tmp,1).collect(Collectors.toSet());
         jimage("extract", "--dir", tmp.toString(), getImagePath())
                 .assertSuccess()
                 .resultChecker(r -> {
                     assertTrue(r.output.isEmpty(), "Output is not expected");
                 });
-        verifyExplodedImage(tmp);
+        verifyExplodedImage(tmp, notJImageModules);
     }
 
     public void testExtractNoImageSpecified() {
@@ -105,13 +106,14 @@
 
     public void testExtractToNotExistingDir() throws IOException {
         Path tmp = Files.createTempDirectory(Paths.get("."), getClass().getName());
+        Set<Path> notJImageModules = Files.walk(tmp,1).collect(Collectors.toSet());
         Files.delete(tmp);
         jimage("extract", "--dir", tmp.toString(), getImagePath())
                 .assertSuccess()
                 .resultChecker(r -> {
                     assertTrue(r.output.isEmpty(), "Output is not expected");
                 });
-        verifyExplodedImage(tmp);
+        verifyExplodedImage(tmp, notJImageModules);
     }
 
     public void testExtractFromDir() {
@@ -132,20 +134,35 @@
             // nothing to test
             return;
         }
-
+        Set<Path> notJImageModules = Files.walk(tmp,1).collect(Collectors.toSet());
         jimage("extract", "--dir", symlink.toString(), getImagePath())
                 .assertSuccess()
                 .resultChecker(r -> {
                     assertTrue(r.output.isEmpty(), "Output is not expected");
                 });
-        verifyExplodedImage(tmp);
+        verifyExplodedImage(tmp, notJImageModules);
     }
 
     public void testExtractToReadOnlyDir() throws IOException {
-        Set<PosixFilePermission> perms = PosixFilePermissions.fromString("r-xr--r--");
-        FileAttribute<Set<PosixFilePermission>> atts = PosixFilePermissions.asFileAttribute(perms);
-        Path tmp = Files.createTempDirectory(Paths.get("."), getClass().getName(), atts);
-        jimage("extract", "--dir", tmp.toString(), getImagePath())
+        Path filePath = Files.createTempDirectory(Paths.get("."), getClass().getName());
+        Set<String> supportedAttr = filePath.getFileSystem().supportedFileAttributeViews();
+        if (supportedAttr.contains("posix")) {
+            Files.setPosixFilePermissions(filePath, PosixFilePermissions.fromString("r-xr--r--"));
+        } else if (supportedAttr.contains("acl")) {
+            System.out.println("Entered into acl block");
+            UserPrincipal fileOwner = Files.getOwner(filePath);
+            AclFileAttributeView view = Files.getFileAttributeView(filePath, AclFileAttributeView.class);
+            AclEntry entry = AclEntry.newBuilder()
+                                     .setType(AclEntryType.DENY)
+                                     .setPrincipal(fileOwner)
+                                     .setPermissions(AclEntryPermission.WRITE_DATA)
+                                     .setFlags(AclEntryFlag.FILE_INHERIT, AclEntryFlag.DIRECTORY_INHERIT)
+                                     .build();
+            List<AclEntry> acl = view.getAcl();
+            acl.add(0, entry);
+            view.setAcl(acl);
+        }
+        jimage("extract", "--dir", filePath.toString(), getImagePath())
                 .assertFailure()
                 .assertShowsError();
     }
@@ -167,15 +184,16 @@
                 .assertShowsError();
     }
 
-    private void verifyExplodedImage(Path imagePath) throws IOException {
+    private void verifyExplodedImage(Path imagePath, Set<Path> notJImageModules) throws IOException {
         Set<Path> allModules = Files.walk(imagePath, 1).collect(Collectors.toSet());
         assertTrue(allModules.stream().anyMatch(p -> "java.base".equals(p.getFileName().toString())),
                 "Exploded image contains java.base module.");
-
         Set<Path> badModules = allModules.stream()
                 .filter(p -> !Files.exists(p.resolve("module-info.class")))
                 .collect(Collectors.toSet());
-        assertEquals(badModules, new HashSet<Path>() {{ add(imagePath); }},
+        // filter bad modules which are not part of jimage
+        badModules.removeAll(notJImageModules);
+        assertEquals(badModules, new HashSet<Path>() {{}},
                 "There are no exploded modules with missing 'module-info.class'");
     }
 
--- a/test/jdk/tools/pack200/PackageVersionTest.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/jdk/tools/pack200/PackageVersionTest.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -60,9 +60,6 @@
 
         verify6991164();
 
-        verifyPack("Test6.class", JAVA6_PACKAGE_MAJOR_VERSION,
-                JAVA6_PACKAGE_MINOR_VERSION);
-
         // a jar file devoid of indy classes must generate 160.1 package file
         verifyPack("Test7.class", JAVA6_PACKAGE_MAJOR_VERSION,
                 JAVA6_PACKAGE_MINOR_VERSION);
@@ -91,9 +88,10 @@
         String target = name.substring(name.length() - 1);
         String javacCmds[] = {
             "-source",
-            "6",
+            "7",
             "-target",
-            name.substring(name.length() - 1),
+            "7",
+            "-Xlint:-options",
             name + ".java"
         };
         Utils.compiler(javacCmds);
--- a/test/langtools/ProblemList.txt	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/ProblemList.txt	Mon Jul 16 12:11:02 2018 +0100
@@ -59,6 +59,8 @@
 
 tools/javac/options/smokeTests/OptionSmokeTest.java                             8205493    generic-all    hard-coded release values in strings
 
+tools/javac/file/zip/8003512/LoadClassFromJava6CreatedJarTest.java              8206874    generic-all    test requires a JDK 6 environment to be useful
+
 ###########################################################################
 #
 # javap
--- a/test/langtools/jdk/javadoc/doclet/testHtmlVersion/TestHtmlVersion.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testHtmlVersion/TestHtmlVersion.java	Mon Jul 16 12:11:02 2018 +0100
@@ -352,7 +352,7 @@
                 "<section role=\"region\">\n"
                 + "<h2>Package</h2>\n",
                 "<section role=\"region\">\n"
-                + "<h2>Class/Interface</h2>\n",
+                + "<h2>Class or Interface</h2>\n",
                 "<footer role=\"contentinfo\">\n"
                 + "<nav role=\"navigation\">\n"
                 + "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
@@ -1266,7 +1266,7 @@
                 "<li class=\"blockList\">\n"
                 + "<h2>Package</h2>",
                 "<li class=\"blockList\">\n"
-                + "<h2>Class/Interface</h2>");
+                + "<h2>Class or Interface</h2>");
 
         // Test for a regular class page and members (nested class, field, constructore and method)
         checkOutput("pkg/AnotherClass.html", true,
--- a/test/langtools/jdk/javadoc/tool/modules/ReleaseOptions.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/jdk/javadoc/tool/modules/ReleaseOptions.java	Mon Jul 16 12:11:02 2018 +0100
@@ -58,7 +58,7 @@
         Task.Result result = execNegativeTask("--release", "8",
                 "--patch-module", "m=" + mpath.toString(),
                 "p");
-        assertMessagePresent(".*not allowed with target 1.8.*");
+        assertMessagePresent(".*not allowed with target 8.*");
         assertMessageNotPresent(".*Exception*");
         assertMessageNotPresent(".java.lang.AssertionError.*");
     }
@@ -92,7 +92,7 @@
         Task.Result result = execNegativeTask("--release", "8",
                 "--module-source-path", src.toString(),
                 "--module", "m");
-        assertMessagePresent(".*not allowed with target 1.8.*");
+        assertMessagePresent(".*not allowed with target 8.*");
         assertMessageNotPresent(".*Exception*");
         assertMessageNotPresent(".java.lang.AssertionError.*");
     }
--- a/test/langtools/jdk/jshell/CompilerOptionsTest.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/jdk/jshell/CompilerOptionsTest.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -40,7 +40,7 @@
     @BeforeMethod
     @Override
     public void setUp() {
-        setUp(b -> b.compilerOptions("-source", "7", "-Xlint:cast"));
+        setUp(b -> b.compilerOptions("-source", "7", "-Xlint:cast,-options"));
     }
 
     public void testLint() {
--- a/test/langtools/tools/javac/6558548/T6558548.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/6558548/T6558548.java	Mon Jul 16 12:11:02 2018 +0100
@@ -3,7 +3,6 @@
  * @bug     6558548 7039937
  * @summary The compiler needs to be aligned with clarified specification of throws
  * @compile/fail/ref=T6558548_latest.out -XDrawDiagnostics T6558548.java
- * @compile/fail/ref=T6558548_6.out -source 6 -Xlint:-options -XDrawDiagnostics T6558548.java
  */
 
 class T6558548 {
--- a/test/langtools/tools/javac/6558548/T6558548_6.out	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-T6558548.java:168:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException
-T6558548.java:177:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException
-T6558548.java:248:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException
-T6558548.java:258:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException
-T6558548.java:300:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException
-T6558548.java:307:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException
-6 errors
--- a/test/langtools/tools/javac/6558548/T6558548_latest.out	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/6558548/T6558548_latest.out	Mon Jul 16 12:11:02 2018 +0100
@@ -1,9 +1,9 @@
-T6558548.java:20:9: compiler.warn.unreachable.catch: java.io.FileNotFoundException
-T6558548.java:168:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException
-T6558548.java:177:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException
-T6558548.java:248:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException
-T6558548.java:258:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException
-T6558548.java:300:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException
-T6558548.java:307:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException
+T6558548.java:19:9: compiler.warn.unreachable.catch: java.io.FileNotFoundException
+T6558548.java:167:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException
+T6558548.java:176:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException
+T6558548.java:247:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException
+T6558548.java:257:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException
+T6558548.java:299:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException
+T6558548.java:306:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException
 6 errors
 1 warning
--- a/test/langtools/tools/javac/8013179/T8013179.java	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-/*
- * @test /nodynamiccopyright/
- * @bug 8013179
- * @summary assertion failure in javac when compiling with -source 1.6 -target 1.6
- * @compile/fail/ref=T8013179.out -source 6 -target 6 -Xlint:-options -XDrawDiagnostics T8013179.java
- */
-
-import java.lang.invoke.MethodHandle;
-
-class T8013179 {
-    static MethodHandle getNamedMember;
-    public static Object getMember(String name, Object rec) throws Throwable {
-        return getNamedMember.invoke(rec, name);
-    }
-}
--- a/test/langtools/tools/javac/8013179/T8013179.out	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-T8013179.java:13:37: compiler.err.bad.target.sigpoly.call: 1.6, 1.7
-1 error
--- a/test/langtools/tools/javac/8074306/TestSyntheticNullChecks.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/8074306/TestSyntheticNullChecks.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,9 +25,6 @@
  * @test
  * @bug 8074306 8073432 8074501
  * @summary NULLCHK is emitted as Object.getClass
- * @compile -source 6 -target 6 TestSyntheticNullChecks.java
- * @run main TestSyntheticNullChecks 6
- * @clean TestSyntheticNullChecks*
  * @compile -source 7 -target 7 TestSyntheticNullChecks.java
  * @run main TestSyntheticNullChecks 7
  * @clean TestSyntheticNullChecks*
--- a/test/langtools/tools/javac/StringConcat/TestIndyStringConcat.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/StringConcat/TestIndyStringConcat.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -35,10 +35,6 @@
  * @modules jdk.jdeps/com.sun.tools.classfile
  *
  * @clean TestIndyStringConcat*
- * @compile -source 6 -target 6 TestIndyStringConcat.java
- * @run main TestIndyStringConcat false
- *
- * @clean TestIndyStringConcat*
  * @compile -source 7 -target 7 TestIndyStringConcat.java
  * @run main TestIndyStringConcat false
  *
--- a/test/langtools/tools/javac/StringsInSwitch/BadlyTypedLabel1.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/StringsInSwitch/BadlyTypedLabel1.java	Mon Jul 16 12:11:02 2018 +0100
@@ -2,7 +2,6 @@
  * @test  /nodynamiccopyright/
  * @bug 6827009
  * @summary Check for case labels of different types.
- * @compile/fail/ref=BadlyTypedLabel1_6.out -XDrawDiagnostics -source 6 BadlyTypedLabel1.java
  * @compile/fail/ref=BadlyTypedLabel1.out -XDrawDiagnostics BadlyTypedLabel1.java
  */
 class BadlyTypedLabel1 {
--- a/test/langtools/tools/javac/StringsInSwitch/BadlyTypedLabel1.out	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/StringsInSwitch/BadlyTypedLabel1.out	Mon Jul 16 12:11:02 2018 +0100
@@ -1,2 +1,2 @@
-BadlyTypedLabel1.java:13:14: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: int, java.lang.String)
+BadlyTypedLabel1.java:12:14: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: int, java.lang.String)
 1 error
--- a/test/langtools/tools/javac/StringsInSwitch/BadlyTypedLabel1_6.out	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-- compiler.warn.source.no.bootclasspath: 6
-- compiler.warn.option.obsolete.source: 6
-- compiler.warn.option.obsolete.suppression
-BadlyTypedLabel1.java:10:15: compiler.err.feature.not.supported.in.source.plural: (compiler.misc.feature.string.switch), 6, 7
-BadlyTypedLabel1.java:13:14: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: int, java.lang.String)
-2 errors
-3 warnings
--- a/test/langtools/tools/javac/StringsInSwitch/BadlyTypedLabel2.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/StringsInSwitch/BadlyTypedLabel2.java	Mon Jul 16 12:11:02 2018 +0100
@@ -2,7 +2,6 @@
  * @test  /nodynamiccopyright/
  * @bug 6827009
  * @summary Check for case lables of different types.
- * @compile/fail/ref=BadlyTypedLabel2_6.out -XDrawDiagnostics -source 6 BadlyTypedLabel2.java
  * @compile/fail/ref=BadlyTypedLabel2.out -XDrawDiagnostics BadlyTypedLabel2.java
  */
 import static java.math.RoundingMode.*;
--- a/test/langtools/tools/javac/StringsInSwitch/BadlyTypedLabel2.out	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/StringsInSwitch/BadlyTypedLabel2.out	Mon Jul 16 12:11:02 2018 +0100
@@ -1,2 +1,2 @@
-BadlyTypedLabel2.java:15:14: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: java.math.RoundingMode, java.lang.String)
+BadlyTypedLabel2.java:14:14: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: java.math.RoundingMode, java.lang.String)
 1 error
--- a/test/langtools/tools/javac/StringsInSwitch/BadlyTypedLabel2_6.out	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-- compiler.warn.source.no.bootclasspath: 6
-- compiler.warn.option.obsolete.source: 6
-- compiler.warn.option.obsolete.suppression
-BadlyTypedLabel2.java:12:15: compiler.err.feature.not.supported.in.source.plural: (compiler.misc.feature.string.switch), 6, 7
-BadlyTypedLabel2.java:15:14: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: java.math.RoundingMode, java.lang.String)
-2 errors
-3 warnings
--- a/test/langtools/tools/javac/StringsInSwitch/NonConstantLabel.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/StringsInSwitch/NonConstantLabel.java	Mon Jul 16 12:11:02 2018 +0100
@@ -2,7 +2,6 @@
  * @test  /nodynamiccopyright/
  * @bug 6827009
  * @summary Check for non-constant case labels.
- * @compile/fail/ref=NonConstantLabel6.out -XDrawDiagnostics -source 6 NonConstantLabel.java
  * @compile/fail/ref=NonConstantLabel.out -XDrawDiagnostics NonConstantLabel.java
  */
 class NonConstantLabel {
--- a/test/langtools/tools/javac/StringsInSwitch/NonConstantLabel.out	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/StringsInSwitch/NonConstantLabel.out	Mon Jul 16 12:11:02 2018 +0100
@@ -1,2 +1,2 @@
-NonConstantLabel.java:14:14: compiler.err.string.const.req
+NonConstantLabel.java:13:14: compiler.err.string.const.req
 1 error
--- a/test/langtools/tools/javac/StringsInSwitch/NonConstantLabel6.out	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-- compiler.warn.source.no.bootclasspath: 6
-- compiler.warn.option.obsolete.source: 6
-- compiler.warn.option.obsolete.suppression
-NonConstantLabel.java:11:15: compiler.err.feature.not.supported.in.source.plural: (compiler.misc.feature.string.switch), 6, 7
-NonConstantLabel.java:14:14: compiler.err.string.const.req
-2 errors
-3 warnings
--- a/test/langtools/tools/javac/StringsInSwitch/OneCaseSwitches.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/StringsInSwitch/OneCaseSwitches.java	Mon Jul 16 12:11:02 2018 +0100
@@ -2,7 +2,6 @@
  * @test /nodynamiccopyright/
  * @bug 6827009 8078561
  * @summary Positive tests for strings in switch with few alternatives.
- * @compile/fail/ref=OneCaseSwitches.out -XDrawDiagnostics -source 6 OneCaseSwitches.java
  * @compile          OneCaseSwitches.java
  * @run main OneCaseSwitches
  * @author  Joseph D. Darcy
--- a/test/langtools/tools/javac/StringsInSwitch/OneCaseSwitches.out	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-- compiler.warn.source.no.bootclasspath: 6
-- compiler.warn.option.obsolete.source: 6
-- compiler.warn.option.obsolete.suppression
-OneCaseSwitches.java:23:15: compiler.err.feature.not.supported.in.source.plural: (compiler.misc.feature.string.switch), 6, 7
-1 error
-3 warnings
--- a/test/langtools/tools/javac/StringsInSwitch/RSCL1.out	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/StringsInSwitch/RSCL1.out	Mon Jul 16 12:11:02 2018 +0100
@@ -1,2 +1,2 @@
-RepeatedStringCaseLabels1.java:13:9: compiler.err.duplicate.case.label
+RepeatedStringCaseLabels1.java:12:9: compiler.err.duplicate.case.label
 1 error
--- a/test/langtools/tools/javac/StringsInSwitch/RSCL1_6.out	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-- compiler.warn.source.no.bootclasspath: 6
-- compiler.warn.option.obsolete.source: 6
-- compiler.warn.option.obsolete.suppression
-RepeatedStringCaseLabels1.java:10:15: compiler.err.feature.not.supported.in.source.plural: (compiler.misc.feature.string.switch), 6, 7
-RepeatedStringCaseLabels1.java:13:9: compiler.err.duplicate.case.label
-2 errors
-3 warnings
--- a/test/langtools/tools/javac/StringsInSwitch/RSCL2.out	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/StringsInSwitch/RSCL2.out	Mon Jul 16 12:11:02 2018 +0100
@@ -1,2 +1,2 @@
-RepeatedStringCaseLabels2.java:14:9: compiler.err.duplicate.case.label
+RepeatedStringCaseLabels2.java:13:9: compiler.err.duplicate.case.label
 1 error
--- a/test/langtools/tools/javac/StringsInSwitch/RSCL2_6.out	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-- compiler.warn.source.no.bootclasspath: 6
-- compiler.warn.option.obsolete.source: 6
-- compiler.warn.option.obsolete.suppression
-RepeatedStringCaseLabels2.java:11:15: compiler.err.feature.not.supported.in.source.plural: (compiler.misc.feature.string.switch), 6, 7
-RepeatedStringCaseLabels2.java:14:9: compiler.err.duplicate.case.label
-2 errors
-3 warnings
--- a/test/langtools/tools/javac/StringsInSwitch/RepeatedStringCaseLabels1.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/StringsInSwitch/RepeatedStringCaseLabels1.java	Mon Jul 16 12:11:02 2018 +0100
@@ -2,7 +2,6 @@
  * @test  /nodynamiccopyright/
  * @bug 6827009
  * @summary Check for repeated string case labels.
- * @compile/fail/ref=RSCL1_6.out -XDrawDiagnostics -source 6 RepeatedStringCaseLabels1.java
  * @compile/fail/ref=RSCL1.out -XDrawDiagnostics RepeatedStringCaseLabels1.java
  */
 class RepeatedStringCaseLabels1 {
--- a/test/langtools/tools/javac/StringsInSwitch/RepeatedStringCaseLabels2.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/StringsInSwitch/RepeatedStringCaseLabels2.java	Mon Jul 16 12:11:02 2018 +0100
@@ -2,7 +2,6 @@
  * @test  /nodynamiccopyright/
  * @bug 6827009
  * @summary Check for repeated string case labels.
- * @compile/fail/ref=RSCL2_6.out -XDrawDiagnostics -source 6 RepeatedStringCaseLabels2.java
  * @compile/fail/ref=RSCL2.out -XDrawDiagnostics RepeatedStringCaseLabels2.java
  */
 class RepeatedStringCaseLabels2 {
--- a/test/langtools/tools/javac/TryWithResources/BadTwr.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/TryWithResources/BadTwr.java	Mon Jul 16 12:11:02 2018 +0100
@@ -3,7 +3,6 @@
  * @bug 6911256 6964740
  * @author Joseph D. Darcy
  * @summary Verify bad TWRs don't compile
- * @compile/fail/ref=BadTwr6.out -XDrawDiagnostics -source 6 BadTwr.java
  * @compile/fail/ref=BadTwr.out -XDrawDiagnostics BadTwr.java
  */
 
--- a/test/langtools/tools/javac/TryWithResources/BadTwr.out	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/TryWithResources/BadTwr.out	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
-BadTwr.java:13:46: compiler.err.already.defined: kindname.variable, r1, kindname.method, main(java.lang.String...)
-BadTwr.java:18:20: compiler.err.already.defined: kindname.variable, args, kindname.method, main(java.lang.String...)
-BadTwr.java:21:13: compiler.err.cant.assign.val.to.final.var: thatsIt
-BadTwr.java:26:24: compiler.err.already.defined: kindname.variable, name, kindname.method, main(java.lang.String...)
+BadTwr.java:12:46: compiler.err.already.defined: kindname.variable, r1, kindname.method, main(java.lang.String...)
+BadTwr.java:17:20: compiler.err.already.defined: kindname.variable, args, kindname.method, main(java.lang.String...)
+BadTwr.java:20:13: compiler.err.cant.assign.val.to.final.var: thatsIt
+BadTwr.java:25:24: compiler.err.already.defined: kindname.variable, name, kindname.method, main(java.lang.String...)
 4 errors
--- a/test/langtools/tools/javac/TryWithResources/BadTwr6.out	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-- compiler.warn.source.no.bootclasspath: 6
-- compiler.warn.option.obsolete.source: 6
-- compiler.warn.option.obsolete.suppression
-BadTwr.java:13:12: compiler.err.feature.not.supported.in.source: (compiler.misc.feature.try.with.resources), 6, 7
-1 error
-3 warnings
--- a/test/langtools/tools/javac/TryWithResources/BadTwrSyntax.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/TryWithResources/BadTwrSyntax.java	Mon Jul 16 12:11:02 2018 +0100
@@ -3,7 +3,6 @@
  * @bug 6911256 6964740
  * @author Joseph D. Darcy
  * @summary Verify bad TWRs don't compile
- * @compile/fail/ref=BadTwrSyntax6.out -XDrawDiagnostics -source 6 BadTwrSyntax.java
  * @compile/fail/ref=BadTwrSyntax.out -XDrawDiagnostics BadTwrSyntax.java
  */
 
--- a/test/langtools/tools/javac/TryWithResources/BadTwrSyntax.out	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/TryWithResources/BadTwrSyntax.out	Mon Jul 16 12:11:02 2018 +0100
@@ -1,2 +1,2 @@
-BadTwrSyntax.java:14:43: compiler.err.illegal.start.of.expr
+BadTwrSyntax.java:13:43: compiler.err.illegal.start.of.expr
 1 error
--- a/test/langtools/tools/javac/TryWithResources/BadTwrSyntax6.out	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-- compiler.warn.source.no.bootclasspath: 6
-- compiler.warn.option.obsolete.source: 6
-- compiler.warn.option.obsolete.suppression
-BadTwrSyntax.java:14:12: compiler.err.feature.not.supported.in.source: (compiler.misc.feature.try.with.resources), 6, 7
-BadTwrSyntax.java:14:43: compiler.err.illegal.start.of.expr
-2 errors
-3 warnings
--- a/test/langtools/tools/javac/TryWithResources/PlainTry.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/TryWithResources/PlainTry.java	Mon Jul 16 12:11:02 2018 +0100
@@ -3,7 +3,6 @@
  * @bug 6911256 6964740
  * @author Joseph D. Darcy
  * @summary Test error messages for an unadorned try
- * @compile/fail/ref=PlainTry6.out -XDrawDiagnostics -source 6 -Xlint:-options PlainTry.java
  * @compile/fail/ref=PlainTry.out  -XDrawDiagnostics                           PlainTry.java
  */
 public class PlainTry {
--- a/test/langtools/tools/javac/TryWithResources/PlainTry.out	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/TryWithResources/PlainTry.out	Mon Jul 16 12:11:02 2018 +0100
@@ -1,2 +1,2 @@
-PlainTry.java:11:9: compiler.err.try.without.catch.finally.or.resource.decls
+PlainTry.java:10:9: compiler.err.try.without.catch.finally.or.resource.decls
 1 error
--- a/test/langtools/tools/javac/TryWithResources/PlainTry6.out	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-PlainTry.java:11:9: compiler.err.try.without.catch.or.finally
-1 error
--- a/test/langtools/tools/javac/TryWithResources/TwrOnNonResource.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/TryWithResources/TwrOnNonResource.java	Mon Jul 16 12:11:02 2018 +0100
@@ -3,7 +3,6 @@
  * @bug 6911256 6964740 7013420
  * @author Joseph D. Darcy
  * @summary Verify invalid TWR block is not accepted.
- * @compile/fail/ref=TwrOnNonResource6.out -XDrawDiagnostics -source 6 TwrOnNonResource.java
  * @compile/fail/ref=TwrOnNonResource.out -XDrawDiagnostics TwrOnNonResource.java
  */
 
--- a/test/langtools/tools/javac/TryWithResources/TwrOnNonResource.out	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/TryWithResources/TwrOnNonResource.out	Mon Jul 16 12:11:02 2018 +0100
@@ -1,4 +1,4 @@
-TwrOnNonResource.java:12:30: compiler.err.prob.found.req: (compiler.misc.try.not.applicable.to.type: (compiler.misc.inconvertible.types: TwrOnNonResource, java.lang.AutoCloseable))
-TwrOnNonResource.java:15:30: compiler.err.prob.found.req: (compiler.misc.try.not.applicable.to.type: (compiler.misc.inconvertible.types: TwrOnNonResource, java.lang.AutoCloseable))
-TwrOnNonResource.java:18:30: compiler.err.prob.found.req: (compiler.misc.try.not.applicable.to.type: (compiler.misc.inconvertible.types: TwrOnNonResource, java.lang.AutoCloseable))
+TwrOnNonResource.java:11:30: compiler.err.prob.found.req: (compiler.misc.try.not.applicable.to.type: (compiler.misc.inconvertible.types: TwrOnNonResource, java.lang.AutoCloseable))
+TwrOnNonResource.java:14:30: compiler.err.prob.found.req: (compiler.misc.try.not.applicable.to.type: (compiler.misc.inconvertible.types: TwrOnNonResource, java.lang.AutoCloseable))
+TwrOnNonResource.java:17:30: compiler.err.prob.found.req: (compiler.misc.try.not.applicable.to.type: (compiler.misc.inconvertible.types: TwrOnNonResource, java.lang.AutoCloseable))
 3 errors
--- a/test/langtools/tools/javac/TryWithResources/TwrOnNonResource6.out	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-- compiler.warn.source.no.bootclasspath: 6
-- compiler.warn.option.obsolete.source: 6
-- compiler.warn.option.obsolete.suppression
-TwrOnNonResource.java:12:12: compiler.err.feature.not.supported.in.source: (compiler.misc.feature.try.with.resources), 6, 7
-1 error
-3 warnings
--- a/test/langtools/tools/javac/TryWithResources/WeirdTwr.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/TryWithResources/WeirdTwr.java	Mon Jul 16 12:11:02 2018 +0100
@@ -3,7 +3,6 @@
  * @bug 6911256 6964740
  * @author Joseph D. Darcy
  * @summary Strange TWRs
- * @compile/fail/ref=WeirdTwr.out -XDrawDiagnostics -source 6 WeirdTwr.java
  * @compile WeirdTwr.java
  * @run main WeirdTwr
  */
--- a/test/langtools/tools/javac/annotations/repeatingAnnotations/WrongVersion.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/annotations/repeatingAnnotations/WrongVersion.java	Mon Jul 16 12:11:02 2018 +0100
@@ -5,7 +5,6 @@
  * @compile WrongVersion.java
  * @compile -Xlint:-options -source 8 WrongVersion.java
  * @compile/fail/ref=WrongVersion7.out -XDrawDiagnostics -Xlint:-options -source 7 WrongVersion.java
- * @compile/fail/ref=WrongVersion6.out -XDrawDiagnostics -Xlint:-options -source 6 WrongVersion.java
  */
 import java.lang.annotation.Repeatable;
 
--- a/test/langtools/tools/javac/annotations/repeatingAnnotations/WrongVersion6.out	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-WrongVersion.java:12:9: compiler.err.feature.not.supported.in.source.plural: (compiler.misc.feature.repeatable.annotations), 6, 8
-1 error
--- a/test/langtools/tools/javac/annotations/repeatingAnnotations/WrongVersion7.out	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/annotations/repeatingAnnotations/WrongVersion7.out	Mon Jul 16 12:11:02 2018 +0100
@@ -1,2 +1,2 @@
-WrongVersion.java:12:9: compiler.err.feature.not.supported.in.source.plural: (compiler.misc.feature.repeatable.annotations), 7, 8
+WrongVersion.java:11:9: compiler.err.feature.not.supported.in.source.plural: (compiler.misc.feature.repeatable.annotations), 7, 8
 1 error
--- a/test/langtools/tools/javac/annotations/typeAnnotations/failures/AnnotationVersion.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/annotations/typeAnnotations/failures/AnnotationVersion.java	Mon Jul 16 12:11:02 2018 +0100
@@ -4,7 +4,6 @@
  * @summary test that only Java 8 allows type annotations
  * @author Mahmood Ali
  * @compile AnnotationVersion.java
- * @compile/fail/ref=AnnotationVersion.out -XDrawDiagnostics -Xlint:-options -source 1.6 AnnotationVersion.java
  * @compile/fail/ref=AnnotationVersion7.out -XDrawDiagnostics -Xlint:-options -source 1.7 AnnotationVersion.java
  */
 import java.lang.annotation.*;
--- a/test/langtools/tools/javac/annotations/typeAnnotations/failures/AnnotationVersion.out	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-AnnotationVersion.java:12:27: compiler.err.feature.not.supported.in.source.plural: (compiler.misc.feature.type.annotations), 6, 8
-1 error
--- a/test/langtools/tools/javac/annotations/typeAnnotations/failures/AnnotationVersion7.out	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/annotations/typeAnnotations/failures/AnnotationVersion7.out	Mon Jul 16 12:11:02 2018 +0100
@@ -1,2 +1,2 @@
-AnnotationVersion.java:12:27: compiler.err.feature.not.supported.in.source.plural: (compiler.misc.feature.type.annotations), 7, 8
+AnnotationVersion.java:11:27: compiler.err.feature.not.supported.in.source.plural: (compiler.misc.feature.type.annotations), 7, 8
 1 error
--- a/test/langtools/tools/javac/classfiles/ClassVersionChecker.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/classfiles/ClassVersionChecker.java	Mon Jul 16 12:11:02 2018 +0100
@@ -35,10 +35,40 @@
 import java.util.*;
 import java.util.regex.*;
 
+/*
+ * If not explicitly specified the latest source and latest target
+ * values are the defaults. If explicitly specified, the target value
+ * has to be greater than or equal to the source value.
+ */
 public class ClassVersionChecker {
+    private static enum Version {
+        SEVEN("7", 51),
+        EIGHT("8", 52),
+        NINE("9", 53),
+        TEN("10", 54),
+        ELEVEN("11", 55),
+        TWELVE("12", 56);
+
+        private Version(String release, int classFileVer) {
+            this.release = release;
+            this.classFileVer = classFileVer;
+        }
+        private final String release;
+        private final int classFileVer;
+
+        String release() {return release;}
+        int classFileVer() {return classFileVer;}
+    }
+
+    static final Version CURRENT;
+    static {
+        Version[] versions = Version.values();
+        int index = versions.length;
+        CURRENT = versions[index - 1];
+    }
 
     int errors;
-    String[] jdk = {"", "1.6", "1.7", "1.8", "1.9", "1.10", "11", "12"};
+
     File javaFile = null;
 
     public static void main(String[] args) throws Throwable {
@@ -47,31 +77,23 @@
 
     void run() throws Exception {
         writeTestFile();
-        /* Rules applicable for -source and -target combinations
+        /*
+         * Rules applicable for -source and -target combinations:
          * 1. If both empty, version num is for the current release
-         * 2. If source is not empty and target is empty, version is based on source
+         * 2. If source is not empty and target is empty, version is
+         * based on the current release
          * 3. If both non-empty, version is based on target
          */
-
-        /* -source (0=>empty,1=>1.2,...) X -target (0=>empty,1=>1.2,...)
-         * ver[0][0] => no -source or -target was given
-         * -1 => invalid combinations
-         */
-        int[][] ver =
-            {{56, -1, -1, -1, -1, -1, -1, -1},
-             {56, 50, 51, 52, 53, 54, 55, 56},
-             {56, -1, 51, 52, 53, 54, 55, 56},
-             {56, -1, -1, 52, 53, 54, 55, 56},
-             {56, -1, -1, -1, 53, 54, 55, 56},
-             {56, -1, -1, -1, -1, 54, 55, 56}};
-
-        // Loop to run all possible combinations of source/target values
-        for (int i = 0; i< ver.length; i++) {
-            for (int j = 0 ; j< ver[i].length; j++) {
-                if(ver[i][j] != -1) {
-                    logMsg("Index values for i = " + i + " j = " + j);
-                    logMsg("Running for src = " + jdk[i] + " target = "+jdk[j] +" expected = " + ver[i][j]);
-                    test(i,j, ver[i][j]);
+        test("", "", CURRENT.classFileVer());
+        for (Version source : Version.values()) {
+            test(source.release(), "", CURRENT.classFileVer()); // no target
+            for (Version target : Version.values()) {
+                if (target.compareTo(source) < 0)
+                    continue; // Target < source not a valid set of arguments
+                else {
+                    logMsg("Running for src = " + source + " target = "+ target +
+                           " expected = " + target.classFileVer());
+                    test(source.release(), target.release(), target.classFileVer());
                 }
             }
         }
@@ -80,7 +102,7 @@
             throw new Exception(errors + " errors found");
     }
 
-    void test (int i, int j, int expected) {
+    void test(String i, String j, int expected) {
         File classFile = compileTestFile(i, j, javaFile);
         short majorVer = getMajorVersion(classFile);
         checkVersion(majorVer, expected);
@@ -97,15 +119,15 @@
         }
     }
 
-    File compileTestFile(int i , int j, File f) {
+    File compileTestFile(String i, String j, File f) {
         int rc = -1;
         // Src and target are empty
-        if (i == 0 && j == 0 ) {
+        if (i.isEmpty() && j.isEmpty() ) {
             rc = compile("-g", f.getPath());
-        } else if( j == 0 ) {  // target is empty
-            rc = compile("-source", jdk[i], "-g", f.getPath());
+        } else if( j.isEmpty()) {  // target is empty
+            rc = compile("-source", i, "-g", f.getPath());
         } else {
-            rc = compile("-source", jdk[i], "-target", jdk[j], "-g", f.getPath());
+            rc = compile("-source", i, "-target", j, "-g", f.getPath());
         }
         if (rc != 0)
             throw new Error("compilation failed. rc=" + rc);
--- a/test/langtools/tools/javac/conditional/Conditional.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/conditional/Conditional.java	Mon Jul 16 12:11:02 2018 +0100
@@ -5,7 +5,7 @@
  * @author Tim Hanson, BEA
  *
  * @compile Conditional.java
- * @compile/fail/ref=Conditional.out -XDrawDiagnostics  -source 7 Conditional.java
+ * @compile/fail/ref=Conditional.out -XDrawDiagnostics -source 7 -Xlint:-options Conditional.java
  */
 
 import java.util.*;
--- a/test/langtools/tools/javac/conditional/Conditional.out	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/conditional/Conditional.out	Mon Jul 16 12:11:02 2018 +0100
@@ -1,4 +1,2 @@
-- compiler.warn.source.no.bootclasspath: 7
 Conditional.java:16:38: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: java.util.List<? extends java.lang.Object>, java.util.List<java.lang.String>)
 1 error
-1 warning
--- a/test/langtools/tools/javac/defaultMethods/static/StaticInvokeQualified.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/defaultMethods/static/StaticInvokeQualified.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,9 +1,8 @@
 /* @test /nodynamiccopyright/
  * @bug 8037385
  * @summary Must not allow static interface method invocation in legacy code
- * @compile -source 8 -Xlint:-options StaticInvokeQualified.java
+ * @compile -Xlint:-options StaticInvokeQualified.java
  * @compile/fail/ref=StaticInvokeQualified7.out -source 7 -Xlint:-options -XDrawDiagnostics StaticInvokeQualified.java
- * @compile/fail/ref=StaticInvokeQualified6.out -source 6 -Xlint:-options -XDrawDiagnostics StaticInvokeQualified.java
  */
 
 class StaticInvokeQualified {
--- a/test/langtools/tools/javac/defaultMethods/static/StaticInvokeQualified6.out	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-StaticInvokeQualified.java:11:32: compiler.err.feature.not.supported.in.source.plural: (compiler.misc.feature.static.intf.method.invoke), 6, 8
-1 error
--- a/test/langtools/tools/javac/defaultMethods/static/StaticInvokeQualified7.out	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/defaultMethods/static/StaticInvokeQualified7.out	Mon Jul 16 12:11:02 2018 +0100
@@ -1,2 +1,2 @@
-StaticInvokeQualified.java:11:32: compiler.err.feature.not.supported.in.source.plural: (compiler.misc.feature.static.intf.method.invoke), 7, 8
+StaticInvokeQualified.java:10:32: compiler.err.feature.not.supported.in.source.plural: (compiler.misc.feature.static.intf.method.invoke), 7, 8
 1 error
--- a/test/langtools/tools/javac/defaultMethods/static/StaticInvokeSimple.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/defaultMethods/static/StaticInvokeSimple.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,9 +1,8 @@
 /* @test /nodynamiccopyright/
  * @bug 8037385
  * @summary Must not allow static interface method invocation in legacy code
- * @compile -source 8 -Xlint:-options StaticInvokeSimple.java
+ * @compile -Xlint:-options StaticInvokeSimple.java
  * @compile/fail/ref=StaticInvokeSimple7.out -source 7 -Xlint:-options -XDrawDiagnostics StaticInvokeSimple.java
- * @compile/fail/ref=StaticInvokeSimple6.out -source 6 -Xlint:-options -XDrawDiagnostics StaticInvokeSimple.java
  */
 import java.util.stream.Stream;
 
--- a/test/langtools/tools/javac/defaultMethods/static/StaticInvokeSimple6.out	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-StaticInvokeSimple.java:12:15: compiler.err.feature.not.supported.in.source.plural: (compiler.misc.feature.static.intf.method.invoke), 6, 8
-1 error
--- a/test/langtools/tools/javac/defaultMethods/static/StaticInvokeSimple7.out	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/defaultMethods/static/StaticInvokeSimple7.out	Mon Jul 16 12:11:02 2018 +0100
@@ -1,2 +1,2 @@
-StaticInvokeSimple.java:12:15: compiler.err.feature.not.supported.in.source.plural: (compiler.misc.feature.static.intf.method.invoke), 7, 8
+StaticInvokeSimple.java:11:15: compiler.err.feature.not.supported.in.source.plural: (compiler.misc.feature.static.intf.method.invoke), 7, 8
 1 error
--- a/test/langtools/tools/javac/defaultMethodsVisibility/DefaultMethodsNotVisibleForSourceLessThan8Test.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/defaultMethodsVisibility/DefaultMethodsNotVisibleForSourceLessThan8Test.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -107,7 +107,6 @@
 
     public static void main(String[] args) throws Exception {
         String[] sources = new String[] {
-            "1.6",
             "1.7",
         };
         for (String source : sources) {
--- a/test/langtools/tools/javac/diags/examples.not-yet.txt	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/diags/examples.not-yet.txt	Mon Jul 16 12:11:02 2018 +0100
@@ -52,7 +52,7 @@
 compiler.misc.bad.enclosing.method                      # bad class file
 compiler.misc.bad.runtime.invisible.param.annotations   # bad class file
 compiler.misc.bad.signature                             # bad class file
-compiler.misc.bad.requires.flag				# bad class file
+compiler.misc.bad.requires.flag                         # bad class file
 compiler.misc.bad.type.annotation.value
 compiler.misc.base.membership                           # UNUSED
 compiler.misc.class.file.not.found                      # ClassReader
@@ -61,7 +61,7 @@
 compiler.misc.fatal.err.cant.locate.ctor                # Resolve, from Lower
 compiler.misc.fatal.err.cant.locate.field               # Resolve, from Lower
 compiler.misc.fatal.err.cant.locate.meth                # Resolve, from Lower
-compiler.misc.fatal.err.cant.close	                # JavaCompiler
+compiler.misc.fatal.err.cant.close                      # JavaCompiler
 compiler.misc.feature.not.supported.in.source.plural    # cannot happen (for now)
 compiler.misc.file.does.not.contain.package
 compiler.misc.illegal.start.of.class.file
@@ -153,6 +153,7 @@
 compiler.misc.locn.system_modules                             # fragment uninteresting in and of itself
 compiler.misc.locn.upgrade_module_path                        # fragment uninteresting in and of itself
 compiler.misc.inferred.do.not.conform.to.eq.bounds            # hard to generate, could probably be removed
+compiler.err.feature.not.supported.in.source                  # Generated for using diamond before source 7
 
 # The following are new module-related messages, that need new  examples to be created
 compiler.err.duplicate.module.on.path
@@ -190,4 +191,4 @@
 compiler.warn.source.target.conflict
 compiler.warn.target.default.source.conflict
 compiler.err.preview.not.latest
-compiler.err.preview.without.source.or.release
\ No newline at end of file
+compiler.err.preview.without.source.or.release
--- a/test/langtools/tools/javac/diags/examples/AnnotationsAfterTypeParamsNotSupportedInSource.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/diags/examples/AnnotationsAfterTypeParamsNotSupportedInSource.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,8 +23,7 @@
 
 // key: compiler.err.feature.not.supported.in.source.plural
 // key: compiler.misc.feature.annotations.after.type.params
-// key: compiler.warn.source.no.bootclasspath
-// options: -source 7
+// options: -source 7 -Xlint:-options
 
 @interface Anno { }
 
--- a/test/langtools/tools/javac/diags/examples/DiamondNotSupported.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/diags/examples/DiamondNotSupported.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -21,14 +21,15 @@
  * questions.
  */
 
-// key: compiler.err.feature.not.supported.in.source
-// key: compiler.misc.feature.diamond
-// options: -source 6 -Xlint:-options
+// key: compiler.misc.feature.not.supported.in.source
+// key: compiler.misc.feature.diamond.and.anon.class
+// key: compiler.err.cant.apply.diamond.1
+// options: -source 8 -Xlint:-options
 
 import java.util.*;
 
 class DiamondNotSupported {
     void m() {
-        List<String> list = new ArrayList<>();
+        List<String> list = new ArrayList<>(){};
     }
 }
--- a/test/langtools/tools/javac/diags/examples/MethodInvokedWithWrongNumberOfArgs.java	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-/*
- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * 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.
- */
-
-// key: compiler.err.bad.target.sigpoly.call
-// options: -Xlint:-options -source 6 -target 6
-
-class MethodInvokedWithWrongNumberOfArgs {
-    static java.lang.invoke.MethodHandle getNamedMember;
-    public static Object getMember(String name, Object rec) throws Throwable {
-        return getNamedMember.invoke(rec, name);
-    }
-}
--- a/test/langtools/tools/javac/diags/examples/MulticatchNotSupported.java	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-/*
- * Copyright (c) 2010, 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.
- */
-
-// key: compiler.err.feature.not.supported.in.source.plural
-// key: compiler.misc.feature.multicatch
-// options: -source 1.6 -Xlint:-options
-
-class MulticatchNotSupported {
-    class E1 extends Exception { }
-    class E2 extends Exception { }
-
-    void e1() throws E1 { }
-    void e2() throws E2 { }
-
-    void m() {
-        try {
-            e1();
-            e2();
-        } catch (final E1 | E2 e) {
-            e.printStackTrace();
-        }
-    }
-}
--- a/test/langtools/tools/javac/diags/examples/ObsoleteSourceAndTarget.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/diags/examples/ObsoleteSourceAndTarget.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,7 +25,7 @@
 // key: compiler.warn.option.obsolete.target
 // key: compiler.warn.option.obsolete.suppression
 // key: compiler.warn.source.no.bootclasspath
-// options: -source 1.6 -target 1.6
+// options: -source 1.7 -target 1.7
 
 class ObsoleteSourceAndTarget {
     public static void foo() {;}
--- a/test/langtools/tools/javac/diags/examples/ParametersUnsupported.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/diags/examples/ParametersUnsupported.java	Mon Jul 16 12:11:02 2018 +0100
@@ -22,6 +22,9 @@
  */
 
 // key: compiler.warn.option.parameters.unsupported
+// key: compiler.warn.option.obsolete.source
+// key: compiler.warn.option.obsolete.suppression
+// key: compiler.warn.option.obsolete.target
 // options: -parameters --release 7
 
 class ParametersUnsupported {
--- a/test/langtools/tools/javac/diags/examples/RepeatableAnnotationsNotSupported.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/diags/examples/RepeatableAnnotationsNotSupported.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,8 +23,7 @@
 
 // key: compiler.err.feature.not.supported.in.source.plural
 // key: compiler.misc.feature.repeatable.annotations
-// key: compiler.warn.source.no.bootclasspath
-// options: -source 7
+// options: -source 7 -Xlint:-options
 
 @interface Anno { }
 
--- a/test/langtools/tools/javac/diags/examples/SourceNoBootclasspath.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/diags/examples/SourceNoBootclasspath.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -22,6 +22,6 @@
  */
 
 // key: compiler.warn.source.no.bootclasspath
-// options: -source 7
+// options: -source 8
 
 class SourceNoBootclasspath { }
--- a/test/langtools/tools/javac/diags/examples/StringSwitchNotSupported.java	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2010, 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.
- */
-
-// key: compiler.err.feature.not.supported.in.source.plural
-// key: compiler.misc.feature.string.switch
-// options: -source 6 -Xlint:-options
-
-class StringSwitchNotSupported {
-    int m(String s) {
-        switch (s) {
-            case "one": return 1;
-            case "two": return 2;
-            default:    return -1;
-        }
-    }
-}
--- a/test/langtools/tools/javac/diags/examples/TryResourceNotSupported.java	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2010, 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.
- */
-
-// key: compiler.err.feature.not.supported.in.source
-// key: compiler.misc.feature.try.with.resources
-// options: -source 1.6 -Xlint:-options
-
-import java.io.*;
-
-class TryResourceNotSupported {
-    void m() {
-        try (Writer out = new StringWriter()) {
-            out.println("Hello World");
-        }
-    }
-}
--- a/test/langtools/tools/javac/diags/examples/TryWithoutCatchOrFinally.java	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-/*
- * Copyright (c) 2010, 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.
- */
-
-// key: compiler.err.try.without.catch.or.finally
-// options: -source 1.6 -Xlint:-options
-
-class TryWithoutCatchOrFinally {
-    void m() {
-        try {
-        }
-    }
-}
--- a/test/langtools/tools/javac/diags/examples/TypeAnnotationsNotSupported.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/diags/examples/TypeAnnotationsNotSupported.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,8 +23,7 @@
 
 // key: compiler.err.feature.not.supported.in.source.plural
 // key: compiler.misc.feature.type.annotations
-// key: compiler.warn.source.no.bootclasspath
-// options: -source 7
+// options: -source 7 -Xlint:-options
 
 @interface Anno { }
 
--- a/test/langtools/tools/javac/diags/examples/UnsupportedBinaryLiteral.java	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/*
- * Copyright (c) 2010, 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.
- */
-
-// key: compiler.err.feature.not.supported.in.source.plural
-// key: compiler.misc.feature.binary.lit
-// options: -source 6 -Xlint:-options
-
-class UnsupportedBinaryLiteral {
-    int i = 0b01000010;
-}
--- a/test/langtools/tools/javac/diags/examples/UnsupportedUnderscoreLiteral.java	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/*
- * Copyright (c) 2010, 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.
- */
-
-// key: compiler.err.feature.not.supported.in.source.plural
-// key: compiler.misc.feature.underscore.lit
-// options: -source 6 -Xlint:-options
-
-class UnsupportedUnderscoreLiteral {
-    int i = 123_456_789;
-}
--- a/test/langtools/tools/javac/generics/inference/6278587/T6278587Neg.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/generics/inference/6278587/T6278587Neg.java	Mon Jul 16 12:11:02 2018 +0100
@@ -3,7 +3,7 @@
  * @bug     6278587 8007464
  * @summary Inference broken for subtypes of subtypes of F-bounded types
  * @author  Peter von der Ah\u00e9
- * @compile/fail/ref=T6278587Neg.out -XDrawDiagnostics -source 7 T6278587Neg.java
+ * @compile/fail/ref=T6278587Neg.out -XDrawDiagnostics -source 7 -Xlint:-options T6278587Neg.java
  * @compile T6278587Neg.java
  */
 
--- a/test/langtools/tools/javac/generics/inference/6278587/T6278587Neg.out	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/generics/inference/6278587/T6278587Neg.out	Mon Jul 16 12:11:02 2018 +0100
@@ -1,4 +1,2 @@
-- compiler.warn.source.no.bootclasspath: 7
 T6278587Neg.java:18:10: compiler.err.prob.found.req: (compiler.misc.inferred.do.not.conform.to.lower.bounds: T, T6278587Neg.C)
 1 error
-1 warning
--- a/test/langtools/tools/javac/generics/odersky/BadTest4.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/generics/odersky/BadTest4.java	Mon Jul 16 12:11:02 2018 +0100
@@ -4,7 +4,7 @@
  * @summary Negative regression test from odersky
  * @author odersky
  *
- * @compile/fail/ref=BadTest4.out -XDrawDiagnostics -source 7 BadTest4.java
+ * @compile/fail/ref=BadTest4.out -XDrawDiagnostics -source 7 -Xlint:-options BadTest4.java
  * @compile BadTest4.java
  */
 
--- a/test/langtools/tools/javac/generics/odersky/BadTest4.out	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/generics/odersky/BadTest4.out	Mon Jul 16 12:11:02 2018 +0100
@@ -1,4 +1,2 @@
-- compiler.warn.source.no.bootclasspath: 7
 BadTest4.java:38:17: compiler.err.cant.apply.symbol: kindname.method, f, A,B, java.lang.Integer,java.lang.Number, kindname.class, BadTest4.Main, (compiler.misc.inferred.do.not.conform.to.upper.bounds: java.lang.Number, java.lang.Integer)
 1 error
-1 warning
--- a/test/langtools/tools/javac/lambda/SourceLevelTest.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/lambda/SourceLevelTest.java	Mon Jul 16 12:11:02 2018 +0100
@@ -3,7 +3,7 @@
  * @bug 8003280
  * @summary Add lambda tests
  *  check that lambda features are not enabled with source < 8
- * @compile/fail/ref=SourceLevelTest.out -XDrawDiagnostics -source 7 SourceLevelTest.java
+ * @compile/fail/ref=SourceLevelTest.out -XDrawDiagnostics -source 7 -Xlint:-options SourceLevelTest.java
  */
 
 class SourceLevelTest {
--- a/test/langtools/tools/javac/lambda/SourceLevelTest.out	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/lambda/SourceLevelTest.out	Mon Jul 16 12:11:02 2018 +0100
@@ -1,6 +1,4 @@
-- compiler.warn.source.no.bootclasspath: 7
 SourceLevelTest.java:11:9: compiler.err.feature.not.supported.in.source.plural: (compiler.misc.feature.default.methods), 7, 8
 SourceLevelTest.java:18:17: compiler.err.feature.not.supported.in.source.plural: (compiler.misc.feature.lambda), 7, 8
 SourceLevelTest.java:19:20: compiler.err.feature.not.supported.in.source.plural: (compiler.misc.feature.method.references), 7, 8
 3 errors
-1 warning
--- a/test/langtools/tools/javac/literals/BadBinaryLiterals.6.out	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-BadBinaryLiterals.java:10:17: compiler.err.feature.not.supported.in.source.plural: (compiler.misc.feature.binary.lit), 6, 7
-BadBinaryLiterals.java:11:24: compiler.err.expected: ';'
-BadBinaryLiterals.java:16:27: compiler.err.expected: ';'
-BadBinaryLiterals.java:17:27: compiler.err.expected: ';'
-BadBinaryLiterals.java:17:30: compiler.err.expected: token.identifier
-5 errors
--- a/test/langtools/tools/javac/literals/BadBinaryLiterals.7.out	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/literals/BadBinaryLiterals.7.out	Mon Jul 16 12:11:02 2018 +0100
@@ -1,7 +1,7 @@
-BadBinaryLiterals.java:11:24: compiler.err.expected: ';'
-BadBinaryLiterals.java:13:21: compiler.err.int.number.too.large: 111111111111111111111111111111111
-BadBinaryLiterals.java:15:21: compiler.err.int.number.too.large: 11111111111111111111111111111111111111111111111111111111111111111
+BadBinaryLiterals.java:10:24: compiler.err.expected: ';'
+BadBinaryLiterals.java:12:21: compiler.err.int.number.too.large: 111111111111111111111111111111111
+BadBinaryLiterals.java:14:21: compiler.err.int.number.too.large: 11111111111111111111111111111111111111111111111111111111111111111
+BadBinaryLiterals.java:15:27: compiler.err.expected: ';'
 BadBinaryLiterals.java:16:27: compiler.err.expected: ';'
-BadBinaryLiterals.java:17:27: compiler.err.expected: ';'
-BadBinaryLiterals.java:17:30: compiler.err.expected: token.identifier
+BadBinaryLiterals.java:16:30: compiler.err.expected: token.identifier
 6 errors
--- a/test/langtools/tools/javac/literals/BadBinaryLiterals.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/literals/BadBinaryLiterals.java	Mon Jul 16 12:11:02 2018 +0100
@@ -2,7 +2,6 @@
  * @test /nodynamiccopyright/
  * @bug 6860965
  * @summary Project Coin: binary literals
- * @compile/fail/ref=BadBinaryLiterals.6.out -XDrawDiagnostics -source 6 -Xlint:-options BadBinaryLiterals.java
  * @compile/fail/ref=BadBinaryLiterals.7.out -XDrawDiagnostics BadBinaryLiterals.java
  */
 
--- a/test/langtools/tools/javac/literals/BadUnderscoreLiterals.6.out	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-BadUnderscoreLiterals.java:11:17: compiler.err.feature.not.supported.in.source.plural: (compiler.misc.feature.underscore.lit), 6, 7
-BadUnderscoreLiterals.java:15:15: compiler.err.illegal.underscore
-BadUnderscoreLiterals.java:19:19: compiler.err.illegal.underscore
-BadUnderscoreLiterals.java:22:14: compiler.err.feature.not.supported.in.source.plural: (compiler.misc.feature.binary.lit), 6, 7
-BadUnderscoreLiterals.java:22:16: compiler.err.illegal.underscore
-BadUnderscoreLiterals.java:23:17: compiler.err.illegal.underscore
-BadUnderscoreLiterals.java:26:16: compiler.err.illegal.underscore
-BadUnderscoreLiterals.java:27:17: compiler.err.illegal.underscore
-BadUnderscoreLiterals.java:30:17: compiler.err.illegal.underscore
-BadUnderscoreLiterals.java:31:18: compiler.err.illegal.underscore
-BadUnderscoreLiterals.java:32:19: compiler.err.illegal.underscore
-BadUnderscoreLiterals.java:33:19: compiler.err.illegal.underscore
-BadUnderscoreLiterals.java:34:18: compiler.err.illegal.underscore
-BadUnderscoreLiterals.java:35:19: compiler.err.illegal.underscore
-BadUnderscoreLiterals.java:38:19: compiler.err.illegal.underscore
-BadUnderscoreLiterals.java:39:20: compiler.err.illegal.underscore
-BadUnderscoreLiterals.java:40:21: compiler.err.illegal.underscore
-BadUnderscoreLiterals.java:41:22: compiler.err.illegal.underscore
-BadUnderscoreLiterals.java:42:21: compiler.err.illegal.underscore
-BadUnderscoreLiterals.java:43:22: compiler.err.illegal.underscore
-20 errors
--- a/test/langtools/tools/javac/literals/BadUnderscoreLiterals.7.out	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/literals/BadUnderscoreLiterals.7.out	Mon Jul 16 12:11:02 2018 +0100
@@ -1,19 +1,19 @@
-BadUnderscoreLiterals.java:15:15: compiler.err.illegal.underscore
-BadUnderscoreLiterals.java:19:19: compiler.err.illegal.underscore
-BadUnderscoreLiterals.java:22:16: compiler.err.illegal.underscore
-BadUnderscoreLiterals.java:23:17: compiler.err.illegal.underscore
-BadUnderscoreLiterals.java:26:16: compiler.err.illegal.underscore
-BadUnderscoreLiterals.java:27:17: compiler.err.illegal.underscore
-BadUnderscoreLiterals.java:30:17: compiler.err.illegal.underscore
-BadUnderscoreLiterals.java:31:18: compiler.err.illegal.underscore
+BadUnderscoreLiterals.java:14:15: compiler.err.illegal.underscore
+BadUnderscoreLiterals.java:18:19: compiler.err.illegal.underscore
+BadUnderscoreLiterals.java:21:16: compiler.err.illegal.underscore
+BadUnderscoreLiterals.java:22:17: compiler.err.illegal.underscore
+BadUnderscoreLiterals.java:25:16: compiler.err.illegal.underscore
+BadUnderscoreLiterals.java:26:17: compiler.err.illegal.underscore
+BadUnderscoreLiterals.java:29:17: compiler.err.illegal.underscore
+BadUnderscoreLiterals.java:30:18: compiler.err.illegal.underscore
+BadUnderscoreLiterals.java:31:19: compiler.err.illegal.underscore
 BadUnderscoreLiterals.java:32:19: compiler.err.illegal.underscore
-BadUnderscoreLiterals.java:33:19: compiler.err.illegal.underscore
-BadUnderscoreLiterals.java:34:18: compiler.err.illegal.underscore
-BadUnderscoreLiterals.java:35:19: compiler.err.illegal.underscore
-BadUnderscoreLiterals.java:38:19: compiler.err.illegal.underscore
-BadUnderscoreLiterals.java:39:20: compiler.err.illegal.underscore
-BadUnderscoreLiterals.java:40:21: compiler.err.illegal.underscore
-BadUnderscoreLiterals.java:41:22: compiler.err.illegal.underscore
-BadUnderscoreLiterals.java:42:21: compiler.err.illegal.underscore
-BadUnderscoreLiterals.java:43:22: compiler.err.illegal.underscore
+BadUnderscoreLiterals.java:33:18: compiler.err.illegal.underscore
+BadUnderscoreLiterals.java:34:19: compiler.err.illegal.underscore
+BadUnderscoreLiterals.java:37:19: compiler.err.illegal.underscore
+BadUnderscoreLiterals.java:38:20: compiler.err.illegal.underscore
+BadUnderscoreLiterals.java:39:21: compiler.err.illegal.underscore
+BadUnderscoreLiterals.java:40:22: compiler.err.illegal.underscore
+BadUnderscoreLiterals.java:41:21: compiler.err.illegal.underscore
+BadUnderscoreLiterals.java:42:22: compiler.err.illegal.underscore
 18 errors
--- a/test/langtools/tools/javac/literals/BadUnderscoreLiterals.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/literals/BadUnderscoreLiterals.java	Mon Jul 16 12:11:02 2018 +0100
@@ -4,11 +4,10 @@
  * @summary Project Coin: underscores in literals
  *
  * @compile/fail/ref=BadUnderscoreLiterals.7.out -XDrawDiagnostics BadUnderscoreLiterals.java
- * @compile/fail/ref=BadUnderscoreLiterals.6.out -XDrawDiagnostics -source 6 -Xlint:-options BadUnderscoreLiterals.java
  */
 
 public class BadUnderscoreLiterals {
-    int valid = 1_1;            // valid literal; illegal in -source 6
+    int valid = 1_1;            // valid literal
 
     // test zero
     int z1 = _0;                // valid (but undefined) variable
--- a/test/langtools/tools/javac/mixedTarget/ExtendCovariant2.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/mixedTarget/ExtendCovariant2.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,7 +27,6 @@
  * @summary Ensure Covariant Return Type allowed in minimum supported version
  * @author gafter
  *
- * @compile -source 1.6 ExtendCovariant2.java
  * @compile                  ExtendCovariant2.java
  */
 
@@ -40,7 +39,7 @@
  *
  * With JDK 1.5, a Covariant Return is allowed so check that is the case.
  *
- **/
+ */
 public class ExtendCovariant2 extends java.io.PrintStream {
     ExtendCovariant2() throws java.io.IOException {
         super("");
--- a/test/langtools/tools/javac/modules/AddLimitMods.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/modules/AddLimitMods.java	Mon Jul 16 12:11:02 2018 +0100
@@ -264,7 +264,7 @@
                    .writeAll()
                    .getOutputLines(Task.OutputKind.DIRECT);
 
-        if (!actual.contains("- compiler.err.option.not.allowed.with.target: --add-modules, 1.8")) {
+        if (!actual.contains("- compiler.err.option.not.allowed.with.target: --add-modules, 8")) {
             throw new IllegalStateException("incorrect errors; actual=" + actual);
         }
 
--- a/test/langtools/tools/javac/modules/AnnotationProcessing.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/modules/AnnotationProcessing.java	Mon Jul 16 12:11:02 2018 +0100
@@ -95,6 +95,7 @@
 public class AnnotationProcessing extends ModuleTestBase {
 
     public static void main(String... args) throws Exception {
+        System.out.println(System.getProperties());
         new AnnotationProcessing().runTests();
     }
 
@@ -568,7 +569,7 @@
                             "--module-source-path", moduleSrc.toString());
                 assertFileExists(classes, "m1x", "api1", "Impl.class");
 
-                deleteFile(m1.resolve("test").resolve("Test.java"));
+                tb.deleteFiles(m1.resolve("test").resolve("Test.java"));
 
                 //resource class output:
                 runCompiler(base,
@@ -623,7 +624,7 @@
             assertFileExists(classes, "m1x", pack, "Pass.class");
             assertFileNotExists(classes, "m2x", pack, "Pass.class");
 
-            deleteFile(m1.resolve("test").resolve("Test.java"));
+            tb.deleteFiles(m1.resolve("test").resolve("Test.java"));
 
             runCompiler(base,
                         moduleSrc,
@@ -694,36 +695,6 @@
         }
     }
 
-    private void deleteFile(Path file) throws IOException {
-        long startTime = System.currentTimeMillis();
-
-        do {
-            Files.delete(file);
-            if (!Files.exists(file)) {
-                return;
-            }
-            System.err.println("!! File not deleted !!");
-            System.gc(); // allow finalizers and cleaners to run
-            try {
-                Thread.sleep(RETRY_DELETE_MILLIS);
-            } catch (InterruptedException e) {
-                throw new IOException("Interrupted while deleting " + file, e);
-            }
-        } while ((System.currentTimeMillis() - startTime) <= MAX_RETRY_DELETE_MILLIS);
-
-        throw new IOException("Can't delete " + file);
-    }
-
-
-    private static final int RETRY_DELETE_MILLIS;
-    private static final int MAX_RETRY_DELETE_MILLIS;
-
-    static {
-        boolean isWindows = System.getProperty("os.name").startsWith("Windows");
-        RETRY_DELETE_MILLIS = isWindows ? 500 : 0;
-        MAX_RETRY_DELETE_MILLIS = isWindows ? 15 * 1000 : 0;
-    }
-
     public static abstract class GeneratingAP extends AbstractProcessor {
 
         public void createSource(CreateFileObject file, String name, String content) {
@@ -872,7 +843,7 @@
                                 options);
                     assertFileExists(classes, modulePath, "impl", "Impl.class");
 
-                    deleteFile(m1.resolve("test").resolve("Test.java"));
+                    tb.deleteFiles(m1.resolve("test").resolve("Test.java"));
 
                     //resource class output:
                     runCompiler(base,
@@ -899,7 +870,7 @@
                     "expectFilerException(() -> filer.getResource(StandardLocation.SOURCE_PATH, \"m1x/impl\", \"resource\"))",
                     "-sourcepath", m1.toString());
 
-        deleteFile(m1.resolve("impl").resolve("resource"));
+        tb.deleteFiles(m1.resolve("impl").resolve("resource"));
 
         //can read resources from the system module path if module name given:
         runCompiler(base,
@@ -960,7 +931,7 @@
                         "-sourcepath", m1.toString());
         }
 
-        deleteFile(m1.resolve("module-info.java"));
+        tb.deleteFiles(m1.resolve("module-info.java"));
         tb.writeJavaFiles(m1,
                           "package test; class Test { }");
 
--- a/test/langtools/tools/javac/multicatch/Neg01.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/multicatch/Neg01.java	Mon Jul 16 12:11:02 2018 +0100
@@ -5,8 +5,6 @@
  * @summary Project Coin: Improved Exception Handling for Java (aka 'multicatch')
  * @author darcy
  * @compile/fail/ref=Neg01.out -XDrawDiagnostics Neg01.java
- * @compile -source 6 -XDrawDiagnostics Neg01.java
- *
  */
 
 class Neg01 {
--- a/test/langtools/tools/javac/multicatch/Neg01.out	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/multicatch/Neg01.out	Mon Jul 16 12:11:02 2018 +0100
@@ -1,2 +1,2 @@
-Neg01.java:24:19: compiler.err.except.never.thrown.in.try: Neg01.B2
+Neg01.java:22:19: compiler.err.except.never.thrown.in.try: Neg01.B2
 1 error
--- a/test/langtools/tools/javac/multicatch/Neg01eff_final.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/multicatch/Neg01eff_final.java	Mon Jul 16 12:11:02 2018 +0100
@@ -5,8 +5,6 @@
  * @summary Project Coin: Improved Exception Handling for Java (aka 'multicatch')
  * @author darcy
  * @compile/fail/ref=Neg01eff_final.out -XDrawDiagnostics Neg01eff_final.java
- * @compile -source 6 -XDrawDiagnostics Neg01eff_final.java
- *
  */
 
 class Neg01eff_final {
--- a/test/langtools/tools/javac/multicatch/Neg01eff_final.out	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/multicatch/Neg01eff_final.out	Mon Jul 16 12:11:02 2018 +0100
@@ -1,2 +1,2 @@
-Neg01eff_final.java:24:19: compiler.err.except.never.thrown.in.try: Neg01eff_final.B2
+Neg01eff_final.java:22:19: compiler.err.except.never.thrown.in.try: Neg01eff_final.B2
 1 error
--- a/test/langtools/tools/javac/options/modes/SourceTargetTest.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/options/modes/SourceTargetTest.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -71,7 +71,7 @@
 
         writeFile("C.java", "class C { }");
 
-        String[] opts = { "-source", "1.6", "-target", "1.6" };
+        String[] opts = { "-source", "1.7", "-target", "1.7" };
         String[] files = { "C.java" };
 
         runMain(opts, files)
--- a/test/langtools/tools/javac/options/release/ReleaseOption.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/options/release/ReleaseOption.java	Mon Jul 16 12:11:02 2018 +0100
@@ -3,7 +3,7 @@
  * @bug 8072480
  * @summary Verify that javac rejects Java 8 program with --release 7
  * @compile ReleaseOption.java
- * @compile/fail/ref=ReleaseOption-release7.out -XDrawDiagnostics --release 7 ReleaseOption.java
+ * @compile/fail/ref=ReleaseOption-release7.out -XDrawDiagnostics --release 7 -Xlint:-options ReleaseOption.java
  */
 
 interface ReleaseOption extends java.util.stream.Stream {
--- a/test/langtools/tools/javac/options/release/ReleaseOptionThroughAPI.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/options/release/ReleaseOptionThroughAPI.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -50,7 +50,7 @@
              PrintWriter outWriter = new PrintWriter(out)) {
             Iterable<? extends JavaFileObject> input =
                     fm.getJavaFileObjects(System.getProperty("test.src") + "/ReleaseOption.java");
-            List<String> options = Arrays.asList("--release", "7", "-XDrawDiagnostics");
+            List<String> options = Arrays.asList("--release", "7", "-XDrawDiagnostics", "-Xlint:-options");
 
             compiler.getTask(outWriter, fm, null, options, null, input).call();
             String expected =
--- a/test/langtools/tools/javac/processing/environment/TestSourceVersion.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/processing/environment/TestSourceVersion.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -31,14 +31,15 @@
  *          jdk.compiler
  * @build   JavacTestingAbstractProcessor
  * @compile TestSourceVersion.java
- * @compile -processor TestSourceVersion -proc:only -source 1.6 -AExpectedVersion=RELEASE_6 HelloWorld.java
- * @compile -processor TestSourceVersion -proc:only -source   6 -AExpectedVersion=RELEASE_6 HelloWorld.java
  * @compile -processor TestSourceVersion -proc:only -source 1.7 -AExpectedVersion=RELEASE_7 HelloWorld.java
  * @compile -processor TestSourceVersion -proc:only -source   7 -AExpectedVersion=RELEASE_7 HelloWorld.java
  * @compile -processor TestSourceVersion -proc:only -source 1.8 -AExpectedVersion=RELEASE_8 HelloWorld.java
  * @compile -processor TestSourceVersion -proc:only -source   8 -AExpectedVersion=RELEASE_8 HelloWorld.java
  * @compile -processor TestSourceVersion -proc:only -source 1.9 -AExpectedVersion=RELEASE_9 HelloWorld.java
  * @compile -processor TestSourceVersion -proc:only -source   9 -AExpectedVersion=RELEASE_9 HelloWorld.java
+ * @compile -processor TestSourceVersion -proc:only -source  10 -AExpectedVersion=RELEASE_10 HelloWorld.java
+ * @compile -processor TestSourceVersion -proc:only -source  11 -AExpectedVersion=RELEASE_11 HelloWorld.java
+ * @compile -processor TestSourceVersion -proc:only -source  12 -AExpectedVersion=RELEASE_12 HelloWorld.java
  */
 
 import java.util.Set;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/langtools/tools/javac/processing/rounds/GenerateAnonymousClass.java	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,95 @@
+/*
+ * Copyright (c) 2018, Google LLC. 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 8204630
+ * @summary generating an anonymous class with Filer#createClassFile causes an NPE in
+ * JavacProcessingEnvironment
+ * @library /tools/lib /tools/javac/lib/
+ * @modules jdk.compiler/com.sun.tools.javac.api
+ *          jdk.compiler/com.sun.tools.javac.main
+ *          jdk.compiler/com.sun.tools.javac.processing
+ *          jdk.compiler/com.sun.tools.javac.util
+ *          jdk.jdeps/com.sun.tools.javap
+ * @clean *
+ * @build toolbox.ToolBox toolbox.JavacTask
+ * @build GenerateAnonymousClass JavacTestingAbstractProcessor
+ * @compile/ref=GenerateAnonymousClass.out -XDaccessInternalAPI -processor GenerateAnonymousClass -XDrawDiagnostics GenerateAnonymousClass.java
+ */
+
+import com.sun.tools.javac.processing.JavacProcessingEnvironment;
+import com.sun.tools.javac.processing.PrintingProcessor.PrintingElementVisitor;
+import com.sun.tools.javac.util.Log;
+import com.sun.tools.javac.util.Log.WriterKind;
+import java.io.*;
+import java.util.*;
+import javax.annotation.processing.*;
+import javax.lang.model.element.*;
+import javax.tools.*;
+import toolbox.JavacTask;
+import toolbox.ToolBox;
+
+public class GenerateAnonymousClass extends JavacTestingAbstractProcessor {
+    int round = 1;
+
+    @Override
+    public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
+        Log log = Log.instance(((JavacProcessingEnvironment) processingEnv).getContext());
+        PrintWriter pw = log.getWriter(WriterKind.NOTICE);
+
+        pw.println("round: " + round);
+
+        TypeElement generatedClass = processingEnv.getElementUtils().getTypeElement("T");
+        if (generatedClass != null) {
+            new PrintingElementVisitor(pw, processingEnv.getElementUtils()).visit(generatedClass);
+            pw.flush();
+        }
+
+        if (round++ == 1) {
+            ToolBox tb = new ToolBox();
+            ToolBox.MemoryFileManager mfm = new ToolBox.MemoryFileManager();
+            new JavacTask(tb).fileManager(mfm).sources(GENERATED).run();
+
+            try (OutputStream out = filer.createClassFile("T").openOutputStream()) {
+                out.write(mfm.getFileBytes(StandardLocation.CLASS_OUTPUT, "T"));
+            } catch (IOException e) {
+                processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, e.toString());
+            }
+            try (OutputStream out = filer.createClassFile("T$1").openOutputStream()) {
+                out.write(mfm.getFileBytes(StandardLocation.CLASS_OUTPUT, "T$1"));
+            } catch (IOException e) {
+                processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, e.toString());
+            }
+        }
+
+        return false;
+    }
+
+    private static final String GENERATED =
+            "public class T {\n"
+                    + "    public void test() {\n"
+                    + "        new Object() {};\n"
+                    + "    }\n"
+                    + "}";
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/langtools/tools/javac/processing/rounds/GenerateAnonymousClass.out	Mon Jul 16 12:11:02 2018 +0100
@@ -0,0 +1,17 @@
+round: 1
+round: 2
+
+public class T {
+
+  public T();
+
+  public void test();
+}
+round: 3
+
+public class T {
+
+  public T();
+
+  public void test();
+}
--- a/test/langtools/tools/javac/processing/warnings/TestSourceVersionWarnings.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/processing/warnings/TestSourceVersionWarnings.java	Mon Jul 16 12:11:02 2018 +0100
@@ -29,13 +29,12 @@
  * @modules java.compiler
  *          jdk.compiler
  * @compile TestSourceVersionWarnings.java
- * @compile/ref=gold_0.out             -XDrawDiagnostics -processor TestSourceVersionWarnings -proc:only                           -source 1.6 -Xlint:-options HelloWorld.java
- * @compile/ref=gold_sv_warn_5_6.out   -XDrawDiagnostics -processor TestSourceVersionWarnings -proc:only -ASourceVersion=RELEASE_5 -source 1.6 -Xlint:-options HelloWorld.java
- * @compile/ref=gold_sv_none.out       -XDrawDiagnostics -processor TestSourceVersionWarnings -proc:only -ASourceVersion=RELEASE_6 -source 1.6 -Xlint:-options HelloWorld.java
- * @compile/ref=gold_unsp_warn.out     -XDrawDiagnostics -processor TestSourceVersionWarnings -proc:only -ASourceVersion=RELEASE_6 -source 1.6 -Xlint:-options -Aunsupported HelloWorld.java
- * @compile/ref=gold_sv_none.out       -XDrawDiagnostics -processor TestSourceVersionWarnings -proc:only -ASourceVersion=RELEASE_7 -source 1.7 -Xlint:-options HelloWorld.java
- * @compile/ref=gold_sv_none.out       -XDrawDiagnostics -processor TestSourceVersionWarnings -proc:only -ASourceVersion=RELEASE_8 -source 1.8 -Xlint:-options HelloWorld.java
- * @compile/ref=gold_sv_none.out       -XDrawDiagnostics -processor TestSourceVersionWarnings -proc:only -ASourceVersion=RELEASE_9 -source 1.9 -Xlint:-options HelloWorld.java
+ * @compile/ref=gold_0.out             -XDrawDiagnostics -processor TestSourceVersionWarnings -proc:only                            -source  8 -Xlint:-options HelloWorld.java
+ * @compile/ref=gold_sv_warn_5_6.out   -XDrawDiagnostics -processor TestSourceVersionWarnings -proc:only -ASourceVersion=RELEASE_5  -source  8 -Xlint:-options HelloWorld.java
+ * @compile/ref=gold_unsp_warn.out     -XDrawDiagnostics -processor TestSourceVersionWarnings -proc:only -ASourceVersion=RELEASE_8  -source  8 -Xlint:-options -Aunsupported HelloWorld.java
+ * @compile/ref=gold_sv_none.out       -XDrawDiagnostics -processor TestSourceVersionWarnings -proc:only -ASourceVersion=RELEASE_10 -source 10 -Xlint:-options HelloWorld.java
+ * @compile/ref=gold_sv_none.out       -XDrawDiagnostics -processor TestSourceVersionWarnings -proc:only -ASourceVersion=RELEASE_11 -source 11 -Xlint:-options HelloWorld.java
+ * @compile/ref=gold_sv_none.out       -XDrawDiagnostics -processor TestSourceVersionWarnings -proc:only -ASourceVersion=RELEASE_12 -source 12 -Xlint:-options HelloWorld.java
  */
 
 import java.util.Set;
@@ -64,7 +63,7 @@
         if (sourceVersion == null) {
             processingEnv.getMessager().printMessage(WARNING,
                                                      "No SourceVersion option given");
-            return SourceVersion.RELEASE_6;
+            return SourceVersion.RELEASE_8;
         } else {
             return SourceVersion.valueOf(sourceVersion);
         }
--- a/test/langtools/tools/javac/processing/warnings/gold_sv_warn_5_6.out	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/processing/warnings/gold_sv_warn_5_6.out	Mon Jul 16 12:11:02 2018 +0100
@@ -1,2 +1,2 @@
-- compiler.warn.proc.processor.incompatible.source.version: RELEASE_5, TestSourceVersionWarnings, 6
+- compiler.warn.proc.processor.incompatible.source.version: RELEASE_5, TestSourceVersionWarnings, 8
 1 warning
--- a/test/langtools/tools/javac/types/CastObjectToPrimitiveTest.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/types/CastObjectToPrimitiveTest.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,7 +25,6 @@
  * @test
  * @bug 7038363
  * @summary cast from object to primitive should be for source >= 1.7
- * @compile/fail/ref=CastObjectToPrimitiveTest.out -XDrawDiagnostics -Xlint:-options -source 6 CastObjectToPrimitiveTest.java
  * @compile CastObjectToPrimitiveTest.java
  */
 
--- a/test/langtools/tools/javac/types/CastObjectToPrimitiveTest.out	Tue Jul 03 14:12:49 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-CastObjectToPrimitiveTest.java:35:23: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: java.lang.Object, int)
-1 error
--- a/test/langtools/tools/javac/varargs/6313164/T6313164.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/varargs/6313164/T6313164.java	Mon Jul 16 12:11:02 2018 +0100
@@ -3,7 +3,7 @@
  * @bug     6313164 8036953
  * @author mcimadamore
  * @summary  javac generates code that fails byte code verification for the varargs feature
- * @compile/fail/ref=T6313164Source7.out -source 7 -XDrawDiagnostics T6313164.java
+ * @compile/fail/ref=T6313164Source7.out -source 7 -XDrawDiagnostics  -Xlint:-options T6313164.java
  * @compile/fail/ref=T6313164Source8AndHigher.out -XDrawDiagnostics T6313164.java
  */
 import p1.*;
--- a/test/langtools/tools/javac/varargs/6313164/T6313164Source7.out	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/varargs/6313164/T6313164Source7.out	Mon Jul 16 12:11:02 2018 +0100
@@ -1,6 +1,4 @@
-- compiler.warn.source.no.bootclasspath: 7
 T6313164.java:14:10: compiler.err.cant.apply.symbol: kindname.method, foo1, p1.A[], p1.B,p1.B, kindname.class, p1.B, (compiler.misc.inaccessible.varargs.type: p1.A, kindname.class, T6313164)
 T6313164.java:19:15: compiler.err.prob.found.req: (compiler.misc.inaccessible.varargs.type: p1.A, kindname.class, T6313164)
 T6313164.java:20:15: compiler.err.prob.found.req: (compiler.misc.inaccessible.varargs.type: p1.A, kindname.class, T6313164)
 3 errors
-1 warning
--- a/test/langtools/tools/javac/varargs/warning/Warn4.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/varargs/warning/Warn4.java	Mon Jul 16 12:11:02 2018 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -93,7 +93,6 @@
     }
 
     enum SourceLevel {
-        JDK_6("6"),
         JDK_7("7"),
         JDK_9("9");
 
--- a/test/langtools/tools/javac/versions/Versions.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/javac/versions/Versions.java	Mon Jul 16 12:11:02 2018 +0100
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 4981566 5028634 5094412 6304984 7025786 7025789 8001112 8028545 8000961 8030610 8028546 8188870 8173382 8173382 8193290 8205619
+ * @bug 4981566 5028634 5094412 6304984 7025786 7025789 8001112 8028545 8000961 8030610 8028546 8188870 8173382 8173382 8193290 8205619 8028563
  * @summary Check interpretation of -target and -source options
  * @modules java.compiler
  *          jdk.compiler
@@ -41,8 +41,14 @@
 import java.util.List;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Set;
+import java.util.function.BiConsumer;
 
-
+/*
+ * If not explicitly specified the latest source and latest target
+ * values are the defaults. If explicitly specified, the target value
+ * has to be greater than or equal to the source value.
+ */
 public class Versions {
 
     protected JavaCompiler javacompiler;
@@ -59,87 +65,115 @@
         versions.run();
     }
 
+    public static final Set<String> RETIRED_SOURCES =
+        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");
+
+    public static final String LATEST_MAJOR_VERSION = "56.0";
+
+    static enum SourceTarget {
+        SEVEN(true,   "51.0",  "7", Versions::checksrc17),
+        EIGHT(true,   "52.0",  "8", Versions::checksrc18),
+        NINE(true,    "53.0",  "9", Versions::checksrc19),
+        TEN(true,     "54.0", "10", Versions::checksrc110),
+        ELEVEN(false, "55.0", "11", Versions::checksrc111),
+        TWELVE(false, "56.0", "12", Versions::checksrc112);
+
+        private final boolean dotOne;
+        private final String classFileVer;
+        private final String target;
+        private final BiConsumer<Versions, String[]> checker;
+
+        private SourceTarget(boolean dotOne, String classFileVer, String target,
+                             BiConsumer<Versions, String[]> checker) {
+            this.dotOne = dotOne;
+            this.classFileVer = classFileVer;
+            this.target = target;
+            this.checker = checker;
+        }
+
+        public void checksrc(Versions version, String... args) {
+            checker.accept(version, args);
+        }
+
+        public boolean dotOne() {
+            return dotOne;
+        }
+
+        public String classFileVer() {
+            return classFileVer;
+        }
+
+        public String target() {
+            return target;
+        }
+    }
+
     void run() {
-
         String TC = "";
         System.out.println("Version.java: Starting");
 
-        String LATEST_MAJOR_VERSION = "56.0";
         check(LATEST_MAJOR_VERSION);
-        check(LATEST_MAJOR_VERSION, "-source 1.6");
-        check(LATEST_MAJOR_VERSION, "-source 1.7");
-        check(LATEST_MAJOR_VERSION, "-source 1.8");
-        check(LATEST_MAJOR_VERSION, "-source 1.9");
-        check(LATEST_MAJOR_VERSION, "-source 1.10");
-        check(LATEST_MAJOR_VERSION, "-source 11");
-        check(LATEST_MAJOR_VERSION, "-source 12");
+        for (String source : VALID_SOURCES) {
+            check(LATEST_MAJOR_VERSION, "-source " + source);
+        }
 
-        check_source_target(true, "50.0", "6", "6");
-        check_source_target(true, "51.0", "6", "7");
-        check_source_target(true, "51.0", "7", "7");
-        check_source_target(true, "52.0", "6", "8");
-        check_source_target(true, "52.0", "7", "8");
-        check_source_target(true, "52.0", "8", "8");
-        check_source_target(true, "53.0", "6", "9");
-        check_source_target(true, "53.0", "7", "9");
-        check_source_target(true, "53.0", "8", "9");
-        check_source_target(true, "53.0", "9", "9");
-        check_source_target(true, "54.0", "6", "10");
-        check_source_target(true, "54.0", "7", "10");
-        check_source_target(true, "54.0", "8", "10");
-        check_source_target(true, "54.0", "9", "10");
-        check_source_target(true, "54.0", "10", "10");
-        check_source_target(false, "55.0", "6", "11");
-        check_source_target(false, "55.0", "7", "11");
-        check_source_target(false, "55.0", "8", "11");
-        check_source_target(false, "55.0", "9", "11");
-        check_source_target(false, "55.0", "10", "11");
-        check_source_target(false, "55.0", "11", "11");
-        check_source_target(false, "56.0", "12", "12");
+        // Verify that a -source value less than a -target value is
+        // accepted and that the resulting class files are dependent
+        // on the target setting alone.
+        SourceTarget[] sourceTargets = SourceTarget.values();
+        for (int i = 0; i < sourceTargets.length; i++) {
+            SourceTarget st = sourceTargets[i];
+            String classFileVer = st.classFileVer();
+            String target = st.target();
+            boolean dotOne = st.dotOne();
+            check_source_target(dotOne, classFileVer, target, target);
+            for (int j = i; j > 0; j--) {
+                String source = sourceTargets[j].target();
+                check_source_target(dotOne, classFileVer, source, target);
+            }
+        }
+
+        // Verify acceptance of different combinations of -source N,
+        // -target M; N <= M
+        for (int i = 0; i < sourceTargets.length; i++) {
+            SourceTarget st = sourceTargets[i];
+
+            st.checksrc(this, "-source " + st.target());
+            st.checksrc(this, "-source " + st.target(), "-target " + st.target());
 
-        checksrc16("-source 1.6");
-        checksrc16("-source 6");
-        checksrc16("-source 1.6", "-target 1.6");
-        checksrc16("-source 6", "-target 6");
-        checksrc17("-source 1.7");
-        checksrc17("-source 7");
-        checksrc17("-source 1.7", "-target 1.7");
-        checksrc17("-source 7", "-target 7");
-        checksrc18("-source 1.8");
-        checksrc18("-source 8");
-        checksrc18("-source 1.8", "-target 1.8");
-        checksrc18("-source 8", "-target 8");
-        checksrc19("-source 1.9");
-        checksrc19("-source 9");
-        checksrc19("-source 1.9", "-target 1.9");
-        checksrc19("-source 9", "-target 9");
-        checksrc110();
-        checksrc110("-source 1.10");
-        checksrc110("-source 10");
-        checksrc110("-source 1.10", "-target 1.10");
-        checksrc110("-source 10", "-target 10");
-        checksrc111("-source 11");
-        checksrc111("-source 11", "-target 11");
-        checksrc112("-source 12");
-        checksrc112("-source 12", "-target 12");
-        checksrc112("-target 12");
+            if (st.dotOne()) {
+                st.checksrc(this, "-source 1." + st.target());
+                st.checksrc(this, "-source 1." + st.target(), "-target 1." + st.target());
+            }
+
+            if (i == sourceTargets.length) {
+                // Can use -target without -source setting only for
+                // most recent target since the most recent source is
+                // the default.
+                st.checksrc(this, "-target " + st.target());
 
-        fail("-source 7", "-target 1.6", "Base.java");
-        fail("-source 8", "-target 1.6", "Base.java");
-        fail("-source 8", "-target 1.7", "Base.java");
-        fail("-source 9", "-target 1.7", "Base.java");
-        fail("-source 9", "-target 1.8", "Base.java");
-        fail("-source 10", "-target 1.7", "Base.java");
-        fail("-source 10", "-target 1.8", "Base.java");
-        fail("-source 11", "-target 1.9", "Base.java");
-        fail("-source 11", "-target 1.10", "Base.java");
-        fail("-source 12", "-target 1.10", "Base.java");
-        fail("-source 12", "-target 11", "Base.java");
+                if (!st.classFileVer().equals(LATEST_MAJOR_VERSION)) {
+                    throw new RuntimeException(st +
+                                               "does not have class file version" +
+                                               LATEST_MAJOR_VERSION);
+                }
+            }
+        }
 
-        fail("-source 1.5", "-target 1.5", "Base.java");
-        fail("-source 1.4", "-target 1.4", "Base.java");
-        fail("-source 1.3", "-target 1.3", "Base.java");
-        fail("-source 1.2", "-target 1.2", "Base.java");
+        // Verify that -source N -target (N-1) is rejected
+        for (int i = 1 /* Skip zeroth value */; i < sourceTargets.length; i++) {
+            fail("-source " + sourceTargets[i].target(),
+                 "-target " + sourceTargets[i-1].target(),
+                 "Base.java");
+        }
+
+        // Previously supported source/target values
+        for (String source  : RETIRED_SOURCES) {
+            fail("-source " + source, "-target " + source, "Base.java");
+        }
 
         if (failedCases > 0) {
             System.err.println("failedCases = " + String.valueOf(failedCases));
@@ -197,17 +231,6 @@
         }
     }
 
-    protected void checksrc16(String... args) {
-        printargs("checksrc16", args);
-        int asize = args.length;
-        String[] newargs = new String[asize + 1];
-        System.arraycopy(args, 0, newargs, 0, asize);
-        newargs[asize] = "Base.java";
-        pass(newargs);
-        newargs[asize] = "New17.java";
-        fail(newargs);
-    }
-
     protected void checksrc17(String... args) {
         printargs("checksrc17", args);
         int asize = args.length;
@@ -252,7 +275,17 @@
 
     protected void checksrc111(String... args) {
         printargs("checksrc111", args);
-        checksrc110(args);
+        int asize = args.length;
+        String[] newargs = new String[asize+1];
+        System.arraycopy(args, 0, newargs,0 , asize);
+        newargs[asize] = "New17.java";
+        pass(newargs);
+        newargs[asize] = "New18.java";
+        pass(newargs);
+        newargs[asize] = "New110.java";
+        pass(newargs);
+        newargs[asize] = "New111.java";
+        pass(newargs);
     }
 
     protected void checksrc112(String... args) {
@@ -399,6 +432,17 @@
             "} \n"
         );
 
+        /*
+         * Create a file with a new feature in 11, not in 10 : var for lambda parameters
+         */
+        writeSourceFile("New111.java",
+            "public class New111 { \n" +
+            "    static java.util.function.Function<String,String> f = (var x) -> x.substring(0);\n" +
+            "    void m(String name) { \n" +
+            "    var tmp = new Thread(() -> { }, f.apply(name)); \n" +
+            "    } \n" +
+            "} \n"
+        );
     }
 
     protected boolean checkClassFileVersion
--- a/test/langtools/tools/lib/toolbox/ToolBox.java	Tue Jul 03 14:12:49 2018 +0100
+++ b/test/langtools/tools/lib/toolbox/ToolBox.java	Mon Jul 16 12:11:02 2018 +0100
@@ -34,8 +34,10 @@
 import java.io.Writer;
 import java.net.URI;
 import java.nio.charset.Charset;
+import java.nio.file.DirectoryNotEmptyException;
 import java.nio.file.FileVisitResult;
 import java.nio.file.Files;
+import java.nio.file.NoSuchFileException;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.nio.file.SimpleFileVisitor;
@@ -43,8 +45,11 @@
 import java.nio.file.attribute.BasicFileAttributes;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.Collections;
+import java.util.Deque;
 import java.util.HashMap;
+import java.util.LinkedList;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
@@ -98,6 +103,12 @@
     public static final String testSrc = System.getProperty("test.src");
     /** The location of the test JDK for this test, or null if not set. */
     public static final String testJDK = System.getProperty("test.jdk");
+    /** The timeout factor for slow systems. */
+    public static final float timeoutFactor;
+    static {
+        String ttf = System.getProperty("test.timeout.factor");
+        timeoutFactor = (ttf == null) ? 1.0f : Float.valueOf(ttf);
+    }
 
     /** The current directory. */
     public static final Path currDir = Paths.get(".");
@@ -109,7 +120,7 @@
      * Checks if the host OS is some version of Windows.
      * @return true if the host OS is some version of Windows
      */
-    public boolean isWindows() {
+    public static boolean isWindows() {
         return osName.toLowerCase(Locale.ENGLISH).startsWith("windows");
     }
 
@@ -238,21 +249,50 @@
     }
 
     /**
-     * Deletes one or more files.
-     * Any directories to be deleted must be empty.
+     * Deletes one or more files, awaiting confirmation that the files
+     * no longer exist. Any directories to be deleted must be empty.
      * <p>Similar to the shell command: {@code rm files}.
-     * @param files the files to be deleted
+     * @param files the names of the files to be deleted
      * @throws IOException if an error occurred while deleting the files
      */
     public void deleteFiles(String... files) throws IOException {
-        if (files.length == 0)
-            throw new IllegalArgumentException("no files specified");
-        for (String file : files)
-            Files.delete(Paths.get(file));
+        deleteFiles(List.of(files).stream().map(Paths::get).collect(Collectors.toList()));
+    }
+
+    /**
+     * Deletes one or more files, awaiting confirmation that the files
+     * no longer exist. Any directories to be deleted must be empty.
+     * <p>Similar to the shell command: {@code rm files}.
+     * @param paths the paths for the files to be deleted
+     * @throws IOException if an error occurred while deleting the files
+     */
+    public void deleteFiles(Path... paths) throws IOException {
+        deleteFiles(List.of(paths));
     }
 
     /**
-     * Deletes all content of a directory (but not the directory itself).
+     * Deletes one or more files, awaiting confirmation that the files
+     * no longer exist. Any directories to be deleted must be empty.
+     * <p>Similar to the shell command: {@code rm files}.
+     * @param paths the paths for the files to be deleted
+     * @throws IOException if an error occurred while deleting the files
+     */
+    public void deleteFiles(List<Path> paths) throws IOException {
+        if (paths.isEmpty())
+            throw new IllegalArgumentException("no files specified");
+        IOException ioe = null;
+        for (Path path : paths) {
+            ioe = deleteFile(path, ioe);
+        }
+        if (ioe != null) {
+            throw ioe;
+        }
+        ensureDeleted(paths);
+    }
+
+    /**
+     * Deletes all content of a directory (but not the directory itself),
+     * awaiting confirmation that the content has been deleted.
      * @param root the directory to be cleaned
      * @throws IOException if an error occurs while cleaning the directory
      */
@@ -261,9 +301,23 @@
             throw new IOException(root + " is not a directory");
         }
         Files.walkFileTree(root, new SimpleFileVisitor<Path>() {
+            private IOException ioe = null;
+            // for each directory we visit, maintain a list of the files that we try to delete
+            private Deque<List<Path>> dirFiles = new LinkedList<>();
+
             @Override
             public FileVisitResult visitFile(Path file, BasicFileAttributes a) throws IOException {
-                Files.delete(file);
+                ioe = deleteFile(file, ioe);
+                dirFiles.peekFirst().add(file);
+                return FileVisitResult.CONTINUE;
+            }
+
+            @Override
+            public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes a) throws IOException {
+                if (!dir.equals(root)) {
+                    dirFiles.peekFirst().add(dir);
+                }
+                dirFiles.addFirst(new ArrayList<>());
                 return FileVisitResult.CONTINUE;
             }
 
@@ -272,8 +326,12 @@
                 if (e != null) {
                     throw e;
                 }
+                if (ioe != null) {
+                    throw ioe;
+                }
+                ensureDeleted(dirFiles.removeFirst());
                 if (!dir.equals(root)) {
-                    Files.delete(dir);
+                    ioe = deleteFile(dir, ioe);
                 }
                 return FileVisitResult.CONTINUE;
             }
@@ -281,6 +339,67 @@
     }
 
     /**
+     * Internal method to delete a file, using {@code Files.delete}.
+     * It does not wait to confirm deletion, nor does it retry.
+     * If an exception occurs it is either returned or added to the set of
+     * suppressed exceptions for an earlier exception.
+     * @param path the path for the file to be deleted
+     * @param ioe the earlier exception, or null
+     * @return the earlier exception or an exception that occurred while
+     *  trying to delete the file
+     */
+    private IOException deleteFile(Path path, IOException ioe) {
+        try {
+            Files.delete(path);
+        } catch (IOException e) {
+            if (ioe == null) {
+                ioe = e;
+            } else {
+                ioe.addSuppressed(e);
+            }
+        }
+        return ioe;
+    }
+
+    /**
+     * Wait until it is confirmed that a set of files have been deleted.
+     * @param paths the paths for the files to be deleted
+     * @throws IOException if a file has not been deleted
+     */
+    private void ensureDeleted(Collection<Path> paths)
+            throws IOException {
+        for (Path path : paths) {
+            ensureDeleted(path);
+        }
+    }
+
+    /**
+     * Wait until it is confirmed that a file has been deleted.
+     * @param path the path for the file to be deleted
+     * @throws IOException if problems occur while deleting the file
+     */
+    private void ensureDeleted(Path path) throws IOException {
+        long startTime = System.currentTimeMillis();
+        do {
+            // Note: Files.notExists is not the same as !Files.exists
+            if (Files.notExists(path)) {
+                return;
+            }
+            System.gc(); // allow finalizers and cleaners to run
+            try {
+                Thread.sleep(RETRY_DELETE_MILLIS);
+            } catch (InterruptedException e) {
+                throw new IOException("Interrupted while waiting for file to be deleted: " + path, e);
+            }
+        } while ((System.currentTimeMillis() - startTime) <= MAX_RETRY_DELETE_MILLIS);
+
+        throw new IOException("File not deleted: " + path);
+    }
+
+    private static final int RETRY_DELETE_MILLIS = isWindows() ? (int)(500 * timeoutFactor): 0;
+    private static final int MAX_RETRY_DELETE_MILLIS = isWindows() ? (int)(15 * 1000 * timeoutFactor) : 0;
+
+    /**
      * Moves a file.
      * If the given destination exists and is a directory, the file will be moved
      * to that directory.  Otherwise, the file will be moved to the destination,