Merge
authorprr
Thu, 19 Jul 2018 10:53:38 -0700
changeset 51168 17148c9457a6
parent 51167 d03b04e7569a (current diff)
parent 51163 8b8658b1b7e4 (diff)
child 51169 0058ffa0a922
child 51901 3f5a55b6bad8
Merge
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
test/hotspot/jtreg/compiler/graalunit/JttLangMTest.java
test/hotspot/jtreg/compiler/graalunit/JttReflectFTest.java
test/hotspot/jtreg/runtime/appcds/MismatchedUseAppCDS.java
test/hotspot/jtreg/runtime/appcds/test-classes/CheckIfShared.java
test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorStatRateTest.java
test/langtools/tools/javac/TryWithResources/WeirdTwr.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/warnings/6594914/T6594914b.out
--- a/.hgtags	Thu Jul 19 13:49:44 2018 +0530
+++ b/.hgtags	Thu Jul 19 10:53:38 2018 -0700
@@ -495,4 +495,7 @@
 9816d7cc655e53ba081f938b656e31971b8f097a jdk-11+20
 14708e1acdc3974f4539027cbbcfa6d69f83cf51 jdk-11+21
 00b16d0457e43d23f6ca5ade6b243edce62750a0 jdk-12+1
+9937ef7499dcd7673714517fd5e450410c14ba4e jdk-11+22
+1edcf36fe15f79d6228d1a63eb680878e2386480 jdk-11+23
 69b438908512d3dfef5852c6a843a5778333a309 jdk-12+2
+990db216e7199b2ba9989d8fa20b657e0ca7d969 jdk-12+3
--- a/make/autoconf/flags-cflags.m4	Thu Jul 19 13:49:44 2018 +0530
+++ b/make/autoconf/flags-cflags.m4	Thu Jul 19 10:53:38 2018 -0700
@@ -106,11 +106,17 @@
 
 AC_DEFUN([FLAGS_SETUP_DEBUG_SYMBOLS],
 [
+  # By default don't set any specific assembler debug
+  # info flags for toolchains unless we know they work.
+  # See JDK-8207057.
+  ASFLAGS_DEBUG_SYMBOLS=""
   # Debug symbols
   if test "x$TOOLCHAIN_TYPE" = xgcc; then
     CFLAGS_DEBUG_SYMBOLS="-g"
+    ASFLAGS_DEBUG_SYMBOLS="-g"
   elif test "x$TOOLCHAIN_TYPE" = xclang; then
     CFLAGS_DEBUG_SYMBOLS="-g"
+    ASFLAGS_DEBUG_SYMBOLS="-g"
   elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
     # -g0 enables debug symbols without disabling inlining.
     CFLAGS_DEBUG_SYMBOLS="-g0 -xs"
@@ -121,6 +127,7 @@
   fi
 
   AC_SUBST(CFLAGS_DEBUG_SYMBOLS)
+  AC_SUBST(ASFLAGS_DEBUG_SYMBOLS)
 ])
 
 AC_DEFUN([FLAGS_SETUP_WARNINGS],
--- a/make/autoconf/hotspot.m4	Thu Jul 19 13:49:44 2018 +0530
+++ b/make/autoconf/hotspot.m4	Thu Jul 19 10:53:38 2018 -0700
@@ -500,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	Thu Jul 19 13:49:44 2018 +0530
+++ b/make/autoconf/spec.gmk.in	Thu Jul 19 10:53:38 2018 -0700
@@ -532,6 +532,7 @@
 ZIP_EXTERNAL_DEBUG_SYMBOLS := @ZIP_EXTERNAL_DEBUG_SYMBOLS@
 
 CFLAGS_DEBUG_SYMBOLS:=@CFLAGS_DEBUG_SYMBOLS@
+ASFLAGS_DEBUG_SYMBOLS:=@ASFLAGS_DEBUG_SYMBOLS@
 
 #
 # Compress (or not) jars
--- a/make/common/MakeBase.gmk	Thu Jul 19 13:49:44 2018 +0530
+++ b/make/common/MakeBase.gmk	Thu Jul 19 10:53:38 2018 -0700
@@ -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/NativeCompilation.gmk	Thu Jul 19 13:49:44 2018 +0530
+++ b/make/common/NativeCompilation.gmk	Thu Jul 19 10:53:38 2018 -0700
@@ -251,6 +251,7 @@
         $$($$($1_BASE)_SYSROOT_CFLAGS)
     $1_BASE_CXXFLAGS := $$($$($1_BASE)_CXXFLAGS) $$($$($1_BASE)_EXTRA_CXXFLAGS) \
         $$($$($1_BASE)_SYSROOT_CFLAGS) $$($1_EXTRA_CXXFLAGS)
+    $1_BASE_ASFLAGS := $$($$($1_BASE)_ASFLAGS) $$($$($1_BASE)_EXTRA_ASFLAGS)
 
     ifneq ($$(filter %.c, $$($1_FILENAME)), )
       # Compile as a C file
@@ -266,7 +267,7 @@
       $1_DEP_FLAG := $(C_FLAG_DEPS)
     else ifneq ($$(filter %.s %.S, $$($1_FILENAME)), )
       # Compile as assembler file
-      $1_FLAGS := $$($$($1_BASE)_ASFLAGS)
+      $1_FLAGS := $$($1_BASE_ASFLAGS)
       $1_COMPILER := $(AS)
       $1_DEP_FLAG :=
     else ifneq ($$(filter %.cpp %.cc %.mm, $$($1_FILENAME)), )
@@ -576,6 +577,7 @@
   ifeq ($(COMPILE_WITH_DEBUG_SYMBOLS), true)
     $1_EXTRA_CFLAGS += $$(CFLAGS_DEBUG_SYMBOLS)
     $1_EXTRA_CXXFLAGS += $$(CFLAGS_DEBUG_SYMBOLS)
+    $1_EXTRA_ASFLAGS += $$(ASFLAGS_DEBUG_SYMBOLS)
   endif
 
   ifneq ($$($1_REORDER), )
--- a/make/data/symbols/java.base-6.sym.txt	Thu Jul 19 13:49:44 2018 +0530
+++ /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	Thu Jul 19 13:49:44 2018 +0530
+++ /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	Thu Jul 19 13:49:44 2018 +0530
+++ /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	Thu Jul 19 13:49:44 2018 +0530
+++ /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	Thu Jul 19 13:49:44 2018 +0530
+++ /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	Thu Jul 19 13:49:44 2018 +0530
+++ /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	Thu Jul 19 13:49:44 2018 +0530
+++ /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	Thu Jul 19 13:49:44 2018 +0530
+++ /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	Thu Jul 19 13:49:44 2018 +0530
+++ /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	Thu Jul 19 13:49:44 2018 +0530
+++ /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	Thu Jul 19 13:49:44 2018 +0530
+++ /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	Thu Jul 19 13:49:44 2018 +0530
+++ /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	Thu Jul 19 13:49:44 2018 +0530
+++ /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	Thu Jul 19 13:49:44 2018 +0530
+++ /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	Thu Jul 19 13:49:44 2018 +0530
+++ /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	Thu Jul 19 13:49:44 2018 +0530
+++ /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	Thu Jul 19 13:49:44 2018 +0530
+++ b/make/data/symbols/symbols	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/make/hotspot/gensrc/GensrcJfr.gmk	Thu Jul 19 10:53:38 2018 -0700
@@ -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/src/hotspot/cpu/aarch64/gc/g1/g1BarrierSetAssembler_aarch64.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/cpu/aarch64/gc/g1/g1BarrierSetAssembler_aarch64.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -24,9 +24,6 @@
 
 #include "precompiled.hpp"
 #include "asm/macroAssembler.inline.hpp"
-#include "c1/c1_LIRAssembler.hpp"
-#include "c1/c1_MacroAssembler.hpp"
-#include "gc/g1/c1/g1BarrierSetC1.hpp"
 #include "gc/g1/g1BarrierSet.hpp"
 #include "gc/g1/g1BarrierSetAssembler.hpp"
 #include "gc/g1/g1BarrierSetRuntime.hpp"
@@ -38,6 +35,11 @@
 #include "runtime/thread.hpp"
 #include "interpreter/interp_masm.hpp"
 #include "runtime/sharedRuntime.hpp"
+#ifdef COMPILER1
+#include "c1/c1_LIRAssembler.hpp"
+#include "c1/c1_MacroAssembler.hpp"
+#include "gc/g1/c1/g1BarrierSetC1.hpp"
+#endif
 
 #define __ masm->
 
--- a/src/hotspot/cpu/aarch64/globals_aarch64.hpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/cpu/aarch64/globals_aarch64.hpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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/aarch64/macroAssembler_aarch64.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -739,11 +739,19 @@
          || entry.rspec().type() == relocInfo::static_call_type
          || entry.rspec().type() == relocInfo::virtual_call_type, "wrong reloc type");
 
-  unsigned int start_offset = offset();
-  if (far_branches() && !Compile::current()->in_scratch_emit_size()) {
-    address stub = emit_trampoline_stub(start_offset, entry.target());
-    if (stub == NULL) {
-      return NULL; // CodeCache is full
+  // We need a trampoline if branches are far.
+  if (far_branches()) {
+    // We don't want to emit a trampoline if C2 is generating dummy
+    // code during its branch shortening phase.
+    CompileTask* task = ciEnv::current()->task();
+    bool in_scratch_emit_size =
+      (task != NULL && is_c2_compile(task->comp_level()) &&
+       Compile::current()->in_scratch_emit_size());
+    if (!in_scratch_emit_size) {
+      address stub = emit_trampoline_stub(offset(), entry.target());
+      if (stub == NULL) {
+        return NULL; // CodeCache is full
+      }
     }
   }
 
--- a/src/hotspot/cpu/ppc/assembler_ppc.hpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/cpu/ppc/assembler_ppc.hpp	Thu Jul 19 10:53:38 2018 -0700
@@ -1635,6 +1635,7 @@
   // TEXASR bit description
   enum transaction_failure_reason {
     // Upper half (TEXASRU):
+    tm_failure_code       =  0, // The Failure Code is copied from tabort or treclaim operand.
     tm_failure_persistent =  7, // The failure is likely to recur on each execution.
     tm_disallowed         =  8, // The instruction is not permitted.
     tm_nesting_of         =  9, // The maximum transaction level was exceeded.
@@ -1650,6 +1651,7 @@
     tm_failure_summary    = 36, // Failure has been detected and recorded.
     tm_tfiar_exact        = 37, // Value in the TFIAR is exact.
     tm_rot                = 38, // Rollback-only transaction.
+    tm_transaction_level  = 52, // Transaction level (nesting depth + 1).
   };
 
   // PPC 1, section 2.4.1 Branch Instructions
--- a/src/hotspot/cpu/ppc/macroAssembler_ppc.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/cpu/ppc/macroAssembler_ppc.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -2412,7 +2412,7 @@
 
 // Update rtm_counters based on abort status
 // input: abort_status
-//        rtm_counters (RTMLockingCounters*)
+//        rtm_counters_Reg (RTMLockingCounters*)
 void MacroAssembler::rtm_counters_update(Register abort_status, Register rtm_counters_Reg) {
   // Mapping to keep PreciseRTMLockingStatistics similar to x86.
   // x86 ppc (! means inverted, ? means not the same)
@@ -2422,52 +2422,96 @@
   //  3   10  Set if an internal buffer overflowed.
   //  4  ?12  Set if a debug breakpoint was hit.
   //  5  ?32  Set if an abort occurred during execution of a nested transaction.
-  const  int tm_failure_bit[] = {Assembler::tm_tabort, // Note: Seems like signal handler sets this, too.
-                                 Assembler::tm_failure_persistent, // inverted: transient
-                                 Assembler::tm_trans_cf,
-                                 Assembler::tm_footprint_of,
-                                 Assembler::tm_non_trans_cf,
-                                 Assembler::tm_suspended};
-  const bool tm_failure_inv[] = {false, true, false, false, false, false};
-  assert(sizeof(tm_failure_bit)/sizeof(int) == RTMLockingCounters::ABORT_STATUS_LIMIT, "adapt mapping!");
-
-  const Register addr_Reg = R0;
-  // Keep track of offset to where rtm_counters_Reg had pointed to.
+  const int failure_bit[] = {tm_tabort, // Signal handler will set this too.
+                             tm_failure_persistent,
+                             tm_non_trans_cf,
+                             tm_trans_cf,
+                             tm_footprint_of,
+                             tm_failure_code,
+                             tm_transaction_level};
+
+  const int num_failure_bits = sizeof(failure_bit) / sizeof(int);
+  const int num_counters = RTMLockingCounters::ABORT_STATUS_LIMIT;
+
+  const int bit2counter_map[][num_counters] =
+  // 0 = no map; 1 = mapped, no inverted logic; -1 = mapped, inverted logic
+  // Inverted logic means that if a bit is set don't count it, or vice-versa.
+  // Care must be taken when mapping bits to counters as bits for a given
+  // counter must be mutually exclusive. Otherwise, the counter will be
+  // incremented more than once.
+  // counters:
+  // 0        1        2         3         4         5
+  // abort  , persist, conflict, overflow, debug   , nested         bits:
+  {{ 1      , 0      , 0       , 0       , 0       , 0      },   // abort
+   { 0      , -1     , 0       , 0       , 0       , 0      },   // failure_persistent
+   { 0      , 0      , 1       , 0       , 0       , 0      },   // non_trans_cf
+   { 0      , 0      , 1       , 0       , 0       , 0      },   // trans_cf
+   { 0      , 0      , 0       , 1       , 0       , 0      },   // footprint_of
+   { 0      , 0      , 0       , 0       , -1      , 0      },   // failure_code = 0xD4
+   { 0      , 0      , 0       , 0       , 0       , 1      }};  // transaction_level > 1
+  // ...
+
+  // Move abort_status value to R0 and use abort_status register as a
+  // temporary register because R0 as third operand in ld/std is treated
+  // as base address zero (value). Likewise, R0 as second operand in addi
+  // is problematic because it amounts to li.
+  const Register temp_Reg = abort_status;
+  const Register abort_status_R0 = R0;
+  mr(abort_status_R0, abort_status);
+
+  // Increment total abort counter.
   int counters_offs = RTMLockingCounters::abort_count_offset();
-  addi(addr_Reg, rtm_counters_Reg, counters_offs);
-  const Register temp_Reg = rtm_counters_Reg;
-
-  //atomic_inc_ptr(addr_Reg, temp_Reg); We don't increment atomically
-  ldx(temp_Reg, addr_Reg);
+  ld(temp_Reg, counters_offs, rtm_counters_Reg);
   addi(temp_Reg, temp_Reg, 1);
-  stdx(temp_Reg, addr_Reg);
-
+  std(temp_Reg, counters_offs, rtm_counters_Reg);
+
+  // Increment specific abort counters.
   if (PrintPreciseRTMLockingStatistics) {
-    int counters_offs_delta = RTMLockingCounters::abortX_count_offset() - counters_offs;
-
-    //mftexasr(abort_status); done by caller
-    for (int i = 0; i < RTMLockingCounters::ABORT_STATUS_LIMIT; i++) {
-      counters_offs += counters_offs_delta;
-      li(temp_Reg, counters_offs_delta); // can't use addi with R0
-      add(addr_Reg, addr_Reg, temp_Reg); // point to next counter
-      counters_offs_delta = sizeof(uintx);
-
-      Label check_abort;
-      rldicr_(temp_Reg, abort_status, tm_failure_bit[i], 0);
-      if (tm_failure_inv[i]) {
-        bne(CCR0, check_abort);
-      } else {
-        beq(CCR0, check_abort);
+
+    // #0 counter offset.
+    int abortX_offs = RTMLockingCounters::abortX_count_offset();
+
+    for (int nbit = 0; nbit < num_failure_bits; nbit++) {
+      for (int ncounter = 0; ncounter < num_counters; ncounter++) {
+        if (bit2counter_map[nbit][ncounter] != 0) {
+          Label check_abort;
+          int abort_counter_offs = abortX_offs + (ncounter << 3);
+
+          if (failure_bit[nbit] == tm_transaction_level) {
+            // Don't check outer transaction, TL = 1 (bit 63). Hence only
+            // 11 bits in the TL field are checked to find out if failure
+            // occured in a nested transaction. This check also matches
+            // the case when nesting_of = 1 (nesting overflow).
+            rldicr_(temp_Reg, abort_status_R0, failure_bit[nbit], 10);
+          } else if (failure_bit[nbit] == tm_failure_code) {
+            // Check failure code for trap or illegal caught in TM.
+            // Bits 0:7 are tested as bit 7 (persistent) is copied from
+            // tabort or treclaim source operand.
+            // On Linux: trap or illegal is TM_CAUSE_SIGNAL (0xD4).
+            rldicl(temp_Reg, abort_status_R0, 8, 56);
+            cmpdi(CCR0, temp_Reg, 0xD4);
+          } else {
+            rldicr_(temp_Reg, abort_status_R0, failure_bit[nbit], 0);
+          }
+
+          if (bit2counter_map[nbit][ncounter] == 1) {
+            beq(CCR0, check_abort);
+          } else {
+            bne(CCR0, check_abort);
+          }
+
+          // We don't increment atomically.
+          ld(temp_Reg, abort_counter_offs, rtm_counters_Reg);
+          addi(temp_Reg, temp_Reg, 1);
+          std(temp_Reg, abort_counter_offs, rtm_counters_Reg);
+
+          bind(check_abort);
+        }
       }
-      //atomic_inc_ptr(addr_Reg, temp_Reg); We don't increment atomically
-      ldx(temp_Reg, addr_Reg);
-      addi(temp_Reg, temp_Reg, 1);
-      stdx(temp_Reg, addr_Reg);
-      bind(check_abort);
     }
   }
-  li(temp_Reg, -counters_offs); // can't use addi with R0
-  add(rtm_counters_Reg, addr_Reg, temp_Reg); // restore
+  // Restore abort_status.
+  mr(abort_status, abort_status_R0);
 }
 
 // Branch if (random & (count-1) != 0), count is 2^n
@@ -2569,8 +2613,28 @@
 void MacroAssembler::rtm_retry_lock_on_abort(Register retry_count_Reg, Register abort_status_Reg,
                                              Label& retryLabel, Label* checkRetry) {
   Label doneRetry;
+
+  // Don't retry if failure is persistent.
+  // The persistent bit is set when a (A) Disallowed operation is performed in
+  // transactional state, like for instance trying to write the TFHAR after a
+  // transaction is started; or when there is (B) a Nesting Overflow (too many
+  // nested transactions); or when (C) the Footprint overflows (too many
+  // addressess touched in TM state so there is no more space in the footprint
+  // area to track them); or in case of (D) a Self-Induced Conflict, i.e. a
+  // store is performed to a given address in TM state, then once in suspended
+  // state the same address is accessed. Failure (A) is very unlikely to occur
+  // in the JVM. Failure (D) will never occur because Suspended state is never
+  // used in the JVM. Thus mostly (B) a Nesting Overflow or (C) a Footprint
+  // Overflow will set the persistent bit.
   rldicr_(R0, abort_status_Reg, tm_failure_persistent, 0);
   bne(CCR0, doneRetry);
+
+  // Don't retry if transaction was deliberately aborted, i.e. caused by a
+  // tabort instruction.
+  rldicr_(R0, abort_status_Reg, tm_tabort, 0);
+  bne(CCR0, doneRetry);
+
+  // Retry if transaction aborted due to a conflict with another thread.
   if (checkRetry) { bind(*checkRetry); }
   addic_(retry_count_Reg, retry_count_Reg, -1);
   blt(CCR0, doneRetry);
--- a/src/hotspot/cpu/ppc/sharedRuntime_ppc.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/cpu/ppc/sharedRuntime_ppc.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -2029,6 +2029,13 @@
   // --------------------------------------------------------------------------
   vep_start_pc = (intptr_t)__ pc();
 
+  if (UseRTMLocking) {
+    // Abort RTM transaction before calling JNI
+    // because critical section can be large and
+    // abort anyway. Also nmethod can be deoptimized.
+    __ tabort_();
+  }
+
   __ save_LR_CR(r_temp_1);
   __ generate_stack_overflow_check(frame_size_in_bytes); // Check before creating frame.
   __ mr(r_callers_sp, R1_SP);                            // Remember frame pointer.
@@ -2947,6 +2954,11 @@
   InterpreterMacroAssembler* masm = new InterpreterMacroAssembler(&buffer);
   address start = __ pc();
 
+  if (UseRTMLocking) {
+    // Abort RTM transaction before possible nmethod deoptimization.
+    __ tabort_();
+  }
+
   Register unroll_block_reg = R21_tmp1;
   Register klass_index_reg  = R22_tmp2;
   Register unc_trap_reg     = R23_tmp3;
@@ -3090,6 +3102,13 @@
     return_pc_location = RegisterSaver::return_pc_is_thread_saved_exception_pc;
   }
 
+  if (UseRTMLocking) {
+    // Abort RTM transaction before calling runtime
+    // because critical section can be large and so
+    // will abort anyway. Also nmethod can be deoptimized.
+    __ tabort_();
+  }
+
   // Save registers, fpu state, and flags. Set R31 = return pc.
   map = RegisterSaver::push_frame_reg_args_and_save_live_registers(masm,
                                                                    &frame_size_in_bytes,
--- a/src/hotspot/cpu/x86/methodHandles_x86.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/cpu/x86/methodHandles_x86.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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 */
--- a/src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/cpu/x86/templateInterpreterGenerator_x86_32.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/cpu/x86/templateInterpreterGenerator_x86_64.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/cpu/x86/templateTable_x86.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/cpu/x86/vm_version_ext_x86.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/cpu/x86/vm_version_ext_x86.hpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/cpu/x86/x86.ad	Thu Jul 19 10:53:38 2018 -0700
@@ -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/misc_aix.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/os/aix/misc_aix.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -49,16 +49,3 @@
   const int rc = pthread_mutex_unlock(cs);
   assert0(rc == 0);
 }
-
-bool MiscUtils::is_readable_pointer(const void* p) {
-  if (!CanUseSafeFetch32()) {
-    return true;
-  }
-  int* const aligned = (int*) align_down(p, 4);
-  int cafebabe = 0xcafebabe;
-  int deadbeef = 0xdeadbeef;
-  return (SafeFetch32(aligned, cafebabe) != cafebabe) ||
-         (SafeFetch32(aligned, deadbeef) != deadbeef);
-}
-
-
--- a/src/hotspot/os/aix/misc_aix.hpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/os/aix/misc_aix.hpp	Thu Jul 19 10:53:38 2018 -0700
@@ -88,13 +88,6 @@
       _pcsobj->leave();
     }
   };
-
-  // Returns true if pointer can be dereferenced without triggering a segment
-  // violation. Returns false if pointer is invalid.
-  // Note: Depends on stub routines; prior to stub routine generation, will
-  // always return true. Use CanUseSafeFetch32 to handle this case.
-  bool is_readable_pointer(const void* p);
-
 }
 
 #endif // OS_AIX_VM_MISC_AIX_HPP
--- a/src/hotspot/os/aix/os_aix.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/os/aix/os_aix.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -3733,8 +3733,7 @@
 
   /* Scan the directory */
   bool result = true;
-  char buf[sizeof(struct dirent) + MAX_PATH];
-  while (result && (ptr = ::readdir(dir)) != NULL) {
+  while (result && (ptr = readdir(dir)) != NULL) {
     if (strcmp(ptr->d_name, ".") != 0 && strcmp(ptr->d_name, "..") != 0) {
       result = false;
     }
--- a/src/hotspot/os/aix/os_aix.inline.hpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/os/aix/os_aix.inline.hpp	Thu Jul 19 10:53:38 2018 -0700
@@ -74,17 +74,6 @@
 
 inline const int os::default_file_open_flags() { return 0;}
 
-inline DIR* os::opendir(const char* dirname) {
-  assert(dirname != NULL, "just checking");
-  return ::opendir(dirname);
-}
-
-inline int os::readdir_buf_size(const char *path) {
-  // According to aix sys/limits, NAME_MAX must be retrieved at runtime.
-  const long my_NAME_MAX = pathconf(path, _PC_NAME_MAX);
-  return my_NAME_MAX + sizeof(dirent) + 1;
-}
-
 inline jlong os::lseek(int fd, jlong offset, int whence) {
   return (jlong) ::lseek64(fd, offset, whence);
 }
@@ -97,23 +86,6 @@
   return ::ftruncate64(fd, length);
 }
 
-inline struct dirent* os::readdir(DIR* dirp, dirent *dbuf) {
-  dirent* p = NULL;
-  assert(dirp != NULL, "just checking");
-
-  // AIX: slightly different from POSIX.
-  // On AIX, readdir_r returns 0 or != 0 and error details in errno.
-  if (::readdir_r(dirp, dbuf, &p) != 0) {
-    return NULL;
-  }
-  return p;
-}
-
-inline int os::closedir(DIR *dirp) {
-  assert(dirp != NULL, "argument is NULL");
-  return ::closedir(dirp);
-}
-
 // macros for restartable system calls
 
 #define RESTARTABLE(_cmd, _result) do { \
--- a/src/hotspot/os/aix/os_perf_aix.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/os/aix/os_perf_aix.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -893,21 +893,14 @@
 }
 
 int SystemProcessInterface::SystemProcesses::ProcessIterator::next_process() {
-  struct dirent* entry;
-
   if (!is_valid()) {
     return OS_ERR;
   }
 
   do {
-      entry = os::readdir(_dir, _entry);
-    if (entry == NULL) {
-      // error
-      _valid = false;
-      return OS_ERR;
-    }
+    _entry = os::readdir(_dir);
     if (_entry == NULL) {
-      // reached end
+      // Error or reached end.  Could use errno to distinguish those cases.
       _valid = false;
       return OS_ERR;
     }
@@ -929,11 +922,8 @@
 }
 
 SystemProcessInterface::SystemProcesses::ProcessIterator::~ProcessIterator() {
-  if (_entry != NULL) {
-    FREE_C_HEAP_ARRAY(char, _entry);
-  }
   if (_dir != NULL) {
-    closedir(_dir);
+    os::closedir(_dir);
   }
 }
 
--- a/src/hotspot/os/aix/perfMemory_aix.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/os/aix/perfMemory_aix.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -617,9 +617,8 @@
   // to determine the user name for the process id.
   //
   struct dirent* dentry;
-  char* tdbuf = NEW_C_HEAP_ARRAY(char, os::readdir_buf_size(tmpdirname), mtInternal);
   errno = 0;
-  while ((dentry = os::readdir(tmpdirp, (struct dirent *)tdbuf)) != NULL) {
+  while ((dentry = os::readdir(tmpdirp)) != NULL) {
 
     // check if the directory entry is a hsperfdata file
     if (strncmp(dentry->d_name, PERFDATA_NAME, strlen(PERFDATA_NAME)) != 0) {
@@ -653,9 +652,8 @@
     }
 
     struct dirent* udentry;
-    char* udbuf = NEW_C_HEAP_ARRAY(char, os::readdir_buf_size(usrdir_name), mtInternal);
     errno = 0;
-    while ((udentry = os::readdir(subdirp, (struct dirent *)udbuf)) != NULL) {
+    while ((udentry = os::readdir(subdirp)) != NULL) {
 
       if (filename_to_pid(udentry->d_name) == vmid) {
         struct stat statbuf;
@@ -699,11 +697,9 @@
       }
     }
     os::closedir(subdirp);
-    FREE_C_HEAP_ARRAY(char, udbuf);
     FREE_C_HEAP_ARRAY(char, usrdir_name);
   }
   os::closedir(tmpdirp);
-  FREE_C_HEAP_ARRAY(char, tdbuf);
 
   return(oldest_user);
 }
@@ -779,10 +775,8 @@
   // loop under these conditions is dependent upon the implementation of
   // opendir/readdir.
   struct dirent* entry;
-  char* dbuf = NEW_C_HEAP_ARRAY(char, os::readdir_buf_size(dirname), mtInternal);
-
   errno = 0;
-  while ((entry = os::readdir(dirp, (struct dirent *)dbuf)) != NULL) {
+  while ((entry = os::readdir(dirp)) != NULL) {
 
     pid_t pid = filename_to_pid(entry->d_name);
 
@@ -820,8 +814,6 @@
 
   // Close the directory and reset the current working directory.
   close_directory_secure_cwd(dirp, saved_cwd_fd);
-
-  FREE_C_HEAP_ARRAY(char, dbuf);
 }
 
 // Make the user specific temporary directory. Returns true if
--- a/src/hotspot/os/aix/porting_aix.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/os/aix/porting_aix.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -142,7 +142,7 @@
   // in that case I try reading the traceback table unsafe - I rather risk secondary crashes in
   // error files than not having a callstack.)
 #define CHECK_POINTER_READABLE(p) \
-  if (!MiscUtils::is_readable_pointer(p)) { \
+  if (!os::is_readable_pointer(p)) { \
     trcVerbose("pc not readable"); \
     return false; \
   }
@@ -230,7 +230,7 @@
       const short l = MIN2<short>(*((short*)pc2), namelen - 1);
       // Be very careful.
       int i = 0; char* const p = (char*)pc2 + sizeof(short);
-      while (i < l && MiscUtils::is_readable_pointer(p + i)) {
+      while (i < l && os::is_readable_pointer(p + i)) {
         p_name[i] = p[i];
         i++;
       }
@@ -489,7 +489,7 @@
   const struct tbtable* tb = NULL;
   int displacement = -1;
 
-  if (!MiscUtils::is_readable_pointer(pc)) {
+  if (!os::is_readable_pointer(pc)) {
     st->print("(invalid)");
     return;
   }
@@ -697,7 +697,7 @@
   print_info_for_pc(st, cur_iar, buf, buf_size, demangle);
   st->cr();
 
-  if (cur_iar && MiscUtils::is_readable_pointer(cur_iar)) {
+  if (cur_iar && os::is_readable_pointer(cur_iar)) {
     decode_instructions_at_pc(
       "Decoded instructions at iar:",
       cur_iar, 32, 16, st);
@@ -710,7 +710,7 @@
   print_info_for_pc(st, cur_lr, buf, buf_size, demangle);
   st->cr();
 
-  if (cur_lr && MiscUtils::is_readable_pointer(cur_lr)) {
+  if (cur_lr && os::is_readable_pointer(cur_lr)) {
     decode_instructions_at_pc(
       "Decoded instructions at lr:",
       cur_lr, 32, 16, st);
@@ -729,7 +729,7 @@
   // Check and print rtoc.
   st->print("rtoc: "  PTR64_FORMAT " ", p2i(cur_rtoc));
   if (cur_rtoc == NULL || cur_rtoc == (codeptr_t)-1 ||
-      !MiscUtils::is_readable_pointer(cur_rtoc)) {
+      !os::is_readable_pointer(cur_rtoc)) {
     st->print("(invalid)");
   } else if (((uintptr_t)cur_rtoc) & 0x7) {
     st->print("(unaligned)");
--- a/src/hotspot/os/bsd/os_bsd.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/os/bsd/os_bsd.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -3506,8 +3506,7 @@
 
   // Scan the directory
   bool result = true;
-  char buf[sizeof(struct dirent) + MAX_PATH];
-  while (result && (ptr = ::readdir(dir)) != NULL) {
+  while (result && (ptr = readdir(dir)) != NULL) {
     if (strcmp(ptr->d_name, ".") != 0 && strcmp(ptr->d_name, "..") != 0) {
       result = false;
     }
--- a/src/hotspot/os/bsd/os_bsd.inline.hpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/os/bsd/os_bsd.inline.hpp	Thu Jul 19 10:53:38 2018 -0700
@@ -77,17 +77,6 @@
 
 inline const int os::default_file_open_flags() { return 0;}
 
-inline DIR* os::opendir(const char* dirname)
-{
-  assert(dirname != NULL, "just checking");
-  return ::opendir(dirname);
-}
-
-inline int os::readdir_buf_size(const char *path)
-{
-  return NAME_MAX + sizeof(dirent) + 1;
-}
-
 inline jlong os::lseek(int fd, jlong offset, int whence) {
   return (jlong) ::lseek(fd, offset, whence);
 }
@@ -100,28 +89,6 @@
   return ::ftruncate(fd, length);
 }
 
-inline struct dirent* os::readdir(DIR* dirp, dirent *dbuf)
-{
-  dirent* p;
-  int status;
-  assert(dirp != NULL, "just checking");
-
-  // NOTE: Bsd readdir_r (on RH 6.2 and 7.2 at least) is NOT like the POSIX
-  // version. Here is the doc for this function:
-  // http://www.gnu.org/manual/glibc-2.2.3/html_node/libc_262.html
-
-  if((status = ::readdir_r(dirp, dbuf, &p)) != 0) {
-    errno = status;
-    return NULL;
-  } else
-    return p;
-}
-
-inline int os::closedir(DIR *dirp) {
-  assert(dirp != NULL, "argument is NULL");
-  return ::closedir(dirp);
-}
-
 // macros for restartable system calls
 
 #define RESTARTABLE(_cmd, _result) do { \
--- a/src/hotspot/os/bsd/perfMemory_bsd.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/os/bsd/perfMemory_bsd.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -535,9 +535,8 @@
   // to determine the user name for the process id.
   //
   struct dirent* dentry;
-  char* tdbuf = NEW_C_HEAP_ARRAY(char, os::readdir_buf_size(tmpdirname), mtInternal);
   errno = 0;
-  while ((dentry = os::readdir(tmpdirp, (struct dirent *)tdbuf)) != NULL) {
+  while ((dentry = os::readdir(tmpdirp)) != NULL) {
 
     // check if the directory entry is a hsperfdata file
     if (strncmp(dentry->d_name, PERFDATA_NAME, strlen(PERFDATA_NAME)) != 0) {
@@ -559,9 +558,8 @@
     }
 
     struct dirent* udentry;
-    char* udbuf = NEW_C_HEAP_ARRAY(char, os::readdir_buf_size(usrdir_name), mtInternal);
     errno = 0;
-    while ((udentry = os::readdir(subdirp, (struct dirent *)udbuf)) != NULL) {
+    while ((udentry = os::readdir(subdirp)) != NULL) {
 
       if (filename_to_pid(udentry->d_name) == vmid) {
         struct stat statbuf;
@@ -605,11 +603,9 @@
       }
     }
     os::closedir(subdirp);
-    FREE_C_HEAP_ARRAY(char, udbuf);
     FREE_C_HEAP_ARRAY(char, usrdir_name);
   }
   os::closedir(tmpdirp);
-  FREE_C_HEAP_ARRAY(char, tdbuf);
 
   return(oldest_user);
 }
@@ -688,10 +684,8 @@
   // opendir/readdir.
   //
   struct dirent* entry;
-  char* dbuf = NEW_C_HEAP_ARRAY(char, os::readdir_buf_size(dirname), mtInternal);
-
   errno = 0;
-  while ((entry = os::readdir(dirp, (struct dirent *)dbuf)) != NULL) {
+  while ((entry = os::readdir(dirp)) != NULL) {
 
     pid_t pid = filename_to_pid(entry->d_name);
 
@@ -730,8 +724,6 @@
 
   // close the directory and reset the current working directory
   close_directory_secure_cwd(dirp, saved_cwd_fd);
-
-  FREE_C_HEAP_ARRAY(char, dbuf);
 }
 
 // make the user specific temporary directory. Returns true if
--- a/src/hotspot/os/linux/os_linux.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/os/linux/os_linux.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -2093,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);
   }
@@ -2805,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.
@@ -2819,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;
     }
   }
@@ -5373,8 +5375,7 @@
 
   // Scan the directory
   bool result = true;
-  char buf[sizeof(struct dirent) + MAX_PATH];
-  while (result && (ptr = ::readdir(dir)) != NULL) {
+  while (result && (ptr = readdir(dir)) != NULL) {
     if (strcmp(ptr->d_name, ".") != 0 && strcmp(ptr->d_name, "..") != 0) {
       result = false;
     }
--- a/src/hotspot/os/linux/os_linux.inline.hpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/os/linux/os_linux.inline.hpp	Thu Jul 19 10:53:38 2018 -0700
@@ -69,17 +69,6 @@
 
 inline const int os::default_file_open_flags() { return 0;}
 
-inline DIR* os::opendir(const char* dirname)
-{
-  assert(dirname != NULL, "just checking");
-  return ::opendir(dirname);
-}
-
-inline int os::readdir_buf_size(const char *path)
-{
-  return NAME_MAX + sizeof(dirent) + 1;
-}
-
 inline jlong os::lseek(int fd, jlong offset, int whence) {
   return (jlong) ::lseek64(fd, offset, whence);
 }
@@ -92,17 +81,6 @@
   return ::ftruncate64(fd, length);
 }
 
-inline struct dirent* os::readdir(DIR* dirp, dirent *dbuf)
-{
-  assert(dirp != NULL, "just checking");
-  return ::readdir(dirp);
-}
-
-inline int os::closedir(DIR *dirp) {
-  assert(dirp != NULL, "argument is NULL");
-  return ::closedir(dirp);
-}
-
 // macros for restartable system calls
 
 #define RESTARTABLE(_cmd, _result) do { \
--- a/src/hotspot/os/linux/os_perf_linux.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/os/linux/os_perf_linux.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -895,21 +895,14 @@
 }
 
 int SystemProcessInterface::SystemProcesses::ProcessIterator::next_process() {
-  struct dirent* entry;
-
   if (!is_valid()) {
     return OS_ERR;
   }
 
   do {
-      entry = os::readdir(_dir, _entry);
-    if (entry == NULL) {
-      // error
-      _valid = false;
-      return OS_ERR;
-    }
+    _entry = os::readdir(_dir);
     if (_entry == NULL) {
-      // reached end
+      // Error or reached end.  Could use errno to distinguish those cases.
       _valid = false;
       return OS_ERR;
     }
@@ -926,11 +919,8 @@
 }
 
 bool SystemProcessInterface::SystemProcesses::ProcessIterator::initialize() {
-  _dir = opendir("/proc");
-  _entry = (struct dirent*)NEW_C_HEAP_ARRAY(char, sizeof(struct dirent) + NAME_MAX + 1, mtInternal);
-  if (NULL == _entry) {
-    return false;
-  }
+  _dir = os::opendir("/proc");
+  _entry = NULL;
   _valid = true;
   next_process();
 
@@ -938,11 +928,8 @@
 }
 
 SystemProcessInterface::SystemProcesses::ProcessIterator::~ProcessIterator() {
-  if (_entry != NULL) {
-    FREE_C_HEAP_ARRAY(char, _entry);
-  }
   if (_dir != NULL) {
-    closedir(_dir);
+    os::closedir(_dir);
   }
 }
 
--- a/src/hotspot/os/linux/perfMemory_linux.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/os/linux/perfMemory_linux.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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;
@@ -562,9 +561,8 @@
   // to determine the user name for the process id.
   //
   struct dirent* dentry;
-  char* tdbuf = NEW_C_HEAP_ARRAY(char, os::readdir_buf_size(tmpdirname), mtInternal);
   errno = 0;
-  while ((dentry = os::readdir(tmpdirp, (struct dirent *)tdbuf)) != NULL) {
+  while ((dentry = os::readdir(tmpdirp)) != NULL) {
 
     // check if the directory entry is a hsperfdata file
     if (strncmp(dentry->d_name, PERFDATA_NAME, strlen(PERFDATA_NAME)) != 0) {
@@ -598,9 +596,8 @@
     }
 
     struct dirent* udentry;
-    char* udbuf = NEW_C_HEAP_ARRAY(char, os::readdir_buf_size(usrdir_name), mtInternal);
     errno = 0;
-    while ((udentry = os::readdir(subdirp, (struct dirent *)udbuf)) != NULL) {
+    while ((udentry = os::readdir(subdirp)) != NULL) {
 
       if (filename_to_pid(udentry->d_name) == searchpid) {
         struct stat statbuf;
@@ -644,11 +641,9 @@
       }
     }
     os::closedir(subdirp);
-    FREE_C_HEAP_ARRAY(char, udbuf);
     FREE_C_HEAP_ARRAY(char, usrdir_name);
   }
   os::closedir(tmpdirp);
-  FREE_C_HEAP_ARRAY(char, tdbuf);
 
   return(oldest_user);
 }
@@ -770,10 +765,8 @@
   // opendir/readdir.
   //
   struct dirent* entry;
-  char* dbuf = NEW_C_HEAP_ARRAY(char, os::readdir_buf_size(dirname), mtInternal);
-
   errno = 0;
-  while ((entry = os::readdir(dirp, (struct dirent *)dbuf)) != NULL) {
+  while ((entry = os::readdir(dirp)) != NULL) {
 
     pid_t pid = filename_to_pid(entry->d_name);
 
@@ -810,8 +803,6 @@
 
   // close the directory and reset the current working directory
   close_directory_secure_cwd(dirp, saved_cwd_fd);
-
-  FREE_C_HEAP_ARRAY(char, dbuf);
 }
 
 // make the user specific temporary directory. Returns true if
--- a/src/hotspot/os/posix/os_posix.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/os/posix/os_posix.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -35,6 +35,7 @@
 #include "utilities/macros.hpp"
 #include "utilities/vmError.hpp"
 
+#include <dirent.h>
 #include <dlfcn.h>
 #include <pthread.h>
 #include <signal.h>
@@ -527,6 +528,21 @@
   ::funlockfile(fp);
 }
 
+DIR* os::opendir(const char* dirname) {
+  assert(dirname != NULL, "just checking");
+  return ::opendir(dirname);
+}
+
+struct dirent* os::readdir(DIR* dirp) {
+  assert(dirp != NULL, "just checking");
+  return ::readdir(dirp);
+}
+
+int os::closedir(DIR *dirp) {
+  assert(dirp != NULL, "just checking");
+  return ::closedir(dirp);
+}
+
 // Builds a platform dependent Agent_OnLoad_<lib_name> function name
 // which is used to find statically linked in agents.
 // Parameters:
--- a/src/hotspot/os/solaris/os_perf_solaris.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/os/solaris/os_perf_solaris.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -604,15 +604,14 @@
 }
 
 int SystemProcessInterface::SystemProcesses::ProcessIterator::next_process() {
-  struct dirent* entry;
-
   if (!is_valid()) {
     return OS_ERR;
   }
 
   do {
-    if ((entry = os::readdir(_dir, _entry)) == NULL) {
-      // error
+    _entry = os::readdir(_dir);
+    if (_entry == NULL) {
+      // Error or reached end.  Could use errno to distinguish those cases.
       _valid = false;
       return OS_ERR;
     }
@@ -629,11 +628,8 @@
 }
 
 bool SystemProcessInterface::SystemProcesses::ProcessIterator::initialize() {
-  _dir = opendir("/proc");
-  _entry = (struct dirent*)NEW_C_HEAP_ARRAY(char, sizeof(struct dirent) + _PC_NAME_MAX + 1, mtInternal);
-  if (NULL == _entry) {
-    return false;
-  }
+  _dir = os::opendir("/proc");
+  _entry = NULL;
   _valid = true;
   next_process();
 
@@ -641,12 +637,8 @@
 }
 
 SystemProcessInterface::SystemProcesses::ProcessIterator::~ProcessIterator() {
-  if (_entry != NULL) {
-    FREE_C_HEAP_ARRAY(char, _entry);
-  }
-
   if (_dir != NULL) {
-    closedir(_dir);
+    os::closedir(_dir);
   }
 }
 
--- a/src/hotspot/os/solaris/os_solaris.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/os/solaris/os_solaris.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -4308,9 +4308,7 @@
 
   // Scan the directory
   bool result = true;
-  char buf[sizeof(struct dirent) + MAX_PATH];
-  struct dirent *dbuf = (struct dirent *) buf;
-  while (result && (ptr = readdir(dir, dbuf)) != NULL) {
+  while (result && (ptr = readdir(dir)) != NULL) {
     if (strcmp(ptr->d_name, ".") != 0 && strcmp(ptr->d_name, "..") != 0) {
       result = false;
     }
--- a/src/hotspot/os/solaris/os_solaris.inline.hpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/os/solaris/os_solaris.inline.hpp	Thu Jul 19 10:53:38 2018 -0700
@@ -68,34 +68,6 @@
 
 inline const int os::default_file_open_flags() { return 0;}
 
-inline DIR* os::opendir(const char* dirname) {
-  assert(dirname != NULL, "just checking");
-  return ::opendir(dirname);
-}
-
-inline int os::readdir_buf_size(const char *path) {
-  int size = pathconf(path, _PC_NAME_MAX);
-  return (size < 0 ? MAXPATHLEN : size) + sizeof(dirent) + 1;
-}
-
-inline struct dirent* os::readdir(DIR* dirp, dirent* dbuf) {
-  assert(dirp != NULL, "just checking");
-  dirent* p;
-  int status;
-
-  if((status = ::readdir_r(dirp, dbuf, &p)) != 0) {
-    errno = status;
-    return NULL;
-  } else {
-    return p;
-  }
-}
-
-inline int os::closedir(DIR *dirp) {
-  assert(dirp != NULL, "argument is NULL");
-  return ::closedir(dirp);
-}
-
 //////////////////////////////////////////////////////////////////////////////
 ////////////////////////////////////////////////////////////////////////////////
 
--- a/src/hotspot/os/solaris/perfMemory_solaris.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/os/solaris/perfMemory_solaris.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -523,9 +523,8 @@
   // to determine the user name for the process id.
   //
   struct dirent* dentry;
-  char* tdbuf = NEW_C_HEAP_ARRAY(char, os::readdir_buf_size(tmpdirname), mtInternal);
   errno = 0;
-  while ((dentry = os::readdir(tmpdirp, (struct dirent *)tdbuf)) != NULL) {
+  while ((dentry = os::readdir(tmpdirp)) != NULL) {
 
     // check if the directory entry is a hsperfdata file
     if (strncmp(dentry->d_name, PERFDATA_NAME, strlen(PERFDATA_NAME)) != 0) {
@@ -559,9 +558,8 @@
     }
 
     struct dirent* udentry;
-    char* udbuf = NEW_C_HEAP_ARRAY(char, os::readdir_buf_size(usrdir_name), mtInternal);
     errno = 0;
-    while ((udentry = os::readdir(subdirp, (struct dirent *)udbuf)) != NULL) {
+    while ((udentry = os::readdir(subdirp)) != NULL) {
 
       if (filename_to_pid(udentry->d_name) == vmid) {
         struct stat statbuf;
@@ -605,11 +603,9 @@
       }
     }
     os::closedir(subdirp);
-    FREE_C_HEAP_ARRAY(char, udbuf);
     FREE_C_HEAP_ARRAY(char, usrdir_name);
   }
   os::closedir(tmpdirp);
-  FREE_C_HEAP_ARRAY(char, tdbuf);
 
   return(oldest_user);
 }
@@ -736,10 +732,8 @@
   // opendir/readdir.
   //
   struct dirent* entry;
-  char* dbuf = NEW_C_HEAP_ARRAY(char, os::readdir_buf_size(dirname), mtInternal);
-
   errno = 0;
-  while ((entry = os::readdir(dirp, (struct dirent *)dbuf)) != NULL) {
+  while ((entry = os::readdir(dirp)) != NULL) {
 
     pid_t pid = filename_to_pid(entry->d_name);
 
@@ -778,8 +772,6 @@
 
   // close the directory and reset the current working directory
   close_directory_secure_cwd(dirp, saved_cwd_fd);
-
-  FREE_C_HEAP_ARRAY(char, dbuf);
 }
 
 // make the user specific temporary directory. Returns true if
--- a/src/hotspot/os/windows/os_windows.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/os/windows/os_windows.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -1170,11 +1170,10 @@
   return dirp;
 }
 
-// parameter dbuf unused on Windows
-struct dirent * os::readdir(DIR *dirp, dirent *dbuf) {
+struct dirent * os::readdir(DIR *dirp) {
   assert(dirp != NULL, "just checking");      // hotspot change
   if (dirp->handle == INVALID_HANDLE_VALUE) {
-    return 0;
+    return NULL;
   }
 
   strcpy(dirp->dirent.d_name, dirp->find_data.cFileName);
@@ -1182,7 +1181,7 @@
   if (!FindNextFile(dirp->handle, &dirp->find_data)) {
     if (GetLastError() == ERROR_INVALID_HANDLE) {
       errno = EBADF;
-      return 0;
+      return NULL;
     }
     FindClose(dirp->handle);
     dirp->handle = INVALID_HANDLE_VALUE;
--- a/src/hotspot/os/windows/os_windows.inline.hpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/os/windows/os_windows.inline.hpp	Thu Jul 19 10:53:38 2018 -0700
@@ -57,14 +57,6 @@
   return true;
 }
 
-inline int os::readdir_buf_size(const char *path)
-{
-  /* As Windows doesn't use the directory entry buffer passed to
-     os::readdir() this can be as short as possible */
-
-  return 1;
-}
-
 // Bang the shadow pages if they need to be touched to be mapped.
 inline void os::map_stack_shadow_pages(address sp) {
   // Write to each page of our new frame to force OS mapping.
--- a/src/hotspot/os/windows/perfMemory_windows.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/os/windows/perfMemory_windows.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -318,9 +318,8 @@
   // to determine the user name for the process id.
   //
   struct dirent* dentry;
-  char* tdbuf = NEW_C_HEAP_ARRAY(char, os::readdir_buf_size(tmpdirname), mtInternal);
   errno = 0;
-  while ((dentry = os::readdir(tmpdirp, (struct dirent *)tdbuf)) != NULL) {
+  while ((dentry = os::readdir(tmpdirp)) != NULL) {
 
     // check if the directory entry is a hsperfdata file
     if (strncmp(dentry->d_name, PERFDATA_NAME, strlen(PERFDATA_NAME)) != 0) {
@@ -353,9 +352,8 @@
     }
 
     struct dirent* udentry;
-    char* udbuf = NEW_C_HEAP_ARRAY(char, os::readdir_buf_size(usrdir_name), mtInternal);
     errno = 0;
-    while ((udentry = os::readdir(subdirp, (struct dirent *)udbuf)) != NULL) {
+    while ((udentry = os::readdir(subdirp)) != NULL) {
 
       if (filename_to_pid(udentry->d_name) == vmid) {
         struct stat statbuf;
@@ -407,11 +405,9 @@
       }
     }
     os::closedir(subdirp);
-    FREE_C_HEAP_ARRAY(char, udbuf);
     FREE_C_HEAP_ARRAY(char, usrdir_name);
   }
   os::closedir(tmpdirp);
-  FREE_C_HEAP_ARRAY(char, tdbuf);
 
   return(latest_user);
 }
@@ -642,9 +638,8 @@
   // opendir/readdir.
   //
   struct dirent* entry;
-  char* dbuf = NEW_C_HEAP_ARRAY(char, os::readdir_buf_size(dirname), mtInternal);
   errno = 0;
-  while ((entry = os::readdir(dirp, (struct dirent *)dbuf)) != NULL) {
+  while ((entry = os::readdir(dirp)) != NULL) {
 
     int pid = filename_to_pid(entry->d_name);
 
@@ -685,7 +680,6 @@
     errno = 0;
   }
   os::closedir(dirp);
-  FREE_C_HEAP_ARRAY(char, dbuf);
 }
 
 // create a file mapping object with the requested name, and size
--- a/src/hotspot/os_cpu/aix_ppc/orderAccess_aix_ppc.hpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/os_cpu/aix_ppc/orderAccess_aix_ppc.hpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/os_cpu/bsd_x86/os_bsd_x86.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/os_cpu/linux_ppc/orderAccess_linux_ppc.hpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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_ppc/os_linux_ppc.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/os_cpu/linux_ppc/os_linux_ppc.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -603,7 +603,9 @@
   st->print_cr("Register to memory mapping:");
   st->cr();
 
-  // this is only for the "general purpose" registers
+  st->print("pc ="); print_location(st, (intptr_t)uc->uc_mcontext.regs->nip);
+  st->print("lr ="); print_location(st, (intptr_t)uc->uc_mcontext.regs->link);
+  st->print("ctr ="); print_location(st, (intptr_t)uc->uc_mcontext.regs->ctr);
   for (int i = 0; i < 32; i++) {
     st->print("r%-2d=", i);
     print_location(st, uc->uc_mcontext.regs->gpr[i]);
--- a/src/hotspot/os_cpu/linux_s390/orderAccess_linux_s390.hpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/os_cpu/linux_s390/orderAccess_linux_s390.hpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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_s390/os_linux_s390.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/os_cpu/linux_s390/os_linux_s390.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -628,7 +628,19 @@
 }
 
 void os::print_register_info(outputStream *st, const void *context) {
-  st->print("Not ported\n");
+  if (context == NULL) return;
+
+  const ucontext_t *uc = (const ucontext_t*)context;
+
+  st->print_cr("Register to memory mapping:");
+  st->cr();
+
+  st->print("pc ="); print_location(st, (intptr_t)uc->uc_mcontext.psw.addr);
+  for (int i = 0; i < 16; i++) {
+    st->print("r%-2d=", i);
+    print_location(st, uc->uc_mcontext.gregs[i]);
+  }
+  st->cr();
 }
 
 #ifndef PRODUCT
--- a/src/hotspot/os_cpu/linux_x86/os_linux_x86.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/os_cpu/linux_x86/os_linux_x86.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/adlc/adlparse.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/adlc/archDesc.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/adlc/arena.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/adlc/dfa.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/adlc/dict2.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/adlc/filebuff.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/adlc/formssel.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/adlc/main.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/adlc/output_c.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/aot/aotCodeHeap.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -450,6 +450,7 @@
     SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_object_notify", address, JVMCIRuntime::object_notify);
     SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_object_notifyAll", address, JVMCIRuntime::object_notifyAll);
     SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_OSR_migration_end", address, SharedRuntime::OSR_migration_end);
+    SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_enable_stack_reserved_zone", address, SharedRuntime::enable_stack_reserved_zone);
     SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_resolve_dynamic_invoke", address, CompilerRuntime::resolve_dynamic_invoke);
     SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_resolve_string_by_symbol", address, CompilerRuntime::resolve_string_by_symbol);
     SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_resolve_klass_by_symbol", address, CompilerRuntime::resolve_klass_by_symbol);
@@ -549,7 +550,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/asm/codeBuffer.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/asm/codeBuffer.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/c1/c1_IR.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/c1/c1_LIRGenerator.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/c1/c1_LinearScan.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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/classfile/classListParser.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/classfile/classListParser.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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/javaClasses.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/classfile/javaClasses.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -4129,37 +4129,6 @@
   return loader->obj_field(unnamedModule_offset);
 }
 
-// Caller needs ResourceMark.
-const char* java_lang_ClassLoader::describe_external(const oop loader) {
-  ClassLoaderData *cld = ClassLoaderData::class_loader_data(loader);
-  const char* name = cld->loader_name_and_id();
-
-  // bootstrap loader
-  if (loader == NULL) {
-    return name;
-  }
-
-  bool well_known_loader = SystemDictionary::is_system_class_loader(loader) ||
-                           SystemDictionary::is_platform_class_loader(loader);
-
-  stringStream ss;
-  ss.print("%s (instance of %s", name, loader->klass()->external_name());
-  if (!well_known_loader) {
-    oop pl = java_lang_ClassLoader::parent(loader);
-    ClassLoaderData *pl_cld = ClassLoaderData::class_loader_data(pl);
-    const char* parentName = pl_cld->loader_name_and_id();
-    if (pl != NULL) {
-      ss.print(", child of %s %s", parentName, pl->klass()->external_name());
-    } else {
-      // bootstrap loader
-      ss.print(", child of %s", parentName);
-    }
-  }
-  ss.print(")");
-
-  return ss.as_string();
-}
-
 // Support for java_lang_System
 //
 #define SYSTEM_FIELDS_DO(macro) \
--- a/src/hotspot/share/classfile/javaClasses.hpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/classfile/javaClasses.hpp	Thu Jul 19 10:53:38 2018 -0700
@@ -1310,12 +1310,6 @@
   // Debugging
   friend class JavaClasses;
   friend class ClassFileParser; // access to number_of_fake_fields
-
-  // Describe ClassLoader for exceptions, tracing ...
-  // Prints "<name>" (instance of <classname>, child of "<name>" <classname>).
-  // If a classloader has no name, it prints <unnamed> instead. The output
-  // for well known loaders (system/platform) is abbreviated.
-  static const char* describe_external(const oop loader);
 };
 
 
--- a/src/hotspot/share/classfile/moduleEntry.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/classfile/moduleEntry.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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/systemDictionary.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/classfile/systemDictionary.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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;
@@ -2084,9 +2084,9 @@
       assert(check->is_instance_klass(), "noninstance in systemdictionary");
       if ((defining == true) || (k != check)) {
         throwException = true;
-        ss.print("loader %s", java_lang_ClassLoader::describe_external(class_loader()));
-        ss.print(" attempted duplicate %s definition for %s.",
-                 k->external_kind(), k->external_name());
+        ss.print("loader %s", loader_data->loader_name_and_id());
+        ss.print(" attempted duplicate %s definition for %s. (%s)",
+                 k->external_kind(), k->external_name(), k->class_in_module_of_loader(false, true));
       } else {
         return;
       }
@@ -2100,15 +2100,17 @@
     if (throwException == false) {
       if (constraints()->check_or_update(k, class_loader, name) == false) {
         throwException = true;
-        ss.print("loader constraint violation: loader %s",
-                 java_lang_ClassLoader::describe_external(class_loader()));
+        ss.print("loader constraint violation: loader %s", loader_data->loader_name_and_id());
         ss.print(" wants to load %s %s.",
                  k->external_kind(), k->external_name());
         Klass *existing_klass = constraints()->find_constrained_klass(name, class_loader);
         if (existing_klass->class_loader() != class_loader()) {
-          ss.print(" A different %s with the same name was previously loaded by %s.",
+          ss.print(" A different %s with the same name was previously loaded by %s. (%s)",
                    existing_klass->external_kind(),
-                   java_lang_ClassLoader::describe_external(existing_klass->class_loader()));
+                   existing_klass->class_loader_data()->loader_name_and_id(),
+                   existing_klass->class_in_module_of_loader(false, true));
+        } else {
+          ss.print(" (%s)", k->class_in_module_of_loader(false, true));
         }
       }
     }
--- a/src/hotspot/share/classfile/systemDictionaryShared.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/classfile/systemDictionaryShared.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/classfile/verifier.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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/code/codeCache.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/code/codeCache.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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/codeHeapState.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/code/codeHeapState.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -117,23 +117,24 @@
     _outbuf->print("%s", termString);
 #endif
 
-const char  blobTypeChar[] = {' ', 'N', 'I', 'X', 'Z', 'U', 'R', '?', 'D', 'T', 'E', 'S', 'A', 'M', 'B', 'L' };
+const char  blobTypeChar[] = {' ', 'C', 'N', 'I', 'X', 'Z', 'U', 'R', '?', 'D', 'T', 'E', 'S', 'A', 'M', 'B', 'L' };
 const char* blobTypeName[] = {"noType"
-                             ,     "nMethod (active)"
-                             ,          "nMethod (inactive)"
-                             ,               "nMethod (deopt)"
-                             ,                    "nMethod (zombie)"
-                             ,                         "nMethod (unloaded)"
-                             ,                              "runtime stub"
-                             ,                                   "ricochet stub"
-                             ,                                        "deopt stub"
-                             ,                                             "uncommon trap stub"
-                             ,                                                  "exception stub"
-                             ,                                                       "safepoint stub"
-                             ,                                                            "adapter blob"
-                             ,                                                                 "MH adapter blob"
-                             ,                                                                      "buffer blob"
-                             ,                                                                           "lastType"
+                             ,     "nMethod (under construction)"
+                             ,          "nMethod (active)"
+                             ,               "nMethod (inactive)"
+                             ,                    "nMethod (deopt)"
+                             ,                         "nMethod (zombie)"
+                             ,                              "nMethod (unloaded)"
+                             ,                                   "runtime stub"
+                             ,                                        "ricochet stub"
+                             ,                                             "deopt stub"
+                             ,                                                  "uncommon trap stub"
+                             ,                                                       "exception stub"
+                             ,                                                            "safepoint stub"
+                             ,                                                                 "adapter blob"
+                             ,                                                                      "MH adapter blob"
+                             ,                                                                           "buffer blob"
+                             ,                                                                                "lastType"
                              };
 const char* compTypeName[] = { "none", "c1", "c2", "jvmci" };
 
@@ -156,7 +157,8 @@
 static unsigned int nBlocks_t2            = 0;  // counting "in_use" nmethods only.
 static unsigned int nBlocks_alive         = 0;  // counting "not_used" and "not_entrant" nmethods only.
 static unsigned int nBlocks_dead          = 0;  // counting "zombie" and "unloaded" methods only.
-static unsigned int nBlocks_unloaded      = 0;  // counting "unloaded" nmethods only. This is a transien state.
+static unsigned int nBlocks_inconstr      = 0;  // counting "inconstruction" nmethods only. This is a transient state.
+static unsigned int nBlocks_unloaded      = 0;  // counting "unloaded" nmethods only. This is a transient state.
 static unsigned int nBlocks_stub          = 0;
 
 static struct FreeBlk*          FreeArray = NULL;
@@ -226,6 +228,7 @@
     nBlocks_t2            = CodeHeapStatArray[ix].nBlocks_t2;
     nBlocks_alive         = CodeHeapStatArray[ix].nBlocks_alive;
     nBlocks_dead          = CodeHeapStatArray[ix].nBlocks_dead;
+    nBlocks_inconstr      = CodeHeapStatArray[ix].nBlocks_inconstr;
     nBlocks_unloaded      = CodeHeapStatArray[ix].nBlocks_unloaded;
     nBlocks_stub          = CodeHeapStatArray[ix].nBlocks_stub;
     FreeArray             = CodeHeapStatArray[ix].FreeArray;
@@ -248,6 +251,7 @@
     nBlocks_t2            = 0;
     nBlocks_alive         = 0;
     nBlocks_dead          = 0;
+    nBlocks_inconstr      = 0;
     nBlocks_unloaded      = 0;
     nBlocks_stub          = 0;
     FreeArray             = NULL;
@@ -274,6 +278,7 @@
     CodeHeapStatArray[ix].nBlocks_t2            = nBlocks_t2;
     CodeHeapStatArray[ix].nBlocks_alive         = nBlocks_alive;
     CodeHeapStatArray[ix].nBlocks_dead          = nBlocks_dead;
+    CodeHeapStatArray[ix].nBlocks_inconstr      = nBlocks_inconstr;
     CodeHeapStatArray[ix].nBlocks_unloaded      = nBlocks_unloaded;
     CodeHeapStatArray[ix].nBlocks_stub          = nBlocks_stub;
     CodeHeapStatArray[ix].FreeArray             = FreeArray;
@@ -554,6 +559,7 @@
     nBlocks_t2       = 0;
     nBlocks_alive    = 0;
     nBlocks_dead     = 0;
+    nBlocks_inconstr = 0;
     nBlocks_unloaded = 0;
     nBlocks_stub     = 0;
 
@@ -587,6 +593,7 @@
     size_t       disconnSpace  = 0;
     size_t       notentrSpace  = 0;
     size_t       deadSpace     = 0;
+    size_t       inconstrSpace = 0;
     size_t       unloadedSpace = 0;
     size_t       stubSpace     = 0;
     size_t       freeSpace     = 0;
@@ -692,6 +699,10 @@
                 nBlocks_dead++;
                 deadSpace      += hb_bytelen;
                 break;
+              case nMethod_inconstruction:
+                nBlocks_inconstr++;
+                inconstrSpace  += hb_bytelen;
+                break;
               default:
                 break;
             }
@@ -846,6 +857,7 @@
               StatArray[ix_beg].level     = comp_lvl;
               StatArray[ix_beg].compiler  = cType;
               break;
+            case nMethod_inconstruction: // let's count "in construction" nmethods here.
             case nMethod_alive:
               StatArray[ix_beg].tx_count++;
               StatArray[ix_beg].tx_space += (unsigned short)hb_len;
@@ -902,6 +914,7 @@
               StatArray[ix_end].level     = comp_lvl;
               StatArray[ix_end].compiler  = cType;
               break;
+            case nMethod_inconstruction: // let's count "in construction" nmethods here.
             case nMethod_alive:
               StatArray[ix_beg].tx_count++;
               StatArray[ix_beg].tx_space += (unsigned short)beg_space;
@@ -949,6 +962,7 @@
                 StatArray[ix].level     = comp_lvl;
                 StatArray[ix].compiler  = cType;
                 break;
+              case nMethod_inconstruction: // let's count "in construction" nmethods here.
               case nMethod_alive:
                 StatArray[ix].tx_count++;
                 StatArray[ix].tx_space += (unsigned short)(granule_size>>log2_seg_size);
@@ -971,11 +985,6 @@
         }
       }
     }
-    if (n_methods > 0) {
-      avgTemp = hotnessAccumulator/n_methods;
-    } else {
-      avgTemp = 0;
-    }
     done = true;
 
     if (!insane) {
@@ -990,6 +999,7 @@
       ast->print_cr("  Alive Space    = " SIZE_FORMAT_W(8) "k, nBlocks_alive    = %6d, %10.3f%% of capacity, %10.3f%% of max_capacity", aliveSpace/(size_t)K,    nBlocks_alive,    (100.0*aliveSpace)/size,    (100.0*aliveSpace)/res_size);
       ast->print_cr("    disconnected = " SIZE_FORMAT_W(8) "k, nBlocks_disconn  = %6d, %10.3f%% of capacity, %10.3f%% of max_capacity", disconnSpace/(size_t)K,  nBlocks_disconn,  (100.0*disconnSpace)/size,  (100.0*disconnSpace)/res_size);
       ast->print_cr("    not entrant  = " SIZE_FORMAT_W(8) "k, nBlocks_notentr  = %6d, %10.3f%% of capacity, %10.3f%% of max_capacity", notentrSpace/(size_t)K,  nBlocks_notentr,  (100.0*notentrSpace)/size,  (100.0*notentrSpace)/res_size);
+      ast->print_cr("  inconstrSpace  = " SIZE_FORMAT_W(8) "k, nBlocks_inconstr = %6d, %10.3f%% of capacity, %10.3f%% of max_capacity", inconstrSpace/(size_t)K, nBlocks_inconstr, (100.0*inconstrSpace)/size, (100.0*inconstrSpace)/res_size);
       ast->print_cr("  unloadedSpace  = " SIZE_FORMAT_W(8) "k, nBlocks_unloaded = %6d, %10.3f%% of capacity, %10.3f%% of max_capacity", unloadedSpace/(size_t)K, nBlocks_unloaded, (100.0*unloadedSpace)/size, (100.0*unloadedSpace)/res_size);
       ast->print_cr("  deadSpace      = " SIZE_FORMAT_W(8) "k, nBlocks_dead     = %6d, %10.3f%% of capacity, %10.3f%% of max_capacity", deadSpace/(size_t)K,     nBlocks_dead,     (100.0*deadSpace)/size,     (100.0*deadSpace)/res_size);
       ast->print_cr("  stubSpace      = " SIZE_FORMAT_W(8) "k, nBlocks_stub     = %6d, %10.3f%% of capacity, %10.3f%% of max_capacity", stubSpace/(size_t)K,     nBlocks_stub,     (100.0*stubSpace)/size,     (100.0*stubSpace)/res_size);
@@ -1009,9 +1019,15 @@
       printBox(ast, '-', "Method hotness information at time of this analysis", NULL);
       ast->print_cr("Highest possible method temperature:          %12d", reset_val);
       ast->print_cr("Threshold for method to be considered 'cold': %12.3f", -reset_val + reverse_free_ratio * NmethodSweepActivity);
-      ast->print_cr("min. hotness = %6d", minTemp);
-      ast->print_cr("avg. hotness = %6d", avgTemp);
-      ast->print_cr("max. hotness = %6d", maxTemp);
+      if (n_methods > 0) {
+        avgTemp = hotnessAccumulator/n_methods;
+        ast->print_cr("min. hotness = %6d", minTemp);
+        ast->print_cr("avg. hotness = %6d", avgTemp);
+        ast->print_cr("max. hotness = %6d", maxTemp);
+      } else {
+        avgTemp = 0;
+        ast->print_cr("No hotness data available");
+      }
       STRINGSTREAM_FLUSH("\n")
 
       // This loop is intentionally printing directly to "out".
@@ -1024,6 +1040,9 @@
         if (StatArray[ix].t2_count   > granule_segs) {
           out->print_cr("t2_count[%d]   = %d", ix, StatArray[ix].t2_count);
         }
+        if (StatArray[ix].tx_count   > granule_segs) {
+          out->print_cr("tx_count[%d]   = %d", ix, StatArray[ix].tx_count);
+        }
         if (StatArray[ix].stub_count > granule_segs) {
           out->print_cr("stub_count[%d] = %d", ix, StatArray[ix].stub_count);
         }
@@ -1036,6 +1055,9 @@
         if (StatArray[ix].t2_space   > granule_segs) {
           out->print_cr("t2_space[%d]   = %d", ix, StatArray[ix].t2_space);
         }
+        if (StatArray[ix].tx_space   > granule_segs) {
+          out->print_cr("tx_space[%d]   = %d", ix, StatArray[ix].tx_space);
+        }
         if (StatArray[ix].stub_space > granule_segs) {
           out->print_cr("stub_space[%d] = %d", ix, StatArray[ix].stub_space);
         }
@@ -1043,11 +1065,11 @@
           out->print_cr("dead_space[%d] = %d", ix, StatArray[ix].dead_space);
         }
         //   this cast is awful! I need it because NT/Intel reports a signed/unsigned mismatch.
-        if ((size_t)(StatArray[ix].t1_count+StatArray[ix].t2_count+StatArray[ix].stub_count+StatArray[ix].dead_count) > granule_segs) {
-          out->print_cr("t1_count[%d] = %d, t2_count[%d] = %d, stub_count[%d] = %d", ix, StatArray[ix].t1_count, ix, StatArray[ix].t2_count, ix, StatArray[ix].stub_count);
+        if ((size_t)(StatArray[ix].t1_count+StatArray[ix].t2_count+StatArray[ix].tx_count+StatArray[ix].stub_count+StatArray[ix].dead_count) > granule_segs) {
+          out->print_cr("t1_count[%d] = %d, t2_count[%d] = %d, tx_count[%d] = %d, stub_count[%d] = %d", ix, StatArray[ix].t1_count, ix, StatArray[ix].t2_count, ix, StatArray[ix].tx_count, ix, StatArray[ix].stub_count);
         }
-        if ((size_t)(StatArray[ix].t1_space+StatArray[ix].t2_space+StatArray[ix].stub_space+StatArray[ix].dead_space) > granule_segs) {
-          out->print_cr("t1_space[%d] = %d, t2_space[%d] = %d, stub_space[%d] = %d", ix, StatArray[ix].t1_space, ix, StatArray[ix].t2_space, ix, StatArray[ix].stub_space);
+        if ((size_t)(StatArray[ix].t1_space+StatArray[ix].t2_space+StatArray[ix].tx_space+StatArray[ix].stub_space+StatArray[ix].dead_space) > granule_segs) {
+          out->print_cr("t1_space[%d] = %d, t2_space[%d] = %d, tx_space[%d] = %d, stub_space[%d] = %d", ix, StatArray[ix].t1_space, ix, StatArray[ix].t2_space, ix, StatArray[ix].tx_space, ix, StatArray[ix].stub_space);
         }
       }
 
@@ -1131,7 +1153,7 @@
 
   if (!done || (nBlocks_free == 0)) {
     if (nBlocks_free == 0) {
-      printBox(ast, '-', "no free blocks found in", heapName);
+      printBox(ast, '-', "no free blocks found in ", heapName);
     } else if (!done) {
       ast->print_cr("Free block count mismatch could not be resolved.");
       ast->print_cr("Try to run \"aggregate\" function to update counters");
@@ -1261,9 +1283,10 @@
           ast->print("%5d", nm->hotness_counter());
           //---<  name and signature  >---
           ast->fill_to(67+6);
-          if (nm->is_in_use())      {blob_name = nm->method()->name_and_sig_as_C_string(); }
-          if (nm->is_not_entrant()) {blob_name = nm->method()->name_and_sig_as_C_string(); }
-          if (nm->is_zombie())      {ast->print("%14s", " zombie method"); }
+          if (nm->is_in_use())        {blob_name = nm->method()->name_and_sig_as_C_string(); }
+          if (nm->is_not_entrant())   {blob_name = nm->method()->name_and_sig_as_C_string(); }
+          if (nm->is_not_installed()) {ast->print("%s", " not (yet) installed method "); }
+          if (nm->is_zombie())        {ast->print("%s", " zombie method "); }
           ast->print("%s", blob_name);
         } else {
           //---<  block size in hex  >---
@@ -1657,7 +1680,7 @@
 
   {
     if (nBlocks_alive > 0) {
-      printBox(ast, '-', "not_used/not_entrant nMethod count only, 0x1..0xf. '*' indicates >= 16 blocks, ' ' indicates empty", NULL);
+      printBox(ast, '-', "not_used/not_entrant/not_installed nMethod count only, 0x1..0xf. '*' indicates >= 16 blocks, ' ' indicates empty", NULL);
       STRINGSTREAM_FLUSH_LOCKED("")
 
       granules_per_line = 128;
@@ -1846,7 +1869,7 @@
 
   {
     if (nBlocks_alive > 0) {
-      printBox(ast, '-', "not_used/not_entrant space consumption. ' ' indicates empty, '*' indicates full", NULL);
+      printBox(ast, '-', "not_used/not_entrant/not_installed space consumption. ' ' indicates empty, '*' indicates full", NULL);
 
       granules_per_line = 128;
       for (unsigned int ix = 0; ix < alloc_granules; ix++) {
@@ -2016,7 +2039,7 @@
 
   {
     if (nBlocks_alive > 0) {
-      printBox(ast, '-', "not_used/not_entrant age distribution. '0' indicates youngest 1/256, '8': oldest half, ' ': no age information", NULL);
+      printBox(ast, '-', "not_used/not_entrant/not_installed age distribution. '0' indicates youngest 1/256, '8': oldest half, ' ': no age information", NULL);
       STRINGSTREAM_FLUSH_LOCKED("")
 
       granules_per_line = 128;
@@ -2106,8 +2129,8 @@
       bool blob_initialized = (this_blob != NULL) && (this_blob->header_size() >= 0) && (this_blob->relocation_size() >= 0) &&
                               ((address)this_blob + this_blob->header_size() == (address)(this_blob->relocation_begin())) &&
                               ((address)this_blob + CodeBlob::align_code_offset(this_blob->header_size() + this_blob->relocation_size()) == (address)(this_blob->content_begin())) &&
-                              is_readable_pointer((address)(this_blob->relocation_begin())) &&
-                              is_readable_pointer(this_blob->content_begin());
+                              os::is_readable_pointer((address)(this_blob->relocation_begin())) &&
+                              os::is_readable_pointer(this_blob->content_begin());
       // blob could have been flushed, freed, and merged.
       // this_blob < last_blob is an indicator for that.
       if (blob_initialized && (this_blob > last_blob)) {
@@ -2122,7 +2145,7 @@
         }
         // this_blob->name() could return NULL if no name was given to CTOR. Inlined, maybe invisible on stack
         const char* blob_name = this_blob->name();
-        if ((blob_name == NULL) || !is_readable_pointer(blob_name)) {
+        if ((blob_name == NULL) || !os::is_readable_pointer(blob_name)) {
           blob_name = "<unavailable>";
         }
 
@@ -2146,8 +2169,8 @@
         // this_blob->as_nmethod_or_null() is safe. Inlined, maybe invisible on stack.
         nmethod*    nm     = this_blob->as_nmethod_or_null();
         Method*     method = (nm == NULL) ? NULL : nm->method();  // may be uninitialized, i.e. != NULL, but invalid
-        if ((nm != NULL) && (method != NULL) && (cbType != nMethod_dead) &&
-            is_readable_pointer(method) && is_readable_pointer(method->constants())) {
+        if ((nm != NULL) && (method != NULL) && (cbType != nMethod_dead) && (cbType != nMethod_inconstruction) &&
+            os::is_readable_pointer(method) && os::is_readable_pointer(method->constants())) {
           ResourceMark rm;
           //---<  collect all data to locals as quickly as possible  >---
           unsigned int total_size = nm->total_size();
@@ -2346,7 +2369,7 @@
 }
 
 CodeHeapState::blobType CodeHeapState::get_cbType(CodeBlob* cb) {
-  if ((cb != NULL) && is_readable_pointer(cb)) {
+  if ((cb != NULL) && os::is_readable_pointer(cb)) {
     if (cb->is_runtime_stub())                return runtimeStub;
     if (cb->is_deoptimization_stub())         return deoptimizationStub;
     if (cb->is_uncommon_trap_stub())          return uncommonTrapStub;
@@ -2358,27 +2381,14 @@
 
     nmethod*  nm = cb->as_nmethod_or_null();
     if (nm != NULL) { // no is_readable check required, nm = (nmethod*)cb.
+      if (nm->is_not_installed()) return nMethod_inconstruction;
       if (nm->is_zombie())        return nMethod_dead;
       if (nm->is_unloaded())      return nMethod_unloaded;
+      if (nm->is_in_use())        return nMethod_inuse;
       if (nm->is_alive() && !(nm->is_not_entrant()))   return nMethod_notused;
       if (nm->is_alive())         return nMethod_alive;
-      if (nm->is_in_use())        return nMethod_inuse;
       return nMethod_dead;
     }
   }
   return noType;
 }
-
-// Check if pointer can be read from (4-byte read access).
-// Helps to prove validity of a not-NULL pointer.
-// Returns true in very early stages of VM life when stub is not yet generated.
-#define SAFEFETCH_DEFAULT true
-bool CodeHeapState::is_readable_pointer(const void* p) {
-  if (!CanUseSafeFetch32()) {
-    return SAFEFETCH_DEFAULT;
-  }
-  int* const aligned = (int*) align_down((intptr_t)p, 4);
-  int cafebabe = 0xcafebabe;  // tester value 1
-  int deadbeef = 0xdeadbeef;  // tester value 2
-  return (SafeFetch32(aligned, cafebabe) != cafebabe) || (SafeFetch32(aligned, deadbeef) != deadbeef);
-}
--- a/src/hotspot/share/code/codeHeapState.hpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/code/codeHeapState.hpp	Thu Jul 19 10:53:38 2018 -0700
@@ -43,26 +43,28 @@
   };
 
   enum blobType {
-     noType = 0,         // must be! due to initialization by memset to zero
-     // The nMethod_* values correspond 1:1 to the CompiledMethod enum values.
-     nMethod_inuse,       // executable. This is the "normal" state for a nmethod.
-     nMethod_notused,     // assumed inactive, marked not entrant. Could be revived if necessary.
-     nMethod_notentrant,  // no new activations allowed, marked for deoptimization. Old activations may still exist.
-                         // Will transition to "zombie" after all activations are gone.
-     nMethod_zombie,      // No more activations exist, ready for purge (remove from code cache).
-     nMethod_unloaded,    // No activations exist, should not be called. Transient state on the way to "zombie".
-     nMethod_alive = nMethod_notentrant, // Combined state: nmethod may have activations, thus can't be purged.
-     nMethod_dead  = nMethod_zombie,     // Combined state: nmethod does not have any activations.
-     runtimeStub   = nMethod_unloaded + 1,
-     ricochetStub,
-     deoptimizationStub,
-     uncommonTrapStub,
-     exceptionStub,
-     safepointStub,
-     adapterBlob,
-     mh_adapterBlob,
-     bufferBlob,
-     lastType
+    noType = 0,             // must be! due to initialization by memset to zero
+    // The nMethod_* values correspond to the CompiledMethod enum values.
+    // We can't use the CompiledMethod values 1:1 because we depend on noType == 0.
+    nMethod_inconstruction, // under construction. Very soon, the type will transition to "in_use".
+    nMethod_inuse,          // executable. This is the "normal" state for a nmethod.
+    nMethod_notused,        // assumed inactive, marked not entrant. Could be revived if necessary.
+    nMethod_notentrant,     // no new activations allowed, marked for deoptimization. Old activations may still exist.
+                            // Will transition to "zombie" after all activations are gone.
+    nMethod_zombie,         // No more activations exist, ready for purge (remove from code cache).
+    nMethod_unloaded,       // No activations exist, should not be called. Transient state on the way to "zombie".
+    nMethod_alive = nMethod_notentrant, // Combined state: nmethod may have activations, thus can't be purged.
+    nMethod_dead  = nMethod_zombie,     // Combined state: nmethod does not have any activations.
+    runtimeStub   = nMethod_unloaded + 1,
+    ricochetStub,
+    deoptimizationStub,
+    uncommonTrapStub,
+    exceptionStub,
+    safepointStub,
+    adapterBlob,
+    mh_adapterBlob,
+    bufferBlob,
+    lastType
   };
 
  private:
@@ -93,7 +95,6 @@
   static void print_line_delim(outputStream* out, bufferedStream *sst, char* low_bound, unsigned int ix, unsigned int gpl);
   static void print_line_delim(outputStream* out, outputStream *sst, char* low_bound, unsigned int ix, unsigned int gpl);
   static blobType get_cbType(CodeBlob* cb);
-  static bool is_readable_pointer(const void* p);
 
  public:
   static void discard(outputStream* out, CodeHeap* heap);
@@ -214,6 +215,7 @@
     unsigned int  nBlocks_t2;
     unsigned int  nBlocks_alive;
     unsigned int  nBlocks_dead;
+    unsigned int  nBlocks_inconstr;
     unsigned int  nBlocks_unloaded;
     unsigned int  nBlocks_stub;
     // FreeBlk data
--- a/src/hotspot/share/compiler/compileLog.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/compiler/compileLog.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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/disassembler.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/compiler/disassembler.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/compiler/disassembler.hpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/compiler/methodLiveness.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/compiler/oopMap.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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/interpreter/bytecodeInterpreter.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/interpreter/bytecodeInterpreter.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/interpreter/linkResolver.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -669,23 +669,28 @@
     SystemDictionary::check_signature_loaders(link_info.signature(), current_loader,
                                               resolved_loader, true, CHECK);
   if (failed_type_symbol != NULL) {
-    const char* msg = "loader constraint violation: when resolving %s"
-      " \"%s\" the class loader %s of the current class, %s,"
-      " and the class loader %s for the method's defining class, %s, have"
-      " different Class objects for the type %s used in the signature";
-    char* sig = link_info.method_string();
-    const char* loader1_name = java_lang_ClassLoader::describe_external(current_loader());
-    char* current = link_info.current_klass()->name()->as_C_string();
-    const char* loader2_name = java_lang_ClassLoader::describe_external(resolved_loader());
-    char* target = resolved_method->method_holder()->name()->as_C_string();
-    char* failed_type_name = failed_type_symbol->as_C_string();
-    size_t buflen = strlen(msg) + strlen(sig) + strlen(loader1_name) +
-      strlen(current) + strlen(loader2_name) + strlen(target) +
-      strlen(failed_type_name) + strlen(method_type) + 1;
-    char* buf = NEW_RESOURCE_ARRAY_IN_THREAD(THREAD, char, buflen);
-    jio_snprintf(buf, buflen, msg, method_type, sig, loader1_name, current, loader2_name,
-                 target, failed_type_name);
-    THROW_MSG(vmSymbols::java_lang_LinkageError(), buf);
+    Klass* current_class = link_info.current_klass();
+    ClassLoaderData* current_loader_data = current_class->class_loader_data();
+    assert(current_loader_data != NULL, "current class has no class loader data");
+    Klass* resolved_method_class = resolved_method->method_holder();
+    ClassLoaderData* target_loader_data = resolved_method_class->class_loader_data();
+    assert(target_loader_data != NULL, "resolved method's class has no class loader data");
+
+    stringStream ss;
+    ss.print("loader constraint violation: when resolving %s"
+             " \"%s\" the class loader %s of the current class, %s,"
+             " and the class loader %s for the method's defining class, %s, have"
+             " different Class objects for the type %s used in the signature (%s; %s)",
+             method_type,
+             link_info.method_string(),
+             current_loader_data->loader_name_and_id(),
+             current_class->name()->as_C_string(),
+             target_loader_data->loader_name_and_id(),
+             resolved_method_class->name()->as_C_string(),
+             failed_type_symbol->as_C_string(),
+             current_class->class_in_module_of_loader(false, true),
+             resolved_method_class->class_in_module_of_loader(false, true));
+    THROW_MSG(vmSymbols::java_lang_LinkageError(), ss.as_string());
   }
 }
 
@@ -702,23 +707,23 @@
                                               false,
                                               CHECK);
   if (failed_type_symbol != NULL) {
-    const char* msg = "loader constraint violation: when resolving field"
-      " \"%s\" of type %s, the class loader %s of the current class, "
-      "%s, and the class loader %s for the field's defining "
-      "type, %s, have different Class objects for type %s";
-    const char* field_name = field->as_C_string();
-    const char* loader1_name = java_lang_ClassLoader::describe_external(ref_loader());
-    const char* sel = sel_klass->external_name();
-    const char* loader2_name = java_lang_ClassLoader::describe_external(sel_loader());
+    stringStream ss;
     const char* failed_type_name = failed_type_symbol->as_klass_external_name();
-    const char* curr_klass_name = current_klass->external_name();
-    size_t buflen = strlen(msg) + strlen(field_name) + 2 * strlen(failed_type_name) +
-                    strlen(loader1_name) + strlen(curr_klass_name) +
-                    strlen(loader2_name) + strlen(sel) + 1;
-    char* buf = NEW_RESOURCE_ARRAY_IN_THREAD(THREAD, char, buflen);
-    jio_snprintf(buf, buflen, msg, field_name, failed_type_name, loader1_name,
-                 curr_klass_name, loader2_name, sel, failed_type_name);
-    THROW_MSG(vmSymbols::java_lang_LinkageError(), buf);
+
+    ss.print("loader constraint violation: when resolving field"
+             " \"%s\" of type %s, the class loader %s of the current class, "
+             "%s, and the class loader %s for the field's defining "
+             "type, %s, have different Class objects for type %s (%s; %s)",
+             field->as_C_string(),
+             failed_type_name,
+             current_klass->class_loader_data()->loader_name_and_id(),
+             current_klass->external_name(),
+             sel_klass->class_loader_data()->loader_name_and_id(),
+             sel_klass->external_name(),
+             failed_type_name,
+             current_klass->class_in_module_of_loader(false, true),
+             sel_klass->class_in_module_of_loader(false, true));
+    THROW_MSG(vmSymbols::java_lang_LinkageError(), ss.as_string());
   }
 }
 
--- a/src/hotspot/share/interpreter/templateInterpreterGenerator.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/interpreter/templateInterpreterGenerator.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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/recorder/repository/jfrRepository.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/jfr/recorder/repository/jfrRepository.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -241,11 +241,7 @@
       return;
     }
     struct dirent* dentry;
-    char* dir_buffer = NEW_RESOURCE_ARRAY_RETURN_NULL(char, os::readdir_buf_size(_repo));
-    if (dir_buffer == NULL) {
-      return;
-    }
-    while ((dentry = os::readdir(dirp, (struct dirent*)dir_buffer)) != NULL) {
+    while ((dentry = os::readdir(dirp)) != NULL) {
       const char* const entry_path = filter(dentry->d_name);
       if (NULL != entry_path) {
         _files->append(entry_path);
--- a/src/hotspot/share/jvmci/jvmciCodeInstaller.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/jvmci/jvmciCodeInstaller.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/jvmci/jvmciCompilerToVM.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/libadt/dict.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/libadt/set.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/libadt/vectset.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/logging/logOutput.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/memory/arena.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/memory/filemap.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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
--- a/src/hotspot/share/memory/metaspace.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/memory/metaspace.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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/virtualspace.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/memory/virtualspace.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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/arrayKlass.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/oops/arrayKlass.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -100,7 +100,6 @@
 // Initialization of vtables and mirror object is done separatly from base_create_array_klass,
 // since a GC can happen. At this point all instance variables of the ArrayKlass must be setup.
 void ArrayKlass::complete_create_array_klass(ArrayKlass* k, Klass* super_klass, ModuleEntry* module_entry, TRAPS) {
-  ResourceMark rm(THREAD);
   k->initialize_supers(super_klass, NULL, CHECK);
   k->vtable().initialize_vtable(false, CHECK);
 
--- a/src/hotspot/share/oops/instanceKlass.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/oops/instanceKlass.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -821,7 +821,6 @@
       ClassLoaderData * loader_data = class_loader_data();
       if (!(is_shared() &&
             loader_data->is_the_null_class_loader_data())) {
-        ResourceMark rm(THREAD);
         vtable().initialize_vtable(true, CHECK_false);
         itable().initialize_itable(true, CHECK_false);
       }
@@ -2326,7 +2325,6 @@
     // point to old or obsolete entries.  RedefineClasses doesn't fix up
     // vtables in the shared system dictionary, only the main one.
     // It also redefines the itable too so fix that too.
-    ResourceMark rm(THREAD);
     vtable().initialize_vtable(false, CHECK);
     itable().initialize_itable(false, CHECK);
   }
--- a/src/hotspot/share/oops/klassVtable.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/oops/klassVtable.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -257,7 +257,7 @@
     // Interfaces do not need interface methods in their vtables
     // This includes miranda methods and during later processing, default methods
     if (!ik()->is_interface()) {
-      initialized = fill_in_mirandas(initialized);
+      initialized = fill_in_mirandas(initialized, THREAD);
     }
 
     // In class hierarchies where the accessibility is not increasing (i.e., going from private ->
@@ -364,7 +364,7 @@
 bool klassVtable::update_inherited_vtable(InstanceKlass* klass, const methodHandle& target_method,
                                           int super_vtable_len, int default_index,
                                           bool checkconstraints, TRAPS) {
-  ResourceMark rm;
+  ResourceMark rm(THREAD);
   bool allocate_new = true;
   assert(klass->is_instance_klass(), "must be InstanceKlass");
 
@@ -506,24 +506,21 @@
                                                         super_loader, true,
                                                         CHECK_(false));
             if (failed_type_symbol != NULL) {
-              const char* msg = "loader constraint violation for class %s: when selecting "
-                "overriding method %s the class loader %s of the "
-                "selected method's type %s, and the class loader %s for its super "
-                "type %s have different Class objects for the type %s used in the signature";
-              const char* curr_class = klass->external_name();
-              const char* method = target_method()->name_and_sig_as_C_string();
-              const char* loader1 = java_lang_ClassLoader::describe_external(target_loader());
-              const char* sel_class = target_klass->external_name();
-              const char* loader2 = java_lang_ClassLoader::describe_external(super_loader());
-              const char* super_class = super_klass->external_name();
-              const char* failed_type_name = failed_type_symbol->as_klass_external_name();
-              size_t buflen = strlen(msg) + strlen(curr_class) + strlen(method) +
-                strlen(loader1) + strlen(sel_class) + strlen(loader2) +
-                strlen(super_class) + strlen(failed_type_name);
-              char* buf = NEW_RESOURCE_ARRAY_IN_THREAD(THREAD, char, buflen);
-              jio_snprintf(buf, buflen, msg, curr_class, method, loader1, sel_class, loader2,
-                           super_class, failed_type_name);
-              THROW_MSG_(vmSymbols::java_lang_LinkageError(), buf, false);
+              stringStream ss;
+              ss.print("loader constraint violation for class %s: when selecting "
+                       "overriding method %s the class loader %s of the "
+                       "selected method's type %s, and the class loader %s for its super "
+                       "type %s have different Class objects for the type %s used in the signature (%s; %s)",
+                       klass->external_name(),
+                       target_method()->name_and_sig_as_C_string(),
+                       target_klass->class_loader_data()->loader_name_and_id(),
+                       target_klass->external_name(),
+                       super_klass->class_loader_data()->loader_name_and_id(),
+                       super_klass->external_name(),
+                       failed_type_symbol->as_klass_external_name(),
+                       target_klass->class_in_module_of_loader(false, true),
+                       super_klass->class_in_module_of_loader(false, true));
+              THROW_MSG_(vmSymbols::java_lang_LinkageError(), ss.as_string(), false);
             }
           }
         }
@@ -902,7 +899,8 @@
 // return the new value of initialized.
 // Miranda methods use vtable entries, but do not get assigned a vtable_index
 // The vtable_index is discovered by searching from the end of the vtable
-int klassVtable::fill_in_mirandas(int initialized) {
+int klassVtable::fill_in_mirandas(int initialized, TRAPS) {
+  ResourceMark rm(THREAD);
   GrowableArray<Method*> mirandas(20);
   get_mirandas(&mirandas, NULL, ik()->super(), ik()->methods(),
                ik()->default_methods(), ik()->local_interfaces(),
@@ -910,7 +908,6 @@
   for (int i = 0; i < mirandas.length(); i++) {
     if (log_develop_is_enabled(Trace, vtables)) {
       Method* meth = mirandas.at(i);
-      ResourceMark rm(Thread::current());
       LogTarget(Trace, vtables) lt;
       LogStream ls(lt);
       if (meth != NULL) {
@@ -1085,7 +1082,7 @@
   if (_klass->is_interface()) {
     // This needs to go after vtable indices are assigned but
     // before implementors need to know the number of itable indices.
-    assign_itable_indices_for_interface(_klass);
+    assign_itable_indices_for_interface(_klass, THREAD);
   }
 
   // Cannot be setup doing bootstrapping, interfaces don't have
@@ -1098,6 +1095,7 @@
   guarantee(size_offset_table() >= 1, "too small");
   int num_interfaces = size_offset_table() - 1;
   if (num_interfaces > 0) {
+    ResourceMark rm(THREAD);
     log_develop_debug(itables)("%3d: Initializing itables for %s", ++initialize_count,
                        _klass->name()->as_C_string());
 
@@ -1130,8 +1128,9 @@
   return true;
 }
 
-int klassItable::assign_itable_indices_for_interface(Klass* klass) {
+int klassItable::assign_itable_indices_for_interface(Klass* klass, TRAPS) {
   // an interface does not have an itable, but its methods need to be numbered
+  ResourceMark rm(THREAD);
   log_develop_debug(itables)("%3d: Initializing itable indices for interface %s",
                              ++initialize_count, klass->name()->as_C_string());
   Array<Method*>* methods = InstanceKlass::cast(klass)->methods();
@@ -1143,7 +1142,6 @@
       assert(!m->is_final_method(), "no final interface methods");
       // If m is already assigned a vtable index, do not disturb it.
       if (log_develop_is_enabled(Trace, itables)) {
-        ResourceMark rm;
         LogTarget(Trace, itables) lt;
         LogStream ls(lt);
         assert(m != NULL, "methods can never be null");
@@ -1241,25 +1239,22 @@
                                                       interface_loader,
                                                       true, CHECK);
           if (failed_type_symbol != NULL) {
-            const char* msg = "loader constraint violation in interface itable"
-              " initialization for class %s: when selecting method %s the"
-              " class loader %s for super interface %s, and the class"
-              " loader %s of the selected method's type, %s have"
-              " different Class objects for the type %s used in the signature";
-            const char* current = _klass->external_name();
-            const char* sig = m->name_and_sig_as_C_string();
-            const char* loader1 = java_lang_ClassLoader::describe_external(interface_loader());
-            const char* iface = InstanceKlass::cast(interf)->external_name();
-            const char* loader2 = java_lang_ClassLoader::describe_external(method_holder_loader());
-            const char* mclass = target()->method_holder()->external_name();
-            const char* failed_type_name = failed_type_symbol->as_klass_external_name();
-            size_t buflen = strlen(msg) + strlen(current) + strlen(sig) +
-              strlen(loader1) + strlen(iface) + strlen(loader2) + strlen(mclass) +
-              strlen(failed_type_name);
-            char* buf = NEW_RESOURCE_ARRAY_IN_THREAD(THREAD, char, buflen);
-            jio_snprintf(buf, buflen, msg, current, sig, loader1, iface,
-                         loader2, mclass, failed_type_name);
-            THROW_MSG(vmSymbols::java_lang_LinkageError(), buf);
+            stringStream ss;
+            ss.print("loader constraint violation in interface itable"
+                     " initialization for class %s: when selecting method %s the"
+                     " class loader %s for super interface %s, and the class"
+                     " loader %s of the selected method's type, %s have"
+                     " different Class objects for the type %s used in the signature (%s; %s)",
+                     _klass->external_name(),
+                     m->name_and_sig_as_C_string(),
+                     interf->class_loader_data()->loader_name_and_id(),
+                     interf->external_name(),
+                     target()->method_holder()->class_loader_data()->loader_name_and_id(),
+                     target()->method_holder()->external_name(),
+                     failed_type_symbol->as_klass_external_name(),
+                     interf->class_in_module_of_loader(false, true),
+                     target()->method_holder()->class_in_module_of_loader(false, true));
+            THROW_MSG(vmSymbols::java_lang_LinkageError(), ss.as_string());
           }
         }
       }
@@ -1507,6 +1502,7 @@
   oop* end_of_obj = (oop*)_klass + _klass->size();
   oop* end_of_vtable = (oop *)&table()[_length];
   if (end_of_vtable > end_of_obj) {
+    ResourceMark rm;
     fatal("klass %s: klass object too short (vtable extends beyond end)",
           _klass->internal_name());
   }
--- a/src/hotspot/share/oops/klassVtable.hpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/oops/klassVtable.hpp	Thu Jul 19 10:53:38 2018 -0700
@@ -141,7 +141,7 @@
 
   // support for miranda methods
   bool is_miranda_entry_at(int i);
-  int fill_in_mirandas(int initialized);
+  int fill_in_mirandas(int initialized, TRAPS);
   static bool is_miranda(Method* m, Array<Method*>* class_methods,
                          Array<Method*>* default_methods, const Klass* super,
                          bool is_interface);
@@ -328,7 +328,7 @@
 #endif // INCLUDE_JVMTI
 
   // Setup of itable
-  static int assign_itable_indices_for_interface(Klass* klass);
+  static int assign_itable_indices_for_interface(Klass* klass, TRAPS);
   static int method_count_for_interface(Klass* klass);
   static int compute_itable_size(Array<Klass*>* transitive_interfaces);
   static void setup_itable_offset_table(InstanceKlass* klass);
--- a/src/hotspot/share/opto/arraycopynode.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/opto/arraycopynode.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/opto/bytecodeInfo.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/opto/callnode.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/opto/compile.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/opto/gcm.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/opto/ifnode.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/opto/indexSet.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/opto/lcm.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/opto/loopPredicate.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/opto/loopTransform.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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.");
--- a/src/hotspot/share/opto/macro.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/opto/macro.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/opto/memnode.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/opto/mulnode.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/opto/node.hpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/opto/output.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/opto/parse1.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/opto/reg_split.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/opto/runtime.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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/type.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/opto/type.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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/jvmti.xml	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/prims/jvmti.xml	Thu Jul 19 10:53:38 2018 -0700
@@ -10369,7 +10369,7 @@
         <description>
           Can generate sampled allocation events.
           If this capability is enabled then the heap sampling method
-	  <functionlink id="SetHeapSamplingRate"></functionlink> can be
+	  <functionlink id="SetHeapSamplingInterval"></functionlink> can be
 	  called and <eventlink id="SampledObjectAlloc"></eventlink> events can be generated.
         </description>
       </capabilityfield>
@@ -11552,41 +11552,47 @@
   </category>
 
   <category id="heap_monitoring" label="Heap Monitoring">
-    <function id="SetHeapSamplingRate" phase="onload" num="156" since="11">
-      <synopsis>Set Heap Sampling Rate</synopsis>
+    <function id="SetHeapSamplingInterval" phase="onload" num="156" since="11">
+      <synopsis>Set Heap Sampling Interval</synopsis>
       <description>
         Generate a <eventlink id="SampledObjectAlloc"/> event when objects are allocated.
 	Each thread keeps a counter of bytes allocated. The event will only be generated
-	when that counter exceeds an average of <paramlink id="sampling_rate"></paramlink>
+	when that counter exceeds an average of <paramlink id="sampling_interval"></paramlink>
 	since the last sample.
         <p/>
-        Setting <paramlink id="sampling_rate"></paramlink> to 0 will cause an event to be
-	generated by each allocation supported by the system.
+        Setting <paramlink id="sampling_interval"></paramlink> to 0 will cause an event to be
+        generated by each allocation supported by the system once the new interval is taken into account.
+        <p/>
+        Note that updating the new sampling interval might take various number of allocations
+        to provoke internal data structure updates.  Therefore it is important to
+        consider the sampling interval as an average. This includes the interval 0, where events
+        might not be generated straight away for each allocation.
       </description>
       <origin>new</origin>
       <capabilities>
         <required id="can_generate_sampled_object_alloc_events"></required>
       </capabilities>
       <parameters>
-        <param id="sampling_rate">
+        <param id="sampling_interval">
           <jint/>
           <description>
-            The sampling rate in bytes. The sampler uses a statistical approach to
-            generate an event, on average, once for every <paramlink id="sampling_rate"/> bytes of
+            The sampling interval in bytes. The sampler uses a statistical approach to
+            generate an event, on average, once for every <paramlink id="sampling_interval"/> bytes of
 	    memory allocated by a given thread.
             <p/>
-            Passing 0 as a sampling rate generates a sample for every allocation.
+            Once the new sampling interval is taken into account, 0 as a sampling interval will generate
+            a sample for every allocation.
             <p/>
-            Note: The overhead of this feature is directly correlated with the sampling rate. 
-	    A high sampling rate, such as 1024 bytes, will incur a high overhead.
-	    A lower rate, such as 1024KB, will have a much lower overhead.  Sampling should only
+            Note: The overhead of this feature is directly correlated with the sampling interval.
+	    A high sampling interval, such as 1024 bytes, will incur a high overhead.
+	    A lower interval, such as 1024KB, will have a much lower overhead.  Sampling should only
 	    be used with an understanding that it may impact performance.
           </description>
         </param>
       </parameters>
       <errors>
         <error id="JVMTI_ERROR_ILLEGAL_ARGUMENT">
-          <paramlink id="sampling_rate"></paramlink> is less than zero.
+          <paramlink id="sampling_interval"></paramlink> is less than zero.
         </error>
       </errors>
     </function>
@@ -13586,20 +13592,23 @@
     id="SampledObjectAlloc" const="JVMTI_EVENT_SAMPLED_OBJECT_ALLOC" num="86" since="11">
     <description>
       Sent when an allocated object is sampled.
-      By default, the sampling rate is a geometric variable with a 512KB mean.  
+      By default, the sampling interval is set to 512KB. The sampling is semi-random to avoid
+      pattern-based bias and provides an approximate overall average interval over long periods of
+      sampling.
+      <p/>
       Each thread tracks how many bytes it has allocated since it sent the last event.
-      When the number of bytes exceeds the sampling rate, it will send another event.
+      When the number of bytes exceeds the sampling interval, it will send another event.
       This implies that, on average, one object will be sampled every time a thread has
       allocated 512KB bytes since the last sample.
       <p/>
-      Note that this is a geometric variable: it will not sample every 512KB precisely.
+      Note that the sampler is pseudo-random: it will not sample every 512KB precisely.
       The goal of this is to ensure high quality sampling even if allocation is
       happening in a fixed pattern (i.e., the same set of objects are being allocated
       every 512KB).
       <p/>
-      If another sampling rate is required, the user can call
-      <functionlink id="SetHeapSamplingRate"></functionlink> with a strictly positive integer value, representing
-      the new sampling rate.
+      If another sampling interval is required, the user can call
+      <functionlink id="SetHeapSamplingInterval"></functionlink> with a strictly positive integer value,
+      representing the new sampling interval.
       <p/>
       This event is sent once the sampled allocation has been performed.  It provides the object, stack trace
       of the allocation, the thread allocating, the size of allocation, and the object's class.
--- a/src/hotspot/share/prims/jvmtiEnv.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/prims/jvmtiEnv.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -3644,13 +3644,13 @@
 } /* end GetAvailableProcessors */
 
 jvmtiError
-JvmtiEnv::SetHeapSamplingRate(jint sampling_rate) {
-  if (sampling_rate < 0) {
+JvmtiEnv::SetHeapSamplingInterval(jint sampling_interval) {
+  if (sampling_interval < 0) {
     return JVMTI_ERROR_ILLEGAL_ARGUMENT;
   }
-  ThreadHeapSampler::set_sampling_rate(sampling_rate);
+  ThreadHeapSampler::set_sampling_interval(sampling_interval);
   return JVMTI_ERROR_NONE;
-} /* end SetHeapSamplingRate */
+} /* end SetHeapSamplingInterval */
 
   //
   // System Properties functions
--- a/src/hotspot/share/prims/jvmtiEnvBase.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/prims/jvmtiEnvBase.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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/prims/jvmtiRedefineClasses.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/prims/jvmtiRedefineClasses.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -4098,17 +4098,14 @@
 
   // Initialize the vtable and interface table after
   // methods have been rewritten
-  {
-    ResourceMark rm(THREAD);
-    // no exception should happen here since we explicitly
-    // do not check loader constraints.
-    // compare_and_normalize_class_versions has already checked:
-    //  - classloaders unchanged, signatures unchanged
-    //  - all instanceKlasses for redefined classes reused & contents updated
-    the_class->vtable().initialize_vtable(false, THREAD);
-    the_class->itable().initialize_itable(false, THREAD);
-    assert(!HAS_PENDING_EXCEPTION || (THREAD->pending_exception()->is_a(SystemDictionary::ThreadDeath_klass())), "redefine exception");
-  }
+  // no exception should happen here since we explicitly
+  // do not check loader constraints.
+  // compare_and_normalize_class_versions has already checked:
+  //  - classloaders unchanged, signatures unchanged
+  //  - all instanceKlasses for redefined classes reused & contents updated
+  the_class->vtable().initialize_vtable(false, THREAD);
+  the_class->itable().initialize_itable(false, THREAD);
+  assert(!HAS_PENDING_EXCEPTION || (THREAD->pending_exception()->is_a(SystemDictionary::ThreadDeath_klass())), "redefine exception");
 
   // Leave arrays of jmethodIDs and itable index cache unchanged
 
--- a/src/hotspot/share/runtime/arguments.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/runtime/arguments.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -561,7 +561,6 @@
   { "SharedMiscDataSize",            JDK_Version::undefined(), JDK_Version::jdk(10), JDK_Version::undefined() },
   { "SharedMiscCodeSize",            JDK_Version::undefined(), JDK_Version::jdk(10), JDK_Version::undefined() },
   { "UseUTCFileTimestamp",           JDK_Version::undefined(), JDK_Version::jdk(11), JDK_Version::jdk(12) },
-  { "UseAppCDS",                     JDK_Version::undefined(), JDK_Version::jdk(11), JDK_Version::jdk(12) },
   { "InlineNotify",                  JDK_Version::undefined(), JDK_Version::jdk(11), JDK_Version::jdk(12) },
   { "EnableTracing",                 JDK_Version::undefined(), JDK_Version::jdk(11), JDK_Version::jdk(12) },
   { "UseLockedTracing",              JDK_Version::undefined(), JDK_Version::jdk(11), JDK_Version::jdk(12) },
@@ -1274,13 +1273,9 @@
     char stripped_argname[BUFLEN+1]; // +1 for '\0'
     jio_snprintf(stripped_argname, arg_len+1, "%s", argname); // +1 for '\0'
     if (is_obsolete_flag(stripped_argname, &since)) {
-      if (strcmp(stripped_argname, "UseAppCDS") != 0) {
-        char version[256];
-        since.to_string(version, sizeof(version));
-        warning("Ignoring option %s; support was removed in %s", stripped_argname, version);
-      } else {
-        warning("Ignoring obsolete option UseAppCDS; AppCDS is automatically enabled");
-      }
+      char version[256];
+      since.to_string(version, sizeof(version));
+      warning("Ignoring option %s; support was removed in %s", stripped_argname, version);
       return true;
     }
 #ifndef PRODUCT
--- a/src/hotspot/share/runtime/deoptimization.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/runtime/deoptimization.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/runtime/flags/jvmFlag.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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/os.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/runtime/os.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -995,6 +995,22 @@
   st->print_cr(" elapsed time: %d seconds (%dd %dh %dm %ds)", eltime, eldays, elhours, elmins, elsecs);
 }
 
+
+// Check if pointer can be read from (4-byte read access).
+// Helps to prove validity of a not-NULL pointer.
+// Returns true in very early stages of VM life when stub is not yet generated.
+#define SAFEFETCH_DEFAULT true
+bool os::is_readable_pointer(const void* p) {
+  if (!CanUseSafeFetch32()) {
+    return SAFEFETCH_DEFAULT;
+  }
+  int* const aligned = (int*) align_down((intptr_t)p, 4);
+  int cafebabe = 0xcafebabe;  // tester value 1
+  int deadbeef = 0xdeadbeef;  // tester value 2
+  return (SafeFetch32(aligned, cafebabe) != cafebabe) || (SafeFetch32(aligned, deadbeef) != deadbeef);
+}
+
+
 // moved from debug.cpp (used to be find()) but still called from there
 // The verbose parameter is only set by the debug code in one case
 void os::print_location(outputStream* st, intptr_t x, bool verbose) {
@@ -1094,21 +1110,26 @@
       return;
     }
   }
-  if (JNIHandles::is_global_handle((jobject) addr)) {
-    st->print_cr(INTPTR_FORMAT " is a global jni handle", p2i(addr));
-    return;
-  }
-  if (JNIHandles::is_weak_global_handle((jobject) addr)) {
-    st->print_cr(INTPTR_FORMAT " is a weak global jni handle", p2i(addr));
-    return;
+
+  bool accessible = is_readable_pointer(addr);
+
+  if (align_down((intptr_t)addr, sizeof(intptr_t)) != 0 && accessible) {
+    if (JNIHandles::is_global_handle((jobject) addr)) {
+      st->print_cr(INTPTR_FORMAT " is a global jni handle", p2i(addr));
+      return;
+    }
+    if (JNIHandles::is_weak_global_handle((jobject) addr)) {
+      st->print_cr(INTPTR_FORMAT " is a weak global jni handle", p2i(addr));
+      return;
+    }
+#ifndef PRODUCT
+    // we don't keep the block list in product mode
+    if (JNIHandles::is_local_handle((jobject) addr)) {
+      st->print_cr(INTPTR_FORMAT " is a local jni handle", p2i(addr));
+      return;
+    }
+#endif
   }
-#ifndef PRODUCT
-  // we don't keep the block list in product mode
-  if (JNIHandles::is_local_handle((jobject) addr)) {
-    st->print_cr(INTPTR_FORMAT " is a local jni handle", p2i(addr));
-    return;
-  }
-#endif
 
   for (JavaThreadIteratorWithHandle jtiwh; JavaThread *thread = jtiwh.next(); ) {
     // Check for privilege stack
@@ -1155,6 +1176,11 @@
     return;
   }
 
+  if (accessible) {
+    st->print_cr(INTPTR_FORMAT " points into unknown readable memory", p2i(addr));
+    return;
+  }
+
   st->print_cr(INTPTR_FORMAT " is an unknown value", p2i(addr));
 }
 
--- a/src/hotspot/share/runtime/os.hpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/runtime/os.hpp	Thu Jul 19 10:53:38 2018 -0700
@@ -412,6 +412,9 @@
   static void    make_polling_page_unreadable();
   static void    make_polling_page_readable();
 
+  // Check if pointer points to readable memory (by 4-byte read access)
+  static bool    is_readable_pointer(const void* p);
+
   // Routines used to serialize the thread state without using membars
   static void    serialize_thread_states();
 
@@ -580,8 +583,7 @@
 
   // Reading directories.
   static DIR*           opendir(const char* dirname);
-  static int            readdir_buf_size(const char *path);
-  static struct dirent* readdir(DIR* dirp, dirent* dbuf);
+  static struct dirent* readdir(DIR* dirp);
   static int            closedir(DIR* dirp);
 
   // Dynamic library extension
--- a/src/hotspot/share/runtime/simpleThresholdPolicy.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/runtime/simpleThresholdPolicy.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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/threadHeapSampler.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/runtime/threadHeapSampler.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -31,7 +31,7 @@
 // Cheap random number generator
 uint64_t ThreadHeapSampler::_rnd;
 // Default is 512kb.
-int ThreadHeapSampler::_sampling_rate = 512 * 1024;
+int ThreadHeapSampler::_sampling_interval = 512 * 1024;
 int ThreadHeapSampler::_enabled;
 
 // Statics for the fast log
@@ -69,7 +69,7 @@
 // Generates a geometric variable with the specified mean (512K by default).
 // This is done by generating a random number between 0 and 1 and applying
 // the inverse cumulative distribution function for an exponential.
-// Specifically: Let m be the inverse of the sample rate, then
+// Specifically: Let m be the inverse of the sample interval, then
 // the probability distribution function is m*exp(-mx) so the CDF is
 // p = 1 - exp(-mx), so
 // q = 1 - p = exp(-mx)
@@ -96,14 +96,14 @@
   // negative answer.
   double log_val = (fast_log2(q) - 26);
   double result =
-      (0.0 < log_val ? 0.0 : log_val) * (-log(2.0) * (get_sampling_rate())) + 1;
+      (0.0 < log_val ? 0.0 : log_val) * (-log(2.0) * (get_sampling_interval())) + 1;
   assert(result > 0 && result < SIZE_MAX, "Result is not in an acceptable range.");
-  size_t rate = static_cast<size_t>(result);
-  _bytes_until_sample = rate;
+  size_t interval = static_cast<size_t>(result);
+  _bytes_until_sample = interval;
 }
 
 void ThreadHeapSampler::pick_next_sample(size_t overflowed_bytes) {
-  if (get_sampling_rate() == 1) {
+  if (get_sampling_interval() == 1) {
     _bytes_until_sample = 1;
     return;
   }
@@ -161,12 +161,12 @@
   OrderAccess::release_store(&_enabled, 0);
 }
 
-int ThreadHeapSampler::get_sampling_rate() {
-  return OrderAccess::load_acquire(&_sampling_rate);
+int ThreadHeapSampler::get_sampling_interval() {
+  return OrderAccess::load_acquire(&_sampling_interval);
 }
 
-void ThreadHeapSampler::set_sampling_rate(int sampling_rate) {
-  OrderAccess::release_store(&_sampling_rate, sampling_rate);
+void ThreadHeapSampler::set_sampling_interval(int sampling_interval) {
+  OrderAccess::release_store(&_sampling_interval, sampling_interval);
 }
 
 // Methods used in assertion mode to check if a collector is present or not at
--- a/src/hotspot/share/runtime/threadHeapSampler.hpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/runtime/threadHeapSampler.hpp	Thu Jul 19 10:53:38 2018 -0700
@@ -36,7 +36,7 @@
   void pick_next_geometric_sample();
   void pick_next_sample(size_t overflowed_bytes = 0);
   static int _enabled;
-  static int _sampling_rate;
+  static int _sampling_interval;
 
   // Used for assertion mode to determine if there is a path to a TLAB slow path
   // without a collector present.
@@ -63,8 +63,8 @@
   static void enable();
   static void disable();
 
-  static void set_sampling_rate(int sampling_rate);
-  static int get_sampling_rate();
+  static void set_sampling_interval(int sampling_interval);
+  static int get_sampling_interval();
 
   bool sampling_collector_present() const;
   bool remove_sampling_collector();
--- a/src/hotspot/share/services/writeableFlags.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/services/writeableFlags.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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/ostream.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/hotspot/share/utilities/ostream.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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/sun/nio/fs/LinuxFileStore.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/linux/classes/sun/nio/fs/LinuxFileStore.java	Thu Jul 19 10:53:38 2018 -0700
@@ -25,9 +25,14 @@
 
 package sun.nio.fs;
 
-import java.nio.file.attribute.*;
-import java.util.*;
 import java.io.IOException;
+import java.nio.file.attribute.DosFileAttributeView;
+import java.nio.file.attribute.FileAttributeView;
+import java.nio.file.attribute.PosixFileAttributeView;
+import java.nio.file.attribute.UserDefinedFileAttributeView;
+import java.util.Arrays;
+import java.util.List;
+import java.util.regex.Pattern;
 
 /**
  * Linux implementation of FileStore
@@ -121,6 +126,18 @@
         return false;
     }
 
+    // get kernel version as a three element array {major, minor, micro}
+    private static int[] getKernelVersion() {
+        Pattern pattern = Pattern.compile("\\D+");
+        String[] matches = pattern.split(System.getProperty("os.version"));
+        int[] majorMinorMicro = new int[3];
+        int length = Math.min(matches.length, majorMinorMicro.length);
+        for (int i = 0; i < length; i++) {
+            majorMinorMicro[i] = Integer.valueOf(matches[i]);
+        }
+        return majorMinorMicro;
+    }
+
     @Override
     public boolean supportsFileAttributeView(Class<? extends FileAttributeView> type) {
         // support DosFileAttributeView and UserDefinedAttributeView if extended
@@ -140,11 +157,31 @@
             if ((entry().hasOption("user_xattr")))
                 return true;
 
-            // for ext3 and ext4 user_xattr option is enabled by default so
-            // check for explicit disabling of this option
-            if (entry().fstype().equals("ext3") ||
-                entry().fstype().equals("ext4")) {
-                return !entry().hasOption("nouser_xattr");
+            // check for explicit disabling of extended attributes
+            if (entry().hasOption("nouser_xattr")) {
+                return false;
+            }
+
+            // user_{no}xattr options not present but we special-case ext3 as
+            // we know that extended attributes are not enabled by default.
+            if (entry().fstype().equals("ext3")) {
+                return false;
+            }
+
+            // user_xattr option not present but we special-case ext4 as we
+            // know that extended attributes are enabled by default for
+            // kernel version >= 2.6.39
+            if (entry().fstype().equals("ext4")) {
+                if (!xattrChecked) {
+                    // check kernel version
+                    int[] kernelVersion = getKernelVersion();
+                    xattrEnabled = kernelVersion[0] > 2 ||
+                        (kernelVersion[0] == 2 && kernelVersion[1] > 6) ||
+                        (kernelVersion[0] == 2 && kernelVersion[1] == 6 &&
+                            kernelVersion[2] >= 39);
+                    xattrChecked = true;
+                }
+                return xattrEnabled;
             }
 
             // not ext3/4 so probe mount point
--- a/src/java.base/share/classes/com/sun/crypto/provider/AESCrypt.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/share/classes/com/sun/crypto/provider/AESCrypt.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/share/classes/com/sun/crypto/provider/CipherBlockChaining.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/share/classes/com/sun/crypto/provider/CipherFeedback.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/share/classes/com/sun/crypto/provider/CounterMode.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/share/classes/com/sun/crypto/provider/ElectronicCodeBook.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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/GCTR.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/share/classes/com/sun/crypto/provider/GCTR.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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
@@ -29,6 +29,8 @@
 
 package com.sun.crypto.provider;
 
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
 import javax.crypto.IllegalBlockSizeException;
 import static com.sun.crypto.provider.AESConstants.AES_BLOCK_SIZE;
 
@@ -68,6 +70,15 @@
         return "GCTR";
     }
 
+    // return the number of blocks until the lower 32 bits roll over
+    private long blocksUntilRollover() {
+        ByteBuffer buf = ByteBuffer.wrap(counter, counter.length - 4, 4);
+        buf.order(ByteOrder.BIG_ENDIAN);
+        long ctr32 = 0xFFFFFFFFL & buf.getInt();
+        long blocksLeft = (1L << 32) - ctr32;
+        return blocksLeft;
+    }
+
     // input must be multiples of 128-bit blocks when calling update
     int update(byte[] in, int inOfs, int inLen, byte[] out, int outOfs) {
         if (inLen - inOfs > in.length) {
@@ -80,7 +91,25 @@
             throw new RuntimeException("output buffer too small");
         }
 
-        return encrypt(in, inOfs, inLen, out, outOfs);
+        long blocksLeft = blocksUntilRollover();
+        int numOfCompleteBlocks = inLen / AES_BLOCK_SIZE;
+        if (numOfCompleteBlocks >= blocksLeft) {
+            // Counter Mode encryption cannot be used because counter will
+            // roll over incorrectly. Use GCM-specific code instead.
+            byte[] encryptedCntr = new byte[AES_BLOCK_SIZE];
+            for (int i = 0; i < numOfCompleteBlocks; i++) {
+                embeddedCipher.encryptBlock(counter, 0, encryptedCntr, 0);
+                for (int n = 0; n < AES_BLOCK_SIZE; n++) {
+                    int index = (i * AES_BLOCK_SIZE + n);
+                    out[outOfs + index] =
+                        (byte) ((in[inOfs + index] ^ encryptedCntr[n]));
+                }
+                GaloisCounterMode.increment32(counter);
+            }
+            return inLen;
+        } else {
+            return encrypt(in, inOfs, inLen, out, outOfs);
+        }
     }
 
     // input can be arbitrary size when calling doFinal
--- a/src/java.base/share/classes/com/sun/crypto/provider/GaloisCounterMode.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/share/classes/com/sun/crypto/provider/GaloisCounterMode.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/share/classes/com/sun/crypto/provider/OutputFeedback.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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/PBES2Parameters.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/share/classes/com/sun/crypto/provider/PBES2Parameters.java	Thu Jul 19 10:53:38 2018 -0700
@@ -33,7 +33,6 @@
 import java.security.spec.InvalidParameterSpecException;
 import javax.crypto.spec.IvParameterSpec;
 import javax.crypto.spec.PBEParameterSpec;
-import sun.security.util.HexDumpEncoder;
 import sun.security.util.*;
 
 /**
@@ -260,21 +259,7 @@
         String kdfAlgo = null;
         String cipherAlgo = null;
 
-        DerValue pBES2Algorithms = new DerValue(encoded);
-        if (pBES2Algorithms.tag != DerValue.tag_Sequence) {
-            throw new IOException("PBE parameter parsing error: "
-                                  + "not an ASN.1 SEQUENCE tag");
-        }
-        if (!pkcs5PBES2_OID.equals(pBES2Algorithms.data.getOID())) {
-            throw new IOException("PBE parameter parsing error: "
-                + "expecting the object identifier for PBES2");
-        }
-        if (pBES2Algorithms.tag != DerValue.tag_Sequence) {
-            throw new IOException("PBE parameter parsing error: "
-                + "not an ASN.1 SEQUENCE tag");
-        }
-
-        DerValue pBES2_params = pBES2Algorithms.data.getDerValue();
+        DerValue pBES2_params = new DerValue(encoded);
         if (pBES2_params.tag != DerValue.tag_Sequence) {
             throw new IOException("PBE parameter parsing error: "
                 + "not an ASN.1 SEQUENCE tag");
@@ -293,7 +278,6 @@
 
     @SuppressWarnings("deprecation")
     private String parseKDF(DerValue keyDerivationFunc) throws IOException {
-        String kdfAlgo = null;
 
         if (!pkcs5PBKDF2_OID.equals(keyDerivationFunc.data.getOID())) {
             throw new IOException("PBE parameter parsing error: "
@@ -318,34 +302,41 @@
                 + "not an ASN.1 OCTET STRING tag");
         }
         iCount = pBKDF2_params.data.getInteger();
-        DerValue keyLength = pBKDF2_params.data.getDerValue();
-        if (keyLength.tag == DerValue.tag_Integer) {
-            keysize = keyLength.getInteger() * 8; // keysize (in bits)
+        // keyLength INTEGER (1..MAX) OPTIONAL,
+        if (pBKDF2_params.data.available() > 0) {
+            DerValue keyLength = pBKDF2_params.data.getDerValue();
+            if (keyLength.tag == DerValue.tag_Integer) {
+                keysize = keyLength.getInteger() * 8; // keysize (in bits)
+            }
         }
-        if (pBKDF2_params.tag == DerValue.tag_Sequence) {
-            DerValue prf = pBKDF2_params.data.getDerValue();
-            kdfAlgo_OID = prf.data.getOID();
-            if (hmacWithSHA1_OID.equals(kdfAlgo_OID)) {
-                kdfAlgo = "HmacSHA1";
-            } else if (hmacWithSHA224_OID.equals(kdfAlgo_OID)) {
-                kdfAlgo = "HmacSHA224";
-            } else if (hmacWithSHA256_OID.equals(kdfAlgo_OID)) {
-                kdfAlgo = "HmacSHA256";
-            } else if (hmacWithSHA384_OID.equals(kdfAlgo_OID)) {
-                kdfAlgo = "HmacSHA384";
-            } else if (hmacWithSHA512_OID.equals(kdfAlgo_OID)) {
-                kdfAlgo = "HmacSHA512";
-            } else {
-                throw new IOException("PBE parameter parsing error: "
-                    + "expecting the object identifier for a HmacSHA key "
-                    + "derivation function");
-            }
-            if (prf.data.available() != 0) {
-                // parameter is 'NULL' for all HmacSHA KDFs
-                DerValue parameter = prf.data.getDerValue();
-                if (parameter.tag != DerValue.tag_Null) {
+        // prf AlgorithmIdentifier {{PBKDF2-PRFs}} DEFAULT algid-hmacWithSHA1
+        String kdfAlgo = "HmacSHA1";
+        if (pBKDF2_params.data.available() > 0) {
+            if (pBKDF2_params.tag == DerValue.tag_Sequence) {
+                DerValue prf = pBKDF2_params.data.getDerValue();
+                kdfAlgo_OID = prf.data.getOID();
+                if (hmacWithSHA1_OID.equals(kdfAlgo_OID)) {
+                    kdfAlgo = "HmacSHA1";
+                } else if (hmacWithSHA224_OID.equals(kdfAlgo_OID)) {
+                    kdfAlgo = "HmacSHA224";
+                } else if (hmacWithSHA256_OID.equals(kdfAlgo_OID)) {
+                    kdfAlgo = "HmacSHA256";
+                } else if (hmacWithSHA384_OID.equals(kdfAlgo_OID)) {
+                    kdfAlgo = "HmacSHA384";
+                } else if (hmacWithSHA512_OID.equals(kdfAlgo_OID)) {
+                    kdfAlgo = "HmacSHA512";
+                } else {
                     throw new IOException("PBE parameter parsing error: "
-                        + "not an ASN.1 NULL tag");
+                            + "expecting the object identifier for a HmacSHA key "
+                            + "derivation function");
+                }
+                if (prf.data.available() != 0) {
+                    // parameter is 'NULL' for all HmacSHA KDFs
+                    DerValue parameter = prf.data.getDerValue();
+                    if (parameter.tag != DerValue.tag_Null) {
+                        throw new IOException("PBE parameter parsing error: "
+                                + "not an ASN.1 NULL tag");
+                    }
                 }
             }
         }
@@ -399,8 +390,6 @@
 
     protected byte[] engineGetEncoded() throws IOException {
         DerOutputStream out = new DerOutputStream();
-        DerOutputStream pBES2Algorithms = new DerOutputStream();
-        pBES2Algorithms.putOID(pkcs5PBES2_OID);
 
         DerOutputStream pBES2_params = new DerOutputStream();
 
@@ -410,7 +399,10 @@
         DerOutputStream pBKDF2_params = new DerOutputStream();
         pBKDF2_params.putOctetString(salt); // choice: 'specified OCTET STRING'
         pBKDF2_params.putInteger(iCount);
-        pBKDF2_params.putInteger(keysize / 8); // derived key length (in octets)
+
+        if (keysize > 0) {
+            pBKDF2_params.putInteger(keysize / 8); // derived key length (in octets)
+        }
 
         DerOutputStream prf = new DerOutputStream();
         // algorithm is id-hmacWithSHA1/SHA224/SHA256/SHA384/SHA512
@@ -434,8 +426,7 @@
         }
         pBES2_params.write(DerValue.tag_Sequence, encryptionScheme);
 
-        pBES2Algorithms.write(DerValue.tag_Sequence, pBES2_params);
-        out.write(DerValue.tag_Sequence, pBES2Algorithms);
+        out.write(DerValue.tag_Sequence, pBES2_params);
 
         return out.toByteArray();
     }
--- a/src/java.base/share/classes/com/sun/crypto/provider/PCBC.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/share/classes/com/sun/crypto/provider/PCBC.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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/lang/ProcessBuilder.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/share/classes/java/lang/ProcessBuilder.java	Thu Jul 19 10:53:38 2018 -0700
@@ -1157,12 +1157,12 @@
      * are forcibly destroyed.
      * <p>
      * The {@code startPipeline} method performs the same checks on
-     * each ProcessBuilder as does the {@link #start} method. The new process
-     * will invoke the command and arguments given by {@link #command()},
-     * in a working directory as given by {@link #directory()},
-     * with a process environment as given by {@link #environment()}.
+     * each ProcessBuilder as does the {@link #start} method. Each new process
+     * invokes the command and arguments given by the respective process builder's
+     * {@link #command()}, in a working directory as given by its {@link #directory()},
+     * with a process environment as given by its {@link #environment()}.
      * <p>
-     * This method checks that the command is a valid operating
+     * Each process builder's command is checked to be a valid operating
      * system command.  Which commands are valid is system-dependent,
      * but at the very least the command must be a non-empty list of
      * non-null strings.
@@ -1174,7 +1174,7 @@
      * <p>
      * If there is a security manager, its
      * {@link SecurityManager#checkExec checkExec}
-     * method is called with the first component of this object's
+     * method is called with the first component of each process builder's
      * {@code command} array as its argument. This may result in
      * a {@link SecurityException} being thrown.
      * <p>
@@ -1194,8 +1194,8 @@
      * If the operating system does not support the creation of
      * processes, an {@link UnsupportedOperationException} will be thrown.
      * <p>
-     * Subsequent modifications to this process builder will not
-     * affect the returned {@link Process}.
+     * Subsequent modifications to any of the specified builders
+     * will not affect the returned {@link Process}.
      * @apiNote
      * For example to count the unique imports for all the files in a file hierarchy
      * on a Unix compatible platform:
--- a/src/java.base/share/classes/java/lang/invoke/SerializedLambda.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/share/classes/java/lang/invoke/SerializedLambda.java	Thu Jul 19 10:53:38 2018 -0700
@@ -25,6 +25,8 @@
 package java.lang.invoke;
 
 import java.io.Serializable;
+import java.io.InvalidObjectException;
+import java.io.ObjectStreamException;
 import java.lang.reflect.Method;
 import java.security.AccessController;
 import java.security.PrivilegedActionException;
@@ -223,7 +225,7 @@
         return capturedArgs[i];
     }
 
-    private Object readResolve() throws ReflectiveOperationException {
+    private Object readResolve() throws ObjectStreamException {
         try {
             Method deserialize = AccessController.doPrivileged(new PrivilegedExceptionAction<>() {
                 @Override
@@ -235,12 +237,13 @@
             });
 
             return deserialize.invoke(null, this);
-        }
-        catch (PrivilegedActionException e) {
+        } catch (ReflectiveOperationException roe) {
+            ObjectStreamException ose = new InvalidObjectException("ReflectiveOperationException during deserialization");
+            ose.initCause(roe);
+            throw ose;
+        } catch (PrivilegedActionException e) {
             Exception cause = e.getException();
-            if (cause instanceof ReflectiveOperationException)
-                throw (ReflectiveOperationException) cause;
-            else if (cause instanceof RuntimeException)
+            if (cause instanceof RuntimeException)
                 throw (RuntimeException) cause;
             else
                 throw new RuntimeException("Exception in SerializedLambda.readResolve", e);
--- a/src/java.base/share/classes/java/nio/Bits.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/share/classes/java/nio/Bits.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/share/classes/java/nio/Buffer.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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/security/KeyStore.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/share/classes/java/security/KeyStore.java	Thu Jul 19 10:53:38 2018 -0700
@@ -1807,6 +1807,7 @@
                     keystore.load(dataStream, password);
                 } else {
                     keystore.keyStoreSpi.engineLoad(dataStream, param);
+                    keystore.initialized = true;
                 }
                 return keystore;
             }
--- a/src/java.base/share/classes/java/text/SimpleDateFormat.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/share/classes/java/text/SimpleDateFormat.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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/time/temporal/JulianFields.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/share/classes/java/time/temporal/JulianFields.java	Thu Jul 19 10:53:38 2018 -0700
@@ -222,8 +222,6 @@
         MODIFIED_JULIAN_DAY("ModifiedJulianDay", DAYS, FOREVER, 40587L),
         RATA_DIE("RataDie", DAYS, FOREVER, 719163L);
 
-        private static final long serialVersionUID = -7501623920830201812L;
-
         private final transient String name;
         private final transient TemporalUnit baseUnit;
         private final transient TemporalUnit rangeUnit;
--- a/src/java.base/share/classes/java/util/ServiceLoader.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/share/classes/java/util/ServiceLoader.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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
@@ -65,19 +65,21 @@
  * interface or class. A {@code ServiceLoader} is an object that locates and
  * loads service providers deployed in the run time environment at a time of an
  * application's choosing. Application code refers only to the service, not to
- * service providers, and is assumed to be capable of differentiating between
- * multiple service providers as well as handling the possibility that no service
- * providers are located.
+ * service providers, and is assumed to be capable of choosing between multiple
+ * service providers (based on the functionality they expose through the service),
+ * and handling the possibility that no service providers are located.
  *
  * <h3> Obtaining a service loader </h3>
  *
  * <p> An application obtains a service loader for a given service by invoking
- * one of the static {@code load} methods of ServiceLoader. If the application
- * is a module, then its module declaration must have a <i>uses</i> directive
- * that specifies the service; this helps to locate providers and ensure they
- * will execute reliably. In addition, if the service is not in the application
- * module, then the module declaration must have a <i>requires</i> directive
- * that specifies the module which exports the service.
+ * one of the static {@code load} methods of {@code ServiceLoader}. If the
+ * application is a module, then its module declaration must have a <i>uses</i>
+ * directive that specifies the service; this helps to locate providers and ensure
+ * they will execute reliably. In addition, if the application module does not
+ * contain the service, then its module declaration must have a <i>requires</i>
+ * directive that specifies the module which exports the service. It is strongly
+ * recommended that the application module does <b>not</b> require modules which
+ * contain providers of the service.
  *
  * <p> A service loader can be used to locate and instantiate providers of the
  * service by means of the {@link #iterator() iterator} method. {@code ServiceLoader}
--- a/src/java.base/share/classes/java/util/jar/JarVerifier.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/share/classes/java/util/jar/JarVerifier.java	Thu Jul 19 10:53:38 2018 -0700
@@ -437,7 +437,7 @@
                        InputStream is,
                        JarVerifier jv) throws IOException
         {
-            this.is = is;
+            this.is = Objects.requireNonNull(is);
             this.jv = jv;
             this.mev = new ManifestEntryVerifier(man);
             this.jv.beginEntry(je, mev);
@@ -448,6 +448,7 @@
 
         public int read() throws IOException
         {
+            ensureOpen();
             if (numLeft > 0) {
                 int b = is.read();
                 jv.update(b, mev);
@@ -461,6 +462,7 @@
         }
 
         public int read(byte b[], int off, int len) throws IOException {
+            ensureOpen();
             if ((numLeft > 0) && (numLeft < len)) {
                 len = (int)numLeft;
             }
@@ -488,9 +490,15 @@
         }
 
         public int available() throws IOException {
+            ensureOpen();
             return is.available();
         }
 
+        private void ensureOpen() throws IOException {
+            if (is == null) {
+                throw new IOException("stream closed");
+            }
+        }
     }
 
     // Extended JavaUtilJarAccess CodeSource API Support
--- a/src/java.base/share/classes/java/util/regex/PatternSyntaxException.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/share/classes/java/util/regex/PatternSyntaxException.java	Thu Jul 19 10:53:38 2018 -0700
@@ -106,7 +106,7 @@
         }
         sb.append(System.lineSeparator());
         sb.append(pattern);
-        if (index >= 0) {
+        if (index >= 0 && pattern != null && index < pattern.length()) {
             sb.append(System.lineSeparator());
             for (int i = 0; i < index; i++) sb.append(' ');
             sb.append('^');
--- a/src/java.base/share/classes/jdk/internal/misc/SharedSecrets.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/share/classes/jdk/internal/misc/SharedSecrets.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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/reflect/ReflectionFactory.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/share/classes/jdk/internal/reflect/ReflectionFactory.java	Thu Jul 19 10:53:38 2018 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2017, 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
@@ -87,6 +87,9 @@
     private static boolean noInflation        = false;
     private static int     inflationThreshold = 15;
 
+    // true if deserialization constructor checking is disabled
+    private static boolean disableSerialConstructorChecks = false;
+
     private ReflectionFactory() {
     }
 
@@ -424,10 +427,64 @@
         return generateConstructor(cl, constructorToCall);
     }
 
+    /**
+     * Given a class, determines whether its superclass has
+     * any constructors that are accessible from the class.
+     * This is a special purpose method intended to do access
+     * checking for a serializable class and its superclasses
+     * up to, but not including, the first non-serializable
+     * superclass. This also implies that the superclass is
+     * always non-null, because a serializable class must be a
+     * class (not an interface) and Object is not serializable.
+     *
+     * @param cl the class from which access is checked
+     * @return whether the superclass has a constructor accessible from cl
+     */
+    private boolean superHasAccessibleConstructor(Class<?> cl) {
+        Class<?> superCl = cl.getSuperclass();
+        assert Serializable.class.isAssignableFrom(cl);
+        assert superCl != null;
+        if (packageEquals(cl, superCl)) {
+            // accessible if any non-private constructor is found
+            for (Constructor<?> ctor : superCl.getDeclaredConstructors()) {
+                if ((ctor.getModifiers() & Modifier.PRIVATE) == 0) {
+                    return true;
+                }
+            }
+            return false;
+        } else {
+            // sanity check to ensure the parent is protected or public
+            if ((superCl.getModifiers() & (Modifier.PROTECTED | Modifier.PUBLIC)) == 0) {
+                return false;
+            }
+            // accessible if any constructor is protected or public
+            for (Constructor<?> ctor : superCl.getDeclaredConstructors()) {
+                if ((ctor.getModifiers() & (Modifier.PROTECTED | Modifier.PUBLIC)) != 0) {
+                    return true;
+                }
+            }
+            return false;
+        }
+    }
+
+    /**
+     * Returns a constructor that allocates an instance of cl and that then initializes
+     * the instance by calling the no-arg constructor of its first non-serializable
+     * superclass. This is specified in the Serialization Specification, section 3.1,
+     * in step 11 of the deserialization process. If cl is not serializable, returns
+     * cl's no-arg constructor. If no accessible constructor is found, or if the
+     * class hierarchy is somehow malformed (e.g., a serializable class has no
+     * superclass), null is returned.
+     *
+     * @param cl the class for which a constructor is to be found
+     * @return the generated constructor, or null if none is available
+     */
     public final Constructor<?> newConstructorForSerialization(Class<?> cl) {
         Class<?> initCl = cl;
         while (Serializable.class.isAssignableFrom(initCl)) {
-            if ((initCl = initCl.getSuperclass()) == null) {
+            Class<?> prev = initCl;
+            if ((initCl = initCl.getSuperclass()) == null ||
+                (!disableSerialConstructorChecks && !superHasAccessibleConstructor(prev))) {
                 return null;
             }
         }
@@ -653,6 +710,9 @@
             }
         }
 
+        disableSerialConstructorChecks =
+            "true".equals(props.getProperty("jdk.disableSerialConstructorChecks"));
+
         initted = true;
     }
 
--- a/src/java.base/share/classes/sun/invoke/util/VerifyAccess.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/share/classes/sun/invoke/util/VerifyAccess.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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/security/pkcs12/PKCS12KeyStore.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/share/classes/sun/security/pkcs12/PKCS12KeyStore.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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,15 @@
                         " 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 cipher = Cipher.getInstance(
+                                mapPBEParamsToAlgorithm(algOid, algParams));
                         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 +2113,6 @@
                 throw new IOException("public key protected PKCS12" +
                                         " not supported");
             }
-            DerInputStream sc = new DerInputStream(safeContentsData);
-            loadSafeContents(sc, password);
         }
 
         // The MacData is optional.
@@ -2242,7 +2246,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/CipherSuite.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/share/classes/sun/security/ssl/CipherSuite.java	Thu Jul 19 10:53:38 2018 -0700
@@ -891,9 +891,10 @@
 
         List<CipherSuite> cipherSuites = new ArrayList<>(names.length);
         for (String name : names) {
-            if (name == null) {
+            if (name == null || name.isEmpty()) {
                 throw new IllegalArgumentException(
-                    "The specified CipherSuites array contain null element");
+                        "The specified CipherSuites array contains " +
+                        "invalid null or empty string elements");
             }
 
             boolean found = false;
--- a/src/java.base/share/classes/sun/security/ssl/PostHandshakeContext.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/share/classes/sun/security/ssl/PostHandshakeContext.java	Thu Jul 19 10:53:38 2018 -0700
@@ -27,6 +27,7 @@
 
 import java.io.IOException;
 import java.nio.ByteBuffer;
+import java.util.ArrayList;
 import java.util.LinkedHashMap;
 import java.util.Map;
 
@@ -46,6 +47,9 @@
                 "Post-handshake not supported in " + negotiatedProtocol.name);
         }
 
+        this.localSupportedSignAlgs = new ArrayList<SignatureScheme>(
+            context.conSession.getLocalSupportedSignatureSchemes());
+
         handshakeConsumers = new LinkedHashMap<>(consumers);
         handshakeFinished = true;
     }
--- a/src/java.base/share/classes/sun/security/ssl/PreSharedKeyExtension.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/share/classes/sun/security/ssl/PreSharedKeyExtension.java	Thu Jul 19 10:53:38 2018 -0700
@@ -33,8 +33,11 @@
 import java.util.Locale;
 import java.util.Arrays;
 import java.util.Optional;
+import java.util.Collection;
 import javax.crypto.Mac;
 import javax.crypto.SecretKey;
+import javax.net.ssl.SSLPeerUnverifiedException;
+import static sun.security.ssl.ClientAuthType.CLIENT_AUTH_REQUIRED;
 import sun.security.ssl.ClientHello.ClientHelloMessage;
 import sun.security.ssl.SSLExtension.ExtensionConsumer;
 import sun.security.ssl.SSLExtension.SSLExtensionSpec;
@@ -167,7 +170,7 @@
 
         int getIdsEncodedLength() {
             int idEncodedLength = 0;
-            for(PskIdentity curId : identities) {
+            for (PskIdentity curId : identities) {
                 idEncodedLength += curId.getEncodedLength();
             }
 
@@ -190,7 +193,7 @@
             byte[] buffer = new byte[encodedLength];
             ByteBuffer m = ByteBuffer.wrap(buffer);
             Record.putInt16(m, idsEncodedLength);
-            for(PskIdentity curId : identities) {
+            for (PskIdentity curId : identities) {
                 curId.writeEncoded(m);
             }
             Record.putInt16(m, bindersEncodedLength);
@@ -220,7 +223,7 @@
 
         String identitiesString() {
             StringBuilder result = new StringBuilder();
-            for(PskIdentity curId : identities) {
+            for (PskIdentity curId : identities) {
                 result.append(curId.toString() + "\n");
             }
 
@@ -229,7 +232,7 @@
 
         String bindersString() {
             StringBuilder result = new StringBuilder();
-            for(byte[] curBinder : binders) {
+            for (byte[] curBinder : binders) {
                 result.append("{" + Utilities.toHexString(curBinder) + "}\n");
             }
 
@@ -328,6 +331,7 @@
         public void consume(ConnectionContext context,
                             HandshakeMessage message,
                             ByteBuffer buffer) throws IOException {
+            ClientHelloMessage clientHello = (ClientHelloMessage) message;
             ServerHandshakeContext shc = (ServerHandshakeContext)context;
             // Is it a supported and enabled extension?
             if (!shc.sslConfig.isAvailable(SSLExtension.CH_PRE_SHARED_KEY)) {
@@ -367,8 +371,7 @@
                 int idIndex = 0;
                 for (PskIdentity requestedId : pskSpec.identities) {
                     SSLSessionImpl s = sessionCache.get(requestedId.identity);
-                    if (s != null && s.isRejoinable() &&
-                            s.getPreSharedKey().isPresent()) {
+                    if (s != null && canRejoin(clientHello, shc, s)) {
                         if (SSLLogger.isOn && SSLLogger.isOn("ssl,handshake")) {
                             SSLLogger.fine("Resuming session: ", s);
                         }
@@ -392,8 +395,66 @@
 
             // update the context
             shc.handshakeExtensions.put(
-                    SSLExtension.CH_PRE_SHARED_KEY, pskSpec);
+                SSLExtension.CH_PRE_SHARED_KEY, pskSpec);
+        }
+    }
+
+    private static boolean canRejoin(ClientHelloMessage clientHello,
+        ServerHandshakeContext shc, SSLSessionImpl s) {
+
+        boolean result = s.isRejoinable() && s.getPreSharedKey().isPresent();
+
+        // Check protocol version
+        if (result && s.getProtocolVersion() != shc.negotiatedProtocol) {
+            if (SSLLogger.isOn &&
+                SSLLogger.isOn("ssl,handshake,verbose")) {
+
+                SSLLogger.finest("Can't resume, incorrect protocol version");
+            }
+            result = false;
         }
+
+        // Validate the required client authentication.
+        if (result &&
+            (shc.sslConfig.clientAuthType == CLIENT_AUTH_REQUIRED)) {
+            try {
+                s.getPeerPrincipal();
+            } catch (SSLPeerUnverifiedException e) {
+                if (SSLLogger.isOn &&
+                        SSLLogger.isOn("ssl,handshake,verbose")) {
+                    SSLLogger.finest(
+                        "Can't resume, " +
+                        "client authentication is required");
+                }
+                result = false;
+            }
+
+            // Make sure the list of supported signature algorithms matches
+            Collection<SignatureScheme> sessionSigAlgs =
+                s.getLocalSupportedSignatureSchemes();
+            if (result &&
+                !shc.localSupportedSignAlgs.containsAll(sessionSigAlgs)) {
+
+                if (SSLLogger.isOn && SSLLogger.isOn("ssl,handshake")) {
+                    SSLLogger.fine("Can't resume. Session uses different " +
+                        "signature algorithms");
+                }
+                result = false;
+            }
+        }
+
+        // Ensure cipher suite can be negotiated
+        if (result && (!shc.isNegotiable(s.getSuite()) ||
+            !clientHello.cipherSuites.contains(s.getSuite()))) {
+            if (SSLLogger.isOn &&
+                    SSLLogger.isOn("ssl,handshake,verbose")) {
+                SSLLogger.finest(
+                    "Can't resume, unavailable session cipher suite");
+            }
+            result = false;
+        }
+
+        return result;
     }
 
     private static final
@@ -547,6 +608,18 @@
                 return null;
             }
 
+            // Make sure the list of supported signature algorithms matches
+            Collection<SignatureScheme> sessionSigAlgs =
+                chc.resumingSession.getLocalSupportedSignatureSchemes();
+            if (!chc.localSupportedSignAlgs.containsAll(sessionSigAlgs)) {
+                if (SSLLogger.isOn && SSLLogger.isOn("ssl,handshake")) {
+                    SSLLogger.fine("Existing session uses different " +
+                        "signature algorithms");
+                }
+                return null;
+            }
+
+            // The session must have a pre-shared key
             Optional<SecretKey> pskOpt = chc.resumingSession.getPreSharedKey();
             if (!pskOpt.isPresent()) {
                 if (SSLLogger.isOn && SSLLogger.isOn("ssl,handshake")) {
@@ -658,7 +731,7 @@
             } catch (NoSuchAlgorithmException | InvalidKeyException ex) {
                 throw new IOException(ex);
             }
-        } catch(GeneralSecurityException ex) {
+        } catch (GeneralSecurityException ex) {
             throw new IOException(ex);
         }
     }
--- a/src/java.base/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/share/classes/sun/security/ssl/SSLSessionImpl.java	Thu Jul 19 10:53:38 2018 -0700
@@ -96,7 +96,7 @@
     private boolean             invalidated;
     private X509Certificate[]   localCerts;
     private PrivateKey          localPrivateKey;
-    private final String[]      localSupportedSignAlgs;
+    private final Collection<SignatureScheme>     localSupportedSignAlgs;
     private String[]            peerSupportedSignAlgs;      // for certificate
     private boolean             useDefaultPeerSignAlgs = false;
     private List<byte[]>        statusResponses;
@@ -144,7 +144,7 @@
         this.sessionId = new SessionId(false, null);
         this.host = null;
         this.port = -1;
-        this.localSupportedSignAlgs = new String[0];
+        this.localSupportedSignAlgs = Collections.emptySet();
         this.serverNameIndication = null;
         this.requestedServerNames = Collections.<SNIServerName>emptyList();
         this.useExtendedMasterSecret = false;
@@ -179,8 +179,9 @@
         this.sessionId = id;
         this.host = hc.conContext.transport.getPeerHost();
         this.port = hc.conContext.transport.getPeerPort();
-        this.localSupportedSignAlgs =
-                SignatureScheme.getAlgorithmNames(hc.localSupportedSignAlgs);
+        this.localSupportedSignAlgs = hc.localSupportedSignAlgs == null ?
+                Collections.emptySet() :
+                Collections.unmodifiableCollection(hc.localSupportedSignAlgs);
         this.serverNameIndication = hc.negotiatedServerName;
         this.requestedServerNames = Collections.<SNIServerName>unmodifiableList(
                 hc.getRequestedServerNames());
@@ -969,16 +970,20 @@
     }
 
     /**
-     * Gets an array of supported signature algorithms that the local side is
-     * willing to verify.
+     * Gets an array of supported signature algorithm names that the local
+     * side is willing to verify.
      */
     @Override
     public String[] getLocalSupportedSignatureAlgorithms() {
-        if (localSupportedSignAlgs != null) {
-            return localSupportedSignAlgs.clone();
-        }
+        return SignatureScheme.getAlgorithmNames(localSupportedSignAlgs);
+    }
 
-        return new String[0];
+    /**
+     * Gets an array of supported signature schemes that the local side is
+     * willing to verify.
+     */
+    public Collection<SignatureScheme> getLocalSupportedSignatureSchemes() {
+        return localSupportedSignAlgs;
     }
 
     /**
--- a/src/java.base/share/classes/sun/security/ssl/TransportContext.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/share/classes/sun/security/ssl/TransportContext.java	Thu Jul 19 10:53:38 2018 -0700
@@ -393,6 +393,13 @@
     }
 
     void setUseClientMode(boolean useClientMode) {
+        // Once handshaking has begun, the mode can not be reset for the
+        // life of this engine.
+        if (handshakeContext != null || isNegotiated) {
+            throw new IllegalArgumentException(
+                    "Cannot change mode after SSL traffic has started");
+        }
+
         /*
          * If we need to change the client mode and the enabled
          * protocols and cipher suites haven't specifically been
@@ -400,13 +407,6 @@
          * default ones.
          */
         if (sslConfig.isClientMode != useClientMode) {
-            // Once handshaking has begun, the mode can not be reset for the
-            // life of this engine.
-            if (handshakeContext != null || isNegotiated) {
-                throw new IllegalArgumentException(
-                    "Cannot change mode after SSL traffic has started");
-            }
-
             if (sslContext.isDefaultProtocolVesions(
                     sslConfig.enabledProtocols)) {
                 sslConfig.enabledProtocols =
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/share/classes/sun/security/util/ArrayUtil.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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);
+    }
+}
--- a/src/java.base/share/classes/sun/util/cldr/CLDRTimeZoneNameProviderImpl.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/share/classes/sun/util/cldr/CLDRTimeZoneNameProviderImpl.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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);
             }
Binary file src/java.base/share/lib/security/cacerts has changed
--- a/src/java.base/share/native/libjava/jni_util.h	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/share/native/libjava/jni_util.h	Thu Jul 19 10:53:38 2018 -0700
@@ -297,6 +297,22 @@
         }                                       \
     } while (0)                                 \
 
+#define CHECK_NULL_THROW_NPE(env, x, msg)         \
+    do {                                        \
+        if ((x) == NULL) {                      \
+           JNU_ThrowNullPointerException((env), (msg));\
+           return;                              \
+        }                                       \
+    } while(0)                                  \
+
+#define CHECK_NULL_THROW_NPE_RETURN(env, x, msg, z)\
+    do {                                        \
+        if ((x) == NULL) {                      \
+           JNU_ThrowNullPointerException((env), (msg));\
+           return (z);                          \
+        }                                       \
+    } while(0)                                  \
+
 #define CHECK_NULL_RETURN(x, y)                 \
     do {                                        \
         if ((x) == NULL) {                      \
--- a/src/java.base/share/native/libnet/net_util.c	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/share/native/libnet/net_util.c	Thu Jul 19 10:53:38 2018 -0700
@@ -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
@@ -171,32 +171,38 @@
 
 void setInetAddress_addr(JNIEnv *env, jobject iaObj, int address) {
     jobject holder = (*env)->GetObjectField(env, iaObj, ia_holderID);
+    CHECK_NULL_THROW_NPE(env, holder, "InetAddress holder is null");
     (*env)->SetIntField(env, holder, iac_addressID, address);
 }
 
 void setInetAddress_family(JNIEnv *env, jobject iaObj, int family) {
     jobject holder = (*env)->GetObjectField(env, iaObj, ia_holderID);
+    CHECK_NULL_THROW_NPE(env, holder, "InetAddress holder is null");
     (*env)->SetIntField(env, holder, iac_familyID, family);
 }
 
 void setInetAddress_hostName(JNIEnv *env, jobject iaObj, jobject host) {
     jobject holder = (*env)->GetObjectField(env, iaObj, ia_holderID);
+    CHECK_NULL_THROW_NPE(env, holder, "InetAddress holder is null");
     (*env)->SetObjectField(env, holder, iac_hostNameID, host);
     (*env)->SetObjectField(env, holder, iac_origHostNameID, host);
 }
 
 int getInetAddress_addr(JNIEnv *env, jobject iaObj) {
     jobject holder = (*env)->GetObjectField(env, iaObj, ia_holderID);
+    CHECK_NULL_THROW_NPE_RETURN(env, holder, "InetAddress holder is null", -1);
     return (*env)->GetIntField(env, holder, iac_addressID);
 }
 
 int getInetAddress_family(JNIEnv *env, jobject iaObj) {
     jobject holder = (*env)->GetObjectField(env, iaObj, ia_holderID);
+    CHECK_NULL_THROW_NPE_RETURN(env, holder, "InetAddress holder is null", -1);
     return (*env)->GetIntField(env, holder, iac_familyID);
 }
 
 jobject getInetAddress_hostName(JNIEnv *env, jobject iaObj) {
     jobject holder = (*env)->GetObjectField(env, iaObj, ia_holderID);
+    CHECK_NULL_THROW_NPE_RETURN(env, holder, "InetAddress holder is null", NULL);
     return (*env)->GetObjectField(env, holder, iac_hostNameID);
 }
 
@@ -211,7 +217,9 @@
             CHECK_NULL_RETURN(iaObj, NULL);
             address = NET_IPv4MappedToIPv4(caddr);
             setInetAddress_addr(env, iaObj, address);
+            JNU_CHECK_EXCEPTION_RETURN(env, NULL);
             setInetAddress_family(env, iaObj, java_net_InetAddress_IPv4);
+            JNU_CHECK_EXCEPTION_RETURN(env, NULL);
         } else {
             jboolean ret;
             iaObj = (*env)->NewObject(env, ia6_class, ia6_ctrID);
@@ -220,6 +228,7 @@
             if (ret == JNI_FALSE)
                 return NULL;
             setInetAddress_family(env, iaObj, java_net_InetAddress_IPv6);
+            JNU_CHECK_EXCEPTION_RETURN(env, NULL);
             setInet6Address_scopeid(env, iaObj, sa->sa6.sin6_scope_id);
         }
         *port = ntohs(sa->sa6.sin6_port);
@@ -227,7 +236,9 @@
         iaObj = (*env)->NewObject(env, ia4_class, ia4_ctrID);
         CHECK_NULL_RETURN(iaObj, NULL);
         setInetAddress_family(env, iaObj, java_net_InetAddress_IPv4);
+        JNU_CHECK_EXCEPTION_RETURN(env, NULL);
         setInetAddress_addr(env, iaObj, ntohl(sa->sa4.sin_addr.s_addr));
+        JNU_CHECK_EXCEPTION_RETURN(env, NULL);
         *port = ntohs(sa->sa4.sin_port);
     }
     return iaObj;
@@ -238,6 +249,7 @@
 {
     jint family = getInetAddress_family(env, iaObj) ==
         java_net_InetAddress_IPv4 ? AF_INET : AF_INET6;
+    JNU_CHECK_EXCEPTION_RETURN(env, JNI_FALSE);
     if (sa->sa.sa_family == AF_INET6) {
         jbyte *caddrNew = (jbyte *)&sa->sa6.sin6_addr;
         if (NET_IsIPv4Mapped(caddrNew)) {
@@ -247,6 +259,7 @@
             }
             addrNew = NET_IPv4MappedToIPv4(caddrNew);
             addrCur = getInetAddress_addr(env, iaObj);
+            JNU_CHECK_EXCEPTION_RETURN(env, JNI_FALSE);
             if (addrNew == addrCur) {
                 return JNI_TRUE;
             } else {
@@ -273,6 +286,7 @@
         }
         addrNew = ntohl(sa->sa4.sin_addr.s_addr);
         addrCur = getInetAddress_addr(env, iaObj);
+        JNU_CHECK_EXCEPTION_RETURN(env, JNI_FALSE);
         if (addrNew == addrCur) {
             return JNI_TRUE;
         } else {
--- a/src/java.base/share/native/libzip/zip_util.c	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/share/native/libzip/zip_util.c	Thu Jul 19 10:53:38 2018 -0700
@@ -739,13 +739,13 @@
     jzfile *zip = NULL;
 
     /* Clear zip error message */
-    if (pmsg != 0) {
+    if (pmsg != NULL) {
         *pmsg = NULL;
     }
 
     zip = ZIP_Get_From_Cache(name, pmsg, lastModified);
 
-    if (zip == NULL && *pmsg == NULL) {
+    if (zip == NULL && pmsg != NULL && *pmsg == NULL) {
         ZFILE zfd = ZFILE_Open(name, mode);
         zip = ZIP_Put_In_Cache(name, zfd, pmsg, lastModified);
     }
--- a/src/java.base/unix/native/libjava/TimeZone_md.c	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/unix/native/libjava/TimeZone_md.c	Thu Jul 19 10:53:38 2018 -0700
@@ -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
@@ -52,7 +52,7 @@
 
 #if defined(_ALLBSD_SOURCE)
 #define dirent64 dirent
-#define readdir64_r readdir_r
+#define readdir64 readdir
 #endif
 
 #if !defined(__solaris__) || defined(__sparcv9) || defined(amd64)
@@ -122,32 +122,18 @@
     DIR *dirp = NULL;
     struct stat statbuf;
     struct dirent64 *dp = NULL;
-    struct dirent64 *entry = NULL;
     char *pathname = NULL;
     int fd = -1;
     char *dbuf = NULL;
     char *tz = NULL;
     int res;
-    long name_max = 0;
 
     dirp = opendir(dir);
     if (dirp == NULL) {
         return NULL;
     }
 
-    name_max = pathconf(dir, _PC_NAME_MAX);
-    // If pathconf did not work, fall back to a mimimum buffer size.
-    if (name_max < 1024) {
-        name_max = 1024;
-    }
-
-    entry = (struct dirent64 *)malloc(offsetof(struct dirent64, d_name) + name_max + 1);
-    if (entry == NULL) {
-        (void) closedir(dirp);
-        return NULL;
-    }
-
-    while (readdir64_r(dirp, entry, &dp) == 0 && dp != NULL) {
+    while ((dp = readdir64(dirp)) != NULL) {
         /*
          * Skip '.' and '..' (and possibly other .* files)
          */
@@ -214,9 +200,6 @@
         pathname = NULL;
     }
 
-    if (entry != NULL) {
-        free((void *) entry);
-    }
     if (dirp != NULL) {
         (void) closedir(dirp);
     }
--- a/src/java.base/unix/native/libjava/UnixFileSystem_md.c	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/unix/native/libjava/UnixFileSystem_md.c	Thu Jul 19 10:53:38 2018 -0700
@@ -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
@@ -65,7 +65,7 @@
 
 #if defined(_ALLBSD_SOURCE)
   #define dirent64 dirent
-  #define readdir64_r readdir_r
+  #define readdir64 readdir
   #define stat64 stat
   #ifndef MACOSX
     #define statvfs64 statvfs
@@ -312,7 +312,6 @@
 {
     DIR *dir = NULL;
     struct dirent64 *ptr;
-    struct dirent64 *result;
     int len, maxlen;
     jobjectArray rv, old;
     jclass str_class;
@@ -325,13 +324,6 @@
     } END_PLATFORM_STRING(env, path);
     if (dir == NULL) return NULL;
 
-    ptr = malloc(sizeof(struct dirent64) + (PATH_MAX + 1));
-    if (ptr == NULL) {
-        JNU_ThrowOutOfMemoryError(env, "heap allocation failed");
-        closedir(dir);
-        return NULL;
-    }
-
     /* Allocate an initial String array */
     len = 0;
     maxlen = 16;
@@ -339,7 +331,7 @@
     if (rv == NULL) goto error;
 
     /* Scan the directory */
-    while ((readdir64_r(dir, ptr, &result) == 0)  && (result != NULL)) {
+    while ((ptr = readdir64(dir)) != NULL) {
         jstring name;
         if (!strcmp(ptr->d_name, ".") || !strcmp(ptr->d_name, ".."))
             continue;
@@ -360,7 +352,6 @@
         (*env)->DeleteLocalRef(env, name);
     }
     closedir(dir);
-    free(ptr);
 
     /* Copy the final results into an appropriately-sized array */
     old = rv;
@@ -375,7 +366,6 @@
 
  error:
     closedir(dir);
-    free(ptr);
     return NULL;
 }
 
--- a/src/java.base/unix/native/libnet/Inet4AddressImpl.c	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/unix/native/libnet/Inet4AddressImpl.c	Thu Jul 19 10:53:38 2018 -0700
@@ -193,7 +193,11 @@
             }
             setInetAddress_addr(env, iaObj, ntohl(((struct sockaddr_in *)
                                 (iterator->ai_addr))->sin_addr.s_addr));
+            if ((*env)->ExceptionCheck(env))
+                goto cleanupAndReturn;
             setInetAddress_hostName(env, iaObj, host);
+            if ((*env)->ExceptionCheck(env))
+                goto cleanupAndReturn;
             (*env)->SetObjectArrayElement(env, ret, i++, iaObj);
             iterator = iterator->ai_next;
         }
--- a/src/java.base/unix/native/libnet/Inet6AddressImpl.c	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/unix/native/libnet/Inet6AddressImpl.c	Thu Jul 19 10:53:38 2018 -0700
@@ -198,6 +198,8 @@
                 return NULL;
             }
             setInetAddress_hostName(env, o, name);
+            if ((*env)->ExceptionCheck(env))
+                goto done;
             (*env)->SetObjectArrayElement(env, result, index, o);
             (*env)->DeleteLocalRef(env, o);
         }
@@ -355,7 +357,11 @@
                     goto cleanupAndReturn;
                 }
                 setInetAddress_addr(env, iaObj, ntohl(((struct sockaddr_in*)iterator->ai_addr)->sin_addr.s_addr));
+                if ((*env)->ExceptionCheck(env))
+                    goto cleanupAndReturn;
                 setInetAddress_hostName(env, iaObj, host);
+                if ((*env)->ExceptionCheck(env))
+                    goto cleanupAndReturn;
                 (*env)->SetObjectArrayElement(env, ret, (inetIndex | originalIndex), iaObj);
                 inetIndex++;
             } else if (iterator->ai_family == AF_INET6) {
@@ -376,6 +382,8 @@
                     setInet6Address_scopeid(env, iaObj, scope);
                 }
                 setInetAddress_hostName(env, iaObj, host);
+                if ((*env)->ExceptionCheck(env))
+                    goto cleanupAndReturn;
                 (*env)->SetObjectArrayElement(env, ret, (inet6Index | originalIndex), iaObj);
                 inet6Index++;
             }
--- a/src/java.base/unix/native/libnet/NetworkInterface.c	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/unix/native/libnet/NetworkInterface.c	Thu Jul 19 10:53:38 2018 -0700
@@ -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
@@ -329,11 +329,11 @@
   (JNIEnv *env, jclass cls, jobject iaObj)
 {
     netif *ifs, *curr;
+    jobject obj = NULL;
+    jboolean match = JNI_FALSE;
     int family = (getInetAddress_family(env, iaObj) == java_net_InetAddress_IPv4) ?
         AF_INET : AF_INET6;
-    jobject obj = NULL;
-    jboolean match = JNI_FALSE;
-
+    JNU_CHECK_EXCEPTION_RETURN(env, NULL);
     ifs = enumInterfaces(env);
     if (ifs == NULL) {
         return NULL;
@@ -351,7 +351,7 @@
                     int address1 = htonl(
                         ((struct sockaddr_in *)addrP->addr)->sin_addr.s_addr);
                     int address2 = getInetAddress_addr(env, iaObj);
-
+                    JNU_CHECK_EXCEPTION_RETURN(env, NULL);
                     if (address1 == address2) {
                         match = JNI_TRUE;
                         break;
@@ -698,6 +698,7 @@
             if (iaObj) {
                 setInetAddress_addr(env, iaObj, htonl(
                     ((struct sockaddr_in*)addrP->addr)->sin_addr.s_addr));
+                JNU_CHECK_EXCEPTION_RETURN(env, NULL);
             } else {
                 return NULL;
             }
@@ -710,6 +711,7 @@
                     if (ia2Obj) {
                         setInetAddress_addr(env, ia2Obj, htonl(
                             ((struct sockaddr_in*)addrP->brdcast)->sin_addr.s_addr));
+                        JNU_CHECK_EXCEPTION_RETURN(env, NULL);
                         (*env)->SetObjectField(env, ibObj, ni_ib4broadcastID, ia2Obj);
                     } else {
                         return NULL;
--- a/src/java.base/unix/native/libnet/PlainDatagramSocketImpl.c	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/unix/native/libnet/PlainDatagramSocketImpl.c	Thu Jul 19 10:53:38 2018 -0700
@@ -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
@@ -531,9 +531,12 @@
     iaObj = NET_SockaddrToInetAddress(env, &rmtaddr, &port);
     family = getInetAddress_family(env, iaObj) == java_net_InetAddress_IPv4 ?
         AF_INET : AF_INET6;
+    JNU_CHECK_EXCEPTION_RETURN(env, -1);
     if (family == AF_INET) { /* this API can't handle IPV6 addresses */
         int address = getInetAddress_addr(env, iaObj);
+        JNU_CHECK_EXCEPTION_RETURN(env, -1);
         setInetAddress_addr(env, addressObj, address);
+        JNU_CHECK_EXCEPTION_RETURN(env, -1);
     }
     return port;
 }
@@ -1014,6 +1017,7 @@
     struct in_addr in;
     jobjectArray addrArray;
     jsize len;
+    jint family;
     jobject addr;
     int i;
 
@@ -1044,8 +1048,11 @@
     in.s_addr = 0;
     for (i = 0; i < len; i++) {
         addr = (*env)->GetObjectArrayElement(env, addrArray, i);
-        if (getInetAddress_family(env, addr) == java_net_InetAddress_IPv4) {
+        family = getInetAddress_family(env, addr);
+        JNU_CHECK_EXCEPTION(env);
+        if (family == java_net_InetAddress_IPv4) {
             in.s_addr = htonl(getInetAddress_addr(env, addr));
+            JNU_CHECK_EXCEPTION(env);
             break;
         }
     }
@@ -1095,7 +1102,7 @@
     struct in_addr in;
 
     in.s_addr = htonl( getInetAddress_addr(env, value) );
-
+    JNU_CHECK_EXCEPTION(env);
     if (setsockopt(fd, IPPROTO_IP, IP_MULTICAST_IF,
                    (const char*)&in, sizeof(in)) < 0) {
         JNU_ThrowByNameWithMessageAndLastError
@@ -1458,6 +1465,7 @@
         CHECK_NULL_RETURN(addr, NULL);
 
         setInetAddress_addr(env, addr, ntohl(in.s_addr));
+        JNU_CHECK_EXCEPTION_RETURN(env, NULL);
 
         /*
          * For IP_MULTICAST_IF return InetAddress
@@ -1890,6 +1898,7 @@
 
     jobject fdObj = (*env)->GetObjectField(env, this, pdsi_fdID);
     jint fd;
+    jint family;
     jint ipv6_join_leave;
 
     if (IS_NULL(fdObj)) {
@@ -1910,7 +1919,9 @@
     ipv6_join_leave = ipv6_available();
 
 #ifdef __linux__
-    if (getInetAddress_family(env, iaObj) == java_net_InetAddress_IPv4) {
+    family = getInetAddress_family(env, iaObj);
+    JNU_CHECK_EXCEPTION(env);
+    if (family == java_net_InetAddress_IPv4) {
         ipv6_join_leave = JNI_FALSE;
     }
 #endif
@@ -1951,6 +1962,7 @@
                 }
 
                 mname.imr_multiaddr.s_addr = htonl(getInetAddress_addr(env, iaObj));
+                JNU_CHECK_EXCEPTION(env);
                 mname.imr_address.s_addr = 0;
                 mname.imr_ifindex =  (*env)->GetIntField(env, niObj, ni_indexID);
                 mname_len = sizeof(struct ip_mreqn);
@@ -1969,11 +1981,14 @@
                 addr = (*env)->GetObjectArrayElement(env, addrArray, 0);
 
                 mname.imr_multiaddr.s_addr = htonl(getInetAddress_addr(env, iaObj));
+                JNU_CHECK_EXCEPTION(env);
 #ifdef __linux__
                 mname.imr_address.s_addr = htonl(getInetAddress_addr(env, addr));
+                JNU_CHECK_EXCEPTION(env);
                 mname.imr_ifindex = 0;
 #else
                 mname.imr_interface.s_addr = htonl(getInetAddress_addr(env, addr));
+                JNU_CHECK_EXCEPTION(env);
 #endif
                 mname_len = sizeof(struct ip_mreq);
             }
@@ -2009,6 +2024,7 @@
                 }
 
                 mname.imr_multiaddr.s_addr = htonl(getInetAddress_addr(env, iaObj));
+                JNU_CHECK_EXCEPTION(env);
                 mname.imr_address.s_addr = 0 ;
                 mname.imr_ifindex = index;
                 mname_len = sizeof(struct ip_mreqn);
@@ -2031,6 +2047,7 @@
                 mname.imr_interface.s_addr = in.s_addr;
 #endif
                 mname.imr_multiaddr.s_addr = htonl(getInetAddress_addr(env, iaObj));
+                JNU_CHECK_EXCEPTION(env);
                 mname_len = sizeof(struct ip_mreq);
             }
         }
@@ -2097,10 +2114,11 @@
         jint address;
         family = getInetAddress_family(env, iaObj) == java_net_InetAddress_IPv4 ?
             AF_INET : AF_INET6;
+        JNU_CHECK_EXCEPTION(env);
         if (family == AF_INET) { /* will convert to IPv4-mapped address */
             memset((char *) caddr, 0, 16);
             address = getInetAddress_addr(env, iaObj);
-
+            JNU_CHECK_EXCEPTION(env);
             caddr[10] = 0xff;
             caddr[11] = 0xff;
 
--- a/src/java.base/unix/native/libnet/net_util_md.c	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/unix/native/libnet/net_util_md.c	Thu Jul 19 10:53:38 2018 -0700
@@ -764,6 +764,7 @@
                           jboolean v4MappedAddress)
 {
     jint family = getInetAddress_family(env, iaObj);
+    JNU_CHECK_EXCEPTION_RETURN(env, -1);
     memset((char *)sa, 0, sizeof(SOCKETADDRESS));
 
     if (ipv6_available() &&
@@ -777,6 +778,7 @@
             // convert to IPv4-mapped address
             memset((char *)caddr, 0, 16);
             address = getInetAddress_addr(env, iaObj);
+            JNU_CHECK_EXCEPTION_RETURN(env, -1);
             if (address == INADDR_ANY) {
                 /* we would always prefer IPv6 wildcard address
                  * caddr[10] = 0xff;
@@ -871,6 +873,7 @@
             return -1;
         }
         address = getInetAddress_addr(env, iaObj);
+        JNU_CHECK_EXCEPTION_RETURN(env, -1);
         sa->sa4.sin_port = htons(port);
         sa->sa4.sin_addr.s_addr = htonl(address);
         sa->sa4.sin_family = AF_INET;
--- a/src/java.base/unix/native/libnio/fs/UnixNativeDispatcher.c	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/unix/native/libnio/fs/UnixNativeDispatcher.c	Thu Jul 19 10:53:38 2018 -0700
@@ -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
@@ -72,7 +72,7 @@
 #define fstat64 fstat
 #define lstat64 lstat
 #define dirent64 dirent
-#define readdir64_r readdir_r
+#define readdir64 readdir
 #endif
 
 #include "jni.h"
@@ -425,9 +425,17 @@
 
 JNIEXPORT void JNICALL
 Java_sun_nio_fs_UnixNativeDispatcher_close0(JNIEnv* env, jclass this, jint fd) {
-    int err;
-    /* TDB - need to decide if EIO and other errors should cause exception */
-    RESTARTABLE(close((int)fd), err);
+    int res;
+
+#if defined(_AIX)
+    /* AIX allows close to be restarted after EINTR */
+    RESTARTABLE(close((int)fd), res);
+#else
+    res = close((int)fd);
+#endif
+    if (res == -1 && errno != EINTR) {
+        throwUnixException(env, errno);
+    }
 }
 
 JNIEXPORT jint JNICALL
@@ -720,41 +728,23 @@
 
 JNIEXPORT jbyteArray JNICALL
 Java_sun_nio_fs_UnixNativeDispatcher_readdir(JNIEnv* env, jclass this, jlong value) {
-    struct dirent64* result;
-    struct {
-        struct dirent64 buf;
-        char name_extra[PATH_MAX + 1 - sizeof result->d_name];
-    } entry;
-    struct dirent64* ptr = &entry.buf;
-    int res;
     DIR* dirp = jlong_to_ptr(value);
+    struct dirent64* ptr;
 
-    /* EINTR not listed as a possible error */
-    /* TDB: reentrant version probably not required here */
-    res = readdir64_r(dirp, ptr, &result);
-
-#ifdef _AIX
-    /* On AIX, readdir_r() returns EBADF (i.e. '9') and sets 'result' to NULL for the */
-    /* directory stream end. Otherwise, 'errno' will contain the error code. */
-    if (res != 0) {
-        res = (result == NULL && res == EBADF) ? 0 : errno;
-    }
-#endif
-
-    if (res != 0) {
-        throwUnixException(env, res);
+    errno = 0;
+    ptr = readdir64(dirp);
+    if (ptr == NULL) {
+        if (errno != 0) {
+            throwUnixException(env, errno);
+        }
         return NULL;
     } else {
-        if (result == NULL) {
-            return NULL;
-        } else {
-            jsize len = strlen(ptr->d_name);
-            jbyteArray bytes = (*env)->NewByteArray(env, len);
-            if (bytes != NULL) {
-                (*env)->SetByteArrayRegion(env, bytes, 0, len, (jbyte*)(ptr->d_name));
-            }
-            return bytes;
+        jsize len = strlen(ptr->d_name);
+        jbyteArray bytes = (*env)->NewByteArray(env, len);
+        if (bytes != NULL) {
+            (*env)->SetByteArrayRegion(env, bytes, 0, len, (jbyte*)(ptr->d_name));
         }
+        return bytes;
     }
 }
 
--- a/src/java.base/windows/native/libjava/WinNTFileSystem_md.c	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/windows/native/libjava/WinNTFileSystem_md.c	Thu Jul 19 10:53:38 2018 -0700
@@ -36,6 +36,7 @@
 #include <windows.h>
 #include <io.h>
 #include <limits.h>
+#include <wchar.h>
 
 #include "jni.h"
 #include "io_util.h"
@@ -137,28 +138,10 @@
                              result[5] == L'N' &&
                              result[6] == L'C');
                 int prefixLen = (isUnc) ? 7 : 4;
-                /* actual result length (includes terminator) */
-                int resultLen = len - prefixLen + (isUnc ? 1 : 0) + 1;
-
-                /* copy result without prefix into new buffer */
-                WCHAR *tmp = (WCHAR*)malloc(resultLen * sizeof(WCHAR));
-                if (tmp == NULL) {
-                    JNU_ThrowOutOfMemoryError(env, "native memory allocation failed");
-                    len = 0;
-                } else {
-                    WCHAR *p = result;
-                    p += prefixLen;
-                    if (isUnc) {
-                        WCHAR *p2 = tmp;
-                        p2[0] = L'\\';
-                        p2++;
-                        wcscpy(p2, p);
-                    } else {
-                        wcscpy(tmp, p);
-                    }
-                    free(result);
-                    result = tmp;
-                }
+                int prefixToKeep = (isUnc) ? 1 : 0;
+                // the amount to copy includes terminator
+                int amountToCopy = len - prefixLen + 1;
+                wmemmove(result + prefixToKeep, result + prefixLen, amountToCopy);
             }
         }
 
@@ -656,6 +639,7 @@
     jstring name;
     jclass str_class;
     WCHAR *pathbuf;
+    DWORD err;
 
     str_class = JNU_ClassString(env);
     CHECK_NULL_RETURN(str_class, NULL);
@@ -717,8 +701,10 @@
     len = 0;
     maxlen = 16;
     rv = (*env)->NewObjectArray(env, maxlen, str_class, NULL);
-    if (rv == NULL) // Couldn't allocate an array
+    if (rv == NULL) { // Couldn't allocate an array
+        FindClose(handle);
         return NULL;
+    }
     /* Scan the directory */
     do {
         if (!wcscmp(find_data.cFileName, L".")
@@ -726,13 +712,17 @@
            continue;
         name = (*env)->NewString(env, find_data.cFileName,
                                  (jsize)wcslen(find_data.cFileName));
-        if (name == NULL)
-            return NULL; // error;
+        if (name == NULL) {
+            FindClose(handle);
+            return NULL; // error
+        }
         if (len == maxlen) {
             old = rv;
             rv = (*env)->NewObjectArray(env, maxlen <<= 1, str_class, NULL);
-            if (rv == NULL || JNU_CopyObjectArray(env, rv, old, len) < 0)
+            if (rv == NULL || JNU_CopyObjectArray(env, rv, old, len) < 0) {
+                FindClose(handle);
                 return NULL; // error
+            }
             (*env)->DeleteLocalRef(env, old);
         }
         (*env)->SetObjectArrayElement(env, rv, len++, name);
@@ -740,9 +730,11 @@
 
     } while (FindNextFileW(handle, &find_data));
 
-    if (GetLastError() != ERROR_NO_MORE_FILES)
+    err = GetLastError();
+    FindClose(handle);
+    if (err != ERROR_NO_MORE_FILES) {
         return NULL; // error
-    FindClose(handle);
+    }
 
     if (len < maxlen) {
         /* Copy the final results into an appropriately-sized array */
--- a/src/java.base/windows/native/libjava/io_util_md.c	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/windows/native/libjava/io_util_md.c	Thu Jul 19 10:53:38 2018 -0700
@@ -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/libnet/Inet4AddressImpl.c	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/windows/native/libnet/Inet4AddressImpl.c	Thu Jul 19 10:53:38 2018 -0700
@@ -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
@@ -146,7 +146,11 @@
             }
             setInetAddress_addr(env, iaObj, ntohl(((struct sockaddr_in *)
                                 (iterator->ai_addr))->sin_addr.s_addr));
+            if ((*env)->ExceptionCheck(env))
+                goto cleanupAndReturn;
             setInetAddress_hostName(env, iaObj, host);
+            if ((*env)->ExceptionCheck(env))
+                goto cleanupAndReturn;
             (*env)->SetObjectArrayElement(env, ret, i++, iaObj);
             iterator = iterator->ai_next;
         }
--- a/src/java.base/windows/native/libnet/Inet6AddressImpl.c	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/windows/native/libnet/Inet6AddressImpl.c	Thu Jul 19 10:53:38 2018 -0700
@@ -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
@@ -187,7 +187,11 @@
                     goto cleanupAndReturn;
                 }
                 setInetAddress_addr(env, iaObj, ntohl(((struct sockaddr_in*)iterator->ai_addr)->sin_addr.s_addr));
+                if ((*env)->ExceptionCheck(env))
+                    goto cleanupAndReturn;
                 setInetAddress_hostName(env, iaObj, host);
+                if ((*env)->ExceptionCheck(env))
+                    goto cleanupAndReturn;
                 (*env)->SetObjectArrayElement(env, ret, (inetIndex | originalIndex), iaObj);
                 inetIndex++;
             } else if (iterator->ai_family == AF_INET6) {
@@ -208,6 +212,8 @@
                     setInet6Address_scopeid(env, iaObj, scope);
                 }
                 setInetAddress_hostName(env, iaObj, host);
+                if ((*env)->ExceptionCheck(env))
+                    goto cleanupAndReturn;
                 (*env)->SetObjectArrayElement(env, ret, (inet6Index | originalIndex), iaObj);
                 inet6Index++;
             }
--- a/src/java.base/windows/native/libnet/NetworkInterface.c	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/windows/native/libnet/NetworkInterface.c	Thu Jul 19 10:53:38 2018 -0700
@@ -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
@@ -586,6 +586,7 @@
             /* default ctor will set family to AF_INET */
 
             setInetAddress_addr(env, iaObj, ntohl(addrs->addr.sa4.sin_addr.s_addr));
+            JNU_CHECK_EXCEPTION_RETURN(env, NULL);
             if (addrs->mask != -1) {
               ibObj = (*env)->NewObject(env, ni_ibcls, ni_ibctrID);
               if (ibObj == NULL) {
@@ -599,6 +600,7 @@
                 return NULL;
               }
               setInetAddress_addr(env, ia2Obj, ntohl(addrs->brdcast.sa4.sin_addr.s_addr));
+              JNU_CHECK_EXCEPTION_RETURN(env, NULL);
               (*env)->SetObjectField(env, ibObj, ni_ibbroadcastID, ia2Obj);
               (*env)->SetShortField(env, ibObj, ni_ibmaskID, addrs->mask);
               (*env)->SetObjectArrayElement(env, bindsArr, bind_index++, ibObj);
@@ -754,8 +756,9 @@
     (JNIEnv *env, jclass cls, jobject iaObj)
 {
     netif *ifList, *curr;
+    jobject netifObj = NULL;
     jint addr = getInetAddress_addr(env, iaObj);
-    jobject netifObj = NULL;
+    JNU_CHECK_EXCEPTION_RETURN(env, NULL);
 
     // Retained for now to support IPv4 only stack, java.net.preferIPv4Stack
     if (ipv6_available()) {
--- a/src/java.base/windows/native/libnet/NetworkInterface_winXP.c	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/windows/native/libnet/NetworkInterface_winXP.c	Thu Jul 19 10:53:38 2018 -0700
@@ -584,7 +584,7 @@
             /* default ctor will set family to AF_INET */
 
             setInetAddress_addr(env, iaObj, ntohl(addrs->addr.sa4.sin_addr.s_addr));
-
+            JNU_CHECK_EXCEPTION_RETURN(env, NULL);
             ibObj = (*env)->NewObject(env, ni_ibcls, ni_ibctrID);
             if (ibObj == NULL) {
               free_netaddr(netaddrP);
@@ -597,6 +597,7 @@
               return NULL;
             }
             setInetAddress_addr(env, ia2Obj, ntohl(addrs->brdcast.sa4.sin_addr.s_addr));
+            JNU_CHECK_EXCEPTION_RETURN(env, NULL);
             (*env)->SetObjectField(env, ibObj, ni_ibbroadcastID, ia2Obj);
             (*env)->SetShortField(env, ibObj, ni_ibmaskID, addrs->mask);
             (*env)->SetObjectArrayElement(env, bindsArr, bind_index++, ibObj);
--- a/src/java.base/windows/native/libnet/TwoStacksPlainDatagramSocketImpl.c	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/windows/native/libnet/TwoStacksPlainDatagramSocketImpl.c	Thu Jul 19 10:53:38 2018 -0700
@@ -219,16 +219,16 @@
     jobject fd1Obj = (*env)->GetObjectField(env, this, pdsi_fd1ID);
     int ipv6_supported = ipv6_available();
     int fd, fd1 = -1, lcladdrlen = 0;
+    jint family;
     SOCKETADDRESS lcladdr;
 
-    if (getInetAddress_family(env, addressObj) == java_net_InetAddress_IPv6 &&
-        !ipv6_supported)
-    {
+    family = getInetAddress_family(env, addressObj);
+    JNU_CHECK_EXCEPTION(env);
+    if (family == java_net_InetAddress_IPv6 && !ipv6_supported) {
         JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException",
                         "Protocol family not supported");
         return;
     }
-
     if (IS_NULL(fdObj) || (ipv6_supported && IS_NULL(fd1Obj))) {
         JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException", "socket closed");
         return;
@@ -344,6 +344,7 @@
     }
 
     family = getInetAddress_family(env, address);
+    JNU_CHECK_EXCEPTION(env);
     if (family == java_net_InetAddress_IPv6 && !ipv6_available()) {
         JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException",
                         "Protocol family not supported");
@@ -455,6 +456,7 @@
     }
 
     family = getInetAddress_family(env, iaObj);
+    JNU_CHECK_EXCEPTION(env);
     if (family == java_net_InetAddress_IPv4) {
         fdObj = (*env)->GetObjectField(env, this, pdsi_fdID);
     } else {
@@ -584,6 +586,7 @@
         return -1;
     } else {
         address = getInetAddress_addr(env, addressObj);
+        JNU_CHECK_EXCEPTION_RETURN(env, -1);
         /* We only handle IPv4 for now. Will support IPv6 once its in the os */
         family = AF_INET;
     }
@@ -657,7 +660,9 @@
         return 0;
     }
     setInetAddress_addr(env, addressObj, ntohl(remote_addr.sa4.sin_addr.s_addr));
+    JNU_CHECK_EXCEPTION_RETURN(env, -1);
     setInetAddress_family(env, addressObj, java_net_InetAddress_IPv4);
+    JNU_CHECK_EXCEPTION_RETURN(env, -1);
 
     /* return port */
     return ntohs(remote_addr.sa4.sin_port);
@@ -1349,6 +1354,7 @@
         int fam;
         addr = (*env)->GetObjectArrayElement(env, addrArray, i);
         fam = getInetAddress_family(env, addr);
+        JNU_CHECK_EXCEPTION_RETURN(env, -1);
         if (fam == family) {
             *iaddr = addr;
             return 0;
@@ -1367,6 +1373,7 @@
     }
 
     iaddr->s_addr = htonl(getInetAddress_addr(env, addr));
+    JNU_CHECK_EXCEPTION_RETURN(env, -1);
     return 0;
 }
 
@@ -1471,6 +1478,7 @@
             struct in_addr in;
 
             in.s_addr = htonl(getInetAddress_addr(env, value));
+            JNU_CHECK_EXCEPTION(env);
             if (setsockopt(fd, IPPROTO_IP, IP_MULTICAST_IF,
                                (const char*)&in, sizeof(in)) < 0) {
                 JNU_ThrowByNameWithMessageAndLastError
@@ -1712,7 +1720,7 @@
         CHECK_NULL_RETURN(addr, NULL);
 
         setInetAddress_addr(env, addr, ntohl(in.s_addr));
-
+        JNU_CHECK_EXCEPTION_RETURN(env, NULL);
         /*
          * For IP_MULTICAST_IF return InetAddress
          */
--- a/src/java.base/windows/native/libnet/net_util_md.c	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.base/windows/native/libnet/net_util_md.c	Thu Jul 19 10:53:38 2018 -0700
@@ -794,6 +794,7 @@
                           jboolean v4MappedAddress)
 {
     jint family = getInetAddress_family(env, iaObj);
+    JNU_CHECK_EXCEPTION_RETURN(env, -1);
     memset((char *)sa, 0, sizeof(SOCKETADDRESS));
 
     if (ipv6_available() &&
@@ -808,6 +809,7 @@
             // convert to IPv4-mapped address
             memset((char *)caddr, 0, 16);
             address = getInetAddress_addr(env, iaObj);
+            JNU_CHECK_EXCEPTION_RETURN(env, -1);
             if (address == INADDR_ANY) {
                 /* we would always prefer IPv6 wildcard address
                  * caddr[10] = 0xff;
@@ -846,6 +848,7 @@
             return -1;
         }
         address = getInetAddress_addr(env, iaObj);
+        JNU_CHECK_EXCEPTION_RETURN(env, -1);
         sa->sa4.sin_port = htons((short)port);
         sa->sa4.sin_addr.s_addr = (u_long)htonl(address);
         sa->sa4.sin_family = AF_INET;
--- a/src/java.desktop/macosx/classes/com/apple/eio/FileManager.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.desktop/macosx/classes/com/apple/eio/FileManager.java	Thu Jul 19 10:53:38 2018 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2012, 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
@@ -364,11 +364,11 @@
          * @since Java for Mac OS X 10.5 Update 6 - 1.6, 1.5
          */
         public static boolean moveToTrash(final File file) throws FileNotFoundException {
-                if (file == null || !file.exists()) throw new FileNotFoundException();
+                if (file == null) throw new FileNotFoundException();
                 final String fileName = file.getAbsolutePath();
 
                 final SecurityManager security = System.getSecurityManager();
-                if (security != null) security.checkWrite(fileName);
+                if (security != null) security.checkDelete(fileName);
 
                 return _moveToTrash(fileName);
         }
--- a/src/java.desktop/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.desktop/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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/java/awt/Desktop.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.desktop/share/classes/java/awt/Desktop.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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
@@ -42,6 +42,9 @@
 import java.io.IOException;
 import java.net.URI;
 import java.net.URISyntaxException;
+import java.net.URL;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 import java.util.Objects;
 
 import javax.swing.JMenuBar;
@@ -363,15 +366,11 @@
      * @throws NullPointerException if file is null
      * @throws IllegalArgumentException if file doesn't exist
      */
-    private static void checkFileValidation(File file){
-        if (file == null) throw new NullPointerException("File must not be null");
-
+    private static void checkFileValidation(File file) {
         if (!file.exists()) {
             throw new IllegalArgumentException("The file: "
                     + file.getPath() + " doesn't exist.");
         }
-
-        file.canRead();
     }
 
     /**
@@ -425,6 +424,7 @@
      * @see java.awt.AWTPermission
      */
     public void open(File file) throws IOException {
+        file = new File(file.getPath());
         checkAWTPermission();
         checkExec();
         checkActionSupport(Action.OPEN);
@@ -456,6 +456,7 @@
      * @see java.awt.AWTPermission
      */
     public void edit(File file) throws IOException {
+        file = new File(file.getPath());
         checkAWTPermission();
         checkExec();
         checkActionSupport(Action.EDIT);
@@ -486,6 +487,7 @@
      * allowed to create a subprocess
      */
     public void print(File file) throws IOException {
+        file = new File(file.getPath());
         checkExec();
         SecurityManager sm = System.getSecurityManager();
         if (sm != null) {
@@ -614,14 +616,6 @@
         }
     }
 
-    private void checkDelete() throws SecurityException {
-        SecurityManager sm = System.getSecurityManager();
-        if (sm != null) {
-            sm.checkPermission(new FilePermission("<<ALL FILES>>",
-                    SecurityConstants.FILE_DELETE_ACTION));
-        }
-    }
-
     private void checkQuitPermission() {
         SecurityManager sm = System.getSecurityManager();
         if (sm != null) {
@@ -950,6 +944,8 @@
      * @since 9
      */
     public void openHelpViewer() {
+        checkAWTPermission();
+        checkExec();
         checkEventsProcessingPermission();
         checkActionSupport(Action.APP_HELP_VIEWER);
         peer.openHelpViewer();
@@ -995,9 +991,15 @@
      * @since 9
      */
     public void browseFileDirectory(File file) {
-        checkRead();
+        file = new File(file.getPath());
+        checkAWTPermission();
+        checkExec();
         checkActionSupport(Action.BROWSE_FILE_DIR);
         checkFileValidation(file);
+        File parentFile = file.getParentFile();
+        if (parentFile == null || !parentFile.exists()) {
+            throw new IllegalArgumentException("Parent folder doesn't exist");
+        }
         peer.browseFileDirectory(file);
     }
 
@@ -1017,10 +1019,18 @@
      *
      * @since 9
      */
-    public boolean moveToTrash(final File file) {
-        checkDelete();
+    public boolean moveToTrash(File file) {
+        file = new File(file.getPath());
+        SecurityManager sm = System.getSecurityManager();
+        if (sm != null) {
+            sm.checkDelete(file.getPath());
+        }
         checkActionSupport(Action.MOVE_TO_TRASH);
-        checkFileValidation(file);
+        final File finalFile = file;
+        AccessController.doPrivileged((PrivilegedAction<?>) () -> {
+            checkFileValidation(finalFile);
+            return null;
+        });
         return peer.moveToTrash(file);
     }
 }
--- a/src/java.desktop/share/classes/java/awt/Font.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.desktop/share/classes/java/awt/Font.java	Thu Jul 19 10:53:38 2018 -0700
@@ -1895,8 +1895,7 @@
      * @see #readObject(java.io.ObjectInputStream)
      */
     private void writeObject(java.io.ObjectOutputStream s)
-      throws java.lang.ClassNotFoundException,
-             java.io.IOException
+      throws java.io.IOException
     {
         if (values != null) {
           synchronized(values) {
--- a/src/java.desktop/share/classes/java/awt/MenuBar.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.desktop/share/classes/java/awt/MenuBar.java	Thu Jul 19 10:53:38 2018 -0700
@@ -432,8 +432,7 @@
      * @see #readObject(java.io.ObjectInputStream)
      */
     private void writeObject(java.io.ObjectOutputStream s)
-      throws java.lang.ClassNotFoundException,
-             java.io.IOException
+      throws java.io.IOException
     {
       s.defaultWriteObject();
     }
--- a/src/java.desktop/share/classes/java/awt/font/TransformAttribute.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.desktop/share/classes/java/awt/font/TransformAttribute.java	Thu Jul 19 10:53:38 2018 -0700
@@ -100,8 +100,7 @@
     public static final TransformAttribute IDENTITY = new TransformAttribute(null);
 
     private void writeObject(java.io.ObjectOutputStream s)
-      throws java.lang.ClassNotFoundException,
-             java.io.IOException
+      throws java.io.IOException
     {
         // sigh -- 1.3 expects transform is never null, so we need to always write one out
         if (this.transform == null) {
--- a/src/java.desktop/share/classes/java/awt/geom/AffineTransform.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.desktop/share/classes/java/awt/geom/AffineTransform.java	Thu Jul 19 10:53:38 2018 -0700
@@ -3943,7 +3943,7 @@
     private static final long serialVersionUID = 1330973210523860834L;
 
     private void writeObject(java.io.ObjectOutputStream s)
-        throws java.lang.ClassNotFoundException, java.io.IOException
+        throws java.io.IOException
     {
         s.defaultWriteObject();
     }
--- a/src/java.desktop/share/classes/java/beans/beancontext/BeanContextSupport.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.desktop/share/classes/java/beans/beancontext/BeanContextSupport.java	Thu Jul 19 10:53:38 2018 -0700
@@ -998,7 +998,7 @@
      * @param oos the ObjectOutputStream
      */
 
-    private synchronized void writeObject(ObjectOutputStream oos) throws IOException, ClassNotFoundException {
+    private synchronized void writeObject(ObjectOutputStream oos) throws IOException {
         serializing = true;
 
         synchronized (BeanContext.globalHierarchyLock) {
--- a/src/java.desktop/share/classes/javax/swing/text/html/ImageView.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.desktop/share/classes/javax/swing/text/html/ImageView.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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/unix/native/common/awt/fontpath.c	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.desktop/unix/native/common/awt/fontpath.c	Thu Jul 19 10:53:38 2018 -0700
@@ -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
@@ -265,7 +265,7 @@
     }
 
 
-    newFontPath = SAFE_SIZE_ARRAY_ALLOC(malloc, totalDirCount, sizeof ( char **) );
+    newFontPath = SAFE_SIZE_ARRAY_ALLOC(malloc, totalDirCount, sizeof(char *));
     /* if it fails free things and get out */
     if ( newFontPath == NULL ) {
       free ( ( void *) appendDirList );
--- a/src/java.naming/share/classes/com/sun/jndi/ldap/Connection.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.naming/share/classes/com/sun/jndi/ldap/Connection.java	Thu Jul 19 10:53:38 2018 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2014, 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
@@ -44,8 +44,11 @@
 
 import java.lang.reflect.Method;
 import java.lang.reflect.InvocationTargetException;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 import java.util.Arrays;
 import javax.net.SocketFactory;
+import javax.net.ssl.SSLParameters;
 
 /**
   * A thread that creates a connection to an LDAP server.
@@ -158,7 +161,18 @@
 
     int readTimeout;
     int connectTimeout;
+    private static final boolean IS_HOSTNAME_VERIFICATION_DISABLED
+            = hostnameVerificationDisabledValue();
 
+    private static boolean hostnameVerificationDisabledValue() {
+        PrivilegedAction<String> act = () -> System.getProperty(
+                "com.sun.jndi.ldap.object.disableEndpointIdentification");
+        String prop = AccessController.doPrivileged(act);
+        if (prop == null) {
+            return false;
+        }
+        return prop.isEmpty() ? true : Boolean.parseBoolean(prop);
+    }
     // true means v3; false means v2
     // Called in LdapClient.authenticate() (which is synchronized)
     // when connection is "quiet" and not shared; no need to synchronize
@@ -321,15 +335,20 @@
         // the SSL handshake following socket connection as part of the timeout.
         // So explicitly set a socket read timeout, trigger the SSL handshake,
         // then reset the timeout.
-        if (connectTimeout > 0 && socket instanceof SSLSocket) {
+        if (socket instanceof SSLSocket) {
             SSLSocket sslSocket = (SSLSocket) socket;
             int socketTimeout = sslSocket.getSoTimeout();
-
-            sslSocket.setSoTimeout(connectTimeout); // reuse full timeout value
+            if (!IS_HOSTNAME_VERIFICATION_DISABLED) {
+                SSLParameters param = sslSocket.getSSLParameters();
+                param.setEndpointIdentificationAlgorithm("LDAPS");
+                sslSocket.setSSLParameters(param);
+            }
+            if (connectTimeout > 0) {
+                sslSocket.setSoTimeout(connectTimeout); // reuse full timeout value
+            }
             sslSocket.startHandshake();
             sslSocket.setSoTimeout(socketTimeout);
         }
-
         return socket;
     }
 
--- a/src/java.net.http/share/classes/java/net/http/HttpResponse.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.net.http/share/classes/java/net/http/HttpResponse.java	Thu Jul 19 10:53:38 2018 -0700
@@ -1188,7 +1188,7 @@
 
         /**
          * Returns a response subscriber which publishes the response body
-         * through a {@link Publisher Publisher<List<ByteBuffer>>}.
+         * through a {@code Publisher<List<ByteBuffer>>}.
          *
          * <p> The {@link HttpResponse} using this subscriber is available
          * immediately after the response headers have been read, without
--- a/src/java.smartcardio/share/native/libj2pcsc/pcsc.c	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.smartcardio/share/native/libj2pcsc/pcsc.c	Thu Jul 19 10:53:38 2018 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2015, 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
@@ -192,7 +192,7 @@
     }
     dprintf1("-size: %d\n", size);
 
-    if (size) {
+    if (size != 0) {
         mszReaders = malloc(size);
         if (mszReaders == NULL) {
             throwOutOfMemoryError(env, NULL);
@@ -205,6 +205,8 @@
             return NULL;
         }
         dprintf1("-String: %s\n", mszReaders);
+    } else {
+      return NULL;
     }
 
     result = pcsc_multi2jstring(env, mszReaders);
--- a/src/java.xml/share/classes/javax/xml/stream/events/StartElement.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/java.xml/share/classes/javax/xml/stream/events/StartElement.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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.aot/share/classes/jdk.tools.jaotc.binformat/src/jdk/tools/jaotc/binformat/BinaryContainer.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.aot/share/classes/jdk.tools.jaotc.binformat/src/jdk/tools/jaotc/binformat/BinaryContainer.java	Thu Jul 19 10:53:38 2018 -0700
@@ -146,6 +146,7 @@
         {"SharedRuntime::exception_handler_for_return_address",        "_aot_exception_handler_for_return_address"},
         {"SharedRuntime::register_finalizer",                          "_aot_register_finalizer"},
         {"SharedRuntime::OSR_migration_end",                           "_aot_OSR_migration_end"},
+        {"SharedRuntime::enable_stack_reserved_zone",                  "_aot_enable_stack_reserved_zone"},
         {"CompilerRuntime::resolve_dynamic_invoke",                    "_aot_resolve_dynamic_invoke"},
         {"CompilerRuntime::resolve_string_by_symbol",                  "_aot_resolve_string_by_symbol"},
         {"CompilerRuntime::resolve_klass_by_symbol",                   "_aot_resolve_klass_by_symbol"},
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/api/JavacTaskPool.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/api/JavacTaskPool.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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];
 
@@ -156,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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Analyzer.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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;
@@ -475,7 +474,7 @@
      * Analyze an AST node; this involves collecting a list of all the nodes that needs rewriting,
      * and speculatively type-check the rewritten code to compare results against previously attributed code.
      */
-    void analyze(JCStatement statement, Env<AttrContext> env) {
+    protected void analyze(JCStatement statement, Env<AttrContext> env) {
         StatementScanner statementScanner = new StatementScanner(statement, env);
         statementScanner.scan();
 
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java	Thu Jul 19 10:53:38 2018 -0700
@@ -71,6 +71,7 @@
 import static com.sun.tools.javac.code.Kinds.Kind.*;
 import static com.sun.tools.javac.code.TypeTag.*;
 import static com.sun.tools.javac.code.TypeTag.WILDCARD;
+import com.sun.tools.javac.comp.Analyzer.AnalyzerMode;
 import static com.sun.tools.javac.tree.JCTree.Tag.*;
 import com.sun.tools.javac.util.JCDiagnostic.DiagnosticFlag;
 
@@ -153,7 +154,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 +198,6 @@
     boolean useBeforeDeclarationWarning;
 
     /**
-     * Switch: allow strings in switch?
-     */
-    boolean allowStringsInSwitch;
-
-    /**
      * Switch: name of source level; used for error reporting.
      */
     String sourceName;
@@ -396,7 +391,9 @@
     public Env<AttrContext> attribExprToTree(JCTree expr, Env<AttrContext> env, JCTree tree) {
         breakTree = tree;
         JavaFileObject prev = log.useSource(env.toplevel.sourcefile);
+        EnumSet<AnalyzerMode> analyzerModes = EnumSet.copyOf(analyzer.analyzerModes);
         try {
+            analyzer.analyzerModes.clear();
             attribExpr(expr, env);
         } catch (BreakAttr b) {
             return b.env;
@@ -409,6 +406,7 @@
         } finally {
             breakTree = null;
             log.useSource(prev);
+            analyzer.analyzerModes.addAll(analyzerModes);
         }
         return env;
     }
@@ -416,7 +414,9 @@
     public Env<AttrContext> attribStatToTree(JCTree stmt, Env<AttrContext> env, JCTree tree) {
         breakTree = tree;
         JavaFileObject prev = log.useSource(env.toplevel.sourcefile);
+        EnumSet<AnalyzerMode> analyzerModes = EnumSet.copyOf(analyzer.analyzerModes);
         try {
+            analyzer.analyzerModes.clear();
             attribStat(stmt, env);
         } catch (BreakAttr b) {
             return b.env;
@@ -429,6 +429,7 @@
         } finally {
             breakTree = null;
             log.useSource(prev);
+            analyzer.analyzerModes.addAll(analyzerModes);
         }
         return env;
     }
@@ -1403,9 +1404,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);
 
@@ -2762,7 +2760,7 @@
                     JCLambda lambda = (JCLambda)tree;
                     List<Type> argtypes = List.nil();
                     for (JCVariableDecl param : lambda.params) {
-                        argtypes = param.vartype != null ?
+                        argtypes = param.vartype != null && param.vartype.type != null ?
                                 argtypes.append(param.vartype.type) :
                                 argtypes.append(syms.errType);
                     }
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Flow.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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/Modules.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Modules.java	Thu Jul 19 10:53:38 2018 -0700
@@ -1552,7 +1552,9 @@
         }
 
         addExports.forEach((exportsFrom, exports) -> {
-            addVisiblePackages(msym, seen, exportsFrom, exports);
+            if (msym.readModules.contains(exportsFrom)) {
+                addVisiblePackages(msym, seen, exportsFrom, exports);
+            }
         });
     }
 
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassReader.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Gen.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Target.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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];
 
@@ -129,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/model/JavacElements.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/model/JavacElements.java	Thu Jul 19 10:53:38 2018 -0700
@@ -26,9 +26,11 @@
 package com.sun.tools.javac.model;
 
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.LinkedHashSet;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 import java.util.stream.Collectors;
 
@@ -184,7 +186,9 @@
     }
 
     private final Set<String> alreadyWarnedDuplicates = new HashSet<>();
+    private final Map<Pair<String, String>, Optional<Symbol>> resultCache = new HashMap<>();
 
+    @SuppressWarnings("unchecked")
     private <S extends Symbol> S unboundNameToSymbol(String methodName,
                                                      String nameStr,
                                                      Class<S> clazz) {
@@ -192,44 +196,46 @@
             return nameToSymbol(syms.noModule, nameStr, clazz);
         }
 
-        Set<S> found = new LinkedHashSet<>();
+        return (S) resultCache.computeIfAbsent(Pair.of(methodName, nameStr), p -> {
+            Set<S> found = new LinkedHashSet<>();
 
-        for (ModuleSymbol msym : modules.allModules()) {
-            S sym = nameToSymbol(msym, nameStr, clazz);
+            for (ModuleSymbol msym : modules.allModules()) {
+                S sym = nameToSymbol(msym, nameStr, clazz);
 
-            if (sym == null)
-                continue;
+                if (sym == null)
+                    continue;
 
-            if (clazz == ClassSymbol.class) {
-                // Always include classes
-                found.add(sym);
-            } else if (clazz == PackageSymbol.class) {
-                // In module mode, ignore the "spurious" empty packages that "enclose" module-specific packages.
-                // For example, if a module contains classes or package info in package p.q.r, it will also appear
-                // to have additional packages p.q and p, even though these packages have no content other
-                // than the subpackage.  We don't want those empty packages showing up in searches for p or p.q.
-                if (!sym.members().isEmpty() || ((PackageSymbol) sym).package_info != null) {
+                if (clazz == ClassSymbol.class) {
+                    // Always include classes
                     found.add(sym);
+                } else if (clazz == PackageSymbol.class) {
+                    // In module mode, ignore the "spurious" empty packages that "enclose" module-specific packages.
+                    // For example, if a module contains classes or package info in package p.q.r, it will also appear
+                    // to have additional packages p.q and p, even though these packages have no content other
+                    // than the subpackage.  We don't want those empty packages showing up in searches for p or p.q.
+                    if (!sym.members().isEmpty() || ((PackageSymbol) sym).package_info != null) {
+                        found.add(sym);
+                    }
                 }
             }
-        }
 
-        if (found.size() == 1) {
-            return found.iterator().next();
-        } else if (found.size() > 1) {
-            //more than one element found, produce a note:
-            if (alreadyWarnedDuplicates.add(methodName + ":" + nameStr)) {
-                String moduleNames = found.stream()
-                                          .map(s -> s.packge().modle)
-                                          .map(m -> m.toString())
-                                          .collect(Collectors.joining(", "));
-                log.note(Notes.MultipleElements(methodName, nameStr, moduleNames));
+            if (found.size() == 1) {
+                return Optional.of(found.iterator().next());
+            } else if (found.size() > 1) {
+                //more than one element found, produce a note:
+                if (alreadyWarnedDuplicates.add(methodName + ":" + nameStr)) {
+                    String moduleNames = found.stream()
+                                              .map(s -> s.packge().modle)
+                                              .map(m -> m.toString())
+                                              .collect(Collectors.joining(", "));
+                    log.note(Notes.MultipleElements(methodName, nameStr, moduleNames));
+                }
+                return Optional.empty();
+            } else {
+                //not found:
+                return Optional.empty();
             }
-            return null;
-        } else {
-            //not found, or more than one element found:
-            return null;
-        }
+        }).orElse(null);
     }
 
     /**
@@ -787,4 +793,8 @@
             throw new IllegalArgumentException(o.toString());
         return clazz.cast(o);
     }
+
+    public void newRound() {
+        resultCache.clear();
+    }
 }
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavaTokenizer.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavaTokenizer.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java	Thu Jul 19 10:53:38 2018 -0700
@@ -1270,6 +1270,7 @@
             modules.newRound();
             types.newRound();
             annotate.newRound();
+            elementUtils.newRound();
 
             boolean foundError = false;
 
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties	Thu Jul 19 10:53:38 2018 -0700
@@ -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.crypto.ec/share/classes/sun/security/ec/XDHKeyAgreement.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.crypto.ec/share/classes/sun/security/ec/XDHKeyAgreement.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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.crypto.ec/share/native/libsunec/impl/ecl_mult.c	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.crypto.ec/share/native/libsunec/impl/ecl_mult.c	Thu Jul 19 10:53:38 2018 -0700
@@ -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.
  * Use is subject to license terms.
  *
  * This library is free software; you can redistribute it and/or
@@ -80,12 +80,12 @@
                                                                  group, timing));
                 }
         } else {
+                kt.flag = (mp_sign)0;
                 if (group->meth->field_enc) {
                         MP_CHECKOK(group->meth->field_enc(px, rx, group->meth));
                         MP_CHECKOK(group->meth->field_enc(py, ry, group->meth));
                         MP_CHECKOK(group->point_mul(&kt, rx, ry, rx, ry, group, timing));
                 } else {
-                        kt.flag = (mp_sign)0;
                         MP_CHECKOK(group->point_mul(&kt, px, py, rx, ry, group, timing));
                 }
         }
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotBackend.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotBackend.java	Thu Jul 19 10:53:38 2018 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2016, 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
@@ -110,7 +110,7 @@
 
     @Override
     public LIRGenerationResult newLIRGenerationResult(CompilationIdentifier compilationId, LIR lir, FrameMapBuilder frameMapBuilder, StructuredGraph graph, Object stub) {
-        return new HotSpotLIRGenerationResult(compilationId, lir, frameMapBuilder, makeCallingConvention(graph, (Stub) stub), stub);
+        return new HotSpotLIRGenerationResult(compilationId, lir, frameMapBuilder, makeCallingConvention(graph, (Stub) stub), stub, config.requiresReservedStackCheck(graph.getMethods()));
     }
 
     @Override
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotDeoptimizeCallerOp.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotDeoptimizeCallerOp.java	Thu Jul 19 10:53:38 2018 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 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
@@ -46,7 +46,7 @@
 
     @Override
     public void emitCode(CompilationResultBuilder crb, AArch64MacroAssembler masm) {
-        leaveFrame(crb, masm, /* emitSafepoint */false);
+        leaveFrame(crb, masm, /* emitSafepoint */false, false);
         AArch64Call.directJmp(crb, masm, crb.foreignCalls.lookupForeignCall(UNCOMMON_TRAP_HANDLER));
     }
 }
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotEpilogueOp.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotEpilogueOp.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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
@@ -24,14 +24,29 @@
 
 package org.graalvm.compiler.hotspot.aarch64;
 
+import static jdk.vm.ci.aarch64.AArch64.lr;
+import static jdk.vm.ci.aarch64.AArch64.sp;
+import static jdk.vm.ci.aarch64.AArch64.zr;
+import static jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.fp;
+import static org.graalvm.compiler.hotspot.HotSpotHostBackend.ENABLE_STACK_RESERVED_ZONE;
+import static org.graalvm.compiler.hotspot.HotSpotHostBackend.THROW_DELAYED_STACKOVERFLOW_ERROR;
+
+import org.graalvm.compiler.asm.Label;
+import org.graalvm.compiler.asm.aarch64.AArch64Address;
+import org.graalvm.compiler.asm.aarch64.AArch64Assembler;
 import org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler;
 import org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler.ScratchRegister;
+import org.graalvm.compiler.core.common.spi.ForeignCallLinkage;
 import org.graalvm.compiler.hotspot.GraalHotSpotVMConfig;
+import org.graalvm.compiler.hotspot.meta.HotSpotForeignCallsProvider;
 import org.graalvm.compiler.lir.LIRInstructionClass;
 import org.graalvm.compiler.lir.aarch64.AArch64BlockEndOp;
+import org.graalvm.compiler.lir.aarch64.AArch64Call;
 import org.graalvm.compiler.lir.asm.CompilationResultBuilder;
 
+import jdk.vm.ci.code.CallingConvention;
 import jdk.vm.ci.code.Register;
+import jdk.vm.ci.code.RegisterValue;
 
 /**
  * Superclass for operations that leave a method's frame.
@@ -53,9 +68,31 @@
         this.thread = null; // no safepoint
     }
 
-    protected void leaveFrame(CompilationResultBuilder crb, AArch64MacroAssembler masm, boolean emitSafepoint) {
+    protected void leaveFrame(CompilationResultBuilder crb, AArch64MacroAssembler masm, boolean emitSafepoint, boolean requiresReservedStackAccessCheck) {
         assert crb.frameContext != null : "We never elide frames in aarch64";
         crb.frameContext.leave(crb);
+        if (requiresReservedStackAccessCheck) {
+            HotSpotForeignCallsProvider foreignCalls = (HotSpotForeignCallsProvider) crb.foreignCalls;
+            Label noReserved = new Label();
+            try (ScratchRegister sc = masm.getScratchRegister()) {
+                Register scratch = sc.getRegister();
+                masm.ldr(64, scratch, masm.makeAddress(thread, config.javaThreadReservedStackActivationOffset, 8));
+                masm.subs(64, zr, sp, scratch);
+            }
+            masm.branchConditionally(AArch64Assembler.ConditionFlag.LO, noReserved);
+            ForeignCallLinkage enableStackReservedZone = foreignCalls.lookupForeignCall(ENABLE_STACK_RESERVED_ZONE);
+            CallingConvention cc = enableStackReservedZone.getOutgoingCallingConvention();
+            assert cc.getArgumentCount() == 1;
+            Register arg0 = ((RegisterValue) cc.getArgument(0)).getRegister();
+            masm.mov(64, arg0, thread);
+            try (ScratchRegister sc = masm.getScratchRegister()) {
+                masm.stp(64, fp, lr, AArch64Address.createPreIndexedImmediateAddress(sp, -2));
+                AArch64Call.directCall(crb, masm, enableStackReservedZone, sc.getRegister(), null);
+                masm.ldp(64, fp, lr, AArch64Address.createPostIndexedImmediateAddress(sp, 2));
+            }
+            AArch64Call.directJmp(crb, masm, foreignCalls.lookupForeignCall(THROW_DELAYED_STACKOVERFLOW_ERROR));
+            masm.bind(noReserved);
+        }
         if (emitSafepoint) {
             try (ScratchRegister sc = masm.getScratchRegister()) {
                 Register scratch = sc.getRegister();
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotJumpToExceptionHandlerInCallerOp.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotJumpToExceptionHandlerInCallerOp.java	Thu Jul 19 10:53:38 2018 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 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
@@ -24,10 +24,10 @@
 
 package org.graalvm.compiler.hotspot.aarch64;
 
-import static org.graalvm.compiler.lir.LIRInstruction.OperandFlag.REG;
 import static jdk.vm.ci.aarch64.AArch64.sp;
 import static jdk.vm.ci.code.ValueUtil.asRegister;
 import static jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.fp;
+import static org.graalvm.compiler.lir.LIRInstruction.OperandFlag.REG;
 
 import org.graalvm.compiler.asm.Label;
 import org.graalvm.compiler.asm.aarch64.AArch64Address;
@@ -69,7 +69,7 @@
 
     @Override
     public void emitCode(CompilationResultBuilder crb, AArch64MacroAssembler masm) {
-        leaveFrame(crb, masm, /* emitSafepoint */false);
+        leaveFrame(crb, masm, /* emitSafepoint */false, false);
 
         if (GraalServices.JAVA_SPECIFICATION_VERSION < 8) {
             // Restore sp from fp if the exception PC is a method handle call site.
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotLIRGenerator.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotLIRGenerator.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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.
  * Copyright (c) 2018, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -28,19 +28,18 @@
 
 import static org.graalvm.compiler.core.common.GraalOptions.GeneratePIC;
 import static org.graalvm.compiler.hotspot.HotSpotBackend.INITIALIZE_KLASS_BY_SYMBOL;
+import static org.graalvm.compiler.hotspot.HotSpotBackend.RESOLVE_DYNAMIC_INVOKE;
 import static org.graalvm.compiler.hotspot.HotSpotBackend.RESOLVE_KLASS_BY_SYMBOL;
 import static org.graalvm.compiler.hotspot.HotSpotBackend.RESOLVE_METHOD_BY_SYMBOL_AND_LOAD_COUNTERS;
 import static org.graalvm.compiler.hotspot.HotSpotBackend.RESOLVE_STRING_BY_SYMBOL;
-import static org.graalvm.compiler.hotspot.HotSpotBackend.RESOLVE_DYNAMIC_INVOKE;
-import static org.graalvm.compiler.hotspot.meta.HotSpotConstantLoadAction.RESOLVE;
 import static org.graalvm.compiler.hotspot.meta.HotSpotConstantLoadAction.INITIALIZE;
 import static org.graalvm.compiler.hotspot.meta.HotSpotConstantLoadAction.LOAD_COUNTERS;
+import static org.graalvm.compiler.hotspot.meta.HotSpotConstantLoadAction.RESOLVE;
 import static org.graalvm.compiler.lir.LIRValueUtil.asConstant;
 import static org.graalvm.compiler.lir.LIRValueUtil.isConstantValue;
 
 import java.util.function.Function;
 
-import jdk.vm.ci.hotspot.HotSpotMetaspaceConstant;
 import org.graalvm.compiler.asm.Label;
 import org.graalvm.compiler.asm.aarch64.AArch64Address.AddressingMode;
 import org.graalvm.compiler.asm.aarch64.AArch64Assembler.ConditionFlag;
@@ -81,10 +80,10 @@
 import org.graalvm.compiler.lir.aarch64.AArch64Move;
 import org.graalvm.compiler.lir.aarch64.AArch64Move.StoreOp;
 import org.graalvm.compiler.lir.aarch64.AArch64PrefetchOp;
+import org.graalvm.compiler.lir.aarch64.AArch64RestoreRegistersOp;
 import org.graalvm.compiler.lir.aarch64.AArch64SaveRegistersOp;
-import org.graalvm.compiler.lir.aarch64.AArch64RestoreRegistersOp;
-
 import org.graalvm.compiler.lir.gen.LIRGenerationResult;
+import org.graalvm.compiler.options.OptionValues;
 
 import jdk.vm.ci.aarch64.AArch64;
 import jdk.vm.ci.aarch64.AArch64Kind;
@@ -93,6 +92,7 @@
 import jdk.vm.ci.code.RegisterValue;
 import jdk.vm.ci.code.StackSlot;
 import jdk.vm.ci.hotspot.HotSpotCompressedNullConstant;
+import jdk.vm.ci.hotspot.HotSpotMetaspaceConstant;
 import jdk.vm.ci.hotspot.HotSpotObjectConstant;
 import jdk.vm.ci.meta.AllocatableValue;
 import jdk.vm.ci.meta.Constant;
@@ -103,7 +103,6 @@
 import jdk.vm.ci.meta.PlatformKind;
 import jdk.vm.ci.meta.SpeculationLog;
 import jdk.vm.ci.meta.Value;
-import org.graalvm.compiler.options.OptionValues;
 
 /**
  * LIR generator specialized for AArch64 HotSpot.
@@ -502,7 +501,7 @@
             emitMove(operand, input);
         }
         Register thread = getProviders().getRegisters().getThreadRegister();
-        append(new AArch64HotSpotReturnOp(operand, getStub() != null, config, thread));
+        append(new AArch64HotSpotReturnOp(operand, getStub() != null, config, thread, getResult().requiresReservedStackAccessCheck()));
     }
 
     @Override
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotReturnOp.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotReturnOp.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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
@@ -24,10 +24,10 @@
 
 package org.graalvm.compiler.hotspot.aarch64;
 
+import static jdk.vm.ci.aarch64.AArch64.lr;
+import static jdk.vm.ci.code.ValueUtil.asRegister;
 import static org.graalvm.compiler.lir.LIRInstruction.OperandFlag.ILLEGAL;
 import static org.graalvm.compiler.lir.LIRInstruction.OperandFlag.REG;
-import static jdk.vm.ci.aarch64.AArch64.lr;
-import static jdk.vm.ci.code.ValueUtil.asRegister;
 
 import org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler;
 import org.graalvm.compiler.hotspot.GraalHotSpotVMConfig;
@@ -48,9 +48,11 @@
 
     @Use({REG, ILLEGAL}) private Value result;
     private final boolean isStub;
+    private final boolean requiresReservedStackAccessCheck;
 
-    public AArch64HotSpotReturnOp(Value result, boolean isStub, GraalHotSpotVMConfig config, Register thread) {
+    public AArch64HotSpotReturnOp(Value result, boolean isStub, GraalHotSpotVMConfig config, Register thread, boolean requiresReservedStackAccessCheck) {
         super(TYPE, config, thread);
+        this.requiresReservedStackAccessCheck = requiresReservedStackAccessCheck;
         assert validReturnValue(result);
         this.result = result;
         this.isStub = isStub;
@@ -66,7 +68,7 @@
     @Override
     public void emitCode(CompilationResultBuilder crb, AArch64MacroAssembler masm) {
         final boolean emitSafepoint = !isStub;
-        leaveFrame(crb, masm, emitSafepoint);
+        leaveFrame(crb, masm, emitSafepoint, requiresReservedStackAccessCheck);
         masm.ret(lr);
     }
 }
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotUnwindOp.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotUnwindOp.java	Thu Jul 19 10:53:38 2018 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2016, 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
@@ -24,9 +24,9 @@
 
 package org.graalvm.compiler.hotspot.aarch64;
 
-import static org.graalvm.compiler.hotspot.HotSpotBackend.UNWIND_EXCEPTION_TO_CALLER;
 import static jdk.vm.ci.aarch64.AArch64.lr;
 import static jdk.vm.ci.code.ValueUtil.asRegister;
+import static org.graalvm.compiler.hotspot.HotSpotBackend.UNWIND_EXCEPTION_TO_CALLER;
 
 import org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler;
 import org.graalvm.compiler.core.common.spi.ForeignCallLinkage;
@@ -57,7 +57,7 @@
 
     @Override
     public void emitCode(CompilationResultBuilder crb, AArch64MacroAssembler masm) {
-        leaveFrame(crb, masm, /* emitSafepoint */false);
+        leaveFrame(crb, masm, /* emitSafepoint */false, false);
 
         ForeignCallLinkage linkage = crb.foreignCalls.lookupForeignCall(UNWIND_EXCEPTION_TO_CALLER);
         CallingConvention cc = linkage.getOutgoingCallingConvention();
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64HotSpotBackend.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64HotSpotBackend.java	Thu Jul 19 10:53:38 2018 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -111,7 +111,7 @@
 
     @Override
     public LIRGenerationResult newLIRGenerationResult(CompilationIdentifier compilationId, LIR lir, FrameMapBuilder frameMapBuilder, StructuredGraph graph, Object stub) {
-        return new HotSpotLIRGenerationResult(compilationId, lir, frameMapBuilder, makeCallingConvention(graph, (Stub) stub), stub);
+        return new HotSpotLIRGenerationResult(compilationId, lir, frameMapBuilder, makeCallingConvention(graph, (Stub) stub), stub, config.requiresReservedStackCheck(graph.getMethods()));
     }
 
     @Override
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64HotSpotLIRGenerator.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64HotSpotLIRGenerator.java	Thu Jul 19 10:53:38 2018 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -268,7 +268,7 @@
             pollOnReturnScratchRegister = findPollOnReturnScratchRegister();
         }
         Register thread = getProviders().getRegisters().getThreadRegister();
-        append(new AMD64HotSpotReturnOp(operand, getStub() != null, thread, pollOnReturnScratchRegister, config));
+        append(new AMD64HotSpotReturnOp(operand, getStub() != null, thread, pollOnReturnScratchRegister, config, getResult().requiresReservedStackAccessCheck()));
     }
 
     @Override
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64HotSpotReturnOp.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64HotSpotReturnOp.java	Thu Jul 19 10:53:38 2018 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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,18 +24,30 @@
 
 package org.graalvm.compiler.hotspot.amd64;
 
+import static jdk.vm.ci.amd64.AMD64.r15;
+import static jdk.vm.ci.amd64.AMD64.rsp;
+import static org.graalvm.compiler.hotspot.HotSpotHostBackend.ENABLE_STACK_RESERVED_ZONE;
+import static org.graalvm.compiler.hotspot.HotSpotHostBackend.THROW_DELAYED_STACKOVERFLOW_ERROR;
 import static org.graalvm.compiler.lir.LIRInstruction.OperandFlag.ILLEGAL;
 import static org.graalvm.compiler.lir.LIRInstruction.OperandFlag.REG;
 
+import org.graalvm.compiler.asm.Label;
+import org.graalvm.compiler.asm.amd64.AMD64Address;
+import org.graalvm.compiler.asm.amd64.AMD64Assembler;
 import org.graalvm.compiler.asm.amd64.AMD64MacroAssembler;
+import org.graalvm.compiler.core.common.spi.ForeignCallLinkage;
 import org.graalvm.compiler.hotspot.GraalHotSpotVMConfig;
+import org.graalvm.compiler.hotspot.meta.HotSpotForeignCallsProvider;
 import org.graalvm.compiler.lir.LIRInstructionClass;
 import org.graalvm.compiler.lir.Opcode;
+import org.graalvm.compiler.lir.amd64.AMD64Call;
 import org.graalvm.compiler.lir.asm.CompilationResultBuilder;
 import org.graalvm.compiler.lir.gen.DiagnosticLIRGeneratorTool.ZapStackArgumentSpaceBeforeInstruction;
 
 import jdk.vm.ci.amd64.AMD64.CPUFeature;
+import jdk.vm.ci.code.CallingConvention;
 import jdk.vm.ci.code.Register;
+import jdk.vm.ci.code.RegisterValue;
 import jdk.vm.ci.meta.Value;
 
 /**
@@ -50,20 +62,46 @@
     private final Register thread;
     private final Register scratchForSafepointOnReturn;
     private final GraalHotSpotVMConfig config;
+    private final boolean requiresReservedStackAccessCheck;
 
-    AMD64HotSpotReturnOp(Value value, boolean isStub, Register thread, Register scratchForSafepointOnReturn, GraalHotSpotVMConfig config) {
+    AMD64HotSpotReturnOp(Value value, boolean isStub, Register thread, Register scratchForSafepointOnReturn, GraalHotSpotVMConfig config, boolean requiresReservedStackAccessCheck) {
         super(TYPE);
         this.value = value;
         this.isStub = isStub;
         this.thread = thread;
         this.scratchForSafepointOnReturn = scratchForSafepointOnReturn;
         this.config = config;
+        this.requiresReservedStackAccessCheck = requiresReservedStackAccessCheck;
     }
 
     @Override
     public void emitCode(CompilationResultBuilder crb, AMD64MacroAssembler masm) {
         leaveFrameAndRestoreRbp(crb, masm);
         if (!isStub) {
+            if (requiresReservedStackAccessCheck) {
+                HotSpotForeignCallsProvider foreignCalls = (HotSpotForeignCallsProvider) crb.foreignCalls;
+
+                Label noReserved = new Label();
+                masm.cmpptr(rsp, new AMD64Address(r15, config.javaThreadReservedStackActivationOffset));
+                masm.jccb(AMD64Assembler.ConditionFlag.Below, noReserved);
+                // direct call to runtime without stub needs aligned stack
+                int stackAdjust = crb.target.stackAlignment - crb.target.wordSize;
+                if (stackAdjust > 0) {
+                    masm.subq(rsp, stackAdjust);
+                }
+                ForeignCallLinkage enableStackReservedZone = foreignCalls.lookupForeignCall(ENABLE_STACK_RESERVED_ZONE);
+                CallingConvention cc = enableStackReservedZone.getOutgoingCallingConvention();
+                assert cc.getArgumentCount() == 1;
+                Register arg0 = ((RegisterValue) cc.getArgument(0)).getRegister();
+                masm.movq(arg0, thread);
+                AMD64Call.directCall(crb, masm, enableStackReservedZone, null, false, null);
+                if (stackAdjust > 0) {
+                    masm.addq(rsp, stackAdjust);
+                }
+                AMD64Call.directJmp(crb, masm, foreignCalls.lookupForeignCall(THROW_DELAYED_STACKOVERFLOW_ERROR));
+                masm.bind(noReserved);
+            }
+
             // Every non-stub compile method must have a poll before the return.
             AMD64HotSpotSafepointOp.emitCode(crb, masm, config, true, null, thread, scratchForSafepointOnReturn);
 
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.sparc/src/org/graalvm/compiler/hotspot/sparc/SPARCHotSpotBackend.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.sparc/src/org/graalvm/compiler/hotspot/sparc/SPARCHotSpotBackend.java	Thu Jul 19 10:53:38 2018 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2016, 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
@@ -152,7 +152,7 @@
 
     @Override
     public LIRGenerationResult newLIRGenerationResult(CompilationIdentifier compilationId, LIR lir, FrameMapBuilder frameMapBuilder, StructuredGraph graph, Object stub) {
-        return new HotSpotLIRGenerationResult(compilationId, lir, frameMapBuilder, makeCallingConvention(graph, (Stub) stub), stub);
+        return new HotSpotLIRGenerationResult(compilationId, lir, frameMapBuilder, makeCallingConvention(graph, (Stub) stub), stub, config.requiresReservedStackCheck(graph.getMethods()));
     }
 
     @Override
@@ -195,7 +195,9 @@
             final int frameSize = crb.frameMap.totalFrameSize();
             final int stackpoinerChange = -frameSize;
             SPARCMacroAssembler masm = (SPARCMacroAssembler) crb.asm;
-            emitStackOverflowCheck(crb);
+            if (!isStub) {
+                emitStackOverflowCheck(crb);
+            }
 
             if (SPARCAssembler.isSimm13(stackpoinerChange)) {
                 masm.save(sp, stackpoinerChange, sp);
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.sparc/src/org/graalvm/compiler/hotspot/sparc/SPARCHotSpotLIRGenerator.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.sparc/src/org/graalvm/compiler/hotspot/sparc/SPARCHotSpotLIRGenerator.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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
@@ -194,7 +194,7 @@
             emitMove(operand, input);
         }
         Register thread = getProviders().getRegisters().getThreadRegister();
-        append(new SPARCHotSpotReturnOp(operand, getStub() != null, config, thread, getSafepointAddressValue()));
+        append(new SPARCHotSpotReturnOp(operand, getStub() != null, config, thread, getSafepointAddressValue(), getResult().requiresReservedStackAccessCheck()));
     }
 
     @Override
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.sparc/src/org/graalvm/compiler/hotspot/sparc/SPARCHotSpotReturnOp.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.sparc/src/org/graalvm/compiler/hotspot/sparc/SPARCHotSpotReturnOp.java	Thu Jul 19 10:53:38 2018 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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,29 @@
 
 package org.graalvm.compiler.hotspot.sparc;
 
+import static jdk.vm.ci.sparc.SPARC.sp;
+import static org.graalvm.compiler.hotspot.HotSpotHostBackend.ENABLE_STACK_RESERVED_ZONE;
+import static org.graalvm.compiler.hotspot.HotSpotHostBackend.THROW_DELAYED_STACKOVERFLOW_ERROR;
 import static org.graalvm.compiler.lir.LIRInstruction.OperandFlag.ILLEGAL;
 import static org.graalvm.compiler.lir.LIRInstruction.OperandFlag.REG;
 
+import org.graalvm.compiler.asm.Label;
+import org.graalvm.compiler.asm.sparc.SPARCAddress;
+import org.graalvm.compiler.asm.sparc.SPARCAssembler;
 import org.graalvm.compiler.asm.sparc.SPARCMacroAssembler;
+import org.graalvm.compiler.asm.sparc.SPARCMacroAssembler.ScratchRegister;
+import org.graalvm.compiler.core.common.spi.ForeignCallLinkage;
 import org.graalvm.compiler.hotspot.GraalHotSpotVMConfig;
+import org.graalvm.compiler.hotspot.meta.HotSpotForeignCallsProvider;
 import org.graalvm.compiler.lir.LIRInstructionClass;
 import org.graalvm.compiler.lir.Opcode;
 import org.graalvm.compiler.lir.asm.CompilationResultBuilder;
+import org.graalvm.compiler.lir.sparc.SPARCCall;
 import org.graalvm.compiler.lir.sparc.SPARCControlFlow.ReturnOp;
 
+import jdk.vm.ci.code.CallingConvention;
 import jdk.vm.ci.code.Register;
+import jdk.vm.ci.code.RegisterValue;
 import jdk.vm.ci.meta.Value;
 
 /**
@@ -47,22 +59,42 @@
 
     @Use({REG, ILLEGAL}) protected Value value;
     @Use({REG, ILLEGAL}) protected Value safepointPollAddress;
+    private final boolean requiresReservedStackAccessCheck;
     private final boolean isStub;
     private final GraalHotSpotVMConfig config;
     private final Register thread;
 
-    SPARCHotSpotReturnOp(Value value, boolean isStub, GraalHotSpotVMConfig config, Register thread, Value safepointPoll) {
+    SPARCHotSpotReturnOp(Value value, boolean isStub, GraalHotSpotVMConfig config, Register thread, Value safepointPoll, boolean requiresReservedStackAccessCheck) {
         super(TYPE, SIZE);
         this.value = value;
         this.isStub = isStub;
         this.config = config;
         this.thread = thread;
         this.safepointPollAddress = safepointPoll;
+        this.requiresReservedStackAccessCheck = requiresReservedStackAccessCheck;
     }
 
     @Override
     public void emitCode(CompilationResultBuilder crb, SPARCMacroAssembler masm) {
         if (!isStub) {
+            if (requiresReservedStackAccessCheck) {
+                try (ScratchRegister sc = masm.getScratchRegister()) {
+                    HotSpotForeignCallsProvider foreignCalls = (HotSpotForeignCallsProvider) crb.foreignCalls;
+                    Label noReserved = new Label();
+                    Register scratch = sc.getRegister();
+                    masm.ldx(new SPARCAddress(thread, config.javaThreadReservedStackActivationOffset), scratch);
+                    masm.compareBranch(sp, scratch, SPARCAssembler.ConditionFlag.LessUnsigned, SPARCAssembler.CC.Xcc, noReserved, SPARCAssembler.BranchPredict.PREDICT_TAKEN, null);
+                    ForeignCallLinkage enableStackReservedZone = foreignCalls.lookupForeignCall(ENABLE_STACK_RESERVED_ZONE);
+                    CallingConvention cc = enableStackReservedZone.getOutgoingCallingConvention();
+                    assert cc.getArgumentCount() == 1;
+                    Register arg0 = ((RegisterValue) cc.getArgument(0)).getRegister();
+                    masm.mov(thread, arg0);
+                    SPARCCall.directCall(crb, masm, enableStackReservedZone, scratch, null);
+                    masm.restoreWindow();
+                    SPARCCall.indirectJmp(crb, masm, scratch, foreignCalls.lookupForeignCall(THROW_DELAYED_STACKOVERFLOW_ERROR));
+                    masm.bind(noReserved);
+                }
+            }
             // Every non-stub compile method must have a poll before the return.
             SPARCHotSpotSafepointOp.emitCode(crb, masm, config, true, null, thread, safepointPollAddress);
         }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/ReservedStackAccessTest.java	Thu Jul 19 10:53:38 2018 -0700
@@ -0,0 +1,226 @@
+/*
+ * 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 org.graalvm.compiler.hotspot.test;
+
+import java.io.IOException;
+import java.util.concurrent.locks.ReentrantLock;
+import java.util.List;
+
+import org.graalvm.compiler.test.SubprocessUtil;
+import org.graalvm.compiler.test.SubprocessUtil.Subprocess;
+
+import org.junit.Assume;
+import org.junit.Before;
+import org.junit.Test;
+
+public class ReservedStackAccessTest extends HotSpotGraalCompilerTest {
+    @Before
+    public void check() {
+        Assume.assumeTrue(runtime().getVMConfig().enableStackReservedZoneAddress != 0);
+    }
+
+    public void stackAccessTest() {
+        Assume.assumeTrue(runtime().getVMConfig().enableStackReservedZoneAddress != 0);
+
+        int passed = 0;
+        for (int i = 0; i < 1000; i++) {
+            // Each iteration has to be executed by a new thread. The test
+            // relies on the random size area pushed by the VM at the beginning
+            // of the stack of each Java thread it creates.
+            RunWithSOEContext r = new RunWithSOEContext(new ReentrantLockTest(), 256);
+            Thread thread = new Thread(r);
+            thread.start();
+            try {
+                thread.join();
+                assertTrue(r.result.equals("PASSED"), r.result);
+                ++passed;
+            } catch (InterruptedException ex) {
+            }
+        }
+        System.out.println("RESULT: " + (passed == 1000 ? "PASSED" : "FAILED"));
+    }
+
+    public static void main(String[] args) {
+        new ReservedStackAccessTest().stackAccessTest();
+    }
+
+    @Test
+    public void run() throws IOException, InterruptedException {
+        Assume.assumeTrue(runtime().getVMConfig().enableStackReservedZoneAddress != 0);
+        List<String> vmArgs = SubprocessUtil.withoutDebuggerArguments(SubprocessUtil.getVMCommandLine());
+        vmArgs.add("-XX:+UseJVMCICompiler");
+        vmArgs.add("-Dgraal.Inline=false");
+        vmArgs.add("-XX:CompileCommand=exclude,java/util/concurrent/locks/AbstractOwnableSynchronizer.setExclusiveOwnerThread");
+        Subprocess proc = SubprocessUtil.java(vmArgs, ReservedStackAccessTest.class.getName());
+        boolean passed = false;
+        for (String line : proc.output) {
+            if (line.equals("RESULT: PASSED")) {
+                passed = true;
+            }
+        }
+        if (!passed) {
+            for (String line : proc.output) {
+                System.err.println("" + line);
+            }
+        }
+        assertTrue(passed);
+    }
+
+    static class ReentrantLockTest {
+
+        private ReentrantLock[] lockArray;
+        // Frame sizes vary a lot between interpreted code and compiled code
+        // so the lock array has to be big enough to cover all cases.
+        // If test fails with message "Not conclusive test", try to increase
+        // LOCK_ARRAY_SIZE value
+        private static final int LOCK_ARRAY_SIZE = 8192;
+        private boolean stackOverflowErrorReceived;
+        StackOverflowError soe = null;
+        int index = -1;
+
+        public void initialize() {
+            lockArray = new ReentrantLock[LOCK_ARRAY_SIZE];
+            for (int i = 0; i < LOCK_ARRAY_SIZE; i++) {
+                lockArray[i] = new ReentrantLock();
+            }
+            stackOverflowErrorReceived = false;
+        }
+
+        public String getResult() {
+            if (!stackOverflowErrorReceived) {
+                return "ERROR: Not conclusive test: no StackOverflowError received";
+            }
+            for (int i = 0; i < LOCK_ARRAY_SIZE; i++) {
+                if (lockArray[i].isLocked()) {
+                    if (!lockArray[i].isHeldByCurrentThread()) {
+                        StringBuilder s = new StringBuilder();
+                        s.append("FAILED: ReentrantLock ");
+                        s.append(i);
+                        s.append(" looks corrupted");
+                        return s.toString();
+                    }
+                }
+            }
+            return "PASSED";
+        }
+
+        public void run() {
+            try {
+                lockAndCall(0);
+            } catch (StackOverflowError e) {
+                soe = e;
+                stackOverflowErrorReceived = true;
+            }
+        }
+
+        private void lockAndCall(int i) {
+            index = i;
+            if (i < LOCK_ARRAY_SIZE) {
+                lockArray[i].lock();
+                lockAndCall(i + 1);
+            }
+        }
+    }
+
+    static class RunWithSOEContext implements Runnable {
+
+        int counter;
+        int deframe;
+        int decounter;
+        int setupSOEFrame;
+        int testStartFrame;
+        ReentrantLockTest test;
+        String result = "FAILED: no result";
+
+        RunWithSOEContext(ReentrantLockTest test, int deframe) {
+            this.test = test;
+            this.deframe = deframe;
+        }
+
+        @Override
+        public void run() {
+            counter = 0;
+            decounter = deframe;
+            test.initialize();
+            recursiveCall();
+            System.out.println("Framework got StackOverflowError at frame = " + counter);
+            System.out.println("Test started execution at frame = " + (counter - deframe));
+            result = test.getResult();
+        }
+
+        @SuppressWarnings("unused")
+        void recursiveCall() {
+            // Unused local variables to increase the frame size
+            long l1;
+            long l2;
+            long l3;
+            long l4;
+            long l5;
+            long l6;
+            long l7;
+            long l8;
+            long l9;
+            long l10;
+            long l11;
+            long l12;
+            long l13;
+            long l14;
+            long l15;
+            long l16;
+            long l17;
+            long l18;
+            long l19;
+            long l20;
+            long l21;
+            long l22;
+            long l23;
+            long l24;
+            long l25;
+            long l26;
+            long l27;
+            long l28;
+            long l30;
+            long l31;
+            long l32;
+            long l33;
+            long l34;
+            long l35;
+            long l36;
+            long l37;
+            counter++;
+            try {
+                recursiveCall();
+            } catch (StackOverflowError e) {
+            }
+            decounter--;
+            if (decounter == 0) {
+                setupSOEFrame = counter;
+                testStartFrame = counter - deframe;
+                test.run();
+            }
+        }
+    }
+
+}
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/GraalHotSpotVMConfig.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/GraalHotSpotVMConfig.java	Thu Jul 19 10:53:38 2018 -0700
@@ -26,12 +26,15 @@
 
 import java.lang.reflect.Field;
 import java.lang.reflect.Modifier;
+import java.util.List;
 
 import org.graalvm.compiler.core.common.CompressEncoding;
 import org.graalvm.compiler.hotspot.nodes.GraalHotSpotVMConfigNode;
 
 import jdk.vm.ci.common.JVMCIError;
+import jdk.vm.ci.hotspot.HotSpotResolvedJavaMethod;
 import jdk.vm.ci.hotspot.HotSpotVMConfigStore;
+import jdk.vm.ci.meta.ResolvedJavaMethod;
 
 /**
  * Used to access native configuration details.
@@ -315,6 +318,17 @@
     public final int jvmciCountersThreadOffset = getFieldOffset("JavaThread::_jvmci_counters", Integer.class, "jlong*");
     public final int javaThreadReservedStackActivationOffset = versioned.javaThreadReservedStackActivationOffset;
 
+    public boolean requiresReservedStackCheck(List<ResolvedJavaMethod> methods) {
+        if (enableStackReservedZoneAddress != 0 && methods != null) {
+            for (ResolvedJavaMethod method : methods) {
+                if (((HotSpotResolvedJavaMethod) method).hasReservedStackAccess()) {
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+
     /**
      * An invalid value for {@link #rtldDefault}.
      */
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotHostBackend.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotHostBackend.java	Thu Jul 19 10:53:38 2018 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2015, 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
@@ -50,6 +50,7 @@
 import jdk.vm.ci.meta.JavaKind;
 import jdk.vm.ci.meta.JavaType;
 import jdk.vm.ci.runtime.JVMCICompiler;
+import org.graalvm.compiler.word.Word;
 
 /**
  * Common functionality of HotSpot host backends.
@@ -66,6 +67,10 @@
      */
     public static final ForeignCallDescriptor UNCOMMON_TRAP_HANDLER = new ForeignCallDescriptor("uncommonTrapHandler", void.class);
 
+    public static final ForeignCallDescriptor ENABLE_STACK_RESERVED_ZONE = new ForeignCallDescriptor("enableStackReservedZoneEntry", void.class, Word.class);
+
+    public static final ForeignCallDescriptor THROW_DELAYED_STACKOVERFLOW_ERROR = new ForeignCallDescriptor("throwDelayedStackoverflowError", void.class);
+
     protected final GraalHotSpotVMConfig config;
 
     public HotSpotHostBackend(GraalHotSpotVMConfig config, HotSpotGraalRuntimeProvider runtime, HotSpotProviders providers) {
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotLIRGenerationResult.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotLIRGenerationResult.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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
@@ -46,6 +46,7 @@
      */
     private StackSlot deoptimizationRescueSlot;
     protected final Object stub;
+    private final boolean requiresReservedStackAccessCheck;
 
     private int maxInterpreterFrameSize;
 
@@ -55,9 +56,11 @@
      */
     private EconomicMap<LIRFrameState, SaveRegistersOp> calleeSaveInfo = EconomicMap.create(Equivalence.IDENTITY_WITH_SYSTEM_HASHCODE);
 
-    public HotSpotLIRGenerationResult(CompilationIdentifier compilationId, LIR lir, FrameMapBuilder frameMapBuilder, CallingConvention callingConvention, Object stub) {
+    public HotSpotLIRGenerationResult(CompilationIdentifier compilationId, LIR lir, FrameMapBuilder frameMapBuilder, CallingConvention callingConvention, Object stub,
+                    boolean requiresReservedStackAccessCheck) {
         super(compilationId, lir, frameMapBuilder, callingConvention);
         this.stub = stub;
+        this.requiresReservedStackAccessCheck = requiresReservedStackAccessCheck;
     }
 
     public EconomicMap<LIRFrameState, SaveRegistersOp> getCalleeSaveInfo() {
@@ -83,4 +86,8 @@
     public int getMaxInterpreterFrameSize() {
         return maxInterpreterFrameSize;
     }
+
+    public boolean requiresReservedStackAccessCheck() {
+        return requiresReservedStackAccessCheck;
+    }
 }
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotHostForeignCallsProvider.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotHostForeignCallsProvider.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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
@@ -66,6 +66,8 @@
 import static org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage.Transition.SAFEPOINT;
 import static org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage.Transition.STACK_INSPECTABLE_LEAF;
 import static org.graalvm.compiler.hotspot.HotSpotHostBackend.DEOPTIMIZATION_HANDLER;
+import static org.graalvm.compiler.hotspot.HotSpotHostBackend.ENABLE_STACK_RESERVED_ZONE;
+import static org.graalvm.compiler.hotspot.HotSpotHostBackend.THROW_DELAYED_STACKOVERFLOW_ERROR;
 import static org.graalvm.compiler.hotspot.HotSpotHostBackend.UNCOMMON_TRAP_HANDLER;
 import static org.graalvm.compiler.hotspot.replacements.AssertionSnippets.ASSERTION_VM_MESSAGE_C;
 import static org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.MARK_WORD_LOCATION;
@@ -251,6 +253,12 @@
         registerForeignCall(UNCOMMON_TRAP_HANDLER, c.uncommonTrapStub, NativeCall, PRESERVES_REGISTERS, LEAF_NOFP, REEXECUTABLE, NO_LOCATIONS);
         registerForeignCall(IC_MISS_HANDLER, c.inlineCacheMissStub, NativeCall, PRESERVES_REGISTERS, LEAF_NOFP, REEXECUTABLE, NO_LOCATIONS);
 
+        if (c.enableStackReservedZoneAddress != 0) {
+            assert c.throwDelayedStackOverflowErrorEntry != 0 : "both must exist";
+            registerForeignCall(ENABLE_STACK_RESERVED_ZONE, c.enableStackReservedZoneAddress, NativeCall, DESTROYS_REGISTERS, LEAF_NOFP, REEXECUTABLE, NO_LOCATIONS);
+            registerForeignCall(THROW_DELAYED_STACKOVERFLOW_ERROR, c.throwDelayedStackOverflowErrorEntry, NativeCall, DESTROYS_REGISTERS, LEAF_NOFP, REEXECUTABLE, NO_LOCATIONS);
+        }
+
         registerForeignCall(JAVA_TIME_MILLIS, c.javaTimeMillisAddress, NativeCall, DESTROYS_REGISTERS, LEAF_NOFP, REEXECUTABLE, NO_LOCATIONS);
         registerForeignCall(JAVA_TIME_NANOS, c.javaTimeNanosAddress, NativeCall, DESTROYS_REGISTERS, LEAF_NOFP, REEXECUTABLE, NO_LOCATIONS);
         registerForeignCall(SIN.foreignCallDescriptor, c.arithmeticSinAddress, NativeCall, DESTROYS_REGISTERS, LEAF, REEXECUTABLE, NO_LOCATIONS);
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.aarch64/src/org/graalvm/compiler/lir/aarch64/AArch64AtomicMove.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.aarch64/src/org/graalvm/compiler/lir/aarch64/AArch64AtomicMove.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HelpWriter.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HelpWriter.java	Thu Jul 19 10:53:38 2018 -0700
@@ -423,6 +423,21 @@
             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);
         divContent.addContent(new HtmlTree(HtmlTag.HR));
         Content footnote = HtmlTree.SPAN(HtmlStyle.emphasizedPhrase,
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/MethodWriterImpl.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/MethodWriterImpl.java	Thu Jul 19 10:53:38 2018 -0700
@@ -140,7 +140,8 @@
      */
     @Override
     public Content getSignature(ExecutableElement method) {
-        Content pre = new HtmlTree(HtmlTag.PRE);
+        HtmlTree pre = new HtmlTree(HtmlTag.PRE);
+        pre.setStyle(HtmlStyle.methodSignature);
         writer.addAnnotationInfo(method, pre);
         int annotationLength = pre.charCount();
         addModifiers(method, pre);
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/HtmlStyle.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/HtmlStyle.java	Thu Jul 19 10:53:38 2018 -0700
@@ -83,6 +83,7 @@
     memberNameLabel,
     memberNameLink,
     memberSummary,
+    methodSignature,
     moduleLabelInPackage,
     moduleLabelInType,
     nameValue,
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard.properties	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard.properties	Thu Jul 19 10:53:38 2018 -0700
@@ -192,6 +192,10 @@
     Annotation Type Declaration
 doclet.help.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}
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/stylesheet.css	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/stylesheet.css	Thu Jul 19 10:53:38 2018 -0700
@@ -827,7 +827,7 @@
     margin: -100px 0 0 100px;
     z-index: 1;
 }
-.details pre {
+.methodSignature {
     white-space:normal;
 }
 
--- a/src/jdk.jdi/share/classes/com/sun/tools/jdi/ReferenceTypeImpl.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.jdi/share/classes/com/sun/tools/jdi/ReferenceTypeImpl.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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/share/native/libjdwp/transport.c	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.jdwp.agent/share/native/libjdwp/transport.c	Thu Jul 19 10:53:38 2018 -0700
@@ -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
@@ -211,7 +211,7 @@
         JNI_FUNC_PTR(env,GetJavaVM)(env, &jvm);
 
         /* Try version 1.1 first, fallback to 1.0 on error */
-        for (i = 0; i < sizeof(supported_versions); ++i) {
+        for (i = 0; i < sizeof(supported_versions)/sizeof(jint); ++i) {
             rc = (*onLoad)(jvm, &callback, supported_versions[i], &t);
             if (rc != JNI_EVERSION) {
                 info->transportVersion = supported_versions[i];
--- a/src/jdk.localedata/share/classes/sun/text/resources/ext/FormatData_ja.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.localedata/share/classes/sun/text/resources/ext/FormatData_ja.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.localedata/share/classes/sun/text/resources/ext/JavaTimeSupplementary_ja.java	Thu Jul 19 10:53:38 2018 -0700
@@ -154,7 +154,7 @@
             "\u5927\u6b63",
             "\u662d\u548c",
             "\u5e73\u6210",
-            "\u65b0\u5143\u53f7", // NewEra
+            "\u5143\u53f7", // NewEra
         };
 
         final String[] sharedJavaTimeShortEras = {
--- a/src/jdk.management/unix/native/libmanagement_ext/OperatingSystemImpl.c	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.management/unix/native/libmanagement_ext/OperatingSystemImpl.c	Thu Jul 19 10:53:38 2018 -0700
@@ -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
@@ -74,19 +74,10 @@
 
 #endif /* _ALLBSD_SOURCE */
 
-static struct dirent* read_dir(DIR* dirp, struct dirent* entry) {
-#ifdef __solaris__
-    struct dirent* dbuf = readdir(dirp);
-    return dbuf;
-#else /* __linux__ || _ALLBSD_SOURCE */
-    struct dirent* p;
-    if (readdir_r(dirp, entry, &p) == 0) {
-        return p;
-    } else {
-        return NULL;
-    }
+#if defined(_ALLBSD_SOURCE)
+  #define dirent64 dirent
+  #define readdir64 readdir
 #endif
-}
 
 // true = get available swap in bytes
 // false = get total swap in bytes
@@ -432,8 +423,7 @@
     return (100);
 #else /* solaris/linux */
     DIR *dirp;
-    struct dirent dbuf;
-    struct dirent* dentp;
+    struct dirent64* dentp;
     jlong fds = 0;
 
 #if defined(_AIX)
@@ -453,7 +443,7 @@
 
     // iterate through directory entries, skipping '.' and '..'
     // each entry represents an open file descriptor.
-    while ((dentp = read_dir(dirp, &dbuf)) != NULL) {
+    while ((dentp = readdir64(dirp)) != NULL) {
         if (isdigit(dentp->d_name[0])) {
             fds++;
         }
--- a/src/jdk.pack/share/native/common-unpack/unpack.cpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.pack/share/native/common-unpack/unpack.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2016, 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
@@ -2681,6 +2681,9 @@
     PRINTCR((1, "counted %d [redefined = %d predefined = %d] attributes of type %s.%s",
             count, isRedefined(idx), isPredefined(idx),
             ATTR_CONTEXT_NAME[attrc], lo->name));
+  } else {
+    abort("layout_definition pointer must not be NULL");
+    return;
   }
   bool hasCallables = lo->hasCallables();
   band** bands = lo->bands();
--- a/src/jdk.security.auth/unix/native/libjaas/Unix.c	Thu Jul 19 13:49:44 2018 +0530
+++ b/src/jdk.security.auth/unix/native/libjaas/Unix.c	Thu Jul 19 10:53:38 2018 -0700
@@ -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
@@ -64,6 +64,9 @@
     jclass cls;
 
     numSuppGroups = getgroups(0, NULL);
+    if (numSuppGroups == -1) {
+        return;
+    }
     groups = (gid_t *)calloc(numSuppGroups, sizeof(gid_t));
     if (groups == NULL) {
         jclass cls = (*env)->FindClass(env,"java/lang/OutOfMemoryError");
--- a/test/hotspot/gtest/logging/logTestUtils.inline.hpp	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/gtest/logging/logTestUtils.inline.hpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/gtest/memory/test_metachunk.cpp	Thu Jul 19 10:53:38 2018 -0700
@@ -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/jtreg/ProblemList-graal.txt	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/ProblemList-graal.txt	Thu Jul 19 10:53:38 2018 -0700
@@ -67,8 +67,6 @@
 
 gc/TestNUMAPageSize.java                                        8194949   generic-all
 
-runtime/ReservedStack/ReservedStackTestCompiler.java            8181855   generic-all
-
 serviceability/jvmti/GetModulesInfo/JvmtiGetAllModulesTest.java 8195156   generic-all
 
 compiler/compilercontrol/directives/LogTest.java                8181753   generic-all
@@ -116,20 +114,17 @@
 vmTestbase/nsk/jvmti/scenarios/sampling/SP07/sp07t002/TestDescription.java                         8191047   generic-all
 vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn009/forceEarlyReturn009.java   8191047   generic-all
 
-vmTestbase/nsk/jdi/ReferenceType/instances/instances001/instances001.java                          8195600   generic-all
 vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn007/TestDescription.java       8195600   generic-all
 
 vmTestbase/nsk/jdi/ArrayType/newInstance/newinstance001/TestDescription.java                              8203174   generic-all
 vmTestbase/nsk/jdi/ArrayType/newInstance/newinstance002/TestDescription.java                              8203174   generic-all
 vmTestbase/nsk/jdi/ArrayType/newInstance/newinstance003/TestDescription.java                              8203174   generic-all
-vmTestbase/nsk/jdi/ObjectReference/referringObjects/referringObjects001/referringObjects001.java          8203174   generic-all
 vmTestbase/nsk/jdi/ReferenceType/instances/instances002/instances002.java                                 8203174   generic-all
 vmTestbase/nsk/jdi/ReferenceType/instances/instances003/instances003.java                                 8203174   generic-all
 vmTestbase/nsk/jdi/stress/MonitorEvents/MonitorEvents002/TestDescription.java                             8203174   generic-all
 vmTestbase/nsk/jdi/stress/serial/heapwalking001/TestDescription.java                                      8203174   generic-all
 vmTestbase/nsk/jdi/stress/serial/heapwalking002/TestDescription.java                                      8203174   generic-all
 vmTestbase/nsk/jdi/stress/serial/mixed002/TestDescription.java                                            8203174   generic-all
-vmTestbase/nsk/jdi/VMOutOfMemoryException/VMOutOfMemoryException001/VMOutOfMemoryException001.java        8203174   generic-all
 
 vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses026/TestDescription.java   8195627   generic-all
 vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses028/TestDescription.java   8195627   generic-all
@@ -175,6 +170,7 @@
 org.graalvm.compiler.hotspot.test.CompilationWrapperTest                         8205081
 org.graalvm.compiler.hotspot.test.HsErrLogTest                                   8205081
 org.graalvm.compiler.hotspot.test.OptionsInFileTest                              8205081
+org.graalvm.compiler.hotspot.test.ReservedStackAccessTest                        8205081
 org.graalvm.compiler.replacements.test.classfile.ClassfileBytecodeProviderTest   8205081
 org.graalvm.compiler.replacements.test.classfile.RedefineIntrinsicTest           8205081
 
--- a/test/hotspot/jtreg/ProblemList.txt	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/ProblemList.txt	Thu Jul 19 10:53:38 2018 -0700
@@ -81,9 +81,7 @@
 
 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
+serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorStatRateTest.java 8207765 generic-all
 
 #############################################################################
 
@@ -139,10 +137,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 +160,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
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/compiler/arraycopy/ACasLoadsStoresBadMem.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/compiler/c2/Test8062950.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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/graalunit/JttLangMTest.java	Thu Jul 19 13:49:44 2018 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +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
- * @summary
- * @requires vm.opt.final.EnableJVMCI == true
- *
- * @modules jdk.internal.vm.compiler
- *
- * @library /test/lib /compiler/graalunit /
- *
- * @build compiler.graalunit.common.GraalUnitTestLauncher
- *
- * @run driver jdk.test.lib.FileInstaller ../../ProblemList-graal.txt ExcludeList.txt
- *
- * @run main/othervm compiler.graalunit.common.GraalUnitTestLauncher -prefix org.graalvm.compiler.jtt.lang.[mM] -exclude ExcludeList.txt
- */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/compiler/graalunit/JttLangMathALTest.java	Thu Jul 19 10:53:38 2018 -0700
@@ -0,0 +1,38 @@
+/*
+ * 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
+ * @requires vm.opt.final.EnableJVMCI == true
+ *
+ * @modules jdk.internal.vm.compiler
+ *
+ * @library /test/lib /compiler/graalunit /
+ *
+ * @build compiler.graalunit.common.GraalUnitTestLauncher
+ *
+ * @run driver jdk.test.lib.FileInstaller ../../ProblemList-graal.txt ExcludeList.txt
+ *
+ * @run main/othervm compiler.graalunit.common.GraalUnitTestLauncher -prefix org.graalvm.compiler.jtt.lang.Math_[a-lA-L] -exclude ExcludeList.txt
+ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/compiler/graalunit/JttLangMathMZTest.java	Thu Jul 19 10:53:38 2018 -0700
@@ -0,0 +1,38 @@
+/*
+ * 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
+ * @requires vm.opt.final.EnableJVMCI == true
+ *
+ * @modules jdk.internal.vm.compiler
+ *
+ * @library /test/lib /compiler/graalunit /
+ *
+ * @build compiler.graalunit.common.GraalUnitTestLauncher
+ *
+ * @run driver jdk.test.lib.FileInstaller ../../ProblemList-graal.txt ExcludeList.txt
+ *
+ * @run main/othervm compiler.graalunit.common.GraalUnitTestLauncher -prefix org.graalvm.compiler.jtt.lang.Math_[m-zM-Z] -exclude ExcludeList.txt
+ */
--- a/test/hotspot/jtreg/compiler/graalunit/JttReflectFTest.java	Thu Jul 19 13:49:44 2018 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +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
- * @summary
- * @requires vm.opt.final.EnableJVMCI == true
- *
- * @modules jdk.internal.vm.compiler
- *
- * @library /test/lib /compiler/graalunit /
- *
- * @build compiler.graalunit.common.GraalUnitTestLauncher
- *
- * @run driver jdk.test.lib.FileInstaller ../../ProblemList-graal.txt ExcludeList.txt
- *
- * @run main/othervm compiler.graalunit.common.GraalUnitTestLauncher -prefix org.graalvm.compiler.jtt.reflect.[fF] -exclude ExcludeList.txt
- */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/compiler/graalunit/JttReflectFieldGetTest.java	Thu Jul 19 10:53:38 2018 -0700
@@ -0,0 +1,38 @@
+/*
+ * 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
+ * @requires vm.opt.final.EnableJVMCI == true
+ *
+ * @modules jdk.internal.vm.compiler
+ *
+ * @library /test/lib /compiler/graalunit /
+ *
+ * @build compiler.graalunit.common.GraalUnitTestLauncher
+ *
+ * @run driver jdk.test.lib.FileInstaller ../../ProblemList-graal.txt ExcludeList.txt
+ *
+ * @run main/othervm compiler.graalunit.common.GraalUnitTestLauncher -prefix org.graalvm.compiler.jtt.reflect.Field_get -exclude ExcludeList.txt
+ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/compiler/graalunit/JttReflectFieldSetTest.java	Thu Jul 19 10:53:38 2018 -0700
@@ -0,0 +1,38 @@
+/*
+ * 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
+ * @requires vm.opt.final.EnableJVMCI == true
+ *
+ * @modules jdk.internal.vm.compiler
+ *
+ * @library /test/lib /compiler/graalunit /
+ *
+ * @build compiler.graalunit.common.GraalUnitTestLauncher
+ *
+ * @run driver jdk.test.lib.FileInstaller ../../ProblemList-graal.txt ExcludeList.txt
+ *
+ * @run main/othervm compiler.graalunit.common.GraalUnitTestLauncher -prefix org.graalvm.compiler.jtt.reflect.Field_set -exclude ExcludeList.txt
+ */
--- a/test/hotspot/jtreg/compiler/graalunit/TestPackages.txt	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/compiler/graalunit/TestPackages.txt	Thu Jul 19 10:53:38 2018 -0700
@@ -25,13 +25,15 @@
 JttHotspot    org.graalvm.compiler.jtt.hotspot
 JttJdk        org.graalvm.compiler.jtt.jdk
 JttLangAL     org.graalvm.compiler.jtt.lang.[a-lA-L]
-JttLangM      org.graalvm.compiler.jtt.lang.[mM]
+JttLangMathAL org.graalvm.compiler.jtt.lang.Math_[a-lA-L]
+JttLangMathMZ org.graalvm.compiler.jtt.lang.Math_[m-zM-Z]
 JttLangNZ     org.graalvm.compiler.jtt.lang.[n-zN-Z]
 JttLoop       org.graalvm.compiler.jtt.loop
 Jtt.Micro     org.graalvm.compiler.jtt.micro
 JttOptimize   org.graalvm.compiler.jtt.optimize
 JttReflectAE  org.graalvm.compiler.jtt.reflect.[a-eA-E]
-JttReflectF   org.graalvm.compiler.jtt.reflect.[fF]
+JttReflectFieldGet org.graalvm.compiler.jtt.reflect.Field_get
+JttReflectFieldSet org.graalvm.compiler.jtt.reflect.Field_set
 JttReflectGZ  org.graalvm.compiler.jtt.reflect.[g-zG-Z]
 JttThreads    org.graalvm.compiler.jtt.threads
 LirJtt        org.graalvm.compiler.lir.jtt
--- a/test/hotspot/jtreg/compiler/graalunit/common/GraalUnitTestLauncher.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/compiler/graalunit/common/GraalUnitTestLauncher.java	Thu Jul 19 10:53:38 2018 -0700
@@ -124,6 +124,8 @@
             throw new Exception("Failed to find tests, VM crashed with exit code " + exitCode);
         }
 
+        System.out.println("INFO: command output: [" + out.getOutput() + "]");
+
         String[] lines = out.getStdout().split(" ");
         if (lines.length > 1) { // first line contains jar file name
             for (int i = 1; i < lines.length; i++) {
--- a/test/hotspot/jtreg/compiler/loopopts/IterationSplitPredicateInconsistency.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/compiler/loopopts/IterationSplitPredicateInconsistency.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/compiler/loopopts/TestCMovSplitThruPhi.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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
  *
  */
--- a/test/hotspot/jtreg/compiler/loopstripmining/CheckLoopStripMiningIterShortLoop.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/compiler/loopstripmining/CheckLoopStripMiningIterShortLoop.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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/profiling/TestTypeProfiling.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/compiler/profiling/TestTypeProfiling.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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/rtm/locking/TestRTMAbortRatio.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/compiler/rtm/locking/TestRTMAbortRatio.java	Thu Jul 19 10:53:38 2018 -0700
@@ -130,7 +130,7 @@
 
         @Override
         public String[] getMethodsToCompileNames() {
-            return new String[] { getMethodWithLockName() };
+            return new String[] { getMethodWithLockName(), "*.pageSize" };
         }
 
         public void lock(boolean abort) {
--- a/test/hotspot/jtreg/compiler/rtm/locking/TestRTMSpinLoopCount.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/compiler/rtm/locking/TestRTMSpinLoopCount.java	Thu Jul 19 10:53:38 2018 -0700
@@ -47,6 +47,7 @@
 import jdk.test.lib.Asserts;
 import jdk.test.lib.process.OutputAnalyzer;
 import jdk.test.lib.cli.CommandLineOptionTest;
+import jdk.test.lib.Platform;
 
 import java.util.List;
 
@@ -59,11 +60,18 @@
     private static final int RTM_RETRY_COUNT = 1000;
     private static final boolean INFLATE_MONITOR = true;
     private static final long MAX_ABORTS = RTM_RETRY_COUNT + 1L;
-    private static final int[] SPIN_LOOP_COUNTS
-            = new int[] { 0, 100, 1_000, 10_000, 100_000 };
+    private static int[] SPIN_LOOP_COUNTS;
 
     protected void runTestCases() throws Throwable {
+
+        if (Platform.isPPC()) {
+            SPIN_LOOP_COUNTS = new int[] { 0, 10, 100, 1_000, 10_000 };
+        } else {
+            SPIN_LOOP_COUNTS = new int[] { 0, 100, 1_000, 10_000, 100_000 };
+        }
+
         long[] aborts = new long[TestRTMSpinLoopCount.SPIN_LOOP_COUNTS.length];
+
         for (int i = 0; i < TestRTMSpinLoopCount.SPIN_LOOP_COUNTS.length; i++) {
             aborts[i] = getAbortsCountOnLockBusy(
                     TestRTMSpinLoopCount.SPIN_LOOP_COUNTS[i]);
--- a/test/hotspot/jtreg/compiler/vectorization/TestUnexpectedLoadOrdering.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/compiler/vectorization/TestUnexpectedLoadOrdering.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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
  *
--- a/test/hotspot/jtreg/runtime/ElfDecoder/TestElfDirectRead.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/runtime/ElfDecoder/TestElfDirectRead.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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/LoaderConstraints/differentLE/Test.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/runtime/LoaderConstraints/differentLE/Test.java	Thu Jul 19 10:53:38 2018 -0700
@@ -78,11 +78,9 @@
     // Break the expectedErrorMessage into 2 pieces since the loader name will include
     // its identity hash and can not be compared against.
     static String expectedErrorMessage_part1 = "loader constraint violation: loader PreemptingClassLoader @";
-    static String expectedErrorMessage_part2 = " (instance of PreemptingClassLoader, " +
-        "child of 'app' jdk.internal.loader.ClassLoaders$AppClassLoader) wants to load " +
-        "class test.D_ambgs. A different class with the same name was previously loaded " +
-        "by 'app' (instance of jdk.internal.loader.ClassLoaders$AppClassLoader).";
-
+    static String expectedErrorMessage_part2 = " wants to load class test.D_ambgs. A different class " +
+                                               "with the same name was previously loaded by 'app'. " +
+                                               "(test.D_ambgs is in unnamed module of loader 'app')";
     public static void test_access() throws Exception {
         try {
             // Make a Class 'D_ambgs' under the default loader.
@@ -118,4 +116,3 @@
         test_access();
     }
 }
-
--- a/test/hotspot/jtreg/runtime/LoaderConstraints/duplicateLE/Test.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/runtime/LoaderConstraints/duplicateLE/Test.java	Thu Jul 19 10:53:38 2018 -0700
@@ -40,26 +40,21 @@
     // Break each expectedErrorMessage into 2 parts due to the class loader name containing
     // the unique @<id> identity hash which cannot be compared against.
     static String expectedErrorMessage1_part1 = "loader PreemptingClassLoader @";
-    static String expectedErrorMessage1_part2 =
-        " (instance of PreemptingClassLoader, " +
-        "child of 'app' jdk.internal.loader.ClassLoaders$AppClassLoader) " +
-        "attempted duplicate class definition for test.Foo.";
+    static String expectedErrorMessage1_part2 = " attempted duplicate class definition for test.Foo. (test.Foo is in unnamed module of loader PreemptingClassLoader @";
+    static String expectedErrorMessage1_part3 = ", parent loader 'app')";
 
     // Check that all names have external formatting ('.' and not '/' in package names).
     // Check for name and parent of class loader.
     static String expectedErrorMessage2_part1 = "loader 'DuplicateLE_Test_Loader' @";
-    static String expectedErrorMessage2_part2 =
-        " (instance of PreemptingClassLoader, " +
-        "child of 'app' jdk.internal.loader.ClassLoaders$AppClassLoader) " +
-        "attempted duplicate class definition for test.Foo.";
+    static String expectedErrorMessage2_part2 = " attempted duplicate class definition for test.Foo. (test.Foo is in unnamed module of loader 'DuplicateLE_Test_Loader' @";
+    static String expectedErrorMessage2_part3 = ", parent loader 'app')";
 
     // Check that all names have external formatting ('.' and not '/' in package names).
     // Check for name and parent of class loader. Type should be mentioned as 'interface'.
     static String expectedErrorMessage3_part1 = "loader 'DuplicateLE_Test_Loader_IF' @";
-    static String expectedErrorMessage3_part2 =
-        " (instance of PreemptingClassLoader, " +
-        "child of 'app' jdk.internal.loader.ClassLoaders$AppClassLoader) " +
-        "attempted duplicate interface definition for test.J.";
+    static String expectedErrorMessage3_part2 = " attempted duplicate interface definition for test.J. (test.J is in unnamed module of loader 'DuplicateLE_Test_Loader_IF' @";
+    static String expectedErrorMessage3_part3 = ", parent loader 'app')";
+
 
     // Test that the error message is correct when a loader constraint error is
     // detected during vtable creation.
@@ -68,8 +63,11 @@
     // overrides "J.m()LFoo;".  But, Task's class Foo and super type J's class Foo
     // are different.  So, a LinkageError exception should be thrown because the
     // loader constraint check will fail.
-    public static void test(String loaderName, String expectedErrorMessage_part1,
-                            String expectedErrorMessage_part2, String testType) throws Exception {
+    public static void test(String loaderName,
+                            String expectedErrorMessage_part1,
+                            String expectedErrorMessage_part2,
+                            String expectedErrorMessage_part3,
+                            String testType) throws Exception {
         String[] classNames = {testType};
         ClassLoader l = new PreemptingClassLoader(loaderName, classNames, false);
         l.loadClass(testType);
@@ -79,7 +77,8 @@
         } catch (LinkageError e) {
             String errorMsg = e.getMessage();
             if (!errorMsg.contains(expectedErrorMessage_part1) ||
-                !errorMsg.contains(expectedErrorMessage_part2)) {
+                !errorMsg.contains(expectedErrorMessage_part2) ||
+                !errorMsg.contains(expectedErrorMessage_part3)) {
                 System.out.println("Expected: " + expectedErrorMessage_part1 + "<id>" + expectedErrorMessage_part2 + "\n" +
                                    "but got:  " + errorMsg);
                 throw new RuntimeException("Wrong LinkageError exception thrown: " + errorMsg);
@@ -89,9 +88,11 @@
     }
 
     public static void main(String args[]) throws Exception {
-        test(null, expectedErrorMessage1_part1, expectedErrorMessage1_part2, "test.Foo");
-        test("DuplicateLE_Test_Loader", expectedErrorMessage2_part1, expectedErrorMessage2_part2, "test.Foo");
-        test("DuplicateLE_Test_Loader_IF", expectedErrorMessage3_part1, expectedErrorMessage3_part2, "test.J");
+        test(null, expectedErrorMessage1_part1, expectedErrorMessage1_part2,
+             expectedErrorMessage1_part3, "test.Foo");
+        test("DuplicateLE_Test_Loader", expectedErrorMessage2_part1, expectedErrorMessage2_part2,
+             expectedErrorMessage2_part3, "test.Foo");
+        test("DuplicateLE_Test_Loader_IF", expectedErrorMessage3_part1, expectedErrorMessage3_part2,
+             expectedErrorMessage3_part3, "test.J");
     }
 }
-
--- a/test/hotspot/jtreg/runtime/LoaderConstraints/itableLdrConstraint/Test.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/runtime/LoaderConstraints/itableLdrConstraint/Test.java	Thu Jul 19 10:53:38 2018 -0700
@@ -35,31 +35,25 @@
 
 public class Test {
 
-    // Break expected error messages into 2 parts since the loader name includes its identity
+    // Break expected error messages into 3 parts since the loader name includes its identity
     // hash which is unique and can't be compared against.
-    static String expectedErrorMessage1_part1 =
-        "loader constraint violation in interface itable initialization for class test.C: " +
-        "when selecting method test.I.m()Ltest/Foo; " +
-        "the class loader PreemptingClassLoader @";
-    static String expectedErrorMessage1_part2 =
-        " (instance of PreemptingClassLoader, " +
-        "child of 'app' jdk.internal.loader.ClassLoaders$AppClassLoader) " +
-        "for super interface test.I, and the class loader 'app' " +
-        "(instance of jdk.internal.loader.ClassLoaders$AppClassLoader) " +
-        "of the selected method's type, test.J have different Class objects " +
-        "for the type test.Foo used in the signature";
+    static String expectedErrorMessage1_part1 = "loader constraint violation in interface itable initialization for " +
+                                                "class test.C: when selecting method test.I.m()Ltest/Foo; the class loader " +
+                                                "PreemptingClassLoader @";
+    static String expectedErrorMessage1_part2 = " for super interface test.I, and the class loader 'app' of the " +
+                                                "selected method's type, test.J have different Class objects for the " +
+                                                "type test.Foo used in the signature (test.I is in unnamed module of loader " +
+                                                "PreemptingClassLoader @";
+    static String expectedErrorMessage1_part3 = ", parent loader 'app'; test.J is in unnamed module of loader 'app')";
 
-    static String expectedErrorMessage2_part1 =
-        "loader constraint violation in interface itable initialization for class test.C: " +
-        "when selecting method test.I.m()Ltest/Foo; " +
-        "the class loader 'ItableLdrCnstrnt_Test_Loader' @";
-    static String expectedErrorMessage2_part2 =
-        " (instance of PreemptingClassLoader, " +
-        "child of 'app' jdk.internal.loader.ClassLoaders$AppClassLoader) " +
-        "for super interface test.I, and the class loader 'app' " +
-        "(instance of jdk.internal.loader.ClassLoaders$AppClassLoader) " +
-        "of the selected method's type, test.J have different Class objects " +
-        "for the type test.Foo used in the signature";
+    static String expectedErrorMessage2_part1 = "loader constraint violation in interface itable initialization for " +
+                                                "class test.C: when selecting method test.I.m()Ltest/Foo; the class loader " +
+                                                "'ItableLdrCnstrnt_Test_Loader' @";
+    static String expectedErrorMessage2_part2 = " for super interface test.I, and the class loader 'app' of the " +
+                                                "selected method's type, test.J have different Class objects for the " +
+                                                "type test.Foo used in the signature (test.I is in unnamed module of loader " +
+                                                "'ItableLdrCnstrnt_Test_Loader' @";
+    static String expectedErrorMessage2_part3 = ", parent loader 'app'; test.J is in unnamed module of loader 'app')";
 
     // Test that the error message is correct when a loader constraint error is
     // detected during itable creation.
@@ -71,7 +65,8 @@
     // exception should be thrown because the loader constraint check will fail.
     public static void test(String loaderName,
                             String expectedErrorMessage_part1,
-                            String expectedErrorMessage_part2) throws Exception {
+                            String expectedErrorMessage_part2,
+                            String expectedErrorMessage_part3) throws Exception {
         Class<?> c = test.Foo.class; // Forces standard class loader to load Foo.
         String[] classNames = {"test.Task", "test.Foo", "test.C", "test.I"};
         ClassLoader l = new PreemptingClassLoader(loaderName, classNames);
@@ -82,7 +77,8 @@
         } catch (LinkageError e) {
             String errorMsg = e.getMessage();
             if (!errorMsg.contains(expectedErrorMessage_part1) ||
-                !errorMsg.contains(expectedErrorMessage_part2)) {
+                !errorMsg.contains(expectedErrorMessage_part2) ||
+                !errorMsg.contains(expectedErrorMessage_part3)) {
                 System.out.println("Expected: " + expectedErrorMessage_part1 + "<id>" + expectedErrorMessage_part2 + "\n" +
                                    "but got:  " + errorMsg);
                 throw new RuntimeException("Wrong LinkageError exception thrown: " + errorMsg);
@@ -92,7 +88,7 @@
     }
 
     public static void main(String... args) throws Exception {
-        test(null, expectedErrorMessage1_part1, expectedErrorMessage1_part2);
-        test("ItableLdrCnstrnt_Test_Loader", expectedErrorMessage2_part1, expectedErrorMessage2_part2);
+        test(null, expectedErrorMessage1_part1, expectedErrorMessage1_part2, expectedErrorMessage1_part3);
+        test("ItableLdrCnstrnt_Test_Loader", expectedErrorMessage2_part1, expectedErrorMessage2_part2, expectedErrorMessage2_part3);
     }
 }
--- a/test/hotspot/jtreg/runtime/LoaderConstraints/vtableLdrConstraint/Test.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/runtime/LoaderConstraints/vtableLdrConstraint/Test.java	Thu Jul 19 10:53:38 2018 -0700
@@ -35,31 +35,25 @@
 
 public class Test {
 
-    // Break expected error messages into 2 parts since the loader name includes its identity
+    // Break expected error messages into 3 parts since the loader name includes its identity
     // hash which is unique and can't be compared against.
-    static String expectedErrorMessage1_part1 =
-        "loader constraint violation for class test.Task: " +
-        "when selecting overriding method test.Task.m()Ltest/Foo; " +
-        "the class loader PreemptingClassLoader @";
-    static String expectedErrorMessage1_part2 =
-        " (instance of PreemptingClassLoader, " +
-        "child of 'app' jdk.internal.loader.ClassLoaders$AppClassLoader) " +
-        "of the selected method's type test.Task, " +
-        "and the class loader 'app' (instance of jdk.internal.loader.ClassLoaders$AppClassLoader) " +
-        "for its super type test.J " +
-        "have different Class objects for the type test.Foo used in the signature";
+    static String expectedErrorMessage1_part1 = "loader constraint violation for class test.Task: when " +
+                                                "selecting overriding method test.Task.m()Ltest/Foo; the " +
+                                                "class loader PreemptingClassLoader @";
+    static String expectedErrorMessage1_part2 = " of the selected method's type test.Task, and the class " +
+                                                "loader 'app' for its super type test.J have different Class objects " +
+                                                "for the type test.Foo used in the signature (test.Task is in unnamed " +
+                                                "module of loader PreemptingClassLoader @";
+    static String expectedErrorMessage1_part3 = ", parent loader 'app'; test.J is in unnamed module of loader 'app')";
 
-    static String expectedErrorMessage2_part1 =
-        "loader constraint violation for class test.Task: " +
-        "when selecting overriding method test.Task.m()Ltest/Foo; " +
-        "the class loader 'VtableLdrCnstrnt_Test_Loader' @";
-    static String expectedErrorMessage2_part2 =
-        " (instance of PreemptingClassLoader, " +
-        "child of 'app' jdk.internal.loader.ClassLoaders$AppClassLoader) " +
-        "of the selected method's type test.Task, " +
-        "and the class loader 'app' (instance of jdk.internal.loader.ClassLoaders$AppClassLoader) " +
-        "for its super type test.J " +
-        "have different Class objects for the type test.Foo used in the signature";
+    static String expectedErrorMessage2_part1 = "loader constraint violation for class test.Task: when " +
+                                                "selecting overriding method test.Task.m()Ltest/Foo; the " +
+                                                "class loader 'VtableLdrCnstrnt_Test_Loader' @";
+    static String expectedErrorMessage2_part2 = " of the selected method's type test.Task, and the class " +
+                                                "loader 'app' for its super type test.J have different Class objects " +
+                                                "for the type test.Foo used in the signature (test.Task is in unnamed " +
+                                                "module of loader 'VtableLdrCnstrnt_Test_Loader' @";
+    static String expectedErrorMessage2_part3 = ", parent loader 'app'; test.J is in unnamed module of loader 'app')";
 
     // Test that the error message is correct when a loader constraint error is
     // detected during vtable creation.
@@ -70,7 +64,8 @@
     // loader constraint check will fail.
     public static void test(String loaderName,
                             String expectedErrorMessage_part1,
-                            String expectedErrorMessage_part2) throws Exception {
+                            String expectedErrorMessage_part2,
+                            String expectedErrorMessage_part3) throws Exception {
         Class<?> c = test.Foo.class; // Forces standard class loader to load Foo.
         String[] classNames = {"test.Task", "test.Foo", "test.I"};
         ClassLoader l = new PreemptingClassLoader(loaderName, classNames);
@@ -81,7 +76,8 @@
         } catch (LinkageError e) {
             String errorMsg = e.getMessage();
             if (!errorMsg.contains(expectedErrorMessage_part1) ||
-                !errorMsg.contains(expectedErrorMessage_part2)) {
+                !errorMsg.contains(expectedErrorMessage_part2) ||
+                !errorMsg.contains(expectedErrorMessage_part3)) {
                 System.out.println("Expected: " + expectedErrorMessage_part1 + "<id>" + expectedErrorMessage_part2 + "\n" +
                                    "but got:  " + errorMsg);
                 throw new RuntimeException("Wrong LinkageError exception thrown: " + errorMsg);
@@ -91,8 +87,9 @@
     }
 
     public static void main(String args[]) throws Exception {
-        test(null, expectedErrorMessage1_part1, expectedErrorMessage1_part2);
-        test("VtableLdrCnstrnt_Test_Loader", expectedErrorMessage2_part1, expectedErrorMessage2_part2);
+        test(null, expectedErrorMessage1_part1,
+             expectedErrorMessage1_part2, expectedErrorMessage1_part3);
+        test("VtableLdrCnstrnt_Test_Loader", expectedErrorMessage2_part1,
+             expectedErrorMessage2_part2, expectedErrorMessage2_part3);
     }
 }
-
--- a/test/hotspot/jtreg/runtime/ReservedStack/ReservedStackTest.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/runtime/ReservedStack/ReservedStackTest.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/runtime/ReservedStack/ReservedStackTestCompiler.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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/appcds/CommandLineFlagComboNegative.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/runtime/appcds/CommandLineFlagComboNegative.java	Thu Jul 19 10:53:38 2018 -0700
@@ -71,8 +71,6 @@
                 "Class data sharing is inconsistent with other specified options", 1) );
             testTable.add( new TestVector("-XX:+UseCompressedClassPointers", "-XX:-UseCompressedClassPointers",
                 "Class data sharing is inconsistent with other specified options", 1) );
-            testTable.add( new TestVector("-XX:-UseAppCDS", "-XX:+UseAppCDS",
-                "Ignoring obsolete option UseAppCDS; AppCDS is automatically enabled", 0) );
         }
     }
 
--- a/test/hotspot/jtreg/runtime/appcds/MismatchedUseAppCDS.java	Thu Jul 19 13:49:44 2018 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-/*
- * 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.
- *
- * 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 Try different combination of mismatched UseAppCDS between dump time and run time.
- * @requires vm.cds
- * @library /test/lib
- * @modules java.base/jdk.internal.misc
- *          java.management
- *          jdk.jartool/sun.tools.jar
- * @compile test-classes/CheckIfShared.java
- * @build sun.hotspot.WhiteBox
- * @run driver ClassFileInstaller sun.hotspot.WhiteBox
- * @run main MismatchedUseAppCDS
- */
-
-import jdk.test.lib.process.OutputAnalyzer;
-
-public class MismatchedUseAppCDS {
-  public static void main(String[] args) throws Exception {
-    String wbJar = JarBuilder.build(true, "WhiteBox", "sun/hotspot/WhiteBox");
-    String use_whitebox_jar = "-Xbootclasspath/a:" + wbJar;
-
-    String appJar = JarBuilder.build("MismatchedUseAppCDS", "CheckIfShared");
-
-    OutputAnalyzer output;
-
-    // (1): dump with -XX:+UseAppCDS, but run with -XX:-UseAppCDS
-    TestCommon.testDump(appJar, TestCommon.list("CheckIfShared"),
-                        // command-line arguments ...
-                        "-XX:+UseAppCDS",
-                        use_whitebox_jar);
-
-    output = TestCommon.exec(appJar,
-                             // command-line arguments ...
-                             use_whitebox_jar,
-                             "-XX:-UseAppCDS",
-                             "-XX:+UnlockDiagnosticVMOptions",
-                             "-XX:+WhiteBoxAPI",
-                             "CheckIfShared", "true");
-    TestCommon.checkExec(output);
-
-    // (2): dump with -XX:-UseAppCDS, but run with -XX:+UseAppCDS
-    TestCommon.testDump(appJar, TestCommon.list("CheckIfShared"),
-                        // command-line arguments ...
-                        "-XX:-UseAppCDS",
-                        use_whitebox_jar);
-
-    output = TestCommon.exec(appJar,
-                             // command-line arguments ...
-                             use_whitebox_jar,
-                             "-XX:+UseAppCDS",
-                             "-XX:+UnlockDiagnosticVMOptions",
-                             "-XX:+WhiteBoxAPI",
-                             "CheckIfShared", "true");
-    TestCommon.checkExec(output);
-  }
-}
--- a/test/hotspot/jtreg/runtime/appcds/test-classes/CheckIfShared.java	Thu Jul 19 13:49:44 2018 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +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.
- *
- * 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.hotspot.WhiteBox;
-
-public class CheckIfShared {
-  public static void main(String args[]) throws Exception {
-    WhiteBox wb = WhiteBox.getWhiteBox();
-    if ("true".equals(args[0])) {
-      if (!wb.isSharedClass(CheckIfShared.class)) {
-        throw new RuntimeException("wb.isSharedClass(CheckIfShared.class) should be true");
-      }
-    } else {
-      if (wb.isSharedClass(CheckIfShared.class)) {
-        throw new RuntimeException("wb.isSharedClass(CheckIfShared.class) should be false");
-      }
-    }
-  }
-}
--- a/test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitor.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitor.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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;
@@ -41,8 +45,8 @@
     }
   }
 
-  /** Set a specific sampling rate, 0 samples every allocation. */
-  public native static void setSamplingRate(int rate);
+  /** Set a specific sampling interval, 0 samples every allocation. */
+  public native static void setSamplingInterval(int interval);
   public native static void enableSamplingEvents();
   public native static boolean enableSamplingEventsForTwoThreads(Thread firstThread, Thread secondThread);
   public native static void disableSamplingEvents();
@@ -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;
   }
 
@@ -127,7 +131,7 @@
 
   public static int[][][] sampleEverything() {
     enableSamplingEvents();
-    setSamplingRate(0);
+    setSamplingInterval(0);
 
     // Loop around an allocation loop and wait until the tlabs have settled.
     final int maxTries = 10;
@@ -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/HeapMonitorArrayAllSampledTest.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorArrayAllSampledTest.java	Thu Jul 19 10:53:38 2018 -0700
@@ -26,7 +26,7 @@
 /**
  * @test
  * @build Frame HeapMonitor
- * @summary Verifies the JVMTI Heap Monitor rate when allocating arrays.
+ * @summary Verifies the JVMTI Heap Monitor interval when allocating arrays.
  * @compile HeapMonitorArrayAllSampledTest.java
  * @run main/othervm/native -agentlib:HeapMonitorTest MyPackage.HeapMonitorArrayAllSampledTest
  */
@@ -46,7 +46,7 @@
   public static void main(String[] args) {
     int sizes[] = {1000, 10000, 100000, 1000000};
 
-    HeapMonitor.setSamplingRate(0);
+    HeapMonitor.setSamplingInterval(0);
     HeapMonitor.enableSamplingEvents();
 
     for (int currentSize : sizes) {
@@ -56,8 +56,8 @@
       allocate(currentSize);
 
       // 10% error ensures a sanity test without becoming flaky.
-      // Flakiness is due to the fact that this test is dependent on the sampling rate, which is a
-      // statistical geometric variable around the sampling rate. This means that the test could be
+      // Flakiness is due to the fact that this test is dependent on the sampling interval, which is a
+      // statistical geometric variable around the sampling interval. This means that the test could be
       // unlucky and not achieve the mean average fast enough for the test case.
       if (!HeapMonitor.statsHaveExpectedNumberSamples(maxIteration, 10)) {
         throw new RuntimeException("Statistics should show about " + maxIteration + " samples.");
--- a/test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorGCCMSTest.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorGCCMSTest.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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/HeapMonitorIllegalArgumentTest.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorIllegalArgumentTest.java	Thu Jul 19 10:53:38 2018 -0700
@@ -25,7 +25,7 @@
 
 /**
  * @test
- * @summary Verifies the JVMTI SetHeapSamplingRate returns an illegal argument for negative ints.
+ * @summary Verifies the JVMTI SetHeapSamplingInterval returns an illegal argument for negative ints.
  * @build Frame HeapMonitor
  * @compile HeapMonitorIllegalArgumentTest.java
  * @run main/othervm/native -agentlib:HeapMonitorTest MyPackage.HeapMonitorIllegalArgumentTest
--- a/test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorStatArrayCorrectnessTest.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorStatArrayCorrectnessTest.java	Thu Jul 19 10:53:38 2018 -0700
@@ -26,7 +26,7 @@
 /**
  * @test
  * @build Frame HeapMonitor
- * @summary Verifies the JVMTI Heap Monitor rate when allocating arrays.
+ * @summary Verifies the JVMTI Heap Monitor interval when allocating arrays.
  * @compile HeapMonitorStatArrayCorrectnessTest.java
  * @run main/othervm/native -agentlib:HeapMonitorTest MyPackage.HeapMonitorStatArrayCorrectnessTest
  */
@@ -46,8 +46,6 @@
   public static void main(String[] args) {
     int sizes[] = {1000, 10000, 100000};
 
-    HeapMonitor.enableSamplingEvents();
-
     for (int currentSize : sizes) {
       System.out.println("Testing size " + currentSize);
 
@@ -56,12 +54,16 @@
         throw new RuntimeException("Should not have any events stored yet.");
       }
 
+      HeapMonitor.enableSamplingEvents();
+
       // 111 is as good a number as any.
       final int samplingMultiplier = 111;
-      HeapMonitor.setSamplingRate(samplingMultiplier * currentSize);
+      HeapMonitor.setSamplingInterval(samplingMultiplier * currentSize);
 
       allocate(currentSize);
 
+      HeapMonitor.disableSamplingEvents();
+
       // For simplifications, we ignore the array memory usage for array internals (with the array
       // sizes requested, it should be a negligible oversight).
       //
@@ -77,8 +79,8 @@
       expected /= samplingMultiplier;
 
       // 10% error ensures a sanity test without becoming flaky.
-      // Flakiness is due to the fact that this test is dependent on the sampling rate, which is a
-      // statistical geometric variable around the sampling rate. This means that the test could be
+      // Flakiness is due to the fact that this test is dependent on the sampling interval, which is a
+      // statistical geometric variable around the sampling interval. This means that the test could be
       // unlucky and not achieve the mean average fast enough for the test case.
       if (!HeapMonitor.statsHaveExpectedNumberSamples((int) expected, 10)) {
         throw new RuntimeException("Statistics should show about " + expected + " samples.");
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorStatIntervalTest.java	Thu Jul 19 10:53:38 2018 -0700
@@ -0,0 +1,91 @@
+/*
+ * Copyright (c) 2018, Google and/or its affiliates. All rights reserved.
+ * 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 MyPackage;
+
+/**
+ * @test
+ * @summary Verifies the JVMTI Heap Monitor sampling interval average.
+ * @build Frame HeapMonitor
+ * @compile HeapMonitorStatIntervalTest.java
+ * @requires vm.compMode != "Xcomp"
+ * @run main/othervm/native -agentlib:HeapMonitorTest MyPackage.HeapMonitorStatIntervalTest
+ */
+
+public class HeapMonitorStatIntervalTest {
+
+  private native static double getAverageInterval();
+
+  private static boolean testIntervalOnce(int interval, boolean throwIfFailure) {
+    HeapMonitor.resetEventStorage();
+    HeapMonitor.setSamplingInterval(interval);
+
+    HeapMonitor.enableSamplingEvents();
+
+    int allocationTotal = 10 * 1024 * 1024;
+    int allocationIterations = 10;
+
+    double actualCount = 0;
+    for (int i = 0; i < allocationIterations; i++) {
+      HeapMonitor.resetEventStorage();
+      HeapMonitor.allocateSize(allocationTotal);
+      actualCount += HeapMonitor.getEventStorageElementCount();
+    }
+
+    HeapMonitor.disableSamplingEvents();
+
+    double expectedCount = allocationTotal * allocationIterations / interval;
+
+    double error = Math.abs(actualCount - expectedCount);
+    double errorPercentage = error / expectedCount * 100;
+
+    boolean success = (errorPercentage < 10.0);
+
+    if (!success && throwIfFailure) {
+      throw new RuntimeException("Interval average over 10% for interval " + interval + " -> "
+          + actualCount + ", " + expectedCount);
+    }
+
+    return success;
+  }
+
+
+  private static void testInterval(int interval) {
+    // Test the interval twice, it can happen that the test is "unlucky" and the interval just goes above
+    // the 10% mark. So try again to squash flakiness.
+    // Flakiness is due to the fact that this test is dependent on the sampling interval, which is a
+    // statistical geometric variable around the sampling interval. This means that the test could be
+    // unlucky and not achieve the mean average fast enough for the test case.
+    if (!testIntervalOnce(interval, false)) {
+      testIntervalOnce(interval, true);
+    }
+  }
+
+  public static void main(String[] args) {
+    int[] tab = {1024, 8192};
+
+    for (int intervalIdx = 0; intervalIdx < tab.length; intervalIdx++) {
+      testInterval(tab[intervalIdx]);
+    }
+  }
+}
--- a/test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorStatObjectCorrectnessTest.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorStatObjectCorrectnessTest.java	Thu Jul 19 10:53:38 2018 -0700
@@ -41,19 +41,22 @@
   private native static boolean statsHaveExpectedNumberSamples(int expected, int percentError);
 
   private static void allocate() {
+    emptyStorage();
+
+    HeapMonitor.enableSamplingEvents();
     for (int j = 0; j < maxIteration; j++) {
       obj = new BigObject();
     }
+    HeapMonitor.disableSamplingEvents();
   }
 
-  private static void testBigAllocationRate() {
+  private static void testBigAllocationInterval() {
     final int sizeObject = 1400;
 
     // 111 is as good a number as any.
     final int samplingMultiplier = 111;
-    HeapMonitor.setSamplingRate(samplingMultiplier * sizeObject);
+    HeapMonitor.setSamplingInterval(samplingMultiplier * sizeObject);
 
-    emptyStorage();
     allocate();
 
     // For simplifications, the code is allocating:
@@ -76,8 +79,8 @@
     expected /= samplingMultiplier;
 
     // 10% error ensures a sanity test without becoming flaky.
-    // Flakiness is due to the fact that this test is dependent on the sampling rate, which is a
-    // statistical geometric variable around the sampling rate. This means that the test could be
+    // Flakiness is due to the fact that this test is dependent on the sampling interval, which is a
+    // statistical geometric variable around the sampling interval. This means that the test could be
     // unlucky and not achieve the mean average fast enough for the test case.
     if (!HeapMonitor.statsHaveExpectedNumberSamples((int) expected, 10)) {
       throw new RuntimeException("Statistics should show about " + expected + " samples.");
@@ -94,16 +97,15 @@
 
   private static void testEveryAllocationSampled() {
     // 0 means sample every allocation.
-    HeapMonitor.setSamplingRate(0);
+    HeapMonitor.setSamplingInterval(0);
 
-    emptyStorage();
     allocate();
 
     double expected = maxIteration;
 
     // 10% error ensures a sanity test without becoming flaky.
-    // Flakiness is due to the fact that this test is dependent on the sampling rate, which is a
-    // statistical geometric variable around the sampling rate. This means that the test could be
+    // Flakiness is due to the fact that this test is dependent on the sampling interval, which is a
+    // statistical geometric variable around the sampling interval. This means that the test could be
     // unlucky and not achieve the mean average fast enough for the test case.
     if (!HeapMonitor.statsHaveExpectedNumberSamples((int) expected, 10)) {
       throw new RuntimeException("Statistics should show about " + expected + " samples.");
@@ -111,9 +113,7 @@
   }
 
   public static void main(String[] args) {
-    HeapMonitor.enableSamplingEvents();
-
-    testBigAllocationRate();
+    testBigAllocationInterval();
     testEveryAllocationSampled();
   }
 
--- a/test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorStatRateTest.java	Thu Jul 19 13:49:44 2018 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-/*
- * Copyright (c) 2018, Google and/or its affiliates. All rights reserved.
- * 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 MyPackage;
-
-/**
- * @test
- * @summary Verifies the JVMTI Heap Monitor sampling rate average.
- * @build Frame HeapMonitor
- * @compile HeapMonitorStatRateTest.java
- * @requires vm.compMode != "Xcomp"
- * @run main/othervm/native -agentlib:HeapMonitorTest MyPackage.HeapMonitorStatRateTest
- */
-
-public class HeapMonitorStatRateTest {
-
-  private native static double getAverageRate();
-
-  private static boolean testRateOnce(int rate, boolean throwIfFailure) {
-    HeapMonitor.resetEventStorage();
-    HeapMonitor.setSamplingRate(rate);
-
-    HeapMonitor.enableSamplingEvents();
-
-    int allocationTotal = 10 * 1024 * 1024;
-    HeapMonitor.allocateSize(allocationTotal);
-
-    HeapMonitor.disableSamplingEvents();
-
-    double actualCount = HeapMonitor.getEventStorageElementCount();
-    double expectedCount = allocationTotal / rate;
-
-    double error = Math.abs(actualCount - expectedCount);
-    double errorPercentage = error / expectedCount * 100;
-
-    boolean failure = (errorPercentage > 10.0);
-
-    if (failure && throwIfFailure) {
-      throw new RuntimeException("Rate average over 10% for rate " + rate + " -> " + actualCount
-          + ", " + expectedCount);
-    }
-
-    return failure;
-  }
-
-
-  private static void testRate(int rate) {
-    // Test the rate twice, it can happen that the test is "unlucky" and the rate just goes above
-    // the 10% mark. So try again to squash flakiness.
-    // Flakiness is due to the fact that this test is dependent on the sampling rate, which is a
-    // statistical geometric variable around the sampling rate. This means that the test could be
-    // unlucky and not achieve the mean average fast enough for the test case.
-    if (!testRateOnce(rate, false)) {
-      testRateOnce(rate, true);
-    }
-  }
-
-  public static void main(String[] args) {
-    int[] tab = {1024, 8192};
-
-    for (int rateIdx = 0; rateIdx < tab.length; rateIdx++) {
-      testRate(tab[rateIdx]);
-    }
-  }
-}
--- a/test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorThreadTest.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorThreadTest.java	Thu Jul 19 10:53:38 2018 -0700
@@ -41,8 +41,8 @@
     final int numThreads = 5;
     List<ThreadInformation> threadList = ThreadInformation.createThreadList(numThreads);
 
-    // Sample at a rate of 8k.
-    HeapMonitor.setSamplingRate(1 << 13);
+    // Sample at a interval of 8k.
+    HeapMonitor.setSamplingInterval(1 << 13);
     HeapMonitor.enableSamplingEvents();
 
     System.err.println("Starting threads");
--- a/test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorVMEventsTest.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorVMEventsTest.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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
@@ -60,10 +62,10 @@
     double diff = Math.abs(first - second) * 100;
     diff /= first;
 
-    // Accept a 10% error rate: with objects being allocated: this allows a bit of room in
+    // Accept a 10% error interval: with objects being allocated: this allows a bit of room in
     // case other items are getting allocated during the test.
     if (diff > 10) {
-      throw new RuntimeException("Error rate is over the accepted rate: " + diff
+      throw new RuntimeException("Error interval is over the accepted interval: " + diff
           + ": " + first + " , " + second);
     }
   }
--- a/test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/libHeapMonitorTest.c	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/libHeapMonitorTest.c	Thu Jul 19 10:53:38 2018 -0700
@@ -45,7 +45,7 @@
 
 #define TRUE 1
 #define FALSE 0
-#define PRINT_OUT 0
+#define PRINT_OUT 1
 
 static jvmtiEnv *jvmti = NULL;
 static jvmtiEnv *second_jvmti = NULL;
@@ -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;
     }
   }
@@ -369,7 +369,7 @@
   return result;
 }
 
-static double event_storage_get_average_rate(EventStorage* storage) {
+static double event_storage_get_average_interval(EventStorage* storage) {
   double accumulation = 0;
   int max_size;
   int i;
@@ -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;
     }
@@ -837,8 +839,8 @@
 }
 
 JNIEXPORT void JNICALL
-Java_MyPackage_HeapMonitor_setSamplingRate(JNIEnv* env, jclass cls, jint value) {
-  (*jvmti)->SetHeapSamplingRate(jvmti, value);
+Java_MyPackage_HeapMonitor_setSamplingInterval(JNIEnv* env, jclass cls, jint value) {
+  (*jvmti)->SetHeapSamplingInterval(jvmti, value);
 }
 
 JNIEXPORT jboolean JNICALL
@@ -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;
@@ -932,8 +940,8 @@
     return FALSE;
   }
 
-  if (check_capability_error((*jvmti)->SetHeapSamplingRate(jvmti, 1<<19),
-                             "Set Heap Sampling Rate")) {
+  if (check_capability_error((*jvmti)->SetHeapSamplingInterval(jvmti, 1<<19),
+                             "Set Heap Sampling Interval")) {
     return FALSE;
   }
   return TRUE;
@@ -942,23 +950,23 @@
 JNIEXPORT jboolean JNICALL
 Java_MyPackage_HeapMonitorIllegalArgumentTest_testIllegalArgument(JNIEnv *env,
                                                                   jclass cls) {
-  if (check_error((*jvmti)->SetHeapSamplingRate(jvmti, 0),
-                  "Sampling rate 0 failed\n")){
+  if (check_error((*jvmti)->SetHeapSamplingInterval(jvmti, 0),
+                  "Sampling interval 0 failed\n")){
     return FALSE;
   }
 
-  if (check_error((*jvmti)->SetHeapSamplingRate(jvmti, 1024),
-                  "Sampling rate 1024 failed\n")){
+  if (check_error((*jvmti)->SetHeapSamplingInterval(jvmti, 1024),
+                  "Sampling interval 1024 failed\n")){
     return FALSE;
   }
 
-  if (!check_error((*jvmti)->SetHeapSamplingRate(jvmti, -1),
-                   "Sampling rate -1 passed\n")){
+  if (!check_error((*jvmti)->SetHeapSamplingInterval(jvmti, -1),
+                   "Sampling interval -1 passed\n")){
     return FALSE;
   }
 
-  if (!check_error((*jvmti)->SetHeapSamplingRate(jvmti, -1024),
-                   "Sampling rate -1024 passed\n")){
+  if (!check_error((*jvmti)->SetHeapSamplingInterval(jvmti, -1024),
+                   "Sampling interval -1024 passed\n")){
     return FALSE;
   }
 
@@ -966,8 +974,8 @@
 }
 
 JNIEXPORT jdouble JNICALL
-Java_MyPackage_HeapMonitorStatRateTest_getAverageRate(JNIEnv *env, jclass cls) {
-  return event_storage_get_average_rate(&global_event_storage);
+Java_MyPackage_HeapMonitorStatIntervalTest_getAverageInterval(JNIEnv *env, jclass cls) {
+  return event_storage_get_average_interval(&global_event_storage);
 }
 
 typedef struct sThreadsFound {
--- a/test/hotspot/jtreg/serviceability/tmtools/jstat/GcCauseTest02.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/serviceability/tmtools/jstat/GcCauseTest02.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/serviceability/tmtools/jstat/GcTest02.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jdb/eval/eval001/eval001.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jdb/eval/eval001/eval001a.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jdb/exclude/exclude001/exclude001.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jdb/exclude/exclude001/exclude001a.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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/jdi/ObjectReference/referringObjects/referringObjects001/referringObjects001.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jdi/ObjectReference/referringObjects/referringObjects001/referringObjects001.java	Thu Jul 19 10:53:38 2018 -0700
@@ -52,6 +52,7 @@
  *         referrers with supported type(Strong, PhantomReference, SoftReference, WeakReference)
  *
  * @requires vm.gc != "Z"
+ * @requires !vm.graal.enabled
  * @library /vmTestbase
  *          /test/lib
  * @run driver jdk.test.lib.FileInstaller . .
--- a/test/hotspot/jtreg/vmTestbase/nsk/jdi/ObjectReference/referringObjects/referringObjects003/referringObjects003.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jdi/ObjectReference/referringObjects/referringObjects003/referringObjects003.java	Thu Jul 19 10:53:38 2018 -0700
@@ -52,6 +52,7 @@
  *         can't force collection of thread group because of thread group always has 1 referrer - parent thread group, so
  *         just test disableCollection/enableCollection don't throw any unexpected exceptions
  *
+ * @requires !vm.graal.enabled
  * @library /vmTestbase
  *          /test/lib
  * @run driver jdk.test.lib.FileInstaller . .
--- a/test/hotspot/jtreg/vmTestbase/nsk/jdi/ReferenceType/instances/instances001/instances001.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jdi/ReferenceType/instances/instances001/instances001.java	Thu Jul 19 10:53:38 2018 -0700
@@ -52,6 +52,7 @@
  *             - check the number of instances is correct
  *         done
  *
+ * @requires !vm.graal.enabled
  * @library /vmTestbase
  *          /test/lib
  * @run driver jdk.test.lib.FileInstaller . .
--- a/test/hotspot/jtreg/vmTestbase/nsk/jdi/VMOutOfMemoryException/VMOutOfMemoryException001/VMOutOfMemoryException001.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jdi/VMOutOfMemoryException/VMOutOfMemoryException001/VMOutOfMemoryException001.java	Thu Jul 19 10:53:38 2018 -0700
@@ -34,6 +34,7 @@
  *     in debuggee VM through 'ArrayType.newInstance()' till VMOutOfMemoryException. Any other exception
  *     thrown by 'ArrayType.newInstance()' is treated as product bug.
  *
+ * @requires !vm.graal.enabled
  * @library /vmTestbase
  *          /test/lib
  * @run driver jdk.test.lib.FileInstaller . .
--- a/test/hotspot/jtreg/vmTestbase/nsk/jdi/VirtualMachine/instanceCounts/instancecounts001/instancecounts001.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jdi/VirtualMachine/instanceCounts/instancecounts001/instancecounts001.java	Thu Jul 19 10:53:38 2018 -0700
@@ -40,6 +40,7 @@
  *      - the debugger process checks that instanceCounts returns 0 and no
  *        com.sun.jdi.ObjectCollectedException is thrown
  *
+ * @requires !vm.graal.enabled
  * @library /vmTestbase
  *          /test/lib
  * @run driver jdk.test.lib.FileInstaller . .
--- a/test/hotspot/jtreg/vmTestbase/nsk/jdwp/ObjectReference/ReferringObjects/referringObjects001/referringObjects001.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jdwp/ObjectReference/ReferringObjects/referringObjects001/referringObjects001.java	Thu Jul 19 10:53:38 2018 -0700
@@ -66,6 +66,7 @@
  *     Finally, debugger sends debuggee signal to quit, waits for it exits
  *     and exits too with the proper exit code.
  *
+ * @requires !vm.graal.enabled
  * @library /vmTestbase /test/hotspot/jtreg/vmTestbase
  *          /test/lib
  * @run driver jdk.test.lib.FileInstaller . .
--- a/test/hotspot/jtreg/vmTestbase/nsk/jdwp/ReferenceType/Instances/instances001/instances001.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jdwp/ReferenceType/Instances/instances001/instances001.java	Thu Jul 19 10:53:38 2018 -0700
@@ -61,6 +61,7 @@
  *     and exits too with the proper exit code.
  *
  * @requires vm.gc != "Z"
+ * @requires !vm.graal.enabled
  * @library /vmTestbase /test/hotspot/jtreg/vmTestbase
  *          /test/lib
  * @run driver jdk.test.lib.FileInstaller . .
--- a/test/hotspot/jtreg/vmTestbase/nsk/jdwp/VirtualMachine/InstanceCounts/instanceCounts001/instanceCounts001.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jdwp/VirtualMachine/InstanceCounts/instanceCounts001/instanceCounts001.java	Thu Jul 19 10:53:38 2018 -0700
@@ -62,6 +62,7 @@
  *     and exits too with the proper exit code.
  *
  * @requires vm.gc != "Z"
+ * @requires !vm.graal.enabled
  * @library /vmTestbase /test/hotspot/jtreg/vmTestbase
  *          /test/lib
  * @run driver jdk.test.lib.FileInstaller . .
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateThroughHeap/filter-tagged/HeapFilter.c	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateThroughHeap/filter-tagged/HeapFilter.c	Thu Jul 19 10:53:38 2018 -0700
@@ -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/stress/stack/stack001.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack001.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack002.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack003.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack004.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack005.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack006.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack007.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack008.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack009.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack010.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack011.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack012.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack013.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack014.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack015.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack016.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack017.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack018.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack019.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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/jdk/ProblemList.txt	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/jdk/ProblemList.txt	Thu Jul 19 10:53:38 2018 -0700
@@ -520,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
 
 ############################################################################
 
@@ -586,6 +587,12 @@
 
 java/rmi/registry/readTest/CodebaseTest.java                    8173324 windows-all
 
+java/rmi/activation/ActivationSystem/modifyDescriptor/ModifyDescriptor.java         8206865 generic-all
+java/rmi/activation/Activatable/restartService/RestartService.java                  8206865 generic-all
+java/rmi/activation/Activatable/restartCrashedService/RestartCrashedService.java    8206865 generic-all
+java/rmi/activation/Activatable/forceLogSnapshot/ForceLogSnapshot.java              8206865 generic-all
+java/rmi/activation/Activatable/checkRegisterInLog/CheckRegisterInLog.java          8206865 generic-all
+
 ############################################################################
 
 # jdk_security
@@ -669,6 +676,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
 
@@ -871,4 +879,3 @@
 
 jdk/jfr/event/io/TestInstrumentation.java                       8202142    generic-all
 jdk/jfr/event/sampling/TestNative.java                          8202142    generic-all
-jdk/jfr/event/os/TestSystemProcess.java                         8202835    linux-all
--- a/test/jdk/java/awt/Frame/UnfocusableMaximizedFrameResizablity/UnfocusableMaximizedFrameResizablity.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/jdk/java/awt/Frame/UnfocusableMaximizedFrameResizablity/UnfocusableMaximizedFrameResizablity.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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();
 
--- a/test/jdk/java/lang/invoke/t8150782/TestAccessClass.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/jdk/java/lang/invoke/t8150782/TestAccessClass.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/jdk/java/lang/invoke/t8150782/TestFindClass.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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/nio/channels/Selector/RegisterDuringSelect.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/jdk/java/nio/channels/Selector/RegisterDuringSelect.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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 @@
 
     }
 }
+
--- a/test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/CloseTest.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/CloseTest.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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
@@ -38,6 +38,8 @@
 import java.nio.channels.Selector;
 import java.nio.channels.SocketChannel;
 
+import jdk.test.lib.Utils;
+
 public class CloseTest {
 
     public static void main(String args[]) throws Exception {
@@ -50,7 +52,7 @@
 
         String service_args[] = new String[2];
         service_args[0] = String.valueOf(msg.length());
-        service_args[1] = String.valueOf( 15*1000 );
+        service_args[1] = String.valueOf( Utils.adjustTimeout(15*1000) );
 
 
         SocketChannel sc = Launcher.launchWithSocketChannel("EchoService", service_args);
@@ -65,7 +67,7 @@
         Selector sel = sc.provider().openSelector();
         SelectionKey sk = sc.register(sel, SelectionKey.OP_READ);
 
-        long to = 12 * 1000;
+        long to = Utils.adjustTimeout(12*1000);
         for (;;) {
             long st = System.currentTimeMillis();
             sel.select(to);
--- a/test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/EchoService.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/EchoService.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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
@@ -65,6 +65,8 @@
 import java.nio.channels.ServerSocketChannel;
 import java.nio.channels.SocketChannel;
 
+import jdk.test.lib.Utils;
+
 public class EchoService {
 
     private static void doIt(SocketChannel sc, int closeAfter, int delay) throws IOException {
@@ -173,7 +175,7 @@
             SocketChannel sc;
             int count = 0;
             for (;;) {
-                 sel.select(5000);
+                 sel.select((int)Utils.adjustTimeout(5000));
                  if (sk.isAcceptable() && ((sc = ssc.accept()) != null)) {
                     Worker w = new Worker(sc);
                     (new Thread(w)).start();
--- a/test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/EchoTest.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/EchoTest.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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
@@ -44,6 +44,8 @@
 import java.nio.channels.SocketChannel;
 import java.util.Random;
 
+import jdk.test.lib.Utils;
+
 public class EchoTest {
 
     private static int failures = 0;
@@ -80,7 +82,7 @@
         Selector sel = sc.provider().openSelector();
         SelectionKey sk = sc.register(sel, SelectionKey.OP_READ);
         int nread = 0;
-        long to = 5000;
+        long to = Utils.adjustTimeout(5000);
         while (nread < size) {
             long st = System.currentTimeMillis();
             sel.select(to);
@@ -144,7 +146,7 @@
         // and receive the echo
         byte b[] = new byte[msg.length() + 100];
         DatagramPacket pkt2 = new DatagramPacket(b, b.length);
-        dc.socket().setSoTimeout(5000);
+        dc.socket().setSoTimeout((int)Utils.adjustTimeout(5000));
         dc.socket().receive(pkt2);
 
         if (pkt2.getLength() != msg.length()) {
--- a/test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/InheritedChannelTest.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/InheritedChannelTest.java	Thu Jul 19 10:53:38 2018 -0700
@@ -57,7 +57,7 @@
 public class InheritedChannelTest {
 
     private static final String TEST_SRC = System.getProperty("test.src");
-    private static final String TEST_CLASSES = System.getProperty("test.classes");
+    private static final String TEST_CLASSES = System.getProperty("test.class.path");
     private static final Path POLICY_PASS = Paths.get(TEST_SRC, "java.policy.pass");
     private static final Path POLICY_FAIL = Paths.get(TEST_SRC, "java.policy.fail");
 
--- a/test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/StateTest.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/StateTest.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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
@@ -42,6 +42,8 @@
 import java.nio.channels.ServerSocketChannel;
 import java.nio.channels.SocketChannel;
 
+import jdk.test.lib.Utils;
+
 public class StateTest {
 
     private static int failures = 0;
@@ -66,7 +68,7 @@
          */
         ssc.configureBlocking(false);
         sk = ssc.register(sel, SelectionKey.OP_ACCEPT);
-        long to = 15*1000;
+        long to = Utils.adjustTimeout(15*1000);
         sc = null;
         for (;;) {
             long st = System.currentTimeMillis();
@@ -89,7 +91,7 @@
          */
         sc.configureBlocking(false);
         sk = sc.register(sel, SelectionKey.OP_READ);
-        to = 5000;
+        to = Utils.adjustTimeout(5000);
         ByteBuffer bb = ByteBuffer.allocateDirect(20);
         for (;;) {
             long st = System.currentTimeMillis();
--- a/test/jdk/java/security/KeyStore/ProbeKeystores.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/jdk/java/security/KeyStore/ProbeKeystores.java	Thu Jul 19 10:53:38 2018 -0700
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8044445 8194307
+ * @bug 8044445 8194307 8207318
  * @summary test new methods from JEP-229: Create PKCS12 Keystores by Default
  */
 
@@ -180,7 +180,8 @@
             throw new Exception("ERROR: expected a " + type + " keystore, " +
                 "got a " + ks.getType() + " keystore instead");
         } else {
-            System.out.println("Probed a " + type + " keystore named '" + file + "'");
+            System.out.println("Probed a " + type + " keystore named '" + file
+                    + "' with " + ks.size() + " entries");
         }
 
         // Next try with an incorrect password
@@ -197,7 +198,8 @@
             throw new Exception("ERROR: expected a " + type + " keystore, " +
                 "got a " + ks.getType() + " keystore instead");
         } else {
-            System.out.println("Probed a " + type + " keystore named '" + file + "'");
+            System.out.println("Probed a " + type + " keystore named '" + file
+                    + "' with " + ks.size() + " entries");
         }
 
         // Next try with an incorrect password within a LoadStoreParameter
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/text/Format/DateFormat/Bug8193444.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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/TestZoneTextPrinterParser.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/jdk/java/time/test/java/time/format/TestZoneTextPrinterParser.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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},
        };
     }
 
--- a/test/jdk/java/util/Calendar/JapaneseEraNameTest.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/jdk/java/util/Calendar/JapaneseEraNameTest.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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" },
--- a/test/jdk/java/util/jar/JarFile/SignedJarFileGetInputStream.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/jdk/java/util/jar/JarFile/SignedJarFileGetInputStream.java	Thu Jul 19 10:53:38 2018 -0700
@@ -22,7 +22,7 @@
  */
 
 /* @test
- * @bug 4845692
+ * @bug 4845692 8206863
  * @summary JarFile.getInputStream should not throw when jar file is signed
  * @author Martin Buchholz
  */
@@ -42,5 +42,27 @@
             InputStream is = jar.getInputStream(new ZipEntry(entry.getName()));
             is.close();
         }
+
+        // read(), available() on closed stream should throw IOException
+        InputStream is = jar.getInputStream(new ZipEntry("Test.class"));
+        is.close();
+        byte[] buffer = new byte[1];
+
+        try {
+            is.read();
+            throw new AssertionError("Should have thrown IOException");
+        } catch (IOException success) {}
+        try {
+            is.read(buffer);
+            throw new AssertionError("Should have thrown IOException");
+        } catch (IOException success) {}
+        try {
+            is.read(buffer, 0, buffer.length);
+            throw new AssertionError("Should have thrown IOException");
+        } catch (IOException success) {}
+        try {
+            is.available();
+            throw new AssertionError("Should have thrown IOException");
+        } catch (IOException success) {}
     }
 }
--- a/test/jdk/javax/net/ssl/compatibility/Compatibility.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/jdk/javax/net/ssl/compatibility/Compatibility.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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
  */
 
--- a/test/jdk/javax/net/ssl/compatibility/JdkRelease.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/jdk/javax/net/ssl/compatibility/JdkRelease.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/jdk/javax/net/ssl/compatibility/Parameter.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/jdk/javax/net/ssl/compatibility/README	Thu Jul 19 10:53:38 2018 -0700
@@ -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/swing/JEditorPane/8195095/ImageViewTest.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/jdk/javax/swing/JEditorPane/8195095/ImageViewTest.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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.");
     }
--- a/test/jdk/jdk/internal/platform/docker/MetricsCpuTester.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/jdk/jdk/internal/platform/docker/MetricsCpuTester.java	Thu Jul 19 10:53:38 2018 -0700
@@ -95,10 +95,13 @@
                     + Arrays.toString(ipCpuSet) + ", got : " + Arrays.toString(cpuSets));
         }
 
-        if (!Arrays.equals(ipCpuSet, effectiveCpus)) {
-            throw new RuntimeException("Effective Cpusets not equal, expected : "
-                    + Arrays.toString(ipCpuSet) + ", got : "
-                    + Arrays.toString(effectiveCpus));
+        // Check to see if this metric is supported on this platform
+        if (effectiveCpus.length != 0) {
+            if (!Arrays.equals(ipCpuSet, effectiveCpus)) {
+                throw new RuntimeException("Effective Cpusets not equal, expected : "
+                        + Arrays.toString(ipCpuSet) + ", got : "
+                        + Arrays.toString(effectiveCpus));
+            }
         }
         System.out.println("TEST PASSED!!!");
     }
@@ -127,10 +130,13 @@
                     + Arrays.toString(cpuSets));
         }
 
-        if (!Arrays.equals(ipCpuSet, effectiveMems)) {
-            throw new RuntimeException("Effective mem nodes not equal, expected : "
-                    + Arrays.toString(ipCpuSet) + ", got : "
-                    + Arrays.toString(effectiveMems));
+        // Check to see if this metric is supported on this platform
+        if (effectiveMems.length != 0) {
+            if (!Arrays.equals(ipCpuSet, effectiveMems)) {
+                throw new RuntimeException("Effective mem nodes not equal, expected : "
+                        + Arrays.toString(ipCpuSet) + ", got : "
+                        + Arrays.toString(effectiveMems));
+            }
         }
         System.out.println("TEST PASSED!!!");
     }
--- a/test/jdk/lib/security/cacerts/VerifyCACerts.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/jdk/lib/security/cacerts/VerifyCACerts.java	Thu Jul 19 10:53:38 2018 -0700
@@ -24,8 +24,7 @@
 
 /**
  * @test
- * @bug 8189131 8198240 8191844 8189949 8191031 8196141 8204923 8195774
- * @requires java.runtime.name ~= "OpenJDK.*"
+ * @bug 8189131 8198240 8191844 8189949 8191031 8196141 8204923 8195774 8199779
  * @summary Check root CA entries in cacerts file
  */
 import java.io.File;
@@ -42,7 +41,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 +213,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/security/ec/xec/TestXDH.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/jdk/sun/security/ec/xec/TestXDH.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/sun/security/pkcs12/PBES2Encoding.java	Thu Jul 19 10:53:38 2018 -0700
@@ -0,0 +1,129 @@
+/*
+ * 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 8202837
+ * @summary PBES2 AlgorithmId encoding error in PKCS12 KeyStore
+ */
+
+import java.io.ByteArrayInputStream;
+import java.security.KeyStore;
+
+public class PBES2Encoding {
+
+    // This is a PKCS 12 file using PBES2 to encrypt the cert and key. It is
+    // generated with these commands:
+    //
+    // keytool -keystore ks -genkeypair -storepass changeit -alias a -dname CN=A
+    // openssl pkcs12 -in ks -nodes -out kandc -passin pass:changeit
+    // openssl pkcs12 -export -in kandc -out p12 -name a -passout pass:changeit
+    //         -certpbe AES-128-CBC -keypbe AES-128-CBC
+
+    static final String P12_FILE =
+            "308208860201033082084c06092a864886f70d010701a082083d048208393082" +
+            "08353082050406092a864886f70d010706a08204f5308204f1020100308204ea" +
+            "06092a864886f70d010701304906092a864886f70d01050d303c301b06092a86" +
+            "4886f70d01050c300e040879e103dcdf95bd3e02020800301d06096086480165" +
+            "0304010204108afe09885014c1315a431956bf051cd1808204909af1a5964e45" +
+            "fa24887c963d422500a54576bda5b79beba0a97ec61fd7f68e1d7acca9c7a2ff" +
+            "fa90cc161d1e930a8315158089ce5e842ae758f63d723bd02b82120e663c2965" +
+            "a32101d27f268f7101d9b8786ddeeb8ddfa57d63c7b110ad9015b6279f8c5adf" +
+            "d2a78f82d6641bbb4c363bfe6d5be78993c54a1a52d83acba21f70a70c104c18" +
+            "1968df3009896fb3af534661a8a3d25a09974adfd6dd587f067fd5a2017f0d34" +
+            "99ca0dfd9950f555e950ceb3120408fb9b72e3b43020e4cde2f1c7726901328d" +
+            "78471d7825ce6c9968d9f8e3ae2f2963cfc7d81bd1facfa55f56d711f3568673" +
+            "6c75bc6ae67beee1a70355bf1daa17aba7cdc4fe35b06881503b7a99d1c3efeb" +
+            "e036217042e2f7918c038dc5505447acbe84db6ac10527dd65597b25c8d5f68a" +
+            "349ca4da866b76934aa7c1f4c452b6c45bd97d991c35d3ce63e20342817f7874" +
+            "40d73d2b3329aafba3c95ed2601d2fc85231f0f1797f7e36ae4ff379af030a09" +
+            "1d9c476468eff8be50632c706f0308a5e3a307a1929241b8fcd4fef447c6606b" +
+            "7c45cc01c3dae196b54479d453428c378ec9cdbd45ff514793a91d61d0b230ff" +
+            "4af62765773e9b51ef2f5965c046b25e7c09b42838b2a19fe5262756a64e7b96" +
+            "6fa0159f369d6afb9f4486e2cc7e56a9b9d5afdd28e8c0e19ff4cdf2f7904a12" +
+            "8284201f51dbdfb3fffb2d482764226c8bee83190d99e6bd0bf310eab5501922" +
+            "aede091d3ee8fc405874a63fc696c577829192c65b70964bf54db87c77fe823b" +
+            "19a8344275142387926909c39c0008d9111c78d7e296ba74ca448010db327e11" +
+            "0927fe2029a5fcfde66d6883a26bab78e3dfdb9569a64d117b26e04d627b35b7" +
+            "3a795eb9e6ea7bd4469403cb8a822831c71bc587d3b81b0ae4ca381df8b6872c" +
+            "8bea5f8c99be643f34bafe5bac178c5a36a4c8088e0535eda0511326e3b0ae5e" +
+            "dafde080886fa539f659525d3fcd38468e8c00c05d223d6bd060ef875894f7bc" +
+            "63e61854fad5f6146959d0447a4714a3b79292890ae52c7aa82075f56386e3d3" +
+            "fa2d3376156dc2f5811bd1ac2ca97cb1068a22577513e68a7a0116c6268f9146" +
+            "a718c9e11dad701f3562be8cb9beb3aadd2003b32e3d88afbf178f7a7b5daf09" +
+            "f5acaad1fe0dd27d7094a522a39ede71e621dc2b25b4e855d9a1853cdfa5f6f7" +
+            "b4a0e1c7a5eacd4903aef9eae6a1c2df370137830bcf5cae2e96eef2d9934e9d" +
+            "21e756499370cba32dc923f26915864b2a3cd5b046fad05922ff686f8ccb0b2b" +
+            "4bce27d4c91a0c4d3fab3fd65eb0327d2435c27bdd789b66cb88fe56c31b1785" +
+            "b8820a7c07947f3bf0d6d18ab2d334d927a70dad2fcdad31422138bb3ef39a3d" +
+            "0e66c298e66d38efad20a8e963b98a59e8b6c5d92aea4364c5f720ea9ab6f510" +
+            "2c5ccad50bcb3b5d3fe1ae2810118af0339a6b980c3e2ff1014675ef3a8ea84c" +
+            "3a27b18a088979cddaee68cb65761fdeafc1ab766c13ca8c073cadedec3bf7c0" +
+            "bdc2e91dcbb1295100a3d66838992a19049a7c25ad683c55ed9831cf187dfdba" +
+            "242c38a9a32b9d023753c31519987f43d57a02b238230e93f8c5f5ab64516ece" +
+            "eb915dda45ceb7257e87c909a381248a809b30202884b26eac08b53f9de2478f" +
+            "3b0b410698e44744fbe63082032906092a864886f70d010701a082031a048203" +
+            "16308203123082030e060b2a864886f70d010c0a0102a08202c3308202bf3049" +
+            "06092a864886f70d01050d303c301b06092a864886f70d01050c300e040875ea" +
+            "e60a1bd8525102020800301d060960864801650304010204101c066ab644ec44" +
+            "506b2accab7458b77f04820270c4f2702354ebcd5eb1bfb82bd22382035a7907" +
+            "ab5af91d045250ac1d56f95e4b0d944a99bccd266ea4f7402e5c2082f70ac8ff" +
+            "081242bbd0e9b374eedcafbca01983ca9e324d8850cad4ac43396b1a3250e365" +
+            "fa01e3882d19a01f017724a90242d0558d75399cf310ac551cd60d92e26bc8b2" +
+            "7872882b1f41819d1f660f18a0a2825bd81c861e02124c586046a3609f36713b" +
+            "dcefdc617788032d13268dfb6530205757aba368950041830cbd07ad3ef3987a" +
+            "5d71c1cf9987be05de696b4191a44f405227c89fc857dfbf956fe0ab1a0d8c02" +
+            "613773b1234acd9d3c75994ea00883c1686e3e57661d9937c1837770b3dd2874" +
+            "0ccfcff02d1998cb9907a78b9d95475542cd3e064231f40e425a745dbc5cfec8" +
+            "30f7b6e935487e68b664d998ddfaa06db44c247a0f012f17099c8bb955827e13" +
+            "5017b2526bee9a222e70933f6d7b8968dffe4ca033022d4eac85259434d68e89" +
+            "43d3c9e4c516ec88bb81971d6751803aef4afdb01505f81f8f71d3c074ab788f" +
+            "7a5d197c3985488b6acc53c23bef91906f3009c6ec199cc916fcb88876a28727" +
+            "32ee95d59f636d78e597e10a0e305bd1a5ccda8ad9716f0b5e9c8ca9bfa9ee54" +
+            "224c1183d499d063c6c1ec02b7f9a482b8983bcbad6b64eefc77ef961ec4dd02" +
+            "1f832e3c048b9f77034bbd896b7ab13a9f22d7fe94c88626e77b7c0b2d9fac44" +
+            "914bd9c50cc69ef58044ae1cc423eb321bf5ce2c7505df45d21b932c675c0c5b" +
+            "3705328245bc70ac262808519681f94489912a3dea891aab2d3bdc573b6b17cf" +
+            "6bfd8c1a93404a91efaca5441cd2192b71529a543938056382a7f54fabea4760" +
+            "6ef9ea7c8cdd663036e528ae6043ff138354b43b85cf488f3748fb1051313830" +
+            "1106092a864886f70d01091431041e020061302306092a864886f70d01091531" +
+            "160414664fad18d5583599e1cbe7fe694f36237e2272c530313021300906052b" +
+            "0e03021a0500041472658e404aba0df42263cff430397794c379977504084962" +
+            "aeaf211dfa1f02020800";
+
+    public static void main(String[] args) throws Exception {
+
+        byte[] p12 = new byte[P12_FILE.length() / 2];
+        for (int i = 0; i < p12.length; i++) {
+            p12[i] = Integer.valueOf(P12_FILE.substring(2 * i, 2 * i + 2), 16)
+                    .byteValue();
+        }
+
+        KeyStore ks = KeyStore.getInstance("pkcs12");
+        ks.load(new ByteArrayInputStream(p12), "changeit".toCharArray());
+
+        // Make sure both cert and key can be retrieved
+        System.out.println(ks.getCertificate("a"));
+        System.out.println(ks.getKey("a", "changeit".toCharArray()));
+    }
+}
--- a/test/jdk/sun/security/ssl/SSLEngineImpl/EngineEnforceUseClientMode.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/jdk/sun/security/ssl/SSLEngineImpl/EngineEnforceUseClientMode.java	Thu Jul 19 10:53:38 2018 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2013, 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
@@ -28,7 +28,7 @@
 
 /*
  * @test
- * @bug 4980882
+ * @bug 4980882 8207250
  * @summary SSLEngine should enforce setUseClientMode
  * @run main/othervm EngineEnforceUseClientMode
  * @author Brad R. Wetmore
@@ -190,14 +190,18 @@
                 checkTransfer(appOut1, appIn2);
                 checkTransfer(appOut2, appIn1);
 
+                // Should not be able to set mode now, no matter if
+                // it is the same of different.
                 System.out.println("Try changing modes...");
-                try {
-                    ssle2.setUseClientMode(true);
-                    throw new RuntimeException(
-                        "setUseClientMode():  " +
-                        "Didn't catch the exception properly");
-                } catch (IllegalArgumentException e) {
-                    System.out.println("Caught the correct exception.");
+                for (boolean b : new Boolean[] {true, false}) {
+                    try {
+                        ssle2.setUseClientMode(b);
+                        throw new RuntimeException(
+                                "setUseClientMode(" + b + "):  " +
+                                        "Didn't catch the exception properly");
+                    } catch (IllegalArgumentException e) {
+                        System.out.println("Caught the correct exception.");
+                    }
                 }
 
                 return;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/sun/security/ssl/SSLSessionImpl/ResumeChecksClient.java	Thu Jul 19 10:53:38 2018 -0700
@@ -0,0 +1,269 @@
+/*
+ * 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 8206929
+ * @summary ensure that client only resumes a session if certain properties
+ *    of the session are compatible with the new connection
+ * @run main/othervm -Djdk.tls.client.protocols=TLSv1.2 ResumeChecksClient BASIC
+ * @run main/othervm -Djdk.tls.client.protocols=TLSv1.3 ResumeChecksClient BASIC
+ * @run main/othervm ResumeChecksClient BASIC
+ * @run main/othervm ResumeChecksClient VERSION_2_TO_3
+ * @run main/othervm ResumeChecksClient VERSION_3_TO_2
+ * @run main/othervm -Djdk.tls.client.protocols=TLSv1.3 ResumeChecksClient CIPHER_SUITE
+ * @run main/othervm -Djdk.tls.client.protocols=TLSv1.3 ResumeChecksClient SIGNATURE_SCHEME
+ *
+ */
+
+import javax.net.*;
+import javax.net.ssl.*;
+import java.io.*;
+import java.security.*;
+import java.net.*;
+import java.util.*;
+
+public class ResumeChecksClient {
+
+    static String pathToStores = "../../../../javax/net/ssl/etc";
+    static String keyStoreFile = "keystore";
+    static String trustStoreFile = "truststore";
+    static String passwd = "passphrase";
+
+    enum TestMode {
+        BASIC,
+        VERSION_2_TO_3,
+        VERSION_3_TO_2,
+        CIPHER_SUITE,
+        SIGNATURE_SCHEME
+    }
+
+    public static void main(String[] args) throws Exception {
+
+        TestMode mode = TestMode.valueOf(args[0]);
+
+        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);
+
+        Server server = startServer();
+        server.signal();
+        SSLContext sslContext = SSLContext.getDefault();
+        while (!server.started) {
+            Thread.yield();
+        }
+        connect(sslContext, server.port, mode, false);
+
+        server.signal();
+        long secondStartTime = System.currentTimeMillis();
+        Thread.sleep(10);
+        SSLSession secondSession = connect(sslContext, server.port, mode, true);
+
+        server.go = false;
+        server.signal();
+
+        switch (mode) {
+        case BASIC:
+            // fail if session is not resumed
+            if (secondSession.getCreationTime() > secondStartTime) {
+                throw new RuntimeException("Session was not reused");
+            }
+            break;
+        case VERSION_2_TO_3:
+        case VERSION_3_TO_2:
+        case CIPHER_SUITE:
+        case SIGNATURE_SCHEME:
+            // fail if a new session is not created
+            if (secondSession.getCreationTime() <= secondStartTime) {
+                throw new RuntimeException("Existing session was used");
+            }
+            break;
+        default:
+            throw new RuntimeException("unknown mode: " + mode);
+        }
+    }
+
+    private static class NoSig implements AlgorithmConstraints {
+
+        private final String alg;
+
+        NoSig(String alg) {
+            this.alg = alg;
+        }
+
+
+        private boolean test(String a) {
+            return !a.toLowerCase().contains(alg.toLowerCase());
+        }
+
+        public boolean permits(Set<CryptoPrimitive> primitives, Key key) {
+            return true;
+        }
+        public boolean permits(Set<CryptoPrimitive> primitives,
+            String algorithm, AlgorithmParameters parameters) {
+
+            return test(algorithm);
+        }
+        public boolean permits(Set<CryptoPrimitive> primitives,
+            String algorithm, Key key, AlgorithmParameters parameters) {
+
+            return test(algorithm);
+        }
+    }
+
+    private static SSLSession connect(SSLContext sslContext, int port,
+        TestMode mode, boolean second) {
+
+        try {
+            SSLSocket sock = (SSLSocket)
+                sslContext.getSocketFactory().createSocket();
+            SSLParameters params = sock.getSSLParameters();
+
+            switch (mode) {
+            case BASIC:
+                // do nothing to ensure resumption works
+                break;
+            case VERSION_2_TO_3:
+                if (second) {
+                    params.setProtocols(new String[] {"TLSv1.3"});
+                } else {
+                    params.setProtocols(new String[] {"TLSv1.2"});
+                }
+                break;
+            case VERSION_3_TO_2:
+                if (second) {
+                    params.setProtocols(new String[] {"TLSv1.2"});
+                } else {
+                    params.setProtocols(new String[] {"TLSv1.3"});
+                }
+                break;
+            case CIPHER_SUITE:
+                if (second) {
+                    params.setCipherSuites(
+                        new String[] {"TLS_AES_256_GCM_SHA384"});
+                } else {
+                    params.setCipherSuites(
+                        new String[] {"TLS_AES_128_GCM_SHA256"});
+                }
+                break;
+            case SIGNATURE_SCHEME:
+                AlgorithmConstraints constraints =
+                    params.getAlgorithmConstraints();
+                if (second) {
+                    params.setAlgorithmConstraints(new NoSig("ecdsa"));
+                } else {
+                    params.setAlgorithmConstraints(new NoSig("rsa"));
+                }
+                break;
+            default:
+                throw new RuntimeException("unknown mode: " + mode);
+            }
+            sock.setSSLParameters(params);
+            sock.connect(new InetSocketAddress("localhost", port));
+            PrintWriter out = new PrintWriter(
+                new OutputStreamWriter(sock.getOutputStream()));
+            out.println("message");
+            out.flush();
+            BufferedReader reader = new BufferedReader(
+                new InputStreamReader(sock.getInputStream()));
+            String inMsg = reader.readLine();
+            System.out.println("Client received: " + inMsg);
+            SSLSession result = sock.getSession();
+            sock.close();
+            return result;
+        } catch (Exception ex) {
+            // unexpected exception
+            throw new RuntimeException(ex);
+        }
+    }
+
+    private static Server startServer() {
+        Server server = new Server();
+        new Thread(server).start();
+        return server;
+    }
+
+    private static class Server implements Runnable {
+
+        public volatile boolean go = true;
+        private boolean signal = false;
+        public volatile int port = 0;
+        public volatile boolean started = false;
+
+        private synchronized void waitForSignal() {
+            while (!signal) {
+                try {
+                    wait();
+                } catch (InterruptedException ex) {
+                    // do nothing
+                }
+            }
+            signal = false;
+        }
+        public synchronized void signal() {
+            signal = true;
+            notify();
+        }
+
+        public void run() {
+            try {
+
+                SSLContext sc = SSLContext.getDefault();
+                ServerSocketFactory fac = sc.getServerSocketFactory();
+                SSLServerSocket ssock = (SSLServerSocket)
+                    fac.createServerSocket(0);
+                this.port = ssock.getLocalPort();
+
+                waitForSignal();
+                started = true;
+                while (go) {
+                    try {
+                        System.out.println("Waiting for connection");
+                        Socket sock = ssock.accept();
+                        BufferedReader reader = new BufferedReader(
+                            new InputStreamReader(sock.getInputStream()));
+                        String line = reader.readLine();
+                        System.out.println("server read: " + line);
+                        PrintWriter out = new PrintWriter(
+                            new OutputStreamWriter(sock.getOutputStream()));
+                        out.println(line);
+                        out.flush();
+                        waitForSignal();
+                    } catch (Exception ex) {
+                        ex.printStackTrace();
+                    }
+                }
+            } catch (Exception ex) {
+                throw new RuntimeException(ex);
+            }
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/sun/security/ssl/SSLSessionImpl/ResumeChecksServer.java	Thu Jul 19 10:53:38 2018 -0700
@@ -0,0 +1,307 @@
+/*
+ * 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 8206929
+ * @summary ensure that server only resumes a session if certain properties
+ *    of the session are compatible with the new connection
+ * @run main/othervm -Djdk.tls.client.protocols=TLSv1.2 ResumeChecksServer BASIC
+ * @run main/othervm -Djdk.tls.client.protocols=TLSv1.3 ResumeChecksServer BASIC
+ * @run main/othervm ResumeChecksServer BASIC
+ * @run main/othervm -Djdk.tls.client.protocols=TLSv1.2 ResumeChecksServer CLIENT_AUTH
+ * @run main/othervm -Djdk.tls.client.protocols=TLSv1.3 ResumeChecksServer CLIENT_AUTH
+ * @run main/othervm ResumeChecksServer CLIENT_AUTH
+ * @run main/othervm ResumeChecksServer VERSION_2_TO_3
+ * @run main/othervm ResumeChecksServer VERSION_3_TO_2
+ * @run main/othervm -Djdk.tls.client.protocols=TLSv1.3 ResumeChecksServer CIPHER_SUITE
+ * @run main/othervm -Djdk.tls.client.protocols=TLSv1.3 ResumeChecksServer SIGNATURE_SCHEME
+ *
+ */
+
+import javax.net.*;
+import javax.net.ssl.*;
+import java.io.*;
+import java.security.*;
+import java.net.*;
+import java.util.*;
+
+public class ResumeChecksServer {
+
+    static String pathToStores = "../../../../javax/net/ssl/etc";
+    static String keyStoreFile = "keystore";
+    static String trustStoreFile = "truststore";
+    static String passwd = "passphrase";
+
+    enum TestMode {
+        BASIC,
+        CLIENT_AUTH,
+        VERSION_2_TO_3,
+        VERSION_3_TO_2,
+        CIPHER_SUITE,
+        SIGNATURE_SCHEME
+    }
+
+    public static void main(String[] args) throws Exception {
+
+        TestMode mode = TestMode.valueOf(args[0]);
+
+        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);
+
+        SSLSession secondSession = null;
+
+        SSLContext sslContext = SSLContext.getDefault();
+        ServerSocketFactory fac = sslContext.getServerSocketFactory();
+        SSLServerSocket ssock = (SSLServerSocket)
+            fac.createServerSocket(0);
+
+        Client client = startClient(ssock.getLocalPort());
+
+        try {
+            connect(client, ssock, mode, false);
+        } catch (Exception ex) {
+            throw new RuntimeException(ex);
+        }
+
+        long secondStartTime = System.currentTimeMillis();
+        Thread.sleep(10);
+        try {
+            secondSession = connect(client, ssock, mode, true);
+        } catch (SSLHandshakeException ex) {
+            // this is expected
+        } catch (Exception ex) {
+            throw new RuntimeException(ex);
+        }
+
+        client.go = false;
+        client.signal();
+
+        switch (mode) {
+        case BASIC:
+            // fail if session is not resumed
+            if (secondSession.getCreationTime() > secondStartTime) {
+                throw new RuntimeException("Session was not reused");
+            }
+            break;
+        case CLIENT_AUTH:
+            // throws an exception if the client is not authenticated
+            secondSession.getPeerCertificates();
+            break;
+        case VERSION_2_TO_3:
+        case VERSION_3_TO_2:
+        case CIPHER_SUITE:
+        case SIGNATURE_SCHEME:
+            // fail if a new session is not created
+            if (secondSession.getCreationTime() <= secondStartTime) {
+                throw new RuntimeException("Existing session was used");
+            }
+            break;
+        default:
+            throw new RuntimeException("unknown mode: " + mode);
+        }
+    }
+
+    private static class NoSig implements AlgorithmConstraints {
+
+        private final String alg;
+
+        NoSig(String alg) {
+            this.alg = alg;
+        }
+
+
+        private boolean test(String a) {
+            return !a.toLowerCase().contains(alg.toLowerCase());
+        }
+
+        public boolean permits(Set<CryptoPrimitive> primitives, Key key) {
+            return true;
+        }
+        public boolean permits(Set<CryptoPrimitive> primitives,
+            String algorithm, AlgorithmParameters parameters) {
+
+            return test(algorithm);
+        }
+        public boolean permits(Set<CryptoPrimitive> primitives,
+            String algorithm, Key key, AlgorithmParameters parameters) {
+
+            return test(algorithm);
+        }
+    }
+
+    private static SSLSession connect(Client client, SSLServerSocket ssock,
+        TestMode mode, boolean second) throws Exception {
+
+        try {
+            client.signal();
+            System.out.println("Waiting for connection");
+            SSLSocket sock = (SSLSocket) ssock.accept();
+            SSLParameters params = sock.getSSLParameters();
+
+            switch (mode) {
+            case BASIC:
+                // do nothing to ensure resumption works
+                break;
+            case CLIENT_AUTH:
+                if (second) {
+                    params.setNeedClientAuth(true);
+                } else {
+                    params.setNeedClientAuth(false);
+                }
+                break;
+            case VERSION_2_TO_3:
+                if (second) {
+                    params.setProtocols(new String[] {"TLSv1.3"});
+                } else {
+                    params.setProtocols(new String[] {"TLSv1.2"});
+                }
+                break;
+            case VERSION_3_TO_2:
+                if (second) {
+                    params.setProtocols(new String[] {"TLSv1.2"});
+                } else {
+                    params.setProtocols(new String[] {"TLSv1.3"});
+                }
+                break;
+            case CIPHER_SUITE:
+                if (second) {
+                    params.setCipherSuites(
+                        new String[] {"TLS_AES_128_GCM_SHA256"});
+                } else {
+                    params.setCipherSuites(
+                        new String[] {"TLS_AES_256_GCM_SHA384"});
+                }
+                break;
+            case SIGNATURE_SCHEME:
+                params.setNeedClientAuth(true);
+                AlgorithmConstraints constraints =
+                    params.getAlgorithmConstraints();
+                if (second) {
+                    params.setAlgorithmConstraints(new NoSig("ecdsa"));
+                } else {
+                    params.setAlgorithmConstraints(new NoSig("rsa"));
+                }
+                break;
+            default:
+                throw new RuntimeException("unknown mode: " + mode);
+            }
+            sock.setSSLParameters(params);
+            BufferedReader reader = new BufferedReader(
+                new InputStreamReader(sock.getInputStream()));
+            String line = reader.readLine();
+            System.out.println("server read: " + line);
+            PrintWriter out = new PrintWriter(
+                new OutputStreamWriter(sock.getOutputStream()));
+            out.println(line);
+            out.flush();
+            out.close();
+            SSLSession result = sock.getSession();
+            sock.close();
+            return result;
+        } catch (SSLHandshakeException ex) {
+            if (!second) {
+                throw ex;
+            }
+        }
+        return null;
+    }
+
+    private static Client startClient(int port) {
+        Client client = new Client(port);
+        new Thread(client).start();
+        return client;
+    }
+
+    private static class Client implements Runnable {
+
+        public volatile boolean go = true;
+        private boolean signal = false;
+        private final int port;
+
+        Client(int port) {
+            this.port = port;
+        }
+
+        private synchronized void waitForSignal() {
+            while (!signal) {
+                try {
+                    wait();
+                } catch (InterruptedException ex) {
+                    // do nothing
+                }
+            }
+            signal = false;
+
+            try {
+                Thread.sleep(1000);
+            } catch (InterruptedException ex) {
+                // do nothing
+            }
+        }
+        public synchronized void signal() {
+            signal = true;
+            notify();
+        }
+
+        public void run() {
+            try {
+
+                SSLContext sc = SSLContext.getDefault();
+
+                waitForSignal();
+                while (go) {
+                    try {
+                        SSLSocket sock = (SSLSocket)
+                            sc.getSocketFactory().createSocket();
+                        sock.connect(new InetSocketAddress("localhost", port));
+                        PrintWriter out = new PrintWriter(
+                            new OutputStreamWriter(sock.getOutputStream()));
+                        out.println("message");
+                        out.flush();
+                        BufferedReader reader = new BufferedReader(
+                            new InputStreamReader(sock.getInputStream()));
+                        String inMsg = reader.readLine();
+                        System.out.println("Client received: " + inMsg);
+                        out.close();
+                        sock.close();
+                        waitForSignal();
+                    } catch (Exception ex) {
+                        ex.printStackTrace();
+                    }
+                }
+            } catch (Exception ex) {
+                throw new RuntimeException(ex);
+            }
+        }
+    }
+}
--- a/test/jdk/sun/security/tools/jarsigner/compatibility/Compatibility.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/jdk/sun/security/tools/jarsigner/compatibility/Compatibility.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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/tools/launcher/modules/addexports/AddExportsTestWarningError.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/jdk/tools/launcher/modules/addexports/AddExportsTestWarningError.java	Thu Jul 19 10:53:38 2018 -0700
@@ -80,7 +80,7 @@
 
         builder.compile("m1", MODS_DIR);
         builder.compile("m2", MODS_DIR, "--add-exports", "m1/p1=m2");
-        builder.compile("m3", MODS_DIR, "--add-exports", "m1/p1=m3");
+        builder.compile("m3", MODS_DIR, "--add-exports", "m1/p1=m3", "--add-reads", "m3=m1");
     }
 
 
--- a/test/jdk/tools/pack200/PackageVersionTest.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/jdk/tools/pack200/PackageVersionTest.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/ProblemList.txt	Thu Jul 19 10:53:38 2018 -0700
@@ -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/testDeprecatedDocs/TestDeprecatedDocs.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testDeprecatedDocs/TestDeprecatedDocs.java	Thu Jul 19 10:53:38 2018 -0700
@@ -86,7 +86,7 @@
                 "<pre>@Deprecated(forRemoval=true)\n"
                 + "public&nbsp;DeprecatedClassByAnnotation()</pre>\n"
                 + "<div class=\"deprecationBlock\"><span class=\"deprecatedLabel\">Deprecated, for removal: This API element is subject to removal in a future version.</span></div>",
-                "<pre>@Deprecated\n"
+                "<pre class=\"methodSignature\">@Deprecated\n"
                 + "public&nbsp;void&nbsp;method()</pre>\n"
                 + "<div class=\"deprecationBlock\"><span class=\"deprecatedLabel\">Deprecated.</span></div>");
 
--- a/test/langtools/jdk/javadoc/doclet/testHtmlDefinitionListTag/TestHtmlDefinitionListTag.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testHtmlDefinitionListTag/TestHtmlDefinitionListTag.java	Thu Jul 19 10:53:38 2018 -0700
@@ -567,7 +567,7 @@
         // Test with -nocomment and -nodeprecated options. The ClassDocs whould
         // not display definition lists for any member details.
         checkOutput("pkg1/C1.html", expectFound,
-                "<pre>public&nbsp;void&nbsp;readObject()\n" +
+                "<pre class=\"methodSignature\">public&nbsp;void&nbsp;readObject()\n" +
                 "                throws java.io.IOException</pre>\n" +
                 "</li>");
 
--- a/test/langtools/jdk/javadoc/doclet/testIndentation/TestIndentation.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testIndentation/TestIndentation.java	Thu Jul 19 10:53:38 2018 -0700
@@ -46,7 +46,7 @@
         checkExit(Exit.OK);
 
         checkOutput("p/Indent.html", true,
-                "<pre>public&nbsp;&lt;T&gt;&nbsp;void&nbsp;m&#8203;(T&nbsp;t1,",
+                "<pre class=\"methodSignature\">public&nbsp;&lt;T&gt;&nbsp;void&nbsp;m&#8203;(T&nbsp;t1,",
                 "\n"
                 + "                  T&nbsp;t2)",
                 "\n"
--- a/test/langtools/jdk/javadoc/doclet/testInterface/TestInterface.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testInterface/TestInterface.java	Thu Jul 19 10:53:38 2018 -0700
@@ -65,7 +65,7 @@
         checkExit(Exit.OK);
 
         checkOutput("pkg/Interface.html", true,
-                "<pre>int&nbsp;method()</pre>",
+                "<pre class=\"methodSignature\">int&nbsp;method()</pre>",
                 "<pre>static final&nbsp;int field</pre>",
                 // Make sure known implementing class list is correct and omits type parameters.
                 "<dl>\n"
@@ -141,7 +141,7 @@
                 + "</td>\n",
 
                 "<h4>staticMethod</h4>\n"
-                + "<pre>public static&nbsp;void&nbsp;staticMethod()</pre>\n"
+                + "<pre class=\"methodSignature\">public static&nbsp;void&nbsp;staticMethod()</pre>\n"
                 + "<div class=\"block\"><span class=\"descfrmTypeLabel\">"
                 + "Description copied from interface:&nbsp;<code>"
                 + "<a href=\"InterfaceWithStaticMembers.html#staticMethod()\">"
@@ -187,7 +187,7 @@
                 + "</td>\n",
 
                 "<h4>staticMethod</h4>\n"
-                + "<pre>public static&nbsp;void&nbsp;staticMethod()</pre>\n"
+                + "<pre class=\"methodSignature\">public static&nbsp;void&nbsp;staticMethod()</pre>\n"
                 + "<div class=\"block\"><span class=\"descfrmTypeLabel\">"
                 + "Description copied from interface:&nbsp;<code>"
                 + "<a href=\"InterfaceWithStaticMembers.html#staticMethod--\">"
--- a/test/langtools/jdk/javadoc/doclet/testJavaFX/TestJavaFX.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testJavaFX/TestJavaFX.java	Thu Jul 19 10:53:38 2018 -0700
@@ -54,11 +54,11 @@
                 "<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
                 + "<dd><a href=\"#getRate()\"><code>getRate()</code></a>, \n"
                 + "<a href=\"#setRate(double)\"><code>setRate(double)</code></a></dd>",
-                "<pre>public final&nbsp;void&nbsp;setRate&#8203;(double&nbsp;value)</pre>\n"
+                "<pre class=\"methodSignature\">public final&nbsp;void&nbsp;setRate&#8203;(double&nbsp;value)</pre>\n"
                 + "<div class=\"block\">Sets the value of the property rate.</div>\n"
                 + "<dl>\n"
                 + "<dt><span class=\"simpleTagLabel\">Property description:</span></dt>",
-                "<pre>public final&nbsp;double&nbsp;getRate()</pre>\n"
+                "<pre class=\"methodSignature\">public final&nbsp;double&nbsp;getRate()</pre>\n"
                 + "<div class=\"block\">Gets the value of the property rate.</div>\n"
                 + "<dl>\n"
                 + "<dt><span class=\"simpleTagLabel\">Property description:</span></dt>",
@@ -88,10 +88,10 @@
                 + "title=\"class in pkg1\">C.BooleanProperty</a> pausedProperty</pre>\n"
                 + "<div class=\"block\">Defines if paused. The second line.</div>",
                 "<h4>isPaused</h4>\n"
-                + "<pre>public final&nbsp;double&nbsp;isPaused()</pre>\n"
+                + "<pre class=\"methodSignature\">public final&nbsp;double&nbsp;isPaused()</pre>\n"
                 + "<div class=\"block\">Gets the value of the property paused.</div>",
                 "<h4>setPaused</h4>\n"
-                + "<pre>public final&nbsp;void&nbsp;setPaused&#8203;(boolean&nbsp;value)</pre>\n"
+                + "<pre class=\"methodSignature\">public final&nbsp;void&nbsp;setPaused&#8203;(boolean&nbsp;value)</pre>\n"
                 + "<div class=\"block\">Sets the value of the property paused.</div>\n"
                 + "<dl>\n"
                 + "<dt><span class=\"simpleTagLabel\">Property description:</span></dt>\n"
@@ -99,7 +99,7 @@
                 + "<dt><span class=\"simpleTagLabel\">Default value:</span></dt>\n"
                 + "<dd>false</dd>",
                 "<h4>isPaused</h4>\n"
-                + "<pre>public final&nbsp;double&nbsp;isPaused()</pre>\n"
+                + "<pre class=\"methodSignature\">public final&nbsp;double&nbsp;isPaused()</pre>\n"
                 + "<div class=\"block\">Gets the value of the property paused.</div>\n"
                 + "<dl>\n"
                 + "<dt><span class=\"simpleTagLabel\">Property description:</span></dt>\n"
@@ -113,7 +113,7 @@
                 + "<code>Timeline</code> is expected to\n"
                 + " be played. This is the second line.</div>",
                 "<h4>setRate</h4>\n"
-                + "<pre>public final&nbsp;void&nbsp;setRate&#8203;(double&nbsp;value)</pre>\n"
+                + "<pre class=\"methodSignature\">public final&nbsp;void&nbsp;setRate&#8203;(double&nbsp;value)</pre>\n"
                 + "<div class=\"block\">Sets the value of the property rate.</div>\n"
                 + "<dl>\n"
                 + "<dt><span class=\"simpleTagLabel\">Property description:</span></dt>\n"
@@ -124,7 +124,7 @@
                 + "<dt><span class=\"simpleTagLabel\">Since:</span></dt>\n"
                 + "<dd>JavaFX 8.0</dd>",
                 "<h4>getRate</h4>\n"
-                + "<pre>public final&nbsp;double&nbsp;getRate()</pre>\n"
+                + "<pre class=\"methodSignature\">public final&nbsp;double&nbsp;getRate()</pre>\n"
                 + "<div class=\"block\">Gets the value of the property rate.</div>\n"
                 + "<dl>\n"
                 + "<dt><span class=\"simpleTagLabel\">Property description:</span></dt>\n"
--- a/test/langtools/jdk/javadoc/doclet/testLambdaFeature/TestLambdaFeature.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testLambdaFeature/TestLambdaFeature.java	Thu Jul 19 10:53:38 2018 -0700
@@ -55,7 +55,7 @@
 
         checkOutput("pkg/A.html", true,
                 "<td class=\"colFirst\"><code>default void</code></td>",
-                "<pre>default&nbsp;void&nbsp;defaultMethod()</pre>",
+                "<pre class=\"methodSignature\">default&nbsp;void&nbsp;defaultMethod()</pre>",
                 "<caption><span id=\"t0\" class=\"activeTableTab\"><span>"
                 + "All Methods</span><span class=\"tabEnd\">&nbsp;</span></span>"
                 + "<span id=\"t2\" class=\"tableTab\"><span>"
--- a/test/langtools/jdk/javadoc/doclet/testLiteralCodeInPre/TestLiteralCodeInPre.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testLiteralCodeInPre/TestLiteralCodeInPre.java	Thu Jul 19 10:53:38 2018 -0700
@@ -89,7 +89,7 @@
                 + " <PRE>\n"
                 + " <b>id           </b>\n"
                 + " </PRE></div>",
-                "<pre>public&nbsp;void&nbsp;htmlAttrInPre1()</pre>\n"
+                "<pre class=\"methodSignature\">public&nbsp;void&nbsp;htmlAttrInPre1()</pre>\n"
                 + "<div class=\"block\">More html tag outliers.\n"
                 + " <pre>\n"
                 + " @Override\n"
--- a/test/langtools/jdk/javadoc/doclet/testMemberSummary/TestMemberSummary.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testMemberSummary/TestMemberSummary.java	Thu Jul 19 10:53:38 2018 -0700
@@ -55,7 +55,7 @@
                 + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\"><a href=\"#returnTypeTest()\">"
                 + "returnTypeTest</a></span>()</code>",
                 // Check return type in member detail.
-                "<pre>public&nbsp;<a href=\"PublicChild.html\" title=\"class in pkg\">"
+                "<pre class=\"methodSignature\">public&nbsp;<a href=\"PublicChild.html\" title=\"class in pkg\">"
                 + "PublicChild</a>&nbsp;returnTypeTest()</pre>",
                 "<th class=\"colConstructorName\" scope=\"row\"><code><span class=\"memberNameLink\">"
                 + "<a href=\"#%3Cinit%3E()\">PublicChild</a></span>()</code></th>");
--- a/test/langtools/jdk/javadoc/doclet/testNewLanguageFeatures/TestNewLanguageFeatures.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testNewLanguageFeatures/TestNewLanguageFeatures.java	Thu Jul 19 10:53:38 2018 -0700
@@ -96,7 +96,7 @@
                 "for (Coin c : Coin.values())",
                 "Overloaded valueOf() method has correct documentation.",
                 "Overloaded values method  has correct documentation.",
-                "<pre>public static&nbsp;<a href=\"Coin.html\" title=\"enum in pkg\">Coin</a>" +
+                "<pre class=\"methodSignature\">public static&nbsp;<a href=\"Coin.html\" title=\"enum in pkg\">Coin</a>" +
                 "&nbsp;valueOf&#8203;(java.lang.String&nbsp;name)</pre>\n" +
                 "<div class=\"block\">Returns the enum constant of this type with the specified name.\n" +
                 "The string must match <i>exactly</i> an identifier used to declare an\n" +
@@ -155,7 +155,7 @@
                 + "<a href=\"#methodThatReturnsTypeParameterA(E%5B%5D)\">"
                 + "methodThatReturnsTypeParameterA</a></span>&#8203;(<a href=\"TypeParameters.html\" "
                 + "title=\"type parameter in TypeParameters\">E</a>[]&nbsp;e)</code>",
-                "<pre>public&nbsp;<a href=\"TypeParameters.html\" "
+                "<pre class=\"methodSignature\">public&nbsp;<a href=\"TypeParameters.html\" "
                 + "title=\"type parameter in TypeParameters\">E</a>[]&nbsp;"
                 + "methodThatReturnsTypeParameterA&#8203;(<a href=\"TypeParameters.html\" "
                 + "title=\"type parameter in TypeParameters\">E</a>[]&nbsp;e)</pre>\n",
@@ -695,7 +695,7 @@
                 + "required</a>=1994)\n"
                 + "public&nbsp;AnnotationTypeUsage()</pre>",
                 // METHOD
-                "<pre><a href=\"AnnotationType.html\" "
+                "<pre class=\"methodSignature\"><a href=\"AnnotationType.html\" "
                 + "title=\"annotation in pkg\">@AnnotationType</a>("
                 + "<a href=\"AnnotationType.html#optional()\">optional</a>"
                 + "=\"Method Annotation\",\n"
@@ -703,7 +703,7 @@
                 + "required</a>=1994)\n"
                 + "public&nbsp;void&nbsp;method()</pre>",
                 // METHOD PARAMS
-                "<pre>public&nbsp;void&nbsp;methodWithParams&#8203;("
+                "<pre class=\"methodSignature\">public&nbsp;void&nbsp;methodWithParams&#8203;("
                 + "<a href=\"AnnotationType.html\" title=\"annotation in pkg\">"
                 + "@AnnotationType</a>(<a href=\"AnnotationType.html#optional()\">"
                 + "optional</a>=\"Parameter Annotation\",<a "
@@ -858,7 +858,7 @@
                 + "required</a>=1994)\n"
                 + "public&nbsp;AnnotationTypeUsage()</pre>",
                 // METHOD
-                "<pre><a href=\"AnnotationType.html\" "
+                "<pre class=\"methodSignature\"><a href=\"AnnotationType.html\" "
                 + "title=\"annotation in pkg\">@AnnotationType</a>("
                 + "<a href=\"AnnotationType.html#optional--\">optional</a>"
                 + "=\"Method Annotation\",\n"
@@ -866,7 +866,7 @@
                 + "required</a>=1994)\n"
                 + "public&nbsp;void&nbsp;method()</pre>",
                 // METHOD PARAMS
-                "<pre>public&nbsp;void&nbsp;methodWithParams&#8203;("
+                "<pre class=\"methodSignature\">public&nbsp;void&nbsp;methodWithParams&#8203;("
                 + "<a href=\"AnnotationType.html\" title=\"annotation in pkg\">"
                 + "@AnnotationType</a>(<a href=\"AnnotationType.html#optional--\">"
                 + "optional</a>=\"Parameter Annotation\",<a "
--- a/test/langtools/jdk/javadoc/doclet/testOptions/TestOptions.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testOptions/TestOptions.java	Thu Jul 19 10:53:38 2018 -0700
@@ -207,7 +207,7 @@
                 + "Properties</a>",
                 "<pre>public&nbsp;java.lang.Object <a href="
                 + "\"../src-html/linksource/Properties.html#line.31\">someProperty</a></pre>",
-                "<pre>public&nbsp;java.lang.Object&nbsp;<a href="
+                "<pre class=\"methodSignature\">public&nbsp;java.lang.Object&nbsp;<a href="
                 + "\"../src-html/linksource/Properties.html#line.31\">someProperty</a>()</pre>");
 
         checkOutput("src-html/linksource/Properties.html", true,
@@ -222,7 +222,7 @@
                 + "field</a></pre>",
                 "<pre>public&nbsp;<a href=\"../src-html/linksource/SomeClass.html#line.33\">"
                 + "SomeClass</a>()</pre>",
-                "<pre>public&nbsp;int&nbsp;<a href=\"../src-html/linksource/SomeClass.html#line.36\">"
+                "<pre class=\"methodSignature\">public&nbsp;int&nbsp;<a href=\"../src-html/linksource/SomeClass.html#line.36\">"
                 + "method</a>()</pre>");
 
         checkOutput("src-html/linksource/SomeClass.html", true,
--- a/test/langtools/jdk/javadoc/doclet/testOverriddenMethods/TestBadOverride.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testOverriddenMethods/TestBadOverride.java	Thu Jul 19 10:53:38 2018 -0700
@@ -52,7 +52,7 @@
         checkOutput("pkg4/Foo.html", true,
                 "<li class=\"blockList\">\n"
                 + "<h4>toString</h4>\n"
-                + "<pre>public&nbsp;void&nbsp;toString()</pre>\n"
+                + "<pre class=\"methodSignature\">public&nbsp;void&nbsp;toString()</pre>\n"
                 + "<div class=\"block\">Why can't I do this ?</div>\n"
                 + "</li>");
     }
--- a/test/langtools/jdk/javadoc/doclet/testPrivateClasses/TestPrivateClasses.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testPrivateClasses/TestPrivateClasses.java	Thu Jul 19 10:53:38 2018 -0700
@@ -73,7 +73,7 @@
                 + "</li>\n"
                 + "</ul>",
                 // Method is documented as though it is declared in the inheriting method.
-                "<pre>public&nbsp;void&nbsp;methodInheritedFromParent&#8203;(int&nbsp;p1)",
+                "<pre class=\"methodSignature\">public&nbsp;void&nbsp;methodInheritedFromParent&#8203;(int&nbsp;p1)",
                 "<dl>\n"
                 + "<dt>All Implemented Interfaces:</dt>\n"
                 + "<dd><code><a href=\"PublicInterface.html\" title=\"interface in pkg\">"
--- a/test/langtools/jdk/javadoc/doclet/testSerializedFormWithClassFile/TestSerializedFormWithClassFile.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testSerializedFormWithClassFile/TestSerializedFormWithClassFile.java	Thu Jul 19 10:53:38 2018 -0700
@@ -71,7 +71,7 @@
         checkExit(Exit.OK);
 
         checkOutput("serialized-form.html", true,
-                "<pre>public&nbsp;void&nbsp;readObject&#8203;"
+                "<pre class=\"methodSignature\">public&nbsp;void&nbsp;readObject&#8203;"
                 + "(java.io.ObjectInputStream&nbsp;arg0)\n"
                 + "                throws java.lang.ClassNotFoundException,\n"
                 + "                       java.io.IOException</pre>\n");
--- a/test/langtools/jdk/javadoc/doclet/testSummaryTag/TestSummaryTag.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testSummaryTag/TestSummaryTag.java	Thu Jul 19 10:53:38 2018 -0700
@@ -87,7 +87,7 @@
         checkOutput("p1/A.html", true,
              "<li class=\"blockList\">\n"
              + "<h4>m3</h4>\n"
-             + "<pre>public&nbsp;void&nbsp;m3()</pre>\n"
+             + "<pre class=\"methodSignature\">public&nbsp;void&nbsp;m3()</pre>\n"
              + "<div class=\"block\">First sentence  some text maybe second sentence.</div>\n"
              + "</li>\n"
         );
--- a/test/langtools/jdk/javadoc/doclet/testTypeAnnotations/TestTypeAnnotations.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/jdk/javadoc/doclet/testTypeAnnotations/TestTypeAnnotations.java	Thu Jul 19 10:53:38 2018 -0700
@@ -154,22 +154,22 @@
 
         // Test for type annotations on method return types (MethodReturnType.java).
         checkOutput("typeannos/MtdDefaultScope.html", true,
-                "<pre>public&nbsp;&lt;T&gt;&nbsp;<a href=\"MRtnA.html\" "
+                "<pre class=\"methodSignature\">public&nbsp;&lt;T&gt;&nbsp;<a href=\"MRtnA.html\" "
                 + "title=\"annotation in typeannos\">@MRtnA</a> java.lang.String"
                 + "&nbsp;method()</pre>",
 
                 // When JDK-8068737 is fixed, we should change the order
-                "<pre><a href=\"MRtnA.html\" title=\"annotation in typeannos\">"
+                "<pre class=\"methodSignature\"><a href=\"MRtnA.html\" title=\"annotation in typeannos\">"
                 + "@MRtnA</a> java.lang.String "
                 + "<a href=\"MRtnB.html\" title=\"annotation in typeannos\">@MRtnB</a> [] "
                 + "<a href=\"MRtnA.html\" title=\"annotation in typeannos\">@MRtnA</a> []"
                 + "&nbsp;array2Deep()</pre>",
 
-                "<pre><a href=\"MRtnA.html\" title=\"annotation in "
+                "<pre class=\"methodSignature\"><a href=\"MRtnA.html\" title=\"annotation in "
                 + "typeannos\">@MRtnA</a> java.lang.String[][]&nbsp;array2()</pre>");
 
         checkOutput("typeannos/MtdModifiedScoped.html", true,
-                "<pre>public final&nbsp;<a href=\"MtdParameterized.html\" "
+                "<pre class=\"methodSignature\">public final&nbsp;<a href=\"MtdParameterized.html\" "
                 + "title=\"class in typeannos\">MtdParameterized</a>&lt;<a href=\""
                 + "MRtnA.html\" title=\"annotation in typeannos\">@MRtnA</a> "
                 + "<a href=\"MtdParameterized.html\" title=\"class in "
@@ -182,11 +182,11 @@
 
         // Test for type annotations on method type parameters (MethodTypeParameters.java).
         checkOutput("typeannos/UnscopedUnmodified.html", true,
-                "<pre>&lt;K extends <a href=\"MTyParamA.html\" title=\""
+                "<pre class=\"methodSignature\">&lt;K extends <a href=\"MTyParamA.html\" title=\""
                 + "annotation in typeannos\">@MTyParamA</a> java.lang.String&gt;"
                 + "&nbsp;void&nbsp;methodExtends()</pre>",
 
-                "<pre>&lt;K extends <a href=\"MTyParamA.html\" title=\""
+                "<pre class=\"methodSignature\">&lt;K extends <a href=\"MTyParamA.html\" title=\""
                 + "annotation in typeannos\">@MTyParamA</a> <a href=\""
                 + "MtdTyParameterized.html\" title=\"class in typeannos\">"
                 + "MtdTyParameterized</a>&lt;<a href=\"MTyParamB.html\" "
@@ -194,11 +194,11 @@
                 + "&gt;&gt;&nbsp;void&nbsp;nestedExtends()</pre>");
 
         checkOutput("typeannos/PublicModifiedMethods.html", true,
-                "<pre>public final&nbsp;&lt;K extends <a href=\""
+                "<pre class=\"methodSignature\">public final&nbsp;&lt;K extends <a href=\""
                 + "MTyParamA.html\" title=\"annotation in typeannos\">@MTyParamA</a> "
                 + "java.lang.String&gt;&nbsp;void&nbsp;methodExtends()</pre>",
 
-                "<pre>public final&nbsp;&lt;K extends <a href=\""
+                "<pre class=\"methodSignature\">public final&nbsp;&lt;K extends <a href=\""
                 + "MTyParamA.html\" title=\"annotation in typeannos\">@MTyParamA</a> "
                 + "java.lang.String,&#8203;V extends <a href=\"MTyParamA.html\" "
                 + "title=\"annotation in typeannos\">@MTyParamA</a> <a href=\""
@@ -209,12 +209,12 @@
 
         // Test for type annotations on parameters (Parameters.java).
         checkOutput("typeannos/Parameters.html", true,
-                "<pre>void&nbsp;unannotated&#8203;(<a href=\""
+                "<pre class=\"methodSignature\">void&nbsp;unannotated&#8203;(<a href=\""
                 + "ParaParameterized.html\" title=\"class in typeannos\">"
                 + "ParaParameterized</a>&lt;java.lang.String,&#8203;java.lang.String&gt;"
                 + "&nbsp;a)</pre>",
 
-                "<pre>void&nbsp;nestedParaParameterized&#8203;(<a href=\""
+                "<pre class=\"methodSignature\">void&nbsp;nestedParaParameterized&#8203;(<a href=\""
                 + "ParaParameterized.html\" title=\"class in typeannos\">"
                 + "ParaParameterized</a>&lt;<a href=\"ParamA.html\" "
                 + "title=\"annotation in typeannos\">@ParamA</a> <a href=\""
@@ -227,7 +227,7 @@
                 + "</a> java.lang.String&gt;&nbsp;a)</pre>",
 
                 // When JDK-8068737 is fixed, we should change the order
-                "<pre>void&nbsp;array2Deep&#8203;(<a href=\"ParamA.html\" "
+                "<pre class=\"methodSignature\">void&nbsp;array2Deep&#8203;(<a href=\"ParamA.html\" "
                 + "title=\"annotation in typeannos\">@ParamA</a> java.lang.String "
                 + "<a href=\"ParamB.html\" title=\"annotation in typeannos\">"
                 + "@ParamB</a> [] "
@@ -237,34 +237,34 @@
 
         // Test for type annotations on throws (Throws.java).
         checkOutput("typeannos/ThrDefaultUnmodified.html", true,
-                "<pre>void&nbsp;oneException()\n"
+                "<pre class=\"methodSignature\">void&nbsp;oneException()\n"
                 + "           throws <a href=\"ThrA.html\" title=\""
                 + "annotation in typeannos\">@ThrA</a> java.lang.Exception</pre>",
 
-                "<pre>void&nbsp;twoExceptions()\n"
+                "<pre class=\"methodSignature\">void&nbsp;twoExceptions()\n"
                 + "            throws <a href=\"ThrA.html\" title=\""
                 + "annotation in typeannos\">@ThrA</a> java.lang.RuntimeException,\n"
                 + "                   <a href=\"ThrA.html\" title=\""
                 + "annotation in typeannos\">@ThrA</a> java.lang.Exception</pre>");
 
         checkOutput("typeannos/ThrPublicModified.html", true,
-                "<pre>public final&nbsp;void&nbsp;oneException&#8203;(java.lang.String&nbsp;a)\n"
-                + "                        throws <a href=\"ThrA.html\" "
+                "<pre class=\"methodSignature\">public final&nbsp;void&nbsp;oneException&#8203;"
+                + "(java.lang.String&nbsp;a)\n                        throws <a href=\"ThrA.html\" "
                 + "title=\"annotation in typeannos\">@ThrA</a> java.lang.Exception</pre>",
 
-                "<pre>public final&nbsp;void&nbsp;twoExceptions&#8203;(java.lang.String&nbsp;a)\n"
-                + "                         throws <a href=\"ThrA.html\" "
+                "<pre class=\"methodSignature\">public final&nbsp;void&nbsp;twoExceptions&#8203;"
+                + "(java.lang.String&nbsp;a)\n                         throws <a href=\"ThrA.html\" "
                 + "title=\"annotation in typeannos\">@ThrA</a> java.lang.RuntimeException,\n"
                 + "                                <a href=\"ThrA.html\" "
                 + "title=\"annotation in typeannos\">@ThrA</a> java.lang.Exception</pre>");
 
         checkOutput("typeannos/ThrWithValue.html", true,
-                "<pre>void&nbsp;oneException()\n"
+                "<pre class=\"methodSignature\">void&nbsp;oneException()\n"
                 + "           throws <a href=\"ThrB.html\" title=\""
                 + "annotation in typeannos\">@ThrB</a>("
                 + "\"m\") java.lang.Exception</pre>",
 
-                "<pre>void&nbsp;twoExceptions()\n"
+                "<pre class=\"methodSignature\">void&nbsp;twoExceptions()\n"
                 + "            throws <a href=\"ThrB.html\" title=\""
                 + "annotation in typeannos\">@ThrB</a>("
                 + "\"m\") java.lang.RuntimeException,\n"
@@ -273,32 +273,32 @@
 
         // Test for type annotations on type parameters (TypeParameters.java).
         checkOutput("typeannos/TestMethods.html", true,
-                "<pre>&lt;K,&#8203;<a href=\"TyParaA.html\" title=\"annotation in typeannos\">"
-                + "@TyParaA</a> V extends <a href=\"TyParaA.html\" "
+                "<pre class=\"methodSignature\">&lt;K,&#8203;<a href=\"TyParaA.html\" title="
+                + "\"annotation in typeannos\">@TyParaA</a> V extends <a href=\"TyParaA.html\" "
                 + "title=\"annotation in typeannos\">@TyParaA</a> "
                 + "java.lang.String&gt;&nbsp;void&nbsp;secondAnnotated()</pre>"
         );
 
         // Test for type annotations on wildcard type (Wildcards.java).
         checkOutput("typeannos/BoundTest.html", true,
-                "<pre>void&nbsp;wcExtends&#8203;(<a href=\"MyList.html\" "
+                "<pre class=\"methodSignature\">void&nbsp;wcExtends&#8203;(<a href=\"MyList.html\" "
                 + "title=\"class in typeannos\">MyList</a>&lt;? extends <a href=\""
                 + "WldA.html\" title=\"annotation in typeannos\">@WldA"
                 + "</a> java.lang.String&gt;&nbsp;l)</pre>",
 
-                "<pre><a href=\"MyList.html\" title=\"class in "
+                "<pre class=\"methodSignature\"><a href=\"MyList.html\" title=\"class in "
                 + "typeannos\">MyList</a>&lt;? super <a href=\"WldA.html\" "
                 + "title=\"annotation in typeannos\">@WldA</a> java.lang.String&gt;"
                 + "&nbsp;returnWcSuper()</pre>");
 
         checkOutput("typeannos/BoundWithValue.html", true,
-                "<pre>void&nbsp;wcSuper&#8203;(<a href=\"MyList.html\" title=\""
-                + "class in typeannos\">MyList</a>&lt;? super <a href=\""
+                "<pre class=\"methodSignature\">void&nbsp;wcSuper&#8203;(<a href=\"MyList.html\""
+                + " title=\"class in typeannos\">MyList</a>&lt;? super <a href=\""
                 + "WldB.html\" title=\"annotation in typeannos\">@WldB</a>("
                 + "\"m\") java.lang."
                 + "String&gt;&nbsp;l)</pre>",
 
-                "<pre><a href=\"MyList.html\" title=\"class in "
+                "<pre class=\"methodSignature\"><a href=\"MyList.html\" title=\"class in "
                 + "typeannos\">MyList</a>&lt;? extends <a href=\"WldB."
                 + "html\" title=\"annotation in typeannos\">@WldB</a>("
                 + "\"m\") java.lang.String"
@@ -306,37 +306,37 @@
 
         // Test for receiver annotations (Receivers.java).
         checkOutput("typeannos/DefaultUnmodified.html", true,
-                "<pre>void&nbsp;withException&#8203;(<a href=\"RcvrA.html\" "
+                "<pre class=\"methodSignature\">void&nbsp;withException&#8203;(<a href=\"RcvrA.html\" "
                 + "title=\"annotation in typeannos\">@RcvrA</a>&nbsp;"
                 + "DefaultUnmodified&nbsp;this)\n"
                 + "            throws java."
                 + "lang.Exception</pre>",
 
-                "<pre>java.lang.String&nbsp;nonVoid&#8203;(<a href=\"RcvrA."
+                "<pre class=\"methodSignature\">java.lang.String&nbsp;nonVoid&#8203;(<a href=\"RcvrA."
                 + "html\" title=\"annotation in typeannos\">@RcvrA</a> <a href=\""
                 + "RcvrB.html\" title=\"annotation in typeannos\">@RcvrB"
                 + "</a>(\"m\")"
                 + "&nbsp;DefaultUnmodified&nbsp;this)</pre>",
 
-                "<pre>&lt;T extends java.lang.Runnable&gt;&nbsp;void&nbsp;accept&#8203;("
+                "<pre class=\"methodSignature\">&lt;T extends java.lang.Runnable&gt;&nbsp;void&nbsp;accept&#8203;("
                 + "<a href=\"RcvrA.html\" title=\"annotation in "
                 + "typeannos\">@RcvrA</a>&nbsp;DefaultUnmodified&nbsp;this,\n"
                 + "                                           T&nbsp;r)\n"
                 + "                                    throws java.lang.Exception</pre>");
 
         checkOutput("typeannos/PublicModified.html", true,
-                "<pre>public final&nbsp;java.lang.String&nbsp;nonVoid&#8203;(<a href=\""
-                + "RcvrA.html\" title=\"annotation in typeannos\">"
+                "<pre class=\"methodSignature\">public final&nbsp;java.lang.String&nbsp;nonVoid&#8203;"
+                + "(<a href=\"RcvrA.html\" title=\"annotation in typeannos\">"
                 + "@RcvrA</a>&nbsp;PublicModified&nbsp;this)</pre>",
 
-                "<pre>public final&nbsp;&lt;T extends java.lang.Runnable&gt;&nbsp;"
+                "<pre class=\"methodSignature\">public final&nbsp;&lt;T extends java.lang.Runnable&gt;&nbsp;"
                 + "void&nbsp;accept&#8203;(<a href=\"RcvrA.html\" title=\""
                 + "annotation in typeannos\">@RcvrA</a>&nbsp;PublicModified&nbsp;this,\n"
                 + "                                                        T&nbsp;r)\n"
                 + "                                                 throws java.lang.Exception</pre>");
 
         checkOutput("typeannos/WithValue.html", true,
-                "<pre>&lt;T extends java.lang.Runnable&gt;&nbsp;void&nbsp;accept&#8203;("
+                "<pre class=\"methodSignature\">&lt;T extends java.lang.Runnable&gt;&nbsp;void&nbsp;accept&#8203;("
                 + "<a href=\"RcvrB.html\" title=\"annotation in "
                 + "typeannos\">@RcvrB</a>("
                 + "\"m\")&nbsp;WithValue&nbsp;this,\n"
@@ -344,17 +344,17 @@
                 + "                                    throws java.lang.Exception</pre>");
 
         checkOutput("typeannos/WithFinal.html", true,
-                "<pre>java.lang.String&nbsp;nonVoid&#8203;(<a href=\"RcvrB.html\" "
+                "<pre class=\"methodSignature\">java.lang.String&nbsp;nonVoid&#8203;(<a href=\"RcvrB.html\" "
                 + "title=\"annotation in typeannos\">@RcvrB</a>(\"m\") "
                 + "<a href=\"WithFinal.html\" title=\"class in typeannos\">"
                 + "WithFinal</a>&nbsp;afield)</pre>");
 
         checkOutput("typeannos/WithBody.html", true,
-                "<pre>void&nbsp;field&#8203;(<a href=\"RcvrA.html\" title=\""
+                "<pre class=\"methodSignature\">void&nbsp;field&#8203;(<a href=\"RcvrA.html\" title=\""
                 + "annotation in typeannos\">@RcvrA</a>&nbsp;WithBody&nbsp;this)</pre>");
 
         checkOutput("typeannos/Generic2.html", true,
-                "<pre>void&nbsp;test2&#8203;(<a href=\"RcvrA.html\" title=\""
+                "<pre class=\"methodSignature\">void&nbsp;test2&#8203;(<a href=\"RcvrA.html\" title=\""
                 + "annotation in typeannos\">@RcvrA</a>&nbsp;Generic2&lt;X&gt;&nbsp;this)</pre>");
 
 
--- a/test/langtools/jdk/jshell/CompilerOptionsTest.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/jdk/jshell/CompilerOptionsTest.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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/TryWithResources/WeirdTwr.out	Thu Jul 19 13:49:44 2018 +0530
+++ /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
-WeirdTwr.java:14: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/api/TestGetScopeResult.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/api/TestGetScopeResult.java	Thu Jul 19 10:53:38 2018 -0700
@@ -23,9 +23,12 @@
 
 /*
  * @test
- * @bug 8205418
+ * @bug 8205418 8207229 8207230
  * @summary Test the outcomes from Trees.getScope
- * @modules jdk.compiler
+ * @modules jdk.compiler/com.sun.tools.javac.api
+ *          jdk.compiler/com.sun.tools.javac.comp
+ *          jdk.compiler/com.sun.tools.javac.tree
+ *          jdk.compiler/com.sun.tools.javac.util
  */
 
 import java.io.IOException;
@@ -42,16 +45,26 @@
 import com.sun.source.tree.CompilationUnitTree;
 import com.sun.source.tree.LambdaExpressionTree;
 import com.sun.source.tree.Scope;
+import com.sun.source.tree.VariableTree;
 import com.sun.source.util.JavacTask;
 import com.sun.source.util.TreePath;
 import com.sun.source.util.TreePathScanner;
 import com.sun.source.util.Trees;
 
+import com.sun.tools.javac.api.JavacTool;
+import com.sun.tools.javac.comp.Analyzer;
+import com.sun.tools.javac.comp.AttrContext;
+import com.sun.tools.javac.comp.Env;
+import com.sun.tools.javac.tree.JCTree.JCStatement;
+import com.sun.tools.javac.util.Context;
+import com.sun.tools.javac.util.Context.Factory;
+
 import static javax.tools.JavaFileObject.Kind.SOURCE;
 
 public class TestGetScopeResult {
     public static void main(String... args) throws IOException {
         new TestGetScopeResult().run();
+        new TestGetScopeResult().testAnalyzerDisabled();
     }
 
     public void run() throws IOException {
@@ -109,6 +122,26 @@
         };
         doTest("class Test { void test() { cand1(s -> { }); } void cand1(I1 i) { } void cand1(I2 i, int i) { } interface I1 { public String test(String s); } interface I2 { public int test(CharSequence s); } }",
                multipleCandidates2);
+
+        String[] implicitExplicitConflict1 = {
+            ":t",
+            "s:java.lang.String",
+            "super:java.lang.Object",
+            "this:Test"
+        };
+
+        doTest("class Test { void test() { cand((var s, t) -> \"\"); } void cand(I i) { } interface I { public String test(String s); }  }",
+               implicitExplicitConflict1);
+
+        String[] implicitExplicitConflict2 = {
+            "s:<any>",
+            ":t",
+            "super:java.lang.Object",
+            "this:Test"
+        };
+
+        doTest("class Test { void test() { cand((t, var s) -> \"\"); } void cand(I i) { } interface I { public String test(String s); }  }",
+               implicitExplicitConflict2);
     }
 
     public void doTest(String code, String... expected) throws IOException {
@@ -151,5 +184,79 @@
         }
     }
 
+    void testAnalyzerDisabled() throws IOException {
+        JavacTool c = JavacTool.create();
+        try (StandardJavaFileManager fm = c.getStandardFileManager(null, null, null)) {
+            class MyFileObject extends SimpleJavaFileObject {
+                MyFileObject() {
+                    super(URI.create("myfo:///Test.java"), SOURCE);
+                }
+                @Override
+                public String getCharContent(boolean ignoreEncodingErrors) {
+                    return "class Test {" +
+                           "    void test() { cand(() -> { System.err.println(); }); }" +
+                           "    Runnable r = new Runnable() { public void test() { System.err.println(); } };" +
+                           "    void cand(Runnable r) { }" +
+                           "}";
+                }
+            }
+            Context ctx = new Context();
+            TestAnalyzer.preRegister(ctx);
+            JavacTask t = (JavacTask) c.getTask(null, fm, null, List.of("-XDfind=lambda"), null,
+                                                List.of(new MyFileObject()), ctx);
+            CompilationUnitTree cut = t.parse().iterator().next();
+            t.analyze();
+
+            TestAnalyzer analyzer = (TestAnalyzer) TestAnalyzer.instance(ctx);
+
+            if (!analyzer.analyzeCalled) {
+                throw new IllegalStateException("Analyzer didn't run!");
+            }
+
+            new TreePathScanner<Void, Void>() {
+                @Override
+                public Void visitLambdaExpression(LambdaExpressionTree node, Void p) {
+                    analyzer.analyzeCalled = false;
+                    Trees.instance(t).getScope(new TreePath(getCurrentPath(), node.getBody()));
+                    if (analyzer.analyzeCalled) {
+                        throw new IllegalStateException("Analyzer was run during getScope!");
+                    }
+                    return super.visitLambdaExpression(node, p);
+                }
+
+                @Override
+                public Void visitVariable(VariableTree node, Void p) {
+                    if (node.getInitializer() != null) {
+                        analyzer.analyzeCalled = false;
+                        TreePath tp = new TreePath(getCurrentPath(), node.getInitializer());
+                        Trees.instance(t).getScope(tp);
+                        if (analyzer.analyzeCalled) {
+                            throw new IllegalStateException("Analyzer was run during getScope!");
+                        }
+                    }
+                    return super.visitVariable(node, p);
+                }
+            }.scan(cut, null);
+        }
+    }
+
+    private static final class TestAnalyzer extends Analyzer {
+
+        public static void preRegister(Context context) {
+            context.put(analyzerKey, (Factory<Analyzer>) ctx -> new TestAnalyzer(ctx));
+        }
+
+        private boolean analyzeCalled;
+
+        public TestAnalyzer(Context context) {
+            super(context);
+        }
+
+        @Override
+        protected void analyze(JCStatement statement, Env<AttrContext> env) {
+            analyzeCalled = true;
+            super.analyze(statement, env);
+        }
+    }
 }
 
--- a/test/langtools/tools/javac/conditional/Conditional.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/conditional/Conditional.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/conditional/Conditional.out	Thu Jul 19 10:53:38 2018 -0700
@@ -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/defaultMethodsVisibility/DefaultMethodsNotVisibleForSourceLessThan8Test.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/defaultMethodsVisibility/DefaultMethodsNotVisibleForSourceLessThan8Test.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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/depDocComment/SuppressDeprecation.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/depDocComment/SuppressDeprecation.java	Thu Jul 19 10:53:38 2018 -0700
@@ -5,7 +5,7 @@
  * @author gafter
  *
  * @compile/ref=SuppressDeprecation.out -Xlint:deprecation -XDrawDiagnostics SuppressDeprecation.java
- * @compile/ref=SuppressDeprecation8.out -source 8 -Xlint:deprecation -XDrawDiagnostics SuppressDeprecation.java
+ * @compile/ref=SuppressDeprecation8.out -source 8 -Xlint:deprecation -XDrawDiagnostics -Xlint:-options SuppressDeprecation.java
  */
 
 /* Test for the contexts in which deprecations warnings should
--- a/test/langtools/tools/javac/depDocComment/SuppressDeprecation8.out	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/depDocComment/SuppressDeprecation8.out	Thu Jul 19 10:53:38 2018 -0700
@@ -1,4 +1,3 @@
-- compiler.warn.source.no.bootclasspath: 8
 SuppressDeprecation.java:83:10: compiler.warn.has.been.deprecated: g(), T
 SuppressDeprecation.java:84:14: compiler.warn.has.been.deprecated: g(), T
 SuppressDeprecation.java:85:9: compiler.warn.has.been.deprecated: var, T
@@ -6,4 +5,4 @@
 SuppressDeprecation.java:91:9: compiler.warn.has.been.deprecated: T(int), T
 SuppressDeprecation.java:99:1: compiler.warn.has.been.deprecated: T(), T
 SuppressDeprecation.java:131:17: compiler.warn.has.been.deprecated: X, compiler.misc.unnamed.package
-8 warnings
+7 warnings
--- a/test/langtools/tools/javac/diags/examples.not-yet.txt	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/diags/examples.not-yet.txt	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/diags/examples/AnnotationsAfterTypeParamsNotSupportedInSource.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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/DiamondAndAnonClass.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/diags/examples/DiamondAndAnonClass.java	Thu Jul 19 10:53:38 2018 -0700
@@ -24,8 +24,7 @@
 // key: compiler.misc.feature.not.supported.in.source
 // key: compiler.misc.feature.diamond.and.anon.class
 // key: compiler.err.cant.apply.diamond.1
-// key: compiler.warn.source.no.bootclasspath
-// options: -source 8
+// options: -source 8 -Xlint:-options
 
 import java.util.*;
 
--- a/test/langtools/tools/javac/diags/examples/DiamondNotSupported.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/diags/examples/DiamondNotSupported.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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/DirPathElementNotFound.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/diags/examples/DirPathElementNotFound.java	Thu Jul 19 10:53:38 2018 -0700
@@ -22,8 +22,7 @@
  */
 
 // key: compiler.warn.dir.path.element.not.found
-// key: compiler.warn.source.no.bootclasspath
-// options: -Xlint:path -source 8 -target 8 -extdirs DoesNotExist
+// options: -Xlint:path,-options -source 8 -target 8 -extdirs DoesNotExist
 // run: simple
 
 class DirPathElementNotFound { }
--- a/test/langtools/tools/javac/diags/examples/MethodInvokedWithWrongNumberOfArgs.java	Thu Jul 19 13:49:44 2018 +0530
+++ /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/ModulesNotSupportedInSource/module-info.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/diags/examples/ModulesNotSupportedInSource/module-info.java	Thu Jul 19 10:53:38 2018 -0700
@@ -23,8 +23,7 @@
 
 // key: compiler.err.feature.not.supported.in.source.plural
 // key: compiler.misc.feature.modules
-// key: compiler.warn.source.no.bootclasspath
-// options: -source 8 -Xlint:-path
+// options: -source 8 -Xlint:-path,-options
 
 module ModulesNotSupportedInSource {
 }
--- a/test/langtools/tools/javac/diags/examples/MulticatchNotSupported.java	Thu Jul 19 13:49:44 2018 +0530
+++ /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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/diags/examples/ObsoleteSourceAndTarget.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/diags/examples/ParametersUnsupported.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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/PrivateInterfaceMethodsNotSupported.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/diags/examples/PrivateInterfaceMethodsNotSupported.java	Thu Jul 19 10:53:38 2018 -0700
@@ -23,8 +23,7 @@
 
 // key: compiler.err.feature.not.supported.in.source.plural
 // key: compiler.misc.feature.private.intf.methods
-// key: compiler.warn.source.no.bootclasspath
-// options: -source 8
+// options: -source 8 -Xlint:-options
 
 interface PrivateInterfaceMethodsNotSupported {
     private void foo() {}
--- a/test/langtools/tools/javac/diags/examples/RepeatableAnnotationsNotSupported.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/diags/examples/RepeatableAnnotationsNotSupported.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/diags/examples/SourceNoBootclasspath.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ /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	Thu Jul 19 13:49:44 2018 +0530
+++ /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	Thu Jul 19 13:49:44 2018 +0530
+++ /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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/diags/examples/TypeAnnotationsNotSupported.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ /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	Thu Jul 19 13:49:44 2018 +0530
+++ /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/diags/examples/VarInTryWithResourcesNotSupportedInSource.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/diags/examples/VarInTryWithResourcesNotSupportedInSource.java	Thu Jul 19 10:53:38 2018 -0700
@@ -23,8 +23,7 @@
 
 // key: compiler.err.feature.not.supported.in.source.plural
 // key: compiler.misc.feature.var.in.try.with.resources
-// key: compiler.warn.source.no.bootclasspath
-// options: -source 8
+// options: -source 8 -Xlint:-options
 
 class VarInTryWithResourcesNotSupportedInSource {
     void m() {
--- a/test/langtools/tools/javac/generics/diamond/neg/Neg09a.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/generics/diamond/neg/Neg09a.java	Thu Jul 19 10:53:38 2018 -0700
@@ -4,7 +4,7 @@
  *
  * @summary  Check that diamond is not allowed with anonymous inner class expressions at source < 9
  * @author Maurizio Cimadamore
- * @compile/fail/ref=Neg09a.out Neg09a.java -source 8 -XDrawDiagnostics
+ * @compile/fail/ref=Neg09a.out Neg09a.java -source 8 -XDrawDiagnostics -Xlint:-options
  *
  */
 
--- a/test/langtools/tools/javac/generics/diamond/neg/Neg09a.out	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/generics/diamond/neg/Neg09a.out	Thu Jul 19 10:53:38 2018 -0700
@@ -1,4 +1,2 @@
-- compiler.warn.source.no.bootclasspath: 8
 Neg09a.java:15:34: compiler.err.cant.apply.diamond.1: Neg09a.Member<X>, (compiler.misc.feature.not.supported.in.source: (compiler.misc.feature.diamond.and.anon.class), 8, 9)
 1 error
-1 warning
--- a/test/langtools/tools/javac/generics/diamond/neg/Neg09b.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/generics/diamond/neg/Neg09b.java	Thu Jul 19 10:53:38 2018 -0700
@@ -4,7 +4,7 @@
  *
  * @summary  Check that diamond is not allowed with anonymous inner class expressions at source < 9
  * @author Maurizio Cimadamore
- * @compile/fail/ref=Neg09b.out Neg09b.java -source 8 -XDrawDiagnostics
+ * @compile/fail/ref=Neg09b.out Neg09b.java -source 8 -XDrawDiagnostics -Xlint:-options
  *
  */
 
--- a/test/langtools/tools/javac/generics/diamond/neg/Neg09b.out	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/generics/diamond/neg/Neg09b.out	Thu Jul 19 10:53:38 2018 -0700
@@ -1,4 +1,2 @@
-- compiler.warn.source.no.bootclasspath: 8
 Neg09b.java:16:34: compiler.err.cant.apply.diamond.1: Neg09b.Nested<X>, (compiler.misc.feature.not.supported.in.source: (compiler.misc.feature.diamond.and.anon.class), 8, 9)
 1 error
-1 warning
--- a/test/langtools/tools/javac/generics/diamond/neg/Neg09c.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/generics/diamond/neg/Neg09c.java	Thu Jul 19 10:53:38 2018 -0700
@@ -4,7 +4,7 @@
  *
  * @summary  Check that diamond is not allowed with anonymous inner class expressions at source < 9
  * @author Maurizio Cimadamore
- * @compile/fail/ref=Neg09c.out Neg09c.java -source 8 -XDrawDiagnostics
+ * @compile/fail/ref=Neg09c.out Neg09c.java -source 8 -XDrawDiagnostics -Xlint:-options
  *
  */
 
--- a/test/langtools/tools/javac/generics/diamond/neg/Neg09c.out	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/generics/diamond/neg/Neg09c.out	Thu Jul 19 10:53:38 2018 -0700
@@ -1,4 +1,2 @@
-- compiler.warn.source.no.bootclasspath: 8
 Neg09c.java:15:39: compiler.err.cant.apply.diamond.1: Neg09c.Member<X>, (compiler.misc.feature.not.supported.in.source: (compiler.misc.feature.diamond.and.anon.class), 8, 9)
 1 error
-1 warning
--- a/test/langtools/tools/javac/generics/diamond/neg/Neg09d.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/generics/diamond/neg/Neg09d.java	Thu Jul 19 10:53:38 2018 -0700
@@ -4,7 +4,7 @@
  *
  * @summary  Check that diamond is not allowed with anonymous inner class expressions at source < 9
  * @author Maurizio Cimadamore
- * @compile/fail/ref=Neg09d.out Neg09d.java -source 8 -XDrawDiagnostics
+ * @compile/fail/ref=Neg09d.out Neg09d.java -source 8 -XDrawDiagnostics -Xlint:-options
  *
  */
 
--- a/test/langtools/tools/javac/generics/diamond/neg/Neg09d.out	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/generics/diamond/neg/Neg09d.out	Thu Jul 19 10:53:38 2018 -0700
@@ -1,4 +1,2 @@
-- compiler.warn.source.no.bootclasspath: 8
 Neg09d.java:16:33: compiler.err.doesnt.exist: Neg09
 1 error
-1 warning
--- a/test/langtools/tools/javac/generics/inference/6278587/T6278587Neg.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/generics/inference/6278587/T6278587Neg.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/generics/inference/6278587/T6278587Neg.out	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/generics/odersky/BadTest4.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/generics/odersky/BadTest4.out	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/lambda/SourceLevelTest.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/lambda/SourceLevelTest.out	Thu Jul 19 10:53:38 2018 -0700
@@ -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/modules/AddExportsTest.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/modules/AddExportsTest.java	Thu Jul 19 10:53:38 2018 -0700
@@ -23,6 +23,7 @@
 
 /*
  * @test
+ * @bug 8207032
  * @summary Test the --add-exports option
  * @library /tools/lib
  * @modules jdk.compiler/com.sun.tools.javac.api
@@ -35,6 +36,8 @@
 
 import toolbox.JavacTask;
 import toolbox.Task;
+import toolbox.Task.Expect;
+import toolbox.Task.OutputKind;
 
 public class AddExportsTest extends ModuleTestBase {
 
@@ -74,11 +77,11 @@
                           "package p1; public class C1 { }");
         Path src_m2 = src.resolve("m2x");
         tb.writeJavaFiles(src_m2,
-                          "module m2x { }",
+                          "module m2x { requires m1x; }",
                           "package p2; class C2 { p1.C1 c1; }");
         Path src_m3 = src.resolve("m3x");
         tb.writeJavaFiles(src_m3,
-                          "module m3x { }",
+                          "module m3x { requires m1x; }",
                           "package p3; class C3 { p1.C1 c1; }");
         Path classes = base.resolve("classes");
         tb.createDirectories(classes);
@@ -275,7 +278,7 @@
                           "package p1; public class C1 { }");
         Path src_m2 = src.resolve("m2x");
         tb.writeJavaFiles(src_m2,
-                          "module m2x { }",
+                          "module m2x { requires m1x; }",
                           "package p2; class C2 { p1.C1 c1; }");
         Path classes = base.resolve("classes");
         tb.createDirectories(classes);
@@ -298,7 +301,7 @@
                           "package p1; public class C1 { }");
         Path src_m2 = src.resolve("m2x");
         tb.writeJavaFiles(src_m2,
-                          "module m2x { }",
+                          "module m2x { requires m1x; }",
                           "package p2; class C2 { p1.C1 c1; }");
         Path classes = base.resolve("classes");
         tb.createDirectories(classes);
@@ -322,11 +325,11 @@
                           "package p1; public class C1 { }");
         Path src_m2 = src.resolve("m2x");
         tb.writeJavaFiles(src_m2,
-                          "module m2x { }",
+                          "module m2x { requires m1x; }",
                           "package p2; class C2 { p1.C1 c1; }");
         Path src_m3 = src.resolve("m3x");
         tb.writeJavaFiles(src_m3,
-                          "module m3x { }",
+                          "module m3x { requires m1x; }",
                           "package p3; class C3 { p1.C1 c1; }");
         Path classes = base.resolve("classes");
         tb.createDirectories(classes);
@@ -340,4 +343,89 @@
                 .run()
                 .writeAll();
     }
+
+    @Test
+    public void testNoReads(Path base) throws Exception {
+        Path src = base.resolve("src");
+        Path src_m1 = src.resolve("m1x");
+        tb.writeJavaFiles(src_m1,
+                          "module m1x { }",
+                          "package p1; public class C1 { }");
+        Path src_m2 = src.resolve("m2x");
+        tb.writeJavaFiles(src_m2,
+                          "module m2x { }",
+                          "package p2; class C2 { p1.C1 c1; }");
+        Path classes = base.resolve("classes");
+        tb.createDirectories(classes);
+
+        String log;
+
+        log = new JavacTask(tb)
+                .options("--module-source-path", src.toString(),
+                         "-XDrawDiagnostics")
+                .outdir(classes)
+                .files(findJavaFiles(src))
+                .run(Expect.FAIL)
+                .writeAll()
+                .getOutput(OutputKind.DIRECT);
+
+        checkOutputContains(log,
+            "C2.java:1:24: compiler.err.package.not.visible: p1, (compiler.misc.not.def.access.does.not.read: m2x, p1, m1x)");
+
+        log = new JavacTask(tb)
+                .options("--module-source-path", src.toString(),
+                         "-XDrawDiagnostics",
+                         "--add-exports", "m1x/p1=m2x")
+                .outdir(classes)
+                .files(findJavaFiles(src))
+                .run(Expect.FAIL)
+                .writeAll()
+                .getOutput(OutputKind.DIRECT);
+
+        checkOutputContains(log,
+            "C2.java:1:24: compiler.err.package.not.visible: p1, (compiler.misc.not.def.access.does.not.read: m2x, p1, m1x)");
+
+        Path mp = base.resolve("mp");
+        tb.createDirectories(mp);
+
+        new JavacTask(tb)
+                .options("--module-source-path", src.toString(),
+                         "-XDrawDiagnostics",
+                         "--add-exports", "m1x/p1=m2x",
+                         "--add-reads", "m2x=m1x")
+                .outdir(mp)
+                .files(findJavaFiles(src))
+                .run(Expect.SUCCESS)
+                .writeAll();
+
+        log = new JavacTask(tb)
+                .options("-XDrawDiagnostics",
+                         "--add-exports", "m1x/p1=m2x",
+                         "--add-reads", "m2x=m1x",
+                         "--module-path", mp.toString())
+                .outdir(classes)
+                .files(findJavaFiles(src_m2))
+                .run(Expect.FAIL)
+                .writeAll()
+                .getOutput(OutputKind.DIRECT);
+
+        checkOutputContains(log,
+            "C2.java:1:24: compiler.err.package.not.visible: p1, (compiler.misc.not.def.access.does.not.read: m2x, p1, m1x)");
+        checkOutputContains(log,
+            "- compiler.warn.module.for.option.not.found: --add-reads, m1x");
+        checkOutputContains(log,
+            "- compiler.warn.module.for.option.not.found: --add-exports, m1x");
+
+        new JavacTask(tb)
+                .options("-XDrawDiagnostics",
+                         "--add-exports", "m1x/p1=m2x",
+                         "--add-reads", "m2x=m1x",
+                         "--module-path", mp.toString(),
+                         "--add-modules", "m1x")
+                .outdir(classes)
+                .files(findJavaFiles(src_m2))
+                .run(Expect.SUCCESS)
+                .writeAll()
+                .getOutput(OutputKind.DIRECT);
+    }
 }
--- a/test/langtools/tools/javac/modules/AnnotationProcessing.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/modules/AnnotationProcessing.java	Thu Jul 19 10:53:38 2018 -0700
@@ -23,7 +23,7 @@
 
 /**
  * @test
- * @bug 8133884 8162711 8133896 8172158 8172262 8173636 8175119
+ * @bug 8133884 8162711 8133896 8172158 8172262 8173636 8175119 8189747
  * @summary Verify that annotation processing works.
  * @library /tools/lib
  * @modules
@@ -1389,6 +1389,19 @@
             .run()
             .writeAll();
 
+        //from source:
+        new JavacTask(tb)
+            .options("--module-source-path", moduleSrc.toString(),
+                     "--source-path", src.toString(),
+                     "-processorpath", System.getProperty("test.class.path"),
+                     "-processor", UnboundLookupGenerate.class.getName(),
+                     "-XDrawDiagnostics")
+            .outdir(classes)
+            .files(findJavaFiles(moduleSrc))
+            .run()
+            .writeAll()
+            .getOutput(OutputKind.DIRECT);
+
     }
 
     @SupportedAnnotationTypes("*")
@@ -1486,6 +1499,29 @@
 
     }
 
+    @SupportedAnnotationTypes("*")
+    public static final class UnboundLookupGenerate extends AbstractProcessor {
+
+        @Override
+        public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
+            if (processingEnv.getElementUtils().getTypeElement("nue.Nue") == null) {
+                try (Writer w = processingEnv.getFiler().createSourceFile("m1x/nue.Nue").openWriter()) {
+                    w.write("package nue; public class Nue {}");
+                } catch (IOException ex) {
+                    throw new IllegalStateException(ex);
+                }
+            }
+
+            return false;
+        }
+
+        @Override
+        public SourceVersion getSupportedSourceVersion() {
+            return SourceVersion.latest();
+        }
+
+    }
+
     @Test
     public void testWrongDefaultTargetModule(Path base) throws Exception {
         Path src = base.resolve("src");
--- a/test/langtools/tools/javac/options/modes/SourceTargetTest.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/options/modes/SourceTargetTest.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/options/release/ReleaseOption.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/options/release/ReleaseOptionThroughAPI.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/processing/environment/TestSourceVersion.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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;
--- a/test/langtools/tools/javac/varargs/6313164/T6313164.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/varargs/6313164/T6313164.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/varargs/6313164/T6313164Source7.out	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/varargs/warning/Warn4.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/langtools/tools/javac/versions/Versions.java	Thu Jul 19 10:53:38 2018 -0700
@@ -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
@@ -66,7 +66,7 @@
     }
 
     public static final Set<String> RETIRED_SOURCES =
-        Set.of("1.2", "1.3", "1.4", "1.5" /*, 1.6 */);
+        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");
--- a/test/langtools/tools/javac/warnings/6594914/T6594914b.out	Thu Jul 19 13:49:44 2018 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-- compiler.warn.source.no.bootclasspath: 1.8
-T6594914b.java:12:22: compiler.warn.sun.proprietary: sun.security.x509.X509CertInfo
-T6594914b.java:17:33: compiler.warn.sun.proprietary: sun.security.x509.X509CertInfo
-T6594914b.java:18:22: compiler.warn.sun.proprietary: sun.security.x509.X509CertInfo
-T6594914b.java:19:37: compiler.warn.sun.proprietary: sun.security.x509.CertException
-T6594914b.java:18:56: compiler.warn.sun.proprietary: sun.security.x509.X509CertInfo
-T6594914b.java:27:26: compiler.warn.sun.proprietary: sun.security.x509.X509CertInfo
-- compiler.note.deprecated.filename: T6594914b.java
-- compiler.note.deprecated.recompile
-7 warnings
--- a/test/lib/jdk/test/lib/containers/cgroup/MetricsTester.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/lib/jdk/test/lib/containers/cgroup/MetricsTester.java	Thu Jul 19 10:53:38 2018 -0700
@@ -150,7 +150,7 @@
         try {
             return new Scanner(new File(fname)).useDelimiter("\\Z").next();
         } catch (FileNotFoundException e) {
-            System.err.println("Unale to open : " + fname);
+            System.err.println("Unable to open : " + fname);
             return "";
         }
     }
@@ -428,24 +428,27 @@
                 Arrays.toString(newVal));
         }
 
-
-        oldVal = Arrays.stream(metrics.getEffectiveCpuSetCpus()).boxed().toArray(Integer[]::new);
-        Arrays.sort(oldVal);
+        int [] cpuSets = metrics.getEffectiveCpuSetCpus();
 
-        cpusstr = getFileContents(SubSystem.CPUSET, "cpuset.effective_cpus");
-        newVal = Stream.of(cpusstr.split(",")).flatMap(a -> {
-            if (a.contains("-")) {
-                String[] range = a.split("-");
-                return IntStream.rangeClosed(Integer.parseInt(range[0]),
-                        Integer.parseInt(range[1])).boxed();
-            } else {
-                return Stream.of(Integer.parseInt(a));
+        // Skip this test if this metric is supported on this platform
+        if (cpuSets.length != 0) {
+            oldVal = Arrays.stream(cpuSets).boxed().toArray(Integer[]::new);
+            Arrays.sort(oldVal);
+            cpusstr = getFileContents(SubSystem.CPUSET, "cpuset.effective_cpus");
+            newVal = Stream.of(cpusstr.split(",")).flatMap(a -> {
+                if (a.contains("-")) {
+                    String[] range = a.split("-");
+                    return IntStream.rangeClosed(Integer.parseInt(range[0]),
+                            Integer.parseInt(range[1])).boxed();
+                } else {
+                    return Stream.of(Integer.parseInt(a));
+                }
+            }).toArray(Integer[]::new);
+            Arrays.sort(newVal);
+            if (Arrays.compare(oldVal, newVal) != 0) {
+                fail(SubSystem.CPUSET, "cpuset.effective_cpus", Arrays.toString(oldVal),
+                        Arrays.toString(newVal));
             }
-        }).toArray(Integer[]::new);
-        Arrays.sort(newVal);
-        if (Arrays.compare(oldVal, newVal) != 0) {
-            fail(SubSystem.CPUSET, "cpuset.effective_cpus", Arrays.toString(oldVal),
-                    Arrays.toString(newVal));
         }
 
         oldVal = Arrays.stream(metrics.getCpuSetMems()).boxed().toArray(Integer[]::new);
@@ -466,22 +469,27 @@
                     Arrays.toString(newVal));
         }
 
-        oldVal = Arrays.stream(metrics.getEffectiveCpuSetMems()).boxed().toArray(Integer[]::new);
-        Arrays.sort(oldVal);
-        cpusstr = getFileContents(SubSystem.CPUSET, "cpuset.effective_mems");
-        newVal = Stream.of(cpusstr.split(",")).flatMap(a -> {
-            if (a.contains("-")) {
-                String[] range = a.split("-");
-                return IntStream.rangeClosed(Integer.parseInt(range[0]),
-                        Integer.parseInt(range[1])).boxed();
-            } else {
-                return Stream.of(Integer.parseInt(a));
+        int [] cpuSetMems = metrics.getEffectiveCpuSetMems();
+
+        // Skip this test if this metric is supported on this platform
+        if (cpuSetMems.length != 0) {
+            oldVal = Arrays.stream(cpuSetMems).boxed().toArray(Integer[]::new);
+            Arrays.sort(oldVal);
+            cpusstr = getFileContents(SubSystem.CPUSET, "cpuset.effective_mems");
+            newVal = Stream.of(cpusstr.split(",")).flatMap(a -> {
+                if (a.contains("-")) {
+                    String[] range = a.split("-");
+                    return IntStream.rangeClosed(Integer.parseInt(range[0]),
+                            Integer.parseInt(range[1])).boxed();
+                } else {
+                    return Stream.of(Integer.parseInt(a));
+                }
+            }).toArray(Integer[]::new);
+            Arrays.sort(newVal);
+            if (Arrays.compare(oldVal, newVal) != 0) {
+                fail(SubSystem.CPUSET, "cpuset.effective_mems", Arrays.toString(oldVal),
+                        Arrays.toString(newVal));
             }
-        }).toArray(Integer[]::new);
-        Arrays.sort(newVal);
-        if (Arrays.compare(oldVal, newVal) != 0) {
-            fail(SubSystem.CPUSET, "cpuset.effective_mems", Arrays.toString(oldVal),
-                    Arrays.toString(newVal));
         }
 
         double oldValue = metrics.getCpuSetMemoryPressure();
--- a/test/lib/jdk/test/lib/util/FileUtils.java	Thu Jul 19 13:49:44 2018 +0530
+++ b/test/lib/jdk/test/lib/util/FileUtils.java	Thu Jul 19 10:53:38 2018 -0700
@@ -39,6 +39,7 @@
 import java.nio.file.attribute.BasicFileAttributes;
 import java.time.Instant;
 import java.time.Duration;
+import java.util.Arrays;
 import java.util.ArrayList;
 import java.util.ArrayDeque;
 import java.util.HashSet;
@@ -242,16 +243,15 @@
      * @throws UncheckedIOException if an error occurs
      */
     public static void listFileDescriptors(PrintStream ps) {
-        List<String> lsofDirs = List.of("/usr/bin", "/usr/sbin");
-        Optional<Path> lsof = lsofDirs.stream()
-                .map(s -> Paths.get(s, "lsof"))
-                .filter(f -> Files.isExecutable(f))
+
+        Optional<String[]> lsof = Arrays.stream(lsCommands)
+                .filter(args -> Files.isExecutable(Path.of(args[0])))
                 .findFirst();
-        lsof.ifPresent(exe -> {
+        lsof.ifPresent(args -> {
             try {
                 ps.printf("Open File Descriptors:%n");
                 long pid = ProcessHandle.current().pid();
-                ProcessBuilder pb = new ProcessBuilder(exe.toString(), "-p", Integer.toString((int) pid));
+                ProcessBuilder pb = new ProcessBuilder(args[0], args[1], Integer.toString((int) pid));
                 pb.redirectErrorStream(true);   // combine stderr and stdout
                 pb.redirectOutput(Redirect.PIPE);
 
@@ -273,4 +273,14 @@
             }
         });
     }
+
+    // Possible command locations and arguments
+    static String[][] lsCommands = new String[][] {
+            {"/usr/bin/lsof", "-p"},
+            {"/usr/sbin/lsof", "-p"},
+            {"/bin/lsof", "-p"},
+            {"/sbin/lsof", "-p"},
+            {"/usr/local/bin/lsof", "-p"},
+            {"/usr/bin/pfiles", "-F"},   // Solaris
+    };
 }