changeset 51851:5357d5d9a4bb condy-folding

manual merge with jep-334
author vromero
date Thu, 19 Jul 2018 16:14:56 -0700
parents e1f3672b8dc6 2ba54f0eac90
children 8ba8e64cc9c2
files make/autoconf/spec.gmk.in make/common/MakeBase.gmk make/common/NativeCompilation.gmk make/data/symbols/java.base-6.sym.txt make/data/symbols/java.compiler-6.sym.txt make/data/symbols/java.desktop-6.sym.txt make/data/symbols/java.logging-6.sym.txt make/data/symbols/java.management-6.sym.txt make/data/symbols/java.rmi-6.sym.txt make/data/symbols/java.security.jgss-6.sym.txt make/data/symbols/java.sql-6.sym.txt make/data/symbols/java.sql.rowset-6.sym.txt make/data/symbols/java.xml-6.sym.txt make/data/symbols/java.xml.bind-6.sym.txt make/data/symbols/java.xml.ws-6.sym.txt make/data/symbols/java.xml.ws.annotation-6.sym.txt make/data/symbols/jdk.management-6.sym.txt make/data/symbols/jdk.sctp-6.sym.txt make/data/symbols/jdk.security.jgss-6.sym.txt src/hotspot/cpu/x86/templateTable_x86.cpp src/hotspot/share/classfile/systemDictionary.cpp src/hotspot/share/classfile/verifier.cpp src/hotspot/share/interpreter/bytecodeInterpreter.cpp src/hotspot/share/interpreter/linkResolver.cpp src/hotspot/share/jvmci/jvmciCompilerToVM.cpp src/hotspot/share/prims/jvmtiRedefineClasses.cpp src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Flow.java src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassReader.java src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Gen.java src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Target.java src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties 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/jdk/java/awt/Choice/SelectCurrentItemTest/SelectCurrentItemTest.html test/langtools/tools/javac/TryWithResources/WeirdTwr.out test/langtools/tools/javac/diags/examples.not-yet.txt 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
diffstat 444 files changed, 4780 insertions(+), 5646 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Tue Jul 17 15:23:21 2018 -0700
+++ b/.hgtags	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/make/autoconf/flags-cflags.m4	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/make/autoconf/hotspot.m4	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/make/autoconf/spec.gmk.in	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/make/common/MakeBase.gmk	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/make/common/NativeCompilation.gmk	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,890 +0,0 @@
-#
-# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-# ##########################################################
-# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
-# ##########################################################
-#
-class name java/io/Closeable
-header extends java/lang/Object flags 601
-
-class name java/io/File
--method name toPath descriptor ()Ljava/nio/file/Path;
-
-class name java/io/FileOutputStream
--method name write descriptor (I)V
-method name write descriptor (I)V thrownTypes java/io/IOException flags 101
-
-class name java/io/ObjectInput
-header extends java/lang/Object implements java/io/DataInput flags 601
-
-class name java/io/ObjectOutput
-header extends java/lang/Object implements java/io/DataOutput flags 601
-
-class name java/lang/AssertionError
--method name <init> descriptor (Ljava/lang/String;Ljava/lang/Throwable;)V
-
--class name java/lang/AutoCloseable
-
-class name java/lang/Boolean
--method name compare descriptor (ZZ)I
-
--class name java/lang/BootstrapMethodError
-
-class name java/lang/Byte
--method name compare descriptor (BB)I
-
-class name java/lang/Character
-header extends java/lang/Object implements java/io/Serializable,java/lang/Comparable flags 31 signature Ljava/lang/Object;Ljava/io/Serializable;Ljava/lang/Comparable<Ljava/lang/Character;>;
-innerclass innerClass java/lang/Character$Subset outerClass java/lang/Character innerClassName Subset flags 9
-innerclass innerClass java/lang/Character$UnicodeBlock outerClass java/lang/Character innerClassName UnicodeBlock flags 19
--method name isBmpCodePoint descriptor (I)Z
--method name isSurrogate descriptor (C)Z
--method name highSurrogate descriptor (I)C
--method name lowSurrogate descriptor (I)C
--method name isAlphabetic descriptor (I)Z
--method name isIdeographic descriptor (I)Z
--method name compare descriptor (CC)I
--method name getName descriptor (I)Ljava/lang/String;
-
-class name java/lang/Character$UnicodeBlock
--field name ARABIC_SUPPLEMENT descriptor Ljava/lang/Character$UnicodeBlock;
--field name NKO descriptor Ljava/lang/Character$UnicodeBlock;
--field name SAMARITAN descriptor Ljava/lang/Character$UnicodeBlock;
--field name MANDAIC descriptor Ljava/lang/Character$UnicodeBlock;
--field name ETHIOPIC_SUPPLEMENT descriptor Ljava/lang/Character$UnicodeBlock;
--field name UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED descriptor Ljava/lang/Character$UnicodeBlock;
--field name NEW_TAI_LUE descriptor Ljava/lang/Character$UnicodeBlock;
--field name BUGINESE descriptor Ljava/lang/Character$UnicodeBlock;
--field name TAI_THAM descriptor Ljava/lang/Character$UnicodeBlock;
--field name BALINESE descriptor Ljava/lang/Character$UnicodeBlock;
--field name SUNDANESE descriptor Ljava/lang/Character$UnicodeBlock;
--field name BATAK descriptor Ljava/lang/Character$UnicodeBlock;
--field name LEPCHA descriptor Ljava/lang/Character$UnicodeBlock;
--field name OL_CHIKI descriptor Ljava/lang/Character$UnicodeBlock;
--field name VEDIC_EXTENSIONS descriptor Ljava/lang/Character$UnicodeBlock;
--field name PHONETIC_EXTENSIONS_SUPPLEMENT descriptor Ljava/lang/Character$UnicodeBlock;
--field name COMBINING_DIACRITICAL_MARKS_SUPPLEMENT descriptor Ljava/lang/Character$UnicodeBlock;
--field name GLAGOLITIC descriptor Ljava/lang/Character$UnicodeBlock;
--field name LATIN_EXTENDED_C descriptor Ljava/lang/Character$UnicodeBlock;
--field name COPTIC descriptor Ljava/lang/Character$UnicodeBlock;
--field name GEORGIAN_SUPPLEMENT descriptor Ljava/lang/Character$UnicodeBlock;
--field name TIFINAGH descriptor Ljava/lang/Character$UnicodeBlock;
--field name ETHIOPIC_EXTENDED descriptor Ljava/lang/Character$UnicodeBlock;
--field name CYRILLIC_EXTENDED_A descriptor Ljava/lang/Character$UnicodeBlock;
--field name SUPPLEMENTAL_PUNCTUATION descriptor Ljava/lang/Character$UnicodeBlock;
--field name CJK_STROKES descriptor Ljava/lang/Character$UnicodeBlock;
--field name LISU descriptor Ljava/lang/Character$UnicodeBlock;
--field name VAI descriptor Ljava/lang/Character$UnicodeBlock;
--field name CYRILLIC_EXTENDED_B descriptor Ljava/lang/Character$UnicodeBlock;
--field name BAMUM descriptor Ljava/lang/Character$UnicodeBlock;
--field name MODIFIER_TONE_LETTERS descriptor Ljava/lang/Character$UnicodeBlock;
--field name LATIN_EXTENDED_D descriptor Ljava/lang/Character$UnicodeBlock;
--field name SYLOTI_NAGRI descriptor Ljava/lang/Character$UnicodeBlock;
--field name COMMON_INDIC_NUMBER_FORMS descriptor Ljava/lang/Character$UnicodeBlock;
--field name PHAGS_PA descriptor Ljava/lang/Character$UnicodeBlock;
--field name SAURASHTRA descriptor Ljava/lang/Character$UnicodeBlock;
--field name DEVANAGARI_EXTENDED descriptor Ljava/lang/Character$UnicodeBlock;
--field name KAYAH_LI descriptor Ljava/lang/Character$UnicodeBlock;
--field name REJANG descriptor Ljava/lang/Character$UnicodeBlock;
--field name HANGUL_JAMO_EXTENDED_A descriptor Ljava/lang/Character$UnicodeBlock;
--field name JAVANESE descriptor Ljava/lang/Character$UnicodeBlock;
--field name CHAM descriptor Ljava/lang/Character$UnicodeBlock;
--field name MYANMAR_EXTENDED_A descriptor Ljava/lang/Character$UnicodeBlock;
--field name TAI_VIET descriptor Ljava/lang/Character$UnicodeBlock;
--field name ETHIOPIC_EXTENDED_A descriptor Ljava/lang/Character$UnicodeBlock;
--field name MEETEI_MAYEK descriptor Ljava/lang/Character$UnicodeBlock;
--field name HANGUL_JAMO_EXTENDED_B descriptor Ljava/lang/Character$UnicodeBlock;
--field name VERTICAL_FORMS descriptor Ljava/lang/Character$UnicodeBlock;
--field name ANCIENT_GREEK_NUMBERS descriptor Ljava/lang/Character$UnicodeBlock;
--field name ANCIENT_SYMBOLS descriptor Ljava/lang/Character$UnicodeBlock;
--field name PHAISTOS_DISC descriptor Ljava/lang/Character$UnicodeBlock;
--field name LYCIAN descriptor Ljava/lang/Character$UnicodeBlock;
--field name CARIAN descriptor Ljava/lang/Character$UnicodeBlock;
--field name OLD_PERSIAN descriptor Ljava/lang/Character$UnicodeBlock;
--field name IMPERIAL_ARAMAIC descriptor Ljava/lang/Character$UnicodeBlock;
--field name PHOENICIAN descriptor Ljava/lang/Character$UnicodeBlock;
--field name LYDIAN descriptor Ljava/lang/Character$UnicodeBlock;
--field name KHAROSHTHI descriptor Ljava/lang/Character$UnicodeBlock;
--field name OLD_SOUTH_ARABIAN descriptor Ljava/lang/Character$UnicodeBlock;
--field name AVESTAN descriptor Ljava/lang/Character$UnicodeBlock;
--field name INSCRIPTIONAL_PARTHIAN descriptor Ljava/lang/Character$UnicodeBlock;
--field name INSCRIPTIONAL_PAHLAVI descriptor Ljava/lang/Character$UnicodeBlock;
--field name OLD_TURKIC descriptor Ljava/lang/Character$UnicodeBlock;
--field name RUMI_NUMERAL_SYMBOLS descriptor Ljava/lang/Character$UnicodeBlock;
--field name BRAHMI descriptor Ljava/lang/Character$UnicodeBlock;
--field name KAITHI descriptor Ljava/lang/Character$UnicodeBlock;
--field name CUNEIFORM descriptor Ljava/lang/Character$UnicodeBlock;
--field name CUNEIFORM_NUMBERS_AND_PUNCTUATION descriptor Ljava/lang/Character$UnicodeBlock;
--field name EGYPTIAN_HIEROGLYPHS descriptor Ljava/lang/Character$UnicodeBlock;
--field name BAMUM_SUPPLEMENT descriptor Ljava/lang/Character$UnicodeBlock;
--field name KANA_SUPPLEMENT descriptor Ljava/lang/Character$UnicodeBlock;
--field name ANCIENT_GREEK_MUSICAL_NOTATION descriptor Ljava/lang/Character$UnicodeBlock;
--field name COUNTING_ROD_NUMERALS descriptor Ljava/lang/Character$UnicodeBlock;
--field name MAHJONG_TILES descriptor Ljava/lang/Character$UnicodeBlock;
--field name DOMINO_TILES descriptor Ljava/lang/Character$UnicodeBlock;
--field name PLAYING_CARDS descriptor Ljava/lang/Character$UnicodeBlock;
--field name ENCLOSED_ALPHANUMERIC_SUPPLEMENT descriptor Ljava/lang/Character$UnicodeBlock;
--field name ENCLOSED_IDEOGRAPHIC_SUPPLEMENT descriptor Ljava/lang/Character$UnicodeBlock;
--field name MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS descriptor Ljava/lang/Character$UnicodeBlock;
--field name EMOTICONS descriptor Ljava/lang/Character$UnicodeBlock;
--field name TRANSPORT_AND_MAP_SYMBOLS descriptor Ljava/lang/Character$UnicodeBlock;
--field name ALCHEMICAL_SYMBOLS descriptor Ljava/lang/Character$UnicodeBlock;
--field name CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C descriptor Ljava/lang/Character$UnicodeBlock;
--field name CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D descriptor Ljava/lang/Character$UnicodeBlock;
-
--class name java/lang/Character$UnicodeScript
-
-class name java/lang/ClassLoader
--method name loadClass descriptor (Ljava/lang/String;Z)Ljava/lang/Class;
--method name getClassLoadingLock descriptor (Ljava/lang/String;)Ljava/lang/Object;
--method name setDefaultAssertionStatus descriptor (Z)V
--method name setPackageAssertionStatus descriptor (Ljava/lang/String;Z)V
--method name setClassAssertionStatus descriptor (Ljava/lang/String;Z)V
--method name clearAssertionStatus descriptor ()V
--method name registerAsParallelCapable descriptor ()Z
-method name loadClass descriptor (Ljava/lang/String;Z)Ljava/lang/Class; thrownTypes java/lang/ClassNotFoundException flags 24 signature (Ljava/lang/String;Z)Ljava/lang/Class<*>;
-method name setDefaultAssertionStatus descriptor (Z)V flags 21
-method name setPackageAssertionStatus descriptor (Ljava/lang/String;Z)V flags 21
-method name setClassAssertionStatus descriptor (Ljava/lang/String;Z)V flags 21
-method name clearAssertionStatus descriptor ()V flags 21
-
-class name java/lang/ClassNotFoundException
-header extends java/lang/Exception flags 21
-
--class name java/lang/ClassValue
-
-class name java/lang/Deprecated
-header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljava/lang/annotation/Documented;@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)
-
-class name java/lang/Error
--method name <init> descriptor (Ljava/lang/String;Ljava/lang/Throwable;ZZ)V
-
-class name java/lang/Exception
--method name <init> descriptor (Ljava/lang/String;Ljava/lang/Throwable;ZZ)V
-
-class name java/lang/IllegalAccessException
-header extends java/lang/Exception flags 21
-
-class name java/lang/InstantiationException
-header extends java/lang/Exception flags 21
-
-class name java/lang/Integer
--method name compare descriptor (II)I
-
-class name java/lang/LinkageError
--method name <init> descriptor (Ljava/lang/String;Ljava/lang/Throwable;)V
-
-class name java/lang/Long
--method name compare descriptor (JJ)I
-
-class name java/lang/NoSuchFieldException
-header extends java/lang/Exception flags 21
-
-class name java/lang/NoSuchMethodException
-header extends java/lang/Exception flags 21
-
-class name java/lang/ProcessBuilder
-header extends java/lang/Object flags 31
--method name redirectInput descriptor (Ljava/lang/ProcessBuilder$Redirect;)Ljava/lang/ProcessBuilder;
--method name redirectOutput descriptor (Ljava/lang/ProcessBuilder$Redirect;)Ljava/lang/ProcessBuilder;
--method name redirectError descriptor (Ljava/lang/ProcessBuilder$Redirect;)Ljava/lang/ProcessBuilder;
--method name redirectInput descriptor (Ljava/io/File;)Ljava/lang/ProcessBuilder;
--method name redirectOutput descriptor (Ljava/io/File;)Ljava/lang/ProcessBuilder;
--method name redirectError descriptor (Ljava/io/File;)Ljava/lang/ProcessBuilder;
--method name redirectInput descriptor ()Ljava/lang/ProcessBuilder$Redirect;
--method name redirectOutput descriptor ()Ljava/lang/ProcessBuilder$Redirect;
--method name redirectError descriptor ()Ljava/lang/ProcessBuilder$Redirect;
--method name inheritIO descriptor ()Ljava/lang/ProcessBuilder;
-
--class name java/lang/ProcessBuilder$Redirect
-
--class name java/lang/ProcessBuilder$Redirect$Type
-
--class name java/lang/ReflectiveOperationException
-
-class name java/lang/RuntimeException
--method name <init> descriptor (Ljava/lang/String;Ljava/lang/Throwable;ZZ)V
-
--class name java/lang/SafeVarargs
-
-class name java/lang/Short
--method name compare descriptor (SS)I
-
-class name java/lang/StrictMath
--method name ceil descriptor (D)D
--method name floor descriptor (D)D
-method name ceil descriptor (D)D flags 109
-method name floor descriptor (D)D flags 109
-
-class name java/lang/System
--method name lineSeparator descriptor ()Ljava/lang/String;
-
-class name java/lang/Thread
--method name clone descriptor ()Ljava/lang/Object;
-
-class name java/lang/Throwable
--method name <init> descriptor (Ljava/lang/String;Ljava/lang/Throwable;ZZ)V
--method name getCause descriptor ()Ljava/lang/Throwable;
--method name fillInStackTrace descriptor ()Ljava/lang/Throwable;
--method name addSuppressed descriptor (Ljava/lang/Throwable;)V
--method name getSuppressed descriptor ()[Ljava/lang/Throwable;
-method name getCause descriptor ()Ljava/lang/Throwable; flags 1
-method name fillInStackTrace descriptor ()Ljava/lang/Throwable; flags 121
-
--class name java/lang/invoke/CallSite
-
--class name java/lang/invoke/ConstantCallSite
-
--class name java/lang/invoke/MethodHandle
-
--class name java/lang/invoke/MethodHandleProxies
-
--class name java/lang/invoke/MethodHandles
-
--class name java/lang/invoke/MethodHandles$Lookup
-
--class name java/lang/invoke/MethodType
-
--class name java/lang/invoke/MutableCallSite
-
--class name java/lang/invoke/SwitchPoint
-
--class name java/lang/invoke/VolatileCallSite
-
--class name java/lang/invoke/WrongMethodTypeException
-
-class name java/lang/reflect/InvocationTargetException
-header extends java/lang/Exception flags 21
-
-class name java/lang/reflect/Modifier
--method name classModifiers descriptor ()I
--method name interfaceModifiers descriptor ()I
--method name constructorModifiers descriptor ()I
--method name methodModifiers descriptor ()I
--method name fieldModifiers descriptor ()I
-
-class name java/net/DatagramSocket
-header extends java/lang/Object flags 21
-
-class name java/net/HttpCookie
--method name isHttpOnly descriptor ()Z
--method name setHttpOnly descriptor (Z)V
-
-class name java/net/HttpURLConnection
--field name fixedContentLengthLong descriptor J
--method name setFixedLengthStreamingMode descriptor (J)V
-
-class name java/net/InetAddress
--method name getLoopbackAddress descriptor ()Ljava/net/InetAddress;
-
-class name java/net/InetSocketAddress
--method name getHostString descriptor ()Ljava/lang/String;
-
-class name java/net/NetworkInterface
--method name getIndex descriptor ()I
--method name getByIndex descriptor (I)Ljava/net/NetworkInterface;
-
--class name java/net/ProtocolFamily
-
-class name java/net/ServerSocket
-header extends java/lang/Object flags 21
-
-class name java/net/Socket
-header extends java/lang/Object flags 21
-
--class name java/net/SocketOption
-
--class name java/net/StandardProtocolFamily
-
--class name java/net/StandardSocketOptions
-
-class name java/net/URLClassLoader
-header extends java/security/SecureClassLoader flags 21
--method name getResourceAsStream descriptor (Ljava/lang/String;)Ljava/io/InputStream;
--method name close descriptor ()V
-
-class name java/net/URLConnection
--method name getContentLengthLong descriptor ()J
--method name getHeaderFieldLong descriptor (Ljava/lang/String;J)J
-
-class name java/nio/CharBuffer
--method name subSequence descriptor (II)Ljava/nio/CharBuffer;
--method name subSequence descriptor (II)Ljava/lang/CharSequence;
-method name subSequence descriptor (II)Ljava/lang/CharSequence; flags 401
-
--class name java/nio/channels/AcceptPendingException
-
--class name java/nio/channels/AlreadyBoundException
-
--class name java/nio/channels/AsynchronousByteChannel
-
--class name java/nio/channels/AsynchronousChannel
-
--class name java/nio/channels/AsynchronousChannelGroup
-
--class name java/nio/channels/AsynchronousFileChannel
-
--class name java/nio/channels/AsynchronousServerSocketChannel
-
--class name java/nio/channels/AsynchronousSocketChannel
-
-class name java/nio/channels/Channels
--method name newInputStream descriptor (Ljava/nio/channels/AsynchronousByteChannel;)Ljava/io/InputStream;
--method name newOutputStream descriptor (Ljava/nio/channels/AsynchronousByteChannel;)Ljava/io/OutputStream;
-
--class name java/nio/channels/CompletionHandler
-
-class name java/nio/channels/DatagramChannel
-header extends java/nio/channels/spi/AbstractSelectableChannel implements java/nio/channels/ByteChannel,java/nio/channels/ScatteringByteChannel,java/nio/channels/GatheringByteChannel flags 421
--method name open descriptor (Ljava/net/ProtocolFamily;)Ljava/nio/channels/DatagramChannel;
--method name bind descriptor (Ljava/net/SocketAddress;)Ljava/nio/channels/DatagramChannel;
--method name setOption descriptor (Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/nio/channels/DatagramChannel;
--method name getRemoteAddress descriptor ()Ljava/net/SocketAddress;
--method name setOption descriptor (Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/nio/channels/NetworkChannel;
--method name bind descriptor (Ljava/net/SocketAddress;)Ljava/nio/channels/NetworkChannel;
-
-class name java/nio/channels/FileChannel
-header extends java/nio/channels/spi/AbstractInterruptibleChannel implements java/nio/channels/ByteChannel,java/nio/channels/GatheringByteChannel,java/nio/channels/ScatteringByteChannel flags 421
-innerclass innerClass java/nio/channels/FileChannel$MapMode outerClass java/nio/channels/FileChannel innerClassName MapMode flags 9
--method name open descriptor (Ljava/nio/file/Path;Ljava/util/Set;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/channels/FileChannel;
--method name open descriptor (Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/nio/channels/FileChannel;
--method name truncate descriptor (J)Ljava/nio/channels/SeekableByteChannel;
--method name position descriptor (J)Ljava/nio/channels/SeekableByteChannel;
-
-class name java/nio/channels/FileLock
-header extends java/lang/Object flags 421
--method name <init> descriptor (Ljava/nio/channels/AsynchronousFileChannel;JJZ)V
--method name acquiredBy descriptor ()Ljava/nio/channels/Channel;
--method name close descriptor ()V
-
--class name java/nio/channels/IllegalChannelGroupException
-
--class name java/nio/channels/InterruptedByTimeoutException
-
--class name java/nio/channels/MembershipKey
-
--class name java/nio/channels/MulticastChannel
-
--class name java/nio/channels/NetworkChannel
-
--class name java/nio/channels/ReadPendingException
-
--class name java/nio/channels/SeekableByteChannel
-
-class name java/nio/channels/Selector
-header extends java/lang/Object flags 421
-
-class name java/nio/channels/ServerSocketChannel
-header extends java/nio/channels/spi/AbstractSelectableChannel flags 421
--method name bind descriptor (Ljava/net/SocketAddress;)Ljava/nio/channels/ServerSocketChannel;
--method name bind descriptor (Ljava/net/SocketAddress;I)Ljava/nio/channels/ServerSocketChannel;
--method name setOption descriptor (Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/nio/channels/ServerSocketChannel;
--method name setOption descriptor (Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/nio/channels/NetworkChannel;
--method name bind descriptor (Ljava/net/SocketAddress;)Ljava/nio/channels/NetworkChannel;
-
--class name java/nio/channels/ShutdownChannelGroupException
-
-class name java/nio/channels/SocketChannel
-header extends java/nio/channels/spi/AbstractSelectableChannel implements java/nio/channels/ByteChannel,java/nio/channels/ScatteringByteChannel,java/nio/channels/GatheringByteChannel flags 421
--method name bind descriptor (Ljava/net/SocketAddress;)Ljava/nio/channels/SocketChannel;
--method name setOption descriptor (Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/nio/channels/SocketChannel;
--method name shutdownInput descriptor ()Ljava/nio/channels/SocketChannel;
--method name shutdownOutput descriptor ()Ljava/nio/channels/SocketChannel;
--method name getRemoteAddress descriptor ()Ljava/net/SocketAddress;
--method name setOption descriptor (Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/nio/channels/NetworkChannel;
--method name bind descriptor (Ljava/net/SocketAddress;)Ljava/nio/channels/NetworkChannel;
-
--class name java/nio/channels/WritePendingException
-
--class name java/nio/channels/spi/AsynchronousChannelProvider
-
-class name java/nio/channels/spi/SelectorProvider
--method name openDatagramChannel descriptor (Ljava/net/ProtocolFamily;)Ljava/nio/channels/DatagramChannel;
-
--class name java/nio/charset/StandardCharsets
-
--class name java/nio/file/AccessDeniedException
-
--class name java/nio/file/AccessMode
-
--class name java/nio/file/AtomicMoveNotSupportedException
-
--class name java/nio/file/ClosedDirectoryStreamException
-
--class name java/nio/file/ClosedFileSystemException
-
--class name java/nio/file/ClosedWatchServiceException
-
--class name java/nio/file/CopyOption
-
--class name java/nio/file/DirectoryIteratorException
-
--class name java/nio/file/DirectoryNotEmptyException
-
--class name java/nio/file/DirectoryStream
-
--class name java/nio/file/DirectoryStream$Filter
-
--class name java/nio/file/FileAlreadyExistsException
-
--class name java/nio/file/FileStore
-
--class name java/nio/file/FileSystem
-
--class name java/nio/file/FileSystemAlreadyExistsException
-
--class name java/nio/file/FileSystemException
-
--class name java/nio/file/FileSystemLoopException
-
--class name java/nio/file/FileSystemNotFoundException
-
--class name java/nio/file/FileSystems
-
--class name java/nio/file/FileVisitOption
-
--class name java/nio/file/FileVisitResult
-
--class name java/nio/file/FileVisitor
-
--class name java/nio/file/Files
-
--class name java/nio/file/InvalidPathException
-
--class name java/nio/file/LinkOption
-
--class name java/nio/file/LinkPermission
-
--class name java/nio/file/NoSuchFileException
-
--class name java/nio/file/NotDirectoryException
-
--class name java/nio/file/NotLinkException
-
--class name java/nio/file/OpenOption
-
--class name java/nio/file/Path
-
--class name java/nio/file/PathMatcher
-
--class name java/nio/file/Paths
-
--class name java/nio/file/ProviderMismatchException
-
--class name java/nio/file/ProviderNotFoundException
-
--class name java/nio/file/ReadOnlyFileSystemException
-
--class name java/nio/file/SecureDirectoryStream
-
--class name java/nio/file/SimpleFileVisitor
-
--class name java/nio/file/StandardCopyOption
-
--class name java/nio/file/StandardOpenOption
-
--class name java/nio/file/StandardWatchEventKinds
-
--class name java/nio/file/WatchEvent
-
--class name java/nio/file/WatchEvent$Kind
-
--class name java/nio/file/WatchEvent$Modifier
-
--class name java/nio/file/WatchKey
-
--class name java/nio/file/WatchService
-
--class name java/nio/file/Watchable
-
--class name java/nio/file/attribute/AclEntry
-
--class name java/nio/file/attribute/AclEntry$Builder
-
--class name java/nio/file/attribute/AclEntryFlag
-
--class name java/nio/file/attribute/AclEntryPermission
-
--class name java/nio/file/attribute/AclEntryType
-
--class name java/nio/file/attribute/AclFileAttributeView
-
--class name java/nio/file/attribute/AttributeView
-
--class name java/nio/file/attribute/BasicFileAttributeView
-
--class name java/nio/file/attribute/BasicFileAttributes
-
--class name java/nio/file/attribute/DosFileAttributeView
-
--class name java/nio/file/attribute/DosFileAttributes
-
--class name java/nio/file/attribute/FileAttribute
-
--class name java/nio/file/attribute/FileAttributeView
-
--class name java/nio/file/attribute/FileOwnerAttributeView
-
--class name java/nio/file/attribute/FileStoreAttributeView
-
--class name java/nio/file/attribute/FileTime
-
--class name java/nio/file/attribute/GroupPrincipal
-
--class name java/nio/file/attribute/PosixFileAttributeView
-
--class name java/nio/file/attribute/PosixFileAttributes
-
--class name java/nio/file/attribute/PosixFilePermission
-
--class name java/nio/file/attribute/PosixFilePermissions
-
--class name java/nio/file/attribute/UserDefinedFileAttributeView
-
--class name java/nio/file/attribute/UserPrincipal
-
--class name java/nio/file/attribute/UserPrincipalLookupService
-
--class name java/nio/file/attribute/UserPrincipalNotFoundException
-
--class name java/nio/file/spi/FileSystemProvider
-
--class name java/nio/file/spi/FileTypeDetector
-
--class name java/security/AlgorithmConstraints
-
--class name java/security/CryptoPrimitive
-
--class name java/security/cert/CRLReason
-
-class name java/security/cert/CertPathValidatorException
-header extends java/security/GeneralSecurityException flags 21
--method name <init> descriptor (Ljava/lang/String;Ljava/lang/Throwable;Ljava/security/cert/CertPath;ILjava/security/cert/CertPathValidatorException$Reason;)V
--method name getReason descriptor ()Ljava/security/cert/CertPathValidatorException$Reason;
-
--class name java/security/cert/CertPathValidatorException$BasicReason
-
--class name java/security/cert/CertPathValidatorException$Reason
-
--class name java/security/cert/CertificateRevokedException
-
--class name java/security/cert/Extension
-
--class name java/security/cert/PKIXReason
-
-class name java/security/cert/X509CRLEntry
--method name getRevocationReason descriptor ()Ljava/security/cert/CRLReason;
-
-class name java/util/ArrayList
--method name removeAll descriptor (Ljava/util/Collection;)Z
--method name retainAll descriptor (Ljava/util/Collection;)Z
--method name listIterator descriptor (I)Ljava/util/ListIterator;
--method name listIterator descriptor ()Ljava/util/ListIterator;
--method name iterator descriptor ()Ljava/util/Iterator;
--method name subList descriptor (II)Ljava/util/List;
-
-class name java/util/Arrays
--method name asList descriptor ([Ljava/lang/Object;)Ljava/util/List;
-method name asList descriptor ([Ljava/lang/Object;)Ljava/util/List; flags 89 signature <T:Ljava/lang/Object;>([TT;)Ljava/util/List<TT;>;
-
-class name java/util/BitSet
--method name valueOf descriptor ([J)Ljava/util/BitSet;
--method name valueOf descriptor (Ljava/nio/LongBuffer;)Ljava/util/BitSet;
--method name valueOf descriptor ([B)Ljava/util/BitSet;
--method name valueOf descriptor (Ljava/nio/ByteBuffer;)Ljava/util/BitSet;
--method name toByteArray descriptor ()[B
--method name toLongArray descriptor ()[J
--method name previousSetBit descriptor (I)I
--method name previousClearBit descriptor (I)I
-
-class name java/util/Calendar
--method name isWeekDateSupported descriptor ()Z
--method name getWeekYear descriptor ()I
--method name setWeekDate descriptor (III)V
--method name getWeeksInWeekYear descriptor ()I
-
-class name java/util/Collections
--method name emptyIterator descriptor ()Ljava/util/Iterator;
--method name emptyListIterator descriptor ()Ljava/util/ListIterator;
--method name emptyEnumeration descriptor ()Ljava/util/Enumeration;
--method name addAll descriptor (Ljava/util/Collection;[Ljava/lang/Object;)Z
-method name addAll descriptor (Ljava/util/Collection;[Ljava/lang/Object;)Z flags 89 signature <T:Ljava/lang/Object;>(Ljava/util/Collection<-TT;>;[TT;)Z
-
-class name java/util/ConcurrentModificationException
--method name <init> descriptor (Ljava/lang/Throwable;)V
--method name <init> descriptor (Ljava/lang/String;Ljava/lang/Throwable;)V
-
-class name java/util/Currency
--method name getAvailableCurrencies descriptor ()Ljava/util/Set;
--method name getNumericCode descriptor ()I
--method name getDisplayName descriptor ()Ljava/lang/String;
--method name getDisplayName descriptor (Ljava/util/Locale;)Ljava/lang/String;
-
-class name java/util/EnumMap
--method name hashCode descriptor ()I
-
-class name java/util/EnumSet
--method name of descriptor (Ljava/lang/Enum;[Ljava/lang/Enum;)Ljava/util/EnumSet;
-method name of descriptor (Ljava/lang/Enum;[Ljava/lang/Enum;)Ljava/util/EnumSet; flags 89 signature <E:Ljava/lang/Enum<TE;>;>(TE;[TE;)Ljava/util/EnumSet<TE;>;
-
-class name java/util/EventListenerProxy
-header extends java/lang/Object implements java/util/EventListener flags 421
--method name <init> descriptor (Ljava/util/EventListener;)V
--method name getListener descriptor ()Ljava/util/EventListener;
-method name <init> descriptor (Ljava/util/EventListener;)V flags 1
-method name getListener descriptor ()Ljava/util/EventListener; flags 1
-
-class name java/util/GregorianCalendar
--method name isWeekDateSupported descriptor ()Z
--method name getWeekYear descriptor ()I
--method name setWeekDate descriptor (III)V
--method name getWeeksInWeekYear descriptor ()I
-
--class name java/util/IllformedLocaleException
-
-class name java/util/Locale
-header extends java/lang/Object implements java/lang/Cloneable,java/io/Serializable flags 31
--field name PRIVATE_USE_EXTENSION descriptor C
--field name UNICODE_LOCALE_EXTENSION descriptor C
--method name getDefault descriptor (Ljava/util/Locale$Category;)Ljava/util/Locale;
--method name setDefault descriptor (Ljava/util/Locale$Category;Ljava/util/Locale;)V
--method name getScript descriptor ()Ljava/lang/String;
--method name getExtension descriptor (C)Ljava/lang/String;
--method name getExtensionKeys descriptor ()Ljava/util/Set;
--method name getUnicodeLocaleAttributes descriptor ()Ljava/util/Set;
--method name getUnicodeLocaleType descriptor (Ljava/lang/String;)Ljava/lang/String;
--method name getUnicodeLocaleKeys descriptor ()Ljava/util/Set;
--method name toLanguageTag descriptor ()Ljava/lang/String;
--method name forLanguageTag descriptor (Ljava/lang/String;)Ljava/util/Locale;
--method name getDisplayScript descriptor ()Ljava/lang/String;
--method name getDisplayScript descriptor (Ljava/util/Locale;)Ljava/lang/String;
-
--class name java/util/Locale$Builder
-
--class name java/util/Locale$Category
-
--class name java/util/Objects
-
-class name java/util/Properties
--method name save descriptor (Ljava/io/OutputStream;Ljava/lang/String;)V
--method name storeToXML descriptor (Ljava/io/OutputStream;Ljava/lang/String;)V
--method name storeToXML descriptor (Ljava/io/OutputStream;Ljava/lang/String;Ljava/lang/String;)V
-method name save descriptor (Ljava/io/OutputStream;Ljava/lang/String;)V flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;
-method name storeToXML descriptor (Ljava/io/OutputStream;Ljava/lang/String;)V thrownTypes java/io/IOException flags 21
-method name storeToXML descriptor (Ljava/io/OutputStream;Ljava/lang/String;Ljava/lang/String;)V thrownTypes java/io/IOException flags 21
-
-class name java/util/Scanner
-header extends java/lang/Object implements java/util/Iterator flags 31 signature Ljava/lang/Object;Ljava/util/Iterator<Ljava/lang/String;>;
--method name <init> descriptor (Ljava/nio/file/Path;)V
--method name <init> descriptor (Ljava/nio/file/Path;Ljava/lang/String;)V
-
-class name java/util/SimpleTimeZone
--method name observesDaylightTime descriptor ()Z
-
-class name java/util/TimeZone
--method name observesDaylightTime descriptor ()Z
-
-class name java/util/Vector
--method name listIterator descriptor (I)Ljava/util/ListIterator;
--method name listIterator descriptor ()Ljava/util/ListIterator;
--method name iterator descriptor ()Ljava/util/Iterator;
-
--class name java/util/concurrent/ConcurrentLinkedDeque
-
-class name java/util/concurrent/ConcurrentLinkedQueue
--method name addAll descriptor (Ljava/util/Collection;)Z
-
--class name java/util/concurrent/ForkJoinPool
-
--class name java/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory
-
--class name java/util/concurrent/ForkJoinPool$ManagedBlocker
-
--class name java/util/concurrent/ForkJoinTask
-
--class name java/util/concurrent/ForkJoinWorkerThread
-
-class name java/util/concurrent/LinkedBlockingQueue
--method name contains descriptor (Ljava/lang/Object;)Z
-
--class name java/util/concurrent/LinkedTransferQueue
-
--class name java/util/concurrent/Phaser
-
--class name java/util/concurrent/RecursiveAction
-
--class name java/util/concurrent/RecursiveTask
-
-class name java/util/concurrent/ScheduledThreadPoolExecutor
--method name setRemoveOnCancelPolicy descriptor (Z)V
--method name getRemoveOnCancelPolicy descriptor ()Z
-method name remove descriptor (Ljava/lang/Runnable;)Z flags 1
-
--class name java/util/concurrent/ThreadLocalRandom
-
-class name java/util/concurrent/ThreadPoolExecutor
--method name toString descriptor ()Ljava/lang/String;
-
--class name java/util/concurrent/TransferQueue
-
-class name java/util/concurrent/locks/AbstractQueuedLongSynchronizer
--method name hasQueuedPredecessors descriptor ()Z
-
-class name java/util/concurrent/locks/AbstractQueuedSynchronizer
--method name hasQueuedPredecessors descriptor ()Z
-
-class name java/util/regex/Matcher
--method name group descriptor (Ljava/lang/String;)Ljava/lang/String;
-
-class name java/util/regex/Pattern
--field name UNICODE_CHARACTER_CLASS descriptor I
-
-class name java/util/spi/CurrencyNameProvider
--method name getDisplayName descriptor (Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String;
-
-class name java/util/spi/LocaleNameProvider
--method name getDisplayScript descriptor (Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String;
-
-class name java/util/zip/Deflater
--field name NO_FLUSH descriptor I
--field name SYNC_FLUSH descriptor I
--field name FULL_FLUSH descriptor I
--method name setInput descriptor ([BII)V
--method name setDictionary descriptor ([BII)V
--method name setStrategy descriptor (I)V
--method name setLevel descriptor (I)V
--method name finish descriptor ()V
--method name finished descriptor ()Z
--method name deflate descriptor ([BII)I
--method name deflate descriptor ([BIII)I
--method name getAdler descriptor ()I
--method name getBytesRead descriptor ()J
--method name getBytesWritten descriptor ()J
--method name reset descriptor ()V
--method name end descriptor ()V
-method name setInput descriptor ([BII)V flags 21
-method name setDictionary descriptor ([BII)V flags 21
-method name setStrategy descriptor (I)V flags 21
-method name setLevel descriptor (I)V flags 21
-method name finish descriptor ()V flags 21
-method name finished descriptor ()Z flags 21
-method name deflate descriptor ([BII)I flags 21
-method name getAdler descriptor ()I flags 21
-method name getBytesRead descriptor ()J flags 21
-method name getBytesWritten descriptor ()J flags 21
-method name reset descriptor ()V flags 21
-method name end descriptor ()V flags 21
-
-class name java/util/zip/DeflaterOutputStream
--method name <init> descriptor (Ljava/io/OutputStream;Ljava/util/zip/Deflater;IZ)V
--method name <init> descriptor (Ljava/io/OutputStream;Ljava/util/zip/Deflater;Z)V
--method name <init> descriptor (Ljava/io/OutputStream;Z)V
--method name flush descriptor ()V
-
-class name java/util/zip/GZIPOutputStream
--method name <init> descriptor (Ljava/io/OutputStream;IZ)V
--method name <init> descriptor (Ljava/io/OutputStream;Z)V
-
-class name java/util/zip/Inflater
--method name setInput descriptor ([BII)V
--method name setDictionary descriptor ([BII)V
--method name getRemaining descriptor ()I
--method name needsInput descriptor ()Z
--method name needsDictionary descriptor ()Z
--method name finished descriptor ()Z
--method name inflate descriptor ([BII)I
--method name getAdler descriptor ()I
--method name getBytesRead descriptor ()J
--method name getBytesWritten descriptor ()J
--method name reset descriptor ()V
--method name end descriptor ()V
-method name setInput descriptor ([BII)V flags 21
-method name setDictionary descriptor ([BII)V flags 21
-method name getRemaining descriptor ()I flags 21
-method name needsInput descriptor ()Z flags 21
-method name needsDictionary descriptor ()Z flags 21
-method name finished descriptor ()Z flags 21
-method name inflate descriptor ([BII)I thrownTypes java/util/zip/DataFormatException flags 21
-method name getAdler descriptor ()I flags 21
-method name getBytesRead descriptor ()J flags 21
-method name getBytesWritten descriptor ()J flags 21
-method name reset descriptor ()V flags 21
-method name end descriptor ()V flags 21
-
-class name java/util/zip/ZipFile
-header extends java/lang/Object implements java/util/zip/ZipConstants flags 21
--method name <init> descriptor (Ljava/io/File;ILjava/nio/charset/Charset;)V
--method name <init> descriptor (Ljava/lang/String;Ljava/nio/charset/Charset;)V
--method name <init> descriptor (Ljava/io/File;Ljava/nio/charset/Charset;)V
--method name getComment descriptor ()Ljava/lang/String;
-
-class name java/util/zip/ZipInputStream
--method name <init> descriptor (Ljava/io/InputStream;Ljava/nio/charset/Charset;)V
-
-class name java/util/zip/ZipOutputStream
--method name <init> descriptor (Ljava/io/OutputStream;Ljava/nio/charset/Charset;)V
-
--class name javax/crypto/AEADBadTagException
-
-class name javax/crypto/Cipher
--method name updateAAD descriptor ([B)V
--method name updateAAD descriptor ([BII)V
--method name updateAAD descriptor (Ljava/nio/ByteBuffer;)V
-
-class name javax/crypto/CipherSpi
--method name engineUpdateAAD descriptor ([BII)V
--method name engineUpdateAAD descriptor (Ljava/nio/ByteBuffer;)V
-
--class name javax/crypto/spec/GCMParameterSpec
-
--class name javax/net/ssl/ExtendedSSLSession
-
-class name javax/net/ssl/SSLEngine
--method name getHandshakeSession descriptor ()Ljavax/net/ssl/SSLSession;
-
-class name javax/net/ssl/SSLEngineResult
-header extends java/lang/Object flags 21
-innerclass innerClass javax/net/ssl/SSLEngineResult$HandshakeStatus outerClass javax/net/ssl/SSLEngineResult innerClassName HandshakeStatus flags 4019
-innerclass innerClass javax/net/ssl/SSLEngineResult$Status outerClass javax/net/ssl/SSLEngineResult innerClassName Status flags 4019
-
-class name javax/net/ssl/SSLParameters
--method name getAlgorithmConstraints descriptor ()Ljava/security/AlgorithmConstraints;
--method name setAlgorithmConstraints descriptor (Ljava/security/AlgorithmConstraints;)V
--method name getEndpointIdentificationAlgorithm descriptor ()Ljava/lang/String;
--method name setEndpointIdentificationAlgorithm descriptor (Ljava/lang/String;)V
-
-class name javax/net/ssl/SSLServerSocket
--method name getSSLParameters descriptor ()Ljavax/net/ssl/SSLParameters;
--method name setSSLParameters descriptor (Ljavax/net/ssl/SSLParameters;)V
-
-class name javax/net/ssl/SSLSocket
--method name getHandshakeSession descriptor ()Ljavax/net/ssl/SSLSession;
-
--class name javax/net/ssl/X509ExtendedTrustManager
-
-class name javax/security/auth/login/Configuration
--method name getConfiguration descriptor ()Ljavax/security/auth/login/Configuration;
-method name getConfiguration descriptor ()Ljavax/security/auth/login/Configuration; flags 29
-
--- a/make/data/symbols/java.compiler-6.sym.txt	Tue Jul 17 15:23:21 2018 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-#
-# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-# ##########################################################
-# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
-# ##########################################################
-#
-class name javax/lang/model/SourceVersion
--field name RELEASE_7 descriptor Ljavax/lang/model/SourceVersion;
-
--class name javax/lang/model/UnknownEntityException
-
-class name javax/lang/model/element/ElementKind
--field name RESOURCE_VARIABLE descriptor Ljavax/lang/model/element/ElementKind;
-
-class name javax/lang/model/element/ExecutableElement
-header extends java/lang/Object implements javax/lang/model/element/Element flags 601
--method name getSimpleName descriptor ()Ljavax/lang/model/element/Name;
-
-class name javax/lang/model/element/PackageElement
-header extends java/lang/Object implements javax/lang/model/element/Element flags 601
--method name getSimpleName descriptor ()Ljavax/lang/model/element/Name;
--method name getEnclosingElement descriptor ()Ljavax/lang/model/element/Element;
-
--class name javax/lang/model/element/Parameterizable
-
--class name javax/lang/model/element/QualifiedNameable
-
-class name javax/lang/model/element/TypeElement
-header extends java/lang/Object implements javax/lang/model/element/Element flags 601
--method name getEnclosedElements descriptor ()Ljava/util/List;
--method name getSimpleName descriptor ()Ljavax/lang/model/element/Name;
--method name getEnclosingElement descriptor ()Ljavax/lang/model/element/Element;
-
-class name javax/lang/model/element/TypeParameterElement
--method name getEnclosingElement descriptor ()Ljavax/lang/model/element/Element;
-
-class name javax/lang/model/element/UnknownAnnotationValueException
-header extends java/lang/RuntimeException flags 21
-
-class name javax/lang/model/element/UnknownElementException
-header extends java/lang/RuntimeException flags 21
-
-class name javax/lang/model/type/MirroredTypeException
-header extends java/lang/RuntimeException flags 21
-
-class name javax/lang/model/type/TypeKind
--field name UNION descriptor Ljavax/lang/model/type/TypeKind;
-
-class name javax/lang/model/type/TypeVisitor
--method name visitUnion descriptor (Ljavax/lang/model/type/UnionType;Ljava/lang/Object;)Ljava/lang/Object;
-
--class name javax/lang/model/type/UnionType
-
-class name javax/lang/model/type/UnknownTypeException
-header extends java/lang/RuntimeException flags 21
-
--class name javax/lang/model/util/AbstractAnnotationValueVisitor7
-
--class name javax/lang/model/util/AbstractElementVisitor7
-
-class name javax/lang/model/util/AbstractTypeVisitor6
--method name visitUnion descriptor (Ljavax/lang/model/type/UnionType;Ljava/lang/Object;)Ljava/lang/Object;
-
--class name javax/lang/model/util/AbstractTypeVisitor7
-
-class name javax/lang/model/util/ElementKindVisitor6
--method name visitVariableAsResourceVariable descriptor (Ljavax/lang/model/element/VariableElement;Ljava/lang/Object;)Ljava/lang/Object;
-
--class name javax/lang/model/util/ElementKindVisitor7
-
--class name javax/lang/model/util/ElementScanner7
-
--class name javax/lang/model/util/SimpleAnnotationValueVisitor7
-
--class name javax/lang/model/util/SimpleElementVisitor7
-
--class name javax/lang/model/util/SimpleTypeVisitor7
-
--class name javax/lang/model/util/TypeKindVisitor7
-
--- a/make/data/symbols/java.desktop-6.sym.txt	Tue Jul 17 15:23:21 2018 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1136 +0,0 @@
-#
-# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-# ##########################################################
-# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
-# ##########################################################
-#
-class name java/applet/Applet
--method name isValidateRoot descriptor ()Z
-
-class name java/awt/BasicStroke
--method name <init> descriptor (FIIF[FF)V
-method name <init> descriptor (FIIF[FF)V flags 1
-
-class name java/awt/Color
--method name <init> descriptor (IIII)V
-method name <init> descriptor (IIII)V flags 1
-
-class name java/awt/Component
--method name isVisible descriptor ()Z
--method name getForeground descriptor ()Ljava/awt/Color;
--method name getBackground descriptor ()Ljava/awt/Color;
--method name getFont descriptor ()Ljava/awt/Font;
--method name revalidate descriptor ()V
--method name add descriptor (Ljava/awt/PopupMenu;)V
--method name remove descriptor (Ljava/awt/MenuComponent;)V
--method name addPropertyChangeListener descriptor (Ljava/beans/PropertyChangeListener;)V
--method name removePropertyChangeListener descriptor (Ljava/beans/PropertyChangeListener;)V
--method name getPropertyChangeListeners descriptor ()[Ljava/beans/PropertyChangeListener;
--method name addPropertyChangeListener descriptor (Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V
--method name removePropertyChangeListener descriptor (Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V
--method name getPropertyChangeListeners descriptor (Ljava/lang/String;)[Ljava/beans/PropertyChangeListener;
-method name isVisible descriptor ()Z flags 1
-method name getForeground descriptor ()Ljava/awt/Color; flags 1
-method name getBackground descriptor ()Ljava/awt/Color; flags 1
-method name getFont descriptor ()Ljava/awt/Font; flags 1
-method name add descriptor (Ljava/awt/PopupMenu;)V flags 21
-method name remove descriptor (Ljava/awt/MenuComponent;)V flags 21
-method name addPropertyChangeListener descriptor (Ljava/beans/PropertyChangeListener;)V flags 21
-method name removePropertyChangeListener descriptor (Ljava/beans/PropertyChangeListener;)V flags 21
-method name getPropertyChangeListeners descriptor ()[Ljava/beans/PropertyChangeListener; flags 21
-method name addPropertyChangeListener descriptor (Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V flags 21
-method name removePropertyChangeListener descriptor (Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V flags 21
-method name getPropertyChangeListeners descriptor (Ljava/lang/String;)[Ljava/beans/PropertyChangeListener; flags 21
-
-class name java/awt/Container
--method name isValidateRoot descriptor ()Z
-method name transferFocusBackward descriptor ()V flags 1
-
-class name java/awt/Cursor
--field name predefined descriptor [Ljava/awt/Cursor;
-field name predefined descriptor [Ljava/awt/Cursor; flags c
--method name <init> descriptor (I)V
-method name <init> descriptor (I)V flags 1
-
-class name java/awt/Dialog
--method name setOpacity descriptor (F)V
--method name setShape descriptor (Ljava/awt/Shape;)V
--method name setBackground descriptor (Ljava/awt/Color;)V
-
-class name java/awt/Dimension
--method name getSize descriptor ()Ljava/awt/Dimension;
-method name getSize descriptor ()Ljava/awt/Dimension; flags 1
-
-class name java/awt/EventQueue
--method name peekEvent descriptor ()Ljava/awt/AWTEvent;
--method name peekEvent descriptor (I)Ljava/awt/AWTEvent;
--method name push descriptor (Ljava/awt/EventQueue;)V
--method name createSecondaryLoop descriptor ()Ljava/awt/SecondaryLoop;
-method name peekEvent descriptor ()Ljava/awt/AWTEvent; flags 21
-method name peekEvent descriptor (I)Ljava/awt/AWTEvent; flags 21
-method name push descriptor (Ljava/awt/EventQueue;)V flags 21
-
-class name java/awt/FileDialog
--method name getFiles descriptor ()[Ljava/io/File;
--method name setMultipleMode descriptor (Z)V
--method name isMultipleMode descriptor ()Z
-
-class name java/awt/Font
-method name finalize descriptor ()V thrownTypes java/lang/Throwable flags 4
-
-class name java/awt/Frame
--method name setExtendedState descriptor (I)V
--method name getExtendedState descriptor ()I
--method name setMaximizedBounds descriptor (Ljava/awt/Rectangle;)V
--method name setOpacity descriptor (F)V
--method name setShape descriptor (Ljava/awt/Shape;)V
--method name setBackground descriptor (Ljava/awt/Color;)V
-method name setExtendedState descriptor (I)V flags 21
-method name getExtendedState descriptor ()I flags 21
-method name setMaximizedBounds descriptor (Ljava/awt/Rectangle;)V flags 21
-
-class name java/awt/GradientPaint
--method name <init> descriptor (Ljava/awt/geom/Point2D;Ljava/awt/Color;Ljava/awt/geom/Point2D;Ljava/awt/Color;Z)V
-method name <init> descriptor (Ljava/awt/geom/Point2D;Ljava/awt/Color;Ljava/awt/geom/Point2D;Ljava/awt/Color;Z)V flags 1
-
-class name java/awt/GraphicsConfiguration
--method name createCompatibleImage descriptor (II)Ljava/awt/image/BufferedImage;
--method name isTranslucencyCapable descriptor ()Z
-method name createCompatibleImage descriptor (II)Ljava/awt/image/BufferedImage; flags 401
-
-class name java/awt/GraphicsDevice
-header extends java/lang/Object flags 421
--method name isWindowTranslucencySupported descriptor (Ljava/awt/GraphicsDevice$WindowTranslucency;)Z
-
--class name java/awt/GraphicsDevice$WindowTranslucency
-
-class name java/awt/LinearGradientPaint
--method name <init> descriptor (Ljava/awt/geom/Point2D;Ljava/awt/geom/Point2D;[F[Ljava/awt/Color;Ljava/awt/MultipleGradientPaint$CycleMethod;Ljava/awt/MultipleGradientPaint$ColorSpaceType;Ljava/awt/geom/AffineTransform;)V
-method name <init> descriptor (Ljava/awt/geom/Point2D;Ljava/awt/geom/Point2D;[F[Ljava/awt/Color;Ljava/awt/MultipleGradientPaint$CycleMethod;Ljava/awt/MultipleGradientPaint$ColorSpaceType;Ljava/awt/geom/AffineTransform;)V flags 1
-
-class name java/awt/Point
--method name getLocation descriptor ()Ljava/awt/Point;
-method name getLocation descriptor ()Ljava/awt/Point; flags 1
-
-class name java/awt/RadialGradientPaint
--method name <init> descriptor (Ljava/awt/geom/Point2D;FLjava/awt/geom/Point2D;[F[Ljava/awt/Color;Ljava/awt/MultipleGradientPaint$CycleMethod;Ljava/awt/MultipleGradientPaint$ColorSpaceType;Ljava/awt/geom/AffineTransform;)V
-method name <init> descriptor (Ljava/awt/geom/Point2D;FLjava/awt/geom/Point2D;[F[Ljava/awt/Color;Ljava/awt/MultipleGradientPaint$CycleMethod;Ljava/awt/MultipleGradientPaint$ColorSpaceType;Ljava/awt/geom/AffineTransform;)V flags 1
-
-class name java/awt/Rectangle
--method name getBounds descriptor ()Ljava/awt/Rectangle;
-method name getBounds descriptor ()Ljava/awt/Rectangle; flags 1
-
-class name java/awt/ScrollPane
--method name <init> descriptor (I)V
--method name getScrollPosition descriptor ()Ljava/awt/Point;
-method name <init> descriptor (I)V thrownTypes java/awt/HeadlessException flags 1
-method name getScrollPosition descriptor ()Ljava/awt/Point; flags 1
-
--class name java/awt/SecondaryLoop
-
-class name java/awt/SplashScreen
--method name getSplashScreen descriptor ()Ljava/awt/SplashScreen;
--method name getImageURL descriptor ()Ljava/net/URL;
--method name close descriptor ()V
-method name getSplashScreen descriptor ()Ljava/awt/SplashScreen; flags 29
-method name getImageURL descriptor ()Ljava/net/URL; thrownTypes java/lang/IllegalStateException flags 21
-method name close descriptor ()V thrownTypes java/lang/IllegalStateException flags 21
-
-class name java/awt/SystemColor
-method name getRGB descriptor ()I flags 1
-method name createContext descriptor (Ljava/awt/image/ColorModel;Ljava/awt/Rectangle;Ljava/awt/geom/Rectangle2D;Ljava/awt/geom/AffineTransform;Ljava/awt/RenderingHints;)Ljava/awt/PaintContext; flags 1
-
-class name java/awt/TextField
--method name setColumns descriptor (I)V
-method name setColumns descriptor (I)V flags 21
-
-class name java/awt/Toolkit
--method name addPropertyChangeListener descriptor (Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V
--method name removePropertyChangeListener descriptor (Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V
--method name getPropertyChangeListeners descriptor (Ljava/lang/String;)[Ljava/beans/PropertyChangeListener;
--method name areExtraMouseButtonsEnabled descriptor ()Z
-method name addPropertyChangeListener descriptor (Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V flags 21
-method name removePropertyChangeListener descriptor (Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V flags 21
-method name getPropertyChangeListeners descriptor (Ljava/lang/String;)[Ljava/beans/PropertyChangeListener; flags 21
-
-class name java/awt/Window
-header extends java/awt/Container implements javax/accessibility/Accessible flags 21
-innerclass innerClass java/awt/Window$AccessibleAWTWindow outerClass java/awt/Window innerClassName AccessibleAWTWindow flags 4
-innerclass innerClass java/awt/Dialog$ModalExclusionType outerClass java/awt/Dialog innerClassName ModalExclusionType flags 4019
--method name setLocation descriptor (II)V
--method name setLocation descriptor (Ljava/awt/Point;)V
--method name setAutoRequestFocus descriptor (Z)V
--method name isAutoRequestFocus descriptor ()Z
--method name isValidateRoot descriptor ()Z
--method name setType descriptor (Ljava/awt/Window$Type;)V
--method name getType descriptor ()Ljava/awt/Window$Type;
--method name getOpacity descriptor ()F
--method name setOpacity descriptor (F)V
--method name getShape descriptor ()Ljava/awt/Shape;
--method name setShape descriptor (Ljava/awt/Shape;)V
--method name getBackground descriptor ()Ljava/awt/Color;
--method name setBackground descriptor (Ljava/awt/Color;)V
--method name isOpaque descriptor ()Z
--method name paint descriptor (Ljava/awt/Graphics;)V
-method name getGraphicsConfiguration descriptor ()Ljava/awt/GraphicsConfiguration; flags 1
-
--class name java/awt/Window$Type
-
-class name java/awt/event/AWTEventListenerProxy
-header extends java/util/EventListenerProxy implements java/awt/event/AWTEventListener flags 21
-
-class name java/awt/event/InputEvent
--method name getMaskForButton descriptor (I)I
-
-class name java/awt/event/InvocationEvent
--method name isDispatched descriptor ()Z
-
-class name java/awt/event/KeyEvent
--method name getExtendedKeyCode descriptor ()I
--method name getExtendedKeyCodeForChar descriptor (I)I
-
-class name java/awt/event/MouseEvent
--method name getModifiersEx descriptor ()I
-
-class name java/awt/event/MouseWheelEvent
--method name <init> descriptor (Ljava/awt/Component;IJIIIIIIZIIID)V
--method name getPreciseWheelRotation descriptor ()D
-
-class name java/awt/font/NumericShaper
-header extends java/lang/Object implements java/io/Serializable flags 31
--method name getShaper descriptor (Ljava/awt/font/NumericShaper$Range;)Ljava/awt/font/NumericShaper;
--method name getContextualShaper descriptor (Ljava/util/Set;)Ljava/awt/font/NumericShaper;
--method name getContextualShaper descriptor (Ljava/util/Set;Ljava/awt/font/NumericShaper$Range;)Ljava/awt/font/NumericShaper;
--method name shape descriptor ([CIILjava/awt/font/NumericShaper$Range;)V
--method name getRangeSet descriptor ()Ljava/util/Set;
-
--class name java/awt/font/NumericShaper$Range
-
-class name java/awt/geom/AffineTransform
--method name <init> descriptor (FFFFFF)V
-method name <init> descriptor (FFFFFF)V flags 1
-
-class name java/awt/geom/Arc2D
--method name <init> descriptor ()V
-
-class name java/awt/geom/Path2D
--method name getPathIterator descriptor (Ljava/awt/geom/AffineTransform;D)Ljava/awt/geom/PathIterator;
-method name getPathIterator descriptor (Ljava/awt/geom/AffineTransform;D)Ljava/awt/geom/PathIterator; flags 1
-
-class name java/awt/geom/Path2D$Double
--method name getPathIterator descriptor (Ljava/awt/geom/AffineTransform;)Ljava/awt/geom/PathIterator;
-method name getPathIterator descriptor (Ljava/awt/geom/AffineTransform;)Ljava/awt/geom/PathIterator; flags 1
-
-class name java/awt/geom/Path2D$Float
--method name getPathIterator descriptor (Ljava/awt/geom/AffineTransform;)Ljava/awt/geom/PathIterator;
-method name getPathIterator descriptor (Ljava/awt/geom/AffineTransform;)Ljava/awt/geom/PathIterator; flags 1
-
-class name java/awt/geom/RectangularShape
--method name getFrame descriptor ()Ljava/awt/geom/Rectangle2D;
-method name getFrame descriptor ()Ljava/awt/geom/Rectangle2D; flags 1
-
-class name java/awt/im/InputContext
--method name isCompositionEnabled descriptor ()Z
-method name isCompositionEnabled descriptor ()Z flags 1
-
-class name java/awt/peer/CanvasPeer
--method name getAppropriateGraphicsConfiguration descriptor (Ljava/awt/GraphicsConfiguration;)Ljava/awt/GraphicsConfiguration;
-
-class name java/awt/peer/ChoicePeer
-method name addItem descriptor (Ljava/lang/String;I)V flags 401
-
-class name java/awt/peer/ComponentPeer
--method name flip descriptor (IIIILjava/awt/BufferCapabilities$FlipContents;)V
--method name applyShape descriptor (Lsun/java2d/pipe/Region;)V
--method name setZOrder descriptor (Ljava/awt/peer/ComponentPeer;)V
--method name updateGraphicsData descriptor (Ljava/awt/GraphicsConfiguration;)Z
-method name repaint descriptor (JIIII)V flags 401
-method name flip descriptor (Ljava/awt/BufferCapabilities$FlipContents;)V flags 401
-method name getBounds descriptor ()Ljava/awt/Rectangle; flags 401
-method name preferredSize descriptor ()Ljava/awt/Dimension; flags 401
-method name minimumSize descriptor ()Ljava/awt/Dimension; flags 401
-method name show descriptor ()V flags 401
-method name hide descriptor ()V flags 401
-method name enable descriptor ()V flags 401
-method name disable descriptor ()V flags 401
-method name reshape descriptor (IIII)V flags 401
-
-class name java/awt/peer/ContainerPeer
-method name isPaintPending descriptor ()Z flags 401
-method name restack descriptor ()V flags 401
-method name isRestackSupported descriptor ()Z flags 401
-method name insets descriptor ()Ljava/awt/Insets; flags 401
-
-class name java/awt/peer/DialogPeer
--method name blockWindows descriptor (Ljava/util/List;)V
-
-class name java/awt/peer/KeyboardFocusManagerPeer
-method name setCurrentFocusedWindow descriptor (Ljava/awt/Window;)V flags 401
-
-class name java/awt/peer/ListPeer
-method name addItem descriptor (Ljava/lang/String;I)V flags 401
-method name clear descriptor ()V flags 401
-method name setMultipleSelections descriptor (Z)V flags 401
-method name preferredSize descriptor (I)Ljava/awt/Dimension; flags 401
-method name minimumSize descriptor (I)Ljava/awt/Dimension; flags 401
-
-class name java/awt/peer/MenuItemPeer
-method name enable descriptor ()V flags 401
-method name disable descriptor ()V flags 401
-
-class name java/awt/peer/RobotPeer
--method name dispose descriptor ()V
-
-class name java/awt/peer/TextAreaPeer
-method name insertText descriptor (Ljava/lang/String;I)V flags 401
-method name replaceText descriptor (Ljava/lang/String;II)V flags 401
-method name preferredSize descriptor (II)Ljava/awt/Dimension; flags 401
-method name minimumSize descriptor (II)Ljava/awt/Dimension; flags 401
-
-class name java/awt/peer/TextComponentPeer
-method name getIndexAtPoint descriptor (II)I flags 401
-method name getCharacterBounds descriptor (I)Ljava/awt/Rectangle; flags 401
-method name filterEvents descriptor (J)J flags 401
-
-class name java/awt/peer/TextFieldPeer
-method name setEchoCharacter descriptor (C)V flags 401
-method name preferredSize descriptor (I)Ljava/awt/Dimension; flags 401
-method name minimumSize descriptor (I)Ljava/awt/Dimension; flags 401
-
-class name java/awt/peer/WindowPeer
--method name setOpacity descriptor (F)V
--method name setOpaque descriptor (Z)V
--method name updateWindow descriptor ()V
--method name repositionSecurityWarning descriptor ()V
-method name requestWindowFocus descriptor ()Z flags 401
-
-class name java/beans/EventHandler
--method name <init> descriptor (Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-method name <init> descriptor (Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V flags 1
-
-class name java/beans/Expression
--method name <init> descriptor (Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
--method name execute descriptor ()V
-method name <init> descriptor (Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V flags 1
-
-class name java/beans/FeatureDescriptor
--method name toString descriptor ()Ljava/lang/String;
-
-class name java/beans/Introspector
--method name getBeanInfo descriptor (Ljava/lang/Class;Ljava/lang/Class;I)Ljava/beans/BeanInfo;
--method name getBeanInfoSearchPath descriptor ()[Ljava/lang/String;
--method name setBeanInfoSearchPath descriptor ([Ljava/lang/String;)V
-method name getBeanInfoSearchPath descriptor ()[Ljava/lang/String; flags 29
-method name setBeanInfoSearchPath descriptor ([Ljava/lang/String;)V flags 29
-
-class name java/beans/PropertyChangeEvent
--method name toString descriptor ()Ljava/lang/String;
-
-class name java/beans/PropertyChangeListenerProxy
-header extends java/util/EventListenerProxy implements java/beans/PropertyChangeListener flags 21
-
-class name java/beans/PropertyChangeSupport
--method name addPropertyChangeListener descriptor (Ljava/beans/PropertyChangeListener;)V
--method name removePropertyChangeListener descriptor (Ljava/beans/PropertyChangeListener;)V
--method name getPropertyChangeListeners descriptor ()[Ljava/beans/PropertyChangeListener;
--method name addPropertyChangeListener descriptor (Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V
--method name removePropertyChangeListener descriptor (Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V
--method name getPropertyChangeListeners descriptor (Ljava/lang/String;)[Ljava/beans/PropertyChangeListener;
--method name hasListeners descriptor (Ljava/lang/String;)Z
-method name addPropertyChangeListener descriptor (Ljava/beans/PropertyChangeListener;)V flags 21
-method name removePropertyChangeListener descriptor (Ljava/beans/PropertyChangeListener;)V flags 21
-method name getPropertyChangeListeners descriptor ()[Ljava/beans/PropertyChangeListener; flags 21
-method name addPropertyChangeListener descriptor (Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V flags 21
-method name removePropertyChangeListener descriptor (Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V flags 21
-method name getPropertyChangeListeners descriptor (Ljava/lang/String;)[Ljava/beans/PropertyChangeListener; flags 21
-method name hasListeners descriptor (Ljava/lang/String;)Z flags 21
-
-class name java/beans/PropertyEditorManager
--method name findEditor descriptor (Ljava/lang/Class;)Ljava/beans/PropertyEditor;
--method name getEditorSearchPath descriptor ()[Ljava/lang/String;
--method name setEditorSearchPath descriptor ([Ljava/lang/String;)V
-method name findEditor descriptor (Ljava/lang/Class;)Ljava/beans/PropertyEditor; flags 29 signature (Ljava/lang/Class<*>;)Ljava/beans/PropertyEditor;
-method name getEditorSearchPath descriptor ()[Ljava/lang/String; flags 29
-method name setEditorSearchPath descriptor ([Ljava/lang/String;)V flags 29
-
-class name java/beans/Statement
--method name <init> descriptor (Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
-method name <init> descriptor (Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V flags 1
-
--class name java/beans/Transient
-
-class name java/beans/VetoableChangeListenerProxy
-header extends java/util/EventListenerProxy implements java/beans/VetoableChangeListener flags 21
-
-class name java/beans/VetoableChangeSupport
--method name addVetoableChangeListener descriptor (Ljava/beans/VetoableChangeListener;)V
--method name removeVetoableChangeListener descriptor (Ljava/beans/VetoableChangeListener;)V
--method name getVetoableChangeListeners descriptor ()[Ljava/beans/VetoableChangeListener;
--method name addVetoableChangeListener descriptor (Ljava/lang/String;Ljava/beans/VetoableChangeListener;)V
--method name removeVetoableChangeListener descriptor (Ljava/lang/String;Ljava/beans/VetoableChangeListener;)V
--method name getVetoableChangeListeners descriptor (Ljava/lang/String;)[Ljava/beans/VetoableChangeListener;
--method name hasListeners descriptor (Ljava/lang/String;)Z
-method name addVetoableChangeListener descriptor (Ljava/beans/VetoableChangeListener;)V flags 21
-method name removeVetoableChangeListener descriptor (Ljava/beans/VetoableChangeListener;)V flags 21
-method name getVetoableChangeListeners descriptor ()[Ljava/beans/VetoableChangeListener; flags 21
-method name addVetoableChangeListener descriptor (Ljava/lang/String;Ljava/beans/VetoableChangeListener;)V flags 21
-method name removeVetoableChangeListener descriptor (Ljava/lang/String;Ljava/beans/VetoableChangeListener;)V flags 21
-method name getVetoableChangeListeners descriptor (Ljava/lang/String;)[Ljava/beans/VetoableChangeListener; flags 21
-method name hasListeners descriptor (Ljava/lang/String;)Z flags 21
-
-class name java/beans/XMLDecoder
-header extends java/lang/Object flags 21
--method name <init> descriptor (Lorg/xml/sax/InputSource;)V
--method name createHandler descriptor (Ljava/lang/Object;Ljava/beans/ExceptionListener;Ljava/lang/ClassLoader;)Lorg/xml/sax/helpers/DefaultHandler;
-
-class name java/beans/XMLEncoder
-header extends java/beans/Encoder flags 21
--method name <init> descriptor (Ljava/io/OutputStream;Ljava/lang/String;ZI)V
-
-class name javax/imageio/metadata/IIOMetadataNode
--method name getNodeValue descriptor ()Ljava/lang/String;
--method name setNodeValue descriptor (Ljava/lang/String;)V
--method name getSchemaTypeInfo descriptor ()Lorg/w3c/dom/TypeInfo;
--method name setUserData descriptor (Ljava/lang/String;Ljava/lang/Object;Lorg/w3c/dom/UserDataHandler;)Ljava/lang/Object;
--method name getUserData descriptor (Ljava/lang/String;)Ljava/lang/Object;
--method name getFeature descriptor (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
--method name isSameNode descriptor (Lorg/w3c/dom/Node;)Z
--method name isEqualNode descriptor (Lorg/w3c/dom/Node;)Z
--method name lookupNamespaceURI descriptor (Ljava/lang/String;)Ljava/lang/String;
--method name isDefaultNamespace descriptor (Ljava/lang/String;)Z
--method name lookupPrefix descriptor (Ljava/lang/String;)Ljava/lang/String;
--method name getBaseURI descriptor ()Ljava/lang/String;
-method name getNodeValue descriptor ()Ljava/lang/String; thrownTypes org/w3c/dom/DOMException flags 1
-method name setNodeValue descriptor (Ljava/lang/String;)V thrownTypes org/w3c/dom/DOMException flags 1
-method name getSchemaTypeInfo descriptor ()Lorg/w3c/dom/TypeInfo; flags 1
-method name setUserData descriptor (Ljava/lang/String;Ljava/lang/Object;Lorg/w3c/dom/UserDataHandler;)Ljava/lang/Object; flags 1
-method name getUserData descriptor (Ljava/lang/String;)Ljava/lang/Object; flags 1
-method name getFeature descriptor (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object; flags 1
-method name isSameNode descriptor (Lorg/w3c/dom/Node;)Z flags 1
-method name isEqualNode descriptor (Lorg/w3c/dom/Node;)Z flags 1
-method name lookupNamespaceURI descriptor (Ljava/lang/String;)Ljava/lang/String; flags 1
-method name isDefaultNamespace descriptor (Ljava/lang/String;)Z flags 1
-method name lookupPrefix descriptor (Ljava/lang/String;)Ljava/lang/String; flags 1
-method name getBaseURI descriptor ()Ljava/lang/String; flags 1
-
-class name javax/imageio/spi/ImageReaderSpi
--field name STANDARD_INPUT_TYPE descriptor [Ljava/lang/Class;
-field name STANDARD_INPUT_TYPE descriptor [Ljava/lang/Class; flags 19
-
-class name javax/imageio/spi/ImageWriterSpi
--field name STANDARD_OUTPUT_TYPE descriptor [Ljava/lang/Class;
-field name STANDARD_OUTPUT_TYPE descriptor [Ljava/lang/Class; flags 19
-
-class name javax/imageio/stream/ImageInputStream
-header extends java/lang/Object implements java/io/DataInput flags 601
-
--class name javax/print/attribute/standard/DialogTypeSelection
-
-class name javax/sound/midi/MetaMessage
--method name <init> descriptor (I[BI)V
-
-class name javax/sound/midi/MidiDevice
-header extends java/lang/Object flags 601
-innerclass innerClass javax/sound/midi/MidiDevice$Info outerClass javax/sound/midi/MidiDevice innerClassName Info flags 9
-
--class name javax/sound/midi/MidiDeviceReceiver
-
--class name javax/sound/midi/MidiDeviceTransmitter
-
-class name javax/sound/midi/Receiver
-header extends java/lang/Object flags 601
-
-class name javax/sound/midi/ShortMessage
--method name <init> descriptor (I)V
--method name <init> descriptor (III)V
--method name <init> descriptor (IIII)V
-
-class name javax/sound/midi/SysexMessage
--method name <init> descriptor ([BI)V
--method name <init> descriptor (I[BI)V
-
-class name javax/sound/midi/Transmitter
-header extends java/lang/Object flags 601
-
-class name javax/sound/sampled/AudioFormat$Encoding
--field name PCM_FLOAT descriptor Ljavax/sound/sampled/AudioFormat$Encoding;
-
-class name javax/sound/sampled/Line
-header extends java/lang/Object flags 601
-innerclass innerClass javax/sound/sampled/Line$Info outerClass javax/sound/sampled/Line innerClassName Info flags 9
-innerclass innerClass javax/sound/sampled/Control$Type outerClass javax/sound/sampled/Control innerClassName Type flags 9
-
-class name javax/swing/AbstractButton
--method name getDisabledIcon descriptor ()Ljavax/swing/Icon;
-method name getDisabledIcon descriptor ()Ljavax/swing/Icon; flags 1
-
-class name javax/swing/AbstractListModel
-header extends java/lang/Object implements javax/swing/ListModel,java/io/Serializable flags 421
-
-class name javax/swing/AbstractSpinnerModel
-header extends java/lang/Object implements javax/swing/SpinnerModel flags 421
-
-class name javax/swing/BorderFactory
--method name createLineBorder descriptor (Ljava/awt/Color;IZ)Ljavax/swing/border/Border;
--method name createRaisedSoftBevelBorder descriptor ()Ljavax/swing/border/Border;
--method name createLoweredSoftBevelBorder descriptor ()Ljavax/swing/border/Border;
--method name createSoftBevelBorder descriptor (I)Ljavax/swing/border/Border;
--method name createSoftBevelBorder descriptor (ILjava/awt/Color;Ljava/awt/Color;)Ljavax/swing/border/Border;
--method name createSoftBevelBorder descriptor (ILjava/awt/Color;Ljava/awt/Color;Ljava/awt/Color;Ljava/awt/Color;)Ljavax/swing/border/Border;
--method name createStrokeBorder descriptor (Ljava/awt/BasicStroke;)Ljavax/swing/border/Border;
--method name createStrokeBorder descriptor (Ljava/awt/BasicStroke;Ljava/awt/Paint;)Ljavax/swing/border/Border;
--method name createDashedBorder descriptor (Ljava/awt/Paint;)Ljavax/swing/border/Border;
--method name createDashedBorder descriptor (Ljava/awt/Paint;FF)Ljavax/swing/border/Border;
--method name createDashedBorder descriptor (Ljava/awt/Paint;FFFZ)Ljavax/swing/border/Border;
-
-class name javax/swing/Box$Filler
--method name <init> descriptor (Ljava/awt/Dimension;Ljava/awt/Dimension;Ljava/awt/Dimension;)V
-method name <init> descriptor (Ljava/awt/Dimension;Ljava/awt/Dimension;Ljava/awt/Dimension;)V flags 1
-
-class name javax/swing/BoxLayout
--method name <init> descriptor (Ljava/awt/Container;I)V
-method name <init> descriptor (Ljava/awt/Container;I)V flags 1
-
-class name javax/swing/ComboBoxModel
-header extends java/lang/Object implements javax/swing/ListModel flags 601
-
-class name javax/swing/DefaultCellEditor
--method name <init> descriptor (Ljavax/swing/JTextField;)V
-method name <init> descriptor (Ljavax/swing/JTextField;)V flags 1
-
-class name javax/swing/DefaultComboBoxModel
-header extends javax/swing/AbstractListModel implements javax/swing/MutableComboBoxModel,java/io/Serializable flags 21
--method name <init> descriptor ([Ljava/lang/Object;)V
--method name <init> descriptor (Ljava/util/Vector;)V
--method name getElementAt descriptor (I)Ljava/lang/Object;
--method name addElement descriptor (Ljava/lang/Object;)V
--method name insertElementAt descriptor (Ljava/lang/Object;I)V
-method name <init> descriptor ([Ljava/lang/Object;)V flags 1
-method name <init> descriptor (Ljava/util/Vector;)V flags 1 signature (Ljava/util/Vector<*>;)V
-method name getElementAt descriptor (I)Ljava/lang/Object; flags 1
-method name addElement descriptor (Ljava/lang/Object;)V flags 1
-method name insertElementAt descriptor (Ljava/lang/Object;I)V flags 1
-
-class name javax/swing/DefaultListCellRenderer
-header extends javax/swing/JLabel implements javax/swing/ListCellRenderer,java/io/Serializable flags 21
-innerclass innerClass javax/swing/DefaultListCellRenderer$UIResource outerClass javax/swing/DefaultListCellRenderer innerClassName UIResource flags 9
--method name getListCellRendererComponent descriptor (Ljavax/swing/JList;Ljava/lang/Object;IZZ)Ljava/awt/Component;
-method name getListCellRendererComponent descriptor (Ljavax/swing/JList;Ljava/lang/Object;IZZ)Ljava/awt/Component; flags 1
-
-class name javax/swing/DefaultListModel
-header extends javax/swing/AbstractListModel flags 21
--method name getElementAt descriptor (I)Ljava/lang/Object;
--method name elements descriptor ()Ljava/util/Enumeration;
--method name elementAt descriptor (I)Ljava/lang/Object;
--method name firstElement descriptor ()Ljava/lang/Object;
--method name lastElement descriptor ()Ljava/lang/Object;
--method name setElementAt descriptor (Ljava/lang/Object;I)V
--method name insertElementAt descriptor (Ljava/lang/Object;I)V
--method name addElement descriptor (Ljava/lang/Object;)V
--method name get descriptor (I)Ljava/lang/Object;
--method name set descriptor (ILjava/lang/Object;)Ljava/lang/Object;
--method name add descriptor (ILjava/lang/Object;)V
--method name remove descriptor (I)Ljava/lang/Object;
-method name getElementAt descriptor (I)Ljava/lang/Object; flags 1
-method name elements descriptor ()Ljava/util/Enumeration; flags 1 signature ()Ljava/util/Enumeration<*>;
-method name elementAt descriptor (I)Ljava/lang/Object; flags 1
-method name firstElement descriptor ()Ljava/lang/Object; flags 1
-method name lastElement descriptor ()Ljava/lang/Object; flags 1
-method name setElementAt descriptor (Ljava/lang/Object;I)V flags 1
-method name insertElementAt descriptor (Ljava/lang/Object;I)V flags 1
-method name addElement descriptor (Ljava/lang/Object;)V flags 1
-method name get descriptor (I)Ljava/lang/Object; flags 1
-method name set descriptor (ILjava/lang/Object;)Ljava/lang/Object; flags 1
-method name add descriptor (ILjava/lang/Object;)V flags 1
-method name remove descriptor (I)Ljava/lang/Object; flags 1
-
-class name javax/swing/DefaultListSelectionModel
--method name getAnchorSelectionIndex descriptor ()I
--method name getLeadSelectionIndex descriptor ()I
-method name getAnchorSelectionIndex descriptor ()I flags 1
-method name getLeadSelectionIndex descriptor ()I flags 1
-
-class name javax/swing/ImageIcon
--method name <init> descriptor (Ljava/lang/String;)V
--method name getImage descriptor ()Ljava/awt/Image;
--method name getImageObserver descriptor ()Ljava/awt/image/ImageObserver;
-method name <init> descriptor (Ljava/lang/String;)V flags 1
-method name getImage descriptor ()Ljava/awt/Image; flags 1
-method name getImageObserver descriptor ()Ljava/awt/image/ImageObserver; flags 1
-
-class name javax/swing/JButton
--method name <init> descriptor (Ljava/lang/String;)V
-method name <init> descriptor (Ljava/lang/String;)V flags 1
-
-class name javax/swing/JComboBox
-header extends javax/swing/JComponent implements java/awt/ItemSelectable,javax/swing/event/ListDataListener,java/awt/event/ActionListener,javax/accessibility/Accessible flags 21
-innerclass innerClass javax/swing/JComboBox$KeySelectionManager outerClass javax/swing/JComboBox innerClassName KeySelectionManager flags 609
-innerclass innerClass javax/swing/JComboBox$AccessibleJComboBox outerClass javax/swing/JComboBox innerClassName AccessibleJComboBox flags 4
--field name dataModel descriptor Ljavax/swing/ComboBoxModel;
--field name renderer descriptor Ljavax/swing/ListCellRenderer;
-field name dataModel descriptor Ljavax/swing/ComboBoxModel; flags 4
-field name renderer descriptor Ljavax/swing/ListCellRenderer; flags 4
--method name <init> descriptor (Ljavax/swing/ComboBoxModel;)V
--method name <init> descriptor ([Ljava/lang/Object;)V
--method name <init> descriptor (Ljava/util/Vector;)V
--method name setModel descriptor (Ljavax/swing/ComboBoxModel;)V
--method name getModel descriptor ()Ljavax/swing/ComboBoxModel;
--method name setRenderer descriptor (Ljavax/swing/ListCellRenderer;)V
--method name getRenderer descriptor ()Ljavax/swing/ListCellRenderer;
--method name getSelectedIndex descriptor ()I
--method name getPrototypeDisplayValue descriptor ()Ljava/lang/Object;
--method name setPrototypeDisplayValue descriptor (Ljava/lang/Object;)V
--method name addItem descriptor (Ljava/lang/Object;)V
--method name insertItemAt descriptor (Ljava/lang/Object;I)V
--method name getItemAt descriptor (I)Ljava/lang/Object;
-method name <init> descriptor (Ljavax/swing/ComboBoxModel;)V flags 1
-method name <init> descriptor ([Ljava/lang/Object;)V flags 1
-method name <init> descriptor (Ljava/util/Vector;)V flags 1 signature (Ljava/util/Vector<*>;)V
-method name setModel descriptor (Ljavax/swing/ComboBoxModel;)V flags 1
-method name getModel descriptor ()Ljavax/swing/ComboBoxModel; flags 1
-method name setRenderer descriptor (Ljavax/swing/ListCellRenderer;)V flags 1
-method name getRenderer descriptor ()Ljavax/swing/ListCellRenderer; flags 1
-method name getSelectedIndex descriptor ()I flags 1
-method name getPrototypeDisplayValue descriptor ()Ljava/lang/Object; flags 1
-method name setPrototypeDisplayValue descriptor (Ljava/lang/Object;)V flags 1
-method name addItem descriptor (Ljava/lang/Object;)V flags 1
-method name insertItemAt descriptor (Ljava/lang/Object;I)V flags 1
-method name getItemAt descriptor (I)Ljava/lang/Object; flags 1
-
-class name javax/swing/JComponent
--method name getPreferredSize descriptor ()Ljava/awt/Dimension;
--method name getMaximumSize descriptor ()Ljava/awt/Dimension;
--method name getMinimumSize descriptor ()Ljava/awt/Dimension;
--method name isPaintingOrigin descriptor ()Z
-method name getPreferredSize descriptor ()Ljava/awt/Dimension; flags 1
-method name getMaximumSize descriptor ()Ljava/awt/Dimension; flags 1
-method name getMinimumSize descriptor ()Ljava/awt/Dimension; flags 1
-
-class name javax/swing/JLabel
--method name getDisabledIcon descriptor ()Ljavax/swing/Icon;
-method name getDisabledIcon descriptor ()Ljavax/swing/Icon; flags 1
-
--class name javax/swing/JLayer
-
-class name javax/swing/JList
-header extends javax/swing/JComponent implements javax/swing/Scrollable,javax/accessibility/Accessible flags 21
-innerclass innerClass javax/swing/JList$DropLocation outerClass javax/swing/JList innerClassName DropLocation flags 19
-innerclass innerClass javax/swing/JList$AccessibleJList outerClass javax/swing/JList innerClassName AccessibleJList flags 4
-innerclass innerClass javax/swing/TransferHandler$DropLocation outerClass javax/swing/TransferHandler innerClassName DropLocation flags 9
-innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
--method name <init> descriptor (Ljavax/swing/ListModel;)V
--method name <init> descriptor ([Ljava/lang/Object;)V
--method name <init> descriptor (Ljava/util/Vector;)V
--method name getPrototypeCellValue descriptor ()Ljava/lang/Object;
--method name setPrototypeCellValue descriptor (Ljava/lang/Object;)V
--method name getCellRenderer descriptor ()Ljavax/swing/ListCellRenderer;
--method name setCellRenderer descriptor (Ljavax/swing/ListCellRenderer;)V
--method name getModel descriptor ()Ljavax/swing/ListModel;
--method name setModel descriptor (Ljavax/swing/ListModel;)V
--method name setListData descriptor ([Ljava/lang/Object;)V
--method name setListData descriptor (Ljava/util/Vector;)V
--method name getSelectedIndices descriptor ()[I
--method name getSelectedValues descriptor ()[Ljava/lang/Object;
--method name getSelectedValuesList descriptor ()Ljava/util/List;
--method name getSelectedValue descriptor ()Ljava/lang/Object;
-method name <init> descriptor (Ljavax/swing/ListModel;)V flags 1
-method name <init> descriptor ([Ljava/lang/Object;)V flags 1
-method name <init> descriptor (Ljava/util/Vector;)V flags 1 signature (Ljava/util/Vector<*>;)V
-method name getPrototypeCellValue descriptor ()Ljava/lang/Object; flags 1
-method name setPrototypeCellValue descriptor (Ljava/lang/Object;)V flags 1
-method name getCellRenderer descriptor ()Ljavax/swing/ListCellRenderer; flags 1
-method name setCellRenderer descriptor (Ljavax/swing/ListCellRenderer;)V flags 1
-method name getModel descriptor ()Ljavax/swing/ListModel; flags 1
-method name setModel descriptor (Ljavax/swing/ListModel;)V flags 1
-method name setListData descriptor ([Ljava/lang/Object;)V flags 1
-method name setListData descriptor (Ljava/util/Vector;)V flags 1 signature (Ljava/util/Vector<*>;)V
-method name getSelectedIndices descriptor ()[I flags 1
-method name getSelectedValues descriptor ()[Ljava/lang/Object; flags 1
-method name getSelectedValue descriptor ()Ljava/lang/Object; flags 1
-
-class name javax/swing/JList$AccessibleJList$AccessibleJListChild
--method name <init> descriptor (Ljavax/swing/JList$AccessibleJList;Ljavax/swing/JList;I)V
-method name <init> descriptor (Ljavax/swing/JList$AccessibleJList;Ljavax/swing/JList;I)V flags 1
-
-class name javax/swing/JMenuBar
--method name getHelpMenu descriptor ()Ljavax/swing/JMenu;
-method name getHelpMenu descriptor ()Ljavax/swing/JMenu; flags 1
-
-class name javax/swing/JScrollPane
--method name getHorizontalScrollBar descriptor ()Ljavax/swing/JScrollBar;
--method name getVerticalScrollBar descriptor ()Ljavax/swing/JScrollBar;
--method name getRowHeader descriptor ()Ljavax/swing/JViewport;
--method name getColumnHeader descriptor ()Ljavax/swing/JViewport;
-method name getHorizontalScrollBar descriptor ()Ljavax/swing/JScrollBar; flags 1
-method name getVerticalScrollBar descriptor ()Ljavax/swing/JScrollBar; flags 1
-method name getRowHeader descriptor ()Ljavax/swing/JViewport; flags 1
-method name getColumnHeader descriptor ()Ljavax/swing/JViewport; flags 1
-
-class name javax/swing/JSlider
--method name imageUpdate descriptor (Ljava/awt/Image;IIIII)Z
-
-class name javax/swing/JSplitPane
--method name <init> descriptor (I)V
-method name <init> descriptor (I)V flags 1
-
-class name javax/swing/JTabbedPane
--method name getSelectedIndex descriptor ()I
--method name getSelectedComponent descriptor ()Ljava/awt/Component;
-method name getSelectedIndex descriptor ()I flags 1
-method name getSelectedComponent descriptor ()Ljava/awt/Component; flags 1
-
-class name javax/swing/JTree
--method name <init> descriptor (Ljavax/swing/tree/TreeModel;)V
-method name <init> descriptor (Ljavax/swing/tree/TreeModel;)V flags 1
-
-class name javax/swing/JTree$EmptySelectionModel
--method name setSelectionMode descriptor (I)V
--method name setRowMapper descriptor (Ljavax/swing/tree/RowMapper;)V
--method name addTreeSelectionListener descriptor (Ljavax/swing/event/TreeSelectionListener;)V
--method name removeTreeSelectionListener descriptor (Ljavax/swing/event/TreeSelectionListener;)V
--method name addPropertyChangeListener descriptor (Ljava/beans/PropertyChangeListener;)V
--method name removePropertyChangeListener descriptor (Ljava/beans/PropertyChangeListener;)V
-
-class name javax/swing/JViewport
--method name isPaintingOrigin descriptor ()Z
--method name getExtentSize descriptor ()Ljava/awt/Dimension;
-method name getExtentSize descriptor ()Ljava/awt/Dimension; flags 1
-
-class name javax/swing/ListCellRenderer
-header extends java/lang/Object flags 601
--method name getListCellRendererComponent descriptor (Ljavax/swing/JList;Ljava/lang/Object;IZZ)Ljava/awt/Component;
-method name getListCellRendererComponent descriptor (Ljavax/swing/JList;Ljava/lang/Object;IZZ)Ljava/awt/Component; flags 401
-
-class name javax/swing/ListModel
-header extends java/lang/Object flags 601
--method name getElementAt descriptor (I)Ljava/lang/Object;
-method name getElementAt descriptor (I)Ljava/lang/Object; flags 401
-
-class name javax/swing/MutableComboBoxModel
-header extends java/lang/Object implements javax/swing/ComboBoxModel flags 601
--method name addElement descriptor (Ljava/lang/Object;)V
--method name insertElementAt descriptor (Ljava/lang/Object;I)V
-method name addElement descriptor (Ljava/lang/Object;)V flags 401
-method name insertElementAt descriptor (Ljava/lang/Object;I)V flags 401
-
-class name javax/swing/OverlayLayout
--method name <init> descriptor (Ljava/awt/Container;)V
-method name <init> descriptor (Ljava/awt/Container;)V flags 1
-
--class name javax/swing/Painter
-
-class name javax/swing/SwingUtilities
--method name getUnwrappedParent descriptor (Ljava/awt/Component;)Ljava/awt/Container;
--method name getUnwrappedView descriptor (Ljavax/swing/JViewport;)Ljava/awt/Component;
-
-class name javax/swing/SwingWorker
--method name publish descriptor ([Ljava/lang/Object;)V
-method name publish descriptor ([Ljava/lang/Object;)V flags 94 signature ([TV;)V
-
-class name javax/swing/TransferHandler
--method name setDragImage descriptor (Ljava/awt/Image;)V
--method name getDragImage descriptor ()Ljava/awt/Image;
--method name setDragImageOffset descriptor (Ljava/awt/Point;)V
--method name getDragImageOffset descriptor ()Ljava/awt/Point;
-
-class name javax/swing/border/BevelBorder
--method name <init> descriptor (ILjava/awt/Color;Ljava/awt/Color;Ljava/awt/Color;Ljava/awt/Color;)V
-method name <init> descriptor (ILjava/awt/Color;Ljava/awt/Color;Ljava/awt/Color;Ljava/awt/Color;)V flags 1
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/border/CompoundBorder
--method name <init> descriptor (Ljavax/swing/border/Border;Ljavax/swing/border/Border;)V
-method name <init> descriptor (Ljavax/swing/border/Border;Ljavax/swing/border/Border;)V flags 1
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/border/EmptyBorder
--method name <init> descriptor (Ljava/awt/Insets;)V
-method name <init> descriptor (Ljava/awt/Insets;)V flags 1
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/border/EtchedBorder
--method name <init> descriptor (ILjava/awt/Color;Ljava/awt/Color;)V
-method name <init> descriptor (ILjava/awt/Color;Ljava/awt/Color;)V flags 1
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/border/LineBorder
--method name <init> descriptor (Ljava/awt/Color;IZ)V
-method name <init> descriptor (Ljava/awt/Color;IZ)V flags 1
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/border/MatteBorder
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/border/SoftBevelBorder
--method name <init> descriptor (ILjava/awt/Color;Ljava/awt/Color;Ljava/awt/Color;Ljava/awt/Color;)V
-method name <init> descriptor (ILjava/awt/Color;Ljava/awt/Color;Ljava/awt/Color;Ljava/awt/Color;)V flags 1
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
--class name javax/swing/border/StrokeBorder
-
-class name javax/swing/border/TitledBorder
--method name <init> descriptor (Ljavax/swing/border/Border;Ljava/lang/String;IILjava/awt/Font;Ljava/awt/Color;)V
-method name <init> descriptor (Ljavax/swing/border/Border;Ljava/lang/String;IILjava/awt/Font;Ljava/awt/Color;)V flags 1
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/event/HyperlinkEvent
--method name <init> descriptor (Ljava/lang/Object;Ljavax/swing/event/HyperlinkEvent$EventType;Ljava/net/URL;Ljava/lang/String;Ljavax/swing/text/Element;Ljava/awt/event/InputEvent;)V
--method name getInputEvent descriptor ()Ljava/awt/event/InputEvent;
-
-class name javax/swing/plaf/BorderUIResource$BevelBorderUIResource
--method name <init> descriptor (ILjava/awt/Color;Ljava/awt/Color;Ljava/awt/Color;Ljava/awt/Color;)V
-method name <init> descriptor (ILjava/awt/Color;Ljava/awt/Color;Ljava/awt/Color;Ljava/awt/Color;)V flags 1
-
-class name javax/swing/plaf/BorderUIResource$CompoundBorderUIResource
--method name <init> descriptor (Ljavax/swing/border/Border;Ljavax/swing/border/Border;)V
-method name <init> descriptor (Ljavax/swing/border/Border;Ljavax/swing/border/Border;)V flags 1
-
-class name javax/swing/plaf/BorderUIResource$EmptyBorderUIResource
--method name <init> descriptor (Ljava/awt/Insets;)V
-method name <init> descriptor (Ljava/awt/Insets;)V flags 1
-
-class name javax/swing/plaf/BorderUIResource$EtchedBorderUIResource
--method name <init> descriptor (ILjava/awt/Color;Ljava/awt/Color;)V
-method name <init> descriptor (ILjava/awt/Color;Ljava/awt/Color;)V flags 1
-
-class name javax/swing/plaf/BorderUIResource$LineBorderUIResource
--method name <init> descriptor (Ljava/awt/Color;I)V
-method name <init> descriptor (Ljava/awt/Color;I)V flags 1
-
-class name javax/swing/plaf/BorderUIResource$TitledBorderUIResource
--method name <init> descriptor (Ljavax/swing/border/Border;Ljava/lang/String;IILjava/awt/Font;Ljava/awt/Color;)V
-method name <init> descriptor (Ljavax/swing/border/Border;Ljava/lang/String;IILjava/awt/Font;Ljava/awt/Color;)V flags 1
-
-class name javax/swing/plaf/ColorUIResource
--method name <init> descriptor (III)V
-method name <init> descriptor (III)V flags 1
-
-class name javax/swing/plaf/FileChooserUI
--method name getDefaultButton descriptor (Ljavax/swing/JFileChooser;)Ljavax/swing/JButton;
-
--class name javax/swing/plaf/LayerUI
-
-class name javax/swing/plaf/basic/BasicBorders$ButtonBorder
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/plaf/basic/BasicBorders$FieldBorder
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/plaf/basic/BasicBorders$MarginBorder
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/plaf/basic/BasicBorders$MenuBarBorder
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/plaf/basic/BasicBorders$RadioButtonBorder
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/plaf/basic/BasicBorders$ToggleButtonBorder
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/plaf/basic/BasicColorChooserUI
--method name uninstallPreviewPanel descriptor ()V
-
-class name javax/swing/plaf/basic/BasicComboBoxUI
--field name squareButton descriptor Z
--field name padding descriptor Ljava/awt/Insets;
--method name getSizeForComponent descriptor (Ljava/awt/Component;)Ljava/awt/Dimension;
-
-class name javax/swing/plaf/basic/BasicDirectoryModel
-header extends javax/swing/AbstractListModel implements java/beans/PropertyChangeListener flags 21
-
-class name javax/swing/plaf/basic/BasicFileChooserUI
--field name viewMenuIcon descriptor Ljavax/swing/Icon;
--method name createUI descriptor (Ljavax/swing/JComponent;)Ljavax/swing/plaf/ComponentUI;
--method name getDefaultButton descriptor (Ljavax/swing/JFileChooser;)Ljavax/swing/JButton;
-
-class name javax/swing/plaf/basic/BasicMenuItemUI
--field name acceleratorDelimiter descriptor Ljava/lang/String;
-
-class name javax/swing/plaf/basic/BasicScrollBarUI
--field name scrollBarWidth descriptor I
--field name incrGap descriptor I
--field name decrGap descriptor I
-
-class name javax/swing/plaf/basic/BasicSliderUI
--method name uninstallDefaults descriptor (Ljavax/swing/JSlider;)V
-
-class name javax/swing/plaf/basic/BasicTreeUI
--method name isDropLine descriptor (Ljavax/swing/JTree$DropLocation;)Z
--method name paintDropLine descriptor (Ljava/awt/Graphics;)V
--method name getDropLineRect descriptor (Ljavax/swing/JTree$DropLocation;)Ljava/awt/Rectangle;
--method name updateLeadSelectionRow descriptor ()V
--method name getLeadSelectionRow descriptor ()I
-
-class name javax/swing/plaf/metal/BumpBuffer
-method name getImageSize descriptor ()Ljava/awt/Dimension; flags 1
-
-class name javax/swing/plaf/metal/MetalBorders$ButtonBorder
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/plaf/metal/MetalBorders$Flush3DBorder
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/plaf/metal/MetalBorders$InternalFrameBorder
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/plaf/metal/MetalBorders$MenuBarBorder
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/plaf/metal/MetalBorders$MenuItemBorder
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/plaf/metal/MetalBorders$OptionDialogBorder
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/plaf/metal/MetalBorders$PaletteBorder
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/plaf/metal/MetalBorders$PopupMenuBorder
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/plaf/metal/MetalBorders$ScrollPaneBorder
--method name getBorderInsets descriptor (Ljava/awt/Component;Ljava/awt/Insets;)Ljava/awt/Insets;
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/plaf/metal/MetalBorders$TableHeaderBorder
--method name getBorderInsets descriptor (Ljava/awt/Component;Ljava/awt/Insets;)Ljava/awt/Insets;
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/plaf/metal/MetalBorders$ToolBarBorder
-method name getBorderInsets descriptor (Ljava/awt/Component;)Ljava/awt/Insets; flags 1
-
-class name javax/swing/plaf/metal/MetalBumps
-field name buffers descriptor Ljava/util/Vector; flags c
-method name <init> descriptor (Ljava/awt/Dimension;)V flags 1
-method name <init> descriptor (II)V flags 1
-
-class name javax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxModel
-header extends javax/swing/AbstractListModel implements javax/swing/ComboBoxModel flags 21
-innerclass innerClass javax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxModel outerClass javax/swing/plaf/metal/MetalFileChooserUI innerClassName DirectoryComboBoxModel flags 4
-
-class name javax/swing/plaf/metal/MetalFileChooserUI$FilterComboBoxModel
-header extends javax/swing/AbstractListModel implements javax/swing/ComboBoxModel,java/beans/PropertyChangeListener flags 21
-innerclass innerClass javax/swing/plaf/metal/MetalFileChooserUI$FilterComboBoxModel outerClass javax/swing/plaf/metal/MetalFileChooserUI innerClassName FilterComboBoxModel flags 4
-
-class name javax/swing/plaf/metal/MetalScrollPaneUI
--method name uninstallListeners descriptor (Ljavax/swing/JComponent;)V
--method name uninstallListeners descriptor (Ljavax/swing/JScrollPane;)V
-method name uninstallListeners descriptor (Ljavax/swing/JScrollPane;)V flags 1
-
--class name javax/swing/plaf/nimbus/AbstractRegionPainter
-
--class name javax/swing/plaf/nimbus/AbstractRegionPainter$PaintContext
-
--class name javax/swing/plaf/nimbus/AbstractRegionPainter$PaintContext$CacheMode
-
--class name javax/swing/plaf/nimbus/NimbusLookAndFeel
-
--class name javax/swing/plaf/nimbus/NimbusStyle
-
--class name javax/swing/plaf/nimbus/State
-
--class name javax/swing/plaf/synth/SynthButtonUI
-
--class name javax/swing/plaf/synth/SynthCheckBoxMenuItemUI
-
--class name javax/swing/plaf/synth/SynthCheckBoxUI
-
--class name javax/swing/plaf/synth/SynthColorChooserUI
-
--class name javax/swing/plaf/synth/SynthComboBoxUI
-
--class name javax/swing/plaf/synth/SynthDesktopIconUI
-
--class name javax/swing/plaf/synth/SynthDesktopPaneUI
-
--class name javax/swing/plaf/synth/SynthEditorPaneUI
-
--class name javax/swing/plaf/synth/SynthFormattedTextFieldUI
-
--class name javax/swing/plaf/synth/SynthInternalFrameUI
-
--class name javax/swing/plaf/synth/SynthLabelUI
-
--class name javax/swing/plaf/synth/SynthListUI
-
-class name javax/swing/plaf/synth/SynthLookAndFeel
--method name shouldUpdateStyleOnEvent descriptor (Ljava/beans/PropertyChangeEvent;)Z
-
--class name javax/swing/plaf/synth/SynthMenuBarUI
-
--class name javax/swing/plaf/synth/SynthMenuItemUI
-
--class name javax/swing/plaf/synth/SynthMenuUI
-
--class name javax/swing/plaf/synth/SynthOptionPaneUI
-
--class name javax/swing/plaf/synth/SynthPanelUI
-
--class name javax/swing/plaf/synth/SynthPasswordFieldUI
-
--class name javax/swing/plaf/synth/SynthPopupMenuUI
-
--class name javax/swing/plaf/synth/SynthProgressBarUI
-
--class name javax/swing/plaf/synth/SynthRadioButtonMenuItemUI
-
--class name javax/swing/plaf/synth/SynthRadioButtonUI
-
--class name javax/swing/plaf/synth/SynthRootPaneUI
-
--class name javax/swing/plaf/synth/SynthScrollBarUI
-
--class name javax/swing/plaf/synth/SynthScrollPaneUI
-
--class name javax/swing/plaf/synth/SynthSeparatorUI
-
--class name javax/swing/plaf/synth/SynthSliderUI
-
--class name javax/swing/plaf/synth/SynthSpinnerUI
-
--class name javax/swing/plaf/synth/SynthSplitPaneUI
-
--class name javax/swing/plaf/synth/SynthTabbedPaneUI
-
--class name javax/swing/plaf/synth/SynthTableHeaderUI
-
--class name javax/swing/plaf/synth/SynthTableUI
-
--class name javax/swing/plaf/synth/SynthTextAreaUI
-
--class name javax/swing/plaf/synth/SynthTextFieldUI
-
--class name javax/swing/plaf/synth/SynthTextPaneUI
-
--class name javax/swing/plaf/synth/SynthToggleButtonUI
-
--class name javax/swing/plaf/synth/SynthToolBarUI
-
--class name javax/swing/plaf/synth/SynthToolTipUI
-
--class name javax/swing/plaf/synth/SynthTreeUI
-
--class name javax/swing/plaf/synth/SynthUI
-
--class name javax/swing/plaf/synth/SynthViewportUI
-
-class name javax/swing/table/JTableHeader
--method name getDefaultRenderer descriptor ()Ljavax/swing/table/TableCellRenderer;
-method name getDefaultRenderer descriptor ()Ljavax/swing/table/TableCellRenderer; flags 1
-
-class name javax/swing/text/AbstractDocument$DefaultDocumentEvent
-header extends javax/swing/undo/CompoundEdit implements javax/swing/event/DocumentEvent flags 21
-innerclass innerClass javax/swing/event/DocumentEvent$EventType outerClass javax/swing/event/DocumentEvent innerClassName EventType flags 19
-innerclass innerClass javax/swing/event/DocumentEvent$ElementChange outerClass javax/swing/event/DocumentEvent innerClassName ElementChange flags 609
-innerclass innerClass javax/swing/text/AbstractDocument$DefaultDocumentEvent outerClass javax/swing/text/AbstractDocument innerClassName DefaultDocumentEvent flags 1
-
-class name javax/swing/text/DefaultStyledDocument
--method name removeElement descriptor (Ljavax/swing/text/Element;)V
-
-class name javax/swing/text/GlyphView
--method name getMinimumSpan descriptor (I)F
-
-class name javax/swing/text/JTextComponent
--method name getCaret descriptor ()Ljavax/swing/text/Caret;
--method name getCaretPosition descriptor ()I
--method name getSelectionStart descriptor ()I
--method name getSelectionEnd descriptor ()I
--method name saveComposedText descriptor (I)Z
--method name restoreComposedText descriptor ()V
-method name getCaret descriptor ()Ljavax/swing/text/Caret; flags 1
-method name getCaretPosition descriptor ()I flags 1
-method name getSelectionStart descriptor ()I flags 1
-method name getSelectionEnd descriptor ()I flags 1
-
-class name javax/swing/text/ParagraphView
-header extends javax/swing/text/FlowView implements javax/swing/text/TabExpander flags 21
-innerclass innerClass javax/swing/text/ParagraphView$Row outerClass javax/swing/text/ParagraphView innerClassName Row flags 0
-innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
--method name calculateMinorAxisRequirements descriptor (ILjavax/swing/SizeRequirements;)Ljavax/swing/SizeRequirements;
-method name adjustRow descriptor (Ljavax/swing/text/ParagraphView$Row;II)V flags 4
-
-class name javax/swing/text/ParagraphView$Row
-header extends javax/swing/text/BoxView flags 20
-innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
-innerclass innerClass javax/swing/text/ParagraphView$Row outerClass javax/swing/text/ParagraphView innerClassName Row flags 0
-method name loadChildren descriptor (Ljavax/swing/text/ViewFactory;)V flags 4
-method name getAttributes descriptor ()Ljavax/swing/text/AttributeSet; flags 1
-method name getAlignment descriptor (I)F flags 1
-method name modelToView descriptor (ILjava/awt/Shape;Ljavax/swing/text/Position$Bias;)Ljava/awt/Shape; thrownTypes javax/swing/text/BadLocationException flags 1
-method name getStartOffset descriptor ()I flags 1
-method name getEndOffset descriptor ()I flags 1
-method name layoutMinorAxis descriptor (II[I[I)V flags 4
-method name calculateMinorAxisRequirements descriptor (ILjavax/swing/SizeRequirements;)Ljavax/swing/SizeRequirements; flags 4
-method name calculateMajorAxisRequirements descriptor (ILjavax/swing/SizeRequirements;)Ljavax/swing/SizeRequirements; flags 4
-method name layoutMajorAxis descriptor (II[I[I)V flags 4
-method name getMaximumSpan descriptor (I)F flags 1
-method name getViewIndexAtPosition descriptor (I)I flags 4
-method name getLeftInset descriptor ()S flags 4
-method name getBottomInset descriptor ()S flags 4
-
-class name javax/swing/text/html/CSS
-header extends java/lang/Object implements java/io/Serializable flags 21
-innerclass innerClass javax/swing/text/html/CSS$Attribute outerClass javax/swing/text/html/CSS innerClassName Attribute flags 19
-innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
-innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
-
-class name javax/swing/text/html/CSS$Attribute
--field name BORDER_BOTTOM_COLOR descriptor Ljavax/swing/text/html/CSS$Attribute;
--field name BORDER_BOTTOM_STYLE descriptor Ljavax/swing/text/html/CSS$Attribute;
--field name BORDER_LEFT_COLOR descriptor Ljavax/swing/text/html/CSS$Attribute;
--field name BORDER_LEFT_STYLE descriptor Ljavax/swing/text/html/CSS$Attribute;
--field name BORDER_RIGHT_COLOR descriptor Ljavax/swing/text/html/CSS$Attribute;
--field name BORDER_RIGHT_STYLE descriptor Ljavax/swing/text/html/CSS$Attribute;
--field name BORDER_TOP_COLOR descriptor Ljavax/swing/text/html/CSS$Attribute;
--field name BORDER_TOP_STYLE descriptor Ljavax/swing/text/html/CSS$Attribute;
-
-class name javax/swing/text/html/HTMLFrameHyperlinkEvent
--method name <init> descriptor (Ljava/lang/Object;Ljavax/swing/event/HyperlinkEvent$EventType;Ljava/net/URL;Ljava/lang/String;Ljavax/swing/text/Element;Ljava/awt/event/InputEvent;Ljava/lang/String;)V
-
-class name javax/swing/text/html/parser/ParserDelegator
--method name setDefaultDTD descriptor ()V
-method name setDefaultDTD descriptor ()V flags 2c
-
-class name javax/swing/tree/DefaultTreeCellRenderer
--method name updateUI descriptor ()V
-
-class name javax/swing/tree/DefaultTreeModel
--method name <init> descriptor (Ljavax/swing/tree/TreeNode;)V
-method name <init> descriptor (Ljavax/swing/tree/TreeNode;)V flags 1
-
-class name javax/swing/tree/DefaultTreeSelectionModel
--method name notifyPathChange descriptor (Ljava/util/Vector;Ljavax/swing/tree/TreePath;)V
-method name notifyPathChange descriptor (Ljava/util/Vector;Ljavax/swing/tree/TreePath;)V flags 4 signature (Ljava/util/Vector<Ljavax/swing/tree/PathPlaceHolder;>;Ljavax/swing/tree/TreePath;)V
-
-class name javax/swing/tree/PathPlaceHolder
-header extends java/lang/Object flags 20
-field name isNew descriptor Z flags 4
-field name path descriptor Ljavax/swing/tree/TreePath; flags 4
-
-class name javax/swing/tree/TreePath
--method name <init> descriptor ([Ljava/lang/Object;)V
-method name <init> descriptor ([Ljava/lang/Object;)V flags 1
-
--- a/make/data/symbols/java.logging-6.sym.txt	Tue Jul 17 15:23:21 2018 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-#
-# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-# ##########################################################
-# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
-# ##########################################################
-#
-class name java/util/logging/Logger
--method name getGlobal descriptor ()Ljava/util/logging/Logger;
--method name getAnonymousLogger descriptor ()Ljava/util/logging/Logger;
--method name addHandler descriptor (Ljava/util/logging/Handler;)V
--method name removeHandler descriptor (Ljava/util/logging/Handler;)V
--method name getHandlers descriptor ()[Ljava/util/logging/Handler;
--method name setUseParentHandlers descriptor (Z)V
--method name getUseParentHandlers descriptor ()Z
--method name getLogger descriptor (Ljava/lang/String;)Ljava/util/logging/Logger;
--method name getLogger descriptor (Ljava/lang/String;Ljava/lang/String;)Ljava/util/logging/Logger;
--method name getAnonymousLogger descriptor (Ljava/lang/String;)Ljava/util/logging/Logger;
-method name getLogger descriptor (Ljava/lang/String;)Ljava/util/logging/Logger; flags 29
-method name getLogger descriptor (Ljava/lang/String;Ljava/lang/String;)Ljava/util/logging/Logger; flags 29
-method name getAnonymousLogger descriptor ()Ljava/util/logging/Logger; flags 29
-method name getAnonymousLogger descriptor (Ljava/lang/String;)Ljava/util/logging/Logger; flags 29
-method name addHandler descriptor (Ljava/util/logging/Handler;)V thrownTypes java/lang/SecurityException flags 21
-method name removeHandler descriptor (Ljava/util/logging/Handler;)V thrownTypes java/lang/SecurityException flags 21
-method name getHandlers descriptor ()[Ljava/util/logging/Handler; flags 21
-method name setUseParentHandlers descriptor (Z)V flags 21
-method name getUseParentHandlers descriptor ()Z flags 21
-
--- a/make/data/symbols/java.management-6.sym.txt	Tue Jul 17 15:23:21 2018 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,122 +0,0 @@
-#
-# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-# ##########################################################
-# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
-# ##########################################################
-#
--class name java/lang/management/BufferPoolMXBean
-
-class name java/lang/management/ClassLoadingMXBean
-header extends java/lang/Object flags 601
-
-class name java/lang/management/CompilationMXBean
-header extends java/lang/Object flags 601
-
-class name java/lang/management/ManagementFactory
--method name getPlatformMXBean descriptor (Ljava/lang/Class;)Ljava/lang/management/PlatformManagedObject;
--method name getPlatformMXBeans descriptor (Ljava/lang/Class;)Ljava/util/List;
--method name getPlatformMXBean descriptor (Ljavax/management/MBeanServerConnection;Ljava/lang/Class;)Ljava/lang/management/PlatformManagedObject;
--method name getPlatformMXBeans descriptor (Ljavax/management/MBeanServerConnection;Ljava/lang/Class;)Ljava/util/List;
--method name getPlatformManagementInterfaces descriptor ()Ljava/util/Set;
-
-class name java/lang/management/MemoryMXBean
-header extends java/lang/Object flags 601
-
-class name java/lang/management/MemoryManagerMXBean
-header extends java/lang/Object flags 601
-
-class name java/lang/management/MemoryPoolMXBean
-header extends java/lang/Object flags 601
-
-class name java/lang/management/OperatingSystemMXBean
-header extends java/lang/Object flags 601
-
--class name java/lang/management/PlatformLoggingMXBean
-
--class name java/lang/management/PlatformManagedObject
-
-class name java/lang/management/RuntimeMXBean
-header extends java/lang/Object flags 601
-
-class name java/lang/management/ThreadMXBean
-header extends java/lang/Object flags 601
-
-class name javax/management/AttributeValueExp
--method name setMBeanServer descriptor (Ljavax/management/MBeanServer;)V
-method name setMBeanServer descriptor (Ljavax/management/MBeanServer;)V flags 1
-
-class name javax/management/DefaultLoaderRepository
--method name loadClass descriptor (Ljava/lang/String;)Ljava/lang/Class;
--method name loadClassWithout descriptor (Ljava/lang/ClassLoader;Ljava/lang/String;)Ljava/lang/Class;
-method name loadClass descriptor (Ljava/lang/String;)Ljava/lang/Class; thrownTypes java/lang/ClassNotFoundException flags 9
-method name loadClassWithout descriptor (Ljava/lang/ClassLoader;Ljava/lang/String;)Ljava/lang/Class; thrownTypes java/lang/ClassNotFoundException flags 9
-
-class name javax/management/MBeanConstructorInfo
--method name <init> descriptor (Ljava/lang/String;Ljava/lang/reflect/Constructor;)V
-method name <init> descriptor (Ljava/lang/String;Ljava/lang/reflect/Constructor;)V flags 1
-
-class name javax/management/MBeanServerNotification
--method name toString descriptor ()Ljava/lang/String;
-
-class name javax/management/ObjectName
--method name getInstance descriptor (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljavax/management/ObjectName;
--method name getInstance descriptor (Ljava/lang/String;Ljava/util/Hashtable;)Ljavax/management/ObjectName;
--method name getInstance descriptor (Ljavax/management/ObjectName;)Ljavax/management/ObjectName;
--method name <init> descriptor (Ljava/lang/String;)V
--method name <init> descriptor (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
--method name <init> descriptor (Ljava/lang/String;Ljava/util/Hashtable;)V
--method name isPropertyValuePattern descriptor (Ljava/lang/String;)Z
--method name getKeyProperty descriptor (Ljava/lang/String;)Ljava/lang/String;
--method name quote descriptor (Ljava/lang/String;)Ljava/lang/String;
--method name unquote descriptor (Ljava/lang/String;)Ljava/lang/String;
--method name apply descriptor (Ljavax/management/ObjectName;)Z
-method name getInstance descriptor (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljavax/management/ObjectName; thrownTypes javax/management/MalformedObjectNameException,java/lang/NullPointerException flags 9
-method name getInstance descriptor (Ljava/lang/String;Ljava/util/Hashtable;)Ljavax/management/ObjectName; thrownTypes javax/management/MalformedObjectNameException,java/lang/NullPointerException flags 9 signature (Ljava/lang/String;Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/String;>;)Ljavax/management/ObjectName;
-method name getInstance descriptor (Ljavax/management/ObjectName;)Ljavax/management/ObjectName; thrownTypes java/lang/NullPointerException flags 9
-method name <init> descriptor (Ljava/lang/String;)V thrownTypes javax/management/MalformedObjectNameException,java/lang/NullPointerException flags 1
-method name <init> descriptor (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V thrownTypes javax/management/MalformedObjectNameException,java/lang/NullPointerException flags 1
-method name <init> descriptor (Ljava/lang/String;Ljava/util/Hashtable;)V thrownTypes javax/management/MalformedObjectNameException,java/lang/NullPointerException flags 1 signature (Ljava/lang/String;Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/String;>;)V
-method name isPropertyValuePattern descriptor (Ljava/lang/String;)Z thrownTypes java/lang/NullPointerException,java/lang/IllegalArgumentException flags 1
-method name getKeyProperty descriptor (Ljava/lang/String;)Ljava/lang/String; thrownTypes java/lang/NullPointerException flags 1
-method name quote descriptor (Ljava/lang/String;)Ljava/lang/String; thrownTypes java/lang/NullPointerException flags 9
-method name unquote descriptor (Ljava/lang/String;)Ljava/lang/String; thrownTypes java/lang/IllegalArgumentException,java/lang/NullPointerException flags 9
-method name apply descriptor (Ljavax/management/ObjectName;)Z thrownTypes java/lang/NullPointerException flags 1
-
-class name javax/management/StringValueExp
--method name setMBeanServer descriptor (Ljavax/management/MBeanServer;)V
-method name setMBeanServer descriptor (Ljavax/management/MBeanServer;)V flags 1
-
-class name javax/management/loading/DefaultLoaderRepository
--method name loadClass descriptor (Ljava/lang/String;)Ljava/lang/Class;
--method name loadClassWithout descriptor (Ljava/lang/ClassLoader;Ljava/lang/String;)Ljava/lang/Class;
-method name loadClass descriptor (Ljava/lang/String;)Ljava/lang/Class; thrownTypes java/lang/ClassNotFoundException flags 9
-method name loadClassWithout descriptor (Ljava/lang/ClassLoader;Ljava/lang/String;)Ljava/lang/Class; thrownTypes java/lang/ClassNotFoundException flags 9
-
-class name javax/management/modelmbean/ModelMBeanConstructorInfo
--method name <init> descriptor (Ljava/lang/String;Ljava/lang/reflect/Constructor;)V
--method name <init> descriptor (Ljava/lang/String;Ljava/lang/reflect/Constructor;Ljavax/management/Descriptor;)V
-method name <init> descriptor (Ljava/lang/String;Ljava/lang/reflect/Constructor;)V flags 1
-method name <init> descriptor (Ljava/lang/String;Ljava/lang/reflect/Constructor;Ljavax/management/Descriptor;)V flags 1
-
--- a/make/data/symbols/java.rmi-6.sym.txt	Tue Jul 17 15:23:21 2018 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-#
-# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-# ##########################################################
-# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
-# ##########################################################
-#
-class name javax/rmi/ssl/SslRMIServerSocketFactory
--method name <init> descriptor (Ljavax/net/ssl/SSLContext;[Ljava/lang/String;[Ljava/lang/String;Z)V
-
--- a/make/data/symbols/java.security.jgss-6.sym.txt	Tue Jul 17 15:23:21 2018 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-#
-# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-# ##########################################################
-# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
-# ##########################################################
-#
--class name javax/security/auth/kerberos/KeyTab
-
--- a/make/data/symbols/java.sql-6.sym.txt	Tue Jul 17 15:23:21 2018 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-#
-# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-# ##########################################################
-# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
-# ##########################################################
-#
-class name java/sql/CallableStatement
--method name getObject descriptor (ILjava/lang/Class;)Ljava/lang/Object;
--method name getObject descriptor (Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
-
-class name java/sql/Connection
-header extends java/lang/Object implements java/sql/Wrapper flags 601
--method name setSchema descriptor (Ljava/lang/String;)V
--method name getSchema descriptor ()Ljava/lang/String;
--method name abort descriptor (Ljava/util/concurrent/Executor;)V
--method name setNetworkTimeout descriptor (Ljava/util/concurrent/Executor;I)V
--method name getNetworkTimeout descriptor ()I
-
-class name java/sql/DatabaseMetaData
--method name getPseudoColumns descriptor (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;
--method name generatedKeyAlwaysReturned descriptor ()Z
-
-class name java/sql/Driver
--method name getParentLogger descriptor ()Ljava/util/logging/Logger;
-
--class name java/sql/PseudoColumnUsage
-
-class name java/sql/ResultSet
-header extends java/lang/Object implements java/sql/Wrapper flags 601
--method name getObject descriptor (ILjava/lang/Class;)Ljava/lang/Object;
--method name getObject descriptor (Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
-
-class name java/sql/Statement
-header extends java/lang/Object implements java/sql/Wrapper flags 601
--method name closeOnCompletion descriptor ()V
--method name isCloseOnCompletion descriptor ()Z
-
-class name java/sql/Timestamp
--method name hashCode descriptor ()I
-
-class name javax/sql/CommonDataSource
--method name getParentLogger descriptor ()Ljava/util/logging/Logger;
-
--- a/make/data/symbols/java.sql.rowset-6.sym.txt	Tue Jul 17 15:23:21 2018 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,74 +0,0 @@
-#
-# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-# ##########################################################
-# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
-# ##########################################################
-#
-class name javax/sql/rowset/CachedRowSet
--field name COMMIT_ON_ACCEPT_CHANGES descriptor Z
-field name COMMIT_ON_ACCEPT_CHANGES descriptor Z constantValue true flags 19
-
--class name javax/sql/rowset/RowSetFactory
-
--class name javax/sql/rowset/RowSetProvider
-
-class name javax/sql/rowset/WebRowSet
--field name PUBLIC_XML_SCHEMA descriptor Ljava/lang/String;
-field name PUBLIC_XML_SCHEMA descriptor Ljava/lang/String; constantValue --//Sun\u0020;Microsystems,\u0020;Inc.//XSD\u0020;Schema//EN flags 19
-
-class name javax/sql/rowset/spi/SyncFactory
--field name ROWSET_SYNC_PROVIDER descriptor Ljava/lang/String;
--field name ROWSET_SYNC_VENDOR descriptor Ljava/lang/String;
--field name ROWSET_SYNC_PROVIDER_VERSION descriptor Ljava/lang/String;
-field name ROWSET_SYNC_PROVIDER descriptor Ljava/lang/String; flags 9
-field name ROWSET_SYNC_VENDOR descriptor Ljava/lang/String; flags 9
-field name ROWSET_SYNC_PROVIDER_VERSION descriptor Ljava/lang/String; flags 9
--method name setJNDIContext descriptor (Ljavax/naming/Context;)V
-method name setJNDIContext descriptor (Ljavax/naming/Context;)V thrownTypes javax/sql/rowset/spi/SyncFactoryException flags 9
-
-class name javax/sql/rowset/spi/SyncProvider
--field name GRADE_NONE descriptor I
--field name GRADE_CHECK_MODIFIED_AT_COMMIT descriptor I
--field name GRADE_CHECK_ALL_AT_COMMIT descriptor I
--field name GRADE_LOCK_WHEN_MODIFIED descriptor I
--field name GRADE_LOCK_WHEN_LOADED descriptor I
--field name DATASOURCE_NO_LOCK descriptor I
--field name DATASOURCE_ROW_LOCK descriptor I
--field name DATASOURCE_TABLE_LOCK descriptor I
--field name DATASOURCE_DB_LOCK descriptor I
--field name UPDATABLE_VIEW_SYNC descriptor I
--field name NONUPDATABLE_VIEW_SYNC descriptor I
-field name GRADE_NONE descriptor I flags 9
-field name GRADE_CHECK_MODIFIED_AT_COMMIT descriptor I flags 9
-field name GRADE_CHECK_ALL_AT_COMMIT descriptor I flags 9
-field name GRADE_LOCK_WHEN_MODIFIED descriptor I flags 9
-field name GRADE_LOCK_WHEN_LOADED descriptor I flags 9
-field name DATASOURCE_NO_LOCK descriptor I flags 9
-field name DATASOURCE_ROW_LOCK descriptor I flags 9
-field name DATASOURCE_TABLE_LOCK descriptor I flags 9
-field name DATASOURCE_DB_LOCK descriptor I flags 9
-field name UPDATABLE_VIEW_SYNC descriptor I flags 9
-field name NONUPDATABLE_VIEW_SYNC descriptor I flags 9
-
--- a/make/data/symbols/java.xml-6.sym.txt	Tue Jul 17 15:23:21 2018 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-#
-# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-# ##########################################################
-# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
-# ##########################################################
-#
-class name javax/xml/parsers/FactoryConfigurationError
--method name getCause descriptor ()Ljava/lang/Throwable;
-
-class name javax/xml/stream/FactoryConfigurationError
--method name getCause descriptor ()Ljava/lang/Throwable;
-
-class name javax/xml/stream/XMLEventFactory
--method name newFactory descriptor ()Ljavax/xml/stream/XMLEventFactory;
--method name newInstance descriptor (Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/stream/XMLEventFactory;
--method name newFactory descriptor (Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/stream/XMLEventFactory;
-method name newInstance descriptor (Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/stream/XMLEventFactory; thrownTypes javax/xml/stream/FactoryConfigurationError flags 9
-
-class name javax/xml/stream/XMLInputFactory
--method name newFactory descriptor ()Ljavax/xml/stream/XMLInputFactory;
--method name newInstance descriptor (Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/stream/XMLInputFactory;
--method name newFactory descriptor (Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/stream/XMLInputFactory;
-method name newInstance descriptor (Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/stream/XMLInputFactory; thrownTypes javax/xml/stream/FactoryConfigurationError flags 9
-
-class name javax/xml/stream/XMLOutputFactory
--method name newFactory descriptor ()Ljavax/xml/stream/XMLOutputFactory;
--method name newInstance descriptor (Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/stream/XMLInputFactory;
--method name newFactory descriptor (Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/stream/XMLOutputFactory;
-method name newInstance descriptor (Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/stream/XMLInputFactory; thrownTypes javax/xml/stream/FactoryConfigurationError flags 9
-
-class name javax/xml/transform/TransformerFactoryConfigurationError
--method name getCause descriptor ()Ljava/lang/Throwable;
-
-class name org/xml/sax/SAXException
--method name getCause descriptor ()Ljava/lang/Throwable;
-
-class name org/xml/sax/SAXParseException
--method name toString descriptor ()Ljava/lang/String;
-
--- a/make/data/symbols/java.xml.bind-6.sym.txt	Tue Jul 17 15:23:21 2018 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-#
-# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-# ##########################################################
-# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
-# ##########################################################
-#
--class name javax/xml/bind/JAXBPermission
-
-class name javax/xml/bind/annotation/XmlElement
-header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;FIELD;eLjava/lang/annotation/ElementType;METHOD;})
-innerclass innerClass javax/xml/bind/annotation/XmlElement$DEFAULT outerClass javax/xml/bind/annotation/XmlElement innerClassName DEFAULT flags 19
-
-class name javax/xml/bind/annotation/XmlElementRef
--method name required descriptor ()Z
-
--- a/make/data/symbols/java.xml.ws-6.sym.txt	Tue Jul 17 15:23:21 2018 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,103 +0,0 @@
-#
-# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-# ##########################################################
-# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
-# ##########################################################
-#
-class name javax/xml/ws/Endpoint
--method name create descriptor (Ljava/lang/Object;[Ljavax/xml/ws/WebServiceFeature;)Ljavax/xml/ws/Endpoint;
--method name create descriptor (Ljava/lang/String;Ljava/lang/Object;[Ljavax/xml/ws/WebServiceFeature;)Ljavax/xml/ws/Endpoint;
--method name publish descriptor (Ljava/lang/String;Ljava/lang/Object;[Ljavax/xml/ws/WebServiceFeature;)Ljavax/xml/ws/Endpoint;
--method name publish descriptor (Ljavax/xml/ws/spi/http/HttpContext;)V
--method name setEndpointContext descriptor (Ljavax/xml/ws/EndpointContext;)V
-
--class name javax/xml/ws/EndpointContext
-
-class name javax/xml/ws/FaultAction
--method name className descriptor ()Ljava/lang/Class;
-method name className descriptor ()Ljava/lang/Class; flags 401
-
-class name javax/xml/ws/Holder
-header extends java/lang/Object flags 31 signature <T:Ljava/lang/Object;>Ljava/lang/Object;
-
-class name javax/xml/ws/RequestWrapper
--method name partName descriptor ()Ljava/lang/String;
-
-class name javax/xml/ws/RespectBinding
-header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;TYPE;})@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)@Ljava/lang/annotation/Documented;@Ljavax/xml/ws/spi/WebServiceFeatureAnnotation;(id="javax.xml.ws.RespectBindingFeature",bean=cLjavax/xml/ws/RespectBindingFeature;)
-
-class name javax/xml/ws/ResponseWrapper
--method name partName descriptor ()Ljava/lang/String;
-
-class name javax/xml/ws/Service
--method name <init> descriptor (Ljava/net/URL;Ljavax/xml/namespace/QName;[Ljavax/xml/ws/WebServiceFeature;)V
--method name create descriptor (Ljava/net/URL;Ljavax/xml/namespace/QName;[Ljavax/xml/ws/WebServiceFeature;)Ljavax/xml/ws/Service;
--method name create descriptor (Ljavax/xml/namespace/QName;[Ljavax/xml/ws/WebServiceFeature;)Ljavax/xml/ws/Service;
-
-class name javax/xml/ws/WebFault
--method name messageName descriptor ()Ljava/lang/String;
-
-class name javax/xml/ws/WebServiceRef
--method name type descriptor ()Ljava/lang/Class;
--method name value descriptor ()Ljava/lang/Class;
--method name lookup descriptor ()Ljava/lang/String;
-method name type descriptor ()Ljava/lang/Class; annotationDefaultValue cLjava/lang/Object; flags 401
-method name value descriptor ()Ljava/lang/Class; annotationDefaultValue cLjava/lang/Object; flags 401
-
-class name javax/xml/ws/soap/Addressing
-header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;TYPE;})@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)@Ljava/lang/annotation/Documented;@Ljavax/xml/ws/spi/WebServiceFeatureAnnotation;(id="http://www.w3.org/2005/08/addressing/module",bean=cLjavax/xml/ws/soap/AddressingFeature;)
--method name responses descriptor ()Ljavax/xml/ws/soap/AddressingFeature$Responses;
-
-class name javax/xml/ws/soap/AddressingFeature
-header extends javax/xml/ws/WebServiceFeature flags 31
--method name <init> descriptor (ZZLjavax/xml/ws/soap/AddressingFeature$Responses;)V
--method name getResponses descriptor ()Ljavax/xml/ws/soap/AddressingFeature$Responses;
-
--class name javax/xml/ws/soap/AddressingFeature$Responses
-
-class name javax/xml/ws/soap/MTOM
-header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;TYPE;})@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)@Ljava/lang/annotation/Documented;@Ljavax/xml/ws/spi/WebServiceFeatureAnnotation;(id="http://www.w3.org/2004/08/soap/features/http-optimization",bean=cLjavax/xml/ws/soap/MTOMFeature;)
-
--class name javax/xml/ws/spi/Invoker
-
-class name javax/xml/ws/spi/Provider
--method name createServiceDelegate descriptor (Ljava/net/URL;Ljavax/xml/namespace/QName;Ljava/lang/Class;)Ljavax/xml/ws/spi/ServiceDelegate;
--method name createServiceDelegate descriptor (Ljava/net/URL;Ljavax/xml/namespace/QName;Ljava/lang/Class;[Ljavax/xml/ws/WebServiceFeature;)Ljavax/xml/ws/spi/ServiceDelegate;
--method name createW3CEndpointReference descriptor (Ljava/lang/String;Ljavax/xml/namespace/QName;Ljavax/xml/namespace/QName;Ljavax/xml/namespace/QName;Ljava/util/List;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/Map;)Ljavax/xml/ws/wsaddressing/W3CEndpointReference;
--method name createAndPublishEndpoint descriptor (Ljava/lang/String;Ljava/lang/Object;[Ljavax/xml/ws/WebServiceFeature;)Ljavax/xml/ws/Endpoint;
--method name createEndpoint descriptor (Ljava/lang/String;Ljava/lang/Object;[Ljavax/xml/ws/WebServiceFeature;)Ljavax/xml/ws/Endpoint;
--method name createEndpoint descriptor (Ljava/lang/String;Ljava/lang/Class;Ljavax/xml/ws/spi/Invoker;[Ljavax/xml/ws/WebServiceFeature;)Ljavax/xml/ws/Endpoint;
-method name createServiceDelegate descriptor (Ljava/net/URL;Ljavax/xml/namespace/QName;Ljava/lang/Class;)Ljavax/xml/ws/spi/ServiceDelegate; flags 401
-
--class name javax/xml/ws/spi/http/HttpContext
-
--class name javax/xml/ws/spi/http/HttpExchange
-
--class name javax/xml/ws/spi/http/HttpHandler
-
--class name javax/xml/ws/wsaddressing/W3CEndpointReference
-
--class name javax/xml/ws/wsaddressing/W3CEndpointReferenceBuilder
-
--- a/make/data/symbols/java.xml.ws.annotation-6.sym.txt	Tue Jul 17 15:23:21 2018 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-#
-# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-# ##########################################################
-# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
-# ##########################################################
-#
-class name javax/annotation/Resource
--method name lookup descriptor ()Ljava/lang/String;
-
--- a/make/data/symbols/jdk.management-6.sym.txt	Tue Jul 17 15:23:21 2018 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-#
-# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-# ##########################################################
-# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
-# ##########################################################
-#
--class name com/sun/management/GarbageCollectionNotificationInfo
-
-class name com/sun/management/HotSpotDiagnosticMXBean
-header extends java/lang/Object flags 601
-
-class name com/sun/management/OperatingSystemMXBean
--method name getSystemCpuLoad descriptor ()D
--method name getProcessCpuLoad descriptor ()D
-
--class name com/sun/management/ThreadMXBean
-
--- a/make/data/symbols/jdk.sctp-6.sym.txt	Tue Jul 17 15:23:21 2018 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-#
-# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-# ##########################################################
-# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
-# ##########################################################
-#
--class name com/sun/nio/sctp/AbstractNotificationHandler
-
--class name com/sun/nio/sctp/Association
-
--class name com/sun/nio/sctp/AssociationChangeNotification
-
--class name com/sun/nio/sctp/AssociationChangeNotification$AssocChangeEvent
-
--class name com/sun/nio/sctp/HandlerResult
-
--class name com/sun/nio/sctp/IllegalReceiveException
-
--class name com/sun/nio/sctp/IllegalUnbindException
-
--class name com/sun/nio/sctp/InvalidStreamException
-
--class name com/sun/nio/sctp/MessageInfo
-
--class name com/sun/nio/sctp/Notification
-
--class name com/sun/nio/sctp/NotificationHandler
-
--class name com/sun/nio/sctp/PeerAddressChangeNotification
-
--class name com/sun/nio/sctp/PeerAddressChangeNotification$AddressChangeEvent
-
--class name com/sun/nio/sctp/SctpChannel
-
--class name com/sun/nio/sctp/SctpMultiChannel
-
--class name com/sun/nio/sctp/SctpServerChannel
-
--class name com/sun/nio/sctp/SctpSocketOption
-
--class name com/sun/nio/sctp/SctpStandardSocketOptions
-
--class name com/sun/nio/sctp/SctpStandardSocketOptions$InitMaxStreams
-
--class name com/sun/nio/sctp/SendFailedNotification
-
--class name com/sun/nio/sctp/ShutdownNotification
-
--- a/make/data/symbols/jdk.security.jgss-6.sym.txt	Tue Jul 17 15:23:21 2018 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-#
-# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-# ##########################################################
-# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
-# ##########################################################
-#
--class name com/sun/security/jgss/AuthorizationDataEntry
-
--class name com/sun/security/jgss/ExtendedGSSContext
-
--class name com/sun/security/jgss/InquireSecContextPermission
-
--class name com/sun/security/jgss/InquireType
-
--- a/make/data/symbols/symbols	Tue Jul 17 15:23:21 2018 -0700
+++ b/make/data/symbols/symbols	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/make/hotspot/gensrc/GensrcJfr.gmk	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/cpu/aarch64/gc/g1/g1BarrierSetAssembler_aarch64.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/cpu/aarch64/globals_aarch64.hpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/cpu/ppc/assembler_ppc.hpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/cpu/ppc/macroAssembler_ppc.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/cpu/ppc/sharedRuntime_ppc.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/cpu/x86/methodHandles_x86.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/cpu/x86/templateInterpreterGenerator_x86_32.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/cpu/x86/templateInterpreterGenerator_x86_64.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/cpu/x86/templateTable_x86.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/cpu/x86/vm_version_ext_x86.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/cpu/x86/vm_version_ext_x86.hpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/cpu/x86/x86.ad	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/os/aix/misc_aix.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/os/aix/misc_aix.hpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/os/aix/os_aix.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/os/aix/os_aix.inline.hpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/os/aix/os_perf_aix.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/os/aix/perfMemory_aix.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/os/aix/porting_aix.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/os/bsd/os_bsd.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/os/bsd/os_bsd.inline.hpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/os/bsd/perfMemory_bsd.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/os/linux/os_linux.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/os/linux/os_linux.inline.hpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/os/linux/os_perf_linux.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/os/linux/perfMemory_linux.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/os/posix/os_posix.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/os/solaris/os_perf_solaris.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/os/solaris/os_solaris.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/os/solaris/os_solaris.inline.hpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/os/solaris/perfMemory_solaris.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/os/windows/os_windows.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/os/windows/os_windows.inline.hpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/os/windows/perfMemory_windows.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/os_cpu/aix_ppc/orderAccess_aix_ppc.hpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/os_cpu/bsd_x86/os_bsd_x86.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/os_cpu/linux_ppc/orderAccess_linux_ppc.hpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/os_cpu/linux_ppc/os_linux_ppc.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/os_cpu/linux_s390/orderAccess_linux_s390.hpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/os_cpu/linux_s390/os_linux_s390.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/os_cpu/linux_x86/os_linux_x86.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/adlc/adlparse.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/adlc/archDesc.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/adlc/arena.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/adlc/dfa.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/adlc/dict2.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/adlc/filebuff.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/adlc/formssel.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/adlc/main.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/adlc/output_c.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/aot/aotCodeHeap.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/asm/codeBuffer.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/c1/c1_IR.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/c1/c1_LIRGenerator.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/c1/c1_LinearScan.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/classfile/classListParser.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/classfile/javaClasses.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/classfile/javaClasses.hpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/classfile/moduleEntry.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/classfile/systemDictionary.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/classfile/systemDictionaryShared.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/classfile/verifier.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/code/codeCache.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/code/codeHeapState.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/code/codeHeapState.hpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/compiler/compileLog.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/compiler/disassembler.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/compiler/disassembler.hpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/compiler/methodLiveness.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/compiler/oopMap.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/interpreter/bytecodeInterpreter.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/interpreter/linkResolver.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/interpreter/templateInterpreterGenerator.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/jfr/recorder/repository/jfrRepository.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/jvmci/jvmciCodeInstaller.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/jvmci/jvmciCompilerToVM.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/libadt/dict.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/libadt/set.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/libadt/vectset.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/logging/logOutput.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/memory/arena.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/memory/filemap.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/memory/metaspace.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/memory/virtualspace.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/oops/arrayKlass.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/oops/instanceKlass.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/oops/klassVtable.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/oops/klassVtable.hpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/opto/arraycopynode.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/opto/bytecodeInfo.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/opto/callnode.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/opto/compile.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/opto/gcm.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/opto/ifnode.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/opto/indexSet.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/opto/lcm.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/opto/loopPredicate.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/opto/loopTransform.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/opto/macro.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/opto/memnode.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/opto/mulnode.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/opto/node.hpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/opto/output.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/opto/parse1.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/opto/reg_split.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/opto/runtime.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/opto/type.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/prims/jvmti.xml	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/prims/jvmtiEnv.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/prims/jvmtiEnvBase.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/prims/jvmtiRedefineClasses.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/runtime/arguments.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/runtime/deoptimization.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/runtime/flags/jvmFlag.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/runtime/os.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/runtime/os.hpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/runtime/simpleThresholdPolicy.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/runtime/threadHeapSampler.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/runtime/threadHeapSampler.hpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/services/writeableFlags.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/hotspot/share/utilities/ostream.cpp	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/java.base/linux/classes/sun/nio/fs/LinuxFileStore.java	Thu Jul 19 16:14:56 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/macosx/native/libjava/java_props_macosx.c	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/java.base/macosx/native/libjava/java_props_macosx.c	Thu Jul 19 16:14:56 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
@@ -45,11 +45,22 @@
 }
 
 #define LOCALEIDLENGTH  128
+#ifndef kCFCoreFoundationVersionNumber10_11_Max
+#define kCFCoreFoundationVersionNumber10_11_Max 1299
+#endif
 char *getMacOSXLocale(int cat) {
     const char* retVal = NULL;
     char languageString[LOCALEIDLENGTH];
     char localeString[LOCALEIDLENGTH];
 
+    // Since macOS 10.12, there is no separate language selection for
+    // "format" locale, e.g., date format. Use the preferred language
+    // for all LC_* categories.
+    if (kCFCoreFoundationVersionNumber >
+        kCFCoreFoundationVersionNumber10_11_Max) {
+        cat = LC_MESSAGES;
+    }
+
     switch (cat) {
     case LC_MESSAGES:
         {
--- a/src/java.base/share/classes/com/sun/crypto/provider/AESCrypt.java	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/java.base/share/classes/com/sun/crypto/provider/AESCrypt.java	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/java.base/share/classes/com/sun/crypto/provider/CipherBlockChaining.java	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/java.base/share/classes/com/sun/crypto/provider/CipherFeedback.java	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/java.base/share/classes/com/sun/crypto/provider/CounterMode.java	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/java.base/share/classes/com/sun/crypto/provider/ElectronicCodeBook.java	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/java.base/share/classes/com/sun/crypto/provider/GCTR.java	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/java.base/share/classes/com/sun/crypto/provider/GaloisCounterMode.java	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/java.base/share/classes/com/sun/crypto/provider/OutputFeedback.java	Thu Jul 19 16:14:56 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	Tue Jul 17 15:23:21 2018 -0700
+++ b/src/java.base/share/classes/com/sun/crypto/provider/PBES2Parameters.java	Thu Jul 19 16:14:56 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: "
-                                  + "