--- a/.hgtags Sat Sep 22 20:31:45 2018 -0700
+++ b/.hgtags Mon Sep 24 10:59:26 2018 -0700
@@ -512,3 +512,4 @@
31b159f30fb281016c5f0c103552809aeda84063 jdk-12+9
8f594f75e0547d4ca16649cb3501659e3155e81b jdk-12+10
f0f5d23449d31f1b3580c8a73313918cafeaefd7 jdk-12+11
+15094d12a632f452a2064318a4e416d0c7a9ce0c jdk-12+12
--- a/.jcheck/conf Sat Sep 22 20:31:45 2018 -0700
+++ b/.jcheck/conf Mon Sep 24 10:59:26 2018 -0700
@@ -1,2 +1,2 @@
-project=jdk10
+project=jdk
bugids=dup
--- a/make/ExplodedImageOptimize.gmk Sat Sep 22 20:31:45 2018 -0700
+++ b/make/ExplodedImageOptimize.gmk Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -38,7 +38,7 @@
$(PACKAGES_ATTRIBUTE_TARGET): $(ALL_MODULEINFO_CLASSES) $(BUILD_JIGSAW_CLASSES)
$(call LogInfo, Optimizing the exploded image)
- $(TOOL_ADD_PACKAGES_ATTRIBUTE) $(JDK_OUTPUTDIR)
+ $(call ExecuteWithLog, $@, $(TOOL_ADD_PACKAGES_ATTRIBUTE) $(JDK_OUTPUTDIR))
$(TOUCH) $@
TARGETS := $(PACKAGES_ATTRIBUTE_TARGET)
--- a/make/MacBundles.gmk Sat Sep 22 20:31:45 2018 -0700
+++ b/make/MacBundles.gmk Mon Sep 24 10:59:26 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
@@ -65,13 +65,13 @@
$(call LogInfo, Creating link $(patsubst $(OUTPUTDIR)/%,%,$@))
$(MKDIR) -p $(@D)
$(RM) $@
- $(LN) -s ../Home/lib/jli/libjli.dylib $@
+ $(LN) -s ../Home/lib/libjli.dylib $@
$(JRE_MACOSX_CONTENTS_DIR)/MacOS/libjli.dylib:
$(call LogInfo, Creating link $(patsubst $(OUTPUTDIR)/%,%,$@))
$(MKDIR) -p $(@D)
$(RM) $@
- $(LN) -s ../Home/lib/jli/libjli.dylib $@
+ $(LN) -s ../Home/lib/libjli.dylib $@
$(eval $(call SetupTextFileProcessing, BUILD_JDK_PLIST, \
SOURCE_FILES := $(MACOSX_PLIST_SRC)/JDK-Info.plist, \
--- a/make/autoconf/basics.m4 Sat Sep 22 20:31:45 2018 -0700
+++ b/make/autoconf/basics.m4 Mon Sep 24 10:59:26 2018 -0700
@@ -168,7 +168,7 @@
[
$ECHO "Check if jvm arg is ok: $1" >&AS_MESSAGE_LOG_FD
$ECHO "Command: $3 $1 -version" >&AS_MESSAGE_LOG_FD
- OUTPUT=`$3 $1 -version 2>&1`
+ OUTPUT=`$3 $1 $USER_BOOT_JDK_OPTIONS -version 2>&1`
FOUND_WARN=`$ECHO "$OUTPUT" | $GREP -i warn`
FOUND_VERSION=`$ECHO $OUTPUT | $GREP " version \""`
if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
@@ -862,7 +862,7 @@
# Create a default ./build/target-variant-debuglevel output root.
if test "x${CONF_NAME}" = x; then
AC_MSG_RESULT([in default location])
- CONF_NAME="${OPENJDK_TARGET_OS}-${OPENJDK_TARGET_CPU}-${JDK_VARIANT}-${JVM_VARIANTS_WITH_AND}-${DEBUG_LEVEL}"
+ CONF_NAME="${OPENJDK_TARGET_OS}-${OPENJDK_TARGET_CPU}-${JVM_VARIANTS_WITH_AND}-${DEBUG_LEVEL}"
else
AC_MSG_RESULT([in build directory with custom name])
fi
--- a/make/autoconf/boot-jdk.m4 Sat Sep 22 20:31:45 2018 -0700
+++ b/make/autoconf/boot-jdk.m4 Mon Sep 24 10:59:26 2018 -0700
@@ -74,7 +74,18 @@
BOOT_JDK_FOUND=no
else
# Oh, this is looking good! We probably have found a proper JDK. Is it the correct version?
- BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | $HEAD -n 1`
+ BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" $USER_BOOT_JDK_OPTIONS -version 2>&1 | $HEAD -n 1`
+ if [ [[ "$BOOT_JDK_VERSION" =~ "Picked up" ]] ]; then
+ AC_MSG_NOTICE([You have _JAVA_OPTIONS or JAVA_TOOL_OPTIONS set. This can mess up the build. Please use --with-boot-jdk-jvmargs instead.])
+ AC_MSG_NOTICE([Java reports: "$BOOT_JDK_VERSION".])
+ AC_MSG_ERROR([Cannot continue])
+ fi
+ if [ [[ "$BOOT_JDK_VERSION" =~ "Unrecognized option" ]] ]; then
+ AC_MSG_NOTICE([The specified --with-boot-jdk-jvmargs is invalid for the tested java])
+ AC_MSG_NOTICE([Error message: "$BOOT_JDK_VERSION".])
+ AC_MSG_NOTICE([Please fix arguments, or point to an explicit boot JDK which accept these arguments])
+ AC_MSG_ERROR([Cannot continue])
+ fi
# Extra M4 quote needed to protect [] in grep expression.
[FOUND_CORRECT_VERSION=`$ECHO $BOOT_JDK_VERSION \
@@ -90,7 +101,7 @@
AC_MSG_CHECKING([for Boot JDK])
AC_MSG_RESULT([$BOOT_JDK])
AC_MSG_CHECKING([Boot JDK version])
- BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | $TR '\n\r' ' '`
+ BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" $USER_BOOT_JDK_OPTIONS -version 2>&1 | $TR '\n\r' ' '`
AC_MSG_RESULT([$BOOT_JDK_VERSION])
fi # end check jdk version
fi # end check javac
@@ -283,6 +294,11 @@
AC_ARG_WITH(boot-jdk, [AS_HELP_STRING([--with-boot-jdk],
[path to Boot JDK (used to bootstrap build) @<:@probed@:>@])])
+ AC_ARG_WITH(boot-jdk-jvmargs, [AS_HELP_STRING([--with-boot-jdk-jvmargs],
+ [specify additional arguments to be passed to Boot JDK tools @<:@none@:>@])])
+
+ USER_BOOT_JDK_OPTIONS="$with_boot_jdk_jvmargs"
+
# We look for the Boot JDK through various means, going from more certain to
# more of a guess-work. After each test, BOOT_JDK_FOUND is set to "yes" if
# we detected something (if so, the path to the jdk is in BOOT_JDK). But we
@@ -372,10 +388,6 @@
# Specify jvm options for anything that is run with the Boot JDK.
# Not all JVM:s accept the same arguments on the command line.
#
- AC_ARG_WITH(boot-jdk-jvmargs, [AS_HELP_STRING([--with-boot-jdk-jvmargs],
- [specify JVM arguments to be passed to all java invocations of boot JDK, overriding the default values,
- e.g --with-boot-jdk-jvmargs="-Xmx8G -enableassertions"])])
-
AC_MSG_CHECKING([flags for boot jdk java command] )
# Force en-US environment
@@ -389,8 +401,8 @@
ADD_JVM_ARG_IF_OK([-Xshare:auto],boot_jdk_jvmargs,[$JAVA])
fi
- # Apply user provided options.
- ADD_JVM_ARG_IF_OK([$with_boot_jdk_jvmargs],boot_jdk_jvmargs,[$JAVA])
+ # Finally append user provided options to allow them to override.
+ ADD_JVM_ARG_IF_OK([$USER_BOOT_JDK_OPTIONS],boot_jdk_jvmargs,[$JAVA])
AC_MSG_RESULT([$boot_jdk_jvmargs])
--- a/make/autoconf/configure.ac Sat Sep 22 20:31:45 2018 -0700
+++ b/make/autoconf/configure.ac Mon Sep 24 10:59:26 2018 -0700
@@ -91,7 +91,6 @@
JDKOPT_SETUP_OPEN_OR_CUSTOM
# These are needed to be able to create a configuration name (and thus the output directory)
-JDKOPT_SETUP_JDK_VARIANT
JDKOPT_SETUP_DEBUG_LEVEL
HOTSPOT_SETUP_JVM_VARIANTS
--- a/make/autoconf/flags-cflags.m4 Sat Sep 22 20:31:45 2018 -0700
+++ b/make/autoconf/flags-cflags.m4 Mon Sep 24 10:59:26 2018 -0700
@@ -161,14 +161,35 @@
microsoft)
DISABLE_WARNING_PREFIX="-wd"
CFLAGS_WARNINGS_ARE_ERRORS="-WX"
+
+ WARNINGS_ENABLE_ALL="-W3"
+ DISABLED_WARNINGS="4800"
;;
+
solstudio)
DISABLE_WARNING_PREFIX="-erroff="
- CFLAGS_WARNINGS_ARE_ERRORS="-errtags -errwarn=%all"
+ CFLAGS_WARNINGS_ARE_ERRORS="-errwarn=%all"
+
+ WARNINGS_ENABLE_ALL_CFLAGS="-v"
+ WARNINGS_ENABLE_ALL_CXXFLAGS="+w"
+
+ DISABLED_WARNINGS_C=""
+ DISABLED_WARNINGS_CXX=""
;;
+
gcc)
DISABLE_WARNING_PREFIX="-Wno-"
CFLAGS_WARNINGS_ARE_ERRORS="-Werror"
+
+ # Additional warnings that are not activated by -Wall and -Wextra
+ WARNINGS_ENABLE_ADDITIONAL="-Wpointer-arith -Wsign-compare \
+ -Wunused-function -Wundef -Wunused-value -Wreturn-type"
+ WARNINGS_ENABLE_ADDITIONAL_CXX="-Woverloaded-virtual -Wreorder"
+ WARNINGS_ENABLE_ALL_CFLAGS="-Wall -Wextra -Wformat=2 $WARNINGS_ENABLE_ADDITIONAL"
+ WARNINGS_ENABLE_ALL_CXXFLAGS="$WARNINGS_ENABLE_ALL_CFLAGS $WARNINGS_ENABLE_ADDITIONAL_CXX"
+
+ DISABLED_WARNINGS="unused-parameter unused"
+
# Repeate the check for the BUILD_CC and BUILD_CXX. Need to also reset
# CFLAGS since any target specific flags will likely not work with the
# build compiler
@@ -183,18 +204,40 @@
CXX="$CXX_OLD"
CFLAGS="$CFLAGS_OLD"
;;
+
clang)
DISABLE_WARNING_PREFIX="-Wno-"
CFLAGS_WARNINGS_ARE_ERRORS="-Werror"
+
+ # Additional warnings that are not activated by -Wall and -Wextra
+ WARNINGS_ENABLE_ADDITIONAL="-Wpointer-arith -Wsign-compare -Wreorder \
+ -Wunused-function -Wundef -Wunused-value -Woverloaded-virtual"
+ WARNINGS_ENABLE_ALL="-Wall -Wextra -Wformat=2 $WARNINGS_ENABLE_ADDITIONAL"
+
+ DISABLED_WARNINGS="unused-parameter unused"
+
+ if test "x$OPENJDK_TARGET_OS" = xmacosx; then
+ # missing-method-return-type triggers in JavaNativeFoundation framework
+ DISABLED_WARNINGS="$DISABLED_WARNINGS missing-method-return-type"
+ fi
+
;;
+
xlc)
DISABLE_WARNING_PREFIX="-qsuppress="
CFLAGS_WARNINGS_ARE_ERRORS="-qhalt=w"
+
+ # Possibly a better subset than "all" is "lan:trx:ret:zea:cmp:ret"
+ WARNINGS_ENABLE_ALL="-qinfo=all -qformat=all"
+ DISABLED_WARNINGS=""
;;
esac
AC_SUBST(DISABLE_WARNING_PREFIX)
AC_SUBST(BUILD_CC_DISABLE_WARNING_PREFIX)
AC_SUBST(CFLAGS_WARNINGS_ARE_ERRORS)
+ AC_SUBST(DISABLED_WARNINGS)
+ AC_SUBST(DISABLED_WARNINGS_C)
+ AC_SUBST(DISABLED_WARNINGS_CXX)
])
AC_DEFUN([FLAGS_SETUP_QUALITY_CHECKS],
@@ -386,17 +429,6 @@
IF_FALSE: [FDLIBM_CFLAGS=""])
fi
AC_SUBST(FDLIBM_CFLAGS)
-
- # Tests are only ever compiled for TARGET
- CFLAGS_TESTLIB="$CFLAGS_JDKLIB"
- CXXFLAGS_TESTLIB="$CXXFLAGS_JDKLIB"
- CFLAGS_TESTEXE="$CFLAGS_JDKEXE"
- CXXFLAGS_TESTEXE="$CXXFLAGS_JDKEXE"
-
- AC_SUBST(CFLAGS_TESTLIB)
- AC_SUBST(CFLAGS_TESTEXE)
- AC_SUBST(CXXFLAGS_TESTLIB)
- AC_SUBST(CXXFLAGS_TESTEXE)
])
################################################################################
@@ -523,11 +555,14 @@
TOOLCHAIN_CFLAGS_JDK_CONLY="-fno-strict-aliasing" # technically NOT for CXX
fi
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
- TOOLCHAIN_CFLAGS_JDK="-mt"
- TOOLCHAIN_CFLAGS_JDK_CONLY="-xc99=%none -xCC -Xa -v -W0,-noglobal" # C only
+ TOOLCHAIN_FLAGS="-errtags -errfmt"
+ TOOLCHAIN_CFLAGS="-errshort=tags"
+
+ TOOLCHAIN_CFLAGS_JDK="-mt $TOOLCHAIN_FLAGS"
+ TOOLCHAIN_CFLAGS_JDK_CONLY="-xc99=%none -xCC -Xa -W0,-noglobal $TOOLCHAIN_CFLAGS" # C only
TOOLCHAIN_CFLAGS_JDK_CXXONLY="-features=no%except -norunpath -xnolib" # CXX only
TOOLCHAIN_CFLAGS_JVM="-template=no%extdef -features=no%split_init \
- -library=stlport4 -mt -features=no%except"
+ -library=stlport4 -mt -features=no%except $TOOLCHAIN_FLAGS"
if test "x$DEBUG_LEVEL" = xslowdebug; then
# Previously -g was used instead of -g0 for slowdebug; this is equivalent
# to setting +d.
@@ -535,6 +570,7 @@
fi
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
+ # Suggested additions: -qsrcmsg to get improved error reporting
TOOLCHAIN_CFLAGS_JDK="-qchars=signed -qfullpath -qsaveopt" # add on both CFLAGS
TOOLCHAIN_CFLAGS_JVM="-qtune=balanced \
-qalias=noansi -qstrict -qtls=default -qlanglvl=c99vla \
@@ -546,37 +582,24 @@
# CFLAGS WARNINGS STUFF
# Set JVM_CFLAGS warning handling
- if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
- # COMMON to gcc and clang
- WARNING_CFLAGS_JVM="-Wpointer-arith -Wsign-compare -Wunused-function"
- if ! HOTSPOT_CHECK_JVM_VARIANT(zero); then
- # Non-zero builds have stricter warnings
- WARNING_CFLAGS_JVM="$WARNING_CFLAGS_JVM -Wundef -Wformat=2"
- fi
+ if test "x$TOOLCHAIN_TYPE" = xgcc; then
+ WARNING_CFLAGS_JDK_CONLY="$WARNINGS_ENABLE_ALL_CFLAGS"
+ WARNING_CFLAGS_JDK_CXXONLY="$WARNINGS_ENABLE_ALL_CXXFLAGS"
+ WARNING_CFLAGS_JVM="$WARNINGS_ENABLE_ALL_CXXFLAGS"
- fi
- if test "x$TOOLCHAIN_TYPE" = xgcc; then
- WARNING_CFLAGS_JDK="-Wall -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2"
- WARNING_CFLAGS_JVM="$WARNING_CFLAGS_JVM -Wunused-value -Woverloaded-virtual -Wreorder"
+ elif test "x$TOOLCHAIN_TYPE" = xclang; then
+ WARNING_CFLAGS="$WARNINGS_ENABLE_ALL"
- if ! HOTSPOT_CHECK_JVM_VARIANT(zero); then
- # Non-zero builds have stricter warnings
- WARNING_CFLAGS_JVM="$WARNING_CFLAGS_JVM -Wreturn-type"
- fi
- elif test "x$TOOLCHAIN_TYPE" = xclang; then
- WARNING_CFLAGS_JVM="$WARNING_CFLAGS_JVM -Wno-deprecated -Wreorder"
- if test "x$OPENJDK_TARGET_OS" = xlinux; then
- WARNING_CFLAGS_JVM="$WARNING_CFLAGS_JVM -Wno-sometimes-uninitialized"
- WARNING_CFLAGS_JDK="-Wall -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2"
- fi
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
- WARNING_CFLAGS_JDK_CONLY="-errshort=tags"
- WARNING_CFLAGS_JDK_CXXONLY="+w"
- WARNING_CFLAGS_JDK="-errtags=yes -errfmt"
+ WARNING_CFLAGS_JDK_CONLY="$WARNINGS_ENABLE_ALL_CFLAGS"
+ WARNING_CFLAGS_JDK_CXXONLY="$WARNINGS_ENABLE_ALL_CXXFLAGS"
+ WARNING_CFLAGS_JVM="$WARNINGS_ENABLE_ALL_CXXFLAGS"
+
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
- WARNING_CFLAGS="-W3"
- WARNING_CFLAGS_JDK="-wd4800"
- WARNING_CFLAGS_JVM="-wd4800"
+ WARNING_CFLAGS="$WARNINGS_ENABLE_ALL"
+
+ elif test "x$TOOLCHAIN_TYPE" = xxlc; then
+ WARNING_CFLAGS="" # currently left empty
fi
# Set some additional per-OS defines.
--- a/make/autoconf/flags-ldflags.m4 Sat Sep 22 20:31:45 2018 -0700
+++ b/make/autoconf/flags-ldflags.m4 Mon Sep 24 10:59:26 2018 -0700
@@ -51,9 +51,7 @@
FLAGS_SETUP_LDFLAGS_CPU_DEP([BUILD], [OPENJDK_BUILD_])
- LDFLAGS_TESTLIB="$LDFLAGS_JDKLIB"
- LDFLAGS_TESTEXE="$LDFLAGS_JDKEXE ${TARGET_LDFLAGS_JDK_LIBPATH}"
- AC_SUBST(LDFLAGS_TESTLIB)
+ LDFLAGS_TESTEXE="${TARGET_LDFLAGS_JDK_LIBPATH}"
AC_SUBST(LDFLAGS_TESTEXE)
])
@@ -74,10 +72,8 @@
# Add -z defs, to forbid undefined symbols in object files.
BASIC_LDFLAGS="$BASIC_LDFLAGS -Wl,-z,defs"
- BASIC_LDFLAGS_JVM_ONLY="-Wl,-z,noexecstack -Wl,-O1 -Wl,-z,relro"
+ BASIC_LDFLAGS_JVM_ONLY="-Wl,-O1 -Wl,-z,relro"
- BASIC_LDFLAGS_JDK_LIB_ONLY="-Wl,-z,noexecstack"
- LIBJSIG_NOEXECSTACK_LDFLAGS="-Wl,-z,noexecstack"
elif test "x$TOOLCHAIN_TYPE" = xclang; then
BASIC_LDFLAGS_JVM_ONLY="-mno-omit-leaf-frame-pointer -mstack-alignment=16 \
@@ -103,6 +99,12 @@
BASIC_LDFLAGS_JVM_ONLY="-opt:icf,8 -subsystem:windows"
fi
+ if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
+ if test -n "$HAS_NOEXECSTACK"; then
+ BASIC_LDFLAGS="$BASIC_LDFLAGS -Wl,-z,noexecstack"
+ fi
+ fi
+
# Setup OS-dependent LDFLAGS
if test "x$TOOLCHAIN_TYPE" = xclang || test "x$TOOLCHAIN_TYPE" = xgcc; then
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
@@ -137,6 +139,14 @@
fi
fi
+ # Setup warning flags
+ if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
+ LDFLAGS_WARNINGS_ARE_ERRORS="-Wl,-z,fatal-warnings"
+ else
+ LDFLAGS_WARNINGS_ARE_ERRORS=""
+ fi
+ AC_SUBST(LDFLAGS_WARNINGS_ARE_ERRORS)
+
# Setup LDFLAGS for linking executables
if test "x$TOOLCHAIN_TYPE" = xgcc; then
EXECUTABLE_LDFLAGS="$EXECUTABLE_LDFLAGS -Wl,--allow-shlib-undefined"
--- a/make/autoconf/flags-other.m4 Sat Sep 22 20:31:45 2018 -0700
+++ b/make/autoconf/flags-other.m4 Mon Sep 24 10:59:26 2018 -0700
@@ -31,9 +31,7 @@
AC_DEFUN([FLAGS_SETUP_ARFLAGS],
[
# FIXME: figure out if we should select AR flags depending on OS or toolchain.
- if test "x$OPENJDK_TARGET_OS" = xmacosx; then
- ARFLAGS="-r -mmacosx-version-min=$MACOSX_VERSION_MIN"
- elif test "x$OPENJDK_TARGET_OS" = xaix; then
+ if test "x$OPENJDK_TARGET_OS" = xaix; then
ARFLAGS="-X64"
elif test "x$OPENJDK_TARGET_OS" = xwindows; then
# lib.exe is used as AR to create static libraries.
--- a/make/autoconf/flags.m4 Sat Sep 22 20:31:45 2018 -0700
+++ b/make/autoconf/flags.m4 Mon Sep 24 10:59:26 2018 -0700
@@ -336,8 +336,12 @@
CC_OUT_OPTION='-o$(SPACE)'
# When linking, how to specify the output
LD_OUT_OPTION='-o$(SPACE)'
- # When archiving, how to specify the to be create static archive for object files.
- AR_OUT_OPTION='rcs$(SPACE)'
+ # When archiving, how to specify the destination static archive.
+ if test "x$OPENJDK_TARGET_OS" = xmacosx; then
+ AR_OUT_OPTION='-r -cs$(SPACE)'
+ else
+ AR_OUT_OPTION='-rcs$(SPACE)'
+ fi
fi
AC_SUBST(CC_OUT_OPTION)
AC_SUBST(LD_OUT_OPTION)
--- a/make/autoconf/jdk-options.m4 Sat Sep 22 20:31:45 2018 -0700
+++ b/make/autoconf/jdk-options.m4 Mon Sep 24 10:59:26 2018 -0700
@@ -33,19 +33,8 @@
# modules to compile into the JDK.
AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_VARIANT],
[
- AC_MSG_CHECKING([which variant of the JDK to build])
- AC_ARG_WITH([jdk-variant], [AS_HELP_STRING([--with-jdk-variant],
- [JDK variant to build (normal) @<:@normal@:>@])])
-
- if test "x$with_jdk_variant" = xnormal || test "x$with_jdk_variant" = x; then
- JDK_VARIANT="normal"
- else
- AC_MSG_ERROR([The available JDK variants are: normal])
- fi
-
- AC_SUBST(JDK_VARIANT)
-
- AC_MSG_RESULT([$JDK_VARIANT])
+ # Deprecated in JDK 12
+ BASIC_DEPRECATED_ARG_WITH([jdk-variant])
])
###############################################################################
--- a/make/autoconf/spec.gmk.in Sat Sep 22 20:31:45 2018 -0700
+++ b/make/autoconf/spec.gmk.in Mon Sep 24 10:59:26 2018 -0700
@@ -254,10 +254,6 @@
DEBUG_LEVEL:=@DEBUG_LEVEL@
HOTSPOT_DEBUG_LEVEL:=@HOTSPOT_DEBUG_LEVEL@
-# This is the JDK variant to build.
-# The JDK variant is a name for a specific set of modules to be compiled for the JDK.
-JDK_VARIANT:=@JDK_VARIANT@
-
# Which JVM variants to build (space-separated list)
JVM_VARIANTS := @JVM_VARIANTS@
JVM_VARIANT_MAIN := @JVM_VARIANT_MAIN@
@@ -357,8 +353,6 @@
LIBFFI_LIB_FILE:=@LIBFFI_LIB_FILE@
GRAALUNIT_LIB := @GRAALUNIT_LIB@
-PACKAGE_PATH=@PACKAGE_PATH@
-
# Source file for cacerts
CACERTS_FILE=@CACERTS_FILE@
@@ -429,6 +423,10 @@
DISABLE_WARNING_PREFIX := @DISABLE_WARNING_PREFIX@
CFLAGS_WARNINGS_ARE_ERRORS:=@CFLAGS_WARNINGS_ARE_ERRORS@
+LDFLAGS_WARNINGS_ARE_ERRORS:=@LDFLAGS_WARNINGS_ARE_ERRORS@
+DISABLED_WARNINGS := @DISABLED_WARNINGS@
+DISABLED_WARNINGS_C := @DISABLED_WARNINGS_C@
+DISABLED_WARNINGS_CXX := @DISABLED_WARNINGS_CXX@
# A global flag (true or false) determining if native warnings are considered errors.
WARNINGS_AS_ERRORS := @WARNINGS_AS_ERRORS@
@@ -490,11 +488,6 @@
LIBCXX:=@LIBCXX@
# Compiler and linker flags used when building native tests
-CFLAGS_TESTLIB:=@CFLAGS_TESTLIB@
-CXXFLAGS_TESTLIB:=@CXXFLAGS_TESTLIB@
-CFLAGS_TESTEXE:=@CFLAGS_TESTEXE@
-CXXFLAGS_TESTEXE:=@CXXFLAGS_TESTEXE@
-LDFLAGS_TESTLIB:=@LDFLAGS_TESTLIB@
LDFLAGS_TESTEXE:=@LDFLAGS_TESTEXE@
# BUILD_CC/BUILD_LD is a compiler/linker that generates code that is runnable on the
--- a/make/autoconf/toolchain.m4 Sat Sep 22 20:31:45 2018 -0700
+++ b/make/autoconf/toolchain.m4 Mon Sep 24 10:59:26 2018 -0700
@@ -232,6 +232,7 @@
XCODE_VERSION_OUTPUT=`"$XCODEBUILD" -version 2>&1 | $HEAD -n 1`
$ECHO "$XCODE_VERSION_OUTPUT" | $GREP "Xcode " > /dev/null
if test $? -ne 0; then
+ AC_MSG_NOTICE([xcodebuild output: $XCODE_VERSION_OUTPUT])
AC_MSG_ERROR([Failed to determine Xcode version.])
fi
XCODE_MAJOR_VERSION=`$ECHO $XCODE_VERSION_OUTPUT | \
@@ -995,11 +996,6 @@
# Do some additional checks on the detected tools.
AC_DEFUN_ONCE([TOOLCHAIN_MISC_CHECKS],
[
- # The package path is used only on macosx?
- # FIXME: clean this up, and/or move it elsewhere.
- PACKAGE_PATH=/opt/local
- AC_SUBST(PACKAGE_PATH)
-
# Check for extra potential brokenness.
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
# On Windows, double-check that we got the right compiler.
@@ -1022,6 +1018,12 @@
# This is later checked when setting flags.
fi
+ if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
+ # Check if linker has -z noexecstack.
+ HAS_NOEXECSTACK=`$CC -Wl,--help 2>/dev/null | $GREP 'z noexecstack'`
+ # This is later checked when setting flags.
+ fi
+
# Setup hotspot lecagy names for toolchains
HOTSPOT_TOOLCHAIN_TYPE=$TOOLCHAIN_TYPE
if test "x$TOOLCHAIN_TYPE" = xclang; then
--- a/make/common/NativeCompilation.gmk Sat Sep 22 20:31:45 2018 -0700
+++ b/make/common/NativeCompilation.gmk Mon Sep 24 10:59:26 2018 -0700
@@ -594,9 +594,13 @@
# Pick up disabled warnings, if possible on this platform.
ifneq ($(DISABLE_WARNING_PREFIX), )
$1_EXTRA_CFLAGS += $$(addprefix $(DISABLE_WARNING_PREFIX), \
+ $$(DISABLED_WARNINGS) \
+ $$(DISABLED_WARNINGS_C) \
$$($1_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE)) \
$$($1_DISABLED_WARNINGS_C_$(TOOLCHAIN_TYPE)))
$1_EXTRA_CXXFLAGS += $$(addprefix $(DISABLE_WARNING_PREFIX), \
+ $$(DISABLED_WARNINGS) \
+ $$(DISABLED_WARNINGS_CXX) \
$$($1_DISABLED_WARNINGS_$(TOOLCHAIN_TYPE)) \
$$($1_DISABLED_WARNINGS_CXX_$(TOOLCHAIN_TYPE)))
endif
@@ -614,6 +618,7 @@
ifeq ($$($1_WARNINGS_AS_ERRORS_$(TOOLCHAIN_TYPE)), true)
$1_EXTRA_CFLAGS += $(CFLAGS_WARNINGS_ARE_ERRORS)
$1_EXTRA_CXXFLAGS += $(CFLAGS_WARNINGS_ARE_ERRORS)
+ $1_EXTRA_LDFLAGS += $(LDFLAGS_WARNINGS_ARE_ERRORS)
endif
ifeq (NONE, $$($1_OPTIMIZATION))
@@ -780,8 +785,8 @@
# Pickup extra OPENJDK_TARGET_OS_TYPE and/or OPENJDK_TARGET_OS dependent variables
# for LDFLAGS and LIBS
- $1_EXTRA_LDFLAGS := $$($1_LDFLAGS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_LDFLAGS_$(OPENJDK_TARGET_OS))
- $1_EXTRA_LIBS := $$($1_LIBS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_LIBS_$(OPENJDK_TARGET_OS))
+ $1_EXTRA_LDFLAGS += $$($1_LDFLAGS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_LDFLAGS_$(OPENJDK_TARGET_OS))
+ $1_EXTRA_LIBS += $$($1_LIBS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_LIBS_$(OPENJDK_TARGET_OS))
ifneq ($$($1_REAL_MAPFILE), )
$1_EXTRA_LDFLAGS += $(call SET_SHARED_LIBRARY_MAPFILE,$$($1_REAL_MAPFILE))
endif
--- a/make/common/TestFilesCompilation.gmk Sat Sep 22 20:31:45 2018 -0700
+++ b/make/common/TestFilesCompilation.gmk Mon Sep 24 10:59:26 2018 -0700
@@ -60,14 +60,16 @@
ifeq ($$($1_TYPE), LIBRARY)
$1_PREFIX = lib
$1_OUTPUT_SUBDIR := lib
- $1_CFLAGS += $(CFLAGS_TESTLIB)
- $1_LDFLAGS := $(LDFLAGS_TESTLIB) $(call SET_SHARED_LIBRARY_ORIGIN)
+ $1_BASE_CFLAGS := $(CFLAGS_JDKLIB)
+ $1_BASE_CXXFLAGS := $(CXXFLAGS_JDKLIB)
+ $1_LDFLAGS := $(LDFLAGS_JDKLIB) $(call SET_SHARED_LIBRARY_ORIGIN)
$1_COMPILATION_TYPE := LIBRARY
else ifeq ($$($1_TYPE), PROGRAM)
$1_PREFIX = exe
$1_OUTPUT_SUBDIR := bin
- $1_CFLAGS += $(CFLAGS_TESTEXE)
- $1_LDFLAGS := $(LDFLAGS_TESTEXE)
+ $1_BASE_CFLAGS := $(CFLAGS_JDKEXE)
+ $1_BASE_CXXFLAGS := $(CXXFLAGS_JDKEXE)
+ $1_LDFLAGS := $(LDFLAGS_JDKEXE) $(LDFLAGS_TESTEXE)
$1_COMPILATION_TYPE := EXECUTABLE
else
$$(error Unknown type: $$($1_TYPE))
@@ -92,8 +94,13 @@
INCLUDE_FILES := $$(notdir $$(file)), \
OBJECT_DIR := $$($1_OUTPUT_DIR)/support/$$(name), \
OUTPUT_DIR := $$($1_OUTPUT_DIR)/$$($1_OUTPUT_SUBDIR), \
- CFLAGS := $$($1_CFLAGS) $$($1_CFLAGS_$$(name)), \
+ CFLAGS := $$($1_BASE_CFLAGS) $$($1_CFLAGS) $$($1_CFLAGS_$$(name)), \
+ CXXFLAGS := $$($1_BASE_CXXFLAGS) $$($1_CFLAGS) $$($1_CFLAGS_$$(name)), \
LDFLAGS := $$($1_LDFLAGS) $$($1_LDFLAGS_$$(name)), \
+ DISABLED_WARNINGS_gcc := format undef unused-function unused-value, \
+ DISABLED_WARNINGS_clang := undef format-nonliteral \
+ missing-field-initializers sometimes-uninitialized, \
+ DISABLED_WARNINGS_CXX_solstudio := wvarhidenmem, \
LIBS := $$($1_LIBS_$$(name)), \
TOOLCHAIN := $(if $$(filter %.cpp, $$(file)), TOOLCHAIN_LINK_CXX, TOOLCHAIN_DEFAULT), \
OPTIMIZATION := $$(if $$($1_OPTIMIZATION_$$(name)),$$($1_OPTIMIZATION_$$(name)),LOW), \
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/java.activation-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,64 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+-module name java.activation
+
+-class name javax/activation/ActivationDataFlavor
+
+-class name javax/activation/CommandInfo
+
+-class name javax/activation/CommandMap
+
+-class name javax/activation/CommandObject
+
+-class name javax/activation/DataContentHandler
+
+-class name javax/activation/DataContentHandlerFactory
+
+-class name javax/activation/DataHandler
+
+-class name javax/activation/DataSource
+
+-class name javax/activation/FileDataSource
+
+-class name javax/activation/FileTypeMap
+
+-class name javax/activation/MailcapCommandMap
+
+-class name javax/activation/MimeType
+
+-class name javax/activation/MimeTypeParameterList
+
+-class name javax/activation/MimeTypeParseException
+
+-class name javax/activation/MimetypesFileTypeMap
+
+-class name javax/activation/URLDataSource
+
+-class name javax/activation/UnsupportedDataTypeException
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/java.base-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,4001 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name java.base
+header exports java/io,java/lang,java/lang/annotation,java/lang/invoke,java/lang/module,java/lang/ref,java/lang/reflect,java/math,java/net,java/net/spi,java/nio,java/nio/channels,java/nio/channels/spi,java/nio/charset,java/nio/charset/spi,java/nio/file,java/nio/file/attribute,java/nio/file/spi,java/security,java/security/acl,java/security/cert,java/security/interfaces,java/security/spec,java/text,java/text/spi,java/time,java/time/chrono,java/time/format,java/time/temporal,java/time/zone,java/util,java/util/concurrent,java/util/concurrent/atomic,java/util/concurrent/locks,java/util/function,java/util/jar,java/util/regex,java/util/spi,java/util/stream,java/util/zip,javax/crypto,javax/crypto/interfaces,javax/crypto/spec,javax/net,javax/net/ssl,javax/security/auth,javax/security/auth/callback,javax/security/auth/login,javax/security/auth/spi,javax/security/auth/x500,javax/security/cert uses java/lang/System$LoggerFinder,java/net/ContentHandlerFactory,java/net/spi/URLStreamHandlerProvider,java/nio/channels/spi/AsynchronousChannelProvider,java/nio/channels/spi/SelectorProvider,java/nio/charset/spi/CharsetProvider,java/nio/file/spi/FileSystemProvider,java/nio/file/spi/FileTypeDetector,java/security/Provider,java/text/spi/BreakIteratorProvider,java/text/spi/CollatorProvider,java/text/spi/DateFormatProvider,java/text/spi/DateFormatSymbolsProvider,java/text/spi/DecimalFormatSymbolsProvider,java/text/spi/NumberFormatProvider,java/time/chrono/AbstractChronology,java/time/chrono/Chronology,java/time/zone/ZoneRulesProvider,java/util/spi/CalendarDataProvider,java/util/spi/CalendarNameProvider,java/util/spi/CurrencyNameProvider,java/util/spi/LocaleNameProvider,java/util/spi/ResourceBundleControlProvider,java/util/spi/ResourceBundleProvider,java/util/spi/TimeZoneNameProvider,java/util/spi/ToolProvider,javax/security/auth/spi/LoginModule,jdk/internal/logger/DefaultLoggerFinder,sun/text/spi/JavaTimeDateTimePatternProvider,sun/util/locale/provider/LocaleDataMetaInfo,sun/util/resources/LocaleData$CommonResourceBundleProvider,sun/util/resources/LocaleData$SupplementaryResourceBundleProvider,sun/util/spi/CalendarProvider provides interface\u0020;java/nio/file/spi/FileSystemProvider\u0020;impls\u0020;jdk/internal/jrtfs/JrtFileSystemProvider target linux-amd64 flags 8000
+
+class name java/io/BufferedInputStream
+header extends java/io/FilterInputStream flags 21
+
+class name java/io/BufferedOutputStream
+header extends java/io/FilterOutputStream flags 21
+
+class name java/io/BufferedWriter
+header extends java/io/Writer flags 21
+
+class name java/io/ByteArrayInputStream
+header extends java/io/InputStream flags 21
+method name readAllBytes descriptor ()[B flags 21
+method name readNBytes descriptor ([BII)I flags 1
+method name transferTo descriptor (Ljava/io/OutputStream;)J thrownTypes java/io/IOException flags 21
+
+class name java/io/ByteArrayOutputStream
+header extends java/io/OutputStream flags 21
+method name writeBytes descriptor ([B)V flags 1
+
+class name java/io/CharArrayReader
+header extends java/io/Reader flags 21
+
+class name java/io/CharArrayWriter
+header extends java/io/Writer flags 21
+
+class name java/io/CharConversionException
+header extends java/io/IOException flags 21
+
+class name java/io/Closeable
+header extends java/lang/Object implements java/lang/AutoCloseable flags 601
+
+class name java/io/DataInput
+header extends java/lang/Object flags 601
+
+class name java/io/DataInputStream
+header extends java/io/FilterInputStream implements java/io/DataInput flags 21
+
+class name java/io/DataOutput
+header extends java/lang/Object flags 601
+
+class name java/io/DataOutputStream
+header extends java/io/FilterOutputStream implements java/io/DataOutput flags 21
+
+class name java/io/EOFException
+header extends java/io/IOException flags 21
+
+class name java/io/Externalizable
+header extends java/lang/Object implements java/io/Serializable flags 601
+
+class name java/io/FileFilter
+header extends java/lang/Object flags 601 runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/io/FileNotFoundException
+header extends java/io/IOException flags 21
+
+class name java/io/FileReader
+header extends java/io/InputStreamReader flags 21
+method name <init> descriptor (Ljava/lang/String;Ljava/nio/charset/Charset;)V thrownTypes java/io/IOException flags 1
+method name <init> descriptor (Ljava/io/File;Ljava/nio/charset/Charset;)V thrownTypes java/io/IOException flags 1
+
+class name java/io/FileWriter
+header extends java/io/OutputStreamWriter flags 21
+method name <init> descriptor (Ljava/lang/String;Ljava/nio/charset/Charset;)V thrownTypes java/io/IOException flags 1
+method name <init> descriptor (Ljava/lang/String;Ljava/nio/charset/Charset;Z)V thrownTypes java/io/IOException flags 1
+method name <init> descriptor (Ljava/io/File;Ljava/nio/charset/Charset;)V thrownTypes java/io/IOException flags 1
+method name <init> descriptor (Ljava/io/File;Ljava/nio/charset/Charset;Z)V thrownTypes java/io/IOException flags 1
+
+class name java/io/FilenameFilter
+header extends java/lang/Object flags 601 runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/io/FilterInputStream
+header extends java/io/InputStream flags 21
+
+class name java/io/FilterOutputStream
+header extends java/io/OutputStream flags 21
+
+class name java/io/FilterReader
+header extends java/io/Reader flags 421
+
+class name java/io/FilterWriter
+header extends java/io/Writer flags 421
+
+class name java/io/Flushable
+header extends java/lang/Object flags 601
+
+class name java/io/IOError
+header extends java/lang/Error flags 21
+
+class name java/io/IOException
+header extends java/lang/Exception flags 21
+
+class name java/io/InputStream
+method name nullInputStream descriptor ()Ljava/io/InputStream; flags 9
+method name readNBytes descriptor (I)[B thrownTypes java/io/IOException flags 1
+
+class name java/io/InputStreamReader
+header extends java/io/Reader flags 21
+
+class name java/io/InterruptedIOException
+header extends java/io/IOException flags 21
+
+class name java/io/InvalidClassException
+header extends java/io/ObjectStreamException flags 21
+
+class name java/io/InvalidObjectException
+header extends java/io/ObjectStreamException flags 21
+
+class name java/io/LineNumberInputStream
+header extends java/io/FilterInputStream flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;
+
+class name java/io/LineNumberReader
+header extends java/io/BufferedReader flags 21
+
+class name java/io/NotActiveException
+header extends java/io/ObjectStreamException flags 21
+
+class name java/io/NotSerializableException
+header extends java/io/ObjectStreamException flags 21
+
+class name java/io/ObjectInput
+header extends java/lang/Object implements java/io/DataInput,java/lang/AutoCloseable flags 601
+
+class name java/io/ObjectInputFilter
+header extends java/lang/Object nestMembers java/io/ObjectInputFilter$Config,java/io/ObjectInputFilter$Status,java/io/ObjectInputFilter$FilterInfo flags 601 runtimeAnnotations @Ljava/lang/FunctionalInterface;
+innerclass innerClass java/io/ObjectInputFilter$Config outerClass java/io/ObjectInputFilter innerClassName Config flags 19
+innerclass innerClass java/io/ObjectInputFilter$Status outerClass java/io/ObjectInputFilter innerClassName Status flags 4019
+innerclass innerClass java/io/ObjectInputFilter$FilterInfo outerClass java/io/ObjectInputFilter innerClassName FilterInfo flags 609
+
+class name java/io/ObjectInputFilter$Config
+header extends java/lang/Object nestHost java/io/ObjectInputFilter flags 31
+innerclass innerClass java/io/ObjectInputFilter$Config outerClass java/io/ObjectInputFilter innerClassName Config flags 19
+innerclass innerClass java/lang/System$Logger outerClass java/lang/System innerClassName Logger flags 609
+innerclass innerClass java/lang/System$Logger$Level outerClass java/lang/System$Logger innerClassName Level flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/io/ObjectInputFilter$FilterInfo
+header extends java/lang/Object nestHost java/io/ObjectInputFilter flags 601
+innerclass innerClass java/io/ObjectInputFilter$FilterInfo outerClass java/io/ObjectInputFilter innerClassName FilterInfo flags 609
+
+class name java/io/ObjectInputFilter$Status
+header extends java/lang/Enum nestHost java/io/ObjectInputFilter flags 4031 signature Ljava/lang/Enum<Ljava/io/ObjectInputFilter$Status;>;
+innerclass innerClass java/io/ObjectInputFilter$Status outerClass java/io/ObjectInputFilter innerClassName Status flags 4019
+
+class name java/io/ObjectInputStream
+header extends java/io/InputStream implements java/io/ObjectInput,java/io/ObjectStreamConstants nestMembers java/io/ObjectInputStream$GetField flags 21
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/io/ObjectInputFilter$Status outerClass java/io/ObjectInputFilter innerClassName Status flags 4019
+innerclass innerClass java/lang/System$Logger outerClass java/lang/System innerClassName Logger flags 609
+innerclass innerClass java/lang/System$Logger$Level outerClass java/lang/System$Logger innerClassName Level flags 4019
+innerclass innerClass java/io/ObjectInputFilter$Config outerClass java/io/ObjectInputFilter innerClassName Config flags 19
+innerclass innerClass java/io/ObjectInputFilter$FilterInfo outerClass java/io/ObjectInputFilter innerClassName FilterInfo flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/io/ObjectInputStream$GetField
+header extends java/lang/Object nestHost java/io/ObjectInputStream flags 421
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+
+class name java/io/ObjectInputValidation
+header extends java/lang/Object flags 601
+
+class name java/io/ObjectOutput
+header extends java/lang/Object implements java/io/DataOutput,java/lang/AutoCloseable flags 601
+
+class name java/io/ObjectOutputStream
+header extends java/io/OutputStream implements java/io/ObjectOutput,java/io/ObjectStreamConstants nestMembers java/io/ObjectOutputStream$PutField flags 21
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+
+class name java/io/ObjectOutputStream$PutField
+header extends java/lang/Object nestHost java/io/ObjectOutputStream flags 421
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+
+class name java/io/ObjectStreamConstants
+header extends java/lang/Object flags 601
+
+class name java/io/ObjectStreamException
+header extends java/io/IOException flags 421
+
+class name java/io/ObjectStreamField
+header extends java/lang/Object implements java/lang/Comparable flags 21 signature Ljava/lang/Object;Ljava/lang/Comparable<Ljava/lang/Object;>;
+
+class name java/io/OptionalDataException
+header extends java/io/ObjectStreamException flags 21
+
+class name java/io/OutputStream
+method name nullOutputStream descriptor ()Ljava/io/OutputStream; flags 9
+
+class name java/io/OutputStreamWriter
+header extends java/io/Writer flags 21
+
+class name java/io/PipedInputStream
+header extends java/io/InputStream flags 21
+
+class name java/io/PipedOutputStream
+header extends java/io/OutputStream flags 21
+
+class name java/io/PipedReader
+header extends java/io/Reader flags 21
+
+class name java/io/PipedWriter
+header extends java/io/Writer flags 21
+
+class name java/io/PrintStream
+header extends java/io/FilterOutputStream implements java/lang/Appendable,java/io/Closeable flags 21
+innerclass innerClass java/util/Locale$Category outerClass java/util/Locale innerClassName Category flags 4019
+
+class name java/io/PrintWriter
+header extends java/io/Writer flags 21
+
+class name java/io/PushbackInputStream
+header extends java/io/FilterInputStream flags 21
+
+class name java/io/PushbackReader
+header extends java/io/FilterReader flags 21
+
+class name java/io/Reader
+method name nullReader descriptor ()Ljava/io/Reader; flags 9
+
+class name java/io/SequenceInputStream
+header extends java/io/InputStream flags 21
+
+class name java/io/Serializable
+header extends java/lang/Object flags 601
+
+class name java/io/SerializablePermission
+header extends java/security/BasicPermission flags 31
+
+class name java/io/StreamCorruptedException
+header extends java/io/ObjectStreamException flags 21
+
+class name java/io/StreamTokenizer
+header extends java/lang/Object flags 21
+
+class name java/io/StringBufferInputStream
+header extends java/io/InputStream flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;
+
+class name java/io/StringReader
+header extends java/io/Reader flags 21
+
+class name java/io/StringWriter
+header extends java/io/Writer flags 21
+
+class name java/io/SyncFailedException
+header extends java/io/IOException flags 21
+
+class name java/io/UTFDataFormatException
+header extends java/io/IOException flags 21
+
+class name java/io/UncheckedIOException
+header extends java/lang/RuntimeException flags 21
+
+class name java/io/UnsupportedEncodingException
+header extends java/io/IOException flags 21
+
+class name java/io/WriteAbortedException
+header extends java/io/ObjectStreamException flags 21
+
+class name java/io/Writer
+method name nullWriter descriptor ()Ljava/io/Writer; flags 9
+
+class name java/lang/AbstractMethodError
+header extends java/lang/IncompatibleClassChangeError flags 21
+
+class name java/lang/AbstractStringBuilder
+header extends java/lang/Object implements java/lang/Appendable,java/lang/CharSequence flags 420
+innerclass innerClass java/util/Spliterator$OfInt outerClass java/util/Spliterator innerClassName OfInt flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/lang/Appendable
+header extends java/lang/Object flags 601
+
+class name java/lang/ArithmeticException
+header extends java/lang/RuntimeException flags 21
+
+class name java/lang/ArrayIndexOutOfBoundsException
+header extends java/lang/IndexOutOfBoundsException flags 21
+
+class name java/lang/ArrayStoreException
+header extends java/lang/RuntimeException flags 21
+
+class name java/lang/AssertionError
+header extends java/lang/Error flags 21
+
+class name java/lang/AutoCloseable
+header extends java/lang/Object flags 601
+
+class name java/lang/Boolean
+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/Boolean;>;
+
+class name java/lang/BootstrapMethodError
+header extends java/lang/LinkageError flags 21
+
+class name java/lang/CharSequence
+method name compare descriptor (Ljava/lang/CharSequence;Ljava/lang/CharSequence;)I flags 9
+
+class name java/lang/Character
+header extends java/lang/Object implements java/io/Serializable,java/lang/Comparable nestMembers java/lang/Character$UnicodeScript,java/lang/Character$UnicodeBlock,java/lang/Character$Subset flags 31 signature Ljava/lang/Object;Ljava/io/Serializable;Ljava/lang/Comparable<Ljava/lang/Character;>;
+innerclass innerClass java/lang/Character$UnicodeScript outerClass java/lang/Character innerClassName UnicodeScript flags 4019
+innerclass innerClass java/lang/Character$UnicodeBlock outerClass java/lang/Character innerClassName UnicodeBlock flags 19
+innerclass innerClass java/lang/Character$Subset outerClass java/lang/Character innerClassName Subset flags 9
+method name toString descriptor (I)Ljava/lang/String; flags 9
+
+class name java/lang/Character$Subset
+header extends java/lang/Object nestHost java/lang/Character flags 21
+innerclass innerClass java/lang/Character$Subset outerClass java/lang/Character innerClassName Subset flags 9
+
+class name java/lang/Character$UnicodeBlock
+header extends java/lang/Character$Subset nestHost java/lang/Character flags 31
+innerclass innerClass java/lang/Character$UnicodeBlock outerClass java/lang/Character innerClassName UnicodeBlock flags 19
+innerclass innerClass java/lang/Character$Subset outerClass java/lang/Character innerClassName Subset flags 9
+field name SYRIAC_SUPPLEMENT descriptor Ljava/lang/Character$UnicodeBlock; flags 19
+field name CYRILLIC_EXTENDED_C descriptor Ljava/lang/Character$UnicodeBlock; flags 19
+field name OSAGE descriptor Ljava/lang/Character$UnicodeBlock; flags 19
+field name NEWA descriptor Ljava/lang/Character$UnicodeBlock; flags 19
+field name MONGOLIAN_SUPPLEMENT descriptor Ljava/lang/Character$UnicodeBlock; flags 19
+field name MARCHEN descriptor Ljava/lang/Character$UnicodeBlock; flags 19
+field name IDEOGRAPHIC_SYMBOLS_AND_PUNCTUATION descriptor Ljava/lang/Character$UnicodeBlock; flags 19
+field name TANGUT descriptor Ljava/lang/Character$UnicodeBlock; flags 19
+field name TANGUT_COMPONENTS descriptor Ljava/lang/Character$UnicodeBlock; flags 19
+field name KANA_EXTENDED_A descriptor Ljava/lang/Character$UnicodeBlock; flags 19
+field name GLAGOLITIC_SUPPLEMENT descriptor Ljava/lang/Character$UnicodeBlock; flags 19
+field name ADLAM descriptor Ljava/lang/Character$UnicodeBlock; flags 19
+field name MASARAM_GONDI descriptor Ljava/lang/Character$UnicodeBlock; flags 19
+field name ZANABAZAR_SQUARE descriptor Ljava/lang/Character$UnicodeBlock; flags 19
+field name NUSHU descriptor Ljava/lang/Character$UnicodeBlock; flags 19
+field name SOYOMBO descriptor Ljava/lang/Character$UnicodeBlock; flags 19
+field name BHAIKSUKI descriptor Ljava/lang/Character$UnicodeBlock; flags 19
+field name CJK_UNIFIED_IDEOGRAPHS_EXTENSION_F descriptor Ljava/lang/Character$UnicodeBlock; flags 19
+
+class name java/lang/Character$UnicodeScript
+header extends java/lang/Enum nestHost java/lang/Character flags 4031 signature Ljava/lang/Enum<Ljava/lang/Character$UnicodeScript;>;
+innerclass innerClass java/lang/Character$UnicodeScript outerClass java/lang/Character innerClassName UnicodeScript flags 4019
+field name ADLAM descriptor Ljava/lang/Character$UnicodeScript; flags 4019
+field name BHAIKSUKI descriptor Ljava/lang/Character$UnicodeScript; flags 4019
+field name MARCHEN descriptor Ljava/lang/Character$UnicodeScript; flags 4019
+field name NEWA descriptor Ljava/lang/Character$UnicodeScript; flags 4019
+field name OSAGE descriptor Ljava/lang/Character$UnicodeScript; flags 4019
+field name TANGUT descriptor Ljava/lang/Character$UnicodeScript; flags 4019
+field name MASARAM_GONDI descriptor Ljava/lang/Character$UnicodeScript; flags 4019
+field name NUSHU descriptor Ljava/lang/Character$UnicodeScript; flags 4019
+field name SOYOMBO descriptor Ljava/lang/Character$UnicodeScript; flags 4019
+field name ZANABAZAR_SQUARE descriptor Ljava/lang/Character$UnicodeScript; flags 4019
+
+class name java/lang/Class
+method name getNestHost descriptor ()Ljava/lang/Class; flags 1 signature ()Ljava/lang/Class<*>; runtimeAnnotations @Ljdk/internal/reflect/CallerSensitive;
+method name isNestmateOf descriptor (Ljava/lang/Class;)Z flags 1 signature (Ljava/lang/Class<*>;)Z
+method name getNestMembers descriptor ()[Ljava/lang/Class; flags 1 signature ()[Ljava/lang/Class<*>; runtimeAnnotations @Ljdk/internal/reflect/CallerSensitive;
+
+class name java/lang/ClassCastException
+header extends java/lang/RuntimeException flags 21
+
+class name java/lang/ClassCircularityError
+header extends java/lang/LinkageError flags 21
+
+class name java/lang/ClassFormatError
+header extends java/lang/LinkageError flags 21
+
+class name java/lang/ClassNotFoundException
+header extends java/lang/ReflectiveOperationException flags 21
+
+class name java/lang/CloneNotSupportedException
+header extends java/lang/Exception flags 21
+
+class name java/lang/Cloneable
+header extends java/lang/Object flags 601
+
+class name java/lang/Comparable
+header extends java/lang/Object flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object;
+
+class name java/lang/Compiler
+header extends java/lang/Object flags 31 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+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;)@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;CONSTRUCTOR;eLjava/lang/annotation/ElementType;FIELD;eLjava/lang/annotation/ElementType;LOCAL_VARIABLE;eLjava/lang/annotation/ElementType;METHOD;eLjava/lang/annotation/ElementType;PACKAGE;eLjava/lang/annotation/ElementType;MODULE;eLjava/lang/annotation/ElementType;PARAMETER;eLjava/lang/annotation/ElementType;TYPE;})
+
+class name java/lang/Double
+header extends java/lang/Number implements java/lang/Comparable flags 31 signature Ljava/lang/Number;Ljava/lang/Comparable<Ljava/lang/Double;>;
+
+class name java/lang/Enum
+header extends java/lang/Object implements java/lang/Comparable,java/io/Serializable flags 421 signature <E:Ljava/lang/Enum<TE;>;>Ljava/lang/Object;Ljava/lang/Comparable<TE;>;Ljava/io/Serializable;
+
+class name java/lang/EnumConstantNotPresentException
+header extends java/lang/RuntimeException flags 21
+
+class name java/lang/Error
+header extends java/lang/Throwable flags 21
+
+class name java/lang/Exception
+header extends java/lang/Throwable flags 21
+
+class name java/lang/ExceptionInInitializerError
+header extends java/lang/LinkageError flags 21
+
+class name java/lang/Float
+header extends java/lang/Number implements java/lang/Comparable flags 31 signature Ljava/lang/Number;Ljava/lang/Comparable<Ljava/lang/Float;>;
+
+class name java/lang/FunctionalInterface
+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;)@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;TYPE;})
+
+class name java/lang/IllegalAccessError
+header extends java/lang/IncompatibleClassChangeError flags 21
+
+class name java/lang/IllegalAccessException
+header extends java/lang/ReflectiveOperationException flags 21
+
+class name java/lang/IllegalArgumentException
+header extends java/lang/RuntimeException flags 21
+
+class name java/lang/IllegalCallerException
+header extends java/lang/RuntimeException flags 21
+
+class name java/lang/IllegalMonitorStateException
+header extends java/lang/RuntimeException flags 21
+
+class name java/lang/IllegalStateException
+header extends java/lang/RuntimeException flags 21
+
+class name java/lang/IllegalThreadStateException
+header extends java/lang/IllegalArgumentException flags 21
+
+class name java/lang/IncompatibleClassChangeError
+header extends java/lang/LinkageError flags 21
+
+class name java/lang/IndexOutOfBoundsException
+header extends java/lang/RuntimeException flags 21
+
+class name java/lang/InheritableThreadLocal
+header extends java/lang/ThreadLocal flags 21 signature <T:Ljava/lang/Object;>Ljava/lang/ThreadLocal<TT;>;
+
+class name java/lang/InstantiationError
+header extends java/lang/IncompatibleClassChangeError flags 21
+
+class name java/lang/InstantiationException
+header extends java/lang/ReflectiveOperationException flags 21
+
+class name java/lang/InternalError
+header extends java/lang/VirtualMachineError flags 21
+
+class name java/lang/InterruptedException
+header extends java/lang/Exception flags 21
+
+class name java/lang/Iterable
+header extends java/lang/Object flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object;
+
+class name java/lang/LayerInstantiationException
+header extends java/lang/RuntimeException flags 21
+
+class name java/lang/LinkageError
+header extends java/lang/Error flags 21
+
+class name java/lang/ModuleLayer
+header extends java/lang/Object nestMembers java/lang/ModuleLayer$Controller flags 31
+innerclass innerClass java/lang/ModuleLayer$Controller outerClass java/lang/ModuleLayer innerClassName Controller flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/lang/ModuleLayer$Controller
+header extends java/lang/Object nestHost java/lang/ModuleLayer flags 31
+innerclass innerClass java/lang/ModuleLayer$Controller outerClass java/lang/ModuleLayer innerClassName Controller flags 19
+
+class name java/lang/NamedPackage
+header extends java/lang/Object flags 20
+
+class name java/lang/NegativeArraySizeException
+header extends java/lang/RuntimeException flags 21
+
+class name java/lang/NoClassDefFoundError
+header extends java/lang/LinkageError flags 21
+
+class name java/lang/NoSuchFieldError
+header extends java/lang/IncompatibleClassChangeError flags 21
+
+class name java/lang/NoSuchFieldException
+header extends java/lang/ReflectiveOperationException flags 21
+
+class name java/lang/NoSuchMethodError
+header extends java/lang/IncompatibleClassChangeError flags 21
+
+class name java/lang/NoSuchMethodException
+header extends java/lang/ReflectiveOperationException flags 21
+
+class name java/lang/NullPointerException
+header extends java/lang/RuntimeException flags 21
+
+class name java/lang/Number
+header extends java/lang/Object implements java/io/Serializable flags 421
+
+class name java/lang/NumberFormatException
+header extends java/lang/IllegalArgumentException flags 21
+
+class name java/lang/Object
+header flags 21
+
+class name java/lang/OutOfMemoryError
+header extends java/lang/VirtualMachineError flags 21
+
+class name java/lang/Override
+header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;METHOD;})@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;SOURCE;)
+
+class name java/lang/ProcessBuilder
+header extends java/lang/Object nestMembers java/lang/ProcessBuilder$Redirect,java/lang/ProcessBuilder$Redirect$Type flags 31
+innerclass innerClass java/lang/ProcessBuilder$Redirect outerClass java/lang/ProcessBuilder innerClassName Redirect flags 409
+innerclass innerClass java/lang/ProcessBuilder$Redirect$Type outerClass java/lang/ProcessBuilder$Redirect innerClassName Type flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/lang/ProcessBuilder$Redirect
+header extends java/lang/Object nestHost java/lang/ProcessBuilder flags 421
+innerclass innerClass java/lang/ProcessBuilder$Redirect outerClass java/lang/ProcessBuilder innerClassName Redirect flags 409
+innerclass innerClass java/lang/ProcessBuilder$Redirect$Type outerClass java/lang/ProcessBuilder$Redirect innerClassName Type flags 4019
+
+class name java/lang/ProcessBuilder$Redirect$Type
+header extends java/lang/Enum nestHost java/lang/ProcessBuilder flags 4031 signature Ljava/lang/Enum<Ljava/lang/ProcessBuilder$Redirect$Type;>;
+innerclass innerClass java/lang/ProcessBuilder$Redirect outerClass java/lang/ProcessBuilder innerClassName Redirect flags 409
+innerclass innerClass java/lang/ProcessBuilder$Redirect$Type outerClass java/lang/ProcessBuilder$Redirect innerClassName Type flags 4019
+
+class name java/lang/ProcessHandle
+header extends java/lang/Object implements java/lang/Comparable nestMembers java/lang/ProcessHandle$Info flags 601 signature Ljava/lang/Object;Ljava/lang/Comparable<Ljava/lang/ProcessHandle;>;
+innerclass innerClass java/lang/ProcessHandle$Info outerClass java/lang/ProcessHandle innerClassName Info flags 609
+
+class name java/lang/ProcessHandle$Info
+header extends java/lang/Object nestHost java/lang/ProcessHandle flags 601
+innerclass innerClass java/lang/ProcessHandle$Info outerClass java/lang/ProcessHandle innerClassName Info flags 609
+
+class name java/lang/Readable
+header extends java/lang/Object flags 601
+
+class name java/lang/ReflectiveOperationException
+header extends java/lang/Exception flags 21
+
+class name java/lang/Runnable
+header extends java/lang/Object flags 601 runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/lang/Runtime
+header extends java/lang/Object nestMembers java/lang/Runtime$Version flags 21
+innerclass innerClass java/lang/Runtime$Version outerClass java/lang/Runtime innerClassName Version flags 19
+-method name runFinalizersOnExit descriptor (Z)V
+
+class name java/lang/Runtime$Version
+header extends java/lang/Object implements java/lang/Comparable nestHost java/lang/Runtime flags 31 signature Ljava/lang/Object;Ljava/lang/Comparable<Ljava/lang/Runtime$Version;>;
+innerclass innerClass java/lang/Runtime$Version outerClass java/lang/Runtime innerClassName Version flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/lang/RuntimeException
+header extends java/lang/Exception flags 21
+
+class name java/lang/RuntimePermission
+header extends java/security/BasicPermission flags 31
+
+class name java/lang/SafeVarargs
+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;)@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;CONSTRUCTOR;eLjava/lang/annotation/ElementType;METHOD;})
+
+class name java/lang/SecurityException
+header extends java/lang/RuntimeException flags 21
+
+class name java/lang/SecurityManager
+-method name checkTopLevelWindow descriptor (Ljava/lang/Object;)Z
+-method name checkSystemClipboardAccess descriptor ()V
+-method name checkAwtEventQueueAccess descriptor ()V
+-method name checkMemberAccess descriptor (Ljava/lang/Class;I)V
+
+class name java/lang/StackOverflowError
+header extends java/lang/VirtualMachineError flags 21
+
+class name java/lang/StackWalker
+header extends java/lang/Object nestMembers java/lang/StackWalker$Option,java/lang/StackWalker$StackFrame flags 31
+innerclass innerClass java/lang/StackWalker$Option outerClass java/lang/StackWalker innerClassName Option flags 4019
+innerclass innerClass java/lang/StackWalker$StackFrame outerClass java/lang/StackWalker innerClassName StackFrame flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/lang/StackWalker$Option
+header extends java/lang/Enum nestHost java/lang/StackWalker flags 4031 signature Ljava/lang/Enum<Ljava/lang/StackWalker$Option;>;
+innerclass innerClass java/lang/StackWalker$Option outerClass java/lang/StackWalker innerClassName Option flags 4019
+
+class name java/lang/StackWalker$StackFrame
+header extends java/lang/Object nestHost java/lang/StackWalker flags 601
+innerclass innerClass java/lang/StackWalker$StackFrame outerClass java/lang/StackWalker innerClassName StackFrame flags 609
+
+class name java/lang/String
+method name strip descriptor ()Ljava/lang/String; flags 1
+method name stripLeading descriptor ()Ljava/lang/String; flags 1
+method name stripTrailing descriptor ()Ljava/lang/String; flags 1
+method name isBlank descriptor ()Z flags 1
+method name lines descriptor ()Ljava/util/stream/Stream; flags 1 signature ()Ljava/util/stream/Stream<Ljava/lang/String;>;
+method name repeat descriptor (I)Ljava/lang/String; flags 1
+
+class name java/lang/StringBuffer
+header extends java/lang/AbstractStringBuilder implements java/io/Serializable,java/lang/Comparable,java/lang/CharSequence flags 31 signature Ljava/lang/AbstractStringBuilder;Ljava/io/Serializable;Ljava/lang/Comparable<Ljava/lang/StringBuffer;>;Ljava/lang/CharSequence;
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+method name compareTo descriptor (Ljava/lang/StringBuffer;)I flags 21
+method name compareTo descriptor (Ljava/lang/Object;)I flags 1041
+
+class name java/lang/StringBuilder
+header extends java/lang/AbstractStringBuilder implements java/io/Serializable,java/lang/Comparable,java/lang/CharSequence flags 31 signature Ljava/lang/AbstractStringBuilder;Ljava/io/Serializable;Ljava/lang/Comparable<Ljava/lang/StringBuilder;>;Ljava/lang/CharSequence;
+method name compareTo descriptor (Ljava/lang/StringBuilder;)I flags 1
+method name compareTo descriptor (Ljava/lang/Object;)I flags 1041
+
+class name java/lang/StringIndexOutOfBoundsException
+header extends java/lang/IndexOutOfBoundsException flags 21
+
+class name java/lang/SuppressWarnings
+header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;TYPE;eLjava/lang/annotation/ElementType;FIELD;eLjava/lang/annotation/ElementType;METHOD;eLjava/lang/annotation/ElementType;PARAMETER;eLjava/lang/annotation/ElementType;CONSTRUCTOR;eLjava/lang/annotation/ElementType;LOCAL_VARIABLE;eLjava/lang/annotation/ElementType;MODULE;})@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;SOURCE;)
+
+class name java/lang/System
+header extends java/lang/Object nestMembers java/lang/System$LoggerFinder,java/lang/System$Logger,java/lang/System$Logger$Level flags 31
+innerclass innerClass java/lang/System$LoggerFinder outerClass java/lang/System innerClassName LoggerFinder flags 409
+innerclass innerClass java/lang/System$Logger outerClass java/lang/System innerClassName Logger flags 609
+innerclass innerClass java/lang/System$Logger$Level outerClass java/lang/System$Logger innerClassName Level flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+-method name runFinalizersOnExit descriptor (Z)V
+
+class name java/lang/System$Logger
+header extends java/lang/Object nestHost java/lang/System flags 601
+innerclass innerClass java/lang/System$Logger outerClass java/lang/System innerClassName Logger flags 609
+innerclass innerClass java/lang/System$Logger$Level outerClass java/lang/System$Logger innerClassName Level flags 4019
+
+class name java/lang/System$Logger$Level
+header extends java/lang/Enum nestHost java/lang/System flags 4031 signature Ljava/lang/Enum<Ljava/lang/System$Logger$Level;>;
+innerclass innerClass java/lang/System$Logger outerClass java/lang/System innerClassName Logger flags 609
+innerclass innerClass java/lang/System$Logger$Level outerClass java/lang/System$Logger innerClassName Level flags 4019
+
+class name java/lang/System$LoggerFinder
+header extends java/lang/Object nestHost java/lang/System flags 421
+innerclass innerClass java/lang/System$LoggerFinder outerClass java/lang/System innerClassName LoggerFinder flags 409
+innerclass innerClass java/lang/System$Logger outerClass java/lang/System innerClassName Logger flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/lang/Thread
+header extends java/lang/Object implements java/lang/Runnable nestMembers java/lang/Thread$UncaughtExceptionHandler,java/lang/Thread$State flags 21
+innerclass innerClass java/lang/Thread$UncaughtExceptionHandler outerClass java/lang/Thread innerClassName UncaughtExceptionHandler flags 609
+innerclass innerClass java/lang/Thread$State outerClass java/lang/Thread innerClassName State flags 4019
+-method name stop descriptor (Ljava/lang/Throwable;)V
+-method name destroy descriptor ()V
+
+class name java/lang/Thread$State
+header extends java/lang/Enum nestHost java/lang/Thread flags 4031 signature Ljava/lang/Enum<Ljava/lang/Thread$State;>;
+innerclass innerClass java/lang/Thread$State outerClass java/lang/Thread innerClassName State flags 4019
+
+class name java/lang/Thread$UncaughtExceptionHandler
+header extends java/lang/Object nestHost java/lang/Thread flags 601 runtimeAnnotations @Ljava/lang/FunctionalInterface;
+innerclass innerClass java/lang/Thread$UncaughtExceptionHandler outerClass java/lang/Thread innerClassName UncaughtExceptionHandler flags 609
+
+class name java/lang/ThreadDeath
+header extends java/lang/Error flags 21
+
+class name java/lang/ThreadGroup
+header extends java/lang/Object implements java/lang/Thread$UncaughtExceptionHandler flags 21
+innerclass innerClass java/lang/Thread$UncaughtExceptionHandler outerClass java/lang/Thread innerClassName UncaughtExceptionHandler flags 609
+
+class name java/lang/TypeNotPresentException
+header extends java/lang/RuntimeException flags 21
+
+class name java/lang/UnknownError
+header extends java/lang/VirtualMachineError flags 21
+
+class name java/lang/UnsatisfiedLinkError
+header extends java/lang/LinkageError flags 21
+
+class name java/lang/UnsupportedClassVersionError
+header extends java/lang/ClassFormatError flags 21
+
+class name java/lang/UnsupportedOperationException
+header extends java/lang/RuntimeException flags 21
+
+class name java/lang/VerifyError
+header extends java/lang/LinkageError flags 21
+
+class name java/lang/VirtualMachineError
+header extends java/lang/Error flags 421
+
+class name java/lang/Void
+header extends java/lang/Object flags 31
+
+class name java/lang/annotation/Annotation
+header extends java/lang/Object flags 601
+
+class name java/lang/annotation/AnnotationFormatError
+header extends java/lang/Error flags 21
+
+class name java/lang/annotation/AnnotationTypeMismatchException
+header extends java/lang/RuntimeException flags 21
+
+class name java/lang/annotation/Documented
+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;)@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;ANNOTATION_TYPE;})
+
+class name java/lang/annotation/ElementType
+header extends java/lang/Enum flags 4031 signature Ljava/lang/Enum<Ljava/lang/annotation/ElementType;>;
+
+class name java/lang/annotation/IncompleteAnnotationException
+header extends java/lang/RuntimeException flags 21
+
+class name java/lang/annotation/Inherited
+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;)@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;ANNOTATION_TYPE;})
+
+class name java/lang/annotation/Native
+header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljava/lang/annotation/Documented;@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;FIELD;})@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;SOURCE;)
+
+class name java/lang/annotation/Repeatable
+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;)@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;ANNOTATION_TYPE;})
+
+class name java/lang/annotation/Retention
+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;)@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;ANNOTATION_TYPE;})
+
+class name java/lang/annotation/RetentionPolicy
+header extends java/lang/Enum flags 4031 signature Ljava/lang/Enum<Ljava/lang/annotation/RetentionPolicy;>;
+
+class name java/lang/annotation/Target
+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;)@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;ANNOTATION_TYPE;})
+
+class name java/lang/invoke/CallSite
+header extends java/lang/Object flags 421
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/lang/invoke/ConstantBootstraps
+header extends java/lang/Object flags 31
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+method name <init> descriptor ()V flags 1
+method name nullConstant descriptor (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object; flags 9 signature (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/Class<*>;)Ljava/lang/Object;
+method name primitiveClass descriptor (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Class; flags 9 signature (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/Class<*>;)Ljava/lang/Class<*>;
+method name enumConstant descriptor (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Enum; flags 9 signature <E:Ljava/lang/Enum<TE;>;>(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/Class<TE;>;)TE;
+method name getStaticFinal descriptor (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/Object; flags 9 signature (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/Class<*>;Ljava/lang/Class<*>;)Ljava/lang/Object;
+method name getStaticFinal descriptor (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object; flags 9 signature (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/Class<*>;)Ljava/lang/Object;
+method name invoke descriptor (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/Class;Ljava/lang/invoke/MethodHandle;[Ljava/lang/Object;)Ljava/lang/Object; thrownTypes java/lang/Throwable flags 89 signature (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/Class<*>;Ljava/lang/invoke/MethodHandle;[Ljava/lang/Object;)Ljava/lang/Object;
+method name fieldVarHandle descriptor (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/VarHandle; flags 9 signature (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/Class<Ljava/lang/invoke/VarHandle;>;Ljava/lang/Class<*>;Ljava/lang/Class<*>;)Ljava/lang/invoke/VarHandle;
+method name staticFieldVarHandle descriptor (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/VarHandle; flags 9 signature (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/Class<Ljava/lang/invoke/VarHandle;>;Ljava/lang/Class<*>;Ljava/lang/Class<*>;)Ljava/lang/invoke/VarHandle;
+method name arrayVarHandle descriptor (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/VarHandle; flags 9 signature (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/Class<Ljava/lang/invoke/VarHandle;>;Ljava/lang/Class<*>;)Ljava/lang/invoke/VarHandle;
+
+class name java/lang/invoke/ConstantCallSite
+header extends java/lang/invoke/CallSite flags 21
+
+class name java/lang/invoke/LambdaConversionException
+header extends java/lang/Exception flags 21
+
+class name java/lang/invoke/LambdaMetafactory
+header extends java/lang/Object flags 31
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/lang/invoke/MethodHandleInfo
+header extends java/lang/Object flags 601
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/lang/invoke/MethodHandles
+header extends java/lang/Object nestMembers java/lang/invoke/MethodHandles$Lookup flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+innerclass innerClass java/lang/invoke/VarHandle$AccessMode outerClass java/lang/invoke/VarHandle innerClassName AccessMode flags 4019
+
+class name java/lang/invoke/MethodHandles$Lookup
+header extends java/lang/Object nestHost java/lang/invoke/MethodHandles flags 31
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+innerclass innerClass java/lang/invoke/VarHandle$AccessMode outerClass java/lang/invoke/VarHandle innerClassName AccessMode flags 4019
+
+class name java/lang/invoke/MutableCallSite
+header extends java/lang/invoke/CallSite flags 21
+
+class name java/lang/invoke/StringConcatException
+header extends java/lang/Exception flags 21
+
+class name java/lang/invoke/SwitchPoint
+header extends java/lang/Object flags 21
+
+class name java/lang/invoke/VarHandle
+header extends java/lang/Object nestMembers java/lang/invoke/VarHandle$AccessMode flags 421
+innerclass innerClass java/lang/invoke/VarHandle$AccessMode outerClass java/lang/invoke/VarHandle innerClassName AccessMode flags 4019
+
+class name java/lang/invoke/VarHandle$AccessMode
+header extends java/lang/Enum nestHost java/lang/invoke/VarHandle flags 4031 signature Ljava/lang/Enum<Ljava/lang/invoke/VarHandle$AccessMode;>;
+innerclass innerClass java/lang/invoke/VarHandle$AccessMode outerClass java/lang/invoke/VarHandle innerClassName AccessMode flags 4019
+
+class name java/lang/invoke/VolatileCallSite
+header extends java/lang/invoke/CallSite flags 21
+
+class name java/lang/invoke/WrongMethodTypeException
+header extends java/lang/RuntimeException flags 21
+
+class name java/lang/module/Configuration
+header extends java/lang/Object flags 31
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/lang/module/FindException
+header extends java/lang/RuntimeException flags 21
+
+class name java/lang/module/InvalidModuleDescriptorException
+header extends java/lang/RuntimeException flags 21
+
+class name java/lang/module/ModuleDescriptor
+header extends java/lang/Object implements java/lang/Comparable nestMembers java/lang/module/ModuleDescriptor$Builder,java/lang/module/ModuleDescriptor$Version,java/lang/module/ModuleDescriptor$Provides,java/lang/module/ModuleDescriptor$Opens,java/lang/module/ModuleDescriptor$Opens$Modifier,java/lang/module/ModuleDescriptor$Exports,java/lang/module/ModuleDescriptor$Exports$Modifier,java/lang/module/ModuleDescriptor$Requires,java/lang/module/ModuleDescriptor$Requires$Modifier,java/lang/module/ModuleDescriptor$Modifier flags 21 signature Ljava/lang/Object;Ljava/lang/Comparable<Ljava/lang/module/ModuleDescriptor;>;
+innerclass innerClass java/lang/module/ModuleDescriptor$Builder outerClass java/lang/module/ModuleDescriptor innerClassName Builder flags 19
+innerclass innerClass java/lang/module/ModuleDescriptor$Version outerClass java/lang/module/ModuleDescriptor innerClassName Version flags 19
+innerclass innerClass java/lang/module/ModuleDescriptor$Provides outerClass java/lang/module/ModuleDescriptor innerClassName Provides flags 19
+innerclass innerClass java/lang/module/ModuleDescriptor$Opens outerClass java/lang/module/ModuleDescriptor innerClassName Opens flags 19
+innerclass innerClass java/lang/module/ModuleDescriptor$Exports outerClass java/lang/module/ModuleDescriptor innerClassName Exports flags 19
+innerclass innerClass java/lang/module/ModuleDescriptor$Requires outerClass java/lang/module/ModuleDescriptor innerClassName Requires flags 19
+innerclass innerClass java/lang/module/ModuleDescriptor$Modifier outerClass java/lang/module/ModuleDescriptor innerClassName Modifier flags 4019
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+innerclass innerClass java/lang/module/ModuleDescriptor$Opens$Modifier outerClass java/lang/module/ModuleDescriptor$Opens innerClassName Modifier flags 4019
+innerclass innerClass java/lang/module/ModuleDescriptor$Exports$Modifier outerClass java/lang/module/ModuleDescriptor$Exports innerClassName Modifier flags 4019
+innerclass innerClass java/lang/module/ModuleDescriptor$Requires$Modifier outerClass java/lang/module/ModuleDescriptor$Requires innerClassName Modifier flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/lang/module/ModuleDescriptor$Builder
+header extends java/lang/Object nestHost java/lang/module/ModuleDescriptor flags 31
+innerclass innerClass java/lang/module/ModuleDescriptor$Modifier outerClass java/lang/module/ModuleDescriptor innerClassName Modifier flags 4019
+innerclass innerClass java/lang/module/ModuleDescriptor$Requires outerClass java/lang/module/ModuleDescriptor innerClassName Requires flags 19
+innerclass innerClass java/lang/module/ModuleDescriptor$Exports outerClass java/lang/module/ModuleDescriptor innerClassName Exports flags 19
+innerclass innerClass java/lang/module/ModuleDescriptor$Opens outerClass java/lang/module/ModuleDescriptor innerClassName Opens flags 19
+innerclass innerClass java/lang/module/ModuleDescriptor$Provides outerClass java/lang/module/ModuleDescriptor innerClassName Provides flags 19
+innerclass innerClass java/lang/module/ModuleDescriptor$Version outerClass java/lang/module/ModuleDescriptor innerClassName Version flags 19
+innerclass innerClass java/lang/module/ModuleDescriptor$Builder outerClass java/lang/module/ModuleDescriptor innerClassName Builder flags 19
+innerclass innerClass java/lang/module/ModuleDescriptor$Requires$Modifier outerClass java/lang/module/ModuleDescriptor$Requires innerClassName Modifier flags 4019
+innerclass innerClass java/lang/module/ModuleDescriptor$Exports$Modifier outerClass java/lang/module/ModuleDescriptor$Exports innerClassName Modifier flags 4019
+innerclass innerClass java/lang/module/ModuleDescriptor$Opens$Modifier outerClass java/lang/module/ModuleDescriptor$Opens innerClassName Modifier flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/lang/module/ModuleDescriptor$Exports
+header extends java/lang/Object implements java/lang/Comparable nestHost java/lang/module/ModuleDescriptor flags 31 signature Ljava/lang/Object;Ljava/lang/Comparable<Ljava/lang/module/ModuleDescriptor$Exports;>;
+innerclass innerClass java/lang/module/ModuleDescriptor$Exports outerClass java/lang/module/ModuleDescriptor innerClassName Exports flags 19
+innerclass innerClass java/lang/module/ModuleDescriptor$Exports$Modifier outerClass java/lang/module/ModuleDescriptor$Exports innerClassName Modifier flags 4019
+
+class name java/lang/module/ModuleDescriptor$Exports$Modifier
+header extends java/lang/Enum nestHost java/lang/module/ModuleDescriptor flags 4031 signature Ljava/lang/Enum<Ljava/lang/module/ModuleDescriptor$Exports$Modifier;>;
+innerclass innerClass java/lang/module/ModuleDescriptor$Exports outerClass java/lang/module/ModuleDescriptor innerClassName Exports flags 19
+innerclass innerClass java/lang/module/ModuleDescriptor$Exports$Modifier outerClass java/lang/module/ModuleDescriptor$Exports innerClassName Modifier flags 4019
+
+class name java/lang/module/ModuleDescriptor$Modifier
+header extends java/lang/Enum nestHost java/lang/module/ModuleDescriptor flags 4031 signature Ljava/lang/Enum<Ljava/lang/module/ModuleDescriptor$Modifier;>;
+innerclass innerClass java/lang/module/ModuleDescriptor$Modifier outerClass java/lang/module/ModuleDescriptor innerClassName Modifier flags 4019
+
+class name java/lang/module/ModuleDescriptor$Opens
+header extends java/lang/Object implements java/lang/Comparable nestHost java/lang/module/ModuleDescriptor flags 31 signature Ljava/lang/Object;Ljava/lang/Comparable<Ljava/lang/module/ModuleDescriptor$Opens;>;
+innerclass innerClass java/lang/module/ModuleDescriptor$Opens outerClass java/lang/module/ModuleDescriptor innerClassName Opens flags 19
+innerclass innerClass java/lang/module/ModuleDescriptor$Opens$Modifier outerClass java/lang/module/ModuleDescriptor$Opens innerClassName Modifier flags 4019
+
+class name java/lang/module/ModuleDescriptor$Opens$Modifier
+header extends java/lang/Enum nestHost java/lang/module/ModuleDescriptor flags 4031 signature Ljava/lang/Enum<Ljava/lang/module/ModuleDescriptor$Opens$Modifier;>;
+innerclass innerClass java/lang/module/ModuleDescriptor$Opens outerClass java/lang/module/ModuleDescriptor innerClassName Opens flags 19
+innerclass innerClass java/lang/module/ModuleDescriptor$Opens$Modifier outerClass java/lang/module/ModuleDescriptor$Opens innerClassName Modifier flags 4019
+
+class name java/lang/module/ModuleDescriptor$Provides
+header extends java/lang/Object implements java/lang/Comparable nestHost java/lang/module/ModuleDescriptor flags 31 signature Ljava/lang/Object;Ljava/lang/Comparable<Ljava/lang/module/ModuleDescriptor$Provides;>;
+innerclass innerClass java/lang/module/ModuleDescriptor$Provides outerClass java/lang/module/ModuleDescriptor innerClassName Provides flags 19
+
+class name java/lang/module/ModuleDescriptor$Requires
+header extends java/lang/Object implements java/lang/Comparable nestHost java/lang/module/ModuleDescriptor flags 31 signature Ljava/lang/Object;Ljava/lang/Comparable<Ljava/lang/module/ModuleDescriptor$Requires;>;
+innerclass innerClass java/lang/module/ModuleDescriptor$Requires outerClass java/lang/module/ModuleDescriptor innerClassName Requires flags 19
+innerclass innerClass java/lang/module/ModuleDescriptor$Requires$Modifier outerClass java/lang/module/ModuleDescriptor$Requires innerClassName Modifier flags 4019
+innerclass innerClass java/lang/module/ModuleDescriptor$Version outerClass java/lang/module/ModuleDescriptor innerClassName Version flags 19
+
+class name java/lang/module/ModuleDescriptor$Requires$Modifier
+header extends java/lang/Enum nestHost java/lang/module/ModuleDescriptor flags 4031 signature Ljava/lang/Enum<Ljava/lang/module/ModuleDescriptor$Requires$Modifier;>;
+innerclass innerClass java/lang/module/ModuleDescriptor$Requires outerClass java/lang/module/ModuleDescriptor innerClassName Requires flags 19
+innerclass innerClass java/lang/module/ModuleDescriptor$Requires$Modifier outerClass java/lang/module/ModuleDescriptor$Requires innerClassName Modifier flags 4019
+
+class name java/lang/module/ModuleDescriptor$Version
+header extends java/lang/Object implements java/lang/Comparable nestHost java/lang/module/ModuleDescriptor flags 31 signature Ljava/lang/Object;Ljava/lang/Comparable<Ljava/lang/module/ModuleDescriptor$Version;>;
+innerclass innerClass java/lang/module/ModuleDescriptor$Version outerClass java/lang/module/ModuleDescriptor innerClassName Version flags 19
+
+class name java/lang/module/ModuleReader
+header extends java/lang/Object implements java/io/Closeable flags 601
+
+class name java/lang/module/ModuleReference
+header extends java/lang/Object flags 421
+
+class name java/lang/module/ResolutionException
+header extends java/lang/RuntimeException flags 21
+
+class name java/lang/module/ResolvedModule
+header extends java/lang/Object flags 31
+
+class name java/lang/ref/Cleaner
+header extends java/lang/Object nestMembers java/lang/ref/Cleaner$Cleanable flags 31
+innerclass innerClass java/lang/ref/Cleaner$Cleanable outerClass java/lang/ref/Cleaner innerClassName Cleanable flags 609
+
+class name java/lang/ref/Cleaner$Cleanable
+header extends java/lang/Object nestHost java/lang/ref/Cleaner flags 601
+innerclass innerClass java/lang/ref/Cleaner$Cleanable outerClass java/lang/ref/Cleaner innerClassName Cleanable flags 609
+
+class name java/lang/ref/PhantomReference
+header extends java/lang/ref/Reference flags 21 signature <T:Ljava/lang/Object;>Ljava/lang/ref/Reference<TT;>;
+
+class name java/lang/ref/Reference
+-method name reachabilityFence descriptor (Ljava/lang/Object;)V
+method name clone descriptor ()Ljava/lang/Object; thrownTypes java/lang/CloneNotSupportedException flags 4
+method name reachabilityFence descriptor (Ljava/lang/Object;)V flags 9 runtimeAnnotations @Ljdk/internal/vm/annotation/ForceInline;
+
+class name java/lang/ref/SoftReference
+header extends java/lang/ref/Reference flags 21 signature <T:Ljava/lang/Object;>Ljava/lang/ref/Reference<TT;>;
+
+class name java/lang/ref/WeakReference
+header extends java/lang/ref/Reference flags 21 signature <T:Ljava/lang/Object;>Ljava/lang/ref/Reference<TT;>;
+
+class name java/lang/reflect/AccessibleObject
+header extends java/lang/Object implements java/lang/reflect/AnnotatedElement flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+-method name setAccessible descriptor (Z)V
+method name setAccessible descriptor (Z)V flags 1 runtimeAnnotations @Ljdk/internal/reflect/CallerSensitive;
+
+class name java/lang/reflect/AnnotatedArrayType
+header extends java/lang/Object implements java/lang/reflect/AnnotatedType flags 601
+
+class name java/lang/reflect/AnnotatedElement
+header extends java/lang/Object flags 601
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/lang/reflect/AnnotatedParameterizedType
+header extends java/lang/Object implements java/lang/reflect/AnnotatedType flags 601
+
+class name java/lang/reflect/AnnotatedType
+header extends java/lang/Object implements java/lang/reflect/AnnotatedElement flags 601
+
+class name java/lang/reflect/AnnotatedTypeVariable
+header extends java/lang/Object implements java/lang/reflect/AnnotatedType flags 601
+
+class name java/lang/reflect/AnnotatedWildcardType
+header extends java/lang/Object implements java/lang/reflect/AnnotatedType flags 601
+
+class name java/lang/reflect/Array
+header extends java/lang/Object flags 31
+
+class name java/lang/reflect/Constructor
+header extends java/lang/reflect/Executable flags 31 signature <T:Ljava/lang/Object;>Ljava/lang/reflect/Executable;
+
+class name java/lang/reflect/Executable
+header extends java/lang/reflect/AccessibleObject implements java/lang/reflect/Member,java/lang/reflect/GenericDeclaration flags 421
+
+class name java/lang/reflect/Field
+header extends java/lang/reflect/AccessibleObject implements java/lang/reflect/Member flags 31
+
+class name java/lang/reflect/GenericArrayType
+header extends java/lang/Object implements java/lang/reflect/Type flags 601
+
+class name java/lang/reflect/GenericDeclaration
+header extends java/lang/Object implements java/lang/reflect/AnnotatedElement flags 601
+
+class name java/lang/reflect/GenericSignatureFormatError
+header extends java/lang/ClassFormatError flags 21
+
+class name java/lang/reflect/InaccessibleObjectException
+header extends java/lang/RuntimeException flags 21
+
+class name java/lang/reflect/InvocationHandler
+header extends java/lang/Object flags 601
+
+class name java/lang/reflect/InvocationTargetException
+header extends java/lang/ReflectiveOperationException flags 21
+
+class name java/lang/reflect/MalformedParameterizedTypeException
+header extends java/lang/RuntimeException flags 21
+
+class name java/lang/reflect/MalformedParametersException
+header extends java/lang/RuntimeException flags 21
+
+class name java/lang/reflect/Member
+header extends java/lang/Object flags 601
+
+class name java/lang/reflect/Method
+header extends java/lang/reflect/Executable flags 31
+
+class name java/lang/reflect/Modifier
+header extends java/lang/Object flags 21
+
+class name java/lang/reflect/Parameter
+header extends java/lang/Object implements java/lang/reflect/AnnotatedElement flags 31
+
+class name java/lang/reflect/ParameterizedType
+header extends java/lang/Object implements java/lang/reflect/Type flags 601
+
+class name java/lang/reflect/ReflectPermission
+header extends java/security/BasicPermission flags 31
+
+class name java/lang/reflect/Type
+header extends java/lang/Object flags 601
+
+class name java/lang/reflect/TypeVariable
+header extends java/lang/Object implements java/lang/reflect/Type,java/lang/reflect/AnnotatedElement flags 601 signature <D::Ljava/lang/reflect/GenericDeclaration;>Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/lang/reflect/AnnotatedElement;
+
+class name java/lang/reflect/UndeclaredThrowableException
+header extends java/lang/RuntimeException flags 21
+
+class name java/lang/reflect/WildcardType
+header extends java/lang/Object implements java/lang/reflect/Type flags 601
+
+class name java/math/MathContext
+header extends java/lang/Object implements java/io/Serializable flags 31
+
+class name java/math/RoundingMode
+header extends java/lang/Enum flags 4031 signature Ljava/lang/Enum<Ljava/math/RoundingMode;>;
+
+class name java/net/Authenticator
+header extends java/lang/Object nestMembers java/net/Authenticator$RequestorType flags 421
+innerclass innerClass java/net/Authenticator$RequestorType outerClass java/net/Authenticator innerClassName RequestorType flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/net/Authenticator$RequestorType
+header extends java/lang/Enum nestHost java/net/Authenticator flags 4031 signature Ljava/lang/Enum<Ljava/net/Authenticator$RequestorType;>;
+innerclass innerClass java/net/Authenticator$RequestorType outerClass java/net/Authenticator innerClassName RequestorType flags 4019
+
+class name java/net/BindException
+header extends java/net/SocketException flags 21
+
+class name java/net/CacheRequest
+header extends java/lang/Object flags 421
+
+class name java/net/CacheResponse
+header extends java/lang/Object flags 421
+
+class name java/net/ConnectException
+header extends java/net/SocketException flags 21
+
+class name java/net/ContentHandler
+header extends java/lang/Object flags 421
+
+class name java/net/ContentHandlerFactory
+header extends java/lang/Object flags 601
+
+class name java/net/CookieHandler
+header extends java/lang/Object flags 421
+
+class name java/net/CookieStore
+header extends java/lang/Object flags 601
+
+class name java/net/DatagramSocketImpl
+header extends java/lang/Object implements java/net/SocketOptions flags 421
+
+class name java/net/DatagramSocketImplFactory
+header extends java/lang/Object flags 601
+
+class name java/net/FileNameMap
+header extends java/lang/Object flags 601
+
+class name java/net/HttpRetryException
+header extends java/io/IOException flags 21
+
+class name java/net/HttpURLConnection
+header extends java/net/URLConnection flags 421
+
+class name java/net/Inet4Address
+header extends java/net/InetAddress flags 31
+
+class name java/net/InterfaceAddress
+header extends java/lang/Object flags 21
+
+class name java/net/JarURLConnection
+header extends java/net/URLConnection flags 421
+
+class name java/net/MalformedURLException
+header extends java/io/IOException flags 21
+
+class name java/net/MulticastSocket
+header extends java/net/DatagramSocket flags 21
+
+class name java/net/NetPermission
+header extends java/security/BasicPermission flags 31
+
+class name java/net/NoRouteToHostException
+header extends java/net/SocketException flags 21
+
+class name java/net/PasswordAuthentication
+header extends java/lang/Object flags 31
+
+class name java/net/PortUnreachableException
+header extends java/net/SocketException flags 21
+
+class name java/net/ProtocolException
+header extends java/io/IOException flags 21
+
+class name java/net/ProtocolFamily
+header extends java/lang/Object flags 601
+
+class name java/net/Proxy
+header extends java/lang/Object nestMembers java/net/Proxy$Type flags 21
+innerclass innerClass java/net/Proxy$Type outerClass java/net/Proxy innerClassName Type flags 4019
+
+class name java/net/Proxy$Type
+header extends java/lang/Enum nestHost java/net/Proxy flags 4031 signature Ljava/lang/Enum<Ljava/net/Proxy$Type;>;
+innerclass innerClass java/net/Proxy$Type outerClass java/net/Proxy innerClassName Type flags 4019
+
+class name java/net/ResponseCache
+header extends java/lang/Object flags 421
+
+class name java/net/SecureCacheResponse
+header extends java/net/CacheResponse flags 421
+
+class name java/net/SocketAddress
+header extends java/lang/Object implements java/io/Serializable flags 421
+
+class name java/net/SocketException
+header extends java/io/IOException flags 21
+
+class name java/net/SocketImpl
+header extends java/lang/Object implements java/net/SocketOptions flags 421
+
+class name java/net/SocketImplFactory
+header extends java/lang/Object flags 601
+
+class name java/net/SocketOption
+header extends java/lang/Object flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object;
+
+class name java/net/SocketOptions
+header extends java/lang/Object flags 601
+
+class name java/net/SocketTimeoutException
+header extends java/io/InterruptedIOException flags 21
+
+class name java/net/StandardProtocolFamily
+header extends java/lang/Enum implements java/net/ProtocolFamily flags 4031 signature Ljava/lang/Enum<Ljava/net/StandardProtocolFamily;>;Ljava/net/ProtocolFamily;
+
+class name java/net/URISyntaxException
+header extends java/lang/Exception flags 21
+
+class name java/net/URLDecoder
+header extends java/lang/Object flags 21
+
+class name java/net/URLEncoder
+header extends java/lang/Object flags 21
+
+class name java/net/URLStreamHandler
+header extends java/lang/Object flags 421
+
+class name java/net/URLStreamHandlerFactory
+header extends java/lang/Object flags 601
+
+class name java/net/UnknownHostException
+header extends java/io/IOException flags 21
+
+class name java/net/UnknownServiceException
+header extends java/io/IOException flags 21
+
+class name java/net/spi/URLStreamHandlerProvider
+header extends java/lang/Object implements java/net/URLStreamHandlerFactory flags 421
+
+class name java/nio/BufferOverflowException
+header extends java/lang/RuntimeException flags 21
+
+class name java/nio/BufferUnderflowException
+header extends java/lang/RuntimeException flags 21
+
+class name java/nio/ByteBuffer
+header extends java/nio/Buffer implements java/lang/Comparable flags 421 signature Ljava/nio/Buffer;Ljava/lang/Comparable<Ljava/nio/ByteBuffer;>;
+method name mismatch descriptor (Ljava/nio/ByteBuffer;)I flags 1
+
+class name java/nio/ByteOrder
+header extends java/lang/Object flags 31
+
+class name java/nio/CharBuffer
+header extends java/nio/Buffer implements java/lang/Comparable,java/lang/Appendable,java/lang/CharSequence,java/lang/Readable flags 421 signature Ljava/nio/Buffer;Ljava/lang/Comparable<Ljava/nio/CharBuffer;>;Ljava/lang/Appendable;Ljava/lang/CharSequence;Ljava/lang/Readable;
+innerclass innerClass java/util/Spliterator$OfInt outerClass java/util/Spliterator innerClassName OfInt flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+method name mismatch descriptor (Ljava/nio/CharBuffer;)I flags 1
+
+class name java/nio/DoubleBuffer
+header extends java/nio/Buffer implements java/lang/Comparable flags 421 signature Ljava/nio/Buffer;Ljava/lang/Comparable<Ljava/nio/DoubleBuffer;>;
+method name mismatch descriptor (Ljava/nio/DoubleBuffer;)I flags 1
+
+class name java/nio/FloatBuffer
+header extends java/nio/Buffer implements java/lang/Comparable flags 421 signature Ljava/nio/Buffer;Ljava/lang/Comparable<Ljava/nio/FloatBuffer;>;
+method name mismatch descriptor (Ljava/nio/FloatBuffer;)I flags 1
+
+class name java/nio/IntBuffer
+header extends java/nio/Buffer implements java/lang/Comparable flags 421 signature Ljava/nio/Buffer;Ljava/lang/Comparable<Ljava/nio/IntBuffer;>;
+method name mismatch descriptor (Ljava/nio/IntBuffer;)I flags 1
+
+class name java/nio/InvalidMarkException
+header extends java/lang/IllegalStateException flags 21
+
+class name java/nio/LongBuffer
+header extends java/nio/Buffer implements java/lang/Comparable flags 421 signature Ljava/nio/Buffer;Ljava/lang/Comparable<Ljava/nio/LongBuffer;>;
+method name mismatch descriptor (Ljava/nio/LongBuffer;)I flags 1
+
+class name java/nio/MappedByteBuffer
+header extends java/nio/ByteBuffer flags 421
+
+class name java/nio/ReadOnlyBufferException
+header extends java/lang/UnsupportedOperationException flags 21
+
+class name java/nio/ShortBuffer
+header extends java/nio/Buffer implements java/lang/Comparable flags 421 signature Ljava/nio/Buffer;Ljava/lang/Comparable<Ljava/nio/ShortBuffer;>;
+method name mismatch descriptor (Ljava/nio/ShortBuffer;)I flags 1
+
+class name java/nio/channels/AcceptPendingException
+header extends java/lang/IllegalStateException flags 21
+
+class name java/nio/channels/AlreadyBoundException
+header extends java/lang/IllegalStateException flags 21
+
+class name java/nio/channels/AlreadyConnectedException
+header extends java/lang/IllegalStateException flags 21
+
+class name java/nio/channels/AsynchronousByteChannel
+header extends java/lang/Object implements java/nio/channels/AsynchronousChannel flags 601
+
+class name java/nio/channels/AsynchronousChannel
+header extends java/lang/Object implements java/nio/channels/Channel flags 601
+
+class name java/nio/channels/AsynchronousChannelGroup
+header extends java/lang/Object flags 421
+
+class name java/nio/channels/AsynchronousCloseException
+header extends java/nio/channels/ClosedChannelException flags 21
+
+class name java/nio/channels/AsynchronousFileChannel
+header extends java/lang/Object implements java/nio/channels/AsynchronousChannel flags 421
+
+class name java/nio/channels/AsynchronousServerSocketChannel
+header extends java/lang/Object implements java/nio/channels/AsynchronousChannel,java/nio/channels/NetworkChannel flags 421
+
+class name java/nio/channels/AsynchronousSocketChannel
+header extends java/lang/Object implements java/nio/channels/AsynchronousByteChannel,java/nio/channels/NetworkChannel flags 421
+
+class name java/nio/channels/ByteChannel
+header extends java/lang/Object implements java/nio/channels/ReadableByteChannel,java/nio/channels/WritableByteChannel flags 601
+
+class name java/nio/channels/CancelledKeyException
+header extends java/lang/IllegalStateException flags 21
+
+class name java/nio/channels/Channel
+header extends java/lang/Object implements java/io/Closeable flags 601
+
+class name java/nio/channels/ClosedByInterruptException
+header extends java/nio/channels/AsynchronousCloseException flags 21
+
+class name java/nio/channels/ClosedChannelException
+header extends java/io/IOException flags 21
+
+class name java/nio/channels/ClosedSelectorException
+header extends java/lang/IllegalStateException flags 21
+
+class name java/nio/channels/CompletionHandler
+header extends java/lang/Object flags 601 signature <V:Ljava/lang/Object;A:Ljava/lang/Object;>Ljava/lang/Object;
+
+class name java/nio/channels/ConnectionPendingException
+header extends java/lang/IllegalStateException flags 21
+
+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,java/nio/channels/MulticastChannel flags 421
+
+class name java/nio/channels/FileChannel
+header extends java/nio/channels/spi/AbstractInterruptibleChannel implements java/nio/channels/SeekableByteChannel,java/nio/channels/GatheringByteChannel,java/nio/channels/ScatteringByteChannel nestMembers java/nio/channels/FileChannel$MapMode flags 421
+innerclass innerClass java/nio/channels/FileChannel$MapMode outerClass java/nio/channels/FileChannel innerClassName MapMode flags 9
+
+class name java/nio/channels/FileChannel$MapMode
+header extends java/lang/Object nestHost java/nio/channels/FileChannel flags 21
+innerclass innerClass java/nio/channels/FileChannel$MapMode outerClass java/nio/channels/FileChannel innerClassName MapMode flags 9
+
+class name java/nio/channels/FileLock
+header extends java/lang/Object implements java/lang/AutoCloseable flags 421
+
+class name java/nio/channels/FileLockInterruptionException
+header extends java/io/IOException flags 21
+
+class name java/nio/channels/GatheringByteChannel
+header extends java/lang/Object implements java/nio/channels/WritableByteChannel flags 601
+
+class name java/nio/channels/IllegalBlockingModeException
+header extends java/lang/IllegalStateException flags 21
+
+class name java/nio/channels/IllegalChannelGroupException
+header extends java/lang/IllegalArgumentException flags 21
+
+class name java/nio/channels/IllegalSelectorException
+header extends java/lang/IllegalArgumentException flags 21
+
+class name java/nio/channels/InterruptedByTimeoutException
+header extends java/io/IOException flags 21
+
+class name java/nio/channels/InterruptibleChannel
+header extends java/lang/Object implements java/nio/channels/Channel flags 601
+
+class name java/nio/channels/MembershipKey
+header extends java/lang/Object flags 421
+
+class name java/nio/channels/MulticastChannel
+header extends java/lang/Object implements java/nio/channels/NetworkChannel flags 601
+
+class name java/nio/channels/NetworkChannel
+header extends java/lang/Object implements java/nio/channels/Channel flags 601
+
+class name java/nio/channels/NoConnectionPendingException
+header extends java/lang/IllegalStateException flags 21
+
+class name java/nio/channels/NonReadableChannelException
+header extends java/lang/IllegalStateException flags 21
+
+class name java/nio/channels/NonWritableChannelException
+header extends java/lang/IllegalStateException flags 21
+
+class name java/nio/channels/NotYetBoundException
+header extends java/lang/IllegalStateException flags 21
+
+class name java/nio/channels/NotYetConnectedException
+header extends java/lang/IllegalStateException flags 21
+
+class name java/nio/channels/OverlappingFileLockException
+header extends java/lang/IllegalStateException flags 21
+
+class name java/nio/channels/Pipe
+header extends java/lang/Object nestMembers java/nio/channels/Pipe$SinkChannel,java/nio/channels/Pipe$SourceChannel flags 421
+innerclass innerClass java/nio/channels/Pipe$SinkChannel outerClass java/nio/channels/Pipe innerClassName SinkChannel flags 409
+innerclass innerClass java/nio/channels/Pipe$SourceChannel outerClass java/nio/channels/Pipe innerClassName SourceChannel flags 409
+
+class name java/nio/channels/Pipe$SinkChannel
+header extends java/nio/channels/spi/AbstractSelectableChannel implements java/nio/channels/WritableByteChannel,java/nio/channels/GatheringByteChannel nestHost java/nio/channels/Pipe flags 421
+innerclass innerClass java/nio/channels/Pipe$SinkChannel outerClass java/nio/channels/Pipe innerClassName SinkChannel flags 409
+
+class name java/nio/channels/Pipe$SourceChannel
+header extends java/nio/channels/spi/AbstractSelectableChannel implements java/nio/channels/ReadableByteChannel,java/nio/channels/ScatteringByteChannel nestHost java/nio/channels/Pipe flags 421
+innerclass innerClass java/nio/channels/Pipe$SourceChannel outerClass java/nio/channels/Pipe innerClassName SourceChannel flags 409
+
+class name java/nio/channels/ReadPendingException
+header extends java/lang/IllegalStateException flags 21
+
+class name java/nio/channels/ReadableByteChannel
+header extends java/lang/Object implements java/nio/channels/Channel flags 601
+
+class name java/nio/channels/ScatteringByteChannel
+header extends java/lang/Object implements java/nio/channels/ReadableByteChannel flags 601
+
+class name java/nio/channels/SeekableByteChannel
+header extends java/lang/Object implements java/nio/channels/ByteChannel flags 601
+
+class name java/nio/channels/SelectableChannel
+header extends java/nio/channels/spi/AbstractInterruptibleChannel implements java/nio/channels/Channel flags 421
+
+class name java/nio/channels/SelectionKey
+header extends java/lang/Object flags 421
+method name interestOpsOr descriptor (I)I flags 1
+method name interestOpsAnd descriptor (I)I flags 1
+
+class name java/nio/channels/Selector
+header extends java/lang/Object implements java/io/Closeable flags 421
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+method name select descriptor (Ljava/util/function/Consumer;J)I thrownTypes java/io/IOException flags 1 signature (Ljava/util/function/Consumer<Ljava/nio/channels/SelectionKey;>;J)I
+method name select descriptor (Ljava/util/function/Consumer;)I thrownTypes java/io/IOException flags 1 signature (Ljava/util/function/Consumer<Ljava/nio/channels/SelectionKey;>;)I
+method name selectNow descriptor (Ljava/util/function/Consumer;)I thrownTypes java/io/IOException flags 1 signature (Ljava/util/function/Consumer<Ljava/nio/channels/SelectionKey;>;)I
+
+class name java/nio/channels/ServerSocketChannel
+header extends java/nio/channels/spi/AbstractSelectableChannel implements java/nio/channels/NetworkChannel flags 421
+
+class name java/nio/channels/ShutdownChannelGroupException
+header extends java/lang/IllegalStateException flags 21
+
+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,java/nio/channels/NetworkChannel flags 421
+
+class name java/nio/channels/UnresolvedAddressException
+header extends java/lang/IllegalArgumentException flags 21
+
+class name java/nio/channels/UnsupportedAddressTypeException
+header extends java/lang/IllegalArgumentException flags 21
+
+class name java/nio/channels/WritableByteChannel
+header extends java/lang/Object implements java/nio/channels/Channel flags 601
+
+class name java/nio/channels/WritePendingException
+header extends java/lang/IllegalStateException flags 21
+
+class name java/nio/channels/spi/AbstractSelectableChannel
+header extends java/nio/channels/SelectableChannel flags 421
+
+class name java/nio/channels/spi/AbstractSelectionKey
+header extends java/nio/channels/SelectionKey flags 421
+
+class name java/nio/charset/CharacterCodingException
+header extends java/io/IOException flags 21
+
+class name java/nio/charset/CharsetDecoder
+header extends java/lang/Object flags 421
+
+class name java/nio/charset/CharsetEncoder
+header extends java/lang/Object flags 421
+
+class name java/nio/charset/CoderMalfunctionError
+header extends java/lang/Error flags 21
+
+class name java/nio/charset/CoderResult
+header extends java/lang/Object flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/nio/charset/CodingErrorAction
+header extends java/lang/Object flags 21
+
+class name java/nio/charset/IllegalCharsetNameException
+header extends java/lang/IllegalArgumentException flags 21
+
+class name java/nio/charset/MalformedInputException
+header extends java/nio/charset/CharacterCodingException flags 21
+
+class name java/nio/charset/StandardCharsets
+header extends java/lang/Object flags 31
+
+class name java/nio/charset/UnmappableCharacterException
+header extends java/nio/charset/CharacterCodingException flags 21
+
+class name java/nio/charset/UnsupportedCharsetException
+header extends java/lang/IllegalArgumentException flags 21
+
+class name java/nio/charset/spi/CharsetProvider
+header extends java/lang/Object flags 421
+
+class name java/nio/file/AccessDeniedException
+header extends java/nio/file/FileSystemException flags 21
+
+class name java/nio/file/AccessMode
+header extends java/lang/Enum flags 4031 signature Ljava/lang/Enum<Ljava/nio/file/AccessMode;>;
+
+class name java/nio/file/AtomicMoveNotSupportedException
+header extends java/nio/file/FileSystemException flags 21
+
+class name java/nio/file/ClosedDirectoryStreamException
+header extends java/lang/IllegalStateException flags 21
+
+class name java/nio/file/ClosedFileSystemException
+header extends java/lang/IllegalStateException flags 21
+
+class name java/nio/file/ClosedWatchServiceException
+header extends java/lang/IllegalStateException flags 21
+
+class name java/nio/file/CopyOption
+header extends java/lang/Object flags 601
+
+class name java/nio/file/DirectoryIteratorException
+header extends java/util/ConcurrentModificationException flags 31
+
+class name java/nio/file/DirectoryNotEmptyException
+header extends java/nio/file/FileSystemException flags 21
+
+class name java/nio/file/DirectoryStream
+header extends java/lang/Object implements java/io/Closeable,java/lang/Iterable nestMembers java/nio/file/DirectoryStream$Filter flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object;Ljava/io/Closeable;Ljava/lang/Iterable<TT;>;
+innerclass innerClass java/nio/file/DirectoryStream$Filter outerClass java/nio/file/DirectoryStream innerClassName Filter flags 609
+
+class name java/nio/file/DirectoryStream$Filter
+header extends java/lang/Object nestHost java/nio/file/DirectoryStream flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object; runtimeAnnotations @Ljava/lang/FunctionalInterface;
+innerclass innerClass java/nio/file/DirectoryStream$Filter outerClass java/nio/file/DirectoryStream innerClassName Filter flags 609
+
+class name java/nio/file/FileAlreadyExistsException
+header extends java/nio/file/FileSystemException flags 21
+
+class name java/nio/file/FileStore
+header extends java/lang/Object flags 421
+
+class name java/nio/file/FileSystem
+header extends java/lang/Object implements java/io/Closeable flags 421
+
+class name java/nio/file/FileSystemAlreadyExistsException
+header extends java/lang/RuntimeException flags 21
+
+class name java/nio/file/FileSystemException
+header extends java/io/IOException flags 21
+
+class name java/nio/file/FileSystemLoopException
+header extends java/nio/file/FileSystemException flags 21
+
+class name java/nio/file/FileSystemNotFoundException
+header extends java/lang/RuntimeException flags 21
+
+class name java/nio/file/FileVisitOption
+header extends java/lang/Enum flags 4031 signature Ljava/lang/Enum<Ljava/nio/file/FileVisitOption;>;
+
+class name java/nio/file/FileVisitResult
+header extends java/lang/Enum flags 4031 signature Ljava/lang/Enum<Ljava/nio/file/FileVisitResult;>;
+
+class name java/nio/file/FileVisitor
+header extends java/lang/Object flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object;
+
+class name java/nio/file/Files
+method name readString descriptor (Ljava/nio/file/Path;)Ljava/lang/String; thrownTypes java/io/IOException flags 9
+method name readString descriptor (Ljava/nio/file/Path;Ljava/nio/charset/Charset;)Ljava/lang/String; thrownTypes java/io/IOException flags 9
+method name writeString descriptor (Ljava/nio/file/Path;Ljava/lang/CharSequence;[Ljava/nio/file/OpenOption;)Ljava/nio/file/Path; thrownTypes java/io/IOException flags 89
+method name writeString descriptor (Ljava/nio/file/Path;Ljava/lang/CharSequence;Ljava/nio/charset/Charset;[Ljava/nio/file/OpenOption;)Ljava/nio/file/Path; thrownTypes java/io/IOException flags 89
+
+class name java/nio/file/InvalidPathException
+header extends java/lang/IllegalArgumentException flags 21
+
+class name java/nio/file/LinkOption
+header extends java/lang/Enum implements java/nio/file/OpenOption,java/nio/file/CopyOption flags 4031 signature Ljava/lang/Enum<Ljava/nio/file/LinkOption;>;Ljava/nio/file/OpenOption;Ljava/nio/file/CopyOption;
+
+class name java/nio/file/LinkPermission
+header extends java/security/BasicPermission flags 31
+
+class name java/nio/file/NoSuchFileException
+header extends java/nio/file/FileSystemException flags 21
+
+class name java/nio/file/NotDirectoryException
+header extends java/nio/file/FileSystemException flags 21
+
+class name java/nio/file/NotLinkException
+header extends java/nio/file/FileSystemException flags 21
+
+class name java/nio/file/OpenOption
+header extends java/lang/Object flags 601
+
+class name java/nio/file/Path
+method name of descriptor (Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path; flags 89
+method name of descriptor (Ljava/net/URI;)Ljava/nio/file/Path; flags 9
+
+class name java/nio/file/PathMatcher
+header extends java/lang/Object flags 601 runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/nio/file/Paths
+header extends java/lang/Object flags 31
+
+class name java/nio/file/ProviderMismatchException
+header extends java/lang/IllegalArgumentException flags 21
+
+class name java/nio/file/ProviderNotFoundException
+header extends java/lang/RuntimeException flags 21
+
+class name java/nio/file/ReadOnlyFileSystemException
+header extends java/lang/UnsupportedOperationException flags 21
+
+class name java/nio/file/SecureDirectoryStream
+header extends java/lang/Object implements java/nio/file/DirectoryStream flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object;Ljava/nio/file/DirectoryStream<TT;>;
+
+class name java/nio/file/SimpleFileVisitor
+header extends java/lang/Object implements java/nio/file/FileVisitor flags 21 signature <T:Ljava/lang/Object;>Ljava/lang/Object;Ljava/nio/file/FileVisitor<TT;>;
+
+class name java/nio/file/StandardCopyOption
+header extends java/lang/Enum implements java/nio/file/CopyOption flags 4031 signature Ljava/lang/Enum<Ljava/nio/file/StandardCopyOption;>;Ljava/nio/file/CopyOption;
+
+class name java/nio/file/StandardOpenOption
+header extends java/lang/Enum implements java/nio/file/OpenOption flags 4031 signature Ljava/lang/Enum<Ljava/nio/file/StandardOpenOption;>;Ljava/nio/file/OpenOption;
+
+class name java/nio/file/WatchEvent
+header extends java/lang/Object nestMembers java/nio/file/WatchEvent$Modifier,java/nio/file/WatchEvent$Kind flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object;
+innerclass innerClass java/nio/file/WatchEvent$Modifier outerClass java/nio/file/WatchEvent innerClassName Modifier flags 609
+innerclass innerClass java/nio/file/WatchEvent$Kind outerClass java/nio/file/WatchEvent innerClassName Kind flags 609
+
+class name java/nio/file/WatchEvent$Kind
+header extends java/lang/Object nestHost java/nio/file/WatchEvent flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object;
+innerclass innerClass java/nio/file/WatchEvent$Kind outerClass java/nio/file/WatchEvent innerClassName Kind flags 609
+
+class name java/nio/file/WatchEvent$Modifier
+header extends java/lang/Object nestHost java/nio/file/WatchEvent flags 601
+innerclass innerClass java/nio/file/WatchEvent$Modifier outerClass java/nio/file/WatchEvent innerClassName Modifier flags 609
+
+class name java/nio/file/WatchKey
+header extends java/lang/Object flags 601
+
+class name java/nio/file/WatchService
+header extends java/lang/Object implements java/io/Closeable flags 601
+
+class name java/nio/file/Watchable
+header extends java/lang/Object flags 601
+innerclass innerClass java/nio/file/WatchEvent$Kind outerClass java/nio/file/WatchEvent innerClassName Kind flags 609
+innerclass innerClass java/nio/file/WatchEvent$Modifier outerClass java/nio/file/WatchEvent innerClassName Modifier flags 609
+
+class name java/nio/file/attribute/AclEntry
+header extends java/lang/Object nestMembers java/nio/file/attribute/AclEntry$Builder flags 31
+innerclass innerClass java/nio/file/attribute/AclEntry$Builder outerClass java/nio/file/attribute/AclEntry innerClassName Builder flags 19
+
+class name java/nio/file/attribute/AclEntry$Builder
+header extends java/lang/Object nestHost java/nio/file/attribute/AclEntry flags 31
+innerclass innerClass java/nio/file/attribute/AclEntry$Builder outerClass java/nio/file/attribute/AclEntry innerClassName Builder flags 19
+
+class name java/nio/file/attribute/AclEntryFlag
+header extends java/lang/Enum flags 4031 signature Ljava/lang/Enum<Ljava/nio/file/attribute/AclEntryFlag;>;
+
+class name java/nio/file/attribute/AclEntryPermission
+header extends java/lang/Enum flags 4031 signature Ljava/lang/Enum<Ljava/nio/file/attribute/AclEntryPermission;>;
+
+class name java/nio/file/attribute/AclEntryType
+header extends java/lang/Enum flags 4031 signature Ljava/lang/Enum<Ljava/nio/file/attribute/AclEntryType;>;
+
+class name java/nio/file/attribute/AclFileAttributeView
+header extends java/lang/Object implements java/nio/file/attribute/FileOwnerAttributeView flags 601
+
+class name java/nio/file/attribute/AttributeView
+header extends java/lang/Object flags 601
+
+class name java/nio/file/attribute/BasicFileAttributeView
+header extends java/lang/Object implements java/nio/file/attribute/FileAttributeView flags 601
+
+class name java/nio/file/attribute/BasicFileAttributes
+header extends java/lang/Object flags 601
+
+class name java/nio/file/attribute/DosFileAttributeView
+header extends java/lang/Object implements java/nio/file/attribute/BasicFileAttributeView flags 601
+
+class name java/nio/file/attribute/DosFileAttributes
+header extends java/lang/Object implements java/nio/file/attribute/BasicFileAttributes flags 601
+
+class name java/nio/file/attribute/FileAttribute
+header extends java/lang/Object flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object;
+
+class name java/nio/file/attribute/FileAttributeView
+header extends java/lang/Object implements java/nio/file/attribute/AttributeView flags 601
+
+class name java/nio/file/attribute/FileOwnerAttributeView
+header extends java/lang/Object implements java/nio/file/attribute/FileAttributeView flags 601
+
+class name java/nio/file/attribute/FileStoreAttributeView
+header extends java/lang/Object implements java/nio/file/attribute/AttributeView flags 601
+
+class name java/nio/file/attribute/GroupPrincipal
+header extends java/lang/Object implements java/nio/file/attribute/UserPrincipal flags 601
+
+class name java/nio/file/attribute/PosixFileAttributeView
+header extends java/lang/Object implements java/nio/file/attribute/BasicFileAttributeView,java/nio/file/attribute/FileOwnerAttributeView flags 601
+
+class name java/nio/file/attribute/PosixFileAttributes
+header extends java/lang/Object implements java/nio/file/attribute/BasicFileAttributes flags 601
+
+class name java/nio/file/attribute/PosixFilePermission
+header extends java/lang/Enum flags 4031 signature Ljava/lang/Enum<Ljava/nio/file/attribute/PosixFilePermission;>;
+
+class name java/nio/file/attribute/UserDefinedFileAttributeView
+header extends java/lang/Object implements java/nio/file/attribute/FileAttributeView flags 601
+
+class name java/nio/file/attribute/UserPrincipal
+header extends java/lang/Object implements java/security/Principal flags 601
+
+class name java/nio/file/attribute/UserPrincipalLookupService
+header extends java/lang/Object flags 421
+
+class name java/nio/file/attribute/UserPrincipalNotFoundException
+header extends java/io/IOException flags 21
+
+class name java/nio/file/spi/FileTypeDetector
+header extends java/lang/Object flags 421
+
+class name java/security/AccessControlException
+header extends java/lang/SecurityException flags 21
+
+class name java/security/AlgorithmConstraints
+header extends java/lang/Object flags 601
+
+class name java/security/AlgorithmParameterGenerator
+header extends java/lang/Object flags 21
+
+class name java/security/AlgorithmParameterGeneratorSpi
+header extends java/lang/Object flags 421
+
+class name java/security/AlgorithmParameters
+header extends java/lang/Object flags 21
+
+class name java/security/AlgorithmParametersSpi
+header extends java/lang/Object flags 421
+
+class name java/security/AllPermission
+header extends java/security/Permission flags 31
+
+class name java/security/AuthProvider
+header extends java/security/Provider flags 421
+
+class name java/security/BasicPermission
+header extends java/security/Permission implements java/io/Serializable flags 421
+
+class name java/security/Certificate
+header extends java/lang/Object flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="1.2")
+
+class name java/security/CodeSigner
+header extends java/lang/Object implements java/io/Serializable flags 31
+
+class name java/security/CodeSource
+header extends java/lang/Object implements java/io/Serializable flags 21
+
+class name java/security/CryptoPrimitive
+header extends java/lang/Enum flags 4031 signature Ljava/lang/Enum<Ljava/security/CryptoPrimitive;>;
+
+class name java/security/DigestException
+header extends java/security/GeneralSecurityException flags 21
+
+class name java/security/DigestInputStream
+header extends java/io/FilterInputStream flags 21
+
+class name java/security/DigestOutputStream
+header extends java/io/FilterOutputStream flags 21
+
+class name java/security/DomainCombiner
+header extends java/lang/Object flags 601
+
+class name java/security/DomainLoadStoreParameter
+header extends java/lang/Object implements java/security/KeyStore$LoadStoreParameter flags 31
+innerclass innerClass java/security/KeyStore$ProtectionParameter outerClass java/security/KeyStore innerClassName ProtectionParameter flags 609
+innerclass innerClass java/security/KeyStore$LoadStoreParameter outerClass java/security/KeyStore innerClassName LoadStoreParameter flags 609
+
+class name java/security/DrbgParameters
+header extends java/lang/Object nestMembers java/security/DrbgParameters$Reseed,java/security/DrbgParameters$NextBytes,java/security/DrbgParameters$Instantiation,java/security/DrbgParameters$Capability flags 21
+innerclass innerClass java/security/DrbgParameters$Reseed outerClass java/security/DrbgParameters innerClassName Reseed flags 19
+innerclass innerClass java/security/DrbgParameters$NextBytes outerClass java/security/DrbgParameters innerClassName NextBytes flags 19
+innerclass innerClass java/security/DrbgParameters$Instantiation outerClass java/security/DrbgParameters innerClassName Instantiation flags 19
+innerclass innerClass java/security/DrbgParameters$Capability outerClass java/security/DrbgParameters innerClassName Capability flags 4019
+
+class name java/security/DrbgParameters$Capability
+header extends java/lang/Enum nestHost java/security/DrbgParameters flags 4031 signature Ljava/lang/Enum<Ljava/security/DrbgParameters$Capability;>;
+innerclass innerClass java/security/DrbgParameters$Capability outerClass java/security/DrbgParameters innerClassName Capability flags 4019
+
+class name java/security/DrbgParameters$Instantiation
+header extends java/lang/Object implements java/security/SecureRandomParameters nestHost java/security/DrbgParameters flags 31
+innerclass innerClass java/security/DrbgParameters$Capability outerClass java/security/DrbgParameters innerClassName Capability flags 4019
+innerclass innerClass java/security/DrbgParameters$Instantiation outerClass java/security/DrbgParameters innerClassName Instantiation flags 19
+
+class name java/security/DrbgParameters$NextBytes
+header extends java/lang/Object implements java/security/SecureRandomParameters nestHost java/security/DrbgParameters flags 31
+innerclass innerClass java/security/DrbgParameters$NextBytes outerClass java/security/DrbgParameters innerClassName NextBytes flags 19
+
+class name java/security/DrbgParameters$Reseed
+header extends java/lang/Object implements java/security/SecureRandomParameters nestHost java/security/DrbgParameters flags 31
+innerclass innerClass java/security/DrbgParameters$Reseed outerClass java/security/DrbgParameters innerClassName Reseed flags 19
+
+class name java/security/GeneralSecurityException
+header extends java/lang/Exception flags 21
+
+class name java/security/Guard
+header extends java/lang/Object flags 601
+
+class name java/security/GuardedObject
+header extends java/lang/Object implements java/io/Serializable flags 21
+
+class name java/security/Identity
+header extends java/lang/Object implements java/security/Principal,java/io/Serializable flags 421 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="1.2")
+
+class name java/security/InvalidAlgorithmParameterException
+header extends java/security/GeneralSecurityException flags 21
+
+class name java/security/InvalidKeyException
+header extends java/security/KeyException flags 21
+
+class name java/security/InvalidParameterException
+header extends java/lang/IllegalArgumentException flags 21
+
+class name java/security/Key
+header extends java/lang/Object implements java/io/Serializable flags 601
+
+class name java/security/KeyException
+header extends java/security/GeneralSecurityException flags 21
+
+class name java/security/KeyFactory
+header extends java/lang/Object flags 21
+innerclass innerClass java/security/Provider$Service outerClass java/security/Provider innerClassName Service flags 9
+
+class name java/security/KeyFactorySpi
+header extends java/lang/Object flags 421
+
+class name java/security/KeyManagementException
+header extends java/security/KeyException flags 21
+
+class name java/security/KeyPair
+header extends java/lang/Object implements java/io/Serializable flags 31
+
+class name java/security/KeyPairGeneratorSpi
+header extends java/lang/Object flags 421
+
+class name java/security/KeyRep
+header extends java/lang/Object implements java/io/Serializable nestMembers java/security/KeyRep$Type flags 21
+innerclass innerClass java/security/KeyRep$Type outerClass java/security/KeyRep innerClassName Type flags 4019
+
+class name java/security/KeyRep$Type
+header extends java/lang/Enum nestHost java/security/KeyRep flags 4031 signature Ljava/lang/Enum<Ljava/security/KeyRep$Type;>;
+innerclass innerClass java/security/KeyRep$Type outerClass java/security/KeyRep innerClassName Type flags 4019
+
+class name java/security/KeyStore
+header extends java/lang/Object nestMembers java/security/KeyStore$Builder,java/security/KeyStore$TrustedCertificateEntry,java/security/KeyStore$SecretKeyEntry,java/security/KeyStore$PrivateKeyEntry,java/security/KeyStore$Entry,java/security/KeyStore$Entry$Attribute,java/security/KeyStore$CallbackHandlerProtection,java/security/KeyStore$PasswordProtection,java/security/KeyStore$ProtectionParameter,java/security/KeyStore$LoadStoreParameter flags 21
+innerclass innerClass java/security/KeyStore$Builder outerClass java/security/KeyStore innerClassName Builder flags 409
+innerclass innerClass java/security/KeyStore$TrustedCertificateEntry outerClass java/security/KeyStore innerClassName TrustedCertificateEntry flags 19
+innerclass innerClass java/security/KeyStore$SecretKeyEntry outerClass java/security/KeyStore innerClassName SecretKeyEntry flags 19
+innerclass innerClass java/security/KeyStore$PrivateKeyEntry outerClass java/security/KeyStore innerClassName PrivateKeyEntry flags 19
+innerclass innerClass java/security/KeyStore$Entry outerClass java/security/KeyStore innerClassName Entry flags 609
+innerclass innerClass java/security/KeyStore$CallbackHandlerProtection outerClass java/security/KeyStore innerClassName CallbackHandlerProtection flags 9
+innerclass innerClass java/security/KeyStore$PasswordProtection outerClass java/security/KeyStore innerClassName PasswordProtection flags 9
+innerclass innerClass java/security/KeyStore$ProtectionParameter outerClass java/security/KeyStore innerClassName ProtectionParameter flags 609
+innerclass innerClass java/security/KeyStore$LoadStoreParameter outerClass java/security/KeyStore innerClassName LoadStoreParameter flags 609
+innerclass innerClass java/security/KeyStore$Entry$Attribute outerClass java/security/KeyStore$Entry innerClassName Attribute flags 609
+
+class name java/security/KeyStore$Builder
+header extends java/lang/Object nestHost java/security/KeyStore flags 421
+innerclass innerClass java/security/KeyStore$Builder outerClass java/security/KeyStore innerClassName Builder flags 409
+innerclass innerClass java/security/KeyStore$ProtectionParameter outerClass java/security/KeyStore innerClassName ProtectionParameter flags 609
+innerclass innerClass java/security/KeyStore$PasswordProtection outerClass java/security/KeyStore innerClassName PasswordProtection flags 9
+innerclass innerClass java/security/KeyStore$CallbackHandlerProtection outerClass java/security/KeyStore innerClassName CallbackHandlerProtection flags 9
+
+class name java/security/KeyStore$CallbackHandlerProtection
+header extends java/lang/Object implements java/security/KeyStore$ProtectionParameter nestHost java/security/KeyStore flags 21
+innerclass innerClass java/security/KeyStore$CallbackHandlerProtection outerClass java/security/KeyStore innerClassName CallbackHandlerProtection flags 9
+innerclass innerClass java/security/KeyStore$ProtectionParameter outerClass java/security/KeyStore innerClassName ProtectionParameter flags 609
+
+class name java/security/KeyStore$Entry
+header extends java/lang/Object nestHost java/security/KeyStore flags 601
+innerclass innerClass java/security/KeyStore$Entry outerClass java/security/KeyStore innerClassName Entry flags 609
+innerclass innerClass java/security/KeyStore$Entry$Attribute outerClass java/security/KeyStore$Entry innerClassName Attribute flags 609
+
+class name java/security/KeyStore$Entry$Attribute
+header extends java/lang/Object nestHost java/security/KeyStore flags 601
+innerclass innerClass java/security/KeyStore$Entry outerClass java/security/KeyStore innerClassName Entry flags 609
+innerclass innerClass java/security/KeyStore$Entry$Attribute outerClass java/security/KeyStore$Entry innerClassName Attribute flags 609
+
+class name java/security/KeyStore$LoadStoreParameter
+header extends java/lang/Object nestHost java/security/KeyStore flags 601
+innerclass innerClass java/security/KeyStore$ProtectionParameter outerClass java/security/KeyStore innerClassName ProtectionParameter flags 609
+innerclass innerClass java/security/KeyStore$LoadStoreParameter outerClass java/security/KeyStore innerClassName LoadStoreParameter flags 609
+
+class name java/security/KeyStore$PasswordProtection
+header extends java/lang/Object implements java/security/KeyStore$ProtectionParameter,javax/security/auth/Destroyable nestHost java/security/KeyStore flags 21
+innerclass innerClass java/security/KeyStore$PasswordProtection outerClass java/security/KeyStore innerClassName PasswordProtection flags 9
+innerclass innerClass java/security/KeyStore$ProtectionParameter outerClass java/security/KeyStore innerClassName ProtectionParameter flags 609
+
+class name java/security/KeyStore$PrivateKeyEntry
+header extends java/lang/Object implements java/security/KeyStore$Entry nestHost java/security/KeyStore flags 31
+innerclass innerClass java/security/KeyStore$Entry outerClass java/security/KeyStore innerClassName Entry flags 609
+innerclass innerClass java/security/KeyStore$Entry$Attribute outerClass java/security/KeyStore$Entry innerClassName Attribute flags 609
+innerclass innerClass java/security/KeyStore$PrivateKeyEntry outerClass java/security/KeyStore innerClassName PrivateKeyEntry flags 19
+
+class name java/security/KeyStore$ProtectionParameter
+header extends java/lang/Object nestHost java/security/KeyStore flags 601
+innerclass innerClass java/security/KeyStore$ProtectionParameter outerClass java/security/KeyStore innerClassName ProtectionParameter flags 609
+
+class name java/security/KeyStore$SecretKeyEntry
+header extends java/lang/Object implements java/security/KeyStore$Entry nestHost java/security/KeyStore flags 31
+innerclass innerClass java/security/KeyStore$Entry outerClass java/security/KeyStore innerClassName Entry flags 609
+innerclass innerClass java/security/KeyStore$Entry$Attribute outerClass java/security/KeyStore$Entry innerClassName Attribute flags 609
+innerclass innerClass java/security/KeyStore$SecretKeyEntry outerClass java/security/KeyStore innerClassName SecretKeyEntry flags 19
+
+class name java/security/KeyStore$TrustedCertificateEntry
+header extends java/lang/Object implements java/security/KeyStore$Entry nestHost java/security/KeyStore flags 31
+innerclass innerClass java/security/KeyStore$Entry outerClass java/security/KeyStore innerClassName Entry flags 609
+innerclass innerClass java/security/KeyStore$Entry$Attribute outerClass java/security/KeyStore$Entry innerClassName Attribute flags 609
+innerclass innerClass java/security/KeyStore$TrustedCertificateEntry outerClass java/security/KeyStore innerClassName TrustedCertificateEntry flags 19
+
+class name java/security/KeyStoreException
+header extends java/security/GeneralSecurityException flags 21
+
+class name java/security/KeyStoreSpi
+header extends java/lang/Object flags 421
+innerclass innerClass java/security/KeyStore$LoadStoreParameter outerClass java/security/KeyStore innerClassName LoadStoreParameter flags 609
+innerclass innerClass java/security/KeyStore$ProtectionParameter outerClass java/security/KeyStore innerClassName ProtectionParameter flags 609
+innerclass innerClass java/security/KeyStore$Entry outerClass java/security/KeyStore innerClassName Entry flags 609
+innerclass innerClass java/security/KeyStore$PasswordProtection outerClass java/security/KeyStore innerClassName PasswordProtection flags 9
+innerclass innerClass java/security/KeyStore$TrustedCertificateEntry outerClass java/security/KeyStore innerClassName TrustedCertificateEntry flags 19
+innerclass innerClass java/security/KeyStore$CallbackHandlerProtection outerClass java/security/KeyStore innerClassName CallbackHandlerProtection flags 9
+innerclass innerClass java/security/KeyStore$PrivateKeyEntry outerClass java/security/KeyStore innerClassName PrivateKeyEntry flags 19
+innerclass innerClass java/security/KeyStore$SecretKeyEntry outerClass java/security/KeyStore innerClassName SecretKeyEntry flags 19
+
+class name java/security/MessageDigestSpi
+header extends java/lang/Object flags 421
+
+class name java/security/NoSuchAlgorithmException
+header extends java/security/GeneralSecurityException flags 21
+
+class name java/security/NoSuchProviderException
+header extends java/security/GeneralSecurityException flags 21
+
+class name java/security/PKCS12Attribute
+header extends java/lang/Object implements java/security/KeyStore$Entry$Attribute flags 31
+innerclass innerClass java/security/KeyStore$Entry outerClass java/security/KeyStore innerClassName Entry flags 609
+innerclass innerClass java/security/KeyStore$Entry$Attribute outerClass java/security/KeyStore$Entry innerClassName Attribute flags 609
+
+class name java/security/Permission
+header extends java/lang/Object implements java/security/Guard,java/io/Serializable flags 421
+
+class name java/security/PermissionCollection
+header extends java/lang/Object implements java/io/Serializable flags 421
+
+class name java/security/Policy
+header extends java/lang/Object nestMembers java/security/Policy$Parameters flags 421
+innerclass innerClass java/security/Policy$Parameters outerClass java/security/Policy innerClassName Parameters flags 609
+
+class name java/security/Policy$Parameters
+header extends java/lang/Object nestHost java/security/Policy flags 601
+innerclass innerClass java/security/Policy$Parameters outerClass java/security/Policy innerClassName Parameters flags 609
+
+class name java/security/PolicySpi
+header extends java/lang/Object flags 421
+
+class name java/security/Principal
+header extends java/lang/Object flags 601
+
+class name java/security/PrivateKey
+header extends java/lang/Object implements java/security/Key,javax/security/auth/Destroyable flags 601
+
+class name java/security/PrivilegedAction
+header extends java/lang/Object flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object;
+
+class name java/security/PrivilegedActionException
+header extends java/lang/Exception flags 21
+
+class name java/security/PrivilegedExceptionAction
+header extends java/lang/Object flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object;
+
+class name java/security/Provider
+header extends java/util/Properties nestMembers java/security/Provider$Service flags 421
+innerclass innerClass java/security/Provider$Service outerClass java/security/Provider innerClassName Service flags 9
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+
+class name java/security/Provider$Service
+header extends java/lang/Object nestHost java/security/Provider flags 21
+innerclass innerClass java/security/Provider$Service outerClass java/security/Provider innerClassName Service flags 9
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+
+class name java/security/ProviderException
+header extends java/lang/RuntimeException flags 21
+
+class name java/security/PublicKey
+header extends java/lang/Object implements java/security/Key flags 601
+
+class name java/security/SecureRandomParameters
+header extends java/lang/Object flags 601
+
+class name java/security/SecureRandomSpi
+header extends java/lang/Object implements java/io/Serializable flags 421
+
+class name java/security/SecurityPermission
+header extends java/security/BasicPermission flags 31
+
+class name java/security/SignatureException
+header extends java/security/GeneralSecurityException flags 21
+
+class name java/security/SignatureSpi
+header extends java/lang/Object flags 421
+
+class name java/security/SignedObject
+header extends java/lang/Object implements java/io/Serializable flags 31
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+
+class name java/security/Timestamp
+header extends java/lang/Object implements java/io/Serializable flags 31
+
+class name java/security/URIParameter
+header extends java/lang/Object implements java/security/Policy$Parameters,javax/security/auth/login/Configuration$Parameters flags 21
+innerclass innerClass java/security/Policy$Parameters outerClass java/security/Policy innerClassName Parameters flags 609
+innerclass innerClass javax/security/auth/login/Configuration$Parameters outerClass javax/security/auth/login/Configuration innerClassName Parameters flags 609
+
+class name java/security/UnrecoverableEntryException
+header extends java/security/GeneralSecurityException flags 21
+
+class name java/security/UnrecoverableKeyException
+header extends java/security/UnrecoverableEntryException flags 21
+
+class name java/security/UnresolvedPermission
+header extends java/security/Permission implements java/io/Serializable flags 31
+
+class name java/security/acl/Acl
+header extends java/lang/Object implements java/security/acl/Owner flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name java/security/acl/AclEntry
+header extends java/lang/Object implements java/lang/Cloneable flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name java/security/acl/AclNotFoundException
+header extends java/lang/Exception flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name java/security/acl/Group
+header extends java/lang/Object implements java/security/Principal flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name java/security/acl/LastOwnerException
+header extends java/lang/Exception flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name java/security/acl/NotOwnerException
+header extends java/lang/Exception flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name java/security/acl/Owner
+header extends java/lang/Object flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name java/security/acl/Permission
+header extends java/lang/Object flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name java/security/cert/CRL
+header extends java/lang/Object flags 421
+
+class name java/security/cert/CRLException
+header extends java/security/GeneralSecurityException flags 21
+
+class name java/security/cert/CRLReason
+header extends java/lang/Enum flags 4031 signature Ljava/lang/Enum<Ljava/security/cert/CRLReason;>;
+
+class name java/security/cert/CRLSelector
+header extends java/lang/Object implements java/lang/Cloneable flags 601
+
+class name java/security/cert/CertPath
+header extends java/lang/Object implements java/io/Serializable nestMembers java/security/cert/CertPath$CertPathRep flags 421
+innerclass innerClass java/security/cert/CertPath$CertPathRep outerClass java/security/cert/CertPath innerClassName CertPathRep flags c
+
+class name java/security/cert/CertPath$CertPathRep
+header extends java/lang/Object implements java/io/Serializable nestHost java/security/cert/CertPath flags 21
+innerclass innerClass java/security/cert/CertPath$CertPathRep outerClass java/security/cert/CertPath innerClassName CertPathRep flags c
+
+class name java/security/cert/CertPathBuilderException
+header extends java/security/GeneralSecurityException flags 21
+
+class name java/security/cert/CertPathBuilderResult
+header extends java/lang/Object implements java/lang/Cloneable flags 601
+
+class name java/security/cert/CertPathBuilderSpi
+header extends java/lang/Object flags 421
+
+class name java/security/cert/CertPathChecker
+header extends java/lang/Object flags 601
+
+class name java/security/cert/CertPathParameters
+header extends java/lang/Object implements java/lang/Cloneable flags 601
+
+class name java/security/cert/CertPathValidatorException
+header extends java/security/GeneralSecurityException nestMembers java/security/cert/CertPathValidatorException$BasicReason,java/security/cert/CertPathValidatorException$Reason flags 21
+innerclass innerClass java/security/cert/CertPathValidatorException$BasicReason outerClass java/security/cert/CertPathValidatorException innerClassName BasicReason flags 4019
+innerclass innerClass java/security/cert/CertPathValidatorException$Reason outerClass java/security/cert/CertPathValidatorException innerClassName Reason flags 609
+
+class name java/security/cert/CertPathValidatorException$BasicReason
+header extends java/lang/Enum implements java/security/cert/CertPathValidatorException$Reason nestHost java/security/cert/CertPathValidatorException flags 4031 signature Ljava/lang/Enum<Ljava/security/cert/CertPathValidatorException$BasicReason;>;Ljava/security/cert/CertPathValidatorException$Reason;
+innerclass innerClass java/security/cert/CertPathValidatorException$BasicReason outerClass java/security/cert/CertPathValidatorException innerClassName BasicReason flags 4019
+innerclass innerClass java/security/cert/CertPathValidatorException$Reason outerClass java/security/cert/CertPathValidatorException innerClassName Reason flags 609
+
+class name java/security/cert/CertPathValidatorException$Reason
+header extends java/lang/Object implements java/io/Serializable nestHost java/security/cert/CertPathValidatorException flags 601
+innerclass innerClass java/security/cert/CertPathValidatorException$Reason outerClass java/security/cert/CertPathValidatorException innerClassName Reason flags 609
+
+class name java/security/cert/CertPathValidatorResult
+header extends java/lang/Object implements java/lang/Cloneable flags 601
+
+class name java/security/cert/CertPathValidatorSpi
+header extends java/lang/Object flags 421
+
+class name java/security/cert/CertSelector
+header extends java/lang/Object implements java/lang/Cloneable flags 601
+
+class name java/security/cert/CertStoreException
+header extends java/security/GeneralSecurityException flags 21
+
+class name java/security/cert/CertStoreParameters
+header extends java/lang/Object implements java/lang/Cloneable flags 601
+
+class name java/security/cert/CertStoreSpi
+header extends java/lang/Object flags 421
+
+class name java/security/cert/Certificate
+header extends java/lang/Object implements java/io/Serializable nestMembers java/security/cert/Certificate$CertificateRep flags 421
+innerclass innerClass java/security/cert/Certificate$CertificateRep outerClass java/security/cert/Certificate innerClassName CertificateRep flags c
+
+class name java/security/cert/Certificate$CertificateRep
+header extends java/lang/Object implements java/io/Serializable nestHost java/security/cert/Certificate flags 21
+innerclass innerClass java/security/cert/Certificate$CertificateRep outerClass java/security/cert/Certificate innerClassName CertificateRep flags c
+
+class name java/security/cert/CertificateEncodingException
+header extends java/security/cert/CertificateException flags 21
+
+class name java/security/cert/CertificateException
+header extends java/security/GeneralSecurityException flags 21
+
+class name java/security/cert/CertificateExpiredException
+header extends java/security/cert/CertificateException flags 21
+
+class name java/security/cert/CertificateFactory
+header extends java/lang/Object flags 21
+
+class name java/security/cert/CertificateFactorySpi
+header extends java/lang/Object flags 421
+
+class name java/security/cert/CertificateNotYetValidException
+header extends java/security/cert/CertificateException flags 21
+
+class name java/security/cert/CertificateParsingException
+header extends java/security/cert/CertificateException flags 21
+
+class name java/security/cert/CertificateRevokedException
+header extends java/security/cert/CertificateException flags 21
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+
+class name java/security/cert/CollectionCertStoreParameters
+header extends java/lang/Object implements java/security/cert/CertStoreParameters flags 21
+
+class name java/security/cert/Extension
+header extends java/lang/Object flags 601
+
+class name java/security/cert/LDAPCertStoreParameters
+header extends java/lang/Object implements java/security/cert/CertStoreParameters flags 21
+
+class name java/security/cert/PKIXBuilderParameters
+header extends java/security/cert/PKIXParameters flags 21
+
+class name java/security/cert/PKIXCertPathBuilderResult
+header extends java/security/cert/PKIXCertPathValidatorResult implements java/security/cert/CertPathBuilderResult flags 21
+
+class name java/security/cert/PKIXCertPathChecker
+header extends java/lang/Object implements java/security/cert/CertPathChecker,java/lang/Cloneable flags 421
+
+class name java/security/cert/PKIXCertPathValidatorResult
+header extends java/lang/Object implements java/security/cert/CertPathValidatorResult flags 21
+
+class name java/security/cert/PKIXParameters
+header extends java/lang/Object implements java/security/cert/CertPathParameters flags 21
+
+class name java/security/cert/PKIXReason
+header extends java/lang/Enum implements java/security/cert/CertPathValidatorException$Reason flags 4031 signature Ljava/lang/Enum<Ljava/security/cert/PKIXReason;>;Ljava/security/cert/CertPathValidatorException$Reason;
+innerclass innerClass java/security/cert/CertPathValidatorException$Reason outerClass java/security/cert/CertPathValidatorException innerClassName Reason flags 609
+
+class name java/security/cert/PKIXRevocationChecker
+header extends java/security/cert/PKIXCertPathChecker nestMembers java/security/cert/PKIXRevocationChecker$Option flags 421
+innerclass innerClass java/security/cert/PKIXRevocationChecker$Option outerClass java/security/cert/PKIXRevocationChecker innerClassName Option flags 4019
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+
+class name java/security/cert/PKIXRevocationChecker$Option
+header extends java/lang/Enum nestHost java/security/cert/PKIXRevocationChecker flags 4031 signature Ljava/lang/Enum<Ljava/security/cert/PKIXRevocationChecker$Option;>;
+innerclass innerClass java/security/cert/PKIXRevocationChecker$Option outerClass java/security/cert/PKIXRevocationChecker innerClassName Option flags 4019
+
+class name java/security/cert/PolicyNode
+header extends java/lang/Object flags 601
+
+class name java/security/cert/PolicyQualifierInfo
+header extends java/lang/Object flags 21
+
+class name java/security/cert/TrustAnchor
+header extends java/lang/Object flags 21
+
+class name java/security/cert/URICertStoreParameters
+header extends java/lang/Object implements java/security/cert/CertStoreParameters flags 31
+
+class name java/security/cert/X509CRL
+header extends java/security/cert/CRL implements java/security/cert/X509Extension flags 421
+
+class name java/security/cert/X509CRLEntry
+header extends java/lang/Object implements java/security/cert/X509Extension flags 421
+
+class name java/security/cert/X509CRLSelector
+header extends java/lang/Object implements java/security/cert/CRLSelector flags 21
+
+class name java/security/cert/X509CertSelector
+header extends java/lang/Object implements java/security/cert/CertSelector flags 21
+
+class name java/security/cert/X509Certificate
+header extends java/security/cert/Certificate implements java/security/cert/X509Extension flags 421
+
+class name java/security/cert/X509Extension
+header extends java/lang/Object flags 601
+
+class name java/security/interfaces/DSAKey
+header extends java/lang/Object flags 601
+
+class name java/security/interfaces/DSAKeyPairGenerator
+header extends java/lang/Object flags 601
+
+class name java/security/interfaces/DSAParams
+header extends java/lang/Object flags 601
+
+class name java/security/interfaces/DSAPrivateKey
+header extends java/lang/Object implements java/security/interfaces/DSAKey,java/security/PrivateKey flags 601
+
+class name java/security/interfaces/DSAPublicKey
+header extends java/lang/Object implements java/security/interfaces/DSAKey,java/security/PublicKey flags 601
+
+class name java/security/interfaces/ECKey
+header extends java/lang/Object flags 601
+
+class name java/security/interfaces/ECPrivateKey
+header extends java/lang/Object implements java/security/PrivateKey,java/security/interfaces/ECKey flags 601
+
+class name java/security/interfaces/ECPublicKey
+header extends java/lang/Object implements java/security/PublicKey,java/security/interfaces/ECKey flags 601
+
+class name java/security/interfaces/RSAKey
+header extends java/lang/Object flags 601
+method name getParams descriptor ()Ljava/security/spec/AlgorithmParameterSpec; flags 1
+
+class name java/security/interfaces/RSAMultiPrimePrivateCrtKey
+header extends java/lang/Object implements java/security/interfaces/RSAPrivateKey flags 601
+
+class name java/security/interfaces/RSAPrivateCrtKey
+header extends java/lang/Object implements java/security/interfaces/RSAPrivateKey flags 601
+
+class name java/security/interfaces/RSAPrivateKey
+header extends java/lang/Object implements java/security/PrivateKey,java/security/interfaces/RSAKey flags 601
+
+class name java/security/interfaces/RSAPublicKey
+header extends java/lang/Object implements java/security/PublicKey,java/security/interfaces/RSAKey flags 601
+
+class name java/security/interfaces/XECKey
+header extends java/lang/Object flags 601
+method name getParams descriptor ()Ljava/security/spec/AlgorithmParameterSpec; flags 401
+
+class name java/security/interfaces/XECPrivateKey
+header extends java/lang/Object implements java/security/interfaces/XECKey,java/security/PrivateKey flags 601
+method name getScalar descriptor ()Ljava/util/Optional; flags 401 signature ()Ljava/util/Optional<[B>;
+
+class name java/security/interfaces/XECPublicKey
+header extends java/lang/Object implements java/security/interfaces/XECKey,java/security/PublicKey flags 601
+method name getU descriptor ()Ljava/math/BigInteger; flags 401
+
+class name java/security/spec/AlgorithmParameterSpec
+header extends java/lang/Object flags 601
+
+class name java/security/spec/DSAGenParameterSpec
+header extends java/lang/Object implements java/security/spec/AlgorithmParameterSpec flags 31
+
+class name java/security/spec/DSAParameterSpec
+header extends java/lang/Object implements java/security/spec/AlgorithmParameterSpec,java/security/interfaces/DSAParams flags 21
+
+class name java/security/spec/DSAPrivateKeySpec
+header extends java/lang/Object implements java/security/spec/KeySpec flags 21
+
+class name java/security/spec/DSAPublicKeySpec
+header extends java/lang/Object implements java/security/spec/KeySpec flags 21
+
+class name java/security/spec/ECField
+header extends java/lang/Object flags 601
+
+class name java/security/spec/ECFieldF2m
+header extends java/lang/Object implements java/security/spec/ECField flags 21
+
+class name java/security/spec/ECFieldFp
+header extends java/lang/Object implements java/security/spec/ECField flags 21
+
+class name java/security/spec/ECGenParameterSpec
+header extends java/security/spec/NamedParameterSpec flags 21
+-method name getName descriptor ()Ljava/lang/String;
+
+class name java/security/spec/ECParameterSpec
+header extends java/lang/Object implements java/security/spec/AlgorithmParameterSpec flags 21
+
+class name java/security/spec/ECPoint
+header extends java/lang/Object flags 21
+
+class name java/security/spec/ECPrivateKeySpec
+header extends java/lang/Object implements java/security/spec/KeySpec flags 21
+
+class name java/security/spec/ECPublicKeySpec
+header extends java/lang/Object implements java/security/spec/KeySpec flags 21
+
+class name java/security/spec/EllipticCurve
+header extends java/lang/Object flags 21
+
+class name java/security/spec/EncodedKeySpec
+header extends java/lang/Object implements java/security/spec/KeySpec flags 421
+
+class name java/security/spec/InvalidKeySpecException
+header extends java/security/GeneralSecurityException flags 21
+
+class name java/security/spec/InvalidParameterSpecException
+header extends java/security/GeneralSecurityException flags 21
+
+class name java/security/spec/KeySpec
+header extends java/lang/Object flags 601
+
+class name java/security/spec/MGF1ParameterSpec
+header extends java/lang/Object implements java/security/spec/AlgorithmParameterSpec flags 21
+field name SHA512_224 descriptor Ljava/security/spec/MGF1ParameterSpec; flags 19
+field name SHA512_256 descriptor Ljava/security/spec/MGF1ParameterSpec; flags 19
+
+class name java/security/spec/NamedParameterSpec
+header extends java/lang/Object implements java/security/spec/AlgorithmParameterSpec flags 21
+field name X25519 descriptor Ljava/security/spec/NamedParameterSpec; flags 19
+field name X448 descriptor Ljava/security/spec/NamedParameterSpec; flags 19
+method name <init> descriptor (Ljava/lang/String;)V flags 1
+method name getName descriptor ()Ljava/lang/String; flags 1
+
+class name java/security/spec/PKCS8EncodedKeySpec
+header extends java/security/spec/EncodedKeySpec flags 21
+
+class name java/security/spec/PSSParameterSpec
+header extends java/lang/Object implements java/security/spec/AlgorithmParameterSpec flags 21
+field name TRAILER_FIELD_BC descriptor I constantValue 1 flags 19
+
+class name java/security/spec/RSAKeyGenParameterSpec
+header extends java/lang/Object implements java/security/spec/AlgorithmParameterSpec flags 21
+method name <init> descriptor (ILjava/math/BigInteger;Ljava/security/spec/AlgorithmParameterSpec;)V flags 1
+method name getKeyParams descriptor ()Ljava/security/spec/AlgorithmParameterSpec; flags 1
+
+class name java/security/spec/RSAMultiPrimePrivateCrtKeySpec
+header extends java/security/spec/RSAPrivateKeySpec flags 21
+method name <init> descriptor (Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;[Ljava/security/spec/RSAOtherPrimeInfo;Ljava/security/spec/AlgorithmParameterSpec;)V flags 1
+
+class name java/security/spec/RSAOtherPrimeInfo
+header extends java/lang/Object flags 21
+
+class name java/security/spec/RSAPrivateCrtKeySpec
+header extends java/security/spec/RSAPrivateKeySpec flags 21
+method name <init> descriptor (Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/security/spec/AlgorithmParameterSpec;)V flags 1
+
+class name java/security/spec/RSAPrivateKeySpec
+header extends java/lang/Object implements java/security/spec/KeySpec flags 21
+method name <init> descriptor (Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/security/spec/AlgorithmParameterSpec;)V flags 1
+method name getParams descriptor ()Ljava/security/spec/AlgorithmParameterSpec; flags 1
+
+class name java/security/spec/RSAPublicKeySpec
+header extends java/lang/Object implements java/security/spec/KeySpec flags 21
+method name <init> descriptor (Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/security/spec/AlgorithmParameterSpec;)V flags 1
+method name getParams descriptor ()Ljava/security/spec/AlgorithmParameterSpec; flags 1
+
+class name java/security/spec/X509EncodedKeySpec
+header extends java/security/spec/EncodedKeySpec flags 21
+
+class name java/security/spec/XECPrivateKeySpec
+header extends java/lang/Object implements java/security/spec/KeySpec flags 21
+method name <init> descriptor (Ljava/security/spec/AlgorithmParameterSpec;[B)V flags 1
+method name getParams descriptor ()Ljava/security/spec/AlgorithmParameterSpec; flags 1
+method name getScalar descriptor ()[B flags 1
+
+class name java/security/spec/XECPublicKeySpec
+header extends java/lang/Object implements java/security/spec/KeySpec flags 21
+method name <init> descriptor (Ljava/security/spec/AlgorithmParameterSpec;Ljava/math/BigInteger;)V flags 1
+method name getParams descriptor ()Ljava/security/spec/AlgorithmParameterSpec; flags 1
+method name getU descriptor ()Ljava/math/BigInteger; flags 1
+
+class name java/text/Annotation
+header extends java/lang/Object flags 21
+
+class name java/text/AttributedCharacterIterator
+header extends java/lang/Object implements java/text/CharacterIterator nestMembers java/text/AttributedCharacterIterator$Attribute flags 601
+innerclass innerClass java/text/AttributedCharacterIterator$Attribute outerClass java/text/AttributedCharacterIterator innerClassName Attribute flags 9
+
+class name java/text/AttributedCharacterIterator$Attribute
+header extends java/lang/Object implements java/io/Serializable nestHost java/text/AttributedCharacterIterator flags 21
+innerclass innerClass java/text/AttributedCharacterIterator$Attribute outerClass java/text/AttributedCharacterIterator innerClassName Attribute flags 9
+
+class name java/text/Bidi
+header extends java/lang/Object flags 31
+
+class name java/text/CharacterIterator
+header extends java/lang/Object implements java/lang/Cloneable flags 601
+
+class name java/text/ChoiceFormat
+header extends java/text/NumberFormat flags 21
+
+class name java/text/CollationElementIterator
+header extends java/lang/Object flags 31
+
+class name java/text/CollationKey
+header extends java/lang/Object implements java/lang/Comparable flags 421 signature Ljava/lang/Object;Ljava/lang/Comparable<Ljava/text/CollationKey;>;
+
+class name java/text/Collator
+header extends java/lang/Object implements java/util/Comparator,java/lang/Cloneable flags 421 signature Ljava/lang/Object;Ljava/util/Comparator<Ljava/lang/Object;>;Ljava/lang/Cloneable;
+
+class name java/text/DateFormat
+header extends java/text/Format nestMembers java/text/DateFormat$Field flags 421
+innerclass innerClass java/text/DateFormat$Field outerClass java/text/DateFormat innerClassName Field flags 9
+innerclass innerClass java/util/Locale$Category outerClass java/util/Locale innerClassName Category flags 4019
+
+class name java/text/DateFormat$Field
+header extends java/text/Format$Field nestHost java/text/DateFormat flags 21
+innerclass innerClass java/text/DateFormat$Field outerClass java/text/DateFormat innerClassName Field flags 9
+innerclass innerClass java/text/Format$Field outerClass java/text/Format innerClassName Field flags 9
+
+class name java/text/DateFormatSymbols
+header extends java/lang/Object implements java/io/Serializable,java/lang/Cloneable flags 21
+innerclass innerClass java/util/Locale$Category outerClass java/util/Locale innerClassName Category flags 4019
+
+class name java/text/DecimalFormatSymbols
+header extends java/lang/Object implements java/lang/Cloneable,java/io/Serializable flags 21
+innerclass innerClass java/util/Locale$Category outerClass java/util/Locale innerClassName Category flags 4019
+
+class name java/text/Format
+header extends java/lang/Object implements java/io/Serializable,java/lang/Cloneable nestMembers java/text/Format$Field flags 421
+innerclass innerClass java/text/Format$Field outerClass java/text/Format innerClassName Field flags 9
+innerclass innerClass java/text/AttributedCharacterIterator$Attribute outerClass java/text/AttributedCharacterIterator innerClassName Attribute flags 9
+
+class name java/text/Format$Field
+header extends java/text/AttributedCharacterIterator$Attribute nestHost java/text/Format flags 21
+innerclass innerClass java/text/Format$Field outerClass java/text/Format innerClassName Field flags 9
+innerclass innerClass java/text/AttributedCharacterIterator$Attribute outerClass java/text/AttributedCharacterIterator innerClassName Attribute flags 9
+
+class name java/text/MessageFormat
+header extends java/text/Format nestMembers java/text/MessageFormat$Field flags 21
+innerclass innerClass java/text/MessageFormat$Field outerClass java/text/MessageFormat innerClassName Field flags 9
+innerclass innerClass java/util/Locale$Category outerClass java/util/Locale innerClassName Category flags 4019
+innerclass innerClass java/text/AttributedCharacterIterator$Attribute outerClass java/text/AttributedCharacterIterator innerClassName Attribute flags 9
+innerclass innerClass java/text/Format$Field outerClass java/text/Format innerClassName Field flags 9
+
+class name java/text/MessageFormat$Field
+header extends java/text/Format$Field nestHost java/text/MessageFormat flags 21
+innerclass innerClass java/text/MessageFormat$Field outerClass java/text/MessageFormat innerClassName Field flags 9
+innerclass innerClass java/text/Format$Field outerClass java/text/Format innerClassName Field flags 9
+
+class name java/text/Normalizer
+header extends java/lang/Object nestMembers java/text/Normalizer$Form flags 31
+innerclass innerClass java/text/Normalizer$Form outerClass java/text/Normalizer innerClassName Form flags 4019
+
+class name java/text/Normalizer$Form
+header extends java/lang/Enum nestHost java/text/Normalizer flags 4031 signature Ljava/lang/Enum<Ljava/text/Normalizer$Form;>;
+innerclass innerClass java/text/Normalizer$Form outerClass java/text/Normalizer innerClassName Form flags 4019
+
+class name java/text/NumberFormat
+header extends java/text/Format nestMembers java/text/NumberFormat$Field flags 421
+innerclass innerClass java/text/NumberFormat$Field outerClass java/text/NumberFormat innerClassName Field flags 9
+innerclass innerClass java/util/Locale$Category outerClass java/util/Locale innerClassName Category flags 4019
+
+class name java/text/NumberFormat$Field
+header extends java/text/Format$Field nestHost java/text/NumberFormat flags 21
+innerclass innerClass java/text/NumberFormat$Field outerClass java/text/NumberFormat innerClassName Field flags 9
+innerclass innerClass java/text/Format$Field outerClass java/text/Format innerClassName Field flags 9
+
+class name java/text/ParseException
+header extends java/lang/Exception flags 21
+
+class name java/text/ParsePosition
+header extends java/lang/Object flags 21
+
+class name java/text/RuleBasedCollator
+header extends java/text/Collator flags 21
+innerclass innerClass java/text/Normalizer$Form outerClass java/text/Normalizer innerClassName Form flags 4019
+
+class name java/text/SimpleDateFormat
+header extends java/text/DateFormat flags 21
+innerclass innerClass java/text/DateFormat$Field outerClass java/text/DateFormat innerClassName Field flags 9
+innerclass innerClass java/util/Locale$Category outerClass java/util/Locale innerClassName Category flags 4019
+innerclass innerClass java/text/Format$Field outerClass java/text/Format innerClassName Field flags 9
+
+class name java/text/StringCharacterIterator
+header extends java/lang/Object implements java/text/CharacterIterator flags 31
+
+class name java/text/spi/BreakIteratorProvider
+header extends java/util/spi/LocaleServiceProvider flags 421
+
+class name java/text/spi/CollatorProvider
+header extends java/util/spi/LocaleServiceProvider flags 421
+
+class name java/text/spi/DateFormatProvider
+header extends java/util/spi/LocaleServiceProvider flags 421
+
+class name java/text/spi/DateFormatSymbolsProvider
+header extends java/util/spi/LocaleServiceProvider flags 421
+
+class name java/text/spi/DecimalFormatSymbolsProvider
+header extends java/util/spi/LocaleServiceProvider flags 421
+
+class name java/text/spi/NumberFormatProvider
+header extends java/util/spi/LocaleServiceProvider flags 421
+
+class name java/time/DateTimeException
+header extends java/lang/RuntimeException flags 21
+
+class name java/time/DayOfWeek
+header extends java/lang/Enum implements java/time/temporal/TemporalAccessor,java/time/temporal/TemporalAdjuster flags 4031 signature Ljava/lang/Enum<Ljava/time/DayOfWeek;>;Ljava/time/temporal/TemporalAccessor;Ljava/time/temporal/TemporalAdjuster;
+
+class name java/time/Period
+header extends java/lang/Object implements java/time/chrono/ChronoPeriod,java/io/Serializable flags 31
+
+class name java/time/ZoneOffset
+header extends java/time/ZoneId implements java/time/temporal/TemporalAccessor,java/time/temporal/TemporalAdjuster,java/lang/Comparable,java/io/Serializable flags 31 signature Ljava/time/ZoneId;Ljava/time/temporal/TemporalAccessor;Ljava/time/temporal/TemporalAdjuster;Ljava/lang/Comparable<Ljava/time/ZoneOffset;>;Ljava/io/Serializable;
+
+class name java/time/chrono/AbstractChronology
+header extends java/lang/Object implements java/time/chrono/Chronology flags 421
+
+class name java/time/chrono/ChronoLocalDate
+header extends java/lang/Object implements java/time/temporal/Temporal,java/time/temporal/TemporalAdjuster,java/lang/Comparable flags 601 signature Ljava/lang/Object;Ljava/time/temporal/Temporal;Ljava/time/temporal/TemporalAdjuster;Ljava/lang/Comparable<Ljava/time/chrono/ChronoLocalDate;>;
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/time/chrono/ChronoLocalDateTime
+header extends java/lang/Object implements java/time/temporal/Temporal,java/time/temporal/TemporalAdjuster,java/lang/Comparable flags 601 signature <D::Ljava/time/chrono/ChronoLocalDate;>Ljava/lang/Object;Ljava/time/temporal/Temporal;Ljava/time/temporal/TemporalAdjuster;Ljava/lang/Comparable<Ljava/time/chrono/ChronoLocalDateTime<*>;>;
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/time/chrono/ChronoPeriod
+header extends java/lang/Object implements java/time/temporal/TemporalAmount flags 601
+
+class name java/time/chrono/Era
+header extends java/lang/Object implements java/time/temporal/TemporalAccessor,java/time/temporal/TemporalAdjuster flags 601
+
+class name java/time/chrono/HijrahEra
+header extends java/lang/Enum implements java/time/chrono/Era flags 4031 signature Ljava/lang/Enum<Ljava/time/chrono/HijrahEra;>;Ljava/time/chrono/Era;
+
+class name java/time/chrono/IsoChronology
+header extends java/time/chrono/AbstractChronology implements java/io/Serializable flags 31
+
+class name java/time/chrono/IsoEra
+header extends java/lang/Enum implements java/time/chrono/Era flags 4031 signature Ljava/lang/Enum<Ljava/time/chrono/IsoEra;>;Ljava/time/chrono/Era;
+
+class name java/time/chrono/JapaneseEra
+header extends java/lang/Object implements java/time/chrono/Era,java/io/Serializable flags 31
+
+class name java/time/chrono/MinguoEra
+header extends java/lang/Enum implements java/time/chrono/Era flags 4031 signature Ljava/lang/Enum<Ljava/time/chrono/MinguoEra;>;Ljava/time/chrono/Era;
+
+class name java/time/chrono/ThaiBuddhistEra
+header extends java/lang/Enum implements java/time/chrono/Era flags 4031 signature Ljava/lang/Enum<Ljava/time/chrono/ThaiBuddhistEra;>;Ljava/time/chrono/Era;
+
+class name java/time/format/DateTimeParseException
+header extends java/time/DateTimeException flags 21
+
+class name java/time/format/DecimalStyle
+header extends java/lang/Object flags 31
+innerclass innerClass java/util/Locale$Category outerClass java/util/Locale innerClassName Category flags 4019
+
+class name java/time/format/FormatStyle
+header extends java/lang/Enum flags 4031 signature Ljava/lang/Enum<Ljava/time/format/FormatStyle;>;
+
+class name java/time/format/ResolverStyle
+header extends java/lang/Enum flags 4031 signature Ljava/lang/Enum<Ljava/time/format/ResolverStyle;>;
+
+class name java/time/format/SignStyle
+header extends java/lang/Enum flags 4031 signature Ljava/lang/Enum<Ljava/time/format/SignStyle;>;
+
+class name java/time/format/TextStyle
+header extends java/lang/Enum flags 4031 signature Ljava/lang/Enum<Ljava/time/format/TextStyle;>;
+
+class name java/time/temporal/ChronoField
+header extends java/lang/Enum implements java/time/temporal/TemporalField flags 4031 signature Ljava/lang/Enum<Ljava/time/temporal/ChronoField;>;Ljava/time/temporal/TemporalField;
+
+class name java/time/temporal/ChronoUnit
+header extends java/lang/Enum implements java/time/temporal/TemporalUnit flags 4031 signature Ljava/lang/Enum<Ljava/time/temporal/ChronoUnit;>;Ljava/time/temporal/TemporalUnit;
+
+class name java/time/temporal/Temporal
+header extends java/lang/Object implements java/time/temporal/TemporalAccessor flags 601
+
+class name java/time/temporal/TemporalAccessor
+header extends java/lang/Object flags 601
+
+class name java/time/temporal/TemporalAdjuster
+header extends java/lang/Object flags 601 runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/time/temporal/TemporalAdjusters
+header extends java/lang/Object flags 31
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/time/temporal/TemporalAmount
+header extends java/lang/Object flags 601
+
+class name java/time/temporal/TemporalField
+header extends java/lang/Object flags 601
+
+class name java/time/temporal/TemporalQuery
+header extends java/lang/Object flags 601 signature <R:Ljava/lang/Object;>Ljava/lang/Object; runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/time/temporal/TemporalUnit
+header extends java/lang/Object flags 601
+
+class name java/time/temporal/UnsupportedTemporalTypeException
+header extends java/time/DateTimeException flags 21
+
+class name java/time/temporal/ValueRange
+header extends java/lang/Object implements java/io/Serializable flags 31
+
+class name java/time/zone/ZoneOffsetTransition
+header extends java/lang/Object implements java/lang/Comparable,java/io/Serializable flags 31 signature Ljava/lang/Object;Ljava/lang/Comparable<Ljava/time/zone/ZoneOffsetTransition;>;Ljava/io/Serializable;
+
+class name java/time/zone/ZoneOffsetTransitionRule
+header extends java/lang/Object implements java/io/Serializable nestMembers java/time/zone/ZoneOffsetTransitionRule$TimeDefinition flags 31
+innerclass innerClass java/time/zone/ZoneOffsetTransitionRule$TimeDefinition outerClass java/time/zone/ZoneOffsetTransitionRule innerClassName TimeDefinition flags 4019
+
+class name java/time/zone/ZoneOffsetTransitionRule$TimeDefinition
+header extends java/lang/Enum nestHost java/time/zone/ZoneOffsetTransitionRule flags 4031 signature Ljava/lang/Enum<Ljava/time/zone/ZoneOffsetTransitionRule$TimeDefinition;>;
+innerclass innerClass java/time/zone/ZoneOffsetTransitionRule$TimeDefinition outerClass java/time/zone/ZoneOffsetTransitionRule innerClassName TimeDefinition flags 4019
+
+class name java/time/zone/ZoneRules
+header extends java/lang/Object implements java/io/Serializable flags 31
+
+class name java/time/zone/ZoneRulesException
+header extends java/time/DateTimeException flags 21
+
+class name java/util/AbstractCollection
+header extends java/lang/Object implements java/util/Collection flags 421 signature <E:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/Collection<TE;>;
+
+class name java/util/AbstractMap
+header extends java/lang/Object implements java/util/Map nestMembers java/util/AbstractMap$SimpleImmutableEntry,java/util/AbstractMap$SimpleEntry flags 421 signature <K:Ljava/lang/Object;V:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/Map<TK;TV;>;
+innerclass innerClass java/util/AbstractMap$SimpleImmutableEntry outerClass java/util/AbstractMap innerClassName SimpleImmutableEntry flags 9
+innerclass innerClass java/util/AbstractMap$SimpleEntry outerClass java/util/AbstractMap innerClassName SimpleEntry flags 9
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+
+class name java/util/AbstractMap$SimpleEntry
+header extends java/lang/Object implements java/util/Map$Entry,java/io/Serializable nestHost java/util/AbstractMap flags 21 signature <K:Ljava/lang/Object;V:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/Map$Entry<TK;TV;>;Ljava/io/Serializable;
+innerclass innerClass java/util/AbstractMap$SimpleEntry outerClass java/util/AbstractMap innerClassName SimpleEntry flags 9
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+
+class name java/util/AbstractMap$SimpleImmutableEntry
+header extends java/lang/Object implements java/util/Map$Entry,java/io/Serializable nestHost java/util/AbstractMap flags 21 signature <K:Ljava/lang/Object;V:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/Map$Entry<TK;TV;>;Ljava/io/Serializable;
+innerclass innerClass java/util/AbstractMap$SimpleImmutableEntry outerClass java/util/AbstractMap innerClassName SimpleImmutableEntry flags 9
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+
+class name java/util/AbstractQueue
+header extends java/util/AbstractCollection implements java/util/Queue flags 421 signature <E:Ljava/lang/Object;>Ljava/util/AbstractCollection<TE;>;Ljava/util/Queue<TE;>;
+
+class name java/util/AbstractSequentialList
+header extends java/util/AbstractList flags 421 signature <E:Ljava/lang/Object;>Ljava/util/AbstractList<TE;>;
+
+class name java/util/AbstractSet
+header extends java/util/AbstractCollection implements java/util/Set flags 421 signature <E:Ljava/lang/Object;>Ljava/util/AbstractCollection<TE;>;Ljava/util/Set<TE;>;
+
+class name java/util/ArrayList
+method name equals descriptor (Ljava/lang/Object;)Z flags 1
+method name hashCode descriptor ()I flags 1
+
+class name java/util/Base64
+header extends java/lang/Object nestMembers java/util/Base64$Decoder,java/util/Base64$Encoder flags 21
+innerclass innerClass java/util/Base64$Decoder outerClass java/util/Base64 innerClassName Decoder flags 9
+innerclass innerClass java/util/Base64$Encoder outerClass java/util/Base64 innerClassName Encoder flags 9
+
+class name java/util/Base64$Decoder
+header extends java/lang/Object nestHost java/util/Base64 flags 21
+innerclass innerClass java/util/Base64$Decoder outerClass java/util/Base64 innerClassName Decoder flags 9
+innerclass innerClass java/util/Base64$Encoder outerClass java/util/Base64 innerClassName Encoder flags 9
+
+class name java/util/Base64$Encoder
+header extends java/lang/Object nestHost java/util/Base64 flags 21
+innerclass innerClass java/util/Base64$Encoder outerClass java/util/Base64 innerClassName Encoder flags 9
+
+class name java/util/Calendar
+header extends java/lang/Object implements java/io/Serializable,java/lang/Cloneable,java/lang/Comparable nestMembers java/util/Calendar$Builder flags 421 signature Ljava/lang/Object;Ljava/io/Serializable;Ljava/lang/Cloneable;Ljava/lang/Comparable<Ljava/util/Calendar;>;
+innerclass innerClass java/util/Calendar$Builder outerClass java/util/Calendar innerClassName Builder flags 9
+innerclass innerClass java/util/Locale$Category outerClass java/util/Locale innerClassName Category flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/Calendar$Builder
+header extends java/lang/Object nestHost java/util/Calendar flags 21
+innerclass innerClass java/util/Calendar$Builder outerClass java/util/Calendar innerClassName Builder flags 9
+
+class name java/util/Collection
+header extends java/lang/Object implements java/lang/Iterable flags 601 signature <E:Ljava/lang/Object;>Ljava/lang/Object;Ljava/lang/Iterable<TE;>;
+method name toArray descriptor (Ljava/util/function/IntFunction;)[Ljava/lang/Object; flags 1 signature <T:Ljava/lang/Object;>(Ljava/util/function/IntFunction<[TT;>;)[TT;
+
+class name java/util/Comparator
+header extends java/lang/Object flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object; runtimeAnnotations @Ljava/lang/FunctionalInterface;
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/ConcurrentModificationException
+header extends java/lang/RuntimeException flags 21
+
+class name java/util/Currency
+header extends java/lang/Object implements java/io/Serializable flags 31
+innerclass innerClass java/util/Locale$Category outerClass java/util/Locale innerClassName Category flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/Date
+header extends java/lang/Object implements java/io/Serializable,java/lang/Cloneable,java/lang/Comparable flags 21 signature Ljava/lang/Object;Ljava/io/Serializable;Ljava/lang/Cloneable;Ljava/lang/Comparable<Ljava/util/Date;>;
+
+class name java/util/Deque
+header extends java/lang/Object implements java/util/Queue flags 601 signature <E:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/Queue<TE;>;
+
+class name java/util/Dictionary
+header extends java/lang/Object flags 421 signature <K:Ljava/lang/Object;V:Ljava/lang/Object;>Ljava/lang/Object;
+
+class name java/util/DoubleSummaryStatistics
+header extends java/lang/Object implements java/util/function/DoubleConsumer flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/DuplicateFormatFlagsException
+header extends java/util/IllegalFormatException flags 21
+
+class name java/util/EmptyStackException
+header extends java/lang/RuntimeException flags 21
+
+class name java/util/EventListener
+header extends java/lang/Object flags 601
+
+class name java/util/EventListenerProxy
+header extends java/lang/Object implements java/util/EventListener flags 421 signature <T::Ljava/util/EventListener;>Ljava/lang/Object;Ljava/util/EventListener;
+
+class name java/util/EventObject
+header extends java/lang/Object implements java/io/Serializable flags 21
+
+class name java/util/FormatFlagsConversionMismatchException
+header extends java/util/IllegalFormatException flags 21
+
+class name java/util/Formattable
+header extends java/lang/Object flags 601
+
+class name java/util/FormattableFlags
+header extends java/lang/Object flags 21
+
+class name java/util/Formatter
+header extends java/lang/Object implements java/io/Closeable,java/io/Flushable nestMembers java/util/Formatter$BigDecimalLayoutForm flags 31
+innerclass innerClass java/util/Formatter$BigDecimalLayoutForm outerClass java/util/Formatter innerClassName BigDecimalLayoutForm flags 4019
+innerclass innerClass java/util/Locale$Category outerClass java/util/Locale innerClassName Category flags 4019
+
+class name java/util/Formatter$BigDecimalLayoutForm
+header extends java/lang/Enum nestHost java/util/Formatter flags 4031 signature Ljava/lang/Enum<Ljava/util/Formatter$BigDecimalLayoutForm;>;
+innerclass innerClass java/util/Formatter$BigDecimalLayoutForm outerClass java/util/Formatter innerClassName BigDecimalLayoutForm flags 4019
+
+class name java/util/FormatterClosedException
+header extends java/lang/IllegalStateException flags 21
+
+class name java/util/GregorianCalendar
+header extends java/util/Calendar flags 21
+innerclass innerClass java/util/Locale$Category outerClass java/util/Locale innerClassName Category flags 4019
+
+class name java/util/HashSet
+header extends java/util/AbstractSet implements java/util/Set,java/lang/Cloneable,java/io/Serializable flags 21 signature <E:Ljava/lang/Object;>Ljava/util/AbstractSet<TE;>;Ljava/util/Set<TE;>;Ljava/lang/Cloneable;Ljava/io/Serializable;
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+
+class name java/util/IllegalFormatCodePointException
+header extends java/util/IllegalFormatException flags 21
+
+class name java/util/IllegalFormatConversionException
+header extends java/util/IllegalFormatException flags 21
+
+class name java/util/IllegalFormatException
+header extends java/lang/IllegalArgumentException flags 21
+
+class name java/util/IllegalFormatFlagsException
+header extends java/util/IllegalFormatException flags 21
+
+class name java/util/IllegalFormatPrecisionException
+header extends java/util/IllegalFormatException flags 21
+
+class name java/util/IllegalFormatWidthException
+header extends java/util/IllegalFormatException flags 21
+
+class name java/util/IllformedLocaleException
+header extends java/lang/RuntimeException flags 21
+
+class name java/util/InputMismatchException
+header extends java/util/NoSuchElementException flags 21
+
+class name java/util/IntSummaryStatistics
+header extends java/lang/Object implements java/util/function/IntConsumer flags 21
+
+class name java/util/InvalidPropertiesFormatException
+header extends java/io/IOException flags 21
+
+class name java/util/Iterator
+header extends java/lang/Object flags 601 signature <E:Ljava/lang/Object;>Ljava/lang/Object;
+
+class name java/util/LinkedHashSet
+header extends java/util/HashSet implements java/util/Set,java/lang/Cloneable,java/io/Serializable flags 21 signature <E:Ljava/lang/Object;>Ljava/util/HashSet<TE;>;Ljava/util/Set<TE;>;Ljava/lang/Cloneable;Ljava/io/Serializable;
+
+class name java/util/List
+header extends java/lang/Object implements java/util/Collection flags 601 signature <E:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/Collection<TE;>;
+
+class name java/util/ListIterator
+header extends java/lang/Object implements java/util/Iterator flags 601 signature <E:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/Iterator<TE;>;
+
+class name java/util/ListResourceBundle
+header extends java/util/ResourceBundle flags 421
+
+class name java/util/Locale
+header extends java/lang/Object implements java/lang/Cloneable,java/io/Serializable nestMembers java/util/Locale$LanguageRange,java/util/Locale$FilteringMode,java/util/Locale$Builder,java/util/Locale$Category,java/util/Locale$IsoCountryCode flags 31
+innerclass innerClass java/util/Locale$LanguageRange outerClass java/util/Locale innerClassName LanguageRange flags 19
+innerclass innerClass java/util/Locale$FilteringMode outerClass java/util/Locale innerClassName FilteringMode flags 4019
+innerclass innerClass java/util/Locale$Builder outerClass java/util/Locale innerClassName Builder flags 19
+innerclass innerClass java/util/Locale$Category outerClass java/util/Locale innerClassName Category flags 4019
+innerclass innerClass java/util/Locale$IsoCountryCode outerClass java/util/Locale innerClassName IsoCountryCode flags 4409
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/Locale$Builder
+header extends java/lang/Object nestHost java/util/Locale flags 31
+innerclass innerClass java/util/Locale$Builder outerClass java/util/Locale innerClassName Builder flags 19
+
+class name java/util/Locale$Category
+header extends java/lang/Enum nestHost java/util/Locale flags 4031 signature Ljava/lang/Enum<Ljava/util/Locale$Category;>;
+innerclass innerClass java/util/Locale$Category outerClass java/util/Locale innerClassName Category flags 4019
+
+class name java/util/Locale$FilteringMode
+header extends java/lang/Enum nestHost java/util/Locale flags 4031 signature Ljava/lang/Enum<Ljava/util/Locale$FilteringMode;>;
+innerclass innerClass java/util/Locale$FilteringMode outerClass java/util/Locale innerClassName FilteringMode flags 4019
+
+class name java/util/Locale$IsoCountryCode
+header extends java/lang/Enum nestHost java/util/Locale flags 4421 signature Ljava/lang/Enum<Ljava/util/Locale$IsoCountryCode;>;
+innerclass innerClass java/util/Locale$IsoCountryCode outerClass java/util/Locale innerClassName IsoCountryCode flags 4409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/Locale$LanguageRange
+header extends java/lang/Object nestHost java/util/Locale flags 31
+innerclass innerClass java/util/Locale$LanguageRange outerClass java/util/Locale innerClassName LanguageRange flags 19
+
+class name java/util/LongSummaryStatistics
+header extends java/lang/Object implements java/util/function/LongConsumer,java/util/function/IntConsumer flags 21
+
+class name java/util/Map
+header extends java/lang/Object nestMembers java/util/Map$Entry flags 601 signature <K:Ljava/lang/Object;V:Ljava/lang/Object;>Ljava/lang/Object;
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+
+class name java/util/Map$Entry
+header extends java/lang/Object nestHost java/util/Map flags 601 signature <K:Ljava/lang/Object;V:Ljava/lang/Object;>Ljava/lang/Object;
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/MissingFormatArgumentException
+header extends java/util/IllegalFormatException flags 21
+
+class name java/util/MissingFormatWidthException
+header extends java/util/IllegalFormatException flags 21
+
+class name java/util/MissingResourceException
+header extends java/lang/RuntimeException flags 21
+
+class name java/util/NavigableMap
+header extends java/lang/Object implements java/util/SortedMap flags 601 signature <K:Ljava/lang/Object;V:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/SortedMap<TK;TV;>;
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+
+class name java/util/NavigableSet
+header extends java/lang/Object implements java/util/SortedSet flags 601 signature <E:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/SortedSet<TE;>;
+
+class name java/util/NoSuchElementException
+header extends java/lang/RuntimeException flags 21
+
+class name java/util/Objects
+header extends java/lang/Object flags 31
+
+class name java/util/Observable
+header extends java/lang/Object flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="9")
+
+class name java/util/Observer
+header extends java/lang/Object flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="9")
+
+class name java/util/Optional
+header extends java/lang/Object flags 31 signature <T:Ljava/lang/Object;>Ljava/lang/Object;
+method name isEmpty descriptor ()Z flags 1
+
+class name java/util/OptionalDouble
+header extends java/lang/Object flags 31
+method name isEmpty descriptor ()Z flags 1
+
+class name java/util/OptionalInt
+header extends java/lang/Object flags 31
+method name isEmpty descriptor ()Z flags 1
+
+class name java/util/OptionalLong
+header extends java/lang/Object flags 31
+method name isEmpty descriptor ()Z flags 1
+
+class name java/util/PrimitiveIterator
+header extends java/lang/Object implements java/util/Iterator nestMembers java/util/PrimitiveIterator$OfDouble,java/util/PrimitiveIterator$OfLong,java/util/PrimitiveIterator$OfInt flags 601 signature <T:Ljava/lang/Object;T_CONS:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/Iterator<TT;>;
+innerclass innerClass java/util/PrimitiveIterator$OfDouble outerClass java/util/PrimitiveIterator innerClassName OfDouble flags 609
+innerclass innerClass java/util/PrimitiveIterator$OfLong outerClass java/util/PrimitiveIterator innerClassName OfLong flags 609
+innerclass innerClass java/util/PrimitiveIterator$OfInt outerClass java/util/PrimitiveIterator innerClassName OfInt flags 609
+
+class name java/util/PrimitiveIterator$OfDouble
+header extends java/lang/Object implements java/util/PrimitiveIterator nestHost java/util/PrimitiveIterator flags 601 signature Ljava/lang/Object;Ljava/util/PrimitiveIterator<Ljava/lang/Double;Ljava/util/function/DoubleConsumer;>;
+innerclass innerClass java/util/PrimitiveIterator$OfDouble outerClass java/util/PrimitiveIterator innerClassName OfDouble flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/PrimitiveIterator$OfInt
+header extends java/lang/Object implements java/util/PrimitiveIterator nestHost java/util/PrimitiveIterator flags 601 signature Ljava/lang/Object;Ljava/util/PrimitiveIterator<Ljava/lang/Integer;Ljava/util/function/IntConsumer;>;
+innerclass innerClass java/util/PrimitiveIterator$OfInt outerClass java/util/PrimitiveIterator innerClassName OfInt flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/PrimitiveIterator$OfLong
+header extends java/lang/Object implements java/util/PrimitiveIterator nestHost java/util/PrimitiveIterator flags 601 signature Ljava/lang/Object;Ljava/util/PrimitiveIterator<Ljava/lang/Long;Ljava/util/function/LongConsumer;>;
+innerclass innerClass java/util/PrimitiveIterator$OfLong outerClass java/util/PrimitiveIterator innerClassName OfLong flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/PriorityQueue
+header extends java/util/AbstractQueue implements java/io/Serializable flags 21 signature <E:Ljava/lang/Object;>Ljava/util/AbstractQueue<TE;>;Ljava/io/Serializable;
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+method name removeIf descriptor (Ljava/util/function/Predicate;)Z flags 1 signature (Ljava/util/function/Predicate<-TE;>;)Z
+method name removeAll descriptor (Ljava/util/Collection;)Z flags 1 signature (Ljava/util/Collection<*>;)Z
+method name retainAll descriptor (Ljava/util/Collection;)Z flags 1 signature (Ljava/util/Collection<*>;)Z
+method name forEach descriptor (Ljava/util/function/Consumer;)V flags 1 signature (Ljava/util/function/Consumer<-TE;>;)V
+
+class name java/util/Properties
+-field name defaults descriptor Ljava/util/Properties;
+field name defaults descriptor Ljava/util/Properties; flags 44
+
+class name java/util/PropertyPermission
+header extends java/security/BasicPermission flags 31
+
+class name java/util/PropertyResourceBundle
+header extends java/util/ResourceBundle flags 21
+
+class name java/util/Queue
+header extends java/lang/Object implements java/util/Collection flags 601 signature <E:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/Collection<TE;>;
+
+class name java/util/RandomAccess
+header extends java/lang/Object flags 601
+
+class name java/util/ResourceBundle
+header extends java/lang/Object nestMembers java/util/ResourceBundle$Control flags 421
+innerclass innerClass java/util/ResourceBundle$Control outerClass java/util/ResourceBundle innerClassName Control flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/ResourceBundle$Control
+header extends java/lang/Object nestHost java/util/ResourceBundle flags 21
+innerclass innerClass java/util/ResourceBundle$Control outerClass java/util/ResourceBundle innerClassName Control flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/ServiceConfigurationError
+header extends java/lang/Error flags 21
+
+class name java/util/ServiceLoader
+header extends java/lang/Object implements java/lang/Iterable nestMembers java/util/ServiceLoader$Provider flags 31 signature <S:Ljava/lang/Object;>Ljava/lang/Object;Ljava/lang/Iterable<TS;>;
+innerclass innerClass java/util/ServiceLoader$Provider outerClass java/util/ServiceLoader innerClassName Provider flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/ServiceLoader$Provider
+header extends java/lang/Object implements java/util/function/Supplier nestHost java/util/ServiceLoader flags 601 signature <S:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/function/Supplier<TS;>;
+innerclass innerClass java/util/ServiceLoader$Provider outerClass java/util/ServiceLoader innerClassName Provider flags 609
+
+class name java/util/Set
+header extends java/lang/Object implements java/util/Collection flags 601 signature <E:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/Collection<TE;>;
+
+class name java/util/SortedMap
+header extends java/lang/Object implements java/util/Map flags 601 signature <K:Ljava/lang/Object;V:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/Map<TK;TV;>;
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+
+class name java/util/Spliterator
+header extends java/lang/Object nestMembers java/util/Spliterator$OfDouble,java/util/Spliterator$OfLong,java/util/Spliterator$OfInt,java/util/Spliterator$OfPrimitive flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object;
+innerclass innerClass java/util/Spliterator$OfDouble outerClass java/util/Spliterator innerClassName OfDouble flags 609
+innerclass innerClass java/util/Spliterator$OfLong outerClass java/util/Spliterator innerClassName OfLong flags 609
+innerclass innerClass java/util/Spliterator$OfInt outerClass java/util/Spliterator innerClassName OfInt flags 609
+innerclass innerClass java/util/Spliterator$OfPrimitive outerClass java/util/Spliterator innerClassName OfPrimitive flags 609
+
+class name java/util/Spliterator$OfDouble
+header extends java/lang/Object implements java/util/Spliterator$OfPrimitive nestHost java/util/Spliterator flags 601 signature Ljava/lang/Object;Ljava/util/Spliterator$OfPrimitive<Ljava/lang/Double;Ljava/util/function/DoubleConsumer;Ljava/util/Spliterator$OfDouble;>;
+innerclass innerClass java/util/Spliterator$OfDouble outerClass java/util/Spliterator innerClassName OfDouble flags 609
+innerclass innerClass java/util/Spliterator$OfPrimitive outerClass java/util/Spliterator innerClassName OfPrimitive flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/Spliterator$OfInt
+header extends java/lang/Object implements java/util/Spliterator$OfPrimitive nestHost java/util/Spliterator flags 601 signature Ljava/lang/Object;Ljava/util/Spliterator$OfPrimitive<Ljava/lang/Integer;Ljava/util/function/IntConsumer;Ljava/util/Spliterator$OfInt;>;
+innerclass innerClass java/util/Spliterator$OfInt outerClass java/util/Spliterator innerClassName OfInt flags 609
+innerclass innerClass java/util/Spliterator$OfPrimitive outerClass java/util/Spliterator innerClassName OfPrimitive flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/Spliterator$OfLong
+header extends java/lang/Object implements java/util/Spliterator$OfPrimitive nestHost java/util/Spliterator flags 601 signature Ljava/lang/Object;Ljava/util/Spliterator$OfPrimitive<Ljava/lang/Long;Ljava/util/function/LongConsumer;Ljava/util/Spliterator$OfLong;>;
+innerclass innerClass java/util/Spliterator$OfLong outerClass java/util/Spliterator innerClassName OfLong flags 609
+innerclass innerClass java/util/Spliterator$OfPrimitive outerClass java/util/Spliterator innerClassName OfPrimitive flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/Spliterator$OfPrimitive
+header extends java/lang/Object implements java/util/Spliterator nestHost java/util/Spliterator flags 601 signature <T:Ljava/lang/Object;T_CONS:Ljava/lang/Object;T_SPLITR::Ljava/util/Spliterator$OfPrimitive<TT;TT_CONS;TT_SPLITR;>;>Ljava/lang/Object;Ljava/util/Spliterator<TT;>;
+innerclass innerClass java/util/Spliterator$OfPrimitive outerClass java/util/Spliterator innerClassName OfPrimitive flags 609
+
+class name java/util/Spliterators
+header extends java/lang/Object nestMembers java/util/Spliterators$AbstractDoubleSpliterator,java/util/Spliterators$AbstractLongSpliterator,java/util/Spliterators$AbstractIntSpliterator,java/util/Spliterators$AbstractSpliterator flags 31
+innerclass innerClass java/util/Spliterators$AbstractDoubleSpliterator outerClass java/util/Spliterators innerClassName AbstractDoubleSpliterator flags 409
+innerclass innerClass java/util/Spliterators$AbstractLongSpliterator outerClass java/util/Spliterators innerClassName AbstractLongSpliterator flags 409
+innerclass innerClass java/util/Spliterators$AbstractIntSpliterator outerClass java/util/Spliterators innerClassName AbstractIntSpliterator flags 409
+innerclass innerClass java/util/Spliterators$AbstractSpliterator outerClass java/util/Spliterators innerClassName AbstractSpliterator flags 409
+innerclass innerClass java/util/Spliterator$OfInt outerClass java/util/Spliterator innerClassName OfInt flags 609
+innerclass innerClass java/util/Spliterator$OfLong outerClass java/util/Spliterator innerClassName OfLong flags 609
+innerclass innerClass java/util/Spliterator$OfDouble outerClass java/util/Spliterator innerClassName OfDouble flags 609
+innerclass innerClass java/util/PrimitiveIterator$OfInt outerClass java/util/PrimitiveIterator innerClassName OfInt flags 609
+innerclass innerClass java/util/PrimitiveIterator$OfLong outerClass java/util/PrimitiveIterator innerClassName OfLong flags 609
+innerclass innerClass java/util/PrimitiveIterator$OfDouble outerClass java/util/PrimitiveIterator innerClassName OfDouble flags 609
+
+class name java/util/Spliterators$AbstractDoubleSpliterator
+header extends java/lang/Object implements java/util/Spliterator$OfDouble nestHost java/util/Spliterators flags 421
+innerclass innerClass java/util/Spliterators$AbstractDoubleSpliterator outerClass java/util/Spliterators innerClassName AbstractDoubleSpliterator flags 409
+innerclass innerClass java/util/Spliterator$OfDouble outerClass java/util/Spliterator innerClassName OfDouble flags 609
+innerclass innerClass java/util/Spliterator$OfPrimitive outerClass java/util/Spliterator innerClassName OfPrimitive flags 609
+innerclass innerClass java/util/Spliterators$AbstractSpliterator outerClass java/util/Spliterators innerClassName AbstractSpliterator flags 409
+
+class name java/util/Spliterators$AbstractIntSpliterator
+header extends java/lang/Object implements java/util/Spliterator$OfInt nestHost java/util/Spliterators flags 421
+innerclass innerClass java/util/Spliterators$AbstractIntSpliterator outerClass java/util/Spliterators innerClassName AbstractIntSpliterator flags 409
+innerclass innerClass java/util/Spliterator$OfInt outerClass java/util/Spliterator innerClassName OfInt flags 609
+innerclass innerClass java/util/Spliterator$OfPrimitive outerClass java/util/Spliterator innerClassName OfPrimitive flags 609
+innerclass innerClass java/util/Spliterators$AbstractSpliterator outerClass java/util/Spliterators innerClassName AbstractSpliterator flags 409
+
+class name java/util/Spliterators$AbstractLongSpliterator
+header extends java/lang/Object implements java/util/Spliterator$OfLong nestHost java/util/Spliterators flags 421
+innerclass innerClass java/util/Spliterators$AbstractLongSpliterator outerClass java/util/Spliterators innerClassName AbstractLongSpliterator flags 409
+innerclass innerClass java/util/Spliterator$OfLong outerClass java/util/Spliterator innerClassName OfLong flags 609
+innerclass innerClass java/util/Spliterator$OfPrimitive outerClass java/util/Spliterator innerClassName OfPrimitive flags 609
+innerclass innerClass java/util/Spliterators$AbstractSpliterator outerClass java/util/Spliterators innerClassName AbstractSpliterator flags 409
+
+class name java/util/Spliterators$AbstractSpliterator
+header extends java/lang/Object implements java/util/Spliterator nestHost java/util/Spliterators flags 421 signature <T:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/Spliterator<TT;>;
+innerclass innerClass java/util/Spliterators$AbstractSpliterator outerClass java/util/Spliterators innerClassName AbstractSpliterator flags 409
+
+class name java/util/Stack
+header extends java/util/Vector flags 21 signature <E:Ljava/lang/Object;>Ljava/util/Vector<TE;>;
+
+class name java/util/StringJoiner
+header extends java/lang/Object flags 31
+
+class name java/util/StringTokenizer
+header extends java/lang/Object implements java/util/Enumeration flags 21 signature Ljava/lang/Object;Ljava/util/Enumeration<Ljava/lang/Object;>;
+
+class name java/util/TimeZone
+header extends java/lang/Object implements java/io/Serializable,java/lang/Cloneable flags 421
+innerclass innerClass java/util/Locale$Category outerClass java/util/Locale innerClassName Category flags 4019
+
+class name java/util/TimerTask
+header extends java/lang/Object implements java/lang/Runnable flags 421
+
+class name java/util/TooManyListenersException
+header extends java/lang/Exception flags 21
+
+class name java/util/TreeSet
+header extends java/util/AbstractSet implements java/util/NavigableSet,java/lang/Cloneable,java/io/Serializable flags 21 signature <E:Ljava/lang/Object;>Ljava/util/AbstractSet<TE;>;Ljava/util/NavigableSet<TE;>;Ljava/lang/Cloneable;Ljava/io/Serializable;
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+
+class name java/util/UnknownFormatConversionException
+header extends java/util/IllegalFormatException flags 21
+
+class name java/util/UnknownFormatFlagsException
+header extends java/util/IllegalFormatException flags 21
+
+class name java/util/Vector
+header extends java/util/AbstractList implements java/util/List,java/util/RandomAccess,java/lang/Cloneable,java/io/Serializable flags 21 signature <E:Ljava/lang/Object;>Ljava/util/AbstractList<TE;>;Ljava/util/List<TE;>;Ljava/util/RandomAccess;Ljava/lang/Cloneable;Ljava/io/Serializable;
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/concurrent/AbstractExecutorService
+header extends java/lang/Object implements java/util/concurrent/ExecutorService flags 421
+
+class name java/util/concurrent/BlockingDeque
+header extends java/lang/Object implements java/util/concurrent/BlockingQueue,java/util/Deque flags 601 signature <E:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/concurrent/BlockingQueue<TE;>;Ljava/util/Deque<TE;>;
+
+class name java/util/concurrent/BlockingQueue
+header extends java/lang/Object implements java/util/Queue flags 601 signature <E:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/Queue<TE;>;
+
+class name java/util/concurrent/BrokenBarrierException
+header extends java/lang/Exception flags 21
+
+class name java/util/concurrent/Callable
+header extends java/lang/Object flags 601 signature <V:Ljava/lang/Object;>Ljava/lang/Object; runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/util/concurrent/CancellationException
+header extends java/lang/IllegalStateException flags 21
+
+class name java/util/concurrent/CompletableFuture
+header extends java/lang/Object implements java/util/concurrent/Future,java/util/concurrent/CompletionStage nestMembers java/util/concurrent/CompletableFuture$AsynchronousCompletionTask flags 21 signature <T:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/concurrent/Future<TT;>;Ljava/util/concurrent/CompletionStage<TT;>;
+innerclass innerClass java/util/concurrent/CompletableFuture$AsynchronousCompletionTask outerClass java/util/concurrent/CompletableFuture innerClassName AsynchronousCompletionTask flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+innerclass innerClass java/util/concurrent/ForkJoinPool$ManagedBlocker outerClass java/util/concurrent/ForkJoinPool innerClassName ManagedBlocker flags 609
+
+class name java/util/concurrent/CompletableFuture$AsynchronousCompletionTask
+header extends java/lang/Object nestHost java/util/concurrent/CompletableFuture flags 601
+innerclass innerClass java/util/concurrent/CompletableFuture$AsynchronousCompletionTask outerClass java/util/concurrent/CompletableFuture innerClassName AsynchronousCompletionTask flags 609
+
+class name java/util/concurrent/CompletionException
+header extends java/lang/RuntimeException flags 21
+
+class name java/util/concurrent/CompletionService
+header extends java/lang/Object flags 601 signature <V:Ljava/lang/Object;>Ljava/lang/Object;
+
+class name java/util/concurrent/CompletionStage
+header extends java/lang/Object flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object;
+
+class name java/util/concurrent/ConcurrentHashMap
+header extends java/util/AbstractMap implements java/util/concurrent/ConcurrentMap,java/io/Serializable nestMembers java/util/concurrent/ConcurrentHashMap$KeySetView,java/util/concurrent/ConcurrentHashMap$CollectionView flags 21 signature <K:Ljava/lang/Object;V:Ljava/lang/Object;>Ljava/util/AbstractMap<TK;TV;>;Ljava/util/concurrent/ConcurrentMap<TK;TV;>;Ljava/io/Serializable;
+innerclass innerClass java/util/concurrent/ConcurrentHashMap$KeySetView outerClass java/util/concurrent/ConcurrentHashMap innerClassName KeySetView flags 9
+innerclass innerClass java/util/concurrent/ConcurrentHashMap$CollectionView outerClass java/util/concurrent/ConcurrentHashMap innerClassName CollectionView flags 408
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+innerclass innerClass java/util/AbstractMap$SimpleImmutableEntry outerClass java/util/AbstractMap innerClassName SimpleImmutableEntry flags 9
+
+class name java/util/concurrent/ConcurrentHashMap$CollectionView
+header extends java/lang/Object implements java/util/Collection,java/io/Serializable nestHost java/util/concurrent/ConcurrentHashMap flags 420 signature <K:Ljava/lang/Object;V:Ljava/lang/Object;E:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/Collection<TE;>;Ljava/io/Serializable;
+innerclass innerClass java/util/concurrent/ConcurrentHashMap$CollectionView outerClass java/util/concurrent/ConcurrentHashMap innerClassName CollectionView flags 408
+
+class name java/util/concurrent/ConcurrentHashMap$KeySetView
+header extends java/util/concurrent/ConcurrentHashMap$CollectionView implements java/util/Set,java/io/Serializable nestHost java/util/concurrent/ConcurrentHashMap flags 21 signature <K:Ljava/lang/Object;V:Ljava/lang/Object;>Ljava/util/concurrent/ConcurrentHashMap$CollectionView<TK;TV;TK;>;Ljava/util/Set<TK;>;Ljava/io/Serializable;
+innerclass innerClass java/util/concurrent/ConcurrentHashMap$KeySetView outerClass java/util/concurrent/ConcurrentHashMap innerClassName KeySetView flags 9
+innerclass innerClass java/util/concurrent/ConcurrentHashMap$CollectionView outerClass java/util/concurrent/ConcurrentHashMap innerClassName CollectionView flags 408
+
+class name java/util/concurrent/ConcurrentMap
+header extends java/lang/Object implements java/util/Map flags 601 signature <K:Ljava/lang/Object;V:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/Map<TK;TV;>;
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/concurrent/ConcurrentNavigableMap
+header extends java/lang/Object implements java/util/concurrent/ConcurrentMap,java/util/NavigableMap flags 601 signature <K:Ljava/lang/Object;V:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/concurrent/ConcurrentMap<TK;TV;>;Ljava/util/NavigableMap<TK;TV;>;
+
+class name java/util/concurrent/ConcurrentSkipListSet
+header extends java/util/AbstractSet implements java/util/NavigableSet,java/lang/Cloneable,java/io/Serializable flags 21 signature <E:Ljava/lang/Object;>Ljava/util/AbstractSet<TE;>;Ljava/util/NavigableSet<TE;>;Ljava/lang/Cloneable;Ljava/io/Serializable;
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/concurrent/CopyOnWriteArraySet
+header extends java/util/AbstractSet implements java/io/Serializable flags 21 signature <E:Ljava/lang/Object;>Ljava/util/AbstractSet<TE;>;Ljava/io/Serializable;
+
+class name java/util/concurrent/CountedCompleter
+header extends java/util/concurrent/ForkJoinTask flags 421 signature <T:Ljava/lang/Object;>Ljava/util/concurrent/ForkJoinTask<TT;>;
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/concurrent/Delayed
+header extends java/lang/Object implements java/lang/Comparable flags 601 signature Ljava/lang/Object;Ljava/lang/Comparable<Ljava/util/concurrent/Delayed;>;
+
+class name java/util/concurrent/ExecutionException
+header extends java/lang/Exception flags 21
+
+class name java/util/concurrent/Executor
+header extends java/lang/Object flags 601
+
+class name java/util/concurrent/ExecutorService
+header extends java/lang/Object implements java/util/concurrent/Executor flags 601
+
+class name java/util/concurrent/Flow
+header extends java/lang/Object nestMembers java/util/concurrent/Flow$Processor,java/util/concurrent/Flow$Subscription,java/util/concurrent/Flow$Subscriber,java/util/concurrent/Flow$Publisher flags 31
+innerclass innerClass java/util/concurrent/Flow$Processor outerClass java/util/concurrent/Flow innerClassName Processor flags 609
+innerclass innerClass java/util/concurrent/Flow$Subscription outerClass java/util/concurrent/Flow innerClassName Subscription flags 609
+innerclass innerClass java/util/concurrent/Flow$Subscriber outerClass java/util/concurrent/Flow innerClassName Subscriber flags 609
+innerclass innerClass java/util/concurrent/Flow$Publisher outerClass java/util/concurrent/Flow innerClassName Publisher flags 609
+
+class name java/util/concurrent/Flow$Processor
+header extends java/lang/Object implements java/util/concurrent/Flow$Subscriber,java/util/concurrent/Flow$Publisher nestHost java/util/concurrent/Flow flags 601 signature <T:Ljava/lang/Object;R:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/concurrent/Flow$Subscriber<TT;>;Ljava/util/concurrent/Flow$Publisher<TR;>;
+innerclass innerClass java/util/concurrent/Flow$Subscriber outerClass java/util/concurrent/Flow innerClassName Subscriber flags 609
+innerclass innerClass java/util/concurrent/Flow$Publisher outerClass java/util/concurrent/Flow innerClassName Publisher flags 609
+innerclass innerClass java/util/concurrent/Flow$Processor outerClass java/util/concurrent/Flow innerClassName Processor flags 609
+
+class name java/util/concurrent/Flow$Publisher
+header extends java/lang/Object nestHost java/util/concurrent/Flow flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object; runtimeAnnotations @Ljava/lang/FunctionalInterface;
+innerclass innerClass java/util/concurrent/Flow$Subscriber outerClass java/util/concurrent/Flow innerClassName Subscriber flags 609
+innerclass innerClass java/util/concurrent/Flow$Publisher outerClass java/util/concurrent/Flow innerClassName Publisher flags 609
+
+class name java/util/concurrent/Flow$Subscriber
+header extends java/lang/Object nestHost java/util/concurrent/Flow flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object;
+innerclass innerClass java/util/concurrent/Flow$Subscription outerClass java/util/concurrent/Flow innerClassName Subscription flags 609
+innerclass innerClass java/util/concurrent/Flow$Subscriber outerClass java/util/concurrent/Flow innerClassName Subscriber flags 609
+
+class name java/util/concurrent/Flow$Subscription
+header extends java/lang/Object nestHost java/util/concurrent/Flow flags 601
+innerclass innerClass java/util/concurrent/Flow$Subscription outerClass java/util/concurrent/Flow innerClassName Subscription flags 609
+
+class name java/util/concurrent/ForkJoinPool
+header extends java/util/concurrent/AbstractExecutorService nestMembers java/util/concurrent/ForkJoinPool$ManagedBlocker,java/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory flags 21
+innerclass innerClass java/util/concurrent/ForkJoinPool$ManagedBlocker outerClass java/util/concurrent/ForkJoinPool innerClassName ManagedBlocker flags 609
+innerclass innerClass java/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory outerClass java/util/concurrent/ForkJoinPool innerClassName ForkJoinWorkerThreadFactory flags 609
+innerclass innerClass java/lang/Thread$UncaughtExceptionHandler outerClass java/lang/Thread innerClassName UncaughtExceptionHandler flags 609
+innerclass innerClass java/lang/Thread$State outerClass java/lang/Thread innerClassName State flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory
+header extends java/lang/Object nestHost java/util/concurrent/ForkJoinPool flags 601
+innerclass innerClass java/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory outerClass java/util/concurrent/ForkJoinPool innerClassName ForkJoinWorkerThreadFactory flags 609
+
+class name java/util/concurrent/ForkJoinPool$ManagedBlocker
+header extends java/lang/Object nestHost java/util/concurrent/ForkJoinPool flags 601
+innerclass innerClass java/util/concurrent/ForkJoinPool$ManagedBlocker outerClass java/util/concurrent/ForkJoinPool innerClassName ManagedBlocker flags 609
+
+class name java/util/concurrent/Future
+header extends java/lang/Object flags 601 signature <V:Ljava/lang/Object;>Ljava/lang/Object;
+
+class name java/util/concurrent/PriorityBlockingQueue
+method name removeIf descriptor (Ljava/util/function/Predicate;)Z flags 1 signature (Ljava/util/function/Predicate<-TE;>;)Z
+method name removeAll descriptor (Ljava/util/Collection;)Z flags 1 signature (Ljava/util/Collection<*>;)Z
+method name retainAll descriptor (Ljava/util/Collection;)Z flags 1 signature (Ljava/util/Collection<*>;)Z
+method name forEach descriptor (Ljava/util/function/Consumer;)V flags 1 signature (Ljava/util/function/Consumer<-TE;>;)V
+
+class name java/util/concurrent/RecursiveAction
+header extends java/util/concurrent/ForkJoinTask flags 421 signature Ljava/util/concurrent/ForkJoinTask<Ljava/lang/Void;>;
+
+class name java/util/concurrent/RecursiveTask
+header extends java/util/concurrent/ForkJoinTask flags 421 signature <V:Ljava/lang/Object;>Ljava/util/concurrent/ForkJoinTask<TV;>;
+
+class name java/util/concurrent/RejectedExecutionException
+header extends java/lang/RuntimeException flags 21
+
+class name java/util/concurrent/RejectedExecutionHandler
+header extends java/lang/Object flags 601
+
+class name java/util/concurrent/RunnableFuture
+header extends java/lang/Object implements java/lang/Runnable,java/util/concurrent/Future flags 601 signature <V:Ljava/lang/Object;>Ljava/lang/Object;Ljava/lang/Runnable;Ljava/util/concurrent/Future<TV;>;
+
+class name java/util/concurrent/RunnableScheduledFuture
+header extends java/lang/Object implements java/util/concurrent/RunnableFuture,java/util/concurrent/ScheduledFuture flags 601 signature <V:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/concurrent/RunnableFuture<TV;>;Ljava/util/concurrent/ScheduledFuture<TV;>;
+
+class name java/util/concurrent/ScheduledExecutorService
+header extends java/lang/Object implements java/util/concurrent/ExecutorService flags 601
+
+class name java/util/concurrent/ScheduledFuture
+header extends java/lang/Object implements java/util/concurrent/Delayed,java/util/concurrent/Future flags 601 signature <V:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/concurrent/Delayed;Ljava/util/concurrent/Future<TV;>;
+
+class name java/util/concurrent/ThreadFactory
+header extends java/lang/Object flags 601
+
+class name java/util/concurrent/ThreadPoolExecutor
+header extends java/util/concurrent/AbstractExecutorService nestMembers java/util/concurrent/ThreadPoolExecutor$DiscardOldestPolicy,java/util/concurrent/ThreadPoolExecutor$DiscardPolicy,java/util/concurrent/ThreadPoolExecutor$AbortPolicy,java/util/concurrent/ThreadPoolExecutor$CallerRunsPolicy flags 21
+innerclass innerClass java/util/concurrent/ThreadPoolExecutor$DiscardOldestPolicy outerClass java/util/concurrent/ThreadPoolExecutor innerClassName DiscardOldestPolicy flags 9
+innerclass innerClass java/util/concurrent/ThreadPoolExecutor$DiscardPolicy outerClass java/util/concurrent/ThreadPoolExecutor innerClassName DiscardPolicy flags 9
+innerclass innerClass java/util/concurrent/ThreadPoolExecutor$AbortPolicy outerClass java/util/concurrent/ThreadPoolExecutor innerClassName AbortPolicy flags 9
+innerclass innerClass java/util/concurrent/ThreadPoolExecutor$CallerRunsPolicy outerClass java/util/concurrent/ThreadPoolExecutor innerClassName CallerRunsPolicy flags 9
+
+class name java/util/concurrent/ThreadPoolExecutor$AbortPolicy
+header extends java/lang/Object implements java/util/concurrent/RejectedExecutionHandler nestHost java/util/concurrent/ThreadPoolExecutor flags 21
+innerclass innerClass java/util/concurrent/ThreadPoolExecutor$AbortPolicy outerClass java/util/concurrent/ThreadPoolExecutor innerClassName AbortPolicy flags 9
+
+class name java/util/concurrent/ThreadPoolExecutor$CallerRunsPolicy
+header extends java/lang/Object implements java/util/concurrent/RejectedExecutionHandler nestHost java/util/concurrent/ThreadPoolExecutor flags 21
+innerclass innerClass java/util/concurrent/ThreadPoolExecutor$CallerRunsPolicy outerClass java/util/concurrent/ThreadPoolExecutor innerClassName CallerRunsPolicy flags 9
+
+class name java/util/concurrent/ThreadPoolExecutor$DiscardOldestPolicy
+header extends java/lang/Object implements java/util/concurrent/RejectedExecutionHandler nestHost java/util/concurrent/ThreadPoolExecutor flags 21
+innerclass innerClass java/util/concurrent/ThreadPoolExecutor$DiscardOldestPolicy outerClass java/util/concurrent/ThreadPoolExecutor innerClassName DiscardOldestPolicy flags 9
+
+class name java/util/concurrent/ThreadPoolExecutor$DiscardPolicy
+header extends java/lang/Object implements java/util/concurrent/RejectedExecutionHandler nestHost java/util/concurrent/ThreadPoolExecutor flags 21
+innerclass innerClass java/util/concurrent/ThreadPoolExecutor$DiscardPolicy outerClass java/util/concurrent/ThreadPoolExecutor innerClassName DiscardPolicy flags 9
+
+class name java/util/concurrent/TimeUnit
+method name convert descriptor (Ljava/time/Duration;)J flags 1
+
+class name java/util/concurrent/TimeoutException
+header extends java/lang/Exception flags 21
+
+class name java/util/concurrent/TransferQueue
+header extends java/lang/Object implements java/util/concurrent/BlockingQueue flags 601 signature <E:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/concurrent/BlockingQueue<TE;>;
+
+class name java/util/concurrent/atomic/AtomicBoolean
+header extends java/lang/Object implements java/io/Serializable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/concurrent/atomic/AtomicInteger
+header extends java/lang/Number implements java/io/Serializable flags 21
+
+class name java/util/concurrent/atomic/AtomicIntegerArray
+header extends java/lang/Object implements java/io/Serializable flags 21
+
+class name java/util/concurrent/atomic/AtomicLong
+header extends java/lang/Number implements java/io/Serializable flags 21
+
+class name java/util/concurrent/atomic/AtomicLongArray
+header extends java/lang/Object implements java/io/Serializable flags 21
+
+class name java/util/concurrent/atomic/AtomicReference
+header extends java/lang/Object implements java/io/Serializable flags 21 signature <V:Ljava/lang/Object;>Ljava/lang/Object;Ljava/io/Serializable;
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/concurrent/atomic/AtomicReferenceArray
+header extends java/lang/Object implements java/io/Serializable flags 21 signature <E:Ljava/lang/Object;>Ljava/lang/Object;Ljava/io/Serializable;
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/concurrent/locks/AbstractOwnableSynchronizer
+header extends java/lang/Object implements java/io/Serializable flags 421
+
+class name java/util/concurrent/locks/AbstractQueuedLongSynchronizer
+header extends java/util/concurrent/locks/AbstractOwnableSynchronizer implements java/io/Serializable nestMembers java/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject flags 421
+innerclass innerClass java/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject outerClass java/util/concurrent/locks/AbstractQueuedLongSynchronizer innerClassName ConditionObject flags 1
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject
+header extends java/lang/Object implements java/util/concurrent/locks/Condition,java/io/Serializable nestHost java/util/concurrent/locks/AbstractQueuedLongSynchronizer flags 21
+innerclass innerClass java/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject outerClass java/util/concurrent/locks/AbstractQueuedLongSynchronizer innerClassName ConditionObject flags 1
+
+class name java/util/concurrent/locks/AbstractQueuedSynchronizer
+header extends java/util/concurrent/locks/AbstractOwnableSynchronizer implements java/io/Serializable nestMembers java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject flags 421
+innerclass innerClass java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject outerClass java/util/concurrent/locks/AbstractQueuedSynchronizer innerClassName ConditionObject flags 1
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject
+header extends java/lang/Object implements java/util/concurrent/locks/Condition,java/io/Serializable nestHost java/util/concurrent/locks/AbstractQueuedSynchronizer flags 21
+innerclass innerClass java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject outerClass java/util/concurrent/locks/AbstractQueuedSynchronizer innerClassName ConditionObject flags 1
+
+class name java/util/concurrent/locks/Condition
+header extends java/lang/Object flags 601
+
+class name java/util/concurrent/locks/Lock
+header extends java/lang/Object flags 601
+
+class name java/util/concurrent/locks/LockSupport
+header extends java/lang/Object flags 21
+
+class name java/util/concurrent/locks/ReadWriteLock
+header extends java/lang/Object flags 601
+
+class name java/util/concurrent/locks/ReentrantReadWriteLock
+header extends java/lang/Object implements java/util/concurrent/locks/ReadWriteLock,java/io/Serializable nestMembers java/util/concurrent/locks/ReentrantReadWriteLock$WriteLock,java/util/concurrent/locks/ReentrantReadWriteLock$ReadLock flags 21
+innerclass innerClass java/util/concurrent/locks/ReentrantReadWriteLock$WriteLock outerClass java/util/concurrent/locks/ReentrantReadWriteLock innerClassName WriteLock flags 9
+innerclass innerClass java/util/concurrent/locks/ReentrantReadWriteLock$ReadLock outerClass java/util/concurrent/locks/ReentrantReadWriteLock innerClassName ReadLock flags 9
+innerclass innerClass java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject outerClass java/util/concurrent/locks/AbstractQueuedSynchronizer innerClassName ConditionObject flags 1
+
+class name java/util/concurrent/locks/ReentrantReadWriteLock$ReadLock
+header extends java/lang/Object implements java/util/concurrent/locks/Lock,java/io/Serializable nestHost java/util/concurrent/locks/ReentrantReadWriteLock flags 21
+innerclass innerClass java/util/concurrent/locks/ReentrantReadWriteLock$ReadLock outerClass java/util/concurrent/locks/ReentrantReadWriteLock innerClassName ReadLock flags 9
+
+class name java/util/concurrent/locks/ReentrantReadWriteLock$WriteLock
+header extends java/lang/Object implements java/util/concurrent/locks/Lock,java/io/Serializable nestHost java/util/concurrent/locks/ReentrantReadWriteLock flags 21
+innerclass innerClass java/util/concurrent/locks/ReentrantReadWriteLock$WriteLock outerClass java/util/concurrent/locks/ReentrantReadWriteLock innerClassName WriteLock flags 9
+innerclass innerClass java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject outerClass java/util/concurrent/locks/AbstractQueuedSynchronizer innerClassName ConditionObject flags 1
+
+class name java/util/function/BiConsumer
+header extends java/lang/Object flags 601 signature <T:Ljava/lang/Object;U:Ljava/lang/Object;>Ljava/lang/Object; runtimeAnnotations @Ljava/lang/FunctionalInterface;
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/function/BiFunction
+header extends java/lang/Object flags 601 signature <T:Ljava/lang/Object;U:Ljava/lang/Object;R:Ljava/lang/Object;>Ljava/lang/Object; runtimeAnnotations @Ljava/lang/FunctionalInterface;
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/function/BiPredicate
+header extends java/lang/Object flags 601 signature <T:Ljava/lang/Object;U:Ljava/lang/Object;>Ljava/lang/Object; runtimeAnnotations @Ljava/lang/FunctionalInterface;
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/function/BinaryOperator
+header extends java/lang/Object implements java/util/function/BiFunction flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/function/BiFunction<TT;TT;TT;>; runtimeAnnotations @Ljava/lang/FunctionalInterface;
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/function/BooleanSupplier
+header extends java/lang/Object flags 601 runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/util/function/Consumer
+header extends java/lang/Object flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object; runtimeAnnotations @Ljava/lang/FunctionalInterface;
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/function/DoubleBinaryOperator
+header extends java/lang/Object flags 601 runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/util/function/DoubleConsumer
+header extends java/lang/Object flags 601 runtimeAnnotations @Ljava/lang/FunctionalInterface;
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/function/DoubleFunction
+header extends java/lang/Object flags 601 signature <R:Ljava/lang/Object;>Ljava/lang/Object; runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/util/function/DoublePredicate
+header extends java/lang/Object flags 601 runtimeAnnotations @Ljava/lang/FunctionalInterface;
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/function/DoubleSupplier
+header extends java/lang/Object flags 601 runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/util/function/DoubleToIntFunction
+header extends java/lang/Object flags 601 runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/util/function/DoubleToLongFunction
+header extends java/lang/Object flags 601 runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/util/function/DoubleUnaryOperator
+header extends java/lang/Object flags 601 runtimeAnnotations @Ljava/lang/FunctionalInterface;
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/function/Function
+header extends java/lang/Object flags 601 signature <T:Ljava/lang/Object;R:Ljava/lang/Object;>Ljava/lang/Object; runtimeAnnotations @Ljava/lang/FunctionalInterface;
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/function/IntBinaryOperator
+header extends java/lang/Object flags 601 runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/util/function/IntConsumer
+header extends java/lang/Object flags 601 runtimeAnnotations @Ljava/lang/FunctionalInterface;
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/function/IntFunction
+header extends java/lang/Object flags 601 signature <R:Ljava/lang/Object;>Ljava/lang/Object; runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/util/function/IntPredicate
+header extends java/lang/Object flags 601 runtimeAnnotations @Ljava/lang/FunctionalInterface;
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/function/IntSupplier
+header extends java/lang/Object flags 601 runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/util/function/IntToDoubleFunction
+header extends java/lang/Object flags 601 runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/util/function/IntToLongFunction
+header extends java/lang/Object flags 601 runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/util/function/IntUnaryOperator
+header extends java/lang/Object flags 601 runtimeAnnotations @Ljava/lang/FunctionalInterface;
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/function/LongBinaryOperator
+header extends java/lang/Object flags 601 runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/util/function/LongConsumer
+header extends java/lang/Object flags 601 runtimeAnnotations @Ljava/lang/FunctionalInterface;
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/function/LongFunction
+header extends java/lang/Object flags 601 signature <R:Ljava/lang/Object;>Ljava/lang/Object; runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/util/function/LongPredicate
+header extends java/lang/Object flags 601 runtimeAnnotations @Ljava/lang/FunctionalInterface;
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/function/LongSupplier
+header extends java/lang/Object flags 601 runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/util/function/LongToDoubleFunction
+header extends java/lang/Object flags 601 runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/util/function/LongToIntFunction
+header extends java/lang/Object flags 601 runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/util/function/LongUnaryOperator
+header extends java/lang/Object flags 601 runtimeAnnotations @Ljava/lang/FunctionalInterface;
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/function/ObjDoubleConsumer
+header extends java/lang/Object flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object; runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/util/function/ObjIntConsumer
+header extends java/lang/Object flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object; runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/util/function/ObjLongConsumer
+header extends java/lang/Object flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object; runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/util/function/Predicate
+header extends java/lang/Object flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object; runtimeAnnotations @Ljava/lang/FunctionalInterface;
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+method name not descriptor (Ljava/util/function/Predicate;)Ljava/util/function/Predicate; flags 9 signature <T:Ljava/lang/Object;>(Ljava/util/function/Predicate<-TT;>;)Ljava/util/function/Predicate<TT;>;
+
+class name java/util/function/Supplier
+header extends java/lang/Object flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object; runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/util/function/ToDoubleBiFunction
+header extends java/lang/Object flags 601 signature <T:Ljava/lang/Object;U:Ljava/lang/Object;>Ljava/lang/Object; runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/util/function/ToDoubleFunction
+header extends java/lang/Object flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object; runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/util/function/ToIntBiFunction
+header extends java/lang/Object flags 601 signature <T:Ljava/lang/Object;U:Ljava/lang/Object;>Ljava/lang/Object; runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/util/function/ToIntFunction
+header extends java/lang/Object flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object; runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/util/function/ToLongBiFunction
+header extends java/lang/Object flags 601 signature <T:Ljava/lang/Object;U:Ljava/lang/Object;>Ljava/lang/Object; runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/util/function/ToLongFunction
+header extends java/lang/Object flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object; runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/util/function/UnaryOperator
+header extends java/lang/Object implements java/util/function/Function flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/function/Function<TT;TT;>; runtimeAnnotations @Ljava/lang/FunctionalInterface;
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/jar/Attributes
+header extends java/lang/Object implements java/util/Map,java/lang/Cloneable nestMembers java/util/jar/Attributes$Name flags 21 signature Ljava/lang/Object;Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;Ljava/lang/Cloneable;
+innerclass innerClass java/util/jar/Attributes$Name outerClass java/util/jar/Attributes innerClassName Name flags 9
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+
+class name java/util/jar/Attributes$Name
+header extends java/lang/Object nestHost java/util/jar/Attributes flags 21
+innerclass innerClass java/util/jar/Attributes$Name outerClass java/util/jar/Attributes innerClassName Name flags 9
+
+class name java/util/jar/JarEntry
+header extends java/util/zip/ZipEntry flags 21
+
+class name java/util/jar/JarException
+header extends java/util/zip/ZipException flags 21
+
+class name java/util/jar/JarInputStream
+header extends java/util/zip/ZipInputStream flags 21
+
+class name java/util/jar/JarOutputStream
+header extends java/util/zip/ZipOutputStream flags 21
+
+class name java/util/jar/Pack200
+header extends java/lang/Object nestMembers java/util/jar/Pack200$Unpacker,java/util/jar/Pack200$Packer flags 421 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+innerclass innerClass java/util/jar/Pack200$Unpacker outerClass java/util/jar/Pack200 innerClassName Unpacker flags 609
+innerclass innerClass java/util/jar/Pack200$Packer outerClass java/util/jar/Pack200 innerClassName Packer flags 609
+
+class name java/util/jar/Pack200$Packer
+header extends java/lang/Object nestHost java/util/jar/Pack200 flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+innerclass innerClass java/util/jar/Pack200$Packer outerClass java/util/jar/Pack200 innerClassName Packer flags 609
+
+class name java/util/jar/Pack200$Unpacker
+header extends java/lang/Object nestHost java/util/jar/Pack200 flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+innerclass innerClass java/util/jar/Pack200$Unpacker outerClass java/util/jar/Pack200 innerClassName Unpacker flags 609
+
+class name java/util/regex/MatchResult
+header extends java/lang/Object flags 601
+
+class name java/util/regex/Pattern
+method name asMatchPredicate descriptor ()Ljava/util/function/Predicate; flags 1 signature ()Ljava/util/function/Predicate<Ljava/lang/String;>;
+
+class name java/util/regex/PatternSyntaxException
+header extends java/lang/IllegalArgumentException flags 21
+
+class name java/util/spi/AbstractResourceBundleProvider
+header extends java/lang/Object implements java/util/spi/ResourceBundleProvider flags 421
+innerclass innerClass java/util/ResourceBundle$Control outerClass java/util/ResourceBundle innerClassName Control flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/spi/CalendarDataProvider
+header extends java/util/spi/LocaleServiceProvider flags 421
+
+class name java/util/spi/CalendarNameProvider
+header extends java/util/spi/LocaleServiceProvider flags 421
+
+class name java/util/spi/CurrencyNameProvider
+header extends java/util/spi/LocaleServiceProvider flags 421
+innerclass innerClass java/util/ResourceBundle$Control outerClass java/util/ResourceBundle innerClassName Control flags 9
+
+class name java/util/spi/LocaleNameProvider
+header extends java/util/spi/LocaleServiceProvider flags 421
+
+class name java/util/spi/LocaleServiceProvider
+header extends java/lang/Object flags 421
+
+class name java/util/spi/ResourceBundleControlProvider
+header extends java/lang/Object flags 601
+innerclass innerClass java/util/ResourceBundle$Control outerClass java/util/ResourceBundle innerClassName Control flags 9
+
+class name java/util/spi/ResourceBundleProvider
+header extends java/lang/Object flags 601
+
+class name java/util/spi/TimeZoneNameProvider
+header extends java/util/spi/LocaleServiceProvider flags 421
+
+class name java/util/spi/ToolProvider
+header extends java/lang/Object flags 601
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/stream/BaseStream
+header extends java/lang/Object implements java/lang/AutoCloseable flags 601 signature <T:Ljava/lang/Object;S::Ljava/util/stream/BaseStream<TT;TS;>;>Ljava/lang/Object;Ljava/lang/AutoCloseable;
+
+class name java/util/stream/Collector
+header extends java/lang/Object nestMembers java/util/stream/Collector$Characteristics flags 601 signature <T:Ljava/lang/Object;A:Ljava/lang/Object;R:Ljava/lang/Object;>Ljava/lang/Object;
+innerclass innerClass java/util/stream/Collector$Characteristics outerClass java/util/stream/Collector innerClassName Characteristics flags 4019
+
+class name java/util/stream/Collector$Characteristics
+header extends java/lang/Enum nestHost java/util/stream/Collector flags 4031 signature Ljava/lang/Enum<Ljava/util/stream/Collector$Characteristics;>;
+innerclass innerClass java/util/stream/Collector$Characteristics outerClass java/util/stream/Collector innerClassName Characteristics flags 4019
+
+class name java/util/stream/DoubleStream
+header extends java/lang/Object implements java/util/stream/BaseStream nestMembers java/util/stream/DoubleStream$Builder flags 601 signature Ljava/lang/Object;Ljava/util/stream/BaseStream<Ljava/lang/Double;Ljava/util/stream/DoubleStream;>;
+innerclass innerClass java/util/stream/DoubleStream$Builder outerClass java/util/stream/DoubleStream innerClassName Builder flags 609
+innerclass innerClass java/util/PrimitiveIterator$OfDouble outerClass java/util/PrimitiveIterator innerClassName OfDouble flags 609
+innerclass innerClass java/util/Spliterator$OfDouble outerClass java/util/Spliterator innerClassName OfDouble flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/stream/DoubleStream$Builder
+header extends java/lang/Object implements java/util/function/DoubleConsumer nestHost java/util/stream/DoubleStream flags 601
+innerclass innerClass java/util/stream/DoubleStream$Builder outerClass java/util/stream/DoubleStream innerClassName Builder flags 609
+
+class name java/util/stream/IntStream
+header extends java/lang/Object implements java/util/stream/BaseStream nestMembers java/util/stream/IntStream$Builder flags 601 signature Ljava/lang/Object;Ljava/util/stream/BaseStream<Ljava/lang/Integer;Ljava/util/stream/IntStream;>;
+innerclass innerClass java/util/stream/IntStream$Builder outerClass java/util/stream/IntStream innerClassName Builder flags 609
+innerclass innerClass java/util/PrimitiveIterator$OfInt outerClass java/util/PrimitiveIterator innerClassName OfInt flags 609
+innerclass innerClass java/util/Spliterator$OfInt outerClass java/util/Spliterator innerClassName OfInt flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/stream/IntStream$Builder
+header extends java/lang/Object implements java/util/function/IntConsumer nestHost java/util/stream/IntStream flags 601
+innerclass innerClass java/util/stream/IntStream$Builder outerClass java/util/stream/IntStream innerClassName Builder flags 609
+
+class name java/util/stream/LongStream
+header extends java/lang/Object implements java/util/stream/BaseStream nestMembers java/util/stream/LongStream$Builder flags 601 signature Ljava/lang/Object;Ljava/util/stream/BaseStream<Ljava/lang/Long;Ljava/util/stream/LongStream;>;
+innerclass innerClass java/util/stream/LongStream$Builder outerClass java/util/stream/LongStream innerClassName Builder flags 609
+innerclass innerClass java/util/PrimitiveIterator$OfLong outerClass java/util/PrimitiveIterator innerClassName OfLong flags 609
+innerclass innerClass java/util/Spliterator$OfLong outerClass java/util/Spliterator innerClassName OfLong flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/stream/LongStream$Builder
+header extends java/lang/Object implements java/util/function/LongConsumer nestHost java/util/stream/LongStream flags 601
+innerclass innerClass java/util/stream/LongStream$Builder outerClass java/util/stream/LongStream innerClassName Builder flags 609
+
+class name java/util/stream/Stream
+header extends java/lang/Object implements java/util/stream/BaseStream nestMembers java/util/stream/Stream$Builder flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/stream/BaseStream<TT;Ljava/util/stream/Stream<TT;>;>;
+innerclass innerClass java/util/stream/Stream$Builder outerClass java/util/stream/Stream innerClassName Builder flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/stream/Stream$Builder
+header extends java/lang/Object implements java/util/function/Consumer nestHost java/util/stream/Stream flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/function/Consumer<TT;>;
+innerclass innerClass java/util/stream/Stream$Builder outerClass java/util/stream/Stream innerClassName Builder flags 609
+
+class name java/util/stream/StreamSupport
+header extends java/lang/Object flags 31
+innerclass innerClass java/util/Spliterator$OfInt outerClass java/util/Spliterator innerClassName OfInt flags 609
+innerclass innerClass java/util/Spliterator$OfLong outerClass java/util/Spliterator innerClassName OfLong flags 609
+innerclass innerClass java/util/Spliterator$OfDouble outerClass java/util/Spliterator innerClassName OfDouble flags 609
+
+class name java/util/zip/Adler32
+header extends java/lang/Object implements java/util/zip/Checksum flags 21
+
+class name java/util/zip/CRC32
+header extends java/lang/Object implements java/util/zip/Checksum flags 21
+
+class name java/util/zip/CRC32C
+header extends java/lang/Object implements java/util/zip/Checksum flags 31
+
+class name java/util/zip/CheckedInputStream
+header extends java/io/FilterInputStream flags 21
+
+class name java/util/zip/CheckedOutputStream
+header extends java/io/FilterOutputStream flags 21
+
+class name java/util/zip/DataFormatException
+header extends java/lang/Exception flags 21
+
+class name java/util/zip/Deflater
+method name setInput descriptor (Ljava/nio/ByteBuffer;)V flags 1
+method name setDictionary descriptor (Ljava/nio/ByteBuffer;)V flags 1
+method name deflate descriptor (Ljava/nio/ByteBuffer;)I flags 1
+method name deflate descriptor (Ljava/nio/ByteBuffer;I)I flags 1
+
+class name java/util/zip/DeflaterInputStream
+header extends java/io/FilterInputStream flags 21
+
+class name java/util/zip/DeflaterOutputStream
+header extends java/io/FilterOutputStream flags 21
+
+class name java/util/zip/GZIPOutputStream
+header extends java/util/zip/DeflaterOutputStream flags 21
+
+class name java/util/zip/Inflater
+method name setInput descriptor (Ljava/nio/ByteBuffer;)V flags 1
+method name setDictionary descriptor (Ljava/nio/ByteBuffer;)V flags 1
+method name inflate descriptor (Ljava/nio/ByteBuffer;)I thrownTypes java/util/zip/DataFormatException flags 1
+
+class name java/util/zip/InflaterInputStream
+header extends java/io/FilterInputStream flags 21
+
+class name java/util/zip/InflaterOutputStream
+header extends java/io/FilterOutputStream flags 21
+
+class name java/util/zip/ZipConstants
+header extends java/lang/Object flags 600
+
+class name java/util/zip/ZipEntry
+header extends java/lang/Object implements java/util/zip/ZipConstants,java/lang/Cloneable flags 21
+
+class name java/util/zip/ZipError
+header extends java/lang/InternalError flags 21
+
+class name java/util/zip/ZipException
+header extends java/io/IOException flags 21
+
+class name java/util/zip/ZipInputStream
+header extends java/util/zip/InflaterInputStream implements java/util/zip/ZipConstants flags 21
+
+class name javax/crypto/AEADBadTagException
+header extends javax/crypto/BadPaddingException flags 21
+
+class name javax/crypto/BadPaddingException
+header extends java/security/GeneralSecurityException flags 21
+
+class name javax/crypto/CipherInputStream
+header extends java/io/FilterInputStream flags 21
+
+class name javax/crypto/CipherOutputStream
+header extends java/io/FilterOutputStream flags 21
+
+class name javax/crypto/CipherSpi
+header extends java/lang/Object flags 421
+
+class name javax/crypto/EncryptedPrivateKeyInfo
+header extends java/lang/Object flags 21
+
+class name javax/crypto/ExemptionMechanism
+header extends java/lang/Object flags 21
+
+class name javax/crypto/ExemptionMechanismException
+header extends java/security/GeneralSecurityException flags 21
+
+class name javax/crypto/ExemptionMechanismSpi
+header extends java/lang/Object flags 421
+
+class name javax/crypto/IllegalBlockSizeException
+header extends java/security/GeneralSecurityException flags 21
+
+class name javax/crypto/KeyAgreement
+header extends java/lang/Object flags 21
+innerclass innerClass java/security/Provider$Service outerClass java/security/Provider innerClassName Service flags 9
+
+class name javax/crypto/KeyAgreementSpi
+header extends java/lang/Object flags 421
+
+class name javax/crypto/KeyGenerator
+header extends java/lang/Object flags 21
+innerclass innerClass java/security/Provider$Service outerClass java/security/Provider innerClassName Service flags 9
+
+class name javax/crypto/KeyGeneratorSpi
+header extends java/lang/Object flags 421
+
+class name javax/crypto/Mac
+header extends java/lang/Object implements java/lang/Cloneable flags 21
+innerclass innerClass java/security/Provider$Service outerClass java/security/Provider innerClassName Service flags 9
+
+class name javax/crypto/MacSpi
+header extends java/lang/Object flags 421
+
+class name javax/crypto/NoSuchPaddingException
+header extends java/security/GeneralSecurityException flags 21
+
+class name javax/crypto/NullCipher
+header extends javax/crypto/Cipher flags 21
+
+class name javax/crypto/SealedObject
+header extends java/lang/Object implements java/io/Serializable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/crypto/SecretKey
+header extends java/lang/Object implements java/security/Key,javax/security/auth/Destroyable flags 601
+
+class name javax/crypto/SecretKeyFactory
+header extends java/lang/Object flags 21
+innerclass innerClass java/security/Provider$Service outerClass java/security/Provider innerClassName Service flags 9
+
+class name javax/crypto/SecretKeyFactorySpi
+header extends java/lang/Object flags 421
+
+class name javax/crypto/ShortBufferException
+header extends java/security/GeneralSecurityException flags 21
+
+class name javax/crypto/interfaces/DHKey
+header extends java/lang/Object flags 601
+
+class name javax/crypto/interfaces/DHPrivateKey
+header extends java/lang/Object implements javax/crypto/interfaces/DHKey,java/security/PrivateKey flags 601
+
+class name javax/crypto/interfaces/DHPublicKey
+header extends java/lang/Object implements javax/crypto/interfaces/DHKey,java/security/PublicKey flags 601
+
+class name javax/crypto/interfaces/PBEKey
+header extends java/lang/Object implements javax/crypto/SecretKey flags 601
+
+class name javax/crypto/spec/ChaCha20ParameterSpec
+header extends java/lang/Object implements java/security/spec/AlgorithmParameterSpec flags 31
+method name <init> descriptor ([BI)V flags 1
+method name getNonce descriptor ()[B flags 1
+method name getCounter descriptor ()I flags 1
+
+class name javax/crypto/spec/DESKeySpec
+header extends java/lang/Object implements java/security/spec/KeySpec flags 21
+
+class name javax/crypto/spec/DESedeKeySpec
+header extends java/lang/Object implements java/security/spec/KeySpec flags 21
+
+class name javax/crypto/spec/DHGenParameterSpec
+header extends java/lang/Object implements java/security/spec/AlgorithmParameterSpec flags 21
+
+class name javax/crypto/spec/DHParameterSpec
+header extends java/lang/Object implements java/security/spec/AlgorithmParameterSpec flags 21
+
+class name javax/crypto/spec/DHPrivateKeySpec
+header extends java/lang/Object implements java/security/spec/KeySpec flags 21
+
+class name javax/crypto/spec/DHPublicKeySpec
+header extends java/lang/Object implements java/security/spec/KeySpec flags 21
+
+class name javax/crypto/spec/GCMParameterSpec
+header extends java/lang/Object implements java/security/spec/AlgorithmParameterSpec flags 21
+
+class name javax/crypto/spec/IvParameterSpec
+header extends java/lang/Object implements java/security/spec/AlgorithmParameterSpec flags 21
+
+class name javax/crypto/spec/OAEPParameterSpec
+header extends java/lang/Object implements java/security/spec/AlgorithmParameterSpec flags 21
+innerclass innerClass javax/crypto/spec/PSource$PSpecified outerClass javax/crypto/spec/PSource innerClassName PSpecified flags 19
+
+class name javax/crypto/spec/PBEKeySpec
+header extends java/lang/Object implements java/security/spec/KeySpec flags 21
+
+class name javax/crypto/spec/PBEParameterSpec
+header extends java/lang/Object implements java/security/spec/AlgorithmParameterSpec flags 21
+
+class name javax/crypto/spec/PSource
+header extends java/lang/Object nestMembers javax/crypto/spec/PSource$PSpecified flags 21
+innerclass innerClass javax/crypto/spec/PSource$PSpecified outerClass javax/crypto/spec/PSource innerClassName PSpecified flags 19
+
+class name javax/crypto/spec/PSource$PSpecified
+header extends javax/crypto/spec/PSource nestHost javax/crypto/spec/PSource flags 31
+innerclass innerClass javax/crypto/spec/PSource$PSpecified outerClass javax/crypto/spec/PSource innerClassName PSpecified flags 19
+
+class name javax/crypto/spec/RC2ParameterSpec
+header extends java/lang/Object implements java/security/spec/AlgorithmParameterSpec flags 21
+
+class name javax/crypto/spec/RC5ParameterSpec
+header extends java/lang/Object implements java/security/spec/AlgorithmParameterSpec flags 21
+
+class name javax/crypto/spec/SecretKeySpec
+header extends java/lang/Object implements java/security/spec/KeySpec,javax/crypto/SecretKey flags 21
+
+class name javax/net/ServerSocketFactory
+header extends java/lang/Object flags 421
+
+class name javax/net/SocketFactory
+header extends java/lang/Object flags 421
+
+class name javax/net/ssl/CertPathTrustManagerParameters
+header extends java/lang/Object implements javax/net/ssl/ManagerFactoryParameters flags 21
+
+class name javax/net/ssl/ExtendedSSLSession
+header extends java/lang/Object implements javax/net/ssl/SSLSession flags 421
+
+class name javax/net/ssl/HandshakeCompletedEvent
+header extends java/util/EventObject flags 21
+
+class name javax/net/ssl/HandshakeCompletedListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name javax/net/ssl/HostnameVerifier
+header extends java/lang/Object flags 601
+
+class name javax/net/ssl/KeyManager
+header extends java/lang/Object flags 601
+
+class name javax/net/ssl/KeyManagerFactorySpi
+header extends java/lang/Object flags 421
+
+class name javax/net/ssl/KeyStoreBuilderParameters
+header extends java/lang/Object implements javax/net/ssl/ManagerFactoryParameters flags 21
+innerclass innerClass java/security/KeyStore$Builder outerClass java/security/KeyStore innerClassName Builder flags 409
+
+class name javax/net/ssl/ManagerFactoryParameters
+header extends java/lang/Object flags 601
+
+class name javax/net/ssl/SNIMatcher
+header extends java/lang/Object flags 421
+
+class name javax/net/ssl/SNIServerName
+header extends java/lang/Object flags 421
+
+class name javax/net/ssl/SSLContext
+header extends java/lang/Object flags 21
+
+class name javax/net/ssl/SSLContextSpi
+header extends java/lang/Object flags 421
+
+class name javax/net/ssl/SSLEngine
+header extends java/lang/Object flags 421
+innerclass innerClass javax/net/ssl/SSLEngineResult$HandshakeStatus outerClass javax/net/ssl/SSLEngineResult innerClassName HandshakeStatus flags 4019
+
+class name javax/net/ssl/SSLEngineResult
+header extends java/lang/Object nestMembers javax/net/ssl/SSLEngineResult$HandshakeStatus,javax/net/ssl/SSLEngineResult$Status flags 21
+innerclass innerClass javax/net/ssl/SSLEngineResult$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/SSLEngineResult$HandshakeStatus
+header extends java/lang/Enum nestHost javax/net/ssl/SSLEngineResult flags 4031 signature Ljava/lang/Enum<Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;>;
+innerclass innerClass javax/net/ssl/SSLEngineResult$HandshakeStatus outerClass javax/net/ssl/SSLEngineResult innerClassName HandshakeStatus flags 4019
+
+class name javax/net/ssl/SSLEngineResult$Status
+header extends java/lang/Enum nestHost javax/net/ssl/SSLEngineResult flags 4031 signature Ljava/lang/Enum<Ljavax/net/ssl/SSLEngineResult$Status;>;
+innerclass innerClass javax/net/ssl/SSLEngineResult$Status outerClass javax/net/ssl/SSLEngineResult innerClassName Status flags 4019
+
+class name javax/net/ssl/SSLException
+header extends java/io/IOException flags 21
+
+class name javax/net/ssl/SSLHandshakeException
+header extends javax/net/ssl/SSLException flags 21
+
+class name javax/net/ssl/SSLKeyException
+header extends javax/net/ssl/SSLException flags 21
+
+class name javax/net/ssl/SSLParameters
+header extends java/lang/Object flags 21
+
+class name javax/net/ssl/SSLPeerUnverifiedException
+header extends javax/net/ssl/SSLException flags 21
+
+class name javax/net/ssl/SSLPermission
+header extends java/security/BasicPermission flags 31
+
+class name javax/net/ssl/SSLProtocolException
+header extends javax/net/ssl/SSLException flags 21
+
+class name javax/net/ssl/SSLServerSocket
+header extends java/net/ServerSocket flags 421
+
+class name javax/net/ssl/SSLServerSocketFactory
+header extends javax/net/ServerSocketFactory flags 421
+
+class name javax/net/ssl/SSLSession
+header extends java/lang/Object flags 601
+
+class name javax/net/ssl/SSLSessionBindingEvent
+header extends java/util/EventObject flags 21
+
+class name javax/net/ssl/SSLSessionBindingListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name javax/net/ssl/SSLSessionContext
+header extends java/lang/Object flags 601
+
+class name javax/net/ssl/SSLSocket
+header extends java/net/Socket flags 421
+
+class name javax/net/ssl/StandardConstants
+header extends java/lang/Object flags 31
+
+class name javax/net/ssl/TrustManager
+header extends java/lang/Object flags 601
+
+class name javax/net/ssl/TrustManagerFactorySpi
+header extends java/lang/Object flags 421
+
+class name javax/net/ssl/X509ExtendedKeyManager
+header extends java/lang/Object implements javax/net/ssl/X509KeyManager flags 421
+
+class name javax/net/ssl/X509ExtendedTrustManager
+header extends java/lang/Object implements javax/net/ssl/X509TrustManager flags 421
+
+class name javax/net/ssl/X509KeyManager
+header extends java/lang/Object implements javax/net/ssl/KeyManager flags 601
+
+class name javax/net/ssl/X509TrustManager
+header extends java/lang/Object implements javax/net/ssl/TrustManager flags 601
+
+class name javax/security/auth/AuthPermission
+header extends java/security/BasicPermission flags 31
+
+class name javax/security/auth/DestroyFailedException
+header extends java/lang/Exception flags 21
+
+class name javax/security/auth/Destroyable
+header extends java/lang/Object flags 601
+
+-class name javax/security/auth/Policy
+
+class name javax/security/auth/RefreshFailedException
+header extends java/lang/Exception flags 21
+
+class name javax/security/auth/Refreshable
+header extends java/lang/Object flags 601
+
+class name javax/security/auth/callback/Callback
+header extends java/lang/Object flags 601
+
+class name javax/security/auth/callback/CallbackHandler
+header extends java/lang/Object flags 601
+
+class name javax/security/auth/callback/ChoiceCallback
+header extends java/lang/Object implements javax/security/auth/callback/Callback,java/io/Serializable flags 21
+
+class name javax/security/auth/callback/ConfirmationCallback
+header extends java/lang/Object implements javax/security/auth/callback/Callback,java/io/Serializable flags 21
+
+class name javax/security/auth/callback/LanguageCallback
+header extends java/lang/Object implements javax/security/auth/callback/Callback,java/io/Serializable flags 21
+
+class name javax/security/auth/callback/NameCallback
+header extends java/lang/Object implements javax/security/auth/callback/Callback,java/io/Serializable flags 21
+
+class name javax/security/auth/callback/PasswordCallback
+header extends java/lang/Object implements javax/security/auth/callback/Callback,java/io/Serializable flags 21
+
+class name javax/security/auth/callback/TextInputCallback
+header extends java/lang/Object implements javax/security/auth/callback/Callback,java/io/Serializable flags 21
+
+class name javax/security/auth/callback/TextOutputCallback
+header extends java/lang/Object implements javax/security/auth/callback/Callback,java/io/Serializable flags 21
+
+class name javax/security/auth/callback/UnsupportedCallbackException
+header extends java/lang/Exception flags 21
+
+class name javax/security/auth/login/AccountException
+header extends javax/security/auth/login/LoginException flags 21
+
+class name javax/security/auth/login/AccountExpiredException
+header extends javax/security/auth/login/AccountException flags 21
+
+class name javax/security/auth/login/AccountLockedException
+header extends javax/security/auth/login/AccountException flags 21
+
+class name javax/security/auth/login/AccountNotFoundException
+header extends javax/security/auth/login/AccountException flags 21
+
+class name javax/security/auth/login/AppConfigurationEntry
+header extends java/lang/Object nestMembers javax/security/auth/login/AppConfigurationEntry$LoginModuleControlFlag flags 21
+innerclass innerClass javax/security/auth/login/AppConfigurationEntry$LoginModuleControlFlag outerClass javax/security/auth/login/AppConfigurationEntry innerClassName LoginModuleControlFlag flags 9
+
+class name javax/security/auth/login/AppConfigurationEntry$LoginModuleControlFlag
+header extends java/lang/Object nestHost javax/security/auth/login/AppConfigurationEntry flags 21
+innerclass innerClass javax/security/auth/login/AppConfigurationEntry$LoginModuleControlFlag outerClass javax/security/auth/login/AppConfigurationEntry innerClassName LoginModuleControlFlag flags 9
+
+class name javax/security/auth/login/Configuration
+header extends java/lang/Object nestMembers javax/security/auth/login/Configuration$Parameters flags 421
+innerclass innerClass javax/security/auth/login/Configuration$Parameters outerClass javax/security/auth/login/Configuration innerClassName Parameters flags 609
+
+class name javax/security/auth/login/Configuration$Parameters
+header extends java/lang/Object nestHost javax/security/auth/login/Configuration flags 601
+innerclass innerClass javax/security/auth/login/Configuration$Parameters outerClass javax/security/auth/login/Configuration innerClassName Parameters flags 609
+
+class name javax/security/auth/login/ConfigurationSpi
+header extends java/lang/Object flags 421
+
+class name javax/security/auth/login/CredentialException
+header extends javax/security/auth/login/LoginException flags 21
+
+class name javax/security/auth/login/CredentialExpiredException
+header extends javax/security/auth/login/CredentialException flags 21
+
+class name javax/security/auth/login/CredentialNotFoundException
+header extends javax/security/auth/login/CredentialException flags 21
+
+class name javax/security/auth/login/FailedLoginException
+header extends javax/security/auth/login/LoginException flags 21
+
+class name javax/security/auth/login/LoginException
+header extends java/security/GeneralSecurityException flags 21
+
+class name javax/security/auth/spi/LoginModule
+header extends java/lang/Object flags 601
+
+class name javax/security/auth/x500/X500Principal
+header extends java/lang/Object implements java/security/Principal,java/io/Serializable flags 31
+
+class name javax/security/auth/x500/X500PrivateCredential
+header extends java/lang/Object implements javax/security/auth/Destroyable flags 31
+
+class name javax/security/cert/Certificate
+header extends java/lang/Object flags 421 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="9")
+
+class name javax/security/cert/CertificateEncodingException
+header extends javax/security/cert/CertificateException flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="9")
+
+class name javax/security/cert/CertificateException
+header extends java/lang/Exception flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="9")
+
+class name javax/security/cert/CertificateExpiredException
+header extends javax/security/cert/CertificateException flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="9")
+
+class name javax/security/cert/CertificateNotYetValidException
+header extends javax/security/cert/CertificateException flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="9")
+
+class name javax/security/cert/CertificateParsingException
+header extends javax/security/cert/CertificateException flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="9")
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/java.compiler-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,469 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name java.compiler
+header exports javax/annotation/processing,javax/lang/model,javax/lang/model/element,javax/lang/model/type,javax/lang/model/util,javax/tools requires name\u0020;java.base\u0020;flags\u0020;8000 uses javax/tools/DocumentationTool,javax/tools/JavaCompiler target linux-amd64 flags 8000
+
+class name javax/annotation/processing/AbstractProcessor
+header extends java/lang/Object implements javax/annotation/processing/Processor flags 421
+innerclass innerClass javax/tools/Diagnostic$Kind outerClass javax/tools/Diagnostic innerClassName Kind flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/annotation/processing/Completion
+header extends java/lang/Object flags 601
+
+class name javax/annotation/processing/Filer
+header extends java/lang/Object flags 601
+innerclass innerClass javax/tools/JavaFileManager$Location outerClass javax/tools/JavaFileManager innerClassName Location flags 609
+
+class name javax/annotation/processing/FilerException
+header extends java/io/IOException flags 21
+
+class name javax/annotation/processing/Generated
+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;SOURCE;)@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;PACKAGE;eLjava/lang/annotation/ElementType;TYPE;eLjava/lang/annotation/ElementType;METHOD;eLjava/lang/annotation/ElementType;CONSTRUCTOR;eLjava/lang/annotation/ElementType;FIELD;eLjava/lang/annotation/ElementType;LOCAL_VARIABLE;eLjava/lang/annotation/ElementType;PARAMETER;})
+
+class name javax/annotation/processing/Messager
+header extends java/lang/Object flags 601
+innerclass innerClass javax/tools/Diagnostic$Kind outerClass javax/tools/Diagnostic innerClassName Kind flags 4019
+
+class name javax/annotation/processing/ProcessingEnvironment
+header extends java/lang/Object flags 601
+
+class name javax/annotation/processing/Processor
+header extends java/lang/Object flags 601
+
+class name javax/annotation/processing/RoundEnvironment
+header extends java/lang/Object flags 601
+
+class name javax/annotation/processing/SupportedAnnotationTypes
+header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljava/lang/annotation/Documented;@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;TYPE;})@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)
+
+class name javax/annotation/processing/SupportedOptions
+header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljava/lang/annotation/Documented;@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;TYPE;})@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)
+
+class name javax/annotation/processing/SupportedSourceVersion
+header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljava/lang/annotation/Documented;@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;TYPE;})@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)
+
+class name javax/lang/model/AnnotatedConstruct
+header extends java/lang/Object flags 601
+
+class name javax/lang/model/SourceVersion
+header extends java/lang/Enum flags 4031 signature Ljava/lang/Enum<Ljavax/lang/model/SourceVersion;>;
+field name RELEASE_11 descriptor Ljavax/lang/model/SourceVersion; flags 4019
+
+class name javax/lang/model/UnknownEntityException
+header extends java/lang/RuntimeException flags 21
+
+class name javax/lang/model/element/AnnotationMirror
+header extends java/lang/Object flags 601
+
+class name javax/lang/model/element/AnnotationValue
+header extends java/lang/Object flags 601
+
+class name javax/lang/model/element/AnnotationValueVisitor
+header extends java/lang/Object flags 601 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljava/lang/Object;
+
+class name javax/lang/model/element/Element
+header extends java/lang/Object implements javax/lang/model/AnnotatedConstruct flags 601
+
+class name javax/lang/model/element/ElementKind
+header extends java/lang/Enum flags 4031 signature Ljava/lang/Enum<Ljavax/lang/model/element/ElementKind;>;
+
+class name javax/lang/model/element/ElementVisitor
+header extends java/lang/Object flags 601 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljava/lang/Object;
+
+class name javax/lang/model/element/ExecutableElement
+header extends java/lang/Object implements javax/lang/model/element/Element,javax/lang/model/element/Parameterizable flags 601
+
+class name javax/lang/model/element/Modifier
+header extends java/lang/Enum flags 4031 signature Ljava/lang/Enum<Ljavax/lang/model/element/Modifier;>;
+
+class name javax/lang/model/element/ModuleElement
+header extends java/lang/Object implements javax/lang/model/element/Element,javax/lang/model/element/QualifiedNameable nestMembers javax/lang/model/element/ModuleElement$UsesDirective,javax/lang/model/element/ModuleElement$ProvidesDirective,javax/lang/model/element/ModuleElement$OpensDirective,javax/lang/model/element/ModuleElement$ExportsDirective,javax/lang/model/element/ModuleElement$RequiresDirective,javax/lang/model/element/ModuleElement$DirectiveVisitor,javax/lang/model/element/ModuleElement$Directive,javax/lang/model/element/ModuleElement$DirectiveKind flags 601
+innerclass innerClass javax/lang/model/element/ModuleElement$UsesDirective outerClass javax/lang/model/element/ModuleElement innerClassName UsesDirective flags 609
+innerclass innerClass javax/lang/model/element/ModuleElement$ProvidesDirective outerClass javax/lang/model/element/ModuleElement innerClassName ProvidesDirective flags 609
+innerclass innerClass javax/lang/model/element/ModuleElement$OpensDirective outerClass javax/lang/model/element/ModuleElement innerClassName OpensDirective flags 609
+innerclass innerClass javax/lang/model/element/ModuleElement$ExportsDirective outerClass javax/lang/model/element/ModuleElement innerClassName ExportsDirective flags 609
+innerclass innerClass javax/lang/model/element/ModuleElement$RequiresDirective outerClass javax/lang/model/element/ModuleElement innerClassName RequiresDirective flags 609
+innerclass innerClass javax/lang/model/element/ModuleElement$DirectiveVisitor outerClass javax/lang/model/element/ModuleElement innerClassName DirectiveVisitor flags 609
+innerclass innerClass javax/lang/model/element/ModuleElement$Directive outerClass javax/lang/model/element/ModuleElement innerClassName Directive flags 609
+innerclass innerClass javax/lang/model/element/ModuleElement$DirectiveKind outerClass javax/lang/model/element/ModuleElement innerClassName DirectiveKind flags 4019
+
+class name javax/lang/model/element/ModuleElement$Directive
+header extends java/lang/Object nestHost javax/lang/model/element/ModuleElement flags 601
+innerclass innerClass javax/lang/model/element/ModuleElement$DirectiveKind outerClass javax/lang/model/element/ModuleElement innerClassName DirectiveKind flags 4019
+innerclass innerClass javax/lang/model/element/ModuleElement$DirectiveVisitor outerClass javax/lang/model/element/ModuleElement innerClassName DirectiveVisitor flags 609
+innerclass innerClass javax/lang/model/element/ModuleElement$Directive outerClass javax/lang/model/element/ModuleElement innerClassName Directive flags 609
+
+class name javax/lang/model/element/ModuleElement$DirectiveKind
+header extends java/lang/Enum nestHost javax/lang/model/element/ModuleElement flags 4031 signature Ljava/lang/Enum<Ljavax/lang/model/element/ModuleElement$DirectiveKind;>;
+innerclass innerClass javax/lang/model/element/ModuleElement$DirectiveKind outerClass javax/lang/model/element/ModuleElement innerClassName DirectiveKind flags 4019
+
+class name javax/lang/model/element/ModuleElement$DirectiveVisitor
+header extends java/lang/Object nestHost javax/lang/model/element/ModuleElement flags 601 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljava/lang/Object;
+innerclass innerClass javax/lang/model/element/ModuleElement$Directive outerClass javax/lang/model/element/ModuleElement innerClassName Directive flags 609
+innerclass innerClass javax/lang/model/element/ModuleElement$DirectiveVisitor outerClass javax/lang/model/element/ModuleElement innerClassName DirectiveVisitor flags 609
+innerclass innerClass javax/lang/model/element/ModuleElement$RequiresDirective outerClass javax/lang/model/element/ModuleElement innerClassName RequiresDirective flags 609
+innerclass innerClass javax/lang/model/element/ModuleElement$ExportsDirective outerClass javax/lang/model/element/ModuleElement innerClassName ExportsDirective flags 609
+innerclass innerClass javax/lang/model/element/ModuleElement$OpensDirective outerClass javax/lang/model/element/ModuleElement innerClassName OpensDirective flags 609
+innerclass innerClass javax/lang/model/element/ModuleElement$UsesDirective outerClass javax/lang/model/element/ModuleElement innerClassName UsesDirective flags 609
+innerclass innerClass javax/lang/model/element/ModuleElement$ProvidesDirective outerClass javax/lang/model/element/ModuleElement innerClassName ProvidesDirective flags 609
+
+class name javax/lang/model/element/ModuleElement$ExportsDirective
+header extends java/lang/Object implements javax/lang/model/element/ModuleElement$Directive nestHost javax/lang/model/element/ModuleElement flags 601
+innerclass innerClass javax/lang/model/element/ModuleElement$ExportsDirective outerClass javax/lang/model/element/ModuleElement innerClassName ExportsDirective flags 609
+innerclass innerClass javax/lang/model/element/ModuleElement$Directive outerClass javax/lang/model/element/ModuleElement innerClassName Directive flags 609
+
+class name javax/lang/model/element/ModuleElement$OpensDirective
+header extends java/lang/Object implements javax/lang/model/element/ModuleElement$Directive nestHost javax/lang/model/element/ModuleElement flags 601
+innerclass innerClass javax/lang/model/element/ModuleElement$OpensDirective outerClass javax/lang/model/element/ModuleElement innerClassName OpensDirective flags 609
+innerclass innerClass javax/lang/model/element/ModuleElement$Directive outerClass javax/lang/model/element/ModuleElement innerClassName Directive flags 609
+
+class name javax/lang/model/element/ModuleElement$ProvidesDirective
+header extends java/lang/Object implements javax/lang/model/element/ModuleElement$Directive nestHost javax/lang/model/element/ModuleElement flags 601
+innerclass innerClass javax/lang/model/element/ModuleElement$ProvidesDirective outerClass javax/lang/model/element/ModuleElement innerClassName ProvidesDirective flags 609
+innerclass innerClass javax/lang/model/element/ModuleElement$Directive outerClass javax/lang/model/element/ModuleElement innerClassName Directive flags 609
+
+class name javax/lang/model/element/ModuleElement$RequiresDirective
+header extends java/lang/Object implements javax/lang/model/element/ModuleElement$Directive nestHost javax/lang/model/element/ModuleElement flags 601
+innerclass innerClass javax/lang/model/element/ModuleElement$RequiresDirective outerClass javax/lang/model/element/ModuleElement innerClassName RequiresDirective flags 609
+innerclass innerClass javax/lang/model/element/ModuleElement$Directive outerClass javax/lang/model/element/ModuleElement innerClassName Directive flags 609
+
+class name javax/lang/model/element/ModuleElement$UsesDirective
+header extends java/lang/Object implements javax/lang/model/element/ModuleElement$Directive nestHost javax/lang/model/element/ModuleElement flags 601
+innerclass innerClass javax/lang/model/element/ModuleElement$UsesDirective outerClass javax/lang/model/element/ModuleElement innerClassName UsesDirective flags 609
+innerclass innerClass javax/lang/model/element/ModuleElement$Directive outerClass javax/lang/model/element/ModuleElement innerClassName Directive flags 609
+
+class name javax/lang/model/element/Name
+header extends java/lang/Object implements java/lang/CharSequence flags 601
+
+class name javax/lang/model/element/NestingKind
+header extends java/lang/Enum flags 4031 signature Ljava/lang/Enum<Ljavax/lang/model/element/NestingKind;>;
+
+class name javax/lang/model/element/PackageElement
+header extends java/lang/Object implements javax/lang/model/element/Element,javax/lang/model/element/QualifiedNameable flags 601
+
+class name javax/lang/model/element/Parameterizable
+header extends java/lang/Object implements javax/lang/model/element/Element flags 601
+
+class name javax/lang/model/element/QualifiedNameable
+header extends java/lang/Object implements javax/lang/model/element/Element flags 601
+
+class name javax/lang/model/element/TypeElement
+header extends java/lang/Object implements javax/lang/model/element/Element,javax/lang/model/element/Parameterizable,javax/lang/model/element/QualifiedNameable flags 601
+
+class name javax/lang/model/element/TypeParameterElement
+header extends java/lang/Object implements javax/lang/model/element/Element flags 601
+
+class name javax/lang/model/element/UnknownAnnotationValueException
+header extends javax/lang/model/UnknownEntityException flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/lang/model/element/UnknownDirectiveException
+header extends javax/lang/model/UnknownEntityException flags 21
+innerclass innerClass javax/lang/model/element/ModuleElement$Directive outerClass javax/lang/model/element/ModuleElement innerClassName Directive flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/lang/model/element/UnknownElementException
+header extends javax/lang/model/UnknownEntityException flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/lang/model/element/VariableElement
+header extends java/lang/Object implements javax/lang/model/element/Element flags 601
+
+class name javax/lang/model/type/ArrayType
+header extends java/lang/Object implements javax/lang/model/type/ReferenceType flags 601
+
+class name javax/lang/model/type/DeclaredType
+header extends java/lang/Object implements javax/lang/model/type/ReferenceType flags 601
+
+class name javax/lang/model/type/ErrorType
+header extends java/lang/Object implements javax/lang/model/type/DeclaredType flags 601
+
+class name javax/lang/model/type/ExecutableType
+header extends java/lang/Object implements javax/lang/model/type/TypeMirror flags 601
+
+class name javax/lang/model/type/IntersectionType
+header extends java/lang/Object implements javax/lang/model/type/TypeMirror flags 601
+
+class name javax/lang/model/type/MirroredTypeException
+header extends javax/lang/model/type/MirroredTypesException flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/lang/model/type/MirroredTypesException
+header extends java/lang/RuntimeException flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/lang/model/type/NoType
+header extends java/lang/Object implements javax/lang/model/type/TypeMirror flags 601
+
+class name javax/lang/model/type/NullType
+header extends java/lang/Object implements javax/lang/model/type/ReferenceType flags 601
+
+class name javax/lang/model/type/PrimitiveType
+header extends java/lang/Object implements javax/lang/model/type/TypeMirror flags 601
+
+class name javax/lang/model/type/ReferenceType
+header extends java/lang/Object implements javax/lang/model/type/TypeMirror flags 601
+
+class name javax/lang/model/type/TypeMirror
+header extends java/lang/Object implements javax/lang/model/AnnotatedConstruct flags 601
+
+class name javax/lang/model/type/TypeVariable
+header extends java/lang/Object implements javax/lang/model/type/ReferenceType flags 601
+
+class name javax/lang/model/type/TypeVisitor
+header extends java/lang/Object flags 601 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljava/lang/Object;
+
+class name javax/lang/model/type/UnionType
+header extends java/lang/Object implements javax/lang/model/type/TypeMirror flags 601
+
+class name javax/lang/model/type/UnknownTypeException
+header extends javax/lang/model/UnknownEntityException flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/lang/model/type/WildcardType
+header extends java/lang/Object implements javax/lang/model/type/TypeMirror flags 601
+
+class name javax/lang/model/util/AbstractAnnotationValueVisitor6
+header extends java/lang/Object implements javax/lang/model/element/AnnotationValueVisitor flags 421 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljava/lang/Object;Ljavax/lang/model/element/AnnotationValueVisitor<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_6;)
+
+class name javax/lang/model/util/AbstractAnnotationValueVisitor7
+header extends javax/lang/model/util/AbstractAnnotationValueVisitor6 flags 421 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/AbstractAnnotationValueVisitor6<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_7;)
+
+class name javax/lang/model/util/AbstractAnnotationValueVisitor8
+header extends javax/lang/model/util/AbstractAnnotationValueVisitor7 flags 421 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/AbstractAnnotationValueVisitor7<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_8;)
+
+class name javax/lang/model/util/AbstractAnnotationValueVisitor9
+header extends javax/lang/model/util/AbstractAnnotationValueVisitor8 flags 421 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/AbstractAnnotationValueVisitor8<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_11;)
+
+class name javax/lang/model/util/AbstractElementVisitor6
+header extends java/lang/Object implements javax/lang/model/element/ElementVisitor flags 421 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljava/lang/Object;Ljavax/lang/model/element/ElementVisitor<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_6;)
+
+class name javax/lang/model/util/AbstractElementVisitor7
+header extends javax/lang/model/util/AbstractElementVisitor6 flags 421 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/AbstractElementVisitor6<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_7;)
+
+class name javax/lang/model/util/AbstractElementVisitor8
+header extends javax/lang/model/util/AbstractElementVisitor7 flags 421 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/AbstractElementVisitor7<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_8;)
+
+class name javax/lang/model/util/AbstractElementVisitor9
+header extends javax/lang/model/util/AbstractElementVisitor8 flags 421 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/AbstractElementVisitor8<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_11;)
+
+class name javax/lang/model/util/AbstractTypeVisitor6
+header extends java/lang/Object implements javax/lang/model/type/TypeVisitor flags 421 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljava/lang/Object;Ljavax/lang/model/type/TypeVisitor<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_6;)
+
+class name javax/lang/model/util/AbstractTypeVisitor7
+header extends javax/lang/model/util/AbstractTypeVisitor6 flags 421 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/AbstractTypeVisitor6<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_7;)
+
+class name javax/lang/model/util/AbstractTypeVisitor8
+header extends javax/lang/model/util/AbstractTypeVisitor7 flags 421 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/AbstractTypeVisitor7<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_8;)
+
+class name javax/lang/model/util/AbstractTypeVisitor9
+header extends javax/lang/model/util/AbstractTypeVisitor8 flags 421 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/AbstractTypeVisitor8<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_11;)
+
+class name javax/lang/model/util/ElementFilter
+header extends java/lang/Object flags 21
+innerclass innerClass javax/lang/model/element/ModuleElement$Directive outerClass javax/lang/model/element/ModuleElement innerClassName Directive flags 609
+innerclass innerClass javax/lang/model/element/ModuleElement$ExportsDirective outerClass javax/lang/model/element/ModuleElement innerClassName ExportsDirective flags 609
+innerclass innerClass javax/lang/model/element/ModuleElement$OpensDirective outerClass javax/lang/model/element/ModuleElement innerClassName OpensDirective flags 609
+innerclass innerClass javax/lang/model/element/ModuleElement$ProvidesDirective outerClass javax/lang/model/element/ModuleElement innerClassName ProvidesDirective flags 609
+innerclass innerClass javax/lang/model/element/ModuleElement$RequiresDirective outerClass javax/lang/model/element/ModuleElement innerClassName RequiresDirective flags 609
+innerclass innerClass javax/lang/model/element/ModuleElement$UsesDirective outerClass javax/lang/model/element/ModuleElement innerClassName UsesDirective flags 609
+innerclass innerClass javax/lang/model/element/ModuleElement$DirectiveKind outerClass javax/lang/model/element/ModuleElement innerClassName DirectiveKind flags 4019
+
+class name javax/lang/model/util/ElementKindVisitor7
+header extends javax/lang/model/util/ElementKindVisitor6 flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/ElementKindVisitor6<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_7;)
+
+class name javax/lang/model/util/ElementKindVisitor8
+header extends javax/lang/model/util/ElementKindVisitor7 flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/ElementKindVisitor7<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_8;)
+
+class name javax/lang/model/util/ElementKindVisitor9
+header extends javax/lang/model/util/ElementKindVisitor8 flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/ElementKindVisitor8<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_11;)
+
+class name javax/lang/model/util/ElementScanner6
+header extends javax/lang/model/util/AbstractElementVisitor6 flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/AbstractElementVisitor6<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_6;)
+
+class name javax/lang/model/util/ElementScanner7
+header extends javax/lang/model/util/ElementScanner6 flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/ElementScanner6<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_7;)
+
+class name javax/lang/model/util/ElementScanner8
+header extends javax/lang/model/util/ElementScanner7 flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/ElementScanner7<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_8;)
+
+class name javax/lang/model/util/ElementScanner9
+header extends javax/lang/model/util/ElementScanner8 flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/ElementScanner8<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_11;)
+
+class name javax/lang/model/util/Elements
+header extends java/lang/Object nestMembers javax/lang/model/util/Elements$Origin flags 601
+innerclass innerClass javax/lang/model/util/Elements$Origin outerClass javax/lang/model/util/Elements innerClassName Origin flags 4019
+innerclass innerClass javax/lang/model/element/ModuleElement$Directive outerClass javax/lang/model/element/ModuleElement innerClassName Directive flags 609
+
+class name javax/lang/model/util/Elements$Origin
+header extends java/lang/Enum nestHost javax/lang/model/util/Elements flags 4031 signature Ljava/lang/Enum<Ljavax/lang/model/util/Elements$Origin;>;
+innerclass innerClass javax/lang/model/util/Elements$Origin outerClass javax/lang/model/util/Elements innerClassName Origin flags 4019
+
+class name javax/lang/model/util/SimpleAnnotationValueVisitor6
+header extends javax/lang/model/util/AbstractAnnotationValueVisitor6 flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/AbstractAnnotationValueVisitor6<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_6;)
+
+class name javax/lang/model/util/SimpleAnnotationValueVisitor7
+header extends javax/lang/model/util/SimpleAnnotationValueVisitor6 flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/SimpleAnnotationValueVisitor6<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_7;)
+
+class name javax/lang/model/util/SimpleAnnotationValueVisitor8
+header extends javax/lang/model/util/SimpleAnnotationValueVisitor7 flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/SimpleAnnotationValueVisitor7<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_8;)
+
+class name javax/lang/model/util/SimpleAnnotationValueVisitor9
+header extends javax/lang/model/util/SimpleAnnotationValueVisitor8 flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/SimpleAnnotationValueVisitor8<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_11;)
+
+class name javax/lang/model/util/SimpleElementVisitor6
+header extends javax/lang/model/util/AbstractElementVisitor6 flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/AbstractElementVisitor6<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_6;)
+
+class name javax/lang/model/util/SimpleElementVisitor7
+header extends javax/lang/model/util/SimpleElementVisitor6 flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/SimpleElementVisitor6<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_7;)
+
+class name javax/lang/model/util/SimpleElementVisitor8
+header extends javax/lang/model/util/SimpleElementVisitor7 flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/SimpleElementVisitor7<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_8;)
+
+class name javax/lang/model/util/SimpleElementVisitor9
+header extends javax/lang/model/util/SimpleElementVisitor8 flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/SimpleElementVisitor8<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_11;)
+
+class name javax/lang/model/util/SimpleTypeVisitor6
+header extends javax/lang/model/util/AbstractTypeVisitor6 flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/AbstractTypeVisitor6<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_6;)
+
+class name javax/lang/model/util/SimpleTypeVisitor7
+header extends javax/lang/model/util/SimpleTypeVisitor6 flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/SimpleTypeVisitor6<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_7;)
+
+class name javax/lang/model/util/SimpleTypeVisitor8
+header extends javax/lang/model/util/SimpleTypeVisitor7 flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/SimpleTypeVisitor7<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_8;)
+
+class name javax/lang/model/util/SimpleTypeVisitor9
+header extends javax/lang/model/util/SimpleTypeVisitor8 flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/SimpleTypeVisitor8<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_11;)
+
+class name javax/lang/model/util/TypeKindVisitor7
+header extends javax/lang/model/util/TypeKindVisitor6 flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/TypeKindVisitor6<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_7;)
+
+class name javax/lang/model/util/TypeKindVisitor8
+header extends javax/lang/model/util/TypeKindVisitor7 flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/TypeKindVisitor7<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_8;)
+
+class name javax/lang/model/util/TypeKindVisitor9
+header extends javax/lang/model/util/TypeKindVisitor8 flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljavax/lang/model/util/TypeKindVisitor8<TR;TP;>; runtimeAnnotations @Ljavax/annotation/processing/SupportedSourceVersion;(value=eLjavax/lang/model/SourceVersion;RELEASE_11;)
+
+class name javax/lang/model/util/Types
+header extends java/lang/Object flags 601
+
+class name javax/tools/Diagnostic
+header extends java/lang/Object nestMembers javax/tools/Diagnostic$Kind flags 601 signature <S:Ljava/lang/Object;>Ljava/lang/Object;
+innerclass innerClass javax/tools/Diagnostic$Kind outerClass javax/tools/Diagnostic innerClassName Kind flags 4019
+
+class name javax/tools/Diagnostic$Kind
+header extends java/lang/Enum nestHost javax/tools/Diagnostic flags 4031 signature Ljava/lang/Enum<Ljavax/tools/Diagnostic$Kind;>;
+innerclass innerClass javax/tools/Diagnostic$Kind outerClass javax/tools/Diagnostic innerClassName Kind flags 4019
+
+class name javax/tools/DiagnosticCollector
+header extends java/lang/Object implements javax/tools/DiagnosticListener flags 31 signature <S:Ljava/lang/Object;>Ljava/lang/Object;Ljavax/tools/DiagnosticListener<TS;>;
+
+class name javax/tools/DiagnosticListener
+header extends java/lang/Object flags 601 signature <S:Ljava/lang/Object;>Ljava/lang/Object;
+
+class name javax/tools/DocumentationTool
+header extends java/lang/Object implements javax/tools/Tool,javax/tools/OptionChecker nestMembers javax/tools/DocumentationTool$Location,javax/tools/DocumentationTool$DocumentationTask flags 601
+innerclass innerClass javax/tools/DocumentationTool$Location outerClass javax/tools/DocumentationTool innerClassName Location flags 4019
+innerclass innerClass javax/tools/DocumentationTool$DocumentationTask outerClass javax/tools/DocumentationTool innerClassName DocumentationTask flags 609
+
+class name javax/tools/DocumentationTool$DocumentationTask
+header extends java/lang/Object implements java/util/concurrent/Callable nestHost javax/tools/DocumentationTool flags 601 signature Ljava/lang/Object;Ljava/util/concurrent/Callable<Ljava/lang/Boolean;>;
+innerclass innerClass javax/tools/DocumentationTool$DocumentationTask outerClass javax/tools/DocumentationTool innerClassName DocumentationTask flags 609
+
+class name javax/tools/DocumentationTool$Location
+header extends java/lang/Enum implements javax/tools/JavaFileManager$Location nestHost javax/tools/DocumentationTool flags 4031 signature Ljava/lang/Enum<Ljavax/tools/DocumentationTool$Location;>;Ljavax/tools/JavaFileManager$Location;
+innerclass innerClass javax/tools/DocumentationTool$Location outerClass javax/tools/DocumentationTool innerClassName Location flags 4019
+innerclass innerClass javax/tools/JavaFileManager$Location outerClass javax/tools/JavaFileManager innerClassName Location flags 609
+
+class name javax/tools/FileObject
+header extends java/lang/Object flags 601
+
+class name javax/tools/ForwardingFileObject
+header extends java/lang/Object implements javax/tools/FileObject flags 21 signature <F::Ljavax/tools/FileObject;>Ljava/lang/Object;Ljavax/tools/FileObject;
+
+class name javax/tools/ForwardingJavaFileManager
+header extends java/lang/Object implements javax/tools/JavaFileManager flags 21 signature <M::Ljavax/tools/JavaFileManager;>Ljava/lang/Object;Ljavax/tools/JavaFileManager;
+innerclass innerClass javax/tools/JavaFileManager$Location outerClass javax/tools/JavaFileManager innerClassName Location flags 609
+innerclass innerClass javax/tools/JavaFileObject$Kind outerClass javax/tools/JavaFileObject innerClassName Kind flags 4019
+
+class name javax/tools/ForwardingJavaFileObject
+header extends javax/tools/ForwardingFileObject implements javax/tools/JavaFileObject flags 21 signature <F::Ljavax/tools/JavaFileObject;>Ljavax/tools/ForwardingFileObject<TF;>;Ljavax/tools/JavaFileObject;
+innerclass innerClass javax/tools/JavaFileObject$Kind outerClass javax/tools/JavaFileObject innerClassName Kind flags 4019
+
+class name javax/tools/JavaCompiler
+header extends java/lang/Object implements javax/tools/Tool,javax/tools/OptionChecker nestMembers javax/tools/JavaCompiler$CompilationTask flags 601
+innerclass innerClass javax/tools/JavaCompiler$CompilationTask outerClass javax/tools/JavaCompiler innerClassName CompilationTask flags 609
+
+class name javax/tools/JavaCompiler$CompilationTask
+header extends java/lang/Object implements java/util/concurrent/Callable nestHost javax/tools/JavaCompiler flags 601 signature Ljava/lang/Object;Ljava/util/concurrent/Callable<Ljava/lang/Boolean;>;
+innerclass innerClass javax/tools/JavaCompiler$CompilationTask outerClass javax/tools/JavaCompiler innerClassName CompilationTask flags 609
+
+class name javax/tools/JavaFileManager
+header extends java/lang/Object implements java/io/Closeable,java/io/Flushable,javax/tools/OptionChecker nestMembers javax/tools/JavaFileManager$Location flags 601
+innerclass innerClass javax/tools/JavaFileManager$Location outerClass javax/tools/JavaFileManager innerClassName Location flags 609
+innerclass innerClass javax/tools/JavaFileObject$Kind outerClass javax/tools/JavaFileObject innerClassName Kind flags 4019
+
+class name javax/tools/JavaFileManager$Location
+header extends java/lang/Object nestHost javax/tools/JavaFileManager flags 601
+innerclass innerClass javax/tools/JavaFileManager$Location outerClass javax/tools/JavaFileManager innerClassName Location flags 609
+
+class name javax/tools/JavaFileObject
+header extends java/lang/Object implements javax/tools/FileObject nestMembers javax/tools/JavaFileObject$Kind flags 601
+innerclass innerClass javax/tools/JavaFileObject$Kind outerClass javax/tools/JavaFileObject innerClassName Kind flags 4019
+
+class name javax/tools/JavaFileObject$Kind
+header extends java/lang/Enum nestHost javax/tools/JavaFileObject flags 4031 signature Ljava/lang/Enum<Ljavax/tools/JavaFileObject$Kind;>;
+innerclass innerClass javax/tools/JavaFileObject$Kind outerClass javax/tools/JavaFileObject innerClassName Kind flags 4019
+
+class name javax/tools/OptionChecker
+header extends java/lang/Object flags 601
+
+class name javax/tools/SimpleJavaFileObject
+header extends java/lang/Object implements javax/tools/JavaFileObject flags 21
+innerclass innerClass javax/tools/JavaFileObject$Kind outerClass javax/tools/JavaFileObject innerClassName Kind flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/tools/StandardJavaFileManager
+header extends java/lang/Object implements javax/tools/JavaFileManager nestMembers javax/tools/StandardJavaFileManager$PathFactory flags 601
+innerclass innerClass javax/tools/StandardJavaFileManager$PathFactory outerClass javax/tools/StandardJavaFileManager innerClassName PathFactory flags 609
+innerclass innerClass javax/tools/JavaFileManager$Location outerClass javax/tools/JavaFileManager innerClassName Location flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/tools/StandardJavaFileManager$PathFactory
+header extends java/lang/Object nestHost javax/tools/StandardJavaFileManager flags 601
+innerclass innerClass javax/tools/StandardJavaFileManager$PathFactory outerClass javax/tools/StandardJavaFileManager innerClassName PathFactory flags 609
+
+class name javax/tools/Tool
+header extends java/lang/Object flags 601
+
+class name javax/tools/ToolProvider
+header extends java/lang/Object flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/java.corba-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,1128 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+-module name java.corba
+
+-class name javax/activity/ActivityCompletedException
+
+-class name javax/activity/ActivityRequiredException
+
+-class name javax/activity/InvalidActivityException
+
+-class name javax/rmi/CORBA/ClassDesc
+
+-class name javax/rmi/CORBA/PortableRemoteObjectDelegate
+
+-class name javax/rmi/CORBA/Stub
+
+-class name javax/rmi/CORBA/StubDelegate
+
+-class name javax/rmi/CORBA/Tie
+
+-class name javax/rmi/CORBA/Util
+
+-class name javax/rmi/CORBA/UtilDelegate
+
+-class name javax/rmi/CORBA/ValueHandler
+
+-class name javax/rmi/CORBA/ValueHandlerMultiFormat
+
+-class name javax/rmi/PortableRemoteObject
+
+-class name org/omg/CORBA/ACTIVITY_COMPLETED
+
+-class name org/omg/CORBA/ACTIVITY_REQUIRED
+
+-class name org/omg/CORBA/ARG_IN
+
+-class name org/omg/CORBA/ARG_INOUT
+
+-class name org/omg/CORBA/ARG_OUT
+
+-class name org/omg/CORBA/Any
+
+-class name org/omg/CORBA/AnyHolder
+
+-class name org/omg/CORBA/AnySeqHelper
+
+-class name org/omg/CORBA/AnySeqHolder
+
+-class name org/omg/CORBA/BAD_CONTEXT
+
+-class name org/omg/CORBA/BAD_INV_ORDER
+
+-class name org/omg/CORBA/BAD_OPERATION
+
+-class name org/omg/CORBA/BAD_PARAM
+
+-class name org/omg/CORBA/BAD_POLICY
+
+-class name org/omg/CORBA/BAD_POLICY_TYPE
+
+-class name org/omg/CORBA/BAD_POLICY_VALUE
+
+-class name org/omg/CORBA/BAD_QOS
+
+-class name org/omg/CORBA/BAD_TYPECODE
+
+-class name org/omg/CORBA/BooleanHolder
+
+-class name org/omg/CORBA/BooleanSeqHelper
+
+-class name org/omg/CORBA/BooleanSeqHolder
+
+-class name org/omg/CORBA/Bounds
+
+-class name org/omg/CORBA/BoundsHelper
+
+-class name org/omg/CORBA/ByteHolder
+
+-class name org/omg/CORBA/CODESET_INCOMPATIBLE
+
+-class name org/omg/CORBA/COMM_FAILURE
+
+-class name org/omg/CORBA/CTX_RESTRICT_SCOPE
+
+-class name org/omg/CORBA/CharHolder
+
+-class name org/omg/CORBA/CharSeqHelper
+
+-class name org/omg/CORBA/CharSeqHolder
+
+-class name org/omg/CORBA/CompletionStatus
+
+-class name org/omg/CORBA/CompletionStatusHelper
+
+-class name org/omg/CORBA/Context
+
+-class name org/omg/CORBA/ContextList
+
+-class name org/omg/CORBA/Current
+
+-class name org/omg/CORBA/CurrentHelper
+
+-class name org/omg/CORBA/CurrentHolder
+
+-class name org/omg/CORBA/CurrentOperations
+
+-class name org/omg/CORBA/CustomMarshal
+
+-class name org/omg/CORBA/DATA_CONVERSION
+
+-class name org/omg/CORBA/DataInputStream
+
+-class name org/omg/CORBA/DataOutputStream
+
+-class name org/omg/CORBA/DefinitionKind
+
+-class name org/omg/CORBA/DefinitionKindHelper
+
+-class name org/omg/CORBA/DomainManager
+
+-class name org/omg/CORBA/DomainManagerOperations
+
+-class name org/omg/CORBA/DoubleHolder
+
+-class name org/omg/CORBA/DoubleSeqHelper
+
+-class name org/omg/CORBA/DoubleSeqHolder
+
+-class name org/omg/CORBA/DynAny
+
+-class name org/omg/CORBA/DynAnyPackage/Invalid
+
+-class name org/omg/CORBA/DynAnyPackage/InvalidSeq
+
+-class name org/omg/CORBA/DynAnyPackage/InvalidValue
+
+-class name org/omg/CORBA/DynAnyPackage/TypeMismatch
+
+-class name org/omg/CORBA/DynArray
+
+-class name org/omg/CORBA/DynEnum
+
+-class name org/omg/CORBA/DynFixed
+
+-class name org/omg/CORBA/DynSequence
+
+-class name org/omg/CORBA/DynStruct
+
+-class name org/omg/CORBA/DynUnion
+
+-class name org/omg/CORBA/DynValue
+
+-class name org/omg/CORBA/DynamicImplementation
+
+-class name org/omg/CORBA/Environment
+
+-class name org/omg/CORBA/ExceptionList
+
+-class name org/omg/CORBA/FREE_MEM
+
+-class name org/omg/CORBA/FieldNameHelper
+
+-class name org/omg/CORBA/FixedHolder
+
+-class name org/omg/CORBA/FloatHolder
+
+-class name org/omg/CORBA/FloatSeqHelper
+
+-class name org/omg/CORBA/FloatSeqHolder
+
+-class name org/omg/CORBA/IDLType
+
+-class name org/omg/CORBA/IDLTypeHelper
+
+-class name org/omg/CORBA/IDLTypeOperations
+
+-class name org/omg/CORBA/IMP_LIMIT
+
+-class name org/omg/CORBA/INITIALIZE
+
+-class name org/omg/CORBA/INTERNAL
+
+-class name org/omg/CORBA/INTF_REPOS
+
+-class name org/omg/CORBA/INVALID_ACTIVITY
+
+-class name org/omg/CORBA/INVALID_TRANSACTION
+
+-class name org/omg/CORBA/INV_FLAG
+
+-class name org/omg/CORBA/INV_IDENT
+
+-class name org/omg/CORBA/INV_OBJREF
+
+-class name org/omg/CORBA/INV_POLICY
+
+-class name org/omg/CORBA/IRObject
+
+-class name org/omg/CORBA/IRObjectOperations
+
+-class name org/omg/CORBA/IdentifierHelper
+
+-class name org/omg/CORBA/IntHolder
+
+-class name org/omg/CORBA/LocalObject
+
+-class name org/omg/CORBA/LongHolder
+
+-class name org/omg/CORBA/LongLongSeqHelper
+
+-class name org/omg/CORBA/LongLongSeqHolder
+
+-class name org/omg/CORBA/LongSeqHelper
+
+-class name org/omg/CORBA/LongSeqHolder
+
+-class name org/omg/CORBA/MARSHAL
+
+-class name org/omg/CORBA/NO_IMPLEMENT
+
+-class name org/omg/CORBA/NO_MEMORY
+
+-class name org/omg/CORBA/NO_PERMISSION
+
+-class name org/omg/CORBA/NO_RESOURCES
+
+-class name org/omg/CORBA/NO_RESPONSE
+
+-class name org/omg/CORBA/NVList
+
+-class name org/omg/CORBA/NameValuePair
+
+-class name org/omg/CORBA/NameValuePairHelper
+
+-class name org/omg/CORBA/NamedValue
+
+-class name org/omg/CORBA/OBJECT_NOT_EXIST
+
+-class name org/omg/CORBA/OBJ_ADAPTER
+
+-class name org/omg/CORBA/OMGVMCID
+
+-class name org/omg/CORBA/ORB
+
+-class name org/omg/CORBA/ORBPackage/InconsistentTypeCode
+
+-class name org/omg/CORBA/ORBPackage/InvalidName
+
+-class name org/omg/CORBA/ORBPackage/InvalidNameHelper
+
+-class name org/omg/CORBA/Object
+
+-class name org/omg/CORBA/ObjectHelper
+
+-class name org/omg/CORBA/ObjectHolder
+
+-class name org/omg/CORBA/OctetSeqHelper
+
+-class name org/omg/CORBA/OctetSeqHolder
+
+-class name org/omg/CORBA/PERSIST_STORE
+
+-class name org/omg/CORBA/PRIVATE_MEMBER
+
+-class name org/omg/CORBA/PUBLIC_MEMBER
+
+-class name org/omg/CORBA/ParameterMode
+
+-class name org/omg/CORBA/ParameterModeHelper
+
+-class name org/omg/CORBA/ParameterModeHolder
+
+-class name org/omg/CORBA/Policy
+
+-class name org/omg/CORBA/PolicyError
+
+-class name org/omg/CORBA/PolicyErrorCodeHelper
+
+-class name org/omg/CORBA/PolicyErrorHelper
+
+-class name org/omg/CORBA/PolicyErrorHolder
+
+-class name org/omg/CORBA/PolicyHelper
+
+-class name org/omg/CORBA/PolicyHolder
+
+-class name org/omg/CORBA/PolicyListHelper
+
+-class name org/omg/CORBA/PolicyListHolder
+
+-class name org/omg/CORBA/PolicyOperations
+
+-class name org/omg/CORBA/PolicyTypeHelper
+
+-class name org/omg/CORBA/Principal
+
+-class name org/omg/CORBA/PrincipalHolder
+
+-class name org/omg/CORBA/REBIND
+
+-class name org/omg/CORBA/RepositoryIdHelper
+
+-class name org/omg/CORBA/Request
+
+-class name org/omg/CORBA/ServerRequest
+
+-class name org/omg/CORBA/ServiceDetail
+
+-class name org/omg/CORBA/ServiceDetailHelper
+
+-class name org/omg/CORBA/ServiceInformation
+
+-class name org/omg/CORBA/ServiceInformationHelper
+
+-class name org/omg/CORBA/ServiceInformationHolder
+
+-class name org/omg/CORBA/SetOverrideType
+
+-class name org/omg/CORBA/SetOverrideTypeHelper
+
+-class name org/omg/CORBA/ShortHolder
+
+-class name org/omg/CORBA/ShortSeqHelper
+
+-class name org/omg/CORBA/ShortSeqHolder
+
+-class name org/omg/CORBA/StringHolder
+
+-class name org/omg/CORBA/StringSeqHelper
+
+-class name org/omg/CORBA/StringSeqHolder
+
+-class name org/omg/CORBA/StringValueHelper
+
+-class name org/omg/CORBA/StructMember
+
+-class name org/omg/CORBA/StructMemberHelper
+
+-class name org/omg/CORBA/SystemException
+
+-class name org/omg/CORBA/TCKind
+
+-class name org/omg/CORBA/TIMEOUT
+
+-class name org/omg/CORBA/TRANSACTION_MODE
+
+-class name org/omg/CORBA/TRANSACTION_REQUIRED
+
+-class name org/omg/CORBA/TRANSACTION_ROLLEDBACK
+
+-class name org/omg/CORBA/TRANSACTION_UNAVAILABLE
+
+-class name org/omg/CORBA/TRANSIENT
+
+-class name org/omg/CORBA/TypeCode
+
+-class name org/omg/CORBA/TypeCodeHolder
+
+-class name org/omg/CORBA/TypeCodePackage/BadKind
+
+-class name org/omg/CORBA/TypeCodePackage/BadKindHelper
+
+-class name org/omg/CORBA/TypeCodePackage/Bounds
+
+-class name org/omg/CORBA/TypeCodePackage/BoundsHelper
+
+-class name org/omg/CORBA/ULongLongSeqHelper
+
+-class name org/omg/CORBA/ULongLongSeqHolder
+
+-class name org/omg/CORBA/ULongSeqHelper
+
+-class name org/omg/CORBA/ULongSeqHolder
+
+-class name org/omg/CORBA/UNKNOWN
+
+-class name org/omg/CORBA/UNSUPPORTED_POLICY
+
+-class name org/omg/CORBA/UNSUPPORTED_POLICY_VALUE
+
+-class name org/omg/CORBA/UShortSeqHelper
+
+-class name org/omg/CORBA/UShortSeqHolder
+
+-class name org/omg/CORBA/UnionMember
+
+-class name org/omg/CORBA/UnionMemberHelper
+
+-class name org/omg/CORBA/UnknownUserException
+
+-class name org/omg/CORBA/UnknownUserExceptionHelper
+
+-class name org/omg/CORBA/UnknownUserExceptionHolder
+
+-class name org/omg/CORBA/UserException
+
+-class name org/omg/CORBA/VM_ABSTRACT
+
+-class name org/omg/CORBA/VM_CUSTOM
+
+-class name org/omg/CORBA/VM_NONE
+
+-class name org/omg/CORBA/VM_TRUNCATABLE
+
+-class name org/omg/CORBA/ValueBaseHelper
+
+-class name org/omg/CORBA/ValueBaseHolder
+
+-class name org/omg/CORBA/ValueMember
+
+-class name org/omg/CORBA/ValueMemberHelper
+
+-class name org/omg/CORBA/VersionSpecHelper
+
+-class name org/omg/CORBA/VisibilityHelper
+
+-class name org/omg/CORBA/WCharSeqHelper
+
+-class name org/omg/CORBA/WCharSeqHolder
+
+-class name org/omg/CORBA/WStringSeqHelper
+
+-class name org/omg/CORBA/WStringSeqHolder
+
+-class name org/omg/CORBA/WStringValueHelper
+
+-class name org/omg/CORBA/WrongTransaction
+
+-class name org/omg/CORBA/WrongTransactionHelper
+
+-class name org/omg/CORBA/WrongTransactionHolder
+
+-class name org/omg/CORBA/_IDLTypeStub
+
+-class name org/omg/CORBA/_PolicyStub
+
+-class name org/omg/CORBA/portable/ApplicationException
+
+-class name org/omg/CORBA/portable/BoxedValueHelper
+
+-class name org/omg/CORBA/portable/CustomValue
+
+-class name org/omg/CORBA/portable/Delegate
+
+-class name org/omg/CORBA/portable/IDLEntity
+
+-class name org/omg/CORBA/portable/IndirectionException
+
+-class name org/omg/CORBA/portable/InputStream
+
+-class name org/omg/CORBA/portable/InvokeHandler
+
+-class name org/omg/CORBA/portable/ObjectImpl
+
+-class name org/omg/CORBA/portable/OutputStream
+
+-class name org/omg/CORBA/portable/RemarshalException
+
+-class name org/omg/CORBA/portable/ResponseHandler
+
+-class name org/omg/CORBA/portable/ServantObject
+
+-class name org/omg/CORBA/portable/Streamable
+
+-class name org/omg/CORBA/portable/StreamableValue
+
+-class name org/omg/CORBA/portable/UnknownException
+
+-class name org/omg/CORBA/portable/ValueBase
+
+-class name org/omg/CORBA/portable/ValueFactory
+
+-class name org/omg/CORBA/portable/ValueInputStream
+
+-class name org/omg/CORBA/portable/ValueOutputStream
+
+-class name org/omg/CORBA_2_3/ORB
+
+-class name org/omg/CORBA_2_3/portable/Delegate
+
+-class name org/omg/CORBA_2_3/portable/InputStream
+
+-class name org/omg/CORBA_2_3/portable/ObjectImpl
+
+-class name org/omg/CORBA_2_3/portable/OutputStream
+
+-class name org/omg/CosNaming/Binding
+
+-class name org/omg/CosNaming/BindingHelper
+
+-class name org/omg/CosNaming/BindingHolder
+
+-class name org/omg/CosNaming/BindingIterator
+
+-class name org/omg/CosNaming/BindingIteratorHelper
+
+-class name org/omg/CosNaming/BindingIteratorHolder
+
+-class name org/omg/CosNaming/BindingIteratorOperations
+
+-class name org/omg/CosNaming/BindingIteratorPOA
+
+-class name org/omg/CosNaming/BindingListHelper
+
+-class name org/omg/CosNaming/BindingListHolder
+
+-class name org/omg/CosNaming/BindingType
+
+-class name org/omg/CosNaming/BindingTypeHelper
+
+-class name org/omg/CosNaming/BindingTypeHolder
+
+-class name org/omg/CosNaming/IstringHelper
+
+-class name org/omg/CosNaming/NameComponent
+
+-class name org/omg/CosNaming/NameComponentHelper
+
+-class name org/omg/CosNaming/NameComponentHolder
+
+-class name org/omg/CosNaming/NameHelper
+
+-class name org/omg/CosNaming/NameHolder
+
+-class name org/omg/CosNaming/NamingContext
+
+-class name org/omg/CosNaming/NamingContextExt
+
+-class name org/omg/CosNaming/NamingContextExtHelper
+
+-class name org/omg/CosNaming/NamingContextExtHolder
+
+-class name org/omg/CosNaming/NamingContextExtOperations
+
+-class name org/omg/CosNaming/NamingContextExtPOA
+
+-class name org/omg/CosNaming/NamingContextExtPackage/AddressHelper
+
+-class name org/omg/CosNaming/NamingContextExtPackage/InvalidAddress
+
+-class name org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHelper
+
+-class name org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHolder
+
+-class name org/omg/CosNaming/NamingContextExtPackage/StringNameHelper
+
+-class name org/omg/CosNaming/NamingContextExtPackage/URLStringHelper
+
+-class name org/omg/CosNaming/NamingContextHelper
+
+-class name org/omg/CosNaming/NamingContextHolder
+
+-class name org/omg/CosNaming/NamingContextOperations
+
+-class name org/omg/CosNaming/NamingContextPOA
+
+-class name org/omg/CosNaming/NamingContextPackage/AlreadyBound
+
+-class name org/omg/CosNaming/NamingContextPackage/AlreadyBoundHelper
+
+-class name org/omg/CosNaming/NamingContextPackage/AlreadyBoundHolder
+
+-class name org/omg/CosNaming/NamingContextPackage/CannotProceed
+
+-class name org/omg/CosNaming/NamingContextPackage/CannotProceedHelper
+
+-class name org/omg/CosNaming/NamingContextPackage/CannotProceedHolder
+
+-class name org/omg/CosNaming/NamingContextPackage/InvalidName
+
+-class name org/omg/CosNaming/NamingContextPackage/InvalidNameHelper
+
+-class name org/omg/CosNaming/NamingContextPackage/InvalidNameHolder
+
+-class name org/omg/CosNaming/NamingContextPackage/NotEmpty
+
+-class name org/omg/CosNaming/NamingContextPackage/NotEmptyHelper
+
+-class name org/omg/CosNaming/NamingContextPackage/NotEmptyHolder
+
+-class name org/omg/CosNaming/NamingContextPackage/NotFound
+
+-class name org/omg/CosNaming/NamingContextPackage/NotFoundHelper
+
+-class name org/omg/CosNaming/NamingContextPackage/NotFoundHolder
+
+-class name org/omg/CosNaming/NamingContextPackage/NotFoundReason
+
+-class name org/omg/CosNaming/NamingContextPackage/NotFoundReasonHelper
+
+-class name org/omg/CosNaming/NamingContextPackage/NotFoundReasonHolder
+
+-class name org/omg/CosNaming/_BindingIteratorImplBase
+
+-class name org/omg/CosNaming/_BindingIteratorStub
+
+-class name org/omg/CosNaming/_NamingContextExtStub
+
+-class name org/omg/CosNaming/_NamingContextImplBase
+
+-class name org/omg/CosNaming/_NamingContextStub
+
+-class name org/omg/Dynamic/Parameter
+
+-class name org/omg/DynamicAny/AnySeqHelper
+
+-class name org/omg/DynamicAny/DynAny
+
+-class name org/omg/DynamicAny/DynAnyFactory
+
+-class name org/omg/DynamicAny/DynAnyFactoryHelper
+
+-class name org/omg/DynamicAny/DynAnyFactoryOperations
+
+-class name org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCode
+
+-class name org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCodeHelper
+
+-class name org/omg/DynamicAny/DynAnyHelper
+
+-class name org/omg/DynamicAny/DynAnyOperations
+
+-class name org/omg/DynamicAny/DynAnyPackage/InvalidValue
+
+-class name org/omg/DynamicAny/DynAnyPackage/InvalidValueHelper
+
+-class name org/omg/DynamicAny/DynAnyPackage/TypeMismatch
+
+-class name org/omg/DynamicAny/DynAnyPackage/TypeMismatchHelper
+
+-class name org/omg/DynamicAny/DynAnySeqHelper
+
+-class name org/omg/DynamicAny/DynArray
+
+-class name org/omg/DynamicAny/DynArrayHelper
+
+-class name org/omg/DynamicAny/DynArrayOperations
+
+-class name org/omg/DynamicAny/DynEnum
+
+-class name org/omg/DynamicAny/DynEnumHelper
+
+-class name org/omg/DynamicAny/DynEnumOperations
+
+-class name org/omg/DynamicAny/DynFixed
+
+-class name org/omg/DynamicAny/DynFixedHelper
+
+-class name org/omg/DynamicAny/DynFixedOperations
+
+-class name org/omg/DynamicAny/DynSequence
+
+-class name org/omg/DynamicAny/DynSequenceHelper
+
+-class name org/omg/DynamicAny/DynSequenceOperations
+
+-class name org/omg/DynamicAny/DynStruct
+
+-class name org/omg/DynamicAny/DynStructHelper
+
+-class name org/omg/DynamicAny/DynStructOperations
+
+-class name org/omg/DynamicAny/DynUnion
+
+-class name org/omg/DynamicAny/DynUnionHelper
+
+-class name org/omg/DynamicAny/DynUnionOperations
+
+-class name org/omg/DynamicAny/DynValue
+
+-class name org/omg/DynamicAny/DynValueBox
+
+-class name org/omg/DynamicAny/DynValueBoxOperations
+
+-class name org/omg/DynamicAny/DynValueCommon
+
+-class name org/omg/DynamicAny/DynValueCommonOperations
+
+-class name org/omg/DynamicAny/DynValueHelper
+
+-class name org/omg/DynamicAny/DynValueOperations
+
+-class name org/omg/DynamicAny/FieldNameHelper
+
+-class name org/omg/DynamicAny/NameDynAnyPair
+
+-class name org/omg/DynamicAny/NameDynAnyPairHelper
+
+-class name org/omg/DynamicAny/NameDynAnyPairSeqHelper
+
+-class name org/omg/DynamicAny/NameValuePair
+
+-class name org/omg/DynamicAny/NameValuePairHelper
+
+-class name org/omg/DynamicAny/NameValuePairSeqHelper
+
+-class name org/omg/DynamicAny/_DynAnyFactoryStub
+
+-class name org/omg/DynamicAny/_DynAnyStub
+
+-class name org/omg/DynamicAny/_DynArrayStub
+
+-class name org/omg/DynamicAny/_DynEnumStub
+
+-class name org/omg/DynamicAny/_DynFixedStub
+
+-class name org/omg/DynamicAny/_DynSequenceStub
+
+-class name org/omg/DynamicAny/_DynStructStub
+
+-class name org/omg/DynamicAny/_DynUnionStub
+
+-class name org/omg/DynamicAny/_DynValueStub
+
+-class name org/omg/IOP/CodeSets
+
+-class name org/omg/IOP/Codec
+
+-class name org/omg/IOP/CodecFactory
+
+-class name org/omg/IOP/CodecFactoryHelper
+
+-class name org/omg/IOP/CodecFactoryOperations
+
+-class name org/omg/IOP/CodecFactoryPackage/UnknownEncoding
+
+-class name org/omg/IOP/CodecFactoryPackage/UnknownEncodingHelper
+
+-class name org/omg/IOP/CodecOperations
+
+-class name org/omg/IOP/CodecPackage/FormatMismatch
+
+-class name org/omg/IOP/CodecPackage/FormatMismatchHelper
+
+-class name org/omg/IOP/CodecPackage/InvalidTypeForEncoding
+
+-class name org/omg/IOP/CodecPackage/InvalidTypeForEncodingHelper
+
+-class name org/omg/IOP/CodecPackage/TypeMismatch
+
+-class name org/omg/IOP/CodecPackage/TypeMismatchHelper
+
+-class name org/omg/IOP/ComponentIdHelper
+
+-class name org/omg/IOP/ENCODING_CDR_ENCAPS
+
+-class name org/omg/IOP/Encoding
+
+-class name org/omg/IOP/ExceptionDetailMessage
+
+-class name org/omg/IOP/IOR
+
+-class name org/omg/IOP/IORHelper
+
+-class name org/omg/IOP/IORHolder
+
+-class name org/omg/IOP/MultipleComponentProfileHelper
+
+-class name org/omg/IOP/MultipleComponentProfileHolder
+
+-class name org/omg/IOP/ProfileIdHelper
+
+-class name org/omg/IOP/RMICustomMaxStreamFormat
+
+-class name org/omg/IOP/ServiceContext
+
+-class name org/omg/IOP/ServiceContextHelper
+
+-class name org/omg/IOP/ServiceContextHolder
+
+-class name org/omg/IOP/ServiceContextListHelper
+
+-class name org/omg/IOP/ServiceContextListHolder
+
+-class name org/omg/IOP/ServiceIdHelper
+
+-class name org/omg/IOP/TAG_ALTERNATE_IIOP_ADDRESS
+
+-class name org/omg/IOP/TAG_CODE_SETS
+
+-class name org/omg/IOP/TAG_INTERNET_IOP
+
+-class name org/omg/IOP/TAG_JAVA_CODEBASE
+
+-class name org/omg/IOP/TAG_MULTIPLE_COMPONENTS
+
+-class name org/omg/IOP/TAG_ORB_TYPE
+
+-class name org/omg/IOP/TAG_POLICIES
+
+-class name org/omg/IOP/TAG_RMI_CUSTOM_MAX_STREAM_FORMAT
+
+-class name org/omg/IOP/TaggedComponent
+
+-class name org/omg/IOP/TaggedComponentHelper
+
+-class name org/omg/IOP/TaggedComponentHolder
+
+-class name org/omg/IOP/TaggedProfile
+
+-class name org/omg/IOP/TaggedProfileHelper
+
+-class name org/omg/IOP/TaggedProfileHolder
+
+-class name org/omg/IOP/TransactionService
+
+-class name org/omg/Messaging/SYNC_WITH_TRANSPORT
+
+-class name org/omg/Messaging/SyncScopeHelper
+
+-class name org/omg/PortableInterceptor/ACTIVE
+
+-class name org/omg/PortableInterceptor/AdapterManagerIdHelper
+
+-class name org/omg/PortableInterceptor/AdapterNameHelper
+
+-class name org/omg/PortableInterceptor/AdapterStateHelper
+
+-class name org/omg/PortableInterceptor/ClientRequestInfo
+
+-class name org/omg/PortableInterceptor/ClientRequestInfoOperations
+
+-class name org/omg/PortableInterceptor/ClientRequestInterceptor
+
+-class name org/omg/PortableInterceptor/ClientRequestInterceptorOperations
+
+-class name org/omg/PortableInterceptor/Current
+
+-class name org/omg/PortableInterceptor/CurrentHelper
+
+-class name org/omg/PortableInterceptor/CurrentOperations
+
+-class name org/omg/PortableInterceptor/DISCARDING
+
+-class name org/omg/PortableInterceptor/ForwardRequest
+
+-class name org/omg/PortableInterceptor/ForwardRequestHelper
+
+-class name org/omg/PortableInterceptor/HOLDING
+
+-class name org/omg/PortableInterceptor/INACTIVE
+
+-class name org/omg/PortableInterceptor/IORInfo
+
+-class name org/omg/PortableInterceptor/IORInfoOperations
+
+-class name org/omg/PortableInterceptor/IORInterceptor
+
+-class name org/omg/PortableInterceptor/IORInterceptorOperations
+
+-class name org/omg/PortableInterceptor/IORInterceptor_3_0
+
+-class name org/omg/PortableInterceptor/IORInterceptor_3_0Helper
+
+-class name org/omg/PortableInterceptor/IORInterceptor_3_0Holder
+
+-class name org/omg/PortableInterceptor/IORInterceptor_3_0Operations
+
+-class name org/omg/PortableInterceptor/Interceptor
+
+-class name org/omg/PortableInterceptor/InterceptorOperations
+
+-class name org/omg/PortableInterceptor/InvalidSlot
+
+-class name org/omg/PortableInterceptor/InvalidSlotHelper
+
+-class name org/omg/PortableInterceptor/LOCATION_FORWARD
+
+-class name org/omg/PortableInterceptor/NON_EXISTENT
+
+-class name org/omg/PortableInterceptor/ORBIdHelper
+
+-class name org/omg/PortableInterceptor/ORBInitInfo
+
+-class name org/omg/PortableInterceptor/ORBInitInfoOperations
+
+-class name org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateName
+
+-class name org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHelper
+
+-class name org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidName
+
+-class name org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidNameHelper
+
+-class name org/omg/PortableInterceptor/ORBInitInfoPackage/ObjectIdHelper
+
+-class name org/omg/PortableInterceptor/ORBInitializer
+
+-class name org/omg/PortableInterceptor/ORBInitializerOperations
+
+-class name org/omg/PortableInterceptor/ObjectIdHelper
+
+-class name org/omg/PortableInterceptor/ObjectReferenceFactory
+
+-class name org/omg/PortableInterceptor/ObjectReferenceFactoryHelper
+
+-class name org/omg/PortableInterceptor/ObjectReferenceFactoryHolder
+
+-class name org/omg/PortableInterceptor/ObjectReferenceTemplate
+
+-class name org/omg/PortableInterceptor/ObjectReferenceTemplateHelper
+
+-class name org/omg/PortableInterceptor/ObjectReferenceTemplateHolder
+
+-class name org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHelper
+
+-class name org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHolder
+
+-class name org/omg/PortableInterceptor/PolicyFactory
+
+-class name org/omg/PortableInterceptor/PolicyFactoryOperations
+
+-class name org/omg/PortableInterceptor/RequestInfo
+
+-class name org/omg/PortableInterceptor/RequestInfoOperations
+
+-class name org/omg/PortableInterceptor/SUCCESSFUL
+
+-class name org/omg/PortableInterceptor/SYSTEM_EXCEPTION
+
+-class name org/omg/PortableInterceptor/ServerIdHelper
+
+-class name org/omg/PortableInterceptor/ServerRequestInfo
+
+-class name org/omg/PortableInterceptor/ServerRequestInfoOperations
+
+-class name org/omg/PortableInterceptor/ServerRequestInterceptor
+
+-class name org/omg/PortableInterceptor/ServerRequestInterceptorOperations
+
+-class name org/omg/PortableInterceptor/TRANSPORT_RETRY
+
+-class name org/omg/PortableInterceptor/USER_EXCEPTION
+
+-class name org/omg/PortableServer/AdapterActivator
+
+-class name org/omg/PortableServer/AdapterActivatorOperations
+
+-class name org/omg/PortableServer/Current
+
+-class name org/omg/PortableServer/CurrentHelper
+
+-class name org/omg/PortableServer/CurrentOperations
+
+-class name org/omg/PortableServer/CurrentPackage/NoContext
+
+-class name org/omg/PortableServer/CurrentPackage/NoContextHelper
+
+-class name org/omg/PortableServer/DynamicImplementation
+
+-class name org/omg/PortableServer/ForwardRequest
+
+-class name org/omg/PortableServer/ForwardRequestHelper
+
+-class name org/omg/PortableServer/ID_ASSIGNMENT_POLICY_ID
+
+-class name org/omg/PortableServer/ID_UNIQUENESS_POLICY_ID
+
+-class name org/omg/PortableServer/IMPLICIT_ACTIVATION_POLICY_ID
+
+-class name org/omg/PortableServer/IdAssignmentPolicy
+
+-class name org/omg/PortableServer/IdAssignmentPolicyOperations
+
+-class name org/omg/PortableServer/IdAssignmentPolicyValue
+
+-class name org/omg/PortableServer/IdUniquenessPolicy
+
+-class name org/omg/PortableServer/IdUniquenessPolicyOperations
+
+-class name org/omg/PortableServer/IdUniquenessPolicyValue
+
+-class name org/omg/PortableServer/ImplicitActivationPolicy
+
+-class name org/omg/PortableServer/ImplicitActivationPolicyOperations
+
+-class name org/omg/PortableServer/ImplicitActivationPolicyValue
+
+-class name org/omg/PortableServer/LIFESPAN_POLICY_ID
+
+-class name org/omg/PortableServer/LifespanPolicy
+
+-class name org/omg/PortableServer/LifespanPolicyOperations
+
+-class name org/omg/PortableServer/LifespanPolicyValue
+
+-class name org/omg/PortableServer/POA
+
+-class name org/omg/PortableServer/POAHelper
+
+-class name org/omg/PortableServer/POAManager
+
+-class name org/omg/PortableServer/POAManagerOperations
+
+-class name org/omg/PortableServer/POAManagerPackage/AdapterInactive
+
+-class name org/omg/PortableServer/POAManagerPackage/AdapterInactiveHelper
+
+-class name org/omg/PortableServer/POAManagerPackage/State
+
+-class name org/omg/PortableServer/POAOperations
+
+-class name org/omg/PortableServer/POAPackage/AdapterAlreadyExists
+
+-class name org/omg/PortableServer/POAPackage/AdapterAlreadyExistsHelper
+
+-class name org/omg/PortableServer/POAPackage/AdapterNonExistent
+
+-class name org/omg/PortableServer/POAPackage/AdapterNonExistentHelper
+
+-class name org/omg/PortableServer/POAPackage/InvalidPolicy
+
+-class name org/omg/PortableServer/POAPackage/InvalidPolicyHelper
+
+-class name org/omg/PortableServer/POAPackage/NoServant
+
+-class name org/omg/PortableServer/POAPackage/NoServantHelper
+
+-class name org/omg/PortableServer/POAPackage/ObjectAlreadyActive
+
+-class name org/omg/PortableServer/POAPackage/ObjectAlreadyActiveHelper
+
+-class name org/omg/PortableServer/POAPackage/ObjectNotActive
+
+-class name org/omg/PortableServer/POAPackage/ObjectNotActiveHelper
+
+-class name org/omg/PortableServer/POAPackage/ServantAlreadyActive
+
+-class name org/omg/PortableServer/POAPackage/ServantAlreadyActiveHelper
+
+-class name org/omg/PortableServer/POAPackage/ServantNotActive
+
+-class name org/omg/PortableServer/POAPackage/ServantNotActiveHelper
+
+-class name org/omg/PortableServer/POAPackage/WrongAdapter
+
+-class name org/omg/PortableServer/POAPackage/WrongAdapterHelper
+
+-class name org/omg/PortableServer/POAPackage/WrongPolicy
+
+-class name org/omg/PortableServer/POAPackage/WrongPolicyHelper
+
+-class name org/omg/PortableServer/REQUEST_PROCESSING_POLICY_ID
+
+-class name org/omg/PortableServer/RequestProcessingPolicy
+
+-class name org/omg/PortableServer/RequestProcessingPolicyOperations
+
+-class name org/omg/PortableServer/RequestProcessingPolicyValue
+
+-class name org/omg/PortableServer/SERVANT_RETENTION_POLICY_ID
+
+-class name org/omg/PortableServer/Servant
+
+-class name org/omg/PortableServer/ServantActivator
+
+-class name org/omg/PortableServer/ServantActivatorHelper
+
+-class name org/omg/PortableServer/ServantActivatorOperations
+
+-class name org/omg/PortableServer/ServantActivatorPOA
+
+-class name org/omg/PortableServer/ServantLocator
+
+-class name org/omg/PortableServer/ServantLocatorHelper
+
+-class name org/omg/PortableServer/ServantLocatorOperations
+
+-class name org/omg/PortableServer/ServantLocatorPOA
+
+-class name org/omg/PortableServer/ServantLocatorPackage/CookieHolder
+
+-class name org/omg/PortableServer/ServantManager
+
+-class name org/omg/PortableServer/ServantManagerOperations
+
+-class name org/omg/PortableServer/ServantRetentionPolicy
+
+-class name org/omg/PortableServer/ServantRetentionPolicyOperations
+
+-class name org/omg/PortableServer/ServantRetentionPolicyValue
+
+-class name org/omg/PortableServer/THREAD_POLICY_ID
+
+-class name org/omg/PortableServer/ThreadPolicy
+
+-class name org/omg/PortableServer/ThreadPolicyOperations
+
+-class name org/omg/PortableServer/ThreadPolicyValue
+
+-class name org/omg/PortableServer/_ServantActivatorStub
+
+-class name org/omg/PortableServer/_ServantLocatorStub
+
+-class name org/omg/PortableServer/portable/Delegate
+
+-class name org/omg/SendingContext/RunTime
+
+-class name org/omg/SendingContext/RunTimeOperations
+
+-class name org/omg/stub/java/rmi/_Remote_Stub
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/java.datatransfer-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,66 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name java.datatransfer
+header exports java/awt/datatransfer requires name\u0020;java.base\u0020;flags\u0020;8000 uses sun/datatransfer/DesktopDatatransferService target linux-amd64 flags 8000
+
+class name java/awt/datatransfer/Clipboard
+header extends java/lang/Object flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/datatransfer/ClipboardOwner
+header extends java/lang/Object flags 601
+
+class name java/awt/datatransfer/DataFlavor
+header extends java/lang/Object implements java/io/Externalizable,java/lang/Cloneable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/datatransfer/FlavorEvent
+header extends java/util/EventObject flags 21
+
+class name java/awt/datatransfer/FlavorListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name java/awt/datatransfer/FlavorMap
+header extends java/lang/Object flags 601
+
+class name java/awt/datatransfer/FlavorTable
+header extends java/lang/Object implements java/awt/datatransfer/FlavorMap flags 601
+
+class name java/awt/datatransfer/MimeTypeParseException
+header extends java/lang/Exception flags 21
+
+class name java/awt/datatransfer/StringSelection
+header extends java/lang/Object implements java/awt/datatransfer/Transferable,java/awt/datatransfer/ClipboardOwner flags 21
+
+class name java/awt/datatransfer/Transferable
+header extends java/lang/Object flags 601
+
+class name java/awt/datatransfer/UnsupportedFlavorException
+header extends java/lang/Exception flags 21
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/java.desktop-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,6593 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name java.desktop
+header exports java/applet,java/awt,java/awt/color,java/awt/desktop,java/awt/dnd,java/awt/event,java/awt/font,java/awt/geom,java/awt/im,java/awt/im/spi,java/awt/image,java/awt/image/renderable,java/awt/print,java/beans,java/beans/beancontext,javax/accessibility,javax/imageio,javax/imageio/event,javax/imageio/metadata,javax/imageio/plugins/bmp,javax/imageio/plugins/jpeg,javax/imageio/plugins/tiff,javax/imageio/spi,javax/imageio/stream,javax/print,javax/print/attribute,javax/print/attribute/standard,javax/print/event,javax/sound/midi,javax/sound/midi/spi,javax/sound/sampled,javax/sound/sampled/spi,javax/swing,javax/swing/border,javax/swing/colorchooser,javax/swing/event,javax/swing/filechooser,javax/swing/plaf,javax/swing/plaf/basic,javax/swing/plaf/metal,javax/swing/plaf/multi,javax/swing/plaf/nimbus,javax/swing/plaf/synth,javax/swing/table,javax/swing/text,javax/swing/text/html,javax/swing/text/html/parser,javax/swing/text/rtf,javax/swing/tree,javax/swing/undo requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;java.prefs\u0020;flags\u0020;0,name\u0020;java.datatransfer\u0020;flags\u0020;20,name\u0020;java.xml\u0020;flags\u0020;20 uses java/awt/im/spi/InputMethodDescriptor,javax/accessibility/AccessibilityProvider,javax/imageio/spi/ImageInputStreamSpi,javax/imageio/spi/ImageOutputStreamSpi,javax/imageio/spi/ImageReaderSpi,javax/imageio/spi/ImageTranscoderSpi,javax/imageio/spi/ImageWriterSpi,javax/print/PrintServiceLookup,javax/print/StreamPrintServiceFactory,javax/sound/midi/spi/MidiDeviceProvider,javax/sound/midi/spi/MidiFileReader,javax/sound/midi/spi/MidiFileWriter,javax/sound/midi/spi/SoundbankReader,javax/sound/sampled/spi/AudioFileReader,javax/sound/sampled/spi/AudioFileWriter,javax/sound/sampled/spi/FormatConversionProvider,javax/sound/sampled/spi/MixerProvider,sun/swing/InteropProvider provides interface\u0020;sun/datatransfer/DesktopDatatransferService\u0020;impls\u0020;sun/awt/datatransfer/DesktopDatatransferServiceImpl,interface\u0020;java/net/ContentHandlerFactory\u0020;impls\u0020;sun/awt/www/content/MultimediaContentHandlers,interface\u0020;javax/print/PrintServiceLookup\u0020;impls\u0020;sun/print/PrintServiceLookupProvider,interface\u0020;javax/print/StreamPrintServiceFactory\u0020;impls\u0020;sun/print/PSStreamPrinterFactory,interface\u0020;javax/sound/midi/spi/MidiDeviceProvider\u0020;impls\u0020;com/sun/media/sound/MidiInDeviceProvider\u005C;u002C;com/sun/media/sound/MidiOutDeviceProvider\u005C;u002C;com/sun/media/sound/RealTimeSequencerProvider\u005C;u002C;com/sun/media/sound/SoftProvider,interface\u0020;javax/sound/midi/spi/MidiFileReader\u0020;impls\u0020;com/sun/media/sound/StandardMidiFileReader,interface\u0020;javax/sound/midi/spi/MidiFileWriter\u0020;impls\u0020;com/sun/media/sound/StandardMidiFileWriter,interface\u0020;javax/sound/midi/spi/SoundbankReader\u0020;impls\u0020;com/sun/media/sound/AudioFileSoundbankReader\u005C;u002C;com/sun/media/sound/DLSSoundbankReader\u005C;u002C;com/sun/media/sound/JARSoundbankReader\u005C;u002C;com/sun/media/sound/SF2SoundbankReader,interface\u0020;javax/sound/sampled/spi/AudioFileReader\u0020;impls\u0020;com/sun/media/sound/AiffFileReader\u005C;u002C;com/sun/media/sound/AuFileReader\u005C;u002C;com/sun/media/sound/SoftMidiAudioFileReader\u005C;u002C;com/sun/media/sound/WaveFileReader\u005C;u002C;com/sun/media/sound/WaveFloatFileReader\u005C;u002C;com/sun/media/sound/WaveExtensibleFileReader,interface\u0020;javax/sound/sampled/spi/AudioFileWriter\u0020;impls\u0020;com/sun/media/sound/AiffFileWriter\u005C;u002C;com/sun/media/sound/AuFileWriter\u005C;u002C;com/sun/media/sound/WaveFileWriter\u005C;u002C;com/sun/media/sound/WaveFloatFileWriter,interface\u0020;javax/sound/sampled/spi/FormatConversionProvider\u0020;impls\u0020;com/sun/media/sound/AlawCodec\u005C;u002C;com/sun/media/sound/AudioFloatFormatConverter\u005C;u002C;com/sun/media/sound/PCMtoPCMCodec\u005C;u002C;com/sun/media/sound/UlawCodec,interface\u0020;javax/sound/sampled/spi/MixerProvider\u0020;impls\u0020;com/sun/media/sound/DirectAudioDeviceProvider\u005C;u002C;com/sun/media/sound/PortMixerProvider target linux-amd64 flags 8000
+
+class name java/applet/Applet
+header extends java/awt/Panel nestMembers java/applet/Applet$AccessibleApplet flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="9")
+innerclass innerClass java/applet/Applet$AccessibleApplet outerClass java/applet/Applet innerClassName AccessibleApplet flags 4
+
+class name java/applet/Applet$AccessibleApplet
+header extends java/awt/Panel$AccessibleAWTPanel nestHost java/applet/Applet flags 21
+innerclass innerClass java/applet/Applet$AccessibleApplet outerClass java/applet/Applet innerClassName AccessibleApplet flags 4
+innerclass innerClass java/awt/Panel$AccessibleAWTPanel outerClass java/awt/Panel innerClassName AccessibleAWTPanel flags 4
+
+class name java/applet/AppletContext
+header extends java/lang/Object flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="9")
+
+class name java/applet/AppletStub
+header extends java/lang/Object flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="9")
+
+class name java/applet/AudioClip
+header extends java/lang/Object flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="9")
+
+class name java/awt/AWTError
+header extends java/lang/Error flags 21
+
+class name java/awt/AWTEventMulticaster
+header extends java/lang/Object implements java/awt/event/ComponentListener,java/awt/event/ContainerListener,java/awt/event/FocusListener,java/awt/event/KeyListener,java/awt/event/MouseListener,java/awt/event/MouseMotionListener,java/awt/event/WindowListener,java/awt/event/WindowFocusListener,java/awt/event/WindowStateListener,java/awt/event/ActionListener,java/awt/event/ItemListener,java/awt/event/AdjustmentListener,java/awt/event/TextListener,java/awt/event/InputMethodListener,java/awt/event/HierarchyListener,java/awt/event/HierarchyBoundsListener,java/awt/event/MouseWheelListener flags 21
+
+class name java/awt/AWTException
+header extends java/lang/Exception flags 21
+
+class name java/awt/AWTKeyStroke
+header extends java/lang/Object implements java/io/Serializable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/AWTPermission
+header extends java/security/BasicPermission flags 31
+
+class name java/awt/ActiveEvent
+header extends java/lang/Object flags 601
+
+class name java/awt/Adjustable
+header extends java/lang/Object flags 601
+
+class name java/awt/AlphaComposite
+header extends java/lang/Object implements java/awt/Composite flags 31
+
+class name java/awt/AttributeValue
+header extends java/lang/Object flags 420
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/BasicStroke
+header extends java/lang/Object implements java/awt/Stroke flags 21
+
+class name java/awt/BorderLayout
+header extends java/lang/Object implements java/awt/LayoutManager2,java/io/Serializable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/BufferCapabilities
+header extends java/lang/Object implements java/lang/Cloneable nestMembers java/awt/BufferCapabilities$FlipContents flags 21
+innerclass innerClass java/awt/BufferCapabilities$FlipContents outerClass java/awt/BufferCapabilities innerClassName FlipContents flags 19
+
+class name java/awt/BufferCapabilities$FlipContents
+header extends java/awt/AttributeValue nestHost java/awt/BufferCapabilities flags 31
+innerclass innerClass java/awt/BufferCapabilities$FlipContents outerClass java/awt/BufferCapabilities innerClassName FlipContents flags 19
+
+class name java/awt/Button
+header extends java/awt/Component implements javax/accessibility/Accessible nestMembers java/awt/Button$AccessibleAWTButton flags 21
+innerclass innerClass java/awt/Button$AccessibleAWTButton outerClass java/awt/Button innerClassName AccessibleAWTButton flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/Button$AccessibleAWTButton
+header extends java/awt/Component$AccessibleAWTComponent implements javax/accessibility/AccessibleAction,javax/accessibility/AccessibleValue nestHost java/awt/Button flags 21
+innerclass innerClass java/awt/Button$AccessibleAWTButton outerClass java/awt/Button innerClassName AccessibleAWTButton flags 4
+innerclass innerClass java/awt/Component$AccessibleAWTComponent outerClass java/awt/Component innerClassName AccessibleAWTComponent flags 404
+
+class name java/awt/Canvas
+header extends java/awt/Component implements javax/accessibility/Accessible nestMembers java/awt/Canvas$AccessibleAWTCanvas flags 21
+innerclass innerClass java/awt/Canvas$AccessibleAWTCanvas outerClass java/awt/Canvas innerClassName AccessibleAWTCanvas flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/Canvas$AccessibleAWTCanvas
+header extends java/awt/Component$AccessibleAWTComponent nestHost java/awt/Canvas flags 21
+innerclass innerClass java/awt/Canvas$AccessibleAWTCanvas outerClass java/awt/Canvas innerClassName AccessibleAWTCanvas flags 4
+innerclass innerClass java/awt/Component$AccessibleAWTComponent outerClass java/awt/Component innerClassName AccessibleAWTComponent flags 404
+
+class name java/awt/Checkbox
+header extends java/awt/Component implements java/awt/ItemSelectable,javax/accessibility/Accessible nestMembers java/awt/Checkbox$AccessibleAWTCheckbox flags 21
+innerclass innerClass java/awt/Checkbox$AccessibleAWTCheckbox outerClass java/awt/Checkbox innerClassName AccessibleAWTCheckbox flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/Checkbox$AccessibleAWTCheckbox
+header extends java/awt/Component$AccessibleAWTComponent implements java/awt/event/ItemListener,javax/accessibility/AccessibleAction,javax/accessibility/AccessibleValue nestHost java/awt/Checkbox flags 21
+innerclass innerClass java/awt/Checkbox$AccessibleAWTCheckbox outerClass java/awt/Checkbox innerClassName AccessibleAWTCheckbox flags 4
+innerclass innerClass java/awt/Component$AccessibleAWTComponent outerClass java/awt/Component innerClassName AccessibleAWTComponent flags 404
+
+class name java/awt/CheckboxGroup
+header extends java/lang/Object implements java/io/Serializable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/CheckboxMenuItem
+header extends java/awt/MenuItem implements java/awt/ItemSelectable,javax/accessibility/Accessible nestMembers java/awt/CheckboxMenuItem$AccessibleAWTCheckboxMenuItem flags 21
+innerclass innerClass java/awt/CheckboxMenuItem$AccessibleAWTCheckboxMenuItem outerClass java/awt/CheckboxMenuItem innerClassName AccessibleAWTCheckboxMenuItem flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/CheckboxMenuItem$AccessibleAWTCheckboxMenuItem
+header extends java/awt/MenuItem$AccessibleAWTMenuItem implements javax/accessibility/AccessibleAction,javax/accessibility/AccessibleValue nestHost java/awt/CheckboxMenuItem flags 21
+innerclass innerClass java/awt/CheckboxMenuItem$AccessibleAWTCheckboxMenuItem outerClass java/awt/CheckboxMenuItem innerClassName AccessibleAWTCheckboxMenuItem flags 4
+innerclass innerClass java/awt/MenuItem$AccessibleAWTMenuItem outerClass java/awt/MenuItem innerClassName AccessibleAWTMenuItem flags 4
+
+class name java/awt/Choice
+header extends java/awt/Component implements java/awt/ItemSelectable,javax/accessibility/Accessible nestMembers java/awt/Choice$AccessibleAWTChoice flags 21
+innerclass innerClass java/awt/Choice$AccessibleAWTChoice outerClass java/awt/Choice innerClassName AccessibleAWTChoice flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/Choice$AccessibleAWTChoice
+header extends java/awt/Component$AccessibleAWTComponent implements javax/accessibility/AccessibleAction nestHost java/awt/Choice flags 21
+innerclass innerClass java/awt/Choice$AccessibleAWTChoice outerClass java/awt/Choice innerClassName AccessibleAWTChoice flags 4
+innerclass innerClass java/awt/Component$AccessibleAWTComponent outerClass java/awt/Component innerClassName AccessibleAWTComponent flags 404
+
+class name java/awt/Color
+header extends java/lang/Object implements java/awt/Paint,java/io/Serializable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/Component
+header extends java/lang/Object implements java/awt/image/ImageObserver,java/awt/MenuContainer,java/io/Serializable nestMembers java/awt/Component$AccessibleAWTComponent,java/awt/Component$AccessibleAWTComponent$AccessibleAWTFocusHandler,java/awt/Component$AccessibleAWTComponent$AccessibleAWTComponentHandler,java/awt/Component$BltBufferStrategy,java/awt/Component$FlipBufferStrategy,java/awt/Component$BaselineResizeBehavior flags 421
+innerclass innerClass java/awt/Component$AccessibleAWTComponent outerClass java/awt/Component innerClassName AccessibleAWTComponent flags 404
+innerclass innerClass java/awt/Component$BltBufferStrategy outerClass java/awt/Component innerClassName BltBufferStrategy flags 4
+innerclass innerClass java/awt/Component$FlipBufferStrategy outerClass java/awt/Component innerClassName FlipBufferStrategy flags 4
+innerclass innerClass java/awt/Component$BaselineResizeBehavior outerClass java/awt/Component innerClassName BaselineResizeBehavior flags 4019
+innerclass innerClass java/awt/event/FocusEvent$Cause outerClass java/awt/event/FocusEvent innerClassName Cause flags 4019
+innerclass innerClass java/awt/Component$AccessibleAWTComponent$AccessibleAWTFocusHandler outerClass java/awt/Component$AccessibleAWTComponent innerClassName AccessibleAWTFocusHandler flags 4
+innerclass innerClass java/awt/Component$AccessibleAWTComponent$AccessibleAWTComponentHandler outerClass java/awt/Component$AccessibleAWTComponent innerClassName AccessibleAWTComponentHandler flags 4
+innerclass innerClass java/awt/BufferCapabilities$FlipContents outerClass java/awt/BufferCapabilities innerClassName FlipContents flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/Component$AccessibleAWTComponent
+header extends javax/accessibility/AccessibleContext implements java/io/Serializable,javax/accessibility/AccessibleComponent nestHost java/awt/Component flags 421
+innerclass innerClass java/awt/Component$AccessibleAWTComponent outerClass java/awt/Component innerClassName AccessibleAWTComponent flags 404
+innerclass innerClass java/awt/Component$AccessibleAWTComponent$AccessibleAWTFocusHandler outerClass java/awt/Component$AccessibleAWTComponent innerClassName AccessibleAWTFocusHandler flags 4
+innerclass innerClass java/awt/Component$AccessibleAWTComponent$AccessibleAWTComponentHandler outerClass java/awt/Component$AccessibleAWTComponent innerClassName AccessibleAWTComponentHandler flags 4
+
+class name java/awt/Component$AccessibleAWTComponent$AccessibleAWTComponentHandler
+header extends java/lang/Object implements java/awt/event/ComponentListener,java/io/Serializable nestHost java/awt/Component flags 21
+innerclass innerClass java/awt/Component$AccessibleAWTComponent outerClass java/awt/Component innerClassName AccessibleAWTComponent flags 404
+innerclass innerClass java/awt/Component$AccessibleAWTComponent$AccessibleAWTComponentHandler outerClass java/awt/Component$AccessibleAWTComponent innerClassName AccessibleAWTComponentHandler flags 4
+
+class name java/awt/Component$AccessibleAWTComponent$AccessibleAWTFocusHandler
+header extends java/lang/Object implements java/awt/event/FocusListener,java/io/Serializable nestHost java/awt/Component flags 21
+innerclass innerClass java/awt/Component$AccessibleAWTComponent outerClass java/awt/Component innerClassName AccessibleAWTComponent flags 404
+innerclass innerClass java/awt/Component$AccessibleAWTComponent$AccessibleAWTFocusHandler outerClass java/awt/Component$AccessibleAWTComponent innerClassName AccessibleAWTFocusHandler flags 4
+
+class name java/awt/Component$BaselineResizeBehavior
+header extends java/lang/Enum nestHost java/awt/Component flags 4031 signature Ljava/lang/Enum<Ljava/awt/Component$BaselineResizeBehavior;>;
+innerclass innerClass java/awt/Component$BaselineResizeBehavior outerClass java/awt/Component innerClassName BaselineResizeBehavior flags 4019
+
+class name java/awt/Component$BltBufferStrategy
+header extends java/awt/image/BufferStrategy nestHost java/awt/Component flags 21
+innerclass innerClass java/awt/Component$BltBufferStrategy outerClass java/awt/Component innerClassName BltBufferStrategy flags 4
+
+class name java/awt/Component$FlipBufferStrategy
+header extends java/awt/image/BufferStrategy nestHost java/awt/Component flags 21
+innerclass innerClass java/awt/Component$FlipBufferStrategy outerClass java/awt/Component innerClassName FlipBufferStrategy flags 4
+innerclass innerClass java/awt/BufferCapabilities$FlipContents outerClass java/awt/BufferCapabilities innerClassName FlipContents flags 19
+
+class name java/awt/ComponentOrientation
+header extends java/lang/Object implements java/io/Serializable flags 31
+
+class name java/awt/Composite
+header extends java/lang/Object flags 601
+
+class name java/awt/CompositeContext
+header extends java/lang/Object flags 601
+
+class name java/awt/Container
+header extends java/awt/Component nestMembers java/awt/Container$AccessibleAWTContainer,java/awt/Container$AccessibleAWTContainer$AccessibleContainerHandler flags 21
+innerclass innerClass java/awt/Container$AccessibleAWTContainer outerClass java/awt/Container innerClassName AccessibleAWTContainer flags 4
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/awt/Container$AccessibleAWTContainer$AccessibleContainerHandler outerClass java/awt/Container$AccessibleAWTContainer innerClassName AccessibleContainerHandler flags 4
+innerclass innerClass java/awt/event/FocusEvent$Cause outerClass java/awt/event/FocusEvent innerClassName Cause flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/Container$AccessibleAWTContainer
+header extends java/awt/Component$AccessibleAWTComponent nestHost java/awt/Container flags 21
+innerclass innerClass java/awt/Container$AccessibleAWTContainer outerClass java/awt/Container innerClassName AccessibleAWTContainer flags 4
+innerclass innerClass java/awt/Container$AccessibleAWTContainer$AccessibleContainerHandler outerClass java/awt/Container$AccessibleAWTContainer innerClassName AccessibleContainerHandler flags 4
+innerclass innerClass java/awt/Component$AccessibleAWTComponent outerClass java/awt/Component innerClassName AccessibleAWTComponent flags 404
+
+class name java/awt/Container$AccessibleAWTContainer$AccessibleContainerHandler
+header extends java/lang/Object implements java/awt/event/ContainerListener,java/io/Serializable nestHost java/awt/Container flags 21
+innerclass innerClass java/awt/Container$AccessibleAWTContainer outerClass java/awt/Container innerClassName AccessibleAWTContainer flags 4
+innerclass innerClass java/awt/Container$AccessibleAWTContainer$AccessibleContainerHandler outerClass java/awt/Container$AccessibleAWTContainer innerClassName AccessibleContainerHandler flags 4
+
+class name java/awt/ContainerOrderFocusTraversalPolicy
+header extends java/awt/FocusTraversalPolicy implements java/io/Serializable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/DefaultFocusTraversalPolicy
+header extends java/awt/ContainerOrderFocusTraversalPolicy flags 21
+
+class name java/awt/Desktop
+header extends java/lang/Object nestMembers java/awt/Desktop$Action flags 21
+innerclass innerClass java/awt/Desktop$Action outerClass java/awt/Desktop innerClassName Action flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/Desktop$Action
+header extends java/lang/Enum nestHost java/awt/Desktop flags 4031 signature Ljava/lang/Enum<Ljava/awt/Desktop$Action;>;
+innerclass innerClass java/awt/Desktop$Action outerClass java/awt/Desktop innerClassName Action flags 4019
+
+class name java/awt/Dialog
+header extends java/awt/Window nestMembers java/awt/Dialog$AccessibleAWTDialog,java/awt/Dialog$ModalExclusionType,java/awt/Dialog$ModalityType flags 21
+innerclass innerClass java/awt/Dialog$AccessibleAWTDialog outerClass java/awt/Dialog innerClassName AccessibleAWTDialog flags 4
+innerclass innerClass java/awt/Dialog$ModalExclusionType outerClass java/awt/Dialog innerClassName ModalExclusionType flags 4019
+innerclass innerClass java/awt/Dialog$ModalityType outerClass java/awt/Dialog innerClassName ModalityType flags 4019
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/Dialog$AccessibleAWTDialog
+header extends java/awt/Window$AccessibleAWTWindow nestHost java/awt/Dialog flags 21
+innerclass innerClass java/awt/Dialog$AccessibleAWTDialog outerClass java/awt/Dialog innerClassName AccessibleAWTDialog flags 4
+innerclass innerClass java/awt/Window$AccessibleAWTWindow outerClass java/awt/Window innerClassName AccessibleAWTWindow flags 4
+
+class name java/awt/Dialog$ModalExclusionType
+header extends java/lang/Enum nestHost java/awt/Dialog flags 4031 signature Ljava/lang/Enum<Ljava/awt/Dialog$ModalExclusionType;>;
+innerclass innerClass java/awt/Dialog$ModalExclusionType outerClass java/awt/Dialog innerClassName ModalExclusionType flags 4019
+
+class name java/awt/Dialog$ModalityType
+header extends java/lang/Enum nestHost java/awt/Dialog flags 4031 signature Ljava/lang/Enum<Ljava/awt/Dialog$ModalityType;>;
+innerclass innerClass java/awt/Dialog$ModalityType outerClass java/awt/Dialog innerClassName ModalityType flags 4019
+
+class name java/awt/Dimension
+header extends java/awt/geom/Dimension2D implements java/io/Serializable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/DisplayMode
+header extends java/lang/Object flags 31
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/Event
+header extends java/lang/Object implements java/io/Serializable flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="9")
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/FlowLayout
+header extends java/lang/Object implements java/awt/LayoutManager,java/io/Serializable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/FocusTraversalPolicy
+header extends java/lang/Object flags 421
+
+class name java/awt/FontFormatException
+header extends java/lang/Exception flags 21
+
+class name java/awt/FontMetrics
+header extends java/lang/Object implements java/io/Serializable flags 421
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/Frame
+header extends java/awt/Window implements java/awt/MenuContainer nestMembers java/awt/Frame$AccessibleAWTFrame flags 21
+innerclass innerClass java/awt/Frame$AccessibleAWTFrame outerClass java/awt/Frame innerClassName AccessibleAWTFrame flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/Frame$AccessibleAWTFrame
+header extends java/awt/Window$AccessibleAWTWindow nestHost java/awt/Frame flags 21
+innerclass innerClass java/awt/Frame$AccessibleAWTFrame outerClass java/awt/Frame innerClassName AccessibleAWTFrame flags 4
+innerclass innerClass java/awt/Window$AccessibleAWTWindow outerClass java/awt/Window innerClassName AccessibleAWTWindow flags 4
+
+class name java/awt/GradientPaint
+header extends java/lang/Object implements java/awt/Paint flags 21
+innerclass innerClass java/awt/geom/Point2D$Float outerClass java/awt/geom/Point2D innerClassName Float flags 9
+
+class name java/awt/Graphics
+header extends java/lang/Object flags 421
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/Graphics2D
+header extends java/awt/Graphics flags 421
+innerclass innerClass java/awt/RenderingHints$Key outerClass java/awt/RenderingHints innerClassName Key flags 409
+
+class name java/awt/GraphicsConfigTemplate
+header extends java/lang/Object implements java/io/Serializable flags 421
+
+class name java/awt/GraphicsDevice
+header extends java/lang/Object nestMembers java/awt/GraphicsDevice$WindowTranslucency flags 421
+innerclass innerClass java/awt/GraphicsDevice$WindowTranslucency outerClass java/awt/GraphicsDevice innerClassName WindowTranslucency flags 4019
+
+class name java/awt/GraphicsDevice$WindowTranslucency
+header extends java/lang/Enum nestHost java/awt/GraphicsDevice flags 4031 signature Ljava/lang/Enum<Ljava/awt/GraphicsDevice$WindowTranslucency;>;
+innerclass innerClass java/awt/GraphicsDevice$WindowTranslucency outerClass java/awt/GraphicsDevice innerClassName WindowTranslucency flags 4019
+
+class name java/awt/GridBagConstraints
+header extends java/lang/Object implements java/lang/Cloneable,java/io/Serializable flags 21
+innerclass innerClass java/awt/Component$BaselineResizeBehavior outerClass java/awt/Component innerClassName BaselineResizeBehavior flags 4019
+
+class name java/awt/GridBagLayoutInfo
+header extends java/lang/Object implements java/io/Serializable flags 21
+innerclass innerClass java/awt/Component$BaselineResizeBehavior outerClass java/awt/Component innerClassName BaselineResizeBehavior flags 4019
+
+class name java/awt/GridLayout
+header extends java/lang/Object implements java/awt/LayoutManager,java/io/Serializable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/HeadlessException
+header extends java/lang/UnsupportedOperationException flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/IllegalComponentStateException
+header extends java/lang/IllegalStateException flags 21
+
+class name java/awt/ImageCapabilities
+header extends java/lang/Object implements java/lang/Cloneable flags 21
+
+class name java/awt/Insets
+header extends java/lang/Object implements java/lang/Cloneable,java/io/Serializable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/ItemSelectable
+header extends java/lang/Object flags 601
+
+class name java/awt/JobAttributes
+header extends java/lang/Object implements java/lang/Cloneable nestMembers java/awt/JobAttributes$SidesType,java/awt/JobAttributes$MultipleDocumentHandlingType,java/awt/JobAttributes$DialogType,java/awt/JobAttributes$DestinationType,java/awt/JobAttributes$DefaultSelectionType flags 31
+innerclass innerClass java/awt/JobAttributes$SidesType outerClass java/awt/JobAttributes innerClassName SidesType flags 19
+innerclass innerClass java/awt/JobAttributes$MultipleDocumentHandlingType outerClass java/awt/JobAttributes innerClassName MultipleDocumentHandlingType flags 19
+innerclass innerClass java/awt/JobAttributes$DialogType outerClass java/awt/JobAttributes innerClassName DialogType flags 19
+innerclass innerClass java/awt/JobAttributes$DestinationType outerClass java/awt/JobAttributes innerClassName DestinationType flags 19
+innerclass innerClass java/awt/JobAttributes$DefaultSelectionType outerClass java/awt/JobAttributes innerClassName DefaultSelectionType flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/JobAttributes$DefaultSelectionType
+header extends java/awt/AttributeValue nestHost java/awt/JobAttributes flags 31
+innerclass innerClass java/awt/JobAttributes$DefaultSelectionType outerClass java/awt/JobAttributes innerClassName DefaultSelectionType flags 19
+
+class name java/awt/JobAttributes$DestinationType
+header extends java/awt/AttributeValue nestHost java/awt/JobAttributes flags 31
+innerclass innerClass java/awt/JobAttributes$DestinationType outerClass java/awt/JobAttributes innerClassName DestinationType flags 19
+
+class name java/awt/JobAttributes$DialogType
+header extends java/awt/AttributeValue nestHost java/awt/JobAttributes flags 31
+innerclass innerClass java/awt/JobAttributes$DialogType outerClass java/awt/JobAttributes innerClassName DialogType flags 19
+
+class name java/awt/JobAttributes$MultipleDocumentHandlingType
+header extends java/awt/AttributeValue nestHost java/awt/JobAttributes flags 31
+innerclass innerClass java/awt/JobAttributes$MultipleDocumentHandlingType outerClass java/awt/JobAttributes innerClassName MultipleDocumentHandlingType flags 19
+
+class name java/awt/JobAttributes$SidesType
+header extends java/awt/AttributeValue nestHost java/awt/JobAttributes flags 31
+innerclass innerClass java/awt/JobAttributes$SidesType outerClass java/awt/JobAttributes innerClassName SidesType flags 19
+
+class name java/awt/KeyEventDispatcher
+header extends java/lang/Object flags 601 runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/awt/KeyEventPostProcessor
+header extends java/lang/Object flags 601 runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/awt/Label
+header extends java/awt/Component implements javax/accessibility/Accessible nestMembers java/awt/Label$AccessibleAWTLabel flags 21
+innerclass innerClass java/awt/Label$AccessibleAWTLabel outerClass java/awt/Label innerClassName AccessibleAWTLabel flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/Label$AccessibleAWTLabel
+header extends java/awt/Component$AccessibleAWTComponent nestHost java/awt/Label flags 21
+innerclass innerClass java/awt/Label$AccessibleAWTLabel outerClass java/awt/Label innerClassName AccessibleAWTLabel flags 4
+innerclass innerClass java/awt/Component$AccessibleAWTComponent outerClass java/awt/Component innerClassName AccessibleAWTComponent flags 404
+
+class name java/awt/LayoutManager
+header extends java/lang/Object flags 601
+
+class name java/awt/LayoutManager2
+header extends java/lang/Object implements java/awt/LayoutManager flags 601
+
+class name java/awt/LinearGradientPaint
+header extends java/awt/MultipleGradientPaint flags 31
+innerclass innerClass java/awt/MultipleGradientPaint$CycleMethod outerClass java/awt/MultipleGradientPaint innerClassName CycleMethod flags 4019
+innerclass innerClass java/awt/MultipleGradientPaint$ColorSpaceType outerClass java/awt/MultipleGradientPaint innerClassName ColorSpaceType flags 4019
+innerclass innerClass java/awt/geom/Point2D$Float outerClass java/awt/geom/Point2D innerClassName Float flags 9
+innerclass innerClass java/awt/geom/Point2D$Double outerClass java/awt/geom/Point2D innerClassName Double flags 9
+
+class name java/awt/List
+header extends java/awt/Component implements java/awt/ItemSelectable,javax/accessibility/Accessible nestMembers java/awt/List$AccessibleAWTList,java/awt/List$AccessibleAWTList$AccessibleAWTListChild flags 21
+innerclass innerClass java/awt/List$AccessibleAWTList outerClass java/awt/List innerClassName AccessibleAWTList flags 4
+innerclass innerClass java/awt/List$AccessibleAWTList$AccessibleAWTListChild outerClass java/awt/List$AccessibleAWTList innerClassName AccessibleAWTListChild flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/List$AccessibleAWTList
+header extends java/awt/Component$AccessibleAWTComponent implements javax/accessibility/AccessibleSelection,java/awt/event/ItemListener,java/awt/event/ActionListener nestHost java/awt/List flags 21
+innerclass innerClass java/awt/List$AccessibleAWTList outerClass java/awt/List innerClassName AccessibleAWTList flags 4
+innerclass innerClass java/awt/List$AccessibleAWTList$AccessibleAWTListChild outerClass java/awt/List$AccessibleAWTList innerClassName AccessibleAWTListChild flags 4
+innerclass innerClass java/awt/Component$AccessibleAWTComponent outerClass java/awt/Component innerClassName AccessibleAWTComponent flags 404
+
+class name java/awt/List$AccessibleAWTList$AccessibleAWTListChild
+header extends java/awt/Component$AccessibleAWTComponent implements javax/accessibility/Accessible nestHost java/awt/List flags 21
+innerclass innerClass java/awt/List$AccessibleAWTList outerClass java/awt/List innerClassName AccessibleAWTList flags 4
+innerclass innerClass java/awt/List$AccessibleAWTList$AccessibleAWTListChild outerClass java/awt/List$AccessibleAWTList innerClassName AccessibleAWTListChild flags 4
+innerclass innerClass java/awt/Component$AccessibleAWTComponent outerClass java/awt/Component innerClassName AccessibleAWTComponent flags 404
+
+class name java/awt/MediaTracker
+header extends java/lang/Object implements java/io/Serializable flags 21
+
+class name java/awt/Menu
+header extends java/awt/MenuItem implements java/awt/MenuContainer,javax/accessibility/Accessible nestMembers java/awt/Menu$AccessibleAWTMenu flags 21
+innerclass innerClass java/awt/Menu$AccessibleAWTMenu outerClass java/awt/Menu innerClassName AccessibleAWTMenu flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/Menu$AccessibleAWTMenu
+header extends java/awt/MenuItem$AccessibleAWTMenuItem nestHost java/awt/Menu flags 21
+innerclass innerClass java/awt/Menu$AccessibleAWTMenu outerClass java/awt/Menu innerClassName AccessibleAWTMenu flags 4
+innerclass innerClass java/awt/MenuItem$AccessibleAWTMenuItem outerClass java/awt/MenuItem innerClassName AccessibleAWTMenuItem flags 4
+
+class name java/awt/MenuBar
+header extends java/awt/MenuComponent implements java/awt/MenuContainer,javax/accessibility/Accessible nestMembers java/awt/MenuBar$AccessibleAWTMenuBar flags 21
+innerclass innerClass java/awt/MenuBar$AccessibleAWTMenuBar outerClass java/awt/MenuBar innerClassName AccessibleAWTMenuBar flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/MenuBar$AccessibleAWTMenuBar
+header extends java/awt/MenuComponent$AccessibleAWTMenuComponent nestHost java/awt/MenuBar flags 21
+innerclass innerClass java/awt/MenuBar$AccessibleAWTMenuBar outerClass java/awt/MenuBar innerClassName AccessibleAWTMenuBar flags 4
+innerclass innerClass java/awt/MenuComponent$AccessibleAWTMenuComponent outerClass java/awt/MenuComponent innerClassName AccessibleAWTMenuComponent flags 404
+
+class name java/awt/MenuComponent
+header extends java/lang/Object implements java/io/Serializable nestMembers java/awt/MenuComponent$AccessibleAWTMenuComponent flags 421
+innerclass innerClass java/awt/MenuComponent$AccessibleAWTMenuComponent outerClass java/awt/MenuComponent innerClassName AccessibleAWTMenuComponent flags 404
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/MenuComponent$AccessibleAWTMenuComponent
+header extends javax/accessibility/AccessibleContext implements java/io/Serializable,javax/accessibility/AccessibleComponent,javax/accessibility/AccessibleSelection nestHost java/awt/MenuComponent flags 421
+innerclass innerClass java/awt/MenuComponent$AccessibleAWTMenuComponent outerClass java/awt/MenuComponent innerClassName AccessibleAWTMenuComponent flags 404
+
+class name java/awt/MenuContainer
+header extends java/lang/Object flags 601
+
+class name java/awt/MenuItem
+header extends java/awt/MenuComponent implements javax/accessibility/Accessible nestMembers java/awt/MenuItem$AccessibleAWTMenuItem flags 21
+innerclass innerClass java/awt/MenuItem$AccessibleAWTMenuItem outerClass java/awt/MenuItem innerClassName AccessibleAWTMenuItem flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/MenuItem$AccessibleAWTMenuItem
+header extends java/awt/MenuComponent$AccessibleAWTMenuComponent implements javax/accessibility/AccessibleAction,javax/accessibility/AccessibleValue nestHost java/awt/MenuItem flags 21
+innerclass innerClass java/awt/MenuItem$AccessibleAWTMenuItem outerClass java/awt/MenuItem innerClassName AccessibleAWTMenuItem flags 4
+innerclass innerClass java/awt/MenuComponent$AccessibleAWTMenuComponent outerClass java/awt/MenuComponent innerClassName AccessibleAWTMenuComponent flags 404
+
+class name java/awt/MenuShortcut
+header extends java/lang/Object implements java/io/Serializable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/MouseInfo
+header extends java/lang/Object flags 21
+
+class name java/awt/MultipleGradientPaint
+header extends java/lang/Object implements java/awt/Paint nestMembers java/awt/MultipleGradientPaint$ColorSpaceType,java/awt/MultipleGradientPaint$CycleMethod flags 421
+innerclass innerClass java/awt/MultipleGradientPaint$ColorSpaceType outerClass java/awt/MultipleGradientPaint innerClassName ColorSpaceType flags 4019
+innerclass innerClass java/awt/MultipleGradientPaint$CycleMethod outerClass java/awt/MultipleGradientPaint innerClassName CycleMethod flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/MultipleGradientPaint$ColorSpaceType
+header extends java/lang/Enum nestHost java/awt/MultipleGradientPaint flags 4031 signature Ljava/lang/Enum<Ljava/awt/MultipleGradientPaint$ColorSpaceType;>;
+innerclass innerClass java/awt/MultipleGradientPaint$ColorSpaceType outerClass java/awt/MultipleGradientPaint innerClassName ColorSpaceType flags 4019
+
+class name java/awt/MultipleGradientPaint$CycleMethod
+header extends java/lang/Enum nestHost java/awt/MultipleGradientPaint flags 4031 signature Ljava/lang/Enum<Ljava/awt/MultipleGradientPaint$CycleMethod;>;
+innerclass innerClass java/awt/MultipleGradientPaint$CycleMethod outerClass java/awt/MultipleGradientPaint innerClassName CycleMethod flags 4019
+
+class name java/awt/PageAttributes
+header extends java/lang/Object implements java/lang/Cloneable nestMembers java/awt/PageAttributes$PrintQualityType,java/awt/PageAttributes$OriginType,java/awt/PageAttributes$OrientationRequestedType,java/awt/PageAttributes$MediaType,java/awt/PageAttributes$ColorType flags 31
+innerclass innerClass java/awt/PageAttributes$PrintQualityType outerClass java/awt/PageAttributes innerClassName PrintQualityType flags 19
+innerclass innerClass java/awt/PageAttributes$OriginType outerClass java/awt/PageAttributes innerClassName OriginType flags 19
+innerclass innerClass java/awt/PageAttributes$OrientationRequestedType outerClass java/awt/PageAttributes innerClassName OrientationRequestedType flags 19
+innerclass innerClass java/awt/PageAttributes$MediaType outerClass java/awt/PageAttributes innerClassName MediaType flags 19
+innerclass innerClass java/awt/PageAttributes$ColorType outerClass java/awt/PageAttributes innerClassName ColorType flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/PageAttributes$ColorType
+header extends java/awt/AttributeValue nestHost java/awt/PageAttributes flags 31
+innerclass innerClass java/awt/PageAttributes$ColorType outerClass java/awt/PageAttributes innerClassName ColorType flags 19
+
+class name java/awt/PageAttributes$MediaType
+header extends java/awt/AttributeValue nestHost java/awt/PageAttributes flags 31
+innerclass innerClass java/awt/PageAttributes$MediaType outerClass java/awt/PageAttributes innerClassName MediaType flags 19
+
+class name java/awt/PageAttributes$OrientationRequestedType
+header extends java/awt/AttributeValue nestHost java/awt/PageAttributes flags 31
+innerclass innerClass java/awt/PageAttributes$OrientationRequestedType outerClass java/awt/PageAttributes innerClassName OrientationRequestedType flags 19
+
+class name java/awt/PageAttributes$OriginType
+header extends java/awt/AttributeValue nestHost java/awt/PageAttributes flags 31
+innerclass innerClass java/awt/PageAttributes$OriginType outerClass java/awt/PageAttributes innerClassName OriginType flags 19
+
+class name java/awt/PageAttributes$PrintQualityType
+header extends java/awt/AttributeValue nestHost java/awt/PageAttributes flags 31
+innerclass innerClass java/awt/PageAttributes$PrintQualityType outerClass java/awt/PageAttributes innerClassName PrintQualityType flags 19
+
+class name java/awt/Paint
+header extends java/lang/Object implements java/awt/Transparency flags 601
+
+class name java/awt/PaintContext
+header extends java/lang/Object flags 601
+
+class name java/awt/Panel
+header extends java/awt/Container implements javax/accessibility/Accessible nestMembers java/awt/Panel$AccessibleAWTPanel flags 21
+innerclass innerClass java/awt/Panel$AccessibleAWTPanel outerClass java/awt/Panel innerClassName AccessibleAWTPanel flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/Panel$AccessibleAWTPanel
+header extends java/awt/Container$AccessibleAWTContainer nestHost java/awt/Panel flags 21
+innerclass innerClass java/awt/Panel$AccessibleAWTPanel outerClass java/awt/Panel innerClassName AccessibleAWTPanel flags 4
+innerclass innerClass java/awt/Container$AccessibleAWTContainer outerClass java/awt/Container innerClassName AccessibleAWTContainer flags 4
+
+class name java/awt/Point
+header extends java/awt/geom/Point2D implements java/io/Serializable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/PointerInfo
+header extends java/lang/Object flags 21
+
+class name java/awt/PopupMenu
+header extends java/awt/Menu nestMembers java/awt/PopupMenu$AccessibleAWTPopupMenu flags 21
+innerclass innerClass java/awt/PopupMenu$AccessibleAWTPopupMenu outerClass java/awt/PopupMenu innerClassName AccessibleAWTPopupMenu flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/PopupMenu$AccessibleAWTPopupMenu
+header extends java/awt/Menu$AccessibleAWTMenu nestHost java/awt/PopupMenu flags 21
+innerclass innerClass java/awt/PopupMenu$AccessibleAWTPopupMenu outerClass java/awt/PopupMenu innerClassName AccessibleAWTPopupMenu flags 4
+innerclass innerClass java/awt/Menu$AccessibleAWTMenu outerClass java/awt/Menu innerClassName AccessibleAWTMenu flags 4
+
+class name java/awt/PrintGraphics
+header extends java/lang/Object flags 601
+
+class name java/awt/PrintJob
+header extends java/lang/Object flags 421
+
+class name java/awt/RadialGradientPaint
+header extends java/awt/MultipleGradientPaint flags 31
+innerclass innerClass java/awt/MultipleGradientPaint$CycleMethod outerClass java/awt/MultipleGradientPaint innerClassName CycleMethod flags 4019
+innerclass innerClass java/awt/MultipleGradientPaint$ColorSpaceType outerClass java/awt/MultipleGradientPaint innerClassName ColorSpaceType flags 4019
+innerclass innerClass java/awt/geom/Point2D$Float outerClass java/awt/geom/Point2D innerClassName Float flags 9
+innerclass innerClass java/awt/geom/Point2D$Double outerClass java/awt/geom/Point2D innerClassName Double flags 9
+
+class name java/awt/Rectangle
+header extends java/awt/geom/Rectangle2D implements java/awt/Shape,java/io/Serializable flags 21
+innerclass innerClass java/awt/geom/Rectangle2D$Double outerClass java/awt/geom/Rectangle2D innerClassName Double flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/RenderingHints
+header extends java/lang/Object implements java/util/Map,java/lang/Cloneable nestMembers java/awt/RenderingHints$Key flags 21 signature Ljava/lang/Object;Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;Ljava/lang/Cloneable;
+innerclass innerClass java/awt/RenderingHints$Key outerClass java/awt/RenderingHints innerClassName Key flags 409
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/RenderingHints$Key
+header extends java/lang/Object nestHost java/awt/RenderingHints flags 421
+innerclass innerClass java/awt/RenderingHints$Key outerClass java/awt/RenderingHints innerClassName Key flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/ScrollPane
+header extends java/awt/Container implements javax/accessibility/Accessible nestMembers java/awt/ScrollPane$AccessibleAWTScrollPane flags 21
+innerclass innerClass java/awt/ScrollPane$AccessibleAWTScrollPane outerClass java/awt/ScrollPane innerClassName AccessibleAWTScrollPane flags 4
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/ScrollPane$AccessibleAWTScrollPane
+header extends java/awt/Container$AccessibleAWTContainer nestHost java/awt/ScrollPane flags 21
+innerclass innerClass java/awt/ScrollPane$AccessibleAWTScrollPane outerClass java/awt/ScrollPane innerClassName AccessibleAWTScrollPane flags 4
+innerclass innerClass java/awt/Container$AccessibleAWTContainer outerClass java/awt/Container innerClassName AccessibleAWTContainer flags 4
+
+class name java/awt/Scrollbar
+header extends java/awt/Component implements java/awt/Adjustable,javax/accessibility/Accessible nestMembers java/awt/Scrollbar$AccessibleAWTScrollBar flags 21
+innerclass innerClass java/awt/Scrollbar$AccessibleAWTScrollBar outerClass java/awt/Scrollbar innerClassName AccessibleAWTScrollBar flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/Scrollbar$AccessibleAWTScrollBar
+header extends java/awt/Component$AccessibleAWTComponent implements javax/accessibility/AccessibleValue nestHost java/awt/Scrollbar flags 21
+innerclass innerClass java/awt/Scrollbar$AccessibleAWTScrollBar outerClass java/awt/Scrollbar innerClassName AccessibleAWTScrollBar flags 4
+innerclass innerClass java/awt/Component$AccessibleAWTComponent outerClass java/awt/Component innerClassName AccessibleAWTComponent flags 404
+
+class name java/awt/SecondaryLoop
+header extends java/lang/Object flags 601
+
+class name java/awt/Shape
+header extends java/lang/Object flags 601
+
+class name java/awt/Stroke
+header extends java/lang/Object flags 601
+
+class name java/awt/SystemColor
+header extends java/awt/Color implements java/io/Serializable flags 31
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/Taskbar
+header extends java/lang/Object nestMembers java/awt/Taskbar$State,java/awt/Taskbar$Feature flags 21
+innerclass innerClass java/awt/Taskbar$State outerClass java/awt/Taskbar innerClassName State flags 4019
+innerclass innerClass java/awt/Taskbar$Feature outerClass java/awt/Taskbar innerClassName Feature flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/Taskbar$Feature
+header extends java/lang/Enum nestHost java/awt/Taskbar flags 4031 signature Ljava/lang/Enum<Ljava/awt/Taskbar$Feature;>;
+innerclass innerClass java/awt/Taskbar$Feature outerClass java/awt/Taskbar innerClassName Feature flags 4019
+
+class name java/awt/Taskbar$State
+header extends java/lang/Enum nestHost java/awt/Taskbar flags 4031 signature Ljava/lang/Enum<Ljava/awt/Taskbar$State;>;
+innerclass innerClass java/awt/Taskbar$State outerClass java/awt/Taskbar innerClassName State flags 4019
+
+class name java/awt/TextArea
+header extends java/awt/TextComponent nestMembers java/awt/TextArea$AccessibleAWTTextArea flags 21
+innerclass innerClass java/awt/TextArea$AccessibleAWTTextArea outerClass java/awt/TextArea innerClassName AccessibleAWTTextArea flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/TextArea$AccessibleAWTTextArea
+header extends java/awt/TextComponent$AccessibleAWTTextComponent nestHost java/awt/TextArea flags 21
+innerclass innerClass java/awt/TextArea$AccessibleAWTTextArea outerClass java/awt/TextArea innerClassName AccessibleAWTTextArea flags 4
+innerclass innerClass java/awt/TextComponent$AccessibleAWTTextComponent outerClass java/awt/TextComponent innerClassName AccessibleAWTTextComponent flags 4
+
+class name java/awt/TextComponent
+header extends java/awt/Component implements javax/accessibility/Accessible nestMembers java/awt/TextComponent$AccessibleAWTTextComponent flags 21
+innerclass innerClass java/awt/TextComponent$AccessibleAWTTextComponent outerClass java/awt/TextComponent innerClassName AccessibleAWTTextComponent flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/TextComponent$AccessibleAWTTextComponent
+header extends java/awt/Component$AccessibleAWTComponent implements javax/accessibility/AccessibleText,java/awt/event/TextListener nestHost java/awt/TextComponent flags 21
+innerclass innerClass java/awt/TextComponent$AccessibleAWTTextComponent outerClass java/awt/TextComponent innerClassName AccessibleAWTTextComponent flags 4
+innerclass innerClass java/awt/Component$AccessibleAWTComponent outerClass java/awt/Component innerClassName AccessibleAWTComponent flags 404
+
+class name java/awt/TextField
+header extends java/awt/TextComponent nestMembers java/awt/TextField$AccessibleAWTTextField flags 21
+innerclass innerClass java/awt/TextField$AccessibleAWTTextField outerClass java/awt/TextField innerClassName AccessibleAWTTextField flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/TextField$AccessibleAWTTextField
+header extends java/awt/TextComponent$AccessibleAWTTextComponent nestHost java/awt/TextField flags 21
+innerclass innerClass java/awt/TextField$AccessibleAWTTextField outerClass java/awt/TextField innerClassName AccessibleAWTTextField flags 4
+innerclass innerClass java/awt/TextComponent$AccessibleAWTTextComponent outerClass java/awt/TextComponent innerClassName AccessibleAWTTextComponent flags 4
+
+class name java/awt/TexturePaint
+header extends java/lang/Object implements java/awt/Paint flags 21
+innerclass innerClass java/awt/geom/Rectangle2D$Double outerClass java/awt/geom/Rectangle2D innerClassName Double flags 9
+
+class name java/awt/Transparency
+header extends java/lang/Object flags 601
+
+class name java/awt/TrayIcon
+header extends java/lang/Object nestMembers java/awt/TrayIcon$MessageType flags 21
+innerclass innerClass java/awt/TrayIcon$MessageType outerClass java/awt/TrayIcon innerClassName MessageType flags 4019
+
+class name java/awt/TrayIcon$MessageType
+header extends java/lang/Enum nestHost java/awt/TrayIcon flags 4031 signature Ljava/lang/Enum<Ljava/awt/TrayIcon$MessageType;>;
+innerclass innerClass java/awt/TrayIcon$MessageType outerClass java/awt/TrayIcon innerClassName MessageType flags 4019
+
+class name java/awt/Window
+header extends java/awt/Container implements javax/accessibility/Accessible nestMembers java/awt/Window$AccessibleAWTWindow,java/awt/Window$Type flags 21
+innerclass innerClass java/awt/Window$AccessibleAWTWindow outerClass java/awt/Window innerClassName AccessibleAWTWindow flags 4
+innerclass innerClass java/awt/Window$Type outerClass java/awt/Window innerClassName Type flags 4019
+innerclass innerClass java/awt/Dialog$ModalExclusionType outerClass java/awt/Dialog innerClassName ModalExclusionType flags 4019
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/awt/geom/Path2D$Float outerClass java/awt/geom/Path2D innerClassName Float flags 9
+innerclass innerClass java/awt/geom/Point2D$Double outerClass java/awt/geom/Point2D innerClassName Double flags 9
+innerclass innerClass java/awt/event/FocusEvent$Cause outerClass java/awt/event/FocusEvent innerClassName Cause flags 4019
+innerclass innerClass java/awt/GraphicsDevice$WindowTranslucency outerClass java/awt/GraphicsDevice innerClassName WindowTranslucency flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/Window$AccessibleAWTWindow
+header extends java/awt/Container$AccessibleAWTContainer nestHost java/awt/Window flags 21
+innerclass innerClass java/awt/Window$AccessibleAWTWindow outerClass java/awt/Window innerClassName AccessibleAWTWindow flags 4
+innerclass innerClass java/awt/Container$AccessibleAWTContainer outerClass java/awt/Container innerClassName AccessibleAWTContainer flags 4
+
+class name java/awt/Window$Type
+header extends java/lang/Enum nestHost java/awt/Window flags 4031 signature Ljava/lang/Enum<Ljava/awt/Window$Type;>;
+innerclass innerClass java/awt/Window$Type outerClass java/awt/Window innerClassName Type flags 4019
+
+class name java/awt/color/CMMException
+header extends java/lang/RuntimeException flags 21
+
+class name java/awt/color/ColorSpace
+header extends java/lang/Object implements java/io/Serializable flags 421
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/color/ICC_ColorSpace
+header extends java/awt/color/ColorSpace flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/color/ICC_ProfileGray
+header extends java/awt/color/ICC_Profile flags 21
+
+class name java/awt/color/ICC_ProfileRGB
+header extends java/awt/color/ICC_Profile flags 21
+
+class name java/awt/color/ProfileDataException
+header extends java/lang/RuntimeException flags 21
+
+class name java/awt/desktop/AboutEvent
+header extends java/awt/desktop/AppEvent flags 31
+
+class name java/awt/desktop/AboutHandler
+header extends java/lang/Object flags 601
+
+class name java/awt/desktop/AppEvent
+header extends java/util/EventObject flags 21
+
+class name java/awt/desktop/AppForegroundEvent
+header extends java/awt/desktop/AppEvent flags 31
+
+class name java/awt/desktop/AppForegroundListener
+header extends java/lang/Object implements java/awt/desktop/SystemEventListener flags 601
+
+class name java/awt/desktop/AppHiddenEvent
+header extends java/awt/desktop/AppEvent flags 31
+
+class name java/awt/desktop/AppHiddenListener
+header extends java/lang/Object implements java/awt/desktop/SystemEventListener flags 601
+
+class name java/awt/desktop/AppReopenedEvent
+header extends java/awt/desktop/AppEvent flags 31
+
+class name java/awt/desktop/AppReopenedListener
+header extends java/lang/Object implements java/awt/desktop/SystemEventListener flags 601
+
+class name java/awt/desktop/FilesEvent
+header extends java/awt/desktop/AppEvent flags 21
+
+class name java/awt/desktop/OpenFilesEvent
+header extends java/awt/desktop/FilesEvent flags 31
+
+class name java/awt/desktop/OpenFilesHandler
+header extends java/lang/Object flags 601
+
+class name java/awt/desktop/OpenURIEvent
+header extends java/awt/desktop/AppEvent flags 31
+
+class name java/awt/desktop/OpenURIHandler
+header extends java/lang/Object flags 601
+
+class name java/awt/desktop/PreferencesEvent
+header extends java/awt/desktop/AppEvent flags 31
+
+class name java/awt/desktop/PreferencesHandler
+header extends java/lang/Object flags 601
+
+class name java/awt/desktop/PrintFilesEvent
+header extends java/awt/desktop/FilesEvent flags 31
+
+class name java/awt/desktop/PrintFilesHandler
+header extends java/lang/Object flags 601
+
+class name java/awt/desktop/QuitEvent
+header extends java/awt/desktop/AppEvent flags 31
+
+class name java/awt/desktop/QuitHandler
+header extends java/lang/Object flags 601
+
+class name java/awt/desktop/QuitResponse
+header extends java/lang/Object flags 601
+
+class name java/awt/desktop/QuitStrategy
+header extends java/lang/Enum flags 4031 signature Ljava/lang/Enum<Ljava/awt/desktop/QuitStrategy;>;
+
+class name java/awt/desktop/ScreenSleepEvent
+header extends java/awt/desktop/AppEvent flags 31
+
+class name java/awt/desktop/ScreenSleepListener
+header extends java/lang/Object implements java/awt/desktop/SystemEventListener flags 601
+
+class name java/awt/desktop/SystemEventListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name java/awt/desktop/SystemSleepEvent
+header extends java/awt/desktop/AppEvent flags 31
+
+class name java/awt/desktop/SystemSleepListener
+header extends java/lang/Object implements java/awt/desktop/SystemEventListener flags 601
+
+class name java/awt/desktop/UserSessionEvent
+header extends java/awt/desktop/AppEvent nestMembers java/awt/desktop/UserSessionEvent$Reason flags 31
+innerclass innerClass java/awt/desktop/UserSessionEvent$Reason outerClass java/awt/desktop/UserSessionEvent innerClassName Reason flags 4019
+
+class name java/awt/desktop/UserSessionEvent$Reason
+header extends java/lang/Enum nestHost java/awt/desktop/UserSessionEvent flags 4031 signature Ljava/lang/Enum<Ljava/awt/desktop/UserSessionEvent$Reason;>;
+innerclass innerClass java/awt/desktop/UserSessionEvent$Reason outerClass java/awt/desktop/UserSessionEvent innerClassName Reason flags 4019
+
+class name java/awt/desktop/UserSessionListener
+header extends java/lang/Object implements java/awt/desktop/SystemEventListener flags 601
+
+class name java/awt/dnd/Autoscroll
+header extends java/lang/Object flags 601
+
+class name java/awt/dnd/DnDConstants
+header extends java/lang/Object flags 31
+
+class name java/awt/dnd/DragGestureEvent
+header extends java/util/EventObject flags 21
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+
+class name java/awt/dnd/DragGestureListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name java/awt/dnd/DragGestureRecognizer
+header extends java/lang/Object implements java/io/Serializable flags 421
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+
+class name java/awt/dnd/DragSource
+header extends java/lang/Object implements java/io/Serializable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/dnd/DragSourceAdapter
+header extends java/lang/Object implements java/awt/dnd/DragSourceListener,java/awt/dnd/DragSourceMotionListener flags 421
+
+class name java/awt/dnd/DragSourceDragEvent
+header extends java/awt/dnd/DragSourceEvent flags 21
+
+class name java/awt/dnd/DragSourceDropEvent
+header extends java/awt/dnd/DragSourceEvent flags 21
+
+class name java/awt/dnd/DragSourceEvent
+header extends java/util/EventObject flags 21
+
+class name java/awt/dnd/DragSourceListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name java/awt/dnd/DragSourceMotionListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name java/awt/dnd/DropTarget
+header extends java/lang/Object implements java/awt/dnd/DropTargetListener,java/io/Serializable nestMembers java/awt/dnd/DropTarget$DropTargetAutoScroller flags 21
+innerclass innerClass java/awt/dnd/DropTarget$DropTargetAutoScroller outerClass java/awt/dnd/DropTarget innerClassName DropTargetAutoScroller flags c
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+
+class name java/awt/dnd/DropTarget$DropTargetAutoScroller
+header extends java/lang/Object implements java/awt/event/ActionListener nestHost java/awt/dnd/DropTarget flags 21
+innerclass innerClass java/awt/dnd/DropTarget$DropTargetAutoScroller outerClass java/awt/dnd/DropTarget innerClassName DropTargetAutoScroller flags c
+
+class name java/awt/dnd/DropTargetAdapter
+header extends java/lang/Object implements java/awt/dnd/DropTargetListener flags 421
+
+class name java/awt/dnd/DropTargetContext
+header extends java/lang/Object implements java/io/Serializable nestMembers java/awt/dnd/DropTargetContext$TransferableProxy flags 21
+innerclass innerClass java/awt/dnd/DropTargetContext$TransferableProxy outerClass java/awt/dnd/DropTargetContext innerClassName TransferableProxy flags 4
+
+class name java/awt/dnd/DropTargetContext$TransferableProxy
+header extends java/lang/Object implements java/awt/datatransfer/Transferable nestHost java/awt/dnd/DropTargetContext flags 21
+innerclass innerClass java/awt/dnd/DropTargetContext$TransferableProxy outerClass java/awt/dnd/DropTargetContext innerClassName TransferableProxy flags 4
+
+class name java/awt/dnd/DropTargetDragEvent
+header extends java/awt/dnd/DropTargetEvent flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/dnd/DropTargetDropEvent
+header extends java/awt/dnd/DropTargetEvent flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/dnd/DropTargetEvent
+header extends java/util/EventObject flags 21
+
+class name java/awt/dnd/DropTargetListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name java/awt/dnd/InvalidDnDOperationException
+header extends java/lang/IllegalStateException flags 21
+
+class name java/awt/dnd/MouseDragGestureRecognizer
+header extends java/awt/dnd/DragGestureRecognizer implements java/awt/event/MouseListener,java/awt/event/MouseMotionListener flags 421
+
+class name java/awt/event/AWTEventListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name java/awt/event/AWTEventListenerProxy
+header extends java/util/EventListenerProxy implements java/awt/event/AWTEventListener flags 21 signature Ljava/util/EventListenerProxy<Ljava/awt/event/AWTEventListener;>;Ljava/awt/event/AWTEventListener;
+
+class name java/awt/event/ActionEvent
+header extends java/awt/AWTEvent flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/event/ActionListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name java/awt/event/AdjustmentEvent
+header extends java/awt/AWTEvent flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/event/AdjustmentListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name java/awt/event/ComponentAdapter
+header extends java/lang/Object implements java/awt/event/ComponentListener flags 421
+
+class name java/awt/event/ComponentEvent
+header extends java/awt/AWTEvent flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/event/ComponentListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name java/awt/event/ContainerAdapter
+header extends java/lang/Object implements java/awt/event/ContainerListener flags 421
+
+class name java/awt/event/ContainerEvent
+header extends java/awt/event/ComponentEvent flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/event/ContainerListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name java/awt/event/FocusAdapter
+header extends java/lang/Object implements java/awt/event/FocusListener flags 421
+
+class name java/awt/event/FocusEvent
+header extends java/awt/event/ComponentEvent nestMembers java/awt/event/FocusEvent$Cause flags 21
+innerclass innerClass java/awt/event/FocusEvent$Cause outerClass java/awt/event/FocusEvent innerClassName Cause flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/event/FocusEvent$Cause
+header extends java/lang/Enum nestHost java/awt/event/FocusEvent flags 4031 signature Ljava/lang/Enum<Ljava/awt/event/FocusEvent$Cause;>;
+innerclass innerClass java/awt/event/FocusEvent$Cause outerClass java/awt/event/FocusEvent innerClassName Cause flags 4019
+
+class name java/awt/event/FocusListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name java/awt/event/HierarchyBoundsAdapter
+header extends java/lang/Object implements java/awt/event/HierarchyBoundsListener flags 421
+
+class name java/awt/event/HierarchyBoundsListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name java/awt/event/HierarchyEvent
+header extends java/awt/AWTEvent flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/event/HierarchyListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name java/awt/event/InputMethodEvent
+header extends java/awt/AWTEvent flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/event/InputMethodListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name java/awt/event/ItemEvent
+header extends java/awt/AWTEvent flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/event/ItemListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name java/awt/event/KeyAdapter
+header extends java/lang/Object implements java/awt/event/KeyListener flags 421
+
+class name java/awt/event/KeyListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name java/awt/event/MouseAdapter
+header extends java/lang/Object implements java/awt/event/MouseListener,java/awt/event/MouseWheelListener,java/awt/event/MouseMotionListener flags 421
+
+class name java/awt/event/MouseListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name java/awt/event/MouseMotionAdapter
+header extends java/lang/Object implements java/awt/event/MouseMotionListener flags 421
+
+class name java/awt/event/MouseMotionListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name java/awt/event/MouseWheelEvent
+header extends java/awt/event/MouseEvent flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/event/MouseWheelListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name java/awt/event/PaintEvent
+header extends java/awt/event/ComponentEvent flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/event/TextEvent
+header extends java/awt/AWTEvent flags 21
+
+class name java/awt/event/TextListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name java/awt/event/WindowAdapter
+header extends java/lang/Object implements java/awt/event/WindowListener,java/awt/event/WindowStateListener,java/awt/event/WindowFocusListener flags 421
+
+class name java/awt/event/WindowEvent
+header extends java/awt/event/ComponentEvent flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/event/WindowFocusListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name java/awt/event/WindowListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name java/awt/event/WindowStateListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name java/awt/font/FontRenderContext
+header extends java/lang/Object flags 21
+innerclass innerClass java/awt/RenderingHints$Key outerClass java/awt/RenderingHints innerClassName Key flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/font/GlyphJustificationInfo
+header extends java/lang/Object flags 31
+
+class name java/awt/font/GlyphMetrics
+header extends java/lang/Object flags 31
+innerclass innerClass java/awt/geom/Rectangle2D$Float outerClass java/awt/geom/Rectangle2D innerClassName Float flags 9
+
+class name java/awt/font/GlyphVector
+header extends java/lang/Object implements java/lang/Cloneable flags 421
+
+class name java/awt/font/GraphicAttribute
+header extends java/lang/Object flags 421
+innerclass innerClass java/awt/geom/Rectangle2D$Float outerClass java/awt/geom/Rectangle2D innerClassName Float flags 9
+
+class name java/awt/font/ImageGraphicAttribute
+header extends java/awt/font/GraphicAttribute flags 31
+innerclass innerClass java/awt/geom/Rectangle2D$Float outerClass java/awt/geom/Rectangle2D innerClassName Float flags 9
+
+class name java/awt/font/LayoutPath
+header extends java/lang/Object flags 421
+
+class name java/awt/font/LineBreakMeasurer
+header extends java/lang/Object flags 31
+
+class name java/awt/font/LineMetrics
+header extends java/lang/Object flags 421
+
+class name java/awt/font/MultipleMaster
+header extends java/lang/Object flags 601
+
+class name java/awt/font/NumericShaper
+header extends java/lang/Object implements java/io/Serializable nestMembers java/awt/font/NumericShaper$Range flags 31
+innerclass innerClass java/awt/font/NumericShaper$Range outerClass java/awt/font/NumericShaper innerClassName Range flags 4009
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/font/NumericShaper$Range
+header extends java/lang/Enum nestHost java/awt/font/NumericShaper flags 4021 signature Ljava/lang/Enum<Ljava/awt/font/NumericShaper$Range;>;
+innerclass innerClass java/awt/font/NumericShaper$Range outerClass java/awt/font/NumericShaper innerClassName Range flags 4009
+
+class name java/awt/font/OpenType
+header extends java/lang/Object flags 601
+
+class name java/awt/font/ShapeGraphicAttribute
+header extends java/awt/font/GraphicAttribute flags 31
+innerclass innerClass java/awt/geom/Rectangle2D$Float outerClass java/awt/geom/Rectangle2D innerClassName Float flags 9
+
+class name java/awt/font/TextAttribute
+header extends java/text/AttributedCharacterIterator$Attribute flags 31
+innerclass innerClass java/text/AttributedCharacterIterator$Attribute outerClass java/text/AttributedCharacterIterator innerClassName Attribute flags 9
+
+class name java/awt/font/TextHitInfo
+header extends java/lang/Object flags 31
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/font/TextLayout
+header extends java/lang/Object implements java/lang/Cloneable nestMembers java/awt/font/TextLayout$CaretPolicy flags 31
+innerclass innerClass java/awt/font/TextLayout$CaretPolicy outerClass java/awt/font/TextLayout innerClassName CaretPolicy flags 9
+innerclass innerClass java/text/AttributedCharacterIterator$Attribute outerClass java/text/AttributedCharacterIterator innerClassName Attribute flags 9
+innerclass innerClass java/awt/geom/Point2D$Float outerClass java/awt/geom/Point2D innerClassName Float flags 9
+innerclass innerClass java/awt/geom/Rectangle2D$Float outerClass java/awt/geom/Rectangle2D innerClassName Float flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/font/TextLayout$CaretPolicy
+header extends java/lang/Object nestHost java/awt/font/TextLayout flags 21
+innerclass innerClass java/awt/font/TextLayout$CaretPolicy outerClass java/awt/font/TextLayout innerClassName CaretPolicy flags 9
+
+class name java/awt/font/TextMeasurer
+header extends java/lang/Object implements java/lang/Cloneable flags 31
+innerclass innerClass java/text/AttributedCharacterIterator$Attribute outerClass java/text/AttributedCharacterIterator innerClassName Attribute flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/font/TransformAttribute
+header extends java/lang/Object implements java/io/Serializable flags 31
+
+class name java/awt/geom/AffineTransform
+header extends java/lang/Object implements java/lang/Cloneable,java/io/Serializable flags 21
+innerclass innerClass java/awt/geom/Point2D$Double outerClass java/awt/geom/Point2D innerClassName Double flags 9
+innerclass innerClass java/awt/geom/Point2D$Float outerClass java/awt/geom/Point2D innerClassName Float flags 9
+innerclass innerClass java/awt/geom/Path2D$Double outerClass java/awt/geom/Path2D innerClassName Double flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/geom/Arc2D
+header extends java/awt/geom/RectangularShape nestMembers java/awt/geom/Arc2D$Double,java/awt/geom/Arc2D$Float flags 421
+innerclass innerClass java/awt/geom/Arc2D$Double outerClass java/awt/geom/Arc2D innerClassName Double flags 9
+innerclass innerClass java/awt/geom/Arc2D$Float outerClass java/awt/geom/Arc2D innerClassName Float flags 9
+innerclass innerClass java/awt/geom/Point2D$Double outerClass java/awt/geom/Point2D innerClassName Double flags 9
+innerclass innerClass java/awt/geom/Rectangle2D$Double outerClass java/awt/geom/Rectangle2D innerClassName Double flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/geom/Arc2D$Double
+header extends java/awt/geom/Arc2D implements java/io/Serializable nestHost java/awt/geom/Arc2D flags 21
+innerclass innerClass java/awt/geom/Arc2D$Double outerClass java/awt/geom/Arc2D innerClassName Double flags 9
+innerclass innerClass java/awt/geom/Rectangle2D$Double outerClass java/awt/geom/Rectangle2D innerClassName Double flags 9
+
+class name java/awt/geom/Arc2D$Float
+header extends java/awt/geom/Arc2D implements java/io/Serializable nestHost java/awt/geom/Arc2D flags 21
+innerclass innerClass java/awt/geom/Arc2D$Float outerClass java/awt/geom/Arc2D innerClassName Float flags 9
+innerclass innerClass java/awt/geom/Rectangle2D$Float outerClass java/awt/geom/Rectangle2D innerClassName Float flags 9
+
+class name java/awt/geom/Area
+header extends java/lang/Object implements java/awt/Shape,java/lang/Cloneable flags 21
+innerclass innerClass java/awt/geom/Rectangle2D$Double outerClass java/awt/geom/Rectangle2D innerClassName Double flags 9
+
+class name java/awt/geom/CubicCurve2D
+header extends java/lang/Object implements java/awt/Shape,java/lang/Cloneable nestMembers java/awt/geom/CubicCurve2D$Double,java/awt/geom/CubicCurve2D$Float flags 421
+innerclass innerClass java/awt/geom/CubicCurve2D$Double outerClass java/awt/geom/CubicCurve2D innerClassName Double flags 9
+innerclass innerClass java/awt/geom/CubicCurve2D$Float outerClass java/awt/geom/CubicCurve2D innerClassName Float flags 9
+
+class name java/awt/geom/CubicCurve2D$Double
+header extends java/awt/geom/CubicCurve2D implements java/io/Serializable nestHost java/awt/geom/CubicCurve2D flags 21
+innerclass innerClass java/awt/geom/CubicCurve2D$Double outerClass java/awt/geom/CubicCurve2D innerClassName Double flags 9
+innerclass innerClass java/awt/geom/Point2D$Double outerClass java/awt/geom/Point2D innerClassName Double flags 9
+innerclass innerClass java/awt/geom/Rectangle2D$Double outerClass java/awt/geom/Rectangle2D innerClassName Double flags 9
+
+class name java/awt/geom/CubicCurve2D$Float
+header extends java/awt/geom/CubicCurve2D implements java/io/Serializable nestHost java/awt/geom/CubicCurve2D flags 21
+innerclass innerClass java/awt/geom/CubicCurve2D$Float outerClass java/awt/geom/CubicCurve2D innerClassName Float flags 9
+innerclass innerClass java/awt/geom/Point2D$Float outerClass java/awt/geom/Point2D innerClassName Float flags 9
+innerclass innerClass java/awt/geom/Rectangle2D$Float outerClass java/awt/geom/Rectangle2D innerClassName Float flags 9
+
+class name java/awt/geom/Dimension2D
+header extends java/lang/Object implements java/lang/Cloneable flags 421
+
+class name java/awt/geom/Ellipse2D
+header extends java/awt/geom/RectangularShape nestMembers java/awt/geom/Ellipse2D$Double,java/awt/geom/Ellipse2D$Float flags 421
+innerclass innerClass java/awt/geom/Ellipse2D$Double outerClass java/awt/geom/Ellipse2D innerClassName Double flags 9
+innerclass innerClass java/awt/geom/Ellipse2D$Float outerClass java/awt/geom/Ellipse2D innerClassName Float flags 9
+
+class name java/awt/geom/Ellipse2D$Double
+header extends java/awt/geom/Ellipse2D implements java/io/Serializable nestHost java/awt/geom/Ellipse2D flags 21
+innerclass innerClass java/awt/geom/Ellipse2D$Double outerClass java/awt/geom/Ellipse2D innerClassName Double flags 9
+innerclass innerClass java/awt/geom/Rectangle2D$Double outerClass java/awt/geom/Rectangle2D innerClassName Double flags 9
+
+class name java/awt/geom/Ellipse2D$Float
+header extends java/awt/geom/Ellipse2D implements java/io/Serializable nestHost java/awt/geom/Ellipse2D flags 21
+innerclass innerClass java/awt/geom/Ellipse2D$Float outerClass java/awt/geom/Ellipse2D innerClassName Float flags 9
+innerclass innerClass java/awt/geom/Rectangle2D$Float outerClass java/awt/geom/Rectangle2D innerClassName Float flags 9
+
+class name java/awt/geom/FlatteningPathIterator
+header extends java/lang/Object implements java/awt/geom/PathIterator flags 21
+
+class name java/awt/geom/GeneralPath
+header extends java/awt/geom/Path2D$Float flags 31
+innerclass innerClass java/awt/geom/Path2D$Float outerClass java/awt/geom/Path2D innerClassName Float flags 9
+
+class name java/awt/geom/IllegalPathStateException
+header extends java/lang/RuntimeException flags 21
+
+class name java/awt/geom/Line2D
+header extends java/lang/Object implements java/awt/Shape,java/lang/Cloneable nestMembers java/awt/geom/Line2D$Double,java/awt/geom/Line2D$Float flags 421
+innerclass innerClass java/awt/geom/Line2D$Double outerClass java/awt/geom/Line2D innerClassName Double flags 9
+innerclass innerClass java/awt/geom/Line2D$Float outerClass java/awt/geom/Line2D innerClassName Float flags 9
+innerclass innerClass java/awt/geom/Rectangle2D$Double outerClass java/awt/geom/Rectangle2D innerClassName Double flags 9
+
+class name java/awt/geom/Line2D$Double
+header extends java/awt/geom/Line2D implements java/io/Serializable nestHost java/awt/geom/Line2D flags 21
+innerclass innerClass java/awt/geom/Line2D$Double outerClass java/awt/geom/Line2D innerClassName Double flags 9
+innerclass innerClass java/awt/geom/Point2D$Double outerClass java/awt/geom/Point2D innerClassName Double flags 9
+innerclass innerClass java/awt/geom/Rectangle2D$Double outerClass java/awt/geom/Rectangle2D innerClassName Double flags 9
+
+class name java/awt/geom/Line2D$Float
+header extends java/awt/geom/Line2D implements java/io/Serializable nestHost java/awt/geom/Line2D flags 21
+innerclass innerClass java/awt/geom/Line2D$Float outerClass java/awt/geom/Line2D innerClassName Float flags 9
+innerclass innerClass java/awt/geom/Point2D$Float outerClass java/awt/geom/Point2D innerClassName Float flags 9
+innerclass innerClass java/awt/geom/Rectangle2D$Float outerClass java/awt/geom/Rectangle2D innerClassName Float flags 9
+
+class name java/awt/geom/NoninvertibleTransformException
+header extends java/lang/Exception flags 21
+
+class name java/awt/geom/Path2D
+header extends java/lang/Object implements java/awt/Shape,java/lang/Cloneable nestMembers java/awt/geom/Path2D$Double,java/awt/geom/Path2D$Float flags 421
+innerclass innerClass java/awt/geom/Path2D$Double outerClass java/awt/geom/Path2D innerClassName Double flags 9
+innerclass innerClass java/awt/geom/Path2D$Float outerClass java/awt/geom/Path2D innerClassName Float flags 9
+
+class name java/awt/geom/Path2D$Double
+header extends java/awt/geom/Path2D implements java/io/Serializable nestHost java/awt/geom/Path2D flags 21
+innerclass innerClass java/awt/geom/Path2D$Double outerClass java/awt/geom/Path2D innerClassName Double flags 9
+innerclass innerClass java/awt/geom/Point2D$Double outerClass java/awt/geom/Point2D innerClassName Double flags 9
+innerclass innerClass java/awt/geom/Rectangle2D$Double outerClass java/awt/geom/Rectangle2D innerClassName Double flags 9
+
+class name java/awt/geom/Path2D$Float
+header extends java/awt/geom/Path2D implements java/io/Serializable nestHost java/awt/geom/Path2D flags 21
+innerclass innerClass java/awt/geom/Path2D$Float outerClass java/awt/geom/Path2D innerClassName Float flags 9
+innerclass innerClass java/awt/geom/Point2D$Float outerClass java/awt/geom/Point2D innerClassName Float flags 9
+innerclass innerClass java/awt/geom/Rectangle2D$Float outerClass java/awt/geom/Rectangle2D innerClassName Float flags 9
+
+class name java/awt/geom/PathIterator
+header extends java/lang/Object flags 601
+
+class name java/awt/geom/Point2D
+header extends java/lang/Object implements java/lang/Cloneable nestMembers java/awt/geom/Point2D$Double,java/awt/geom/Point2D$Float flags 421
+innerclass innerClass java/awt/geom/Point2D$Double outerClass java/awt/geom/Point2D innerClassName Double flags 9
+innerclass innerClass java/awt/geom/Point2D$Float outerClass java/awt/geom/Point2D innerClassName Float flags 9
+
+class name java/awt/geom/Point2D$Double
+header extends java/awt/geom/Point2D implements java/io/Serializable nestHost java/awt/geom/Point2D flags 21
+innerclass innerClass java/awt/geom/Point2D$Double outerClass java/awt/geom/Point2D innerClassName Double flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/geom/Point2D$Float
+header extends java/awt/geom/Point2D implements java/io/Serializable nestHost java/awt/geom/Point2D flags 21
+innerclass innerClass java/awt/geom/Point2D$Float outerClass java/awt/geom/Point2D innerClassName Float flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/geom/QuadCurve2D
+header extends java/lang/Object implements java/awt/Shape,java/lang/Cloneable nestMembers java/awt/geom/QuadCurve2D$Double,java/awt/geom/QuadCurve2D$Float flags 421
+innerclass innerClass java/awt/geom/QuadCurve2D$Double outerClass java/awt/geom/QuadCurve2D innerClassName Double flags 9
+innerclass innerClass java/awt/geom/QuadCurve2D$Float outerClass java/awt/geom/QuadCurve2D innerClassName Float flags 9
+
+class name java/awt/geom/QuadCurve2D$Double
+header extends java/awt/geom/QuadCurve2D implements java/io/Serializable nestHost java/awt/geom/QuadCurve2D flags 21
+innerclass innerClass java/awt/geom/QuadCurve2D$Double outerClass java/awt/geom/QuadCurve2D innerClassName Double flags 9
+innerclass innerClass java/awt/geom/Point2D$Double outerClass java/awt/geom/Point2D innerClassName Double flags 9
+innerclass innerClass java/awt/geom/Rectangle2D$Double outerClass java/awt/geom/Rectangle2D innerClassName Double flags 9
+
+class name java/awt/geom/QuadCurve2D$Float
+header extends java/awt/geom/QuadCurve2D implements java/io/Serializable nestHost java/awt/geom/QuadCurve2D flags 21
+innerclass innerClass java/awt/geom/QuadCurve2D$Float outerClass java/awt/geom/QuadCurve2D innerClassName Float flags 9
+innerclass innerClass java/awt/geom/Point2D$Float outerClass java/awt/geom/Point2D innerClassName Float flags 9
+innerclass innerClass java/awt/geom/Rectangle2D$Float outerClass java/awt/geom/Rectangle2D innerClassName Float flags 9
+
+class name java/awt/geom/Rectangle2D
+header extends java/awt/geom/RectangularShape nestMembers java/awt/geom/Rectangle2D$Double,java/awt/geom/Rectangle2D$Float flags 421
+innerclass innerClass java/awt/geom/Rectangle2D$Double outerClass java/awt/geom/Rectangle2D innerClassName Double flags 9
+innerclass innerClass java/awt/geom/Rectangle2D$Float outerClass java/awt/geom/Rectangle2D innerClassName Float flags 9
+
+class name java/awt/geom/Rectangle2D$Double
+header extends java/awt/geom/Rectangle2D implements java/io/Serializable nestHost java/awt/geom/Rectangle2D flags 21
+innerclass innerClass java/awt/geom/Rectangle2D$Double outerClass java/awt/geom/Rectangle2D innerClassName Double flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/geom/Rectangle2D$Float
+header extends java/awt/geom/Rectangle2D implements java/io/Serializable nestHost java/awt/geom/Rectangle2D flags 21
+innerclass innerClass java/awt/geom/Rectangle2D$Float outerClass java/awt/geom/Rectangle2D innerClassName Float flags 9
+innerclass innerClass java/awt/geom/Rectangle2D$Double outerClass java/awt/geom/Rectangle2D innerClassName Double flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/geom/RectangularShape
+header extends java/lang/Object implements java/awt/Shape,java/lang/Cloneable flags 421
+innerclass innerClass java/awt/geom/Rectangle2D$Double outerClass java/awt/geom/Rectangle2D innerClassName Double flags 9
+
+class name java/awt/geom/RoundRectangle2D
+header extends java/awt/geom/RectangularShape nestMembers java/awt/geom/RoundRectangle2D$Double,java/awt/geom/RoundRectangle2D$Float flags 421
+innerclass innerClass java/awt/geom/RoundRectangle2D$Double outerClass java/awt/geom/RoundRectangle2D innerClassName Double flags 9
+innerclass innerClass java/awt/geom/RoundRectangle2D$Float outerClass java/awt/geom/RoundRectangle2D innerClassName Float flags 9
+
+class name java/awt/geom/RoundRectangle2D$Double
+header extends java/awt/geom/RoundRectangle2D implements java/io/Serializable nestHost java/awt/geom/RoundRectangle2D flags 21
+innerclass innerClass java/awt/geom/RoundRectangle2D$Double outerClass java/awt/geom/RoundRectangle2D innerClassName Double flags 9
+innerclass innerClass java/awt/geom/Rectangle2D$Double outerClass java/awt/geom/Rectangle2D innerClassName Double flags 9
+
+class name java/awt/geom/RoundRectangle2D$Float
+header extends java/awt/geom/RoundRectangle2D implements java/io/Serializable nestHost java/awt/geom/RoundRectangle2D flags 21
+innerclass innerClass java/awt/geom/RoundRectangle2D$Float outerClass java/awt/geom/RoundRectangle2D innerClassName Float flags 9
+innerclass innerClass java/awt/geom/Rectangle2D$Float outerClass java/awt/geom/Rectangle2D innerClassName Float flags 9
+
+class name java/awt/im/InputContext
+header extends java/lang/Object flags 21
+innerclass innerClass java/lang/Character$Subset outerClass java/lang/Character innerClassName Subset flags 9
+
+class name java/awt/im/InputMethodHighlight
+header extends java/lang/Object flags 21
+
+class name java/awt/im/InputMethodRequests
+header extends java/lang/Object flags 601
+innerclass innerClass java/text/AttributedCharacterIterator$Attribute outerClass java/text/AttributedCharacterIterator innerClassName Attribute flags 9
+
+class name java/awt/im/InputSubset
+header extends java/lang/Character$Subset flags 31
+innerclass innerClass java/lang/Character$Subset outerClass java/lang/Character innerClassName Subset flags 9
+
+class name java/awt/im/spi/InputMethod
+header extends java/lang/Object flags 601
+innerclass innerClass java/lang/Character$Subset outerClass java/lang/Character innerClassName Subset flags 9
+
+class name java/awt/im/spi/InputMethodContext
+header extends java/lang/Object implements java/awt/im/InputMethodRequests flags 601
+
+class name java/awt/im/spi/InputMethodDescriptor
+header extends java/lang/Object flags 601
+
+class name java/awt/image/AbstractMultiResolutionImage
+header extends java/awt/Image implements java/awt/image/MultiResolutionImage flags 421
+
+class name java/awt/image/AffineTransformOp
+header extends java/lang/Object implements java/awt/image/BufferedImageOp,java/awt/image/RasterOp flags 21
+innerclass innerClass java/awt/geom/Rectangle2D$Float outerClass java/awt/geom/Rectangle2D innerClassName Float flags 9
+innerclass innerClass java/awt/RenderingHints$Key outerClass java/awt/RenderingHints innerClassName Key flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/image/AreaAveragingScaleFilter
+header extends java/awt/image/ReplicateScaleFilter flags 21
+
+class name java/awt/image/BandCombineOp
+header extends java/lang/Object implements java/awt/image/RasterOp flags 21
+innerclass innerClass java/awt/geom/Point2D$Float outerClass java/awt/geom/Point2D innerClassName Float flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/image/BandedSampleModel
+header extends java/awt/image/ComponentSampleModel flags 31
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/image/BaseMultiResolutionImage
+header extends java/awt/image/AbstractMultiResolutionImage flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/image/BufferStrategy
+header extends java/lang/Object flags 421
+
+class name java/awt/image/BufferedImageFilter
+header extends java/awt/image/ImageFilter implements java/lang/Cloneable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/image/BufferedImageOp
+header extends java/lang/Object flags 601
+
+class name java/awt/image/ByteLookupTable
+header extends java/awt/image/LookupTable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/image/ColorConvertOp
+header extends java/lang/Object implements java/awt/image/BufferedImageOp,java/awt/image/RasterOp flags 21
+innerclass innerClass java/awt/geom/Point2D$Float outerClass java/awt/geom/Point2D innerClassName Float flags 9
+
+class name java/awt/image/ComponentColorModel
+header extends java/awt/image/ColorModel flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/image/ComponentSampleModel
+header extends java/awt/image/SampleModel flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/image/ConvolveOp
+header extends java/lang/Object implements java/awt/image/BufferedImageOp,java/awt/image/RasterOp flags 21
+innerclass innerClass java/awt/geom/Point2D$Float outerClass java/awt/geom/Point2D innerClassName Float flags 9
+
+class name java/awt/image/CropImageFilter
+header extends java/awt/image/ImageFilter flags 21
+
+class name java/awt/image/DataBufferByte
+header extends java/awt/image/DataBuffer flags 31
+
+class name java/awt/image/DataBufferDouble
+header extends java/awt/image/DataBuffer flags 31
+
+class name java/awt/image/DataBufferFloat
+header extends java/awt/image/DataBuffer flags 31
+
+class name java/awt/image/DataBufferInt
+header extends java/awt/image/DataBuffer flags 31
+
+class name java/awt/image/DataBufferShort
+header extends java/awt/image/DataBuffer flags 31
+
+class name java/awt/image/DataBufferUShort
+header extends java/awt/image/DataBuffer flags 31
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/image/DirectColorModel
+header extends java/awt/image/PackedColorModel flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/image/FilteredImageSource
+header extends java/lang/Object implements java/awt/image/ImageProducer flags 21
+
+class name java/awt/image/ImageConsumer
+header extends java/lang/Object flags 601
+
+class name java/awt/image/ImageFilter
+header extends java/lang/Object implements java/awt/image/ImageConsumer,java/lang/Cloneable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/image/ImageObserver
+header extends java/lang/Object flags 601
+
+class name java/awt/image/ImageProducer
+header extends java/lang/Object flags 601
+
+class name java/awt/image/ImagingOpException
+header extends java/lang/RuntimeException flags 21
+
+class name java/awt/image/IndexColorModel
+header extends java/awt/image/ColorModel flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/image/Kernel
+header extends java/lang/Object implements java/lang/Cloneable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/image/LookupOp
+header extends java/lang/Object implements java/awt/image/BufferedImageOp,java/awt/image/RasterOp flags 21
+innerclass innerClass java/awt/geom/Point2D$Float outerClass java/awt/geom/Point2D innerClassName Float flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/image/LookupTable
+header extends java/lang/Object flags 421
+
+class name java/awt/image/MemoryImageSource
+header extends java/lang/Object implements java/awt/image/ImageProducer flags 21
+
+class name java/awt/image/MultiPixelPackedSampleModel
+header extends java/awt/image/SampleModel flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/image/MultiResolutionImage
+header extends java/lang/Object flags 601
+
+class name java/awt/image/PackedColorModel
+header extends java/awt/image/ColorModel flags 421
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/image/PixelGrabber
+header extends java/lang/Object implements java/awt/image/ImageConsumer flags 21
+
+class name java/awt/image/PixelInterleavedSampleModel
+header extends java/awt/image/ComponentSampleModel flags 21
+
+class name java/awt/image/RGBImageFilter
+header extends java/awt/image/ImageFilter flags 421
+
+class name java/awt/image/Raster
+header extends java/lang/Object flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/image/RasterFormatException
+header extends java/lang/RuntimeException flags 21
+
+class name java/awt/image/RasterOp
+header extends java/lang/Object flags 601
+
+class name java/awt/image/RenderedImage
+header extends java/lang/Object flags 601
+
+class name java/awt/image/ReplicateScaleFilter
+header extends java/awt/image/ImageFilter flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/image/RescaleOp
+header extends java/lang/Object implements java/awt/image/BufferedImageOp,java/awt/image/RasterOp flags 21
+innerclass innerClass java/awt/geom/Point2D$Float outerClass java/awt/geom/Point2D innerClassName Float flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/image/SampleModel
+header extends java/lang/Object flags 421
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/image/ShortLookupTable
+header extends java/awt/image/LookupTable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/image/SinglePixelPackedSampleModel
+header extends java/awt/image/SampleModel flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/awt/image/TileObserver
+header extends java/lang/Object flags 601
+
+class name java/awt/image/VolatileImage
+header extends java/awt/Image implements java/awt/Transparency flags 421
+
+class name java/awt/image/WritableRaster
+header extends java/awt/image/Raster flags 21
+
+class name java/awt/image/WritableRenderedImage
+header extends java/lang/Object implements java/awt/image/RenderedImage flags 601
+
+class name java/awt/image/renderable/ContextualRenderedImageFactory
+header extends java/lang/Object implements java/awt/image/renderable/RenderedImageFactory flags 601
+
+class name java/awt/image/renderable/ParameterBlock
+header extends java/lang/Object implements java/lang/Cloneable,java/io/Serializable flags 21
+
+class name java/awt/image/renderable/RenderContext
+header extends java/lang/Object implements java/lang/Cloneable flags 21
+
+class name java/awt/image/renderable/RenderableImage
+header extends java/lang/Object flags 601
+
+class name java/awt/image/renderable/RenderableImageOp
+header extends java/lang/Object implements java/awt/image/renderable/RenderableImage flags 21
+
+class name java/awt/image/renderable/RenderableImageProducer
+header extends java/lang/Object implements java/awt/image/ImageProducer,java/lang/Runnable flags 21
+
+class name java/awt/image/renderable/RenderedImageFactory
+header extends java/lang/Object flags 601
+
+class name java/awt/print/PageFormat
+header extends java/lang/Object implements java/lang/Cloneable flags 21
+
+class name java/awt/print/Pageable
+header extends java/lang/Object flags 601
+
+class name java/awt/print/Paper
+header extends java/lang/Object implements java/lang/Cloneable flags 21
+innerclass innerClass java/awt/geom/Rectangle2D$Double outerClass java/awt/geom/Rectangle2D innerClassName Double flags 9
+
+class name java/awt/print/Printable
+header extends java/lang/Object flags 601
+
+class name java/awt/print/PrinterAbortException
+header extends java/awt/print/PrinterException flags 21
+
+class name java/awt/print/PrinterException
+header extends java/lang/Exception flags 21
+
+class name java/awt/print/PrinterGraphics
+header extends java/lang/Object flags 601
+
+class name java/awt/print/PrinterIOException
+header extends java/awt/print/PrinterException flags 21
+
+class name java/beans/AppletInitializer
+header extends java/lang/Object flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="9")
+
+class name java/beans/BeanDescriptor
+header extends java/beans/FeatureDescriptor flags 21
+
+class name java/beans/BeanInfo
+header extends java/lang/Object flags 601
+
+class name java/beans/BeanProperty
+header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljava/lang/annotation/Documented;@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;METHOD;})@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)
+
+class name java/beans/Beans
+header extends java/lang/Object flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/beans/ConstructorProperties
+header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljava/lang/annotation/Documented;@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;CONSTRUCTOR;})@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)
+
+class name java/beans/Customizer
+header extends java/lang/Object flags 601
+
+class name java/beans/DefaultPersistenceDelegate
+header extends java/beans/PersistenceDelegate flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/beans/DesignMode
+header extends java/lang/Object flags 601
+
+class name java/beans/Encoder
+header extends java/lang/Object flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/beans/EventSetDescriptor
+header extends java/beans/FeatureDescriptor flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/beans/ExceptionListener
+header extends java/lang/Object flags 601
+
+class name java/beans/Expression
+header extends java/beans/Statement flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/beans/FeatureDescriptor
+header extends java/lang/Object flags 21
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+
+class name java/beans/IndexedPropertyChangeEvent
+header extends java/beans/PropertyChangeEvent flags 21
+
+class name java/beans/IndexedPropertyDescriptor
+header extends java/beans/PropertyDescriptor flags 21
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/beans/IntrospectionException
+header extends java/lang/Exception flags 21
+
+class name java/beans/JavaBean
+header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljava/lang/annotation/Documented;@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;TYPE;})@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)
+
+class name java/beans/MethodDescriptor
+header extends java/beans/FeatureDescriptor flags 21
+
+class name java/beans/ParameterDescriptor
+header extends java/beans/FeatureDescriptor flags 21
+
+class name java/beans/PersistenceDelegate
+header extends java/lang/Object flags 421
+
+class name java/beans/PropertyChangeEvent
+header extends java/util/EventObject flags 21
+
+class name java/beans/PropertyChangeListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name java/beans/PropertyChangeListenerProxy
+header extends java/util/EventListenerProxy implements java/beans/PropertyChangeListener flags 21 signature Ljava/util/EventListenerProxy<Ljava/beans/PropertyChangeListener;>;Ljava/beans/PropertyChangeListener;
+
+class name java/beans/PropertyDescriptor
+header extends java/beans/FeatureDescriptor flags 21
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/beans/PropertyEditor
+header extends java/lang/Object flags 601
+
+class name java/beans/PropertyEditorManager
+header extends java/lang/Object flags 21
+
+class name java/beans/PropertyEditorSupport
+header extends java/lang/Object implements java/beans/PropertyEditor flags 21
+
+class name java/beans/PropertyVetoException
+header extends java/lang/Exception flags 21
+
+class name java/beans/SimpleBeanInfo
+header extends java/lang/Object implements java/beans/BeanInfo flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/beans/Transient
+header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;METHOD;})@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)
+
+class name java/beans/VetoableChangeListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name java/beans/VetoableChangeListenerProxy
+header extends java/util/EventListenerProxy implements java/beans/VetoableChangeListener flags 21 signature Ljava/util/EventListenerProxy<Ljava/beans/VetoableChangeListener;>;Ljava/beans/VetoableChangeListener;
+
+class name java/beans/Visibility
+header extends java/lang/Object flags 601
+
+class name java/beans/beancontext/BeanContext
+header extends java/lang/Object implements java/beans/beancontext/BeanContextChild,java/util/Collection,java/beans/DesignMode,java/beans/Visibility flags 601
+
+class name java/beans/beancontext/BeanContextChild
+header extends java/lang/Object flags 601
+
+class name java/beans/beancontext/BeanContextChildComponentProxy
+header extends java/lang/Object flags 601
+
+class name java/beans/beancontext/BeanContextChildSupport
+header extends java/lang/Object implements java/beans/beancontext/BeanContextChild,java/beans/beancontext/BeanContextServicesListener,java/io/Serializable flags 21
+
+class name java/beans/beancontext/BeanContextContainerProxy
+header extends java/lang/Object flags 601
+
+class name java/beans/beancontext/BeanContextEvent
+header extends java/util/EventObject flags 421
+
+class name java/beans/beancontext/BeanContextMembershipEvent
+header extends java/beans/beancontext/BeanContextEvent flags 21
+
+class name java/beans/beancontext/BeanContextMembershipListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name java/beans/beancontext/BeanContextProxy
+header extends java/lang/Object flags 601
+
+class name java/beans/beancontext/BeanContextServiceAvailableEvent
+header extends java/beans/beancontext/BeanContextEvent flags 21
+
+class name java/beans/beancontext/BeanContextServiceProvider
+header extends java/lang/Object flags 601
+
+class name java/beans/beancontext/BeanContextServiceProviderBeanInfo
+header extends java/lang/Object implements java/beans/BeanInfo flags 601
+
+class name java/beans/beancontext/BeanContextServiceRevokedEvent
+header extends java/beans/beancontext/BeanContextEvent flags 21
+
+class name java/beans/beancontext/BeanContextServiceRevokedListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name java/beans/beancontext/BeanContextServices
+header extends java/lang/Object implements java/beans/beancontext/BeanContext,java/beans/beancontext/BeanContextServicesListener flags 601
+
+class name java/beans/beancontext/BeanContextServicesListener
+header extends java/lang/Object implements java/beans/beancontext/BeanContextServiceRevokedListener flags 601
+
+class name java/beans/beancontext/BeanContextServicesSupport
+header extends java/beans/beancontext/BeanContextSupport implements java/beans/beancontext/BeanContextServices nestMembers java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider,java/beans/beancontext/BeanContextServicesSupport$BCSSServiceProvider,java/beans/beancontext/BeanContextServicesSupport$BCSSChild flags 21
+innerclass innerClass java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider outerClass java/beans/beancontext/BeanContextServicesSupport innerClassName BCSSProxyServiceProvider flags 4
+innerclass innerClass java/beans/beancontext/BeanContextServicesSupport$BCSSServiceProvider outerClass java/beans/beancontext/BeanContextServicesSupport innerClassName BCSSServiceProvider flags c
+innerclass innerClass java/beans/beancontext/BeanContextServicesSupport$BCSSChild outerClass java/beans/beancontext/BeanContextServicesSupport innerClassName BCSSChild flags 4
+innerclass innerClass java/beans/beancontext/BeanContextSupport$BCSChild outerClass java/beans/beancontext/BeanContextSupport innerClassName BCSChild flags 4
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+innerclass innerClass java/beans/beancontext/BeanContextSupport$BCSIterator outerClass java/beans/beancontext/BeanContextSupport innerClassName BCSIterator flags 1c
+
+class name java/beans/beancontext/BeanContextServicesSupport$BCSSChild
+header extends java/beans/beancontext/BeanContextSupport$BCSChild nestHost java/beans/beancontext/BeanContextServicesSupport flags 21
+innerclass innerClass java/beans/beancontext/BeanContextServicesSupport$BCSSChild outerClass java/beans/beancontext/BeanContextServicesSupport innerClassName BCSSChild flags 4
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+innerclass innerClass java/beans/beancontext/BeanContextSupport$BCSChild outerClass java/beans/beancontext/BeanContextSupport innerClassName BCSChild flags 4
+
+class name java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider
+header extends java/lang/Object implements java/beans/beancontext/BeanContextServiceProvider,java/beans/beancontext/BeanContextServiceRevokedListener nestHost java/beans/beancontext/BeanContextServicesSupport flags 21
+innerclass innerClass java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider outerClass java/beans/beancontext/BeanContextServicesSupport innerClassName BCSSProxyServiceProvider flags 4
+innerclass innerClass java/beans/beancontext/BeanContextSupport$BCSChild outerClass java/beans/beancontext/BeanContextSupport innerClassName BCSChild flags 4
+innerclass innerClass java/beans/beancontext/BeanContextServicesSupport$BCSSChild outerClass java/beans/beancontext/BeanContextServicesSupport innerClassName BCSSChild flags 4
+
+class name java/beans/beancontext/BeanContextServicesSupport$BCSSServiceProvider
+header extends java/lang/Object implements java/io/Serializable nestHost java/beans/beancontext/BeanContextServicesSupport flags 21
+innerclass innerClass java/beans/beancontext/BeanContextServicesSupport$BCSSServiceProvider outerClass java/beans/beancontext/BeanContextServicesSupport innerClassName BCSSServiceProvider flags c
+
+class name java/beans/beancontext/BeanContextSupport
+header extends java/beans/beancontext/BeanContextChildSupport implements java/beans/beancontext/BeanContext,java/io/Serializable,java/beans/PropertyChangeListener,java/beans/VetoableChangeListener nestMembers java/beans/beancontext/BeanContextSupport$BCSChild,java/beans/beancontext/BeanContextSupport$BCSIterator flags 21
+innerclass innerClass java/beans/beancontext/BeanContextSupport$BCSChild outerClass java/beans/beancontext/BeanContextSupport innerClassName BCSChild flags 4
+innerclass innerClass java/beans/beancontext/BeanContextSupport$BCSIterator outerClass java/beans/beancontext/BeanContextSupport innerClassName BCSIterator flags 1c
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+
+class name java/beans/beancontext/BeanContextSupport$BCSChild
+header extends java/lang/Object implements java/io/Serializable nestHost java/beans/beancontext/BeanContextSupport flags 21
+innerclass innerClass java/beans/beancontext/BeanContextSupport$BCSChild outerClass java/beans/beancontext/BeanContextSupport innerClassName BCSChild flags 4
+
+class name java/beans/beancontext/BeanContextSupport$BCSIterator
+header extends java/lang/Object implements java/util/Iterator nestHost java/beans/beancontext/BeanContextSupport flags 31 signature Ljava/lang/Object;Ljava/util/Iterator<Ljava/lang/Object;>;
+innerclass innerClass java/beans/beancontext/BeanContextSupport$BCSIterator outerClass java/beans/beancontext/BeanContextSupport innerClassName BCSIterator flags 1c
+
+class name javax/accessibility/AccessibilityProvider
+header extends java/lang/Object flags 421
+
+class name javax/accessibility/Accessible
+header extends java/lang/Object flags 601
+
+class name javax/accessibility/AccessibleAction
+header extends java/lang/Object flags 601
+
+class name javax/accessibility/AccessibleAttributeSequence
+header extends java/lang/Object flags 21
+
+class name javax/accessibility/AccessibleComponent
+header extends java/lang/Object flags 601
+
+class name javax/accessibility/AccessibleEditableText
+header extends java/lang/Object implements javax/accessibility/AccessibleText flags 601
+
+class name javax/accessibility/AccessibleExtendedComponent
+header extends java/lang/Object implements javax/accessibility/AccessibleComponent flags 601
+
+class name javax/accessibility/AccessibleExtendedTable
+header extends java/lang/Object implements javax/accessibility/AccessibleTable flags 601
+
+class name javax/accessibility/AccessibleExtendedText
+header extends java/lang/Object flags 601
+
+class name javax/accessibility/AccessibleHyperlink
+header extends java/lang/Object implements javax/accessibility/AccessibleAction flags 421
+
+class name javax/accessibility/AccessibleHypertext
+header extends java/lang/Object implements javax/accessibility/AccessibleText flags 601
+
+class name javax/accessibility/AccessibleIcon
+header extends java/lang/Object flags 601
+
+class name javax/accessibility/AccessibleKeyBinding
+header extends java/lang/Object flags 601
+
+class name javax/accessibility/AccessibleRelation
+header extends javax/accessibility/AccessibleBundle flags 21
+
+class name javax/accessibility/AccessibleRelationSet
+header extends java/lang/Object flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/accessibility/AccessibleResourceBundle
+header extends java/util/ListResourceBundle flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;
+
+class name javax/accessibility/AccessibleRole
+header extends javax/accessibility/AccessibleBundle flags 21
+
+class name javax/accessibility/AccessibleSelection
+header extends java/lang/Object flags 601
+
+class name javax/accessibility/AccessibleState
+header extends javax/accessibility/AccessibleBundle flags 21
+
+class name javax/accessibility/AccessibleStateSet
+header extends java/lang/Object flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/accessibility/AccessibleStreamable
+header extends java/lang/Object flags 601
+
+class name javax/accessibility/AccessibleTable
+header extends java/lang/Object flags 601
+
+class name javax/accessibility/AccessibleTableModelChange
+header extends java/lang/Object flags 601
+
+class name javax/accessibility/AccessibleText
+header extends java/lang/Object flags 601
+
+class name javax/accessibility/AccessibleTextSequence
+header extends java/lang/Object flags 21
+
+class name javax/accessibility/AccessibleValue
+header extends java/lang/Object flags 601
+
+class name javax/imageio/IIOException
+header extends java/io/IOException flags 21
+
+class name javax/imageio/IIOImage
+header extends java/lang/Object flags 21
+
+class name javax/imageio/IIOParam
+header extends java/lang/Object flags 421
+
+class name javax/imageio/IIOParamController
+header extends java/lang/Object flags 601
+
+class name javax/imageio/ImageReadParam
+header extends javax/imageio/IIOParam flags 21
+
+class name javax/imageio/ImageReader
+header extends java/lang/Object flags 421
+
+class name javax/imageio/ImageTranscoder
+header extends java/lang/Object flags 601
+
+class name javax/imageio/ImageWriteParam
+header extends javax/imageio/IIOParam flags 21
+
+class name javax/imageio/ImageWriter
+header extends java/lang/Object implements javax/imageio/ImageTranscoder flags 421
+
+class name javax/imageio/event/IIOReadProgressListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name javax/imageio/event/IIOReadUpdateListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name javax/imageio/event/IIOReadWarningListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name javax/imageio/event/IIOWriteProgressListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name javax/imageio/event/IIOWriteWarningListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name javax/imageio/metadata/IIOInvalidTreeException
+header extends javax/imageio/IIOException flags 21
+
+class name javax/imageio/metadata/IIOMetadata
+header extends java/lang/Object flags 421
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/imageio/metadata/IIOMetadataController
+header extends java/lang/Object flags 601
+
+class name javax/imageio/metadata/IIOMetadataFormat
+header extends java/lang/Object flags 601
+
+class name javax/imageio/metadata/IIOMetadataNode
+header extends java/lang/Object implements org/w3c/dom/Element,org/w3c/dom/NodeList flags 21
+
+class name javax/imageio/plugins/bmp/BMPImageWriteParam
+header extends javax/imageio/ImageWriteParam flags 21
+
+class name javax/imageio/plugins/jpeg/JPEGHuffmanTable
+header extends java/lang/Object flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/imageio/plugins/jpeg/JPEGImageReadParam
+header extends javax/imageio/ImageReadParam flags 21
+
+class name javax/imageio/plugins/jpeg/JPEGImageWriteParam
+header extends javax/imageio/ImageWriteParam flags 21
+
+class name javax/imageio/plugins/jpeg/JPEGQTable
+header extends java/lang/Object flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/imageio/plugins/tiff/TIFFDirectory
+header extends java/lang/Object implements java/lang/Cloneable flags 21
+
+class name javax/imageio/plugins/tiff/TIFFField
+header extends java/lang/Object implements java/lang/Cloneable flags 31
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/imageio/plugins/tiff/TIFFImageReadParam
+header extends javax/imageio/ImageReadParam flags 31
+
+class name javax/imageio/plugins/tiff/TIFFTag
+header extends java/lang/Object flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/imageio/plugins/tiff/TIFFTagSet
+header extends java/lang/Object flags 21
+
+class name javax/imageio/spi/IIOServiceProvider
+header extends java/lang/Object implements javax/imageio/spi/RegisterableService flags 421
+
+class name javax/imageio/spi/ImageInputStreamSpi
+header extends javax/imageio/spi/IIOServiceProvider flags 421
+
+class name javax/imageio/spi/ImageOutputStreamSpi
+header extends javax/imageio/spi/IIOServiceProvider flags 421
+
+class name javax/imageio/spi/ImageReaderSpi
+header extends javax/imageio/spi/ImageReaderWriterSpi flags 421
+
+class name javax/imageio/spi/ImageReaderWriterSpi
+header extends javax/imageio/spi/IIOServiceProvider flags 421
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/imageio/spi/ImageTranscoderSpi
+header extends javax/imageio/spi/IIOServiceProvider flags 421
+
+class name javax/imageio/spi/ImageWriterSpi
+header extends javax/imageio/spi/ImageReaderWriterSpi flags 421
+
+class name javax/imageio/spi/RegisterableService
+header extends java/lang/Object flags 601
+
+class name javax/imageio/spi/ServiceRegistry
+header extends java/lang/Object nestMembers javax/imageio/spi/ServiceRegistry$Filter flags 21
+innerclass innerClass javax/imageio/spi/ServiceRegistry$Filter outerClass javax/imageio/spi/ServiceRegistry innerClassName Filter flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/imageio/spi/ServiceRegistry$Filter
+header extends java/lang/Object nestHost javax/imageio/spi/ServiceRegistry flags 601
+innerclass innerClass javax/imageio/spi/ServiceRegistry$Filter outerClass javax/imageio/spi/ServiceRegistry innerClassName Filter flags 609
+
+class name javax/imageio/stream/FileCacheImageOutputStream
+header extends javax/imageio/stream/ImageOutputStreamImpl flags 21
+
+class name javax/imageio/stream/FileImageInputStream
+header extends javax/imageio/stream/ImageInputStreamImpl flags 21
+
+class name javax/imageio/stream/FileImageOutputStream
+header extends javax/imageio/stream/ImageOutputStreamImpl flags 21
+
+class name javax/imageio/stream/IIOByteBuffer
+header extends java/lang/Object flags 21
+
+class name javax/imageio/stream/ImageInputStream
+header extends java/lang/Object implements java/io/DataInput,java/io/Closeable flags 601
+
+class name javax/imageio/stream/ImageInputStreamImpl
+header extends java/lang/Object implements javax/imageio/stream/ImageInputStream flags 421
+
+class name javax/imageio/stream/ImageOutputStream
+header extends java/lang/Object implements javax/imageio/stream/ImageInputStream,java/io/DataOutput flags 601
+
+class name javax/imageio/stream/ImageOutputStreamImpl
+header extends javax/imageio/stream/ImageInputStreamImpl implements javax/imageio/stream/ImageOutputStream flags 421
+
+class name javax/imageio/stream/MemoryCacheImageOutputStream
+header extends javax/imageio/stream/ImageOutputStreamImpl flags 21
+
+class name javax/print/AttributeException
+header extends java/lang/Object flags 601
+
+class name javax/print/CancelablePrintJob
+header extends java/lang/Object implements javax/print/DocPrintJob flags 601
+
+class name javax/print/Doc
+header extends java/lang/Object flags 601
+
+class name javax/print/DocFlavor
+header extends java/lang/Object implements java/io/Serializable,java/lang/Cloneable nestMembers javax/print/DocFlavor$SERVICE_FORMATTED,javax/print/DocFlavor$READER,javax/print/DocFlavor$STRING,javax/print/DocFlavor$CHAR_ARRAY,javax/print/DocFlavor$URL,javax/print/DocFlavor$INPUT_STREAM,javax/print/DocFlavor$BYTE_ARRAY flags 21
+innerclass innerClass javax/print/DocFlavor$SERVICE_FORMATTED outerClass javax/print/DocFlavor innerClassName SERVICE_FORMATTED flags 9
+innerclass innerClass javax/print/DocFlavor$READER outerClass javax/print/DocFlavor innerClassName READER flags 9
+innerclass innerClass javax/print/DocFlavor$STRING outerClass javax/print/DocFlavor innerClassName STRING flags 9
+innerclass innerClass javax/print/DocFlavor$CHAR_ARRAY outerClass javax/print/DocFlavor innerClassName CHAR_ARRAY flags 9
+innerclass innerClass javax/print/DocFlavor$URL outerClass javax/print/DocFlavor innerClassName URL flags 9
+innerclass innerClass javax/print/DocFlavor$INPUT_STREAM outerClass javax/print/DocFlavor innerClassName INPUT_STREAM flags 9
+innerclass innerClass javax/print/DocFlavor$BYTE_ARRAY outerClass javax/print/DocFlavor innerClassName BYTE_ARRAY flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/print/DocFlavor$BYTE_ARRAY
+header extends javax/print/DocFlavor nestHost javax/print/DocFlavor flags 21
+innerclass innerClass javax/print/DocFlavor$BYTE_ARRAY outerClass javax/print/DocFlavor innerClassName BYTE_ARRAY flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/print/DocFlavor$CHAR_ARRAY
+header extends javax/print/DocFlavor nestHost javax/print/DocFlavor flags 21
+innerclass innerClass javax/print/DocFlavor$CHAR_ARRAY outerClass javax/print/DocFlavor innerClassName CHAR_ARRAY flags 9
+
+class name javax/print/DocFlavor$INPUT_STREAM
+header extends javax/print/DocFlavor nestHost javax/print/DocFlavor flags 21
+innerclass innerClass javax/print/DocFlavor$INPUT_STREAM outerClass javax/print/DocFlavor innerClassName INPUT_STREAM flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/print/DocFlavor$READER
+header extends javax/print/DocFlavor nestHost javax/print/DocFlavor flags 21
+innerclass innerClass javax/print/DocFlavor$READER outerClass javax/print/DocFlavor innerClassName READER flags 9
+
+class name javax/print/DocFlavor$SERVICE_FORMATTED
+header extends javax/print/DocFlavor nestHost javax/print/DocFlavor flags 21
+innerclass innerClass javax/print/DocFlavor$SERVICE_FORMATTED outerClass javax/print/DocFlavor innerClassName SERVICE_FORMATTED flags 9
+
+class name javax/print/DocFlavor$STRING
+header extends javax/print/DocFlavor nestHost javax/print/DocFlavor flags 21
+innerclass innerClass javax/print/DocFlavor$STRING outerClass javax/print/DocFlavor innerClassName STRING flags 9
+
+class name javax/print/DocFlavor$URL
+header extends javax/print/DocFlavor nestHost javax/print/DocFlavor flags 21
+innerclass innerClass javax/print/DocFlavor$URL outerClass javax/print/DocFlavor innerClassName URL flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/print/DocPrintJob
+header extends java/lang/Object flags 601
+
+class name javax/print/FlavorException
+header extends java/lang/Object flags 601
+
+class name javax/print/MultiDoc
+header extends java/lang/Object flags 601
+
+class name javax/print/MultiDocPrintJob
+header extends java/lang/Object implements javax/print/DocPrintJob flags 601
+
+class name javax/print/MultiDocPrintService
+header extends java/lang/Object implements javax/print/PrintService flags 601
+
+class name javax/print/PrintException
+header extends java/lang/Exception flags 21
+
+class name javax/print/PrintService
+header extends java/lang/Object flags 601
+
+class name javax/print/ServiceUI
+header extends java/lang/Object flags 21
+
+class name javax/print/ServiceUIFactory
+header extends java/lang/Object flags 421
+
+class name javax/print/SimpleDoc
+header extends java/lang/Object implements javax/print/Doc flags 31
+
+class name javax/print/StreamPrintService
+header extends java/lang/Object implements javax/print/PrintService flags 421
+
+class name javax/print/URIException
+header extends java/lang/Object flags 601
+
+class name javax/print/attribute/Attribute
+header extends java/lang/Object implements java/io/Serializable flags 601
+
+class name javax/print/attribute/AttributeSet
+header extends java/lang/Object flags 601
+
+class name javax/print/attribute/DateTimeSyntax
+header extends java/lang/Object implements java/io/Serializable,java/lang/Cloneable flags 421
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/print/attribute/DocAttribute
+header extends java/lang/Object implements javax/print/attribute/Attribute flags 601
+
+class name javax/print/attribute/DocAttributeSet
+header extends java/lang/Object implements javax/print/attribute/AttributeSet flags 601
+
+class name javax/print/attribute/EnumSyntax
+header extends java/lang/Object implements java/io/Serializable,java/lang/Cloneable flags 421
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/print/attribute/HashAttributeSet
+header extends java/lang/Object implements javax/print/attribute/AttributeSet,java/io/Serializable flags 21
+
+class name javax/print/attribute/HashDocAttributeSet
+header extends javax/print/attribute/HashAttributeSet implements javax/print/attribute/DocAttributeSet,java/io/Serializable flags 21
+
+class name javax/print/attribute/HashPrintJobAttributeSet
+header extends javax/print/attribute/HashAttributeSet implements javax/print/attribute/PrintJobAttributeSet,java/io/Serializable flags 21
+
+class name javax/print/attribute/HashPrintRequestAttributeSet
+header extends javax/print/attribute/HashAttributeSet implements javax/print/attribute/PrintRequestAttributeSet,java/io/Serializable flags 21
+
+class name javax/print/attribute/HashPrintServiceAttributeSet
+header extends javax/print/attribute/HashAttributeSet implements javax/print/attribute/PrintServiceAttributeSet,java/io/Serializable flags 21
+
+class name javax/print/attribute/IntegerSyntax
+header extends java/lang/Object implements java/io/Serializable,java/lang/Cloneable flags 421
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/print/attribute/PrintJobAttribute
+header extends java/lang/Object implements javax/print/attribute/Attribute flags 601
+
+class name javax/print/attribute/PrintJobAttributeSet
+header extends java/lang/Object implements javax/print/attribute/AttributeSet flags 601
+
+class name javax/print/attribute/PrintRequestAttribute
+header extends java/lang/Object implements javax/print/attribute/Attribute flags 601
+
+class name javax/print/attribute/PrintRequestAttributeSet
+header extends java/lang/Object implements javax/print/attribute/AttributeSet flags 601
+
+class name javax/print/attribute/PrintServiceAttribute
+header extends java/lang/Object implements javax/print/attribute/Attribute flags 601
+
+class name javax/print/attribute/PrintServiceAttributeSet
+header extends java/lang/Object implements javax/print/attribute/AttributeSet flags 601
+
+class name javax/print/attribute/ResolutionSyntax
+header extends java/lang/Object implements java/io/Serializable,java/lang/Cloneable flags 421
+
+class name javax/print/attribute/SetOfIntegerSyntax
+header extends java/lang/Object implements java/io/Serializable,java/lang/Cloneable flags 421
+
+class name javax/print/attribute/Size2DSyntax
+header extends java/lang/Object implements java/io/Serializable,java/lang/Cloneable flags 421
+
+class name javax/print/attribute/SupportedValuesAttribute
+header extends java/lang/Object implements javax/print/attribute/Attribute flags 601
+
+class name javax/print/attribute/TextSyntax
+header extends java/lang/Object implements java/io/Serializable,java/lang/Cloneable flags 421
+
+class name javax/print/attribute/URISyntax
+header extends java/lang/Object implements java/io/Serializable,java/lang/Cloneable flags 421
+
+class name javax/print/attribute/UnmodifiableSetException
+header extends java/lang/RuntimeException flags 21
+
+class name javax/print/attribute/standard/Chromaticity
+header extends javax/print/attribute/EnumSyntax implements javax/print/attribute/DocAttribute,javax/print/attribute/PrintRequestAttribute,javax/print/attribute/PrintJobAttribute flags 31
+
+class name javax/print/attribute/standard/ColorSupported
+header extends javax/print/attribute/EnumSyntax implements javax/print/attribute/PrintServiceAttribute flags 31
+
+class name javax/print/attribute/standard/Compression
+header extends javax/print/attribute/EnumSyntax implements javax/print/attribute/DocAttribute flags 21
+
+class name javax/print/attribute/standard/Copies
+header extends javax/print/attribute/IntegerSyntax implements javax/print/attribute/PrintRequestAttribute,javax/print/attribute/PrintJobAttribute flags 31
+
+class name javax/print/attribute/standard/CopiesSupported
+header extends javax/print/attribute/SetOfIntegerSyntax implements javax/print/attribute/SupportedValuesAttribute flags 31
+
+class name javax/print/attribute/standard/DateTimeAtCompleted
+header extends javax/print/attribute/DateTimeSyntax implements javax/print/attribute/PrintJobAttribute flags 31
+
+class name javax/print/attribute/standard/DateTimeAtCreation
+header extends javax/print/attribute/DateTimeSyntax implements javax/print/attribute/PrintJobAttribute flags 31
+
+class name javax/print/attribute/standard/DateTimeAtProcessing
+header extends javax/print/attribute/DateTimeSyntax implements javax/print/attribute/PrintJobAttribute flags 31
+
+class name javax/print/attribute/standard/Destination
+header extends javax/print/attribute/URISyntax implements javax/print/attribute/PrintJobAttribute,javax/print/attribute/PrintRequestAttribute flags 31
+
+class name javax/print/attribute/standard/DialogOwner
+header extends java/lang/Object implements javax/print/attribute/PrintRequestAttribute flags 31
+method name <init> descriptor ()V flags 1
+method name <init> descriptor (Ljava/awt/Window;)V flags 1
+method name getOwner descriptor ()Ljava/awt/Window; flags 1
+method name getCategory descriptor ()Ljava/lang/Class; flags 11 signature ()Ljava/lang/Class<+Ljavax/print/attribute/Attribute;>;
+method name getName descriptor ()Ljava/lang/String; flags 11
+
+class name javax/print/attribute/standard/DialogTypeSelection
+header extends javax/print/attribute/EnumSyntax implements javax/print/attribute/PrintRequestAttribute flags 31
+
+class name javax/print/attribute/standard/DocumentName
+header extends javax/print/attribute/TextSyntax implements javax/print/attribute/DocAttribute flags 31
+
+class name javax/print/attribute/standard/Fidelity
+header extends javax/print/attribute/EnumSyntax implements javax/print/attribute/PrintJobAttribute,javax/print/attribute/PrintRequestAttribute flags 31
+
+class name javax/print/attribute/standard/Finishings
+header extends javax/print/attribute/EnumSyntax implements javax/print/attribute/DocAttribute,javax/print/attribute/PrintRequestAttribute,javax/print/attribute/PrintJobAttribute flags 21
+
+class name javax/print/attribute/standard/JobHoldUntil
+header extends javax/print/attribute/DateTimeSyntax implements javax/print/attribute/PrintRequestAttribute,javax/print/attribute/PrintJobAttribute flags 31
+
+class name javax/print/attribute/standard/JobImpressions
+header extends javax/print/attribute/IntegerSyntax implements javax/print/attribute/PrintRequestAttribute,javax/print/attribute/PrintJobAttribute flags 31
+
+class name javax/print/attribute/standard/JobImpressionsCompleted
+header extends javax/print/attribute/IntegerSyntax implements javax/print/attribute/PrintJobAttribute flags 31
+
+class name javax/print/attribute/standard/JobImpressionsSupported
+header extends javax/print/attribute/SetOfIntegerSyntax implements javax/print/attribute/SupportedValuesAttribute flags 31
+
+class name javax/print/attribute/standard/JobKOctets
+header extends javax/print/attribute/IntegerSyntax implements javax/print/attribute/PrintRequestAttribute,javax/print/attribute/PrintJobAttribute flags 31
+
+class name javax/print/attribute/standard/JobKOctetsProcessed
+header extends javax/print/attribute/IntegerSyntax implements javax/print/attribute/PrintJobAttribute flags 31
+
+class name javax/print/attribute/standard/JobKOctetsSupported
+header extends javax/print/attribute/SetOfIntegerSyntax implements javax/print/attribute/SupportedValuesAttribute flags 31
+
+class name javax/print/attribute/standard/JobMediaSheets
+header extends javax/print/attribute/IntegerSyntax implements javax/print/attribute/PrintRequestAttribute,javax/print/attribute/PrintJobAttribute flags 21
+
+class name javax/print/attribute/standard/JobMediaSheetsCompleted
+header extends javax/print/attribute/IntegerSyntax implements javax/print/attribute/PrintJobAttribute flags 31
+
+class name javax/print/attribute/standard/JobMediaSheetsSupported
+header extends javax/print/attribute/SetOfIntegerSyntax implements javax/print/attribute/SupportedValuesAttribute flags 31
+
+class name javax/print/attribute/standard/JobMessageFromOperator
+header extends javax/print/attribute/TextSyntax implements javax/print/attribute/PrintJobAttribute flags 31
+
+class name javax/print/attribute/standard/JobName
+header extends javax/print/attribute/TextSyntax implements javax/print/attribute/PrintRequestAttribute,javax/print/attribute/PrintJobAttribute flags 31
+
+class name javax/print/attribute/standard/JobOriginatingUserName
+header extends javax/print/attribute/TextSyntax implements javax/print/attribute/PrintJobAttribute flags 31
+
+class name javax/print/attribute/standard/JobPriority
+header extends javax/print/attribute/IntegerSyntax implements javax/print/attribute/PrintRequestAttribute,javax/print/attribute/PrintJobAttribute flags 31
+
+class name javax/print/attribute/standard/JobPrioritySupported
+header extends javax/print/attribute/IntegerSyntax implements javax/print/attribute/SupportedValuesAttribute flags 31
+
+class name javax/print/attribute/standard/JobSheets
+header extends javax/print/attribute/EnumSyntax implements javax/print/attribute/PrintRequestAttribute,javax/print/attribute/PrintJobAttribute flags 21
+
+class name javax/print/attribute/standard/JobState
+header extends javax/print/attribute/EnumSyntax implements javax/print/attribute/PrintJobAttribute flags 21
+
+class name javax/print/attribute/standard/JobStateReason
+header extends javax/print/attribute/EnumSyntax implements javax/print/attribute/Attribute flags 21
+
+class name javax/print/attribute/standard/JobStateReasons
+header extends java/util/HashSet implements javax/print/attribute/PrintJobAttribute flags 31 signature Ljava/util/HashSet<Ljavax/print/attribute/standard/JobStateReason;>;Ljavax/print/attribute/PrintJobAttribute;
+
+class name javax/print/attribute/standard/Media
+header extends javax/print/attribute/EnumSyntax implements javax/print/attribute/DocAttribute,javax/print/attribute/PrintRequestAttribute,javax/print/attribute/PrintJobAttribute flags 421
+
+class name javax/print/attribute/standard/MediaName
+header extends javax/print/attribute/standard/Media implements javax/print/attribute/Attribute flags 21
+
+class name javax/print/attribute/standard/MediaPrintableArea
+header extends java/lang/Object implements javax/print/attribute/DocAttribute,javax/print/attribute/PrintRequestAttribute,javax/print/attribute/PrintJobAttribute flags 31
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/print/attribute/standard/MediaSize
+header extends javax/print/attribute/Size2DSyntax implements javax/print/attribute/Attribute nestMembers javax/print/attribute/standard/MediaSize$Other,javax/print/attribute/standard/MediaSize$Engineering,javax/print/attribute/standard/MediaSize$NA,javax/print/attribute/standard/MediaSize$JIS,javax/print/attribute/standard/MediaSize$ISO flags 21
+innerclass innerClass javax/print/attribute/standard/MediaSize$Other outerClass javax/print/attribute/standard/MediaSize innerClassName Other flags 19
+innerclass innerClass javax/print/attribute/standard/MediaSize$Engineering outerClass javax/print/attribute/standard/MediaSize innerClassName Engineering flags 19
+innerclass innerClass javax/print/attribute/standard/MediaSize$NA outerClass javax/print/attribute/standard/MediaSize innerClassName NA flags 19
+innerclass innerClass javax/print/attribute/standard/MediaSize$JIS outerClass javax/print/attribute/standard/MediaSize innerClassName JIS flags 19
+innerclass innerClass javax/print/attribute/standard/MediaSize$ISO outerClass javax/print/attribute/standard/MediaSize innerClassName ISO flags 19
+
+class name javax/print/attribute/standard/MediaSize$Engineering
+header extends java/lang/Object nestHost javax/print/attribute/standard/MediaSize flags 31
+innerclass innerClass javax/print/attribute/standard/MediaSize$Engineering outerClass javax/print/attribute/standard/MediaSize innerClassName Engineering flags 19
+
+class name javax/print/attribute/standard/MediaSize$ISO
+header extends java/lang/Object nestHost javax/print/attribute/standard/MediaSize flags 31
+innerclass innerClass javax/print/attribute/standard/MediaSize$ISO outerClass javax/print/attribute/standard/MediaSize innerClassName ISO flags 19
+
+class name javax/print/attribute/standard/MediaSize$JIS
+header extends java/lang/Object nestHost javax/print/attribute/standard/MediaSize flags 31
+innerclass innerClass javax/print/attribute/standard/MediaSize$JIS outerClass javax/print/attribute/standard/MediaSize innerClassName JIS flags 19
+
+class name javax/print/attribute/standard/MediaSize$NA
+header extends java/lang/Object nestHost javax/print/attribute/standard/MediaSize flags 31
+innerclass innerClass javax/print/attribute/standard/MediaSize$NA outerClass javax/print/attribute/standard/MediaSize innerClassName NA flags 19
+
+class name javax/print/attribute/standard/MediaSize$Other
+header extends java/lang/Object nestHost javax/print/attribute/standard/MediaSize flags 31
+innerclass innerClass javax/print/attribute/standard/MediaSize$Other outerClass javax/print/attribute/standard/MediaSize innerClassName Other flags 19
+
+class name javax/print/attribute/standard/MediaSizeName
+header extends javax/print/attribute/standard/Media flags 21
+
+class name javax/print/attribute/standard/MediaTray
+header extends javax/print/attribute/standard/Media implements javax/print/attribute/Attribute flags 21
+
+class name javax/print/attribute/standard/MultipleDocumentHandling
+header extends javax/print/attribute/EnumSyntax implements javax/print/attribute/PrintRequestAttribute,javax/print/attribute/PrintJobAttribute flags 21
+
+class name javax/print/attribute/standard/NumberOfDocuments
+header extends javax/print/attribute/IntegerSyntax implements javax/print/attribute/PrintJobAttribute flags 31
+
+class name javax/print/attribute/standard/NumberOfInterveningJobs
+header extends javax/print/attribute/IntegerSyntax implements javax/print/attribute/PrintJobAttribute flags 31
+
+class name javax/print/attribute/standard/NumberUp
+header extends javax/print/attribute/IntegerSyntax implements javax/print/attribute/DocAttribute,javax/print/attribute/PrintRequestAttribute,javax/print/attribute/PrintJobAttribute flags 31
+
+class name javax/print/attribute/standard/NumberUpSupported
+header extends javax/print/attribute/SetOfIntegerSyntax implements javax/print/attribute/SupportedValuesAttribute flags 31
+
+class name javax/print/attribute/standard/OrientationRequested
+header extends javax/print/attribute/EnumSyntax implements javax/print/attribute/DocAttribute,javax/print/attribute/PrintRequestAttribute,javax/print/attribute/PrintJobAttribute flags 31
+
+class name javax/print/attribute/standard/OutputDeviceAssigned
+header extends javax/print/attribute/TextSyntax implements javax/print/attribute/PrintJobAttribute flags 31
+
+class name javax/print/attribute/standard/PDLOverrideSupported
+header extends javax/print/attribute/EnumSyntax implements javax/print/attribute/PrintServiceAttribute flags 21
+
+class name javax/print/attribute/standard/PageRanges
+header extends javax/print/attribute/SetOfIntegerSyntax implements javax/print/attribute/DocAttribute,javax/print/attribute/PrintRequestAttribute,javax/print/attribute/PrintJobAttribute flags 31
+
+class name javax/print/attribute/standard/PagesPerMinute
+header extends javax/print/attribute/IntegerSyntax implements javax/print/attribute/PrintServiceAttribute flags 31
+
+class name javax/print/attribute/standard/PagesPerMinuteColor
+header extends javax/print/attribute/IntegerSyntax implements javax/print/attribute/PrintServiceAttribute flags 31
+
+class name javax/print/attribute/standard/PresentationDirection
+header extends javax/print/attribute/EnumSyntax implements javax/print/attribute/PrintJobAttribute,javax/print/attribute/PrintRequestAttribute flags 31
+
+class name javax/print/attribute/standard/PrintQuality
+header extends javax/print/attribute/EnumSyntax implements javax/print/attribute/DocAttribute,javax/print/attribute/PrintRequestAttribute,javax/print/attribute/PrintJobAttribute flags 21
+
+class name javax/print/attribute/standard/PrinterInfo
+header extends javax/print/attribute/TextSyntax implements javax/print/attribute/PrintServiceAttribute flags 31
+
+class name javax/print/attribute/standard/PrinterIsAcceptingJobs
+header extends javax/print/attribute/EnumSyntax implements javax/print/attribute/PrintServiceAttribute flags 31
+
+class name javax/print/attribute/standard/PrinterLocation
+header extends javax/print/attribute/TextSyntax implements javax/print/attribute/PrintServiceAttribute flags 31
+
+class name javax/print/attribute/standard/PrinterMakeAndModel
+header extends javax/print/attribute/TextSyntax implements javax/print/attribute/PrintServiceAttribute flags 31
+
+class name javax/print/attribute/standard/PrinterMessageFromOperator
+header extends javax/print/attribute/TextSyntax implements javax/print/attribute/PrintServiceAttribute flags 31
+
+class name javax/print/attribute/standard/PrinterMoreInfo
+header extends javax/print/attribute/URISyntax implements javax/print/attribute/PrintServiceAttribute flags 31
+
+class name javax/print/attribute/standard/PrinterMoreInfoManufacturer
+header extends javax/print/attribute/URISyntax implements javax/print/attribute/PrintServiceAttribute flags 31
+
+class name javax/print/attribute/standard/PrinterName
+header extends javax/print/attribute/TextSyntax implements javax/print/attribute/PrintServiceAttribute flags 31
+
+class name javax/print/attribute/standard/PrinterResolution
+header extends javax/print/attribute/ResolutionSyntax implements javax/print/attribute/DocAttribute,javax/print/attribute/PrintRequestAttribute,javax/print/attribute/PrintJobAttribute flags 31
+
+class name javax/print/attribute/standard/PrinterState
+header extends javax/print/attribute/EnumSyntax implements javax/print/attribute/PrintServiceAttribute flags 31
+
+class name javax/print/attribute/standard/PrinterStateReason
+header extends javax/print/attribute/EnumSyntax implements javax/print/attribute/Attribute flags 21
+
+class name javax/print/attribute/standard/PrinterURI
+header extends javax/print/attribute/URISyntax implements javax/print/attribute/PrintServiceAttribute flags 31
+
+class name javax/print/attribute/standard/QueuedJobCount
+header extends javax/print/attribute/IntegerSyntax implements javax/print/attribute/PrintServiceAttribute flags 31
+
+class name javax/print/attribute/standard/ReferenceUriSchemesSupported
+header extends javax/print/attribute/EnumSyntax implements javax/print/attribute/Attribute flags 21
+
+class name javax/print/attribute/standard/RequestingUserName
+header extends javax/print/attribute/TextSyntax implements javax/print/attribute/PrintRequestAttribute flags 31
+
+class name javax/print/attribute/standard/Severity
+header extends javax/print/attribute/EnumSyntax implements javax/print/attribute/Attribute flags 31
+
+class name javax/print/attribute/standard/SheetCollate
+header extends javax/print/attribute/EnumSyntax implements javax/print/attribute/DocAttribute,javax/print/attribute/PrintRequestAttribute,javax/print/attribute/PrintJobAttribute flags 31
+
+class name javax/print/attribute/standard/Sides
+header extends javax/print/attribute/EnumSyntax implements javax/print/attribute/DocAttribute,javax/print/attribute/PrintRequestAttribute,javax/print/attribute/PrintJobAttribute flags 31
+
+class name javax/print/event/PrintEvent
+header extends java/util/EventObject flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/print/event/PrintJobAdapter
+header extends java/lang/Object implements javax/print/event/PrintJobListener flags 421
+
+class name javax/print/event/PrintJobAttributeEvent
+header extends javax/print/event/PrintEvent flags 21
+
+class name javax/print/event/PrintJobAttributeListener
+header extends java/lang/Object flags 601
+
+class name javax/print/event/PrintJobEvent
+header extends javax/print/event/PrintEvent flags 21
+
+class name javax/print/event/PrintJobListener
+header extends java/lang/Object flags 601
+
+class name javax/print/event/PrintServiceAttributeEvent
+header extends javax/print/event/PrintEvent flags 21
+
+class name javax/print/event/PrintServiceAttributeListener
+header extends java/lang/Object flags 601
+
+class name javax/sound/midi/ControllerEventListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name javax/sound/midi/Instrument
+header extends javax/sound/midi/SoundbankResource flags 421
+
+class name javax/sound/midi/InvalidMidiDataException
+header extends java/lang/Exception flags 21
+
+class name javax/sound/midi/MetaEventListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name javax/sound/midi/MetaMessage
+header extends javax/sound/midi/MidiMessage flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/sound/midi/MidiChannel
+header extends java/lang/Object flags 601
+
+class name javax/sound/midi/MidiDevice
+header extends java/lang/Object implements java/lang/AutoCloseable nestMembers javax/sound/midi/MidiDevice$Info flags 601
+innerclass innerClass javax/sound/midi/MidiDevice$Info outerClass javax/sound/midi/MidiDevice innerClassName Info flags 9
+
+class name javax/sound/midi/MidiDevice$Info
+header extends java/lang/Object nestHost javax/sound/midi/MidiDevice flags 21
+innerclass innerClass javax/sound/midi/MidiDevice$Info outerClass javax/sound/midi/MidiDevice innerClassName Info flags 9
+
+class name javax/sound/midi/MidiDeviceReceiver
+header extends java/lang/Object implements javax/sound/midi/Receiver flags 601
+
+class name javax/sound/midi/MidiDeviceTransmitter
+header extends java/lang/Object implements javax/sound/midi/Transmitter flags 601
+
+class name javax/sound/midi/MidiEvent
+header extends java/lang/Object flags 21
+
+class name javax/sound/midi/MidiFileFormat
+header extends java/lang/Object flags 21
+
+class name javax/sound/midi/MidiMessage
+header extends java/lang/Object implements java/lang/Cloneable flags 421
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/sound/midi/MidiSystem
+header extends java/lang/Object flags 21
+innerclass innerClass javax/sound/midi/MidiDevice$Info outerClass javax/sound/midi/MidiDevice innerClassName Info flags 9
+
+class name javax/sound/midi/MidiUnavailableException
+header extends java/lang/Exception flags 21
+
+class name javax/sound/midi/Patch
+header extends java/lang/Object flags 21
+
+class name javax/sound/midi/Receiver
+header extends java/lang/Object implements java/lang/AutoCloseable flags 601
+
+class name javax/sound/midi/Sequence
+header extends java/lang/Object flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/sound/midi/Sequencer
+header extends java/lang/Object implements javax/sound/midi/MidiDevice nestMembers javax/sound/midi/Sequencer$SyncMode flags 601
+innerclass innerClass javax/sound/midi/Sequencer$SyncMode outerClass javax/sound/midi/Sequencer innerClassName SyncMode flags 9
+
+class name javax/sound/midi/Sequencer$SyncMode
+header extends java/lang/Object nestHost javax/sound/midi/Sequencer flags 21
+innerclass innerClass javax/sound/midi/Sequencer$SyncMode outerClass javax/sound/midi/Sequencer innerClassName SyncMode flags 9
+
+class name javax/sound/midi/ShortMessage
+header extends javax/sound/midi/MidiMessage flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/sound/midi/Soundbank
+header extends java/lang/Object flags 601
+
+class name javax/sound/midi/SoundbankResource
+header extends java/lang/Object flags 421
+
+class name javax/sound/midi/Synthesizer
+header extends java/lang/Object implements javax/sound/midi/MidiDevice flags 601
+
+class name javax/sound/midi/SysexMessage
+header extends javax/sound/midi/MidiMessage flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/sound/midi/Transmitter
+header extends java/lang/Object implements java/lang/AutoCloseable flags 601
+
+class name javax/sound/midi/VoiceStatus
+header extends java/lang/Object flags 21
+
+class name javax/sound/midi/spi/MidiDeviceProvider
+header extends java/lang/Object flags 421
+innerclass innerClass javax/sound/midi/MidiDevice$Info outerClass javax/sound/midi/MidiDevice innerClassName Info flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/sound/midi/spi/MidiFileReader
+header extends java/lang/Object flags 421
+
+class name javax/sound/midi/spi/MidiFileWriter
+header extends java/lang/Object flags 421
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/sound/midi/spi/SoundbankReader
+header extends java/lang/Object flags 421
+
+class name javax/sound/sampled/AudioFileFormat
+header extends java/lang/Object nestMembers javax/sound/sampled/AudioFileFormat$Type flags 21
+innerclass innerClass javax/sound/sampled/AudioFileFormat$Type outerClass javax/sound/sampled/AudioFileFormat innerClassName Type flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/sound/sampled/AudioFileFormat$Type
+header extends java/lang/Object nestHost javax/sound/sampled/AudioFileFormat flags 21
+innerclass innerClass javax/sound/sampled/AudioFileFormat$Type outerClass javax/sound/sampled/AudioFileFormat innerClassName Type flags 9
+
+class name javax/sound/sampled/AudioFormat
+header extends java/lang/Object nestMembers javax/sound/sampled/AudioFormat$Encoding flags 21
+innerclass innerClass javax/sound/sampled/AudioFormat$Encoding outerClass javax/sound/sampled/AudioFormat innerClassName Encoding flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/sound/sampled/AudioFormat$Encoding
+header extends java/lang/Object nestHost javax/sound/sampled/AudioFormat flags 21
+innerclass innerClass javax/sound/sampled/AudioFormat$Encoding outerClass javax/sound/sampled/AudioFormat innerClassName Encoding flags 9
+
+class name javax/sound/sampled/AudioPermission
+header extends java/security/BasicPermission flags 21
+
+class name javax/sound/sampled/AudioSystem
+header extends java/lang/Object flags 21
+innerclass innerClass javax/sound/sampled/Mixer$Info outerClass javax/sound/sampled/Mixer innerClassName Info flags 9
+innerclass innerClass javax/sound/sampled/Line$Info outerClass javax/sound/sampled/Line innerClassName Info flags 9
+innerclass innerClass javax/sound/sampled/DataLine$Info outerClass javax/sound/sampled/DataLine innerClassName Info flags 9
+innerclass innerClass javax/sound/sampled/AudioFormat$Encoding outerClass javax/sound/sampled/AudioFormat innerClassName Encoding flags 9
+innerclass innerClass javax/sound/sampled/AudioFileFormat$Type outerClass javax/sound/sampled/AudioFileFormat innerClassName Type flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/sound/sampled/BooleanControl
+header extends javax/sound/sampled/Control nestMembers javax/sound/sampled/BooleanControl$Type flags 421
+innerclass innerClass javax/sound/sampled/BooleanControl$Type outerClass javax/sound/sampled/BooleanControl innerClassName Type flags 9
+innerclass innerClass javax/sound/sampled/Control$Type outerClass javax/sound/sampled/Control innerClassName Type flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/sound/sampled/BooleanControl$Type
+header extends javax/sound/sampled/Control$Type nestHost javax/sound/sampled/BooleanControl flags 21
+innerclass innerClass javax/sound/sampled/BooleanControl$Type outerClass javax/sound/sampled/BooleanControl innerClassName Type flags 9
+innerclass innerClass javax/sound/sampled/Control$Type outerClass javax/sound/sampled/Control innerClassName Type flags 9
+
+class name javax/sound/sampled/Clip
+header extends java/lang/Object implements javax/sound/sampled/DataLine flags 601
+
+class name javax/sound/sampled/CompoundControl
+header extends javax/sound/sampled/Control nestMembers javax/sound/sampled/CompoundControl$Type flags 421
+innerclass innerClass javax/sound/sampled/CompoundControl$Type outerClass javax/sound/sampled/CompoundControl innerClassName Type flags 9
+innerclass innerClass javax/sound/sampled/Control$Type outerClass javax/sound/sampled/Control innerClassName Type flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/sound/sampled/CompoundControl$Type
+header extends javax/sound/sampled/Control$Type nestHost javax/sound/sampled/CompoundControl flags 21
+innerclass innerClass javax/sound/sampled/CompoundControl$Type outerClass javax/sound/sampled/CompoundControl innerClassName Type flags 9
+innerclass innerClass javax/sound/sampled/Control$Type outerClass javax/sound/sampled/Control innerClassName Type flags 9
+
+class name javax/sound/sampled/Control
+header extends java/lang/Object nestMembers javax/sound/sampled/Control$Type flags 421
+innerclass innerClass javax/sound/sampled/Control$Type outerClass javax/sound/sampled/Control innerClassName Type flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/sound/sampled/Control$Type
+header extends java/lang/Object nestHost javax/sound/sampled/Control flags 21
+innerclass innerClass javax/sound/sampled/Control$Type outerClass javax/sound/sampled/Control innerClassName Type flags 9
+
+class name javax/sound/sampled/DataLine
+header extends java/lang/Object implements javax/sound/sampled/Line nestMembers javax/sound/sampled/DataLine$Info flags 601
+innerclass innerClass javax/sound/sampled/DataLine$Info outerClass javax/sound/sampled/DataLine innerClassName Info flags 9
+
+class name javax/sound/sampled/DataLine$Info
+header extends javax/sound/sampled/Line$Info nestHost javax/sound/sampled/DataLine flags 21
+innerclass innerClass javax/sound/sampled/DataLine$Info outerClass javax/sound/sampled/DataLine innerClassName Info flags 9
+innerclass innerClass javax/sound/sampled/Line$Info outerClass javax/sound/sampled/Line innerClassName Info flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/sound/sampled/EnumControl
+header extends javax/sound/sampled/Control nestMembers javax/sound/sampled/EnumControl$Type flags 421
+innerclass innerClass javax/sound/sampled/EnumControl$Type outerClass javax/sound/sampled/EnumControl innerClassName Type flags 9
+innerclass innerClass javax/sound/sampled/Control$Type outerClass javax/sound/sampled/Control innerClassName Type flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/sound/sampled/EnumControl$Type
+header extends javax/sound/sampled/Control$Type nestHost javax/sound/sampled/EnumControl flags 21
+innerclass innerClass javax/sound/sampled/EnumControl$Type outerClass javax/sound/sampled/EnumControl innerClassName Type flags 9
+innerclass innerClass javax/sound/sampled/Control$Type outerClass javax/sound/sampled/Control innerClassName Type flags 9
+
+class name javax/sound/sampled/FloatControl
+header extends javax/sound/sampled/Control nestMembers javax/sound/sampled/FloatControl$Type flags 421
+innerclass innerClass javax/sound/sampled/FloatControl$Type outerClass javax/sound/sampled/FloatControl innerClassName Type flags 9
+innerclass innerClass javax/sound/sampled/Control$Type outerClass javax/sound/sampled/Control innerClassName Type flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/sound/sampled/FloatControl$Type
+header extends javax/sound/sampled/Control$Type nestHost javax/sound/sampled/FloatControl flags 21
+innerclass innerClass javax/sound/sampled/FloatControl$Type outerClass javax/sound/sampled/FloatControl innerClassName Type flags 9
+innerclass innerClass javax/sound/sampled/Control$Type outerClass javax/sound/sampled/Control innerClassName Type flags 9
+
+class name javax/sound/sampled/Line
+header extends java/lang/Object implements java/lang/AutoCloseable nestMembers javax/sound/sampled/Line$Info 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/sound/sampled/Line$Info
+header extends java/lang/Object nestHost javax/sound/sampled/Line flags 21
+innerclass innerClass javax/sound/sampled/Line$Info outerClass javax/sound/sampled/Line innerClassName Info flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/sound/sampled/LineEvent
+header extends java/util/EventObject nestMembers javax/sound/sampled/LineEvent$Type flags 21
+innerclass innerClass javax/sound/sampled/LineEvent$Type outerClass javax/sound/sampled/LineEvent innerClassName Type flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/sound/sampled/LineEvent$Type
+header extends java/lang/Object nestHost javax/sound/sampled/LineEvent flags 21
+innerclass innerClass javax/sound/sampled/LineEvent$Type outerClass javax/sound/sampled/LineEvent innerClassName Type flags 9
+
+class name javax/sound/sampled/LineListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name javax/sound/sampled/LineUnavailableException
+header extends java/lang/Exception flags 21
+
+class name javax/sound/sampled/Mixer
+header extends java/lang/Object implements javax/sound/sampled/Line nestMembers javax/sound/sampled/Mixer$Info flags 601
+innerclass innerClass javax/sound/sampled/Mixer$Info outerClass javax/sound/sampled/Mixer innerClassName Info flags 9
+innerclass innerClass javax/sound/sampled/Line$Info outerClass javax/sound/sampled/Line innerClassName Info flags 9
+
+class name javax/sound/sampled/Mixer$Info
+header extends java/lang/Object nestHost javax/sound/sampled/Mixer flags 21
+innerclass innerClass javax/sound/sampled/Mixer$Info outerClass javax/sound/sampled/Mixer innerClassName Info flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/sound/sampled/Port
+header extends java/lang/Object implements javax/sound/sampled/Line nestMembers javax/sound/sampled/Port$Info flags 601
+innerclass innerClass javax/sound/sampled/Port$Info outerClass javax/sound/sampled/Port innerClassName Info flags 9
+
+class name javax/sound/sampled/Port$Info
+header extends javax/sound/sampled/Line$Info nestHost javax/sound/sampled/Port flags 21
+innerclass innerClass javax/sound/sampled/Port$Info outerClass javax/sound/sampled/Port innerClassName Info flags 9
+innerclass innerClass javax/sound/sampled/Line$Info outerClass javax/sound/sampled/Line innerClassName Info flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/sound/sampled/ReverbType
+header extends java/lang/Object flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/sound/sampled/SourceDataLine
+header extends java/lang/Object implements javax/sound/sampled/DataLine flags 601
+
+class name javax/sound/sampled/TargetDataLine
+header extends java/lang/Object implements javax/sound/sampled/DataLine flags 601
+
+class name javax/sound/sampled/UnsupportedAudioFileException
+header extends java/lang/Exception flags 21
+
+class name javax/sound/sampled/spi/AudioFileReader
+header extends java/lang/Object flags 421
+
+class name javax/sound/sampled/spi/AudioFileWriter
+header extends java/lang/Object flags 421
+innerclass innerClass javax/sound/sampled/AudioFileFormat$Type outerClass javax/sound/sampled/AudioFileFormat innerClassName Type flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/sound/sampled/spi/FormatConversionProvider
+header extends java/lang/Object flags 421
+innerclass innerClass javax/sound/sampled/AudioFormat$Encoding outerClass javax/sound/sampled/AudioFormat innerClassName Encoding flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/sound/sampled/spi/MixerProvider
+header extends java/lang/Object flags 421
+innerclass innerClass javax/sound/sampled/Mixer$Info outerClass javax/sound/sampled/Mixer innerClassName Info flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/AbstractAction
+header extends java/lang/Object implements javax/swing/Action,java/lang/Cloneable,java/io/Serializable flags 421
+
+class name javax/swing/AbstractButton
+header extends javax/swing/JComponent implements java/awt/ItemSelectable,javax/swing/SwingConstants nestMembers javax/swing/AbstractButton$AccessibleAbstractButton,javax/swing/AbstractButton$ButtonChangeListener flags 421 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UI")
+innerclass innerClass javax/swing/AbstractButton$AccessibleAbstractButton outerClass javax/swing/AbstractButton innerClassName AccessibleAbstractButton flags 404
+innerclass innerClass javax/swing/AbstractButton$ButtonChangeListener outerClass javax/swing/AbstractButton innerClassName ButtonChangeListener flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/AbstractButton$AccessibleAbstractButton
+header extends javax/swing/JComponent$AccessibleJComponent implements javax/accessibility/AccessibleAction,javax/accessibility/AccessibleValue,javax/accessibility/AccessibleText,javax/accessibility/AccessibleExtendedComponent nestHost javax/swing/AbstractButton flags 421
+innerclass innerClass javax/swing/AbstractButton$AccessibleAbstractButton outerClass javax/swing/AbstractButton innerClassName AccessibleAbstractButton flags 404
+innerclass innerClass java/awt/geom/Rectangle2D$Float outerClass java/awt/geom/Rectangle2D innerClassName Float flags 9
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+
+class name javax/swing/AbstractButton$ButtonChangeListener
+header extends java/lang/Object implements javax/swing/event/ChangeListener,java/io/Serializable nestHost javax/swing/AbstractButton flags 21
+innerclass innerClass javax/swing/AbstractButton$ButtonChangeListener outerClass javax/swing/AbstractButton innerClassName ButtonChangeListener flags 4
+
+class name javax/swing/AbstractCellEditor
+header extends java/lang/Object implements javax/swing/CellEditor,java/io/Serializable flags 421
+
+class name javax/swing/AbstractListModel
+header extends java/lang/Object implements javax/swing/ListModel,java/io/Serializable flags 421 signature <E:Ljava/lang/Object;>Ljava/lang/Object;Ljavax/swing/ListModel<TE;>;Ljava/io/Serializable;
+
+class name javax/swing/AbstractSpinnerModel
+header extends java/lang/Object implements javax/swing/SpinnerModel,java/io/Serializable flags 421
+
+class name javax/swing/Action
+header extends java/lang/Object implements java/awt/event/ActionListener flags 601
+
+class name javax/swing/ActionMap
+header extends java/lang/Object implements java/io/Serializable flags 21
+
+class name javax/swing/BorderFactory
+header extends java/lang/Object flags 21
+
+class name javax/swing/BoundedRangeModel
+header extends java/lang/Object flags 601
+
+class name javax/swing/Box
+header extends javax/swing/JComponent implements javax/accessibility/Accessible nestMembers javax/swing/Box$AccessibleBox,javax/swing/Box$Filler,javax/swing/Box$Filler$AccessibleBoxFiller flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="accessibleContext")
+innerclass innerClass javax/swing/Box$AccessibleBox outerClass javax/swing/Box innerClassName AccessibleBox flags 4
+innerclass innerClass javax/swing/Box$Filler outerClass javax/swing/Box innerClassName Filler flags 9
+innerclass innerClass javax/swing/Box$Filler$AccessibleBoxFiller outerClass javax/swing/Box$Filler innerClassName AccessibleBoxFiller flags 4
+
+class name javax/swing/Box$AccessibleBox
+header extends java/awt/Container$AccessibleAWTContainer nestHost javax/swing/Box flags 21
+innerclass innerClass javax/swing/Box$AccessibleBox outerClass javax/swing/Box innerClassName AccessibleBox flags 4
+innerclass innerClass java/awt/Container$AccessibleAWTContainer outerClass java/awt/Container innerClassName AccessibleAWTContainer flags 4
+
+class name javax/swing/Box$Filler
+header extends javax/swing/JComponent implements javax/accessibility/Accessible nestHost javax/swing/Box flags 21
+innerclass innerClass javax/swing/Box$Filler outerClass javax/swing/Box innerClassName Filler flags 9
+innerclass innerClass javax/swing/Box$Filler$AccessibleBoxFiller outerClass javax/swing/Box$Filler innerClassName AccessibleBoxFiller flags 4
+
+class name javax/swing/Box$Filler$AccessibleBoxFiller
+header extends java/awt/Component$AccessibleAWTComponent nestHost javax/swing/Box flags 21
+innerclass innerClass javax/swing/Box$Filler outerClass javax/swing/Box innerClassName Filler flags 9
+innerclass innerClass javax/swing/Box$Filler$AccessibleBoxFiller outerClass javax/swing/Box$Filler innerClassName AccessibleBoxFiller flags 4
+innerclass innerClass java/awt/Component$AccessibleAWTComponent outerClass java/awt/Component innerClassName AccessibleAWTComponent flags 404
+
+class name javax/swing/BoxLayout
+header extends java/lang/Object implements java/awt/LayoutManager2,java/io/Serializable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/ButtonGroup
+header extends java/lang/Object implements java/io/Serializable flags 21
+
+class name javax/swing/ButtonModel
+header extends java/lang/Object implements java/awt/ItemSelectable flags 601
+
+class name javax/swing/CellEditor
+header extends java/lang/Object flags 601
+
+class name javax/swing/CellRendererPane
+header extends java/awt/Container implements javax/accessibility/Accessible nestMembers javax/swing/CellRendererPane$AccessibleCellRendererPane flags 21
+innerclass innerClass javax/swing/CellRendererPane$AccessibleCellRendererPane outerClass javax/swing/CellRendererPane innerClassName AccessibleCellRendererPane flags 4
+
+class name javax/swing/CellRendererPane$AccessibleCellRendererPane
+header extends java/awt/Container$AccessibleAWTContainer nestHost javax/swing/CellRendererPane flags 21
+innerclass innerClass javax/swing/CellRendererPane$AccessibleCellRendererPane outerClass javax/swing/CellRendererPane innerClassName AccessibleCellRendererPane flags 4
+innerclass innerClass java/awt/Container$AccessibleAWTContainer outerClass java/awt/Container innerClassName AccessibleAWTContainer flags 4
+
+class name javax/swing/ComboBoxEditor
+header extends java/lang/Object flags 601
+
+class name javax/swing/ComboBoxModel
+header extends java/lang/Object implements javax/swing/ListModel flags 601 signature <E:Ljava/lang/Object;>Ljava/lang/Object;Ljavax/swing/ListModel<TE;>;
+
+class name javax/swing/ComponentInputMap
+header extends javax/swing/InputMap flags 21
+
+class name javax/swing/DebugGraphics
+header extends java/awt/Graphics flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/DefaultBoundedRangeModel
+header extends java/lang/Object implements javax/swing/BoundedRangeModel,java/io/Serializable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/DefaultButtonModel
+header extends java/lang/Object implements javax/swing/ButtonModel,java/io/Serializable flags 21
+
+class name javax/swing/DefaultCellEditor
+header extends javax/swing/AbstractCellEditor implements javax/swing/table/TableCellEditor,javax/swing/tree/TreeCellEditor nestMembers javax/swing/DefaultCellEditor$EditorDelegate flags 21
+innerclass innerClass javax/swing/DefaultCellEditor$EditorDelegate outerClass javax/swing/DefaultCellEditor innerClassName EditorDelegate flags 4
+
+class name javax/swing/DefaultCellEditor$EditorDelegate
+header extends java/lang/Object implements java/awt/event/ActionListener,java/awt/event/ItemListener,java/io/Serializable nestHost javax/swing/DefaultCellEditor flags 21
+innerclass innerClass javax/swing/DefaultCellEditor$EditorDelegate outerClass javax/swing/DefaultCellEditor innerClassName EditorDelegate flags 4
+
+class name javax/swing/DefaultComboBoxModel
+header extends javax/swing/AbstractListModel implements javax/swing/MutableComboBoxModel,java/io/Serializable flags 21 signature <E:Ljava/lang/Object;>Ljavax/swing/AbstractListModel<TE;>;Ljavax/swing/MutableComboBoxModel<TE;>;Ljava/io/Serializable;
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+method name addAll descriptor (Ljava/util/Collection;)V flags 1 signature (Ljava/util/Collection<+TE;>;)V
+method name addAll descriptor (ILjava/util/Collection;)V flags 1 signature (ILjava/util/Collection<+TE;>;)V
+
+class name javax/swing/DefaultFocusManager
+header extends javax/swing/FocusManager flags 21
+
+class name javax/swing/DefaultListCellRenderer
+header extends javax/swing/JLabel implements javax/swing/ListCellRenderer,java/io/Serializable nestMembers javax/swing/DefaultListCellRenderer$UIResource flags 21 signature Ljavax/swing/JLabel;Ljavax/swing/ListCellRenderer<Ljava/lang/Object;>;Ljava/io/Serializable;
+innerclass innerClass javax/swing/DefaultListCellRenderer$UIResource outerClass javax/swing/DefaultListCellRenderer innerClassName UIResource flags 9
+innerclass innerClass javax/swing/JList$DropLocation outerClass javax/swing/JList innerClassName DropLocation flags 19
+
+class name javax/swing/DefaultListCellRenderer$UIResource
+header extends javax/swing/DefaultListCellRenderer implements javax/swing/plaf/UIResource nestHost javax/swing/DefaultListCellRenderer flags 21
+innerclass innerClass javax/swing/DefaultListCellRenderer$UIResource outerClass javax/swing/DefaultListCellRenderer innerClassName UIResource flags 9
+
+class name javax/swing/DefaultListModel
+header extends javax/swing/AbstractListModel flags 21 signature <E:Ljava/lang/Object;>Ljavax/swing/AbstractListModel<TE;>;
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+method name addAll descriptor (Ljava/util/Collection;)V flags 1 signature (Ljava/util/Collection<+TE;>;)V
+method name addAll descriptor (ILjava/util/Collection;)V flags 1 signature (ILjava/util/Collection<+TE;>;)V
+
+class name javax/swing/DefaultListSelectionModel
+header extends java/lang/Object implements javax/swing/ListSelectionModel,java/lang/Cloneable,java/io/Serializable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/DefaultRowSorter
+header extends javax/swing/RowSorter nestMembers javax/swing/DefaultRowSorter$ModelWrapper flags 421 signature <M:Ljava/lang/Object;I:Ljava/lang/Object;>Ljavax/swing/RowSorter<TM;>;
+innerclass innerClass javax/swing/DefaultRowSorter$ModelWrapper outerClass javax/swing/DefaultRowSorter innerClassName ModelWrapper flags 40c
+innerclass innerClass javax/swing/RowSorter$SortKey outerClass javax/swing/RowSorter innerClassName SortKey flags 9
+innerclass innerClass javax/swing/RowFilter$Entry outerClass javax/swing/RowFilter innerClassName Entry flags 409
+
+class name javax/swing/DefaultRowSorter$ModelWrapper
+header extends java/lang/Object nestHost javax/swing/DefaultRowSorter flags 421 signature <M:Ljava/lang/Object;I:Ljava/lang/Object;>Ljava/lang/Object;
+innerclass innerClass javax/swing/DefaultRowSorter$ModelWrapper outerClass javax/swing/DefaultRowSorter innerClassName ModelWrapper flags 40c
+
+class name javax/swing/DefaultSingleSelectionModel
+header extends java/lang/Object implements javax/swing/SingleSelectionModel,java/io/Serializable flags 21
+
+class name javax/swing/DesktopManager
+header extends java/lang/Object flags 601
+
+class name javax/swing/DropMode
+header extends java/lang/Enum flags 4031 signature Ljava/lang/Enum<Ljavax/swing/DropMode;>;
+
+class name javax/swing/FocusManager
+header extends java/awt/DefaultKeyboardFocusManager flags 421
+
+class name javax/swing/GrayFilter
+header extends java/awt/image/RGBImageFilter flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/GroupLayout
+header extends java/lang/Object implements java/awt/LayoutManager2 nestMembers javax/swing/GroupLayout$ParallelGroup,javax/swing/GroupLayout$SequentialGroup,javax/swing/GroupLayout$Group,javax/swing/GroupLayout$Spring,javax/swing/GroupLayout$Alignment flags 21
+innerclass innerClass javax/swing/GroupLayout$ParallelGroup outerClass javax/swing/GroupLayout innerClassName ParallelGroup flags 1
+innerclass innerClass javax/swing/GroupLayout$SequentialGroup outerClass javax/swing/GroupLayout innerClassName SequentialGroup flags 1
+innerclass innerClass javax/swing/GroupLayout$Group outerClass javax/swing/GroupLayout innerClassName Group flags 401
+innerclass innerClass javax/swing/GroupLayout$Spring outerClass javax/swing/GroupLayout innerClassName Spring flags 402
+innerclass innerClass javax/swing/GroupLayout$Alignment outerClass javax/swing/GroupLayout innerClassName Alignment flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/GroupLayout$Alignment
+header extends java/lang/Enum nestHost javax/swing/GroupLayout flags 4031 signature Ljava/lang/Enum<Ljavax/swing/GroupLayout$Alignment;>;
+innerclass innerClass javax/swing/GroupLayout$Alignment outerClass javax/swing/GroupLayout innerClassName Alignment flags 4019
+
+class name javax/swing/GroupLayout$Group
+header extends javax/swing/GroupLayout$Spring nestHost javax/swing/GroupLayout flags 421
+innerclass innerClass javax/swing/GroupLayout$Spring outerClass javax/swing/GroupLayout innerClassName Spring flags 402
+innerclass innerClass javax/swing/GroupLayout$Group outerClass javax/swing/GroupLayout innerClassName Group flags 401
+
+class name javax/swing/GroupLayout$ParallelGroup
+header extends javax/swing/GroupLayout$Group nestHost javax/swing/GroupLayout flags 21
+innerclass innerClass javax/swing/GroupLayout$Alignment outerClass javax/swing/GroupLayout innerClassName Alignment flags 4019
+innerclass innerClass javax/swing/GroupLayout$ParallelGroup outerClass javax/swing/GroupLayout innerClassName ParallelGroup flags 1
+innerclass innerClass javax/swing/GroupLayout$Group outerClass javax/swing/GroupLayout innerClassName Group flags 401
+innerclass innerClass javax/swing/GroupLayout$Spring outerClass javax/swing/GroupLayout innerClassName Spring flags 402
+
+class name javax/swing/GroupLayout$SequentialGroup
+header extends javax/swing/GroupLayout$Group nestHost javax/swing/GroupLayout flags 21
+innerclass innerClass javax/swing/GroupLayout$Spring outerClass javax/swing/GroupLayout innerClassName Spring flags 402
+innerclass innerClass javax/swing/GroupLayout$SequentialGroup outerClass javax/swing/GroupLayout innerClassName SequentialGroup flags 1
+innerclass innerClass javax/swing/GroupLayout$Group outerClass javax/swing/GroupLayout innerClassName Group flags 401
+innerclass innerClass javax/swing/LayoutStyle$ComponentPlacement outerClass javax/swing/LayoutStyle innerClassName ComponentPlacement flags 4019
+innerclass innerClass java/awt/Component$BaselineResizeBehavior outerClass java/awt/Component innerClassName BaselineResizeBehavior flags 4019
+
+class name javax/swing/GroupLayout$Spring
+header extends java/lang/Object nestHost javax/swing/GroupLayout flags 420
+innerclass innerClass javax/swing/GroupLayout$Spring outerClass javax/swing/GroupLayout innerClassName Spring flags 402
+innerclass innerClass javax/swing/GroupLayout$Alignment outerClass javax/swing/GroupLayout innerClassName Alignment flags 4019
+innerclass innerClass java/awt/Component$BaselineResizeBehavior outerClass java/awt/Component innerClassName BaselineResizeBehavior flags 4019
+
+class name javax/swing/Icon
+header extends java/lang/Object flags 601
+
+class name javax/swing/ImageIcon
+header extends java/lang/Object implements javax/swing/Icon,java/io/Serializable,javax/accessibility/Accessible nestMembers javax/swing/ImageIcon$AccessibleImageIcon flags 21
+innerclass innerClass javax/swing/ImageIcon$AccessibleImageIcon outerClass javax/swing/ImageIcon innerClassName AccessibleImageIcon flags 4
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/ImageIcon$AccessibleImageIcon
+header extends javax/accessibility/AccessibleContext implements javax/accessibility/AccessibleIcon,java/io/Serializable nestHost javax/swing/ImageIcon flags 21
+innerclass innerClass javax/swing/ImageIcon$AccessibleImageIcon outerClass javax/swing/ImageIcon innerClassName AccessibleImageIcon flags 4
+
+class name javax/swing/InputMap
+header extends java/lang/Object implements java/io/Serializable flags 21
+
+class name javax/swing/InputVerifier
+header extends java/lang/Object flags 421
+
+class name javax/swing/InternalFrameFocusTraversalPolicy
+header extends java/awt/FocusTraversalPolicy flags 421
+
+class name javax/swing/JApplet
+header extends java/applet/Applet implements javax/accessibility/Accessible,javax/swing/RootPaneContainer,javax/swing/TransferHandler$HasGetTransferHandler nestMembers javax/swing/JApplet$AccessibleJApplet flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="9")@Ljava/beans/JavaBean;(defaultProperty="JMenuBar",description="Swing's\u005C;u0020;Applet\u005C;u0020;subclass.")@Ljavax/swing/SwingContainer;(delegate="getContentPane")
+innerclass innerClass javax/swing/JApplet$AccessibleJApplet outerClass javax/swing/JApplet innerClassName AccessibleJApplet flags 4
+innerclass innerClass javax/swing/TransferHandler$HasGetTransferHandler outerClass javax/swing/TransferHandler innerClassName HasGetTransferHandler flags 608
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JApplet$AccessibleJApplet
+header extends java/applet/Applet$AccessibleApplet nestHost javax/swing/JApplet flags 21
+innerclass innerClass javax/swing/JApplet$AccessibleJApplet outerClass javax/swing/JApplet innerClassName AccessibleJApplet flags 4
+innerclass innerClass java/applet/Applet$AccessibleApplet outerClass java/applet/Applet innerClassName AccessibleApplet flags 4
+
+class name javax/swing/JButton
+header extends javax/swing/AbstractButton implements javax/accessibility/Accessible nestMembers javax/swing/JButton$AccessibleJButton flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UIClassID",description="An\u005C;u0020;implementation\u005C;u0020;of\u005C;u0020;a\u005C;u0020;\u005C;u0022;push\u005C;u0022;\u005C;u0020;button.")@Ljavax/swing/SwingContainer;(value=Zfalse)
+innerclass innerClass javax/swing/JButton$AccessibleJButton outerClass javax/swing/JButton innerClassName AccessibleJButton flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+-method name getUIClassID descriptor ()Ljava/lang/String;
+method name getUIClassID descriptor ()Ljava/lang/String; flags 1 runtimeAnnotations @Ljava/beans/BeanProperty;(expert=Ztrue,bound=Zfalse,description="A\u005C;u0020;string\u005C;u0020;that\u005C;u0020;specifies\u005C;u0020;the\u005C;u0020;name\u005C;u0020;of\u005C;u0020;the\u005C;u0020;L&F\u005C;u0020;class.")
+
+class name javax/swing/JButton$AccessibleJButton
+header extends javax/swing/AbstractButton$AccessibleAbstractButton nestHost javax/swing/JButton flags 21
+innerclass innerClass javax/swing/JButton$AccessibleJButton outerClass javax/swing/JButton innerClassName AccessibleJButton flags 4
+innerclass innerClass javax/swing/AbstractButton$AccessibleAbstractButton outerClass javax/swing/AbstractButton innerClassName AccessibleAbstractButton flags 404
+
+class name javax/swing/JCheckBox
+header extends javax/swing/JToggleButton implements javax/accessibility/Accessible nestMembers javax/swing/JCheckBox$AccessibleJCheckBox flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(description="A\u005C;u0020;component\u005C;u0020;which\u005C;u0020;can\u005C;u0020;be\u005C;u0020;selected\u005C;u0020;or\u005C;u0020;deselected.")@Ljavax/swing/SwingContainer;(value=Zfalse)
+innerclass innerClass javax/swing/JCheckBox$AccessibleJCheckBox outerClass javax/swing/JCheckBox innerClassName AccessibleJCheckBox flags 4
+-method name getUIClassID descriptor ()Ljava/lang/String;
+method name getUIClassID descriptor ()Ljava/lang/String; flags 1 runtimeAnnotations @Ljava/beans/BeanProperty;(expert=Ztrue,bound=Zfalse,description="A\u005C;u0020;string\u005C;u0020;that\u005C;u0020;specifies\u005C;u0020;the\u005C;u0020;name\u005C;u0020;of\u005C;u0020;the\u005C;u0020;L&F\u005C;u0020;class")
+
+class name javax/swing/JCheckBox$AccessibleJCheckBox
+header extends javax/swing/JToggleButton$AccessibleJToggleButton nestHost javax/swing/JCheckBox flags 21
+innerclass innerClass javax/swing/JCheckBox$AccessibleJCheckBox outerClass javax/swing/JCheckBox innerClassName AccessibleJCheckBox flags 4
+innerclass innerClass javax/swing/JToggleButton$AccessibleJToggleButton outerClass javax/swing/JToggleButton innerClassName AccessibleJToggleButton flags 4
+
+class name javax/swing/JCheckBoxMenuItem
+header extends javax/swing/JMenuItem implements javax/swing/SwingConstants,javax/accessibility/Accessible nestMembers javax/swing/JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(description="A\u005C;u0020;menu\u005C;u0020;item\u005C;u0020;which\u005C;u0020;can\u005C;u0020;be\u005C;u0020;selected\u005C;u0020;or\u005C;u0020;deselected.")@Ljavax/swing/SwingContainer;(value=Zfalse)
+innerclass innerClass javax/swing/JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem outerClass javax/swing/JCheckBoxMenuItem innerClassName AccessibleJCheckBoxMenuItem flags 4
+innerclass innerClass javax/swing/JToggleButton$ToggleButtonModel outerClass javax/swing/JToggleButton innerClassName ToggleButtonModel flags 9
+
+class name javax/swing/JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem
+header extends javax/swing/JMenuItem$AccessibleJMenuItem nestHost javax/swing/JCheckBoxMenuItem flags 21
+innerclass innerClass javax/swing/JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem outerClass javax/swing/JCheckBoxMenuItem innerClassName AccessibleJCheckBoxMenuItem flags 4
+innerclass innerClass javax/swing/JMenuItem$AccessibleJMenuItem outerClass javax/swing/JMenuItem innerClassName AccessibleJMenuItem flags 4
+
+class name javax/swing/JColorChooser
+header extends javax/swing/JComponent implements javax/accessibility/Accessible nestMembers javax/swing/JColorChooser$AccessibleJColorChooser flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UI",description="A\u005C;u0020;component\u005C;u0020;that\u005C;u0020;supports\u005C;u0020;selecting\u005C;u0020;a\u005C;u0020;Color.")@Ljavax/swing/SwingContainer;(value=Zfalse)
+innerclass innerClass javax/swing/JColorChooser$AccessibleJColorChooser outerClass javax/swing/JColorChooser innerClassName AccessibleJColorChooser flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JColorChooser$AccessibleJColorChooser
+header extends javax/swing/JComponent$AccessibleJComponent nestHost javax/swing/JColorChooser flags 21
+innerclass innerClass javax/swing/JColorChooser$AccessibleJColorChooser outerClass javax/swing/JColorChooser innerClassName AccessibleJColorChooser flags 4
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+
+class name javax/swing/JComboBox
+header extends javax/swing/JComponent implements java/awt/ItemSelectable,javax/swing/event/ListDataListener,java/awt/event/ActionListener,javax/accessibility/Accessible nestMembers javax/swing/JComboBox$AccessibleJComboBox,javax/swing/JComboBox$KeySelectionManager flags 21 signature <E:Ljava/lang/Object;>Ljavax/swing/JComponent;Ljava/awt/ItemSelectable;Ljavax/swing/event/ListDataListener;Ljava/awt/event/ActionListener;Ljavax/accessibility/Accessible; runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UI",description="A\u005C;u0020;combination\u005C;u0020;of\u005C;u0020;a\u005C;u0020;text\u005C;u0020;field\u005C;u0020;and\u005C;u0020;a\u005C;u0020;drop-down\u005C;u0020;list.")@Ljavax/swing/SwingContainer;(value=Zfalse)
+innerclass innerClass javax/swing/JComboBox$AccessibleJComboBox outerClass javax/swing/JComboBox innerClassName AccessibleJComboBox flags 4
+innerclass innerClass javax/swing/JComboBox$KeySelectionManager outerClass javax/swing/JComboBox innerClassName KeySelectionManager flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JComboBox$AccessibleJComboBox
+header extends javax/swing/JComponent$AccessibleJComponent implements javax/accessibility/AccessibleAction,javax/accessibility/AccessibleSelection nestHost javax/swing/JComboBox flags 21
+innerclass innerClass javax/swing/JComboBox$AccessibleJComboBox outerClass javax/swing/JComboBox innerClassName AccessibleJComboBox flags 4
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+
+class name javax/swing/JComboBox$KeySelectionManager
+header extends java/lang/Object nestHost javax/swing/JComboBox flags 601
+innerclass innerClass javax/swing/JComboBox$KeySelectionManager outerClass javax/swing/JComboBox innerClassName KeySelectionManager flags 609
+
+class name javax/swing/JComponent
+header extends java/awt/Container implements java/io/Serializable,javax/swing/TransferHandler$HasGetTransferHandler nestMembers javax/swing/JComponent$AccessibleJComponent,javax/swing/JComponent$AccessibleJComponent$AccessibleFocusHandler,javax/swing/JComponent$AccessibleJComponent$AccessibleContainerHandler flags 421 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UIClassID")
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+innerclass innerClass java/awt/Component$BaselineResizeBehavior outerClass java/awt/Component innerClassName BaselineResizeBehavior flags 4019
+innerclass innerClass javax/swing/TransferHandler$DropLocation outerClass javax/swing/TransferHandler innerClassName DropLocation flags 9
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass javax/swing/TransferHandler$HasGetTransferHandler outerClass javax/swing/TransferHandler innerClassName HasGetTransferHandler flags 608
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent$AccessibleFocusHandler outerClass javax/swing/JComponent$AccessibleJComponent innerClassName AccessibleFocusHandler flags 4
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent$AccessibleContainerHandler outerClass javax/swing/JComponent$AccessibleJComponent innerClassName AccessibleContainerHandler flags 4
+innerclass innerClass java/awt/RenderingHints$Key outerClass java/awt/RenderingHints innerClassName Key flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JComponent$AccessibleJComponent
+header extends java/awt/Container$AccessibleAWTContainer implements javax/accessibility/AccessibleExtendedComponent nestHost javax/swing/JComponent flags 421
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent$AccessibleFocusHandler outerClass javax/swing/JComponent$AccessibleJComponent innerClassName AccessibleFocusHandler flags 4
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent$AccessibleContainerHandler outerClass javax/swing/JComponent$AccessibleJComponent innerClassName AccessibleContainerHandler flags 4
+innerclass innerClass java/awt/Container$AccessibleAWTContainer outerClass java/awt/Container innerClassName AccessibleAWTContainer flags 4
+
+class name javax/swing/JComponent$AccessibleJComponent$AccessibleContainerHandler
+header extends java/lang/Object implements java/awt/event/ContainerListener nestHost javax/swing/JComponent flags 21
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent$AccessibleContainerHandler outerClass javax/swing/JComponent$AccessibleJComponent innerClassName AccessibleContainerHandler flags 4
+
+class name javax/swing/JComponent$AccessibleJComponent$AccessibleFocusHandler
+header extends java/lang/Object implements java/awt/event/FocusListener nestHost javax/swing/JComponent flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent$AccessibleFocusHandler outerClass javax/swing/JComponent$AccessibleJComponent innerClassName AccessibleFocusHandler flags 4
+
+class name javax/swing/JDesktopPane
+header extends javax/swing/JLayeredPane implements javax/accessibility/Accessible nestMembers javax/swing/JDesktopPane$AccessibleJDesktopPane flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UI")
+innerclass innerClass javax/swing/JDesktopPane$AccessibleJDesktopPane outerClass javax/swing/JDesktopPane innerClassName AccessibleJDesktopPane flags 4
+innerclass innerClass javax/swing/JInternalFrame$JDesktopIcon outerClass javax/swing/JInternalFrame innerClassName JDesktopIcon flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JDesktopPane$AccessibleJDesktopPane
+header extends javax/swing/JComponent$AccessibleJComponent nestHost javax/swing/JDesktopPane flags 21
+innerclass innerClass javax/swing/JDesktopPane$AccessibleJDesktopPane outerClass javax/swing/JDesktopPane innerClassName AccessibleJDesktopPane flags 4
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+
+class name javax/swing/JDialog
+header extends java/awt/Dialog implements javax/swing/WindowConstants,javax/accessibility/Accessible,javax/swing/RootPaneContainer,javax/swing/TransferHandler$HasGetTransferHandler nestMembers javax/swing/JDialog$AccessibleJDialog flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="JMenuBar",description="A\u005C;u0020;toplevel\u005C;u0020;window\u005C;u0020;for\u005C;u0020;creating\u005C;u0020;dialog\u005C;u0020;boxes.")@Ljavax/swing/SwingContainer;(delegate="getContentPane")
+innerclass innerClass javax/swing/JDialog$AccessibleJDialog outerClass javax/swing/JDialog innerClassName AccessibleJDialog flags 4
+innerclass innerClass java/awt/Dialog$ModalityType outerClass java/awt/Dialog innerClassName ModalityType flags 4019
+innerclass innerClass javax/swing/TransferHandler$HasGetTransferHandler outerClass javax/swing/TransferHandler innerClassName HasGetTransferHandler flags 608
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JDialog$AccessibleJDialog
+header extends java/awt/Dialog$AccessibleAWTDialog nestHost javax/swing/JDialog flags 21
+innerclass innerClass javax/swing/JDialog$AccessibleJDialog outerClass javax/swing/JDialog innerClassName AccessibleJDialog flags 4
+innerclass innerClass java/awt/Dialog$AccessibleAWTDialog outerClass java/awt/Dialog innerClassName AccessibleAWTDialog flags 4
+
+class name javax/swing/JEditorPane
+header extends javax/swing/text/JTextComponent nestMembers javax/swing/JEditorPane$JEditorPaneAccessibleHypertextSupport,javax/swing/JEditorPane$JEditorPaneAccessibleHypertextSupport$HTMLLink,javax/swing/JEditorPane$AccessibleJEditorPaneHTML,javax/swing/JEditorPane$AccessibleJEditorPane flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UIClassID",description="A\u005C;u0020;text\u005C;u0020;component\u005C;u0020;to\u005C;u0020;edit\u005C;u0020;various\u005C;u0020;types\u005C;u0020;of\u005C;u0020;content.")@Ljavax/swing/SwingContainer;(value=Zfalse)
+innerclass innerClass javax/swing/JEditorPane$JEditorPaneAccessibleHypertextSupport outerClass javax/swing/JEditorPane innerClassName JEditorPaneAccessibleHypertextSupport flags 4
+innerclass innerClass javax/swing/JEditorPane$AccessibleJEditorPaneHTML outerClass javax/swing/JEditorPane innerClassName AccessibleJEditorPaneHTML flags 4
+innerclass innerClass javax/swing/JEditorPane$AccessibleJEditorPane outerClass javax/swing/JEditorPane innerClassName AccessibleJEditorPane flags 4
+innerclass innerClass javax/swing/text/html/HTMLDocument$Iterator outerClass javax/swing/text/html/HTMLDocument innerClassName Iterator flags 409
+innerclass innerClass javax/swing/JEditorPane$JEditorPaneAccessibleHypertextSupport$HTMLLink outerClass javax/swing/JEditorPane$JEditorPaneAccessibleHypertextSupport innerClassName HTMLLink flags 1
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JEditorPane$AccessibleJEditorPane
+header extends javax/swing/text/JTextComponent$AccessibleJTextComponent nestHost javax/swing/JEditorPane flags 21
+innerclass innerClass javax/swing/JEditorPane$AccessibleJEditorPane outerClass javax/swing/JEditorPane innerClassName AccessibleJEditorPane flags 4
+innerclass innerClass javax/swing/text/JTextComponent$AccessibleJTextComponent outerClass javax/swing/text/JTextComponent innerClassName AccessibleJTextComponent flags 1
+
+class name javax/swing/JEditorPane$AccessibleJEditorPaneHTML
+header extends javax/swing/JEditorPane$AccessibleJEditorPane nestHost javax/swing/JEditorPane flags 21
+innerclass innerClass javax/swing/JEditorPane$AccessibleJEditorPaneHTML outerClass javax/swing/JEditorPane innerClassName AccessibleJEditorPaneHTML flags 4
+innerclass innerClass javax/swing/JEditorPane$JEditorPaneAccessibleHypertextSupport outerClass javax/swing/JEditorPane innerClassName JEditorPaneAccessibleHypertextSupport flags 4
+innerclass innerClass javax/swing/JEditorPane$AccessibleJEditorPane outerClass javax/swing/JEditorPane innerClassName AccessibleJEditorPane flags 4
+
+class name javax/swing/JEditorPane$JEditorPaneAccessibleHypertextSupport
+header extends javax/swing/JEditorPane$AccessibleJEditorPane implements javax/accessibility/AccessibleHypertext nestHost javax/swing/JEditorPane flags 21
+innerclass innerClass javax/swing/JEditorPane$JEditorPaneAccessibleHypertextSupport outerClass javax/swing/JEditorPane innerClassName JEditorPaneAccessibleHypertextSupport flags 4
+innerclass innerClass javax/swing/JEditorPane$JEditorPaneAccessibleHypertextSupport$HTMLLink outerClass javax/swing/JEditorPane$JEditorPaneAccessibleHypertextSupport innerClassName HTMLLink flags 1
+innerclass innerClass javax/swing/JEditorPane$AccessibleJEditorPane outerClass javax/swing/JEditorPane innerClassName AccessibleJEditorPane flags 4
+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/JEditorPane$JEditorPaneAccessibleHypertextSupport$HTMLLink
+header extends javax/accessibility/AccessibleHyperlink nestHost javax/swing/JEditorPane flags 21
+innerclass innerClass javax/swing/JEditorPane$JEditorPaneAccessibleHypertextSupport outerClass javax/swing/JEditorPane innerClassName JEditorPaneAccessibleHypertextSupport flags 4
+innerclass innerClass javax/swing/JEditorPane$JEditorPaneAccessibleHypertextSupport$HTMLLink outerClass javax/swing/JEditorPane$JEditorPaneAccessibleHypertextSupport innerClassName HTMLLink flags 1
+innerclass innerClass javax/swing/event/HyperlinkEvent$EventType outerClass javax/swing/event/HyperlinkEvent innerClassName EventType 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/JFileChooser
+header extends javax/swing/JComponent implements javax/accessibility/Accessible nestMembers javax/swing/JFileChooser$AccessibleJFileChooser flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UI",description="A\u005C;u0020;component\u005C;u0020;which\u005C;u0020;allows\u005C;u0020;for\u005C;u0020;the\u005C;u0020;interactive\u005C;u0020;selection\u005C;u0020;of\u005C;u0020;a\u005C;u0020;file.")@Ljavax/swing/SwingContainer;(value=Zfalse)
+innerclass innerClass javax/swing/JFileChooser$AccessibleJFileChooser outerClass javax/swing/JFileChooser innerClassName AccessibleJFileChooser flags 4
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+-method name setControlButtonsAreShown descriptor (Z)V
+-method name getUIClassID descriptor ()Ljava/lang/String;
+method name setControlButtonsAreShown descriptor (Z)V flags 1 runtimeAnnotations @Ljava/beans/BeanProperty;(description="Sets\u005C;u0020;whether\u005C;u0020;the\u005C;u0020;approve\u005C;u0020;&\u005C;u0020;cancel\u005C;u0020;buttons\u005C;u0020;are\u005C;u0020;shown.",preferred=Ztrue)
+method name getUIClassID descriptor ()Ljava/lang/String; flags 1 runtimeAnnotations @Ljava/beans/BeanProperty;(expert=Ztrue,bound=Zfalse,description="A\u005C;u0020;string\u005C;u0020;that\u005C;u0020;specifies\u005C;u0020;the\u005C;u0020;name\u005C;u0020;of\u005C;u0020;the\u005C;u0020;L&F\u005C;u0020;class.")
+
+class name javax/swing/JFileChooser$AccessibleJFileChooser
+header extends javax/swing/JComponent$AccessibleJComponent nestHost javax/swing/JFileChooser flags 21
+innerclass innerClass javax/swing/JFileChooser$AccessibleJFileChooser outerClass javax/swing/JFileChooser innerClassName AccessibleJFileChooser flags 4
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+
+class name javax/swing/JFormattedTextField
+header extends javax/swing/JTextField nestMembers javax/swing/JFormattedTextField$AbstractFormatter,javax/swing/JFormattedTextField$AbstractFormatterFactory flags 21 runtimeAnnotations @Ljava/beans/JavaBean;
+innerclass innerClass javax/swing/JFormattedTextField$AbstractFormatter outerClass javax/swing/JFormattedTextField innerClassName AbstractFormatter flags 409
+innerclass innerClass javax/swing/JFormattedTextField$AbstractFormatterFactory outerClass javax/swing/JFormattedTextField innerClassName AbstractFormatterFactory flags 409
+
+class name javax/swing/JFormattedTextField$AbstractFormatter
+header extends java/lang/Object implements java/io/Serializable nestHost javax/swing/JFormattedTextField flags 421
+innerclass innerClass javax/swing/JFormattedTextField$AbstractFormatter outerClass javax/swing/JFormattedTextField innerClassName AbstractFormatter flags 409
+
+class name javax/swing/JFormattedTextField$AbstractFormatterFactory
+header extends java/lang/Object nestHost javax/swing/JFormattedTextField flags 421
+innerclass innerClass javax/swing/JFormattedTextField$AbstractFormatterFactory outerClass javax/swing/JFormattedTextField innerClassName AbstractFormatterFactory flags 409
+innerclass innerClass javax/swing/JFormattedTextField$AbstractFormatter outerClass javax/swing/JFormattedTextField innerClassName AbstractFormatter flags 409
+
+class name javax/swing/JFrame
+header extends java/awt/Frame implements javax/swing/WindowConstants,javax/accessibility/Accessible,javax/swing/RootPaneContainer,javax/swing/TransferHandler$HasGetTransferHandler nestMembers javax/swing/JFrame$AccessibleJFrame flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="JMenuBar",description="A\u005C;u0020;toplevel\u005C;u0020;window\u005C;u0020;which\u005C;u0020;can\u005C;u0020;be\u005C;u0020;minimized\u005C;u0020;to\u005C;u0020;an\u005C;u0020;icon.")@Ljavax/swing/SwingContainer;(delegate="getContentPane")
+innerclass innerClass javax/swing/JFrame$AccessibleJFrame outerClass javax/swing/JFrame innerClassName AccessibleJFrame flags 4
+innerclass innerClass javax/swing/TransferHandler$HasGetTransferHandler outerClass javax/swing/TransferHandler innerClassName HasGetTransferHandler flags 608
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JFrame$AccessibleJFrame
+header extends java/awt/Frame$AccessibleAWTFrame nestHost javax/swing/JFrame flags 21
+innerclass innerClass javax/swing/JFrame$AccessibleJFrame outerClass javax/swing/JFrame innerClassName AccessibleJFrame flags 4
+innerclass innerClass java/awt/Frame$AccessibleAWTFrame outerClass java/awt/Frame innerClassName AccessibleAWTFrame flags 4
+
+class name javax/swing/JInternalFrame
+header extends javax/swing/JComponent implements javax/accessibility/Accessible,javax/swing/WindowConstants,javax/swing/RootPaneContainer nestMembers javax/swing/JInternalFrame$JDesktopIcon,javax/swing/JInternalFrame$JDesktopIcon$AccessibleJDesktopIcon,javax/swing/JInternalFrame$AccessibleJInternalFrame flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="JMenuBar",description="A\u005C;u0020;frame\u005C;u0020;container\u005C;u0020;which\u005C;u0020;is\u005C;u0020;contained\u005C;u0020;within\u005C;u0020;another\u005C;u0020;window.")@Ljavax/swing/SwingContainer;(delegate="getContentPane")
+innerclass innerClass javax/swing/JInternalFrame$JDesktopIcon outerClass javax/swing/JInternalFrame innerClassName JDesktopIcon flags 9
+innerclass innerClass javax/swing/JInternalFrame$AccessibleJInternalFrame outerClass javax/swing/JInternalFrame innerClassName AccessibleJInternalFrame flags 4
+innerclass innerClass javax/swing/JInternalFrame$JDesktopIcon$AccessibleJDesktopIcon outerClass javax/swing/JInternalFrame$JDesktopIcon innerClassName AccessibleJDesktopIcon flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JInternalFrame$AccessibleJInternalFrame
+header extends javax/swing/JComponent$AccessibleJComponent implements javax/accessibility/AccessibleValue nestHost javax/swing/JInternalFrame flags 21
+innerclass innerClass javax/swing/JInternalFrame$AccessibleJInternalFrame outerClass javax/swing/JInternalFrame innerClassName AccessibleJInternalFrame flags 4
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+
+class name javax/swing/JInternalFrame$JDesktopIcon
+header extends javax/swing/JComponent implements javax/accessibility/Accessible nestHost javax/swing/JInternalFrame flags 21
+innerclass innerClass javax/swing/JInternalFrame$JDesktopIcon outerClass javax/swing/JInternalFrame innerClassName JDesktopIcon flags 9
+innerclass innerClass javax/swing/JInternalFrame$JDesktopIcon$AccessibleJDesktopIcon outerClass javax/swing/JInternalFrame$JDesktopIcon innerClassName AccessibleJDesktopIcon flags 4
+
+class name javax/swing/JInternalFrame$JDesktopIcon$AccessibleJDesktopIcon
+header extends javax/swing/JComponent$AccessibleJComponent implements javax/accessibility/AccessibleValue nestHost javax/swing/JInternalFrame flags 21
+innerclass innerClass javax/swing/JInternalFrame$JDesktopIcon outerClass javax/swing/JInternalFrame innerClassName JDesktopIcon flags 9
+innerclass innerClass javax/swing/JInternalFrame$JDesktopIcon$AccessibleJDesktopIcon outerClass javax/swing/JInternalFrame$JDesktopIcon innerClassName AccessibleJDesktopIcon flags 4
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+
+class name javax/swing/JLabel
+header extends javax/swing/JComponent implements javax/swing/SwingConstants,javax/accessibility/Accessible nestMembers javax/swing/JLabel$AccessibleJLabel flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UI",description="A\u005C;u0020;component\u005C;u0020;that\u005C;u0020;displays\u005C;u0020;a\u005C;u0020;short\u005C;u0020;string\u005C;u0020;and\u005C;u0020;an\u005C;u0020;icon.")@Ljavax/swing/SwingContainer;(value=Zfalse)
+innerclass innerClass javax/swing/JLabel$AccessibleJLabel outerClass javax/swing/JLabel innerClassName AccessibleJLabel flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JLabel$AccessibleJLabel
+header extends javax/swing/JComponent$AccessibleJComponent implements javax/accessibility/AccessibleText,javax/accessibility/AccessibleExtendedComponent nestHost javax/swing/JLabel flags 21
+innerclass innerClass javax/swing/JLabel$AccessibleJLabel outerClass javax/swing/JLabel innerClassName AccessibleJLabel flags 4
+innerclass innerClass java/awt/geom/Rectangle2D$Float outerClass java/awt/geom/Rectangle2D innerClassName Float flags 9
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+
+class name javax/swing/JLayeredPane
+header extends javax/swing/JComponent implements javax/accessibility/Accessible nestMembers javax/swing/JLayeredPane$AccessibleJLayeredPane flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="accessibleContext")
+innerclass innerClass javax/swing/JLayeredPane$AccessibleJLayeredPane outerClass javax/swing/JLayeredPane innerClassName AccessibleJLayeredPane flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JLayeredPane$AccessibleJLayeredPane
+header extends javax/swing/JComponent$AccessibleJComponent nestHost javax/swing/JLayeredPane flags 21
+innerclass innerClass javax/swing/JLayeredPane$AccessibleJLayeredPane outerClass javax/swing/JLayeredPane innerClassName AccessibleJLayeredPane flags 4
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+
+class name javax/swing/JList
+header extends javax/swing/JComponent implements javax/swing/Scrollable,javax/accessibility/Accessible nestMembers javax/swing/JList$AccessibleJList,javax/swing/JList$AccessibleJList$AccessibleJListChild,javax/swing/JList$DropLocation flags 21 signature <E:Ljava/lang/Object;>Ljavax/swing/JComponent;Ljavax/swing/Scrollable;Ljavax/accessibility/Accessible; runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UI",description="A\u005C;u0020;component\u005C;u0020;which\u005C;u0020;allows\u005C;u0020;for\u005C;u0020;the\u005C;u0020;selection\u005C;u0020;of\u005C;u0020;one\u005C;u0020;or\u005C;u0020;more\u005C;u0020;objects\u005C;u0020;from\u005C;u0020;a\u005C;u0020;list.")@Ljavax/swing/SwingContainer;(value=Zfalse)
+innerclass innerClass javax/swing/JList$AccessibleJList outerClass javax/swing/JList innerClassName AccessibleJList flags 4
+innerclass innerClass javax/swing/JList$DropLocation outerClass javax/swing/JList innerClassName DropLocation flags 19
+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
+innerclass innerClass javax/swing/JList$AccessibleJList$AccessibleJListChild outerClass javax/swing/JList$AccessibleJList innerClassName AccessibleJListChild flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JList$AccessibleJList
+header extends javax/swing/JComponent$AccessibleJComponent implements javax/accessibility/AccessibleSelection,java/beans/PropertyChangeListener,javax/swing/event/ListSelectionListener,javax/swing/event/ListDataListener nestHost javax/swing/JList flags 21
+innerclass innerClass javax/swing/JList$AccessibleJList outerClass javax/swing/JList innerClassName AccessibleJList flags 4
+innerclass innerClass javax/swing/JList$AccessibleJList$AccessibleJListChild outerClass javax/swing/JList$AccessibleJList innerClassName AccessibleJListChild flags 4
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+
+class name javax/swing/JList$AccessibleJList$AccessibleJListChild
+header extends javax/accessibility/AccessibleContext implements javax/accessibility/Accessible,javax/accessibility/AccessibleComponent,javax/accessibility/AccessibleAction nestHost javax/swing/JList flags 21
+innerclass innerClass javax/swing/JList$AccessibleJList outerClass javax/swing/JList innerClassName AccessibleJList flags 4
+innerclass innerClass javax/swing/JList$AccessibleJList$AccessibleJListChild outerClass javax/swing/JList$AccessibleJList innerClassName AccessibleJListChild flags 4
+
+class name javax/swing/JList$DropLocation
+header extends javax/swing/TransferHandler$DropLocation nestHost javax/swing/JList flags 31
+innerclass innerClass javax/swing/JList$DropLocation outerClass javax/swing/JList innerClassName DropLocation flags 19
+innerclass innerClass javax/swing/TransferHandler$DropLocation outerClass javax/swing/TransferHandler innerClassName DropLocation flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JMenu
+header extends javax/swing/JMenuItem implements javax/accessibility/Accessible,javax/swing/MenuElement nestMembers javax/swing/JMenu$AccessibleJMenu,javax/swing/JMenu$WinListener flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(description="A\u005C;u0020;popup\u005C;u0020;window\u005C;u0020;containing\u005C;u0020;menu\u005C;u0020;items\u005C;u0020;displayed\u005C;u0020;in\u005C;u0020;a\u005C;u0020;menu\u005C;u0020;bar.")@Ljavax/swing/SwingContainer;
+innerclass innerClass javax/swing/JMenu$AccessibleJMenu outerClass javax/swing/JMenu innerClassName AccessibleJMenu flags 4
+innerclass innerClass javax/swing/JMenu$WinListener outerClass javax/swing/JMenu innerClassName WinListener flags 4
+innerclass innerClass javax/swing/JPopupMenu$Separator outerClass javax/swing/JPopupMenu innerClassName Separator flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JMenu$AccessibleJMenu
+header extends javax/swing/JMenuItem$AccessibleJMenuItem implements javax/accessibility/AccessibleSelection nestHost javax/swing/JMenu flags 21
+innerclass innerClass javax/swing/JMenu$AccessibleJMenu outerClass javax/swing/JMenu innerClassName AccessibleJMenu flags 4
+innerclass innerClass javax/swing/JMenuItem$AccessibleJMenuItem outerClass javax/swing/JMenuItem innerClassName AccessibleJMenuItem flags 4
+
+class name javax/swing/JMenu$WinListener
+header extends java/awt/event/WindowAdapter implements java/io/Serializable nestHost javax/swing/JMenu flags 21
+innerclass innerClass javax/swing/JMenu$WinListener outerClass javax/swing/JMenu innerClassName WinListener flags 4
+
+class name javax/swing/JMenuBar
+header extends javax/swing/JComponent implements javax/accessibility/Accessible,javax/swing/MenuElement nestMembers javax/swing/JMenuBar$AccessibleJMenuBar flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UI",description="A\u005C;u0020;container\u005C;u0020;for\u005C;u0020;holding\u005C;u0020;and\u005C;u0020;displaying\u005C;u0020;menus.")@Ljavax/swing/SwingContainer;
+innerclass innerClass javax/swing/JMenuBar$AccessibleJMenuBar outerClass javax/swing/JMenuBar innerClassName AccessibleJMenuBar flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JMenuBar$AccessibleJMenuBar
+header extends javax/swing/JComponent$AccessibleJComponent implements javax/accessibility/AccessibleSelection nestHost javax/swing/JMenuBar flags 21
+innerclass innerClass javax/swing/JMenuBar$AccessibleJMenuBar outerClass javax/swing/JMenuBar innerClassName AccessibleJMenuBar flags 4
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+
+class name javax/swing/JMenuItem
+header extends javax/swing/AbstractButton implements javax/accessibility/Accessible,javax/swing/MenuElement nestMembers javax/swing/JMenuItem$AccessibleJMenuItem flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UIClassID",description="An\u005C;u0020;item\u005C;u0020;which\u005C;u0020;can\u005C;u0020;be\u005C;u0020;selected\u005C;u0020;in\u005C;u0020;a\u005C;u0020;menu.")@Ljavax/swing/SwingContainer;(value=Zfalse)
+innerclass innerClass javax/swing/JMenuItem$AccessibleJMenuItem outerClass javax/swing/JMenuItem innerClassName AccessibleJMenuItem flags 4
+
+class name javax/swing/JMenuItem$AccessibleJMenuItem
+header extends javax/swing/AbstractButton$AccessibleAbstractButton implements javax/swing/event/ChangeListener nestHost javax/swing/JMenuItem flags 21
+innerclass innerClass javax/swing/JMenuItem$AccessibleJMenuItem outerClass javax/swing/JMenuItem innerClassName AccessibleJMenuItem flags 4
+innerclass innerClass javax/swing/AbstractButton$AccessibleAbstractButton outerClass javax/swing/AbstractButton innerClassName AccessibleAbstractButton flags 404
+
+class name javax/swing/JOptionPane
+header extends javax/swing/JComponent implements javax/accessibility/Accessible nestMembers javax/swing/JOptionPane$AccessibleJOptionPane flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UI",description="A\u005C;u0020;component\u005C;u0020;which\u005C;u0020;implements\u005C;u0020;standard\u005C;u0020;dialog\u005C;u0020;box\u005C;u0020;controls.")@Ljavax/swing/SwingContainer;
+innerclass innerClass javax/swing/JOptionPane$AccessibleJOptionPane outerClass javax/swing/JOptionPane innerClassName AccessibleJOptionPane flags 4
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JOptionPane$AccessibleJOptionPane
+header extends javax/swing/JComponent$AccessibleJComponent nestHost javax/swing/JOptionPane flags 21
+innerclass innerClass javax/swing/JOptionPane$AccessibleJOptionPane outerClass javax/swing/JOptionPane innerClassName AccessibleJOptionPane flags 4
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+
+class name javax/swing/JPanel
+header extends javax/swing/JComponent implements javax/accessibility/Accessible nestMembers javax/swing/JPanel$AccessibleJPanel flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UI",description="A\u005C;u0020;generic\u005C;u0020;lightweight\u005C;u0020;container.")
+innerclass innerClass javax/swing/JPanel$AccessibleJPanel outerClass javax/swing/JPanel innerClassName AccessibleJPanel flags 4
+-method name getUIClassID descriptor ()Ljava/lang/String;
+method name getUIClassID descriptor ()Ljava/lang/String; flags 1 runtimeAnnotations @Ljava/beans/BeanProperty;(expert=Ztrue,bound=Zfalse,description="A\u005C;u0020;string\u005C;u0020;that\u005C;u0020;specifies\u005C;u0020;the\u005C;u0020;name\u005C;u0020;of\u005C;u0020;the\u005C;u0020;L&F\u005C;u0020;class.")
+
+class name javax/swing/JPanel$AccessibleJPanel
+header extends javax/swing/JComponent$AccessibleJComponent nestHost javax/swing/JPanel flags 21
+innerclass innerClass javax/swing/JPanel$AccessibleJPanel outerClass javax/swing/JPanel innerClassName AccessibleJPanel flags 4
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+
+class name javax/swing/JPasswordField
+header extends javax/swing/JTextField nestMembers javax/swing/JPasswordField$AccessibleJPasswordField flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(description="Allows\u005C;u0020;the\u005C;u0020;editing\u005C;u0020;of\u005C;u0020;a\u005C;u0020;line\u005C;u0020;of\u005C;u0020;text\u005C;u0020;but\u005C;u0020;doesn't\u005C;u0020;show\u005C;u0020;the\u005C;u0020;characters.")@Ljavax/swing/SwingContainer;(value=Zfalse)
+innerclass innerClass javax/swing/JPasswordField$AccessibleJPasswordField outerClass javax/swing/JPasswordField innerClassName AccessibleJPasswordField flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JPasswordField$AccessibleJPasswordField
+header extends javax/swing/JTextField$AccessibleJTextField nestHost javax/swing/JPasswordField flags 21
+innerclass innerClass javax/swing/JPasswordField$AccessibleJPasswordField outerClass javax/swing/JPasswordField innerClassName AccessibleJPasswordField flags 4
+innerclass innerClass javax/swing/JTextField$AccessibleJTextField outerClass javax/swing/JTextField innerClassName AccessibleJTextField flags 4
+
+class name javax/swing/JPopupMenu
+header extends javax/swing/JComponent implements javax/accessibility/Accessible,javax/swing/MenuElement nestMembers javax/swing/JPopupMenu$Separator,javax/swing/JPopupMenu$AccessibleJPopupMenu flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UI",description="A\u005C;u0020;small\u005C;u0020;window\u005C;u0020;that\u005C;u0020;pops\u005C;u0020;up\u005C;u0020;and\u005C;u0020;displays\u005C;u0020;a\u005C;u0020;series\u005C;u0020;of\u005C;u0020;choices.")@Ljavax/swing/SwingContainer;(value=Zfalse)
+innerclass innerClass javax/swing/JPopupMenu$Separator outerClass javax/swing/JPopupMenu innerClassName Separator flags 9
+innerclass innerClass javax/swing/JPopupMenu$AccessibleJPopupMenu outerClass javax/swing/JPopupMenu innerClassName AccessibleJPopupMenu flags 4
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JPopupMenu$AccessibleJPopupMenu
+header extends javax/swing/JComponent$AccessibleJComponent implements java/beans/PropertyChangeListener nestHost javax/swing/JPopupMenu flags 21
+innerclass innerClass javax/swing/JPopupMenu$AccessibleJPopupMenu outerClass javax/swing/JPopupMenu innerClassName AccessibleJPopupMenu flags 4
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+
+class name javax/swing/JPopupMenu$Separator
+header extends javax/swing/JSeparator nestHost javax/swing/JPopupMenu flags 21
+innerclass innerClass javax/swing/JPopupMenu$Separator outerClass javax/swing/JPopupMenu innerClassName Separator flags 9
+
+class name javax/swing/JProgressBar
+header extends javax/swing/JComponent implements javax/swing/SwingConstants,javax/accessibility/Accessible nestMembers javax/swing/JProgressBar$AccessibleJProgressBar flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UI",description="A\u005C;u0020;component\u005C;u0020;that\u005C;u0020;displays\u005C;u0020;an\u005C;u0020;integer\u005C;u0020;value.")@Ljavax/swing/SwingContainer;(value=Zfalse)
+innerclass innerClass javax/swing/JProgressBar$AccessibleJProgressBar outerClass javax/swing/JProgressBar innerClassName AccessibleJProgressBar flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JProgressBar$AccessibleJProgressBar
+header extends javax/swing/JComponent$AccessibleJComponent implements javax/accessibility/AccessibleValue nestHost javax/swing/JProgressBar flags 21
+innerclass innerClass javax/swing/JProgressBar$AccessibleJProgressBar outerClass javax/swing/JProgressBar innerClassName AccessibleJProgressBar flags 4
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+
+class name javax/swing/JRadioButton
+header extends javax/swing/JToggleButton implements javax/accessibility/Accessible nestMembers javax/swing/JRadioButton$AccessibleJRadioButton flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(description="A\u005C;u0020;component\u005C;u0020;which\u005C;u0020;can\u005C;u0020;display\u005C;u0020;it's\u005C;u0020;state\u005C;u0020;as\u005C;u0020;selected\u005C;u0020;or\u005C;u0020;deselected.")@Ljavax/swing/SwingContainer;(value=Zfalse)
+innerclass innerClass javax/swing/JRadioButton$AccessibleJRadioButton outerClass javax/swing/JRadioButton innerClassName AccessibleJRadioButton flags 4
+-method name getUIClassID descriptor ()Ljava/lang/String;
+method name getUIClassID descriptor ()Ljava/lang/String; flags 1 runtimeAnnotations @Ljava/beans/BeanProperty;(expert=Ztrue,bound=Zfalse,description="A\u005C;u0020;string\u005C;u0020;that\u005C;u0020;specifies\u005C;u0020;the\u005C;u0020;name\u005C;u0020;of\u005C;u0020;the\u005C;u0020;L&F\u005C;u0020;class.")
+
+class name javax/swing/JRadioButton$AccessibleJRadioButton
+header extends javax/swing/JToggleButton$AccessibleJToggleButton nestHost javax/swing/JRadioButton flags 21
+innerclass innerClass javax/swing/JRadioButton$AccessibleJRadioButton outerClass javax/swing/JRadioButton innerClassName AccessibleJRadioButton flags 4
+innerclass innerClass javax/swing/JToggleButton$AccessibleJToggleButton outerClass javax/swing/JToggleButton innerClassName AccessibleJToggleButton flags 4
+
+class name javax/swing/JRadioButtonMenuItem
+header extends javax/swing/JMenuItem implements javax/accessibility/Accessible nestMembers javax/swing/JRadioButtonMenuItem$AccessibleJRadioButtonMenuItem flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(description="A\u005C;u0020;component\u005C;u0020;within\u005C;u0020;a\u005C;u0020;group\u005C;u0020;of\u005C;u0020;menu\u005C;u0020;items\u005C;u0020;which\u005C;u0020;can\u005C;u0020;be\u005C;u0020;selected.")@Ljavax/swing/SwingContainer;(value=Zfalse)
+innerclass innerClass javax/swing/JRadioButtonMenuItem$AccessibleJRadioButtonMenuItem outerClass javax/swing/JRadioButtonMenuItem innerClassName AccessibleJRadioButtonMenuItem flags 4
+innerclass innerClass javax/swing/JToggleButton$ToggleButtonModel outerClass javax/swing/JToggleButton innerClassName ToggleButtonModel flags 9
+
+class name javax/swing/JRadioButtonMenuItem$AccessibleJRadioButtonMenuItem
+header extends javax/swing/JMenuItem$AccessibleJMenuItem nestHost javax/swing/JRadioButtonMenuItem flags 21
+innerclass innerClass javax/swing/JRadioButtonMenuItem$AccessibleJRadioButtonMenuItem outerClass javax/swing/JRadioButtonMenuItem innerClassName AccessibleJRadioButtonMenuItem flags 4
+innerclass innerClass javax/swing/JMenuItem$AccessibleJMenuItem outerClass javax/swing/JMenuItem innerClassName AccessibleJMenuItem flags 4
+
+class name javax/swing/JRootPane
+header extends javax/swing/JComponent implements javax/accessibility/Accessible nestMembers javax/swing/JRootPane$AccessibleJRootPane,javax/swing/JRootPane$RootLayout flags 21
+innerclass innerClass javax/swing/JRootPane$AccessibleJRootPane outerClass javax/swing/JRootPane innerClassName AccessibleJRootPane flags 4
+innerclass innerClass javax/swing/JRootPane$RootLayout outerClass javax/swing/JRootPane innerClassName RootLayout flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JRootPane$AccessibleJRootPane
+header extends javax/swing/JComponent$AccessibleJComponent nestHost javax/swing/JRootPane flags 21
+innerclass innerClass javax/swing/JRootPane$AccessibleJRootPane outerClass javax/swing/JRootPane innerClassName AccessibleJRootPane flags 4
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+
+class name javax/swing/JRootPane$RootLayout
+header extends java/lang/Object implements java/awt/LayoutManager2,java/io/Serializable nestHost javax/swing/JRootPane flags 21
+innerclass innerClass javax/swing/JRootPane$RootLayout outerClass javax/swing/JRootPane innerClassName RootLayout flags 4
+
+class name javax/swing/JScrollBar
+header extends javax/swing/JComponent implements java/awt/Adjustable,javax/accessibility/Accessible nestMembers javax/swing/JScrollBar$AccessibleJScrollBar flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UI",description="A\u005C;u0020;component\u005C;u0020;that\u005C;u0020;helps\u005C;u0020;determine\u005C;u0020;the\u005C;u0020;visible\u005C;u0020;content\u005C;u0020;range\u005C;u0020;of\u005C;u0020;an\u005C;u0020;area.")@Ljavax/swing/SwingContainer;(value=Zfalse)
+innerclass innerClass javax/swing/JScrollBar$AccessibleJScrollBar outerClass javax/swing/JScrollBar innerClassName AccessibleJScrollBar flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JScrollBar$AccessibleJScrollBar
+header extends javax/swing/JComponent$AccessibleJComponent implements javax/accessibility/AccessibleValue nestHost javax/swing/JScrollBar flags 21
+innerclass innerClass javax/swing/JScrollBar$AccessibleJScrollBar outerClass javax/swing/JScrollBar innerClassName AccessibleJScrollBar flags 4
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+
+class name javax/swing/JScrollPane
+header extends javax/swing/JComponent implements javax/swing/ScrollPaneConstants,javax/accessibility/Accessible nestMembers javax/swing/JScrollPane$AccessibleJScrollPane,javax/swing/JScrollPane$ScrollBar flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UI",description="A\u005C;u0020;specialized\u005C;u0020;container\u005C;u0020;that\u005C;u0020;manages\u005C;u0020;a\u005C;u0020;viewport,\u005C;u0020;optional\u005C;u0020;scrollbars\u005C;u0020;and\u005C;u0020;headers")@Ljavax/swing/SwingContainer;(delegate="getViewport")
+innerclass innerClass javax/swing/JScrollPane$AccessibleJScrollPane outerClass javax/swing/JScrollPane innerClassName AccessibleJScrollPane flags 4
+innerclass innerClass javax/swing/JScrollPane$ScrollBar outerClass javax/swing/JScrollPane innerClassName ScrollBar flags 4
+innerclass innerClass javax/swing/ScrollPaneLayout$UIResource outerClass javax/swing/ScrollPaneLayout innerClassName UIResource flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JScrollPane$AccessibleJScrollPane
+header extends javax/swing/JComponent$AccessibleJComponent implements javax/swing/event/ChangeListener,java/beans/PropertyChangeListener nestHost javax/swing/JScrollPane flags 21
+innerclass innerClass javax/swing/JScrollPane$AccessibleJScrollPane outerClass javax/swing/JScrollPane innerClassName AccessibleJScrollPane flags 4
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+
+class name javax/swing/JScrollPane$ScrollBar
+header extends javax/swing/JScrollBar implements javax/swing/plaf/UIResource nestHost javax/swing/JScrollPane flags 21
+innerclass innerClass javax/swing/JScrollPane$ScrollBar outerClass javax/swing/JScrollPane innerClassName ScrollBar flags 4
+
+class name javax/swing/JSeparator
+header extends javax/swing/JComponent implements javax/swing/SwingConstants,javax/accessibility/Accessible nestMembers javax/swing/JSeparator$AccessibleJSeparator flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UI",description="A\u005C;u0020;divider\u005C;u0020;between\u005C;u0020;menu\u005C;u0020;items.")@Ljavax/swing/SwingContainer;(value=Zfalse)
+innerclass innerClass javax/swing/JSeparator$AccessibleJSeparator outerClass javax/swing/JSeparator innerClassName AccessibleJSeparator flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JSeparator$AccessibleJSeparator
+header extends javax/swing/JComponent$AccessibleJComponent nestHost javax/swing/JSeparator flags 21
+innerclass innerClass javax/swing/JSeparator$AccessibleJSeparator outerClass javax/swing/JSeparator innerClassName AccessibleJSeparator flags 4
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+
+class name javax/swing/JSlider
+header extends javax/swing/JComponent implements javax/swing/SwingConstants,javax/accessibility/Accessible nestMembers javax/swing/JSlider$AccessibleJSlider flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UI",description="A\u005C;u0020;component\u005C;u0020;that\u005C;u0020;supports\u005C;u0020;selecting\u005C;u0020;a\u005C;u0020;integer\u005C;u0020;value\u005C;u0020;from\u005C;u0020;a\u005C;u0020;range.")@Ljavax/swing/SwingContainer;(value=Zfalse)
+innerclass innerClass javax/swing/JSlider$AccessibleJSlider outerClass javax/swing/JSlider innerClassName AccessibleJSlider flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JSlider$AccessibleJSlider
+header extends javax/swing/JComponent$AccessibleJComponent implements javax/accessibility/AccessibleValue nestHost javax/swing/JSlider flags 21
+innerclass innerClass javax/swing/JSlider$AccessibleJSlider outerClass javax/swing/JSlider innerClassName AccessibleJSlider flags 4
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+
+class name javax/swing/JSpinner
+header extends javax/swing/JComponent implements javax/accessibility/Accessible nestMembers javax/swing/JSpinner$AccessibleJSpinner,javax/swing/JSpinner$ListEditor,javax/swing/JSpinner$NumberEditor,javax/swing/JSpinner$DateEditor,javax/swing/JSpinner$DefaultEditor flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UI",description="A\u005C;u0020;single\u005C;u0020;line\u005C;u0020;input\u005C;u0020;field\u005C;u0020;that\u005C;u0020;lets\u005C;u0020;the\u005C;u0020;user\u005C;u0020;select\u005C;u0020;a\u005C;u0020;number\u005C;u0020;or\u005C;u0020;an\u005C;u0020;object\u005C;u0020;value\u005C;u0020;from\u005C;u0020;an\u005C;u0020;ordered\u005C;u0020;set.")@Ljavax/swing/SwingContainer;(value=Zfalse)
+innerclass innerClass javax/swing/JSpinner$AccessibleJSpinner outerClass javax/swing/JSpinner innerClassName AccessibleJSpinner flags 4
+innerclass innerClass javax/swing/JSpinner$ListEditor outerClass javax/swing/JSpinner innerClassName ListEditor flags 9
+innerclass innerClass javax/swing/JSpinner$NumberEditor outerClass javax/swing/JSpinner innerClassName NumberEditor flags 9
+innerclass innerClass javax/swing/JSpinner$DateEditor outerClass javax/swing/JSpinner innerClassName DateEditor flags 9
+innerclass innerClass javax/swing/JSpinner$DefaultEditor outerClass javax/swing/JSpinner innerClassName DefaultEditor flags 9
+
+class name javax/swing/JSpinner$AccessibleJSpinner
+header extends javax/swing/JComponent$AccessibleJComponent implements javax/accessibility/AccessibleValue,javax/accessibility/AccessibleAction,javax/accessibility/AccessibleText,javax/accessibility/AccessibleEditableText,javax/swing/event/ChangeListener nestHost javax/swing/JSpinner flags 21
+innerclass innerClass javax/swing/JSpinner$AccessibleJSpinner outerClass javax/swing/JSpinner innerClassName AccessibleJSpinner flags 4
+innerclass innerClass javax/swing/JSpinner$DefaultEditor outerClass javax/swing/JSpinner innerClassName DefaultEditor flags 9
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+
+class name javax/swing/JSpinner$DateEditor
+header extends javax/swing/JSpinner$DefaultEditor nestHost javax/swing/JSpinner flags 21
+innerclass innerClass javax/swing/JSpinner$DateEditor outerClass javax/swing/JSpinner innerClassName DateEditor flags 9
+innerclass innerClass javax/swing/JSpinner$DefaultEditor outerClass javax/swing/JSpinner innerClassName DefaultEditor flags 9
+innerclass innerClass javax/swing/JFormattedTextField$AbstractFormatter outerClass javax/swing/JFormattedTextField innerClassName AbstractFormatter flags 409
+innerclass innerClass javax/swing/JFormattedTextField$AbstractFormatterFactory outerClass javax/swing/JFormattedTextField innerClassName AbstractFormatterFactory flags 409
+
+class name javax/swing/JSpinner$DefaultEditor
+header extends javax/swing/JPanel implements javax/swing/event/ChangeListener,java/beans/PropertyChangeListener,java/awt/LayoutManager nestHost javax/swing/JSpinner flags 21
+innerclass innerClass javax/swing/JSpinner$DefaultEditor outerClass javax/swing/JSpinner innerClassName DefaultEditor flags 9
+innerclass innerClass java/awt/Component$BaselineResizeBehavior outerClass java/awt/Component innerClassName BaselineResizeBehavior flags 4019
+
+class name javax/swing/JSpinner$ListEditor
+header extends javax/swing/JSpinner$DefaultEditor nestHost javax/swing/JSpinner flags 21
+innerclass innerClass javax/swing/JSpinner$ListEditor outerClass javax/swing/JSpinner innerClassName ListEditor flags 9
+innerclass innerClass javax/swing/JSpinner$DefaultEditor outerClass javax/swing/JSpinner innerClassName DefaultEditor flags 9
+innerclass innerClass javax/swing/JFormattedTextField$AbstractFormatter outerClass javax/swing/JFormattedTextField innerClassName AbstractFormatter flags 409
+innerclass innerClass javax/swing/JFormattedTextField$AbstractFormatterFactory outerClass javax/swing/JFormattedTextField innerClassName AbstractFormatterFactory flags 409
+
+class name javax/swing/JSpinner$NumberEditor
+header extends javax/swing/JSpinner$DefaultEditor nestHost javax/swing/JSpinner flags 21
+innerclass innerClass javax/swing/JSpinner$NumberEditor outerClass javax/swing/JSpinner innerClassName NumberEditor flags 9
+innerclass innerClass javax/swing/JSpinner$DefaultEditor outerClass javax/swing/JSpinner innerClassName DefaultEditor flags 9
+innerclass innerClass javax/swing/JFormattedTextField$AbstractFormatter outerClass javax/swing/JFormattedTextField innerClassName AbstractFormatter flags 409
+innerclass innerClass javax/swing/JFormattedTextField$AbstractFormatterFactory outerClass javax/swing/JFormattedTextField innerClassName AbstractFormatterFactory flags 409
+
+class name javax/swing/JSplitPane
+header extends javax/swing/JComponent implements javax/accessibility/Accessible nestMembers javax/swing/JSplitPane$AccessibleJSplitPane flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UI")
+innerclass innerClass javax/swing/JSplitPane$AccessibleJSplitPane outerClass javax/swing/JSplitPane innerClassName AccessibleJSplitPane flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+-method name getUI descriptor ()Ljavax/swing/plaf/SplitPaneUI;
+-method name getUIClassID descriptor ()Ljava/lang/String;
+-method name getMinimumDividerLocation descriptor ()I
+-method name getUI descriptor ()Ljavax/swing/plaf/ComponentUI;
+method name getUI descriptor ()Ljavax/swing/plaf/SplitPaneUI; flags 1 runtimeAnnotations @Ljava/beans/BeanProperty;(expert=Ztrue,bound=Zfalse,description="The\u005C;u0020;L&F\u005C;u0020;object\u005C;u0020;that\u005C;u0020;renders\u005C;u0020;this\u005C;u0020;component.")
+method name getUIClassID descriptor ()Ljava/lang/String; flags 1 runtimeAnnotations @Ljava/beans/BeanProperty;(expert=Ztrue,bound=Zfalse,description="A\u005C;u0020;string\u005C;u0020;that\u005C;u0020;specifies\u005C;u0020;the\u005C;u0020;name\u005C;u0020;of\u005C;u0020;the\u005C;u0020;L&F\u005C;u0020;class.")
+method name getMinimumDividerLocation descriptor ()I flags 1 runtimeAnnotations @Ljava/beans/BeanProperty;(bound=Zfalse,description="The\u005C;u0020;minimum\u005C;u0020;location\u005C;u0020;of\u005C;u0020;the\u005C;u0020;divider\u005C;u0020;from\u005C;u0020;the\u005C;u0020;L&F.")
+method name getUI descriptor ()Ljavax/swing/plaf/ComponentUI; flags 1041 runtimeAnnotations @Ljava/beans/BeanProperty;(expert=Ztrue,bound=Zfalse,description="The\u005C;u0020;L&F\u005C;u0020;object\u005C;u0020;that\u005C;u0020;renders\u005C;u0020;this\u005C;u0020;component.")
+
+class name javax/swing/JSplitPane$AccessibleJSplitPane
+header extends javax/swing/JComponent$AccessibleJComponent implements javax/accessibility/AccessibleValue nestHost javax/swing/JSplitPane flags 21
+innerclass innerClass javax/swing/JSplitPane$AccessibleJSplitPane outerClass javax/swing/JSplitPane innerClassName AccessibleJSplitPane flags 4
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+
+class name javax/swing/JTabbedPane
+header extends javax/swing/JComponent implements java/io/Serializable,javax/accessibility/Accessible,javax/swing/SwingConstants nestMembers javax/swing/JTabbedPane$AccessibleJTabbedPane,javax/swing/JTabbedPane$ModelListener flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UI",description="A\u005C;u0020;component\u005C;u0020;which\u005C;u0020;provides\u005C;u0020;a\u005C;u0020;tab\u005C;u0020;folder\u005C;u0020;metaphor\u005C;u0020;for\u005C;u0020;displaying\u005C;u0020;one\u005C;u0020;component\u005C;u0020;from\u005C;u0020;a\u005C;u0020;set\u005C;u0020;of\u005C;u0020;components.")@Ljavax/swing/SwingContainer;
+innerclass innerClass javax/swing/JTabbedPane$AccessibleJTabbedPane outerClass javax/swing/JTabbedPane innerClassName AccessibleJTabbedPane flags 4
+innerclass innerClass javax/swing/JTabbedPane$ModelListener outerClass javax/swing/JTabbedPane innerClassName ModelListener flags 4
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JTabbedPane$AccessibleJTabbedPane
+header extends javax/swing/JComponent$AccessibleJComponent implements javax/accessibility/AccessibleSelection,javax/swing/event/ChangeListener nestHost javax/swing/JTabbedPane flags 21
+innerclass innerClass javax/swing/JTabbedPane$AccessibleJTabbedPane outerClass javax/swing/JTabbedPane innerClassName AccessibleJTabbedPane flags 4
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+
+class name javax/swing/JTabbedPane$ModelListener
+header extends java/lang/Object implements javax/swing/event/ChangeListener,java/io/Serializable nestHost javax/swing/JTabbedPane flags 21
+innerclass innerClass javax/swing/JTabbedPane$ModelListener outerClass javax/swing/JTabbedPane innerClassName ModelListener flags 4
+
+class name javax/swing/JTable
+header extends javax/swing/JComponent implements javax/swing/event/TableModelListener,javax/swing/Scrollable,javax/swing/event/TableColumnModelListener,javax/swing/event/ListSelectionListener,javax/swing/event/CellEditorListener,javax/accessibility/Accessible,javax/swing/event/RowSorterListener nestMembers javax/swing/JTable$AccessibleJTable,javax/swing/JTable$AccessibleJTable$AccessibleJTableCell,javax/swing/JTable$AccessibleJTable$AccessibleJTableModelChange,javax/swing/JTable$DropLocation,javax/swing/JTable$PrintMode flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UI",description="A\u005C;u0020;component\u005C;u0020;which\u005C;u0020;displays\u005C;u0020;data\u005C;u0020;in\u005C;u0020;a\u005C;u0020;two\u005C;u0020;dimensional\u005C;u0020;grid.")@Ljavax/swing/SwingContainer;(value=Zfalse)
+innerclass innerClass javax/swing/JTable$AccessibleJTable outerClass javax/swing/JTable innerClassName AccessibleJTable flags 4
+innerclass innerClass javax/swing/JTable$DropLocation outerClass javax/swing/JTable innerClassName DropLocation flags 19
+innerclass innerClass javax/swing/JTable$PrintMode outerClass javax/swing/JTable innerClassName PrintMode flags 4019
+innerclass innerClass javax/swing/TransferHandler$DropLocation outerClass javax/swing/TransferHandler innerClassName DropLocation flags 9
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass javax/swing/table/DefaultTableCellRenderer$UIResource outerClass javax/swing/table/DefaultTableCellRenderer innerClassName UIResource flags 9
+innerclass innerClass javax/swing/JTable$AccessibleJTable$AccessibleJTableCell outerClass javax/swing/JTable$AccessibleJTable innerClassName AccessibleJTableCell flags 4
+innerclass innerClass javax/swing/JTable$AccessibleJTable$AccessibleJTableModelChange outerClass javax/swing/JTable$AccessibleJTable innerClassName AccessibleJTableModelChange flags 4
+innerclass innerClass javax/swing/event/RowSorterEvent$Type outerClass javax/swing/event/RowSorterEvent innerClassName Type flags 4019
+innerclass innerClass javax/swing/UIDefaults$LazyValue outerClass javax/swing/UIDefaults innerClassName LazyValue flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JTable$AccessibleJTable
+header extends javax/swing/JComponent$AccessibleJComponent implements javax/accessibility/AccessibleSelection,javax/swing/event/ListSelectionListener,javax/swing/event/TableModelListener,javax/swing/event/TableColumnModelListener,javax/swing/event/CellEditorListener,java/beans/PropertyChangeListener,javax/accessibility/AccessibleExtendedTable nestHost javax/swing/JTable flags 21
+innerclass innerClass javax/swing/JTable$AccessibleJTable outerClass javax/swing/JTable innerClassName AccessibleJTable flags 4
+innerclass innerClass javax/swing/JTable$AccessibleJTable$AccessibleJTableCell outerClass javax/swing/JTable$AccessibleJTable innerClassName AccessibleJTableCell flags 4
+innerclass innerClass javax/swing/JTable$AccessibleJTable$AccessibleJTableModelChange outerClass javax/swing/JTable$AccessibleJTable innerClassName AccessibleJTableModelChange flags 4
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+
+class name javax/swing/JTable$AccessibleJTable$AccessibleJTableCell
+header extends javax/accessibility/AccessibleContext implements javax/accessibility/Accessible,javax/accessibility/AccessibleComponent nestHost javax/swing/JTable flags 21
+innerclass innerClass javax/swing/JTable$AccessibleJTable outerClass javax/swing/JTable innerClassName AccessibleJTable flags 4
+innerclass innerClass javax/swing/JTable$AccessibleJTable$AccessibleJTableCell outerClass javax/swing/JTable$AccessibleJTable innerClassName AccessibleJTableCell flags 4
+
+class name javax/swing/JTable$AccessibleJTable$AccessibleJTableModelChange
+header extends java/lang/Object implements javax/accessibility/AccessibleTableModelChange nestHost javax/swing/JTable flags 21
+innerclass innerClass javax/swing/JTable$AccessibleJTable outerClass javax/swing/JTable innerClassName AccessibleJTable flags 4
+innerclass innerClass javax/swing/JTable$AccessibleJTable$AccessibleJTableModelChange outerClass javax/swing/JTable$AccessibleJTable innerClassName AccessibleJTableModelChange flags 4
+
+class name javax/swing/JTable$DropLocation
+header extends javax/swing/TransferHandler$DropLocation nestHost javax/swing/JTable flags 31
+innerclass innerClass javax/swing/JTable$DropLocation outerClass javax/swing/JTable innerClassName DropLocation flags 19
+innerclass innerClass javax/swing/TransferHandler$DropLocation outerClass javax/swing/TransferHandler innerClassName DropLocation flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JTable$PrintMode
+header extends java/lang/Enum nestHost javax/swing/JTable flags 4031 signature Ljava/lang/Enum<Ljavax/swing/JTable$PrintMode;>;
+innerclass innerClass javax/swing/JTable$PrintMode outerClass javax/swing/JTable innerClassName PrintMode flags 4019
+
+class name javax/swing/JTextArea
+header extends javax/swing/text/JTextComponent nestMembers javax/swing/JTextArea$AccessibleJTextArea flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UIClassID",description="A\u005C;u0020;multi-line\u005C;u0020;area\u005C;u0020;that\u005C;u0020;displays\u005C;u0020;plain\u005C;u0020;text.")@Ljavax/swing/SwingContainer;(value=Zfalse)
+innerclass innerClass javax/swing/JTextArea$AccessibleJTextArea outerClass javax/swing/JTextArea innerClassName AccessibleJTextArea flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JTextArea$AccessibleJTextArea
+header extends javax/swing/text/JTextComponent$AccessibleJTextComponent nestHost javax/swing/JTextArea flags 21
+innerclass innerClass javax/swing/JTextArea$AccessibleJTextArea outerClass javax/swing/JTextArea innerClassName AccessibleJTextArea flags 4
+innerclass innerClass javax/swing/text/JTextComponent$AccessibleJTextComponent outerClass javax/swing/text/JTextComponent innerClassName AccessibleJTextComponent flags 1
+
+class name javax/swing/JTextField
+header extends javax/swing/text/JTextComponent implements javax/swing/SwingConstants nestMembers javax/swing/JTextField$AccessibleJTextField flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UIClassID",description="A\u005C;u0020;component\u005C;u0020;which\u005C;u0020;allows\u005C;u0020;for\u005C;u0020;the\u005C;u0020;editing\u005C;u0020;of\u005C;u0020;a\u005C;u0020;single\u005C;u0020;line\u005C;u0020;of\u005C;u0020;text.")@Ljavax/swing/SwingContainer;(value=Zfalse)
+innerclass innerClass javax/swing/JTextField$AccessibleJTextField outerClass javax/swing/JTextField innerClassName AccessibleJTextField flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JTextField$AccessibleJTextField
+header extends javax/swing/text/JTextComponent$AccessibleJTextComponent nestHost javax/swing/JTextField flags 21
+innerclass innerClass javax/swing/JTextField$AccessibleJTextField outerClass javax/swing/JTextField innerClassName AccessibleJTextField flags 4
+innerclass innerClass javax/swing/text/JTextComponent$AccessibleJTextComponent outerClass javax/swing/text/JTextComponent innerClassName AccessibleJTextComponent flags 1
+
+class name javax/swing/JTextPane
+header extends javax/swing/JEditorPane flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(description="A\u005C;u0020;text\u005C;u0020;component\u005C;u0020;that\u005C;u0020;can\u005C;u0020;be\u005C;u0020;marked\u005C;u0020;up\u005C;u0020;with\u005C;u0020;attributes\u005C;u0020;that\u005C;u0020;are\u005C;u0020;graphically\u005C;u0020;represented.")@Ljavax/swing/SwingContainer;
+
+class name javax/swing/JToggleButton
+header extends javax/swing/AbstractButton implements javax/accessibility/Accessible nestMembers javax/swing/JToggleButton$AccessibleJToggleButton,javax/swing/JToggleButton$ToggleButtonModel flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UIClassID",description="An\u005C;u0020;implementation\u005C;u0020;of\u005C;u0020;a\u005C;u0020;two-state\u005C;u0020;button.")@Ljavax/swing/SwingContainer;(value=Zfalse)
+innerclass innerClass javax/swing/JToggleButton$AccessibleJToggleButton outerClass javax/swing/JToggleButton innerClassName AccessibleJToggleButton flags 4
+innerclass innerClass javax/swing/JToggleButton$ToggleButtonModel outerClass javax/swing/JToggleButton innerClassName ToggleButtonModel flags 9
+innerclass innerClass java/awt/event/FocusEvent$Cause outerClass java/awt/event/FocusEvent innerClassName Cause flags 4019
+-method name getUIClassID descriptor ()Ljava/lang/String;
+method name getUIClassID descriptor ()Ljava/lang/String; flags 1 runtimeAnnotations @Ljava/beans/BeanProperty;(bound=Zfalse,description="A\u005C;u0020;string\u005C;u0020;that\u005C;u0020;specifies\u005C;u0020;the\u005C;u0020;name\u005C;u0020;of\u005C;u0020;the\u005C;u0020;L&F\u005C;u0020;class")
+
+class name javax/swing/JToggleButton$AccessibleJToggleButton
+header extends javax/swing/AbstractButton$AccessibleAbstractButton implements java/awt/event/ItemListener nestHost javax/swing/JToggleButton flags 21
+innerclass innerClass javax/swing/JToggleButton$AccessibleJToggleButton outerClass javax/swing/JToggleButton innerClassName AccessibleJToggleButton flags 4
+innerclass innerClass javax/swing/AbstractButton$AccessibleAbstractButton outerClass javax/swing/AbstractButton innerClassName AccessibleAbstractButton flags 404
+
+class name javax/swing/JToggleButton$ToggleButtonModel
+header extends javax/swing/DefaultButtonModel nestHost javax/swing/JToggleButton flags 21
+innerclass innerClass javax/swing/JToggleButton$ToggleButtonModel outerClass javax/swing/JToggleButton innerClassName ToggleButtonModel flags 9
+
+class name javax/swing/JToolBar
+header extends javax/swing/JComponent implements javax/swing/SwingConstants,javax/accessibility/Accessible nestMembers javax/swing/JToolBar$AccessibleJToolBar,javax/swing/JToolBar$Separator flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UI",description="A\u005C;u0020;component\u005C;u0020;which\u005C;u0020;displays\u005C;u0020;commonly\u005C;u0020;used\u005C;u0020;controls\u005C;u0020;or\u005C;u0020;Actions.")@Ljavax/swing/SwingContainer;
+innerclass innerClass javax/swing/JToolBar$AccessibleJToolBar outerClass javax/swing/JToolBar innerClassName AccessibleJToolBar flags 4
+innerclass innerClass javax/swing/JToolBar$Separator outerClass javax/swing/JToolBar innerClassName Separator flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JToolBar$AccessibleJToolBar
+header extends javax/swing/JComponent$AccessibleJComponent nestHost javax/swing/JToolBar flags 21
+innerclass innerClass javax/swing/JToolBar$AccessibleJToolBar outerClass javax/swing/JToolBar innerClassName AccessibleJToolBar flags 4
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+
+class name javax/swing/JToolBar$Separator
+header extends javax/swing/JSeparator nestHost javax/swing/JToolBar flags 21
+innerclass innerClass javax/swing/JToolBar$Separator outerClass javax/swing/JToolBar innerClassName Separator flags 9
+
+class name javax/swing/JToolTip
+header extends javax/swing/JComponent implements javax/accessibility/Accessible nestMembers javax/swing/JToolTip$AccessibleJToolTip flags 21
+innerclass innerClass javax/swing/JToolTip$AccessibleJToolTip outerClass javax/swing/JToolTip innerClassName AccessibleJToolTip flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JToolTip$AccessibleJToolTip
+header extends javax/swing/JComponent$AccessibleJComponent nestHost javax/swing/JToolTip flags 21
+innerclass innerClass javax/swing/JToolTip$AccessibleJToolTip outerClass javax/swing/JToolTip innerClassName AccessibleJToolTip flags 4
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+
+class name javax/swing/JTree
+header extends javax/swing/JComponent implements javax/swing/Scrollable,javax/accessibility/Accessible nestMembers javax/swing/JTree$AccessibleJTree,javax/swing/JTree$AccessibleJTree$AccessibleJTreeNode,javax/swing/JTree$DynamicUtilTreeNode,javax/swing/JTree$TreeModelHandler,javax/swing/JTree$TreeSelectionRedirector,javax/swing/JTree$EmptySelectionModel,javax/swing/JTree$DropLocation flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UI",description="A\u005C;u0020;component\u005C;u0020;that\u005C;u0020;displays\u005C;u0020;a\u005C;u0020;set\u005C;u0020;of\u005C;u0020;hierarchical\u005C;u0020;data\u005C;u0020;as\u005C;u0020;an\u005C;u0020;outline.")@Ljavax/swing/SwingContainer;(value=Zfalse)
+innerclass innerClass javax/swing/JTree$AccessibleJTree outerClass javax/swing/JTree innerClassName AccessibleJTree flags 4
+innerclass innerClass javax/swing/JTree$DynamicUtilTreeNode outerClass javax/swing/JTree innerClassName DynamicUtilTreeNode flags 9
+innerclass innerClass javax/swing/JTree$TreeModelHandler outerClass javax/swing/JTree innerClassName TreeModelHandler flags 4
+innerclass innerClass javax/swing/JTree$TreeSelectionRedirector outerClass javax/swing/JTree innerClassName TreeSelectionRedirector flags 4
+innerclass innerClass javax/swing/JTree$EmptySelectionModel outerClass javax/swing/JTree innerClassName EmptySelectionModel flags c
+innerclass innerClass javax/swing/JTree$DropLocation outerClass javax/swing/JTree innerClassName DropLocation flags 19
+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
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass javax/swing/JTree$AccessibleJTree$AccessibleJTreeNode outerClass javax/swing/JTree$AccessibleJTree innerClassName AccessibleJTreeNode flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JTree$AccessibleJTree
+header extends javax/swing/JComponent$AccessibleJComponent implements javax/accessibility/AccessibleSelection,javax/swing/event/TreeSelectionListener,javax/swing/event/TreeModelListener,javax/swing/event/TreeExpansionListener nestHost javax/swing/JTree flags 21
+innerclass innerClass javax/swing/JTree$AccessibleJTree outerClass javax/swing/JTree innerClassName AccessibleJTree flags 4
+innerclass innerClass javax/swing/JTree$AccessibleJTree$AccessibleJTreeNode outerClass javax/swing/JTree$AccessibleJTree innerClassName AccessibleJTreeNode flags 4
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+
+class name javax/swing/JTree$AccessibleJTree$AccessibleJTreeNode
+header extends javax/accessibility/AccessibleContext implements javax/accessibility/Accessible,javax/accessibility/AccessibleComponent,javax/accessibility/AccessibleSelection,javax/accessibility/AccessibleAction nestHost javax/swing/JTree flags 21
+innerclass innerClass javax/swing/JTree$AccessibleJTree outerClass javax/swing/JTree innerClassName AccessibleJTree flags 4
+innerclass innerClass javax/swing/JTree$AccessibleJTree$AccessibleJTreeNode outerClass javax/swing/JTree$AccessibleJTree innerClassName AccessibleJTreeNode flags 4
+
+class name javax/swing/JTree$DropLocation
+header extends javax/swing/TransferHandler$DropLocation nestHost javax/swing/JTree flags 31
+innerclass innerClass javax/swing/JTree$DropLocation outerClass javax/swing/JTree innerClassName DropLocation flags 19
+innerclass innerClass javax/swing/TransferHandler$DropLocation outerClass javax/swing/TransferHandler innerClassName DropLocation flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JTree$DynamicUtilTreeNode
+header extends javax/swing/tree/DefaultMutableTreeNode nestHost javax/swing/JTree flags 21
+innerclass innerClass javax/swing/JTree$DynamicUtilTreeNode outerClass javax/swing/JTree innerClassName DynamicUtilTreeNode flags 9
+
+class name javax/swing/JTree$EmptySelectionModel
+header extends javax/swing/tree/DefaultTreeSelectionModel nestHost javax/swing/JTree flags 21
+innerclass innerClass javax/swing/JTree$EmptySelectionModel outerClass javax/swing/JTree innerClassName EmptySelectionModel flags c
+
+class name javax/swing/JTree$TreeModelHandler
+header extends java/lang/Object implements javax/swing/event/TreeModelListener nestHost javax/swing/JTree flags 21
+innerclass innerClass javax/swing/JTree$TreeModelHandler outerClass javax/swing/JTree innerClassName TreeModelHandler flags 4
+
+class name javax/swing/JTree$TreeSelectionRedirector
+header extends java/lang/Object implements java/io/Serializable,javax/swing/event/TreeSelectionListener nestHost javax/swing/JTree flags 21
+innerclass innerClass javax/swing/JTree$TreeSelectionRedirector outerClass javax/swing/JTree innerClassName TreeSelectionRedirector flags 4
+
+class name javax/swing/JViewport
+header extends javax/swing/JComponent implements javax/accessibility/Accessible nestMembers javax/swing/JViewport$AccessibleJViewport,javax/swing/JViewport$ViewListener flags 21
+innerclass innerClass javax/swing/JViewport$AccessibleJViewport outerClass javax/swing/JViewport innerClassName AccessibleJViewport flags 4
+innerclass innerClass javax/swing/JViewport$ViewListener outerClass javax/swing/JViewport innerClassName ViewListener flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JViewport$AccessibleJViewport
+header extends javax/swing/JComponent$AccessibleJComponent nestHost javax/swing/JViewport flags 21
+innerclass innerClass javax/swing/JViewport$AccessibleJViewport outerClass javax/swing/JViewport innerClassName AccessibleJViewport flags 4
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+
+class name javax/swing/JViewport$ViewListener
+header extends java/awt/event/ComponentAdapter implements java/io/Serializable nestHost javax/swing/JViewport flags 21
+innerclass innerClass javax/swing/JViewport$ViewListener outerClass javax/swing/JViewport innerClassName ViewListener flags 4
+
+class name javax/swing/JWindow
+header extends java/awt/Window implements javax/accessibility/Accessible,javax/swing/RootPaneContainer,javax/swing/TransferHandler$HasGetTransferHandler nestMembers javax/swing/JWindow$AccessibleJWindow flags 21 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="accessibleContext",description="A\u005C;u0020;toplevel\u005C;u0020;window\u005C;u0020;which\u005C;u0020;has\u005C;u0020;no\u005C;u0020;system\u005C;u0020;border\u005C;u0020;or\u005C;u0020;controls.")@Ljavax/swing/SwingContainer;(delegate="getContentPane")
+innerclass innerClass javax/swing/JWindow$AccessibleJWindow outerClass javax/swing/JWindow innerClassName AccessibleJWindow flags 4
+innerclass innerClass javax/swing/TransferHandler$HasGetTransferHandler outerClass javax/swing/TransferHandler innerClassName HasGetTransferHandler flags 608
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/JWindow$AccessibleJWindow
+header extends java/awt/Window$AccessibleAWTWindow nestHost javax/swing/JWindow flags 21
+innerclass innerClass javax/swing/JWindow$AccessibleJWindow outerClass javax/swing/JWindow innerClassName AccessibleJWindow flags 4
+innerclass innerClass java/awt/Window$AccessibleAWTWindow outerClass java/awt/Window innerClassName AccessibleAWTWindow flags 4
+
+class name javax/swing/LayoutFocusTraversalPolicy
+header extends javax/swing/SortingFocusTraversalPolicy implements java/io/Serializable flags 21
+
+class name javax/swing/LayoutStyle
+header extends java/lang/Object nestMembers javax/swing/LayoutStyle$ComponentPlacement flags 421
+innerclass innerClass javax/swing/LayoutStyle$ComponentPlacement outerClass javax/swing/LayoutStyle innerClassName ComponentPlacement flags 4019
+
+class name javax/swing/LayoutStyle$ComponentPlacement
+header extends java/lang/Enum nestHost javax/swing/LayoutStyle flags 4031 signature Ljava/lang/Enum<Ljavax/swing/LayoutStyle$ComponentPlacement;>;
+innerclass innerClass javax/swing/LayoutStyle$ComponentPlacement outerClass javax/swing/LayoutStyle innerClassName ComponentPlacement flags 4019
+
+class name javax/swing/ListCellRenderer
+header extends java/lang/Object flags 601 signature <E:Ljava/lang/Object;>Ljava/lang/Object;
+
+class name javax/swing/ListModel
+header extends java/lang/Object flags 601 signature <E:Ljava/lang/Object;>Ljava/lang/Object;
+
+class name javax/swing/ListSelectionModel
+header extends java/lang/Object flags 601
+method name getSelectedIndices descriptor ()[I flags 1
+method name getSelectedItemsCount descriptor ()I flags 1
+
+class name javax/swing/LookAndFeel
+header extends java/lang/Object flags 421
+innerclass innerClass javax/swing/text/JTextComponent$KeyBinding outerClass javax/swing/text/JTextComponent innerClassName KeyBinding flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/MenuElement
+header extends java/lang/Object flags 601
+
+class name javax/swing/MenuSelectionManager
+header extends java/lang/Object flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/MutableComboBoxModel
+header extends java/lang/Object implements javax/swing/ComboBoxModel flags 601 signature <E:Ljava/lang/Object;>Ljava/lang/Object;Ljavax/swing/ComboBoxModel<TE;>;
+
+class name javax/swing/OverlayLayout
+header extends java/lang/Object implements java/awt/LayoutManager2,java/io/Serializable flags 21
+
+class name javax/swing/Painter
+header extends java/lang/Object flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object;
+
+class name javax/swing/ProgressMonitor
+header extends java/lang/Object implements javax/accessibility/Accessible nestMembers javax/swing/ProgressMonitor$AccessibleProgressMonitor flags 21
+innerclass innerClass javax/swing/ProgressMonitor$AccessibleProgressMonitor outerClass javax/swing/ProgressMonitor innerClassName AccessibleProgressMonitor flags 4
+
+class name javax/swing/ProgressMonitor$AccessibleProgressMonitor
+header extends javax/accessibility/AccessibleContext implements javax/accessibility/AccessibleText,javax/swing/event/ChangeListener,java/beans/PropertyChangeListener nestHost javax/swing/ProgressMonitor flags 21
+innerclass innerClass javax/swing/ProgressMonitor$AccessibleProgressMonitor outerClass javax/swing/ProgressMonitor innerClassName AccessibleProgressMonitor flags 4
+
+class name javax/swing/ProgressMonitorInputStream
+header extends java/io/FilterInputStream flags 21
+
+class name javax/swing/Renderer
+header extends java/lang/Object flags 601
+
+class name javax/swing/RootPaneContainer
+header extends java/lang/Object flags 601
+
+class name javax/swing/RowFilter
+header extends java/lang/Object nestMembers javax/swing/RowFilter$Entry,javax/swing/RowFilter$ComparisonType flags 421 signature <M:Ljava/lang/Object;I:Ljava/lang/Object;>Ljava/lang/Object;
+innerclass innerClass javax/swing/RowFilter$Entry outerClass javax/swing/RowFilter innerClassName Entry flags 409
+innerclass innerClass javax/swing/RowFilter$ComparisonType outerClass javax/swing/RowFilter innerClassName ComparisonType flags 4019
+
+class name javax/swing/RowFilter$ComparisonType
+header extends java/lang/Enum nestHost javax/swing/RowFilter flags 4031 signature Ljava/lang/Enum<Ljavax/swing/RowFilter$ComparisonType;>;
+innerclass innerClass javax/swing/RowFilter$ComparisonType outerClass javax/swing/RowFilter innerClassName ComparisonType flags 4019
+
+class name javax/swing/RowFilter$Entry
+header extends java/lang/Object nestHost javax/swing/RowFilter flags 421 signature <M:Ljava/lang/Object;I:Ljava/lang/Object;>Ljava/lang/Object;
+innerclass innerClass javax/swing/RowFilter$Entry outerClass javax/swing/RowFilter innerClassName Entry flags 409
+
+class name javax/swing/RowSorter
+header extends java/lang/Object nestMembers javax/swing/RowSorter$SortKey flags 421 signature <M:Ljava/lang/Object;>Ljava/lang/Object;
+innerclass innerClass javax/swing/RowSorter$SortKey outerClass javax/swing/RowSorter innerClassName SortKey flags 9
+innerclass innerClass javax/swing/event/RowSorterEvent$Type outerClass javax/swing/event/RowSorterEvent innerClassName Type flags 4019
+
+class name javax/swing/RowSorter$SortKey
+header extends java/lang/Object nestHost javax/swing/RowSorter flags 21
+innerclass innerClass javax/swing/RowSorter$SortKey outerClass javax/swing/RowSorter innerClassName SortKey flags 9
+
+class name javax/swing/ScrollPaneConstants
+header extends java/lang/Object flags 601
+
+class name javax/swing/ScrollPaneLayout
+header extends java/lang/Object implements java/awt/LayoutManager,javax/swing/ScrollPaneConstants,java/io/Serializable nestMembers javax/swing/ScrollPaneLayout$UIResource flags 21
+innerclass innerClass javax/swing/ScrollPaneLayout$UIResource outerClass javax/swing/ScrollPaneLayout innerClassName UIResource flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/ScrollPaneLayout$UIResource
+header extends javax/swing/ScrollPaneLayout implements javax/swing/plaf/UIResource nestHost javax/swing/ScrollPaneLayout flags 21
+innerclass innerClass javax/swing/ScrollPaneLayout$UIResource outerClass javax/swing/ScrollPaneLayout innerClassName UIResource flags 9
+
+class name javax/swing/Scrollable
+header extends java/lang/Object flags 601
+
+class name javax/swing/SingleSelectionModel
+header extends java/lang/Object flags 601
+
+class name javax/swing/SizeRequirements
+header extends java/lang/Object implements java/io/Serializable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/SizeSequence
+header extends java/lang/Object flags 21
+
+class name javax/swing/SortOrder
+header extends java/lang/Enum flags 4031 signature Ljava/lang/Enum<Ljavax/swing/SortOrder;>;
+
+class name javax/swing/SortingFocusTraversalPolicy
+header extends javax/swing/InternalFrameFocusTraversalPolicy flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/SpinnerDateModel
+header extends javax/swing/AbstractSpinnerModel implements java/io/Serializable flags 21
+
+class name javax/swing/SpinnerListModel
+header extends javax/swing/AbstractSpinnerModel implements java/io/Serializable flags 21
+
+class name javax/swing/SpinnerModel
+header extends java/lang/Object flags 601
+
+class name javax/swing/SpinnerNumberModel
+header extends javax/swing/AbstractSpinnerModel implements java/io/Serializable flags 21
+
+class name javax/swing/SpringLayout
+header extends java/lang/Object implements java/awt/LayoutManager2 nestMembers javax/swing/SpringLayout$Constraints flags 21
+innerclass innerClass javax/swing/SpringLayout$Constraints outerClass javax/swing/SpringLayout innerClassName Constraints flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/SpringLayout$Constraints
+header extends java/lang/Object nestHost javax/swing/SpringLayout flags 21
+innerclass innerClass javax/swing/SpringLayout$Constraints outerClass javax/swing/SpringLayout innerClassName Constraints flags 9
+innerclass innerClass java/awt/Component$BaselineResizeBehavior outerClass java/awt/Component innerClassName BaselineResizeBehavior flags 4019
+
+class name javax/swing/SwingConstants
+header extends java/lang/Object flags 601
+
+class name javax/swing/SwingContainer
+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;)
+
+class name javax/swing/SwingWorker
+header extends java/lang/Object implements java/util/concurrent/RunnableFuture nestMembers javax/swing/SwingWorker$StateValue flags 421 signature <T:Ljava/lang/Object;V:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/concurrent/RunnableFuture<TT;>;
+innerclass innerClass javax/swing/SwingWorker$StateValue outerClass javax/swing/SwingWorker innerClassName StateValue flags 4019
+
+class name javax/swing/SwingWorker$StateValue
+header extends java/lang/Enum nestHost javax/swing/SwingWorker flags 4031 signature Ljava/lang/Enum<Ljavax/swing/SwingWorker$StateValue;>;
+innerclass innerClass javax/swing/SwingWorker$StateValue outerClass javax/swing/SwingWorker innerClassName StateValue flags 4019
+
+class name javax/swing/ToolTipManager
+header extends java/awt/event/MouseAdapter implements java/awt/event/MouseMotionListener nestMembers javax/swing/ToolTipManager$stillInsideTimerAction,javax/swing/ToolTipManager$outsideTimerAction,javax/swing/ToolTipManager$insideTimerAction flags 21
+innerclass innerClass javax/swing/ToolTipManager$stillInsideTimerAction outerClass javax/swing/ToolTipManager innerClassName stillInsideTimerAction flags 4
+innerclass innerClass javax/swing/ToolTipManager$outsideTimerAction outerClass javax/swing/ToolTipManager innerClassName outsideTimerAction flags 4
+innerclass innerClass javax/swing/ToolTipManager$insideTimerAction outerClass javax/swing/ToolTipManager innerClassName insideTimerAction flags 4
+
+class name javax/swing/ToolTipManager$insideTimerAction
+header extends java/lang/Object implements java/awt/event/ActionListener nestHost javax/swing/ToolTipManager flags 21
+innerclass innerClass javax/swing/ToolTipManager$insideTimerAction outerClass javax/swing/ToolTipManager innerClassName insideTimerAction flags 4
+
+class name javax/swing/ToolTipManager$outsideTimerAction
+header extends java/lang/Object implements java/awt/event/ActionListener nestHost javax/swing/ToolTipManager flags 21
+innerclass innerClass javax/swing/ToolTipManager$outsideTimerAction outerClass javax/swing/ToolTipManager innerClassName outsideTimerAction flags 4
+
+class name javax/swing/ToolTipManager$stillInsideTimerAction
+header extends java/lang/Object implements java/awt/event/ActionListener nestHost javax/swing/ToolTipManager flags 21
+innerclass innerClass javax/swing/ToolTipManager$stillInsideTimerAction outerClass javax/swing/ToolTipManager innerClassName stillInsideTimerAction flags 4
+
+class name javax/swing/TransferHandler
+header extends java/lang/Object implements java/io/Serializable nestMembers javax/swing/TransferHandler$TransferSupport,javax/swing/TransferHandler$DropLocation,javax/swing/TransferHandler$HasGetTransferHandler flags 21
+innerclass innerClass javax/swing/TransferHandler$TransferSupport outerClass javax/swing/TransferHandler innerClassName TransferSupport flags 19
+innerclass innerClass javax/swing/TransferHandler$DropLocation outerClass javax/swing/TransferHandler innerClassName DropLocation flags 9
+innerclass innerClass javax/swing/TransferHandler$HasGetTransferHandler outerClass javax/swing/TransferHandler innerClassName HasGetTransferHandler flags 608
+
+class name javax/swing/TransferHandler$DropLocation
+header extends java/lang/Object nestHost javax/swing/TransferHandler flags 21
+innerclass innerClass javax/swing/TransferHandler$DropLocation outerClass javax/swing/TransferHandler innerClassName DropLocation flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/TransferHandler$HasGetTransferHandler
+header extends java/lang/Object nestHost javax/swing/TransferHandler flags 600
+innerclass innerClass javax/swing/TransferHandler$HasGetTransferHandler outerClass javax/swing/TransferHandler innerClassName HasGetTransferHandler flags 608
+
+class name javax/swing/TransferHandler$TransferSupport
+header extends java/lang/Object nestHost javax/swing/TransferHandler flags 31
+innerclass innerClass javax/swing/TransferHandler$DropLocation outerClass javax/swing/TransferHandler innerClassName DropLocation flags 9
+innerclass innerClass javax/swing/TransferHandler$TransferSupport outerClass javax/swing/TransferHandler innerClassName TransferSupport flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/UIClientPropertyKey
+header extends java/lang/Object flags 601
+
+class name javax/swing/UIDefaults
+header extends java/util/Hashtable nestMembers javax/swing/UIDefaults$LazyInputMap,javax/swing/UIDefaults$ProxyLazyValue,javax/swing/UIDefaults$ActiveValue,javax/swing/UIDefaults$LazyValue flags 21 signature Ljava/util/Hashtable<Ljava/lang/Object;Ljava/lang/Object;>;
+innerclass innerClass javax/swing/UIDefaults$LazyInputMap outerClass javax/swing/UIDefaults innerClassName LazyInputMap flags 9
+innerclass innerClass javax/swing/UIDefaults$ProxyLazyValue outerClass javax/swing/UIDefaults innerClassName ProxyLazyValue flags 9
+innerclass innerClass javax/swing/UIDefaults$ActiveValue outerClass javax/swing/UIDefaults innerClassName ActiveValue flags 609
+innerclass innerClass javax/swing/UIDefaults$LazyValue outerClass javax/swing/UIDefaults innerClassName LazyValue flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/UIDefaults$ActiveValue
+header extends java/lang/Object nestHost javax/swing/UIDefaults flags 601
+innerclass innerClass javax/swing/UIDefaults$ActiveValue outerClass javax/swing/UIDefaults innerClassName ActiveValue flags 609
+
+class name javax/swing/UIDefaults$LazyInputMap
+header extends java/lang/Object implements javax/swing/UIDefaults$LazyValue nestHost javax/swing/UIDefaults flags 21
+innerclass innerClass javax/swing/UIDefaults$LazyInputMap outerClass javax/swing/UIDefaults innerClassName LazyInputMap flags 9
+innerclass innerClass javax/swing/UIDefaults$LazyValue outerClass javax/swing/UIDefaults innerClassName LazyValue flags 609
+
+class name javax/swing/UIDefaults$LazyValue
+header extends java/lang/Object nestHost javax/swing/UIDefaults flags 601
+innerclass innerClass javax/swing/UIDefaults$LazyValue outerClass javax/swing/UIDefaults innerClassName LazyValue flags 609
+
+class name javax/swing/UIDefaults$ProxyLazyValue
+header extends java/lang/Object implements javax/swing/UIDefaults$LazyValue nestHost javax/swing/UIDefaults flags 21
+innerclass innerClass javax/swing/UIDefaults$ProxyLazyValue outerClass javax/swing/UIDefaults innerClassName ProxyLazyValue flags 9
+innerclass innerClass javax/swing/UIDefaults$LazyValue outerClass javax/swing/UIDefaults innerClassName LazyValue flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/UIManager
+header extends java/lang/Object implements java/io/Serializable nestMembers javax/swing/UIManager$LookAndFeelInfo flags 21
+innerclass innerClass javax/swing/UIManager$LookAndFeelInfo outerClass javax/swing/UIManager innerClassName LookAndFeelInfo flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/UIManager$LookAndFeelInfo
+header extends java/lang/Object nestHost javax/swing/UIManager flags 21
+innerclass innerClass javax/swing/UIManager$LookAndFeelInfo outerClass javax/swing/UIManager innerClassName LookAndFeelInfo flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/UnsupportedLookAndFeelException
+header extends java/lang/Exception flags 21
+
+class name javax/swing/ViewportLayout
+header extends java/lang/Object implements java/awt/LayoutManager,java/io/Serializable flags 21
+
+class name javax/swing/WindowConstants
+header extends java/lang/Object flags 601
+
+class name javax/swing/border/AbstractBorder
+header extends java/lang/Object implements javax/swing/border/Border,java/io/Serializable flags 421
+innerclass innerClass java/awt/Component$BaselineResizeBehavior outerClass java/awt/Component innerClassName BaselineResizeBehavior flags 4019
+
+class name javax/swing/border/BevelBorder
+header extends javax/swing/border/AbstractBorder flags 21
+
+class name javax/swing/border/Border
+header extends java/lang/Object flags 601
+
+class name javax/swing/border/CompoundBorder
+header extends javax/swing/border/AbstractBorder flags 21
+
+class name javax/swing/border/EmptyBorder
+header extends javax/swing/border/AbstractBorder implements java/io/Serializable flags 21
+
+class name javax/swing/border/EtchedBorder
+header extends javax/swing/border/AbstractBorder flags 21
+
+class name javax/swing/border/LineBorder
+header extends javax/swing/border/AbstractBorder flags 21
+innerclass innerClass java/awt/geom/RoundRectangle2D$Float outerClass java/awt/geom/RoundRectangle2D innerClassName Float flags 9
+innerclass innerClass java/awt/geom/Rectangle2D$Float outerClass java/awt/geom/Rectangle2D innerClassName Float flags 9
+innerclass innerClass java/awt/geom/Path2D$Float outerClass java/awt/geom/Path2D innerClassName Float flags 9
+
+class name javax/swing/border/MatteBorder
+header extends javax/swing/border/EmptyBorder flags 21
+
+class name javax/swing/border/SoftBevelBorder
+header extends javax/swing/border/BevelBorder flags 21
+
+class name javax/swing/border/StrokeBorder
+header extends javax/swing/border/AbstractBorder flags 21
+innerclass innerClass java/awt/geom/Rectangle2D$Float outerClass java/awt/geom/Rectangle2D innerClassName Float flags 9
+innerclass innerClass java/awt/RenderingHints$Key outerClass java/awt/RenderingHints innerClassName Key flags 409
+
+class name javax/swing/colorchooser/ColorChooserComponentFactory
+header extends java/lang/Object flags 21
+
+class name javax/swing/colorchooser/ColorSelectionModel
+header extends java/lang/Object flags 601
+
+class name javax/swing/colorchooser/DefaultColorSelectionModel
+header extends java/lang/Object implements javax/swing/colorchooser/ColorSelectionModel,java/io/Serializable flags 21
+
+class name javax/swing/event/AncestorEvent
+header extends java/awt/AWTEvent flags 21
+
+class name javax/swing/event/AncestorListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name javax/swing/event/CaretEvent
+header extends java/util/EventObject flags 421
+
+class name javax/swing/event/CaretListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name javax/swing/event/CellEditorListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name javax/swing/event/ChangeEvent
+header extends java/util/EventObject flags 21
+
+class name javax/swing/event/ChangeListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name javax/swing/event/DocumentEvent
+header extends java/lang/Object nestMembers javax/swing/event/DocumentEvent$ElementChange,javax/swing/event/DocumentEvent$EventType flags 601
+innerclass innerClass javax/swing/event/DocumentEvent$ElementChange outerClass javax/swing/event/DocumentEvent innerClassName ElementChange flags 609
+innerclass innerClass javax/swing/event/DocumentEvent$EventType outerClass javax/swing/event/DocumentEvent innerClassName EventType flags 19
+
+class name javax/swing/event/DocumentEvent$ElementChange
+header extends java/lang/Object nestHost javax/swing/event/DocumentEvent flags 601
+innerclass innerClass javax/swing/event/DocumentEvent$ElementChange outerClass javax/swing/event/DocumentEvent innerClassName ElementChange flags 609
+
+class name javax/swing/event/DocumentEvent$EventType
+header extends java/lang/Object nestHost javax/swing/event/DocumentEvent flags 31
+innerclass innerClass javax/swing/event/DocumentEvent$EventType outerClass javax/swing/event/DocumentEvent innerClassName EventType flags 19
+
+class name javax/swing/event/DocumentListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name javax/swing/event/EventListenerList
+header extends java/lang/Object implements java/io/Serializable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/event/HyperlinkEvent
+header extends java/util/EventObject nestMembers javax/swing/event/HyperlinkEvent$EventType flags 21
+innerclass innerClass javax/swing/event/HyperlinkEvent$EventType outerClass javax/swing/event/HyperlinkEvent innerClassName EventType flags 19
+
+class name javax/swing/event/HyperlinkEvent$EventType
+header extends java/lang/Object nestHost javax/swing/event/HyperlinkEvent flags 31
+innerclass innerClass javax/swing/event/HyperlinkEvent$EventType outerClass javax/swing/event/HyperlinkEvent innerClassName EventType flags 19
+
+class name javax/swing/event/HyperlinkListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name javax/swing/event/InternalFrameAdapter
+header extends java/lang/Object implements javax/swing/event/InternalFrameListener flags 421
+
+class name javax/swing/event/InternalFrameEvent
+header extends java/awt/AWTEvent flags 21
+
+class name javax/swing/event/InternalFrameListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name javax/swing/event/ListDataEvent
+header extends java/util/EventObject flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/event/ListDataListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name javax/swing/event/ListSelectionEvent
+header extends java/util/EventObject flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/event/ListSelectionListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name javax/swing/event/MenuDragMouseEvent
+header extends java/awt/event/MouseEvent flags 21
+
+class name javax/swing/event/MenuDragMouseListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name javax/swing/event/MenuEvent
+header extends java/util/EventObject flags 21
+
+class name javax/swing/event/MenuKeyEvent
+header extends java/awt/event/KeyEvent flags 21
+
+class name javax/swing/event/MenuKeyListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name javax/swing/event/MenuListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name javax/swing/event/MouseInputAdapter
+header extends java/awt/event/MouseAdapter implements javax/swing/event/MouseInputListener flags 421
+
+class name javax/swing/event/MouseInputListener
+header extends java/lang/Object implements java/awt/event/MouseListener,java/awt/event/MouseMotionListener flags 601
+
+class name javax/swing/event/PopupMenuEvent
+header extends java/util/EventObject flags 21
+
+class name javax/swing/event/PopupMenuListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name javax/swing/event/RowSorterEvent
+header extends java/util/EventObject nestMembers javax/swing/event/RowSorterEvent$Type flags 21
+innerclass innerClass javax/swing/event/RowSorterEvent$Type outerClass javax/swing/event/RowSorterEvent innerClassName Type flags 4019
+
+class name javax/swing/event/RowSorterEvent$Type
+header extends java/lang/Enum nestHost javax/swing/event/RowSorterEvent flags 4031 signature Ljava/lang/Enum<Ljavax/swing/event/RowSorterEvent$Type;>;
+innerclass innerClass javax/swing/event/RowSorterEvent$Type outerClass javax/swing/event/RowSorterEvent innerClassName Type flags 4019
+
+class name javax/swing/event/RowSorterListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name javax/swing/event/TableColumnModelEvent
+header extends java/util/EventObject flags 21
+
+class name javax/swing/event/TableColumnModelListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name javax/swing/event/TableModelEvent
+header extends java/util/EventObject flags 21
+
+class name javax/swing/event/TableModelListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name javax/swing/event/TreeExpansionEvent
+header extends java/util/EventObject flags 21
+
+class name javax/swing/event/TreeExpansionListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name javax/swing/event/TreeModelEvent
+header extends java/util/EventObject flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/event/TreeModelListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name javax/swing/event/TreeSelectionEvent
+header extends java/util/EventObject flags 21
+
+class name javax/swing/event/TreeSelectionListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name javax/swing/event/TreeWillExpandListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name javax/swing/event/UndoableEditEvent
+header extends java/util/EventObject flags 21
+
+class name javax/swing/event/UndoableEditListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name javax/swing/filechooser/FileFilter
+header extends java/lang/Object flags 421
+
+class name javax/swing/filechooser/FileNameExtensionFilter
+header extends javax/swing/filechooser/FileFilter flags 31
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/filechooser/FileView
+header extends java/lang/Object flags 421
+
+class name javax/swing/plaf/ActionMapUIResource
+header extends javax/swing/ActionMap implements javax/swing/plaf/UIResource flags 21
+
+class name javax/swing/plaf/BorderUIResource
+header extends java/lang/Object implements javax/swing/border/Border,javax/swing/plaf/UIResource,java/io/Serializable nestMembers javax/swing/plaf/BorderUIResource$TitledBorderUIResource,javax/swing/plaf/BorderUIResource$MatteBorderUIResource,javax/swing/plaf/BorderUIResource$EtchedBorderUIResource,javax/swing/plaf/BorderUIResource$BevelBorderUIResource,javax/swing/plaf/BorderUIResource$LineBorderUIResource,javax/swing/plaf/BorderUIResource$EmptyBorderUIResource,javax/swing/plaf/BorderUIResource$CompoundBorderUIResource flags 21
+innerclass innerClass javax/swing/plaf/BorderUIResource$TitledBorderUIResource outerClass javax/swing/plaf/BorderUIResource innerClassName TitledBorderUIResource flags 9
+innerclass innerClass javax/swing/plaf/BorderUIResource$MatteBorderUIResource outerClass javax/swing/plaf/BorderUIResource innerClassName MatteBorderUIResource flags 9
+innerclass innerClass javax/swing/plaf/BorderUIResource$EtchedBorderUIResource outerClass javax/swing/plaf/BorderUIResource innerClassName EtchedBorderUIResource flags 9
+innerclass innerClass javax/swing/plaf/BorderUIResource$BevelBorderUIResource outerClass javax/swing/plaf/BorderUIResource innerClassName BevelBorderUIResource flags 9
+innerclass innerClass javax/swing/plaf/BorderUIResource$LineBorderUIResource outerClass javax/swing/plaf/BorderUIResource innerClassName LineBorderUIResource flags 9
+innerclass innerClass javax/swing/plaf/BorderUIResource$EmptyBorderUIResource outerClass javax/swing/plaf/BorderUIResource innerClassName EmptyBorderUIResource flags 9
+innerclass innerClass javax/swing/plaf/BorderUIResource$CompoundBorderUIResource outerClass javax/swing/plaf/BorderUIResource innerClassName CompoundBorderUIResource flags 9
+
+class name javax/swing/plaf/BorderUIResource$BevelBorderUIResource
+header extends javax/swing/border/BevelBorder implements javax/swing/plaf/UIResource nestHost javax/swing/plaf/BorderUIResource flags 21
+innerclass innerClass javax/swing/plaf/BorderUIResource$BevelBorderUIResource outerClass javax/swing/plaf/BorderUIResource innerClassName BevelBorderUIResource flags 9
+
+class name javax/swing/plaf/BorderUIResource$CompoundBorderUIResource
+header extends javax/swing/border/CompoundBorder implements javax/swing/plaf/UIResource nestHost javax/swing/plaf/BorderUIResource flags 21
+innerclass innerClass javax/swing/plaf/BorderUIResource$CompoundBorderUIResource outerClass javax/swing/plaf/BorderUIResource innerClassName CompoundBorderUIResource flags 9
+
+class name javax/swing/plaf/BorderUIResource$EmptyBorderUIResource
+header extends javax/swing/border/EmptyBorder implements javax/swing/plaf/UIResource nestHost javax/swing/plaf/BorderUIResource flags 21
+innerclass innerClass javax/swing/plaf/BorderUIResource$EmptyBorderUIResource outerClass javax/swing/plaf/BorderUIResource innerClassName EmptyBorderUIResource flags 9
+
+class name javax/swing/plaf/BorderUIResource$EtchedBorderUIResource
+header extends javax/swing/border/EtchedBorder implements javax/swing/plaf/UIResource nestHost javax/swing/plaf/BorderUIResource flags 21
+innerclass innerClass javax/swing/plaf/BorderUIResource$EtchedBorderUIResource outerClass javax/swing/plaf/BorderUIResource innerClassName EtchedBorderUIResource flags 9
+
+class name javax/swing/plaf/BorderUIResource$LineBorderUIResource
+header extends javax/swing/border/LineBorder implements javax/swing/plaf/UIResource nestHost javax/swing/plaf/BorderUIResource flags 21
+innerclass innerClass javax/swing/plaf/BorderUIResource$LineBorderUIResource outerClass javax/swing/plaf/BorderUIResource innerClassName LineBorderUIResource flags 9
+
+class name javax/swing/plaf/BorderUIResource$MatteBorderUIResource
+header extends javax/swing/border/MatteBorder implements javax/swing/plaf/UIResource nestHost javax/swing/plaf/BorderUIResource flags 21
+innerclass innerClass javax/swing/plaf/BorderUIResource$MatteBorderUIResource outerClass javax/swing/plaf/BorderUIResource innerClassName MatteBorderUIResource flags 9
+
+class name javax/swing/plaf/BorderUIResource$TitledBorderUIResource
+header extends javax/swing/border/TitledBorder implements javax/swing/plaf/UIResource nestHost javax/swing/plaf/BorderUIResource flags 21
+innerclass innerClass javax/swing/plaf/BorderUIResource$TitledBorderUIResource outerClass javax/swing/plaf/BorderUIResource innerClassName TitledBorderUIResource flags 9
+
+class name javax/swing/plaf/ButtonUI
+header extends javax/swing/plaf/ComponentUI flags 421
+
+class name javax/swing/plaf/ColorChooserUI
+header extends javax/swing/plaf/ComponentUI flags 421
+
+class name javax/swing/plaf/ColorUIResource
+header extends java/awt/Color implements javax/swing/plaf/UIResource flags 21
+
+class name javax/swing/plaf/ComboBoxUI
+header extends javax/swing/plaf/ComponentUI flags 421
+
+class name javax/swing/plaf/ComponentInputMapUIResource
+header extends javax/swing/ComponentInputMap implements javax/swing/plaf/UIResource flags 21
+
+class name javax/swing/plaf/ComponentUI
+header extends java/lang/Object flags 421
+innerclass innerClass java/awt/Component$BaselineResizeBehavior outerClass java/awt/Component innerClassName BaselineResizeBehavior flags 4019
+
+class name javax/swing/plaf/DesktopIconUI
+header extends javax/swing/plaf/ComponentUI flags 421
+
+class name javax/swing/plaf/DesktopPaneUI
+header extends javax/swing/plaf/ComponentUI flags 421
+
+class name javax/swing/plaf/DimensionUIResource
+header extends java/awt/Dimension implements javax/swing/plaf/UIResource flags 21
+
+class name javax/swing/plaf/FileChooserUI
+header extends javax/swing/plaf/ComponentUI flags 421
+
+class name javax/swing/plaf/FontUIResource
+header extends java/awt/Font implements javax/swing/plaf/UIResource flags 21
+
+class name javax/swing/plaf/IconUIResource
+header extends java/lang/Object implements javax/swing/Icon,javax/swing/plaf/UIResource,java/io/Serializable flags 21
+
+class name javax/swing/plaf/InputMapUIResource
+header extends javax/swing/InputMap implements javax/swing/plaf/UIResource flags 21
+
+class name javax/swing/plaf/InsetsUIResource
+header extends java/awt/Insets implements javax/swing/plaf/UIResource flags 21
+
+class name javax/swing/plaf/InternalFrameUI
+header extends javax/swing/plaf/ComponentUI flags 421
+
+class name javax/swing/plaf/LabelUI
+header extends javax/swing/plaf/ComponentUI flags 421
+
+class name javax/swing/plaf/LayerUI
+header extends javax/swing/plaf/ComponentUI implements java/io/Serializable flags 21 signature <V:Ljava/awt/Component;>Ljavax/swing/plaf/ComponentUI;Ljava/io/Serializable;
+innerclass innerClass java/awt/Component$BaselineResizeBehavior outerClass java/awt/Component innerClassName BaselineResizeBehavior flags 4019
+
+class name javax/swing/plaf/ListUI
+header extends javax/swing/plaf/ComponentUI flags 421
+
+class name javax/swing/plaf/MenuBarUI
+header extends javax/swing/plaf/ComponentUI flags 421
+
+class name javax/swing/plaf/MenuItemUI
+header extends javax/swing/plaf/ButtonUI flags 421
+
+class name javax/swing/plaf/OptionPaneUI
+header extends javax/swing/plaf/ComponentUI flags 421
+
+class name javax/swing/plaf/PanelUI
+header extends javax/swing/plaf/ComponentUI flags 421
+
+class name javax/swing/plaf/PopupMenuUI
+header extends javax/swing/plaf/ComponentUI flags 421
+
+class name javax/swing/plaf/ProgressBarUI
+header extends javax/swing/plaf/ComponentUI flags 421
+
+class name javax/swing/plaf/RootPaneUI
+header extends javax/swing/plaf/ComponentUI flags 421
+
+class name javax/swing/plaf/ScrollBarUI
+header extends javax/swing/plaf/ComponentUI flags 421
+
+class name javax/swing/plaf/ScrollPaneUI
+header extends javax/swing/plaf/ComponentUI flags 421
+
+class name javax/swing/plaf/SeparatorUI
+header extends javax/swing/plaf/ComponentUI flags 421
+
+class name javax/swing/plaf/SliderUI
+header extends javax/swing/plaf/ComponentUI flags 421
+
+class name javax/swing/plaf/SpinnerUI
+header extends javax/swing/plaf/ComponentUI flags 421
+
+class name javax/swing/plaf/SplitPaneUI
+header extends javax/swing/plaf/ComponentUI flags 421
+
+class name javax/swing/plaf/TabbedPaneUI
+header extends javax/swing/plaf/ComponentUI flags 421
+
+class name javax/swing/plaf/TableHeaderUI
+header extends javax/swing/plaf/ComponentUI flags 421
+
+class name javax/swing/plaf/TableUI
+header extends javax/swing/plaf/ComponentUI flags 421
+
+class name javax/swing/plaf/TextUI
+header extends javax/swing/plaf/ComponentUI flags 421
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+
+class name javax/swing/plaf/ToolBarUI
+header extends javax/swing/plaf/ComponentUI flags 421
+
+class name javax/swing/plaf/ToolTipUI
+header extends javax/swing/plaf/ComponentUI flags 421
+
+class name javax/swing/plaf/TreeUI
+header extends javax/swing/plaf/ComponentUI flags 421
+
+class name javax/swing/plaf/UIResource
+header extends java/lang/Object flags 601
+
+class name javax/swing/plaf/ViewportUI
+header extends javax/swing/plaf/ComponentUI flags 421
+
+class name javax/swing/plaf/basic/BasicArrowButton
+header extends javax/swing/JButton implements javax/swing/SwingConstants flags 21
+innerclass innerClass java/awt/geom/Path2D$Double outerClass java/awt/geom/Path2D innerClassName Double flags 9
+
+class name javax/swing/plaf/basic/BasicBorders
+header extends java/lang/Object nestMembers javax/swing/plaf/basic/BasicBorders$SplitPaneBorder,javax/swing/plaf/basic/BasicBorders$FieldBorder,javax/swing/plaf/basic/BasicBorders$MarginBorder,javax/swing/plaf/basic/BasicBorders$MenuBarBorder,javax/swing/plaf/basic/BasicBorders$RadioButtonBorder,javax/swing/plaf/basic/BasicBorders$ToggleButtonBorder,javax/swing/plaf/basic/BasicBorders$ButtonBorder,javax/swing/plaf/basic/BasicBorders$RolloverButtonBorder flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$SplitPaneBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName SplitPaneBorder flags 9
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$FieldBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName FieldBorder flags 9
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$MarginBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName MarginBorder flags 9
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$MenuBarBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName MenuBarBorder flags 9
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$RadioButtonBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName RadioButtonBorder flags 9
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$ToggleButtonBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName ToggleButtonBorder flags 9
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$ButtonBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName ButtonBorder flags 9
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$RolloverButtonBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName RolloverButtonBorder flags 9
+innerclass innerClass javax/swing/plaf/BorderUIResource$CompoundBorderUIResource outerClass javax/swing/plaf/BorderUIResource innerClassName CompoundBorderUIResource flags 9
+innerclass innerClass javax/swing/plaf/BorderUIResource$LineBorderUIResource outerClass javax/swing/plaf/BorderUIResource innerClassName LineBorderUIResource flags 9
+
+class name javax/swing/plaf/basic/BasicBorders$ButtonBorder
+header extends javax/swing/border/AbstractBorder implements javax/swing/plaf/UIResource nestHost javax/swing/plaf/basic/BasicBorders flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$ButtonBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName ButtonBorder flags 9
+
+class name javax/swing/plaf/basic/BasicBorders$FieldBorder
+header extends javax/swing/border/AbstractBorder implements javax/swing/plaf/UIResource nestHost javax/swing/plaf/basic/BasicBorders flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$FieldBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName FieldBorder flags 9
+
+class name javax/swing/plaf/basic/BasicBorders$MarginBorder
+header extends javax/swing/border/AbstractBorder implements javax/swing/plaf/UIResource nestHost javax/swing/plaf/basic/BasicBorders flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$MarginBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName MarginBorder flags 9
+
+class name javax/swing/plaf/basic/BasicBorders$MenuBarBorder
+header extends javax/swing/border/AbstractBorder implements javax/swing/plaf/UIResource nestHost javax/swing/plaf/basic/BasicBorders flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$MenuBarBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName MenuBarBorder flags 9
+
+class name javax/swing/plaf/basic/BasicBorders$RadioButtonBorder
+header extends javax/swing/plaf/basic/BasicBorders$ButtonBorder nestHost javax/swing/plaf/basic/BasicBorders flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$RadioButtonBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName RadioButtonBorder flags 9
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$ButtonBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName ButtonBorder flags 9
+
+class name javax/swing/plaf/basic/BasicBorders$RolloverButtonBorder
+header extends javax/swing/plaf/basic/BasicBorders$ButtonBorder nestHost javax/swing/plaf/basic/BasicBorders flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$RolloverButtonBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName RolloverButtonBorder flags 9
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$ButtonBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName ButtonBorder flags 9
+
+class name javax/swing/plaf/basic/BasicBorders$SplitPaneBorder
+header extends java/lang/Object implements javax/swing/border/Border,javax/swing/plaf/UIResource nestHost javax/swing/plaf/basic/BasicBorders flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$SplitPaneBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName SplitPaneBorder flags 9
+
+class name javax/swing/plaf/basic/BasicBorders$ToggleButtonBorder
+header extends javax/swing/plaf/basic/BasicBorders$ButtonBorder nestHost javax/swing/plaf/basic/BasicBorders flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$ToggleButtonBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName ToggleButtonBorder flags 9
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$ButtonBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName ButtonBorder flags 9
+
+class name javax/swing/plaf/basic/BasicButtonUI
+header extends javax/swing/plaf/ButtonUI flags 21
+innerclass innerClass java/awt/Component$BaselineResizeBehavior outerClass java/awt/Component innerClassName BaselineResizeBehavior flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/plaf/basic/BasicCheckBoxMenuItemUI
+header extends javax/swing/plaf/basic/BasicMenuItemUI flags 21
+
+class name javax/swing/plaf/basic/BasicCheckBoxUI
+header extends javax/swing/plaf/basic/BasicRadioButtonUI flags 21
+
+class name javax/swing/plaf/basic/BasicColorChooserUI
+header extends javax/swing/plaf/ColorChooserUI nestMembers javax/swing/plaf/basic/BasicColorChooserUI$PropertyHandler flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicColorChooserUI$PropertyHandler outerClass javax/swing/plaf/basic/BasicColorChooserUI innerClassName PropertyHandler flags 1
+
+class name javax/swing/plaf/basic/BasicColorChooserUI$PropertyHandler
+header extends java/lang/Object implements java/beans/PropertyChangeListener nestHost javax/swing/plaf/basic/BasicColorChooserUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicColorChooserUI$PropertyHandler outerClass javax/swing/plaf/basic/BasicColorChooserUI innerClassName PropertyHandler flags 1
+
+class name javax/swing/plaf/basic/BasicComboBoxEditor
+header extends java/lang/Object implements javax/swing/ComboBoxEditor,java/awt/event/FocusListener nestMembers javax/swing/plaf/basic/BasicComboBoxEditor$UIResource flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicComboBoxEditor$UIResource outerClass javax/swing/plaf/basic/BasicComboBoxEditor innerClassName UIResource flags 9
+
+class name javax/swing/plaf/basic/BasicComboBoxEditor$UIResource
+header extends javax/swing/plaf/basic/BasicComboBoxEditor implements javax/swing/plaf/UIResource nestHost javax/swing/plaf/basic/BasicComboBoxEditor flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicComboBoxEditor$UIResource outerClass javax/swing/plaf/basic/BasicComboBoxEditor innerClassName UIResource flags 9
+
+class name javax/swing/plaf/basic/BasicComboBoxRenderer
+header extends javax/swing/JLabel implements javax/swing/ListCellRenderer,java/io/Serializable nestMembers javax/swing/plaf/basic/BasicComboBoxRenderer$UIResource flags 21 signature Ljavax/swing/JLabel;Ljavax/swing/ListCellRenderer<Ljava/lang/Object;>;Ljava/io/Serializable;
+innerclass innerClass javax/swing/plaf/basic/BasicComboBoxRenderer$UIResource outerClass javax/swing/plaf/basic/BasicComboBoxRenderer innerClassName UIResource flags 9
+
+class name javax/swing/plaf/basic/BasicComboBoxRenderer$UIResource
+header extends javax/swing/plaf/basic/BasicComboBoxRenderer implements javax/swing/plaf/UIResource nestHost javax/swing/plaf/basic/BasicComboBoxRenderer flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicComboBoxRenderer$UIResource outerClass javax/swing/plaf/basic/BasicComboBoxRenderer innerClassName UIResource flags 9
+
+class name javax/swing/plaf/basic/BasicComboBoxUI
+header extends javax/swing/plaf/ComboBoxUI nestMembers javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager,javax/swing/plaf/basic/BasicComboBoxUI$PropertyChangeHandler,javax/swing/plaf/basic/BasicComboBoxUI$ItemHandler,javax/swing/plaf/basic/BasicComboBoxUI$ListDataHandler,javax/swing/plaf/basic/BasicComboBoxUI$FocusHandler,javax/swing/plaf/basic/BasicComboBoxUI$KeyHandler flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager outerClass javax/swing/plaf/basic/BasicComboBoxUI innerClassName ComboBoxLayoutManager flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicComboBoxUI$PropertyChangeHandler outerClass javax/swing/plaf/basic/BasicComboBoxUI innerClassName PropertyChangeHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicComboBoxUI$ItemHandler outerClass javax/swing/plaf/basic/BasicComboBoxUI innerClassName ItemHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicComboBoxUI$ListDataHandler outerClass javax/swing/plaf/basic/BasicComboBoxUI innerClassName ListDataHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicComboBoxUI$FocusHandler outerClass javax/swing/plaf/basic/BasicComboBoxUI innerClassName FocusHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicComboBoxUI$KeyHandler outerClass javax/swing/plaf/basic/BasicComboBoxUI innerClassName KeyHandler flags 1
+innerclass innerClass javax/swing/JComboBox$KeySelectionManager outerClass javax/swing/JComboBox innerClassName KeySelectionManager flags 609
+innerclass innerClass java/awt/Component$BaselineResizeBehavior outerClass java/awt/Component innerClassName BaselineResizeBehavior flags 4019
+innerclass innerClass javax/swing/plaf/basic/BasicComboBoxRenderer$UIResource outerClass javax/swing/plaf/basic/BasicComboBoxRenderer innerClassName UIResource flags 9
+innerclass innerClass javax/swing/plaf/basic/BasicComboBoxEditor$UIResource outerClass javax/swing/plaf/basic/BasicComboBoxEditor innerClassName UIResource flags 9
+
+class name javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager
+header extends java/lang/Object implements java/awt/LayoutManager nestHost javax/swing/plaf/basic/BasicComboBoxUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager outerClass javax/swing/plaf/basic/BasicComboBoxUI innerClassName ComboBoxLayoutManager flags 1
+
+class name javax/swing/plaf/basic/BasicComboBoxUI$FocusHandler
+header extends java/lang/Object implements java/awt/event/FocusListener nestHost javax/swing/plaf/basic/BasicComboBoxUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicComboBoxUI$FocusHandler outerClass javax/swing/plaf/basic/BasicComboBoxUI innerClassName FocusHandler flags 1
+
+class name javax/swing/plaf/basic/BasicComboBoxUI$ItemHandler
+header extends java/lang/Object implements java/awt/event/ItemListener nestHost javax/swing/plaf/basic/BasicComboBoxUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicComboBoxUI$ItemHandler outerClass javax/swing/plaf/basic/BasicComboBoxUI innerClassName ItemHandler flags 1
+
+class name javax/swing/plaf/basic/BasicComboBoxUI$KeyHandler
+header extends java/awt/event/KeyAdapter nestHost javax/swing/plaf/basic/BasicComboBoxUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicComboBoxUI$KeyHandler outerClass javax/swing/plaf/basic/BasicComboBoxUI innerClassName KeyHandler flags 1
+
+class name javax/swing/plaf/basic/BasicComboBoxUI$ListDataHandler
+header extends java/lang/Object implements javax/swing/event/ListDataListener nestHost javax/swing/plaf/basic/BasicComboBoxUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicComboBoxUI$ListDataHandler outerClass javax/swing/plaf/basic/BasicComboBoxUI innerClassName ListDataHandler flags 1
+
+class name javax/swing/plaf/basic/BasicComboBoxUI$PropertyChangeHandler
+header extends java/lang/Object implements java/beans/PropertyChangeListener nestHost javax/swing/plaf/basic/BasicComboBoxUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicComboBoxUI$PropertyChangeHandler outerClass javax/swing/plaf/basic/BasicComboBoxUI innerClassName PropertyChangeHandler flags 1
+
+class name javax/swing/plaf/basic/BasicComboPopup
+header extends javax/swing/JPopupMenu implements javax/swing/plaf/basic/ComboPopup nestMembers javax/swing/plaf/basic/BasicComboPopup$PropertyChangeHandler,javax/swing/plaf/basic/BasicComboPopup$ItemHandler,javax/swing/plaf/basic/BasicComboPopup$ListMouseMotionHandler,javax/swing/plaf/basic/BasicComboPopup$ListMouseHandler,javax/swing/plaf/basic/BasicComboPopup$ListDataHandler,javax/swing/plaf/basic/BasicComboPopup$ListSelectionHandler,javax/swing/plaf/basic/BasicComboPopup$InvocationKeyHandler,javax/swing/plaf/basic/BasicComboPopup$InvocationMouseMotionHandler,javax/swing/plaf/basic/BasicComboPopup$InvocationMouseHandler flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicComboPopup$PropertyChangeHandler outerClass javax/swing/plaf/basic/BasicComboPopup innerClassName PropertyChangeHandler flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicComboPopup$ItemHandler outerClass javax/swing/plaf/basic/BasicComboPopup innerClassName ItemHandler flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicComboPopup$ListMouseMotionHandler outerClass javax/swing/plaf/basic/BasicComboPopup innerClassName ListMouseMotionHandler flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicComboPopup$ListMouseHandler outerClass javax/swing/plaf/basic/BasicComboPopup innerClassName ListMouseHandler flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicComboPopup$ListDataHandler outerClass javax/swing/plaf/basic/BasicComboPopup innerClassName ListDataHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicComboPopup$ListSelectionHandler outerClass javax/swing/plaf/basic/BasicComboPopup innerClassName ListSelectionHandler flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicComboPopup$InvocationKeyHandler outerClass javax/swing/plaf/basic/BasicComboPopup innerClassName InvocationKeyHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicComboPopup$InvocationMouseMotionHandler outerClass javax/swing/plaf/basic/BasicComboPopup innerClassName InvocationMouseMotionHandler flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicComboPopup$InvocationMouseHandler outerClass javax/swing/plaf/basic/BasicComboPopup innerClassName InvocationMouseHandler flags 4
+
+class name javax/swing/plaf/basic/BasicComboPopup$InvocationKeyHandler
+header extends java/awt/event/KeyAdapter nestHost javax/swing/plaf/basic/BasicComboPopup flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicComboPopup$InvocationKeyHandler outerClass javax/swing/plaf/basic/BasicComboPopup innerClassName InvocationKeyHandler flags 1
+
+class name javax/swing/plaf/basic/BasicComboPopup$InvocationMouseHandler
+header extends java/awt/event/MouseAdapter nestHost javax/swing/plaf/basic/BasicComboPopup flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicComboPopup$InvocationMouseHandler outerClass javax/swing/plaf/basic/BasicComboPopup innerClassName InvocationMouseHandler flags 4
+
+class name javax/swing/plaf/basic/BasicComboPopup$InvocationMouseMotionHandler
+header extends java/awt/event/MouseMotionAdapter nestHost javax/swing/plaf/basic/BasicComboPopup flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicComboPopup$InvocationMouseMotionHandler outerClass javax/swing/plaf/basic/BasicComboPopup innerClassName InvocationMouseMotionHandler flags 4
+
+class name javax/swing/plaf/basic/BasicComboPopup$ItemHandler
+header extends java/lang/Object implements java/awt/event/ItemListener nestHost javax/swing/plaf/basic/BasicComboPopup flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicComboPopup$ItemHandler outerClass javax/swing/plaf/basic/BasicComboPopup innerClassName ItemHandler flags 4
+
+class name javax/swing/plaf/basic/BasicComboPopup$ListDataHandler
+header extends java/lang/Object implements javax/swing/event/ListDataListener nestHost javax/swing/plaf/basic/BasicComboPopup flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicComboPopup$ListDataHandler outerClass javax/swing/plaf/basic/BasicComboPopup innerClassName ListDataHandler flags 1
+
+class name javax/swing/plaf/basic/BasicComboPopup$ListMouseHandler
+header extends java/awt/event/MouseAdapter nestHost javax/swing/plaf/basic/BasicComboPopup flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicComboPopup$ListMouseHandler outerClass javax/swing/plaf/basic/BasicComboPopup innerClassName ListMouseHandler flags 4
+
+class name javax/swing/plaf/basic/BasicComboPopup$ListMouseMotionHandler
+header extends java/awt/event/MouseMotionAdapter nestHost javax/swing/plaf/basic/BasicComboPopup flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicComboPopup$ListMouseMotionHandler outerClass javax/swing/plaf/basic/BasicComboPopup innerClassName ListMouseMotionHandler flags 4
+
+class name javax/swing/plaf/basic/BasicComboPopup$ListSelectionHandler
+header extends java/lang/Object implements javax/swing/event/ListSelectionListener nestHost javax/swing/plaf/basic/BasicComboPopup flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicComboPopup$ListSelectionHandler outerClass javax/swing/plaf/basic/BasicComboPopup innerClassName ListSelectionHandler flags 4
+
+class name javax/swing/plaf/basic/BasicComboPopup$PropertyChangeHandler
+header extends java/lang/Object implements java/beans/PropertyChangeListener nestHost javax/swing/plaf/basic/BasicComboPopup flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicComboPopup$PropertyChangeHandler outerClass javax/swing/plaf/basic/BasicComboPopup innerClassName PropertyChangeHandler flags 4
+
+class name javax/swing/plaf/basic/BasicDesktopIconUI
+header extends javax/swing/plaf/DesktopIconUI nestMembers javax/swing/plaf/basic/BasicDesktopIconUI$MouseInputHandler flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicDesktopIconUI$MouseInputHandler outerClass javax/swing/plaf/basic/BasicDesktopIconUI innerClassName MouseInputHandler flags 1
+innerclass innerClass javax/swing/JInternalFrame$JDesktopIcon outerClass javax/swing/JInternalFrame innerClassName JDesktopIcon flags 9
+
+class name javax/swing/plaf/basic/BasicDesktopIconUI$MouseInputHandler
+header extends javax/swing/event/MouseInputAdapter nestHost javax/swing/plaf/basic/BasicDesktopIconUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicDesktopIconUI$MouseInputHandler outerClass javax/swing/plaf/basic/BasicDesktopIconUI innerClassName MouseInputHandler flags 1
+innerclass innerClass javax/swing/JInternalFrame$JDesktopIcon outerClass javax/swing/JInternalFrame innerClassName JDesktopIcon flags 9
+
+class name javax/swing/plaf/basic/BasicDesktopPaneUI
+header extends javax/swing/plaf/DesktopPaneUI nestMembers javax/swing/plaf/basic/BasicDesktopPaneUI$NavigateAction,javax/swing/plaf/basic/BasicDesktopPaneUI$MaximizeAction,javax/swing/plaf/basic/BasicDesktopPaneUI$MinimizeAction,javax/swing/plaf/basic/BasicDesktopPaneUI$CloseAction,javax/swing/plaf/basic/BasicDesktopPaneUI$OpenAction flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicDesktopPaneUI$NavigateAction outerClass javax/swing/plaf/basic/BasicDesktopPaneUI innerClassName NavigateAction flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicDesktopPaneUI$MaximizeAction outerClass javax/swing/plaf/basic/BasicDesktopPaneUI innerClassName MaximizeAction flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicDesktopPaneUI$MinimizeAction outerClass javax/swing/plaf/basic/BasicDesktopPaneUI innerClassName MinimizeAction flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicDesktopPaneUI$CloseAction outerClass javax/swing/plaf/basic/BasicDesktopPaneUI innerClassName CloseAction flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicDesktopPaneUI$OpenAction outerClass javax/swing/plaf/basic/BasicDesktopPaneUI innerClassName OpenAction flags 4
+
+class name javax/swing/plaf/basic/BasicDesktopPaneUI$CloseAction
+header extends javax/swing/AbstractAction nestHost javax/swing/plaf/basic/BasicDesktopPaneUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicDesktopPaneUI$CloseAction outerClass javax/swing/plaf/basic/BasicDesktopPaneUI innerClassName CloseAction flags 4
+
+class name javax/swing/plaf/basic/BasicDesktopPaneUI$MaximizeAction
+header extends javax/swing/AbstractAction nestHost javax/swing/plaf/basic/BasicDesktopPaneUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicDesktopPaneUI$MaximizeAction outerClass javax/swing/plaf/basic/BasicDesktopPaneUI innerClassName MaximizeAction flags 4
+
+class name javax/swing/plaf/basic/BasicDesktopPaneUI$MinimizeAction
+header extends javax/swing/AbstractAction nestHost javax/swing/plaf/basic/BasicDesktopPaneUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicDesktopPaneUI$MinimizeAction outerClass javax/swing/plaf/basic/BasicDesktopPaneUI innerClassName MinimizeAction flags 4
+
+class name javax/swing/plaf/basic/BasicDesktopPaneUI$NavigateAction
+header extends javax/swing/AbstractAction nestHost javax/swing/plaf/basic/BasicDesktopPaneUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicDesktopPaneUI$NavigateAction outerClass javax/swing/plaf/basic/BasicDesktopPaneUI innerClassName NavigateAction flags 4
+
+class name javax/swing/plaf/basic/BasicDesktopPaneUI$OpenAction
+header extends javax/swing/AbstractAction nestHost javax/swing/plaf/basic/BasicDesktopPaneUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicDesktopPaneUI$OpenAction outerClass javax/swing/plaf/basic/BasicDesktopPaneUI innerClassName OpenAction flags 4
+
+class name javax/swing/plaf/basic/BasicFileChooserUI
+header extends javax/swing/plaf/FileChooserUI nestMembers javax/swing/plaf/basic/BasicFileChooserUI$BasicFileView,javax/swing/plaf/basic/BasicFileChooserUI$AcceptAllFileFilter,javax/swing/plaf/basic/BasicFileChooserUI$UpdateAction,javax/swing/plaf/basic/BasicFileChooserUI$CancelSelectionAction,javax/swing/plaf/basic/BasicFileChooserUI$ApproveSelectionAction,javax/swing/plaf/basic/BasicFileChooserUI$ChangeToParentDirectoryAction,javax/swing/plaf/basic/BasicFileChooserUI$GoHomeAction,javax/swing/plaf/basic/BasicFileChooserUI$NewFolderAction,javax/swing/plaf/basic/BasicFileChooserUI$SelectionListener,javax/swing/plaf/basic/BasicFileChooserUI$DoubleClickListener flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicFileChooserUI$BasicFileView outerClass javax/swing/plaf/basic/BasicFileChooserUI innerClassName BasicFileView flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicFileChooserUI$AcceptAllFileFilter outerClass javax/swing/plaf/basic/BasicFileChooserUI innerClassName AcceptAllFileFilter flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicFileChooserUI$UpdateAction outerClass javax/swing/plaf/basic/BasicFileChooserUI innerClassName UpdateAction flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicFileChooserUI$CancelSelectionAction outerClass javax/swing/plaf/basic/BasicFileChooserUI innerClassName CancelSelectionAction flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicFileChooserUI$ApproveSelectionAction outerClass javax/swing/plaf/basic/BasicFileChooserUI innerClassName ApproveSelectionAction flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicFileChooserUI$ChangeToParentDirectoryAction outerClass javax/swing/plaf/basic/BasicFileChooserUI innerClassName ChangeToParentDirectoryAction flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicFileChooserUI$GoHomeAction outerClass javax/swing/plaf/basic/BasicFileChooserUI innerClassName GoHomeAction flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicFileChooserUI$NewFolderAction outerClass javax/swing/plaf/basic/BasicFileChooserUI innerClassName NewFolderAction flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicFileChooserUI$SelectionListener outerClass javax/swing/plaf/basic/BasicFileChooserUI innerClassName SelectionListener flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicFileChooserUI$DoubleClickListener outerClass javax/swing/plaf/basic/BasicFileChooserUI innerClassName DoubleClickListener flags 4
+
+class name javax/swing/plaf/basic/BasicFileChooserUI$AcceptAllFileFilter
+header extends javax/swing/filechooser/FileFilter nestHost javax/swing/plaf/basic/BasicFileChooserUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicFileChooserUI$AcceptAllFileFilter outerClass javax/swing/plaf/basic/BasicFileChooserUI innerClassName AcceptAllFileFilter flags 4
+
+class name javax/swing/plaf/basic/BasicFileChooserUI$ApproveSelectionAction
+header extends javax/swing/AbstractAction nestHost javax/swing/plaf/basic/BasicFileChooserUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicFileChooserUI$ApproveSelectionAction outerClass javax/swing/plaf/basic/BasicFileChooserUI innerClassName ApproveSelectionAction flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/plaf/basic/BasicFileChooserUI$BasicFileView
+header extends javax/swing/filechooser/FileView nestHost javax/swing/plaf/basic/BasicFileChooserUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicFileChooserUI$BasicFileView outerClass javax/swing/plaf/basic/BasicFileChooserUI innerClassName BasicFileView flags 4
+
+class name javax/swing/plaf/basic/BasicFileChooserUI$CancelSelectionAction
+header extends javax/swing/AbstractAction nestHost javax/swing/plaf/basic/BasicFileChooserUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicFileChooserUI$CancelSelectionAction outerClass javax/swing/plaf/basic/BasicFileChooserUI innerClassName CancelSelectionAction flags 4
+
+class name javax/swing/plaf/basic/BasicFileChooserUI$ChangeToParentDirectoryAction
+header extends javax/swing/AbstractAction nestHost javax/swing/plaf/basic/BasicFileChooserUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicFileChooserUI$ChangeToParentDirectoryAction outerClass javax/swing/plaf/basic/BasicFileChooserUI innerClassName ChangeToParentDirectoryAction flags 4
+
+class name javax/swing/plaf/basic/BasicFileChooserUI$DoubleClickListener
+header extends java/awt/event/MouseAdapter nestHost javax/swing/plaf/basic/BasicFileChooserUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicFileChooserUI$DoubleClickListener outerClass javax/swing/plaf/basic/BasicFileChooserUI innerClassName DoubleClickListener flags 4
+
+class name javax/swing/plaf/basic/BasicFileChooserUI$GoHomeAction
+header extends javax/swing/AbstractAction nestHost javax/swing/plaf/basic/BasicFileChooserUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicFileChooserUI$GoHomeAction outerClass javax/swing/plaf/basic/BasicFileChooserUI innerClassName GoHomeAction flags 4
+
+class name javax/swing/plaf/basic/BasicFileChooserUI$NewFolderAction
+header extends javax/swing/AbstractAction nestHost javax/swing/plaf/basic/BasicFileChooserUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicFileChooserUI$NewFolderAction outerClass javax/swing/plaf/basic/BasicFileChooserUI innerClassName NewFolderAction flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/plaf/basic/BasicFileChooserUI$SelectionListener
+header extends java/lang/Object implements javax/swing/event/ListSelectionListener nestHost javax/swing/plaf/basic/BasicFileChooserUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicFileChooserUI$SelectionListener outerClass javax/swing/plaf/basic/BasicFileChooserUI innerClassName SelectionListener flags 4
+
+class name javax/swing/plaf/basic/BasicFileChooserUI$UpdateAction
+header extends javax/swing/AbstractAction nestHost javax/swing/plaf/basic/BasicFileChooserUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicFileChooserUI$UpdateAction outerClass javax/swing/plaf/basic/BasicFileChooserUI innerClassName UpdateAction flags 4
+
+class name javax/swing/plaf/basic/BasicFormattedTextFieldUI
+header extends javax/swing/plaf/basic/BasicTextFieldUI flags 21
+
+class name javax/swing/plaf/basic/BasicGraphicsUtils
+header extends java/lang/Object flags 21
+
+class name javax/swing/plaf/basic/BasicInternalFrameTitlePane
+header extends javax/swing/JComponent nestMembers javax/swing/plaf/basic/BasicInternalFrameTitlePane$SystemMenuBar,javax/swing/plaf/basic/BasicInternalFrameTitlePane$SizeAction,javax/swing/plaf/basic/BasicInternalFrameTitlePane$MoveAction,javax/swing/plaf/basic/BasicInternalFrameTitlePane$RestoreAction,javax/swing/plaf/basic/BasicInternalFrameTitlePane$IconifyAction,javax/swing/plaf/basic/BasicInternalFrameTitlePane$MaximizeAction,javax/swing/plaf/basic/BasicInternalFrameTitlePane$CloseAction,javax/swing/plaf/basic/BasicInternalFrameTitlePane$TitlePaneLayout,javax/swing/plaf/basic/BasicInternalFrameTitlePane$PropertyChangeHandler flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane$SystemMenuBar outerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane innerClassName SystemMenuBar flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane$SizeAction outerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane innerClassName SizeAction flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane$MoveAction outerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane innerClassName MoveAction flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane$RestoreAction outerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane innerClassName RestoreAction flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane$IconifyAction outerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane innerClassName IconifyAction flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane$MaximizeAction outerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane innerClassName MaximizeAction flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane$CloseAction outerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane innerClassName CloseAction flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane$TitlePaneLayout outerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane innerClassName TitlePaneLayout flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane$PropertyChangeHandler outerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane innerClassName PropertyChangeHandler flags 1
+innerclass innerClass java/awt/RenderingHints$Key outerClass java/awt/RenderingHints innerClassName Key flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/plaf/basic/BasicInternalFrameTitlePane$CloseAction
+header extends javax/swing/AbstractAction nestHost javax/swing/plaf/basic/BasicInternalFrameTitlePane flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane$CloseAction outerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane innerClassName CloseAction flags 1
+
+class name javax/swing/plaf/basic/BasicInternalFrameTitlePane$IconifyAction
+header extends javax/swing/AbstractAction nestHost javax/swing/plaf/basic/BasicInternalFrameTitlePane flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane$IconifyAction outerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane innerClassName IconifyAction flags 1
+
+class name javax/swing/plaf/basic/BasicInternalFrameTitlePane$MaximizeAction
+header extends javax/swing/AbstractAction nestHost javax/swing/plaf/basic/BasicInternalFrameTitlePane flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane$MaximizeAction outerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane innerClassName MaximizeAction flags 1
+
+class name javax/swing/plaf/basic/BasicInternalFrameTitlePane$MoveAction
+header extends javax/swing/AbstractAction nestHost javax/swing/plaf/basic/BasicInternalFrameTitlePane flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane$MoveAction outerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane innerClassName MoveAction flags 1
+
+class name javax/swing/plaf/basic/BasicInternalFrameTitlePane$PropertyChangeHandler
+header extends java/lang/Object implements java/beans/PropertyChangeListener nestHost javax/swing/plaf/basic/BasicInternalFrameTitlePane flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane$PropertyChangeHandler outerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane innerClassName PropertyChangeHandler flags 1
+
+class name javax/swing/plaf/basic/BasicInternalFrameTitlePane$RestoreAction
+header extends javax/swing/AbstractAction nestHost javax/swing/plaf/basic/BasicInternalFrameTitlePane flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane$RestoreAction outerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane innerClassName RestoreAction flags 1
+
+class name javax/swing/plaf/basic/BasicInternalFrameTitlePane$SizeAction
+header extends javax/swing/AbstractAction nestHost javax/swing/plaf/basic/BasicInternalFrameTitlePane flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane$SizeAction outerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane innerClassName SizeAction flags 1
+
+class name javax/swing/plaf/basic/BasicInternalFrameTitlePane$SystemMenuBar
+header extends javax/swing/JMenuBar nestHost javax/swing/plaf/basic/BasicInternalFrameTitlePane flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane$SystemMenuBar outerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane innerClassName SystemMenuBar flags 1
+
+class name javax/swing/plaf/basic/BasicInternalFrameTitlePane$TitlePaneLayout
+header extends java/lang/Object implements java/awt/LayoutManager nestHost javax/swing/plaf/basic/BasicInternalFrameTitlePane flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane$TitlePaneLayout outerClass javax/swing/plaf/basic/BasicInternalFrameTitlePane innerClassName TitlePaneLayout flags 1
+
+class name javax/swing/plaf/basic/BasicInternalFrameUI
+header extends javax/swing/plaf/InternalFrameUI nestMembers javax/swing/plaf/basic/BasicInternalFrameUI$BasicInternalFrameListener,javax/swing/plaf/basic/BasicInternalFrameUI$GlassPaneDispatcher,javax/swing/plaf/basic/BasicInternalFrameUI$ComponentHandler,javax/swing/plaf/basic/BasicInternalFrameUI$BorderListener,javax/swing/plaf/basic/BasicInternalFrameUI$InternalFrameLayout,javax/swing/plaf/basic/BasicInternalFrameUI$InternalFramePropertyChangeListener flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameUI$BasicInternalFrameListener outerClass javax/swing/plaf/basic/BasicInternalFrameUI innerClassName BasicInternalFrameListener flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameUI$GlassPaneDispatcher outerClass javax/swing/plaf/basic/BasicInternalFrameUI innerClassName GlassPaneDispatcher flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameUI$ComponentHandler outerClass javax/swing/plaf/basic/BasicInternalFrameUI innerClassName ComponentHandler flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameUI$BorderListener outerClass javax/swing/plaf/basic/BasicInternalFrameUI innerClassName BorderListener flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameUI$InternalFrameLayout outerClass javax/swing/plaf/basic/BasicInternalFrameUI innerClassName InternalFrameLayout flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameUI$InternalFramePropertyChangeListener outerClass javax/swing/plaf/basic/BasicInternalFrameUI innerClassName InternalFramePropertyChangeListener flags 1
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/plaf/basic/BasicInternalFrameUI$BasicInternalFrameListener
+header extends java/lang/Object implements javax/swing/event/InternalFrameListener nestHost javax/swing/plaf/basic/BasicInternalFrameUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameUI$BasicInternalFrameListener outerClass javax/swing/plaf/basic/BasicInternalFrameUI innerClassName BasicInternalFrameListener flags 4
+
+class name javax/swing/plaf/basic/BasicInternalFrameUI$BorderListener
+header extends javax/swing/event/MouseInputAdapter implements javax/swing/SwingConstants nestHost javax/swing/plaf/basic/BasicInternalFrameUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameUI$BorderListener outerClass javax/swing/plaf/basic/BasicInternalFrameUI innerClassName BorderListener flags 4
+
+class name javax/swing/plaf/basic/BasicInternalFrameUI$ComponentHandler
+header extends java/lang/Object implements java/awt/event/ComponentListener nestHost javax/swing/plaf/basic/BasicInternalFrameUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameUI$ComponentHandler outerClass javax/swing/plaf/basic/BasicInternalFrameUI innerClassName ComponentHandler flags 4
+
+class name javax/swing/plaf/basic/BasicInternalFrameUI$GlassPaneDispatcher
+header extends java/lang/Object implements javax/swing/event/MouseInputListener nestHost javax/swing/plaf/basic/BasicInternalFrameUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameUI$GlassPaneDispatcher outerClass javax/swing/plaf/basic/BasicInternalFrameUI innerClassName GlassPaneDispatcher flags 4
+
+class name javax/swing/plaf/basic/BasicInternalFrameUI$InternalFrameLayout
+header extends java/lang/Object implements java/awt/LayoutManager nestHost javax/swing/plaf/basic/BasicInternalFrameUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameUI$InternalFrameLayout outerClass javax/swing/plaf/basic/BasicInternalFrameUI innerClassName InternalFrameLayout flags 1
+
+class name javax/swing/plaf/basic/BasicInternalFrameUI$InternalFramePropertyChangeListener
+header extends java/lang/Object implements java/beans/PropertyChangeListener nestHost javax/swing/plaf/basic/BasicInternalFrameUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicInternalFrameUI$InternalFramePropertyChangeListener outerClass javax/swing/plaf/basic/BasicInternalFrameUI innerClassName InternalFramePropertyChangeListener flags 1
+
+class name javax/swing/plaf/basic/BasicListUI
+header extends javax/swing/plaf/ListUI nestMembers javax/swing/plaf/basic/BasicListUI$PropertyChangeHandler,javax/swing/plaf/basic/BasicListUI$ListDataHandler,javax/swing/plaf/basic/BasicListUI$ListSelectionHandler,javax/swing/plaf/basic/BasicListUI$FocusHandler,javax/swing/plaf/basic/BasicListUI$MouseInputHandler flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicListUI$PropertyChangeHandler outerClass javax/swing/plaf/basic/BasicListUI innerClassName PropertyChangeHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicListUI$ListDataHandler outerClass javax/swing/plaf/basic/BasicListUI innerClassName ListDataHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicListUI$ListSelectionHandler outerClass javax/swing/plaf/basic/BasicListUI innerClassName ListSelectionHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicListUI$FocusHandler outerClass javax/swing/plaf/basic/BasicListUI innerClassName FocusHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicListUI$MouseInputHandler outerClass javax/swing/plaf/basic/BasicListUI innerClassName MouseInputHandler flags 1
+innerclass innerClass javax/swing/JList$DropLocation outerClass javax/swing/JList innerClassName DropLocation flags 19
+innerclass innerClass java/awt/Component$BaselineResizeBehavior outerClass java/awt/Component innerClassName BaselineResizeBehavior flags 4019
+
+class name javax/swing/plaf/basic/BasicListUI$FocusHandler
+header extends java/lang/Object implements java/awt/event/FocusListener nestHost javax/swing/plaf/basic/BasicListUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicListUI$FocusHandler outerClass javax/swing/plaf/basic/BasicListUI innerClassName FocusHandler flags 1
+
+class name javax/swing/plaf/basic/BasicListUI$ListDataHandler
+header extends java/lang/Object implements javax/swing/event/ListDataListener nestHost javax/swing/plaf/basic/BasicListUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicListUI$ListDataHandler outerClass javax/swing/plaf/basic/BasicListUI innerClassName ListDataHandler flags 1
+
+class name javax/swing/plaf/basic/BasicListUI$ListSelectionHandler
+header extends java/lang/Object implements javax/swing/event/ListSelectionListener nestHost javax/swing/plaf/basic/BasicListUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicListUI$ListSelectionHandler outerClass javax/swing/plaf/basic/BasicListUI innerClassName ListSelectionHandler flags 1
+
+class name javax/swing/plaf/basic/BasicListUI$MouseInputHandler
+header extends java/lang/Object implements javax/swing/event/MouseInputListener nestHost javax/swing/plaf/basic/BasicListUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicListUI$MouseInputHandler outerClass javax/swing/plaf/basic/BasicListUI innerClassName MouseInputHandler flags 1
+
+class name javax/swing/plaf/basic/BasicListUI$PropertyChangeHandler
+header extends java/lang/Object implements java/beans/PropertyChangeListener nestHost javax/swing/plaf/basic/BasicListUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicListUI$PropertyChangeHandler outerClass javax/swing/plaf/basic/BasicListUI innerClassName PropertyChangeHandler flags 1
+
+class name javax/swing/plaf/basic/BasicMenuItemUI
+header extends javax/swing/plaf/MenuItemUI nestMembers javax/swing/plaf/basic/BasicMenuItemUI$MouseInputHandler flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicMenuItemUI$MouseInputHandler outerClass javax/swing/plaf/basic/BasicMenuItemUI innerClassName MouseInputHandler flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/plaf/basic/BasicMenuItemUI$MouseInputHandler
+header extends java/lang/Object implements javax/swing/event/MouseInputListener nestHost javax/swing/plaf/basic/BasicMenuItemUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicMenuItemUI$MouseInputHandler outerClass javax/swing/plaf/basic/BasicMenuItemUI innerClassName MouseInputHandler flags 4
+
+class name javax/swing/plaf/basic/BasicMenuUI
+header extends javax/swing/plaf/basic/BasicMenuItemUI nestMembers javax/swing/plaf/basic/BasicMenuUI$ChangeHandler,javax/swing/plaf/basic/BasicMenuUI$MouseInputHandler flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicMenuUI$ChangeHandler outerClass javax/swing/plaf/basic/BasicMenuUI innerClassName ChangeHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicMenuUI$MouseInputHandler outerClass javax/swing/plaf/basic/BasicMenuUI innerClassName MouseInputHandler flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/plaf/basic/BasicMenuUI$ChangeHandler
+header extends java/lang/Object implements javax/swing/event/ChangeListener nestHost javax/swing/plaf/basic/BasicMenuUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicMenuUI$ChangeHandler outerClass javax/swing/plaf/basic/BasicMenuUI innerClassName ChangeHandler flags 1
+
+class name javax/swing/plaf/basic/BasicMenuUI$MouseInputHandler
+header extends java/lang/Object implements javax/swing/event/MouseInputListener nestHost javax/swing/plaf/basic/BasicMenuUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicMenuUI$MouseInputHandler outerClass javax/swing/plaf/basic/BasicMenuUI innerClassName MouseInputHandler flags 4
+
+class name javax/swing/plaf/basic/BasicOptionPaneUI
+header extends javax/swing/plaf/OptionPaneUI nestMembers javax/swing/plaf/basic/BasicOptionPaneUI$ButtonActionListener,javax/swing/plaf/basic/BasicOptionPaneUI$PropertyChangeHandler,javax/swing/plaf/basic/BasicOptionPaneUI$ButtonAreaLayout flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicOptionPaneUI$ButtonActionListener outerClass javax/swing/plaf/basic/BasicOptionPaneUI innerClassName ButtonActionListener flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicOptionPaneUI$PropertyChangeHandler outerClass javax/swing/plaf/basic/BasicOptionPaneUI innerClassName PropertyChangeHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicOptionPaneUI$ButtonAreaLayout outerClass javax/swing/plaf/basic/BasicOptionPaneUI innerClassName ButtonAreaLayout flags 9
+
+class name javax/swing/plaf/basic/BasicOptionPaneUI$ButtonActionListener
+header extends java/lang/Object implements java/awt/event/ActionListener nestHost javax/swing/plaf/basic/BasicOptionPaneUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicOptionPaneUI$ButtonActionListener outerClass javax/swing/plaf/basic/BasicOptionPaneUI innerClassName ButtonActionListener flags 1
+
+class name javax/swing/plaf/basic/BasicOptionPaneUI$ButtonAreaLayout
+header extends java/lang/Object implements java/awt/LayoutManager nestHost javax/swing/plaf/basic/BasicOptionPaneUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicOptionPaneUI$ButtonAreaLayout outerClass javax/swing/plaf/basic/BasicOptionPaneUI innerClassName ButtonAreaLayout flags 9
+
+class name javax/swing/plaf/basic/BasicOptionPaneUI$PropertyChangeHandler
+header extends java/lang/Object implements java/beans/PropertyChangeListener nestHost javax/swing/plaf/basic/BasicOptionPaneUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicOptionPaneUI$PropertyChangeHandler outerClass javax/swing/plaf/basic/BasicOptionPaneUI innerClassName PropertyChangeHandler flags 1
+
+class name javax/swing/plaf/basic/BasicPanelUI
+header extends javax/swing/plaf/PanelUI flags 21
+innerclass innerClass java/awt/Component$BaselineResizeBehavior outerClass java/awt/Component innerClassName BaselineResizeBehavior flags 4019
+
+class name javax/swing/plaf/basic/BasicPasswordFieldUI
+header extends javax/swing/plaf/basic/BasicTextFieldUI flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/plaf/basic/BasicPopupMenuSeparatorUI
+header extends javax/swing/plaf/basic/BasicSeparatorUI flags 21
+
+class name javax/swing/plaf/basic/BasicProgressBarUI
+header extends javax/swing/plaf/ProgressBarUI nestMembers javax/swing/plaf/basic/BasicProgressBarUI$ChangeHandler flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicProgressBarUI$ChangeHandler outerClass javax/swing/plaf/basic/BasicProgressBarUI innerClassName ChangeHandler flags 1
+innerclass innerClass java/awt/Component$BaselineResizeBehavior outerClass java/awt/Component innerClassName BaselineResizeBehavior flags 4019
+
+class name javax/swing/plaf/basic/BasicProgressBarUI$ChangeHandler
+header extends java/lang/Object implements javax/swing/event/ChangeListener nestHost javax/swing/plaf/basic/BasicProgressBarUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicProgressBarUI$ChangeHandler outerClass javax/swing/plaf/basic/BasicProgressBarUI innerClassName ChangeHandler flags 1
+
+class name javax/swing/plaf/basic/BasicRadioButtonMenuItemUI
+header extends javax/swing/plaf/basic/BasicMenuItemUI flags 21
+
+class name javax/swing/plaf/basic/BasicScrollBarUI
+header extends javax/swing/plaf/ScrollBarUI implements java/awt/LayoutManager,javax/swing/SwingConstants nestMembers javax/swing/plaf/basic/BasicScrollBarUI$PropertyChangeHandler,javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener,javax/swing/plaf/basic/BasicScrollBarUI$ArrowButtonListener,javax/swing/plaf/basic/BasicScrollBarUI$TrackListener,javax/swing/plaf/basic/BasicScrollBarUI$ModelListener flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicScrollBarUI$PropertyChangeHandler outerClass javax/swing/plaf/basic/BasicScrollBarUI innerClassName PropertyChangeHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener outerClass javax/swing/plaf/basic/BasicScrollBarUI innerClassName ScrollListener flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicScrollBarUI$ArrowButtonListener outerClass javax/swing/plaf/basic/BasicScrollBarUI innerClassName ArrowButtonListener flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicScrollBarUI$TrackListener outerClass javax/swing/plaf/basic/BasicScrollBarUI innerClassName TrackListener flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicScrollBarUI$ModelListener outerClass javax/swing/plaf/basic/BasicScrollBarUI innerClassName ModelListener flags 4
+
+class name javax/swing/plaf/basic/BasicScrollBarUI$ArrowButtonListener
+header extends java/awt/event/MouseAdapter nestHost javax/swing/plaf/basic/BasicScrollBarUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicScrollBarUI$ArrowButtonListener outerClass javax/swing/plaf/basic/BasicScrollBarUI innerClassName ArrowButtonListener flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener outerClass javax/swing/plaf/basic/BasicScrollBarUI innerClassName ScrollListener flags 4
+
+class name javax/swing/plaf/basic/BasicScrollBarUI$ModelListener
+header extends java/lang/Object implements javax/swing/event/ChangeListener nestHost javax/swing/plaf/basic/BasicScrollBarUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicScrollBarUI$ModelListener outerClass javax/swing/plaf/basic/BasicScrollBarUI innerClassName ModelListener flags 4
+
+class name javax/swing/plaf/basic/BasicScrollBarUI$PropertyChangeHandler
+header extends java/lang/Object implements java/beans/PropertyChangeListener nestHost javax/swing/plaf/basic/BasicScrollBarUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicScrollBarUI$PropertyChangeHandler outerClass javax/swing/plaf/basic/BasicScrollBarUI innerClassName PropertyChangeHandler flags 1
+
+class name javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener
+header extends java/lang/Object implements java/awt/event/ActionListener nestHost javax/swing/plaf/basic/BasicScrollBarUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener outerClass javax/swing/plaf/basic/BasicScrollBarUI innerClassName ScrollListener flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicScrollBarUI$TrackListener outerClass javax/swing/plaf/basic/BasicScrollBarUI innerClassName TrackListener flags 4
+
+class name javax/swing/plaf/basic/BasicScrollBarUI$TrackListener
+header extends java/awt/event/MouseAdapter implements java/awt/event/MouseMotionListener nestHost javax/swing/plaf/basic/BasicScrollBarUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicScrollBarUI$TrackListener outerClass javax/swing/plaf/basic/BasicScrollBarUI innerClassName TrackListener flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener outerClass javax/swing/plaf/basic/BasicScrollBarUI innerClassName ScrollListener flags 4
+
+class name javax/swing/plaf/basic/BasicScrollPaneUI
+header extends javax/swing/plaf/ScrollPaneUI implements javax/swing/ScrollPaneConstants nestMembers javax/swing/plaf/basic/BasicScrollPaneUI$PropertyChangeHandler,javax/swing/plaf/basic/BasicScrollPaneUI$MouseWheelHandler,javax/swing/plaf/basic/BasicScrollPaneUI$VSBChangeListener,javax/swing/plaf/basic/BasicScrollPaneUI$HSBChangeListener,javax/swing/plaf/basic/BasicScrollPaneUI$ViewportChangeHandler flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicScrollPaneUI$PropertyChangeHandler outerClass javax/swing/plaf/basic/BasicScrollPaneUI innerClassName PropertyChangeHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicScrollPaneUI$MouseWheelHandler outerClass javax/swing/plaf/basic/BasicScrollPaneUI innerClassName MouseWheelHandler flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicScrollPaneUI$VSBChangeListener outerClass javax/swing/plaf/basic/BasicScrollPaneUI innerClassName VSBChangeListener flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicScrollPaneUI$HSBChangeListener outerClass javax/swing/plaf/basic/BasicScrollPaneUI innerClassName HSBChangeListener flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicScrollPaneUI$ViewportChangeHandler outerClass javax/swing/plaf/basic/BasicScrollPaneUI innerClassName ViewportChangeHandler flags 1
+innerclass innerClass java/awt/Component$BaselineResizeBehavior outerClass java/awt/Component innerClassName BaselineResizeBehavior flags 4019
+
+class name javax/swing/plaf/basic/BasicScrollPaneUI$HSBChangeListener
+header extends java/lang/Object implements javax/swing/event/ChangeListener nestHost javax/swing/plaf/basic/BasicScrollPaneUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicScrollPaneUI$HSBChangeListener outerClass javax/swing/plaf/basic/BasicScrollPaneUI innerClassName HSBChangeListener flags 1
+
+class name javax/swing/plaf/basic/BasicScrollPaneUI$MouseWheelHandler
+header extends java/lang/Object implements java/awt/event/MouseWheelListener nestHost javax/swing/plaf/basic/BasicScrollPaneUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicScrollPaneUI$MouseWheelHandler outerClass javax/swing/plaf/basic/BasicScrollPaneUI innerClassName MouseWheelHandler flags 4
+
+class name javax/swing/plaf/basic/BasicScrollPaneUI$PropertyChangeHandler
+header extends java/lang/Object implements java/beans/PropertyChangeListener nestHost javax/swing/plaf/basic/BasicScrollPaneUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicScrollPaneUI$PropertyChangeHandler outerClass javax/swing/plaf/basic/BasicScrollPaneUI innerClassName PropertyChangeHandler flags 1
+
+class name javax/swing/plaf/basic/BasicScrollPaneUI$VSBChangeListener
+header extends java/lang/Object implements javax/swing/event/ChangeListener nestHost javax/swing/plaf/basic/BasicScrollPaneUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicScrollPaneUI$VSBChangeListener outerClass javax/swing/plaf/basic/BasicScrollPaneUI innerClassName VSBChangeListener flags 1
+
+class name javax/swing/plaf/basic/BasicScrollPaneUI$ViewportChangeHandler
+header extends java/lang/Object implements javax/swing/event/ChangeListener nestHost javax/swing/plaf/basic/BasicScrollPaneUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicScrollPaneUI$ViewportChangeHandler outerClass javax/swing/plaf/basic/BasicScrollPaneUI innerClassName ViewportChangeHandler flags 1
+
+class name javax/swing/plaf/basic/BasicSeparatorUI
+header extends javax/swing/plaf/SeparatorUI flags 21
+
+class name javax/swing/plaf/basic/BasicSliderUI
+header extends javax/swing/plaf/SliderUI nestMembers javax/swing/plaf/basic/BasicSliderUI$ActionScroller,javax/swing/plaf/basic/BasicSliderUI$FocusHandler,javax/swing/plaf/basic/BasicSliderUI$ComponentHandler,javax/swing/plaf/basic/BasicSliderUI$ScrollListener,javax/swing/plaf/basic/BasicSliderUI$TrackListener,javax/swing/plaf/basic/BasicSliderUI$ChangeHandler,javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicSliderUI$ActionScroller outerClass javax/swing/plaf/basic/BasicSliderUI innerClassName ActionScroller flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicSliderUI$FocusHandler outerClass javax/swing/plaf/basic/BasicSliderUI innerClassName FocusHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicSliderUI$ComponentHandler outerClass javax/swing/plaf/basic/BasicSliderUI innerClassName ComponentHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicSliderUI$ScrollListener outerClass javax/swing/plaf/basic/BasicSliderUI innerClassName ScrollListener flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicSliderUI$TrackListener outerClass javax/swing/plaf/basic/BasicSliderUI innerClassName TrackListener flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicSliderUI$ChangeHandler outerClass javax/swing/plaf/basic/BasicSliderUI innerClassName ChangeHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler outerClass javax/swing/plaf/basic/BasicSliderUI innerClassName PropertyChangeHandler flags 1
+innerclass innerClass java/awt/Component$BaselineResizeBehavior outerClass java/awt/Component innerClassName BaselineResizeBehavior flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/plaf/basic/BasicSliderUI$ActionScroller
+header extends javax/swing/AbstractAction nestHost javax/swing/plaf/basic/BasicSliderUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicSliderUI$ActionScroller outerClass javax/swing/plaf/basic/BasicSliderUI innerClassName ActionScroller flags 1
+
+class name javax/swing/plaf/basic/BasicSliderUI$ChangeHandler
+header extends java/lang/Object implements javax/swing/event/ChangeListener nestHost javax/swing/plaf/basic/BasicSliderUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicSliderUI$ChangeHandler outerClass javax/swing/plaf/basic/BasicSliderUI innerClassName ChangeHandler flags 1
+
+class name javax/swing/plaf/basic/BasicSliderUI$ComponentHandler
+header extends java/awt/event/ComponentAdapter nestHost javax/swing/plaf/basic/BasicSliderUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicSliderUI$ComponentHandler outerClass javax/swing/plaf/basic/BasicSliderUI innerClassName ComponentHandler flags 1
+
+class name javax/swing/plaf/basic/BasicSliderUI$FocusHandler
+header extends java/lang/Object implements java/awt/event/FocusListener nestHost javax/swing/plaf/basic/BasicSliderUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicSliderUI$FocusHandler outerClass javax/swing/plaf/basic/BasicSliderUI innerClassName FocusHandler flags 1
+
+class name javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler
+header extends java/lang/Object implements java/beans/PropertyChangeListener nestHost javax/swing/plaf/basic/BasicSliderUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler outerClass javax/swing/plaf/basic/BasicSliderUI innerClassName PropertyChangeHandler flags 1
+
+class name javax/swing/plaf/basic/BasicSliderUI$ScrollListener
+header extends java/lang/Object implements java/awt/event/ActionListener nestHost javax/swing/plaf/basic/BasicSliderUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicSliderUI$ScrollListener outerClass javax/swing/plaf/basic/BasicSliderUI innerClassName ScrollListener flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicSliderUI$TrackListener outerClass javax/swing/plaf/basic/BasicSliderUI innerClassName TrackListener flags 1
+
+class name javax/swing/plaf/basic/BasicSliderUI$TrackListener
+header extends javax/swing/event/MouseInputAdapter nestHost javax/swing/plaf/basic/BasicSliderUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicSliderUI$TrackListener outerClass javax/swing/plaf/basic/BasicSliderUI innerClassName TrackListener flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicSliderUI$ScrollListener outerClass javax/swing/plaf/basic/BasicSliderUI innerClassName ScrollListener flags 1
+
+class name javax/swing/plaf/basic/BasicSplitPaneDivider
+header extends java/awt/Container implements java/beans/PropertyChangeListener nestMembers javax/swing/plaf/basic/BasicSplitPaneDivider$DividerLayout,javax/swing/plaf/basic/BasicSplitPaneDivider$VerticalDragController,javax/swing/plaf/basic/BasicSplitPaneDivider$DragController,javax/swing/plaf/basic/BasicSplitPaneDivider$MouseHandler flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneDivider$DividerLayout outerClass javax/swing/plaf/basic/BasicSplitPaneDivider innerClassName DividerLayout flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneDivider$VerticalDragController outerClass javax/swing/plaf/basic/BasicSplitPaneDivider innerClassName VerticalDragController flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneDivider$DragController outerClass javax/swing/plaf/basic/BasicSplitPaneDivider innerClassName DragController flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneDivider$MouseHandler outerClass javax/swing/plaf/basic/BasicSplitPaneDivider innerClassName MouseHandler flags 4
+
+class name javax/swing/plaf/basic/BasicSplitPaneDivider$DividerLayout
+header extends java/lang/Object implements java/awt/LayoutManager nestHost javax/swing/plaf/basic/BasicSplitPaneDivider flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneDivider$DividerLayout outerClass javax/swing/plaf/basic/BasicSplitPaneDivider innerClassName DividerLayout flags 4
+
+class name javax/swing/plaf/basic/BasicSplitPaneDivider$DragController
+header extends java/lang/Object nestHost javax/swing/plaf/basic/BasicSplitPaneDivider flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneDivider$DragController outerClass javax/swing/plaf/basic/BasicSplitPaneDivider innerClassName DragController flags 4
+
+class name javax/swing/plaf/basic/BasicSplitPaneDivider$MouseHandler
+header extends java/awt/event/MouseAdapter implements java/awt/event/MouseMotionListener nestHost javax/swing/plaf/basic/BasicSplitPaneDivider flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneDivider$MouseHandler outerClass javax/swing/plaf/basic/BasicSplitPaneDivider innerClassName MouseHandler flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneDivider$DragController outerClass javax/swing/plaf/basic/BasicSplitPaneDivider innerClassName DragController flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneDivider$VerticalDragController outerClass javax/swing/plaf/basic/BasicSplitPaneDivider innerClassName VerticalDragController flags 4
+
+class name javax/swing/plaf/basic/BasicSplitPaneDivider$VerticalDragController
+header extends javax/swing/plaf/basic/BasicSplitPaneDivider$DragController nestHost javax/swing/plaf/basic/BasicSplitPaneDivider flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneDivider$VerticalDragController outerClass javax/swing/plaf/basic/BasicSplitPaneDivider innerClassName VerticalDragController flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneDivider$DragController outerClass javax/swing/plaf/basic/BasicSplitPaneDivider innerClassName DragController flags 4
+
+class name javax/swing/plaf/basic/BasicSplitPaneUI
+header extends javax/swing/plaf/SplitPaneUI nestMembers javax/swing/plaf/basic/BasicSplitPaneUI$BasicVerticalLayoutManager,javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager,javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardResizeToggleHandler,javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardEndHandler,javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardHomeHandler,javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardDownRightHandler,javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardUpLeftHandler,javax/swing/plaf/basic/BasicSplitPaneUI$FocusHandler,javax/swing/plaf/basic/BasicSplitPaneUI$PropertyHandler flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneUI$BasicVerticalLayoutManager outerClass javax/swing/plaf/basic/BasicSplitPaneUI innerClassName BasicVerticalLayoutManager flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager outerClass javax/swing/plaf/basic/BasicSplitPaneUI innerClassName BasicHorizontalLayoutManager flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardResizeToggleHandler outerClass javax/swing/plaf/basic/BasicSplitPaneUI innerClassName KeyboardResizeToggleHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardEndHandler outerClass javax/swing/plaf/basic/BasicSplitPaneUI innerClassName KeyboardEndHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardHomeHandler outerClass javax/swing/plaf/basic/BasicSplitPaneUI innerClassName KeyboardHomeHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardDownRightHandler outerClass javax/swing/plaf/basic/BasicSplitPaneUI innerClassName KeyboardDownRightHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardUpLeftHandler outerClass javax/swing/plaf/basic/BasicSplitPaneUI innerClassName KeyboardUpLeftHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneUI$FocusHandler outerClass javax/swing/plaf/basic/BasicSplitPaneUI innerClassName FocusHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneUI$PropertyHandler outerClass javax/swing/plaf/basic/BasicSplitPaneUI innerClassName PropertyHandler flags 1
+
+class name javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager
+header extends java/lang/Object implements java/awt/LayoutManager2 nestHost javax/swing/plaf/basic/BasicSplitPaneUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager outerClass javax/swing/plaf/basic/BasicSplitPaneUI innerClassName BasicHorizontalLayoutManager flags 1
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/plaf/basic/BasicSplitPaneUI$BasicVerticalLayoutManager
+header extends javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager nestHost javax/swing/plaf/basic/BasicSplitPaneUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneUI$BasicVerticalLayoutManager outerClass javax/swing/plaf/basic/BasicSplitPaneUI innerClassName BasicVerticalLayoutManager flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager outerClass javax/swing/plaf/basic/BasicSplitPaneUI innerClassName BasicHorizontalLayoutManager flags 1
+
+class name javax/swing/plaf/basic/BasicSplitPaneUI$FocusHandler
+header extends java/awt/event/FocusAdapter nestHost javax/swing/plaf/basic/BasicSplitPaneUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneUI$FocusHandler outerClass javax/swing/plaf/basic/BasicSplitPaneUI innerClassName FocusHandler flags 1
+
+class name javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardDownRightHandler
+header extends java/lang/Object implements java/awt/event/ActionListener nestHost javax/swing/plaf/basic/BasicSplitPaneUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardDownRightHandler outerClass javax/swing/plaf/basic/BasicSplitPaneUI innerClassName KeyboardDownRightHandler flags 1
+
+class name javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardEndHandler
+header extends java/lang/Object implements java/awt/event/ActionListener nestHost javax/swing/plaf/basic/BasicSplitPaneUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardEndHandler outerClass javax/swing/plaf/basic/BasicSplitPaneUI innerClassName KeyboardEndHandler flags 1
+
+class name javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardHomeHandler
+header extends java/lang/Object implements java/awt/event/ActionListener nestHost javax/swing/plaf/basic/BasicSplitPaneUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardHomeHandler outerClass javax/swing/plaf/basic/BasicSplitPaneUI innerClassName KeyboardHomeHandler flags 1
+
+class name javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardResizeToggleHandler
+header extends java/lang/Object implements java/awt/event/ActionListener nestHost javax/swing/plaf/basic/BasicSplitPaneUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardResizeToggleHandler outerClass javax/swing/plaf/basic/BasicSplitPaneUI innerClassName KeyboardResizeToggleHandler flags 1
+
+class name javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardUpLeftHandler
+header extends java/lang/Object implements java/awt/event/ActionListener nestHost javax/swing/plaf/basic/BasicSplitPaneUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardUpLeftHandler outerClass javax/swing/plaf/basic/BasicSplitPaneUI innerClassName KeyboardUpLeftHandler flags 1
+
+class name javax/swing/plaf/basic/BasicSplitPaneUI$PropertyHandler
+header extends java/lang/Object implements java/beans/PropertyChangeListener nestHost javax/swing/plaf/basic/BasicSplitPaneUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicSplitPaneUI$PropertyHandler outerClass javax/swing/plaf/basic/BasicSplitPaneUI innerClassName PropertyHandler flags 1
+
+class name javax/swing/plaf/basic/BasicTabbedPaneUI
+header extends javax/swing/plaf/TabbedPaneUI implements javax/swing/SwingConstants nestMembers javax/swing/plaf/basic/BasicTabbedPaneUI$FocusHandler,javax/swing/plaf/basic/BasicTabbedPaneUI$MouseHandler,javax/swing/plaf/basic/BasicTabbedPaneUI$TabSelectionHandler,javax/swing/plaf/basic/BasicTabbedPaneUI$PropertyChangeHandler,javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicTabbedPaneUI$FocusHandler outerClass javax/swing/plaf/basic/BasicTabbedPaneUI innerClassName FocusHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTabbedPaneUI$MouseHandler outerClass javax/swing/plaf/basic/BasicTabbedPaneUI innerClassName MouseHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTabbedPaneUI$TabSelectionHandler outerClass javax/swing/plaf/basic/BasicTabbedPaneUI innerClassName TabSelectionHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTabbedPaneUI$PropertyChangeHandler outerClass javax/swing/plaf/basic/BasicTabbedPaneUI innerClassName PropertyChangeHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout outerClass javax/swing/plaf/basic/BasicTabbedPaneUI innerClassName TabbedPaneLayout flags 1
+innerclass innerClass java/awt/Component$BaselineResizeBehavior outerClass java/awt/Component innerClassName BaselineResizeBehavior flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/plaf/basic/BasicTabbedPaneUI$FocusHandler
+header extends java/awt/event/FocusAdapter nestHost javax/swing/plaf/basic/BasicTabbedPaneUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicTabbedPaneUI$FocusHandler outerClass javax/swing/plaf/basic/BasicTabbedPaneUI innerClassName FocusHandler flags 1
+
+class name javax/swing/plaf/basic/BasicTabbedPaneUI$MouseHandler
+header extends java/awt/event/MouseAdapter nestHost javax/swing/plaf/basic/BasicTabbedPaneUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicTabbedPaneUI$MouseHandler outerClass javax/swing/plaf/basic/BasicTabbedPaneUI innerClassName MouseHandler flags 1
+
+class name javax/swing/plaf/basic/BasicTabbedPaneUI$PropertyChangeHandler
+header extends java/lang/Object implements java/beans/PropertyChangeListener nestHost javax/swing/plaf/basic/BasicTabbedPaneUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicTabbedPaneUI$PropertyChangeHandler outerClass javax/swing/plaf/basic/BasicTabbedPaneUI innerClassName PropertyChangeHandler flags 1
+
+class name javax/swing/plaf/basic/BasicTabbedPaneUI$TabSelectionHandler
+header extends java/lang/Object implements javax/swing/event/ChangeListener nestHost javax/swing/plaf/basic/BasicTabbedPaneUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicTabbedPaneUI$TabSelectionHandler outerClass javax/swing/plaf/basic/BasicTabbedPaneUI innerClassName TabSelectionHandler flags 1
+
+class name javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout
+header extends java/lang/Object implements java/awt/LayoutManager nestHost javax/swing/plaf/basic/BasicTabbedPaneUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout outerClass javax/swing/plaf/basic/BasicTabbedPaneUI innerClassName TabbedPaneLayout flags 1
+
+class name javax/swing/plaf/basic/BasicTableHeaderUI
+header extends javax/swing/plaf/TableHeaderUI nestMembers javax/swing/plaf/basic/BasicTableHeaderUI$MouseInputHandler flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicTableHeaderUI$MouseInputHandler outerClass javax/swing/plaf/basic/BasicTableHeaderUI innerClassName MouseInputHandler flags 1
+
+class name javax/swing/plaf/basic/BasicTableHeaderUI$MouseInputHandler
+header extends java/lang/Object implements javax/swing/event/MouseInputListener nestHost javax/swing/plaf/basic/BasicTableHeaderUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicTableHeaderUI$MouseInputHandler outerClass javax/swing/plaf/basic/BasicTableHeaderUI innerClassName MouseInputHandler flags 1
+
+class name javax/swing/plaf/basic/BasicTableUI
+header extends javax/swing/plaf/TableUI nestMembers javax/swing/plaf/basic/BasicTableUI$MouseInputHandler,javax/swing/plaf/basic/BasicTableUI$FocusHandler,javax/swing/plaf/basic/BasicTableUI$KeyHandler flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicTableUI$MouseInputHandler outerClass javax/swing/plaf/basic/BasicTableUI innerClassName MouseInputHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTableUI$FocusHandler outerClass javax/swing/plaf/basic/BasicTableUI innerClassName FocusHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTableUI$KeyHandler outerClass javax/swing/plaf/basic/BasicTableUI innerClassName KeyHandler flags 1
+innerclass innerClass java/awt/Component$BaselineResizeBehavior outerClass java/awt/Component innerClassName BaselineResizeBehavior flags 4019
+innerclass innerClass javax/swing/JTable$DropLocation outerClass javax/swing/JTable innerClassName DropLocation flags 19
+innerclass innerClass javax/swing/JTable$PrintMode outerClass javax/swing/JTable innerClassName PrintMode flags 4019
+
+class name javax/swing/plaf/basic/BasicTableUI$FocusHandler
+header extends java/lang/Object implements java/awt/event/FocusListener nestHost javax/swing/plaf/basic/BasicTableUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicTableUI$FocusHandler outerClass javax/swing/plaf/basic/BasicTableUI innerClassName FocusHandler flags 1
+
+class name javax/swing/plaf/basic/BasicTableUI$KeyHandler
+header extends java/lang/Object implements java/awt/event/KeyListener nestHost javax/swing/plaf/basic/BasicTableUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicTableUI$KeyHandler outerClass javax/swing/plaf/basic/BasicTableUI innerClassName KeyHandler flags 1
+
+class name javax/swing/plaf/basic/BasicTableUI$MouseInputHandler
+header extends java/lang/Object implements javax/swing/event/MouseInputListener nestHost javax/swing/plaf/basic/BasicTableUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicTableUI$MouseInputHandler outerClass javax/swing/plaf/basic/BasicTableUI innerClassName MouseInputHandler flags 1
+
+class name javax/swing/plaf/basic/BasicTextPaneUI
+header extends javax/swing/plaf/basic/BasicEditorPaneUI flags 21
+
+class name javax/swing/plaf/basic/BasicTextUI
+header extends javax/swing/plaf/TextUI implements javax/swing/text/ViewFactory nestMembers javax/swing/plaf/basic/BasicTextUI$BasicHighlighter,javax/swing/plaf/basic/BasicTextUI$BasicCaret flags 421
+innerclass innerClass javax/swing/plaf/basic/BasicTextUI$BasicHighlighter outerClass javax/swing/plaf/basic/BasicTextUI innerClassName BasicHighlighter flags 9
+innerclass innerClass javax/swing/plaf/basic/BasicTextUI$BasicCaret outerClass javax/swing/plaf/basic/BasicTextUI innerClassName BasicCaret flags 9
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+innerclass innerClass javax/swing/text/JTextComponent$KeyBinding outerClass javax/swing/text/JTextComponent innerClassName KeyBinding flags 9
+innerclass innerClass javax/swing/text/DefaultEditorKit$InsertBreakAction outerClass javax/swing/text/DefaultEditorKit innerClassName InsertBreakAction flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/plaf/basic/BasicTextUI$BasicCaret
+header extends javax/swing/text/DefaultCaret implements javax/swing/plaf/UIResource nestHost javax/swing/plaf/basic/BasicTextUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicTextUI$BasicCaret outerClass javax/swing/plaf/basic/BasicTextUI innerClassName BasicCaret flags 9
+
+class name javax/swing/plaf/basic/BasicTextUI$BasicHighlighter
+header extends javax/swing/text/DefaultHighlighter implements javax/swing/plaf/UIResource nestHost javax/swing/plaf/basic/BasicTextUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicTextUI$BasicHighlighter outerClass javax/swing/plaf/basic/BasicTextUI innerClassName BasicHighlighter flags 9
+
+class name javax/swing/plaf/basic/BasicToggleButtonUI
+header extends javax/swing/plaf/basic/BasicButtonUI flags 21
+
+class name javax/swing/plaf/basic/BasicToolBarSeparatorUI
+header extends javax/swing/plaf/basic/BasicSeparatorUI flags 21
+innerclass innerClass javax/swing/JToolBar$Separator outerClass javax/swing/JToolBar innerClassName Separator flags 9
+
+class name javax/swing/plaf/basic/BasicToolBarUI
+header extends javax/swing/plaf/ToolBarUI implements javax/swing/SwingConstants nestMembers javax/swing/plaf/basic/BasicToolBarUI$DragWindow,javax/swing/plaf/basic/BasicToolBarUI$DockingListener,javax/swing/plaf/basic/BasicToolBarUI$PropertyListener,javax/swing/plaf/basic/BasicToolBarUI$ToolBarFocusListener,javax/swing/plaf/basic/BasicToolBarUI$ToolBarContListener,javax/swing/plaf/basic/BasicToolBarUI$FrameListener flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicToolBarUI$DragWindow outerClass javax/swing/plaf/basic/BasicToolBarUI innerClassName DragWindow flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicToolBarUI$DockingListener outerClass javax/swing/plaf/basic/BasicToolBarUI innerClassName DockingListener flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicToolBarUI$PropertyListener outerClass javax/swing/plaf/basic/BasicToolBarUI innerClassName PropertyListener flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicToolBarUI$ToolBarFocusListener outerClass javax/swing/plaf/basic/BasicToolBarUI innerClassName ToolBarFocusListener flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicToolBarUI$ToolBarContListener outerClass javax/swing/plaf/basic/BasicToolBarUI innerClassName ToolBarContListener flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicToolBarUI$FrameListener outerClass javax/swing/plaf/basic/BasicToolBarUI innerClassName FrameListener flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$RolloverButtonBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName RolloverButtonBorder flags 9
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$ButtonBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName ButtonBorder flags 9
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$RadioButtonBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName RadioButtonBorder flags 9
+
+class name javax/swing/plaf/basic/BasicToolBarUI$DockingListener
+header extends java/lang/Object implements javax/swing/event/MouseInputListener nestHost javax/swing/plaf/basic/BasicToolBarUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicToolBarUI$DockingListener outerClass javax/swing/plaf/basic/BasicToolBarUI innerClassName DockingListener flags 1
+
+class name javax/swing/plaf/basic/BasicToolBarUI$DragWindow
+header extends java/awt/Window nestHost javax/swing/plaf/basic/BasicToolBarUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicToolBarUI$DragWindow outerClass javax/swing/plaf/basic/BasicToolBarUI innerClassName DragWindow flags 4
+
+class name javax/swing/plaf/basic/BasicToolBarUI$FrameListener
+header extends java/awt/event/WindowAdapter nestHost javax/swing/plaf/basic/BasicToolBarUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicToolBarUI$FrameListener outerClass javax/swing/plaf/basic/BasicToolBarUI innerClassName FrameListener flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicToolBarUI$DragWindow outerClass javax/swing/plaf/basic/BasicToolBarUI innerClassName DragWindow flags 4
+
+class name javax/swing/plaf/basic/BasicToolBarUI$PropertyListener
+header extends java/lang/Object implements java/beans/PropertyChangeListener nestHost javax/swing/plaf/basic/BasicToolBarUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicToolBarUI$PropertyListener outerClass javax/swing/plaf/basic/BasicToolBarUI innerClassName PropertyListener flags 4
+
+class name javax/swing/plaf/basic/BasicToolBarUI$ToolBarContListener
+header extends java/lang/Object implements java/awt/event/ContainerListener nestHost javax/swing/plaf/basic/BasicToolBarUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicToolBarUI$ToolBarContListener outerClass javax/swing/plaf/basic/BasicToolBarUI innerClassName ToolBarContListener flags 4
+
+class name javax/swing/plaf/basic/BasicToolBarUI$ToolBarFocusListener
+header extends java/lang/Object implements java/awt/event/FocusListener nestHost javax/swing/plaf/basic/BasicToolBarUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicToolBarUI$ToolBarFocusListener outerClass javax/swing/plaf/basic/BasicToolBarUI innerClassName ToolBarFocusListener flags 4
+
+class name javax/swing/plaf/basic/BasicTreeUI
+header extends javax/swing/plaf/TreeUI nestMembers javax/swing/plaf/basic/BasicTreeUI$MouseInputHandler,javax/swing/plaf/basic/BasicTreeUI$TreeCancelEditingAction,javax/swing/plaf/basic/BasicTreeUI$TreeToggleAction,javax/swing/plaf/basic/BasicTreeUI$TreeHomeAction,javax/swing/plaf/basic/BasicTreeUI$TreeIncrementAction,javax/swing/plaf/basic/BasicTreeUI$TreePageAction,javax/swing/plaf/basic/BasicTreeUI$TreeTraverseAction,javax/swing/plaf/basic/BasicTreeUI$SelectionModelPropertyChangeHandler,javax/swing/plaf/basic/BasicTreeUI$PropertyChangeHandler,javax/swing/plaf/basic/BasicTreeUI$MouseHandler,javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler,javax/swing/plaf/basic/BasicTreeUI$FocusHandler,javax/swing/plaf/basic/BasicTreeUI$KeyHandler,javax/swing/plaf/basic/BasicTreeUI$CellEditorHandler,javax/swing/plaf/basic/BasicTreeUI$TreeSelectionHandler,javax/swing/plaf/basic/BasicTreeUI$TreeModelHandler,javax/swing/plaf/basic/BasicTreeUI$ComponentHandler,javax/swing/plaf/basic/BasicTreeUI$TreeExpansionHandler flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$MouseInputHandler outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName MouseInputHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$TreeCancelEditingAction outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName TreeCancelEditingAction flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$TreeToggleAction outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName TreeToggleAction flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$TreeHomeAction outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName TreeHomeAction flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$TreeIncrementAction outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName TreeIncrementAction flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$TreePageAction outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName TreePageAction flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$TreeTraverseAction outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName TreeTraverseAction flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$SelectionModelPropertyChangeHandler outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName SelectionModelPropertyChangeHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$PropertyChangeHandler outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName PropertyChangeHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$MouseHandler outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName MouseHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName NodeDimensionsHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$FocusHandler outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName FocusHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$KeyHandler outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName KeyHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$CellEditorHandler outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName CellEditorHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$TreeSelectionHandler outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName TreeSelectionHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$TreeModelHandler outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName TreeModelHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$ComponentHandler outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName ComponentHandler flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$TreeExpansionHandler outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName TreeExpansionHandler flags 1
+innerclass innerClass javax/swing/tree/AbstractLayoutCache$NodeDimensions outerClass javax/swing/tree/AbstractLayoutCache innerClassName NodeDimensions flags 409
+innerclass innerClass java/awt/Component$BaselineResizeBehavior outerClass java/awt/Component innerClassName BaselineResizeBehavior flags 4019
+innerclass innerClass javax/swing/JTree$DropLocation outerClass javax/swing/JTree innerClassName DropLocation flags 19
+
+class name javax/swing/plaf/basic/BasicTreeUI$CellEditorHandler
+header extends java/lang/Object implements javax/swing/event/CellEditorListener nestHost javax/swing/plaf/basic/BasicTreeUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$CellEditorHandler outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName CellEditorHandler flags 1
+
+class name javax/swing/plaf/basic/BasicTreeUI$ComponentHandler
+header extends java/awt/event/ComponentAdapter implements java/awt/event/ActionListener nestHost javax/swing/plaf/basic/BasicTreeUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$ComponentHandler outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName ComponentHandler flags 1
+
+class name javax/swing/plaf/basic/BasicTreeUI$FocusHandler
+header extends java/lang/Object implements java/awt/event/FocusListener nestHost javax/swing/plaf/basic/BasicTreeUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$FocusHandler outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName FocusHandler flags 1
+
+class name javax/swing/plaf/basic/BasicTreeUI$KeyHandler
+header extends java/awt/event/KeyAdapter nestHost javax/swing/plaf/basic/BasicTreeUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$KeyHandler outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName KeyHandler flags 1
+
+class name javax/swing/plaf/basic/BasicTreeUI$MouseHandler
+header extends java/awt/event/MouseAdapter implements java/awt/event/MouseMotionListener nestHost javax/swing/plaf/basic/BasicTreeUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$MouseHandler outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName MouseHandler flags 1
+
+class name javax/swing/plaf/basic/BasicTreeUI$MouseInputHandler
+header extends java/lang/Object implements javax/swing/event/MouseInputListener nestHost javax/swing/plaf/basic/BasicTreeUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$MouseInputHandler outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName MouseInputHandler flags 1
+
+class name javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler
+header extends javax/swing/tree/AbstractLayoutCache$NodeDimensions nestHost javax/swing/plaf/basic/BasicTreeUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName NodeDimensionsHandler flags 1
+innerclass innerClass javax/swing/tree/AbstractLayoutCache$NodeDimensions outerClass javax/swing/tree/AbstractLayoutCache innerClassName NodeDimensions flags 409
+
+class name javax/swing/plaf/basic/BasicTreeUI$PropertyChangeHandler
+header extends java/lang/Object implements java/beans/PropertyChangeListener nestHost javax/swing/plaf/basic/BasicTreeUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$PropertyChangeHandler outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName PropertyChangeHandler flags 1
+
+class name javax/swing/plaf/basic/BasicTreeUI$SelectionModelPropertyChangeHandler
+header extends java/lang/Object implements java/beans/PropertyChangeListener nestHost javax/swing/plaf/basic/BasicTreeUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$SelectionModelPropertyChangeHandler outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName SelectionModelPropertyChangeHandler flags 1
+
+class name javax/swing/plaf/basic/BasicTreeUI$TreeCancelEditingAction
+header extends javax/swing/AbstractAction nestHost javax/swing/plaf/basic/BasicTreeUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$TreeCancelEditingAction outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName TreeCancelEditingAction flags 1
+
+class name javax/swing/plaf/basic/BasicTreeUI$TreeExpansionHandler
+header extends java/lang/Object implements javax/swing/event/TreeExpansionListener nestHost javax/swing/plaf/basic/BasicTreeUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$TreeExpansionHandler outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName TreeExpansionHandler flags 1
+
+class name javax/swing/plaf/basic/BasicTreeUI$TreeHomeAction
+header extends javax/swing/AbstractAction nestHost javax/swing/plaf/basic/BasicTreeUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$TreeHomeAction outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName TreeHomeAction flags 1
+
+class name javax/swing/plaf/basic/BasicTreeUI$TreeIncrementAction
+header extends javax/swing/AbstractAction nestHost javax/swing/plaf/basic/BasicTreeUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$TreeIncrementAction outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName TreeIncrementAction flags 1
+
+class name javax/swing/plaf/basic/BasicTreeUI$TreeModelHandler
+header extends java/lang/Object implements javax/swing/event/TreeModelListener nestHost javax/swing/plaf/basic/BasicTreeUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$TreeModelHandler outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName TreeModelHandler flags 1
+
+class name javax/swing/plaf/basic/BasicTreeUI$TreePageAction
+header extends javax/swing/AbstractAction nestHost javax/swing/plaf/basic/BasicTreeUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$TreePageAction outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName TreePageAction flags 1
+
+class name javax/swing/plaf/basic/BasicTreeUI$TreeSelectionHandler
+header extends java/lang/Object implements javax/swing/event/TreeSelectionListener nestHost javax/swing/plaf/basic/BasicTreeUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$TreeSelectionHandler outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName TreeSelectionHandler flags 1
+
+class name javax/swing/plaf/basic/BasicTreeUI$TreeToggleAction
+header extends javax/swing/AbstractAction nestHost javax/swing/plaf/basic/BasicTreeUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$TreeToggleAction outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName TreeToggleAction flags 1
+
+class name javax/swing/plaf/basic/BasicTreeUI$TreeTraverseAction
+header extends javax/swing/AbstractAction nestHost javax/swing/plaf/basic/BasicTreeUI flags 21
+innerclass innerClass javax/swing/plaf/basic/BasicTreeUI$TreeTraverseAction outerClass javax/swing/plaf/basic/BasicTreeUI innerClassName TreeTraverseAction flags 1
+
+class name javax/swing/plaf/basic/BasicViewportUI
+header extends javax/swing/plaf/ViewportUI flags 21
+
+class name javax/swing/plaf/basic/ComboPopup
+header extends java/lang/Object flags 601
+
+class name javax/swing/plaf/basic/DefaultMenuLayout
+header extends javax/swing/BoxLayout implements javax/swing/plaf/UIResource flags 21
+
+class name javax/swing/plaf/metal/MetalBorders
+header extends java/lang/Object nestMembers javax/swing/plaf/metal/MetalBorders$TableHeaderBorder,javax/swing/plaf/metal/MetalBorders$ToggleButtonBorder,javax/swing/plaf/metal/MetalBorders$ScrollPaneBorder,javax/swing/plaf/metal/MetalBorders$TextFieldBorder,javax/swing/plaf/metal/MetalBorders$ToolBarBorder,javax/swing/plaf/metal/MetalBorders$RolloverButtonBorder,javax/swing/plaf/metal/MetalBorders$PopupMenuBorder,javax/swing/plaf/metal/MetalBorders$MenuItemBorder,javax/swing/plaf/metal/MetalBorders$MenuBarBorder,javax/swing/plaf/metal/MetalBorders$OptionDialogBorder,javax/swing/plaf/metal/MetalBorders$PaletteBorder,javax/swing/plaf/metal/MetalBorders$InternalFrameBorder,javax/swing/plaf/metal/MetalBorders$ButtonBorder,javax/swing/plaf/metal/MetalBorders$Flush3DBorder flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$TableHeaderBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName TableHeaderBorder flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$ToggleButtonBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName ToggleButtonBorder flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$ScrollPaneBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName ScrollPaneBorder flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$TextFieldBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName TextFieldBorder flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$ToolBarBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName ToolBarBorder flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$RolloverButtonBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName RolloverButtonBorder flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$PopupMenuBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName PopupMenuBorder flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$MenuItemBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName MenuItemBorder flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$MenuBarBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName MenuBarBorder flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$OptionDialogBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName OptionDialogBorder flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$PaletteBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName PaletteBorder flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$InternalFrameBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName InternalFrameBorder flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$ButtonBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName ButtonBorder flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$Flush3DBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName Flush3DBorder flags 9
+innerclass innerClass javax/swing/plaf/BorderUIResource$CompoundBorderUIResource outerClass javax/swing/plaf/BorderUIResource innerClassName CompoundBorderUIResource flags 9
+innerclass innerClass javax/swing/plaf/basic/BasicBorders$MarginBorder outerClass javax/swing/plaf/basic/BasicBorders innerClassName MarginBorder flags 9
+
+class name javax/swing/plaf/metal/MetalBorders$ButtonBorder
+header extends javax/swing/border/AbstractBorder implements javax/swing/plaf/UIResource nestHost javax/swing/plaf/metal/MetalBorders flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$ButtonBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName ButtonBorder flags 9
+
+class name javax/swing/plaf/metal/MetalBorders$Flush3DBorder
+header extends javax/swing/border/AbstractBorder implements javax/swing/plaf/UIResource nestHost javax/swing/plaf/metal/MetalBorders flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$Flush3DBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName Flush3DBorder flags 9
+
+class name javax/swing/plaf/metal/MetalBorders$InternalFrameBorder
+header extends javax/swing/border/AbstractBorder implements javax/swing/plaf/UIResource nestHost javax/swing/plaf/metal/MetalBorders flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$InternalFrameBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName InternalFrameBorder flags 9
+
+class name javax/swing/plaf/metal/MetalBorders$MenuBarBorder
+header extends javax/swing/border/AbstractBorder implements javax/swing/plaf/UIResource nestHost javax/swing/plaf/metal/MetalBorders flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$MenuBarBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName MenuBarBorder flags 9
+
+class name javax/swing/plaf/metal/MetalBorders$MenuItemBorder
+header extends javax/swing/border/AbstractBorder implements javax/swing/plaf/UIResource nestHost javax/swing/plaf/metal/MetalBorders flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$MenuItemBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName MenuItemBorder flags 9
+
+class name javax/swing/plaf/metal/MetalBorders$OptionDialogBorder
+header extends javax/swing/border/AbstractBorder implements javax/swing/plaf/UIResource nestHost javax/swing/plaf/metal/MetalBorders flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$OptionDialogBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName OptionDialogBorder flags 9
+
+class name javax/swing/plaf/metal/MetalBorders$PaletteBorder
+header extends javax/swing/border/AbstractBorder implements javax/swing/plaf/UIResource nestHost javax/swing/plaf/metal/MetalBorders flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$PaletteBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName PaletteBorder flags 9
+
+class name javax/swing/plaf/metal/MetalBorders$PopupMenuBorder
+header extends javax/swing/border/AbstractBorder implements javax/swing/plaf/UIResource nestHost javax/swing/plaf/metal/MetalBorders flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$PopupMenuBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName PopupMenuBorder flags 9
+
+class name javax/swing/plaf/metal/MetalBorders$RolloverButtonBorder
+header extends javax/swing/plaf/metal/MetalBorders$ButtonBorder nestHost javax/swing/plaf/metal/MetalBorders flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$RolloverButtonBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName RolloverButtonBorder flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$ButtonBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName ButtonBorder flags 9
+
+class name javax/swing/plaf/metal/MetalBorders$ScrollPaneBorder
+header extends javax/swing/border/AbstractBorder implements javax/swing/plaf/UIResource nestHost javax/swing/plaf/metal/MetalBorders flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$ScrollPaneBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName ScrollPaneBorder flags 9
+
+class name javax/swing/plaf/metal/MetalBorders$TableHeaderBorder
+header extends javax/swing/border/AbstractBorder nestHost javax/swing/plaf/metal/MetalBorders flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$TableHeaderBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName TableHeaderBorder flags 9
+
+class name javax/swing/plaf/metal/MetalBorders$TextFieldBorder
+header extends javax/swing/plaf/metal/MetalBorders$Flush3DBorder nestHost javax/swing/plaf/metal/MetalBorders flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$TextFieldBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName TextFieldBorder flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$Flush3DBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName Flush3DBorder flags 9
+
+class name javax/swing/plaf/metal/MetalBorders$ToggleButtonBorder
+header extends javax/swing/plaf/metal/MetalBorders$ButtonBorder nestHost javax/swing/plaf/metal/MetalBorders flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$ToggleButtonBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName ToggleButtonBorder flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$ButtonBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName ButtonBorder flags 9
+
+class name javax/swing/plaf/metal/MetalBorders$ToolBarBorder
+header extends javax/swing/border/AbstractBorder implements javax/swing/plaf/UIResource,javax/swing/SwingConstants nestHost javax/swing/plaf/metal/MetalBorders flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalBorders$ToolBarBorder outerClass javax/swing/plaf/metal/MetalBorders innerClassName ToolBarBorder flags 9
+
+class name javax/swing/plaf/metal/MetalButtonUI
+header extends javax/swing/plaf/basic/BasicButtonUI flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/plaf/metal/MetalCheckBoxIcon
+header extends java/lang/Object implements javax/swing/Icon,javax/swing/plaf/UIResource,java/io/Serializable flags 21
+
+class name javax/swing/plaf/metal/MetalCheckBoxUI
+header extends javax/swing/plaf/metal/MetalRadioButtonUI flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/plaf/metal/MetalComboBoxEditor
+header extends javax/swing/plaf/basic/BasicComboBoxEditor nestMembers javax/swing/plaf/metal/MetalComboBoxEditor$UIResource flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalComboBoxEditor$UIResource outerClass javax/swing/plaf/metal/MetalComboBoxEditor innerClassName UIResource flags 9
+
+class name javax/swing/plaf/metal/MetalComboBoxEditor$UIResource
+header extends javax/swing/plaf/metal/MetalComboBoxEditor implements javax/swing/plaf/UIResource nestHost javax/swing/plaf/metal/MetalComboBoxEditor flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalComboBoxEditor$UIResource outerClass javax/swing/plaf/metal/MetalComboBoxEditor innerClassName UIResource flags 9
+
+class name javax/swing/plaf/metal/MetalComboBoxIcon
+header extends java/lang/Object implements javax/swing/Icon,java/io/Serializable flags 21
+
+class name javax/swing/plaf/metal/MetalComboBoxUI
+header extends javax/swing/plaf/basic/BasicComboBoxUI nestMembers javax/swing/plaf/metal/MetalComboBoxUI$MetalComboPopup,javax/swing/plaf/metal/MetalComboBoxUI$MetalComboBoxLayoutManager,javax/swing/plaf/metal/MetalComboBoxUI$MetalPropertyChangeListener flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalComboBoxUI$MetalComboPopup outerClass javax/swing/plaf/metal/MetalComboBoxUI innerClassName MetalComboPopup flags 1
+innerclass innerClass javax/swing/plaf/metal/MetalComboBoxUI$MetalComboBoxLayoutManager outerClass javax/swing/plaf/metal/MetalComboBoxUI innerClassName MetalComboBoxLayoutManager flags 1
+innerclass innerClass javax/swing/plaf/metal/MetalComboBoxUI$MetalPropertyChangeListener outerClass javax/swing/plaf/metal/MetalComboBoxUI innerClassName MetalPropertyChangeListener flags 1
+innerclass innerClass javax/swing/plaf/metal/MetalComboBoxEditor$UIResource outerClass javax/swing/plaf/metal/MetalComboBoxEditor innerClassName UIResource flags 9
+
+class name javax/swing/plaf/metal/MetalComboBoxUI$MetalComboBoxLayoutManager
+header extends javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager nestHost javax/swing/plaf/metal/MetalComboBoxUI flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalComboBoxUI$MetalComboBoxLayoutManager outerClass javax/swing/plaf/metal/MetalComboBoxUI innerClassName MetalComboBoxLayoutManager flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager outerClass javax/swing/plaf/basic/BasicComboBoxUI innerClassName ComboBoxLayoutManager flags 1
+
+class name javax/swing/plaf/metal/MetalComboBoxUI$MetalComboPopup
+header extends javax/swing/plaf/basic/BasicComboPopup nestHost javax/swing/plaf/metal/MetalComboBoxUI flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;
+innerclass innerClass javax/swing/plaf/metal/MetalComboBoxUI$MetalComboPopup outerClass javax/swing/plaf/metal/MetalComboBoxUI innerClassName MetalComboPopup flags 1
+
+class name javax/swing/plaf/metal/MetalComboBoxUI$MetalPropertyChangeListener
+header extends javax/swing/plaf/basic/BasicComboBoxUI$PropertyChangeHandler nestHost javax/swing/plaf/metal/MetalComboBoxUI flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalComboBoxUI$MetalPropertyChangeListener outerClass javax/swing/plaf/metal/MetalComboBoxUI innerClassName MetalPropertyChangeListener flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicComboBoxUI$PropertyChangeHandler outerClass javax/swing/plaf/basic/BasicComboBoxUI innerClassName PropertyChangeHandler flags 1
+
+class name javax/swing/plaf/metal/MetalFileChooserUI
+header extends javax/swing/plaf/basic/BasicFileChooserUI nestMembers javax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxAction,javax/swing/plaf/metal/MetalFileChooserUI$FilterComboBoxModel,javax/swing/plaf/metal/MetalFileChooserUI$FilterComboBoxRenderer,javax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxModel,javax/swing/plaf/metal/MetalFileChooserUI$FileRenderer,javax/swing/plaf/metal/MetalFileChooserUI$SingleClickListener flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxAction outerClass javax/swing/plaf/metal/MetalFileChooserUI innerClassName DirectoryComboBoxAction flags 4
+innerclass innerClass javax/swing/plaf/metal/MetalFileChooserUI$FilterComboBoxModel outerClass javax/swing/plaf/metal/MetalFileChooserUI innerClassName FilterComboBoxModel flags 4
+innerclass innerClass javax/swing/plaf/metal/MetalFileChooserUI$FilterComboBoxRenderer outerClass javax/swing/plaf/metal/MetalFileChooserUI innerClassName FilterComboBoxRenderer flags 1
+innerclass innerClass javax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxModel outerClass javax/swing/plaf/metal/MetalFileChooserUI innerClassName DirectoryComboBoxModel flags 4
+innerclass innerClass javax/swing/plaf/metal/MetalFileChooserUI$FileRenderer outerClass javax/swing/plaf/metal/MetalFileChooserUI innerClassName FileRenderer flags 4
+innerclass innerClass javax/swing/plaf/metal/MetalFileChooserUI$SingleClickListener outerClass javax/swing/plaf/metal/MetalFileChooserUI innerClassName SingleClickListener flags 4
+
+class name javax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxAction
+header extends javax/swing/AbstractAction nestHost javax/swing/plaf/metal/MetalFileChooserUI flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxAction outerClass javax/swing/plaf/metal/MetalFileChooserUI innerClassName DirectoryComboBoxAction flags 4
+
+class name javax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxModel
+header extends javax/swing/AbstractListModel implements javax/swing/ComboBoxModel nestHost javax/swing/plaf/metal/MetalFileChooserUI flags 21 signature Ljavax/swing/AbstractListModel<Ljava/lang/Object;>;Ljavax/swing/ComboBoxModel<Ljava/lang/Object;>;
+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$FileRenderer
+header extends javax/swing/DefaultListCellRenderer nestHost javax/swing/plaf/metal/MetalFileChooserUI flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="9")
+innerclass innerClass javax/swing/plaf/metal/MetalFileChooserUI$FileRenderer outerClass javax/swing/plaf/metal/MetalFileChooserUI innerClassName FileRenderer flags 4
+
+class name javax/swing/plaf/metal/MetalFileChooserUI$FilterComboBoxModel
+header extends javax/swing/AbstractListModel implements javax/swing/ComboBoxModel,java/beans/PropertyChangeListener nestHost javax/swing/plaf/metal/MetalFileChooserUI flags 21 signature Ljavax/swing/AbstractListModel<Ljava/lang/Object;>;Ljavax/swing/ComboBoxModel<Ljava/lang/Object;>;Ljava/beans/PropertyChangeListener;
+innerclass innerClass javax/swing/plaf/metal/MetalFileChooserUI$FilterComboBoxModel outerClass javax/swing/plaf/metal/MetalFileChooserUI innerClassName FilterComboBoxModel flags 4
+
+class name javax/swing/plaf/metal/MetalFileChooserUI$FilterComboBoxRenderer
+header extends javax/swing/DefaultListCellRenderer nestHost javax/swing/plaf/metal/MetalFileChooserUI flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalFileChooserUI$FilterComboBoxRenderer outerClass javax/swing/plaf/metal/MetalFileChooserUI innerClassName FilterComboBoxRenderer flags 1
+
+class name javax/swing/plaf/metal/MetalFileChooserUI$SingleClickListener
+header extends java/awt/event/MouseAdapter nestHost javax/swing/plaf/metal/MetalFileChooserUI flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="9")
+innerclass innerClass javax/swing/plaf/metal/MetalFileChooserUI$SingleClickListener outerClass javax/swing/plaf/metal/MetalFileChooserUI innerClassName SingleClickListener flags 4
+
+class name javax/swing/plaf/metal/MetalIconFactory
+header extends java/lang/Object implements java/io/Serializable nestMembers javax/swing/plaf/metal/MetalIconFactory$TreeControlIcon,javax/swing/plaf/metal/MetalIconFactory$TreeLeafIcon,javax/swing/plaf/metal/MetalIconFactory$FileIcon16,javax/swing/plaf/metal/MetalIconFactory$TreeFolderIcon,javax/swing/plaf/metal/MetalIconFactory$FolderIcon16,javax/swing/plaf/metal/MetalIconFactory$PaletteCloseIcon flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalIconFactory$TreeControlIcon outerClass javax/swing/plaf/metal/MetalIconFactory innerClassName TreeControlIcon flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalIconFactory$TreeLeafIcon outerClass javax/swing/plaf/metal/MetalIconFactory innerClassName TreeLeafIcon flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalIconFactory$FileIcon16 outerClass javax/swing/plaf/metal/MetalIconFactory innerClassName FileIcon16 flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalIconFactory$TreeFolderIcon outerClass javax/swing/plaf/metal/MetalIconFactory innerClassName TreeFolderIcon flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalIconFactory$FolderIcon16 outerClass javax/swing/plaf/metal/MetalIconFactory innerClassName FolderIcon16 flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalIconFactory$PaletteCloseIcon outerClass javax/swing/plaf/metal/MetalIconFactory innerClassName PaletteCloseIcon flags 9
+
+class name javax/swing/plaf/metal/MetalIconFactory$FileIcon16
+header extends java/lang/Object implements javax/swing/Icon,java/io/Serializable nestHost javax/swing/plaf/metal/MetalIconFactory flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalIconFactory$FileIcon16 outerClass javax/swing/plaf/metal/MetalIconFactory innerClassName FileIcon16 flags 9
+
+class name javax/swing/plaf/metal/MetalIconFactory$FolderIcon16
+header extends java/lang/Object implements javax/swing/Icon,java/io/Serializable nestHost javax/swing/plaf/metal/MetalIconFactory flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalIconFactory$FolderIcon16 outerClass javax/swing/plaf/metal/MetalIconFactory innerClassName FolderIcon16 flags 9
+
+class name javax/swing/plaf/metal/MetalIconFactory$PaletteCloseIcon
+header extends java/lang/Object implements javax/swing/Icon,javax/swing/plaf/UIResource,java/io/Serializable nestHost javax/swing/plaf/metal/MetalIconFactory flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalIconFactory$PaletteCloseIcon outerClass javax/swing/plaf/metal/MetalIconFactory innerClassName PaletteCloseIcon flags 9
+
+class name javax/swing/plaf/metal/MetalIconFactory$TreeControlIcon
+header extends java/lang/Object implements javax/swing/Icon,java/io/Serializable nestHost javax/swing/plaf/metal/MetalIconFactory flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalIconFactory$TreeControlIcon outerClass javax/swing/plaf/metal/MetalIconFactory innerClassName TreeControlIcon flags 9
+
+class name javax/swing/plaf/metal/MetalIconFactory$TreeFolderIcon
+header extends javax/swing/plaf/metal/MetalIconFactory$FolderIcon16 nestHost javax/swing/plaf/metal/MetalIconFactory flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalIconFactory$TreeFolderIcon outerClass javax/swing/plaf/metal/MetalIconFactory innerClassName TreeFolderIcon flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalIconFactory$FolderIcon16 outerClass javax/swing/plaf/metal/MetalIconFactory innerClassName FolderIcon16 flags 9
+
+class name javax/swing/plaf/metal/MetalIconFactory$TreeLeafIcon
+header extends javax/swing/plaf/metal/MetalIconFactory$FileIcon16 nestHost javax/swing/plaf/metal/MetalIconFactory flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalIconFactory$TreeLeafIcon outerClass javax/swing/plaf/metal/MetalIconFactory innerClassName TreeLeafIcon flags 9
+innerclass innerClass javax/swing/plaf/metal/MetalIconFactory$FileIcon16 outerClass javax/swing/plaf/metal/MetalIconFactory innerClassName FileIcon16 flags 9
+
+class name javax/swing/plaf/metal/MetalLabelUI
+header extends javax/swing/plaf/basic/BasicLabelUI flags 21
+
+class name javax/swing/plaf/metal/MetalMenuBarUI
+header extends javax/swing/plaf/basic/BasicMenuBarUI flags 21
+
+class name javax/swing/plaf/metal/MetalPopupMenuSeparatorUI
+header extends javax/swing/plaf/metal/MetalSeparatorUI flags 21
+
+class name javax/swing/plaf/metal/MetalProgressBarUI
+header extends javax/swing/plaf/basic/BasicProgressBarUI flags 21
+
+class name javax/swing/plaf/metal/MetalRadioButtonUI
+header extends javax/swing/plaf/basic/BasicRadioButtonUI flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/plaf/metal/MetalScrollButton
+header extends javax/swing/plaf/basic/BasicArrowButton flags 21
+
+class name javax/swing/plaf/metal/MetalSeparatorUI
+header extends javax/swing/plaf/basic/BasicSeparatorUI flags 21
+
+class name javax/swing/plaf/metal/MetalSliderUI
+header extends javax/swing/plaf/basic/BasicSliderUI nestMembers javax/swing/plaf/metal/MetalSliderUI$MetalPropertyListener flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalSliderUI$MetalPropertyListener outerClass javax/swing/plaf/metal/MetalSliderUI innerClassName MetalPropertyListener flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicSliderUI$ScrollListener outerClass javax/swing/plaf/basic/BasicSliderUI innerClassName ScrollListener flags 1
+
+class name javax/swing/plaf/metal/MetalSliderUI$MetalPropertyListener
+header extends javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler nestHost javax/swing/plaf/metal/MetalSliderUI flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalSliderUI$MetalPropertyListener outerClass javax/swing/plaf/metal/MetalSliderUI innerClassName MetalPropertyListener flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler outerClass javax/swing/plaf/basic/BasicSliderUI innerClassName PropertyChangeHandler flags 1
+
+class name javax/swing/plaf/metal/MetalSplitPaneUI
+header extends javax/swing/plaf/basic/BasicSplitPaneUI flags 21
+
+class name javax/swing/plaf/metal/MetalTabbedPaneUI
+header extends javax/swing/plaf/basic/BasicTabbedPaneUI nestMembers javax/swing/plaf/metal/MetalTabbedPaneUI$TabbedPaneLayout flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalTabbedPaneUI$TabbedPaneLayout outerClass javax/swing/plaf/metal/MetalTabbedPaneUI innerClassName TabbedPaneLayout flags 1
+
+class name javax/swing/plaf/metal/MetalTabbedPaneUI$TabbedPaneLayout
+header extends javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout nestHost javax/swing/plaf/metal/MetalTabbedPaneUI flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalTabbedPaneUI$TabbedPaneLayout outerClass javax/swing/plaf/metal/MetalTabbedPaneUI innerClassName TabbedPaneLayout flags 1
+innerclass innerClass javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout outerClass javax/swing/plaf/basic/BasicTabbedPaneUI innerClassName TabbedPaneLayout flags 1
+
+class name javax/swing/plaf/metal/MetalTextFieldUI
+header extends javax/swing/plaf/basic/BasicTextFieldUI flags 21
+
+class name javax/swing/plaf/metal/MetalTheme
+header extends java/lang/Object flags 421
+
+class name javax/swing/plaf/metal/MetalToggleButtonUI
+header extends javax/swing/plaf/basic/BasicToggleButtonUI flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/plaf/metal/MetalToolBarUI
+header extends javax/swing/plaf/basic/BasicToolBarUI nestMembers javax/swing/plaf/metal/MetalToolBarUI$MetalDockingListener,javax/swing/plaf/metal/MetalToolBarUI$MetalRolloverListener,javax/swing/plaf/metal/MetalToolBarUI$MetalContainerListener flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalToolBarUI$MetalDockingListener outerClass javax/swing/plaf/metal/MetalToolBarUI innerClassName MetalDockingListener flags 4
+innerclass innerClass javax/swing/plaf/metal/MetalToolBarUI$MetalRolloverListener outerClass javax/swing/plaf/metal/MetalToolBarUI innerClassName MetalRolloverListener flags 4
+innerclass innerClass javax/swing/plaf/metal/MetalToolBarUI$MetalContainerListener outerClass javax/swing/plaf/metal/MetalToolBarUI innerClassName MetalContainerListener flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicToolBarUI$DragWindow outerClass javax/swing/plaf/basic/BasicToolBarUI innerClassName DragWindow flags 4
+
+class name javax/swing/plaf/metal/MetalToolBarUI$MetalContainerListener
+header extends javax/swing/plaf/basic/BasicToolBarUI$ToolBarContListener nestHost javax/swing/plaf/metal/MetalToolBarUI flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalToolBarUI$MetalContainerListener outerClass javax/swing/plaf/metal/MetalToolBarUI innerClassName MetalContainerListener flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicToolBarUI$ToolBarContListener outerClass javax/swing/plaf/basic/BasicToolBarUI innerClassName ToolBarContListener flags 4
+
+class name javax/swing/plaf/metal/MetalToolBarUI$MetalDockingListener
+header extends javax/swing/plaf/basic/BasicToolBarUI$DockingListener nestHost javax/swing/plaf/metal/MetalToolBarUI flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalToolBarUI$MetalDockingListener outerClass javax/swing/plaf/metal/MetalToolBarUI innerClassName MetalDockingListener flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicToolBarUI$DockingListener outerClass javax/swing/plaf/basic/BasicToolBarUI innerClassName DockingListener flags 1
+
+class name javax/swing/plaf/metal/MetalToolBarUI$MetalRolloverListener
+header extends javax/swing/plaf/basic/BasicToolBarUI$PropertyListener nestHost javax/swing/plaf/metal/MetalToolBarUI flags 21
+innerclass innerClass javax/swing/plaf/metal/MetalToolBarUI$MetalRolloverListener outerClass javax/swing/plaf/metal/MetalToolBarUI innerClassName MetalRolloverListener flags 4
+innerclass innerClass javax/swing/plaf/basic/BasicToolBarUI$PropertyListener outerClass javax/swing/plaf/basic/BasicToolBarUI innerClassName PropertyListener flags 4
+
+class name javax/swing/plaf/metal/MetalToolTipUI
+header extends javax/swing/plaf/basic/BasicToolTipUI flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/plaf/multi/MultiButtonUI
+header extends javax/swing/plaf/ButtonUI flags 21
+
+class name javax/swing/plaf/multi/MultiColorChooserUI
+header extends javax/swing/plaf/ColorChooserUI flags 21
+
+class name javax/swing/plaf/multi/MultiComboBoxUI
+header extends javax/swing/plaf/ComboBoxUI flags 21
+
+class name javax/swing/plaf/multi/MultiDesktopIconUI
+header extends javax/swing/plaf/DesktopIconUI flags 21
+
+class name javax/swing/plaf/multi/MultiDesktopPaneUI
+header extends javax/swing/plaf/DesktopPaneUI flags 21
+
+class name javax/swing/plaf/multi/MultiFileChooserUI
+header extends javax/swing/plaf/FileChooserUI flags 21
+
+class name javax/swing/plaf/multi/MultiInternalFrameUI
+header extends javax/swing/plaf/InternalFrameUI flags 21
+
+class name javax/swing/plaf/multi/MultiLabelUI
+header extends javax/swing/plaf/LabelUI flags 21
+
+class name javax/swing/plaf/multi/MultiListUI
+header extends javax/swing/plaf/ListUI flags 21
+
+class name javax/swing/plaf/multi/MultiLookAndFeel
+header extends javax/swing/LookAndFeel flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/plaf/multi/MultiMenuBarUI
+header extends javax/swing/plaf/MenuBarUI flags 21
+
+class name javax/swing/plaf/multi/MultiMenuItemUI
+header extends javax/swing/plaf/MenuItemUI flags 21
+
+class name javax/swing/plaf/multi/MultiOptionPaneUI
+header extends javax/swing/plaf/OptionPaneUI flags 21
+
+class name javax/swing/plaf/multi/MultiPanelUI
+header extends javax/swing/plaf/PanelUI flags 21
+
+class name javax/swing/plaf/multi/MultiPopupMenuUI
+header extends javax/swing/plaf/PopupMenuUI flags 21
+
+class name javax/swing/plaf/multi/MultiProgressBarUI
+header extends javax/swing/plaf/ProgressBarUI flags 21
+
+class name javax/swing/plaf/multi/MultiRootPaneUI
+header extends javax/swing/plaf/RootPaneUI flags 21
+
+class name javax/swing/plaf/multi/MultiScrollBarUI
+header extends javax/swing/plaf/ScrollBarUI flags 21
+
+class name javax/swing/plaf/multi/MultiScrollPaneUI
+header extends javax/swing/plaf/ScrollPaneUI flags 21
+
+class name javax/swing/plaf/multi/MultiSeparatorUI
+header extends javax/swing/plaf/SeparatorUI flags 21
+
+class name javax/swing/plaf/multi/MultiSliderUI
+header extends javax/swing/plaf/SliderUI flags 21
+
+class name javax/swing/plaf/multi/MultiSpinnerUI
+header extends javax/swing/plaf/SpinnerUI flags 21
+
+class name javax/swing/plaf/multi/MultiSplitPaneUI
+header extends javax/swing/plaf/SplitPaneUI flags 21
+
+class name javax/swing/plaf/multi/MultiTabbedPaneUI
+header extends javax/swing/plaf/TabbedPaneUI flags 21
+
+class name javax/swing/plaf/multi/MultiTableHeaderUI
+header extends javax/swing/plaf/TableHeaderUI flags 21
+
+class name javax/swing/plaf/multi/MultiTableUI
+header extends javax/swing/plaf/TableUI flags 21
+
+class name javax/swing/plaf/multi/MultiTextUI
+header extends javax/swing/plaf/TextUI flags 21
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+
+class name javax/swing/plaf/multi/MultiToolBarUI
+header extends javax/swing/plaf/ToolBarUI flags 21
+
+class name javax/swing/plaf/multi/MultiToolTipUI
+header extends javax/swing/plaf/ToolTipUI flags 21
+
+class name javax/swing/plaf/multi/MultiTreeUI
+header extends javax/swing/plaf/TreeUI flags 21
+
+class name javax/swing/plaf/multi/MultiViewportUI
+header extends javax/swing/plaf/ViewportUI flags 21
+
+class name javax/swing/plaf/nimbus/AbstractRegionPainter
+header extends java/lang/Object implements javax/swing/Painter nestMembers javax/swing/plaf/nimbus/AbstractRegionPainter$PaintContext,javax/swing/plaf/nimbus/AbstractRegionPainter$PaintContext$CacheMode flags 421 signature Ljava/lang/Object;Ljavax/swing/Painter<Ljavax/swing/JComponent;>;
+innerclass innerClass javax/swing/plaf/nimbus/AbstractRegionPainter$PaintContext outerClass javax/swing/plaf/nimbus/AbstractRegionPainter innerClassName PaintContext flags c
+innerclass innerClass javax/swing/plaf/nimbus/AbstractRegionPainter$PaintContext$CacheMode outerClass javax/swing/plaf/nimbus/AbstractRegionPainter$PaintContext innerClassName CacheMode flags 401c
+innerclass innerClass java/awt/RenderingHints$Key outerClass java/awt/RenderingHints innerClassName Key flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/plaf/nimbus/AbstractRegionPainter$PaintContext
+header extends java/lang/Object nestHost javax/swing/plaf/nimbus/AbstractRegionPainter flags 21
+innerclass innerClass javax/swing/plaf/nimbus/AbstractRegionPainter$PaintContext outerClass javax/swing/plaf/nimbus/AbstractRegionPainter innerClassName PaintContext flags c
+innerclass innerClass javax/swing/plaf/nimbus/AbstractRegionPainter$PaintContext$CacheMode outerClass javax/swing/plaf/nimbus/AbstractRegionPainter$PaintContext innerClassName CacheMode flags 401c
+
+class name javax/swing/plaf/nimbus/AbstractRegionPainter$PaintContext$CacheMode
+header extends java/lang/Enum nestHost javax/swing/plaf/nimbus/AbstractRegionPainter flags 4031 signature Ljava/lang/Enum<Ljavax/swing/plaf/nimbus/AbstractRegionPainter$PaintContext$CacheMode;>;
+innerclass innerClass javax/swing/plaf/nimbus/AbstractRegionPainter$PaintContext outerClass javax/swing/plaf/nimbus/AbstractRegionPainter innerClassName PaintContext flags c
+innerclass innerClass javax/swing/plaf/nimbus/AbstractRegionPainter$PaintContext$CacheMode outerClass javax/swing/plaf/nimbus/AbstractRegionPainter$PaintContext innerClassName CacheMode flags 401c
+
+class name javax/swing/plaf/synth/ColorType
+header extends java/lang/Object flags 21
+
+class name javax/swing/plaf/synth/Region
+header extends java/lang/Object flags 21
+
+class name javax/swing/plaf/synth/SynthButtonUI
+header extends javax/swing/plaf/basic/BasicButtonUI implements java/beans/PropertyChangeListener,javax/swing/plaf/synth/SynthUI flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/plaf/synth/SynthCheckBoxMenuItemUI
+header extends javax/swing/plaf/synth/SynthMenuItemUI flags 21
+
+class name javax/swing/plaf/synth/SynthCheckBoxUI
+header extends javax/swing/plaf/synth/SynthRadioButtonUI flags 21
+
+class name javax/swing/plaf/synth/SynthColorChooserUI
+header extends javax/swing/plaf/basic/BasicColorChooserUI implements java/beans/PropertyChangeListener,javax/swing/plaf/synth/SynthUI flags 21
+
+class name javax/swing/plaf/synth/SynthConstants
+header extends java/lang/Object flags 601
+
+class name javax/swing/plaf/synth/SynthContext
+header extends java/lang/Object flags 21
+
+class name javax/swing/plaf/synth/SynthEditorPaneUI
+header extends javax/swing/plaf/basic/BasicEditorPaneUI implements javax/swing/plaf/synth/SynthUI flags 21
+
+class name javax/swing/plaf/synth/SynthFormattedTextFieldUI
+header extends javax/swing/plaf/synth/SynthTextFieldUI flags 21
+
+class name javax/swing/plaf/synth/SynthIcon
+header extends java/lang/Object implements javax/swing/Icon flags 601
+
+class name javax/swing/plaf/synth/SynthLabelUI
+header extends javax/swing/plaf/basic/BasicLabelUI implements javax/swing/plaf/synth/SynthUI flags 21
+
+class name javax/swing/plaf/synth/SynthMenuBarUI
+header extends javax/swing/plaf/basic/BasicMenuBarUI implements java/beans/PropertyChangeListener,javax/swing/plaf/synth/SynthUI flags 21
+
+class name javax/swing/plaf/synth/SynthMenuItemUI
+header extends javax/swing/plaf/basic/BasicMenuItemUI implements java/beans/PropertyChangeListener,javax/swing/plaf/synth/SynthUI flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/plaf/synth/SynthMenuUI
+header extends javax/swing/plaf/basic/BasicMenuUI implements java/beans/PropertyChangeListener,javax/swing/plaf/synth/SynthUI flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/plaf/synth/SynthOptionPaneUI
+header extends javax/swing/plaf/basic/BasicOptionPaneUI implements java/beans/PropertyChangeListener,javax/swing/plaf/synth/SynthUI flags 21
+
+class name javax/swing/plaf/synth/SynthPanelUI
+header extends javax/swing/plaf/basic/BasicPanelUI implements java/beans/PropertyChangeListener,javax/swing/plaf/synth/SynthUI flags 21
+
+class name javax/swing/plaf/synth/SynthPasswordFieldUI
+header extends javax/swing/plaf/synth/SynthTextFieldUI flags 21
+
+class name javax/swing/plaf/synth/SynthPopupMenuUI
+header extends javax/swing/plaf/basic/BasicPopupMenuUI implements java/beans/PropertyChangeListener,javax/swing/plaf/synth/SynthUI flags 21
+
+class name javax/swing/plaf/synth/SynthProgressBarUI
+header extends javax/swing/plaf/basic/BasicProgressBarUI implements javax/swing/plaf/synth/SynthUI,java/beans/PropertyChangeListener flags 21
+
+class name javax/swing/plaf/synth/SynthRadioButtonMenuItemUI
+header extends javax/swing/plaf/synth/SynthMenuItemUI flags 21
+
+class name javax/swing/plaf/synth/SynthRadioButtonUI
+header extends javax/swing/plaf/synth/SynthToggleButtonUI flags 21
+
+class name javax/swing/plaf/synth/SynthRootPaneUI
+header extends javax/swing/plaf/basic/BasicRootPaneUI implements javax/swing/plaf/synth/SynthUI flags 21
+
+class name javax/swing/plaf/synth/SynthSeparatorUI
+header extends javax/swing/plaf/SeparatorUI implements java/beans/PropertyChangeListener,javax/swing/plaf/synth/SynthUI flags 21
+innerclass innerClass javax/swing/JToolBar$Separator outerClass javax/swing/JToolBar innerClassName Separator flags 9
+
+class name javax/swing/plaf/synth/SynthStyle
+header extends java/lang/Object flags 421
+innerclass innerClass javax/swing/UIDefaults$LazyInputMap outerClass javax/swing/UIDefaults innerClassName LazyInputMap flags 9
+innerclass innerClass javax/swing/UIDefaults$LazyValue outerClass javax/swing/UIDefaults innerClassName LazyValue flags 609
+
+class name javax/swing/plaf/synth/SynthStyleFactory
+header extends java/lang/Object flags 421
+
+class name javax/swing/plaf/synth/SynthTextPaneUI
+header extends javax/swing/plaf/synth/SynthEditorPaneUI flags 21
+
+class name javax/swing/plaf/synth/SynthToggleButtonUI
+header extends javax/swing/plaf/synth/SynthButtonUI flags 21
+
+class name javax/swing/plaf/synth/SynthToolTipUI
+header extends javax/swing/plaf/basic/BasicToolTipUI implements java/beans/PropertyChangeListener,javax/swing/plaf/synth/SynthUI flags 21
+
+class name javax/swing/plaf/synth/SynthUI
+header extends java/lang/Object implements javax/swing/plaf/synth/SynthConstants flags 601
+
+class name javax/swing/plaf/synth/SynthViewportUI
+header extends javax/swing/plaf/ViewportUI implements java/beans/PropertyChangeListener,javax/swing/plaf/synth/SynthUI flags 21
+
+class name javax/swing/table/AbstractTableModel
+header extends java/lang/Object implements javax/swing/table/TableModel,java/io/Serializable flags 421
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/table/DefaultTableCellRenderer
+header extends javax/swing/JLabel implements javax/swing/table/TableCellRenderer,java/io/Serializable nestMembers javax/swing/table/DefaultTableCellRenderer$UIResource flags 21
+innerclass innerClass javax/swing/table/DefaultTableCellRenderer$UIResource outerClass javax/swing/table/DefaultTableCellRenderer innerClassName UIResource flags 9
+innerclass innerClass javax/swing/JTable$DropLocation outerClass javax/swing/JTable innerClassName DropLocation flags 19
+
+class name javax/swing/table/DefaultTableCellRenderer$UIResource
+header extends javax/swing/table/DefaultTableCellRenderer implements javax/swing/plaf/UIResource nestHost javax/swing/table/DefaultTableCellRenderer flags 21
+innerclass innerClass javax/swing/table/DefaultTableCellRenderer$UIResource outerClass javax/swing/table/DefaultTableCellRenderer innerClassName UIResource flags 9
+
+class name javax/swing/table/DefaultTableColumnModel
+header extends java/lang/Object implements javax/swing/table/TableColumnModel,java/beans/PropertyChangeListener,javax/swing/event/ListSelectionListener,java/io/Serializable flags 21
+
+class name javax/swing/table/DefaultTableModel
+header extends javax/swing/table/AbstractTableModel implements java/io/Serializable flags 21
+
+class name javax/swing/table/JTableHeader
+header extends javax/swing/JComponent implements javax/swing/event/TableColumnModelListener,javax/accessibility/Accessible nestMembers javax/swing/table/JTableHeader$AccessibleJTableHeader,javax/swing/table/JTableHeader$AccessibleJTableHeader$AccessibleJTableHeaderEntry flags 21
+innerclass innerClass javax/swing/table/JTableHeader$AccessibleJTableHeader outerClass javax/swing/table/JTableHeader innerClassName AccessibleJTableHeader flags 4
+innerclass innerClass javax/swing/table/JTableHeader$AccessibleJTableHeader$AccessibleJTableHeaderEntry outerClass javax/swing/table/JTableHeader$AccessibleJTableHeader innerClassName AccessibleJTableHeaderEntry flags 4
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/table/JTableHeader$AccessibleJTableHeader
+header extends javax/swing/JComponent$AccessibleJComponent nestHost javax/swing/table/JTableHeader flags 21
+innerclass innerClass javax/swing/table/JTableHeader$AccessibleJTableHeader outerClass javax/swing/table/JTableHeader innerClassName AccessibleJTableHeader flags 4
+innerclass innerClass javax/swing/table/JTableHeader$AccessibleJTableHeader$AccessibleJTableHeaderEntry outerClass javax/swing/table/JTableHeader$AccessibleJTableHeader innerClassName AccessibleJTableHeaderEntry flags 4
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+
+class name javax/swing/table/JTableHeader$AccessibleJTableHeader$AccessibleJTableHeaderEntry
+header extends javax/accessibility/AccessibleContext implements javax/accessibility/Accessible,javax/accessibility/AccessibleComponent nestHost javax/swing/table/JTableHeader flags 21
+innerclass innerClass javax/swing/table/JTableHeader$AccessibleJTableHeader outerClass javax/swing/table/JTableHeader innerClassName AccessibleJTableHeader flags 4
+innerclass innerClass javax/swing/table/JTableHeader$AccessibleJTableHeader$AccessibleJTableHeaderEntry outerClass javax/swing/table/JTableHeader$AccessibleJTableHeader innerClassName AccessibleJTableHeaderEntry flags 4
+
+class name javax/swing/table/TableCellEditor
+header extends java/lang/Object implements javax/swing/CellEditor flags 601
+
+class name javax/swing/table/TableCellRenderer
+header extends java/lang/Object flags 601
+
+class name javax/swing/table/TableColumnModel
+header extends java/lang/Object flags 601
+
+class name javax/swing/table/TableModel
+header extends java/lang/Object flags 601
+
+class name javax/swing/table/TableStringConverter
+header extends java/lang/Object flags 421
+
+class name javax/swing/text/AbstractDocument
+header extends java/lang/Object implements javax/swing/text/Document,java/io/Serializable nestMembers javax/swing/text/AbstractDocument$ElementEdit,javax/swing/text/AbstractDocument$DefaultDocumentEvent,javax/swing/text/AbstractDocument$LeafElement,javax/swing/text/AbstractDocument$BranchElement,javax/swing/text/AbstractDocument$AbstractElement,javax/swing/text/AbstractDocument$AttributeContext,javax/swing/text/AbstractDocument$Content flags 421
+innerclass innerClass javax/swing/text/AbstractDocument$ElementEdit outerClass javax/swing/text/AbstractDocument innerClassName ElementEdit flags 9
+innerclass innerClass javax/swing/text/AbstractDocument$DefaultDocumentEvent outerClass javax/swing/text/AbstractDocument innerClassName DefaultDocumentEvent flags 1
+innerclass innerClass javax/swing/text/AbstractDocument$LeafElement outerClass javax/swing/text/AbstractDocument innerClassName LeafElement flags 1
+innerclass innerClass javax/swing/text/AbstractDocument$BranchElement outerClass javax/swing/text/AbstractDocument innerClassName BranchElement flags 1
+innerclass innerClass javax/swing/text/AbstractDocument$AbstractElement outerClass javax/swing/text/AbstractDocument innerClassName AbstractElement flags 401
+innerclass innerClass javax/swing/text/AbstractDocument$AttributeContext outerClass javax/swing/text/AbstractDocument innerClassName AttributeContext flags 609
+innerclass innerClass javax/swing/text/AbstractDocument$Content outerClass javax/swing/text/AbstractDocument innerClassName Content flags 609
+innerclass innerClass javax/swing/text/DocumentFilter$FilterBypass outerClass javax/swing/text/DocumentFilter innerClassName FilterBypass flags 409
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass javax/swing/event/DocumentEvent$EventType outerClass javax/swing/event/DocumentEvent innerClassName EventType flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/AbstractDocument$AbstractElement
+header extends java/lang/Object implements javax/swing/text/Element,javax/swing/text/MutableAttributeSet,java/io/Serializable,javax/swing/tree/TreeNode nestHost javax/swing/text/AbstractDocument flags 421
+innerclass innerClass javax/swing/text/AbstractDocument$AbstractElement outerClass javax/swing/text/AbstractDocument innerClassName AbstractElement flags 401
+innerclass innerClass javax/swing/text/AbstractDocument$Content outerClass javax/swing/text/AbstractDocument innerClassName Content flags 609
+innerclass innerClass javax/swing/text/AbstractDocument$AttributeContext outerClass javax/swing/text/AbstractDocument innerClassName AttributeContext flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/AbstractDocument$AttributeContext
+header extends java/lang/Object nestHost javax/swing/text/AbstractDocument flags 601
+innerclass innerClass javax/swing/text/AbstractDocument$AttributeContext outerClass javax/swing/text/AbstractDocument innerClassName AttributeContext flags 609
+
+class name javax/swing/text/AbstractDocument$BranchElement
+header extends javax/swing/text/AbstractDocument$AbstractElement nestHost javax/swing/text/AbstractDocument flags 21
+innerclass innerClass javax/swing/text/AbstractDocument$AbstractElement outerClass javax/swing/text/AbstractDocument innerClassName AbstractElement flags 401
+innerclass innerClass javax/swing/text/AbstractDocument$BranchElement outerClass javax/swing/text/AbstractDocument innerClassName BranchElement flags 1
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/AbstractDocument$Content
+header extends java/lang/Object nestHost javax/swing/text/AbstractDocument flags 601
+innerclass innerClass javax/swing/text/AbstractDocument$Content outerClass javax/swing/text/AbstractDocument innerClassName Content flags 609
+
+class name javax/swing/text/AbstractDocument$DefaultDocumentEvent
+header extends javax/swing/undo/CompoundEdit implements javax/swing/event/DocumentEvent nestHost javax/swing/text/AbstractDocument flags 21
+innerclass innerClass javax/swing/event/DocumentEvent$ElementChange outerClass javax/swing/event/DocumentEvent innerClassName ElementChange flags 609
+innerclass innerClass javax/swing/event/DocumentEvent$EventType outerClass javax/swing/event/DocumentEvent innerClassName EventType flags 19
+innerclass innerClass javax/swing/text/AbstractDocument$DefaultDocumentEvent outerClass javax/swing/text/AbstractDocument innerClassName DefaultDocumentEvent flags 1
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/AbstractDocument$ElementEdit
+header extends javax/swing/undo/AbstractUndoableEdit implements javax/swing/event/DocumentEvent$ElementChange nestHost javax/swing/text/AbstractDocument flags 21
+innerclass innerClass javax/swing/text/AbstractDocument$ElementEdit outerClass javax/swing/text/AbstractDocument innerClassName ElementEdit flags 9
+innerclass innerClass javax/swing/text/AbstractDocument$BranchElement outerClass javax/swing/text/AbstractDocument innerClassName BranchElement flags 1
+innerclass innerClass javax/swing/event/DocumentEvent$ElementChange outerClass javax/swing/event/DocumentEvent innerClassName ElementChange flags 609
+
+class name javax/swing/text/AbstractDocument$LeafElement
+header extends javax/swing/text/AbstractDocument$AbstractElement nestHost javax/swing/text/AbstractDocument flags 21
+innerclass innerClass javax/swing/text/AbstractDocument$LeafElement outerClass javax/swing/text/AbstractDocument innerClassName LeafElement flags 1
+innerclass innerClass javax/swing/text/AbstractDocument$AbstractElement outerClass javax/swing/text/AbstractDocument innerClassName AbstractElement flags 401
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/AbstractWriter
+header extends java/lang/Object flags 421
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/AsyncBoxView
+header extends javax/swing/text/View nestMembers javax/swing/text/AsyncBoxView$ChildState,javax/swing/text/AsyncBoxView$ChildLocator flags 21
+innerclass innerClass javax/swing/text/AsyncBoxView$ChildState outerClass javax/swing/text/AsyncBoxView innerClassName ChildState flags 1
+innerclass innerClass javax/swing/text/AsyncBoxView$ChildLocator outerClass javax/swing/text/AsyncBoxView innerClassName ChildLocator flags 1
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+innerclass innerClass javax/swing/event/DocumentEvent$ElementChange outerClass javax/swing/event/DocumentEvent innerClassName ElementChange flags 609
+
+class name javax/swing/text/AsyncBoxView$ChildLocator
+header extends java/lang/Object nestHost javax/swing/text/AsyncBoxView flags 21
+innerclass innerClass javax/swing/text/AsyncBoxView$ChildState outerClass javax/swing/text/AsyncBoxView innerClassName ChildState flags 1
+innerclass innerClass javax/swing/text/AsyncBoxView$ChildLocator outerClass javax/swing/text/AsyncBoxView innerClassName ChildLocator flags 1
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+
+class name javax/swing/text/AsyncBoxView$ChildState
+header extends java/lang/Object implements java/lang/Runnable nestHost javax/swing/text/AsyncBoxView flags 21
+innerclass innerClass javax/swing/text/AsyncBoxView$ChildState outerClass javax/swing/text/AsyncBoxView innerClassName ChildState flags 1
+innerclass innerClass javax/swing/text/AsyncBoxView$ChildLocator outerClass javax/swing/text/AsyncBoxView innerClassName ChildLocator flags 1
+
+class name javax/swing/text/AttributeSet
+header extends java/lang/Object nestMembers javax/swing/text/AttributeSet$ParagraphAttribute,javax/swing/text/AttributeSet$CharacterAttribute,javax/swing/text/AttributeSet$ColorAttribute,javax/swing/text/AttributeSet$FontAttribute flags 601
+innerclass innerClass javax/swing/text/AttributeSet$ParagraphAttribute outerClass javax/swing/text/AttributeSet innerClassName ParagraphAttribute flags 609
+innerclass innerClass javax/swing/text/AttributeSet$CharacterAttribute outerClass javax/swing/text/AttributeSet innerClassName CharacterAttribute flags 609
+innerclass innerClass javax/swing/text/AttributeSet$ColorAttribute outerClass javax/swing/text/AttributeSet innerClassName ColorAttribute flags 609
+innerclass innerClass javax/swing/text/AttributeSet$FontAttribute outerClass javax/swing/text/AttributeSet innerClassName FontAttribute flags 609
+
+class name javax/swing/text/AttributeSet$CharacterAttribute
+header extends java/lang/Object nestHost javax/swing/text/AttributeSet flags 601
+innerclass innerClass javax/swing/text/AttributeSet$CharacterAttribute outerClass javax/swing/text/AttributeSet innerClassName CharacterAttribute flags 609
+
+class name javax/swing/text/AttributeSet$ColorAttribute
+header extends java/lang/Object nestHost javax/swing/text/AttributeSet flags 601
+innerclass innerClass javax/swing/text/AttributeSet$ColorAttribute outerClass javax/swing/text/AttributeSet innerClassName ColorAttribute flags 609
+
+class name javax/swing/text/AttributeSet$FontAttribute
+header extends java/lang/Object nestHost javax/swing/text/AttributeSet flags 601
+innerclass innerClass javax/swing/text/AttributeSet$FontAttribute outerClass javax/swing/text/AttributeSet innerClassName FontAttribute flags 609
+
+class name javax/swing/text/AttributeSet$ParagraphAttribute
+header extends java/lang/Object nestHost javax/swing/text/AttributeSet flags 601
+innerclass innerClass javax/swing/text/AttributeSet$ParagraphAttribute outerClass javax/swing/text/AttributeSet innerClassName ParagraphAttribute flags 609
+
+class name javax/swing/text/BadLocationException
+header extends java/lang/Exception flags 21
+
+class name javax/swing/text/BoxView
+header extends javax/swing/text/CompositeView flags 21
+innerclass innerClass javax/swing/event/DocumentEvent$ElementChange outerClass javax/swing/event/DocumentEvent innerClassName ElementChange flags 609
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/Caret
+header extends java/lang/Object flags 601
+
+class name javax/swing/text/ChangedCharSetException
+header extends java/io/IOException flags 21
+
+class name javax/swing/text/CompositeView
+header extends javax/swing/text/View flags 421
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/DateFormatter
+header extends javax/swing/text/InternationalFormatter flags 21
+innerclass innerClass java/text/DateFormat$Field outerClass java/text/DateFormat innerClassName Field flags 9
+
+class name javax/swing/text/DefaultEditorKit
+header extends javax/swing/text/EditorKit nestMembers javax/swing/text/DefaultEditorKit$BeepAction,javax/swing/text/DefaultEditorKit$PasteAction,javax/swing/text/DefaultEditorKit$CopyAction,javax/swing/text/DefaultEditorKit$CutAction,javax/swing/text/DefaultEditorKit$InsertTabAction,javax/swing/text/DefaultEditorKit$InsertBreakAction,javax/swing/text/DefaultEditorKit$InsertContentAction,javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction flags 21
+innerclass innerClass javax/swing/text/DefaultEditorKit$BeepAction outerClass javax/swing/text/DefaultEditorKit innerClassName BeepAction flags 9
+innerclass innerClass javax/swing/text/DefaultEditorKit$PasteAction outerClass javax/swing/text/DefaultEditorKit innerClassName PasteAction flags 9
+innerclass innerClass javax/swing/text/DefaultEditorKit$CopyAction outerClass javax/swing/text/DefaultEditorKit innerClassName CopyAction flags 9
+innerclass innerClass javax/swing/text/DefaultEditorKit$CutAction outerClass javax/swing/text/DefaultEditorKit innerClassName CutAction flags 9
+innerclass innerClass javax/swing/text/DefaultEditorKit$InsertTabAction outerClass javax/swing/text/DefaultEditorKit innerClassName InsertTabAction flags 9
+innerclass innerClass javax/swing/text/DefaultEditorKit$InsertBreakAction outerClass javax/swing/text/DefaultEditorKit innerClassName InsertBreakAction flags 9
+innerclass innerClass javax/swing/text/DefaultEditorKit$InsertContentAction outerClass javax/swing/text/DefaultEditorKit innerClassName InsertContentAction flags 9
+innerclass innerClass javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction outerClass javax/swing/text/DefaultEditorKit innerClassName DefaultKeyTypedAction flags 9
+
+class name javax/swing/text/DefaultEditorKit$BeepAction
+header extends javax/swing/text/TextAction nestHost javax/swing/text/DefaultEditorKit flags 21
+innerclass innerClass javax/swing/text/DefaultEditorKit$BeepAction outerClass javax/swing/text/DefaultEditorKit innerClassName BeepAction flags 9
+
+class name javax/swing/text/DefaultEditorKit$CopyAction
+header extends javax/swing/text/TextAction nestHost javax/swing/text/DefaultEditorKit flags 21
+innerclass innerClass javax/swing/text/DefaultEditorKit$CopyAction outerClass javax/swing/text/DefaultEditorKit innerClassName CopyAction flags 9
+
+class name javax/swing/text/DefaultEditorKit$CutAction
+header extends javax/swing/text/TextAction nestHost javax/swing/text/DefaultEditorKit flags 21
+innerclass innerClass javax/swing/text/DefaultEditorKit$CutAction outerClass javax/swing/text/DefaultEditorKit innerClassName CutAction flags 9
+
+class name javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction
+header extends javax/swing/text/TextAction nestHost javax/swing/text/DefaultEditorKit flags 21
+innerclass innerClass javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction outerClass javax/swing/text/DefaultEditorKit innerClassName DefaultKeyTypedAction flags 9
+
+class name javax/swing/text/DefaultEditorKit$InsertBreakAction
+header extends javax/swing/text/TextAction nestHost javax/swing/text/DefaultEditorKit flags 21
+innerclass innerClass javax/swing/text/DefaultEditorKit$InsertBreakAction outerClass javax/swing/text/DefaultEditorKit innerClassName InsertBreakAction flags 9
+
+class name javax/swing/text/DefaultEditorKit$InsertContentAction
+header extends javax/swing/text/TextAction nestHost javax/swing/text/DefaultEditorKit flags 21
+innerclass innerClass javax/swing/text/DefaultEditorKit$InsertContentAction outerClass javax/swing/text/DefaultEditorKit innerClassName InsertContentAction flags 9
+
+class name javax/swing/text/DefaultEditorKit$InsertTabAction
+header extends javax/swing/text/TextAction nestHost javax/swing/text/DefaultEditorKit flags 21
+innerclass innerClass javax/swing/text/DefaultEditorKit$InsertTabAction outerClass javax/swing/text/DefaultEditorKit innerClassName InsertTabAction flags 9
+
+class name javax/swing/text/DefaultEditorKit$PasteAction
+header extends javax/swing/text/TextAction nestHost javax/swing/text/DefaultEditorKit flags 21
+innerclass innerClass javax/swing/text/DefaultEditorKit$PasteAction outerClass javax/swing/text/DefaultEditorKit innerClassName PasteAction flags 9
+
+class name javax/swing/text/DefaultFormatterFactory
+header extends javax/swing/JFormattedTextField$AbstractFormatterFactory implements java/io/Serializable flags 21
+innerclass innerClass javax/swing/JFormattedTextField$AbstractFormatter outerClass javax/swing/JFormattedTextField innerClassName AbstractFormatter flags 409
+innerclass innerClass javax/swing/JFormattedTextField$AbstractFormatterFactory outerClass javax/swing/JFormattedTextField innerClassName AbstractFormatterFactory flags 409
+
+class name javax/swing/text/DefaultHighlighter
+header extends javax/swing/text/LayeredHighlighter nestMembers javax/swing/text/DefaultHighlighter$DefaultHighlightPainter flags 21
+innerclass innerClass javax/swing/text/DefaultHighlighter$DefaultHighlightPainter outerClass javax/swing/text/DefaultHighlighter innerClassName DefaultHighlightPainter flags 9
+innerclass innerClass javax/swing/text/Highlighter$Highlight outerClass javax/swing/text/Highlighter innerClassName Highlight flags 609
+innerclass innerClass javax/swing/text/LayeredHighlighter$LayerPainter outerClass javax/swing/text/LayeredHighlighter innerClassName LayerPainter flags 409
+innerclass innerClass javax/swing/text/Highlighter$HighlightPainter outerClass javax/swing/text/Highlighter innerClassName HighlightPainter flags 609
+
+class name javax/swing/text/DefaultHighlighter$DefaultHighlightPainter
+header extends javax/swing/text/LayeredHighlighter$LayerPainter nestHost javax/swing/text/DefaultHighlighter flags 21
+innerclass innerClass javax/swing/text/DefaultHighlighter$DefaultHighlightPainter outerClass javax/swing/text/DefaultHighlighter innerClassName DefaultHighlightPainter flags 9
+innerclass innerClass javax/swing/text/LayeredHighlighter$LayerPainter outerClass javax/swing/text/LayeredHighlighter innerClassName LayerPainter flags 409
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+
+class name javax/swing/text/DefaultStyledDocument
+header extends javax/swing/text/AbstractDocument implements javax/swing/text/StyledDocument nestMembers javax/swing/text/DefaultStyledDocument$AttributeUndoableEdit,javax/swing/text/DefaultStyledDocument$ElementBuffer,javax/swing/text/DefaultStyledDocument$ElementSpec,javax/swing/text/DefaultStyledDocument$SectionElement flags 21
+innerclass innerClass javax/swing/text/DefaultStyledDocument$AttributeUndoableEdit outerClass javax/swing/text/DefaultStyledDocument innerClassName AttributeUndoableEdit flags 9
+innerclass innerClass javax/swing/text/DefaultStyledDocument$ElementBuffer outerClass javax/swing/text/DefaultStyledDocument innerClassName ElementBuffer flags 1
+innerclass innerClass javax/swing/text/DefaultStyledDocument$ElementSpec outerClass javax/swing/text/DefaultStyledDocument innerClassName ElementSpec flags 9
+innerclass innerClass javax/swing/text/DefaultStyledDocument$SectionElement outerClass javax/swing/text/DefaultStyledDocument innerClassName SectionElement flags 4
+innerclass innerClass javax/swing/text/AbstractDocument$Content outerClass javax/swing/text/AbstractDocument innerClassName Content flags 609
+innerclass innerClass javax/swing/text/AbstractDocument$DefaultDocumentEvent outerClass javax/swing/text/AbstractDocument innerClassName DefaultDocumentEvent flags 1
+innerclass innerClass javax/swing/text/AbstractDocument$BranchElement outerClass javax/swing/text/AbstractDocument innerClassName BranchElement flags 1
+innerclass innerClass javax/swing/text/AbstractDocument$AbstractElement outerClass javax/swing/text/AbstractDocument innerClassName AbstractElement flags 401
+innerclass innerClass javax/swing/text/AbstractDocument$LeafElement outerClass javax/swing/text/AbstractDocument innerClassName LeafElement flags 1
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass javax/swing/text/AbstractDocument$ElementEdit outerClass javax/swing/text/AbstractDocument innerClassName ElementEdit flags 9
+innerclass innerClass javax/swing/text/AbstractDocument$AttributeContext outerClass javax/swing/text/AbstractDocument innerClassName AttributeContext flags 609
+innerclass innerClass javax/swing/event/DocumentEvent$EventType outerClass javax/swing/event/DocumentEvent innerClassName EventType flags 19
+
+class name javax/swing/text/DefaultStyledDocument$AttributeUndoableEdit
+header extends javax/swing/undo/AbstractUndoableEdit nestHost javax/swing/text/DefaultStyledDocument flags 21
+innerclass innerClass javax/swing/text/DefaultStyledDocument$AttributeUndoableEdit outerClass javax/swing/text/DefaultStyledDocument innerClassName AttributeUndoableEdit flags 9
+
+class name javax/swing/text/DefaultStyledDocument$ElementBuffer
+header extends java/lang/Object implements java/io/Serializable nestHost javax/swing/text/DefaultStyledDocument flags 21
+innerclass innerClass javax/swing/text/DefaultStyledDocument$ElementBuffer outerClass javax/swing/text/DefaultStyledDocument innerClassName ElementBuffer flags 1
+innerclass innerClass javax/swing/text/DefaultStyledDocument$ElementSpec outerClass javax/swing/text/DefaultStyledDocument innerClassName ElementSpec flags 9
+innerclass innerClass javax/swing/text/AbstractDocument$DefaultDocumentEvent outerClass javax/swing/text/AbstractDocument innerClassName DefaultDocumentEvent flags 1
+innerclass innerClass javax/swing/text/AbstractDocument$ElementEdit outerClass javax/swing/text/AbstractDocument innerClassName ElementEdit flags 9
+innerclass innerClass javax/swing/text/DefaultStyledDocument$AttributeUndoableEdit outerClass javax/swing/text/DefaultStyledDocument innerClassName AttributeUndoableEdit flags 9
+innerclass innerClass javax/swing/text/AbstractDocument$BranchElement outerClass javax/swing/text/AbstractDocument innerClassName BranchElement flags 1
+
+class name javax/swing/text/DefaultStyledDocument$ElementSpec
+header extends java/lang/Object nestHost javax/swing/text/DefaultStyledDocument flags 21
+innerclass innerClass javax/swing/text/DefaultStyledDocument$ElementSpec outerClass javax/swing/text/DefaultStyledDocument innerClassName ElementSpec flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/DefaultStyledDocument$SectionElement
+header extends javax/swing/text/AbstractDocument$BranchElement nestHost javax/swing/text/DefaultStyledDocument flags 21
+innerclass innerClass javax/swing/text/DefaultStyledDocument$SectionElement outerClass javax/swing/text/DefaultStyledDocument innerClassName SectionElement flags 4
+innerclass innerClass javax/swing/text/AbstractDocument$BranchElement outerClass javax/swing/text/AbstractDocument innerClassName BranchElement flags 1
+
+class name javax/swing/text/DefaultTextUI
+header extends javax/swing/plaf/basic/BasicTextUI flags 421 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;
+
+class name javax/swing/text/Document
+header extends java/lang/Object flags 601
+
+class name javax/swing/text/DocumentFilter
+header extends java/lang/Object nestMembers javax/swing/text/DocumentFilter$FilterBypass flags 21
+innerclass innerClass javax/swing/text/DocumentFilter$FilterBypass outerClass javax/swing/text/DocumentFilter innerClassName FilterBypass flags 409
+
+class name javax/swing/text/DocumentFilter$FilterBypass
+header extends java/lang/Object nestHost javax/swing/text/DocumentFilter flags 421
+innerclass innerClass javax/swing/text/DocumentFilter$FilterBypass outerClass javax/swing/text/DocumentFilter innerClassName FilterBypass flags 409
+
+class name javax/swing/text/EditorKit
+header extends java/lang/Object implements java/lang/Cloneable,java/io/Serializable flags 421
+
+class name javax/swing/text/Element
+header extends java/lang/Object flags 601
+
+class name javax/swing/text/FieldView
+header extends javax/swing/text/PlainView flags 21
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+
+class name javax/swing/text/FlowView
+header extends javax/swing/text/BoxView nestMembers javax/swing/text/FlowView$FlowStrategy flags 421
+innerclass innerClass javax/swing/text/FlowView$FlowStrategy outerClass javax/swing/text/FlowView innerClassName FlowStrategy flags 9
+
+class name javax/swing/text/FlowView$FlowStrategy
+header extends java/lang/Object nestHost javax/swing/text/FlowView flags 21
+innerclass innerClass javax/swing/text/FlowView$FlowStrategy outerClass javax/swing/text/FlowView innerClassName FlowStrategy flags 9
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+
+class name javax/swing/text/GapVector
+header extends java/lang/Object implements java/io/Serializable flags 420
+
+class name javax/swing/text/GlyphView
+header extends javax/swing/text/View implements javax/swing/text/TabableView,java/lang/Cloneable nestMembers javax/swing/text/GlyphView$GlyphPainter flags 21
+innerclass innerClass javax/swing/text/GlyphView$GlyphPainter outerClass javax/swing/text/GlyphView innerClassName GlyphPainter flags 409
+innerclass innerClass javax/swing/text/Highlighter$Highlight outerClass javax/swing/text/Highlighter innerClassName Highlight flags 609
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/GlyphView$GlyphPainter
+header extends java/lang/Object nestHost javax/swing/text/GlyphView flags 421
+innerclass innerClass javax/swing/text/GlyphView$GlyphPainter outerClass javax/swing/text/GlyphView innerClassName GlyphPainter flags 409
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/Highlighter
+header extends java/lang/Object nestMembers javax/swing/text/Highlighter$Highlight,javax/swing/text/Highlighter$HighlightPainter flags 601
+innerclass innerClass javax/swing/text/Highlighter$Highlight outerClass javax/swing/text/Highlighter innerClassName Highlight flags 609
+innerclass innerClass javax/swing/text/Highlighter$HighlightPainter outerClass javax/swing/text/Highlighter innerClassName HighlightPainter flags 609
+
+class name javax/swing/text/Highlighter$Highlight
+header extends java/lang/Object nestHost javax/swing/text/Highlighter flags 601
+innerclass innerClass javax/swing/text/Highlighter$HighlightPainter outerClass javax/swing/text/Highlighter innerClassName HighlightPainter flags 609
+innerclass innerClass javax/swing/text/Highlighter$Highlight outerClass javax/swing/text/Highlighter innerClassName Highlight flags 609
+
+class name javax/swing/text/Highlighter$HighlightPainter
+header extends java/lang/Object nestHost javax/swing/text/Highlighter flags 601
+innerclass innerClass javax/swing/text/Highlighter$HighlightPainter outerClass javax/swing/text/Highlighter innerClassName HighlightPainter flags 609
+
+class name javax/swing/text/IconView
+header extends javax/swing/text/View flags 21
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/JTextComponent
+header extends javax/swing/JComponent implements javax/swing/Scrollable,javax/accessibility/Accessible nestMembers javax/swing/text/JTextComponent$DropLocation,javax/swing/text/JTextComponent$AccessibleJTextComponent,javax/swing/text/JTextComponent$KeyBinding flags 421 runtimeAnnotations @Ljava/beans/JavaBean;(defaultProperty="UI")@Ljavax/swing/SwingContainer;(value=Zfalse)
+innerclass innerClass javax/swing/text/JTextComponent$DropLocation outerClass javax/swing/text/JTextComponent innerClassName DropLocation flags 19
+innerclass innerClass javax/swing/text/JTextComponent$AccessibleJTextComponent outerClass javax/swing/text/JTextComponent innerClassName AccessibleJTextComponent flags 1
+innerclass innerClass javax/swing/text/JTextComponent$KeyBinding outerClass javax/swing/text/JTextComponent innerClassName KeyBinding flags 9
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+innerclass innerClass javax/swing/TransferHandler$DropLocation outerClass javax/swing/TransferHandler innerClassName DropLocation flags 9
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction outerClass javax/swing/text/DefaultEditorKit innerClassName DefaultKeyTypedAction flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/JTextComponent$AccessibleJTextComponent
+header extends javax/swing/JComponent$AccessibleJComponent implements javax/accessibility/AccessibleText,javax/swing/event/CaretListener,javax/swing/event/DocumentListener,javax/accessibility/AccessibleAction,javax/accessibility/AccessibleEditableText,javax/accessibility/AccessibleExtendedText nestHost javax/swing/text/JTextComponent flags 21
+innerclass innerClass javax/swing/text/JTextComponent$AccessibleJTextComponent outerClass javax/swing/text/JTextComponent innerClassName AccessibleJTextComponent flags 1
+innerclass innerClass javax/swing/JComponent$AccessibleJComponent outerClass javax/swing/JComponent innerClassName AccessibleJComponent flags 401
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+
+class name javax/swing/text/JTextComponent$DropLocation
+header extends javax/swing/TransferHandler$DropLocation nestHost javax/swing/text/JTextComponent flags 31
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+innerclass innerClass javax/swing/text/JTextComponent$DropLocation outerClass javax/swing/text/JTextComponent innerClassName DropLocation flags 19
+innerclass innerClass javax/swing/TransferHandler$DropLocation outerClass javax/swing/TransferHandler innerClassName DropLocation flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/JTextComponent$KeyBinding
+header extends java/lang/Object nestHost javax/swing/text/JTextComponent flags 21
+innerclass innerClass javax/swing/text/JTextComponent$KeyBinding outerClass javax/swing/text/JTextComponent innerClassName KeyBinding flags 9
+
+class name javax/swing/text/Keymap
+header extends java/lang/Object flags 601
+
+class name javax/swing/text/LabelView
+header extends javax/swing/text/GlyphView implements javax/swing/text/TabableView flags 21
+
+class name javax/swing/text/LayeredHighlighter
+header extends java/lang/Object implements javax/swing/text/Highlighter nestMembers javax/swing/text/LayeredHighlighter$LayerPainter flags 421
+innerclass innerClass javax/swing/text/LayeredHighlighter$LayerPainter outerClass javax/swing/text/LayeredHighlighter innerClassName LayerPainter flags 409
+
+class name javax/swing/text/LayeredHighlighter$LayerPainter
+header extends java/lang/Object implements javax/swing/text/Highlighter$HighlightPainter nestHost javax/swing/text/LayeredHighlighter flags 421
+innerclass innerClass javax/swing/text/LayeredHighlighter$LayerPainter outerClass javax/swing/text/LayeredHighlighter innerClassName LayerPainter flags 409
+innerclass innerClass javax/swing/text/Highlighter$HighlightPainter outerClass javax/swing/text/Highlighter innerClassName HighlightPainter flags 609
+
+class name javax/swing/text/LayoutQueue
+header extends java/lang/Object flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/MutableAttributeSet
+header extends java/lang/Object implements javax/swing/text/AttributeSet flags 601
+
+class name javax/swing/text/NavigationFilter
+header extends java/lang/Object nestMembers javax/swing/text/NavigationFilter$FilterBypass flags 21
+innerclass innerClass javax/swing/text/NavigationFilter$FilterBypass outerClass javax/swing/text/NavigationFilter innerClassName FilterBypass flags 409
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+
+class name javax/swing/text/NavigationFilter$FilterBypass
+header extends java/lang/Object nestHost javax/swing/text/NavigationFilter flags 421
+innerclass innerClass javax/swing/text/NavigationFilter$FilterBypass outerClass javax/swing/text/NavigationFilter innerClassName FilterBypass flags 409
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+
+class name javax/swing/text/NumberFormatter
+header extends javax/swing/text/InternationalFormatter flags 21
+innerclass innerClass java/text/NumberFormat$Field outerClass java/text/NumberFormat innerClassName Field flags 9
+innerclass innerClass javax/swing/text/DocumentFilter$FilterBypass outerClass javax/swing/text/DocumentFilter innerClassName FilterBypass flags 409
+innerclass innerClass java/text/AttributedCharacterIterator$Attribute outerClass java/text/AttributedCharacterIterator innerClassName Attribute flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/PasswordView
+header extends javax/swing/text/FieldView flags 21
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+
+class name javax/swing/text/PlainDocument
+header extends javax/swing/text/AbstractDocument flags 21
+innerclass innerClass javax/swing/text/AbstractDocument$AbstractElement outerClass javax/swing/text/AbstractDocument innerClassName AbstractElement flags 401
+innerclass innerClass javax/swing/text/AbstractDocument$Content outerClass javax/swing/text/AbstractDocument innerClassName Content flags 609
+innerclass innerClass javax/swing/text/AbstractDocument$BranchElement outerClass javax/swing/text/AbstractDocument innerClassName BranchElement flags 1
+innerclass innerClass javax/swing/text/AbstractDocument$DefaultDocumentEvent outerClass javax/swing/text/AbstractDocument innerClassName DefaultDocumentEvent flags 1
+innerclass innerClass javax/swing/text/AbstractDocument$ElementEdit outerClass javax/swing/text/AbstractDocument innerClassName ElementEdit flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/Position
+header extends java/lang/Object nestMembers javax/swing/text/Position$Bias flags 601
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+
+class name javax/swing/text/Position$Bias
+header extends java/lang/Object nestHost javax/swing/text/Position flags 31
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+
+class name javax/swing/text/Segment
+header extends java/lang/Object implements java/lang/Cloneable,java/text/CharacterIterator,java/lang/CharSequence flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/Style
+header extends java/lang/Object implements javax/swing/text/MutableAttributeSet flags 601
+
+class name javax/swing/text/StyleConstants
+header extends java/lang/Object nestMembers javax/swing/text/StyleConstants$FontConstants,javax/swing/text/StyleConstants$ColorConstants,javax/swing/text/StyleConstants$CharacterConstants,javax/swing/text/StyleConstants$ParagraphConstants flags 21
+innerclass innerClass javax/swing/text/StyleConstants$FontConstants outerClass javax/swing/text/StyleConstants innerClassName FontConstants flags 9
+innerclass innerClass javax/swing/text/StyleConstants$ColorConstants outerClass javax/swing/text/StyleConstants innerClassName ColorConstants flags 9
+innerclass innerClass javax/swing/text/StyleConstants$CharacterConstants outerClass javax/swing/text/StyleConstants innerClassName CharacterConstants flags 9
+innerclass innerClass javax/swing/text/StyleConstants$ParagraphConstants outerClass javax/swing/text/StyleConstants innerClassName ParagraphConstants flags 9
+
+class name javax/swing/text/StyleConstants$CharacterConstants
+header extends javax/swing/text/StyleConstants implements javax/swing/text/AttributeSet$CharacterAttribute nestHost javax/swing/text/StyleConstants flags 21
+innerclass innerClass javax/swing/text/StyleConstants$CharacterConstants outerClass javax/swing/text/StyleConstants innerClassName CharacterConstants flags 9
+innerclass innerClass javax/swing/text/AttributeSet$CharacterAttribute outerClass javax/swing/text/AttributeSet innerClassName CharacterAttribute flags 609
+
+class name javax/swing/text/StyleConstants$ColorConstants
+header extends javax/swing/text/StyleConstants implements javax/swing/text/AttributeSet$ColorAttribute,javax/swing/text/AttributeSet$CharacterAttribute nestHost javax/swing/text/StyleConstants flags 21
+innerclass innerClass javax/swing/text/StyleConstants$ColorConstants outerClass javax/swing/text/StyleConstants innerClassName ColorConstants flags 9
+innerclass innerClass javax/swing/text/AttributeSet$ColorAttribute outerClass javax/swing/text/AttributeSet innerClassName ColorAttribute flags 609
+innerclass innerClass javax/swing/text/AttributeSet$CharacterAttribute outerClass javax/swing/text/AttributeSet innerClassName CharacterAttribute flags 609
+
+class name javax/swing/text/StyleConstants$FontConstants
+header extends javax/swing/text/StyleConstants implements javax/swing/text/AttributeSet$FontAttribute,javax/swing/text/AttributeSet$CharacterAttribute nestHost javax/swing/text/StyleConstants flags 21
+innerclass innerClass javax/swing/text/StyleConstants$FontConstants outerClass javax/swing/text/StyleConstants innerClassName FontConstants flags 9
+innerclass innerClass javax/swing/text/AttributeSet$FontAttribute outerClass javax/swing/text/AttributeSet innerClassName FontAttribute flags 609
+innerclass innerClass javax/swing/text/AttributeSet$CharacterAttribute outerClass javax/swing/text/AttributeSet innerClassName CharacterAttribute flags 609
+
+class name javax/swing/text/StyleConstants$ParagraphConstants
+header extends javax/swing/text/StyleConstants implements javax/swing/text/AttributeSet$ParagraphAttribute nestHost javax/swing/text/StyleConstants flags 21
+innerclass innerClass javax/swing/text/StyleConstants$ParagraphConstants outerClass javax/swing/text/StyleConstants innerClassName ParagraphConstants flags 9
+innerclass innerClass javax/swing/text/AttributeSet$ParagraphAttribute outerClass javax/swing/text/AttributeSet innerClassName ParagraphAttribute flags 609
+
+class name javax/swing/text/StyleContext
+header extends java/lang/Object implements java/io/Serializable,javax/swing/text/AbstractDocument$AttributeContext nestMembers javax/swing/text/StyleContext$NamedStyle,javax/swing/text/StyleContext$SmallAttributeSet flags 21
+innerclass innerClass javax/swing/text/StyleContext$NamedStyle outerClass javax/swing/text/StyleContext innerClassName NamedStyle flags 1
+innerclass innerClass javax/swing/text/StyleContext$SmallAttributeSet outerClass javax/swing/text/StyleContext innerClassName SmallAttributeSet flags 1
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass javax/swing/text/AbstractDocument$AttributeContext outerClass javax/swing/text/AbstractDocument innerClassName AttributeContext flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/StyleContext$NamedStyle
+header extends java/lang/Object implements javax/swing/text/Style,java/io/Serializable nestHost javax/swing/text/StyleContext flags 21
+innerclass innerClass javax/swing/text/StyleContext$NamedStyle outerClass javax/swing/text/StyleContext innerClassName NamedStyle flags 1
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/StyleContext$SmallAttributeSet
+header extends java/lang/Object implements javax/swing/text/AttributeSet nestHost javax/swing/text/StyleContext flags 21
+innerclass innerClass javax/swing/text/StyleContext$SmallAttributeSet outerClass javax/swing/text/StyleContext innerClassName SmallAttributeSet flags 1
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/StyledDocument
+header extends java/lang/Object implements javax/swing/text/Document flags 601
+
+class name javax/swing/text/StyledEditorKit
+header extends javax/swing/text/DefaultEditorKit nestMembers javax/swing/text/StyledEditorKit$UnderlineAction,javax/swing/text/StyledEditorKit$ItalicAction,javax/swing/text/StyledEditorKit$BoldAction,javax/swing/text/StyledEditorKit$AlignmentAction,javax/swing/text/StyledEditorKit$ForegroundAction,javax/swing/text/StyledEditorKit$FontSizeAction,javax/swing/text/StyledEditorKit$FontFamilyAction,javax/swing/text/StyledEditorKit$StyledTextAction flags 21
+innerclass innerClass javax/swing/text/StyledEditorKit$UnderlineAction outerClass javax/swing/text/StyledEditorKit innerClassName UnderlineAction flags 9
+innerclass innerClass javax/swing/text/StyledEditorKit$ItalicAction outerClass javax/swing/text/StyledEditorKit innerClassName ItalicAction flags 9
+innerclass innerClass javax/swing/text/StyledEditorKit$BoldAction outerClass javax/swing/text/StyledEditorKit innerClassName BoldAction flags 9
+innerclass innerClass javax/swing/text/StyledEditorKit$AlignmentAction outerClass javax/swing/text/StyledEditorKit innerClassName AlignmentAction flags 9
+innerclass innerClass javax/swing/text/StyledEditorKit$ForegroundAction outerClass javax/swing/text/StyledEditorKit innerClassName ForegroundAction flags 9
+innerclass innerClass javax/swing/text/StyledEditorKit$FontSizeAction outerClass javax/swing/text/StyledEditorKit innerClassName FontSizeAction flags 9
+innerclass innerClass javax/swing/text/StyledEditorKit$FontFamilyAction outerClass javax/swing/text/StyledEditorKit innerClassName FontFamilyAction flags 9
+innerclass innerClass javax/swing/text/StyledEditorKit$StyledTextAction outerClass javax/swing/text/StyledEditorKit innerClassName StyledTextAction flags 409
+
+class name javax/swing/text/StyledEditorKit$AlignmentAction
+header extends javax/swing/text/StyledEditorKit$StyledTextAction nestHost javax/swing/text/StyledEditorKit flags 21
+innerclass innerClass javax/swing/text/StyledEditorKit$AlignmentAction outerClass javax/swing/text/StyledEditorKit innerClassName AlignmentAction flags 9
+innerclass innerClass javax/swing/text/StyledEditorKit$StyledTextAction outerClass javax/swing/text/StyledEditorKit innerClassName StyledTextAction flags 409
+
+class name javax/swing/text/StyledEditorKit$BoldAction
+header extends javax/swing/text/StyledEditorKit$StyledTextAction nestHost javax/swing/text/StyledEditorKit flags 21
+innerclass innerClass javax/swing/text/StyledEditorKit$BoldAction outerClass javax/swing/text/StyledEditorKit innerClassName BoldAction flags 9
+innerclass innerClass javax/swing/text/StyledEditorKit$StyledTextAction outerClass javax/swing/text/StyledEditorKit innerClassName StyledTextAction flags 409
+
+class name javax/swing/text/StyledEditorKit$FontFamilyAction
+header extends javax/swing/text/StyledEditorKit$StyledTextAction nestHost javax/swing/text/StyledEditorKit flags 21
+innerclass innerClass javax/swing/text/StyledEditorKit$FontFamilyAction outerClass javax/swing/text/StyledEditorKit innerClassName FontFamilyAction flags 9
+innerclass innerClass javax/swing/text/StyledEditorKit$StyledTextAction outerClass javax/swing/text/StyledEditorKit innerClassName StyledTextAction flags 409
+
+class name javax/swing/text/StyledEditorKit$FontSizeAction
+header extends javax/swing/text/StyledEditorKit$StyledTextAction nestHost javax/swing/text/StyledEditorKit flags 21
+innerclass innerClass javax/swing/text/StyledEditorKit$FontSizeAction outerClass javax/swing/text/StyledEditorKit innerClassName FontSizeAction flags 9
+innerclass innerClass javax/swing/text/StyledEditorKit$StyledTextAction outerClass javax/swing/text/StyledEditorKit innerClassName StyledTextAction flags 409
+
+class name javax/swing/text/StyledEditorKit$ForegroundAction
+header extends javax/swing/text/StyledEditorKit$StyledTextAction nestHost javax/swing/text/StyledEditorKit flags 21
+innerclass innerClass javax/swing/text/StyledEditorKit$ForegroundAction outerClass javax/swing/text/StyledEditorKit innerClassName ForegroundAction flags 9
+innerclass innerClass javax/swing/text/StyledEditorKit$StyledTextAction outerClass javax/swing/text/StyledEditorKit innerClassName StyledTextAction flags 409
+
+class name javax/swing/text/StyledEditorKit$ItalicAction
+header extends javax/swing/text/StyledEditorKit$StyledTextAction nestHost javax/swing/text/StyledEditorKit flags 21
+innerclass innerClass javax/swing/text/StyledEditorKit$ItalicAction outerClass javax/swing/text/StyledEditorKit innerClassName ItalicAction flags 9
+innerclass innerClass javax/swing/text/StyledEditorKit$StyledTextAction outerClass javax/swing/text/StyledEditorKit innerClassName StyledTextAction flags 409
+
+class name javax/swing/text/StyledEditorKit$StyledTextAction
+header extends javax/swing/text/TextAction nestHost javax/swing/text/StyledEditorKit flags 421
+innerclass innerClass javax/swing/text/StyledEditorKit$StyledTextAction outerClass javax/swing/text/StyledEditorKit innerClassName StyledTextAction flags 409
+
+class name javax/swing/text/StyledEditorKit$UnderlineAction
+header extends javax/swing/text/StyledEditorKit$StyledTextAction nestHost javax/swing/text/StyledEditorKit flags 21
+innerclass innerClass javax/swing/text/StyledEditorKit$UnderlineAction outerClass javax/swing/text/StyledEditorKit innerClassName UnderlineAction flags 9
+innerclass innerClass javax/swing/text/StyledEditorKit$StyledTextAction outerClass javax/swing/text/StyledEditorKit innerClassName StyledTextAction flags 409
+
+class name javax/swing/text/TabExpander
+header extends java/lang/Object flags 601
+
+class name javax/swing/text/TabSet
+header extends java/lang/Object implements java/io/Serializable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/TabStop
+header extends java/lang/Object implements java/io/Serializable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/TabableView
+header extends java/lang/Object flags 601
+
+class name javax/swing/text/TableView
+header extends javax/swing/text/BoxView nestMembers javax/swing/text/TableView$GridCell,javax/swing/text/TableView$TableCell,javax/swing/text/TableView$TableRow flags 421
+innerclass innerClass javax/swing/text/TableView$GridCell outerClass javax/swing/text/TableView innerClassName GridCell flags 608
+innerclass innerClass javax/swing/text/TableView$TableCell outerClass javax/swing/text/TableView innerClassName TableCell flags 1
+innerclass innerClass javax/swing/text/TableView$TableRow outerClass javax/swing/text/TableView innerClassName TableRow flags 1
+innerclass innerClass javax/swing/event/DocumentEvent$ElementChange outerClass javax/swing/event/DocumentEvent innerClassName ElementChange flags 609
+innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
+
+class name javax/swing/text/TableView$GridCell
+header extends java/lang/Object nestHost javax/swing/text/TableView flags 600
+innerclass innerClass javax/swing/text/TableView$GridCell outerClass javax/swing/text/TableView innerClassName GridCell flags 608
+
+class name javax/swing/text/TableView$TableCell
+header extends javax/swing/text/BoxView implements javax/swing/text/TableView$GridCell nestHost javax/swing/text/TableView flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;
+innerclass innerClass javax/swing/text/TableView$TableCell outerClass javax/swing/text/TableView innerClassName TableCell flags 1
+innerclass innerClass javax/swing/text/TableView$GridCell outerClass javax/swing/text/TableView innerClassName GridCell flags 608
+
+class name javax/swing/text/TableView$TableRow
+header extends javax/swing/text/BoxView nestHost javax/swing/text/TableView flags 21
+innerclass innerClass javax/swing/text/TableView$TableRow outerClass javax/swing/text/TableView innerClassName TableRow flags 1
+
+class name javax/swing/text/TextAction
+header extends javax/swing/AbstractAction flags 421
+
+class name javax/swing/text/Utilities
+header extends java/lang/Object flags 21
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+innerclass innerClass java/text/AttributedCharacterIterator$Attribute outerClass java/text/AttributedCharacterIterator innerClassName Attribute flags 9
+innerclass innerClass javax/swing/text/GlyphView$GlyphPainter outerClass javax/swing/text/GlyphView innerClassName GlyphPainter flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/View
+header extends java/lang/Object implements javax/swing/SwingConstants flags 421
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+innerclass innerClass javax/swing/event/DocumentEvent$ElementChange outerClass javax/swing/event/DocumentEvent innerClassName ElementChange flags 609
+innerclass innerClass javax/swing/event/DocumentEvent$EventType outerClass javax/swing/event/DocumentEvent innerClassName EventType flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/ViewFactory
+header extends java/lang/Object flags 601
+
+class name javax/swing/text/html/BlockView
+header extends javax/swing/text/BoxView flags 21
+innerclass innerClass javax/swing/text/html/StyleSheet$BoxPainter outerClass javax/swing/text/html/StyleSheet innerClassName BoxPainter flags 9
+innerclass innerClass javax/swing/text/html/CSS$Attribute outerClass javax/swing/text/html/CSS innerClassName Attribute flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/html/CSS
+header extends java/lang/Object implements java/io/Serializable nestMembers javax/swing/text/html/CSS$Attribute flags 21
+innerclass innerClass javax/swing/text/html/CSS$Attribute outerClass javax/swing/text/html/CSS innerClassName Attribute flags 19
+innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/html/CSS$Attribute
+header extends java/lang/Object nestHost javax/swing/text/html/CSS flags 31
+innerclass innerClass javax/swing/text/html/CSS$Attribute outerClass javax/swing/text/html/CSS innerClassName Attribute flags 19
+
+class name javax/swing/text/html/FormSubmitEvent
+header extends javax/swing/text/html/HTMLFrameHyperlinkEvent nestMembers javax/swing/text/html/FormSubmitEvent$MethodType flags 21
+innerclass innerClass javax/swing/text/html/FormSubmitEvent$MethodType outerClass javax/swing/text/html/FormSubmitEvent innerClassName MethodType flags 4019
+innerclass innerClass javax/swing/event/HyperlinkEvent$EventType outerClass javax/swing/event/HyperlinkEvent innerClassName EventType flags 19
+
+class name javax/swing/text/html/FormSubmitEvent$MethodType
+header extends java/lang/Enum nestHost javax/swing/text/html/FormSubmitEvent flags 4031 signature Ljava/lang/Enum<Ljavax/swing/text/html/FormSubmitEvent$MethodType;>;
+innerclass innerClass javax/swing/text/html/FormSubmitEvent$MethodType outerClass javax/swing/text/html/FormSubmitEvent innerClassName MethodType flags 4019
+
+class name javax/swing/text/html/FormView
+header extends javax/swing/text/ComponentView implements java/awt/event/ActionListener nestMembers javax/swing/text/html/FormView$MouseEventListener flags 21
+innerclass innerClass javax/swing/text/html/FormView$MouseEventListener outerClass javax/swing/text/html/FormView innerClassName MouseEventListener flags 4
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/html/FormSubmitEvent$MethodType outerClass javax/swing/text/html/FormSubmitEvent innerClassName MethodType flags 4019
+innerclass innerClass javax/swing/JToggleButton$ToggleButtonModel outerClass javax/swing/JToggleButton innerClassName ToggleButtonModel flags 9
+innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
+innerclass innerClass javax/swing/event/HyperlinkEvent$EventType outerClass javax/swing/event/HyperlinkEvent innerClassName EventType flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/html/FormView$MouseEventListener
+header extends java/awt/event/MouseAdapter nestHost javax/swing/text/html/FormView flags 21
+innerclass innerClass javax/swing/text/html/FormView$MouseEventListener outerClass javax/swing/text/html/FormView innerClassName MouseEventListener flags 4
+
+class name javax/swing/text/html/HTML
+header extends java/lang/Object nestMembers javax/swing/text/html/HTML$Attribute,javax/swing/text/html/HTML$UnknownTag,javax/swing/text/html/HTML$Tag flags 21
+innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
+innerclass innerClass javax/swing/text/html/HTML$UnknownTag outerClass javax/swing/text/html/HTML innerClassName UnknownTag flags 9
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+
+class name javax/swing/text/html/HTML$Attribute
+header extends java/lang/Object nestHost javax/swing/text/html/HTML flags 31
+innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
+
+class name javax/swing/text/html/HTML$Tag
+header extends java/lang/Object nestHost javax/swing/text/html/HTML flags 21
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+
+class name javax/swing/text/html/HTML$UnknownTag
+header extends javax/swing/text/html/HTML$Tag implements java/io/Serializable nestHost javax/swing/text/html/HTML flags 21
+innerclass innerClass javax/swing/text/html/HTML$UnknownTag outerClass javax/swing/text/html/HTML innerClassName UnknownTag flags 9
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+
+class name javax/swing/text/html/HTMLDocument
+header extends javax/swing/text/DefaultStyledDocument nestMembers javax/swing/text/html/HTMLDocument$BlockElement,javax/swing/text/html/HTMLDocument$RunElement,javax/swing/text/html/HTMLDocument$HTMLReader,javax/swing/text/html/HTMLDocument$HTMLReader$FormAction,javax/swing/text/html/HTMLDocument$HTMLReader$CharacterAction,javax/swing/text/html/HTMLDocument$HTMLReader$PreAction,javax/swing/text/html/HTMLDocument$HTMLReader$HiddenAction,javax/swing/text/html/HTMLDocument$HTMLReader$IsindexAction,javax/swing/text/html/HTMLDocument$HTMLReader$SpecialAction,javax/swing/text/html/HTMLDocument$HTMLReader$ParagraphAction,javax/swing/text/html/HTMLDocument$HTMLReader$BlockAction,javax/swing/text/html/HTMLDocument$HTMLReader$TagAction,javax/swing/text/html/HTMLDocument$Iterator flags 21
+innerclass innerClass javax/swing/text/html/HTMLDocument$BlockElement outerClass javax/swing/text/html/HTMLDocument innerClassName BlockElement flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$RunElement outerClass javax/swing/text/html/HTMLDocument innerClassName RunElement flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader outerClass javax/swing/text/html/HTMLDocument innerClassName HTMLReader flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$Iterator outerClass javax/swing/text/html/HTMLDocument innerClassName Iterator flags 409
+innerclass innerClass javax/swing/text/html/HTMLEditorKit$Parser outerClass javax/swing/text/html/HTMLEditorKit innerClassName Parser flags 409
+innerclass innerClass javax/swing/text/AbstractDocument$Content outerClass javax/swing/text/AbstractDocument innerClassName Content flags 609
+innerclass innerClass javax/swing/text/html/HTMLEditorKit$ParserCallback outerClass javax/swing/text/html/HTMLEditorKit innerClassName ParserCallback flags 9
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/DefaultStyledDocument$ElementSpec outerClass javax/swing/text/DefaultStyledDocument innerClassName ElementSpec flags 9
+innerclass innerClass javax/swing/text/AbstractDocument$DefaultDocumentEvent outerClass javax/swing/text/AbstractDocument innerClassName DefaultDocumentEvent flags 1
+innerclass innerClass javax/swing/text/AbstractDocument$AbstractElement outerClass javax/swing/text/AbstractDocument innerClassName AbstractElement flags 401
+innerclass innerClass javax/swing/text/DefaultStyledDocument$AttributeUndoableEdit outerClass javax/swing/text/DefaultStyledDocument innerClassName AttributeUndoableEdit flags 9
+innerclass innerClass javax/swing/text/AbstractDocument$ElementEdit outerClass javax/swing/text/AbstractDocument innerClassName ElementEdit flags 9
+innerclass innerClass javax/swing/text/AbstractDocument$BranchElement outerClass javax/swing/text/AbstractDocument innerClassName BranchElement flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$FormAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName FormAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$CharacterAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName CharacterAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$PreAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName PreAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$HiddenAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName HiddenAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$IsindexAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName IsindexAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$SpecialAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName SpecialAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$ParagraphAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName ParagraphAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$BlockAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName BlockAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$TagAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName TagAction flags 1
+innerclass innerClass javax/swing/event/DocumentEvent$EventType outerClass javax/swing/event/DocumentEvent innerClassName EventType flags 19
+innerclass innerClass javax/swing/text/AbstractDocument$AttributeContext outerClass javax/swing/text/AbstractDocument innerClassName AttributeContext flags 609
+innerclass innerClass javax/swing/text/html/CSS$Attribute outerClass javax/swing/text/html/CSS innerClassName Attribute flags 19
+innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/html/HTMLDocument$BlockElement
+header extends javax/swing/text/AbstractDocument$BranchElement nestHost javax/swing/text/html/HTMLDocument flags 21
+innerclass innerClass javax/swing/text/html/HTMLDocument$BlockElement outerClass javax/swing/text/html/HTMLDocument innerClassName BlockElement flags 1
+innerclass innerClass javax/swing/text/AbstractDocument$BranchElement outerClass javax/swing/text/AbstractDocument innerClassName BranchElement flags 1
+
+class name javax/swing/text/html/HTMLDocument$HTMLReader
+header extends javax/swing/text/html/HTMLEditorKit$ParserCallback nestHost javax/swing/text/html/HTMLDocument flags 21
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader outerClass javax/swing/text/html/HTMLDocument innerClassName HTMLReader flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$FormAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName FormAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$CharacterAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName CharacterAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$PreAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName PreAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$HiddenAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName HiddenAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$IsindexAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName IsindexAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$SpecialAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName SpecialAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$ParagraphAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName ParagraphAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$BlockAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName BlockAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$TagAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName TagAction flags 1
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/DefaultStyledDocument$ElementSpec outerClass javax/swing/text/DefaultStyledDocument innerClassName ElementSpec flags 9
+innerclass innerClass javax/swing/text/AbstractDocument$DefaultDocumentEvent outerClass javax/swing/text/AbstractDocument innerClassName DefaultDocumentEvent flags 1
+innerclass innerClass javax/swing/text/AbstractDocument$ElementEdit outerClass javax/swing/text/AbstractDocument innerClassName ElementEdit flags 9
+innerclass innerClass javax/swing/text/AbstractDocument$BranchElement outerClass javax/swing/text/AbstractDocument innerClassName BranchElement flags 1
+innerclass innerClass javax/swing/text/html/HTML$UnknownTag outerClass javax/swing/text/html/HTML innerClassName UnknownTag flags 9
+innerclass innerClass javax/swing/text/html/HTMLEditorKit$ParserCallback outerClass javax/swing/text/html/HTMLEditorKit innerClassName ParserCallback flags 9
+innerclass innerClass javax/swing/event/DocumentEvent$EventType outerClass javax/swing/event/DocumentEvent innerClassName EventType flags 19
+innerclass innerClass javax/swing/text/AbstractDocument$Content outerClass javax/swing/text/AbstractDocument innerClassName Content flags 609
+innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
+innerclass innerClass javax/swing/text/html/CSS$Attribute outerClass javax/swing/text/html/CSS innerClassName Attribute flags 19
+
+class name javax/swing/text/html/HTMLDocument$HTMLReader$BlockAction
+header extends javax/swing/text/html/HTMLDocument$HTMLReader$TagAction nestHost javax/swing/text/html/HTMLDocument flags 21
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader outerClass javax/swing/text/html/HTMLDocument innerClassName HTMLReader flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$BlockAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName BlockAction flags 1
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$TagAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName TagAction flags 1
+
+class name javax/swing/text/html/HTMLDocument$HTMLReader$CharacterAction
+header extends javax/swing/text/html/HTMLDocument$HTMLReader$TagAction nestHost javax/swing/text/html/HTMLDocument flags 21
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader outerClass javax/swing/text/html/HTMLDocument innerClassName HTMLReader flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$CharacterAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName CharacterAction flags 1
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$TagAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName TagAction flags 1
+innerclass innerClass javax/swing/text/html/HTMLEditorKit$ParserCallback outerClass javax/swing/text/html/HTMLEditorKit innerClassName ParserCallback flags 9
+
+class name javax/swing/text/html/HTMLDocument$HTMLReader$FormAction
+header extends javax/swing/text/html/HTMLDocument$HTMLReader$SpecialAction nestHost javax/swing/text/html/HTMLDocument flags 21
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader outerClass javax/swing/text/html/HTMLDocument innerClassName HTMLReader flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$FormAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName FormAction flags 1
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/JToggleButton$ToggleButtonModel outerClass javax/swing/JToggleButton innerClassName ToggleButtonModel flags 9
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$SpecialAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName SpecialAction flags 1
+innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
+
+class name javax/swing/text/html/HTMLDocument$HTMLReader$HiddenAction
+header extends javax/swing/text/html/HTMLDocument$HTMLReader$TagAction nestHost javax/swing/text/html/HTMLDocument flags 21
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader outerClass javax/swing/text/html/HTMLDocument innerClassName HTMLReader flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$HiddenAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName HiddenAction flags 1
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$TagAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName TagAction flags 1
+innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
+
+class name javax/swing/text/html/HTMLDocument$HTMLReader$IsindexAction
+header extends javax/swing/text/html/HTMLDocument$HTMLReader$TagAction nestHost javax/swing/text/html/HTMLDocument flags 21
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader outerClass javax/swing/text/html/HTMLDocument innerClassName HTMLReader flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$IsindexAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName IsindexAction flags 1
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$TagAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName TagAction flags 1
+
+class name javax/swing/text/html/HTMLDocument$HTMLReader$ParagraphAction
+header extends javax/swing/text/html/HTMLDocument$HTMLReader$BlockAction nestHost javax/swing/text/html/HTMLDocument flags 21
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader outerClass javax/swing/text/html/HTMLDocument innerClassName HTMLReader flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$ParagraphAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName ParagraphAction flags 1
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$BlockAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName BlockAction flags 1
+
+class name javax/swing/text/html/HTMLDocument$HTMLReader$PreAction
+header extends javax/swing/text/html/HTMLDocument$HTMLReader$BlockAction nestHost javax/swing/text/html/HTMLDocument flags 21
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader outerClass javax/swing/text/html/HTMLDocument innerClassName HTMLReader flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$PreAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName PreAction flags 1
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$BlockAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName BlockAction flags 1
+innerclass innerClass javax/swing/text/html/CSS$Attribute outerClass javax/swing/text/html/CSS innerClassName Attribute flags 19
+
+class name javax/swing/text/html/HTMLDocument$HTMLReader$SpecialAction
+header extends javax/swing/text/html/HTMLDocument$HTMLReader$TagAction nestHost javax/swing/text/html/HTMLDocument flags 21
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader outerClass javax/swing/text/html/HTMLDocument innerClassName HTMLReader flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$SpecialAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName SpecialAction flags 1
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$TagAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName TagAction flags 1
+
+class name javax/swing/text/html/HTMLDocument$HTMLReader$TagAction
+header extends java/lang/Object nestHost javax/swing/text/html/HTMLDocument flags 21
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader outerClass javax/swing/text/html/HTMLDocument innerClassName HTMLReader flags 1
+innerclass innerClass javax/swing/text/html/HTMLDocument$HTMLReader$TagAction outerClass javax/swing/text/html/HTMLDocument$HTMLReader innerClassName TagAction flags 1
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+
+class name javax/swing/text/html/HTMLDocument$Iterator
+header extends java/lang/Object nestHost javax/swing/text/html/HTMLDocument flags 421
+innerclass innerClass javax/swing/text/html/HTMLDocument$Iterator outerClass javax/swing/text/html/HTMLDocument innerClassName Iterator flags 409
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+
+class name javax/swing/text/html/HTMLDocument$RunElement
+header extends javax/swing/text/AbstractDocument$LeafElement nestHost javax/swing/text/html/HTMLDocument flags 21
+innerclass innerClass javax/swing/text/html/HTMLDocument$RunElement outerClass javax/swing/text/html/HTMLDocument innerClassName RunElement flags 1
+innerclass innerClass javax/swing/text/AbstractDocument$LeafElement outerClass javax/swing/text/AbstractDocument innerClassName LeafElement flags 1
+
+class name javax/swing/text/html/HTMLEditorKit
+header extends javax/swing/text/StyledEditorKit implements javax/accessibility/Accessible nestMembers javax/swing/text/html/HTMLEditorKit$InsertHTMLTextAction,javax/swing/text/html/HTMLEditorKit$HTMLTextAction,javax/swing/text/html/HTMLEditorKit$HTMLFactory,javax/swing/text/html/HTMLEditorKit$ParserCallback,javax/swing/text/html/HTMLEditorKit$Parser,javax/swing/text/html/HTMLEditorKit$LinkController flags 21
+innerclass innerClass javax/swing/text/html/HTMLEditorKit$InsertHTMLTextAction outerClass javax/swing/text/html/HTMLEditorKit innerClassName InsertHTMLTextAction flags 9
+innerclass innerClass javax/swing/text/html/HTMLEditorKit$HTMLTextAction outerClass javax/swing/text/html/HTMLEditorKit innerClassName HTMLTextAction flags 409
+innerclass innerClass javax/swing/text/html/HTMLEditorKit$HTMLFactory outerClass javax/swing/text/html/HTMLEditorKit innerClassName HTMLFactory flags 9
+innerclass innerClass javax/swing/text/html/HTMLEditorKit$ParserCallback outerClass javax/swing/text/html/HTMLEditorKit innerClassName ParserCallback flags 9
+innerclass innerClass javax/swing/text/html/HTMLEditorKit$Parser outerClass javax/swing/text/html/HTMLEditorKit innerClassName Parser flags 409
+innerclass innerClass javax/swing/text/html/HTMLEditorKit$LinkController outerClass javax/swing/text/html/HTMLEditorKit innerClassName LinkController flags 9
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
+innerclass innerClass javax/swing/text/html/HTML$UnknownTag outerClass javax/swing/text/html/HTML innerClassName UnknownTag flags 9
+
+class name javax/swing/text/html/HTMLEditorKit$HTMLFactory
+header extends java/lang/Object implements javax/swing/text/ViewFactory nestHost javax/swing/text/html/HTMLEditorKit flags 21
+innerclass innerClass javax/swing/text/html/HTMLEditorKit$HTMLFactory outerClass javax/swing/text/html/HTMLEditorKit innerClassName HTMLFactory flags 9
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/html/HTML$UnknownTag outerClass javax/swing/text/html/HTML innerClassName UnknownTag flags 9
+innerclass innerClass javax/swing/text/html/CSS$Attribute outerClass javax/swing/text/html/CSS innerClassName Attribute flags 19
+innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/html/HTMLEditorKit$HTMLTextAction
+header extends javax/swing/text/StyledEditorKit$StyledTextAction nestHost javax/swing/text/html/HTMLEditorKit flags 421
+innerclass innerClass javax/swing/text/html/HTMLEditorKit$HTMLTextAction outerClass javax/swing/text/html/HTMLEditorKit innerClassName HTMLTextAction flags 409
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/StyledEditorKit$StyledTextAction outerClass javax/swing/text/StyledEditorKit innerClassName StyledTextAction flags 409
+
+class name javax/swing/text/html/HTMLEditorKit$InsertHTMLTextAction
+header extends javax/swing/text/html/HTMLEditorKit$HTMLTextAction nestHost javax/swing/text/html/HTMLEditorKit flags 21
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/html/HTMLEditorKit$InsertHTMLTextAction outerClass javax/swing/text/html/HTMLEditorKit innerClassName InsertHTMLTextAction flags 9
+innerclass innerClass javax/swing/text/html/HTMLEditorKit$HTMLTextAction outerClass javax/swing/text/html/HTMLEditorKit innerClassName HTMLTextAction flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/html/HTMLEditorKit$LinkController
+header extends java/awt/event/MouseAdapter implements java/awt/event/MouseMotionListener,java/io/Serializable nestHost javax/swing/text/html/HTMLEditorKit flags 21
+innerclass innerClass javax/swing/text/Position$Bias outerClass javax/swing/text/Position innerClassName Bias flags 19
+innerclass innerClass javax/swing/text/html/HTMLEditorKit$LinkController outerClass javax/swing/text/html/HTMLEditorKit innerClassName LinkController flags 9
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
+innerclass innerClass javax/swing/event/HyperlinkEvent$EventType outerClass javax/swing/event/HyperlinkEvent innerClassName EventType flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/html/HTMLEditorKit$Parser
+header extends java/lang/Object nestHost javax/swing/text/html/HTMLEditorKit flags 421
+innerclass innerClass javax/swing/text/html/HTMLEditorKit$Parser outerClass javax/swing/text/html/HTMLEditorKit innerClassName Parser flags 409
+innerclass innerClass javax/swing/text/html/HTMLEditorKit$ParserCallback outerClass javax/swing/text/html/HTMLEditorKit innerClassName ParserCallback flags 9
+
+class name javax/swing/text/html/HTMLEditorKit$ParserCallback
+header extends java/lang/Object nestHost javax/swing/text/html/HTMLEditorKit flags 21
+innerclass innerClass javax/swing/text/html/HTMLEditorKit$ParserCallback outerClass javax/swing/text/html/HTMLEditorKit innerClassName ParserCallback flags 9
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+
+class name javax/swing/text/html/HTMLFrameHyperlinkEvent
+header extends javax/swing/event/HyperlinkEvent flags 21
+innerclass innerClass javax/swing/event/HyperlinkEvent$EventType outerClass javax/swing/event/HyperlinkEvent innerClassName EventType flags 19
+
+class name javax/swing/text/html/HTMLWriter
+header extends javax/swing/text/AbstractWriter flags 21
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/html/CSS$Attribute outerClass javax/swing/text/html/CSS innerClassName Attribute flags 19
+innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/html/InlineView
+header extends javax/swing/text/LabelView flags 21
+innerclass innerClass javax/swing/text/html/CSS$Attribute outerClass javax/swing/text/html/CSS innerClassName Attribute flags 19
+
+class name javax/swing/text/html/ListView
+header extends javax/swing/text/html/BlockView flags 21
+innerclass innerClass javax/swing/text/html/StyleSheet$ListPainter outerClass javax/swing/text/html/StyleSheet innerClassName ListPainter flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/html/MinimalHTMLWriter
+header extends javax/swing/text/AbstractWriter flags 21
+innerclass innerClass javax/swing/text/StyleConstants$ParagraphConstants outerClass javax/swing/text/StyleConstants innerClassName ParagraphConstants flags 9
+innerclass innerClass javax/swing/text/StyleConstants$CharacterConstants outerClass javax/swing/text/StyleConstants innerClassName CharacterConstants flags 9
+innerclass innerClass javax/swing/text/StyleConstants$FontConstants outerClass javax/swing/text/StyleConstants innerClassName FontConstants flags 9
+innerclass innerClass javax/swing/text/StyleConstants$ColorConstants outerClass javax/swing/text/StyleConstants innerClassName ColorConstants flags 9
+innerclass innerClass javax/swing/text/AbstractDocument$BranchElement outerClass javax/swing/text/AbstractDocument innerClassName BranchElement flags 1
+innerclass innerClass javax/swing/text/StyleContext$NamedStyle outerClass javax/swing/text/StyleContext innerClassName NamedStyle flags 1
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/html/ObjectView
+header extends javax/swing/text/ComponentView flags 21
+innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/html/Option
+header extends java/lang/Object implements java/io/Serializable flags 21
+innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
+
+class name javax/swing/text/html/ParagraphView
+header extends javax/swing/text/ParagraphView flags 21
+innerclass innerClass javax/swing/text/html/StyleSheet$BoxPainter outerClass javax/swing/text/html/StyleSheet innerClassName BoxPainter flags 9
+innerclass innerClass javax/swing/text/html/CSS$Attribute outerClass javax/swing/text/html/CSS innerClassName Attribute flags 19
+
+class name javax/swing/text/html/StyleSheet
+header extends javax/swing/text/StyleContext nestMembers javax/swing/text/html/StyleSheet$ListPainter,javax/swing/text/html/StyleSheet$BoxPainter flags 21
+innerclass innerClass javax/swing/text/html/StyleSheet$ListPainter outerClass javax/swing/text/html/StyleSheet innerClassName ListPainter flags 9
+innerclass innerClass javax/swing/text/html/StyleSheet$BoxPainter outerClass javax/swing/text/html/StyleSheet innerClassName BoxPainter flags 9
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/html/CSS$Attribute outerClass javax/swing/text/html/CSS innerClassName Attribute flags 19
+innerclass innerClass javax/swing/text/StyleContext$SmallAttributeSet outerClass javax/swing/text/StyleContext innerClassName SmallAttributeSet flags 1
+innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/html/StyleSheet$BoxPainter
+header extends java/lang/Object implements java/io/Serializable nestHost javax/swing/text/html/StyleSheet flags 21
+innerclass innerClass javax/swing/text/html/StyleSheet$BoxPainter outerClass javax/swing/text/html/StyleSheet innerClassName BoxPainter flags 9
+innerclass innerClass javax/swing/text/html/CSS$Attribute outerClass javax/swing/text/html/CSS innerClassName Attribute flags 19
+innerclass innerClass javax/swing/text/html/HTMLEditorKit$HTMLFactory outerClass javax/swing/text/html/HTMLEditorKit innerClassName HTMLFactory flags 9
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/html/StyleSheet$ListPainter
+header extends java/lang/Object implements java/io/Serializable nestHost javax/swing/text/html/StyleSheet flags 21
+innerclass innerClass javax/swing/text/html/StyleSheet$ListPainter outerClass javax/swing/text/html/StyleSheet innerClassName ListPainter flags 9
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/html/CSS$Attribute outerClass javax/swing/text/html/CSS innerClassName Attribute flags 19
+innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/html/parser/AttributeList
+header extends java/lang/Object implements javax/swing/text/html/parser/DTDConstants,java/io/Serializable flags 31
+
+class name javax/swing/text/html/parser/ContentModel
+header extends java/lang/Object implements java/io/Serializable flags 31
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/html/parser/DTD
+header extends java/lang/Object implements javax/swing/text/html/parser/DTDConstants flags 21
+
+class name javax/swing/text/html/parser/DTDConstants
+header extends java/lang/Object flags 601
+
+class name javax/swing/text/html/parser/DocumentParser
+header extends javax/swing/text/html/parser/Parser flags 21
+innerclass innerClass javax/swing/text/html/HTMLEditorKit$ParserCallback outerClass javax/swing/text/html/HTMLEditorKit innerClassName ParserCallback flags 9
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
+
+class name javax/swing/text/html/parser/Element
+header extends java/lang/Object implements javax/swing/text/html/parser/DTDConstants,java/io/Serializable flags 31
+
+class name javax/swing/text/html/parser/Entity
+header extends java/lang/Object implements javax/swing/text/html/parser/DTDConstants flags 31
+
+class name javax/swing/text/html/parser/Parser
+header extends java/lang/Object implements javax/swing/text/html/parser/DTDConstants flags 21
+innerclass innerClass javax/swing/text/html/HTML$Attribute outerClass javax/swing/text/html/HTML innerClassName Attribute flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/text/html/parser/TagElement
+header extends java/lang/Object flags 21
+innerclass innerClass javax/swing/text/html/HTML$Tag outerClass javax/swing/text/html/HTML innerClassName Tag flags 9
+innerclass innerClass javax/swing/text/html/HTML$UnknownTag outerClass javax/swing/text/html/HTML innerClassName UnknownTag flags 9
+
+class name javax/swing/text/rtf/RTFEditorKit
+header extends javax/swing/text/StyledEditorKit flags 21
+
+class name javax/swing/tree/AbstractLayoutCache
+header extends java/lang/Object implements javax/swing/tree/RowMapper nestMembers javax/swing/tree/AbstractLayoutCache$NodeDimensions flags 421
+innerclass innerClass javax/swing/tree/AbstractLayoutCache$NodeDimensions outerClass javax/swing/tree/AbstractLayoutCache innerClassName NodeDimensions flags 409
+
+class name javax/swing/tree/AbstractLayoutCache$NodeDimensions
+header extends java/lang/Object nestHost javax/swing/tree/AbstractLayoutCache flags 421
+innerclass innerClass javax/swing/tree/AbstractLayoutCache$NodeDimensions outerClass javax/swing/tree/AbstractLayoutCache innerClassName NodeDimensions flags 409
+
+class name javax/swing/tree/DefaultTreeCellEditor
+header extends java/lang/Object implements java/awt/event/ActionListener,javax/swing/tree/TreeCellEditor,javax/swing/event/TreeSelectionListener nestMembers javax/swing/tree/DefaultTreeCellEditor$EditorContainer,javax/swing/tree/DefaultTreeCellEditor$DefaultTextField flags 21
+innerclass innerClass javax/swing/tree/DefaultTreeCellEditor$EditorContainer outerClass javax/swing/tree/DefaultTreeCellEditor innerClassName EditorContainer flags 1
+innerclass innerClass javax/swing/tree/DefaultTreeCellEditor$DefaultTextField outerClass javax/swing/tree/DefaultTreeCellEditor innerClassName DefaultTextField flags 1
+
+class name javax/swing/tree/DefaultTreeCellEditor$DefaultTextField
+header extends javax/swing/JTextField nestHost javax/swing/tree/DefaultTreeCellEditor flags 21
+innerclass innerClass javax/swing/tree/DefaultTreeCellEditor$DefaultTextField outerClass javax/swing/tree/DefaultTreeCellEditor innerClassName DefaultTextField flags 1
+
+class name javax/swing/tree/DefaultTreeCellEditor$EditorContainer
+header extends java/awt/Container nestHost javax/swing/tree/DefaultTreeCellEditor flags 21
+innerclass innerClass javax/swing/tree/DefaultTreeCellEditor$EditorContainer outerClass javax/swing/tree/DefaultTreeCellEditor innerClassName EditorContainer flags 1
+
+class name javax/swing/tree/DefaultTreeCellRenderer
+header extends javax/swing/JLabel implements javax/swing/tree/TreeCellRenderer flags 21
+innerclass innerClass javax/swing/JTree$DropLocation outerClass javax/swing/JTree innerClassName DropLocation flags 19
+
+class name javax/swing/tree/DefaultTreeModel
+header extends java/lang/Object implements java/io/Serializable,javax/swing/tree/TreeModel flags 21
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+
+class name javax/swing/tree/DefaultTreeSelectionModel
+header extends java/lang/Object implements java/lang/Cloneable,java/io/Serializable,javax/swing/tree/TreeSelectionModel flags 21
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/tree/ExpandVetoException
+header extends java/lang/Exception flags 21
+
+class name javax/swing/tree/MutableTreeNode
+header extends java/lang/Object implements javax/swing/tree/TreeNode flags 601
+
+class name javax/swing/tree/RowMapper
+header extends java/lang/Object flags 601
+
+class name javax/swing/tree/TreeCellEditor
+header extends java/lang/Object implements javax/swing/CellEditor flags 601
+
+class name javax/swing/tree/TreeCellRenderer
+header extends java/lang/Object flags 601
+
+class name javax/swing/tree/TreeModel
+header extends java/lang/Object flags 601
+
+class name javax/swing/tree/TreeNode
+header extends java/lang/Object flags 601
+
+class name javax/swing/tree/TreePath
+header extends java/lang/Object implements java/io/Serializable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/tree/TreeSelectionModel
+header extends java/lang/Object flags 601
+
+class name javax/swing/undo/AbstractUndoableEdit
+header extends java/lang/Object implements javax/swing/undo/UndoableEdit,java/io/Serializable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/undo/CannotRedoException
+header extends java/lang/RuntimeException flags 21
+
+class name javax/swing/undo/CannotUndoException
+header extends java/lang/RuntimeException flags 21
+
+class name javax/swing/undo/CompoundEdit
+header extends javax/swing/undo/AbstractUndoableEdit flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/swing/undo/StateEdit
+header extends javax/swing/undo/AbstractUndoableEdit flags 21
+
+class name javax/swing/undo/StateEditable
+header extends java/lang/Object flags 601
+
+class name javax/swing/undo/UndoableEdit
+header extends java/lang/Object flags 601
+
+class name javax/swing/undo/UndoableEditSupport
+header extends java/lang/Object flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/java.instrument-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,49 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name java.instrument
+header exports java/lang/instrument requires name\u0020;java.base\u0020;flags\u0020;8000 target linux-amd64 flags 8000
+
+class name java/lang/instrument/ClassDefinition
+header extends java/lang/Object flags 31
+
+class name java/lang/instrument/ClassFileTransformer
+header extends java/lang/Object flags 601
+
+class name java/lang/instrument/IllegalClassFormatException
+header extends java/lang/Exception flags 21
+
+class name java/lang/instrument/Instrumentation
+header extends java/lang/Object flags 601
+
+class name java/lang/instrument/UnmodifiableClassException
+header extends java/lang/Exception flags 21
+
+class name java/lang/instrument/UnmodifiableModuleException
+header extends java/lang/RuntimeException flags 21
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/java.logging-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,67 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name java.logging
+header exports java/util/logging requires name\u0020;java.base\u0020;flags\u0020;8000 provides interface\u0020;jdk/internal/logger/DefaultLoggerFinder\u0020;impls\u0020;sun/util/logging/internal/LoggingProviderImpl target linux-amd64 flags 8000
+
+class name java/util/logging/ConsoleHandler
+header extends java/util/logging/StreamHandler flags 21
+
+class name java/util/logging/ErrorManager
+header extends java/lang/Object flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/logging/Filter
+header extends java/lang/Object flags 601 runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/util/logging/Formatter
+header extends java/lang/Object flags 421
+
+class name java/util/logging/LoggingMXBean
+header extends java/lang/Object flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="9")
+
+class name java/util/logging/LoggingPermission
+header extends java/security/BasicPermission flags 31
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/logging/MemoryHandler
+header extends java/util/logging/Handler flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/logging/SimpleFormatter
+header extends java/util/logging/Formatter flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/logging/SocketHandler
+header extends java/util/logging/StreamHandler flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/util/logging/XMLFormatter
+header extends java/util/logging/Formatter flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/java.management-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,696 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name java.management
+header exports java/lang/management,javax/management,javax/management/loading,javax/management/modelmbean,javax/management/monitor,javax/management/openmbean,javax/management/relation,javax/management/remote,javax/management/timer requires name\u0020;java.base\u0020;flags\u0020;8000 uses javax/management/remote/JMXConnectorProvider,javax/management/remote/JMXConnectorServerProvider,sun/management/spi/PlatformMBeanProvider provides interface\u0020;javax/security/auth/spi/LoginModule\u0020;impls\u0020;com/sun/jmx/remote/security/FileLoginModule target linux-amd64 flags 8000
+
+class name java/lang/management/BufferPoolMXBean
+header extends java/lang/Object implements java/lang/management/PlatformManagedObject flags 601
+
+class name java/lang/management/ClassLoadingMXBean
+header extends java/lang/Object implements java/lang/management/PlatformManagedObject flags 601
+
+class name java/lang/management/CompilationMXBean
+header extends java/lang/Object implements java/lang/management/PlatformManagedObject flags 601
+
+class name java/lang/management/GarbageCollectorMXBean
+header extends java/lang/Object implements java/lang/management/MemoryManagerMXBean flags 601
+
+class name java/lang/management/LockInfo
+header extends java/lang/Object flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/lang/management/ManagementPermission
+header extends java/security/BasicPermission flags 31
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/lang/management/MemoryMXBean
+header extends java/lang/Object implements java/lang/management/PlatformManagedObject flags 601
+
+class name java/lang/management/MemoryManagerMXBean
+header extends java/lang/Object implements java/lang/management/PlatformManagedObject flags 601
+
+class name java/lang/management/MemoryNotificationInfo
+header extends java/lang/Object flags 21
+
+class name java/lang/management/MemoryPoolMXBean
+header extends java/lang/Object implements java/lang/management/PlatformManagedObject flags 601
+
+class name java/lang/management/MemoryType
+header extends java/lang/Enum flags 4031 signature Ljava/lang/Enum<Ljava/lang/management/MemoryType;>;
+
+class name java/lang/management/MemoryUsage
+header extends java/lang/Object flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/lang/management/MonitorInfo
+header extends java/lang/management/LockInfo flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/lang/management/OperatingSystemMXBean
+header extends java/lang/Object implements java/lang/management/PlatformManagedObject flags 601
+
+class name java/lang/management/PlatformLoggingMXBean
+header extends java/lang/Object implements java/lang/management/PlatformManagedObject flags 601
+
+class name java/lang/management/PlatformManagedObject
+header extends java/lang/Object flags 601
+
+class name java/lang/management/RuntimeMXBean
+header extends java/lang/Object implements java/lang/management/PlatformManagedObject flags 601
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/lang/management/ThreadMXBean
+header extends java/lang/Object implements java/lang/management/PlatformManagedObject flags 601
+
+class name javax/management/Attribute
+header extends java/lang/Object implements java/io/Serializable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/AttributeChangeNotification
+header extends javax/management/Notification flags 21
+
+class name javax/management/AttributeChangeNotificationFilter
+header extends java/lang/Object implements javax/management/NotificationFilter flags 21
+
+class name javax/management/AttributeList
+header extends java/util/ArrayList flags 21 signature Ljava/util/ArrayList<Ljava/lang/Object;>;
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/AttributeNotFoundException
+header extends javax/management/OperationsException flags 21
+
+class name javax/management/AttributeValueExp
+header extends java/lang/Object implements javax/management/ValueExp flags 21
+
+class name javax/management/BadAttributeValueExpException
+header extends java/lang/Exception flags 21
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/BadBinaryOpValueExpException
+header extends java/lang/Exception flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/BadStringOperationException
+header extends java/lang/Exception flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/ConstructorParameters
+header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljava/lang/annotation/Documented;@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;CONSTRUCTOR;})@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)
+
+class name javax/management/DefaultLoaderRepository
+header extends java/lang/Object flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;
+
+class name javax/management/Descriptor
+header extends java/lang/Object implements java/io/Serializable,java/lang/Cloneable flags 601
+
+class name javax/management/DescriptorAccess
+header extends java/lang/Object implements javax/management/DescriptorRead flags 601
+
+class name javax/management/DescriptorKey
+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;)@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;METHOD;})
+
+class name javax/management/DescriptorRead
+header extends java/lang/Object flags 601
+
+class name javax/management/DynamicMBean
+header extends java/lang/Object flags 601
+
+class name javax/management/ImmutableDescriptor
+header extends java/lang/Object implements javax/management/Descriptor flags 21
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/InstanceAlreadyExistsException
+header extends javax/management/OperationsException flags 21
+
+class name javax/management/InstanceNotFoundException
+header extends javax/management/OperationsException flags 21
+
+class name javax/management/IntrospectionException
+header extends javax/management/OperationsException flags 21
+
+class name javax/management/InvalidApplicationException
+header extends java/lang/Exception flags 21
+
+class name javax/management/InvalidAttributeValueException
+header extends javax/management/OperationsException flags 21
+
+class name javax/management/JMException
+header extends java/lang/Exception flags 21
+
+class name javax/management/JMRuntimeException
+header extends java/lang/RuntimeException flags 21
+
+class name javax/management/JMX
+header extends java/lang/Object flags 21
+
+class name javax/management/ListenerNotFoundException
+header extends javax/management/OperationsException flags 21
+
+class name javax/management/MBeanAttributeInfo
+header extends javax/management/MBeanFeatureInfo implements java/lang/Cloneable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/MBeanConstructorInfo
+header extends javax/management/MBeanFeatureInfo implements java/lang/Cloneable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/MBeanException
+header extends javax/management/JMException flags 21
+
+class name javax/management/MBeanFeatureInfo
+header extends java/lang/Object implements java/io/Serializable,javax/management/DescriptorRead flags 21
+
+class name javax/management/MBeanNotificationInfo
+header extends javax/management/MBeanFeatureInfo implements java/lang/Cloneable flags 21
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/MBeanOperationInfo
+header extends javax/management/MBeanFeatureInfo implements java/lang/Cloneable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/MBeanParameterInfo
+header extends javax/management/MBeanFeatureInfo implements java/lang/Cloneable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/MBeanPermission
+header extends java/security/Permission flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/MBeanRegistration
+header extends java/lang/Object flags 601
+
+class name javax/management/MBeanRegistrationException
+header extends javax/management/MBeanException flags 21
+
+class name javax/management/MBeanServer
+header extends java/lang/Object implements javax/management/MBeanServerConnection flags 601
+
+class name javax/management/MBeanServerBuilder
+header extends java/lang/Object flags 21
+
+class name javax/management/MBeanServerConnection
+header extends java/lang/Object flags 601
+
+class name javax/management/MBeanServerDelegate
+header extends java/lang/Object implements javax/management/MBeanServerDelegateMBean,javax/management/NotificationEmitter flags 21
+innerclass innerClass java/lang/System$Logger outerClass java/lang/System innerClassName Logger flags 609
+innerclass innerClass java/lang/System$Logger$Level outerClass java/lang/System$Logger innerClassName Level flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/MBeanServerDelegateMBean
+header extends java/lang/Object flags 601
+
+class name javax/management/MBeanServerFactory
+header extends java/lang/Object flags 21
+innerclass innerClass java/lang/System$Logger outerClass java/lang/System innerClassName Logger flags 609
+innerclass innerClass java/lang/System$Logger$Level outerClass java/lang/System$Logger innerClassName Level flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/MBeanServerInvocationHandler
+header extends java/lang/Object implements java/lang/reflect/InvocationHandler flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/MBeanServerNotification
+header extends javax/management/Notification flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/MBeanServerPermission
+header extends java/security/BasicPermission flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/MBeanTrustPermission
+header extends java/security/BasicPermission flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/MXBean
+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;)@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;TYPE;})
+
+class name javax/management/MalformedObjectNameException
+header extends javax/management/OperationsException flags 21
+
+class name javax/management/NotCompliantMBeanException
+header extends javax/management/OperationsException flags 21
+
+class name javax/management/Notification
+header extends java/util/EventObject flags 21
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/NotificationBroadcaster
+header extends java/lang/Object flags 601
+
+class name javax/management/NotificationEmitter
+header extends java/lang/Object implements javax/management/NotificationBroadcaster flags 601
+
+class name javax/management/NotificationFilter
+header extends java/lang/Object implements java/io/Serializable flags 601
+
+class name javax/management/NotificationFilterSupport
+header extends java/lang/Object implements javax/management/NotificationFilter flags 21
+
+class name javax/management/NotificationListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name javax/management/ObjectInstance
+header extends java/lang/Object implements java/io/Serializable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/OperationsException
+header extends javax/management/JMException flags 21
+
+class name javax/management/PersistentMBean
+header extends java/lang/Object flags 601
+
+class name javax/management/Query
+header extends java/lang/Object flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/QueryEval
+header extends java/lang/Object implements java/io/Serializable flags 421
+
+class name javax/management/QueryExp
+header extends java/lang/Object implements java/io/Serializable flags 601
+
+class name javax/management/ReflectionException
+header extends javax/management/JMException flags 21
+
+class name javax/management/RuntimeErrorException
+header extends javax/management/JMRuntimeException flags 21
+
+class name javax/management/RuntimeMBeanException
+header extends javax/management/JMRuntimeException flags 21
+
+class name javax/management/RuntimeOperationsException
+header extends javax/management/JMRuntimeException flags 21
+
+class name javax/management/ServiceNotFoundException
+header extends javax/management/OperationsException flags 21
+
+class name javax/management/StandardEmitterMBean
+header extends javax/management/StandardMBean implements javax/management/NotificationEmitter flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/StringValueExp
+header extends java/lang/Object implements javax/management/ValueExp flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/ValueExp
+header extends java/lang/Object implements java/io/Serializable flags 601
+
+class name javax/management/loading/ClassLoaderRepository
+header extends java/lang/Object flags 601
+
+class name javax/management/loading/DefaultLoaderRepository
+header extends java/lang/Object flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;
+innerclass innerClass java/lang/System$Logger outerClass java/lang/System innerClassName Logger flags 609
+innerclass innerClass java/lang/System$Logger$Level outerClass java/lang/System$Logger innerClassName Level flags 4019
+
+class name javax/management/loading/MLetContent
+header extends java/lang/Object flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/loading/MLetMBean
+header extends java/lang/Object flags 601
+
+class name javax/management/loading/PrivateClassLoader
+header extends java/lang/Object flags 601
+
+class name javax/management/loading/PrivateMLet
+header extends javax/management/loading/MLet implements javax/management/loading/PrivateClassLoader flags 21
+
+class name javax/management/modelmbean/DescriptorSupport
+header extends java/lang/Object implements javax/management/Descriptor flags 21
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+innerclass innerClass java/lang/System$Logger outerClass java/lang/System innerClassName Logger flags 609
+innerclass innerClass java/lang/System$Logger$Level outerClass java/lang/System$Logger innerClassName Level flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/modelmbean/InvalidTargetObjectTypeException
+header extends java/lang/Exception flags 21
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/modelmbean/ModelMBean
+header extends java/lang/Object implements javax/management/DynamicMBean,javax/management/PersistentMBean,javax/management/modelmbean/ModelMBeanNotificationBroadcaster flags 601
+
+class name javax/management/modelmbean/ModelMBeanAttributeInfo
+header extends javax/management/MBeanAttributeInfo implements javax/management/DescriptorAccess flags 21
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+innerclass innerClass java/lang/System$Logger outerClass java/lang/System innerClassName Logger flags 609
+innerclass innerClass java/lang/System$Logger$Level outerClass java/lang/System$Logger innerClassName Level flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/modelmbean/ModelMBeanConstructorInfo
+header extends javax/management/MBeanConstructorInfo implements javax/management/DescriptorAccess flags 21
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+innerclass innerClass java/lang/System$Logger outerClass java/lang/System innerClassName Logger flags 609
+innerclass innerClass java/lang/System$Logger$Level outerClass java/lang/System$Logger innerClassName Level flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/modelmbean/ModelMBeanInfo
+header extends java/lang/Object flags 601
+
+class name javax/management/modelmbean/ModelMBeanInfoSupport
+header extends javax/management/MBeanInfo implements javax/management/modelmbean/ModelMBeanInfo flags 21
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+innerclass innerClass java/lang/System$Logger outerClass java/lang/System innerClassName Logger flags 609
+innerclass innerClass java/lang/System$Logger$Level outerClass java/lang/System$Logger innerClassName Level flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/modelmbean/ModelMBeanNotificationBroadcaster
+header extends java/lang/Object implements javax/management/NotificationBroadcaster flags 601
+
+class name javax/management/modelmbean/ModelMBeanNotificationInfo
+header extends javax/management/MBeanNotificationInfo implements javax/management/DescriptorAccess flags 21
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+innerclass innerClass java/lang/System$Logger outerClass java/lang/System innerClassName Logger flags 609
+innerclass innerClass java/lang/System$Logger$Level outerClass java/lang/System$Logger innerClassName Level flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/modelmbean/ModelMBeanOperationInfo
+header extends javax/management/MBeanOperationInfo implements javax/management/DescriptorAccess flags 21
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+innerclass innerClass java/lang/System$Logger outerClass java/lang/System innerClassName Logger flags 609
+innerclass innerClass java/lang/System$Logger$Level outerClass java/lang/System$Logger innerClassName Level flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/modelmbean/XMLParseException
+header extends java/lang/Exception flags 21
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/monitor/CounterMonitorMBean
+header extends java/lang/Object implements javax/management/monitor/MonitorMBean flags 601
+
+class name javax/management/monitor/GaugeMonitorMBean
+header extends java/lang/Object implements javax/management/monitor/MonitorMBean flags 601
+
+class name javax/management/monitor/MonitorMBean
+header extends java/lang/Object flags 601
+
+class name javax/management/monitor/MonitorNotification
+header extends javax/management/Notification flags 21
+
+class name javax/management/monitor/MonitorSettingException
+header extends javax/management/JMRuntimeException flags 21
+
+class name javax/management/monitor/StringMonitorMBean
+header extends java/lang/Object implements javax/management/monitor/MonitorMBean flags 601
+
+class name javax/management/openmbean/ArrayType
+header extends javax/management/openmbean/OpenType flags 21 signature <T:Ljava/lang/Object;>Ljavax/management/openmbean/OpenType<TT;>;
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/openmbean/CompositeData
+header extends java/lang/Object flags 601
+
+class name javax/management/openmbean/CompositeDataInvocationHandler
+header extends java/lang/Object implements java/lang/reflect/InvocationHandler flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/openmbean/CompositeDataSupport
+header extends java/lang/Object implements javax/management/openmbean/CompositeData,java/io/Serializable flags 21
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/openmbean/CompositeDataView
+header extends java/lang/Object flags 601
+
+class name javax/management/openmbean/CompositeType
+header extends javax/management/openmbean/OpenType flags 21 signature Ljavax/management/openmbean/OpenType<Ljavax/management/openmbean/CompositeData;>;
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/openmbean/InvalidKeyException
+header extends java/lang/IllegalArgumentException flags 21
+
+class name javax/management/openmbean/InvalidOpenTypeException
+header extends java/lang/IllegalArgumentException flags 21
+
+class name javax/management/openmbean/KeyAlreadyExistsException
+header extends java/lang/IllegalArgumentException flags 21
+
+class name javax/management/openmbean/OpenDataException
+header extends javax/management/JMException flags 21
+
+class name javax/management/openmbean/OpenMBeanAttributeInfo
+header extends java/lang/Object implements javax/management/openmbean/OpenMBeanParameterInfo flags 601
+
+class name javax/management/openmbean/OpenMBeanAttributeInfoSupport
+header extends javax/management/MBeanAttributeInfo implements javax/management/openmbean/OpenMBeanAttributeInfo flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/openmbean/OpenMBeanConstructorInfo
+header extends java/lang/Object flags 601
+
+class name javax/management/openmbean/OpenMBeanConstructorInfoSupport
+header extends javax/management/MBeanConstructorInfo implements javax/management/openmbean/OpenMBeanConstructorInfo flags 21
+
+class name javax/management/openmbean/OpenMBeanInfo
+header extends java/lang/Object flags 601
+
+class name javax/management/openmbean/OpenMBeanInfoSupport
+header extends javax/management/MBeanInfo implements javax/management/openmbean/OpenMBeanInfo flags 21
+
+class name javax/management/openmbean/OpenMBeanOperationInfo
+header extends java/lang/Object flags 601
+
+class name javax/management/openmbean/OpenMBeanOperationInfoSupport
+header extends javax/management/MBeanOperationInfo implements javax/management/openmbean/OpenMBeanOperationInfo flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/openmbean/OpenMBeanParameterInfo
+header extends java/lang/Object flags 601
+
+class name javax/management/openmbean/OpenMBeanParameterInfoSupport
+header extends javax/management/MBeanParameterInfo implements javax/management/openmbean/OpenMBeanParameterInfo flags 21
+
+class name javax/management/openmbean/SimpleType
+header extends javax/management/openmbean/OpenType flags 31 signature <T:Ljava/lang/Object;>Ljavax/management/openmbean/OpenType<TT;>;
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/openmbean/TabularData
+header extends java/lang/Object flags 601
+
+class name javax/management/openmbean/TabularDataSupport
+header extends java/lang/Object implements javax/management/openmbean/TabularData,java/util/Map,java/lang/Cloneable,java/io/Serializable flags 21 signature Ljava/lang/Object;Ljavax/management/openmbean/TabularData;Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;Ljava/lang/Cloneable;Ljava/io/Serializable;
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/openmbean/TabularType
+header extends javax/management/openmbean/OpenType flags 21 signature Ljavax/management/openmbean/OpenType<Ljavax/management/openmbean/TabularData;>;
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/relation/InvalidRelationIdException
+header extends javax/management/relation/RelationException flags 21
+
+class name javax/management/relation/InvalidRelationServiceException
+header extends javax/management/relation/RelationException flags 21
+
+class name javax/management/relation/InvalidRelationTypeException
+header extends javax/management/relation/RelationException flags 21
+
+class name javax/management/relation/InvalidRoleInfoException
+header extends javax/management/relation/RelationException flags 21
+
+class name javax/management/relation/InvalidRoleValueException
+header extends javax/management/relation/RelationException flags 21
+
+class name javax/management/relation/MBeanServerNotificationFilter
+header extends javax/management/NotificationFilterSupport flags 21
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+innerclass innerClass java/lang/System$Logger outerClass java/lang/System innerClassName Logger flags 609
+innerclass innerClass java/lang/System$Logger$Level outerClass java/lang/System$Logger innerClassName Level flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/relation/Relation
+header extends java/lang/Object flags 601
+
+class name javax/management/relation/RelationException
+header extends javax/management/JMException flags 21
+
+class name javax/management/relation/RelationNotFoundException
+header extends javax/management/relation/RelationException flags 21
+
+class name javax/management/relation/RelationNotification
+header extends javax/management/Notification flags 21
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+
+class name javax/management/relation/RelationService
+header extends javax/management/NotificationBroadcasterSupport implements javax/management/relation/RelationServiceMBean,javax/management/MBeanRegistration,javax/management/NotificationListener flags 21
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+innerclass innerClass java/lang/System$Logger outerClass java/lang/System innerClassName Logger flags 609
+innerclass innerClass java/lang/System$Logger$Level outerClass java/lang/System$Logger innerClassName Level flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/relation/RelationServiceMBean
+header extends java/lang/Object flags 601
+
+class name javax/management/relation/RelationServiceNotRegisteredException
+header extends javax/management/relation/RelationException flags 21
+
+class name javax/management/relation/RelationSupport
+header extends java/lang/Object implements javax/management/relation/RelationSupportMBean,javax/management/MBeanRegistration flags 21
+innerclass innerClass java/lang/System$Logger outerClass java/lang/System innerClassName Logger flags 609
+innerclass innerClass java/lang/System$Logger$Level outerClass java/lang/System$Logger innerClassName Level flags 4019
+
+class name javax/management/relation/RelationSupportMBean
+header extends java/lang/Object implements javax/management/relation/Relation flags 601
+
+class name javax/management/relation/RelationType
+header extends java/lang/Object implements java/io/Serializable flags 601
+
+class name javax/management/relation/RelationTypeNotFoundException
+header extends javax/management/relation/RelationException flags 21
+
+class name javax/management/relation/RelationTypeSupport
+header extends java/lang/Object implements javax/management/relation/RelationType flags 21
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+innerclass innerClass java/lang/System$Logger outerClass java/lang/System innerClassName Logger flags 609
+innerclass innerClass java/lang/System$Logger$Level outerClass java/lang/System$Logger innerClassName Level flags 4019
+
+class name javax/management/relation/Role
+header extends java/lang/Object implements java/io/Serializable flags 21
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/relation/RoleInfo
+header extends java/lang/Object implements java/io/Serializable flags 21
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/relation/RoleInfoNotFoundException
+header extends javax/management/relation/RelationException flags 21
+
+class name javax/management/relation/RoleList
+header extends java/util/ArrayList flags 21 signature Ljava/util/ArrayList<Ljava/lang/Object;>;
+
+class name javax/management/relation/RoleNotFoundException
+header extends javax/management/relation/RelationException flags 21
+
+class name javax/management/relation/RoleResult
+header extends java/lang/Object implements java/io/Serializable flags 21
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+
+class name javax/management/relation/RoleStatus
+header extends java/lang/Object flags 21
+
+class name javax/management/relation/RoleUnresolved
+header extends java/lang/Object implements java/io/Serializable flags 21
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/relation/RoleUnresolvedList
+header extends java/util/ArrayList flags 21 signature Ljava/util/ArrayList<Ljava/lang/Object;>;
+
+class name javax/management/remote/JMXAddressable
+header extends java/lang/Object flags 601
+
+class name javax/management/remote/JMXAuthenticator
+header extends java/lang/Object flags 601
+
+class name javax/management/remote/JMXConnectionNotification
+header extends javax/management/Notification flags 21
+
+class name javax/management/remote/JMXConnector
+header extends java/lang/Object implements java/io/Closeable flags 601
+
+class name javax/management/remote/JMXConnectorProvider
+header extends java/lang/Object flags 601
+
+class name javax/management/remote/JMXConnectorServer
+header extends javax/management/NotificationBroadcasterSupport implements javax/management/remote/JMXConnectorServerMBean,javax/management/MBeanRegistration,javax/management/remote/JMXAddressable flags 421
+
+class name javax/management/remote/JMXConnectorServerFactory
+header extends java/lang/Object flags 21
+innerclass innerClass java/util/ServiceLoader$Provider outerClass java/util/ServiceLoader innerClassName Provider flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/remote/JMXConnectorServerMBean
+header extends java/lang/Object flags 601
+
+class name javax/management/remote/JMXConnectorServerProvider
+header extends java/lang/Object flags 601
+
+class name javax/management/remote/JMXPrincipal
+header extends java/lang/Object implements java/security/Principal,java/io/Serializable flags 21
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/remote/JMXProviderException
+header extends java/io/IOException flags 21
+
+class name javax/management/remote/JMXServerErrorException
+header extends java/io/IOException flags 21
+
+class name javax/management/remote/JMXServiceURL
+header extends java/lang/Object implements java/io/Serializable flags 21
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/remote/MBeanServerForwarder
+header extends java/lang/Object implements javax/management/MBeanServer flags 601
+
+class name javax/management/remote/NotificationResult
+header extends java/lang/Object implements java/io/Serializable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/remote/SubjectDelegationPermission
+header extends java/security/BasicPermission flags 31
+
+class name javax/management/remote/TargetedNotification
+header extends java/lang/Object implements java/io/Serializable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/timer/Timer
+header extends javax/management/NotificationBroadcasterSupport implements javax/management/timer/TimerMBean,javax/management/MBeanRegistration flags 21
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+innerclass innerClass java/lang/System$Logger outerClass java/lang/System innerClassName Logger flags 609
+innerclass innerClass java/lang/System$Logger$Level outerClass java/lang/System$Logger innerClassName Level flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/timer/TimerMBean
+header extends java/lang/Object flags 601
+
+class name javax/management/timer/TimerNotification
+header extends javax/management/Notification flags 21
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/java.management.rmi-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,61 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name java.management.rmi
+header exports javax/management/remote/rmi requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;java.naming\u0020;flags\u0020;0,name\u0020;java.management\u0020;flags\u0020;20,name\u0020;java.rmi\u0020;flags\u0020;20 provides interface\u0020;javax/management/remote/JMXConnectorProvider\u0020;impls\u0020;com/sun/jmx/remote/protocol/rmi/ClientProvider,interface\u0020;javax/management/remote/JMXConnectorServerProvider\u0020;impls\u0020;com/sun/jmx/remote/protocol/rmi/ServerProvider target linux-amd64 flags 8000
+
+class name javax/management/remote/rmi/RMIConnection
+header extends java/lang/Object implements java/io/Closeable,java/rmi/Remote flags 601
+
+class name javax/management/remote/rmi/RMIConnectionImpl_Stub
+header extends java/rmi/server/RemoteStub implements javax/management/remote/rmi/RMIConnection flags 31
+
+class name javax/management/remote/rmi/RMIConnectorServer
+header extends javax/management/remote/JMXConnectorServer flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/remote/rmi/RMIIIOPServerImpl
+header extends javax/management/remote/rmi/RMIServerImpl flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;
+
+class name javax/management/remote/rmi/RMIJRMPServerImpl
+header extends javax/management/remote/rmi/RMIServerImpl flags 21
+innerclass innerClass java/io/ObjectInputFilter$FilterInfo outerClass java/io/ObjectInputFilter innerClassName FilterInfo flags 609
+innerclass innerClass java/io/ObjectInputFilter$Status outerClass java/io/ObjectInputFilter innerClassName Status flags 4019
+innerclass innerClass java/io/ObjectInputFilter$Config outerClass java/io/ObjectInputFilter innerClassName Config flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/remote/rmi/RMIServer
+header extends java/lang/Object implements java/rmi/Remote flags 601
+
+class name javax/management/remote/rmi/RMIServerImpl
+header extends java/lang/Object implements java/io/Closeable,javax/management/remote/rmi/RMIServer flags 421
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/management/remote/rmi/RMIServerImpl_Stub
+header extends java/rmi/server/RemoteStub implements javax/management/remote/rmi/RMIServer flags 31
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/java.naming-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,332 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name java.naming
+header exports javax/naming,javax/naming/directory,javax/naming/event,javax/naming/ldap,javax/naming/spi requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;java.security.sasl\u0020;flags\u0020;0 uses javax/naming/ldap/StartTlsResponse,javax/naming/spi/InitialContextFactory provides interface\u0020;java/security/Provider\u0020;impls\u0020;sun/security/provider/certpath/ldap/JdkLDAP target linux-amd64 flags 8000
+
+class name javax/naming/AuthenticationException
+header extends javax/naming/NamingSecurityException flags 21
+
+class name javax/naming/AuthenticationNotSupportedException
+header extends javax/naming/NamingSecurityException flags 21
+
+class name javax/naming/BinaryRefAddr
+header extends javax/naming/RefAddr flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/naming/Binding
+header extends javax/naming/NameClassPair flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/naming/CannotProceedException
+header extends javax/naming/NamingException flags 21
+
+class name javax/naming/CommunicationException
+header extends javax/naming/NamingException flags 21
+
+class name javax/naming/CompositeName
+header extends java/lang/Object implements javax/naming/Name flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/naming/CompoundName
+header extends java/lang/Object implements javax/naming/Name flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/naming/ConfigurationException
+header extends javax/naming/NamingException flags 21
+
+class name javax/naming/Context
+header extends java/lang/Object flags 601
+
+class name javax/naming/ContextNotEmptyException
+header extends javax/naming/NamingException flags 21
+
+class name javax/naming/InitialContext
+header extends java/lang/Object implements javax/naming/Context flags 21
+
+class name javax/naming/InsufficientResourcesException
+header extends javax/naming/NamingException flags 21
+
+class name javax/naming/InterruptedNamingException
+header extends javax/naming/NamingException flags 21
+
+class name javax/naming/InvalidNameException
+header extends javax/naming/NamingException flags 21
+
+class name javax/naming/LimitExceededException
+header extends javax/naming/NamingException flags 21
+
+class name javax/naming/LinkException
+header extends javax/naming/NamingException flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/naming/LinkLoopException
+header extends javax/naming/LinkException flags 21
+
+class name javax/naming/LinkRef
+header extends javax/naming/Reference flags 21
+
+class name javax/naming/MalformedLinkException
+header extends javax/naming/LinkException flags 21
+
+class name javax/naming/Name
+header extends java/lang/Object implements java/lang/Cloneable,java/io/Serializable,java/lang/Comparable flags 601 signature Ljava/lang/Object;Ljava/lang/Cloneable;Ljava/io/Serializable;Ljava/lang/Comparable<Ljava/lang/Object;>;
+
+class name javax/naming/NameAlreadyBoundException
+header extends javax/naming/NamingException flags 21
+
+class name javax/naming/NameClassPair
+header extends java/lang/Object implements java/io/Serializable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/naming/NameNotFoundException
+header extends javax/naming/NamingException flags 21
+
+class name javax/naming/NameParser
+header extends java/lang/Object flags 601
+
+class name javax/naming/NamingEnumeration
+header extends java/lang/Object implements java/util/Enumeration flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/Enumeration<TT;>;
+
+class name javax/naming/NamingException
+header extends java/lang/Exception flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/naming/NamingSecurityException
+header extends javax/naming/NamingException flags 421
+
+class name javax/naming/NoInitialContextException
+header extends javax/naming/NamingException flags 21
+
+class name javax/naming/NoPermissionException
+header extends javax/naming/NamingSecurityException flags 21
+
+class name javax/naming/NotContextException
+header extends javax/naming/NamingException flags 21
+
+class name javax/naming/OperationNotSupportedException
+header extends javax/naming/NamingException flags 21
+
+class name javax/naming/PartialResultException
+header extends javax/naming/NamingException flags 21
+
+class name javax/naming/RefAddr
+header extends java/lang/Object implements java/io/Serializable flags 421
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/naming/Reference
+header extends java/lang/Object implements java/lang/Cloneable,java/io/Serializable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/naming/Referenceable
+header extends java/lang/Object flags 601
+
+class name javax/naming/ReferralException
+header extends javax/naming/NamingException flags 421
+
+class name javax/naming/ServiceUnavailableException
+header extends javax/naming/NamingException flags 21
+
+class name javax/naming/SizeLimitExceededException
+header extends javax/naming/LimitExceededException flags 21
+
+class name javax/naming/StringRefAddr
+header extends javax/naming/RefAddr flags 21
+
+class name javax/naming/TimeLimitExceededException
+header extends javax/naming/LimitExceededException flags 21
+
+class name javax/naming/directory/Attribute
+header extends java/lang/Object implements java/lang/Cloneable,java/io/Serializable flags 601
+
+class name javax/naming/directory/AttributeInUseException
+header extends javax/naming/NamingException flags 21
+
+class name javax/naming/directory/AttributeModificationException
+header extends javax/naming/NamingException flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/naming/directory/Attributes
+header extends java/lang/Object implements java/lang/Cloneable,java/io/Serializable flags 601
+
+class name javax/naming/directory/DirContext
+header extends java/lang/Object implements javax/naming/Context flags 601
+
+class name javax/naming/directory/InitialDirContext
+header extends javax/naming/InitialContext implements javax/naming/directory/DirContext flags 21
+
+class name javax/naming/directory/InvalidAttributeIdentifierException
+header extends javax/naming/NamingException flags 21
+
+class name javax/naming/directory/InvalidAttributeValueException
+header extends javax/naming/NamingException flags 21
+
+class name javax/naming/directory/InvalidAttributesException
+header extends javax/naming/NamingException flags 21
+
+class name javax/naming/directory/InvalidSearchControlsException
+header extends javax/naming/NamingException flags 21
+
+class name javax/naming/directory/InvalidSearchFilterException
+header extends javax/naming/NamingException flags 21
+
+class name javax/naming/directory/ModificationItem
+header extends java/lang/Object implements java/io/Serializable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/naming/directory/NoSuchAttributeException
+header extends javax/naming/NamingException flags 21
+
+class name javax/naming/directory/SchemaViolationException
+header extends javax/naming/NamingException flags 21
+
+class name javax/naming/directory/SearchControls
+header extends java/lang/Object implements java/io/Serializable flags 21
+
+class name javax/naming/directory/SearchResult
+header extends javax/naming/Binding flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/naming/event/EventContext
+header extends java/lang/Object implements javax/naming/Context flags 601
+
+class name javax/naming/event/EventDirContext
+header extends java/lang/Object implements javax/naming/event/EventContext,javax/naming/directory/DirContext flags 601
+
+class name javax/naming/event/NamespaceChangeListener
+header extends java/lang/Object implements javax/naming/event/NamingListener flags 601
+
+class name javax/naming/event/NamingEvent
+header extends java/util/EventObject flags 21
+
+class name javax/naming/event/NamingExceptionEvent
+header extends java/util/EventObject flags 21
+
+class name javax/naming/event/NamingListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name javax/naming/event/ObjectChangeListener
+header extends java/lang/Object implements javax/naming/event/NamingListener flags 601
+
+class name javax/naming/ldap/BasicControl
+header extends java/lang/Object implements javax/naming/ldap/Control flags 21
+
+class name javax/naming/ldap/Control
+header extends java/lang/Object implements java/io/Serializable flags 601
+
+class name javax/naming/ldap/ControlFactory
+header extends java/lang/Object flags 421
+
+class name javax/naming/ldap/ExtendedRequest
+header extends java/lang/Object implements java/io/Serializable flags 601
+
+class name javax/naming/ldap/ExtendedResponse
+header extends java/lang/Object implements java/io/Serializable flags 601
+
+class name javax/naming/ldap/HasControls
+header extends java/lang/Object flags 601
+
+class name javax/naming/ldap/InitialLdapContext
+header extends javax/naming/directory/InitialDirContext implements javax/naming/ldap/LdapContext flags 21
+
+class name javax/naming/ldap/LdapContext
+header extends java/lang/Object implements javax/naming/directory/DirContext flags 601
+
+class name javax/naming/ldap/LdapReferralException
+header extends javax/naming/ReferralException flags 421
+
+class name javax/naming/ldap/ManageReferralControl
+header extends javax/naming/ldap/BasicControl flags 31
+
+class name javax/naming/ldap/PagedResultsControl
+header extends javax/naming/ldap/BasicControl flags 31
+
+class name javax/naming/ldap/PagedResultsResponseControl
+header extends javax/naming/ldap/BasicControl flags 31
+
+class name javax/naming/ldap/SortControl
+header extends javax/naming/ldap/BasicControl flags 31
+
+class name javax/naming/ldap/SortKey
+header extends java/lang/Object flags 21
+
+class name javax/naming/ldap/SortResponseControl
+header extends javax/naming/ldap/BasicControl flags 31
+
+class name javax/naming/ldap/StartTlsResponse
+header extends java/lang/Object implements javax/naming/ldap/ExtendedResponse flags 421
+
+class name javax/naming/ldap/UnsolicitedNotification
+header extends java/lang/Object implements javax/naming/ldap/ExtendedResponse,javax/naming/ldap/HasControls flags 601
+
+class name javax/naming/ldap/UnsolicitedNotificationEvent
+header extends java/util/EventObject flags 21
+
+class name javax/naming/ldap/UnsolicitedNotificationListener
+header extends java/lang/Object implements javax/naming/event/NamingListener flags 601
+
+class name javax/naming/spi/DirObjectFactory
+header extends java/lang/Object implements javax/naming/spi/ObjectFactory flags 601
+
+class name javax/naming/spi/DirStateFactory
+header extends java/lang/Object implements javax/naming/spi/StateFactory nestMembers javax/naming/spi/DirStateFactory$Result flags 601
+innerclass innerClass javax/naming/spi/DirStateFactory$Result outerClass javax/naming/spi/DirStateFactory innerClassName Result flags 9
+
+class name javax/naming/spi/DirStateFactory$Result
+header extends java/lang/Object nestHost javax/naming/spi/DirStateFactory flags 21
+innerclass innerClass javax/naming/spi/DirStateFactory$Result outerClass javax/naming/spi/DirStateFactory innerClassName Result flags 9
+
+class name javax/naming/spi/DirectoryManager
+header extends javax/naming/spi/NamingManager flags 21
+innerclass innerClass javax/naming/spi/DirStateFactory$Result outerClass javax/naming/spi/DirStateFactory innerClassName Result flags 9
+
+class name javax/naming/spi/InitialContextFactory
+header extends java/lang/Object flags 601
+
+class name javax/naming/spi/InitialContextFactoryBuilder
+header extends java/lang/Object flags 601
+
+class name javax/naming/spi/NamingManager
+header extends java/lang/Object flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/naming/spi/ObjectFactory
+header extends java/lang/Object flags 601
+
+class name javax/naming/spi/ObjectFactoryBuilder
+header extends java/lang/Object flags 601
+
+class name javax/naming/spi/ResolveResult
+header extends java/lang/Object implements java/io/Serializable flags 21
+
+class name javax/naming/spi/Resolver
+header extends java/lang/Object flags 601
+
+class name javax/naming/spi/StateFactory
+header extends java/lang/Object flags 601
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/java.net.http-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,315 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name java.net.http
+header exports java/net/http requires name\u0020;java.base\u0020;flags\u0020;8000 target linux-amd64 flags 8000
+
+class name java/net/http/HttpClient
+header extends java/lang/Object nestMembers java/net/http/HttpClient$Redirect,java/net/http/HttpClient$Version,java/net/http/HttpClient$Builder flags 421
+innerclass innerClass java/net/http/HttpClient$Redirect outerClass java/net/http/HttpClient innerClassName Redirect flags 4019
+innerclass innerClass java/net/http/HttpClient$Version outerClass java/net/http/HttpClient innerClassName Version flags 4019
+innerclass innerClass java/net/http/HttpClient$Builder outerClass java/net/http/HttpClient innerClassName Builder flags 609
+innerclass innerClass java/net/http/HttpResponse$BodyHandler outerClass java/net/http/HttpResponse innerClassName BodyHandler flags 609
+innerclass innerClass java/net/http/HttpResponse$PushPromiseHandler outerClass java/net/http/HttpResponse innerClassName PushPromiseHandler flags 609
+innerclass innerClass java/net/http/WebSocket$Builder outerClass java/net/http/WebSocket innerClassName Builder flags 609
+method name <init> descriptor ()V flags 4
+method name newHttpClient descriptor ()Ljava/net/http/HttpClient; flags 9
+method name newBuilder descriptor ()Ljava/net/http/HttpClient$Builder; flags 9
+method name cookieHandler descriptor ()Ljava/util/Optional; flags 401 signature ()Ljava/util/Optional<Ljava/net/CookieHandler;>;
+method name connectTimeout descriptor ()Ljava/util/Optional; flags 401 signature ()Ljava/util/Optional<Ljava/time/Duration;>;
+method name followRedirects descriptor ()Ljava/net/http/HttpClient$Redirect; flags 401
+method name proxy descriptor ()Ljava/util/Optional; flags 401 signature ()Ljava/util/Optional<Ljava/net/ProxySelector;>;
+method name sslContext descriptor ()Ljavax/net/ssl/SSLContext; flags 401
+method name sslParameters descriptor ()Ljavax/net/ssl/SSLParameters; flags 401
+method name authenticator descriptor ()Ljava/util/Optional; flags 401 signature ()Ljava/util/Optional<Ljava/net/Authenticator;>;
+method name version descriptor ()Ljava/net/http/HttpClient$Version; flags 401
+method name executor descriptor ()Ljava/util/Optional; flags 401 signature ()Ljava/util/Optional<Ljava/util/concurrent/Executor;>;
+method name send descriptor (Ljava/net/http/HttpRequest;Ljava/net/http/HttpResponse$BodyHandler;)Ljava/net/http/HttpResponse; thrownTypes java/io/IOException,java/lang/InterruptedException flags 401 signature <T:Ljava/lang/Object;>(Ljava/net/http/HttpRequest;Ljava/net/http/HttpResponse$BodyHandler<TT;>;)Ljava/net/http/HttpResponse<TT;>;
+method name sendAsync descriptor (Ljava/net/http/HttpRequest;Ljava/net/http/HttpResponse$BodyHandler;)Ljava/util/concurrent/CompletableFuture; flags 401 signature <T:Ljava/lang/Object;>(Ljava/net/http/HttpRequest;Ljava/net/http/HttpResponse$BodyHandler<TT;>;)Ljava/util/concurrent/CompletableFuture<Ljava/net/http/HttpResponse<TT;>;>;
+method name sendAsync descriptor (Ljava/net/http/HttpRequest;Ljava/net/http/HttpResponse$BodyHandler;Ljava/net/http/HttpResponse$PushPromiseHandler;)Ljava/util/concurrent/CompletableFuture; flags 401 signature <T:Ljava/lang/Object;>(Ljava/net/http/HttpRequest;Ljava/net/http/HttpResponse$BodyHandler<TT;>;Ljava/net/http/HttpResponse$PushPromiseHandler<TT;>;)Ljava/util/concurrent/CompletableFuture<Ljava/net/http/HttpResponse<TT;>;>;
+method name newWebSocketBuilder descriptor ()Ljava/net/http/WebSocket$Builder; flags 1
+
+class name java/net/http/HttpClient$Builder
+header extends java/lang/Object nestHost java/net/http/HttpClient flags 601
+innerclass innerClass java/net/http/HttpClient$Builder outerClass java/net/http/HttpClient innerClassName Builder flags 609
+innerclass innerClass java/net/http/HttpClient$Redirect outerClass java/net/http/HttpClient innerClassName Redirect flags 4019
+innerclass innerClass java/net/http/HttpClient$Version outerClass java/net/http/HttpClient innerClassName Version flags 4019
+field name NO_PROXY descriptor Ljava/net/ProxySelector; flags 19
+method name cookieHandler descriptor (Ljava/net/CookieHandler;)Ljava/net/http/HttpClient$Builder; flags 401
+method name connectTimeout descriptor (Ljava/time/Duration;)Ljava/net/http/HttpClient$Builder; flags 401
+method name sslContext descriptor (Ljavax/net/ssl/SSLContext;)Ljava/net/http/HttpClient$Builder; flags 401
+method name sslParameters descriptor (Ljavax/net/ssl/SSLParameters;)Ljava/net/http/HttpClient$Builder; flags 401
+method name executor descriptor (Ljava/util/concurrent/Executor;)Ljava/net/http/HttpClient$Builder; flags 401
+method name followRedirects descriptor (Ljava/net/http/HttpClient$Redirect;)Ljava/net/http/HttpClient$Builder; flags 401
+method name version descriptor (Ljava/net/http/HttpClient$Version;)Ljava/net/http/HttpClient$Builder; flags 401
+method name priority descriptor (I)Ljava/net/http/HttpClient$Builder; flags 401
+method name proxy descriptor (Ljava/net/ProxySelector;)Ljava/net/http/HttpClient$Builder; flags 401
+method name authenticator descriptor (Ljava/net/Authenticator;)Ljava/net/http/HttpClient$Builder; flags 401
+method name build descriptor ()Ljava/net/http/HttpClient; flags 401
+
+class name java/net/http/HttpClient$Redirect
+header extends java/lang/Enum nestHost java/net/http/HttpClient flags 4031 signature Ljava/lang/Enum<Ljava/net/http/HttpClient$Redirect;>;
+innerclass innerClass java/net/http/HttpClient$Redirect outerClass java/net/http/HttpClient innerClassName Redirect flags 4019
+field name NEVER descriptor Ljava/net/http/HttpClient$Redirect; flags 4019
+field name ALWAYS descriptor Ljava/net/http/HttpClient$Redirect; flags 4019
+field name NORMAL descriptor Ljava/net/http/HttpClient$Redirect; flags 4019
+method name values descriptor ()[Ljava/net/http/HttpClient$Redirect; flags 9
+method name valueOf descriptor (Ljava/lang/String;)Ljava/net/http/HttpClient$Redirect; flags 9
+
+class name java/net/http/HttpClient$Version
+header extends java/lang/Enum nestHost java/net/http/HttpClient flags 4031 signature Ljava/lang/Enum<Ljava/net/http/HttpClient$Version;>;
+innerclass innerClass java/net/http/HttpClient$Version outerClass java/net/http/HttpClient innerClassName Version flags 4019
+field name HTTP_1_1 descriptor Ljava/net/http/HttpClient$Version; flags 4019
+field name HTTP_2 descriptor Ljava/net/http/HttpClient$Version; flags 4019
+method name values descriptor ()[Ljava/net/http/HttpClient$Version; flags 9
+method name valueOf descriptor (Ljava/lang/String;)Ljava/net/http/HttpClient$Version; flags 9
+
+class name java/net/http/HttpConnectTimeoutException
+header extends java/net/http/HttpTimeoutException flags 21
+method name <init> descriptor (Ljava/lang/String;)V flags 1
+
+class name java/net/http/HttpHeaders
+header extends java/lang/Object flags 31
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+method name firstValue descriptor (Ljava/lang/String;)Ljava/util/Optional; flags 1 signature (Ljava/lang/String;)Ljava/util/Optional<Ljava/lang/String;>;
+method name firstValueAsLong descriptor (Ljava/lang/String;)Ljava/util/OptionalLong; flags 1
+method name allValues descriptor (Ljava/lang/String;)Ljava/util/List; flags 1 signature (Ljava/lang/String;)Ljava/util/List<Ljava/lang/String;>;
+method name map descriptor ()Ljava/util/Map; flags 1 signature ()Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
+method name equals descriptor (Ljava/lang/Object;)Z flags 11
+method name hashCode descriptor ()I flags 11
+method name toString descriptor ()Ljava/lang/String; flags 1
+method name of descriptor (Ljava/util/Map;Ljava/util/function/BiPredicate;)Ljava/net/http/HttpHeaders; flags 9 signature (Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;Ljava/util/function/BiPredicate<Ljava/lang/String;Ljava/lang/String;>;)Ljava/net/http/HttpHeaders;
+
+class name java/net/http/HttpRequest
+header extends java/lang/Object nestMembers java/net/http/HttpRequest$BodyPublishers,java/net/http/HttpRequest$BodyPublisher,java/net/http/HttpRequest$Builder flags 421
+innerclass innerClass java/net/http/HttpRequest$BodyPublishers outerClass java/net/http/HttpRequest innerClassName BodyPublishers flags 9
+innerclass innerClass java/net/http/HttpRequest$BodyPublisher outerClass java/net/http/HttpRequest innerClassName BodyPublisher flags 609
+innerclass innerClass java/net/http/HttpRequest$Builder outerClass java/net/http/HttpRequest innerClassName Builder flags 609
+innerclass innerClass java/net/http/HttpClient$Version outerClass java/net/http/HttpClient innerClassName Version flags 4019
+method name <init> descriptor ()V flags 4
+method name newBuilder descriptor (Ljava/net/URI;)Ljava/net/http/HttpRequest$Builder; flags 9
+method name newBuilder descriptor ()Ljava/net/http/HttpRequest$Builder; flags 9
+method name bodyPublisher descriptor ()Ljava/util/Optional; flags 401 signature ()Ljava/util/Optional<Ljava/net/http/HttpRequest$BodyPublisher;>;
+method name method descriptor ()Ljava/lang/String; flags 401
+method name timeout descriptor ()Ljava/util/Optional; flags 401 signature ()Ljava/util/Optional<Ljava/time/Duration;>;
+method name expectContinue descriptor ()Z flags 401
+method name uri descriptor ()Ljava/net/URI; flags 401
+method name version descriptor ()Ljava/util/Optional; flags 401 signature ()Ljava/util/Optional<Ljava/net/http/HttpClient$Version;>;
+method name headers descriptor ()Ljava/net/http/HttpHeaders; flags 401
+method name equals descriptor (Ljava/lang/Object;)Z flags 11
+method name hashCode descriptor ()I flags 11
+
+class name java/net/http/HttpRequest$BodyPublisher
+header extends java/lang/Object implements java/util/concurrent/Flow$Publisher nestHost java/net/http/HttpRequest flags 601 signature Ljava/lang/Object;Ljava/util/concurrent/Flow$Publisher<Ljava/nio/ByteBuffer;>;
+innerclass innerClass java/util/concurrent/Flow$Publisher outerClass java/util/concurrent/Flow innerClassName Publisher flags 609
+innerclass innerClass java/net/http/HttpRequest$BodyPublisher outerClass java/net/http/HttpRequest innerClassName BodyPublisher flags 609
+method name contentLength descriptor ()J flags 401
+
+class name java/net/http/HttpRequest$BodyPublishers
+header extends java/lang/Object nestHost java/net/http/HttpRequest flags 21
+innerclass innerClass java/net/http/HttpRequest$BodyPublishers outerClass java/net/http/HttpRequest innerClassName BodyPublishers flags 9
+innerclass innerClass java/util/concurrent/Flow$Publisher outerClass java/util/concurrent/Flow innerClassName Publisher flags 609
+innerclass innerClass java/net/http/HttpRequest$BodyPublisher outerClass java/net/http/HttpRequest innerClassName BodyPublisher flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+method name fromPublisher descriptor (Ljava/util/concurrent/Flow$Publisher;)Ljava/net/http/HttpRequest$BodyPublisher; flags 9 signature (Ljava/util/concurrent/Flow$Publisher<+Ljava/nio/ByteBuffer;>;)Ljava/net/http/HttpRequest$BodyPublisher;
+method name fromPublisher descriptor (Ljava/util/concurrent/Flow$Publisher;J)Ljava/net/http/HttpRequest$BodyPublisher; flags 9 signature (Ljava/util/concurrent/Flow$Publisher<+Ljava/nio/ByteBuffer;>;J)Ljava/net/http/HttpRequest$BodyPublisher;
+method name ofString descriptor (Ljava/lang/String;)Ljava/net/http/HttpRequest$BodyPublisher; flags 9
+method name ofString descriptor (Ljava/lang/String;Ljava/nio/charset/Charset;)Ljava/net/http/HttpRequest$BodyPublisher; flags 9
+method name ofInputStream descriptor (Ljava/util/function/Supplier;)Ljava/net/http/HttpRequest$BodyPublisher; flags 9 signature (Ljava/util/function/Supplier<+Ljava/io/InputStream;>;)Ljava/net/http/HttpRequest$BodyPublisher;
+method name ofByteArray descriptor ([B)Ljava/net/http/HttpRequest$BodyPublisher; flags 9
+method name ofByteArray descriptor ([BII)Ljava/net/http/HttpRequest$BodyPublisher; flags 9
+method name ofFile descriptor (Ljava/nio/file/Path;)Ljava/net/http/HttpRequest$BodyPublisher; thrownTypes java/io/FileNotFoundException flags 9
+method name ofByteArrays descriptor (Ljava/lang/Iterable;)Ljava/net/http/HttpRequest$BodyPublisher; flags 9 signature (Ljava/lang/Iterable<[B>;)Ljava/net/http/HttpRequest$BodyPublisher;
+method name noBody descriptor ()Ljava/net/http/HttpRequest$BodyPublisher; flags 9
+
+class name java/net/http/HttpRequest$Builder
+header extends java/lang/Object nestHost java/net/http/HttpRequest flags 601
+innerclass innerClass java/net/http/HttpRequest$Builder outerClass java/net/http/HttpRequest innerClassName Builder flags 609
+innerclass innerClass java/net/http/HttpClient$Version outerClass java/net/http/HttpClient innerClassName Version flags 4019
+innerclass innerClass java/net/http/HttpRequest$BodyPublisher outerClass java/net/http/HttpRequest innerClassName BodyPublisher flags 609
+method name uri descriptor (Ljava/net/URI;)Ljava/net/http/HttpRequest$Builder; flags 401
+method name expectContinue descriptor (Z)Ljava/net/http/HttpRequest$Builder; flags 401
+method name version descriptor (Ljava/net/http/HttpClient$Version;)Ljava/net/http/HttpRequest$Builder; flags 401
+method name header descriptor (Ljava/lang/String;Ljava/lang/String;)Ljava/net/http/HttpRequest$Builder; flags 401
+method name headers descriptor ([Ljava/lang/String;)Ljava/net/http/HttpRequest$Builder; flags 481
+method name timeout descriptor (Ljava/time/Duration;)Ljava/net/http/HttpRequest$Builder; flags 401
+method name setHeader descriptor (Ljava/lang/String;Ljava/lang/String;)Ljava/net/http/HttpRequest$Builder; flags 401
+method name GET descriptor ()Ljava/net/http/HttpRequest$Builder; flags 401
+method name POST descriptor (Ljava/net/http/HttpRequest$BodyPublisher;)Ljava/net/http/HttpRequest$Builder; flags 401
+method name PUT descriptor (Ljava/net/http/HttpRequest$BodyPublisher;)Ljava/net/http/HttpRequest$Builder; flags 401
+method name DELETE descriptor ()Ljava/net/http/HttpRequest$Builder; flags 401
+method name method descriptor (Ljava/lang/String;Ljava/net/http/HttpRequest$BodyPublisher;)Ljava/net/http/HttpRequest$Builder; flags 401
+method name build descriptor ()Ljava/net/http/HttpRequest; flags 401
+method name copy descriptor ()Ljava/net/http/HttpRequest$Builder; flags 401
+
+class name java/net/http/HttpResponse
+header extends java/lang/Object nestMembers java/net/http/HttpResponse$BodySubscribers,java/net/http/HttpResponse$BodySubscriber,java/net/http/HttpResponse$PushPromiseHandler,java/net/http/HttpResponse$BodyHandlers,java/net/http/HttpResponse$BodyHandler,java/net/http/HttpResponse$ResponseInfo flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object;
+innerclass innerClass java/net/http/HttpResponse$BodySubscribers outerClass java/net/http/HttpResponse innerClassName BodySubscribers flags 9
+innerclass innerClass java/net/http/HttpResponse$BodySubscriber outerClass java/net/http/HttpResponse innerClassName BodySubscriber flags 609
+innerclass innerClass java/net/http/HttpResponse$PushPromiseHandler outerClass java/net/http/HttpResponse innerClassName PushPromiseHandler flags 609
+innerclass innerClass java/net/http/HttpResponse$BodyHandlers outerClass java/net/http/HttpResponse innerClassName BodyHandlers flags 9
+innerclass innerClass java/net/http/HttpResponse$BodyHandler outerClass java/net/http/HttpResponse innerClassName BodyHandler flags 609
+innerclass innerClass java/net/http/HttpResponse$ResponseInfo outerClass java/net/http/HttpResponse innerClassName ResponseInfo flags 609
+innerclass innerClass java/net/http/HttpClient$Version outerClass java/net/http/HttpClient innerClassName Version flags 4019
+method name statusCode descriptor ()I flags 401
+method name request descriptor ()Ljava/net/http/HttpRequest; flags 401
+method name previousResponse descriptor ()Ljava/util/Optional; flags 401 signature ()Ljava/util/Optional<Ljava/net/http/HttpResponse<TT;>;>;
+method name headers descriptor ()Ljava/net/http/HttpHeaders; flags 401
+method name body descriptor ()Ljava/lang/Object; flags 401 signature ()TT;
+method name sslSession descriptor ()Ljava/util/Optional; flags 401 signature ()Ljava/util/Optional<Ljavax/net/ssl/SSLSession;>;
+method name uri descriptor ()Ljava/net/URI; flags 401
+method name version descriptor ()Ljava/net/http/HttpClient$Version; flags 401
+
+class name java/net/http/HttpResponse$BodyHandler
+header extends java/lang/Object nestHost java/net/http/HttpResponse flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object; runtimeAnnotations @Ljava/lang/FunctionalInterface;
+innerclass innerClass java/net/http/HttpResponse$ResponseInfo outerClass java/net/http/HttpResponse innerClassName ResponseInfo flags 609
+innerclass innerClass java/net/http/HttpResponse$BodySubscriber outerClass java/net/http/HttpResponse innerClassName BodySubscriber flags 609
+innerclass innerClass java/net/http/HttpResponse$BodyHandler outerClass java/net/http/HttpResponse innerClassName BodyHandler flags 609
+method name apply descriptor (Ljava/net/http/HttpResponse$ResponseInfo;)Ljava/net/http/HttpResponse$BodySubscriber; flags 401 signature (Ljava/net/http/HttpResponse$ResponseInfo;)Ljava/net/http/HttpResponse$BodySubscriber<TT;>;
+
+class name java/net/http/HttpResponse$BodyHandlers
+header extends java/lang/Object nestHost java/net/http/HttpResponse flags 21
+innerclass innerClass java/net/http/HttpResponse$BodyHandlers outerClass java/net/http/HttpResponse innerClassName BodyHandlers flags 9
+innerclass innerClass java/util/concurrent/Flow$Subscriber outerClass java/util/concurrent/Flow innerClassName Subscriber flags 609
+innerclass innerClass java/net/http/HttpResponse$BodyHandler outerClass java/net/http/HttpResponse innerClassName BodyHandler flags 609
+innerclass innerClass java/util/concurrent/Flow$Publisher outerClass java/util/concurrent/Flow innerClassName Publisher flags 609
+innerclass innerClass java/net/http/HttpResponse$ResponseInfo outerClass java/net/http/HttpResponse innerClassName ResponseInfo flags 609
+innerclass innerClass java/net/http/HttpResponse$BodySubscriber outerClass java/net/http/HttpResponse innerClassName BodySubscriber flags 609
+innerclass innerClass java/net/http/HttpResponse$BodySubscribers outerClass java/net/http/HttpResponse innerClassName BodySubscribers flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+method name fromSubscriber descriptor (Ljava/util/concurrent/Flow$Subscriber;)Ljava/net/http/HttpResponse$BodyHandler; flags 9 signature (Ljava/util/concurrent/Flow$Subscriber<-Ljava/util/List<Ljava/nio/ByteBuffer;>;>;)Ljava/net/http/HttpResponse$BodyHandler<Ljava/lang/Void;>;
+method name fromSubscriber descriptor (Ljava/util/concurrent/Flow$Subscriber;Ljava/util/function/Function;)Ljava/net/http/HttpResponse$BodyHandler; flags 9 signature <S::Ljava/util/concurrent/Flow$Subscriber<-Ljava/util/List<Ljava/nio/ByteBuffer;>;>;T:Ljava/lang/Object;>(TS;Ljava/util/function/Function<-TS;+TT;>;)Ljava/net/http/HttpResponse$BodyHandler<TT;>;
+method name fromLineSubscriber descriptor (Ljava/util/concurrent/Flow$Subscriber;)Ljava/net/http/HttpResponse$BodyHandler; flags 9 signature (Ljava/util/concurrent/Flow$Subscriber<-Ljava/lang/String;>;)Ljava/net/http/HttpResponse$BodyHandler<Ljava/lang/Void;>;
+method name fromLineSubscriber descriptor (Ljava/util/concurrent/Flow$Subscriber;Ljava/util/function/Function;Ljava/lang/String;)Ljava/net/http/HttpResponse$BodyHandler; flags 9 signature <S::Ljava/util/concurrent/Flow$Subscriber<-Ljava/lang/String;>;T:Ljava/lang/Object;>(TS;Ljava/util/function/Function<-TS;+TT;>;Ljava/lang/String;)Ljava/net/http/HttpResponse$BodyHandler<TT;>;
+method name discarding descriptor ()Ljava/net/http/HttpResponse$BodyHandler; flags 9 signature ()Ljava/net/http/HttpResponse$BodyHandler<Ljava/lang/Void;>;
+method name replacing descriptor (Ljava/lang/Object;)Ljava/net/http/HttpResponse$BodyHandler; flags 9 signature <U:Ljava/lang/Object;>(TU;)Ljava/net/http/HttpResponse$BodyHandler<TU;>;
+method name ofString descriptor (Ljava/nio/charset/Charset;)Ljava/net/http/HttpResponse$BodyHandler; flags 9 signature (Ljava/nio/charset/Charset;)Ljava/net/http/HttpResponse$BodyHandler<Ljava/lang/String;>;
+method name ofFile descriptor (Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/net/http/HttpResponse$BodyHandler; flags 89 signature (Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/net/http/HttpResponse$BodyHandler<Ljava/nio/file/Path;>;
+method name ofFile descriptor (Ljava/nio/file/Path;)Ljava/net/http/HttpResponse$BodyHandler; flags 9 signature (Ljava/nio/file/Path;)Ljava/net/http/HttpResponse$BodyHandler<Ljava/nio/file/Path;>;
+method name ofFileDownload descriptor (Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/net/http/HttpResponse$BodyHandler; flags 89 signature (Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/net/http/HttpResponse$BodyHandler<Ljava/nio/file/Path;>;
+method name ofInputStream descriptor ()Ljava/net/http/HttpResponse$BodyHandler; flags 9 signature ()Ljava/net/http/HttpResponse$BodyHandler<Ljava/io/InputStream;>;
+method name ofLines descriptor ()Ljava/net/http/HttpResponse$BodyHandler; flags 9 signature ()Ljava/net/http/HttpResponse$BodyHandler<Ljava/util/stream/Stream<Ljava/lang/String;>;>;
+method name ofByteArrayConsumer descriptor (Ljava/util/function/Consumer;)Ljava/net/http/HttpResponse$BodyHandler; flags 9 signature (Ljava/util/function/Consumer<Ljava/util/Optional<[B>;>;)Ljava/net/http/HttpResponse$BodyHandler<Ljava/lang/Void;>;
+method name ofByteArray descriptor ()Ljava/net/http/HttpResponse$BodyHandler; flags 9 signature ()Ljava/net/http/HttpResponse$BodyHandler<[B>;
+method name ofString descriptor ()Ljava/net/http/HttpResponse$BodyHandler; flags 9 signature ()Ljava/net/http/HttpResponse$BodyHandler<Ljava/lang/String;>;
+method name ofPublisher descriptor ()Ljava/net/http/HttpResponse$BodyHandler; flags 9 signature ()Ljava/net/http/HttpResponse$BodyHandler<Ljava/util/concurrent/Flow$Publisher<Ljava/util/List<Ljava/nio/ByteBuffer;>;>;>;
+method name buffering descriptor (Ljava/net/http/HttpResponse$BodyHandler;I)Ljava/net/http/HttpResponse$BodyHandler; flags 9 signature <T:Ljava/lang/Object;>(Ljava/net/http/HttpResponse$BodyHandler<TT;>;I)Ljava/net/http/HttpResponse$BodyHandler<TT;>;
+
+class name java/net/http/HttpResponse$BodySubscriber
+header extends java/lang/Object implements java/util/concurrent/Flow$Subscriber nestHost java/net/http/HttpResponse flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/concurrent/Flow$Subscriber<Ljava/util/List<Ljava/nio/ByteBuffer;>;>;
+innerclass innerClass java/util/concurrent/Flow$Subscriber outerClass java/util/concurrent/Flow innerClassName Subscriber flags 609
+innerclass innerClass java/net/http/HttpResponse$BodySubscriber outerClass java/net/http/HttpResponse innerClassName BodySubscriber flags 609
+method name getBody descriptor ()Ljava/util/concurrent/CompletionStage; flags 401 signature ()Ljava/util/concurrent/CompletionStage<TT;>;
+
+class name java/net/http/HttpResponse$BodySubscribers
+header extends java/lang/Object nestHost java/net/http/HttpResponse flags 21
+innerclass innerClass java/net/http/HttpResponse$BodySubscribers outerClass java/net/http/HttpResponse innerClassName BodySubscribers flags 9
+innerclass innerClass java/util/concurrent/Flow$Subscriber outerClass java/util/concurrent/Flow innerClassName Subscriber flags 609
+innerclass innerClass java/net/http/HttpResponse$BodySubscriber outerClass java/net/http/HttpResponse innerClassName BodySubscriber flags 609
+innerclass innerClass java/util/concurrent/Flow$Publisher outerClass java/util/concurrent/Flow innerClassName Publisher flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+method name fromSubscriber descriptor (Ljava/util/concurrent/Flow$Subscriber;)Ljava/net/http/HttpResponse$BodySubscriber; flags 9 signature (Ljava/util/concurrent/Flow$Subscriber<-Ljava/util/List<Ljava/nio/ByteBuffer;>;>;)Ljava/net/http/HttpResponse$BodySubscriber<Ljava/lang/Void;>;
+method name fromSubscriber descriptor (Ljava/util/concurrent/Flow$Subscriber;Ljava/util/function/Function;)Ljava/net/http/HttpResponse$BodySubscriber; flags 9 signature <S::Ljava/util/concurrent/Flow$Subscriber<-Ljava/util/List<Ljava/nio/ByteBuffer;>;>;T:Ljava/lang/Object;>(TS;Ljava/util/function/Function<-TS;+TT;>;)Ljava/net/http/HttpResponse$BodySubscriber<TT;>;
+method name fromLineSubscriber descriptor (Ljava/util/concurrent/Flow$Subscriber;)Ljava/net/http/HttpResponse$BodySubscriber; flags 9 signature (Ljava/util/concurrent/Flow$Subscriber<-Ljava/lang/String;>;)Ljava/net/http/HttpResponse$BodySubscriber<Ljava/lang/Void;>;
+method name fromLineSubscriber descriptor (Ljava/util/concurrent/Flow$Subscriber;Ljava/util/function/Function;Ljava/nio/charset/Charset;Ljava/lang/String;)Ljava/net/http/HttpResponse$BodySubscriber; flags 9 signature <S::Ljava/util/concurrent/Flow$Subscriber<-Ljava/lang/String;>;T:Ljava/lang/Object;>(TS;Ljava/util/function/Function<-TS;+TT;>;Ljava/nio/charset/Charset;Ljava/lang/String;)Ljava/net/http/HttpResponse$BodySubscriber<TT;>;
+method name ofString descriptor (Ljava/nio/charset/Charset;)Ljava/net/http/HttpResponse$BodySubscriber; flags 9 signature (Ljava/nio/charset/Charset;)Ljava/net/http/HttpResponse$BodySubscriber<Ljava/lang/String;>;
+method name ofByteArray descriptor ()Ljava/net/http/HttpResponse$BodySubscriber; flags 9 signature ()Ljava/net/http/HttpResponse$BodySubscriber<[B>;
+method name ofFile descriptor (Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/net/http/HttpResponse$BodySubscriber; flags 89 signature (Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/net/http/HttpResponse$BodySubscriber<Ljava/nio/file/Path;>;
+method name ofFile descriptor (Ljava/nio/file/Path;)Ljava/net/http/HttpResponse$BodySubscriber; flags 9 signature (Ljava/nio/file/Path;)Ljava/net/http/HttpResponse$BodySubscriber<Ljava/nio/file/Path;>;
+method name ofByteArrayConsumer descriptor (Ljava/util/function/Consumer;)Ljava/net/http/HttpResponse$BodySubscriber; flags 9 signature (Ljava/util/function/Consumer<Ljava/util/Optional<[B>;>;)Ljava/net/http/HttpResponse$BodySubscriber<Ljava/lang/Void;>;
+method name ofInputStream descriptor ()Ljava/net/http/HttpResponse$BodySubscriber; flags 9 signature ()Ljava/net/http/HttpResponse$BodySubscriber<Ljava/io/InputStream;>;
+method name ofLines descriptor (Ljava/nio/charset/Charset;)Ljava/net/http/HttpResponse$BodySubscriber; flags 9 signature (Ljava/nio/charset/Charset;)Ljava/net/http/HttpResponse$BodySubscriber<Ljava/util/stream/Stream<Ljava/lang/String;>;>;
+method name ofPublisher descriptor ()Ljava/net/http/HttpResponse$BodySubscriber; flags 9 signature ()Ljava/net/http/HttpResponse$BodySubscriber<Ljava/util/concurrent/Flow$Publisher<Ljava/util/List<Ljava/nio/ByteBuffer;>;>;>;
+method name replacing descriptor (Ljava/lang/Object;)Ljava/net/http/HttpResponse$BodySubscriber; flags 9 signature <U:Ljava/lang/Object;>(TU;)Ljava/net/http/HttpResponse$BodySubscriber<TU;>;
+method name discarding descriptor ()Ljava/net/http/HttpResponse$BodySubscriber; flags 9 signature ()Ljava/net/http/HttpResponse$BodySubscriber<Ljava/lang/Void;>;
+method name buffering descriptor (Ljava/net/http/HttpResponse$BodySubscriber;I)Ljava/net/http/HttpResponse$BodySubscriber; flags 9 signature <T:Ljava/lang/Object;>(Ljava/net/http/HttpResponse$BodySubscriber<TT;>;I)Ljava/net/http/HttpResponse$BodySubscriber<TT;>;
+method name mapping descriptor (Ljava/net/http/HttpResponse$BodySubscriber;Ljava/util/function/Function;)Ljava/net/http/HttpResponse$BodySubscriber; flags 9 signature <T:Ljava/lang/Object;U:Ljava/lang/Object;>(Ljava/net/http/HttpResponse$BodySubscriber<TT;>;Ljava/util/function/Function<-TT;+TU;>;)Ljava/net/http/HttpResponse$BodySubscriber<TU;>;
+
+class name java/net/http/HttpResponse$PushPromiseHandler
+header extends java/lang/Object nestHost java/net/http/HttpResponse flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object;
+innerclass innerClass java/net/http/HttpResponse$BodyHandler outerClass java/net/http/HttpResponse innerClassName BodyHandler flags 609
+innerclass innerClass java/net/http/HttpResponse$PushPromiseHandler outerClass java/net/http/HttpResponse innerClassName PushPromiseHandler flags 609
+method name applyPushPromise descriptor (Ljava/net/http/HttpRequest;Ljava/net/http/HttpRequest;Ljava/util/function/Function;)V flags 401 signature (Ljava/net/http/HttpRequest;Ljava/net/http/HttpRequest;Ljava/util/function/Function<Ljava/net/http/HttpResponse$BodyHandler<TT;>;Ljava/util/concurrent/CompletableFuture<Ljava/net/http/HttpResponse<TT;>;>;>;)V
+method name of descriptor (Ljava/util/function/Function;Ljava/util/concurrent/ConcurrentMap;)Ljava/net/http/HttpResponse$PushPromiseHandler; flags 9 signature <T:Ljava/lang/Object;>(Ljava/util/function/Function<Ljava/net/http/HttpRequest;Ljava/net/http/HttpResponse$BodyHandler<TT;>;>;Ljava/util/concurrent/ConcurrentMap<Ljava/net/http/HttpRequest;Ljava/util/concurrent/CompletableFuture<Ljava/net/http/HttpResponse<TT;>;>;>;)Ljava/net/http/HttpResponse$PushPromiseHandler<TT;>;
+
+class name java/net/http/HttpResponse$ResponseInfo
+header extends java/lang/Object nestHost java/net/http/HttpResponse flags 601
+innerclass innerClass java/net/http/HttpClient$Version outerClass java/net/http/HttpClient innerClassName Version flags 4019
+innerclass innerClass java/net/http/HttpResponse$ResponseInfo outerClass java/net/http/HttpResponse innerClassName ResponseInfo flags 609
+method name statusCode descriptor ()I flags 401
+method name headers descriptor ()Ljava/net/http/HttpHeaders; flags 401
+method name version descriptor ()Ljava/net/http/HttpClient$Version; flags 401
+
+class name java/net/http/HttpTimeoutException
+header extends java/io/IOException flags 21
+method name <init> descriptor (Ljava/lang/String;)V flags 1
+
+class name java/net/http/WebSocket
+header extends java/lang/Object nestMembers java/net/http/WebSocket$Listener,java/net/http/WebSocket$Builder flags 601
+innerclass innerClass java/net/http/WebSocket$Listener outerClass java/net/http/WebSocket innerClassName Listener flags 609
+innerclass innerClass java/net/http/WebSocket$Builder outerClass java/net/http/WebSocket innerClassName Builder flags 609
+field name NORMAL_CLOSURE descriptor I constantValue 1000 flags 19
+method name sendText descriptor (Ljava/lang/CharSequence;Z)Ljava/util/concurrent/CompletableFuture; flags 401 signature (Ljava/lang/CharSequence;Z)Ljava/util/concurrent/CompletableFuture<Ljava/net/http/WebSocket;>;
+method name sendBinary descriptor (Ljava/nio/ByteBuffer;Z)Ljava/util/concurrent/CompletableFuture; flags 401 signature (Ljava/nio/ByteBuffer;Z)Ljava/util/concurrent/CompletableFuture<Ljava/net/http/WebSocket;>;
+method name sendPing descriptor (Ljava/nio/ByteBuffer;)Ljava/util/concurrent/CompletableFuture; flags 401 signature (Ljava/nio/ByteBuffer;)Ljava/util/concurrent/CompletableFuture<Ljava/net/http/WebSocket;>;
+method name sendPong descriptor (Ljava/nio/ByteBuffer;)Ljava/util/concurrent/CompletableFuture; flags 401 signature (Ljava/nio/ByteBuffer;)Ljava/util/concurrent/CompletableFuture<Ljava/net/http/WebSocket;>;
+method name sendClose descriptor (ILjava/lang/String;)Ljava/util/concurrent/CompletableFuture; flags 401 signature (ILjava/lang/String;)Ljava/util/concurrent/CompletableFuture<Ljava/net/http/WebSocket;>;
+method name request descriptor (J)V flags 401
+method name getSubprotocol descriptor ()Ljava/lang/String; flags 401
+method name isOutputClosed descriptor ()Z flags 401
+method name isInputClosed descriptor ()Z flags 401
+method name abort descriptor ()V flags 401
+
+class name java/net/http/WebSocket$Builder
+header extends java/lang/Object nestHost java/net/http/WebSocket flags 601
+innerclass innerClass java/net/http/WebSocket$Builder outerClass java/net/http/WebSocket innerClassName Builder flags 609
+innerclass innerClass java/net/http/WebSocket$Listener outerClass java/net/http/WebSocket innerClassName Listener flags 609
+method name header descriptor (Ljava/lang/String;Ljava/lang/String;)Ljava/net/http/WebSocket$Builder; flags 401
+method name connectTimeout descriptor (Ljava/time/Duration;)Ljava/net/http/WebSocket$Builder; flags 401
+method name subprotocols descriptor (Ljava/lang/String;[Ljava/lang/String;)Ljava/net/http/WebSocket$Builder; flags 481
+method name buildAsync descriptor (Ljava/net/URI;Ljava/net/http/WebSocket$Listener;)Ljava/util/concurrent/CompletableFuture; flags 401 signature (Ljava/net/URI;Ljava/net/http/WebSocket$Listener;)Ljava/util/concurrent/CompletableFuture<Ljava/net/http/WebSocket;>;
+
+class name java/net/http/WebSocket$Listener
+header extends java/lang/Object nestHost java/net/http/WebSocket flags 601
+innerclass innerClass java/net/http/WebSocket$Listener outerClass java/net/http/WebSocket innerClassName Listener flags 609
+method name onOpen descriptor (Ljava/net/http/WebSocket;)V flags 1
+method name onText descriptor (Ljava/net/http/WebSocket;Ljava/lang/CharSequence;Z)Ljava/util/concurrent/CompletionStage; flags 1 signature (Ljava/net/http/WebSocket;Ljava/lang/CharSequence;Z)Ljava/util/concurrent/CompletionStage<*>;
+method name onBinary descriptor (Ljava/net/http/WebSocket;Ljava/nio/ByteBuffer;Z)Ljava/util/concurrent/CompletionStage; flags 1 signature (Ljava/net/http/WebSocket;Ljava/nio/ByteBuffer;Z)Ljava/util/concurrent/CompletionStage<*>;
+method name onPing descriptor (Ljava/net/http/WebSocket;Ljava/nio/ByteBuffer;)Ljava/util/concurrent/CompletionStage; flags 1 signature (Ljava/net/http/WebSocket;Ljava/nio/ByteBuffer;)Ljava/util/concurrent/CompletionStage<*>;
+method name onPong descriptor (Ljava/net/http/WebSocket;Ljava/nio/ByteBuffer;)Ljava/util/concurrent/CompletionStage; flags 1 signature (Ljava/net/http/WebSocket;Ljava/nio/ByteBuffer;)Ljava/util/concurrent/CompletionStage<*>;
+method name onClose descriptor (Ljava/net/http/WebSocket;ILjava/lang/String;)Ljava/util/concurrent/CompletionStage; flags 1 signature (Ljava/net/http/WebSocket;ILjava/lang/String;)Ljava/util/concurrent/CompletionStage<*>;
+method name onError descriptor (Ljava/net/http/WebSocket;Ljava/lang/Throwable;)V flags 1
+
+class name java/net/http/WebSocketHandshakeException
+header extends java/io/IOException flags 31
+method name <init> descriptor (Ljava/net/http/HttpResponse;)V flags 1 signature (Ljava/net/http/HttpResponse<*>;)V
+method name getResponse descriptor ()Ljava/net/http/HttpResponse; flags 1 signature ()Ljava/net/http/HttpResponse<*>;
+method name initCause descriptor (Ljava/lang/Throwable;)Ljava/net/http/WebSocketHandshakeException; flags 1
+method name initCause descriptor (Ljava/lang/Throwable;)Ljava/lang/Throwable; flags 1041
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/java.prefs-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,52 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name java.prefs
+header exports java/util/prefs requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;java.xml\u0020;flags\u0020;0 uses java/util/prefs/PreferencesFactory target linux-amd64 flags 8000
+
+class name java/util/prefs/BackingStoreException
+header extends java/lang/Exception flags 21
+
+class name java/util/prefs/InvalidPreferencesFormatException
+header extends java/lang/Exception flags 21
+
+class name java/util/prefs/NodeChangeEvent
+header extends java/util/EventObject flags 21
+
+class name java/util/prefs/NodeChangeListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name java/util/prefs/PreferenceChangeEvent
+header extends java/util/EventObject flags 21
+
+class name java/util/prefs/PreferenceChangeListener
+header extends java/lang/Object implements java/util/EventListener flags 601 runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name java/util/prefs/PreferencesFactory
+header extends java/lang/Object flags 601
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/java.rmi-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,236 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name java.rmi
+header exports java/rmi,java/rmi/activation,java/rmi/dgc,java/rmi/registry,java/rmi/server,javax/rmi/ssl requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;java.logging\u0020;flags\u0020;0 uses java/rmi/server/RMIClassLoaderSpi target linux-amd64 flags 8000
+
+class name java/rmi/AccessException
+header extends java/rmi/RemoteException flags 21
+
+class name java/rmi/AlreadyBoundException
+header extends java/lang/Exception flags 21
+
+class name java/rmi/ConnectException
+header extends java/rmi/RemoteException flags 21
+
+class name java/rmi/ConnectIOException
+header extends java/rmi/RemoteException flags 21
+
+class name java/rmi/MarshalException
+header extends java/rmi/RemoteException flags 21
+
+class name java/rmi/NoSuchObjectException
+header extends java/rmi/RemoteException flags 21
+
+class name java/rmi/NotBoundException
+header extends java/lang/Exception flags 21
+
+class name java/rmi/RMISecurityException
+header extends java/lang/SecurityException flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;
+
+class name java/rmi/RMISecurityManager
+header extends java/lang/SecurityManager flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;
+
+class name java/rmi/Remote
+header extends java/lang/Object flags 601
+
+class name java/rmi/RemoteException
+header extends java/io/IOException flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/rmi/ServerError
+header extends java/rmi/RemoteException flags 21
+
+class name java/rmi/ServerException
+header extends java/rmi/RemoteException flags 21
+
+class name java/rmi/ServerRuntimeException
+header extends java/rmi/RemoteException flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;
+
+class name java/rmi/StubNotFoundException
+header extends java/rmi/RemoteException flags 21
+
+class name java/rmi/UnexpectedException
+header extends java/rmi/RemoteException flags 21
+
+class name java/rmi/UnknownHostException
+header extends java/rmi/RemoteException flags 21
+
+class name java/rmi/UnmarshalException
+header extends java/rmi/RemoteException flags 21
+
+class name java/rmi/activation/Activatable
+header extends java/rmi/server/RemoteServer flags 421
+
+class name java/rmi/activation/ActivateFailedException
+header extends java/rmi/RemoteException flags 21
+
+class name java/rmi/activation/ActivationDesc
+header extends java/lang/Object implements java/io/Serializable flags 31
+
+class name java/rmi/activation/ActivationException
+header extends java/lang/Exception flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/rmi/activation/ActivationGroup
+header extends java/rmi/server/UnicastRemoteObject implements java/rmi/activation/ActivationInstantiator flags 421
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/rmi/activation/ActivationGroupDesc
+header extends java/lang/Object implements java/io/Serializable nestMembers java/rmi/activation/ActivationGroupDesc$CommandEnvironment flags 31
+innerclass innerClass java/rmi/activation/ActivationGroupDesc$CommandEnvironment outerClass java/rmi/activation/ActivationGroupDesc innerClassName CommandEnvironment flags 9
+
+class name java/rmi/activation/ActivationGroupDesc$CommandEnvironment
+header extends java/lang/Object implements java/io/Serializable nestHost java/rmi/activation/ActivationGroupDesc flags 21
+innerclass innerClass java/rmi/activation/ActivationGroupDesc$CommandEnvironment outerClass java/rmi/activation/ActivationGroupDesc innerClassName CommandEnvironment flags 9
+
+class name java/rmi/activation/ActivationGroupID
+header extends java/lang/Object implements java/io/Serializable flags 21
+
+class name java/rmi/activation/ActivationGroup_Stub
+header extends java/rmi/server/RemoteStub implements java/rmi/activation/ActivationInstantiator,java/rmi/Remote flags 31
+
+class name java/rmi/activation/ActivationInstantiator
+header extends java/lang/Object implements java/rmi/Remote flags 601
+
+class name java/rmi/activation/ActivationMonitor
+header extends java/lang/Object implements java/rmi/Remote flags 601
+
+class name java/rmi/activation/ActivationSystem
+header extends java/lang/Object implements java/rmi/Remote flags 601
+
+class name java/rmi/activation/Activator
+header extends java/lang/Object implements java/rmi/Remote flags 601
+
+class name java/rmi/activation/UnknownGroupException
+header extends java/rmi/activation/ActivationException flags 21
+
+class name java/rmi/activation/UnknownObjectException
+header extends java/rmi/activation/ActivationException flags 21
+
+class name java/rmi/dgc/DGC
+header extends java/lang/Object implements java/rmi/Remote flags 601
+
+class name java/rmi/dgc/Lease
+header extends java/lang/Object implements java/io/Serializable flags 31
+
+class name java/rmi/dgc/VMID
+header extends java/lang/Object implements java/io/Serializable flags 31
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/rmi/registry/LocateRegistry
+header extends java/lang/Object flags 31
+
+class name java/rmi/registry/Registry
+header extends java/lang/Object implements java/rmi/Remote flags 601
+
+class name java/rmi/registry/RegistryHandler
+header extends java/lang/Object flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;
+
+class name java/rmi/server/ExportException
+header extends java/rmi/RemoteException flags 21
+
+class name java/rmi/server/LoaderHandler
+header extends java/lang/Object flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;
+
+class name java/rmi/server/LogStream
+header extends java/io/PrintStream flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;
+
+class name java/rmi/server/ObjID
+header extends java/lang/Object implements java/io/Serializable flags 31
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/rmi/server/Operation
+header extends java/lang/Object flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;
+
+class name java/rmi/server/RMIClassLoaderSpi
+header extends java/lang/Object flags 421
+
+class name java/rmi/server/RMIClientSocketFactory
+header extends java/lang/Object flags 601
+
+class name java/rmi/server/RMIFailureHandler
+header extends java/lang/Object flags 601
+
+class name java/rmi/server/RMIServerSocketFactory
+header extends java/lang/Object flags 601
+
+class name java/rmi/server/RMISocketFactory
+header extends java/lang/Object implements java/rmi/server/RMIClientSocketFactory,java/rmi/server/RMIServerSocketFactory flags 421
+
+class name java/rmi/server/RemoteCall
+header extends java/lang/Object flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;
+
+class name java/rmi/server/RemoteObject
+header extends java/lang/Object implements java/rmi/Remote,java/io/Serializable flags 421
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/rmi/server/RemoteRef
+header extends java/lang/Object implements java/io/Externalizable flags 601
+
+class name java/rmi/server/RemoteServer
+header extends java/rmi/server/RemoteObject flags 421
+
+class name java/rmi/server/RemoteStub
+header extends java/rmi/server/RemoteObject flags 421 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;
+
+class name java/rmi/server/ServerCloneException
+header extends java/lang/CloneNotSupportedException flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/rmi/server/ServerNotActiveException
+header extends java/lang/Exception flags 21
+
+class name java/rmi/server/ServerRef
+header extends java/lang/Object implements java/rmi/server/RemoteRef flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;
+
+class name java/rmi/server/Skeleton
+header extends java/lang/Object flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;
+
+class name java/rmi/server/SkeletonMismatchException
+header extends java/rmi/RemoteException flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;
+
+class name java/rmi/server/SkeletonNotFoundException
+header extends java/rmi/RemoteException flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;
+
+class name java/rmi/server/SocketSecurityException
+header extends java/rmi/server/ExportException flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;
+
+class name java/rmi/server/UID
+header extends java/lang/Object implements java/io/Serializable flags 31
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/rmi/server/UnicastRemoteObject
+header extends java/rmi/server/RemoteServer flags 21
+
+class name java/rmi/server/Unreferenced
+header extends java/lang/Object flags 601
+
+class name javax/rmi/ssl/SslRMIClientSocketFactory
+header extends java/lang/Object implements java/rmi/server/RMIClientSocketFactory,java/io/Serializable flags 21
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/java.scripting-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,66 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name java.scripting
+header exports javax/script requires name\u0020;java.base\u0020;flags\u0020;8000 uses javax/script/ScriptEngineFactory target linux-amd64 flags 8000
+
+class name javax/script/AbstractScriptEngine
+header extends java/lang/Object implements javax/script/ScriptEngine flags 421
+
+class name javax/script/Bindings
+header extends java/lang/Object implements java/util/Map flags 601 signature Ljava/lang/Object;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
+
+class name javax/script/Compilable
+header extends java/lang/Object flags 601
+
+class name javax/script/CompiledScript
+header extends java/lang/Object flags 421
+
+class name javax/script/Invocable
+header extends java/lang/Object flags 601
+
+class name javax/script/ScriptContext
+header extends java/lang/Object flags 601
+
+class name javax/script/ScriptEngine
+header extends java/lang/Object flags 601
+
+class name javax/script/ScriptEngineFactory
+header extends java/lang/Object flags 601
+
+class name javax/script/ScriptException
+header extends java/lang/Exception flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/script/SimpleBindings
+header extends java/lang/Object implements javax/script/Bindings flags 21
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+
+class name javax/script/SimpleScriptContext
+header extends java/lang/Object implements javax/script/ScriptContext flags 21
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/java.se-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,31 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name java.se
+header requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;java.compiler\u0020;flags\u0020;20,name\u0020;java.datatransfer\u0020;flags\u0020;20,name\u0020;java.desktop\u0020;flags\u0020;20,name\u0020;java.instrument\u0020;flags\u0020;20,name\u0020;java.logging\u0020;flags\u0020;20,name\u0020;java.management\u0020;flags\u0020;20,name\u0020;java.management.rmi\u0020;flags\u0020;20,name\u0020;java.naming\u0020;flags\u0020;20,name\u0020;java.net.http\u0020;flags\u0020;20,name\u0020;java.prefs\u0020;flags\u0020;20,name\u0020;java.rmi\u0020;flags\u0020;20,name\u0020;java.scripting\u0020;flags\u0020;20,name\u0020;java.security.jgss\u0020;flags\u0020;20,name\u0020;java.security.sasl\u0020;flags\u0020;20,name\u0020;java.sql\u0020;flags\u0020;20,name\u0020;java.sql.rowset\u0020;flags\u0020;20,name\u0020;java.transaction.xa\u0020;flags\u0020;20,name\u0020;java.xml\u0020;flags\u0020;20,name\u0020;java.xml.crypto\u0020;flags\u0020;20 target linux-amd64 flags 8000
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/java.se.ee-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,30 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+-module name java.se.ee
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/java.security.jgss-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,102 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name java.security.jgss
+header exports javax/security/auth/kerberos,org/ietf/jgss requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;java.naming\u0020;flags\u0020;0 provides interface\u0020;java/security/Provider\u0020;impls\u0020;sun/security/jgss/SunProvider target linux-amd64 flags 8000
+
+class name javax/security/auth/kerberos/DelegationPermission
+header extends java/security/BasicPermission implements java/io/Serializable flags 31
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/security/auth/kerberos/EncryptionKey
+header extends java/lang/Object implements javax/crypto/SecretKey flags 31
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/security/auth/kerberos/KerberosCredMessage
+header extends java/lang/Object implements javax/security/auth/Destroyable flags 31
+innerclass innerClass java/util/Base64$Encoder outerClass java/util/Base64 innerClassName Encoder flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/security/auth/kerberos/KerberosKey
+header extends java/lang/Object implements javax/crypto/SecretKey flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/security/auth/kerberos/KerberosPrincipal
+header extends java/lang/Object implements java/security/Principal,java/io/Serializable flags 31
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/security/auth/kerberos/KerberosTicket
+header extends java/lang/Object implements javax/security/auth/Destroyable,javax/security/auth/Refreshable,java/io/Serializable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/security/auth/kerberos/KeyTab
+header extends java/lang/Object flags 31
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/security/auth/kerberos/ServicePermission
+header extends java/security/Permission implements java/io/Serializable flags 31
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name org/ietf/jgss/ChannelBinding
+header extends java/lang/Object flags 21
+
+class name org/ietf/jgss/GSSContext
+header extends java/lang/Object flags 601
+-method name initSecContext descriptor (Ljava/io/InputStream;Ljava/io/OutputStream;)I
+-method name acceptSecContext descriptor (Ljava/io/InputStream;Ljava/io/OutputStream;)V
+-method name wrap descriptor (Ljava/io/InputStream;Ljava/io/OutputStream;Lorg/ietf/jgss/MessageProp;)V
+-method name unwrap descriptor (Ljava/io/InputStream;Ljava/io/OutputStream;Lorg/ietf/jgss/MessageProp;)V
+-method name getMIC descriptor (Ljava/io/InputStream;Ljava/io/OutputStream;Lorg/ietf/jgss/MessageProp;)V
+-method name verifyMIC descriptor (Ljava/io/InputStream;Ljava/io/InputStream;Lorg/ietf/jgss/MessageProp;)V
+method name initSecContext descriptor (Ljava/io/InputStream;Ljava/io/OutputStream;)I thrownTypes org/ietf/jgss/GSSException flags 401 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="11")
+method name acceptSecContext descriptor (Ljava/io/InputStream;Ljava/io/OutputStream;)V thrownTypes org/ietf/jgss/GSSException flags 401 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="11")
+method name wrap descriptor (Ljava/io/InputStream;Ljava/io/OutputStream;Lorg/ietf/jgss/MessageProp;)V thrownTypes org/ietf/jgss/GSSException flags 401 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="11")
+method name unwrap descriptor (Ljava/io/InputStream;Ljava/io/OutputStream;Lorg/ietf/jgss/MessageProp;)V thrownTypes org/ietf/jgss/GSSException flags 401 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="11")
+method name getMIC descriptor (Ljava/io/InputStream;Ljava/io/OutputStream;Lorg/ietf/jgss/MessageProp;)V thrownTypes org/ietf/jgss/GSSException flags 401 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="11")
+method name verifyMIC descriptor (Ljava/io/InputStream;Ljava/io/InputStream;Lorg/ietf/jgss/MessageProp;)V thrownTypes org/ietf/jgss/GSSException flags 401 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="11")
+
+class name org/ietf/jgss/GSSCredential
+header extends java/lang/Object implements java/lang/Cloneable flags 601
+
+class name org/ietf/jgss/GSSException
+header extends java/lang/Exception flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name org/ietf/jgss/GSSManager
+header extends java/lang/Object flags 421
+
+class name org/ietf/jgss/GSSName
+header extends java/lang/Object flags 601
+
+class name org/ietf/jgss/MessageProp
+header extends java/lang/Object flags 21
+
+class name org/ietf/jgss/Oid
+header extends java/lang/Object flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/java.security.sasl-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,59 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name java.security.sasl
+header exports javax/security/sasl requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;java.logging\u0020;flags\u0020;0 provides interface\u0020;java/security/Provider\u0020;impls\u0020;com/sun/security/sasl/Provider target linux-amd64 flags 8000
+
+class name javax/security/sasl/AuthenticationException
+header extends javax/security/sasl/SaslException flags 21
+
+class name javax/security/sasl/AuthorizeCallback
+header extends java/lang/Object implements javax/security/auth/callback/Callback,java/io/Serializable flags 21
+
+class name javax/security/sasl/RealmCallback
+header extends javax/security/auth/callback/TextInputCallback flags 21
+
+class name javax/security/sasl/RealmChoiceCallback
+header extends javax/security/auth/callback/ChoiceCallback flags 21
+
+class name javax/security/sasl/SaslClient
+header extends java/lang/Object flags 601
+
+class name javax/security/sasl/SaslClientFactory
+header extends java/lang/Object flags 601
+
+class name javax/security/sasl/SaslException
+header extends java/io/IOException flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/security/sasl/SaslServer
+header extends java/lang/Object flags 601
+
+class name javax/security/sasl/SaslServerFactory
+header extends java/lang/Object flags 601
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/java.smartcardio-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,73 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name java.smartcardio
+header exports javax/smartcardio requires name\u0020;java.base\u0020;flags\u0020;8000 provides interface\u0020;java/security/Provider\u0020;impls\u0020;sun/security/smartcardio/SunPCSC target linux-amd64 flags 8000
+
+class name javax/smartcardio/ATR
+header extends java/lang/Object implements java/io/Serializable flags 31
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/smartcardio/Card
+header extends java/lang/Object flags 421
+
+class name javax/smartcardio/CardChannel
+header extends java/lang/Object flags 421
+
+class name javax/smartcardio/CardException
+header extends java/lang/Exception flags 21
+
+class name javax/smartcardio/CardNotPresentException
+header extends javax/smartcardio/CardException flags 21
+
+class name javax/smartcardio/CardPermission
+header extends java/security/Permission flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/smartcardio/CardTerminal
+header extends java/lang/Object flags 421
+
+class name javax/smartcardio/CardTerminals
+header extends java/lang/Object nestMembers javax/smartcardio/CardTerminals$State flags 421
+innerclass innerClass javax/smartcardio/CardTerminals$State outerClass javax/smartcardio/CardTerminals innerClassName State flags 4019
+
+class name javax/smartcardio/CardTerminals$State
+header extends java/lang/Enum nestHost javax/smartcardio/CardTerminals flags 4031 signature Ljava/lang/Enum<Ljavax/smartcardio/CardTerminals$State;>;
+innerclass innerClass javax/smartcardio/CardTerminals$State outerClass javax/smartcardio/CardTerminals innerClassName State flags 4019
+
+class name javax/smartcardio/CommandAPDU
+header extends java/lang/Object implements java/io/Serializable flags 31
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/smartcardio/ResponseAPDU
+header extends java/lang/Object implements java/io/Serializable flags 31
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/smartcardio/TerminalFactorySpi
+header extends java/lang/Object flags 421
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/java.sql-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,261 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name java.sql
+header exports java/sql,javax/sql requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;java.logging\u0020;flags\u0020;20,name\u0020;java.transaction.xa\u0020;flags\u0020;20,name\u0020;java.xml\u0020;flags\u0020;20 uses java/sql/Driver target linux-amd64 flags 8000
+
+class name java/sql/Array
+header extends java/lang/Object flags 601
+
+class name java/sql/BatchUpdateException
+header extends java/sql/SQLException flags 21
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+
+class name java/sql/Blob
+header extends java/lang/Object flags 601
+
+class name java/sql/CallableStatement
+header extends java/lang/Object implements java/sql/PreparedStatement flags 601
+
+class name java/sql/ClientInfoStatus
+header extends java/lang/Enum flags 4031 signature Ljava/lang/Enum<Ljava/sql/ClientInfoStatus;>;
+
+class name java/sql/Clob
+header extends java/lang/Object flags 601
+
+class name java/sql/Connection
+header extends java/lang/Object implements java/sql/Wrapper,java/lang/AutoCloseable flags 601
+
+class name java/sql/ConnectionBuilder
+header extends java/lang/Object flags 601
+
+class name java/sql/DataTruncation
+header extends java/sql/SQLWarning flags 21
+
+class name java/sql/DatabaseMetaData
+header extends java/lang/Object implements java/sql/Wrapper flags 601
+
+class name java/sql/Date
+header extends java/util/Date flags 21
+
+class name java/sql/Driver
+header extends java/lang/Object flags 601
+
+class name java/sql/DriverAction
+header extends java/lang/Object flags 601
+
+class name java/sql/DriverPropertyInfo
+header extends java/lang/Object flags 21
+
+class name java/sql/JDBCType
+header extends java/lang/Enum implements java/sql/SQLType flags 4031 signature Ljava/lang/Enum<Ljava/sql/JDBCType;>;Ljava/sql/SQLType;
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/sql/NClob
+header extends java/lang/Object implements java/sql/Clob flags 601
+
+class name java/sql/ParameterMetaData
+header extends java/lang/Object implements java/sql/Wrapper flags 601
+
+class name java/sql/PreparedStatement
+header extends java/lang/Object implements java/sql/Statement flags 601
+
+class name java/sql/PseudoColumnUsage
+header extends java/lang/Enum flags 4031 signature Ljava/lang/Enum<Ljava/sql/PseudoColumnUsage;>;
+
+class name java/sql/Ref
+header extends java/lang/Object flags 601
+
+class name java/sql/ResultSet
+header extends java/lang/Object implements java/sql/Wrapper,java/lang/AutoCloseable flags 601
+
+class name java/sql/ResultSetMetaData
+header extends java/lang/Object implements java/sql/Wrapper flags 601
+
+class name java/sql/RowId
+header extends java/lang/Object flags 601
+
+class name java/sql/RowIdLifetime
+header extends java/lang/Enum flags 4031 signature Ljava/lang/Enum<Ljava/sql/RowIdLifetime;>;
+
+class name java/sql/SQLClientInfoException
+header extends java/sql/SQLException flags 21
+
+class name java/sql/SQLData
+header extends java/lang/Object flags 601
+
+class name java/sql/SQLDataException
+header extends java/sql/SQLNonTransientException flags 21
+
+class name java/sql/SQLFeatureNotSupportedException
+header extends java/sql/SQLNonTransientException flags 21
+
+class name java/sql/SQLInput
+header extends java/lang/Object flags 601
+
+class name java/sql/SQLIntegrityConstraintViolationException
+header extends java/sql/SQLNonTransientException flags 21
+
+class name java/sql/SQLInvalidAuthorizationSpecException
+header extends java/sql/SQLNonTransientException flags 21
+
+class name java/sql/SQLNonTransientConnectionException
+header extends java/sql/SQLNonTransientException flags 21
+
+class name java/sql/SQLNonTransientException
+header extends java/sql/SQLException flags 21
+
+class name java/sql/SQLOutput
+header extends java/lang/Object flags 601
+
+class name java/sql/SQLPermission
+header extends java/security/BasicPermission flags 31
+
+class name java/sql/SQLRecoverableException
+header extends java/sql/SQLException flags 21
+
+class name java/sql/SQLSyntaxErrorException
+header extends java/sql/SQLNonTransientException flags 21
+
+class name java/sql/SQLTimeoutException
+header extends java/sql/SQLTransientException flags 21
+
+class name java/sql/SQLTransactionRollbackException
+header extends java/sql/SQLTransientException flags 21
+
+class name java/sql/SQLTransientConnectionException
+header extends java/sql/SQLTransientException flags 21
+
+class name java/sql/SQLTransientException
+header extends java/sql/SQLException flags 21
+
+class name java/sql/SQLType
+header extends java/lang/Object flags 601
+
+class name java/sql/SQLWarning
+header extends java/sql/SQLException flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/sql/SQLXML
+header extends java/lang/Object flags 601
+
+class name java/sql/Savepoint
+header extends java/lang/Object flags 601
+
+class name java/sql/ShardingKey
+header extends java/lang/Object flags 601
+
+class name java/sql/ShardingKeyBuilder
+header extends java/lang/Object flags 601
+
+class name java/sql/Statement
+header extends java/lang/Object implements java/sql/Wrapper,java/lang/AutoCloseable flags 601
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name java/sql/Struct
+header extends java/lang/Object flags 601
+
+class name java/sql/Time
+header extends java/util/Date flags 21
+
+class name java/sql/Timestamp
+header extends java/util/Date flags 21
+
+class name java/sql/Types
+header extends java/lang/Object flags 21
+
+class name java/sql/Wrapper
+header extends java/lang/Object flags 601
+
+class name javax/sql/CommonDataSource
+header extends java/lang/Object flags 601
+
+class name javax/sql/ConnectionEvent
+header extends java/util/EventObject flags 21
+
+class name javax/sql/ConnectionEventListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name javax/sql/ConnectionPoolDataSource
+header extends java/lang/Object implements javax/sql/CommonDataSource flags 601
+
+class name javax/sql/DataSource
+header extends java/lang/Object implements javax/sql/CommonDataSource,java/sql/Wrapper flags 601
+
+class name javax/sql/PooledConnection
+header extends java/lang/Object flags 601
+
+class name javax/sql/PooledConnectionBuilder
+header extends java/lang/Object flags 601
+
+class name javax/sql/RowSet
+header extends java/lang/Object implements java/sql/ResultSet flags 601
+
+class name javax/sql/RowSetEvent
+header extends java/util/EventObject flags 21
+
+class name javax/sql/RowSetInternal
+header extends java/lang/Object flags 601
+
+class name javax/sql/RowSetListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name javax/sql/RowSetMetaData
+header extends java/lang/Object implements java/sql/ResultSetMetaData flags 601
+
+class name javax/sql/RowSetReader
+header extends java/lang/Object flags 601
+
+class name javax/sql/RowSetWriter
+header extends java/lang/Object flags 601
+
+class name javax/sql/StatementEvent
+header extends java/util/EventObject flags 21
+
+class name javax/sql/StatementEventListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name javax/sql/XAConnection
+header extends java/lang/Object implements javax/sql/PooledConnection flags 601
+
+class name javax/sql/XAConnectionBuilder
+header extends java/lang/Object flags 601
+
+class name javax/sql/XADataSource
+header extends java/lang/Object implements javax/sql/CommonDataSource flags 601
+
+class name javax/transaction/xa/XAException
+header extends java/lang/Exception flags 21
+
+class name javax/transaction/xa/XAResource
+header extends java/lang/Object flags 601
+
+class name javax/transaction/xa/Xid
+header extends java/lang/Object flags 601
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/java.sql.rowset-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,129 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name java.sql.rowset
+header exports javax/sql/rowset,javax/sql/rowset/serial,javax/sql/rowset/spi requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;java.logging\u0020;flags\u0020;20,name\u0020;java.naming\u0020;flags\u0020;20,name\u0020;java.sql\u0020;flags\u0020;20 uses javax/sql/rowset/RowSetFactory target linux-amd64 flags 8000
+
+class name javax/sql/rowset/BaseRowSet
+header extends java/lang/Object implements java/io/Serializable,java/lang/Cloneable flags 421
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/sql/rowset/CachedRowSet
+header extends java/lang/Object implements javax/sql/RowSet,javax/sql/rowset/Joinable flags 601
+
+class name javax/sql/rowset/FilteredRowSet
+header extends java/lang/Object implements javax/sql/rowset/WebRowSet flags 601
+
+class name javax/sql/rowset/JdbcRowSet
+header extends java/lang/Object implements javax/sql/RowSet,javax/sql/rowset/Joinable flags 601
+
+class name javax/sql/rowset/JoinRowSet
+header extends java/lang/Object implements javax/sql/rowset/WebRowSet flags 601
+
+class name javax/sql/rowset/Joinable
+header extends java/lang/Object flags 601
+
+class name javax/sql/rowset/Predicate
+header extends java/lang/Object flags 601
+
+class name javax/sql/rowset/RowSetFactory
+header extends java/lang/Object flags 601
+
+class name javax/sql/rowset/RowSetWarning
+header extends java/sql/SQLException flags 21
+
+class name javax/sql/rowset/WebRowSet
+header extends java/lang/Object implements javax/sql/rowset/CachedRowSet flags 601
+
+class name javax/sql/rowset/serial/SQLInputImpl
+header extends java/lang/Object implements java/sql/SQLInput flags 21
+
+class name javax/sql/rowset/serial/SQLOutputImpl
+header extends java/lang/Object implements java/sql/SQLOutput flags 21
+
+class name javax/sql/rowset/serial/SerialArray
+header extends java/lang/Object implements java/sql/Array,java/io/Serializable,java/lang/Cloneable flags 21
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+
+class name javax/sql/rowset/serial/SerialBlob
+header extends java/lang/Object implements java/sql/Blob,java/io/Serializable,java/lang/Cloneable flags 21
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+
+class name javax/sql/rowset/serial/SerialClob
+header extends java/lang/Object implements java/sql/Clob,java/io/Serializable,java/lang/Cloneable flags 21
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/sql/rowset/serial/SerialDatalink
+header extends java/lang/Object implements java/io/Serializable,java/lang/Cloneable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/sql/rowset/serial/SerialException
+header extends java/sql/SQLException flags 21
+
+class name javax/sql/rowset/serial/SerialJavaObject
+header extends java/lang/Object implements java/io/Serializable,java/lang/Cloneable flags 21
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+
+class name javax/sql/rowset/serial/SerialRef
+header extends java/lang/Object implements java/sql/Ref,java/io/Serializable,java/lang/Cloneable flags 21
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/sql/rowset/serial/SerialStruct
+header extends java/lang/Object implements java/sql/Struct,java/io/Serializable,java/lang/Cloneable flags 21
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/sql/rowset/spi/SyncFactoryException
+header extends java/sql/SQLException flags 21
+
+class name javax/sql/rowset/spi/SyncProvider
+header extends java/lang/Object flags 421
+
+class name javax/sql/rowset/spi/SyncProviderException
+header extends java/sql/SQLException flags 21
+
+class name javax/sql/rowset/spi/SyncResolver
+header extends java/lang/Object implements javax/sql/RowSet flags 601
+
+class name javax/sql/rowset/spi/TransactionalWriter
+header extends java/lang/Object implements javax/sql/RowSetWriter flags 601
+
+class name javax/sql/rowset/spi/XmlReader
+header extends java/lang/Object implements javax/sql/RowSetReader flags 601
+
+class name javax/sql/rowset/spi/XmlWriter
+header extends java/lang/Object implements javax/sql/RowSetWriter flags 601
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/java.transaction-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,36 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+-module name java.transaction
+
+-class name javax/transaction/InvalidTransactionException
+
+-class name javax/transaction/TransactionRequiredException
+
+-class name javax/transaction/TransactionRolledbackException
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/java.transaction.xa-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,31 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name java.transaction.xa
+header exports javax/transaction/xa requires name\u0020;java.base\u0020;flags\u0020;8000 target linux-amd64 flags 8000
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/java.xml-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,636 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name java.xml
+header exports javax/xml,javax/xml/catalog,javax/xml/datatype,javax/xml/namespace,javax/xml/parsers,javax/xml/stream,javax/xml/stream/events,javax/xml/stream/util,javax/xml/transform,javax/xml/transform/dom,javax/xml/transform/sax,javax/xml/transform/stax,javax/xml/transform/stream,javax/xml/validation,javax/xml/xpath,org/w3c/dom,org/w3c/dom/bootstrap,org/w3c/dom/events,org/w3c/dom/ls,org/w3c/dom/ranges,org/w3c/dom/traversal,org/w3c/dom/views,org/xml/sax,org/xml/sax/ext,org/xml/sax/helpers requires name\u0020;java.base\u0020;flags\u0020;8000 uses javax/xml/datatype/DatatypeFactory,javax/xml/parsers/DocumentBuilderFactory,javax/xml/parsers/SAXParserFactory,javax/xml/stream/XMLEventFactory,javax/xml/stream/XMLInputFactory,javax/xml/stream/XMLOutputFactory,javax/xml/transform/TransformerFactory,javax/xml/validation/SchemaFactory,javax/xml/xpath/XPathFactory,org/xml/sax/XMLReader target linux-amd64 flags 8000
+
+class name javax/xml/XMLConstants
+header extends java/lang/Object flags 31
+
+class name javax/xml/catalog/Catalog
+header extends java/lang/Object flags 601
+
+class name javax/xml/catalog/CatalogException
+header extends java/lang/RuntimeException flags 21
+
+class name javax/xml/catalog/CatalogFeatures
+header extends java/lang/Object nestMembers javax/xml/catalog/CatalogFeatures$Builder,javax/xml/catalog/CatalogFeatures$Feature flags 21
+innerclass innerClass javax/xml/catalog/CatalogFeatures$Builder outerClass javax/xml/catalog/CatalogFeatures innerClassName Builder flags 9
+innerclass innerClass javax/xml/catalog/CatalogFeatures$Feature outerClass javax/xml/catalog/CatalogFeatures innerClassName Feature flags 4019
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/xml/catalog/CatalogFeatures$Builder
+header extends java/lang/Object nestHost javax/xml/catalog/CatalogFeatures flags 21
+innerclass innerClass javax/xml/catalog/CatalogFeatures$Feature outerClass javax/xml/catalog/CatalogFeatures innerClassName Feature flags 4019
+innerclass innerClass javax/xml/catalog/CatalogFeatures$Builder outerClass javax/xml/catalog/CatalogFeatures innerClassName Builder flags 9
+
+class name javax/xml/catalog/CatalogFeatures$Feature
+header extends java/lang/Enum nestHost javax/xml/catalog/CatalogFeatures flags 4031 signature Ljava/lang/Enum<Ljavax/xml/catalog/CatalogFeatures$Feature;>;
+innerclass innerClass javax/xml/catalog/CatalogFeatures$Feature outerClass javax/xml/catalog/CatalogFeatures innerClassName Feature flags 4019
+
+class name javax/xml/catalog/CatalogManager
+header extends java/lang/Object flags 31
+
+class name javax/xml/catalog/CatalogResolver
+header extends java/lang/Object implements org/xml/sax/EntityResolver,javax/xml/stream/XMLResolver,javax/xml/transform/URIResolver,org/w3c/dom/ls/LSResourceResolver flags 601
+
+class name javax/xml/datatype/DatatypeConfigurationException
+header extends java/lang/Exception flags 21
+
+class name javax/xml/datatype/DatatypeConstants
+header extends java/lang/Object nestMembers javax/xml/datatype/DatatypeConstants$Field flags 31
+innerclass innerClass javax/xml/datatype/DatatypeConstants$Field outerClass javax/xml/datatype/DatatypeConstants innerClassName Field flags 19
+
+class name javax/xml/datatype/DatatypeConstants$Field
+header extends java/lang/Object nestHost javax/xml/datatype/DatatypeConstants flags 31
+innerclass innerClass javax/xml/datatype/DatatypeConstants$Field outerClass javax/xml/datatype/DatatypeConstants innerClassName Field flags 19
+
+class name javax/xml/datatype/DatatypeFactory
+header extends java/lang/Object flags 421
+innerclass innerClass javax/xml/datatype/DatatypeConstants$Field outerClass javax/xml/datatype/DatatypeConstants innerClassName Field flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/xml/datatype/Duration
+header extends java/lang/Object flags 421
+innerclass innerClass javax/xml/datatype/DatatypeConstants$Field outerClass javax/xml/datatype/DatatypeConstants innerClassName Field flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/xml/datatype/XMLGregorianCalendar
+header extends java/lang/Object implements java/lang/Cloneable flags 421
+
+class name javax/xml/namespace/NamespaceContext
+header extends java/lang/Object flags 601
+
+class name javax/xml/namespace/QName
+header extends java/lang/Object implements java/io/Serializable flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/xml/parsers/DocumentBuilder
+header extends java/lang/Object flags 421
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/xml/parsers/DocumentBuilderFactory
+header extends java/lang/Object flags 421
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/xml/parsers/FactoryConfigurationError
+header extends java/lang/Error flags 21
+
+class name javax/xml/parsers/ParserConfigurationException
+header extends java/lang/Exception flags 21
+
+class name javax/xml/parsers/SAXParser
+header extends java/lang/Object flags 421
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/xml/parsers/SAXParserFactory
+header extends java/lang/Object flags 421
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/xml/stream/EventFilter
+header extends java/lang/Object flags 601
+
+class name javax/xml/stream/FactoryConfigurationError
+header extends java/lang/Error flags 21
+
+class name javax/xml/stream/Location
+header extends java/lang/Object flags 601
+
+class name javax/xml/stream/StreamFilter
+header extends java/lang/Object flags 601
+
+class name javax/xml/stream/XMLEventFactory
+header extends java/lang/Object flags 421
+
+class name javax/xml/stream/XMLEventReader
+header extends java/lang/Object implements java/util/Iterator flags 601 signature Ljava/lang/Object;Ljava/util/Iterator<Ljava/lang/Object;>;
+
+class name javax/xml/stream/XMLEventWriter
+header extends java/lang/Object implements javax/xml/stream/util/XMLEventConsumer flags 601
+
+class name javax/xml/stream/XMLInputFactory
+header extends java/lang/Object flags 421
+method name newFactory descriptor ()Ljavax/xml/stream/XMLInputFactory; thrownTypes javax/xml/stream/FactoryConfigurationError flags 9
+-method name newFactory descriptor ()Ljavax/xml/stream/XMLInputFactory;
+
+class name javax/xml/stream/XMLOutputFactory
+header extends java/lang/Object flags 421
+
+class name javax/xml/stream/XMLReporter
+header extends java/lang/Object flags 601
+
+class name javax/xml/stream/XMLResolver
+header extends java/lang/Object flags 601
+
+class name javax/xml/stream/XMLStreamConstants
+header extends java/lang/Object flags 601
+
+class name javax/xml/stream/XMLStreamException
+header extends java/lang/Exception flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/xml/stream/XMLStreamReader
+header extends java/lang/Object implements javax/xml/stream/XMLStreamConstants flags 601
+
+class name javax/xml/stream/XMLStreamWriter
+header extends java/lang/Object flags 601
+
+class name javax/xml/stream/events/Attribute
+header extends java/lang/Object implements javax/xml/stream/events/XMLEvent flags 601
+
+class name javax/xml/stream/events/Characters
+header extends java/lang/Object implements javax/xml/stream/events/XMLEvent flags 601
+
+class name javax/xml/stream/events/Comment
+header extends java/lang/Object implements javax/xml/stream/events/XMLEvent flags 601
+
+class name javax/xml/stream/events/DTD
+header extends java/lang/Object implements javax/xml/stream/events/XMLEvent flags 601
+
+class name javax/xml/stream/events/EndDocument
+header extends java/lang/Object implements javax/xml/stream/events/XMLEvent flags 601
+
+class name javax/xml/stream/events/EndElement
+header extends java/lang/Object implements javax/xml/stream/events/XMLEvent flags 601
+
+class name javax/xml/stream/events/EntityDeclaration
+header extends java/lang/Object implements javax/xml/stream/events/XMLEvent flags 601
+
+class name javax/xml/stream/events/EntityReference
+header extends java/lang/Object implements javax/xml/stream/events/XMLEvent flags 601
+
+class name javax/xml/stream/events/Namespace
+header extends java/lang/Object implements javax/xml/stream/events/Attribute flags 601
+
+class name javax/xml/stream/events/NotationDeclaration
+header extends java/lang/Object implements javax/xml/stream/events/XMLEvent flags 601
+
+class name javax/xml/stream/events/ProcessingInstruction
+header extends java/lang/Object implements javax/xml/stream/events/XMLEvent flags 601
+
+class name javax/xml/stream/events/StartDocument
+header extends java/lang/Object implements javax/xml/stream/events/XMLEvent flags 601
+
+class name javax/xml/stream/events/StartElement
+header extends java/lang/Object implements javax/xml/stream/events/XMLEvent flags 601
+
+class name javax/xml/stream/events/XMLEvent
+header extends java/lang/Object implements javax/xml/stream/XMLStreamConstants flags 601
+
+class name javax/xml/stream/util/EventReaderDelegate
+header extends java/lang/Object implements javax/xml/stream/XMLEventReader flags 21
+
+class name javax/xml/stream/util/StreamReaderDelegate
+header extends java/lang/Object implements javax/xml/stream/XMLStreamReader flags 21
+
+class name javax/xml/stream/util/XMLEventAllocator
+header extends java/lang/Object flags 601
+
+class name javax/xml/stream/util/XMLEventConsumer
+header extends java/lang/Object flags 601
+
+class name javax/xml/transform/ErrorListener
+header extends java/lang/Object flags 601
+
+class name javax/xml/transform/OutputKeys
+header extends java/lang/Object flags 21
+
+class name javax/xml/transform/Result
+header extends java/lang/Object flags 601
+
+class name javax/xml/transform/Source
+header extends java/lang/Object flags 601
+
+class name javax/xml/transform/SourceLocator
+header extends java/lang/Object flags 601
+
+class name javax/xml/transform/Templates
+header extends java/lang/Object flags 601
+
+class name javax/xml/transform/Transformer
+header extends java/lang/Object flags 421
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/xml/transform/TransformerConfigurationException
+header extends javax/xml/transform/TransformerException flags 21
+
+class name javax/xml/transform/TransformerException
+header extends java/lang/Exception flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/xml/transform/TransformerFactory
+header extends java/lang/Object flags 421
+
+class name javax/xml/transform/TransformerFactoryConfigurationError
+header extends java/lang/Error flags 21
+
+class name javax/xml/transform/URIResolver
+header extends java/lang/Object flags 601
+
+class name javax/xml/transform/dom/DOMLocator
+header extends java/lang/Object implements javax/xml/transform/SourceLocator flags 601
+
+class name javax/xml/transform/dom/DOMResult
+header extends java/lang/Object implements javax/xml/transform/Result flags 21
+
+class name javax/xml/transform/dom/DOMSource
+header extends java/lang/Object implements javax/xml/transform/Source flags 21
+
+class name javax/xml/transform/sax/SAXResult
+header extends java/lang/Object implements javax/xml/transform/Result flags 21
+
+class name javax/xml/transform/sax/SAXSource
+header extends java/lang/Object implements javax/xml/transform/Source flags 21
+
+class name javax/xml/transform/sax/SAXTransformerFactory
+header extends javax/xml/transform/TransformerFactory flags 421
+
+class name javax/xml/transform/sax/TemplatesHandler
+header extends java/lang/Object implements org/xml/sax/ContentHandler flags 601
+
+class name javax/xml/transform/sax/TransformerHandler
+header extends java/lang/Object implements org/xml/sax/ContentHandler,org/xml/sax/ext/LexicalHandler,org/xml/sax/DTDHandler flags 601
+
+class name javax/xml/transform/stax/StAXResult
+header extends java/lang/Object implements javax/xml/transform/Result flags 21
+
+class name javax/xml/transform/stax/StAXSource
+header extends java/lang/Object implements javax/xml/transform/Source flags 21
+
+class name javax/xml/transform/stream/StreamResult
+header extends java/lang/Object implements javax/xml/transform/Result flags 21
+
+class name javax/xml/transform/stream/StreamSource
+header extends java/lang/Object implements javax/xml/transform/Source flags 21
+
+class name javax/xml/validation/Schema
+header extends java/lang/Object flags 421
+
+class name javax/xml/validation/SchemaFactory
+header extends java/lang/Object flags 421
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/xml/validation/SchemaFactoryConfigurationError
+header extends java/lang/Error flags 31
+
+class name javax/xml/validation/SchemaFactoryLoader
+header extends java/lang/Object flags 421
+
+class name javax/xml/validation/TypeInfoProvider
+header extends java/lang/Object flags 421
+
+class name javax/xml/validation/Validator
+header extends java/lang/Object flags 421
+
+class name javax/xml/validation/ValidatorHandler
+header extends java/lang/Object implements org/xml/sax/ContentHandler flags 421
+
+class name javax/xml/xpath/XPath
+header extends java/lang/Object flags 601
+innerclass innerClass javax/xml/xpath/XPathEvaluationResult$XPathResultType outerClass javax/xml/xpath/XPathEvaluationResult innerClassName XPathResultType flags 4019
+
+class name javax/xml/xpath/XPathConstants
+header extends java/lang/Object flags 21
+
+class name javax/xml/xpath/XPathEvaluationResult
+header extends java/lang/Object nestMembers javax/xml/xpath/XPathEvaluationResult$XPathResultType flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object;
+innerclass innerClass javax/xml/xpath/XPathEvaluationResult$XPathResultType outerClass javax/xml/xpath/XPathEvaluationResult innerClassName XPathResultType flags 4019
+
+class name javax/xml/xpath/XPathEvaluationResult$XPathResultType
+header extends java/lang/Enum nestHost javax/xml/xpath/XPathEvaluationResult flags 4031 signature Ljava/lang/Enum<Ljavax/xml/xpath/XPathEvaluationResult$XPathResultType;>;
+innerclass innerClass javax/xml/xpath/XPathEvaluationResult$XPathResultType outerClass javax/xml/xpath/XPathEvaluationResult innerClassName XPathResultType flags 4019
+
+class name javax/xml/xpath/XPathException
+header extends java/lang/Exception flags 21
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+
+class name javax/xml/xpath/XPathExpression
+header extends java/lang/Object flags 601
+innerclass innerClass javax/xml/xpath/XPathEvaluationResult$XPathResultType outerClass javax/xml/xpath/XPathEvaluationResult innerClassName XPathResultType flags 4019
+
+class name javax/xml/xpath/XPathExpressionException
+header extends javax/xml/xpath/XPathException flags 21
+
+class name javax/xml/xpath/XPathFactory
+header extends java/lang/Object flags 421
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/xml/xpath/XPathFactoryConfigurationException
+header extends javax/xml/xpath/XPathException flags 21
+
+class name javax/xml/xpath/XPathFunction
+header extends java/lang/Object flags 601
+
+class name javax/xml/xpath/XPathFunctionException
+header extends javax/xml/xpath/XPathExpressionException flags 21
+
+class name javax/xml/xpath/XPathFunctionResolver
+header extends java/lang/Object flags 601
+
+class name javax/xml/xpath/XPathNodes
+header extends java/lang/Object implements java/lang/Iterable flags 601 signature Ljava/lang/Object;Ljava/lang/Iterable<Lorg/w3c/dom/Node;>;
+
+class name javax/xml/xpath/XPathVariableResolver
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/Attr
+header extends java/lang/Object implements org/w3c/dom/Node flags 601
+
+class name org/w3c/dom/CDATASection
+header extends java/lang/Object implements org/w3c/dom/Text flags 601
+
+class name org/w3c/dom/CharacterData
+header extends java/lang/Object implements org/w3c/dom/Node flags 601
+
+class name org/w3c/dom/Comment
+header extends java/lang/Object implements org/w3c/dom/CharacterData flags 601
+
+class name org/w3c/dom/DOMConfiguration
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/DOMError
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/DOMErrorHandler
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/DOMException
+header extends java/lang/RuntimeException flags 21
+
+class name org/w3c/dom/DOMImplementation
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/DOMImplementationList
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/DOMImplementationSource
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/DOMLocator
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/DOMStringList
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/Document
+header extends java/lang/Object implements org/w3c/dom/Node flags 601
+
+class name org/w3c/dom/DocumentFragment
+header extends java/lang/Object implements org/w3c/dom/Node flags 601
+
+class name org/w3c/dom/DocumentType
+header extends java/lang/Object implements org/w3c/dom/Node flags 601
+
+class name org/w3c/dom/Element
+header extends java/lang/Object implements org/w3c/dom/Node flags 601
+
+class name org/w3c/dom/ElementTraversal
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/Entity
+header extends java/lang/Object implements org/w3c/dom/Node flags 601
+
+class name org/w3c/dom/EntityReference
+header extends java/lang/Object implements org/w3c/dom/Node flags 601
+
+class name org/w3c/dom/NameList
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/NamedNodeMap
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/Node
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/NodeList
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/Notation
+header extends java/lang/Object implements org/w3c/dom/Node flags 601
+
+class name org/w3c/dom/ProcessingInstruction
+header extends java/lang/Object implements org/w3c/dom/Node flags 601
+
+class name org/w3c/dom/Text
+header extends java/lang/Object implements org/w3c/dom/CharacterData flags 601
+
+class name org/w3c/dom/TypeInfo
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/UserDataHandler
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/events/DocumentEvent
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/events/Event
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/events/EventException
+header extends java/lang/RuntimeException flags 21
+
+class name org/w3c/dom/events/EventListener
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/events/EventTarget
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/events/MouseEvent
+header extends java/lang/Object implements org/w3c/dom/events/UIEvent flags 601
+
+class name org/w3c/dom/events/MutationEvent
+header extends java/lang/Object implements org/w3c/dom/events/Event flags 601
+
+class name org/w3c/dom/events/UIEvent
+header extends java/lang/Object implements org/w3c/dom/events/Event flags 601
+
+class name org/w3c/dom/ls/DOMImplementationLS
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/ls/LSException
+header extends java/lang/RuntimeException flags 21
+
+class name org/w3c/dom/ls/LSInput
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/ls/LSLoadEvent
+header extends java/lang/Object implements org/w3c/dom/events/Event flags 601
+
+class name org/w3c/dom/ls/LSOutput
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/ls/LSParser
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/ls/LSParserFilter
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/ls/LSProgressEvent
+header extends java/lang/Object implements org/w3c/dom/events/Event flags 601
+
+class name org/w3c/dom/ls/LSResourceResolver
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/ls/LSSerializer
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/ls/LSSerializerFilter
+header extends java/lang/Object implements org/w3c/dom/traversal/NodeFilter flags 601
+
+class name org/w3c/dom/ranges/DocumentRange
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/ranges/Range
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/ranges/RangeException
+header extends java/lang/RuntimeException flags 21
+
+class name org/w3c/dom/traversal/DocumentTraversal
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/traversal/NodeFilter
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/traversal/NodeIterator
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/traversal/TreeWalker
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/views/AbstractView
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/views/DocumentView
+header extends java/lang/Object flags 601
+
+class name org/xml/sax/AttributeList
+header extends java/lang/Object flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="1.5")
+
+class name org/xml/sax/Attributes
+header extends java/lang/Object flags 601
+
+class name org/xml/sax/ContentHandler
+header extends java/lang/Object flags 601
+
+class name org/xml/sax/DTDHandler
+header extends java/lang/Object flags 601
+
+class name org/xml/sax/DocumentHandler
+header extends java/lang/Object flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="1.5")
+
+class name org/xml/sax/EntityResolver
+header extends java/lang/Object flags 601
+
+class name org/xml/sax/ErrorHandler
+header extends java/lang/Object flags 601
+
+class name org/xml/sax/HandlerBase
+header extends java/lang/Object implements org/xml/sax/EntityResolver,org/xml/sax/DTDHandler,org/xml/sax/DocumentHandler,org/xml/sax/ErrorHandler flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="1.5")
+
+class name org/xml/sax/InputSource
+header extends java/lang/Object flags 21
+
+class name org/xml/sax/Locator
+header extends java/lang/Object flags 601
+
+class name org/xml/sax/Parser
+header extends java/lang/Object flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="1.5")
+
+class name org/xml/sax/SAXException
+header extends java/lang/Exception flags 21
+innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
+innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name org/xml/sax/SAXNotRecognizedException
+header extends org/xml/sax/SAXException flags 21
+
+class name org/xml/sax/SAXNotSupportedException
+header extends org/xml/sax/SAXException flags 21
+
+class name org/xml/sax/SAXParseException
+header extends org/xml/sax/SAXException flags 21
+
+class name org/xml/sax/XMLFilter
+header extends java/lang/Object implements org/xml/sax/XMLReader flags 601
+
+class name org/xml/sax/XMLReader
+header extends java/lang/Object flags 601
+
+class name org/xml/sax/ext/Attributes2
+header extends java/lang/Object implements org/xml/sax/Attributes flags 601
+
+class name org/xml/sax/ext/Attributes2Impl
+header extends org/xml/sax/helpers/AttributesImpl implements org/xml/sax/ext/Attributes2 flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name org/xml/sax/ext/DeclHandler
+header extends java/lang/Object flags 601
+
+class name org/xml/sax/ext/DefaultHandler2
+header extends org/xml/sax/helpers/DefaultHandler implements org/xml/sax/ext/LexicalHandler,org/xml/sax/ext/DeclHandler,org/xml/sax/ext/EntityResolver2 flags 21
+
+class name org/xml/sax/ext/EntityResolver2
+header extends java/lang/Object implements org/xml/sax/EntityResolver flags 601
+
+class name org/xml/sax/ext/LexicalHandler
+header extends java/lang/Object flags 601
+
+class name org/xml/sax/ext/Locator2
+header extends java/lang/Object implements org/xml/sax/Locator flags 601
+
+class name org/xml/sax/ext/Locator2Impl
+header extends org/xml/sax/helpers/LocatorImpl implements org/xml/sax/ext/Locator2 flags 21
+
+class name org/xml/sax/helpers/AttributeListImpl
+header extends java/lang/Object implements org/xml/sax/AttributeList flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="1.5")
+
+class name org/xml/sax/helpers/AttributesImpl
+header extends java/lang/Object implements org/xml/sax/Attributes flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name org/xml/sax/helpers/DefaultHandler
+header extends java/lang/Object implements org/xml/sax/EntityResolver,org/xml/sax/DTDHandler,org/xml/sax/ContentHandler,org/xml/sax/ErrorHandler flags 21
+
+class name org/xml/sax/helpers/LocatorImpl
+header extends java/lang/Object implements org/xml/sax/Locator flags 21
+
+class name org/xml/sax/helpers/ParserFactory
+header extends java/lang/Object flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="1.5")
+
+class name org/xml/sax/helpers/XMLFilterImpl
+header extends java/lang/Object implements org/xml/sax/XMLFilter,org/xml/sax/EntityResolver,org/xml/sax/DTDHandler,org/xml/sax/ContentHandler,org/xml/sax/ErrorHandler flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name org/xml/sax/helpers/XMLReaderFactory
+header extends java/lang/Object flags 31 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="9")
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/java.xml.bind-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,212 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+-module name java.xml.bind
+
+-class name javax/xml/bind/Binder
+
+-class name javax/xml/bind/DataBindingException
+
+-class name javax/xml/bind/DatatypeConverter
+
+-class name javax/xml/bind/DatatypeConverterInterface
+
+-class name javax/xml/bind/Element
+
+-class name javax/xml/bind/JAXB
+
+-class name javax/xml/bind/JAXBContext
+
+-class name javax/xml/bind/JAXBContextFactory
+
+-class name javax/xml/bind/JAXBElement
+
+-class name javax/xml/bind/JAXBElement$GlobalScope
+
+-class name javax/xml/bind/JAXBException
+
+-class name javax/xml/bind/JAXBIntrospector
+
+-class name javax/xml/bind/JAXBPermission
+
+-class name javax/xml/bind/MarshalException
+
+-class name javax/xml/bind/Marshaller
+
+-class name javax/xml/bind/Marshaller$Listener
+
+-class name javax/xml/bind/NotIdentifiableEvent
+
+-class name javax/xml/bind/ParseConversionEvent
+
+-class name javax/xml/bind/PrintConversionEvent
+
+-class name javax/xml/bind/PropertyException
+
+-class name javax/xml/bind/SchemaOutputResolver
+
+-class name javax/xml/bind/TypeConstraintException
+
+-class name javax/xml/bind/UnmarshalException
+
+-class name javax/xml/bind/Unmarshaller
+
+-class name javax/xml/bind/Unmarshaller$Listener
+
+-class name javax/xml/bind/UnmarshallerHandler
+
+-class name javax/xml/bind/ValidationEvent
+
+-class name javax/xml/bind/ValidationEventHandler
+
+-class name javax/xml/bind/ValidationEventLocator
+
+-class name javax/xml/bind/ValidationException
+
+-class name javax/xml/bind/Validator
+
+-class name javax/xml/bind/annotation/DomHandler
+
+-class name javax/xml/bind/annotation/W3CDomHandler
+
+-class name javax/xml/bind/annotation/XmlAccessOrder
+
+-class name javax/xml/bind/annotation/XmlAccessType
+
+-class name javax/xml/bind/annotation/XmlAccessorOrder
+
+-class name javax/xml/bind/annotation/XmlAccessorType
+
+-class name javax/xml/bind/annotation/XmlAnyAttribute
+
+-class name javax/xml/bind/annotation/XmlAnyElement
+
+-class name javax/xml/bind/annotation/XmlAttachmentRef
+
+-class name javax/xml/bind/annotation/XmlAttribute
+
+-class name javax/xml/bind/annotation/XmlElement
+
+-class name javax/xml/bind/annotation/XmlElement$DEFAULT
+
+-class name javax/xml/bind/annotation/XmlElementDecl
+
+-class name javax/xml/bind/annotation/XmlElementDecl$GLOBAL
+
+-class name javax/xml/bind/annotation/XmlElementRef
+
+-class name javax/xml/bind/annotation/XmlElementRef$DEFAULT
+
+-class name javax/xml/bind/annotation/XmlElementRefs
+
+-class name javax/xml/bind/annotation/XmlElementWrapper
+
+-class name javax/xml/bind/annotation/XmlElements
+
+-class name javax/xml/bind/annotation/XmlEnum
+
+-class name javax/xml/bind/annotation/XmlEnumValue
+
+-class name javax/xml/bind/annotation/XmlID
+
+-class name javax/xml/bind/annotation/XmlIDREF
+
+-class name javax/xml/bind/annotation/XmlInlineBinaryData
+
+-class name javax/xml/bind/annotation/XmlList
+
+-class name javax/xml/bind/annotation/XmlMimeType
+
+-class name javax/xml/bind/annotation/XmlMixed
+
+-class name javax/xml/bind/annotation/XmlNs
+
+-class name javax/xml/bind/annotation/XmlNsForm
+
+-class name javax/xml/bind/annotation/XmlRegistry
+
+-class name javax/xml/bind/annotation/XmlRootElement
+
+-class name javax/xml/bind/annotation/XmlSchema
+
+-class name javax/xml/bind/annotation/XmlSchemaType
+
+-class name javax/xml/bind/annotation/XmlSchemaType$DEFAULT
+
+-class name javax/xml/bind/annotation/XmlSchemaTypes
+
+-class name javax/xml/bind/annotation/XmlSeeAlso
+
+-class name javax/xml/bind/annotation/XmlTransient
+
+-class name javax/xml/bind/annotation/XmlType
+
+-class name javax/xml/bind/annotation/XmlType$DEFAULT
+
+-class name javax/xml/bind/annotation/XmlValue
+
+-class name javax/xml/bind/annotation/adapters/CollapsedStringAdapter
+
+-class name javax/xml/bind/annotation/adapters/HexBinaryAdapter
+
+-class name javax/xml/bind/annotation/adapters/NormalizedStringAdapter
+
+-class name javax/xml/bind/annotation/adapters/XmlAdapter
+
+-class name javax/xml/bind/annotation/adapters/XmlJavaTypeAdapter
+
+-class name javax/xml/bind/annotation/adapters/XmlJavaTypeAdapter$DEFAULT
+
+-class name javax/xml/bind/annotation/adapters/XmlJavaTypeAdapters
+
+-class name javax/xml/bind/attachment/AttachmentMarshaller
+
+-class name javax/xml/bind/attachment/AttachmentUnmarshaller
+
+-class name javax/xml/bind/helpers/AbstractMarshallerImpl
+
+-class name javax/xml/bind/helpers/AbstractUnmarshallerImpl
+
+-class name javax/xml/bind/helpers/DefaultValidationEventHandler
+
+-class name javax/xml/bind/helpers/NotIdentifiableEventImpl
+
+-class name javax/xml/bind/helpers/ParseConversionEventImpl
+
+-class name javax/xml/bind/helpers/PrintConversionEventImpl
+
+-class name javax/xml/bind/helpers/ValidationEventImpl
+
+-class name javax/xml/bind/helpers/ValidationEventLocatorImpl
+
+-class name javax/xml/bind/util/JAXBResult
+
+-class name javax/xml/bind/util/JAXBSource
+
+-class name javax/xml/bind/util/ValidationEventCollector
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/java.xml.crypto-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,236 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name java.xml.crypto
+header exports javax/xml/crypto,javax/xml/crypto/dom,javax/xml/crypto/dsig,javax/xml/crypto/dsig/dom,javax/xml/crypto/dsig/keyinfo,javax/xml/crypto/dsig/spec requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;java.logging\u0020;flags\u0020;0,name\u0020;java.xml\u0020;flags\u0020;20 provides interface\u0020;java/security/Provider\u0020;impls\u0020;org/jcp/xml/dsig/internal/dom/XMLDSigRI target linux-amd64 flags 8000
+
+class name javax/xml/crypto/AlgorithmMethod
+header extends java/lang/Object flags 601
+
+class name javax/xml/crypto/Data
+header extends java/lang/Object flags 601
+
+class name javax/xml/crypto/KeySelector
+header extends java/lang/Object nestMembers javax/xml/crypto/KeySelector$Purpose flags 421
+innerclass innerClass javax/xml/crypto/KeySelector$Purpose outerClass javax/xml/crypto/KeySelector innerClassName Purpose flags 9
+
+class name javax/xml/crypto/KeySelector$Purpose
+header extends java/lang/Object nestHost javax/xml/crypto/KeySelector flags 21
+innerclass innerClass javax/xml/crypto/KeySelector$Purpose outerClass javax/xml/crypto/KeySelector innerClassName Purpose flags 9
+
+class name javax/xml/crypto/KeySelectorException
+header extends java/lang/Exception flags 21
+
+class name javax/xml/crypto/KeySelectorResult
+header extends java/lang/Object flags 601
+
+class name javax/xml/crypto/MarshalException
+header extends java/lang/Exception flags 21
+
+class name javax/xml/crypto/NoSuchMechanismException
+header extends java/lang/RuntimeException flags 21
+
+class name javax/xml/crypto/NodeSetData
+header extends java/lang/Object implements javax/xml/crypto/Data,java/lang/Iterable flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object;Ljavax/xml/crypto/Data;Ljava/lang/Iterable<TT;>;
+
+class name javax/xml/crypto/OctetStreamData
+header extends java/lang/Object implements javax/xml/crypto/Data flags 21
+
+class name javax/xml/crypto/URIDereferencer
+header extends java/lang/Object flags 601
+
+class name javax/xml/crypto/URIReference
+header extends java/lang/Object flags 601
+
+class name javax/xml/crypto/URIReferenceException
+header extends java/lang/Exception flags 21
+
+class name javax/xml/crypto/XMLCryptoContext
+header extends java/lang/Object flags 601
+
+class name javax/xml/crypto/XMLStructure
+header extends java/lang/Object flags 601
+
+class name javax/xml/crypto/dom/DOMCryptoContext
+header extends java/lang/Object implements javax/xml/crypto/XMLCryptoContext flags 21
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/xml/crypto/dom/DOMStructure
+header extends java/lang/Object implements javax/xml/crypto/XMLStructure flags 21
+
+class name javax/xml/crypto/dom/DOMURIReference
+header extends java/lang/Object implements javax/xml/crypto/URIReference flags 601
+
+class name javax/xml/crypto/dsig/CanonicalizationMethod
+header extends java/lang/Object implements javax/xml/crypto/dsig/Transform flags 601
+
+class name javax/xml/crypto/dsig/DigestMethod
+header extends java/lang/Object implements javax/xml/crypto/XMLStructure,javax/xml/crypto/AlgorithmMethod flags 601
+field name SHA224 descriptor Ljava/lang/String; constantValue http://www.w3.org/2001/04/xmldsig-more#sha224 flags 19
+field name SHA384 descriptor Ljava/lang/String; constantValue http://www.w3.org/2001/04/xmldsig-more#sha384 flags 19
+field name SHA3_224 descriptor Ljava/lang/String; constantValue http://www.w3.org/2007/05/xmldsig-more#sha3-224 flags 19
+field name SHA3_256 descriptor Ljava/lang/String; constantValue http://www.w3.org/2007/05/xmldsig-more#sha3-256 flags 19
+field name SHA3_384 descriptor Ljava/lang/String; constantValue http://www.w3.org/2007/05/xmldsig-more#sha3-384 flags 19
+field name SHA3_512 descriptor Ljava/lang/String; constantValue http://www.w3.org/2007/05/xmldsig-more#sha3-512 flags 19
+
+class name javax/xml/crypto/dsig/Manifest
+header extends java/lang/Object implements javax/xml/crypto/XMLStructure flags 601
+
+class name javax/xml/crypto/dsig/Reference
+header extends java/lang/Object implements javax/xml/crypto/URIReference,javax/xml/crypto/XMLStructure flags 601
+
+class name javax/xml/crypto/dsig/SignatureMethod
+header extends java/lang/Object implements javax/xml/crypto/XMLStructure,javax/xml/crypto/AlgorithmMethod flags 601
+field name DSA_SHA256 descriptor Ljava/lang/String; constantValue http://www.w3.org/2009/xmldsig11#dsa-sha256 flags 19
+field name RSA_SHA224 descriptor Ljava/lang/String; constantValue http://www.w3.org/2001/04/xmldsig-more#rsa-sha224 flags 19
+field name RSA_SHA256 descriptor Ljava/lang/String; constantValue http://www.w3.org/2001/04/xmldsig-more#rsa-sha256 flags 19
+field name RSA_SHA384 descriptor Ljava/lang/String; constantValue http://www.w3.org/2001/04/xmldsig-more#rsa-sha384 flags 19
+field name RSA_SHA512 descriptor Ljava/lang/String; constantValue http://www.w3.org/2001/04/xmldsig-more#rsa-sha512 flags 19
+field name SHA1_RSA_MGF1 descriptor Ljava/lang/String; constantValue http://www.w3.org/2007/05/xmldsig-more#sha1-rsa-MGF1 flags 19
+field name SHA224_RSA_MGF1 descriptor Ljava/lang/String; constantValue http://www.w3.org/2007/05/xmldsig-more#sha224-rsa-MGF1 flags 19
+field name SHA256_RSA_MGF1 descriptor Ljava/lang/String; constantValue http://www.w3.org/2007/05/xmldsig-more#sha256-rsa-MGF1 flags 19
+field name SHA384_RSA_MGF1 descriptor Ljava/lang/String; constantValue http://www.w3.org/2007/05/xmldsig-more#sha384-rsa-MGF1 flags 19
+field name SHA512_RSA_MGF1 descriptor Ljava/lang/String; constantValue http://www.w3.org/2007/05/xmldsig-more#sha512-rsa-MGF1 flags 19
+field name ECDSA_SHA1 descriptor Ljava/lang/String; constantValue http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha1 flags 19
+field name ECDSA_SHA224 descriptor Ljava/lang/String; constantValue http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha224 flags 19
+field name ECDSA_SHA256 descriptor Ljava/lang/String; constantValue http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha256 flags 19
+field name ECDSA_SHA384 descriptor Ljava/lang/String; constantValue http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha384 flags 19
+field name ECDSA_SHA512 descriptor Ljava/lang/String; constantValue http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha512 flags 19
+field name HMAC_SHA224 descriptor Ljava/lang/String; constantValue http://www.w3.org/2001/04/xmldsig-more#hmac-sha224 flags 19
+field name HMAC_SHA256 descriptor Ljava/lang/String; constantValue http://www.w3.org/2001/04/xmldsig-more#hmac-sha256 flags 19
+field name HMAC_SHA384 descriptor Ljava/lang/String; constantValue http://www.w3.org/2001/04/xmldsig-more#hmac-sha384 flags 19
+field name HMAC_SHA512 descriptor Ljava/lang/String; constantValue http://www.w3.org/2001/04/xmldsig-more#hmac-sha512 flags 19
+
+class name javax/xml/crypto/dsig/SignatureProperties
+header extends java/lang/Object implements javax/xml/crypto/XMLStructure flags 601
+
+class name javax/xml/crypto/dsig/SignatureProperty
+header extends java/lang/Object implements javax/xml/crypto/XMLStructure flags 601
+
+class name javax/xml/crypto/dsig/SignedInfo
+header extends java/lang/Object implements javax/xml/crypto/XMLStructure flags 601
+
+class name javax/xml/crypto/dsig/Transform
+header extends java/lang/Object implements javax/xml/crypto/XMLStructure,javax/xml/crypto/AlgorithmMethod flags 601
+
+class name javax/xml/crypto/dsig/TransformException
+header extends java/lang/Exception flags 21
+
+class name javax/xml/crypto/dsig/XMLObject
+header extends java/lang/Object implements javax/xml/crypto/XMLStructure flags 601
+
+class name javax/xml/crypto/dsig/XMLSignContext
+header extends java/lang/Object implements javax/xml/crypto/XMLCryptoContext flags 601
+
+class name javax/xml/crypto/dsig/XMLSignature
+header extends java/lang/Object implements javax/xml/crypto/XMLStructure nestMembers javax/xml/crypto/dsig/XMLSignature$SignatureValue flags 601
+innerclass innerClass javax/xml/crypto/dsig/XMLSignature$SignatureValue outerClass javax/xml/crypto/dsig/XMLSignature innerClassName SignatureValue flags 609
+
+class name javax/xml/crypto/dsig/XMLSignature$SignatureValue
+header extends java/lang/Object implements javax/xml/crypto/XMLStructure nestHost javax/xml/crypto/dsig/XMLSignature flags 601
+innerclass innerClass javax/xml/crypto/dsig/XMLSignature$SignatureValue outerClass javax/xml/crypto/dsig/XMLSignature innerClassName SignatureValue flags 609
+
+class name javax/xml/crypto/dsig/XMLSignatureException
+header extends java/lang/Exception flags 21
+
+class name javax/xml/crypto/dsig/XMLSignatureFactory
+header extends java/lang/Object flags 421
+innerclass innerClass java/security/Provider$Service outerClass java/security/Provider innerClassName Service flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/xml/crypto/dsig/XMLValidateContext
+header extends java/lang/Object implements javax/xml/crypto/XMLCryptoContext flags 601
+
+class name javax/xml/crypto/dsig/dom/DOMSignContext
+header extends javax/xml/crypto/dom/DOMCryptoContext implements javax/xml/crypto/dsig/XMLSignContext flags 21
+
+class name javax/xml/crypto/dsig/dom/DOMValidateContext
+header extends javax/xml/crypto/dom/DOMCryptoContext implements javax/xml/crypto/dsig/XMLValidateContext flags 21
+
+class name javax/xml/crypto/dsig/keyinfo/KeyInfo
+header extends java/lang/Object implements javax/xml/crypto/XMLStructure flags 601
+
+class name javax/xml/crypto/dsig/keyinfo/KeyInfoFactory
+header extends java/lang/Object flags 421
+innerclass innerClass java/security/Provider$Service outerClass java/security/Provider innerClassName Service flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name javax/xml/crypto/dsig/keyinfo/KeyName
+header extends java/lang/Object implements javax/xml/crypto/XMLStructure flags 601
+
+class name javax/xml/crypto/dsig/keyinfo/KeyValue
+header extends java/lang/Object implements javax/xml/crypto/XMLStructure flags 601
+
+class name javax/xml/crypto/dsig/keyinfo/PGPData
+header extends java/lang/Object implements javax/xml/crypto/XMLStructure flags 601
+
+class name javax/xml/crypto/dsig/keyinfo/RetrievalMethod
+header extends java/lang/Object implements javax/xml/crypto/URIReference,javax/xml/crypto/XMLStructure flags 601
+
+class name javax/xml/crypto/dsig/keyinfo/X509Data
+header extends java/lang/Object implements javax/xml/crypto/XMLStructure flags 601
+
+class name javax/xml/crypto/dsig/keyinfo/X509IssuerSerial
+header extends java/lang/Object implements javax/xml/crypto/XMLStructure flags 601
+
+class name javax/xml/crypto/dsig/spec/C14NMethodParameterSpec
+header extends java/lang/Object implements javax/xml/crypto/dsig/spec/TransformParameterSpec flags 601
+
+class name javax/xml/crypto/dsig/spec/DigestMethodParameterSpec
+header extends java/lang/Object implements java/security/spec/AlgorithmParameterSpec flags 601
+
+class name javax/xml/crypto/dsig/spec/ExcC14NParameterSpec
+header extends java/lang/Object implements javax/xml/crypto/dsig/spec/C14NMethodParameterSpec flags 31
+
+class name javax/xml/crypto/dsig/spec/HMACParameterSpec
+header extends java/lang/Object implements javax/xml/crypto/dsig/spec/SignatureMethodParameterSpec flags 31
+
+class name javax/xml/crypto/dsig/spec/SignatureMethodParameterSpec
+header extends java/lang/Object implements java/security/spec/AlgorithmParameterSpec flags 601
+
+class name javax/xml/crypto/dsig/spec/TransformParameterSpec
+header extends java/lang/Object implements java/security/spec/AlgorithmParameterSpec flags 601
+
+class name javax/xml/crypto/dsig/spec/XPathFilter2ParameterSpec
+header extends java/lang/Object implements javax/xml/crypto/dsig/spec/TransformParameterSpec flags 31
+
+class name javax/xml/crypto/dsig/spec/XPathFilterParameterSpec
+header extends java/lang/Object implements javax/xml/crypto/dsig/spec/TransformParameterSpec flags 31
+
+class name javax/xml/crypto/dsig/spec/XPathType
+header extends java/lang/Object nestMembers javax/xml/crypto/dsig/spec/XPathType$Filter flags 21
+innerclass innerClass javax/xml/crypto/dsig/spec/XPathType$Filter outerClass javax/xml/crypto/dsig/spec/XPathType innerClassName Filter flags 9
+
+class name javax/xml/crypto/dsig/spec/XPathType$Filter
+header extends java/lang/Object nestHost javax/xml/crypto/dsig/spec/XPathType flags 21
+innerclass innerClass javax/xml/crypto/dsig/spec/XPathType$Filter outerClass javax/xml/crypto/dsig/spec/XPathType innerClassName Filter flags 9
+
+class name javax/xml/crypto/dsig/spec/XSLTTransformParameterSpec
+header extends java/lang/Object implements javax/xml/crypto/dsig/spec/TransformParameterSpec flags 31
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/java.xml.ws-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,230 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+-module name java.xml.ws
+
+-class name javax/jws/HandlerChain
+
+-class name javax/jws/Oneway
+
+-class name javax/jws/WebMethod
+
+-class name javax/jws/WebParam
+
+-class name javax/jws/WebParam$Mode
+
+-class name javax/jws/WebResult
+
+-class name javax/jws/WebService
+
+-class name javax/jws/soap/InitParam
+
+-class name javax/jws/soap/SOAPBinding
+
+-class name javax/jws/soap/SOAPBinding$ParameterStyle
+
+-class name javax/jws/soap/SOAPBinding$Style
+
+-class name javax/jws/soap/SOAPBinding$Use
+
+-class name javax/jws/soap/SOAPMessageHandler
+
+-class name javax/jws/soap/SOAPMessageHandlers
+
+-class name javax/xml/soap/AttachmentPart
+
+-class name javax/xml/soap/Detail
+
+-class name javax/xml/soap/DetailEntry
+
+-class name javax/xml/soap/MessageFactory
+
+-class name javax/xml/soap/MimeHeader
+
+-class name javax/xml/soap/MimeHeaders
+
+-class name javax/xml/soap/Name
+
+-class name javax/xml/soap/Node
+
+-class name javax/xml/soap/SAAJMetaFactory
+
+-class name javax/xml/soap/SAAJResult
+
+-class name javax/xml/soap/SOAPBody
+
+-class name javax/xml/soap/SOAPBodyElement
+
+-class name javax/xml/soap/SOAPConnection
+
+-class name javax/xml/soap/SOAPConnectionFactory
+
+-class name javax/xml/soap/SOAPConstants
+
+-class name javax/xml/soap/SOAPElement
+
+-class name javax/xml/soap/SOAPElementFactory
+
+-class name javax/xml/soap/SOAPEnvelope
+
+-class name javax/xml/soap/SOAPException
+
+-class name javax/xml/soap/SOAPFactory
+
+-class name javax/xml/soap/SOAPFault
+
+-class name javax/xml/soap/SOAPFaultElement
+
+-class name javax/xml/soap/SOAPHeader
+
+-class name javax/xml/soap/SOAPHeaderElement
+
+-class name javax/xml/soap/SOAPMessage
+
+-class name javax/xml/soap/SOAPPart
+
+-class name javax/xml/soap/Text
+
+-class name javax/xml/ws/Action
+
+-class name javax/xml/ws/AsyncHandler
+
+-class name javax/xml/ws/Binding
+
+-class name javax/xml/ws/BindingProvider
+
+-class name javax/xml/ws/BindingType
+
+-class name javax/xml/ws/Dispatch
+
+-class name javax/xml/ws/Endpoint
+
+-class name javax/xml/ws/EndpointContext
+
+-class name javax/xml/ws/EndpointReference
+
+-class name javax/xml/ws/FaultAction
+
+-class name javax/xml/ws/Holder
+
+-class name javax/xml/ws/LogicalMessage
+
+-class name javax/xml/ws/ProtocolException
+
+-class name javax/xml/ws/Provider
+
+-class name javax/xml/ws/RequestWrapper
+
+-class name javax/xml/ws/RespectBinding
+
+-class name javax/xml/ws/RespectBindingFeature
+
+-class name javax/xml/ws/Response
+
+-class name javax/xml/ws/ResponseWrapper
+
+-class name javax/xml/ws/Service
+
+-class name javax/xml/ws/Service$Mode
+
+-class name javax/xml/ws/ServiceMode
+
+-class name javax/xml/ws/WebEndpoint
+
+-class name javax/xml/ws/WebFault
+
+-class name javax/xml/ws/WebServiceClient
+
+-class name javax/xml/ws/WebServiceContext
+
+-class name javax/xml/ws/WebServiceException
+
+-class name javax/xml/ws/WebServiceFeature
+
+-class name javax/xml/ws/WebServicePermission
+
+-class name javax/xml/ws/WebServiceProvider
+
+-class name javax/xml/ws/WebServiceRef
+
+-class name javax/xml/ws/WebServiceRefs
+
+-class name javax/xml/ws/handler/Handler
+
+-class name javax/xml/ws/handler/HandlerResolver
+
+-class name javax/xml/ws/handler/LogicalHandler
+
+-class name javax/xml/ws/handler/LogicalMessageContext
+
+-class name javax/xml/ws/handler/MessageContext
+
+-class name javax/xml/ws/handler/MessageContext$Scope
+
+-class name javax/xml/ws/handler/PortInfo
+
+-class name javax/xml/ws/handler/soap/SOAPHandler
+
+-class name javax/xml/ws/handler/soap/SOAPMessageContext
+
+-class name javax/xml/ws/http/HTTPBinding
+
+-class name javax/xml/ws/http/HTTPException
+
+-class name javax/xml/ws/soap/Addressing
+
+-class name javax/xml/ws/soap/AddressingFeature
+
+-class name javax/xml/ws/soap/AddressingFeature$Responses
+
+-class name javax/xml/ws/soap/MTOM
+
+-class name javax/xml/ws/soap/MTOMFeature
+
+-class name javax/xml/ws/soap/SOAPBinding
+
+-class name javax/xml/ws/soap/SOAPFaultException
+
+-class name javax/xml/ws/spi/Invoker
+
+-class name javax/xml/ws/spi/Provider
+
+-class name javax/xml/ws/spi/ServiceDelegate
+
+-class name javax/xml/ws/spi/WebServiceFeatureAnnotation
+
+-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
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/java.xml.ws.annotation-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,42 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+-module name java.xml.ws.annotation
+
+-class name javax/annotation/Generated
+
+-class name javax/annotation/PostConstruct
+
+-class name javax/annotation/PreDestroy
+
+-class name javax/annotation/Resource
+
+-class name javax/annotation/Resource$AuthenticationType
+
+-class name javax/annotation/Resources
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.accessibility-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,47 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.accessibility
+header exports com/sun/java/accessibility/util requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;java.desktop\u0020;flags\u0020;20 target linux-amd64 flags 8000
+
+class name com/sun/java/accessibility/util/AccessibilityListenerList
+header extends java/lang/Object flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name com/sun/java/accessibility/util/EventID
+header extends java/lang/Object flags 21
+
+class name com/sun/java/accessibility/util/GUIInitializedListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name com/sun/java/accessibility/util/TopLevelWindowListener
+header extends java/lang/Object implements java/util/EventListener flags 601
+
+class name com/sun/java/accessibility/util/Translator
+header extends javax/accessibility/AccessibleContext implements javax/accessibility/Accessible,javax/accessibility/AccessibleComponent flags 21
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.attach-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,58 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.attach
+header exports com/sun/tools/attach,com/sun/tools/attach/spi requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;jdk.internal.jvmstat\u0020;flags\u0020;0 uses com/sun/tools/attach/spi/AttachProvider provides interface\u0020;com/sun/tools/attach/spi/AttachProvider\u0020;impls\u0020;sun/tools/attach/AttachProviderImpl target linux-amd64 flags 8000
+
+class name com/sun/tools/attach/AgentInitializationException
+header extends java/lang/Exception flags 21
+
+class name com/sun/tools/attach/AgentLoadException
+header extends java/lang/Exception flags 21
+
+class name com/sun/tools/attach/AttachNotSupportedException
+header extends java/lang/Exception flags 21
+
+class name com/sun/tools/attach/AttachOperationFailedException
+header extends java/io/IOException flags 21
+
+class name com/sun/tools/attach/AttachPermission
+header extends java/security/BasicPermission flags 31
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name com/sun/tools/attach/VirtualMachine
+header extends java/lang/Object flags 421
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name com/sun/tools/attach/VirtualMachineDescriptor
+header extends java/lang/Object flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name com/sun/tools/attach/spi/AttachProvider
+header extends java/lang/Object flags 421
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.charsets-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,31 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.charsets
+header requires name\u0020;java.base\u0020;flags\u0020;8000 provides interface\u0020;java/nio/charset/spi/CharsetProvider\u0020;impls\u0020;sun/nio/cs/ext/ExtendedCharsets target linux-amd64 flags 8000
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.compiler-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,432 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.compiler
+header exports com/sun/source/doctree,com/sun/source/tree,com/sun/source/util,com/sun/tools/javac requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;java.compiler\u0020;flags\u0020;20 uses javax/annotation/processing/Processor,com/sun/source/util/Plugin,com/sun/tools/javac/platform/PlatformProvider provides interface\u0020;java/util/spi/ToolProvider\u0020;impls\u0020;com/sun/tools/javac/main/JavacToolProvider,interface\u0020;com/sun/tools/javac/platform/PlatformProvider\u0020;impls\u0020;com/sun/tools/javac/platform/JDKPlatformProvider,interface\u0020;javax/tools/JavaCompiler\u0020;impls\u0020;com/sun/tools/javac/api/JavacTool,interface\u0020;javax/tools/Tool\u0020;impls\u0020;com/sun/tools/javac/api/JavacTool target linux-amd64 flags 8000
+
+class name com/sun/source/doctree/AttributeTree
+header extends java/lang/Object implements com/sun/source/doctree/DocTree nestMembers com/sun/source/doctree/AttributeTree$ValueKind flags 601
+innerclass innerClass com/sun/source/doctree/AttributeTree$ValueKind outerClass com/sun/source/doctree/AttributeTree innerClassName ValueKind flags 4019
+
+class name com/sun/source/doctree/AttributeTree$ValueKind
+header extends java/lang/Enum nestHost com/sun/source/doctree/AttributeTree flags 4031 signature Ljava/lang/Enum<Lcom/sun/source/doctree/AttributeTree$ValueKind;>;
+innerclass innerClass com/sun/source/doctree/AttributeTree$ValueKind outerClass com/sun/source/doctree/AttributeTree innerClassName ValueKind flags 4019
+
+class name com/sun/source/doctree/AuthorTree
+header extends java/lang/Object implements com/sun/source/doctree/BlockTagTree flags 601
+
+class name com/sun/source/doctree/BlockTagTree
+header extends java/lang/Object implements com/sun/source/doctree/DocTree flags 601
+
+class name com/sun/source/doctree/CommentTree
+header extends java/lang/Object implements com/sun/source/doctree/DocTree flags 601
+
+class name com/sun/source/doctree/DeprecatedTree
+header extends java/lang/Object implements com/sun/source/doctree/BlockTagTree flags 601
+
+class name com/sun/source/doctree/DocCommentTree
+header extends java/lang/Object implements com/sun/source/doctree/DocTree flags 601
+
+class name com/sun/source/doctree/DocRootTree
+header extends java/lang/Object implements com/sun/source/doctree/InlineTagTree flags 601
+
+class name com/sun/source/doctree/DocTree
+header extends java/lang/Object nestMembers com/sun/source/doctree/DocTree$Kind flags 601
+innerclass innerClass com/sun/source/doctree/DocTree$Kind outerClass com/sun/source/doctree/DocTree innerClassName Kind flags 4019
+
+class name com/sun/source/doctree/DocTree$Kind
+header extends java/lang/Enum nestHost com/sun/source/doctree/DocTree flags 4031 signature Ljava/lang/Enum<Lcom/sun/source/doctree/DocTree$Kind;>;
+innerclass innerClass com/sun/source/doctree/DocTree$Kind outerClass com/sun/source/doctree/DocTree innerClassName Kind flags 4019
+
+class name com/sun/source/doctree/DocTreeVisitor
+header extends java/lang/Object flags 601 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljava/lang/Object;
+
+class name com/sun/source/doctree/DocTypeTree
+header extends java/lang/Object implements com/sun/source/doctree/DocTree flags 601
+
+class name com/sun/source/doctree/EndElementTree
+header extends java/lang/Object implements com/sun/source/doctree/DocTree flags 601
+
+class name com/sun/source/doctree/EntityTree
+header extends java/lang/Object implements com/sun/source/doctree/DocTree flags 601
+
+class name com/sun/source/doctree/ErroneousTree
+header extends java/lang/Object implements com/sun/source/doctree/TextTree flags 601
+
+class name com/sun/source/doctree/HiddenTree
+header extends java/lang/Object implements com/sun/source/doctree/BlockTagTree flags 601
+
+class name com/sun/source/doctree/IdentifierTree
+header extends java/lang/Object implements com/sun/source/doctree/DocTree flags 601
+
+class name com/sun/source/doctree/IndexTree
+header extends java/lang/Object implements com/sun/source/doctree/InlineTagTree flags 601
+
+class name com/sun/source/doctree/InheritDocTree
+header extends java/lang/Object implements com/sun/source/doctree/InlineTagTree flags 601
+
+class name com/sun/source/doctree/InlineTagTree
+header extends java/lang/Object implements com/sun/source/doctree/DocTree flags 601
+
+class name com/sun/source/doctree/LinkTree
+header extends java/lang/Object implements com/sun/source/doctree/InlineTagTree flags 601
+
+class name com/sun/source/doctree/LiteralTree
+header extends java/lang/Object implements com/sun/source/doctree/InlineTagTree flags 601
+
+class name com/sun/source/doctree/ParamTree
+header extends java/lang/Object implements com/sun/source/doctree/BlockTagTree flags 601
+
+class name com/sun/source/doctree/ProvidesTree
+header extends java/lang/Object implements com/sun/source/doctree/BlockTagTree flags 601
+
+class name com/sun/source/doctree/ReferenceTree
+header extends java/lang/Object implements com/sun/source/doctree/DocTree flags 601
+
+class name com/sun/source/doctree/ReturnTree
+header extends java/lang/Object implements com/sun/source/doctree/BlockTagTree flags 601
+
+class name com/sun/source/doctree/SeeTree
+header extends java/lang/Object implements com/sun/source/doctree/BlockTagTree flags 601
+
+class name com/sun/source/doctree/SerialDataTree
+header extends java/lang/Object implements com/sun/source/doctree/BlockTagTree flags 601
+
+class name com/sun/source/doctree/SerialFieldTree
+header extends java/lang/Object implements com/sun/source/doctree/BlockTagTree flags 601
+
+class name com/sun/source/doctree/SerialTree
+header extends java/lang/Object implements com/sun/source/doctree/BlockTagTree flags 601
+
+class name com/sun/source/doctree/SinceTree
+header extends java/lang/Object implements com/sun/source/doctree/BlockTagTree flags 601
+
+class name com/sun/source/doctree/StartElementTree
+header extends java/lang/Object implements com/sun/source/doctree/DocTree flags 601
+
+class name com/sun/source/doctree/SummaryTree
+header extends java/lang/Object implements com/sun/source/doctree/InlineTagTree flags 601
+
+class name com/sun/source/doctree/TextTree
+header extends java/lang/Object implements com/sun/source/doctree/DocTree flags 601
+
+class name com/sun/source/doctree/ThrowsTree
+header extends java/lang/Object implements com/sun/source/doctree/BlockTagTree flags 601
+
+class name com/sun/source/doctree/UnknownBlockTagTree
+header extends java/lang/Object implements com/sun/source/doctree/BlockTagTree flags 601
+
+class name com/sun/source/doctree/UnknownInlineTagTree
+header extends java/lang/Object implements com/sun/source/doctree/InlineTagTree flags 601
+
+class name com/sun/source/doctree/UsesTree
+header extends java/lang/Object implements com/sun/source/doctree/BlockTagTree flags 601
+
+class name com/sun/source/doctree/ValueTree
+header extends java/lang/Object implements com/sun/source/doctree/InlineTagTree flags 601
+
+class name com/sun/source/doctree/VersionTree
+header extends java/lang/Object implements com/sun/source/doctree/BlockTagTree flags 601
+
+class name com/sun/source/tree/AnnotatedTypeTree
+header extends java/lang/Object implements com/sun/source/tree/ExpressionTree flags 601
+
+class name com/sun/source/tree/AnnotationTree
+header extends java/lang/Object implements com/sun/source/tree/ExpressionTree flags 601
+
+class name com/sun/source/tree/ArrayAccessTree
+header extends java/lang/Object implements com/sun/source/tree/ExpressionTree flags 601
+
+class name com/sun/source/tree/ArrayTypeTree
+header extends java/lang/Object implements com/sun/source/tree/Tree flags 601
+
+class name com/sun/source/tree/AssertTree
+header extends java/lang/Object implements com/sun/source/tree/StatementTree flags 601
+
+class name com/sun/source/tree/AssignmentTree
+header extends java/lang/Object implements com/sun/source/tree/ExpressionTree flags 601
+
+class name com/sun/source/tree/BinaryTree
+header extends java/lang/Object implements com/sun/source/tree/ExpressionTree flags 601
+
+class name com/sun/source/tree/BlockTree
+header extends java/lang/Object implements com/sun/source/tree/StatementTree flags 601
+
+class name com/sun/source/tree/BreakTree
+header extends java/lang/Object implements com/sun/source/tree/StatementTree flags 601
+
+class name com/sun/source/tree/CaseTree
+header extends java/lang/Object implements com/sun/source/tree/Tree flags 601
+
+class name com/sun/source/tree/CatchTree
+header extends java/lang/Object implements com/sun/source/tree/Tree flags 601
+
+class name com/sun/source/tree/ClassTree
+header extends java/lang/Object implements com/sun/source/tree/StatementTree flags 601
+
+class name com/sun/source/tree/CompilationUnitTree
+header extends java/lang/Object implements com/sun/source/tree/Tree flags 601
+
+class name com/sun/source/tree/CompoundAssignmentTree
+header extends java/lang/Object implements com/sun/source/tree/ExpressionTree flags 601
+
+class name com/sun/source/tree/ConditionalExpressionTree
+header extends java/lang/Object implements com/sun/source/tree/ExpressionTree flags 601
+
+class name com/sun/source/tree/ContinueTree
+header extends java/lang/Object implements com/sun/source/tree/StatementTree flags 601
+
+class name com/sun/source/tree/DirectiveTree
+header extends java/lang/Object implements com/sun/source/tree/Tree flags 601
+
+class name com/sun/source/tree/DoWhileLoopTree
+header extends java/lang/Object implements com/sun/source/tree/StatementTree flags 601
+
+class name com/sun/source/tree/EmptyStatementTree
+header extends java/lang/Object implements com/sun/source/tree/StatementTree flags 601
+
+class name com/sun/source/tree/EnhancedForLoopTree
+header extends java/lang/Object implements com/sun/source/tree/StatementTree flags 601
+
+class name com/sun/source/tree/ErroneousTree
+header extends java/lang/Object implements com/sun/source/tree/ExpressionTree flags 601
+
+class name com/sun/source/tree/ExportsTree
+header extends java/lang/Object implements com/sun/source/tree/DirectiveTree flags 601
+
+class name com/sun/source/tree/ExpressionStatementTree
+header extends java/lang/Object implements com/sun/source/tree/StatementTree flags 601
+
+class name com/sun/source/tree/ExpressionTree
+header extends java/lang/Object implements com/sun/source/tree/Tree flags 601
+
+class name com/sun/source/tree/ForLoopTree
+header extends java/lang/Object implements com/sun/source/tree/StatementTree flags 601
+
+class name com/sun/source/tree/IdentifierTree
+header extends java/lang/Object implements com/sun/source/tree/ExpressionTree flags 601
+
+class name com/sun/source/tree/IfTree
+header extends java/lang/Object implements com/sun/source/tree/StatementTree flags 601
+
+class name com/sun/source/tree/ImportTree
+header extends java/lang/Object implements com/sun/source/tree/Tree flags 601
+
+class name com/sun/source/tree/InstanceOfTree
+header extends java/lang/Object implements com/sun/source/tree/ExpressionTree flags 601
+
+class name com/sun/source/tree/IntersectionTypeTree
+header extends java/lang/Object implements com/sun/source/tree/Tree flags 601
+
+class name com/sun/source/tree/LabeledStatementTree
+header extends java/lang/Object implements com/sun/source/tree/StatementTree flags 601
+
+class name com/sun/source/tree/LambdaExpressionTree
+header extends java/lang/Object implements com/sun/source/tree/ExpressionTree nestMembers com/sun/source/tree/LambdaExpressionTree$BodyKind flags 601
+innerclass innerClass com/sun/source/tree/LambdaExpressionTree$BodyKind outerClass com/sun/source/tree/LambdaExpressionTree innerClassName BodyKind flags 4019
+
+class name com/sun/source/tree/LambdaExpressionTree$BodyKind
+header extends java/lang/Enum nestHost com/sun/source/tree/LambdaExpressionTree flags 4031 signature Ljava/lang/Enum<Lcom/sun/source/tree/LambdaExpressionTree$BodyKind;>;
+innerclass innerClass com/sun/source/tree/LambdaExpressionTree$BodyKind outerClass com/sun/source/tree/LambdaExpressionTree innerClassName BodyKind flags 4019
+
+class name com/sun/source/tree/LineMap
+header extends java/lang/Object flags 601
+
+class name com/sun/source/tree/LiteralTree
+header extends java/lang/Object implements com/sun/source/tree/ExpressionTree flags 601
+
+class name com/sun/source/tree/MemberReferenceTree
+header extends java/lang/Object implements com/sun/source/tree/ExpressionTree nestMembers com/sun/source/tree/MemberReferenceTree$ReferenceMode flags 601
+innerclass innerClass com/sun/source/tree/MemberReferenceTree$ReferenceMode outerClass com/sun/source/tree/MemberReferenceTree innerClassName ReferenceMode flags 4019
+
+class name com/sun/source/tree/MemberReferenceTree$ReferenceMode
+header extends java/lang/Enum nestHost com/sun/source/tree/MemberReferenceTree flags 4031 signature Ljava/lang/Enum<Lcom/sun/source/tree/MemberReferenceTree$ReferenceMode;>;
+innerclass innerClass com/sun/source/tree/MemberReferenceTree$ReferenceMode outerClass com/sun/source/tree/MemberReferenceTree innerClassName ReferenceMode flags 4019
+
+class name com/sun/source/tree/MemberSelectTree
+header extends java/lang/Object implements com/sun/source/tree/ExpressionTree flags 601
+
+class name com/sun/source/tree/MethodInvocationTree
+header extends java/lang/Object implements com/sun/source/tree/ExpressionTree flags 601
+
+class name com/sun/source/tree/MethodTree
+header extends java/lang/Object implements com/sun/source/tree/Tree flags 601
+
+class name com/sun/source/tree/ModifiersTree
+header extends java/lang/Object implements com/sun/source/tree/Tree flags 601
+
+class name com/sun/source/tree/ModuleTree
+header extends java/lang/Object implements com/sun/source/tree/Tree nestMembers com/sun/source/tree/ModuleTree$ModuleKind flags 601
+innerclass innerClass com/sun/source/tree/ModuleTree$ModuleKind outerClass com/sun/source/tree/ModuleTree innerClassName ModuleKind flags 4019
+
+class name com/sun/source/tree/ModuleTree$ModuleKind
+header extends java/lang/Enum nestHost com/sun/source/tree/ModuleTree flags 4031 signature Ljava/lang/Enum<Lcom/sun/source/tree/ModuleTree$ModuleKind;>;
+innerclass innerClass com/sun/source/tree/ModuleTree$ModuleKind outerClass com/sun/source/tree/ModuleTree innerClassName ModuleKind flags 4019
+
+class name com/sun/source/tree/NewArrayTree
+header extends java/lang/Object implements com/sun/source/tree/ExpressionTree flags 601
+
+class name com/sun/source/tree/NewClassTree
+header extends java/lang/Object implements com/sun/source/tree/ExpressionTree flags 601
+
+class name com/sun/source/tree/OpensTree
+header extends java/lang/Object implements com/sun/source/tree/DirectiveTree flags 601
+
+class name com/sun/source/tree/PackageTree
+header extends java/lang/Object implements com/sun/source/tree/Tree flags 601
+
+class name com/sun/source/tree/ParameterizedTypeTree
+header extends java/lang/Object implements com/sun/source/tree/Tree flags 601
+
+class name com/sun/source/tree/ParenthesizedTree
+header extends java/lang/Object implements com/sun/source/tree/ExpressionTree flags 601
+
+class name com/sun/source/tree/PrimitiveTypeTree
+header extends java/lang/Object implements com/sun/source/tree/Tree flags 601
+
+class name com/sun/source/tree/ProvidesTree
+header extends java/lang/Object implements com/sun/source/tree/DirectiveTree flags 601
+
+class name com/sun/source/tree/RequiresTree
+header extends java/lang/Object implements com/sun/source/tree/DirectiveTree flags 601
+
+class name com/sun/source/tree/ReturnTree
+header extends java/lang/Object implements com/sun/source/tree/StatementTree flags 601
+
+class name com/sun/source/tree/Scope
+header extends java/lang/Object flags 601
+
+class name com/sun/source/tree/StatementTree
+header extends java/lang/Object implements com/sun/source/tree/Tree flags 601
+
+class name com/sun/source/tree/SwitchTree
+header extends java/lang/Object implements com/sun/source/tree/StatementTree flags 601
+
+class name com/sun/source/tree/SynchronizedTree
+header extends java/lang/Object implements com/sun/source/tree/StatementTree flags 601
+
+class name com/sun/source/tree/ThrowTree
+header extends java/lang/Object implements com/sun/source/tree/StatementTree flags 601
+
+class name com/sun/source/tree/Tree
+header extends java/lang/Object nestMembers com/sun/source/tree/Tree$Kind flags 601
+innerclass innerClass com/sun/source/tree/Tree$Kind outerClass com/sun/source/tree/Tree innerClassName Kind flags 4019
+
+class name com/sun/source/tree/Tree$Kind
+header extends java/lang/Enum nestHost com/sun/source/tree/Tree flags 4031 signature Ljava/lang/Enum<Lcom/sun/source/tree/Tree$Kind;>;
+innerclass innerClass com/sun/source/tree/Tree$Kind outerClass com/sun/source/tree/Tree innerClassName Kind flags 4019
+
+class name com/sun/source/tree/TreeVisitor
+header extends java/lang/Object flags 601 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljava/lang/Object;
+
+class name com/sun/source/tree/TryTree
+header extends java/lang/Object implements com/sun/source/tree/StatementTree flags 601
+
+class name com/sun/source/tree/TypeCastTree
+header extends java/lang/Object implements com/sun/source/tree/ExpressionTree flags 601
+
+class name com/sun/source/tree/TypeParameterTree
+header extends java/lang/Object implements com/sun/source/tree/Tree flags 601
+
+class name com/sun/source/tree/UnaryTree
+header extends java/lang/Object implements com/sun/source/tree/ExpressionTree flags 601
+
+class name com/sun/source/tree/UnionTypeTree
+header extends java/lang/Object implements com/sun/source/tree/Tree flags 601
+
+class name com/sun/source/tree/UsesTree
+header extends java/lang/Object implements com/sun/source/tree/DirectiveTree flags 601
+
+class name com/sun/source/tree/VariableTree
+header extends java/lang/Object implements com/sun/source/tree/StatementTree flags 601
+
+class name com/sun/source/tree/WhileLoopTree
+header extends java/lang/Object implements com/sun/source/tree/StatementTree flags 601
+
+class name com/sun/source/tree/WildcardTree
+header extends java/lang/Object implements com/sun/source/tree/Tree flags 601
+
+class name com/sun/source/util/DocSourcePositions
+header extends java/lang/Object implements com/sun/source/util/SourcePositions flags 601
+
+class name com/sun/source/util/DocTreeFactory
+header extends java/lang/Object flags 601
+innerclass innerClass com/sun/source/doctree/AttributeTree$ValueKind outerClass com/sun/source/doctree/AttributeTree innerClassName ValueKind flags 4019
+
+class name com/sun/source/util/DocTreePathScanner
+header extends com/sun/source/util/DocTreeScanner flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Lcom/sun/source/util/DocTreeScanner<TR;TP;>;
+
+class name com/sun/source/util/DocTreeScanner
+header extends java/lang/Object implements com/sun/source/doctree/DocTreeVisitor flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljava/lang/Object;Lcom/sun/source/doctree/DocTreeVisitor<TR;TP;>;
+
+class name com/sun/source/util/DocTrees
+header extends com/sun/source/util/Trees flags 421
+innerclass innerClass javax/tools/JavaCompiler$CompilationTask outerClass javax/tools/JavaCompiler innerClassName CompilationTask flags 609
+innerclass innerClass javax/tools/Diagnostic$Kind outerClass javax/tools/Diagnostic innerClassName Kind flags 4019
+
+class name com/sun/source/util/JavacTask
+header extends java/lang/Object implements javax/tools/JavaCompiler$CompilationTask flags 421
+innerclass innerClass javax/tools/JavaCompiler$CompilationTask outerClass javax/tools/JavaCompiler innerClassName CompilationTask flags 609
+
+class name com/sun/source/util/Plugin
+header extends java/lang/Object flags 601
+
+class name com/sun/source/util/SimpleDocTreeVisitor
+header extends java/lang/Object implements com/sun/source/doctree/DocTreeVisitor flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljava/lang/Object;Lcom/sun/source/doctree/DocTreeVisitor<TR;TP;>;
+
+class name com/sun/source/util/SimpleTreeVisitor
+header extends java/lang/Object implements com/sun/source/tree/TreeVisitor flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljava/lang/Object;Lcom/sun/source/tree/TreeVisitor<TR;TP;>;
+
+class name com/sun/source/util/SourcePositions
+header extends java/lang/Object flags 601
+
+class name com/sun/source/util/TaskEvent
+header extends java/lang/Object nestMembers com/sun/source/util/TaskEvent$Kind flags 31
+innerclass innerClass com/sun/source/util/TaskEvent$Kind outerClass com/sun/source/util/TaskEvent innerClassName Kind flags 4019
+
+class name com/sun/source/util/TaskEvent$Kind
+header extends java/lang/Enum nestHost com/sun/source/util/TaskEvent flags 4031 signature Ljava/lang/Enum<Lcom/sun/source/util/TaskEvent$Kind;>;
+innerclass innerClass com/sun/source/util/TaskEvent$Kind outerClass com/sun/source/util/TaskEvent innerClassName Kind flags 4019
+
+class name com/sun/source/util/TaskListener
+header extends java/lang/Object flags 601
+
+class name com/sun/source/util/TreePathScanner
+header extends com/sun/source/util/TreeScanner flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Lcom/sun/source/util/TreeScanner<TR;TP;>;
+
+class name com/sun/source/util/TreeScanner
+header extends java/lang/Object implements com/sun/source/tree/TreeVisitor flags 21 signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljava/lang/Object;Lcom/sun/source/tree/TreeVisitor<TR;TP;>;
+
+class name com/sun/source/util/Trees
+header extends java/lang/Object flags 421
+innerclass innerClass javax/tools/JavaCompiler$CompilationTask outerClass javax/tools/JavaCompiler innerClassName CompilationTask flags 609
+innerclass innerClass javax/tools/Diagnostic$Kind outerClass javax/tools/Diagnostic innerClassName Kind flags 4019
+
+class name com/sun/tools/javac/Main
+header extends java/lang/Object flags 21
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.crypto.cryptoki-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,31 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.crypto.cryptoki
+header requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;jdk.crypto.ec\u0020;flags\u0020;0 provides interface\u0020;java/security/Provider\u0020;impls\u0020;sun/security/pkcs11/SunPKCS11 target linux-amd64 flags 8000
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.crypto.ec-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,31 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.crypto.ec
+header requires name\u0020;java.base\u0020;flags\u0020;8000 provides interface\u0020;java/security/Provider\u0020;impls\u0020;sun/security/ec/SunEC target linux-amd64 flags 8000
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.dynalink-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,147 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.dynalink
+header exports jdk/dynalink,jdk/dynalink/beans,jdk/dynalink/linker,jdk/dynalink/linker/support,jdk/dynalink/support requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;java.logging\u0020;flags\u0020;0 uses jdk/dynalink/linker/GuardingDynamicLinkerExporter target linux-amd64 flags 8000
+
+class name jdk/dynalink/CallSiteDescriptor
+header extends jdk/dynalink/SecureLookupSupplier flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/dynalink/DynamicLinker
+header extends java/lang/Object flags 31
+innerclass innerClass java/lang/StackWalker$StackFrame outerClass java/lang/StackWalker innerClassName StackFrame flags 609
+innerclass innerClass java/lang/StackWalker$Option outerClass java/lang/StackWalker innerClassName Option flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/dynalink/NamedOperation
+header extends java/lang/Object implements jdk/dynalink/Operation flags 31
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/dynalink/Namespace
+header extends java/lang/Object flags 601
+
+class name jdk/dynalink/NamespaceOperation
+header extends java/lang/Object implements jdk/dynalink/Operation flags 31
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/dynalink/NoSuchDynamicMethodException
+header extends java/lang/RuntimeException flags 21
+
+class name jdk/dynalink/Operation
+header extends java/lang/Object flags 601
+
+class name jdk/dynalink/RelinkableCallSite
+header extends java/lang/Object flags 601
+
+class name jdk/dynalink/SecureLookupSupplier
+header extends java/lang/Object flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/dynalink/StandardNamespace
+header extends java/lang/Enum implements jdk/dynalink/Namespace flags 4031 signature Ljava/lang/Enum<Ljdk/dynalink/StandardNamespace;>;Ljdk/dynalink/Namespace;
+
+class name jdk/dynalink/StandardOperation
+header extends java/lang/Enum implements jdk/dynalink/Operation flags 4031 signature Ljava/lang/Enum<Ljdk/dynalink/StandardOperation;>;Ljdk/dynalink/Operation;
+
+class name jdk/dynalink/beans/MissingMemberHandlerFactory
+header extends java/lang/Object flags 601 runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name jdk/dynalink/linker/ConversionComparator
+header extends java/lang/Object nestMembers jdk/dynalink/linker/ConversionComparator$Comparison flags 601
+innerclass innerClass jdk/dynalink/linker/ConversionComparator$Comparison outerClass jdk/dynalink/linker/ConversionComparator innerClassName Comparison flags 4019
+
+class name jdk/dynalink/linker/ConversionComparator$Comparison
+header extends java/lang/Enum nestHost jdk/dynalink/linker/ConversionComparator flags 4031 signature Ljava/lang/Enum<Ljdk/dynalink/linker/ConversionComparator$Comparison;>;
+innerclass innerClass jdk/dynalink/linker/ConversionComparator$Comparison outerClass jdk/dynalink/linker/ConversionComparator innerClassName Comparison flags 4019
+
+class name jdk/dynalink/linker/GuardedInvocation
+header extends java/lang/Object flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/dynalink/linker/GuardedInvocationTransformer
+header extends java/lang/Object flags 601 runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name jdk/dynalink/linker/GuardingDynamicLinker
+header extends java/lang/Object flags 601
+
+class name jdk/dynalink/linker/GuardingDynamicLinkerExporter
+header extends java/lang/Object implements java/util/function/Supplier flags 421 signature Ljava/lang/Object;Ljava/util/function/Supplier<Ljava/util/List<Ljdk/dynalink/linker/GuardingDynamicLinker;>;>;
+
+class name jdk/dynalink/linker/GuardingTypeConverterFactory
+header extends java/lang/Object flags 601
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/dynalink/linker/LinkRequest
+header extends java/lang/Object flags 601
+
+class name jdk/dynalink/linker/LinkerServices
+header extends java/lang/Object flags 601
+innerclass innerClass jdk/dynalink/linker/ConversionComparator$Comparison outerClass jdk/dynalink/linker/ConversionComparator innerClassName Comparison flags 4019
+
+class name jdk/dynalink/linker/MethodHandleTransformer
+header extends java/lang/Object flags 601 runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name jdk/dynalink/linker/MethodTypeConversionStrategy
+header extends java/lang/Object flags 601 runtimeAnnotations @Ljava/lang/FunctionalInterface;
+
+class name jdk/dynalink/linker/TypeBasedGuardingDynamicLinker
+header extends java/lang/Object implements jdk/dynalink/linker/GuardingDynamicLinker flags 601
+
+class name jdk/dynalink/linker/support/CompositeGuardingDynamicLinker
+header extends java/lang/Object implements jdk/dynalink/linker/GuardingDynamicLinker flags 21
+
+class name jdk/dynalink/linker/support/DefaultInternalObjectFilter
+header extends java/lang/Object implements jdk/dynalink/linker/MethodHandleTransformer flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/dynalink/linker/support/Guards
+header extends java/lang/Object flags 31
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/dynalink/linker/support/Lookup
+header extends java/lang/Object flags 31
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/dynalink/linker/support/SimpleLinkRequest
+header extends java/lang/Object implements jdk/dynalink/linker/LinkRequest flags 21
+
+class name jdk/dynalink/linker/support/TypeUtilities
+header extends java/lang/Object flags 31
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+
+class name jdk/dynalink/support/AbstractRelinkableCallSite
+header extends java/lang/invoke/MutableCallSite implements jdk/dynalink/RelinkableCallSite flags 421
+
+class name jdk/dynalink/support/ChainedCallSite
+header extends jdk/dynalink/support/AbstractRelinkableCallSite flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/dynalink/support/SimpleRelinkableCallSite
+header extends jdk/dynalink/support/AbstractRelinkableCallSite flags 21
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.editpad-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,31 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.editpad
+header requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;java.desktop\u0020;flags\u0020;0,name\u0020;jdk.internal.ed\u0020;flags\u0020;0 provides interface\u0020;jdk/internal/editor/spi/BuildInEditorProvider\u0020;impls\u0020;jdk/editpad/EditPadProvider target linux-amd64 flags 8000
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.hotspot.agent-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,31 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.hotspot.agent
+header requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;java.datatransfer\u0020;flags\u0020;0,name\u0020;java.desktop\u0020;flags\u0020;0,name\u0020;java.rmi\u0020;flags\u0020;0,name\u0020;java.scripting\u0020;flags\u0020;0 target linux-amd64 flags 8000
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.httpserver-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,106 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.httpserver
+header exports com/sun/net/httpserver,com/sun/net/httpserver/spi requires name\u0020;java.base\u0020;flags\u0020;8000 uses com/sun/net/httpserver/spi/HttpServerProvider target linux-amd64 flags 8000
+
+class name com/sun/net/httpserver/Authenticator
+header extends java/lang/Object nestMembers com/sun/net/httpserver/Authenticator$Retry,com/sun/net/httpserver/Authenticator$Success,com/sun/net/httpserver/Authenticator$Failure,com/sun/net/httpserver/Authenticator$Result flags 421
+innerclass innerClass com/sun/net/httpserver/Authenticator$Retry outerClass com/sun/net/httpserver/Authenticator innerClassName Retry flags 9
+innerclass innerClass com/sun/net/httpserver/Authenticator$Success outerClass com/sun/net/httpserver/Authenticator innerClassName Success flags 9
+innerclass innerClass com/sun/net/httpserver/Authenticator$Failure outerClass com/sun/net/httpserver/Authenticator innerClassName Failure flags 9
+innerclass innerClass com/sun/net/httpserver/Authenticator$Result outerClass com/sun/net/httpserver/Authenticator innerClassName Result flags 409
+
+class name com/sun/net/httpserver/Authenticator$Failure
+header extends com/sun/net/httpserver/Authenticator$Result nestHost com/sun/net/httpserver/Authenticator flags 21
+innerclass innerClass com/sun/net/httpserver/Authenticator$Failure outerClass com/sun/net/httpserver/Authenticator innerClassName Failure flags 9
+innerclass innerClass com/sun/net/httpserver/Authenticator$Result outerClass com/sun/net/httpserver/Authenticator innerClassName Result flags 409
+
+class name com/sun/net/httpserver/Authenticator$Result
+header extends java/lang/Object nestHost com/sun/net/httpserver/Authenticator flags 421
+innerclass innerClass com/sun/net/httpserver/Authenticator$Result outerClass com/sun/net/httpserver/Authenticator innerClassName Result flags 409
+
+class name com/sun/net/httpserver/Authenticator$Retry
+header extends com/sun/net/httpserver/Authenticator$Result nestHost com/sun/net/httpserver/Authenticator flags 21
+innerclass innerClass com/sun/net/httpserver/Authenticator$Retry outerClass com/sun/net/httpserver/Authenticator innerClassName Retry flags 9
+innerclass innerClass com/sun/net/httpserver/Authenticator$Result outerClass com/sun/net/httpserver/Authenticator innerClassName Result flags 409
+
+class name com/sun/net/httpserver/Authenticator$Success
+header extends com/sun/net/httpserver/Authenticator$Result nestHost com/sun/net/httpserver/Authenticator flags 21
+innerclass innerClass com/sun/net/httpserver/Authenticator$Success outerClass com/sun/net/httpserver/Authenticator innerClassName Success flags 9
+innerclass innerClass com/sun/net/httpserver/Authenticator$Result outerClass com/sun/net/httpserver/Authenticator innerClassName Result flags 409
+
+class name com/sun/net/httpserver/BasicAuthenticator
+header extends com/sun/net/httpserver/Authenticator flags 421
+innerclass innerClass com/sun/net/httpserver/Authenticator$Result outerClass com/sun/net/httpserver/Authenticator innerClassName Result flags 409
+innerclass innerClass com/sun/net/httpserver/Authenticator$Retry outerClass com/sun/net/httpserver/Authenticator innerClassName Retry flags 9
+innerclass innerClass com/sun/net/httpserver/Authenticator$Failure outerClass com/sun/net/httpserver/Authenticator innerClassName Failure flags 9
+innerclass innerClass com/sun/net/httpserver/Authenticator$Success outerClass com/sun/net/httpserver/Authenticator innerClassName Success flags 9
+innerclass innerClass java/util/Base64$Decoder outerClass java/util/Base64 innerClassName Decoder flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name com/sun/net/httpserver/Filter
+header extends java/lang/Object nestMembers com/sun/net/httpserver/Filter$Chain flags 421
+innerclass innerClass com/sun/net/httpserver/Filter$Chain outerClass com/sun/net/httpserver/Filter innerClassName Chain flags 9
+
+class name com/sun/net/httpserver/Filter$Chain
+header extends java/lang/Object nestHost com/sun/net/httpserver/Filter flags 21
+innerclass innerClass com/sun/net/httpserver/Filter$Chain outerClass com/sun/net/httpserver/Filter innerClassName Chain flags 9
+
+class name com/sun/net/httpserver/Headers
+header extends java/lang/Object implements java/util/Map flags 21 signature Ljava/lang/Object;Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+
+class name com/sun/net/httpserver/HttpContext
+header extends java/lang/Object flags 421
+
+class name com/sun/net/httpserver/HttpExchange
+header extends java/lang/Object flags 421
+
+class name com/sun/net/httpserver/HttpHandler
+header extends java/lang/Object flags 601
+
+class name com/sun/net/httpserver/HttpPrincipal
+header extends java/lang/Object implements java/security/Principal flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name com/sun/net/httpserver/HttpServer
+header extends java/lang/Object flags 421
+
+class name com/sun/net/httpserver/HttpsConfigurator
+header extends java/lang/Object flags 21
+
+class name com/sun/net/httpserver/HttpsExchange
+header extends com/sun/net/httpserver/HttpExchange flags 421
+
+class name com/sun/net/httpserver/HttpsParameters
+header extends java/lang/Object flags 421
+
+class name com/sun/net/httpserver/HttpsServer
+header extends com/sun/net/httpserver/HttpServer flags 421
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.incubator.httpclient-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,68 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+-module name jdk.incubator.httpclient
+
+-class name jdk/incubator/http/HttpClient
+
+-class name jdk/incubator/http/HttpClient$Builder
+
+-class name jdk/incubator/http/HttpClient$Redirect
+
+-class name jdk/incubator/http/HttpClient$Version
+
+-class name jdk/incubator/http/HttpHeaders
+
+-class name jdk/incubator/http/HttpRequest
+
+-class name jdk/incubator/http/HttpRequest$BodyPublisher
+
+-class name jdk/incubator/http/HttpRequest$Builder
+
+-class name jdk/incubator/http/HttpResponse
+
+-class name jdk/incubator/http/HttpResponse$BodyHandler
+
+-class name jdk/incubator/http/HttpResponse$BodySubscriber
+
+-class name jdk/incubator/http/HttpResponse$MultiSubscriber
+
+-class name jdk/incubator/http/HttpTimeoutException
+
+-class name jdk/incubator/http/MultiMapResult
+
+-class name jdk/incubator/http/WebSocket
+
+-class name jdk/incubator/http/WebSocket$Builder
+
+-class name jdk/incubator/http/WebSocket$Listener
+
+-class name jdk/incubator/http/WebSocket$MessagePart
+
+-class name jdk/incubator/http/WebSocketHandshakeException
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.jartool-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,51 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.jartool
+header exports com/sun/jarsigner,jdk/security/jarsigner requires name\u0020;java.base\u0020;flags\u0020;8000 provides interface\u0020;java/util/spi/ToolProvider\u0020;impls\u0020;sun/tools/jar/JarToolProvider target linux-amd64 flags 8000
+
+class name com/sun/jarsigner/ContentSigner
+header extends java/lang/Object flags 421 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="9")
+
+class name com/sun/jarsigner/ContentSignerParameters
+header extends java/lang/Object flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="9")
+
+class name jdk/security/jarsigner/JarSigner
+header extends java/lang/Object nestMembers jdk/security/jarsigner/JarSigner$Builder flags 31
+innerclass innerClass jdk/security/jarsigner/JarSigner$Builder outerClass jdk/security/jarsigner/JarSigner innerClassName Builder flags 9
+innerclass innerClass java/util/jar/Attributes$Name outerClass java/util/jar/Attributes innerClassName Name flags 9
+innerclass innerClass java/util/Base64$Encoder outerClass java/util/Base64 innerClassName Encoder flags 9
+
+class name jdk/security/jarsigner/JarSigner$Builder
+header extends java/lang/Object nestHost jdk/security/jarsigner/JarSigner flags 21
+innerclass innerClass java/security/KeyStore$PrivateKeyEntry outerClass java/security/KeyStore innerClassName PrivateKeyEntry flags 19
+innerclass innerClass jdk/security/jarsigner/JarSigner$Builder outerClass jdk/security/jarsigner/JarSigner innerClassName Builder flags 9
+
+class name jdk/security/jarsigner/JarSignerException
+header extends java/lang/RuntimeException flags 21
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.javadoc-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,170 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.javadoc
+header exports com/sun/javadoc,com/sun/tools/javadoc,jdk/javadoc/doclet requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;java.xml\u0020;flags\u0020;0,name\u0020;java.compiler\u0020;flags\u0020;20,name\u0020;jdk.compiler\u0020;flags\u0020;20 provides interface\u0020;java/util/spi/ToolProvider\u0020;impls\u0020;jdk/javadoc/internal/tool/JavadocToolProvider,interface\u0020;javax/tools/DocumentationTool\u0020;impls\u0020;jdk/javadoc/internal/api/JavadocTool,interface\u0020;javax/tools/Tool\u0020;impls\u0020;jdk/javadoc/internal/api/JavadocTool target linux-amd64 flags 8000
+
+class name com/sun/javadoc/AnnotatedType
+header extends java/lang/Object implements com/sun/javadoc/Type flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name com/sun/javadoc/AnnotationDesc
+header extends java/lang/Object nestMembers com/sun/javadoc/AnnotationDesc$ElementValuePair flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+innerclass innerClass com/sun/javadoc/AnnotationDesc$ElementValuePair outerClass com/sun/javadoc/AnnotationDesc innerClassName ElementValuePair flags 609
+
+class name com/sun/javadoc/AnnotationDesc$ElementValuePair
+header extends java/lang/Object nestHost com/sun/javadoc/AnnotationDesc flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+innerclass innerClass com/sun/javadoc/AnnotationDesc$ElementValuePair outerClass com/sun/javadoc/AnnotationDesc innerClassName ElementValuePair flags 609
+
+class name com/sun/javadoc/AnnotationTypeDoc
+header extends java/lang/Object implements com/sun/javadoc/ClassDoc flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name com/sun/javadoc/AnnotationTypeElementDoc
+header extends java/lang/Object implements com/sun/javadoc/MethodDoc flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name com/sun/javadoc/AnnotationValue
+header extends java/lang/Object flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name com/sun/javadoc/ClassDoc
+header extends java/lang/Object implements com/sun/javadoc/ProgramElementDoc,com/sun/javadoc/Type flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+-method name importedClasses descriptor ()[Lcom/sun/javadoc/ClassDoc;
+-method name importedPackages descriptor ()[Lcom/sun/javadoc/PackageDoc;
+method name importedClasses descriptor ()[Lcom/sun/javadoc/ClassDoc; flags 401 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+method name importedPackages descriptor ()[Lcom/sun/javadoc/PackageDoc; flags 401 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name com/sun/javadoc/ConstructorDoc
+header extends java/lang/Object implements com/sun/javadoc/ExecutableMemberDoc flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name com/sun/javadoc/Doc
+header extends java/lang/Object implements java/lang/Comparable flags 601 deprecated true signature Ljava/lang/Object;Ljava/lang/Comparable<Ljava/lang/Object;>; runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name com/sun/javadoc/DocErrorReporter
+header extends java/lang/Object flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name com/sun/javadoc/Doclet
+header extends java/lang/Object flags 421 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name com/sun/javadoc/ExecutableMemberDoc
+header extends java/lang/Object implements com/sun/javadoc/MemberDoc flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name com/sun/javadoc/FieldDoc
+header extends java/lang/Object implements com/sun/javadoc/MemberDoc flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name com/sun/javadoc/LanguageVersion
+header extends java/lang/Enum flags 4031 deprecated true signature Ljava/lang/Enum<Lcom/sun/javadoc/LanguageVersion;>; runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name com/sun/javadoc/MemberDoc
+header extends java/lang/Object implements com/sun/javadoc/ProgramElementDoc flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name com/sun/javadoc/MethodDoc
+header extends java/lang/Object implements com/sun/javadoc/ExecutableMemberDoc flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name com/sun/javadoc/PackageDoc
+header extends java/lang/Object implements com/sun/javadoc/Doc flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name com/sun/javadoc/ParamTag
+header extends java/lang/Object implements com/sun/javadoc/Tag flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name com/sun/javadoc/Parameter
+header extends java/lang/Object flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name com/sun/javadoc/ParameterizedType
+header extends java/lang/Object implements com/sun/javadoc/Type flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name com/sun/javadoc/ProgramElementDoc
+header extends java/lang/Object implements com/sun/javadoc/Doc flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name com/sun/javadoc/RootDoc
+header extends java/lang/Object implements com/sun/javadoc/Doc,com/sun/javadoc/DocErrorReporter flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name com/sun/javadoc/SeeTag
+header extends java/lang/Object implements com/sun/javadoc/Tag flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name com/sun/javadoc/SerialFieldTag
+header extends java/lang/Object implements com/sun/javadoc/Tag,java/lang/Comparable flags 601 deprecated true signature Ljava/lang/Object;Lcom/sun/javadoc/Tag;Ljava/lang/Comparable<Ljava/lang/Object;>; runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name com/sun/javadoc/SourcePosition
+header extends java/lang/Object flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name com/sun/javadoc/Tag
+header extends java/lang/Object flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name com/sun/javadoc/ThrowsTag
+header extends java/lang/Object implements com/sun/javadoc/Tag flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name com/sun/javadoc/Type
+header extends java/lang/Object flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name com/sun/javadoc/TypeVariable
+header extends java/lang/Object implements com/sun/javadoc/Type flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name com/sun/javadoc/WildcardType
+header extends java/lang/Object implements com/sun/javadoc/Type flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name com/sun/tools/javadoc/Main
+header extends java/lang/Object flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="9")
+
+class name jdk/javadoc/doclet/Doclet
+header extends java/lang/Object nestMembers jdk/javadoc/doclet/Doclet$Option,jdk/javadoc/doclet/Doclet$Option$Kind flags 601
+innerclass innerClass jdk/javadoc/doclet/Doclet$Option outerClass jdk/javadoc/doclet/Doclet innerClassName Option flags 609
+innerclass innerClass jdk/javadoc/doclet/Doclet$Option$Kind outerClass jdk/javadoc/doclet/Doclet$Option innerClassName Kind flags 4019
+
+class name jdk/javadoc/doclet/Doclet$Option
+header extends java/lang/Object nestHost jdk/javadoc/doclet/Doclet flags 601
+innerclass innerClass jdk/javadoc/doclet/Doclet$Option outerClass jdk/javadoc/doclet/Doclet innerClassName Option flags 609
+innerclass innerClass jdk/javadoc/doclet/Doclet$Option$Kind outerClass jdk/javadoc/doclet/Doclet$Option innerClassName Kind flags 4019
+
+class name jdk/javadoc/doclet/Doclet$Option$Kind
+header extends java/lang/Enum nestHost jdk/javadoc/doclet/Doclet flags 4031 signature Ljava/lang/Enum<Ljdk/javadoc/doclet/Doclet$Option$Kind;>;
+innerclass innerClass jdk/javadoc/doclet/Doclet$Option outerClass jdk/javadoc/doclet/Doclet innerClassName Option flags 609
+innerclass innerClass jdk/javadoc/doclet/Doclet$Option$Kind outerClass jdk/javadoc/doclet/Doclet$Option innerClassName Kind flags 4019
+
+class name jdk/javadoc/doclet/DocletEnvironment
+header extends java/lang/Object nestMembers jdk/javadoc/doclet/DocletEnvironment$ModuleMode flags 601
+innerclass innerClass jdk/javadoc/doclet/DocletEnvironment$ModuleMode outerClass jdk/javadoc/doclet/DocletEnvironment innerClassName ModuleMode flags 4019
+innerclass innerClass javax/tools/JavaFileObject$Kind outerClass javax/tools/JavaFileObject innerClassName Kind flags 4019
+
+class name jdk/javadoc/doclet/DocletEnvironment$ModuleMode
+header extends java/lang/Enum nestHost jdk/javadoc/doclet/DocletEnvironment flags 4031 signature Ljava/lang/Enum<Ljdk/javadoc/doclet/DocletEnvironment$ModuleMode;>;
+innerclass innerClass jdk/javadoc/doclet/DocletEnvironment$ModuleMode outerClass jdk/javadoc/doclet/DocletEnvironment innerClassName ModuleMode flags 4019
+
+class name jdk/javadoc/doclet/Reporter
+header extends java/lang/Object flags 601
+innerclass innerClass javax/tools/Diagnostic$Kind outerClass javax/tools/Diagnostic innerClassName Kind flags 4019
+
+class name jdk/javadoc/doclet/StandardDoclet
+header extends java/lang/Object implements jdk/javadoc/doclet/Doclet flags 21
+innerclass innerClass jdk/javadoc/doclet/Doclet$Option outerClass jdk/javadoc/doclet/Doclet innerClassName Option flags 609
+
+class name jdk/javadoc/doclet/Taglet
+header extends java/lang/Object nestMembers jdk/javadoc/doclet/Taglet$Location flags 601
+innerclass innerClass jdk/javadoc/doclet/Taglet$Location outerClass jdk/javadoc/doclet/Taglet innerClassName Location flags 4019
+
+class name jdk/javadoc/doclet/Taglet$Location
+header extends java/lang/Enum nestHost jdk/javadoc/doclet/Taglet flags 4031 signature Ljava/lang/Enum<Ljdk/javadoc/doclet/Taglet$Location;>;
+innerclass innerClass jdk/javadoc/doclet/Taglet$Location outerClass jdk/javadoc/doclet/Taglet innerClassName Location flags 4019
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.jcmd-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,31 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.jcmd
+header requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;jdk.attach\u0020;flags\u0020;0,name\u0020;jdk.internal.jvmstat\u0020;flags\u0020;0 target linux-amd64 flags 8000
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.jconsole-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,42 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.jconsole
+header exports com/sun/tools/jconsole requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;java.management.rmi\u0020;flags\u0020;0,name\u0020;java.rmi\u0020;flags\u0020;0,name\u0020;jdk.attach\u0020;flags\u0020;0,name\u0020;jdk.internal.jvmstat\u0020;flags\u0020;0,name\u0020;jdk.management\u0020;flags\u0020;0,name\u0020;jdk.management.agent\u0020;flags\u0020;0,name\u0020;java.desktop\u0020;flags\u0020;20,name\u0020;java.management\u0020;flags\u0020;20 uses com/sun/tools/jconsole/JConsolePlugin target linux-amd64 flags 8000
+
+class name com/sun/tools/jconsole/JConsoleContext
+header extends java/lang/Object nestMembers com/sun/tools/jconsole/JConsoleContext$ConnectionState flags 601
+innerclass innerClass com/sun/tools/jconsole/JConsoleContext$ConnectionState outerClass com/sun/tools/jconsole/JConsoleContext innerClassName ConnectionState flags 4019
+
+class name com/sun/tools/jconsole/JConsoleContext$ConnectionState
+header extends java/lang/Enum nestHost com/sun/tools/jconsole/JConsoleContext flags 4031 signature Ljava/lang/Enum<Lcom/sun/tools/jconsole/JConsoleContext$ConnectionState;>;
+innerclass innerClass com/sun/tools/jconsole/JConsoleContext$ConnectionState outerClass com/sun/tools/jconsole/JConsoleContext innerClassName ConnectionState flags 4019
+
+class name com/sun/tools/jconsole/JConsolePlugin
+header extends java/lang/Object flags 421
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.jdeps-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,31 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.jdeps
+header requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;java.compiler\u0020;flags\u0020;0,name\u0020;jdk.compiler\u0020;flags\u0020;0 provides interface\u0020;java/util/spi/ToolProvider\u0020;impls\u0020;com/sun/tools/javap/Main$JavapToolProvider\u005C;u002C;com/sun/tools/jdeps/Main$JDepsToolProvider target linux-amd64 flags 8000
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.jdi-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,443 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.jdi
+header exports com/sun/jdi,com/sun/jdi/connect,com/sun/jdi/connect/spi,com/sun/jdi/event,com/sun/jdi/request requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;jdk.attach\u0020;flags\u0020;0,name\u0020;jdk.jdwp.agent\u0020;flags\u0020;0 uses com/sun/jdi/connect/Connector,com/sun/jdi/connect/spi/TransportService provides interface\u0020;com/sun/jdi/connect/Connector\u0020;impls\u0020;com/sun/tools/jdi/ProcessAttachingConnector\u005C;u002C;com/sun/tools/jdi/RawCommandLineLauncher\u005C;u002C;com/sun/tools/jdi/SocketAttachingConnector\u005C;u002C;com/sun/tools/jdi/SocketListeningConnector\u005C;u002C;com/sun/tools/jdi/SunCommandLineLauncher target linux-amd64 flags 8000
+
+class name com/sun/jdi/AbsentInformationException
+header extends java/lang/Exception flags 21
+
+class name com/sun/jdi/Accessible
+header extends java/lang/Object flags 601
+
+class name com/sun/jdi/ArrayReference
+header extends java/lang/Object implements com/sun/jdi/ObjectReference flags 601
+
+class name com/sun/jdi/ArrayType
+header extends java/lang/Object implements com/sun/jdi/ReferenceType flags 601
+
+class name com/sun/jdi/BooleanType
+header extends java/lang/Object implements com/sun/jdi/PrimitiveType flags 601
+
+class name com/sun/jdi/BooleanValue
+header extends java/lang/Object implements com/sun/jdi/PrimitiveValue flags 601
+
+class name com/sun/jdi/Bootstrap
+header extends java/lang/Object flags 21
+
+class name com/sun/jdi/ByteType
+header extends java/lang/Object implements com/sun/jdi/PrimitiveType flags 601
+
+class name com/sun/jdi/ByteValue
+header extends java/lang/Object implements com/sun/jdi/PrimitiveValue,java/lang/Comparable flags 601 signature Ljava/lang/Object;Lcom/sun/jdi/PrimitiveValue;Ljava/lang/Comparable<Lcom/sun/jdi/ByteValue;>;
+
+class name com/sun/jdi/CharType
+header extends java/lang/Object implements com/sun/jdi/PrimitiveType flags 601
+
+class name com/sun/jdi/CharValue
+header extends java/lang/Object implements com/sun/jdi/PrimitiveValue,java/lang/Comparable flags 601 signature Ljava/lang/Object;Lcom/sun/jdi/PrimitiveValue;Ljava/lang/Comparable<Lcom/sun/jdi/CharValue;>;
+
+class name com/sun/jdi/ClassLoaderReference
+header extends java/lang/Object implements com/sun/jdi/ObjectReference flags 601
+
+class name com/sun/jdi/ClassNotLoadedException
+header extends java/lang/Exception flags 21
+
+class name com/sun/jdi/ClassNotPreparedException
+header extends java/lang/RuntimeException flags 21
+
+class name com/sun/jdi/ClassObjectReference
+header extends java/lang/Object implements com/sun/jdi/ObjectReference flags 601
+
+class name com/sun/jdi/ClassType
+header extends java/lang/Object implements com/sun/jdi/ReferenceType flags 601
+
+class name com/sun/jdi/DoubleType
+header extends java/lang/Object implements com/sun/jdi/PrimitiveType flags 601
+
+class name com/sun/jdi/DoubleValue
+header extends java/lang/Object implements com/sun/jdi/PrimitiveValue,java/lang/Comparable flags 601 signature Ljava/lang/Object;Lcom/sun/jdi/PrimitiveValue;Ljava/lang/Comparable<Lcom/sun/jdi/DoubleValue;>;
+
+class name com/sun/jdi/Field
+header extends java/lang/Object implements com/sun/jdi/TypeComponent,java/lang/Comparable flags 601 signature Ljava/lang/Object;Lcom/sun/jdi/TypeComponent;Ljava/lang/Comparable<Lcom/sun/jdi/Field;>;
+
+class name com/sun/jdi/FloatType
+header extends java/lang/Object implements com/sun/jdi/PrimitiveType flags 601
+
+class name com/sun/jdi/FloatValue
+header extends java/lang/Object implements com/sun/jdi/PrimitiveValue,java/lang/Comparable flags 601 signature Ljava/lang/Object;Lcom/sun/jdi/PrimitiveValue;Ljava/lang/Comparable<Lcom/sun/jdi/FloatValue;>;
+
+class name com/sun/jdi/IncompatibleThreadStateException
+header extends java/lang/Exception flags 21
+
+class name com/sun/jdi/InconsistentDebugInfoException
+header extends java/lang/RuntimeException flags 21
+
+class name com/sun/jdi/IntegerType
+header extends java/lang/Object implements com/sun/jdi/PrimitiveType flags 601
+
+class name com/sun/jdi/IntegerValue
+header extends java/lang/Object implements com/sun/jdi/PrimitiveValue,java/lang/Comparable flags 601 signature Ljava/lang/Object;Lcom/sun/jdi/PrimitiveValue;Ljava/lang/Comparable<Lcom/sun/jdi/IntegerValue;>;
+
+class name com/sun/jdi/InterfaceType
+header extends java/lang/Object implements com/sun/jdi/ReferenceType flags 601
+
+class name com/sun/jdi/InternalException
+header extends java/lang/RuntimeException flags 21
+
+class name com/sun/jdi/InvalidCodeIndexException
+header extends java/lang/RuntimeException flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;
+
+class name com/sun/jdi/InvalidLineNumberException
+header extends java/lang/RuntimeException flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;
+
+class name com/sun/jdi/InvalidModuleException
+header extends java/lang/RuntimeException flags 21
+
+class name com/sun/jdi/InvalidStackFrameException
+header extends java/lang/RuntimeException flags 21
+
+class name com/sun/jdi/InvalidTypeException
+header extends java/lang/Exception flags 21
+
+class name com/sun/jdi/InvocationException
+header extends java/lang/Exception flags 21
+
+class name com/sun/jdi/JDIPermission
+header extends java/security/BasicPermission flags 31
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name com/sun/jdi/LocalVariable
+header extends java/lang/Object implements com/sun/jdi/Mirror,java/lang/Comparable flags 601 signature Ljava/lang/Object;Lcom/sun/jdi/Mirror;Ljava/lang/Comparable<Lcom/sun/jdi/LocalVariable;>;
+
+class name com/sun/jdi/Locatable
+header extends java/lang/Object flags 601
+
+class name com/sun/jdi/Location
+header extends java/lang/Object implements com/sun/jdi/Mirror,java/lang/Comparable flags 601 signature Ljava/lang/Object;Lcom/sun/jdi/Mirror;Ljava/lang/Comparable<Lcom/sun/jdi/Location;>;
+
+class name com/sun/jdi/LongType
+header extends java/lang/Object implements com/sun/jdi/PrimitiveType flags 601
+
+class name com/sun/jdi/LongValue
+header extends java/lang/Object implements com/sun/jdi/PrimitiveValue,java/lang/Comparable flags 601 signature Ljava/lang/Object;Lcom/sun/jdi/PrimitiveValue;Ljava/lang/Comparable<Lcom/sun/jdi/LongValue;>;
+
+class name com/sun/jdi/Method
+header extends java/lang/Object implements com/sun/jdi/TypeComponent,com/sun/jdi/Locatable,java/lang/Comparable flags 601 signature Ljava/lang/Object;Lcom/sun/jdi/TypeComponent;Lcom/sun/jdi/Locatable;Ljava/lang/Comparable<Lcom/sun/jdi/Method;>;
+
+class name com/sun/jdi/Mirror
+header extends java/lang/Object flags 601
+
+class name com/sun/jdi/ModuleReference
+header extends java/lang/Object implements com/sun/jdi/ObjectReference flags 601
+
+class name com/sun/jdi/MonitorInfo
+header extends java/lang/Object implements com/sun/jdi/Mirror flags 601
+
+class name com/sun/jdi/NativeMethodException
+header extends java/lang/RuntimeException flags 21
+
+class name com/sun/jdi/ObjectCollectedException
+header extends java/lang/RuntimeException flags 21
+
+class name com/sun/jdi/ObjectReference
+header extends java/lang/Object implements com/sun/jdi/Value flags 601
+
+class name com/sun/jdi/PathSearchingVirtualMachine
+header extends java/lang/Object implements com/sun/jdi/VirtualMachine flags 601
+
+class name com/sun/jdi/PrimitiveType
+header extends java/lang/Object implements com/sun/jdi/Type flags 601
+
+class name com/sun/jdi/PrimitiveValue
+header extends java/lang/Object implements com/sun/jdi/Value flags 601
+
+class name com/sun/jdi/ReferenceType
+header extends java/lang/Object implements com/sun/jdi/Type,java/lang/Comparable,com/sun/jdi/Accessible flags 601 signature Ljava/lang/Object;Lcom/sun/jdi/Type;Ljava/lang/Comparable<Lcom/sun/jdi/ReferenceType;>;Lcom/sun/jdi/Accessible;
+
+class name com/sun/jdi/ShortType
+header extends java/lang/Object implements com/sun/jdi/PrimitiveType flags 601
+
+class name com/sun/jdi/ShortValue
+header extends java/lang/Object implements com/sun/jdi/PrimitiveValue,java/lang/Comparable flags 601 signature Ljava/lang/Object;Lcom/sun/jdi/PrimitiveValue;Ljava/lang/Comparable<Lcom/sun/jdi/ShortValue;>;
+
+class name com/sun/jdi/StackFrame
+header extends java/lang/Object implements com/sun/jdi/Mirror,com/sun/jdi/Locatable flags 601
+
+class name com/sun/jdi/StringReference
+header extends java/lang/Object implements com/sun/jdi/ObjectReference flags 601
+
+class name com/sun/jdi/ThreadGroupReference
+header extends java/lang/Object implements com/sun/jdi/ObjectReference flags 601
+
+class name com/sun/jdi/ThreadReference
+header extends java/lang/Object implements com/sun/jdi/ObjectReference flags 601
+
+class name com/sun/jdi/Type
+header extends java/lang/Object implements com/sun/jdi/Mirror flags 601
+
+class name com/sun/jdi/TypeComponent
+header extends java/lang/Object implements com/sun/jdi/Mirror,com/sun/jdi/Accessible flags 601
+
+class name com/sun/jdi/VMCannotBeModifiedException
+header extends java/lang/UnsupportedOperationException flags 21
+
+class name com/sun/jdi/VMDisconnectedException
+header extends java/lang/RuntimeException flags 21
+
+class name com/sun/jdi/VMMismatchException
+header extends java/lang/RuntimeException flags 21
+
+class name com/sun/jdi/VMOutOfMemoryException
+header extends java/lang/RuntimeException flags 21
+
+class name com/sun/jdi/Value
+header extends java/lang/Object implements com/sun/jdi/Mirror flags 601
+
+class name com/sun/jdi/VirtualMachine
+header extends java/lang/Object implements com/sun/jdi/Mirror flags 601
+
+class name com/sun/jdi/VirtualMachineManager
+header extends java/lang/Object flags 601
+
+class name com/sun/jdi/VoidType
+header extends java/lang/Object implements com/sun/jdi/Type flags 601
+
+class name com/sun/jdi/VoidValue
+header extends java/lang/Object implements com/sun/jdi/Value flags 601
+
+class name com/sun/jdi/connect/AttachingConnector
+header extends java/lang/Object implements com/sun/jdi/connect/Connector flags 601
+innerclass innerClass com/sun/jdi/connect/Connector$Argument outerClass com/sun/jdi/connect/Connector innerClassName Argument flags 609
+
+class name com/sun/jdi/connect/Connector
+header extends java/lang/Object nestMembers com/sun/jdi/connect/Connector$SelectedArgument,com/sun/jdi/connect/Connector$StringArgument,com/sun/jdi/connect/Connector$IntegerArgument,com/sun/jdi/connect/Connector$BooleanArgument,com/sun/jdi/connect/Connector$Argument flags 601
+innerclass innerClass com/sun/jdi/connect/Connector$SelectedArgument outerClass com/sun/jdi/connect/Connector innerClassName SelectedArgument flags 609
+innerclass innerClass com/sun/jdi/connect/Connector$StringArgument outerClass com/sun/jdi/connect/Connector innerClassName StringArgument flags 609
+innerclass innerClass com/sun/jdi/connect/Connector$IntegerArgument outerClass com/sun/jdi/connect/Connector innerClassName IntegerArgument flags 609
+innerclass innerClass com/sun/jdi/connect/Connector$BooleanArgument outerClass com/sun/jdi/connect/Connector innerClassName BooleanArgument flags 609
+innerclass innerClass com/sun/jdi/connect/Connector$Argument outerClass com/sun/jdi/connect/Connector innerClassName Argument flags 609
+
+class name com/sun/jdi/connect/Connector$Argument
+header extends java/lang/Object implements java/io/Serializable nestHost com/sun/jdi/connect/Connector flags 601
+innerclass innerClass com/sun/jdi/connect/Connector$Argument outerClass com/sun/jdi/connect/Connector innerClassName Argument flags 609
+
+class name com/sun/jdi/connect/Connector$BooleanArgument
+header extends java/lang/Object implements com/sun/jdi/connect/Connector$Argument nestHost com/sun/jdi/connect/Connector flags 601
+innerclass innerClass com/sun/jdi/connect/Connector$BooleanArgument outerClass com/sun/jdi/connect/Connector innerClassName BooleanArgument flags 609
+innerclass innerClass com/sun/jdi/connect/Connector$Argument outerClass com/sun/jdi/connect/Connector innerClassName Argument flags 609
+
+class name com/sun/jdi/connect/Connector$IntegerArgument
+header extends java/lang/Object implements com/sun/jdi/connect/Connector$Argument nestHost com/sun/jdi/connect/Connector flags 601
+innerclass innerClass com/sun/jdi/connect/Connector$IntegerArgument outerClass com/sun/jdi/connect/Connector innerClassName IntegerArgument flags 609
+innerclass innerClass com/sun/jdi/connect/Connector$Argument outerClass com/sun/jdi/connect/Connector innerClassName Argument flags 609
+
+class name com/sun/jdi/connect/Connector$SelectedArgument
+header extends java/lang/Object implements com/sun/jdi/connect/Connector$Argument nestHost com/sun/jdi/connect/Connector flags 601
+innerclass innerClass com/sun/jdi/connect/Connector$SelectedArgument outerClass com/sun/jdi/connect/Connector innerClassName SelectedArgument flags 609
+innerclass innerClass com/sun/jdi/connect/Connector$Argument outerClass com/sun/jdi/connect/Connector innerClassName Argument flags 609
+
+class name com/sun/jdi/connect/Connector$StringArgument
+header extends java/lang/Object implements com/sun/jdi/connect/Connector$Argument nestHost com/sun/jdi/connect/Connector flags 601
+innerclass innerClass com/sun/jdi/connect/Connector$StringArgument outerClass com/sun/jdi/connect/Connector innerClassName StringArgument flags 609
+innerclass innerClass com/sun/jdi/connect/Connector$Argument outerClass com/sun/jdi/connect/Connector innerClassName Argument flags 609
+
+class name com/sun/jdi/connect/IllegalConnectorArgumentsException
+header extends java/lang/Exception flags 21
+
+class name com/sun/jdi/connect/LaunchingConnector
+header extends java/lang/Object implements com/sun/jdi/connect/Connector flags 601
+innerclass innerClass com/sun/jdi/connect/Connector$Argument outerClass com/sun/jdi/connect/Connector innerClassName Argument flags 609
+
+class name com/sun/jdi/connect/ListeningConnector
+header extends java/lang/Object implements com/sun/jdi/connect/Connector flags 601
+innerclass innerClass com/sun/jdi/connect/Connector$Argument outerClass com/sun/jdi/connect/Connector innerClassName Argument flags 609
+
+class name com/sun/jdi/connect/Transport
+header extends java/lang/Object flags 601
+
+class name com/sun/jdi/connect/TransportTimeoutException
+header extends java/io/IOException flags 21
+
+class name com/sun/jdi/connect/VMStartException
+header extends java/lang/Exception flags 21
+
+class name com/sun/jdi/connect/spi/ClosedConnectionException
+header extends java/io/IOException flags 21
+
+class name com/sun/jdi/connect/spi/Connection
+header extends java/lang/Object flags 421
+
+class name com/sun/jdi/connect/spi/TransportService
+header extends java/lang/Object nestMembers com/sun/jdi/connect/spi/TransportService$ListenKey,com/sun/jdi/connect/spi/TransportService$Capabilities flags 421
+innerclass innerClass com/sun/jdi/connect/spi/TransportService$ListenKey outerClass com/sun/jdi/connect/spi/TransportService innerClassName ListenKey flags 409
+innerclass innerClass com/sun/jdi/connect/spi/TransportService$Capabilities outerClass com/sun/jdi/connect/spi/TransportService innerClassName Capabilities flags 409
+
+class name com/sun/jdi/connect/spi/TransportService$Capabilities
+header extends java/lang/Object nestHost com/sun/jdi/connect/spi/TransportService flags 421
+innerclass innerClass com/sun/jdi/connect/spi/TransportService$Capabilities outerClass com/sun/jdi/connect/spi/TransportService innerClassName Capabilities flags 409
+
+class name com/sun/jdi/connect/spi/TransportService$ListenKey
+header extends java/lang/Object nestHost com/sun/jdi/connect/spi/TransportService flags 421
+innerclass innerClass com/sun/jdi/connect/spi/TransportService$ListenKey outerClass com/sun/jdi/connect/spi/TransportService innerClassName ListenKey flags 409
+
+class name com/sun/jdi/event/AccessWatchpointEvent
+header extends java/lang/Object implements com/sun/jdi/event/WatchpointEvent flags 601
+
+class name com/sun/jdi/event/BreakpointEvent
+header extends java/lang/Object implements com/sun/jdi/event/LocatableEvent flags 601
+
+class name com/sun/jdi/event/ClassPrepareEvent
+header extends java/lang/Object implements com/sun/jdi/event/Event flags 601
+
+class name com/sun/jdi/event/ClassUnloadEvent
+header extends java/lang/Object implements com/sun/jdi/event/Event flags 601
+
+class name com/sun/jdi/event/Event
+header extends java/lang/Object implements com/sun/jdi/Mirror flags 601
+
+class name com/sun/jdi/event/EventIterator
+header extends java/lang/Object implements java/util/Iterator flags 601 signature Ljava/lang/Object;Ljava/util/Iterator<Lcom/sun/jdi/event/Event;>;
+
+class name com/sun/jdi/event/EventQueue
+header extends java/lang/Object implements com/sun/jdi/Mirror flags 601
+
+class name com/sun/jdi/event/EventSet
+header extends java/lang/Object implements com/sun/jdi/Mirror,java/util/Set flags 601 signature Ljava/lang/Object;Lcom/sun/jdi/Mirror;Ljava/util/Set<Lcom/sun/jdi/event/Event;>;
+
+class name com/sun/jdi/event/ExceptionEvent
+header extends java/lang/Object implements com/sun/jdi/event/LocatableEvent flags 601
+
+class name com/sun/jdi/event/LocatableEvent
+header extends java/lang/Object implements com/sun/jdi/event/Event,com/sun/jdi/Locatable flags 601
+
+class name com/sun/jdi/event/MethodEntryEvent
+header extends java/lang/Object implements com/sun/jdi/event/LocatableEvent flags 601
+
+class name com/sun/jdi/event/MethodExitEvent
+header extends java/lang/Object implements com/sun/jdi/event/LocatableEvent flags 601
+
+class name com/sun/jdi/event/ModificationWatchpointEvent
+header extends java/lang/Object implements com/sun/jdi/event/WatchpointEvent flags 601
+
+class name com/sun/jdi/event/MonitorContendedEnterEvent
+header extends java/lang/Object implements com/sun/jdi/event/LocatableEvent flags 601
+
+class name com/sun/jdi/event/MonitorContendedEnteredEvent
+header extends java/lang/Object implements com/sun/jdi/event/LocatableEvent flags 601
+
+class name com/sun/jdi/event/MonitorWaitEvent
+header extends java/lang/Object implements com/sun/jdi/event/LocatableEvent flags 601
+
+class name com/sun/jdi/event/MonitorWaitedEvent
+header extends java/lang/Object implements com/sun/jdi/event/LocatableEvent flags 601
+
+class name com/sun/jdi/event/StepEvent
+header extends java/lang/Object implements com/sun/jdi/event/LocatableEvent flags 601
+
+class name com/sun/jdi/event/ThreadDeathEvent
+header extends java/lang/Object implements com/sun/jdi/event/Event flags 601
+
+class name com/sun/jdi/event/ThreadStartEvent
+header extends java/lang/Object implements com/sun/jdi/event/Event flags 601
+
+class name com/sun/jdi/event/VMDeathEvent
+header extends java/lang/Object implements com/sun/jdi/event/Event flags 601
+
+class name com/sun/jdi/event/VMDisconnectEvent
+header extends java/lang/Object implements com/sun/jdi/event/Event flags 601
+
+class name com/sun/jdi/event/VMStartEvent
+header extends java/lang/Object implements com/sun/jdi/event/Event flags 601
+
+class name com/sun/jdi/event/WatchpointEvent
+header extends java/lang/Object implements com/sun/jdi/event/LocatableEvent flags 601
+
+class name com/sun/jdi/request/AccessWatchpointRequest
+header extends java/lang/Object implements com/sun/jdi/request/WatchpointRequest flags 601
+
+class name com/sun/jdi/request/BreakpointRequest
+header extends java/lang/Object implements com/sun/jdi/request/EventRequest,com/sun/jdi/Locatable flags 601
+
+class name com/sun/jdi/request/ClassPrepareRequest
+header extends java/lang/Object implements com/sun/jdi/request/EventRequest flags 601
+
+class name com/sun/jdi/request/ClassUnloadRequest
+header extends java/lang/Object implements com/sun/jdi/request/EventRequest flags 601
+
+class name com/sun/jdi/request/DuplicateRequestException
+header extends java/lang/RuntimeException flags 21
+
+class name com/sun/jdi/request/EventRequest
+header extends java/lang/Object implements com/sun/jdi/Mirror flags 601
+
+class name com/sun/jdi/request/EventRequestManager
+header extends java/lang/Object implements com/sun/jdi/Mirror flags 601
+
+class name com/sun/jdi/request/ExceptionRequest
+header extends java/lang/Object implements com/sun/jdi/request/EventRequest flags 601
+
+class name com/sun/jdi/request/InvalidRequestStateException
+header extends java/lang/RuntimeException flags 21
+
+class name com/sun/jdi/request/MethodEntryRequest
+header extends java/lang/Object implements com/sun/jdi/request/EventRequest flags 601
+
+class name com/sun/jdi/request/MethodExitRequest
+header extends java/lang/Object implements com/sun/jdi/request/EventRequest flags 601
+
+class name com/sun/jdi/request/ModificationWatchpointRequest
+header extends java/lang/Object implements com/sun/jdi/request/WatchpointRequest flags 601
+
+class name com/sun/jdi/request/MonitorContendedEnterRequest
+header extends java/lang/Object implements com/sun/jdi/request/EventRequest flags 601
+
+class name com/sun/jdi/request/MonitorContendedEnteredRequest
+header extends java/lang/Object implements com/sun/jdi/request/EventRequest flags 601
+
+class name com/sun/jdi/request/MonitorWaitRequest
+header extends java/lang/Object implements com/sun/jdi/request/EventRequest flags 601
+
+class name com/sun/jdi/request/MonitorWaitedRequest
+header extends java/lang/Object implements com/sun/jdi/request/EventRequest flags 601
+
+class name com/sun/jdi/request/StepRequest
+header extends java/lang/Object implements com/sun/jdi/request/EventRequest flags 601
+
+class name com/sun/jdi/request/ThreadDeathRequest
+header extends java/lang/Object implements com/sun/jdi/request/EventRequest flags 601
+
+class name com/sun/jdi/request/ThreadStartRequest
+header extends java/lang/Object implements com/sun/jdi/request/EventRequest flags 601
+
+class name com/sun/jdi/request/VMDeathRequest
+header extends java/lang/Object implements com/sun/jdi/request/EventRequest flags 601
+
+class name com/sun/jdi/request/WatchpointRequest
+header extends java/lang/Object implements com/sun/jdi/request/EventRequest flags 601
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.jdwp.agent-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,31 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.jdwp.agent
+header requires name\u0020;java.base\u0020;flags\u0020;8000 target linux-amd64 flags 8000
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.jfr-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,392 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.jfr
+header exports jdk/jfr,jdk/jfr/consumer requires name\u0020;java.base\u0020;flags\u0020;8000 target linux-amd64 flags 8000
+
+class name jdk/jfr/AnnotationElement
+header extends java/lang/Object flags 31
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+method name <init> descriptor (Ljava/lang/Class;Ljava/util/Map;)V flags 1 signature (Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)V
+method name <init> descriptor (Ljava/lang/Class;Ljava/lang/Object;)V flags 1 signature (Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;Ljava/lang/Object;)V
+method name <init> descriptor (Ljava/lang/Class;)V flags 1 signature (Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;)V
+method name getValues descriptor ()Ljava/util/List; flags 1 signature ()Ljava/util/List<Ljava/lang/Object;>;
+method name getValueDescriptors descriptor ()Ljava/util/List; flags 1 signature ()Ljava/util/List<Ljdk/jfr/ValueDescriptor;>;
+method name getAnnotationElements descriptor ()Ljava/util/List; flags 1 signature ()Ljava/util/List<Ljdk/jfr/AnnotationElement;>;
+method name getTypeName descriptor ()Ljava/lang/String; flags 1
+method name getValue descriptor (Ljava/lang/String;)Ljava/lang/Object; flags 1
+method name hasValue descriptor (Ljava/lang/String;)Z flags 1
+method name getAnnotation descriptor (Ljava/lang/Class;)Ljava/lang/Object; flags 11 signature <A:Ljava/lang/Object;>(Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;)TA;
+method name getTypeId descriptor ()J flags 1
+
+class name jdk/jfr/BooleanFlag
+header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljdk/jfr/MetadataDefinition;@Ljdk/jfr/ContentType;@Ljdk/jfr/Label;(value="Flag")@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;FIELD;eLjava/lang/annotation/ElementType;TYPE;eLjava/lang/annotation/ElementType;METHOD;})
+
+class name jdk/jfr/Category
+header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljdk/jfr/MetadataDefinition;@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;TYPE;})@Ljava/lang/annotation/Inherited;@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)
+method name value descriptor ()[Ljava/lang/String; flags 401
+
+class name jdk/jfr/Configuration
+header extends java/lang/Object flags 31
+method name getSettings descriptor ()Ljava/util/Map; flags 1 signature ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
+method name getName descriptor ()Ljava/lang/String; flags 1
+method name getLabel descriptor ()Ljava/lang/String; flags 1
+method name getDescription descriptor ()Ljava/lang/String; flags 1
+method name getProvider descriptor ()Ljava/lang/String; flags 1
+method name getContents descriptor ()Ljava/lang/String; flags 1
+method name create descriptor (Ljava/nio/file/Path;)Ljdk/jfr/Configuration; thrownTypes java/io/IOException,java/text/ParseException flags 9
+method name create descriptor (Ljava/io/Reader;)Ljdk/jfr/Configuration; thrownTypes java/io/IOException,java/text/ParseException flags 9
+method name getConfiguration descriptor (Ljava/lang/String;)Ljdk/jfr/Configuration; thrownTypes java/io/IOException,java/text/ParseException flags 9
+method name getConfigurations descriptor ()Ljava/util/List; flags 9 signature ()Ljava/util/List<Ljdk/jfr/Configuration;>;
+
+class name jdk/jfr/ContentType
+header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljdk/jfr/MetadataDefinition;@Ljdk/jfr/Label;(value="Content\u005C;u0020;Type")@Ljdk/jfr/Description;(value="Semantic\u005C;u0020;meaning\u005C;u0020;of\u005C;u0020;a\u005C;u0020;value")@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;ANNOTATION_TYPE;})@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)
+
+class name jdk/jfr/DataAmount
+header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljdk/jfr/MetadataDefinition;@Ljdk/jfr/ContentType;@Ljdk/jfr/Label;(value="Data\u005C;u0020;Amount")@Ljdk/jfr/Description;(value="Amount\u005C;u0020;of\u005C;u0020;data")@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;FIELD;eLjava/lang/annotation/ElementType;TYPE;eLjava/lang/annotation/ElementType;METHOD;})
+field name BITS descriptor Ljava/lang/String; constantValue BITS flags 19
+field name BYTES descriptor Ljava/lang/String; constantValue BYTES flags 19
+method name value descriptor ()Ljava/lang/String; annotationDefaultValue "BYTES" flags 401
+
+class name jdk/jfr/Description
+header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljdk/jfr/MetadataDefinition;@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;TYPE;eLjava/lang/annotation/ElementType;FIELD;eLjava/lang/annotation/ElementType;METHOD;})@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)
+method name value descriptor ()Ljava/lang/String; flags 401
+
+class name jdk/jfr/Enabled
+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/Inherited;@Ljdk/jfr/MetadataDefinition;
+field name NAME descriptor Ljava/lang/String; constantValue enabled flags 19
+method name value descriptor ()Z annotationDefaultValue Ztrue flags 401
+
+class name jdk/jfr/Event
+header extends java/lang/Object flags 421 runtimeAnnotations @Ljdk/jfr/Enabled;(value=Ztrue)@Ljdk/jfr/StackTrace;(value=Ztrue)@Ljdk/jfr/Registered;(value=Ztrue)
+method name <init> descriptor ()V flags 4
+method name begin descriptor ()V flags 11
+method name end descriptor ()V flags 11
+method name commit descriptor ()V flags 11
+method name isEnabled descriptor ()Z flags 11
+method name shouldCommit descriptor ()Z flags 11
+method name set descriptor (ILjava/lang/Object;)V flags 11
+
+class name jdk/jfr/EventFactory
+header extends java/lang/Object flags 31
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+method name create descriptor (Ljava/util/List;Ljava/util/List;)Ljdk/jfr/EventFactory; flags 9 signature (Ljava/util/List<Ljdk/jfr/AnnotationElement;>;Ljava/util/List<Ljdk/jfr/ValueDescriptor;>;)Ljdk/jfr/EventFactory;
+method name newEvent descriptor ()Ljdk/jfr/Event; flags 1
+method name getEventType descriptor ()Ljdk/jfr/EventType; flags 1
+method name register descriptor ()V flags 1
+method name unregister descriptor ()V flags 1
+
+class name jdk/jfr/EventSettings
+header extends java/lang/Object flags 421
+method name withStackTrace descriptor ()Ljdk/jfr/EventSettings; flags 11
+method name withoutStackTrace descriptor ()Ljdk/jfr/EventSettings; flags 11
+method name withoutThreshold descriptor ()Ljdk/jfr/EventSettings; flags 11
+method name withPeriod descriptor (Ljava/time/Duration;)Ljdk/jfr/EventSettings; flags 11
+method name withThreshold descriptor (Ljava/time/Duration;)Ljdk/jfr/EventSettings; flags 11
+method name with descriptor (Ljava/lang/String;Ljava/lang/String;)Ljdk/jfr/EventSettings; flags 401
+
+class name jdk/jfr/EventType
+header extends java/lang/Object flags 31
+method name getFields descriptor ()Ljava/util/List; flags 1 signature ()Ljava/util/List<Ljdk/jfr/ValueDescriptor;>;
+method name getField descriptor (Ljava/lang/String;)Ljdk/jfr/ValueDescriptor; flags 1
+method name getName descriptor ()Ljava/lang/String; flags 1
+method name getLabel descriptor ()Ljava/lang/String; flags 1
+method name getId descriptor ()J flags 1
+method name getAnnotationElements descriptor ()Ljava/util/List; flags 1 signature ()Ljava/util/List<Ljdk/jfr/AnnotationElement;>;
+method name isEnabled descriptor ()Z flags 1
+method name getDescription descriptor ()Ljava/lang/String; flags 1
+method name getAnnotation descriptor (Ljava/lang/Class;)Ljava/lang/annotation/Annotation; flags 1 signature <A::Ljava/lang/annotation/Annotation;>(Ljava/lang/Class<TA;>;)TA;
+method name getEventType descriptor (Ljava/lang/Class;)Ljdk/jfr/EventType; flags 9 signature (Ljava/lang/Class<+Ljdk/jfr/Event;>;)Ljdk/jfr/EventType;
+method name getSettingDescriptors descriptor ()Ljava/util/List; flags 1 signature ()Ljava/util/List<Ljdk/jfr/SettingDescriptor;>;
+method name getCategoryNames descriptor ()Ljava/util/List; flags 1 signature ()Ljava/util/List<Ljava/lang/String;>;
+
+class name jdk/jfr/Experimental
+header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljdk/jfr/MetadataDefinition;@Ljdk/jfr/Label;(value="Experimental")@Ljdk/jfr/Description;(value="Element\u005C;u0020;is\u005C;u0020;not\u005C;u0020;to\u005C;u0020;be\u005C;u0020;shown\u005C;u0020;to\u005C;u0020;a\u005C;u0020;user\u005C;u0020;by\u005C;u0020;default")@Ljava/lang/annotation/Inherited;@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;FIELD;eLjava/lang/annotation/ElementType;TYPE;})
+
+class name jdk/jfr/FlightRecorder
+header extends java/lang/Object flags 31
+method name getRecordings descriptor ()Ljava/util/List; flags 1 signature ()Ljava/util/List<Ljdk/jfr/Recording;>;
+method name takeSnapshot descriptor ()Ljdk/jfr/Recording; flags 1
+method name register descriptor (Ljava/lang/Class;)V flags 9 signature (Ljava/lang/Class<+Ljdk/jfr/Event;>;)V
+method name unregister descriptor (Ljava/lang/Class;)V flags 9 signature (Ljava/lang/Class<+Ljdk/jfr/Event;>;)V
+method name getFlightRecorder descriptor ()Ljdk/jfr/FlightRecorder; thrownTypes java/lang/IllegalStateException,java/lang/SecurityException flags 9
+method name addPeriodicEvent descriptor (Ljava/lang/Class;Ljava/lang/Runnable;)V thrownTypes java/lang/SecurityException flags 9 signature (Ljava/lang/Class<+Ljdk/jfr/Event;>;Ljava/lang/Runnable;)V
+method name removePeriodicEvent descriptor (Ljava/lang/Runnable;)Z thrownTypes java/lang/SecurityException flags 9
+method name getEventTypes descriptor ()Ljava/util/List; flags 1 signature ()Ljava/util/List<Ljdk/jfr/EventType;>;
+method name addListener descriptor (Ljdk/jfr/FlightRecorderListener;)V flags 9
+method name removeListener descriptor (Ljdk/jfr/FlightRecorderListener;)Z flags 9
+method name isAvailable descriptor ()Z flags 9
+method name isInitialized descriptor ()Z flags 9
+
+class name jdk/jfr/FlightRecorderListener
+header extends java/lang/Object flags 601
+method name recorderInitialized descriptor (Ljdk/jfr/FlightRecorder;)V flags 1
+method name recordingStateChanged descriptor (Ljdk/jfr/Recording;)V flags 1
+
+class name jdk/jfr/FlightRecorderPermission
+header extends java/security/BasicPermission flags 31
+method name <init> descriptor (Ljava/lang/String;)V flags 1
+
+class name jdk/jfr/Frequency
+header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljdk/jfr/MetadataDefinition;@Ljdk/jfr/ContentType;@Ljdk/jfr/Label;(value="Frequency")@Ljdk/jfr/Description;(value="Measure\u005C;u0020;of\u005C;u0020;how\u005C;u0020;often\u005C;u0020;something\u005C;u0020;occurs,\u005C;u0020;in\u005C;u0020;Hertz")@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;})
+
+class name jdk/jfr/Label
+header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljdk/jfr/MetadataDefinition;@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;TYPE;eLjava/lang/annotation/ElementType;FIELD;eLjava/lang/annotation/ElementType;METHOD;})@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)
+method name value descriptor ()Ljava/lang/String; flags 401
+
+class name jdk/jfr/MemoryAddress
+header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljdk/jfr/MetadataDefinition;@Ljdk/jfr/ContentType;@Ljdk/jfr/Label;(value="Memory\u005C;u0020;Address")@Ljdk/jfr/Description;(value="Represents\u005C;u0020;a\u005C;u0020;physical\u005C;u0020;memory\u005C;u0020;address")@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;FIELD;eLjava/lang/annotation/ElementType;TYPE;eLjava/lang/annotation/ElementType;METHOD;})
+
+class name jdk/jfr/MetadataDefinition
+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;TYPE;})
+
+class name jdk/jfr/Name
+header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;TYPE;eLjava/lang/annotation/ElementType;FIELD;eLjava/lang/annotation/ElementType;METHOD;})@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)@Ljdk/jfr/MetadataDefinition;
+method name value descriptor ()Ljava/lang/String; flags 401
+
+class name jdk/jfr/Percentage
+header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljdk/jfr/MetadataDefinition;@Ljdk/jfr/ContentType;@Ljdk/jfr/Label;(value="Percentage")@Ljdk/jfr/Description;(value="Percentage,\u005C;u0020;represented\u005C;u0020;as\u005C;u0020;a\u005C;u0020;number\u005C;u0020;between\u005C;u0020;0\u005C;u0020;and\u005C;u0020;1")@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;FIELD;eLjava/lang/annotation/ElementType;TYPE;eLjava/lang/annotation/ElementType;METHOD;})
+
+class name jdk/jfr/Period
+header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljdk/jfr/MetadataDefinition;@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)@Ljava/lang/annotation/Inherited;@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;TYPE;})
+field name NAME descriptor Ljava/lang/String; constantValue period flags 19
+method name value descriptor ()Ljava/lang/String; annotationDefaultValue "everyChunk" flags 401
+
+class name jdk/jfr/Recording
+header extends java/lang/Object implements java/io/Closeable flags 31
+method name <init> descriptor (Ljava/util/Map;)V flags 1 signature (Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)V
+method name <init> descriptor ()V flags 1
+method name <init> descriptor (Ljdk/jfr/Configuration;)V flags 1
+method name start descriptor ()V flags 1
+method name scheduleStart descriptor (Ljava/time/Duration;)V flags 1
+method name stop descriptor ()Z flags 1
+method name getSettings descriptor ()Ljava/util/Map; flags 1 signature ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
+method name getSize descriptor ()J flags 1
+method name getStopTime descriptor ()Ljava/time/Instant; flags 1
+method name getStartTime descriptor ()Ljava/time/Instant; flags 1
+method name getMaxSize descriptor ()J flags 1
+method name getMaxAge descriptor ()Ljava/time/Duration; flags 1
+method name getName descriptor ()Ljava/lang/String; flags 1
+method name setSettings descriptor (Ljava/util/Map;)V flags 1 signature (Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)V
+method name getState descriptor ()Ljdk/jfr/RecordingState; flags 1
+method name close descriptor ()V flags 1
+method name copy descriptor (Z)Ljdk/jfr/Recording; flags 1
+method name dump descriptor (Ljava/nio/file/Path;)V thrownTypes java/io/IOException flags 1
+method name isToDisk descriptor ()Z flags 1
+method name setMaxSize descriptor (J)V flags 1
+method name setMaxAge descriptor (Ljava/time/Duration;)V flags 1
+method name setDestination descriptor (Ljava/nio/file/Path;)V thrownTypes java/io/IOException flags 1
+method name getDestination descriptor ()Ljava/nio/file/Path; flags 1
+method name getId descriptor ()J flags 1
+method name setName descriptor (Ljava/lang/String;)V flags 1
+method name setDumpOnExit descriptor (Z)V flags 1
+method name getDumpOnExit descriptor ()Z flags 1
+method name setToDisk descriptor (Z)V flags 1
+method name getStream descriptor (Ljava/time/Instant;Ljava/time/Instant;)Ljava/io/InputStream; thrownTypes java/io/IOException flags 1
+method name getDuration descriptor ()Ljava/time/Duration; flags 1
+method name setDuration descriptor (Ljava/time/Duration;)V flags 1
+method name enable descriptor (Ljava/lang/String;)Ljdk/jfr/EventSettings; flags 1
+method name disable descriptor (Ljava/lang/String;)Ljdk/jfr/EventSettings; flags 1
+method name enable descriptor (Ljava/lang/Class;)Ljdk/jfr/EventSettings; flags 1 signature (Ljava/lang/Class<+Ljdk/jfr/Event;>;)Ljdk/jfr/EventSettings;
+method name disable descriptor (Ljava/lang/Class;)Ljdk/jfr/EventSettings; flags 1 signature (Ljava/lang/Class<+Ljdk/jfr/Event;>;)Ljdk/jfr/EventSettings;
+
+class name jdk/jfr/RecordingState
+header extends java/lang/Enum flags 4031 signature Ljava/lang/Enum<Ljdk/jfr/RecordingState;>;
+field name NEW descriptor Ljdk/jfr/RecordingState; flags 4019
+field name DELAYED descriptor Ljdk/jfr/RecordingState; flags 4019
+field name RUNNING descriptor Ljdk/jfr/RecordingState; flags 4019
+field name STOPPED descriptor Ljdk/jfr/RecordingState; flags 4019
+field name CLOSED descriptor Ljdk/jfr/RecordingState; flags 4019
+method name values descriptor ()[Ljdk/jfr/RecordingState; flags 9
+method name valueOf descriptor (Ljava/lang/String;)Ljdk/jfr/RecordingState; flags 9
+
+class name jdk/jfr/Registered
+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/Inherited;@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)
+method name value descriptor ()Z annotationDefaultValue Ztrue flags 401
+
+class name jdk/jfr/Relational
+header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljdk/jfr/MetadataDefinition;@Ljdk/jfr/Label;(value="Relation")@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;ANNOTATION_TYPE;})
+
+class name jdk/jfr/SettingControl
+header extends jdk/jfr/internal/Control flags 421 runtimeAnnotations @Ljdk/jfr/MetadataDefinition;
+method name <init> descriptor ()V flags 4
+method name combine descriptor (Ljava/util/Set;)Ljava/lang/String; flags 401 signature (Ljava/util/Set<Ljava/lang/String;>;)Ljava/lang/String;
+method name setValue descriptor (Ljava/lang/String;)V flags 401
+method name getValue descriptor ()Ljava/lang/String; flags 401
+
+class name jdk/jfr/SettingDefinition
+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;METHOD;})
+
+class name jdk/jfr/SettingDescriptor
+header extends java/lang/Object flags 31
+method name getName descriptor ()Ljava/lang/String; flags 1
+method name getLabel descriptor ()Ljava/lang/String; flags 1
+method name getDescription descriptor ()Ljava/lang/String; flags 1
+method name getContentType descriptor ()Ljava/lang/String; flags 1
+method name getTypeName descriptor ()Ljava/lang/String; flags 1
+method name getTypeId descriptor ()J flags 1
+method name getAnnotation descriptor (Ljava/lang/Class;)Ljava/lang/annotation/Annotation; flags 1 signature <A::Ljava/lang/annotation/Annotation;>(Ljava/lang/Class<TA;>;)TA;
+method name getAnnotationElements descriptor ()Ljava/util/List; flags 1 signature ()Ljava/util/List<Ljdk/jfr/AnnotationElement;>;
+method name getDefaultValue descriptor ()Ljava/lang/String; flags 1
+
+class name jdk/jfr/StackTrace
+header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljdk/jfr/MetadataDefinition;@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;TYPE;})@Ljava/lang/annotation/Inherited;@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)
+field name NAME descriptor Ljava/lang/String; constantValue stackTrace flags 19
+method name value descriptor ()Z annotationDefaultValue Ztrue flags 401
+
+class name jdk/jfr/Threshold
+header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljdk/jfr/MetadataDefinition;@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;TYPE;})@Ljava/lang/annotation/Inherited;@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)
+field name NAME descriptor Ljava/lang/String; constantValue threshold flags 19
+method name value descriptor ()Ljava/lang/String; annotationDefaultValue "0\u005C;u0020;ns" flags 401
+
+class name jdk/jfr/Timespan
+header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljdk/jfr/MetadataDefinition;@Ljdk/jfr/ContentType;@Ljdk/jfr/Label;(value="Timespan")@Ljdk/jfr/Description;(value="A\u005C;u0020;duration,\u005C;u0020;measured\u005C;u0020;in\u005C;u0020;nanoseconds\u005C;u0020;by\u005C;u0020;default")@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;FIELD;eLjava/lang/annotation/ElementType;TYPE;eLjava/lang/annotation/ElementType;METHOD;})
+field name TICKS descriptor Ljava/lang/String; constantValue TICKS flags 19
+field name SECONDS descriptor Ljava/lang/String; constantValue SECONDS flags 19
+field name MILLISECONDS descriptor Ljava/lang/String; constantValue MILLISECONDS flags 19
+field name NANOSECONDS descriptor Ljava/lang/String; constantValue NANOSECONDS flags 19
+field name MICROSECONDS descriptor Ljava/lang/String; constantValue MICROSECONDS flags 19
+method name value descriptor ()Ljava/lang/String; annotationDefaultValue "NANOSECONDS" flags 401
+
+class name jdk/jfr/Timestamp
+header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljdk/jfr/MetadataDefinition;@Ljdk/jfr/ContentType;@Ljdk/jfr/Label;(value="Timestamp")@Ljdk/jfr/Description;(value="A\u005C;u0020;point\u005C;u0020;in\u005C;u0020;time")@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;FIELD;eLjava/lang/annotation/ElementType;TYPE;eLjava/lang/annotation/ElementType;METHOD;})
+field name MILLISECONDS_SINCE_EPOCH descriptor Ljava/lang/String; constantValue MILLISECONDS_SINCE_EPOCH flags 19
+field name TICKS descriptor Ljava/lang/String; constantValue TICKS flags 19
+method name value descriptor ()Ljava/lang/String; annotationDefaultValue "MILLISECONDS_SINCE_EPOCH" flags 401
+
+class name jdk/jfr/TransitionFrom
+header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljdk/jfr/MetadataDefinition;@Ljdk/jfr/Label;(value="Transition\u005C;u0020;From")@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;FIELD;})
+
+class name jdk/jfr/TransitionTo
+header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljdk/jfr/MetadataDefinition;@Ljdk/jfr/Label;(value="Transition\u005C;u0020;To")@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;FIELD;})
+
+class name jdk/jfr/Unsigned
+header extends java/lang/Object implements java/lang/annotation/Annotation flags 2601 runtimeAnnotations @Ljdk/jfr/MetadataDefinition;@Ljdk/jfr/ContentType;@Ljdk/jfr/Label;(value="Unsigned\u005C;u0020;Value")@Ljdk/jfr/Description;(value="Value\u005C;u0020;should\u005C;u0020;be\u005C;u0020;interpreted\u005C;u0020;as\u005C;u0020;unsigned\u005C;u0020;data\u005C;u0020;type")@Ljava/lang/annotation/Retention;(value=eLjava/lang/annotation/RetentionPolicy;RUNTIME;)@Ljava/lang/annotation/Target;(value={eLjava/lang/annotation/ElementType;FIELD;eLjava/lang/annotation/ElementType;TYPE;})
+
+class name jdk/jfr/ValueDescriptor
+header extends java/lang/Object flags 31
+method name <init> descriptor (Ljava/lang/Class;Ljava/lang/String;)V flags 1 signature (Ljava/lang/Class<*>;Ljava/lang/String;)V
+method name <init> descriptor (Ljava/lang/Class;Ljava/lang/String;Ljava/util/List;)V flags 1 signature (Ljava/lang/Class<*>;Ljava/lang/String;Ljava/util/List<Ljdk/jfr/AnnotationElement;>;)V
+method name getLabel descriptor ()Ljava/lang/String; flags 1
+method name getName descriptor ()Ljava/lang/String; flags 1
+method name getDescription descriptor ()Ljava/lang/String; flags 1
+method name getContentType descriptor ()Ljava/lang/String; flags 1
+method name getTypeName descriptor ()Ljava/lang/String; flags 1
+method name getTypeId descriptor ()J flags 1
+method name isArray descriptor ()Z flags 1
+method name getAnnotation descriptor (Ljava/lang/Class;)Ljava/lang/annotation/Annotation; flags 1 signature <A::Ljava/lang/annotation/Annotation;>(Ljava/lang/Class<TA;>;)TA;
+method name getAnnotationElements descriptor ()Ljava/util/List; flags 1 signature ()Ljava/util/List<Ljdk/jfr/AnnotationElement;>;
+method name getFields descriptor ()Ljava/util/List; flags 1 signature ()Ljava/util/List<Ljdk/jfr/ValueDescriptor;>;
+
+class name jdk/jfr/consumer/RecordedClass
+header extends jdk/jfr/consumer/RecordedObject flags 31
+method name getModifiers descriptor ()I flags 1
+method name getClassLoader descriptor ()Ljdk/jfr/consumer/RecordedClassLoader; flags 1
+method name getName descriptor ()Ljava/lang/String; flags 1
+method name getId descriptor ()J flags 1
+
+class name jdk/jfr/consumer/RecordedClassLoader
+header extends jdk/jfr/consumer/RecordedObject flags 31
+method name getType descriptor ()Ljdk/jfr/consumer/RecordedClass; flags 1
+method name getName descriptor ()Ljava/lang/String; flags 1
+method name getId descriptor ()J flags 1
+
+class name jdk/jfr/consumer/RecordedEvent
+header extends jdk/jfr/consumer/RecordedObject flags 31
+method name getStackTrace descriptor ()Ljdk/jfr/consumer/RecordedStackTrace; flags 1
+method name getThread descriptor ()Ljdk/jfr/consumer/RecordedThread; flags 1
+method name getEventType descriptor ()Ljdk/jfr/EventType; flags 1
+method name getStartTime descriptor ()Ljava/time/Instant; flags 1
+method name getEndTime descriptor ()Ljava/time/Instant; flags 1
+method name getDuration descriptor ()Ljava/time/Duration; flags 1
+method name getFields descriptor ()Ljava/util/List; flags 1 signature ()Ljava/util/List<Ljdk/jfr/ValueDescriptor;>;
+
+class name jdk/jfr/consumer/RecordedFrame
+header extends jdk/jfr/consumer/RecordedObject flags 31
+method name isJavaFrame descriptor ()Z flags 1
+method name getBytecodeIndex descriptor ()I flags 1
+method name getLineNumber descriptor ()I flags 1
+method name getType descriptor ()Ljava/lang/String; flags 1
+method name getMethod descriptor ()Ljdk/jfr/consumer/RecordedMethod; flags 1
+
+class name jdk/jfr/consumer/RecordedMethod
+header extends jdk/jfr/consumer/RecordedObject flags 31
+method name getType descriptor ()Ljdk/jfr/consumer/RecordedClass; flags 1
+method name getName descriptor ()Ljava/lang/String; flags 1
+method name getDescriptor descriptor ()Ljava/lang/String; flags 1
+method name getModifiers descriptor ()I flags 1
+method name isHidden descriptor ()Z flags 1
+
+class name jdk/jfr/consumer/RecordedObject
+header extends java/lang/Object flags 21
+method name hasField descriptor (Ljava/lang/String;)Z flags 1
+method name getValue descriptor (Ljava/lang/String;)Ljava/lang/Object; flags 11 signature <T:Ljava/lang/Object;>(Ljava/lang/String;)TT;
+method name getFields descriptor ()Ljava/util/List; flags 1 signature ()Ljava/util/List<Ljdk/jfr/ValueDescriptor;>;
+method name getBoolean descriptor (Ljava/lang/String;)Z flags 11
+method name getByte descriptor (Ljava/lang/String;)B flags 11
+method name getChar descriptor (Ljava/lang/String;)C flags 11
+method name getShort descriptor (Ljava/lang/String;)S flags 11
+method name getInt descriptor (Ljava/lang/String;)I flags 11
+method name getFloat descriptor (Ljava/lang/String;)F flags 11
+method name getLong descriptor (Ljava/lang/String;)J flags 11
+method name getDouble descriptor (Ljava/lang/String;)D flags 11
+method name getString descriptor (Ljava/lang/String;)Ljava/lang/String; flags 11
+method name getDuration descriptor (Ljava/lang/String;)Ljava/time/Duration; flags 11
+method name getInstant descriptor (Ljava/lang/String;)Ljava/time/Instant; flags 11
+method name getClass descriptor (Ljava/lang/String;)Ljdk/jfr/consumer/RecordedClass; flags 11
+method name getThread descriptor (Ljava/lang/String;)Ljdk/jfr/consumer/RecordedThread; flags 11
+method name toString descriptor ()Ljava/lang/String; flags 11
+
+class name jdk/jfr/consumer/RecordedStackTrace
+header extends jdk/jfr/consumer/RecordedObject flags 31
+method name getFrames descriptor ()Ljava/util/List; flags 1 signature ()Ljava/util/List<Ljdk/jfr/consumer/RecordedFrame;>;
+method name isTruncated descriptor ()Z flags 1
+
+class name jdk/jfr/consumer/RecordedThread
+header extends jdk/jfr/consumer/RecordedObject flags 31
+method name getOSName descriptor ()Ljava/lang/String; flags 1
+method name getOSThreadId descriptor ()J flags 1
+method name getThreadGroup descriptor ()Ljdk/jfr/consumer/RecordedThreadGroup; flags 1
+method name getJavaName descriptor ()Ljava/lang/String; flags 1
+method name getJavaThreadId descriptor ()J flags 1
+method name getId descriptor ()J flags 1
+
+class name jdk/jfr/consumer/RecordedThreadGroup
+header extends jdk/jfr/consumer/RecordedObject flags 31
+method name getName descriptor ()Ljava/lang/String; flags 1
+method name getParent descriptor ()Ljdk/jfr/consumer/RecordedThreadGroup; flags 1
+
+class name jdk/jfr/consumer/RecordingFile
+header extends java/lang/Object implements java/io/Closeable flags 31
+method name <init> descriptor (Ljava/nio/file/Path;)V thrownTypes java/io/IOException flags 1
+method name readEvent descriptor ()Ljdk/jfr/consumer/RecordedEvent; thrownTypes java/io/IOException flags 1
+method name hasMoreEvents descriptor ()Z flags 1
+method name readEventTypes descriptor ()Ljava/util/List; thrownTypes java/io/IOException flags 1 signature ()Ljava/util/List<Ljdk/jfr/EventType;>;
+method name close descriptor ()V thrownTypes java/io/IOException flags 1
+method name readAllEvents descriptor (Ljava/nio/file/Path;)Ljava/util/List; thrownTypes java/io/IOException flags 9 signature (Ljava/nio/file/Path;)Ljava/util/List<Ljdk/jfr/consumer/RecordedEvent;>;
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.jlink-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,31 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.jlink
+header requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;jdk.internal.opt\u0020;flags\u0020;0,name\u0020;jdk.jdeps\u0020;flags\u0020;0 uses jdk/tools/jlink/plugin/Plugin provides interface\u0020;java/util/spi/ToolProvider\u0020;impls\u0020;jdk/tools/jmod/Main$JmodToolProvider\u005C;u002C;jdk/tools/jlink/internal/Main$JlinkToolProvider,interface\u0020;jdk/tools/jlink/plugin/Plugin\u0020;impls\u0020;jdk/tools/jlink/internal/plugins/StripDebugPlugin\u005C;u002C;jdk/tools/jlink/internal/plugins/ExcludePlugin\u005C;u002C;jdk/tools/jlink/internal/plugins/ExcludeFilesPlugin\u005C;u002C;jdk/tools/jlink/internal/plugins/ExcludeJmodSectionPlugin\u005C;u002C;jdk/tools/jlink/internal/plugins/LegalNoticeFilePlugin\u005C;u002C;jdk/tools/jlink/internal/plugins/SystemModulesPlugin\u005C;u002C;jdk/tools/jlink/internal/plugins/StripNativeCommandsPlugin\u005C;u002C;jdk/tools/jlink/internal/plugins/OrderResourcesPlugin\u005C;u002C;jdk/tools/jlink/internal/plugins/DefaultCompressPlugin\u005C;u002C;jdk/tools/jlink/internal/plugins/ExcludeVMPlugin\u005C;u002C;jdk/tools/jlink/internal/plugins/IncludeLocalesPlugin\u005C;u002C;jdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin\u005C;u002C;jdk/tools/jlink/internal/plugins/ReleaseInfoPlugin target linux-amd64 flags 8000
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.jshell-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,310 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.jshell
+header exports jdk/jshell,jdk/jshell/execution,jdk/jshell/spi,jdk/jshell/tool requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;java.logging\u0020;flags\u0020;0,name\u0020;jdk.compiler\u0020;flags\u0020;0,name\u0020;jdk.internal.ed\u0020;flags\u0020;0,name\u0020;jdk.internal.le\u0020;flags\u0020;0,name\u0020;jdk.internal.opt\u0020;flags\u0020;0,name\u0020;java.compiler\u0020;flags\u0020;20,name\u0020;java.prefs\u0020;flags\u0020;20,name\u0020;jdk.jdi\u0020;flags\u0020;20 uses jdk/jshell/spi/ExecutionControlProvider,jdk/internal/editor/spi/BuildInEditorProvider provides interface\u0020;javax/tools/Tool\u0020;impls\u0020;jdk/internal/jshell/tool/JShellToolProvider,interface\u0020;jdk/jshell/spi/ExecutionControlProvider\u0020;impls\u0020;jdk/jshell/execution/JdiExecutionControlProvider\u005C;u002C;jdk/jshell/execution/LocalExecutionControlProvider\u005C;u002C;jdk/jshell/execution/FailOverExecutionControlProvider target linux-amd64 flags 8000
+
+class name jdk/jshell/DeclarationSnippet
+header extends jdk/jshell/PersistentSnippet flags 421
+innerclass innerClass jdk/jshell/Snippet$SubKind outerClass jdk/jshell/Snippet innerClassName SubKind flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/jshell/Diag
+header extends java/lang/Object flags 421
+
+class name jdk/jshell/ErroneousSnippet
+header extends jdk/jshell/Snippet flags 21
+innerclass innerClass jdk/jshell/Snippet$Kind outerClass jdk/jshell/Snippet innerClassName Kind flags 4019
+innerclass innerClass jdk/jshell/Snippet$SubKind outerClass jdk/jshell/Snippet innerClassName SubKind flags 4019
+
+class name jdk/jshell/EvalException
+header extends jdk/jshell/JShellException flags 21
+method name getCause descriptor ()Ljdk/jshell/JShellException; flags 1
+method name getCause descriptor ()Ljava/lang/Throwable; flags 1041
+
+class name jdk/jshell/ExpressionSnippet
+header extends jdk/jshell/Snippet flags 21
+innerclass innerClass jdk/jshell/Snippet$SubKind outerClass jdk/jshell/Snippet innerClassName SubKind flags 4019
+
+class name jdk/jshell/ImportSnippet
+header extends jdk/jshell/PersistentSnippet flags 21
+innerclass innerClass jdk/jshell/Snippet$SubKind outerClass jdk/jshell/Snippet innerClassName SubKind flags 4019
+
+class name jdk/jshell/JShell
+header extends java/lang/Object implements java/lang/AutoCloseable nestMembers jdk/jshell/JShell$Subscription,jdk/jshell/JShell$Builder flags 21
+innerclass innerClass jdk/jshell/JShell$Subscription outerClass jdk/jshell/JShell innerClassName Subscription flags 1
+innerclass innerClass jdk/jshell/JShell$Builder outerClass jdk/jshell/JShell innerClassName Builder flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ExecutionControlException outerClass jdk/jshell/spi/ExecutionControl innerClassName ExecutionControlException flags 409
+innerclass innerClass jdk/jshell/Snippet$Status outerClass jdk/jshell/Snippet innerClassName Status flags 4019
+innerclass innerClass jdk/jshell/spi/ExecutionControl$EngineTerminationException outerClass jdk/jshell/spi/ExecutionControl innerClassName EngineTerminationException flags 9
+innerclass innerClass jdk/jshell/Snippet$Kind outerClass jdk/jshell/Snippet innerClassName Kind flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/jshell/JShell$Builder
+header extends java/lang/Object nestHost jdk/jshell/JShell flags 21
+innerclass innerClass jdk/jshell/JShell$Builder outerClass jdk/jshell/JShell innerClassName Builder flags 9
+
+class name jdk/jshell/JShell$Subscription
+header extends java/lang/Object nestHost jdk/jshell/JShell flags 21
+innerclass innerClass jdk/jshell/JShell$Subscription outerClass jdk/jshell/JShell innerClassName Subscription flags 1
+
+class name jdk/jshell/JShellException
+header extends java/lang/Exception flags 21
+
+class name jdk/jshell/MethodSnippet
+header extends jdk/jshell/DeclarationSnippet flags 21
+innerclass innerClass jdk/jshell/Snippet$SubKind outerClass jdk/jshell/Snippet innerClassName SubKind flags 4019
+
+class name jdk/jshell/PersistentSnippet
+header extends jdk/jshell/Snippet flags 421
+innerclass innerClass jdk/jshell/Snippet$SubKind outerClass jdk/jshell/Snippet innerClassName SubKind flags 4019
+
+class name jdk/jshell/Snippet
+header extends java/lang/Object nestMembers jdk/jshell/Snippet$Status,jdk/jshell/Snippet$SubKind,jdk/jshell/Snippet$Kind flags 421
+innerclass innerClass jdk/jshell/Snippet$Status outerClass jdk/jshell/Snippet innerClassName Status flags 4019
+innerclass innerClass jdk/jshell/Snippet$SubKind outerClass jdk/jshell/Snippet innerClassName SubKind flags 4019
+innerclass innerClass jdk/jshell/Snippet$Kind outerClass jdk/jshell/Snippet innerClassName Kind flags 4019
+
+class name jdk/jshell/Snippet$Kind
+header extends java/lang/Enum nestHost jdk/jshell/Snippet flags 4031 signature Ljava/lang/Enum<Ljdk/jshell/Snippet$Kind;>;
+innerclass innerClass jdk/jshell/Snippet$Kind outerClass jdk/jshell/Snippet innerClassName Kind flags 4019
+
+class name jdk/jshell/Snippet$Status
+header extends java/lang/Enum nestHost jdk/jshell/Snippet flags 4031 signature Ljava/lang/Enum<Ljdk/jshell/Snippet$Status;>;
+innerclass innerClass jdk/jshell/Snippet$Status outerClass jdk/jshell/Snippet innerClassName Status flags 4019
+
+class name jdk/jshell/Snippet$SubKind
+header extends java/lang/Enum nestHost jdk/jshell/Snippet flags 4031 signature Ljava/lang/Enum<Ljdk/jshell/Snippet$SubKind;>;
+innerclass innerClass jdk/jshell/Snippet$SubKind outerClass jdk/jshell/Snippet innerClassName SubKind flags 4019
+innerclass innerClass jdk/jshell/Snippet$Kind outerClass jdk/jshell/Snippet innerClassName Kind flags 4019
+
+class name jdk/jshell/SnippetEvent
+header extends java/lang/Object flags 21
+innerclass innerClass jdk/jshell/Snippet$Status outerClass jdk/jshell/Snippet innerClassName Status flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/jshell/SourceCodeAnalysis
+header extends java/lang/Object nestMembers jdk/jshell/SourceCodeAnalysis$SnippetWrapper,jdk/jshell/SourceCodeAnalysis$QualifiedNames,jdk/jshell/SourceCodeAnalysis$Documentation,jdk/jshell/SourceCodeAnalysis$Suggestion,jdk/jshell/SourceCodeAnalysis$Completeness,jdk/jshell/SourceCodeAnalysis$CompletionInfo flags 421
+innerclass innerClass jdk/jshell/SourceCodeAnalysis$SnippetWrapper outerClass jdk/jshell/SourceCodeAnalysis innerClassName SnippetWrapper flags 609
+innerclass innerClass jdk/jshell/SourceCodeAnalysis$QualifiedNames outerClass jdk/jshell/SourceCodeAnalysis innerClassName QualifiedNames flags 19
+innerclass innerClass jdk/jshell/SourceCodeAnalysis$Documentation outerClass jdk/jshell/SourceCodeAnalysis innerClassName Documentation flags 609
+innerclass innerClass jdk/jshell/SourceCodeAnalysis$Suggestion outerClass jdk/jshell/SourceCodeAnalysis innerClassName Suggestion flags 609
+innerclass innerClass jdk/jshell/SourceCodeAnalysis$Completeness outerClass jdk/jshell/SourceCodeAnalysis innerClassName Completeness flags 4019
+innerclass innerClass jdk/jshell/SourceCodeAnalysis$CompletionInfo outerClass jdk/jshell/SourceCodeAnalysis innerClassName CompletionInfo flags 609
+
+class name jdk/jshell/SourceCodeAnalysis$Completeness
+header extends java/lang/Enum nestHost jdk/jshell/SourceCodeAnalysis flags 4031 signature Ljava/lang/Enum<Ljdk/jshell/SourceCodeAnalysis$Completeness;>;
+innerclass innerClass jdk/jshell/SourceCodeAnalysis$Completeness outerClass jdk/jshell/SourceCodeAnalysis innerClassName Completeness flags 4019
+
+class name jdk/jshell/SourceCodeAnalysis$CompletionInfo
+header extends java/lang/Object nestHost jdk/jshell/SourceCodeAnalysis flags 601
+innerclass innerClass jdk/jshell/SourceCodeAnalysis$Completeness outerClass jdk/jshell/SourceCodeAnalysis innerClassName Completeness flags 4019
+innerclass innerClass jdk/jshell/SourceCodeAnalysis$CompletionInfo outerClass jdk/jshell/SourceCodeAnalysis innerClassName CompletionInfo flags 609
+
+class name jdk/jshell/SourceCodeAnalysis$Documentation
+header extends java/lang/Object nestHost jdk/jshell/SourceCodeAnalysis flags 601
+innerclass innerClass jdk/jshell/SourceCodeAnalysis$Documentation outerClass jdk/jshell/SourceCodeAnalysis innerClassName Documentation flags 609
+
+class name jdk/jshell/SourceCodeAnalysis$QualifiedNames
+header extends java/lang/Object nestHost jdk/jshell/SourceCodeAnalysis flags 31
+innerclass innerClass jdk/jshell/SourceCodeAnalysis$QualifiedNames outerClass jdk/jshell/SourceCodeAnalysis innerClassName QualifiedNames flags 19
+
+class name jdk/jshell/SourceCodeAnalysis$SnippetWrapper
+header extends java/lang/Object nestHost jdk/jshell/SourceCodeAnalysis flags 601
+innerclass innerClass jdk/jshell/Snippet$Kind outerClass jdk/jshell/Snippet innerClassName Kind flags 4019
+innerclass innerClass jdk/jshell/SourceCodeAnalysis$SnippetWrapper outerClass jdk/jshell/SourceCodeAnalysis innerClassName SnippetWrapper flags 609
+
+class name jdk/jshell/SourceCodeAnalysis$Suggestion
+header extends java/lang/Object nestHost jdk/jshell/SourceCodeAnalysis flags 601
+innerclass innerClass jdk/jshell/SourceCodeAnalysis$Suggestion outerClass jdk/jshell/SourceCodeAnalysis innerClassName Suggestion flags 609
+
+class name jdk/jshell/StatementSnippet
+header extends jdk/jshell/Snippet flags 21
+innerclass innerClass jdk/jshell/Snippet$SubKind outerClass jdk/jshell/Snippet innerClassName SubKind flags 4019
+
+class name jdk/jshell/TypeDeclSnippet
+header extends jdk/jshell/DeclarationSnippet flags 21
+innerclass innerClass jdk/jshell/Snippet$SubKind outerClass jdk/jshell/Snippet innerClassName SubKind flags 4019
+
+class name jdk/jshell/UnresolvedReferenceException
+header extends jdk/jshell/JShellException flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/jshell/VarSnippet
+header extends jdk/jshell/DeclarationSnippet flags 21
+innerclass innerClass jdk/jshell/Snippet$SubKind outerClass jdk/jshell/Snippet innerClassName SubKind flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/jshell/execution/DirectExecutionControl
+header extends java/lang/Object implements jdk/jshell/spi/ExecutionControl flags 21
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ClassBytecodes outerClass jdk/jshell/spi/ExecutionControl innerClassName ClassBytecodes flags 19
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ExecutionControlException outerClass jdk/jshell/spi/ExecutionControl innerClassName ExecutionControlException flags 409
+innerclass innerClass jdk/jshell/spi/ExecutionControl$RunException outerClass jdk/jshell/spi/ExecutionControl innerClassName RunException flags 409
+innerclass innerClass jdk/jshell/spi/ExecutionControl$UserException outerClass jdk/jshell/spi/ExecutionControl innerClassName UserException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$NotImplementedException outerClass jdk/jshell/spi/ExecutionControl innerClassName NotImplementedException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$InternalException outerClass jdk/jshell/spi/ExecutionControl innerClassName InternalException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$EngineTerminationException outerClass jdk/jshell/spi/ExecutionControl innerClassName EngineTerminationException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ResolutionException outerClass jdk/jshell/spi/ExecutionControl innerClassName ResolutionException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ClassInstallException outerClass jdk/jshell/spi/ExecutionControl innerClassName ClassInstallException flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/jshell/execution/FailOverExecutionControlProvider
+header extends java/lang/Object implements jdk/jshell/spi/ExecutionControlProvider flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/jshell/execution/JdiDefaultExecutionControl
+header extends jdk/jshell/execution/JdiExecutionControl flags 21
+innerclass innerClass jdk/jshell/spi/ExecutionControl$InternalException outerClass jdk/jshell/spi/ExecutionControl innerClassName InternalException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$EngineTerminationException outerClass jdk/jshell/spi/ExecutionControl innerClassName EngineTerminationException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$RunException outerClass jdk/jshell/spi/ExecutionControl innerClassName RunException flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/jshell/execution/JdiExecutionControl
+header extends jdk/jshell/execution/StreamingExecutionControl implements jdk/jshell/spi/ExecutionControl flags 421
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ClassBytecodes outerClass jdk/jshell/spi/ExecutionControl innerClassName ClassBytecodes flags 19
+innerclass innerClass jdk/jshell/spi/ExecutionControl$EngineTerminationException outerClass jdk/jshell/spi/ExecutionControl innerClassName EngineTerminationException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ClassInstallException outerClass jdk/jshell/spi/ExecutionControl innerClassName ClassInstallException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$NotImplementedException outerClass jdk/jshell/spi/ExecutionControl innerClassName NotImplementedException flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/jshell/execution/JdiExecutionControlProvider
+header extends java/lang/Object implements jdk/jshell/spi/ExecutionControlProvider flags 21
+
+class name jdk/jshell/execution/JdiInitiator
+header extends java/lang/Object flags 21
+innerclass innerClass com/sun/jdi/connect/Connector$Argument outerClass com/sun/jdi/connect/Connector innerClassName Argument flags 609
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/jshell/execution/LoaderDelegate
+header extends java/lang/Object flags 601
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ClassBytecodes outerClass jdk/jshell/spi/ExecutionControl innerClassName ClassBytecodes flags 19
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ClassInstallException outerClass jdk/jshell/spi/ExecutionControl innerClassName ClassInstallException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$NotImplementedException outerClass jdk/jshell/spi/ExecutionControl innerClassName NotImplementedException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$EngineTerminationException outerClass jdk/jshell/spi/ExecutionControl innerClassName EngineTerminationException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$InternalException outerClass jdk/jshell/spi/ExecutionControl innerClassName InternalException flags 9
+
+class name jdk/jshell/execution/LocalExecutionControl
+header extends jdk/jshell/execution/DirectExecutionControl flags 21
+innerclass innerClass jdk/jshell/spi/ExecutionControl$StoppedException outerClass jdk/jshell/spi/ExecutionControl innerClassName StoppedException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$InternalException outerClass jdk/jshell/spi/ExecutionControl innerClassName InternalException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$EngineTerminationException outerClass jdk/jshell/spi/ExecutionControl innerClassName EngineTerminationException flags 9
+innerclass innerClass java/lang/Thread$UncaughtExceptionHandler outerClass java/lang/Thread innerClassName UncaughtExceptionHandler flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/jshell/execution/LocalExecutionControlProvider
+header extends java/lang/Object implements jdk/jshell/spi/ExecutionControlProvider flags 21
+
+class name jdk/jshell/execution/StreamingExecutionControl
+header extends java/lang/Object implements jdk/jshell/spi/ExecutionControl flags 21
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ClassBytecodes outerClass jdk/jshell/spi/ExecutionControl innerClassName ClassBytecodes flags 19
+innerclass innerClass jdk/jshell/spi/ExecutionControl$RunException outerClass jdk/jshell/spi/ExecutionControl innerClassName RunException flags 409
+innerclass innerClass jdk/jshell/spi/ExecutionControl$UserException outerClass jdk/jshell/spi/ExecutionControl innerClassName UserException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ResolutionException outerClass jdk/jshell/spi/ExecutionControl innerClassName ResolutionException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$EngineTerminationException outerClass jdk/jshell/spi/ExecutionControl innerClassName EngineTerminationException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$NotImplementedException outerClass jdk/jshell/spi/ExecutionControl innerClassName NotImplementedException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$InternalException outerClass jdk/jshell/spi/ExecutionControl innerClassName InternalException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ClassInstallException outerClass jdk/jshell/spi/ExecutionControl innerClassName ClassInstallException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$StoppedException outerClass jdk/jshell/spi/ExecutionControl innerClassName StoppedException flags 9
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/jshell/spi/ExecutionControl
+header extends java/lang/Object implements java/lang/AutoCloseable nestMembers jdk/jshell/spi/ExecutionControl$StoppedException,jdk/jshell/spi/ExecutionControl$ResolutionException,jdk/jshell/spi/ExecutionControl$UserException,jdk/jshell/spi/ExecutionControl$RunException,jdk/jshell/spi/ExecutionControl$ClassInstallException,jdk/jshell/spi/ExecutionControl$InternalException,jdk/jshell/spi/ExecutionControl$NotImplementedException,jdk/jshell/spi/ExecutionControl$EngineTerminationException,jdk/jshell/spi/ExecutionControl$ExecutionControlException,jdk/jshell/spi/ExecutionControl$ClassBytecodes flags 601
+innerclass innerClass jdk/jshell/spi/ExecutionControl$StoppedException outerClass jdk/jshell/spi/ExecutionControl innerClassName StoppedException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ResolutionException outerClass jdk/jshell/spi/ExecutionControl innerClassName ResolutionException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$UserException outerClass jdk/jshell/spi/ExecutionControl innerClassName UserException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$RunException outerClass jdk/jshell/spi/ExecutionControl innerClassName RunException flags 409
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ClassInstallException outerClass jdk/jshell/spi/ExecutionControl innerClassName ClassInstallException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$InternalException outerClass jdk/jshell/spi/ExecutionControl innerClassName InternalException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$NotImplementedException outerClass jdk/jshell/spi/ExecutionControl innerClassName NotImplementedException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$EngineTerminationException outerClass jdk/jshell/spi/ExecutionControl innerClassName EngineTerminationException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ExecutionControlException outerClass jdk/jshell/spi/ExecutionControl innerClassName ExecutionControlException flags 409
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ClassBytecodes outerClass jdk/jshell/spi/ExecutionControl innerClassName ClassBytecodes flags 19
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/jshell/spi/ExecutionControl$ClassBytecodes
+header extends java/lang/Object implements java/io/Serializable nestHost jdk/jshell/spi/ExecutionControl flags 31
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ClassBytecodes outerClass jdk/jshell/spi/ExecutionControl innerClassName ClassBytecodes flags 19
+
+class name jdk/jshell/spi/ExecutionControl$ClassInstallException
+header extends jdk/jshell/spi/ExecutionControl$ExecutionControlException nestHost jdk/jshell/spi/ExecutionControl flags 21
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ClassInstallException outerClass jdk/jshell/spi/ExecutionControl innerClassName ClassInstallException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ExecutionControlException outerClass jdk/jshell/spi/ExecutionControl innerClassName ExecutionControlException flags 409
+
+class name jdk/jshell/spi/ExecutionControl$EngineTerminationException
+header extends jdk/jshell/spi/ExecutionControl$ExecutionControlException nestHost jdk/jshell/spi/ExecutionControl flags 21
+innerclass innerClass jdk/jshell/spi/ExecutionControl$EngineTerminationException outerClass jdk/jshell/spi/ExecutionControl innerClassName EngineTerminationException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ExecutionControlException outerClass jdk/jshell/spi/ExecutionControl innerClassName ExecutionControlException flags 409
+
+class name jdk/jshell/spi/ExecutionControl$ExecutionControlException
+header extends java/lang/Exception nestHost jdk/jshell/spi/ExecutionControl flags 421
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ExecutionControlException outerClass jdk/jshell/spi/ExecutionControl innerClassName ExecutionControlException flags 409
+
+class name jdk/jshell/spi/ExecutionControl$InternalException
+header extends jdk/jshell/spi/ExecutionControl$ExecutionControlException nestHost jdk/jshell/spi/ExecutionControl flags 21
+innerclass innerClass jdk/jshell/spi/ExecutionControl$InternalException outerClass jdk/jshell/spi/ExecutionControl innerClassName InternalException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ExecutionControlException outerClass jdk/jshell/spi/ExecutionControl innerClassName ExecutionControlException flags 409
+
+class name jdk/jshell/spi/ExecutionControl$NotImplementedException
+header extends jdk/jshell/spi/ExecutionControl$InternalException nestHost jdk/jshell/spi/ExecutionControl flags 21
+innerclass innerClass jdk/jshell/spi/ExecutionControl$NotImplementedException outerClass jdk/jshell/spi/ExecutionControl innerClassName NotImplementedException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$InternalException outerClass jdk/jshell/spi/ExecutionControl innerClassName InternalException flags 9
+
+class name jdk/jshell/spi/ExecutionControl$ResolutionException
+header extends jdk/jshell/spi/ExecutionControl$RunException nestHost jdk/jshell/spi/ExecutionControl flags 21
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ResolutionException outerClass jdk/jshell/spi/ExecutionControl innerClassName ResolutionException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$RunException outerClass jdk/jshell/spi/ExecutionControl innerClassName RunException flags 409
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/jshell/spi/ExecutionControl$RunException
+header extends jdk/jshell/spi/ExecutionControl$ExecutionControlException nestHost jdk/jshell/spi/ExecutionControl flags 421
+innerclass innerClass jdk/jshell/spi/ExecutionControl$RunException outerClass jdk/jshell/spi/ExecutionControl innerClassName RunException flags 409
+innerclass innerClass jdk/jshell/spi/ExecutionControl$ExecutionControlException outerClass jdk/jshell/spi/ExecutionControl innerClassName ExecutionControlException flags 409
+
+class name jdk/jshell/spi/ExecutionControl$StoppedException
+header extends jdk/jshell/spi/ExecutionControl$RunException nestHost jdk/jshell/spi/ExecutionControl flags 21
+innerclass innerClass jdk/jshell/spi/ExecutionControl$StoppedException outerClass jdk/jshell/spi/ExecutionControl innerClassName StoppedException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$RunException outerClass jdk/jshell/spi/ExecutionControl innerClassName RunException flags 409
+
+class name jdk/jshell/spi/ExecutionControl$UserException
+header extends jdk/jshell/spi/ExecutionControl$RunException nestHost jdk/jshell/spi/ExecutionControl flags 21
+innerclass innerClass jdk/jshell/spi/ExecutionControl$UserException outerClass jdk/jshell/spi/ExecutionControl innerClassName UserException flags 9
+innerclass innerClass jdk/jshell/spi/ExecutionControl$RunException outerClass jdk/jshell/spi/ExecutionControl innerClassName RunException flags 409
+
+class name jdk/jshell/spi/ExecutionControlProvider
+header extends java/lang/Object flags 601
+
+class name jdk/jshell/spi/ExecutionEnv
+header extends java/lang/Object flags 601
+
+class name jdk/jshell/spi/SPIResolutionException
+header extends java/lang/RuntimeException flags 21
+
+class name jdk/jshell/tool/JavaShellToolBuilder
+header extends java/lang/Object flags 601
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.jsobject-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,34 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.jsobject
+header exports netscape/javascript requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;java.desktop\u0020;flags\u0020;0 uses jdk/internal/netscape/javascript/spi/JSObjectProvider target linux-amd64 flags 8000
+
+class name netscape/javascript/JSException
+header extends java/lang/RuntimeException flags 21
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.jstatd-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,31 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.jstatd
+header requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;java.rmi\u0020;flags\u0020;0,name\u0020;jdk.internal.jvmstat\u0020;flags\u0020;0 provides interface\u0020;sun/jvmstat/monitor/MonitoredHostService\u0020;impls\u0020;sun/jvmstat/perfdata/monitor/protocol/rmi/MonitoredHostRmiService target linux-amd64 flags 8000
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.localedata-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,31 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.localedata
+header requires name\u0020;java.base\u0020;flags\u0020;8000 provides interface\u0020;sun/util/locale/provider/LocaleDataMetaInfo\u0020;impls\u0020;sun/util/resources/cldr/provider/CLDRLocaleDataMetaInfo\u005C;u002C;sun/util/resources/provider/NonBaseLocaleDataMetaInfo,interface\u0020;sun/util/resources/LocaleData$CommonResourceBundleProvider\u0020;impls\u0020;sun/util/resources/provider/LocaleDataProvider,interface\u0020;sun/util/resources/LocaleData$SupplementaryResourceBundleProvider\u0020;impls\u0020;sun/util/resources/provider/SupplementaryLocaleDataProvider target linux-amd64 flags 8000
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.management-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,64 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.management
+header exports com/sun/management requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;java.management\u0020;flags\u0020;20 provides interface\u0020;sun/management/spi/PlatformMBeanProvider\u0020;impls\u0020;com/sun/management/internal/PlatformMBeanProviderImpl target linux-amd64 flags 8000
+
+class name com/sun/management/DiagnosticCommandMBean
+header extends java/lang/Object implements javax/management/DynamicMBean flags 601
+
+class name com/sun/management/GarbageCollectionNotificationInfo
+header extends java/lang/Object implements javax/management/openmbean/CompositeDataView flags 21
+
+class name com/sun/management/GarbageCollectorMXBean
+header extends java/lang/Object implements java/lang/management/GarbageCollectorMXBean flags 601
+
+class name com/sun/management/GcInfo
+header extends java/lang/Object implements javax/management/openmbean/CompositeData,javax/management/openmbean/CompositeDataView flags 21
+
+class name com/sun/management/HotSpotDiagnosticMXBean
+header extends java/lang/Object implements java/lang/management/PlatformManagedObject flags 601
+
+class name com/sun/management/OperatingSystemMXBean
+header extends java/lang/Object implements java/lang/management/OperatingSystemMXBean flags 601
+
+class name com/sun/management/ThreadMXBean
+header extends java/lang/Object implements java/lang/management/ThreadMXBean flags 601
+
+class name com/sun/management/UnixOperatingSystemMXBean
+header extends java/lang/Object implements com/sun/management/OperatingSystemMXBean flags 601
+
+class name com/sun/management/VMOption
+header extends java/lang/Object nestMembers com/sun/management/VMOption$Origin flags 21
+innerclass innerClass com/sun/management/VMOption$Origin outerClass com/sun/management/VMOption innerClassName Origin flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name com/sun/management/VMOption$Origin
+header extends java/lang/Enum nestHost com/sun/management/VMOption flags 4031 signature Ljava/lang/Enum<Lcom/sun/management/VMOption$Origin;>;
+innerclass innerClass com/sun/management/VMOption$Origin outerClass com/sun/management/VMOption innerClassName Origin flags 4019
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.management.agent-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,31 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.management.agent
+header requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;java.management\u0020;flags\u0020;0,name\u0020;java.management.rmi\u0020;flags\u0020;0 uses jdk/internal/agent/spi/AgentProvider target linux-amd64 flags 8000
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.management.jfr-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,105 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.management.jfr
+header exports jdk/management/jfr requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;jdk.jfr\u0020;flags\u0020;0,name\u0020;jdk.management\u0020;flags\u0020;0,name\u0020;java.management\u0020;flags\u0020;20 provides interface\u0020;sun/management/spi/PlatformMBeanProvider\u0020;impls\u0020;jdk/management/jfr/internal/FlightRecorderMXBeanProvider target linux-amd64 flags 8000
+
+class name jdk/management/jfr/ConfigurationInfo
+header extends java/lang/Object flags 31
+method name getProvider descriptor ()Ljava/lang/String; flags 1
+method name getContents descriptor ()Ljava/lang/String; flags 1
+method name getSettings descriptor ()Ljava/util/Map; flags 1 signature ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
+method name getLabel descriptor ()Ljava/lang/String; flags 1
+method name getName descriptor ()Ljava/lang/String; flags 1
+method name getDescription descriptor ()Ljava/lang/String; flags 1
+method name from descriptor (Ljavax/management/openmbean/CompositeData;)Ljdk/management/jfr/ConfigurationInfo; flags 9
+method name toString descriptor ()Ljava/lang/String; flags 1
+
+class name jdk/management/jfr/EventTypeInfo
+header extends java/lang/Object flags 31
+method name getLabel descriptor ()Ljava/lang/String; flags 1
+method name getCategoryNames descriptor ()Ljava/util/List; flags 1 signature ()Ljava/util/List<Ljava/lang/String;>;
+method name getId descriptor ()J flags 1
+method name getName descriptor ()Ljava/lang/String; flags 1
+method name getDescription descriptor ()Ljava/lang/String; flags 1
+method name getSettingDescriptors descriptor ()Ljava/util/List; flags 1 signature ()Ljava/util/List<Ljdk/management/jfr/SettingDescriptorInfo;>;
+method name toString descriptor ()Ljava/lang/String; flags 1
+method name from descriptor (Ljavax/management/openmbean/CompositeData;)Ljdk/management/jfr/EventTypeInfo; flags 9
+
+class name jdk/management/jfr/FlightRecorderMXBean
+header extends java/lang/Object implements java/lang/management/PlatformManagedObject flags 601
+field name MXBEAN_NAME descriptor Ljava/lang/String; constantValue jdk.management.jfr:type=FlightRecorder flags 19
+method name newRecording descriptor ()J thrownTypes java/lang/IllegalStateException,java/lang/SecurityException flags 401
+method name takeSnapshot descriptor ()J flags 401
+method name cloneRecording descriptor (JZ)J thrownTypes java/lang/IllegalArgumentException,java/lang/SecurityException flags 401
+method name startRecording descriptor (J)V thrownTypes java/lang/IllegalStateException,java/lang/SecurityException flags 401
+method name stopRecording descriptor (J)Z thrownTypes java/lang/IllegalArgumentException,java/lang/IllegalStateException,java/lang/SecurityException flags 401
+method name closeRecording descriptor (J)V thrownTypes java/io/IOException flags 401
+method name openStream descriptor (JLjava/util/Map;)J thrownTypes java/io/IOException flags 401 signature (JLjava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)J
+method name closeStream descriptor (J)V thrownTypes java/io/IOException flags 401
+method name readStream descriptor (J)[B thrownTypes java/io/IOException flags 401
+method name getRecordingOptions descriptor (J)Ljava/util/Map; thrownTypes java/lang/IllegalArgumentException flags 401 signature (J)Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
+method name getRecordingSettings descriptor (J)Ljava/util/Map; thrownTypes java/lang/IllegalArgumentException flags 401 signature (J)Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
+method name setConfiguration descriptor (JLjava/lang/String;)V thrownTypes java/lang/IllegalArgumentException flags 401
+method name setPredefinedConfiguration descriptor (JLjava/lang/String;)V thrownTypes java/lang/IllegalArgumentException flags 401
+method name setRecordingSettings descriptor (JLjava/util/Map;)V thrownTypes java/lang/IllegalArgumentException flags 401 signature (JLjava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)V
+method name setRecordingOptions descriptor (JLjava/util/Map;)V thrownTypes java/lang/IllegalArgumentException flags 401 signature (JLjava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)V
+method name getRecordings descriptor ()Ljava/util/List; flags 401 signature ()Ljava/util/List<Ljdk/management/jfr/RecordingInfo;>;
+method name getConfigurations descriptor ()Ljava/util/List; flags 401 signature ()Ljava/util/List<Ljdk/management/jfr/ConfigurationInfo;>;
+method name getEventTypes descriptor ()Ljava/util/List; flags 401 signature ()Ljava/util/List<Ljdk/management/jfr/EventTypeInfo;>;
+method name copyTo descriptor (JLjava/lang/String;)V thrownTypes java/io/IOException,java/lang/SecurityException flags 401
+
+class name jdk/management/jfr/RecordingInfo
+header extends java/lang/Object flags 31
+method name getName descriptor ()Ljava/lang/String; flags 1
+method name getId descriptor ()J flags 1
+method name getDumpOnExit descriptor ()Z flags 1
+method name getMaxAge descriptor ()J flags 1
+method name getMaxSize descriptor ()J flags 1
+method name getState descriptor ()Ljava/lang/String; flags 1
+method name getStartTime descriptor ()J flags 1
+method name getStopTime descriptor ()J flags 1
+method name getSettings descriptor ()Ljava/util/Map; flags 1 signature ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
+method name getDestination descriptor ()Ljava/lang/String; flags 1
+method name toString descriptor ()Ljava/lang/String; flags 1
+method name getSize descriptor ()J flags 1
+method name isToDisk descriptor ()Z flags 1
+method name getDuration descriptor ()J flags 1
+method name from descriptor (Ljavax/management/openmbean/CompositeData;)Ljdk/management/jfr/RecordingInfo; flags 9
+
+class name jdk/management/jfr/SettingDescriptorInfo
+header extends java/lang/Object flags 31
+method name getLabel descriptor ()Ljava/lang/String; flags 1
+method name getName descriptor ()Ljava/lang/String; flags 1
+method name getDescription descriptor ()Ljava/lang/String; flags 1
+method name getTypeName descriptor ()Ljava/lang/String; flags 1
+method name getContentType descriptor ()Ljava/lang/String; flags 1
+method name getDefaultValue descriptor ()Ljava/lang/String; flags 1
+method name from descriptor (Ljavax/management/openmbean/CompositeData;)Ljdk/management/jfr/SettingDescriptorInfo; flags 9
+method name toString descriptor ()Ljava/lang/String; flags 1
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.naming.dns-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,31 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.naming.dns
+header requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;java.naming\u0020;flags\u0020;0 provides interface\u0020;javax/naming/spi/InitialContextFactory\u0020;impls\u0020;com/sun/jndi/dns/DnsContextFactory target linux-amd64 flags 8000
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.naming.rmi-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,31 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.naming.rmi
+header requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;java.naming\u0020;flags\u0020;0,name\u0020;java.rmi\u0020;flags\u0020;0 provides interface\u0020;javax/naming/spi/InitialContextFactory\u0020;impls\u0020;com/sun/jndi/rmi/registry/RegistryContextFactory target linux-amd64 flags 8000
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.net-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,60 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.net
+header exports jdk/net,jdk/nio requires name\u0020;java.base\u0020;flags\u0020;8000 target linux-amd64 flags 8000
+
+class name jdk/net/ExtendedSocketOptions
+field name TCP_KEEPIDLE descriptor Ljava/net/SocketOption; flags 19 signature Ljava/net/SocketOption<Ljava/lang/Integer;>;
+field name TCP_KEEPINTERVAL descriptor Ljava/net/SocketOption; flags 19 signature Ljava/net/SocketOption<Ljava/lang/Integer;>;
+field name TCP_KEEPCOUNT descriptor Ljava/net/SocketOption; flags 19 signature Ljava/net/SocketOption<Ljava/lang/Integer;>;
+
+class name jdk/net/NetworkPermission
+header extends java/security/BasicPermission flags 31
+
+class name jdk/net/SocketFlow
+header extends java/lang/Object nestMembers jdk/net/SocketFlow$Status flags 21
+innerclass innerClass jdk/net/SocketFlow$Status outerClass jdk/net/SocketFlow innerClassName Status flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/net/SocketFlow$Status
+header extends java/lang/Enum nestHost jdk/net/SocketFlow flags 4031 signature Ljava/lang/Enum<Ljdk/net/SocketFlow$Status;>;
+innerclass innerClass jdk/net/SocketFlow$Status outerClass jdk/net/SocketFlow innerClassName Status flags 4019
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/nio/Channels
+header extends java/lang/Object nestMembers jdk/nio/Channels$SelectableChannelCloser flags 31
+innerclass innerClass jdk/nio/Channels$SelectableChannelCloser outerClass jdk/nio/Channels innerClassName SelectableChannelCloser flags 609
+method name readWriteSelectableChannel descriptor (Ljava/io/FileDescriptor;Ljdk/nio/Channels$SelectableChannelCloser;)Ljava/nio/channels/SelectableChannel; flags 9
+
+class name jdk/nio/Channels$SelectableChannelCloser
+header extends java/lang/Object nestHost jdk/nio/Channels flags 601
+innerclass innerClass jdk/nio/Channels$SelectableChannelCloser outerClass jdk/nio/Channels innerClassName SelectableChannelCloser flags 609
+method name implCloseChannel descriptor (Ljava/nio/channels/SelectableChannel;)V thrownTypes java/io/IOException flags 401
+method name implReleaseChannel descriptor (Ljava/nio/channels/SelectableChannel;)V thrownTypes java/io/IOException flags 401
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.pack-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,31 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.pack
+header requires name\u0020;java.base\u0020;flags\u0020;8000 target linux-amd64 flags 8000 runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.rmic-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,31 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.rmic
+header requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;jdk.compiler\u0020;flags\u0020;0,name\u0020;jdk.javadoc\u0020;flags\u0020;0 target linux-amd64 flags 8000
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.scripting.nashorn-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,268 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.scripting.nashorn
+header exports jdk/nashorn/api/scripting,jdk/nashorn/api/tree requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;java.logging\u0020;flags\u0020;0,name\u0020;jdk.dynalink\u0020;flags\u0020;0,name\u0020;java.scripting\u0020;flags\u0020;20 provides interface\u0020;javax/script/ScriptEngineFactory\u0020;impls\u0020;jdk/nashorn/api/scripting/NashornScriptEngineFactory,interface\u0020;jdk/dynalink/linker/GuardingDynamicLinkerExporter\u0020;impls\u0020;jdk/nashorn/api/linker/NashornLinkerExporter target linux-amd64 flags 8000 runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/scripting/AbstractJSObject
+header extends java/lang/Object implements jdk/nashorn/api/scripting/JSObject flags 421 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/scripting/ClassFilter
+header extends java/lang/Object flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/scripting/JSObject
+header extends java/lang/Object flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/scripting/NashornException
+header extends java/lang/RuntimeException flags 421 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/nashorn/api/scripting/NashornScriptEngine
+header extends javax/script/AbstractScriptEngine implements javax/script/Compilable,javax/script/Invocable flags 31 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/nashorn/api/scripting/NashornScriptEngineFactory
+header extends java/lang/Object implements javax/script/ScriptEngineFactory flags 31 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/nashorn/api/scripting/ScriptObjectMirror
+header extends jdk/nashorn/api/scripting/AbstractJSObject implements javax/script/Bindings flags 31 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/nashorn/api/scripting/ScriptUtils
+header extends java/lang/Object flags 31 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/scripting/URLReader
+header extends java/io/Reader flags 31 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/ArrayAccessTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/ExpressionTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/ArrayLiteralTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/ExpressionTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/AssignmentTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/ExpressionTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/BinaryTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/ExpressionTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/BlockTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/StatementTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/BreakTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/GotoTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/CaseTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/Tree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/CatchTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/Tree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/ClassDeclarationTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/StatementTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/ClassExpressionTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/ExpressionTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/CompilationUnitTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/Tree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/CompoundAssignmentTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/ExpressionTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/ConditionalExpressionTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/ExpressionTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/ConditionalLoopTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/LoopTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/ContinueTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/GotoTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/DebuggerTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/StatementTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/Diagnostic
+header extends java/lang/Object nestMembers jdk/nashorn/api/tree/Diagnostic$Kind flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+innerclass innerClass jdk/nashorn/api/tree/Diagnostic$Kind outerClass jdk/nashorn/api/tree/Diagnostic innerClassName Kind flags 4019
+
+class name jdk/nashorn/api/tree/Diagnostic$Kind
+header extends java/lang/Enum nestHost jdk/nashorn/api/tree/Diagnostic flags 4031 deprecated true signature Ljava/lang/Enum<Ljdk/nashorn/api/tree/Diagnostic$Kind;>; runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+innerclass innerClass jdk/nashorn/api/tree/Diagnostic$Kind outerClass jdk/nashorn/api/tree/Diagnostic innerClassName Kind flags 4019
+
+class name jdk/nashorn/api/tree/DiagnosticListener
+header extends java/lang/Object flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")@Ljava/lang/FunctionalInterface;
+
+class name jdk/nashorn/api/tree/DoWhileLoopTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/ConditionalLoopTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/EmptyStatementTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/StatementTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/ErroneousTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/ExpressionTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/ExportEntryTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/Tree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/ExpressionStatementTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/StatementTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/ExpressionTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/Tree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/ForInLoopTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/LoopTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/ForLoopTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/ConditionalLoopTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/ForOfLoopTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/LoopTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/FunctionCallTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/ExpressionTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/FunctionDeclarationTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/StatementTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/FunctionExpressionTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/ExpressionTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/GotoTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/StatementTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/IdentifierTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/ExpressionTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/IfTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/StatementTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/ImportEntryTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/Tree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/InstanceOfTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/ExpressionTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/LabeledStatementTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/StatementTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/LineMap
+header extends java/lang/Object flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/LiteralTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/ExpressionTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/LoopTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/StatementTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/MemberSelectTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/ExpressionTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/ModuleTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/Tree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/NewTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/ExpressionTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/ObjectLiteralTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/ExpressionTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/ParenthesizedTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/ExpressionTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/Parser
+header extends java/lang/Object flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/PropertyTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/Tree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/RegExpLiteralTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/ExpressionTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/ReturnTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/StatementTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/SimpleTreeVisitorES5_1
+header extends java/lang/Object implements jdk/nashorn/api/tree/TreeVisitor flags 21 deprecated true signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljava/lang/Object;Ljdk/nashorn/api/tree/TreeVisitor<TR;TP;>; runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/nashorn/api/tree/SimpleTreeVisitorES6
+header extends jdk/nashorn/api/tree/SimpleTreeVisitorES5_1 flags 21 deprecated true signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljdk/nashorn/api/tree/SimpleTreeVisitorES5_1<TR;TP;>; runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/nashorn/api/tree/SpreadTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/ExpressionTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/StatementTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/Tree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/SwitchTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/StatementTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/TemplateLiteralTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/ExpressionTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/ThrowTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/StatementTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/Tree
+header extends java/lang/Object nestMembers jdk/nashorn/api/tree/Tree$Kind flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+innerclass innerClass jdk/nashorn/api/tree/Tree$Kind outerClass jdk/nashorn/api/tree/Tree innerClassName Kind flags 4019
+
+class name jdk/nashorn/api/tree/Tree$Kind
+header extends java/lang/Enum nestHost jdk/nashorn/api/tree/Tree flags 4031 deprecated true signature Ljava/lang/Enum<Ljdk/nashorn/api/tree/Tree$Kind;>; runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+innerclass innerClass jdk/nashorn/api/tree/Tree$Kind outerClass jdk/nashorn/api/tree/Tree innerClassName Kind flags 4019
+
+class name jdk/nashorn/api/tree/TreeVisitor
+header extends java/lang/Object flags 601 deprecated true signature <R:Ljava/lang/Object;P:Ljava/lang/Object;>Ljava/lang/Object; runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/TryTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/StatementTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/UnaryTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/ExpressionTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/UnknownTreeException
+header extends java/lang/RuntimeException flags 21 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name jdk/nashorn/api/tree/VariableTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/StatementTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/WhileLoopTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/ConditionalLoopTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/WithTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/StatementTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
+class name jdk/nashorn/api/tree/YieldTree
+header extends java/lang/Object implements jdk/nashorn/api/tree/ExpressionTree flags 601 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="11")
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.sctp-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,100 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.sctp
+header exports com/sun/nio/sctp requires name\u0020;java.base\u0020;flags\u0020;8000 target linux-amd64 flags 8000
+
+class name com/sun/nio/sctp/AbstractNotificationHandler
+header extends java/lang/Object implements com/sun/nio/sctp/NotificationHandler flags 21 signature <T:Ljava/lang/Object;>Ljava/lang/Object;Lcom/sun/nio/sctp/NotificationHandler<TT;>;
+
+class name com/sun/nio/sctp/Association
+header extends java/lang/Object flags 21
+
+class name com/sun/nio/sctp/AssociationChangeNotification
+header extends java/lang/Object implements com/sun/nio/sctp/Notification nestMembers com/sun/nio/sctp/AssociationChangeNotification$AssocChangeEvent flags 421
+innerclass innerClass com/sun/nio/sctp/AssociationChangeNotification$AssocChangeEvent outerClass com/sun/nio/sctp/AssociationChangeNotification innerClassName AssocChangeEvent flags 4019
+
+class name com/sun/nio/sctp/AssociationChangeNotification$AssocChangeEvent
+header extends java/lang/Enum nestHost com/sun/nio/sctp/AssociationChangeNotification flags 4031 signature Ljava/lang/Enum<Lcom/sun/nio/sctp/AssociationChangeNotification$AssocChangeEvent;>;
+innerclass innerClass com/sun/nio/sctp/AssociationChangeNotification$AssocChangeEvent outerClass com/sun/nio/sctp/AssociationChangeNotification innerClassName AssocChangeEvent flags 4019
+
+class name com/sun/nio/sctp/HandlerResult
+header extends java/lang/Enum flags 4031 signature Ljava/lang/Enum<Lcom/sun/nio/sctp/HandlerResult;>;
+
+class name com/sun/nio/sctp/IllegalReceiveException
+header extends java/lang/IllegalStateException flags 21
+
+class name com/sun/nio/sctp/IllegalUnbindException
+header extends java/lang/IllegalStateException flags 21
+
+class name com/sun/nio/sctp/InvalidStreamException
+header extends java/lang/IllegalArgumentException flags 21
+
+class name com/sun/nio/sctp/MessageInfo
+header extends java/lang/Object flags 421
+
+class name com/sun/nio/sctp/Notification
+header extends java/lang/Object flags 601
+
+class name com/sun/nio/sctp/NotificationHandler
+header extends java/lang/Object flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object;
+
+class name com/sun/nio/sctp/PeerAddressChangeNotification
+header extends java/lang/Object implements com/sun/nio/sctp/Notification nestMembers com/sun/nio/sctp/PeerAddressChangeNotification$AddressChangeEvent flags 421
+innerclass innerClass com/sun/nio/sctp/PeerAddressChangeNotification$AddressChangeEvent outerClass com/sun/nio/sctp/PeerAddressChangeNotification innerClassName AddressChangeEvent flags 4019
+
+class name com/sun/nio/sctp/PeerAddressChangeNotification$AddressChangeEvent
+header extends java/lang/Enum nestHost com/sun/nio/sctp/PeerAddressChangeNotification flags 4031 signature Ljava/lang/Enum<Lcom/sun/nio/sctp/PeerAddressChangeNotification$AddressChangeEvent;>;
+innerclass innerClass com/sun/nio/sctp/PeerAddressChangeNotification$AddressChangeEvent outerClass com/sun/nio/sctp/PeerAddressChangeNotification innerClassName AddressChangeEvent flags 4019
+
+class name com/sun/nio/sctp/SctpChannel
+header extends java/nio/channels/spi/AbstractSelectableChannel flags 421
+
+class name com/sun/nio/sctp/SctpMultiChannel
+header extends java/nio/channels/spi/AbstractSelectableChannel flags 421
+
+class name com/sun/nio/sctp/SctpServerChannel
+header extends java/nio/channels/spi/AbstractSelectableChannel flags 421
+
+class name com/sun/nio/sctp/SctpSocketOption
+header extends java/lang/Object implements java/net/SocketOption flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object;Ljava/net/SocketOption<TT;>;
+
+class name com/sun/nio/sctp/SctpStandardSocketOptions
+header extends java/lang/Object nestMembers com/sun/nio/sctp/SctpStandardSocketOptions$InitMaxStreams flags 21
+innerclass innerClass com/sun/nio/sctp/SctpStandardSocketOptions$InitMaxStreams outerClass com/sun/nio/sctp/SctpStandardSocketOptions innerClassName InitMaxStreams flags 9
+
+class name com/sun/nio/sctp/SctpStandardSocketOptions$InitMaxStreams
+header extends java/lang/Object nestHost com/sun/nio/sctp/SctpStandardSocketOptions flags 21
+innerclass innerClass com/sun/nio/sctp/SctpStandardSocketOptions$InitMaxStreams outerClass com/sun/nio/sctp/SctpStandardSocketOptions innerClassName InitMaxStreams flags 9
+
+class name com/sun/nio/sctp/SendFailedNotification
+header extends java/lang/Object implements com/sun/nio/sctp/Notification flags 421
+
+class name com/sun/nio/sctp/ShutdownNotification
+header extends java/lang/Object implements com/sun/nio/sctp/Notification flags 421
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.security.auth-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,109 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.security.auth
+header exports com/sun/security/auth,com/sun/security/auth/callback,com/sun/security/auth/login,com/sun/security/auth/module requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;java.security.jgss\u0020;flags\u0020;0,name\u0020;java.naming\u0020;flags\u0020;20 provides interface\u0020;javax/security/auth/spi/LoginModule\u0020;impls\u0020;com/sun/security/auth/module/Krb5LoginModule\u005C;u002C;com/sun/security/auth/module/UnixLoginModule\u005C;u002C;com/sun/security/auth/module/JndiLoginModule\u005C;u002C;com/sun/security/auth/module/KeyStoreLoginModule\u005C;u002C;com/sun/security/auth/module/LdapLoginModule\u005C;u002C;com/sun/security/auth/module/NTLoginModule target linux-amd64 flags 8000
+
+class name com/sun/security/auth/LdapPrincipal
+header extends java/lang/Object implements java/security/Principal,java/io/Serializable flags 31
+
+class name com/sun/security/auth/NTDomainPrincipal
+header extends java/lang/Object implements java/security/Principal,java/io/Serializable flags 21
+
+class name com/sun/security/auth/NTNumericCredential
+header extends java/lang/Object flags 21
+
+class name com/sun/security/auth/NTSid
+header extends java/lang/Object implements java/security/Principal,java/io/Serializable flags 21
+
+class name com/sun/security/auth/NTSidDomainPrincipal
+header extends com/sun/security/auth/NTSid flags 21
+
+class name com/sun/security/auth/NTSidGroupPrincipal
+header extends com/sun/security/auth/NTSid flags 21
+
+class name com/sun/security/auth/NTSidPrimaryGroupPrincipal
+header extends com/sun/security/auth/NTSid flags 21
+
+class name com/sun/security/auth/NTSidUserPrincipal
+header extends com/sun/security/auth/NTSid flags 21
+
+class name com/sun/security/auth/NTUserPrincipal
+header extends java/lang/Object implements java/security/Principal,java/io/Serializable flags 21
+
+class name com/sun/security/auth/PrincipalComparator
+header extends java/lang/Object flags 601
+
+class name com/sun/security/auth/UnixNumericGroupPrincipal
+header extends java/lang/Object implements java/security/Principal,java/io/Serializable flags 21
+
+class name com/sun/security/auth/UnixNumericUserPrincipal
+header extends java/lang/Object implements java/security/Principal,java/io/Serializable flags 21
+
+class name com/sun/security/auth/UnixPrincipal
+header extends java/lang/Object implements java/security/Principal,java/io/Serializable flags 21
+
+class name com/sun/security/auth/UserPrincipal
+header extends java/lang/Object implements java/security/Principal,java/io/Serializable flags 31
+
+class name com/sun/security/auth/callback/TextCallbackHandler
+header extends java/lang/Object implements javax/security/auth/callback/CallbackHandler flags 21
+
+class name com/sun/security/auth/login/ConfigFile
+header extends javax/security/auth/login/Configuration flags 21
+
+class name com/sun/security/auth/module/JndiLoginModule
+header extends java/lang/Object implements javax/security/auth/spi/LoginModule flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name com/sun/security/auth/module/KeyStoreLoginModule
+header extends java/lang/Object implements javax/security/auth/spi/LoginModule flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name com/sun/security/auth/module/Krb5LoginModule
+header extends java/lang/Object implements javax/security/auth/spi/LoginModule flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name com/sun/security/auth/module/LdapLoginModule
+header extends java/lang/Object implements javax/security/auth/spi/LoginModule flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name com/sun/security/auth/module/NTLoginModule
+header extends java/lang/Object implements javax/security/auth/spi/LoginModule flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name com/sun/security/auth/module/NTSystem
+header extends java/lang/Object flags 21
+
+class name com/sun/security/auth/module/UnixLoginModule
+header extends java/lang/Object implements javax/security/auth/spi/LoginModule flags 21
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name com/sun/security/auth/module/UnixSystem
+header extends java/lang/Object flags 21
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.security.jgss-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,50 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.security.jgss
+header exports com/sun/security/jgss requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;java.logging\u0020;flags\u0020;0,name\u0020;java.security.sasl\u0020;flags\u0020;0,name\u0020;java.security.jgss\u0020;flags\u0020;20 provides interface\u0020;java/security/Provider\u0020;impls\u0020;com/sun/security/sasl/gsskerb/JdkSASL target linux-amd64 flags 8000
+
+class name com/sun/security/jgss/AuthorizationDataEntry
+header extends java/lang/Object flags 31
+innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
+
+class name com/sun/security/jgss/ExtendedGSSContext
+header extends java/lang/Object implements org/ietf/jgss/GSSContext flags 601
+
+class name com/sun/security/jgss/ExtendedGSSCredential
+header extends java/lang/Object implements org/ietf/jgss/GSSCredential flags 601
+
+class name com/sun/security/jgss/GSSUtil
+header extends java/lang/Object flags 21
+
+class name com/sun/security/jgss/InquireSecContextPermission
+header extends java/security/BasicPermission flags 31
+
+class name com/sun/security/jgss/InquireType
+header extends java/lang/Enum flags 4031 signature Ljava/lang/Enum<Lcom/sun/security/jgss/InquireType;>;
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.unsupported-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,54 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.unsupported
+header exports com/sun/nio/file,sun/misc,sun/reflect requires name\u0020;java.base\u0020;flags\u0020;8000 target linux-amd64 flags 8000
+
+class name com/sun/nio/file/ExtendedCopyOption
+header extends java/lang/Enum implements java/nio/file/CopyOption flags 4031 signature Ljava/lang/Enum<Lcom/sun/nio/file/ExtendedCopyOption;>;Ljava/nio/file/CopyOption; classAnnotations @Lsun/Proprietary+Annotation;
+
+class name com/sun/nio/file/ExtendedOpenOption
+header extends java/lang/Enum implements java/nio/file/OpenOption flags 4031 signature Ljava/lang/Enum<Lcom/sun/nio/file/ExtendedOpenOption;>;Ljava/nio/file/OpenOption; classAnnotations @Lsun/Proprietary+Annotation;
+
+class name com/sun/nio/file/ExtendedWatchEventModifier
+header extends java/lang/Enum implements java/nio/file/WatchEvent$Modifier flags 4031 signature Ljava/lang/Enum<Lcom/sun/nio/file/ExtendedWatchEventModifier;>;Ljava/nio/file/WatchEvent$Modifier; classAnnotations @Lsun/Proprietary+Annotation;
+innerclass innerClass java/nio/file/WatchEvent$Modifier outerClass java/nio/file/WatchEvent innerClassName Modifier flags 609
+
+class name com/sun/nio/file/SensitivityWatchEventModifier
+header extends java/lang/Enum implements java/nio/file/WatchEvent$Modifier flags 4031 signature Ljava/lang/Enum<Lcom/sun/nio/file/SensitivityWatchEventModifier;>;Ljava/nio/file/WatchEvent$Modifier; classAnnotations @Lsun/Proprietary+Annotation;
+innerclass innerClass java/nio/file/WatchEvent$Modifier outerClass java/nio/file/WatchEvent innerClassName Modifier flags 609
+
+class name sun/misc/SignalHandler
+header extends java/lang/Object flags 601 classAnnotations @Lsun/Proprietary+Annotation;
+
+class name sun/misc/Unsafe
+header extends java/lang/Object flags 31 classAnnotations @Lsun/Proprietary+Annotation;
+-method name defineClass descriptor (Ljava/lang/String;[BIILjava/lang/ClassLoader;Ljava/security/ProtectionDomain;)Ljava/lang/Class;
+
+-class name sun/reflect/Reflection
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.xml.dom-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,298 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.xml.dom
+header exports org/w3c/dom/css,org/w3c/dom/html,org/w3c/dom/stylesheets,org/w3c/dom/xpath requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;java.xml\u0020;flags\u0020;20 target linux-amd64 flags 8000
+
+class name org/w3c/dom/css/CSS2Properties
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/css/CSSCharsetRule
+header extends java/lang/Object implements org/w3c/dom/css/CSSRule flags 601
+
+class name org/w3c/dom/css/CSSFontFaceRule
+header extends java/lang/Object implements org/w3c/dom/css/CSSRule flags 601
+
+class name org/w3c/dom/css/CSSImportRule
+header extends java/lang/Object implements org/w3c/dom/css/CSSRule flags 601
+
+class name org/w3c/dom/css/CSSMediaRule
+header extends java/lang/Object implements org/w3c/dom/css/CSSRule flags 601
+
+class name org/w3c/dom/css/CSSPageRule
+header extends java/lang/Object implements org/w3c/dom/css/CSSRule flags 601
+
+class name org/w3c/dom/css/CSSPrimitiveValue
+header extends java/lang/Object implements org/w3c/dom/css/CSSValue flags 601
+
+class name org/w3c/dom/css/CSSRule
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/css/CSSRuleList
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/css/CSSStyleDeclaration
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/css/CSSStyleRule
+header extends java/lang/Object implements org/w3c/dom/css/CSSRule flags 601
+
+class name org/w3c/dom/css/CSSStyleSheet
+header extends java/lang/Object implements org/w3c/dom/stylesheets/StyleSheet flags 601
+
+class name org/w3c/dom/css/CSSUnknownRule
+header extends java/lang/Object implements org/w3c/dom/css/CSSRule flags 601
+
+class name org/w3c/dom/css/CSSValue
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/css/CSSValueList
+header extends java/lang/Object implements org/w3c/dom/css/CSSValue flags 601
+
+class name org/w3c/dom/css/Counter
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/css/DOMImplementationCSS
+header extends java/lang/Object implements org/w3c/dom/DOMImplementation flags 601
+
+class name org/w3c/dom/css/DocumentCSS
+header extends java/lang/Object implements org/w3c/dom/stylesheets/DocumentStyle flags 601
+
+class name org/w3c/dom/css/ElementCSSInlineStyle
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/css/RGBColor
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/css/Rect
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/css/ViewCSS
+header extends java/lang/Object implements org/w3c/dom/views/AbstractView flags 601
+
+class name org/w3c/dom/html/HTMLAnchorElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLAppletElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLAreaElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLBRElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLBaseElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLBaseFontElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLBodyElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLButtonElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLCollection
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/html/HTMLDListElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLDOMImplementation
+header extends java/lang/Object implements org/w3c/dom/DOMImplementation flags 601
+
+class name org/w3c/dom/html/HTMLDirectoryElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLDivElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLDocument
+header extends java/lang/Object implements org/w3c/dom/Document flags 601
+
+class name org/w3c/dom/html/HTMLElement
+header extends java/lang/Object implements org/w3c/dom/Element flags 601
+
+class name org/w3c/dom/html/HTMLFieldSetElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLFontElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLFormElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLFrameElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLFrameSetElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLHRElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLHeadElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLHeadingElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLHtmlElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLIFrameElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLImageElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLInputElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLIsIndexElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLLIElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLLabelElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLLegendElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLLinkElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLMapElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLMenuElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLMetaElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLModElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLOListElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLObjectElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLOptGroupElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLOptionElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLParagraphElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLParamElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLPreElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLQuoteElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLScriptElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLSelectElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLStyleElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLTableCaptionElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLTableCellElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLTableColElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLTableElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLTableRowElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLTableSectionElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLTextAreaElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLTitleElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/html/HTMLUListElement
+header extends java/lang/Object implements org/w3c/dom/html/HTMLElement flags 601
+
+class name org/w3c/dom/stylesheets/DocumentStyle
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/stylesheets/LinkStyle
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/stylesheets/MediaList
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/stylesheets/StyleSheet
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/stylesheets/StyleSheetList
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/xpath/XPathEvaluator
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/xpath/XPathException
+header extends java/lang/RuntimeException flags 21
+
+class name org/w3c/dom/xpath/XPathExpression
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/xpath/XPathNSResolver
+header extends java/lang/Object flags 601
+
+class name org/w3c/dom/xpath/XPathNamespace
+header extends java/lang/Object implements org/w3c/dom/Node flags 601
+
+class name org/w3c/dom/xpath/XPathResult
+header extends java/lang/Object flags 601
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/data/symbols/jdk.zipfs-B.sym.txt Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,31 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# ##########################################################
+# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
+# ##########################################################
+#
+module name jdk.zipfs
+header requires name\u0020;java.base\u0020;flags\u0020;8000 provides interface\u0020;java/nio/file/spi/FileSystemProvider\u0020;impls\u0020;jdk/nio/zipfs/ZipFileSystemProvider target linux-amd64 flags 8000
+
--- a/make/data/symbols/symbols Sat Sep 22 20:31:45 2018 -0700
+++ b/make/data/symbols/symbols Mon Sep 24 10:59:26 2018 -0700
@@ -29,8 +29,9 @@
#command used to generate this file:
#build.tools.symbolgenerator.CreateSymbols build-description-incremental symbols include.list
#
-generate platforms 7:8:9:A
+generate platforms 7:8:9:A:B
platform version 8 files java.activation-8.sym.txt:java.base-8.sym.txt:java.compiler-8.sym.txt:java.corba-8.sym.txt:java.datatransfer-8.sym.txt:java.desktop-8.sym.txt:java.instrument-8.sym.txt:java.logging-8.sym.txt:java.management-8.sym.txt:java.management.rmi-8.sym.txt:java.naming-8.sym.txt:java.prefs-8.sym.txt:java.rmi-8.sym.txt:java.scripting-8.sym.txt:java.security.jgss-8.sym.txt:java.security.sasl-8.sym.txt:java.sql-8.sym.txt:java.sql.rowset-8.sym.txt:java.transaction-8.sym.txt:java.xml-8.sym.txt:java.xml.bind-8.sym.txt:java.xml.crypto-8.sym.txt:java.xml.ws-8.sym.txt:java.xml.ws.annotation-8.sym.txt:jdk.httpserver-8.sym.txt:jdk.management-8.sym.txt:jdk.scripting.nashorn-8.sym.txt:jdk.sctp-8.sym.txt:jdk.security.auth-8.sym.txt:jdk.security.jgss-8.sym.txt
platform version 7 base 8 files java.base-7.sym.txt:java.compiler-7.sym.txt:java.datatransfer-7.sym.txt:java.desktop-7.sym.txt:java.logging-7.sym.txt:java.management-7.sym.txt:java.naming-7.sym.txt:java.prefs-7.sym.txt:java.rmi-7.sym.txt:java.scripting-7.sym.txt:java.security.jgss-7.sym.txt:java.security.sasl-7.sym.txt:java.sql-7.sym.txt:java.sql.rowset-7.sym.txt:java.xml-7.sym.txt:java.xml.bind-7.sym.txt:java.xml.ws.annotation-7.sym.txt:jdk.httpserver-7.sym.txt:jdk.management-7.sym.txt:jdk.scripting.nashorn-7.sym.txt:jdk.sctp-7.sym.txt:jdk.security.auth-7.sym.txt:jdk.security.jgss-7.sym.txt
platform version 9 base 8 files java.activation-9.sym.txt:java.base-9.sym.txt:java.compiler-9.sym.txt:java.corba-9.sym.txt:java.datatransfer-9.sym.txt:java.desktop-9.sym.txt:java.instrument-9.sym.txt:java.logging-9.sym.txt:java.management-9.sym.txt:java.management.rmi-9.sym.txt:java.naming-9.sym.txt:java.prefs-9.sym.txt:java.rmi-9.sym.txt:java.scripting-9.sym.txt:java.se-9.sym.txt:java.se.ee-9.sym.txt:java.security.jgss-9.sym.txt:java.security.sasl-9.sym.txt:java.smartcardio-9.sym.txt:java.sql-9.sym.txt:java.sql.rowset-9.sym.txt:java.transaction-9.sym.txt:java.xml-9.sym.txt:java.xml.bind-9.sym.txt:java.xml.crypto-9.sym.txt:java.xml.ws-9.sym.txt:java.xml.ws.annotation-9.sym.txt:jdk.accessibility-9.sym.txt:jdk.attach-9.sym.txt:jdk.charsets-9.sym.txt:jdk.compiler-9.sym.txt:jdk.crypto.cryptoki-9.sym.txt:jdk.crypto.ec-9.sym.txt:jdk.dynalink-9.sym.txt:jdk.editpad-9.sym.txt:jdk.hotspot.agent-9.sym.txt:jdk.httpserver-9.sym.txt:jdk.incubator.httpclient-9.sym.txt:jdk.jartool-9.sym.txt:jdk.javadoc-9.sym.txt:jdk.jcmd-9.sym.txt:jdk.jconsole-9.sym.txt:jdk.jdeps-9.sym.txt:jdk.jdi-9.sym.txt:jdk.jdwp.agent-9.sym.txt:jdk.jlink-9.sym.txt:jdk.jshell-9.sym.txt:jdk.jsobject-9.sym.txt:jdk.jstatd-9.sym.txt:jdk.localedata-9.sym.txt:jdk.management-9.sym.txt:jdk.management.agent-9.sym.txt:jdk.naming.dns-9.sym.txt:jdk.naming.rmi-9.sym.txt:jdk.net-9.sym.txt:jdk.pack-9.sym.txt:jdk.policytool-9.sym.txt:jdk.rmic-9.sym.txt:jdk.scripting.nashorn-9.sym.txt:jdk.sctp-9.sym.txt:jdk.security.auth-9.sym.txt:jdk.security.jgss-9.sym.txt:jdk.unsupported-9.sym.txt:jdk.xml.dom-9.sym.txt:jdk.zipfs-9.sym.txt
platform version A base 9 files java.activation-A.sym.txt:java.base-A.sym.txt:java.compiler-A.sym.txt:java.corba-A.sym.txt:java.datatransfer-A.sym.txt:java.desktop-A.sym.txt:java.instrument-A.sym.txt:java.logging-A.sym.txt:java.management-A.sym.txt:java.management.rmi-A.sym.txt:java.naming-A.sym.txt:java.prefs-A.sym.txt:java.rmi-A.sym.txt:java.scripting-A.sym.txt:java.se-A.sym.txt:java.se.ee-A.sym.txt:java.security.jgss-A.sym.txt:java.security.sasl-A.sym.txt:java.smartcardio-A.sym.txt:java.sql-A.sym.txt:java.sql.rowset-A.sym.txt:java.transaction-A.sym.txt:java.xml-A.sym.txt:java.xml.bind-A.sym.txt:java.xml.crypto-A.sym.txt:java.xml.ws-A.sym.txt:java.xml.ws.annotation-A.sym.txt:jdk.accessibility-A.sym.txt:jdk.attach-A.sym.txt:jdk.charsets-A.sym.txt:jdk.compiler-A.sym.txt:jdk.crypto.cryptoki-A.sym.txt:jdk.crypto.ec-A.sym.txt:jdk.dynalink-A.sym.txt:jdk.editpad-A.sym.txt:jdk.hotspot.agent-A.sym.txt:jdk.httpserver-A.sym.txt:jdk.incubator.httpclient-A.sym.txt:jdk.jartool-A.sym.txt:jdk.javadoc-A.sym.txt:jdk.jcmd-A.sym.txt:jdk.jconsole-A.sym.txt:jdk.jdeps-A.sym.txt:jdk.jdi-A.sym.txt:jdk.jdwp.agent-A.sym.txt:jdk.jlink-A.sym.txt:jdk.jshell-A.sym.txt:jdk.jsobject-A.sym.txt:jdk.jstatd-A.sym.txt:jdk.localedata-A.sym.txt:jdk.management-A.sym.txt:jdk.management.agent-A.sym.txt:jdk.naming.dns-A.sym.txt:jdk.naming.rmi-A.sym.txt:jdk.net-A.sym.txt:jdk.pack-A.sym.txt:jdk.policytool-A.sym.txt:jdk.rmic-A.sym.txt:jdk.scripting.nashorn-A.sym.txt:jdk.sctp-A.sym.txt:jdk.security.auth-A.sym.txt:jdk.security.jgss-A.sym.txt:jdk.unsupported-A.sym.txt:jdk.xml.dom-A.sym.txt:jdk.zipfs-A.sym.txt
+platform version B base A files java.activation-B.sym.txt:java.base-B.sym.txt:java.compiler-B.sym.txt:java.corba-B.sym.txt:java.datatransfer-B.sym.txt:java.desktop-B.sym.txt:java.instrument-B.sym.txt:java.logging-B.sym.txt:java.management-B.sym.txt:java.management.rmi-B.sym.txt:java.naming-B.sym.txt:java.net.http-B.sym.txt:java.prefs-B.sym.txt:java.rmi-B.sym.txt:java.scripting-B.sym.txt:java.se-B.sym.txt:java.se.ee-B.sym.txt:java.security.jgss-B.sym.txt:java.security.sasl-B.sym.txt:java.smartcardio-B.sym.txt:java.sql-B.sym.txt:java.sql.rowset-B.sym.txt:java.transaction-B.sym.txt:java.transaction.xa-B.sym.txt:java.xml-B.sym.txt:java.xml.bind-B.sym.txt:java.xml.crypto-B.sym.txt:java.xml.ws-B.sym.txt:java.xml.ws.annotation-B.sym.txt:jdk.accessibility-B.sym.txt:jdk.attach-B.sym.txt:jdk.charsets-B.sym.txt:jdk.compiler-B.sym.txt:jdk.crypto.cryptoki-B.sym.txt:jdk.crypto.ec-B.sym.txt:jdk.dynalink-B.sym.txt:jdk.editpad-B.sym.txt:jdk.hotspot.agent-B.sym.txt:jdk.httpserver-B.sym.txt:jdk.incubator.httpclient-B.sym.txt:jdk.jartool-B.sym.txt:jdk.javadoc-B.sym.txt:jdk.jcmd-B.sym.txt:jdk.jconsole-B.sym.txt:jdk.jdeps-B.sym.txt:jdk.jdi-B.sym.txt:jdk.jdwp.agent-B.sym.txt:jdk.jfr-B.sym.txt:jdk.jlink-B.sym.txt:jdk.jshell-B.sym.txt:jdk.jsobject-B.sym.txt:jdk.jstatd-B.sym.txt:jdk.localedata-B.sym.txt:jdk.management-B.sym.txt:jdk.management.agent-B.sym.txt:jdk.management.jfr-B.sym.txt:jdk.naming.dns-B.sym.txt:jdk.naming.rmi-B.sym.txt:jdk.net-B.sym.txt:jdk.pack-B.sym.txt:jdk.rmic-B.sym.txt:jdk.scripting.nashorn-B.sym.txt:jdk.sctp-B.sym.txt:jdk.security.auth-B.sym.txt:jdk.security.jgss-B.sym.txt:jdk.unsupported-B.sym.txt:jdk.xml.dom-B.sym.txt:jdk.zipfs-B.sym.txt
--- a/make/gendata/Gendata-jdk.compiler.gmk Sat Sep 22 20:31:45 2018 -0700
+++ b/make/gendata/Gendata-jdk.compiler.gmk Mon Sep 24 10:59:26 2018 -0700
@@ -42,7 +42,7 @@
# Get the complete module source path:
CT_MODULESOURCEPATH := $(call GetModuleSrcPath)
-CT_DATA_DESCRIPTION ?= $(TOPDIR)/make/data/symbols/symbols
+CT_DATA_DESCRIPTION += $(TOPDIR)/make/data/symbols/symbols
COMPILECREATESYMBOLS_ADD_EXPORTS := \
--add-exports jdk.compiler.interim/com.sun.tools.javac.api=ALL-UNNAMED \
--- a/make/hotspot/gensrc/GensrcDtrace.gmk Sat Sep 22 20:31:45 2018 -0700
+++ b/make/hotspot/gensrc/GensrcDtrace.gmk Mon Sep 24 10:59:26 2018 -0700
@@ -74,6 +74,8 @@
TOOLCHAIN := $(TOOLCHAIN_BUILD), \
LDFLAGS := -m64, \
CFLAGS := -m64 $(JVM_CFLAGS), \
+ DISABLED_WARNINGS_solstudio := hidef w_novirtualdescr unknownpragma \
+ doubunder nokeyworddefine wunreachable, \
EXTRA_DEPS := $(JVMTI_H), \
OBJECT_DIR := $(JVM_VARIANT_OUTPUTDIR)/tools/dtrace-gen-offsets/objs, \
OUTPUT_DIR := $(JVM_VARIANT_OUTPUTDIR)/tools/dtrace-gen-offsets, \
--- a/make/hotspot/lib/CompileGtest.gmk Sat Sep 22 20:31:45 2018 -0700
+++ b/make/hotspot/lib/CompileGtest.gmk Mon Sep 24 10:59:26 2018 -0700
@@ -73,11 +73,14 @@
CFLAGS_windows := -EHsc, \
CFLAGS_solaris := -DGTEST_HAS_EXCEPTIONS=0 -library=stlport4, \
CFLAGS_macosx := -DGTEST_OS_MAC=1, \
- DISABLED_WARNINGS_gcc := undef, \
- DISABLED_WARNINGS_clang := undef switch format-nonliteral \
- tautological-undefined-compare $(BUILD_LIBJVM_DISABLED_WARNINGS_clang), \
- DISABLED_WARNINGS_solstudio := identexpected, \
- DISABLED_WARNINGS_CXX_microsoft := 4996, \
+ DISABLED_WARNINGS_gcc := $(DISABLED_WARNINGS_gcc) \
+ undef, \
+ DISABLED_WARNINGS_clang := $(DISABLED_WARNINGS_clang) \
+ undef switch format-nonliteral tautological-undefined-compare, \
+ DISABLED_WARNINGS_solstudio := $(DISABLED_WARNINGS_solstudio) \
+ identexpected, \
+ DISABLED_WARNINGS_microsoft := $(DISABLED_WARNINGS_microsoft) \
+ 4996, \
LDFLAGS := $(JVM_LDFLAGS), \
LDFLAGS_solaris := -library=stlport4 $(call SET_SHARED_LIBRARY_ORIGIN), \
LIBS := $(JVM_LIBS), \
--- a/make/hotspot/lib/CompileJvm.gmk Sat Sep 22 20:31:45 2018 -0700
+++ b/make/hotspot/lib/CompileJvm.gmk Mon Sep 24 10:59:26 2018 -0700
@@ -80,6 +80,35 @@
#
################################################################################
+# Disabled warnings
+
+DISABLED_WARNINGS_gcc := extra parentheses comment unknown-pragmas address \
+ delete-non-virtual-dtor char-subscripts array-bounds int-in-bool-context \
+ ignored-qualifiers missing-field-initializers implicit-fallthrough \
+ empty-body strict-overflow sequence-point maybe-uninitialized \
+ misleading-indentation
+
+ifeq ($(call check-jvm-feature, zero), true)
+ DISABLED_WARNINGS_gcc += return-type switch
+endif
+
+DISABLED_WARNINGS_clang := tautological-compare deprecated-declarations \
+ undefined-var-template sometimes-uninitialized unknown-pragmas \
+ delete-non-virtual-dtor missing-braces char-subscripts \
+ ignored-qualifiers missing-field-initializers mismatched-tags
+
+DISABLED_WARNINGS_solstudio := labelnotused hidef w_novirtualdescr inlafteruse \
+ unknownpragma doubunder w_enumnotused w_toomanyenumnotused \
+ wvarhidenmem wunreachable wnoretvalue notemsource
+
+DISABLED_WARNINGS_xlc := 1540-0216 1540-0198 1540-1090 1540-1639 1540-1088 \
+ 1500-010
+
+DISABLED_WARNINGS_microsoft :=
+
+
+
+################################################################################
# Platform specific setup
# ARM source selection
@@ -115,7 +144,7 @@
endif
# Exclude warnings in devstudio 12.6
ifeq ($(CC_VERSION_NUMBER), 5.15)
- DISABLED_WARNINGS_solstudio := SEC_ARR_OUTSIDE_BOUND_READ \
+ DISABLED_WARNINGS_solstudio += SEC_ARR_OUTSIDE_BOUND_READ \
SEC_ARR_OUTSIDE_BOUND_WRITE
endif
endif
@@ -158,10 +187,11 @@
CFLAGS := $(JVM_CFLAGS), \
vm_version.cpp_CXXFLAGS := $(CFLAGS_VM_VERSION), \
arguments.cpp_CXXFLAGS := $(CFLAGS_VM_VERSION), \
- DISABLED_WARNINGS_clang := tautological-compare, \
+ DISABLED_WARNINGS_gcc := $(DISABLED_WARNINGS_gcc), \
+ DISABLED_WARNINGS_clang := $(DISABLED_WARNINGS_clang), \
DISABLED_WARNINGS_solstudio := $(DISABLED_WARNINGS_solstudio), \
- DISABLED_WARNINGS_xlc := 1540-0216 1540-0198 1540-1090 1540-1639 \
- 1540-1088 1500-010, \
+ DISABLED_WARNINGS_xlc := $(DISABLED_WARNINGS_xlc), \
+ DISABLED_WARNINGS_microsoft := $(DISABLED_WARNINGS_microsoft), \
ASFLAGS := $(JVM_ASFLAGS), \
LDFLAGS := $(JVM_LDFLAGS), \
LIBS := $(JVM_LIBS), \
--- a/make/hotspot/lib/JvmOverrideFiles.gmk Sat Sep 22 20:31:45 2018 -0700
+++ b/make/hotspot/lib/JvmOverrideFiles.gmk Mon Sep 24 10:59:26 2018 -0700
@@ -38,20 +38,26 @@
BUILD_LIBJVM_interp_masm_x86.cpp_CXXFLAGS := -Wno-uninitialized
endif
+LIBJVM_FDLIBM_COPY_OPT_FLAG := $(CXX_O_FLAG_NONE)
+# If the FDLIBM_CFLAGS variable is non-empty we know
+# that the fdlibm-fork in hotspot can get optimized
+# by using -ffp-contract=off on GCC/Clang platforms.
+ifneq ($(FDLIBM_CFLAGS), )
+ LIBJVM_FDLIBM_COPY_OPT_FLAG := $(CXX_O_FLAG_NORM)
+endif
+
ifeq ($(OPENJDK_TARGET_OS), linux)
BUILD_LIBJVM_ostream.cpp_CXXFLAGS := -D_FILE_OFFSET_BITS=64
BUILD_LIBJVM_logFileOutput.cpp_CXXFLAGS := -D_FILE_OFFSET_BITS=64
- ifeq ($(OPENJDK_TARGET_CPU_ARCH), x86)
- BUILD_LIBJVM_sharedRuntimeTrig.cpp_CXXFLAGS := -DNO_PCH $(CXX_O_FLAG_NONE)
- BUILD_LIBJVM_sharedRuntimeTrans.cpp_CXXFLAGS := -DNO_PCH $(CXX_O_FLAG_NONE)
+ BUILD_LIBJVM_sharedRuntimeTrig.cpp_CXXFLAGS := -DNO_PCH $(FDLIBM_CFLAGS) $(LIBJVM_FDLIBM_COPY_OPT_FLAG)
+ BUILD_LIBJVM_sharedRuntimeTrans.cpp_CXXFLAGS := -DNO_PCH $(FDLIBM_CFLAGS) $(LIBJVM_FDLIBM_COPY_OPT_FLAG)
- ifeq ($(TOOLCHAIN_TYPE), clang)
- JVM_PRECOMPILED_HEADER_EXCLUDE := \
- sharedRuntimeTrig.cpp \
- sharedRuntimeTrans.cpp \
- #
- endif
+ ifeq ($(TOOLCHAIN_TYPE), clang)
+ JVM_PRECOMPILED_HEADER_EXCLUDE := \
+ sharedRuntimeTrig.cpp \
+ sharedRuntimeTrans.cpp \
+ #
endif
ifeq ($(OPENJDK_TARGET_CPU), x86)
@@ -120,8 +126,8 @@
else ifeq ($(OPENJDK_TARGET_OS), macosx)
# The copied fdlibm routines in these files must not be optimized
- BUILD_LIBJVM_sharedRuntimeTrans.cpp_CXXFLAGS := $(CXX_O_FLAG_NONE)
- BUILD_LIBJVM_sharedRuntimeTrig.cpp_CXXFLAGS := $(CXX_O_FLAG_NONE)
+ BUILD_LIBJVM_sharedRuntimeTrig.cpp_CXXFLAGS := $(FDLIBM_CFLAGS) $(LIBJVM_FDLIBM_COPY_OPT_FLAG)
+ BUILD_LIBJVM_sharedRuntimeTrans.cpp_CXXFLAGS := $(FDLIBM_CFLAGS) $(LIBJVM_FDLIBM_COPY_OPT_FLAG)
ifeq ($(TOOLCHAIN_TYPE), clang)
# NOTE: The old build tested clang version to make sure this workaround
# for the clang bug was still needed.
--- a/make/jdk/src/classes/build/tools/tzdb/TzdbZoneRulesCompiler.java Sat Sep 22 20:31:45 2018 -0700
+++ b/make/jdk/src/classes/build/tools/tzdb/TzdbZoneRulesCompiler.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -65,8 +65,6 @@
import java.text.ParsePosition;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.HashMap;
-import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.NoSuchElementException;
@@ -76,6 +74,7 @@
import java.util.regex.Matcher;
import java.util.regex.MatchResult;
import java.util.regex.Pattern;
+import java.util.stream.Collectors;
/**
* A compiler that reads a set of TZDB time-zone files and builds a single
@@ -256,8 +255,10 @@
for (String regionId : regionArray) {
out.writeUTF(regionId);
}
- // rules -- hashset -> remove the dup
- List<ZoneRules> rulesList = new ArrayList<>(new HashSet<>(builtZones.values()));
+ // rules -- remove the dup
+ List<ZoneRules> rulesList = builtZones.values().stream()
+ .distinct()
+ .collect(Collectors.toList());
out.writeShort(rulesList.size());
ByteArrayOutputStream baos = new ByteArrayOutputStream(1024);
for (ZoneRules rules : rulesList) {
--- a/make/jdk/src/classes/build/tools/tzdb/TzdbZoneRulesProvider.java Sat Sep 22 20:31:45 2018 -0700
+++ b/make/jdk/src/classes/build/tools/tzdb/TzdbZoneRulesProvider.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -33,8 +33,6 @@
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
@@ -43,7 +41,7 @@
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;
-import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentSkipListMap;
import java.time.*;
import java.time.Year;
import java.time.chrono.IsoChronology;
@@ -131,18 +129,18 @@
/**
* Zone region to rules mapping
*/
- private final Map<String, Object> zones = new ConcurrentHashMap<>();
+ private final Map<String, Object> zones = new ConcurrentSkipListMap<>();
/**
* compatibility list
*/
- private static HashSet<String> excludedZones;
+ private static Set<String> excludedZones;
static {
// (1) exclude EST, HST and MST. They are supported
// via the short-id mapping
// (2) remove UTC and GMT
// (3) remove ROC, which is not supported in j.u.tz
- excludedZones = new HashSet<>(10);
+ excludedZones = new TreeSet<>();
excludedZones.add("EST");
excludedZones.add("HST");
excludedZones.add("MST");
@@ -151,8 +149,8 @@
excludedZones.add("ROC");
}
- private Map<String, String> links = new HashMap<>(150);
- private Map<String, List<RuleLine>> rules = new HashMap<>(500);
+ private Map<String, String> links = new TreeMap<>();
+ private Map<String, List<RuleLine>> rules = new TreeMap<>();
private void load(List<Path> files) throws IOException {
--- a/make/langtools/src/classes/build/tools/symbolgenerator/CreateSymbols.java Sat Sep 22 20:31:45 2018 -0700
+++ b/make/langtools/src/classes/build/tools/symbolgenerator/CreateSymbols.java Mon Sep 24 10:59:26 2018 -0700
@@ -120,6 +120,8 @@
import com.sun.tools.classfile.Module_attribute.OpensEntry;
import com.sun.tools.classfile.Module_attribute.ProvidesEntry;
import com.sun.tools.classfile.Module_attribute.RequiresEntry;
+import com.sun.tools.classfile.NestHost_attribute;
+import com.sun.tools.classfile.NestMembers_attribute;
import com.sun.tools.classfile.RuntimeAnnotations_attribute;
import com.sun.tools.classfile.RuntimeInvisibleAnnotations_attribute;
import com.sun.tools.classfile.RuntimeInvisibleParameterAnnotations_attribute;
@@ -134,7 +136,20 @@
import com.sun.tools.javac.util.Pair;
/**
- * A tool for processing the .sym.txt files. It allows to:
+ * A tool for processing the .sym.txt files.
+ *
+ * To add historical data for JDK N, N >= 11, do the following:
+ * * cd <open-jdk-checkout>/make/data/symbols
+ * * <jdk-N>/bin/java --add-exports jdk.jdeps/com.sun.tools.classfile=ALL-UNNAMED \
+ * --add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED \
+ * --add-exports jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED \
+ * --add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED \
+ * --add-modules jdk.jdeps \
+ * ../../../make/langtools/src/classes/build/tools/symbolgenerator/CreateSymbols.java \
+ * build-description-incremental symbols include.list
+ * * sanity-check the new and updates files in make/data/symbols and commit them
+ *
+ * The tools allows to:
* * convert the .sym.txt into class/sig files for ct.sym
* * in cooperation with the adjacent history Probe, construct .sym.txt files for previous platforms
* * enhance existing .sym.txt files with a a new set .sym.txt for the current platform
@@ -186,9 +201,6 @@
*
* Note: the versions are expected to be a single character.
*
- * To enhance existing historical data with data for JDK N, run:
- * <jdk-N>/bin/java build.tools.symbolgenerator.CreateSymbols build-description-incremental make/data/symbols/symbols make/data/symbols/include.list
- *
*/
public class CreateSymbols {
@@ -197,11 +209,15 @@
* {@code ctDescriptionFile}, using the file as a recipe to create the sigfiles.
*/
@SuppressWarnings("unchecked")
- public void createSymbols(String ctDescriptionFile, String ctSymLocation, CtSymKind ctSymKind) throws IOException {
- LoadDescriptions data = load(Paths.get(ctDescriptionFile), null);
+ public void createSymbols(String ctDescriptionFileExtra, String ctDescriptionFile, String ctSymLocation) throws IOException {
+ LoadDescriptions data = load(ctDescriptionFileExtra != null ? Paths.get(ctDescriptionFileExtra)
+ : null,
+ Paths.get(ctDescriptionFile), null);
splitHeaders(data.classes);
+ Map<String, Map<Character, String>> package2Version2Module = new HashMap<>();
+
for (ModuleDescription md : data.modules.values()) {
for (ModuleHeaderDescription mhd : md.header) {
List<String> versionsList =
@@ -210,26 +226,41 @@
md,
mhd,
versionsList);
+ mhd.exports.stream().forEach(pkg -> {
+ for (char v : mhd.versions.toCharArray()) {
+ package2Version2Module.computeIfAbsent(pkg, dummy -> new HashMap<>()).put(v, md.name);
+ }
+ });
}
}
for (ClassDescription classDescription : data.classes) {
+ Map<Character, String> version2Module = package2Version2Module.getOrDefault(classDescription.packge().replace('.', '/'), Collections.emptyMap());
for (ClassHeaderDescription header : classDescription.header) {
- switch (ctSymKind) {
- case JOINED_VERSIONS:
- Set<String> jointVersions = new HashSet<>();
- jointVersions.add(header.versions);
- limitJointVersion(jointVersions, classDescription.fields);
- limitJointVersion(jointVersions, classDescription.methods);
- writeClassesForVersions(ctSymLocation, classDescription, header, jointVersions);
- break;
- case SEPARATE:
- Set<String> versions = new HashSet<>();
- for (char v : header.versions.toCharArray()) {
- versions.add("" + v);
+ Set<String> jointVersions = new HashSet<>();
+ jointVersions.add(header.versions);
+ limitJointVersion(jointVersions, classDescription.fields);
+ limitJointVersion(jointVersions, classDescription.methods);
+ Map<String, StringBuilder> module2Versions = new HashMap<>();
+ for (char v : header.versions.toCharArray()) {
+ String module = version2Module.get(v);
+ if (module == null) {
+ if (v >= '9') {
+ throw new AssertionError("No module for " + classDescription.name +
+ " and version " + v);
}
- writeClassesForVersions(ctSymLocation, classDescription, header, versions);
- break;
+ module = version2Module.get('9');
+ if (module == null) {
+ module = "java.base";
+ }
+ }
+ module2Versions.computeIfAbsent(module, dummy -> new StringBuilder()).append(v);
+ }
+ for (Entry<String, StringBuilder> e : module2Versions.entrySet()) {
+ Set<String> currentVersions = new HashSet<>(jointVersions);
+ limitJointVersion(currentVersions, e.getValue().toString());
+ currentVersions = currentVersions.stream().filter(vers -> !disjoint(vers, e.getValue().toString())).collect(Collectors.toSet());
+ writeClassesForVersions(ctSymLocation, classDescription, header, e.getKey(), currentVersions);
}
}
}
@@ -237,11 +268,34 @@
public static String EXTENSION = ".sig";
- LoadDescriptions load(Path ctDescription, String deletePlatform) throws IOException {
- List<PlatformInput> platforms = new ArrayList<>();
+ LoadDescriptions load(Path ctDescriptionWithExtraContent, Path ctDescriptionOpen, String deletePlatform) throws IOException {
+ Map<String, PlatformInput> platforms = new LinkedHashMap<>();
+
+ if (ctDescriptionWithExtraContent != null && Files.isRegularFile(ctDescriptionWithExtraContent)) {
+ try (LineBasedReader reader = new LineBasedReader(ctDescriptionWithExtraContent)) {
+ while (reader.hasNext()) {
+ switch (reader.lineKey) {
+ case "generate":
+ //ignore
+ reader.moveNext();
+ break;
+ case "platform":
+ PlatformInput platform = PlatformInput.load(ctDescriptionWithExtraContent,
+ reader);
+ if (!platform.version.equals(deletePlatform))
+ platforms.put(platform.version, platform);
+ reader.moveNext();
+ break;
+ default:
+ throw new IllegalStateException("Unknown key: " + reader.lineKey);
+ }
+ }
+ }
+ }
+
Set<String> generatePlatforms = null;
- try (LineBasedReader reader = new LineBasedReader(ctDescription)) {
+ try (LineBasedReader reader = new LineBasedReader(ctDescriptionOpen)) {
while (reader.hasNext()) {
switch (reader.lineKey) {
case "generate":
@@ -251,9 +305,10 @@
reader.moveNext();
break;
case "platform":
- PlatformInput platform = PlatformInput.load(reader);
- if (!platform.version.equals(deletePlatform))
- platforms.add(platform);
+ PlatformInput platform = PlatformInput.load(ctDescriptionOpen, reader);
+ if (!platform.version.equals(deletePlatform) &&
+ !platforms.containsKey(platform.version))
+ platforms.put(platform.version, platform);
reader.moveNext();
break;
default:
@@ -265,7 +320,7 @@
Map<String, ClassDescription> classes = new LinkedHashMap<>();
Map<String, ModuleDescription> modules = new LinkedHashMap<>();
- for (PlatformInput platform: platforms) {
+ for (PlatformInput platform : platforms.values()) {
for (ClassDescription cd : classes.values()) {
addNewVersion(cd.header, platform.basePlatform, platform.version);
addNewVersion(cd.fields, platform.basePlatform, platform.version);
@@ -275,7 +330,7 @@
addNewVersion(md.header, platform.basePlatform, platform.version);
}
for (String input : platform.files) {
- Path inputFile = ctDescription.getParent().resolve(input);
+ Path inputFile = platform.ctDescription.getParent().resolve(input);
try (LineBasedReader reader = new LineBasedReader(inputFile)) {
while (reader.hasNext()) {
String nameAttr = reader.attributes.get("name");
@@ -376,7 +431,7 @@
moduleList.put(desc.name, desc);
}
- return new LoadDescriptions(result, moduleList, platforms);
+ return new LoadDescriptions(result, moduleList, new ArrayList<>(platforms.values()));
}
static final class LoadDescriptions {
@@ -462,14 +517,17 @@
public final String version;
public final String basePlatform;
public final List<String> files;
- public PlatformInput(String version, String basePlatform, List<String> files) {
+ public final Path ctDescription;
+ public PlatformInput(Path ctDescription, String version, String basePlatform, List<String> files) {
+ this.ctDescription = ctDescription;
this.version = version;
this.basePlatform = basePlatform;
this.files = files;
}
- public static PlatformInput load(LineBasedReader in) throws IOException {
- return new PlatformInput(in.attributes.get("version"),
+ public static PlatformInput load(Path ctDescription, LineBasedReader in) throws IOException {
+ return new PlatformInput(ctDescription,
+ in.attributes.get("version"),
in.attributes.get("base"),
List.of(in.attributes.get("files").split(":")));
}
@@ -550,7 +608,7 @@
newHeader.innerClasses = header.innerClasses;
newHeader.runtimeAnnotations = header.runtimeAnnotations;
newHeader.signature = header.signature;
- newHeader.versions = reduce(versions, header.versions);
+ newHeader.versions = reduce(header.versions, versions);
newHeaders.add(newHeader);
}
@@ -562,26 +620,30 @@
void limitJointVersion(Set<String> jointVersions, List<? extends FeatureDescription> features) {
for (FeatureDescription feature : features) {
- for (String version : jointVersions) {
- if (!containsAll(feature.versions, version) &&
- !disjoint(feature.versions, version)) {
- StringBuilder featurePart = new StringBuilder();
- StringBuilder otherPart = new StringBuilder();
- for (char v : version.toCharArray()) {
- if (feature.versions.indexOf(v) != (-1)) {
- featurePart.append(v);
- } else {
- otherPart.append(v);
- }
+ limitJointVersion(jointVersions, feature.versions);
+ }
+ }
+
+ void limitJointVersion(Set<String> jointVersions, String versions) {
+ for (String version : jointVersions) {
+ if (!containsAll(versions, version) &&
+ !disjoint(versions, version)) {
+ StringBuilder featurePart = new StringBuilder();
+ StringBuilder otherPart = new StringBuilder();
+ for (char v : version.toCharArray()) {
+ if (versions.indexOf(v) != (-1)) {
+ featurePart.append(v);
+ } else {
+ otherPart.append(v);
}
- jointVersions.remove(version);
- if (featurePart.length() == 0 || otherPart.length() == 0) {
- throw new AssertionError();
- }
- jointVersions.add(featurePart.toString());
- jointVersions.add(otherPart.toString());
- break;
}
+ jointVersions.remove(version);
+ if (featurePart.length() == 0 || otherPart.length() == 0) {
+ throw new AssertionError();
+ }
+ jointVersions.add(featurePart.toString());
+ jointVersions.add(otherPart.toString());
+ break;
}
}
}
@@ -605,10 +667,11 @@
void writeClassesForVersions(String ctSymLocation,
ClassDescription classDescription,
ClassHeaderDescription header,
+ String module,
Iterable<String> versions)
throws IOException {
for (String ver : versions) {
- writeClass(ctSymLocation, classDescription, header, ver);
+ writeClass(ctSymLocation, classDescription, header, module, ver);
}
}
@@ -622,11 +685,6 @@
}
}
- public enum CtSymKind {
- JOINED_VERSIONS,
- SEPARATE;
- }
-
//<editor-fold defaultstate="collapsed" desc="Class Writing">
void writeModule(String ctSymLocation,
ModuleDescription moduleDescription,
@@ -656,7 +714,7 @@
attributes);
Path outputClassFile = Paths.get(ctSymLocation,
- version + "-modules",
+ version,
moduleDescription.name,
"module-info" + EXTENSION);
@@ -672,6 +730,7 @@
void writeClass(String ctSymLocation,
ClassDescription classDescription,
ClassHeaderDescription header,
+ String module,
String version) throws IOException {
List<CPInfo> constantPool = new ArrayList<>();
constantPool.add(null);
@@ -724,7 +783,13 @@
methods.toArray(new Method[0]),
attributes);
- Path outputClassFile = Paths.get(ctSymLocation, version, classDescription.name + EXTENSION);
+ Path outputClassFile = Paths.get(ctSymLocation, version);
+
+ if (module != null) {
+ outputClassFile = outputClassFile.resolve(module);
+ }
+
+ outputClassFile = outputClassFile.resolve(classDescription.name + EXTENSION);
Files.createDirectories(outputClassFile.getParent());
@@ -817,6 +882,22 @@
private void addAttributes(ClassHeaderDescription header,
List<CPInfo> constantPool, Map<String, Attribute> attributes) {
addGenericAttributes(header, constantPool, attributes);
+ if (header.nestHost != null) {
+ int attributeString = addString(constantPool, Attribute.NestHost);
+ int nestHost = addClass(constantPool, header.nestHost);
+ attributes.put(Attribute.NestHost,
+ new NestHost_attribute(attributeString, nestHost));
+ }
+ if (header.nestMembers != null && !header.nestMembers.isEmpty()) {
+ int attributeString = addString(constantPool, Attribute.NestMembers);
+ int[] nestMembers = new int[header.nestMembers.size()];
+ int i = 0;
+ for (String intf : header.nestMembers) {
+ nestMembers[i++] = addClass(constantPool, intf);
+ }
+ attributes.put(Attribute.NestMembers,
+ new NestMembers_attribute(attributeString, nestMembers));
+ }
addInnerClassesAttribute(header, constantPool, attributes);
}
@@ -1151,7 +1232,8 @@
List<PlatformInput> platforms =
versions.stream()
- .map(desc -> new PlatformInput(desc.version,
+ .map(desc -> new PlatformInput(null,
+ desc.version,
desc.primaryBaseline,
null))
.collect(Collectors.toList());
@@ -1294,6 +1376,16 @@
ClassHeaderDescription header = clazz.header.get(0);
+ if (header.nestMembers != null) {
+ Iterator<String> nestMemberIt = header.nestMembers.iterator();
+
+ while(nestMemberIt.hasNext()) {
+ String member = nestMemberIt.next();
+ if (!includedClasses.contains(member))
+ nestMemberIt.remove();
+ }
+ }
+
if (header.innerClasses != null) {
Iterator<InnerClassInfo> innerClassIt = header.innerClasses.iterator();
@@ -1355,14 +1447,19 @@
Map<String, String> package2Modules = new HashMap<>();
- for (ModuleDescription md : modules.values()) {
- md.header
- .stream()
- .filter(h -> h.versions.contains("9"))
- .flatMap(h -> h.exports.stream())
- .map(p -> p.replace('/', '.'))
- .forEach(p -> package2Modules.put(p, md.name));
- }
+ versions.stream()
+ .filter(v -> "9".compareTo(v.version) <= 0)
+ .sorted((v1, v2) -> v1.version.compareTo(v2.version))
+ .forEach(v -> {
+ for (ModuleDescription md : modules.values()) {
+ md.header
+ .stream()
+ .filter(h -> h.versions.contains(v.version))
+ .flatMap(h -> h.exports.stream())
+ .map(p -> p.replace('/', '.'))
+ .forEach(p -> package2Modules.putIfAbsent(p, md.name));
+ }
+ });
package2Modules.put("java.awt.dnd.peer", "java.desktop");
package2Modules.put("java.awt.peer", "java.desktop");
@@ -1480,7 +1577,7 @@
Integer.toString(Integer.parseInt(specVersion), Character.MAX_RADIX);
currentVersion = currentVersion.toUpperCase(Locale.ROOT);
Path ctDescriptionPath = Paths.get(ctDescriptionFile).toAbsolutePath();
- LoadDescriptions data = load(ctDescriptionPath, currentVersion);
+ LoadDescriptions data = load(null, ctDescriptionPath, currentVersion);
ClassList classes = data.classes;
Map<String, ModuleDescription> modules = data.modules;
@@ -1504,7 +1601,7 @@
.version;
}
- versions.add(new PlatformInput(currentVersion, baseline, null));
+ versions.add(new PlatformInput(null, currentVersion, baseline, null));
dumpDescriptions(classes, modules, versions, ctDescriptionPath, args);
}
@@ -1882,6 +1979,22 @@
case Attribute.ModulePackages:
case Attribute.ModuleHashes:
break;
+ case Attribute.NestHost: {
+ assert feature instanceof ClassHeaderDescription;
+ NestHost_attribute nestHost = (NestHost_attribute) attr;
+ ClassHeaderDescription chd = (ClassHeaderDescription) feature;
+ chd.nestHost = nestHost.getNestTop(cf.constant_pool).getName();
+ break;
+ }
+ case Attribute.NestMembers: {
+ assert feature instanceof ClassHeaderDescription;
+ NestMembers_attribute nestMembers = (NestMembers_attribute) attr;
+ ClassHeaderDescription chd = (ClassHeaderDescription) feature;
+ chd.nestMembers = Arrays.stream(nestMembers.members_indexes)
+ .mapToObj(i -> getClassName(cf, i))
+ .collect(Collectors.toList());
+ break;
+ }
default:
throw new IllegalStateException("Unhandled attribute: " +
attrName);
@@ -2662,12 +2775,16 @@
static class ClassHeaderDescription extends HeaderDescription {
String extendsAttr;
List<String> implementsAttr;
+ String nestHost;
+ List<String> nestMembers;
@Override
public int hashCode() {
int hash = super.hashCode();
hash = 17 * hash + Objects.hashCode(this.extendsAttr);
hash = 17 * hash + Objects.hashCode(this.implementsAttr);
+ hash = 17 * hash + Objects.hashCode(this.nestHost);
+ hash = 17 * hash + Objects.hashCode(this.nestMembers);
return hash;
}
@@ -2686,6 +2803,12 @@
if (!Objects.equals(this.implementsAttr, other.implementsAttr)) {
return false;
}
+ if (!Objects.equals(this.nestHost, other.nestHost)) {
+ return false;
+ }
+ if (!Objects.equals(this.nestMembers, other.nestMembers)) {
+ return false;
+ }
return true;
}
@@ -2699,6 +2822,10 @@
output.append(" extends " + extendsAttr);
if (implementsAttr != null && !implementsAttr.isEmpty())
output.append(" implements " + serializeList(implementsAttr));
+ if (nestHost != null)
+ output.append(" nestHost " + nestHost);
+ if (nestMembers != null && !nestMembers.isEmpty())
+ output.append(" nestMembers " + serializeList(nestMembers));
writeAttributes(output);
output.append("\n");
writeInnerClasses(output, baselineVersion, version);
@@ -2713,6 +2840,10 @@
String elementsList = reader.attributes.get("implements");
implementsAttr = deserializeList(elementsList);
+ nestHost = reader.attributes.get("nestHost");
+ String nestMembersList = reader.attributes.get("nestMembers");
+ nestMembers = deserializeList(nestMembersList);
+
readAttributes(reader);
reader.moveNext();
readInnerClasses(reader);
@@ -3526,14 +3657,26 @@
break;
}
case "build-ctsym":
- if (args.length != 3) {
+ String ctDescriptionFileExtra;
+ String ctDescriptionFile;
+ String ctSymLocation;
+
+ if (args.length == 3) {
+ ctDescriptionFileExtra = null;
+ ctDescriptionFile = args[1];
+ ctSymLocation = args[2];
+ } else if (args.length == 4) {
+ ctDescriptionFileExtra = args[1];
+ ctDescriptionFile = args[2];
+ ctSymLocation = args[3];
+ } else {
help();
return ;
}
- new CreateSymbols().createSymbols(args[1],
- args[2],
- CtSymKind.JOINED_VERSIONS);
+ new CreateSymbols().createSymbols(ctDescriptionFileExtra,
+ ctDescriptionFile,
+ ctSymLocation);
break;
}
}
--- a/make/launcher/Launcher-java.base.gmk Sat Sep 22 20:31:45 2018 -0700
+++ b/make/launcher/Launcher-java.base.gmk Mon Sep 24 10:59:26 2018 -0700
@@ -38,13 +38,10 @@
$(eval $(call SetupBuildLauncher, java, \
CFLAGS := -DEXPAND_CLASSPATH_WILDCARDS -DENABLE_ARG_FILES, \
LDFLAGS_solaris := -R$(OPENWIN_HOME)/lib$(OPENJDK_TARGET_CPU_ISADIR), \
- LIBS_windows := user32.lib comctl32.lib, \
EXTRA_RC_FLAGS := $(JAVA_RC_FLAGS), \
VERSION_INFO_RESOURCE := $(JAVA_VERSION_INFO_RESOURCE), \
OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/java_objs, \
OPTIMIZATION := HIGH, \
- WINDOWS_STATIC_LINK := true, \
- NO_JAVA_MS := true, \
))
$(SUPPORT_OUTPUTDIR)/modules_cmds/java.base/java$(EXE_SUFFIX): $(BUILD_LAUNCHER_java)
@@ -57,11 +54,8 @@
ifeq ($(OPENJDK_TARGET_OS), windows)
$(eval $(call SetupBuildLauncher, javaw, \
CFLAGS := -DJAVAW -DEXPAND_CLASSPATH_WILDCARDS -DENABLE_ARG_FILES, \
- LIBS_windows := user32.lib comctl32.lib, \
EXTRA_RC_FLAGS := $(JAVA_RC_FLAGS), \
VERSION_INFO_RESOURCE := $(JAVA_VERSION_INFO_RESOURCE), \
- WINDOWS_STATIC_LINK := true, \
- NO_JAVA_MS := true, \
))
endif
--- a/make/launcher/Launcher-jdk.jconsole.gmk Sat Sep 22 20:31:45 2018 -0700
+++ b/make/launcher/Launcher-jdk.jconsole.gmk Mon Sep 24 10:59:26 2018 -0700
@@ -31,5 +31,4 @@
--add-modules ALL-DEFAULT \
-Djconsole.showOutputViewer, \
CFLAGS_windows := -DJAVAW, \
- LIBS_windows := user32.lib, \
))
--- a/make/launcher/Launcher-jdk.pack.gmk Sat Sep 22 20:31:45 2018 -0700
+++ b/make/launcher/Launcher-jdk.pack.gmk Mon Sep 24 10:59:26 2018 -0700
@@ -90,6 +90,7 @@
CFLAGS_linux := -fPIC, \
CFLAGS_solaris := -KPIC, \
CFLAGS_macosx := -fPIC, \
+ DISABLED_WARNINGS_clang := format-nonliteral, \
LDFLAGS := $(UNPACKEXE_ZIPOBJS) \
$(LDFLAGS_JDKEXE) $(LDFLAGS_CXX_JDK) \
$(call SET_SHARED_LIBRARY_ORIGIN), \
--- a/make/launcher/LauncherCommon.gmk Sat Sep 22 20:31:45 2018 -0700
+++ b/make/launcher/LauncherCommon.gmk Mon Sep 24 10:59:26 2018 -0700
@@ -25,21 +25,6 @@
include JdkNativeCompilation.gmk
-ifeq ($(OPENJDK_TARGET_OS), macosx)
- ORIGIN_ARG := $(call SET_EXECUTABLE_ORIGIN)
-else
- ifeq ($(OPENJDK_TARGET_OS), windows)
- endif
- ORIGIN_ARG := $(call SET_EXECUTABLE_ORIGIN,/../lib/jli)
-
- # Applications expect to be able to link against libjawt without invoking
- # System.loadLibrary("jawt") first. This was the behaviour described in the
- # devloper documentation of JAWT and what worked with OpenJDK6.
- ifneq ($(findstring $(OPENJDK_TARGET_OS), linux solaris), )
- ORIGIN_ARG += $(call SET_EXECUTABLE_ORIGIN,/../lib)
- endif
-endif
-
# Tell the compiler not to export any functions unless declared so in
# the source code. On Windows, this is the default and cannot be changed.
# On Mac, we have always exported all symbols, probably due to oversight
@@ -92,16 +77,12 @@
# compile time defines exceeding Visual Studio 2013 limitations.
# CFLAGS Additional CFLAGS
# CFLAGS_windows Additional CFLAGS_windows
-# LIBS_unix Additional LIBS_unix
-# LIBS_windows Additional LIBS_windows
# LDFLAGS_solaris Additional LDFLAGS_solaris
# RC_FLAGS Additional RC_FLAGS
# MACOSX_SIGNED On macosx, sign this binary
-# WINDOWS_STATIC_LINK On windows, link statically with C runtime and libjli.
# OPTIMIZATION Override default optimization level (LOW)
# OUTPUT_DIR Override default output directory
# VERSION_INFO_RESOURCE Override default Windows resource file
-# NO_JAVA_MS Do not add -ms8m to JAVA_ARGS.
SetupBuildLauncher = $(NamedParamsMacroTemplate)
define SetupBuildLauncherBody
# Setup default values (unless overridden)
@@ -109,27 +90,24 @@
$1_OPTIMIZATION := LOW
endif
- ifneq ($$($1_NO_JAVA_MS), true)
- # The norm is to append -ms8m, unless otherwise instructed.
- $1_JAVA_ARGS += -ms8m
- endif
-
ifeq ($$($1_MAIN_MODULE), )
$1_MAIN_MODULE := $(MODULE)
endif
- ifneq ($$($1_JAVA_ARGS), )
- ifneq ($$($1_EXTRA_JAVA_ARGS), )
- $1_EXTRA_JAVA_ARGS_STR := '{ $$(strip $$(foreach a, \
- $$(addprefix -J, $$($1_EXTRA_JAVA_ARGS)), "$$a"$(COMMA) )) }'
- $1_CFLAGS += -DEXTRA_JAVA_ARGS=$$($1_EXTRA_JAVA_ARGS_STR)
- endif
- $1_JAVA_ARGS_STR := '{ $$(strip $$(foreach a, \
- $$(addprefix -J, $$($1_JAVA_ARGS)) -m $$($1_MAIN_MODULE)/$$($1_MAIN_CLASS), "$$a"$(COMMA) )) }'
- $1_CFLAGS += -DJAVA_ARGS=$$($1_JAVA_ARGS_STR)
+ $1_JAVA_ARGS += -ms8m
+ ifneq ($$($1_MAIN_CLASS), )
+ $1_LAUNCHER_CLASS := -m $$($1_MAIN_MODULE)/$$($1_MAIN_CLASS)
endif
- $1_LIBS :=
+ ifneq ($$($1_EXTRA_JAVA_ARGS), )
+ $1_EXTRA_JAVA_ARGS_STR := '{ $$(strip $$(foreach a, \
+ $$(addprefix -J, $$($1_EXTRA_JAVA_ARGS)), "$$a"$(COMMA) )) }'
+ $1_CFLAGS += -DEXTRA_JAVA_ARGS=$$($1_EXTRA_JAVA_ARGS_STR)
+ endif
+ $1_JAVA_ARGS_STR := '{ $$(strip $$(foreach a, \
+ $$(addprefix -J, $$($1_JAVA_ARGS)) $$($1_LAUNCHER_CLASS), "$$a"$(COMMA) )) }'
+ $1_CFLAGS += -DJAVA_ARGS=$$($1_JAVA_ARGS_STR)
+
ifeq ($(OPENJDK_TARGET_OS), macosx)
ifeq ($$($1_MACOSX_SIGNED), true)
$1_PLIST_FILE := Info-privileged.plist
@@ -138,9 +116,8 @@
$1_PLIST_FILE := Info-cmdline.plist
endif
- $1_CFLAGS += -DPACKAGE_PATH='"$(PACKAGE_PATH)"'
- $1_LDFLAGS += -Wl,-all_load \
- -sectcreate __TEXT __info_plist $(MACOSX_PLIST_DIR)/$$($1_PLIST_FILE)
+ $1_LDFLAGS += -sectcreate __TEXT __info_plist $(MACOSX_PLIST_DIR)/$$($1_PLIST_FILE)
+
ifeq ($(STATIC_BUILD), true)
$1_LDFLAGS += -exported_symbols_list \
$(SUPPORT_OUTPUTDIR)/build-static/exported.symbols
@@ -153,35 +130,20 @@
-framework Foundation \
-framework SystemConfiguration \
-lstdc++ -liconv
- else
- $1_LIBS += $(SUPPORT_OUTPUTDIR)/native/java.base/libjli_static.a
endif
- $1_LIBS += -framework Cocoa -framework Security \
- -framework ApplicationServices
- endif
-
- ifeq ($(OPENJDK_TARGET_OS), aix)
- $1_LDFLAGS += -L$(SUPPORT_OUTPUTDIR)/native/java.base
- $1_LIBS += -ljli_static
endif
ifeq ($(USE_EXTERNAL_LIBZ), true)
$1_LIBS += -lz
endif
- ifeq ($$($1_WINDOWS_STATIC_LINK), true)
- $1_CFLAGS += $(filter-out -MD, $(CFLAGS_JDKEXE))
- $1_WINDOWS_JLI_LIB := $(SUPPORT_OUTPUTDIR)/native/java.base/jli_static.lib
- else
- $1_CFLAGS += $(CFLAGS_JDKEXE)
- $1_WINDOWS_JLI_LIB := $(SUPPORT_OUTPUTDIR)/native/java.base/libjli/jli.lib
- endif
+ $1_WINDOWS_JLI_LIB := $(SUPPORT_OUTPUTDIR)/native/java.base/libjli/jli.lib
$$(eval $$(call SetupJdkExecutable, BUILD_LAUNCHER_$1, \
NAME := $1, \
EXTRA_FILES := $(LAUNCHER_SRC)/main.c, \
OPTIMIZATION := $$($1_OPTIMIZATION), \
- CFLAGS := $$($1_CFLAGS) \
+ CFLAGS := $$(CFLAGS_JDKEXE) $$($1_CFLAGS) \
$(LAUNCHER_CFLAGS) \
$(VERSION_CFLAGS) \
-DLAUNCHER_NAME='"$(LAUNCHER_NAME)"' \
@@ -190,20 +152,25 @@
CFLAGS_linux := -fPIC, \
CFLAGS_solaris := -KPIC -DHAVE_GETHRTIME, \
CFLAGS_windows := $$($1_CFLAGS_windows), \
+ DISABLED_WARNINGS_gcc := unused-function, \
LDFLAGS := $$(LDFLAGS_JDKEXE) \
- $$(ORIGIN_ARG) \
+ $$(call SET_EXECUTABLE_ORIGIN) \
$$($1_LDFLAGS), \
- LDFLAGS_linux := \
- -L$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/jli, \
- LDFLAGS_solaris := $$($1_LDFLAGS_solaris) \
- -L$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/jli, \
+ LDFLAGS_linux := $$(call SET_EXECUTABLE_ORIGIN,/../lib) \
+ -L$(call FindLibDirForModule, java.base), \
+ LDFLAGS_macosx := $$(call SET_EXECUTABLE_ORIGIN,/../lib) \
+ -L$(call FindLibDirForModule, java.base), \
+ LDFLAGS_solaris := $$(call SET_EXECUTABLE_ORIGIN,/../lib) \
+ -L$(call FindLibDirForModule, java.base), \
+ LDFLAGS_aix := -L$(SUPPORT_OUTPUTDIR)/native/java.base, \
LIBS := $(JDKEXE_LIBS) $$($1_LIBS), \
- LIBS_unix := $$($1_LIBS_unix), \
- LIBS_linux := -lpthread -ljli $(LIBDL), \
+ LIBS_linux := -ljli -lpthread $(LIBDL), \
+ LIBS_macosx := -ljli -framework Cocoa -framework Security \
+ -framework ApplicationServices, \
LIBS_solaris := -ljli -lthread $(LIBDL), \
+ LIBS_aix := -ljli_static, \
LIBS_windows := $$($1_WINDOWS_JLI_LIB) \
- $(SUPPORT_OUTPUTDIR)/native/java.base/libjava/java.lib advapi32.lib \
- $$($1_LIBS_windows), \
+ $(SUPPORT_OUTPUTDIR)/native/java.base/libjava/java.lib, \
OUTPUT_DIR := $$($1_OUTPUT_DIR), \
VERSIONINFO_RESOURCE := $$($1_VERSION_INFO_RESOURCE), \
EXTRA_RC_FLAGS := $$($1_EXTRA_RC_FLAGS), \
@@ -215,7 +182,7 @@
$1 += $$(BUILD_LAUNCHER_$1)
TARGETS += $$($1)
- ifneq (,$(filter $(OPENJDK_TARGET_OS), macosx aix))
+ ifeq ($(OPENJDK_TARGET_OS), aix)
$$(BUILD_LAUNCHER_$1): $(SUPPORT_OUTPUTDIR)/native/java.base/libjli_static.a
endif
--- a/make/lib/Awt2dLibraries.gmk Sat Sep 22 20:31:45 2018 -0700
+++ b/make/lib/Awt2dLibraries.gmk Mon Sep 24 10:59:26 2018 -0700
@@ -55,6 +55,7 @@
OPTIMIZATION := HIGHEST, \
CFLAGS := $(CFLAGS_JDKLIB) \
$(BUILD_LIBMLIB_CFLAGS), \
+ DISABLED_WARNINGS_gcc := unused-function, \
LDFLAGS := $(LDFLAGS_JDKLIB) \
$(call SET_SHARED_LIBRARY_ORIGIN), \
LIBS := $(JDKLIB_LIBS), \
@@ -225,8 +226,9 @@
CFLAGS := $(CFLAGS_JDKLIB) $(LIBAWT_CFLAGS), \
EXTRA_HEADER_DIRS := $(LIBAWT_EXTRA_HEADER_DIRS), \
DISABLED_WARNINGS_gcc := sign-compare unused-result maybe-uninitialized \
- format-nonliteral parentheses, \
- DISABLED_WARNINGS_clang := logical-op-parentheses extern-initializer, \
+ format-nonliteral parentheses unused-value unused-function, \
+ DISABLED_WARNINGS_clang := logical-op-parentheses extern-initializer \
+ sign-compare format-nonliteral, \
DISABLED_WARNINGS_solstudio := E_DECLARATION_IN_CODE, \
DISABLED_WARNINGS_microsoft := 4244 4267 4996, \
ASFLAGS := $(LIBAWT_ASFLAGS), \
@@ -292,7 +294,6 @@
#
LIBAWT_XAWT_CFLAGS += -DXAWT -DXAWT_HACK \
- -DPACKAGE_PATH=\"$(PACKAGE_PATH)\" \
$(FONTCONFIG_CFLAGS) \
$(CUPS_CFLAGS)
@@ -335,7 +336,9 @@
DISABLED_WARNINGS_gcc := type-limits pointer-to-int-cast \
unused-result maybe-uninitialized format \
format-security int-to-pointer-cast parentheses \
- implicit-fallthrough, \
+ implicit-fallthrough undef unused-function, \
+ DISABLED_WARNINGS_clang := parentheses format undef \
+ logical-op-parentheses format-nonliteral int-conversion, \
DISABLED_WARNINGS_solstudio := E_DECLARATION_IN_CODE \
E_ASSIGNMENT_TYPE_MISMATCH E_NON_CONST_INIT, \
LDFLAGS := $(LDFLAGS_JDKLIB) \
@@ -358,8 +361,6 @@
# The fast floor code loses precision.
LCMS_CFLAGS=-DCMS_DONT_USE_FAST_FLOOR
-LCMS_CFLAGS_JDKLIB := $(filter-out -xc99=%none, $(CFLAGS_JDKLIB))
-
ifeq ($(USE_EXTERNAL_LCMS), true)
# If we're using an external library, we'll just need the wrapper part.
# By including it explicitly, all other files will be excluded.
@@ -375,7 +376,7 @@
NAME := lcms, \
INCLUDE_FILES := $(BUILD_LIBLCMS_INCLUDE_FILES), \
OPTIMIZATION := HIGHEST, \
- CFLAGS := $(LCMS_CFLAGS_JDKLIB) \
+ CFLAGS := $(CFLAGS_JDKLIB) \
$(LCMS_CFLAGS), \
CFLAGS_solaris := -xc99=no_lib, \
CFLAGS_windows := -DCMS_IS_WINDOWS_, \
@@ -383,8 +384,9 @@
common/awt/debug \
libawt/java2d, \
HEADERS_FROM_SRC := $(LIBLCMS_HEADERS_FROM_SRC), \
- DISABLED_WARNINGS_gcc := format-nonliteral type-limits misleading-indentation, \
- DISABLED_WARNINGS_clang := tautological-compare, \
+ DISABLED_WARNINGS_gcc := format-nonliteral type-limits \
+ misleading-indentation undef unused-function, \
+ DISABLED_WARNINGS_clang := tautological-compare format-nonliteral undef, \
DISABLED_WARNINGS_solstudio := E_STATEMENT_NOT_REACHED, \
DISABLED_WARNINGS_microsoft := 4819, \
LDFLAGS := $(LDFLAGS_JDKLIB) \
@@ -459,7 +461,7 @@
#
LIBAWT_HEADLESS_CFLAGS := $(CUPS_CFLAGS) $(FONTCONFIG_CFLAGS) $(X_CFLAGS) \
- -DHEADLESS=true -DPACKAGE_PATH=\"$(PACKAGE_PATH)\"
+ -DHEADLESS=true
$(eval $(call SetupJdkLibrary, BUILD_LIBAWT_HEADLESS, \
NAME := awt_headless, \
@@ -469,6 +471,7 @@
CFLAGS := $(CFLAGS_JDKLIB) \
$(LIBAWT_HEADLESS_CFLAGS), \
EXTRA_HEADER_DIRS := $(LIBAWT_HEADLESS_EXTRA_HEADER_DIRS), \
+ DISABLED_WARNINGS_gcc := unused-function, \
DISABLED_WARNINGS_xlc := 1506-356, \
DISABLED_WARNINGS_solstudio := E_EMPTY_TRANSLATION_UNIT, \
LDFLAGS := $(LDFLAGS_JDKLIB) \
@@ -607,11 +610,13 @@
EXTRA_HEADER_DIRS := $(LIBFONTMANAGER_EXTRA_HEADER_DIRS), \
WARNINGS_AS_ERRORS_xlc := false, \
DISABLED_WARNINGS_gcc := sign-compare int-to-pointer-cast \
- type-limits missing-field-initializers implicit-fallthrough strict-aliasing, \
+ type-limits missing-field-initializers implicit-fallthrough \
+ strict-aliasing undef unused-function, \
DISABLED_WARNINGS_CXX_gcc := reorder delete-non-virtual-dtor strict-overflow \
maybe-uninitialized, \
DISABLED_WARNINGS_clang := unused-value incompatible-pointer-types \
- tautological-constant-out-of-range-compare int-to-pointer-cast, \
+ tautological-constant-out-of-range-compare int-to-pointer-cast \
+ sign-compare undef missing-field-initializers, \
DISABLED_WARNINGS_C_solstudio = \
E_INTEGER_OVERFLOW_DETECTED \
E_ARG_INCOMPATIBLE_WITH_ARG_L \
@@ -718,6 +723,7 @@
OPTIMIZATION := LOW, \
CFLAGS := $(CFLAGS_JDKLIB) \
$(JAWT_CFLAGS), \
+ DISABLED_WARNINGS_clang := sign-compare, \
EXTRA_HEADER_DIRS := \
include \
common/awt, \
@@ -851,8 +857,9 @@
$(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS) $(PNG_CFLAGS) $(LIBZ_CFLAGS), \
EXTRA_HEADER_DIRS := $(LIBSPLASHSCREEN_HEADER_DIRS), \
DISABLED_WARNINGS_gcc := sign-compare type-limits unused-result \
- maybe-uninitialized shift-negative-value implicit-fallthrough, \
- DISABLED_WARNINGS_clang := incompatible-pointer-types, \
+ maybe-uninitialized shift-negative-value implicit-fallthrough \
+ unused-function, \
+ DISABLED_WARNINGS_clang := incompatible-pointer-types sign-compare, \
DISABLED_WARNINGS_solstudio := E_NEWLINE_NOT_LAST E_DECLARATION_IN_CODE \
E_STATEMENT_NOT_REACHED, \
DISABLED_WARNINGS_microsoft := 4018 4244 4267, \
@@ -911,7 +918,9 @@
EXTRA_HEADER_DIRS := $(LIBAWT_LWAWT_EXTRA_HEADER_DIRS), \
DISABLED_WARNINGS_clang := incomplete-implementation enum-conversion \
deprecated-declarations objc-method-access bitwise-op-parentheses \
- incompatible-pointer-types parentheses-equality extra-tokens, \
+ incompatible-pointer-types parentheses-equality extra-tokens \
+ sign-compare semicolon-before-method-body format-nonliteral undef \
+ pointer-arith, \
LDFLAGS := $(LDFLAGS_JDKLIB) \
$(call SET_SHARED_LIBRARY_ORIGIN) \
-L$(INSTALL_LIBRARIES_HERE), \
@@ -952,7 +961,7 @@
EXTRA_HEADER_DIRS := \
libawt_lwawt/awt \
libosxapp, \
- DISABLED_WARNINGS_clang := deprecated-declarations, \
+ DISABLED_WARNINGS_clang := deprecated-declarations sign-compare, \
LDFLAGS := $(LDFLAGS_JDKLIB) \
$(call SET_SHARED_LIBRARY_ORIGIN) \
-Wl$(COMMA)-rpath$(COMMA)@loader_path \
--- a/make/lib/CoreLibraries.gmk Sat Sep 22 20:31:45 2018 -0700
+++ b/make/lib/CoreLibraries.gmk Mon Sep 24 10:59:26 2018 -0700
@@ -49,40 +49,21 @@
LIBFDLIBM_SRC := $(TOPDIR)/src/java.base/share/native/libfdlibm
LIBFDLIBM_CFLAGS := -I$(LIBFDLIBM_SRC) $(FDLIBM_CFLAGS)
-ifneq ($(OPENJDK_TARGET_OS), macosx)
- $(eval $(call SetupNativeCompilation, BUILD_LIBFDLIBM, \
- NAME := fdlibm, \
- TYPE := STATIC_LIBRARY, \
- OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
- SRC := $(LIBFDLIBM_SRC), \
- OPTIMIZATION := $(BUILD_LIBFDLIBM_OPTIMIZATION), \
- CFLAGS := $(CFLAGS_JDKLIB) $(LIBFDLIBM_CFLAGS), \
- CFLAGS_windows_debug := -DLOGGING, \
- CFLAGS_aix := -qfloat=nomaf, \
- DISABLED_WARNINGS_gcc := sign-compare misleading-indentation array-bounds, \
- DISABLED_WARNINGS_microsoft := 4146 4244 4018, \
- ARFLAGS := $(ARFLAGS), \
- OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfdlibm, \
- ))
-
-else
-
- # On macosx the old build does partial (incremental) linking of fdlibm instead of
- # a plain static library.
- $(eval $(call SetupNativeCompilation, BUILD_LIBFDLIBM_MAC, \
- NAME := fdlibm, \
- OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfdlibm, \
- SRC := $(LIBFDLIBM_SRC), \
- CFLAGS := $(CFLAGS_JDKLIB) $(LIBFDLIBM_CFLAGS), \
- LDFLAGS := -nostdlib $(ARFLAGS), \
- OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfdlibm, \
- ))
-
- BUILD_LIBFDLIBM := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/$(LIBRARY_PREFIX)fdlibm$(STATIC_LIBRARY_SUFFIX)
- $(BUILD_LIBFDLIBM): $(BUILD_LIBFDLIBM_MAC)
- $(call install-file)
-
-endif
+$(eval $(call SetupNativeCompilation, BUILD_LIBFDLIBM, \
+ NAME := fdlibm, \
+ TYPE := STATIC_LIBRARY, \
+ OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
+ SRC := $(LIBFDLIBM_SRC), \
+ OPTIMIZATION := $(BUILD_LIBFDLIBM_OPTIMIZATION), \
+ CFLAGS := $(CFLAGS_JDKLIB) $(LIBFDLIBM_CFLAGS), \
+ CFLAGS_windows_debug := -DLOGGING, \
+ CFLAGS_aix := -qfloat=nomaf, \
+ DISABLED_WARNINGS_gcc := sign-compare misleading-indentation array-bounds, \
+ DISABLED_WARNINGS_clang := sign-compare, \
+ DISABLED_WARNINGS_microsoft := 4146 4244 4018, \
+ ARFLAGS := $(ARFLAGS), \
+ OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfdlibm, \
+))
##########################################################################################
@@ -97,7 +78,7 @@
NAME := verify, \
OPTIMIZATION := $(LIBVERIFY_OPTIMIZATION), \
CFLAGS := $(CFLAGS_JDKLIB), \
- DISABLED_WARNINGS_gcc := implicit-fallthrough, \
+ DISABLED_WARNINGS_gcc := implicit-fallthrough unused-function, \
DISABLED_WARNINGS_microsoft := 4244 4267, \
LDFLAGS := $(LDFLAGS_JDKLIB) \
$(call SET_SHARED_LIBRARY_ORIGIN), \
@@ -125,21 +106,21 @@
jdk_util.c_CFLAGS := $(VERSION_CFLAGS), \
EXTRA_HEADER_DIRS := libfdlibm, \
WARNINGS_AS_ERRORS_xlc := false, \
- DISABLED_WARNINGS_gcc := unused-result, \
+ DISABLED_WARNINGS_gcc := unused-result unused-function, \
DISABLED_WARNINGS_solstudio := E_STATEMENT_NOT_REACHED, \
LDFLAGS := $(LDFLAGS_JDKLIB) \
$(call SET_SHARED_LIBRARY_ORIGIN), \
LDFLAGS_macosx := -L$(SUPPORT_OUTPUTDIR)/native/$(MODULE)/, \
LDFLAGS_windows := -delayload:shell32.dll, \
+ LIBS := $(BUILD_LIBFDLIBM_TARGET), \
LIBS_unix := -ljvm -lverify, \
- LIBS_linux := $(LIBDL) $(BUILD_LIBFDLIBM), \
- LIBS_solaris := -lsocket -lnsl -lscf $(LIBDL) $(BUILD_LIBFDLIBM), \
- LIBS_aix := $(LIBDL) $(BUILD_LIBFDLIBM) $(LIBM),\
- LIBS_macosx := -lfdlibm \
- -framework CoreFoundation \
+ LIBS_linux := $(LIBDL), \
+ LIBS_solaris := -lsocket -lnsl -lscf $(LIBDL), \
+ LIBS_aix := $(LIBDL) $(LIBM),\
+ LIBS_macosx := -framework CoreFoundation \
-framework Foundation \
-framework Security -framework SystemConfiguration, \
- LIBS_windows := jvm.lib $(BUILD_LIBFDLIBM) $(WIN_VERIFY_LIB) \
+ LIBS_windows := jvm.lib $(WIN_VERIFY_LIB) \
shell32.lib delayimp.lib \
advapi32.lib version.lib, \
))
@@ -168,6 +149,7 @@
CFLAGS := $(CFLAGS_JDKLIB) \
$(LIBZ_CFLAGS), \
CFLAGS_unix := $(BUILD_LIBZIP_MMAP) -UDEBUG, \
+ DISABLED_WARNINGS_gcc := unused-function, \
LDFLAGS := $(LDFLAGS_JDKLIB) \
$(call SET_SHARED_LIBRARY_ORIGIN), \
LIBS_unix := -ljvm -ljava $(LIBZ_LIBS), \
@@ -200,44 +182,16 @@
##########################################################################################
-ifeq ($(call check-jvm-variant, zero), true)
- ERGO_FAMILY := zero
-else
- ifeq ($(OPENJDK_TARGET_CPU_ARCH), x86)
- ERGO_FAMILY := i586
- else
- ERGO_FAMILY := $(OPENJDK_TARGET_CPU_ARCH)
- endif
-endif
-LIBJLI_ALL_ERGO := $(wildcard $(addsuffix /ergo_*.c, $(LIBJLI_SRC_DIRS)))
-LIBJLI_EXCLUDE_ERGO := $(filter-out %/ergo_$(ERGO_FAMILY).c, $(LIBJLI_ALL_ERGO))
-# If all specialized ergo files are excluded, use generic ergo
-ifeq ($(LIBJLI_ALL_ERGO), $(LIBJLI_EXCLUDE_ERGO))
- LIBJLI_CFLAGS += -DUSE_GENERIC_ERGO
-endif
-LIBJLI_EXCLUDE_FILES += $(notdir $(LIBJLI_EXCLUDE_ERGO))
-
ifeq ($(OPENJDK_TARGET_OS), macosx)
- LIBJLI_EXCLUDE_FILES += java_md_solinux.c ergo.c ergo_i586.c
-
- BUILD_LIBJLI_java_md_macosx.c_CFLAGS := -x objective-c
- BUILD_LIBJLI_STATIC_java_md_macosx.c_CFLAGS := -x objective-c
-
- LIBJLI_CFLAGS += -DPACKAGE_PATH=\"$(PACKAGE_PATH)\"
+ LIBJLI_EXCLUDE_FILES += java_md_solinux.c
endif
ifeq ($(OPENJDK_TARGET_OS), windows)
- # Staticically link with c runtime on windows.
- LIBJLI_CFLAGS_JDKLIB := $(filter-out -MD, $(CFLAGS_JDKLIB))
- LIBJLI_OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE)
# Supply the name of the C runtime lib.
LIBJLI_CFLAGS += -DMSVCR_DLL_NAME='"$(notdir $(MSVCR_DLL))"'
ifneq ($(MSVCP_DLL), )
LIBJLI_CFLAGS += -DMSVCP_DLL_NAME='"$(notdir $(MSVCP_DLL))"'
endif
-else
- LIBJLI_CFLAGS_JDKLIB := $(CFLAGS_JDKLIB)
- LIBJLI_OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE)/jli
endif
LIBJLI_CFLAGS += $(LIBZ_CFLAGS)
@@ -256,18 +210,18 @@
$(eval $(call SetupJdkLibrary, BUILD_LIBJLI, \
NAME := jli, \
- OUTPUT_DIR := $(LIBJLI_OUTPUT_DIR), \
+ OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
OPTIMIZATION := HIGH, \
- CFLAGS := $(LIBJLI_CFLAGS_JDKLIB) $(LIBJLI_CFLAGS), \
+ CFLAGS := $(CFLAGS_JDKLIB) $(LIBJLI_CFLAGS), \
+ DISABLED_WARNINGS_gcc := unused-function, \
+ DISABLED_WARNINGS_clang := sometimes-uninitialized format-nonliteral, \
DISABLED_WARNINGS_solstudio := \
E_ASM_DISABLES_OPTIMIZATION \
E_STATEMENT_NOT_REACHED, \
LDFLAGS := $(LDFLAGS_JDKLIB) \
$(call SET_SHARED_LIBRARY_ORIGIN), \
- LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \
- LDFLAGS_solaris := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \
LIBS_unix := $(LIBZ_LIBS), \
LIBS_linux := $(LIBDL) -lpthread, \
LIBS_solaris := $(LIBDL), \
@@ -280,54 +234,7 @@
LIBJLI_SRC_DIRS := $(call FindSrcDirsForComponent, java.base, libjli)
-# On windows, the static library has the same suffix as the import library created by
-# with the shared library, so the static library is given a different name. No harm
-# in doing it for all platform to reduce complexity.
-ifeq ($(OPENJDK_TARGET_OS), windows)
- $(eval $(call SetupNativeCompilation, BUILD_LIBJLI_STATIC, \
- NAME := jli_static, \
- TYPE := STATIC_LIBRARY, \
- OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
- SRC := $(LIBJLI_SRC_DIRS), \
- EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
- EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
- OPTIMIZATION := HIGH, \
- CFLAGS := $(STATIC_LIBRARY_FLAGS) $(LIBJLI_CFLAGS_JDKLIB) $(LIBJLI_CFLAGS) \
- $(addprefix -I, $(LIBJLI_SRC_DIRS)), \
- ARFLAGS := $(ARFLAGS), \
- OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static, \
- ))
-
- TARGETS += $(BUILD_LIBJLI_STATIC)
-
-else ifeq ($(OPENJDK_TARGET_OS), macosx)
- #
- # On macosx they do partial (incremental) linking of libjli_static.a
- # code it here...rather than add support to NativeCompilation
- # as this is first time I see it
- $(eval $(call SetupNativeCompilation, BUILD_LIBJLI_STATIC, \
- NAME := jli_static, \
- OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
- SRC := $(LIBJLI_SRC_DIRS), \
- EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
- EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
- OPTIMIZATION := HIGH, \
- CFLAGS := $(LIBJLI_CFLAGS_JDKLIB) $(LIBJLI_CFLAGS) \
- $(addprefix -I, $(LIBJLI_SRC_DIRS)), \
- LDFLAGS := -nostdlib $(ARFLAGS), \
- OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static, \
- ))
-
- ifeq ($(STATIC_BUILD), true)
- TARGETS += $(BUILD_LIBJLI_STATIC)
- else
- $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static.a: $(BUILD_LIBJLI_STATIC)
- $(call install-file)
-
- TARGETS += $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static.a
- endif
-
-else ifeq ($(OPENJDK_TARGET_OS), aix)
+ifeq ($(OPENJDK_TARGET_OS), aix)
# AIX also requires a static libjli because the compiler doesn't support '-rpath'
$(eval $(call SetupNativeCompilation, BUILD_LIBJLI_STATIC, \
NAME := jli_static, \
--- a/make/lib/Lib-java.base.gmk Sat Sep 22 20:31:45 2018 -0700
+++ b/make/lib/Lib-java.base.gmk Mon Sep 24 10:59:26 2018 -0700
@@ -43,8 +43,9 @@
NAME := net, \
OPTIMIZATION := LOW, \
CFLAGS := $(CFLAGS_JDKLIB), \
- DISABLED_WARNINGS_gcc := format-nonliteral, \
- DISABLED_WARNINGS_clang := parentheses-equality constant-logical-operand, \
+ DISABLED_WARNINGS_gcc := format-nonliteral unused-function, \
+ DISABLED_WARNINGS_clang := parentheses-equality constant-logical-operand \
+ format-nonliteral undef, \
DISABLED_WARNINGS_microsoft := 4244 4047 4133 4996, \
DISABLED_WARNINGS_solstudio := E_ARG_INCOMPATIBLE_WITH_ARG_L, \
LDFLAGS := $(LDFLAGS_JDKLIB) \
@@ -71,6 +72,8 @@
OPTIMIZATION := HIGH, \
WARNINGS_AS_ERRORS_xlc := false, \
CFLAGS := $(CFLAGS_JDKLIB), \
+ DISABLED_WARNINGS_gcc := undef, \
+ DISABLED_WARNINGS_clang := undef, \
EXTRA_HEADER_DIRS := \
libnio/ch \
libnio/fs \
@@ -104,7 +107,8 @@
NAME := osxsecurity, \
OPTIMIZATION := LOW, \
CFLAGS := $(CFLAGS_JDKLIB), \
- DISABLED_WARNINGS_clang := deprecated-declarations, \
+ DISABLED_WARNINGS_clang := deprecated-declarations \
+ missing-method-return-type, \
LDFLAGS := $(LDFLAGS_JDKLIB) \
-L$(SUPPORT_OUTPUTDIR)/modules_libs/java.base \
$(call SET_SHARED_LIBRARY_ORIGIN) \
@@ -130,7 +134,9 @@
ifeq ($(STATIC_BUILD), false)
$(eval $(call SetupJdkLibrary, BUILD_LIBJSIG, \
NAME := jsig, \
+ OPTIMIZATION := LOW, \
CFLAGS := $(CFLAGS_JDKLIB) $(LIBJSIG_CFLAGS), \
+ DISABLED_WARNINGS_gcc := undef, \
LDFLAGS := $(LDFLAGS_JDKLIB) \
$(call SET_SHARED_LIBRARY_ORIGIN), \
LIBS_linux := $(LIBDL), \
@@ -172,7 +178,7 @@
ifeq ($(STATIC_BUILD), true)
JAVA_BASE_EXPORT_SYMBOLS_SRC := \
- $(SUPPORT_OUTPUTDIR)/modules_libs/java.base/jli/$(LIBRARY_PREFIX)jli.symbols \
+ $(SUPPORT_OUTPUTDIR)/modules_libs/java.base/$(LIBRARY_PREFIX)jli.symbols \
$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/$(LIBRARY_PREFIX)java.symbols \
$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/$(LIBRARY_PREFIX)net.symbols \
$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/$(LIBRARY_PREFIX)nio.symbols \
@@ -205,4 +211,4 @@
DEST := $(call FindLibDirForModule, $(MODULE)), \
))
TARGETS += $(COPY_TZMAPPINGS)
-endif
+endif
--- a/make/lib/Lib-java.desktop.gmk Sat Sep 22 20:31:45 2018 -0700
+++ b/make/lib/Lib-java.desktop.gmk Mon Sep 24 10:59:26 2018 -0700
@@ -66,6 +66,8 @@
CFLAGS := $(CFLAGS_JDKLIB) \
$(LIBJSOUND_CFLAGS), \
CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBJSOUND_CFLAGS), \
+ DISABLED_WARNINGS_gcc := undef, \
+ DISABLED_WARNINGS_clang := undef, \
LDFLAGS := $(LDFLAGS_JDKLIB) \
$(call SET_SHARED_LIBRARY_ORIGIN), \
LIBS_unix := -ljava -ljvm, \
@@ -92,7 +94,7 @@
OPTIMIZATION := LOW, \
CFLAGS := $(CFLAGS_JDKLIB), \
DISABLED_WARNINGS_clang := objc-method-access objc-root-class \
- deprecated-declarations, \
+ deprecated-declarations format-nonliteral, \
LDFLAGS := $(LDFLAGS_JDKLIB) \
$(call SET_SHARED_LIBRARY_ORIGIN), \
LIBS := \
--- a/make/lib/Lib-java.instrument.gmk Sat Sep 22 20:31:45 2018 -0700
+++ b/make/lib/Lib-java.instrument.gmk Mon Sep 24 10:59:26 2018 -0700
@@ -31,48 +31,41 @@
################################################################################
ifeq ($(OPENJDK_TARGET_OS), windows)
- # Statically link the C runtime so that there are not dependencies on modules
- # not on the search patch when invoked from the Windows system directory
- # (or elsewhere).
- LIBINSTRUMENT_CFLAGS_JDKLIB := $(filter-out -MD, $(CFLAGS_JDKLIB))
# equivalent of strcasecmp is stricmp on Windows
LIBINSTRUMENT_CFLAGS := -Dstrcasecmp=stricmp
-else
- LIBINSTRUMENT_CFLAGS_JDKLIB := $(CFLAGS_JDKLIB)
+ WINDOWS_JLI_LIB := $(SUPPORT_OUTPUTDIR)/native/java.base/libjli/jli.lib
endif
$(eval $(call SetupJdkLibrary, BUILD_LIBINSTRUMENT, \
NAME := instrument, \
OPTIMIZATION := LOW, \
- CFLAGS := $(LIBINSTRUMENT_CFLAGS_JDKLIB) $(LIBINSTRUMENT_CFLAGS), \
+ CFLAGS := $(CFLAGS_JDKLIB) $(LIBINSTRUMENT_CFLAGS), \
CFLAGS_debug := -DJPLIS_LOGGING, \
CFLAGS_release := -DNO_JPLIS_LOGGING, \
+ DISABLED_WARNINGS_gcc := unused-function, \
EXTRA_HEADER_DIRS := java.base:libjli, \
LDFLAGS := $(LDFLAGS_JDKLIB) \
$(call SET_SHARED_LIBRARY_ORIGIN) \
$(LIBINSTRUMENT_LDFLAGS), \
- LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN,/jli) \
- -L$(call FindLibDirForModule, java.base)/jli, \
- LDFLAGS_solaris := $(call SET_SHARED_LIBRARY_ORIGIN,/jli) \
- -L$(call FindLibDirForModule, java.base)/jli, \
- LDFLAGS_macosx := -Wl$(COMMA)-all_load, \
+ LDFLAGS_linux := -L$(call FindLibDirForModule, java.base), \
+ LDFLAGS_solaris := -L$(call FindLibDirForModule, java.base), \
+ LDFLAGS_macosx := -L$(call FindLibDirForModule, java.base), \
LDFLAGS_aix := -L$(SUPPORT_OUTPUTDIR)/native/java.base, \
LIBS := $(JDKLIB_LIBS), \
LIBS_unix := -ljava -ljvm $(LIBZ_LIBS), \
LIBS_linux := -ljli $(LIBDL), \
LIBS_solaris := -ljli $(LIBDL), \
LIBS_aix := -liconv -ljli_static $(LIBDL), \
- LIBS_macosx := -liconv -framework Cocoa -framework Security \
- -framework ApplicationServices \
- $(call FindStaticLib, java.base, jli_static), \
+ LIBS_macosx := -ljli -liconv -framework Cocoa -framework Security \
+ -framework ApplicationServices, \
LIBS_windows := jvm.lib $(WIN_JAVA_LIB) advapi32.lib \
- $(call FindStaticLib, java.base, jli_static), \
+ $(WINDOWS_JLI_LIB), \
))
-ifneq ($(filter $(OPENJDK_TARGET_OS), macosx windows aix), )
+ifeq ($(OPENJDK_TARGET_OS), aix)
$(BUILD_LIBINSTRUMENT): $(call FindStaticLib, java.base, jli_static)
else
- $(BUILD_LIBINSTRUMENT): $(call FindLib, java.base, jli, /jli)
+ $(BUILD_LIBINSTRUMENT): $(call FindLib, java.base, jli)
endif
$(BUILD_LIBINSTRUMENT): $(call FindLib, java.base, java)
--- a/make/lib/Lib-java.security.jgss.gmk Sat Sep 22 20:31:45 2018 -0700
+++ b/make/lib/Lib-java.security.jgss.gmk Mon Sep 24 10:59:26 2018 -0700
@@ -31,6 +31,8 @@
NAME := j2gss, \
OPTIMIZATION := LOW, \
CFLAGS := $(CFLAGS_JDKLIB), \
+ DISABLED_WARNINGS_gcc := undef, \
+ DISABLED_WARNINGS_clang := undef, \
LDFLAGS := $(LDFLAGS_JDKLIB) \
$(call SET_SHARED_LIBRARY_ORIGIN), \
LIBS := $(LIBDL), \
--- a/make/lib/Lib-jdk.accessibility.gmk Sat Sep 22 20:31:45 2018 -0700
+++ b/make/lib/Lib-jdk.accessibility.gmk Mon Sep 24 10:59:26 2018 -0700
@@ -69,7 +69,7 @@
EXTRA_SRC := common, \
OPTIMIZATION := LOW, \
DISABLED_WARNINGS_microsoft := 4311 4302 4312, \
- CFLAGS := $(filter-out -MD, $(CFLAGS_JDKLIB)) -MT \
+ CFLAGS := $(CFLAGS_JDKLIB) \
-DACCESSBRIDGE_ARCH_$2, \
EXTRA_HEADER_DIRS := \
include/bridge \
--- a/make/lib/Lib-jdk.crypto.cryptoki.gmk Sat Sep 22 20:31:45 2018 -0700
+++ b/make/lib/Lib-jdk.crypto.cryptoki.gmk Mon Sep 24 10:59:26 2018 -0700
@@ -31,6 +31,7 @@
NAME := j2pkcs11, \
OPTIMIZATION := LOW, \
CFLAGS := $(CFLAGS_JDKLIB), \
+ DISABLED_WARNINGS_clang := format-nonliteral, \
LDFLAGS := $(LDFLAGS_JDKLIB) \
$(call SET_SHARED_LIBRARY_ORIGIN), \
LIBS_unix := $(LIBDL), \
--- a/make/lib/Lib-jdk.crypto.ec.gmk Sat Sep 22 20:31:45 2018 -0700
+++ b/make/lib/Lib-jdk.crypto.ec.gmk Mon Sep 24 10:59:26 2018 -0700
@@ -28,24 +28,15 @@
################################################################################
ifeq ($(ENABLE_INTREE_EC), true)
- # On sol-sparc...all libraries are compiled with -xregs=no%appl
- # (set in CFLAGS_REQUIRED_sparc) except libsunec.so
- ifeq ($(OPENJDK_TARGET_CPU_ARCH), sparc)
- BUILD_LIBSUNEC_CFLAGS_JDKLIB := $(filter-out -xregs=no%appl, $(CFLAGS_JDKLIB))
- BUILD_LIBSUNEC_CXXFLAGS_JDKLIB := $(filter-out -xregs=no%appl, $(CXXFLAGS_JDKLIB))
- else
- BUILD_LIBSUNEC_CFLAGS_JDKLIB := $(CFLAGS_JDKLIB)
- BUILD_LIBSUNEC_CXXFLAGS_JDKLIB := $(CXXFLAGS_JDKLIB)
- endif
-
$(eval $(call SetupJdkLibrary, BUILD_LIBSUNEC, \
NAME := sunec, \
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
OPTIMIZATION := LOW, \
- CFLAGS := $(BUILD_LIBSUNEC_CFLAGS_JDKLIB) \
+ CFLAGS := $(CFLAGS_JDKLIB) \
-DMP_API_COMPATIBLE -DNSS_ECC_MORE_THAN_SUITE_B, \
- CXXFLAGS := $(BUILD_LIBSUNEC_CXXFLAGS_JDKLIB), \
- DISABLED_WARNINGS_gcc := sign-compare implicit-fallthrough, \
+ CXXFLAGS := $(CXXFLAGS_JDKLIB), \
+ DISABLED_WARNINGS_gcc := sign-compare implicit-fallthrough unused-value, \
+ DISABLED_WARNINGS_clang := sign-compare, \
DISABLED_WARNINGS_microsoft := 4101 4244 4146 4018, \
LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK), \
LDFLAGS_macosx := $(call SET_SHARED_LIBRARY_ORIGIN), \
--- a/make/lib/Lib-jdk.hotspot.agent.gmk Sat Sep 22 20:31:45 2018 -0700
+++ b/make/lib/Lib-jdk.hotspot.agent.gmk Mon Sep 24 10:59:26 2018 -0700
@@ -54,7 +54,8 @@
NAME := saproc, \
OPTIMIZATION := HIGH, \
DISABLED_WARNINGS_microsoft := 4267, \
- DISABLED_WARNINGS_gcc := sign-compare, \
+ DISABLED_WARNINGS_gcc := sign-compare pointer-arith, \
+ DISABLED_WARNINGS_clang := sign-compare pointer-arith format-nonliteral, \
DISABLED_WARNINGS_CXX_solstudio := truncwarn unknownpragma, \
CFLAGS := $(CFLAGS_JDKLIB) $(SA_CFLAGS), \
CXXFLAGS := $(CXXFLAGS_JDKLIB) $(SA_CFLAGS) $(SA_CXXFLAGS), \
--- a/make/lib/Lib-jdk.jdwp.agent.gmk Sat Sep 22 20:31:45 2018 -0700
+++ b/make/lib/Lib-jdk.jdwp.agent.gmk Mon Sep 24 10:59:26 2018 -0700
@@ -53,6 +53,9 @@
NAME := jdwp, \
OPTIMIZATION := LOW, \
CFLAGS := $(CFLAGS_JDKLIB) -DJDWP_LOGGING, \
+ DISABLED_WARNINGS_gcc := unused-function, \
+ DISABLED_WARNINGS_clang := sometimes-uninitialized format-nonliteral \
+ self-assign, \
EXTRA_HEADER_DIRS := \
include \
libjdwp/export, \
--- a/make/lib/Lib-jdk.management.gmk Sat Sep 22 20:31:45 2018 -0700
+++ b/make/lib/Lib-jdk.management.gmk Mon Sep 24 10:59:26 2018 -0700
@@ -48,6 +48,7 @@
NAME := management_ext, \
OPTIMIZATION := $(LIBMANAGEMENT_EXT_OPTIMIZATION), \
CFLAGS := $(CFLAGS_JDKLIB) $(LIBMANAGEMENT_EXT_CFLAGS), \
+ DISABLED_WARNINGS_clang := format-nonliteral, \
LDFLAGS := $(LDFLAGS_JDKLIB) \
$(call SET_SHARED_LIBRARY_ORIGIN), \
LIBS := $(JDKLIB_LIBS), \
--- a/make/lib/Lib-jdk.pack.gmk Sat Sep 22 20:31:45 2018 -0700
+++ b/make/lib/Lib-jdk.pack.gmk Mon Sep 24 10:59:26 2018 -0700
@@ -37,6 +37,7 @@
CFLAGS_release := -DPRODUCT, \
EXTRA_HEADER_DIRS := $(call GetJavaHeaderDir, java.base), \
DISABLED_WARNINGS_gcc := implicit-fallthrough, \
+ DISABLED_WARNINGS_clang := format-nonliteral, \
LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \
$(call SET_SHARED_LIBRARY_ORIGIN), \
LDFLAGS_windows := -map:$(SUPPORT_OUTPUTDIR)/native/$(MODULE)/unpack.map -debug, \
--- a/make/lib/Lib-jdk.sctp.gmk Sat Sep 22 20:31:45 2018 -0700
+++ b/make/lib/Lib-jdk.sctp.gmk Mon Sep 24 10:59:26 2018 -0700
@@ -34,6 +34,8 @@
NAME := sctp, \
OPTIMIZATION := LOW, \
CFLAGS := $(CFLAGS_JDKLIB), \
+ DISABLED_WARNINGS_gcc := undef, \
+ DISABLED_WARNINGS_clang := undef, \
EXTRA_HEADER_DIRS := \
$(call GetJavaHeaderDir, java.base) \
java.base:libnet \
--- a/make/scripts/compare.sh Sat Sep 22 20:31:45 2018 -0700
+++ b/make/scripts/compare.sh Mon Sep 24 10:59:26 2018 -0700
@@ -65,6 +65,59 @@
. "$COMPARE_EXCEPTIONS_INCLUDE"
################################################################################
+#
+# Disassembly diff filters. These filters try to filter out ephemeral parts of the
+# disassembly, such as hard-coded addresses, to be able to catch "actual" differences.
+
+if [ "$OPENJDK_TARGET_OS" = "solaris" ]; then
+ if [ "$OPENJDK_TARGET_CPU" = "sparcv9" ]; then
+ DIS_DIFF_FILTER="$SED \
+ -e 's/^[0-9a-f]\{16\}/<ADDR>:/' \
+ -e 's/^ *[0-9a-f]\{3,12\}:/ <ADDR>:/' \
+ -e 's/: [0-9a-f][0-9a-f]\( [0-9a-f][0-9a-f]\)\{2,10\}/: <NUMS>/' \
+ -e 's/\$[a-zA-Z0-9_\$]\{15\}\./<SYM>./' \
+ -e 's/, [0-9a-fx\-]\{1,8\}/, <ADDR>/g' \
+ -e 's/0x[0-9a-f]\{1,8\}/<HEX>/g' \
+ -e 's/\! [0-9a-f]\{1,8\} /! <ADDR> /' \
+ -e 's/call [0-9a-f]\{4,7\}/call <ADDR>/' \
+ -e 's/%hi(0),/%hi(<HEX>),/' \
+ "
+ elif [ "$OPENJDK_TARGET_CPU" = "x86_64" ]; then
+ # Random strings looking like this differ: <.XAKoKoPIac2W0OA.
+ DIS_DIFF_FILTER="$SED \
+ -e 's/<\.[A-Za-z0-9]\{\15}\./<.SYM./' \
+ "
+ fi
+elif [ "$OPENJDK_TARGET_OS" = "windows" ]; then
+ if [ "$OPENJDK_TARGET_CPU" = "x86" ]; then
+ DIS_DIFF_FILTER="$SED -r \
+ -e 's/^ [0-9A-F]{16}: //' \
+ -e 's/^ [0-9A-F]{8}: / <ADDR>: /' \
+ -e 's/(offset \?\?)_C@_.*/\1<SYM>/' \
+ -e 's/[@?][A-Za-z0-9_]{1,25}/<SYM>/' \
+ -e 's/([-,+])[0-9A-F]{2,16}/\1<HEXSTR>/g' \
+ -e 's/\[[0-9A-F]{4,16}h\]/[<HEXSTR>]/' \
+ -e 's/: ([a-z]{2}[a-z ]{2}) [0-9A-F]{2,16}h?$/: \1 <HEXSTR>/' \
+ -e 's/_20[0-9]{2}_[0-1][0-9]_[0-9]{2}/_<DATE>/' \
+ "
+ elif [ "$OPENJDK_TARGET_CPU" = "x86_64" ]; then
+ DIS_DIFF_FILTER="$SED -r \
+ -e 's/^ [0-9A-F]{16}: //' \
+ -e 's/\[[0-9A-F]{4,16}h\]/[<HEXSTR>]/' \
+ -e 's/([,+])[0-9A-F]{2,16}h/\1<HEXSTR>/' \
+ -e 's/([a-z]{2}[a-z ]{2}) [0-9A-F]{4,16}$/\1 <HEXSTR>/' \
+ -e 's/\[\?\?_C@_.*/[<SYM>]/' \
+ "
+ fi
+elif [ "$OPENJDK_TARGET_OS" = "macosx" ]; then
+ DIS_DIFF_FILTER="LANG=C $SED \
+ -e 's/0x[0-9a-f]\{3,16\}/<HEXSTR>/g' -e 's/^[0-9a-f]\{12,20\}/<ADDR>/' \
+ -e 's/-20[0-9][0-9]-[0-1][0-9]-[0-3][0-9]-[0-2][0-9]\{5\}/<DATE>/g' \
+ -e 's/), built on .*/), <DATE>/' \
+ "
+fi
+
+################################################################################
# Compare text files and ignore specific differences:
#
# * Timestamps in Java sources generated by idl2java
--- a/make/scripts/compare_exceptions.sh.incl Sat Sep 22 20:31:45 2018 -0700
+++ b/make/scripts/compare_exceptions.sh.incl Mon Sep 24 10:59:26 2018 -0700
@@ -36,548 +36,37 @@
# Diff exceptions
if [ "$OPENJDK_TARGET_OS" = "linux" ]; then
-
- STRIP_BEFORE_COMPARE="
- "
-
ACCEPTED_BIN_DIFF="
- ./lib/client/libjsig.so
- ./lib/client/libjvm.so
- ./lib/libattach.so
- ./lib/libdt_socket.so
- ./lib/libinstrument.so
- ./lib/libjsdt.so
- ./lib/libjsig.so
- ./lib/libmanagement.so
- ./lib/libnet.so
- ./lib/libnpt.so
- ./lib/libverify.so
- ./lib/minimal/libjsig.so
- ./lib/minimal/libjvm.so
- ./lib/server/libjsig.so
./lib/server/libjvm.so
- ./bin/idlj
- ./bin/jar
- ./bin/jarsigner
- ./bin/java
- ./bin/javac
- ./bin/javadoc
- ./bin/javap
- ./bin/jdeps
- ./bin/jcmd
- ./bin/jconsole
- ./bin/jdb
- ./bin/jhsdb
- ./bin/jimage
- ./bin/jinfo
- ./bin/jjs
- ./bin/jlink
- ./bin/jmap
- ./bin/jmod
- ./bin/jps
- ./bin/jrunscript
- ./bin/jsadebugd
- ./bin/jshell
- ./bin/jstack
- ./bin/jstat
- ./bin/jstatd
- ./bin/keytool
- ./bin/orbd
- ./bin/pack200
- ./bin/rmic
- ./bin/rmid
- ./bin/rmiregistry
- ./bin/schemagen
- ./bin/serialver
- ./bin/servertool
- ./bin/tnameserv
- ./bin/wsgen
- ./bin/wsimport
- ./bin/xjc
"
-
- if [ "$OPENJDK_TARGET_CPU" = "arm" ]; then
- # NOTE: When comparing the old and new hotspot builds, the link time
- # optimization makes good comparisons impossible. Fulldump compare always
- # fails and disassembly can end up with some functions in different order.
- # So for now, accept the difference but put a limit on the size. The
- # different order of functions shouldn't result in a very big diff.
- KNOWN_FULLDUMP_DIFF="
- ./lib/minimal/libjvm.so
- "
-
- # Link time optimization adds random numbers to symbol names
- NEED_DIS_DIFF_FILTER="
- ./lib/minimal/libjvm.so
- "
- DIS_DIFF_FILTER="$SED -r \
- -e 's/\.[0-9]+/.X/g' \
- -e 's/\t[0-9a-f]{4} [0-9a-f]{4} /\tXXXX XXXX /' \
- -e 's/\t[0-9a-f]{5,} /\t<HEX> /' \
- "
- KNOWN_DIS_DIFF="
- ./lib/minimal/libjvm.so
- "
- MAX_KNOWN_DIS_DIFF_SIZE="3000"
-
- NEED_SYMBOLS_DIFF_FILTER="
- ./lib/minimal/libjvm.so
- "
- SYMBOLS_DIFF_FILTER="$SED -r \
- -e 's/\.[0-9]+/.X/g'
- "
- fi
-fi
-
-if [ "$OPENJDK_TARGET_OS" = "solaris" ] && [ "$OPENJDK_TARGET_CPU" = "x86_64" ]; then
-
- STRIP_BEFORE_COMPARE="
- "
-
+elif [ "$OPENJDK_TARGET_OS" = "solaris" ]; then
+ SKIP_BIN_DIFF="true"
+ SKIP_FULLDUMP_DIFF="true"
+ MAX_KNOWN_DIS_DIFF_SIZE="3000"
SORT_SYMBOLS="
- ./lib/server/libjvm.so
./lib/libfontmanager.so
./lib/libjimage.so
- ./lib/libsaproc.so
./lib/libunpack.so
+ ./lib/server/libjvm.so
./bin/unpack200
"
-
- SKIP_BIN_DIFF="true"
-
- ACCEPTED_SMALL_SIZE_DIFF="
- ./lib/jli/libjli.so
- ./lib/jspawnhelper
- ./lib/libJdbcOdbc.so
- ./lib/libattach.so
- ./lib/libawt.so
- ./lib/libawt_headless.so
- ./lib/libawt_xawt.so
- ./lib/libdcpr.so
- ./lib/libdt_socket.so
- ./lib/libfontmanager.so
- ./lib/libinstrument.so
- ./lib/libj2gss.so
- ./lib/libj2pcsc.so
- ./lib/libj2pkcs11.so
- ./lib/libj2ucrypto.so
- ./lib/libjaas_unix.so
- ./lib/libjava.so
- ./lib/libjawt.so
- ./lib/libjdwp.so
- ./lib/libjpeg.so
- ./lib/libjsdt.so
- ./lib/libjsound.so
- ./lib/libkcms.so
- ./lib/liblcms.so
- ./lib/libmanagement.so
- ./lib/libmlib_image.so
- ./lib/libnet.so
- ./lib/libnio.so
- ./lib/libnpt.so
- ./lib/libsctp.so
- ./lib/libsplashscreen.so
- ./lib/libsunec.so
- ./lib/libsunwjdga.so
- ./lib/libunpack.so
- ./lib/libverify.so
- ./lib/libzip.so
- ./lib/server/64/libjvm_db.so
- ./lib/server/64/libjvm_dtrace.so
- ./lib/server/libjvm.so
- ./lib/server/libjvm_db.so
- ./lib/server/libjvm_dtrace.so
- ./bin/idlj
- ./bin/jar
- ./bin/jarsigner
- ./bin/java
- ./bin/javac
- ./bin/javadoc
- ./bin/javap
- ./bin/jdeps
- ./bin/jcmd
- ./bin/jconsole
- ./bin/jdb
- ./bin/jimage
- ./bin/jinfo
- ./bin/jjs
- ./bin/jlink
- ./bin/jmap
- ./bin/jmod
- ./bin/jps
- ./bin/jrunscript
- ./bin/jsadebugd
- ./bin/jstack
- ./bin/jstat
- ./bin/jstatd
- ./bin/keytool
- ./bin/orbd
- ./bin/pack200
- ./bin/rmic
- ./bin/rmid
- ./bin/rmiregistry
- ./bin/schemagen
- ./bin/serialver
- ./bin/servertool
- ./bin/tnameserv
- ./bin/unpack200
- ./bin/wsgen
- ./bin/wsimport
- ./bin/xjc
- "
-
- SKIP_FULLDUMP_DIFF="true"
-
- # Random strings looking like this differ: <.XAKoKoPIac2W0OA.
- DIS_DIFF_FILTER="$SED \
- -e 's/<\.[A-Za-z0-9]\{\15}\./<.SYM./' \
- "
-
-fi
-
-if [ "$OPENJDK_TARGET_OS" = "solaris" ] && [ "$OPENJDK_TARGET_CPU" = "sparcv9" ]; then
-
- STRIP_BEFORE_COMPARE="
- "
-
- SORT_SYMBOLS="
- ./lib/libjsig.so
+ KNOWN_DIS_DIFF="
./lib/libfontmanager.so
- ./lib/libjimage.so
- ./lib/libsaproc.so
- ./lib/libunpack.so
- ./lib/server/libjvm.so
- ./lib/server/libjvm_dtrace.so
- ./bin/unpack200
- "
-
- SKIP_BIN_DIFF="true"
-
- ACCEPTED_SMALL_SIZE_DIFF="
- ./lib/client/libjvm.so
- ./lib/jli/libjli.so
- ./lib/jspawnhelper
- ./lib/libJdbcOdbc.so
- ./lib/libattach.so
- ./lib/libawt.so
- ./lib/libawt_headless.so
- ./lib/libawt_xawt.so
- ./lib/libdcpr.so
- ./lib/libdt_socket.so
- ./lib/libfontmanager.so
- ./lib/libinstrument.so
- ./lib/libj2gss.so
- ./lib/libj2pcsc.so
- ./lib/libj2pkcs11.so
- ./lib/libj2ucrypto.so
- ./lib/libjaas_unix.so
- ./lib/libjava.so
- ./lib/libjawt.so
- ./lib/libjdwp.so
- ./lib/libjpeg.so
- ./lib/libjsdt.so
- ./lib/libjsound.so
- ./lib/libkcms.so
- ./lib/liblcms.so
- ./lib/libmanagement.so
- ./lib/libmlib_image.so
- ./lib/libmlib_image_v.so
- ./lib/libnet.so
- ./lib/libnio.so
- ./lib/libnpt.so
- ./lib/libsctp.so
- ./lib/libsplashscreen.so
- ./lib/libsunec.so
- ./lib/libsunwjdga.so
- ./lib/libunpack.so
- ./lib/libverify.so
- ./lib/libzip.so
- ./lib/server/libjvm.so
- ./bin/idlj
- ./bin/jar
- ./bin/jarsigner
- ./bin/java
- ./bin/javac
- ./bin/javadoc
- ./bin/javap
- ./bin/jdeps
- ./bin/jcmd
- ./bin/jconsole
- ./bin/jdb
- ./bin/jimage
- ./bin/jinfo
- ./bin/jjs
- ./bin/jlink
- ./bin/jmap
- ./bin/jmod
- ./bin/jps
- ./bin/jrunscript
- ./bin/jsadebugd
- ./bin/jstack
- ./bin/jstat
- ./bin/jstatd
- ./bin/keytool
- ./bin/orbd
- ./bin/pack200
- ./bin/rmic
- ./bin/rmid
- ./bin/rmiregistry
- ./bin/schemagen
- ./bin/serialver
- ./bin/servertool
- ./bin/tnameserv
- ./bin/unpack200
- ./bin/wsgen
- ./bin/wsimport
- ./bin/xjc
- "
-
- DIS_DIFF_FILTER="$SED \
- -e 's/^[0-9a-f]\{16\}/<ADDR>:/' \
- -e 's/^ *[0-9a-f]\{3,12\}:/ <ADDR>:/' \
- -e 's/: [0-9a-f][0-9a-f]\( [0-9a-f][0-9a-f]\)\{2,10\}/: <NUMS>/' \
- -e 's/\$[a-zA-Z0-9_\$]\{15\}\./<SYM>./' \
- -e 's/, [0-9a-fx\-]\{1,8\}/, <ADDR>/g' \
- -e 's/0x[0-9a-f]\{1,8\}/<HEX>/g' \
- -e 's/\! [0-9a-f]\{1,8\} /! <ADDR> /' \
- -e 's/call [0-9a-f]\{4,7\}/call <ADDR>/' \
- -e 's/%hi(0),/%hi(<HEX>),/' \
- "
-
- KNOWN_DIS_DIFF="
./lib/libsaproc.so
"
-
- MAX_KNOWN_DIS_DIFF_SIZE="3000"
-
- ACCEPTED_DIS_DIFF="
- ./lib/libfontmanager.so
- ./lib/libsaproc.so
- ./lib/server/libjvm.so
- "
-
+elif [ "$OPENJDK_TARGET_OS" = "windows" ]; then
+ SKIP_BIN_DIFF="true"
SKIP_FULLDUMP_DIFF="true"
-
-fi
-
-
-if [ "$OPENJDK_TARGET_OS" = "windows" ]; then
-
ACCEPTED_JARZIP_CONTENTS="
- /modules_libs/java.security.jgss/w2k_lsa_auth.diz
/modules_libs/java.security.jgss/w2k_lsa_auth.pdb
/modules_libs/java.security.jgss/w2k_lsa_auth.map
/modules_libs/java.security.jgss/w2k_lsa_auth.dll
"
-
- # Probably should add all libs here
- ACCEPTED_SMALL_SIZE_DIFF="
- ./bin/attach.dll
- ./bin/jsoundds.dll
- ./bin/client/jvm.dll
- ./bin/server/jvm.dll
- ./bin/idlj.exe
- ./bin/jar.exe
- ./bin/jarsigner.exe
- ./bin/java-rmi.exe
- ./bin/java.exe
- ./bin/javac.exe
- ./bin/javadoc.exe
- ./bin/javap.exe
- ./bin/jdeps.exe
- ./bin/javaw.exe
- ./bin/jcmd.exe
- ./bin/jconsole.exe
- ./bin/jdb.exe
- ./bin/jimage.exe
- ./bin/jinfo.exe
- ./bin/jjs.exe
- ./bin/jlink.exe
- ./bin/jmap.exe
- ./bin/jmod.exe
- ./bin/jps.exe
- ./bin/jrunscript.exe
- ./bin/jsadebugd.exe
- ./bin/jstack.exe
- ./bin/jstat.exe
- ./bin/jstatd.exe
- ./bin/keytool.exe
- ./bin/kinit.exe
- ./bin/klist.exe
- ./bin/ktab.exe
- ./bin/orbd.exe
- ./bin/pack200.exe
- ./bin/rmic.exe
- ./bin/rmid.exe
- ./bin/rmiregistry.exe
- ./bin/schemagen.exe
- ./bin/serialver.exe
- ./bin/servertool.exe
- ./bin/tnameserv.exe
- ./bin/unpack200.exe
- ./bin/wsgen.exe
- ./bin/wsimport.exe
- ./bin/xjc.exe
- "
-
- SORT_SYMBOLS="
- ./bin/fontmanager.dll
- "
-
- ACCEPTED_DIS_DIFF="
- ./bin/jabswitch.exe
- ./bin/fontmanager.dll
- "
-
- if [ "$OPENJDK_TARGET_CPU" = "x86" ]; then
- DIS_DIFF_FILTER="$SED -r \
- -e 's/^ [0-9A-F]{16}: //' \
- -e 's/^ [0-9A-F]{8}: / <ADDR>: /' \
- -e 's/(offset \?\?)_C@_.*/\1<SYM>/' \
- -e 's/[@?][A-Za-z0-9_]{1,25}/<SYM>/' \
- -e 's/([-,+])[0-9A-F]{2,16}/\1<HEXSTR>/g' \
- -e 's/\[[0-9A-F]{4,16}h\]/[<HEXSTR>]/' \
- -e 's/: ([a-z]{2}[a-z ]{2}) [0-9A-F]{2,16}h?$/: \1 <HEXSTR>/' \
- -e 's/_20[0-9]{2}_[0-1][0-9]_[0-9]{2}/_<DATE>/' \
- "
- elif [ "$OPENJDK_TARGET_CPU" = "x86_64" ]; then
- DIS_DIFF_FILTER="$SED -r \
- -e 's/^ [0-9A-F]{16}: //' \
- -e 's/\[[0-9A-F]{4,16}h\]/[<HEXSTR>]/' \
- -e 's/([,+])[0-9A-F]{2,16}h/\1<HEXSTR>/' \
- -e 's/([a-z]{2}[a-z ]{2}) [0-9A-F]{4,16}$/\1 <HEXSTR>/' \
- -e 's/\[\?\?_C@_.*/[<SYM>]/' \
- "
- fi
-
- SKIP_BIN_DIFF="true"
- SKIP_FULLDUMP_DIFF="true"
-
- # NOTE: When comparing the old and new hotspot builds, the server jvm.dll
- # cannot be made equal in disassembly. Some functions just always end up
- # in different order. So for now, accept the difference but put a limit
- # on the size. The different order of functions shouldn't result in a very
- # big diff.
- KNOWN_DIS_DIFF="
- ./bin/server/jvm.dll
- "
- MAX_KNOWN_DIS_DIFF_SIZE="2000000"
-fi
-
-
-if [ "$OPENJDK_TARGET_OS" = "macosx" ]; then
-
- ACCEPTED_JARZIP_CONTENTS="
- /META-INF/INDEX.LIST
- "
-
+elif [ "$OPENJDK_TARGET_OS" = "macosx" ]; then
ACCEPTED_BIN_DIFF="
- ./bin/idlj
- ./bin/jar
- ./bin/jarsigner
- ./bin/java
- ./bin/javac
- ./bin/javadoc
- ./bin/javap
- ./bin/javaws
- ./bin/jdeps
- ./bin/jcmd
- ./bin/jconsole
- ./bin/jdb
- ./bin/jimage
- ./bin/jinfo
- ./bin/jjs
- ./bin/jlink
- ./bin/jmap
- ./bin/jmod
- ./bin/jps
- ./bin/jrunscript
- ./bin/jsadebugd
- ./bin/jstack
- ./bin/jstat
- ./bin/jstatd
- ./bin/keytool
- ./bin/orbd
- ./bin/pack200
- ./bin/rmic
- ./bin/rmid
- ./bin/rmiregistry
- ./bin/schemagen
- ./bin/serialver
- ./bin/servertool
- ./bin/tnameserv
- ./bin/wsgen
- ./bin/wsimport
- ./bin/xjc
- ./Contents/Home/bin/_javaws
- ./Contents/Home/bin/javaws
- ./Contents/Home/bin/idlj
- ./Contents/Home/bin/servertool
- ./Contents/Home/lib/shortcuts/JavaWSApplicationStub
- ./Contents/Home/lib/jli/libjli.dylib
- ./Contents/Home/lib/jspawnhelper
- ./Contents/Home/lib/libAppleScriptEngine.dylib
- ./Contents/Home/lib/libattach.dylib
- ./Contents/Home/lib/libawt_lwawt.dylib
- ./Contents/Home/lib/libdeploy.dylib
- ./Contents/Home/lib/libdt_socket.dylib
- ./Contents/Home/lib/libinstrument.dylib
- ./Contents/Home/lib/libjdwp.dylib
- ./Contents/Home/lib/libjsdt.dylib
- ./Contents/Home/lib/libjsig.dylib
- ./Contents/Home/lib/libmanagement.dylib
- ./Contents/Home/lib/libnpjp2.dylib
- ./Contents/Home/lib/libosx.dylib
- ./Contents/Home/lib/libosxapp.dylib
- ./Contents/Home/lib/libosxui.dylib
- ./Contents/Home/lib/libverify.dylib
- ./Contents/Home/lib/libsaproc.dylib
- ./Contents/Home/lib/libsplashscreen.dylib
- ./Contents/Home/lib/server/libjsig.dylib
- ./Contents/Home/lib/server/libjvm.dylib
- ./Contents/Home/lib/deploy/JavaControlPanel.prefPane/Contents/MacOS/JavaControlPanel
- ./Contents/Resources/JavaControlPanelHelper
- ./Contents/Resources/JavaUpdater.app/Contents/MacOS/JavaUpdater
- ./Contents/Resources/JavawsLauncher.app/Contents/MacOS/JavawsLauncher
- ./lib/shortcuts/JavaWSApplicationStub
- ./lib/jli/libjli.dylib
- ./lib/jspawnhelper
- ./lib/libAppleScriptEngine.dylib
- ./lib/libattach.dylib
./lib/libawt_lwawt.dylib
- ./lib/libdeploy.dylib
- ./lib/libdt_socket.dylib
- ./lib/libinstrument.dylib
- ./lib/libjdwp.dylib
- ./lib/libjsdt.dylib
- ./lib/libjsig.dylib
- ./lib/libmanagement.dylib
- ./lib/libnpjp2.dylib
- ./lib/libosx.dylib
./lib/libosxapp.dylib
./lib/libosxui.dylib
- ./lib/libverify.dylib
- ./lib/libsaproc.dylib
- ./lib/libsplashscreen.dylib
- ./lib/server/libjsig.dylib
./lib/server/libjvm.dylib
- ./lib/deploy/JavaControlPanel.prefPane/Contents/MacOS/JavaControlPanel
- ./Versions/A/Resources/finish_installation.app/Contents/MacOS/finish_installation
- ./Versions/A/Sparkle
"
-
- SORT_SYMBOLS="
- ./Contents/Home/lib/libsaproc.dylib
- ./lib/libsaproc.dylib
- ./lib/libjsig.dylib
- "
-
- ACCEPTED_SMALL_SIZE_DIFF="$ACCEPTED_BIN_DIFF"
-
- DIS_DIFF_FILTER="LANG=C $SED \
- -e 's/0x[0-9a-f]\{3,16\}/<HEXSTR>/g' -e 's/^[0-9a-f]\{12,20\}/<ADDR>/' \
- -e 's/-20[0-9][0-9]-[0-1][0-9]-[0-3][0-9]-[0-2][0-9]\{5\}/<DATE>/g' \
- -e 's/), built on .*/), <DATE>/' \
- "
-
fi
--- a/src/hotspot/cpu/arm/c1_LIRAssembler_arm.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/cpu/arm/c1_LIRAssembler_arm.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -2359,8 +2359,11 @@
ShouldNotReachHere();
}
} else if (opr2->is_single_cpu()) {
- if (opr1->type() == T_OBJECT || opr1->type() == T_ARRAY || opr1->type() == T_METADATA || opr1->type() == T_ADDRESS) {
- assert(opr2->type() == T_OBJECT || opr2->type() == T_ARRAY || opr2->type() == T_METADATA || opr2->type() == T_ADDRESS, "incompatibe type");
+ if (opr1->type() == T_OBJECT || opr1->type() == T_ARRAY) {
+ assert(opr2->type() == T_OBJECT || opr2->type() == T_ARRAY, "incompatibe type");
+ __ cmpoop(opr1->as_register(), opr2->as_register());
+ } else if (opr1->type() == T_METADATA || opr1->type() == T_ADDRESS) {
+ assert(opr2->type() == T_METADATA || opr2->type() == T_ADDRESS, "incompatibe type");
__ cmp(opr1->as_register(), opr2->as_register());
} else {
assert(opr2->type() != T_OBJECT && opr2->type() != T_ARRAY && opr2->type() != T_METADATA && opr2->type() != T_ADDRESS, "incompatibe type");
@@ -2761,6 +2764,9 @@
assert(length == R4, "code assumption");
#endif // AARCH64
+ __ resolve(ACCESS_READ, src);
+ __ resolve(ACCESS_WRITE, dst);
+
CodeStub* stub = op->stub();
int flags = op->flags();
@@ -3126,6 +3132,7 @@
__ b(*op->stub()->entry());
} else if (op->code() == lir_lock) {
assert(BasicLock::displaced_header_offset_in_bytes() == 0, "lock_reg must point to the displaced header");
+ __ resolve(ACCESS_READ | ACCESS_WRITE, obj);
int null_check_offset = __ lock_object(hdr, obj, lock, tmp, *op->stub()->entry());
if (op->info() != NULL) {
add_debug_info_for_null_check(null_check_offset, op->info());
--- a/src/hotspot/cpu/arm/c1_MacroAssembler_arm.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/cpu/arm/c1_MacroAssembler_arm.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -90,7 +90,6 @@
tlab_allocate(obj, obj_end, tmp1, size_expression, slow_case);
} else {
eden_allocate(obj, obj_end, tmp1, tmp2, size_expression, slow_case);
- incr_allocated_bytes(size_expression, tmp1);
}
}
--- a/src/hotspot/cpu/arm/c1_Runtime1_arm.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/cpu/arm/c1_Runtime1_arm.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -569,7 +569,6 @@
__ ldr_u32(obj_size, Address(klass, Klass::layout_helper_offset()));
__ eden_allocate(result, obj_end, tmp1, tmp2, obj_size, slow_case); // initializes result and obj_end
- __ incr_allocated_bytes(obj_size, tmp2);
__ initialize_object(result, obj_end, klass, noreg /* len */, tmp1, tmp2,
instanceOopDesc::header_size() * HeapWordSize, -1,
/* is_tlab_allocated */ false);
@@ -658,7 +657,6 @@
// eden_allocate destroys tmp2, so reload header_size after allocation
// eden_allocate initializes result and obj_end
__ eden_allocate(result, obj_end, tmp1, tmp2, arr_size, slow_case);
- __ incr_allocated_bytes(arr_size, tmp2);
__ ldrb(tmp2, Address(klass, in_bytes(Klass::layout_helper_offset()) +
Klass::_lh_header_size_shift / BitsPerByte));
__ initialize_object(result, obj_end, klass, length, tmp1, tmp2, tmp2, -1, /* is_tlab_allocated */ false);
--- a/src/hotspot/cpu/arm/gc/shared/barrierSetAssembler_arm.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/cpu/arm/gc/shared/barrierSetAssembler_arm.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -24,6 +24,8 @@
#include "precompiled.hpp"
#include "gc/shared/barrierSetAssembler.hpp"
+#include "gc/shared/collectedHeap.hpp"
+#include "runtime/thread.hpp"
#define __ masm->
@@ -162,3 +164,122 @@
}
}
+void BarrierSetAssembler::obj_equals(MacroAssembler* masm,
+ Register obj1, Register obj2) {
+ __ cmp(obj1, obj2);
+}
+
+// Puts address of allocated object into register `obj` and end of allocated object into register `obj_end`.
+void BarrierSetAssembler::eden_allocate(MacroAssembler* masm, Register obj, Register obj_end, Register tmp1, Register tmp2,
+ RegisterOrConstant size_expression, Label& slow_case) {
+ if (!Universe::heap()->supports_inline_contig_alloc()) {
+ __ b(slow_case);
+ return;
+ }
+
+ CollectedHeap* ch = Universe::heap();
+
+ const Register top_addr = tmp1;
+ const Register heap_end = tmp2;
+
+ if (size_expression.is_register()) {
+ assert_different_registers(obj, obj_end, top_addr, heap_end, size_expression.as_register());
+ } else {
+ assert_different_registers(obj, obj_end, top_addr, heap_end);
+ }
+
+ bool load_const = AARCH64_ONLY(false) NOT_AARCH64(VM_Version::supports_movw() ); // TODO-AARCH64 check performance
+ if (load_const) {
+ __ mov_address(top_addr, (address)Universe::heap()->top_addr(), symbolic_Relocation::eden_top_reference);
+ } else {
+ __ ldr(top_addr, Address(Rthread, JavaThread::heap_top_addr_offset()));
+ }
+ // Calculate new heap_top by adding the size of the object
+ Label retry;
+ __ bind(retry);
+
+#ifdef AARCH64
+ __ ldxr(obj, top_addr);
+#else
+ __ ldr(obj, Address(top_addr));
+#endif // AARCH64
+
+ __ ldr(heap_end, Address(top_addr, (intptr_t)ch->end_addr() - (intptr_t)ch->top_addr()));
+ __ add_rc(obj_end, obj, size_expression);
+ // Check if obj_end wrapped around, i.e., obj_end < obj. If yes, jump to the slow case.
+ __ cmp(obj_end, obj);
+ __ b(slow_case, lo);
+ // Update heap_top if allocation succeeded
+ __ cmp(obj_end, heap_end);
+ __ b(slow_case, hi);
+
+#ifdef AARCH64
+ __ stxr(heap_end/*scratched*/, obj_end, top_addr);
+ __ cbnz_w(heap_end, retry);
+#else
+ __ atomic_cas_bool(obj, obj_end, top_addr, 0, heap_end/*scratched*/);
+ __ b(retry, ne);
+#endif // AARCH64
+
+ incr_allocated_bytes(masm, size_expression, tmp1);
+}
+
+// Puts address of allocated object into register `obj` and end of allocated object into register `obj_end`.
+void BarrierSetAssembler::tlab_allocate(MacroAssembler* masm, Register obj, Register obj_end, Register tmp1,
+ RegisterOrConstant size_expression, Label& slow_case) {
+ const Register tlab_end = tmp1;
+ assert_different_registers(obj, obj_end, tlab_end);
+
+ __ ldr(obj, Address(Rthread, JavaThread::tlab_top_offset()));
+ __ ldr(tlab_end, Address(Rthread, JavaThread::tlab_end_offset()));
+ __ add_rc(obj_end, obj, size_expression);
+ __ cmp(obj_end, tlab_end);
+ __ b(slow_case, hi);
+ __ str(obj_end, Address(Rthread, JavaThread::tlab_top_offset()));
+}
+
+void BarrierSetAssembler::incr_allocated_bytes(MacroAssembler* masm, RegisterOrConstant size_in_bytes, Register tmp) {
+#ifdef AARCH64
+ __ ldr(tmp, Address(Rthread, in_bytes(JavaThread::allocated_bytes_offset())));
+ __ add_rc(tmp, tmp, size_in_bytes);
+ __ str(tmp, Address(Rthread, in_bytes(JavaThread::allocated_bytes_offset())));
+#else
+ // Bump total bytes allocated by this thread
+ Label done;
+
+ // Borrow the Rthread for alloc counter
+ Register Ralloc = Rthread;
+ __ add(Ralloc, Ralloc, in_bytes(JavaThread::allocated_bytes_offset()));
+ __ ldr(tmp, Address(Ralloc));
+ __ adds(tmp, tmp, size_in_bytes);
+ __ str(tmp, Address(Ralloc), cc);
+ __ b(done, cc);
+
+ // Increment the high word and store single-copy atomically (that is an unlikely scenario on typical embedded systems as it means >4GB has been allocated)
+ // To do so ldrd/strd instructions used which require an even-odd pair of registers. Such a request could be difficult to satisfy by
+ // allocating those registers on a higher level, therefore the routine is ready to allocate a pair itself.
+ Register low, high;
+ // Select ether R0/R1 or R2/R3
+
+ if (size_in_bytes.is_register() && (size_in_bytes.as_register() == R0 || size_in_bytes.as_register() == R1)) {
+ low = R2;
+ high = R3;
+ } else {
+ low = R0;
+ high = R1;
+ }
+ __ push(RegisterSet(low, high));
+
+ __ ldrd(low, Address(Ralloc));
+ __ adds(low, low, size_in_bytes);
+ __ adc(high, high, 0);
+ __ strd(low, Address(Ralloc));
+
+ __ pop(RegisterSet(low, high));
+
+ __ bind(done);
+
+ // Unborrow the Rthread
+ __ sub(Rthread, Ralloc, in_bytes(JavaThread::allocated_bytes_offset()));
+#endif // AARCH64
+}
--- a/src/hotspot/cpu/arm/gc/shared/barrierSetAssembler_arm.hpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/cpu/arm/gc/shared/barrierSetAssembler_arm.hpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,6 +30,12 @@
#include "oops/access.hpp"
class BarrierSetAssembler: public CHeapObj<mtGC> {
+private:
+ void incr_allocated_bytes(MacroAssembler* masm,
+ RegisterOrConstant size_in_bytes,
+ Register tmp
+);
+
public:
virtual void arraycopy_prologue(MacroAssembler* masm, DecoratorSet decorators, bool is_oop,
Register addr, Register count, int callee_saved_regs) {}
@@ -41,7 +47,31 @@
virtual void store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
Address obj, Register new_val, Register tmp1, Register tmp2, Register tmp3, bool is_null);
+ virtual void obj_equals(MacroAssembler* masm,
+ Register obj1, Register obj2);
+
+ virtual void eden_allocate(MacroAssembler* masm,
+ Register obj, // result: pointer to object after successful allocation
+ Register obj_end, // result: pointer to end of object after successful allocation
+ Register tmp1, // temp register
+ Register tmp2, // temp register
+ RegisterOrConstant size_expression, // size of object
+ Label& slow_case // continuation point if fast allocation fails
+ );
+
+ virtual void tlab_allocate(MacroAssembler* masm,
+ Register obj, // result: pointer to object after successful allocation
+ Register obj_end, // result: pointer to end of object after successful allocation
+ Register tmp1, // temp register
+ RegisterOrConstant size_expression, // size of object
+ Label& slow_case // continuation point if fast allocation fails
+ );
+
virtual void barrier_stubs_init() {}
+
+ virtual void resolve(MacroAssembler* masm, DecoratorSet decorators, Register obj) {
+ // Default implementation does not need to do anything.
+ }
};
#endif // CPU_ARM_GC_SHARED_BARRIERSETASSEMBLER_ARM_HPP
--- a/src/hotspot/cpu/arm/macroAssembler_arm.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/cpu/arm/macroAssembler_arm.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -1037,6 +1037,11 @@
#ifndef AARCH64
+void MacroAssembler::cmpoop(Register obj1, Register obj2) {
+ BarrierSetAssembler* bs = BarrierSet::barrier_set()->barrier_set_assembler();
+ bs->obj_equals(this, obj1, obj2);
+}
+
void MacroAssembler::long_move(Register rd_lo, Register rd_hi,
Register rn_lo, Register rn_hi,
AsmCondition cond) {
@@ -1251,68 +1256,15 @@
// Puts address of allocated object into register `obj` and end of allocated object into register `obj_end`.
void MacroAssembler::eden_allocate(Register obj, Register obj_end, Register tmp1, Register tmp2,
RegisterOrConstant size_expression, Label& slow_case) {
- if (!Universe::heap()->supports_inline_contig_alloc()) {
- b(slow_case);
- return;
- }
-
- CollectedHeap* ch = Universe::heap();
-
- const Register top_addr = tmp1;
- const Register heap_end = tmp2;
-
- if (size_expression.is_register()) {
- assert_different_registers(obj, obj_end, top_addr, heap_end, size_expression.as_register());
- } else {
- assert_different_registers(obj, obj_end, top_addr, heap_end);
- }
-
- bool load_const = AARCH64_ONLY(false) NOT_AARCH64(VM_Version::supports_movw() ); // TODO-AARCH64 check performance
- if (load_const) {
- mov_address(top_addr, (address)Universe::heap()->top_addr(), symbolic_Relocation::eden_top_reference);
- } else {
- ldr(top_addr, Address(Rthread, JavaThread::heap_top_addr_offset()));
- }
- // Calculate new heap_top by adding the size of the object
- Label retry;
- bind(retry);
-
-#ifdef AARCH64
- ldxr(obj, top_addr);
-#else
- ldr(obj, Address(top_addr));
-#endif // AARCH64
-
- ldr(heap_end, Address(top_addr, (intptr_t)ch->end_addr() - (intptr_t)ch->top_addr()));
- add_rc(obj_end, obj, size_expression);
- // Check if obj_end wrapped around, i.e., obj_end < obj. If yes, jump to the slow case.
- cmp(obj_end, obj);
- b(slow_case, lo);
- // Update heap_top if allocation succeeded
- cmp(obj_end, heap_end);
- b(slow_case, hi);
-
-#ifdef AARCH64
- stxr(heap_end/*scratched*/, obj_end, top_addr);
- cbnz_w(heap_end, retry);
-#else
- atomic_cas_bool(obj, obj_end, top_addr, 0, heap_end/*scratched*/);
- b(retry, ne);
-#endif // AARCH64
+ BarrierSetAssembler *bs = BarrierSet::barrier_set()->barrier_set_assembler();
+ bs->eden_allocate(this, obj, obj_end, tmp1, tmp2, size_expression, slow_case);
}
// Puts address of allocated object into register `obj` and end of allocated object into register `obj_end`.
void MacroAssembler::tlab_allocate(Register obj, Register obj_end, Register tmp1,
RegisterOrConstant size_expression, Label& slow_case) {
- const Register tlab_end = tmp1;
- assert_different_registers(obj, obj_end, tlab_end);
-
- ldr(obj, Address(Rthread, JavaThread::tlab_top_offset()));
- ldr(tlab_end, Address(Rthread, JavaThread::tlab_end_offset()));
- add_rc(obj_end, obj, size_expression);
- cmp(obj_end, tlab_end);
- b(slow_case, hi);
- str(obj_end, Address(Rthread, JavaThread::tlab_top_offset()));
+ BarrierSetAssembler *bs = BarrierSet::barrier_set()->barrier_set_assembler();
+ bs->tlab_allocate(this, obj, obj_end, tmp1, size_expression, slow_case);
}
// Fills memory regions [start..end] with zeroes. Clobbers `start` and `tmp` registers.
@@ -1358,52 +1310,6 @@
#endif // AARCH64
}
-void MacroAssembler::incr_allocated_bytes(RegisterOrConstant size_in_bytes, Register tmp) {
-#ifdef AARCH64
- ldr(tmp, Address(Rthread, in_bytes(JavaThread::allocated_bytes_offset())));
- add_rc(tmp, tmp, size_in_bytes);
- str(tmp, Address(Rthread, in_bytes(JavaThread::allocated_bytes_offset())));
-#else
- // Bump total bytes allocated by this thread
- Label done;
-
- // Borrow the Rthread for alloc counter
- Register Ralloc = Rthread;
- add(Ralloc, Ralloc, in_bytes(JavaThread::allocated_bytes_offset()));
- ldr(tmp, Address(Ralloc));
- adds(tmp, tmp, size_in_bytes);
- str(tmp, Address(Ralloc), cc);
- b(done, cc);
-
- // Increment the high word and store single-copy atomically (that is an unlikely scenario on typical embedded systems as it means >4GB has been allocated)
- // To do so ldrd/strd instructions used which require an even-odd pair of registers. Such a request could be difficult to satisfy by
- // allocating those registers on a higher level, therefore the routine is ready to allocate a pair itself.
- Register low, high;
- // Select ether R0/R1 or R2/R3
-
- if (size_in_bytes.is_register() && (size_in_bytes.as_register() == R0 || size_in_bytes.as_register() == R1)) {
- low = R2;
- high = R3;
- } else {
- low = R0;
- high = R1;
- }
- push(RegisterSet(low, high));
-
- ldrd(low, Address(Ralloc));
- adds(low, low, size_in_bytes);
- adc(high, high, 0);
- strd(low, Address(Ralloc));
-
- pop(RegisterSet(low, high));
-
- bind(done);
-
- // Unborrow the Rthread
- sub(Rthread, Ralloc, in_bytes(JavaThread::allocated_bytes_offset()));
-#endif // AARCH64
-}
-
void MacroAssembler::arm_stack_overflow_check(int frame_size_in_bytes, Register tmp) {
// Version of AbstractAssembler::generate_stack_overflow_check optimized for ARM
if (UseStackBanging) {
@@ -2269,6 +2175,11 @@
Register chr1, Register chr2, Label& Ldone) {
Label Lvector, Lloop;
+ // if (ary1 == ary2)
+ // return true;
+ cmpoop(ary1, ary2);
+ b(Ldone, eq);
+
// Note: limit contains number of bytes (2*char_elements) != 0.
tst(limit, 0x2); // trailing character ?
b(Lvector, eq);
@@ -2728,6 +2639,14 @@
}
}
+void MacroAssembler::resolve(DecoratorSet decorators, Register obj) {
+ // Use stronger ACCESS_WRITE|ACCESS_READ by default.
+ if ((decorators & (ACCESS_READ | ACCESS_WRITE)) == 0) {
+ decorators |= ACCESS_READ | ACCESS_WRITE;
+ }
+ BarrierSetAssembler* bs = BarrierSet::barrier_set()->barrier_set_assembler();
+ return bs->resolve(this, decorators, obj);
+}
#ifdef AARCH64
--- a/src/hotspot/cpu/arm/macroAssembler_arm.hpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/cpu/arm/macroAssembler_arm.hpp Mon Sep 24 10:59:26 2018 -0700
@@ -361,8 +361,6 @@
void zero_memory(Register start, Register end, Register tmp);
- void incr_allocated_bytes(RegisterOrConstant size_in_bytes, Register tmp);
-
static bool needs_explicit_null_check(intptr_t offset);
void arm_stack_overflow_check(int frame_size_in_bytes, Register tmp);
@@ -1058,6 +1056,10 @@
void access_load_at(BasicType type, DecoratorSet decorators, Address src, Register dst, Register tmp1, Register tmp2, Register tmp3);
void access_store_at(BasicType type, DecoratorSet decorators, Address obj, Register new_val, Register tmp1, Register tmp2, Register tmp3, bool is_null);
+ // Resolves obj for access. Result is placed in the same register.
+ // All other registers are preserved.
+ void resolve(DecoratorSet decorators, Register obj);
+
#ifdef AARCH64
void encode_heap_oop(Register dst, Register src);
void encode_heap_oop(Register r) {
@@ -1246,6 +1248,8 @@
}
#ifndef AARCH64
+ void cmpoop(Register obj1, Register obj2);
+
void long_move(Register rd_lo, Register rd_hi,
Register rn_lo, Register rn_hi,
AsmCondition cond = al);
--- a/src/hotspot/cpu/arm/methodHandles_arm.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/cpu/arm/methodHandles_arm.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -173,7 +173,7 @@
// assert(sizeof(u2) == sizeof(Method::_size_of_parameters), "");
Label L;
__ ldr(tmp, __ receiver_argument_address(Rparams, tmp, tmp));
- __ cmp(tmp, recv);
+ __ cmpoop(tmp, recv);
__ b(L, eq);
__ stop("receiver not on stack");
__ bind(L);
--- a/src/hotspot/cpu/arm/sharedRuntime_arm.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/cpu/arm/sharedRuntime_arm.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -1573,6 +1573,8 @@
// Remember the handle for the unlocking code
__ mov(sync_handle, R1);
+ __ resolve(IS_NOT_NULL, sync_obj);
+
if(UseBiasedLocking) {
__ biased_locking_enter(sync_obj, tmp, disp_hdr/*scratched*/, false, Rtemp, lock_done, slow_lock_biased);
}
@@ -1690,6 +1692,8 @@
if (method->is_synchronized()) {
__ ldr(sync_obj, Address(sync_handle));
+ __ resolve(IS_NOT_NULL, sync_obj);
+
if(UseBiasedLocking) {
__ biased_locking_exit(sync_obj, Rtemp, unlock_done);
// disp_hdr may not have been saved on entry with biased locking
--- a/src/hotspot/cpu/arm/templateInterpreterGenerator_arm.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/cpu/arm/templateInterpreterGenerator_arm.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -605,6 +605,7 @@
#endif // AARCH64
__ load_mirror(R0, Rmethod, Rtemp);
__ bind(done);
+ __ resolve(IS_NOT_NULL, R0);
}
// add space for monitor & lock
--- a/src/hotspot/cpu/arm/templateTable_arm.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/cpu/arm/templateTable_arm.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -2559,7 +2559,7 @@
// assume branch is more often taken than not (loops use backward branches)
Label not_taken;
__ pop_ptr(R1_tmp);
- __ cmp(R1_tmp, R0_tos);
+ __ cmpoop(R1_tmp, R0_tos);
__ b(not_taken, convNegCond(cc));
branch(false, false);
__ bind(not_taken);
@@ -4502,12 +4502,7 @@
const Register Rtlab_end = R2_tmp;
assert_different_registers(Robj, Rsize, Rklass, Rtlab_top, Rtlab_end);
- __ ldr(Robj, Address(Rthread, JavaThread::tlab_top_offset()));
- __ ldr(Rtlab_end, Address(Rthread, in_bytes(JavaThread::tlab_end_offset())));
- __ add(Rtlab_top, Robj, Rsize);
- __ cmp(Rtlab_top, Rtlab_end);
- __ b(slow_case, hi);
- __ str(Rtlab_top, Address(Rthread, JavaThread::tlab_top_offset()));
+ __ tlab_allocate(Robj, Rtlab_top, Rtlab_end, Rsize, slow_case);
if (ZeroTLAB) {
// the fields have been already cleared
__ b(initialize_header);
@@ -4523,34 +4518,7 @@
const Register Rheap_end = Rtemp;
assert_different_registers(Robj, Rklass, Rsize, Rheap_top_addr, Rheap_top, Rheap_end, LR);
- // heap_end now (re)loaded in the loop since also used as a scratch register in the CAS
- __ ldr_literal(Rheap_top_addr, Lheap_top_addr);
-
- Label retry;
- __ bind(retry);
-
-#ifdef AARCH64
- __ ldxr(Robj, Rheap_top_addr);
-#else
- __ ldr(Robj, Address(Rheap_top_addr));
-#endif // AARCH64
-
- __ ldr(Rheap_end, Address(Rheap_top_addr, (intptr_t)Universe::heap()->end_addr()-(intptr_t)Universe::heap()->top_addr()));
- __ add(Rheap_top, Robj, Rsize);
- __ cmp(Rheap_top, Rheap_end);
- __ b(slow_case, hi);
-
- // Update heap top atomically.
- // If someone beats us on the allocation, try again, otherwise continue.
-#ifdef AARCH64
- __ stxr(Rtemp2, Rheap_top, Rheap_top_addr);
- __ cbnz_w(Rtemp2, retry);
-#else
- __ atomic_cas_bool(Robj, Rheap_top, Rheap_top_addr, 0, Rheap_end/*scratched*/);
- __ b(retry, ne);
-#endif // AARCH64
-
- __ incr_allocated_bytes(Rsize, Rtemp);
+ __ eden_allocate(Robj, Rheap_top, Rheap_top_addr, Rheap_end, Rsize, slow_case);
}
}
@@ -4917,6 +4885,8 @@
// check for NULL object
__ null_check(Robj, Rtemp);
+ __ resolve(IS_NOT_NULL, Robj);
+
const int entry_size = (frame::interpreter_frame_monitor_size() * wordSize);
assert (entry_size % StackAlignmentInBytes == 0, "keep stack alignment");
Label allocate_monitor, allocated;
@@ -5047,6 +5017,8 @@
// check for NULL object
__ null_check(Robj, Rtemp);
+ __ resolve(IS_NOT_NULL, Robj);
+
const int entry_size = (frame::interpreter_frame_monitor_size() * wordSize);
Label found, throw_exception;
--- a/src/hotspot/cpu/ppc/assembler_ppc.hpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/cpu/ppc/assembler_ppc.hpp Mon Sep 24 10:59:26 2018 -0700
@@ -529,6 +529,7 @@
XVNEGDP_OPCODE = (60u << OPCODE_SHIFT | 505u << 2),
XVSQRTSP_OPCODE= (60u << OPCODE_SHIFT | 139u << 2),
XVSQRTDP_OPCODE= (60u << OPCODE_SHIFT | 203u << 2),
+ XSCVDPSPN_OPCODE=(60u << OPCODE_SHIFT | 267u << 2),
XVADDDP_OPCODE = (60u << OPCODE_SHIFT | 96u << 3),
XVSUBDP_OPCODE = (60u << OPCODE_SHIFT | 104u << 3),
XVMULSP_OPCODE = (60u << OPCODE_SHIFT | 80u << 3),
@@ -2202,6 +2203,7 @@
inline void xvnegdp( VectorSRegister d, VectorSRegister b);
inline void xvsqrtsp( VectorSRegister d, VectorSRegister b);
inline void xvsqrtdp( VectorSRegister d, VectorSRegister b);
+ inline void xscvdpspn(VectorSRegister d, VectorSRegister b);
inline void xvadddp( VectorSRegister d, VectorSRegister a, VectorSRegister b);
inline void xvsubdp( VectorSRegister d, VectorSRegister a, VectorSRegister b);
inline void xvmulsp( VectorSRegister d, VectorSRegister a, VectorSRegister b);
--- a/src/hotspot/cpu/ppc/assembler_ppc.inline.hpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/cpu/ppc/assembler_ppc.inline.hpp Mon Sep 24 10:59:26 2018 -0700
@@ -777,6 +777,7 @@
inline void Assembler::xvnegdp( VectorSRegister d, VectorSRegister b) { emit_int32( XVNEGDP_OPCODE | vsrt(d) | vsrb(b)); }
inline void Assembler::xvsqrtsp(VectorSRegister d, VectorSRegister b) { emit_int32( XVSQRTSP_OPCODE| vsrt(d) | vsrb(b)); }
inline void Assembler::xvsqrtdp(VectorSRegister d, VectorSRegister b) { emit_int32( XVSQRTDP_OPCODE| vsrt(d) | vsrb(b)); }
+inline void Assembler::xscvdpspn(VectorSRegister d, VectorSRegister b) { emit_int32( XSCVDPSPN_OPCODE | vsrt(d) | vsrb(b)); }
inline void Assembler::xvadddp( VectorSRegister d, VectorSRegister a, VectorSRegister b) { emit_int32( XVADDDP_OPCODE | vsrt(d) | vsra(a) | vsrb(b)); }
inline void Assembler::xvsubdp( VectorSRegister d, VectorSRegister a, VectorSRegister b) { emit_int32( XVSUBDP_OPCODE | vsrt(d) | vsra(a) | vsrb(b)); }
inline void Assembler::xvmulsp( VectorSRegister d, VectorSRegister a, VectorSRegister b) { emit_int32( XVMULSP_OPCODE | vsrt(d) | vsra(a) | vsrb(b)); }
--- a/src/hotspot/cpu/ppc/ppc.ad Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/cpu/ppc/ppc.ad Mon Sep 24 10:59:26 2018 -0700
@@ -13682,6 +13682,7 @@
instruct mtvsrwz(vecX temp1, iRegIsrc src) %{
effect(DEF temp1, USE src);
+ format %{ "MTVSRWZ $temp1, $src \t// Move to 16-byte register" %}
size(4);
ins_encode %{
__ mtvsrwz($temp1$$VectorSRegister, $src$$Register);
@@ -13692,6 +13693,7 @@
instruct xxspltw(vecX dst, vecX src, immI8 imm1) %{
effect(DEF dst, USE src, USE imm1);
+ format %{ "XXSPLTW $dst, $src, $imm1 \t// Splat word" %}
size(4);
ins_encode %{
__ xxspltw($dst$$VectorSRegister, $src$$VectorSRegister, $imm1$$constant);
@@ -13699,6 +13701,17 @@
ins_pipe(pipe_class_default);
%}
+instruct xscvdpspn_regF(vecX dst, regF src) %{
+ effect(DEF dst, USE src);
+
+ format %{ "XSCVDPSPN $dst, $src \t// Convert scalar single precision to vector single precision" %}
+ size(4);
+ ins_encode %{
+ __ xscvdpspn($dst$$VectorSRegister, $src$$FloatRegister->to_vsr());
+ %}
+ ins_pipe(pipe_class_default);
+%}
+
//---------- Replicate Vector Instructions ------------------------------------
// Insrdi does replicate if src == dst.
@@ -14360,24 +14373,16 @@
ins_pipe(pipe_class_default);
%}
-
instruct repl4F_reg_Ex(vecX dst, regF src) %{
match(Set dst (ReplicateF src));
predicate(n->as_Vector()->length() == 4);
- ins_cost(2 * MEMORY_REF_COST + DEFAULT_COST);
- expand %{
- stackSlotL tmpS;
- iRegIdst tmpI;
- iRegLdst tmpL;
+ ins_cost(DEFAULT_COST);
+ expand %{
vecX tmpV;
immI8 zero %{ (int) 0 %}
- moveF2I_reg_stack(tmpS, src); // Move float to stack.
- moveF2I_stack_reg(tmpI, tmpS); // Move stack to int reg.
- moveReg(tmpL, tmpI); // Move int to long reg.
- repl32(tmpL); // Replicate bitpattern.
- mtvsrd(tmpV, tmpL);
- xxpermdi(dst, tmpV, tmpV, zero);
+ xscvdpspn_regF(tmpV, src);
+ xxspltw(dst, tmpV, zero);
%}
%}
@@ -14404,17 +14409,13 @@
instruct repl2D_reg_Ex(vecX dst, regD src) %{
match(Set dst (ReplicateD src));
predicate(n->as_Vector()->length() == 2);
- expand %{
- stackSlotL tmpS;
- iRegLdst tmpL;
- iRegLdst tmp;
- vecX tmpV;
- immI8 zero %{ (int) 0 %}
- moveD2L_reg_stack(tmpS, src);
- moveD2L_stack_reg(tmpL, tmpS);
- mtvsrd(tmpV, tmpL);
- xxpermdi(dst, tmpV, tmpV, zero);
- %}
+
+ format %{ "XXPERMDI $dst, $src, $src, 0 \t// Splat doubleword" %}
+ size(4);
+ ins_encode %{
+ __ xxpermdi($dst$$VectorSRegister, $src$$FloatRegister->to_vsr(), $src$$FloatRegister->to_vsr(), 0);
+ %}
+ ins_pipe(pipe_class_default);
%}
instruct repl2D_immI0(vecX dst, immI_0 zero) %{
@@ -14445,7 +14446,7 @@
predicate(false);
effect(DEF dst, USE src);
- format %{ "MTVSRD $dst, $src \t// Move to 16-byte register"%}
+ format %{ "MTVSRD $dst, $src \t// Move to 16-byte register" %}
size(4);
ins_encode %{
__ mtvsrd($dst$$VectorSRegister, $src$$Register);
@@ -14456,7 +14457,7 @@
instruct xxspltd(vecX dst, vecX src, immI8 zero) %{
effect(DEF dst, USE src, USE zero);
- format %{ "XXSPLATD $dst, $src, $zero \t// Permute 16-byte register"%}
+ format %{ "XXSPLATD $dst, $src, $zero \t// Splat doubleword" %}
size(4);
ins_encode %{
__ xxpermdi($dst$$VectorSRegister, $src$$VectorSRegister, $src$$VectorSRegister, $zero$$constant);
@@ -14467,7 +14468,7 @@
instruct xxpermdi(vecX dst, vecX src1, vecX src2, immI8 zero) %{
effect(DEF dst, USE src1, USE src2, USE zero);
- format %{ "XXPERMDI $dst, $src1, $src2, $zero \t// Permute 16-byte register"%}
+ format %{ "XXPERMDI $dst, $src1, $src2, $zero \t// Splat doubleword" %}
size(4);
ins_encode %{
__ xxpermdi($dst$$VectorSRegister, $src1$$VectorSRegister, $src2$$VectorSRegister, $zero$$constant);
--- a/src/hotspot/cpu/ppc/register_ppc.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/cpu/ppc/register_ppc.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -85,6 +85,12 @@
return is_valid() ? names[encoding()] : "vsnoreg";
}
+// Method to convert a FloatRegister to a Vector-Scalar Register (VectorSRegister)
+VectorSRegister FloatRegisterImpl::to_vsr() const {
+ if (this == fnoreg) { return vsnoreg; }
+ return as_VectorSRegister(encoding());
+}
+
// Method to convert a VectorRegister to a Vector-Scalar Register (VectorSRegister)
VectorSRegister VectorRegisterImpl::to_vsr() const {
if (this == vnoreg) { return vsnoreg; }
--- a/src/hotspot/cpu/ppc/register_ppc.hpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/cpu/ppc/register_ppc.hpp Mon Sep 24 10:59:26 2018 -0700
@@ -241,6 +241,10 @@
#endif // DONT_USE_REGISTER_DEFINES
+// Forward declaration
+// Use VectorSRegister as a shortcut.
+class VectorSRegisterImpl;
+typedef VectorSRegisterImpl* VectorSRegister;
// Use FloatRegister as shortcut
class FloatRegisterImpl;
@@ -270,6 +274,9 @@
bool is_valid() const { return (0 <= value() && value() < number_of_registers); }
const char* name() const;
+
+ // convert to VSR
+ VectorSRegister to_vsr() const;
};
// The float registers of the PPC architecture
@@ -398,11 +405,6 @@
return (VectorRegister)(intptr_t)encoding;
}
-// Forward declaration
-// Use VectorSRegister as a shortcut.
-class VectorSRegisterImpl;
-typedef VectorSRegisterImpl* VectorSRegister;
-
// The implementation of vector registers for the Power architecture
class VectorRegisterImpl: public AbstractRegisterImpl {
public:
--- a/src/hotspot/cpu/x86/stubGenerator_x86_64.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/cpu/x86/stubGenerator_x86_64.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -1171,6 +1171,8 @@
// Registers r9 and r10 are used to save rdi and rsi on Windows, which latter
// are non-volatile. r9 and r10 should not be used by the caller.
//
+ DEBUG_ONLY(bool regs_in_thread;)
+
void setup_arg_regs(int nargs = 3) {
const Register saved_rdi = r9;
const Register saved_rsi = r10;
@@ -1191,9 +1193,11 @@
assert(c_rarg0 == rdi && c_rarg1 == rsi && c_rarg2 == rdx && c_rarg3 == rcx,
"unexpected argument registers");
#endif
+ DEBUG_ONLY(regs_in_thread = false;)
}
void restore_arg_regs() {
+ assert(!regs_in_thread, "wrong call to restore_arg_regs");
const Register saved_rdi = r9;
const Register saved_rsi = r10;
#ifdef _WIN64
@@ -1202,6 +1206,38 @@
#endif
}
+ // This is used in places where r10 is a scratch register, and can
+ // be adapted if r9 is needed also.
+ void setup_arg_regs_using_thread() {
+ const Register saved_r15 = r9;
+#ifdef _WIN64
+ __ mov(saved_r15, r15); // r15 is callee saved and needs to be restored
+ __ get_thread(r15_thread);
+ assert(c_rarg0 == rcx && c_rarg1 == rdx && c_rarg2 == r8 && c_rarg3 == r9,
+ "unexpected argument registers");
+ __ movptr(Address(r15_thread, in_bytes(JavaThread::windows_saved_rdi_offset())), rdi);
+ __ movptr(Address(r15_thread, in_bytes(JavaThread::windows_saved_rsi_offset())), rsi);
+
+ __ mov(rdi, rcx); // c_rarg0
+ __ mov(rsi, rdx); // c_rarg1
+ __ mov(rdx, r8); // c_rarg2
+#else
+ assert(c_rarg0 == rdi && c_rarg1 == rsi && c_rarg2 == rdx && c_rarg3 == rcx,
+ "unexpected argument registers");
+#endif
+ DEBUG_ONLY(regs_in_thread = true;)
+ }
+
+ void restore_arg_regs_using_thread() {
+ assert(regs_in_thread, "wrong call to restore_arg_regs");
+ const Register saved_r15 = r9;
+#ifdef _WIN64
+ __ get_thread(r15_thread);
+ __ movptr(rsi, Address(r15_thread, in_bytes(JavaThread::windows_saved_rsi_offset())));
+ __ movptr(rdi, Address(r15_thread, in_bytes(JavaThread::windows_saved_rdi_offset())));
+ __ mov(r15, saved_r15); // r15 is callee saved and needs to be restored
+#endif
+ }
// Copy big chunks forward
//
@@ -1829,8 +1865,8 @@
BLOCK_COMMENT("Entry:");
}
- setup_arg_regs(); // from => rdi, to => rsi, count => rdx
- // r9 and r10 may be used to save non-volatile registers
+ setup_arg_regs_using_thread(); // from => rdi, to => rsi, count => rdx
+ // r9 is used to save r15_thread
DecoratorSet decorators = IN_HEAP | IS_ARRAY | ARRAYCOPY_DISJOINT;
if (dest_uninitialized) {
@@ -1870,7 +1906,7 @@
__ BIND(L_exit);
bs->arraycopy_epilogue(_masm, decorators, type, from, to, dword_count);
- restore_arg_regs();
+ restore_arg_regs_using_thread();
inc_counter_np(SharedRuntime::_jint_array_copy_ctr); // Update counter after rscratch1 is free
__ vzeroupper();
__ xorptr(rax, rax); // return 0
@@ -1923,8 +1959,8 @@
}
array_overlap_test(nooverlap_target, Address::times_4);
- setup_arg_regs(); // from => rdi, to => rsi, count => rdx
- // r9 and r10 may be used to save non-volatile registers
+ setup_arg_regs_using_thread(); // from => rdi, to => rsi, count => rdx
+ // r9 is used to save r15_thread
DecoratorSet decorators = IN_HEAP | IS_ARRAY;
if (dest_uninitialized) {
@@ -1963,7 +1999,7 @@
if (is_oop) {
__ jmp(L_exit);
}
- restore_arg_regs();
+ restore_arg_regs_using_thread();
inc_counter_np(SharedRuntime::_jint_array_copy_ctr); // Update counter after rscratch1 is free
__ xorptr(rax, rax); // return 0
__ vzeroupper();
@@ -1975,7 +2011,7 @@
__ BIND(L_exit);
bs->arraycopy_epilogue(_masm, decorators, type, from, to, dword_count);
- restore_arg_regs();
+ restore_arg_regs_using_thread();
inc_counter_np(SharedRuntime::_jint_array_copy_ctr); // Update counter after rscratch1 is free
__ xorptr(rax, rax); // return 0
__ vzeroupper();
@@ -2026,8 +2062,8 @@
BLOCK_COMMENT("Entry:");
}
- setup_arg_regs(); // from => rdi, to => rsi, count => rdx
- // r9 and r10 may be used to save non-volatile registers
+ setup_arg_regs_using_thread(); // from => rdi, to => rsi, count => rdx
+ // r9 is used to save r15_thread
// 'from', 'to' and 'qword_count' are now valid
DecoratorSet decorators = IN_HEAP | IS_ARRAY | ARRAYCOPY_DISJOINT;
@@ -2058,7 +2094,7 @@
if (is_oop) {
__ jmp(L_exit);
} else {
- restore_arg_regs();
+ restore_arg_regs_using_thread();
inc_counter_np(SharedRuntime::_jlong_array_copy_ctr); // Update counter after rscratch1 is free
__ xorptr(rax, rax); // return 0
__ vzeroupper();
@@ -2071,7 +2107,7 @@
__ BIND(L_exit);
bs->arraycopy_epilogue(_masm, decorators, type, from, to, qword_count);
- restore_arg_regs();
+ restore_arg_regs_using_thread();
if (is_oop) {
inc_counter_np(SharedRuntime::_oop_array_copy_ctr); // Update counter after rscratch1 is free
} else {
@@ -2119,8 +2155,8 @@
}
array_overlap_test(nooverlap_target, Address::times_8);
- setup_arg_regs(); // from => rdi, to => rsi, count => rdx
- // r9 and r10 may be used to save non-volatile registers
+ setup_arg_regs_using_thread(); // from => rdi, to => rsi, count => rdx
+ // r9 is used to save r15_thread
// 'from', 'to' and 'qword_count' are now valid
DecoratorSet decorators = IN_HEAP | IS_ARRAY | ARRAYCOPY_DISJOINT;
@@ -2147,7 +2183,7 @@
if (is_oop) {
__ jmp(L_exit);
} else {
- restore_arg_regs();
+ restore_arg_regs_using_thread();
inc_counter_np(SharedRuntime::_jlong_array_copy_ctr); // Update counter after rscratch1 is free
__ xorptr(rax, rax); // return 0
__ vzeroupper();
@@ -2160,7 +2196,7 @@
__ BIND(L_exit);
bs->arraycopy_epilogue(_masm, decorators, type, from, to, qword_count);
- restore_arg_regs();
+ restore_arg_regs_using_thread();
if (is_oop) {
inc_counter_np(SharedRuntime::_oop_array_copy_ctr); // Update counter after rscratch1 is free
} else {
@@ -2276,11 +2312,22 @@
enum {
saved_r13_offset,
saved_r14_offset,
+ saved_r10_offset,
saved_rbp_offset
};
__ subptr(rsp, saved_rbp_offset * wordSize);
__ movptr(Address(rsp, saved_r13_offset * wordSize), r13);
__ movptr(Address(rsp, saved_r14_offset * wordSize), r14);
+ __ movptr(Address(rsp, saved_r10_offset * wordSize), r10);
+
+#ifdef ASSERT
+ Label L2;
+ __ get_thread(r14);
+ __ cmpptr(r15_thread, r14);
+ __ jcc(Assembler::equal, L2);
+ __ stop("StubRoutines::call_stub: r15_thread is modified by call");
+ __ bind(L2);
+#endif // ASSERT
// check that int operands are properly extended to size_t
assert_clean_int(length, rax);
@@ -2372,6 +2419,7 @@
__ BIND(L_done);
__ movptr(r13, Address(rsp, saved_r13_offset * wordSize));
__ movptr(r14, Address(rsp, saved_r14_offset * wordSize));
+ __ movptr(r10, Address(rsp, saved_r10_offset * wordSize));
restore_arg_regs();
inc_counter_np(SharedRuntime::_checkcast_array_copy_ctr); // Update counter after rscratch1 is free
__ leave(); // required for proper stackwalking of RuntimeStub frame
@@ -5197,9 +5245,9 @@
BLOCK_COMMENT("Entry:");
__ enter(); // required for proper stackwalking of RuntimeStub frame
- setup_arg_regs(4); // x => rdi, len => rsi, z => rdx
- // zlen => rcx
- // r9 and r10 may be used to save non-volatile registers
+ setup_arg_regs(4); // x => rdi, len => rsi, z => rdx
+ // zlen => rcx
+ // r9 and r10 may be used to save non-volatile registers
__ movptr(r8, rdx);
__ square_to_len(x, len, z, zlen, tmp1, tmp2, tmp3, tmp4, tmp5, rdx, rax);
--- a/src/hotspot/cpu/x86/templateTable_x86.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/cpu/x86/templateTable_x86.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -2995,7 +2995,6 @@
#ifdef ASSERT
__ jmp(Done);
-
__ bind(notDouble);
__ stop("Bad state");
#endif
@@ -3113,7 +3112,6 @@
const Register obj = rcx;
const Register off = rbx;
const Register flags = rax;
- const Register bc = LP64_ONLY(c_rarg3) NOT_LP64(rcx);
resolve_cache_and_index(byte_no, cache, index, sizeof(u2));
jvmti_post_field_mod(cache, index, is_static);
@@ -3128,12 +3126,33 @@
__ shrl(rdx, ConstantPoolCacheEntry::is_volatile_shift);
__ andl(rdx, 0x1);
+ // Check for volatile store
+ __ testl(rdx, rdx);
+ __ jcc(Assembler::zero, notVolatile);
+
+ putfield_or_static_helper(byte_no, is_static, rc, obj, off, flags);
+ volatile_barrier(Assembler::Membar_mask_bits(Assembler::StoreLoad |
+ Assembler::StoreStore));
+ __ jmp(Done);
+ __ bind(notVolatile);
+
+ putfield_or_static_helper(byte_no, is_static, rc, obj, off, flags);
+
+ __ bind(Done);
+}
+
+void TemplateTable::putfield_or_static_helper(int byte_no, bool is_static, RewriteControl rc,
+ Register obj, Register off, Register flags) {
+
// field addresses
const Address field(obj, off, Address::times_1, 0*wordSize);
NOT_LP64( const Address hi(obj, off, Address::times_1, 1*wordSize);)
Label notByte, notBool, notInt, notShort, notChar,
notLong, notFloat, notObj;
+ Label Done;
+
+ const Register bc = LP64_ONLY(c_rarg3) NOT_LP64(rcx);
__ shrl(flags, ConstantPoolCacheEntry::tos_state_shift);
@@ -3233,42 +3252,17 @@
__ jcc(Assembler::notEqual, notLong);
// ltos
-#ifdef _LP64
{
__ pop(ltos);
if (!is_static) pop_and_check_object(obj);
__ access_store_at(T_LONG, IN_HEAP, field, noreg /* ltos*/, noreg, noreg);
+#ifdef _LP64
if (!is_static && rc == may_rewrite) {
patch_bytecode(Bytecodes::_fast_lputfield, bc, rbx, true, byte_no);
}
+#endif // _LP64
__ jmp(Done);
}
-#else
- {
- Label notVolatileLong;
- __ testl(rdx, rdx);
- __ jcc(Assembler::zero, notVolatileLong);
-
- __ pop(ltos); // overwrites rdx, do this after testing volatile.
- if (!is_static) pop_and_check_object(obj);
-
- // Replace with real volatile test
- __ access_store_at(T_LONG, IN_HEAP | MO_RELAXED, field, noreg /* ltos */, noreg, noreg);
- // volatile_barrier();
- volatile_barrier(Assembler::Membar_mask_bits(Assembler::StoreLoad |
- Assembler::StoreStore));
- // Don't rewrite volatile version
- __ jmp(notVolatile);
-
- __ bind(notVolatileLong);
-
- __ pop(ltos); // overwrites rdx
- if (!is_static) pop_and_check_object(obj);
- __ access_store_at(T_LONG, IN_HEAP, field, noreg /* ltos */, noreg, noreg);
- // Don't rewrite to _fast_lputfield for potential volatile case.
- __ jmp(notVolatile);
- }
-#endif // _LP64
__ bind(notLong);
__ cmpl(flags, ftos);
@@ -3310,13 +3304,6 @@
#endif
__ bind(Done);
-
- // Check for volatile store
- __ testl(rdx, rdx);
- __ jcc(Assembler::zero, notVolatile);
- volatile_barrier(Assembler::Membar_mask_bits(Assembler::StoreLoad |
- Assembler::StoreStore));
- __ bind(notVolatile);
}
void TemplateTable::putfield(int byte_no) {
@@ -3412,7 +3399,7 @@
// volatile_barrier(Assembler::Membar_mask_bits(Assembler::LoadStore |
// Assembler::StoreStore));
- Label notVolatile;
+ Label notVolatile, Done;
__ shrl(rdx, ConstantPoolCacheEntry::is_volatile_shift);
__ andl(rdx, 0x1);
@@ -3422,6 +3409,23 @@
// field address
const Address field(rcx, rbx, Address::times_1);
+ // Check for volatile store
+ __ testl(rdx, rdx);
+ __ jcc(Assembler::zero, notVolatile);
+
+ fast_storefield_helper(field, rax);
+ volatile_barrier(Assembler::Membar_mask_bits(Assembler::StoreLoad |
+ Assembler::StoreStore));
+ __ jmp(Done);
+ __ bind(notVolatile);
+
+ fast_storefield_helper(field, rax);
+
+ __ bind(Done);
+}
+
+void TemplateTable::fast_storefield_helper(Address field, Register rax) {
+
// access field
switch (bytecode()) {
case Bytecodes::_fast_aputfield:
@@ -3458,13 +3462,6 @@
default:
ShouldNotReachHere();
}
-
- // Check for volatile store
- __ testl(rdx, rdx);
- __ jcc(Assembler::zero, notVolatile);
- volatile_barrier(Assembler::Membar_mask_bits(Assembler::StoreLoad |
- Assembler::StoreStore));
- __ bind(notVolatile);
}
void TemplateTable::fast_accessfield(TosState state) {
--- a/src/hotspot/cpu/x86/templateTable_x86.hpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/cpu/x86/templateTable_x86.hpp Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2015, 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
@@ -39,4 +39,8 @@
static void index_check(Register array, Register index);
static void index_check_without_pop(Register array, Register index);
+ static void putfield_or_static_helper(int byte_no, bool is_static, RewriteControl rc,
+ Register obj, Register off, Register flags);
+ static void fast_storefield_helper(Address field, Register rax);
+
#endif // CPU_X86_VM_TEMPLATETABLE_X86_HPP
--- a/src/hotspot/os_cpu/solaris_sparc/vm_version_solaris_sparc.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/os_cpu/solaris_sparc/vm_version_solaris_sparc.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -343,12 +343,9 @@
uint32_t av = avs[AV_HW1_IDX];
- // These are SPARC V8 legacy features.
-
- assert((av & AV_SPARC_MUL32) == 0, "unsupported V8");
- assert((av & AV_SPARC_DIV32) == 0, "unsupported V8");
- assert((av & AV_SPARC_FSMULD) == 0, "unsupported V8");
- assert((av & AV_SPARC_V8PLUS) == 0, "unsupported V8");
+ // Obsolete and 32b legacy mode capabilites NOT probed here, despite being
+ // set by Solaris 11.4 (onward) also on V9; AV_SPARC_MUL32, AV_SPARC_DIV32
+ // and AV_SPARC_FSMULD (and AV_SPARC_V8PLUS).
if (av & AV_SPARC_POPC) features |= ISA_popc_msk;
if (av & AV_SPARC_VIS) features |= ISA_vis1_msk;
--- a/src/hotspot/os_cpu/windows_x86/thread_windows_x86.hpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/os_cpu/windows_x86/thread_windows_x86.hpp Mon Sep 24 10:59:26 2018 -0700
@@ -26,8 +26,15 @@
#define OS_CPU_WINDOWS_X86_VM_THREAD_WINDOWS_X86_HPP
private:
+ // On windows, in the stubGenerator, there's nowhere to save callee saved regs
+ address _windows_saved_rsi;
+ address _windows_saved_rdi;
+
void pd_initialize() {
_anchor.clear();
+
+ _windows_saved_rsi = NULL;
+ _windows_saved_rdi = NULL;
}
frame pd_last_frame();
@@ -52,6 +59,8 @@
bool pd_get_top_frame_for_profiling(frame* fr_addr, void* ucontext, bool isInJava);
+ static ByteSize windows_saved_rsi_offset() { return byte_offset_of(JavaThread, _windows_saved_rsi); }
+ static ByteSize windows_saved_rdi_offset() { return byte_offset_of(JavaThread, _windows_saved_rdi); }
private:
bool pd_get_top_frame(frame* fr_addr, void* ucontext, bool isInJava);
--- a/src/hotspot/share/aot/aotLoader.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/aot/aotLoader.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -47,6 +47,13 @@
return;
}
if (UseAOT) {
+ if (JvmtiExport::can_hotswap_or_post_breakpoint()) {
+ if (PrintAOT) {
+ warning("JVMTI capability to hotswap and post breakpoint is not compatible with AOT (switching AOT off)");
+ }
+ FLAG_SET_DEFAULT(UseAOT, false);
+ return;
+ }
FOR_ALL_AOT_HEAPS(heap) {
(*heap)->load_klass_data(ik, thread);
}
@@ -54,6 +61,7 @@
}
uint64_t AOTLoader::get_saved_fingerprint(InstanceKlass* ik) {
+ assert(UseAOT, "called only when AOT is enabled");
if (ik->is_unsafe_anonymous()) {
// don't even bother
return 0;
@@ -67,24 +75,6 @@
return 0;
}
-bool AOTLoader::find_klass(InstanceKlass* ik) {
- FOR_ALL_AOT_HEAPS(heap) {
- if ((*heap)->find_klass(ik) != NULL) {
- return true;
- }
- }
- return false;
-}
-
-bool AOTLoader::contains(address p) {
- FOR_ALL_AOT_HEAPS(heap) {
- if ((*heap)->contains(p)) {
- return true;
- }
- }
- return false;
-}
-
void AOTLoader::oops_do(OopClosure* f) {
if (UseAOT) {
FOR_ALL_AOT_HEAPS(heap) {
@@ -130,6 +120,14 @@
return;
}
+ if (JvmtiExport::can_hotswap_or_post_breakpoint()) {
+ if (PrintAOT) {
+ warning("JVMTI capability to hotswap and post breakpoint is not compatible with AOT (switching AOT off)");
+ }
+ FLAG_SET_DEFAULT(UseAOT, false);
+ return;
+ }
+
// -Xint is not compatible with AOT
if (Arguments::is_interpreter_only()) {
if (PrintAOT) {
--- a/src/hotspot/share/aot/aotLoader.hpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/aot/aotLoader.hpp Mon Sep 24 10:59:26 2018 -0700
@@ -59,9 +59,7 @@
static void universe_init() NOT_AOT_RETURN;
static void set_narrow_oop_shift() NOT_AOT_RETURN;
static void set_narrow_klass_shift() NOT_AOT_RETURN;
- static bool contains(address p) NOT_AOT({ return false; });
static void load_for_klass(InstanceKlass* ik, Thread* thread) NOT_AOT_RETURN;
- static bool find_klass(InstanceKlass* ik) NOT_AOT({ return false; });
static uint64_t get_saved_fingerprint(InstanceKlass* ik) NOT_AOT({ return 0; });
static void oops_do(OopClosure* f) NOT_AOT_RETURN;
static void metadata_do(void f(Metadata*)) NOT_AOT_RETURN;
--- a/src/hotspot/share/classfile/classLoaderStats.hpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/classfile/classLoaderStats.hpp Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -28,6 +28,7 @@
#include "classfile/classLoaderData.hpp"
#include "oops/klass.hpp"
+#include "oops/oop.hpp"
#include "oops/oopsHierarchy.hpp"
#include "runtime/vm_operations.hpp"
#include "services/diagnosticCommand.hpp"
@@ -97,7 +98,7 @@
class ClassLoaderStatsClosure : public CLDClosure {
protected:
static bool oop_equals(oop const& s1, oop const& s2) {
- return s1 == s2;
+ return oopDesc::equals(s1, s2);
}
static unsigned oop_hash(oop const& s1) {
--- a/src/hotspot/share/classfile/compactHashtable.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/classfile/compactHashtable.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -24,7 +24,7 @@
#include "precompiled.hpp"
#include "jvm.h"
-#include "classfile/compactHashtable.inline.hpp"
+#include "classfile/compactHashtable.hpp"
#include "classfile/javaClasses.hpp"
#include "logging/logMessage.hpp"
#include "memory/heapShared.inline.hpp"
@@ -35,6 +35,7 @@
#include "utilities/numberSeq.hpp"
#include <sys/stat.h>
+#if INCLUDE_CDS
/////////////////////////////////////////////////////
//
// The compact hash table writer implementations
@@ -170,33 +171,6 @@
/////////////////////////////////////////////////////////////
//
-// Customization for dumping Symbol and String tables
-
-void CompactSymbolTableWriter::add(unsigned int hash, Symbol *symbol) {
- uintx deltax = MetaspaceShared::object_delta(symbol);
- // When the symbols are stored into the archive, we already check that
- // they won't be more than MAX_SHARED_DELTA from the base address, or
- // else the dumping would have been aborted.
- assert(deltax <= MAX_SHARED_DELTA, "must not be");
- u4 delta = u4(deltax);
-
- CompactHashtableWriter::add(hash, delta);
-}
-
-void CompactStringTableWriter::add(unsigned int hash, oop string) {
- CompactHashtableWriter::add(hash, CompressedOops::encode(string));
-}
-
-void CompactSymbolTableWriter::dump(CompactHashtable<Symbol*, char> *cht) {
- CompactHashtableWriter::dump(cht, "symbol");
-}
-
-void CompactStringTableWriter::dump(CompactHashtable<oop, char> *cht) {
- CompactHashtableWriter::dump(cht, "string");
-}
-
-/////////////////////////////////////////////////////////////
-//
// The CompactHashtable implementation
//
@@ -207,95 +181,7 @@
soc->do_ptr((void**)&_buckets);
soc->do_ptr((void**)&_entries);
}
-
-bool SimpleCompactHashtable::exists(u4 value) {
- assert(!DumpSharedSpaces, "run-time only");
-
- if (_entry_count == 0) {
- return false;
- }
-
- unsigned int hash = (unsigned int)value;
- int index = hash % _bucket_count;
- u4 bucket_info = _buckets[index];
- u4 bucket_offset = BUCKET_OFFSET(bucket_info);
- int bucket_type = BUCKET_TYPE(bucket_info);
- u4* entry = _entries + bucket_offset;
-
- if (bucket_type == VALUE_ONLY_BUCKET_TYPE) {
- return (entry[0] == value);
- } else {
- u4*entry_max = _entries + BUCKET_OFFSET(_buckets[index + 1]);
- while (entry <entry_max) {
- if (entry[1] == value) {
- return true;
- }
- entry += 2;
- }
- return false;
- }
-}
-
-template <class I>
-inline void SimpleCompactHashtable::iterate(const I& iterator) {
- for (u4 i = 0; i < _bucket_count; i++) {
- u4 bucket_info = _buckets[i];
- u4 bucket_offset = BUCKET_OFFSET(bucket_info);
- int bucket_type = BUCKET_TYPE(bucket_info);
- u4* entry = _entries + bucket_offset;
-
- if (bucket_type == VALUE_ONLY_BUCKET_TYPE) {
- iterator.do_value(_base_address, entry[0]);
- } else {
- u4*entry_max = _entries + BUCKET_OFFSET(_buckets[i + 1]);
- while (entry < entry_max) {
- iterator.do_value(_base_address, entry[1]);
- entry += 2;
- }
- }
- }
-}
-
-template <class T, class N> void CompactHashtable<T, N>::serialize(SerializeClosure* soc) {
- SimpleCompactHashtable::serialize(soc);
- soc->do_u4(&_type);
-}
-
-class CompactHashtable_SymbolIterator {
- SymbolClosure* const _closure;
-public:
- CompactHashtable_SymbolIterator(SymbolClosure *cl) : _closure(cl) {}
- inline void do_value(address base_address, u4 offset) const {
- Symbol* sym = (Symbol*)((void*)(base_address + offset));
- _closure->do_symbol(&sym);
- }
-};
-
-template <class T, class N> void CompactHashtable<T, N>::symbols_do(SymbolClosure *cl) {
- CompactHashtable_SymbolIterator iterator(cl);
- iterate(iterator);
-}
-
-class CompactHashtable_OopIterator {
- OopClosure* const _closure;
-public:
- CompactHashtable_OopIterator(OopClosure *cl) : _closure(cl) {}
- inline void do_value(address base_address, u4 offset) const {
- narrowOop v = (narrowOop)offset;
- oop obj = HeapShared::decode_from_archive(v);
- _closure->do_oop(&obj);
- }
-};
-
-template <class T, class N> void CompactHashtable<T, N>::oops_do(OopClosure* cl) {
- assert(_type == _string_table || _bucket_count == 0, "sanity");
- CompactHashtable_OopIterator iterator(cl);
- iterate(iterator);
-}
-
-// Explicitly instantiate these types
-template class CompactHashtable<Symbol*, char>;
-template class CompactHashtable<oop, char>;
+#endif // INCLUDE_CDS
#ifndef O_BINARY // if defined (Win32) use binary files.
#define O_BINARY 0 // otherwise do nothing.
--- a/src/hotspot/share/classfile/compactHashtable.hpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/classfile/compactHashtable.hpp Mon Sep 24 10:59:26 2018 -0700
@@ -29,7 +29,14 @@
#include "oops/symbol.hpp"
#include "utilities/hashtable.hpp"
-template <class T, class N> class CompactHashtable;
+
+template <
+ typename K,
+ typename V,
+ V (*DECODE)(address base_address, u4 offset),
+ bool (*EQUALS)(V value, K key, int len)
+ >
+class CompactHashtable;
class NumberSeq;
class SimpleCompactHashtable;
class SerializeClosure;
@@ -43,6 +50,7 @@
int bucket_bytes;
};
+#if INCLUDE_CDS
/////////////////////////////////////////////////////////////////////////
//
// The compact hash table writer. Used at dump time for writing out
@@ -108,9 +116,6 @@
~CompactHashtableWriter();
void add(unsigned int hash, u4 value);
- void add(u4 value) {
- add((unsigned int)value, value);
- }
private:
void allocate_table();
@@ -118,24 +123,8 @@
public:
void dump(SimpleCompactHashtable *cht, const char* table_name);
- const char* table_name();
};
-
-class CompactSymbolTableWriter: public CompactHashtableWriter {
-public:
- CompactSymbolTableWriter(int num_buckets, CompactHashtableStats* stats) :
- CompactHashtableWriter(num_buckets, stats) {}
- void add(unsigned int hash, Symbol *symbol);
- void dump(CompactHashtable<Symbol*, char> *cht);
-};
-
-class CompactStringTableWriter: public CompactHashtableWriter {
-public:
- CompactStringTableWriter(int num_entries, CompactHashtableStats* stats) :
- CompactHashtableWriter(num_entries, stats) {}
- void add(unsigned int hash, oop string);
- void dump(CompactHashtable<oop, char> *cht);
-};
+#endif // INCLUDE_CDS
#define REGULAR_BUCKET_TYPE 0
#define VALUE_ONLY_BUCKET_TYPE 1
@@ -148,8 +137,7 @@
/////////////////////////////////////////////////////////////////////////////
//
-// CompactHashtable is used to stored the CDS archive's symbol/string table. Used
-// at runtime only to access the compact table from the archive.
+// CompactHashtable is used to store the CDS archive's symbol/string tables.
//
// Because these tables are read-only (no entries can be added/deleted) at run-time
// and tend to have large number of entries, we try to minimize the footprint
@@ -225,56 +213,82 @@
_entries = entries;
}
- template <class I> inline void iterate(const I& iterator);
-
- bool exists(u4 value);
-
// For reading from/writing to the CDS archive
- void serialize(SerializeClosure* soc);
+ void serialize(SerializeClosure* soc) NOT_CDS_RETURN;
inline bool empty() {
return (_entry_count == 0);
}
};
-template <class T, class N> class CompactHashtable : public SimpleCompactHashtable {
+template <
+ typename K,
+ typename V,
+ V (*DECODE)(address base_address, u4 offset),
+ bool (*EQUALS)(V value, K key, int len)
+ >
+class CompactHashtable : public SimpleCompactHashtable {
friend class VMStructs;
-public:
- enum CompactHashtableType {
- _symbol_table = 0,
- _string_table = 1
- };
+ V decode(u4 offset) const {
+ return DECODE(_base_address, offset);
+ }
-private:
- u4 _type;
-
- inline Symbol* decode_entry(CompactHashtable<Symbol*, char>* const t,
- u4 offset, const char* name, int len);
-
- inline oop decode_entry(CompactHashtable<oop, char>* const t,
- u4 offset, const char* name, int len);
public:
CompactHashtable() : SimpleCompactHashtable() {}
- void set_type(CompactHashtableType type) {
- _type = (u4)type;
+ // Lookup a value V from the compact table using key K
+ inline V lookup(K key, unsigned int hash, int len) const {
+ if (_entry_count > 0) {
+ int index = hash % _bucket_count;
+ u4 bucket_info = _buckets[index];
+ u4 bucket_offset = BUCKET_OFFSET(bucket_info);
+ int bucket_type = BUCKET_TYPE(bucket_info);
+ u4* entry = _entries + bucket_offset;
+
+ if (bucket_type == VALUE_ONLY_BUCKET_TYPE) {
+ V value = decode(entry[0]);
+ if (EQUALS(value, key, len)) {
+ return value;
+ }
+ } else {
+ // This is a regular bucket, which has more than one
+ // entries. Each entry is a pair of entry (hash, offset).
+ // Seek until the end of the bucket.
+ u4* entry_max = _entries + BUCKET_OFFSET(_buckets[index + 1]);
+ while (entry < entry_max) {
+ unsigned int h = (unsigned int)(entry[0]);
+ if (h == hash) {
+ V value = decode(entry[1]);
+ if (EQUALS(value, key, len)) {
+ return value;
+ }
+ }
+ entry += 2;
+ }
+ }
+ }
+ return NULL;
}
- // Lookup an entry from the compact table
- inline T lookup(const N* name, unsigned int hash, int len);
-
- // iterate over symbols
- void symbols_do(SymbolClosure *cl);
+ template <class ITER>
+ inline void iterate(ITER* iter) const {
+ for (u4 i = 0; i < _bucket_count; i++) {
+ u4 bucket_info = _buckets[i];
+ u4 bucket_offset = BUCKET_OFFSET(bucket_info);
+ int bucket_type = BUCKET_TYPE(bucket_info);
+ u4* entry = _entries + bucket_offset;
- // iterate over strings
- void oops_do(OopClosure* f);
-
- // For reading from/writing to the CDS archive
- void serialize(SerializeClosure* soc);
-
- uintx base_address() {
- return (uintx) _base_address;
+ if (bucket_type == VALUE_ONLY_BUCKET_TYPE) {
+ iter->do_value(decode(entry[0]));
+ } else {
+ u4*entry_max = _entries + BUCKET_OFFSET(_buckets[i + 1]);
+ while (entry < entry_max) {
+ iter->do_value(decode(entry[1]));
+ entry += 2;
+ }
+ }
+ }
}
};
--- a/src/hotspot/share/classfile/compactHashtable.inline.hpp Sat Sep 22 20:31:45 2018 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +0,0 @@
-/*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- *
- */
-
-#ifndef SHARE_VM_CLASSFILE_COMPACTHASHTABLE_INLINE_HPP
-#define SHARE_VM_CLASSFILE_COMPACTHASHTABLE_INLINE_HPP
-
-#include "classfile/compactHashtable.hpp"
-#include "classfile/javaClasses.hpp"
-#include "memory/allocation.inline.hpp"
-#include "memory/filemap.hpp"
-#include "memory/heapShared.inline.hpp"
-#include "oops/oop.hpp"
-
-template <class T, class N>
-inline Symbol* CompactHashtable<T, N>::decode_entry(CompactHashtable<Symbol*, char>* const t,
- u4 offset, const char* name, int len) {
- Symbol* sym = (Symbol*)(_base_address + offset);
- if (sym->equals(name, len)) {
- assert(sym->refcount() == PERM_REFCOUNT, "must be shared");
- return sym;
- }
-
- return NULL;
-}
-
-template <class T, class N>
-inline oop CompactHashtable<T, N>::decode_entry(CompactHashtable<oop, char>* const t,
- u4 offset, const char* name, int len) {
- narrowOop v = (narrowOop)offset;
- oop string = HeapShared::decode_from_archive(v);
- if (java_lang_String::equals(string, (jchar*)name, len)) {
- return string;
- }
-
- return NULL;
-}
-
-template <class T, class N>
-inline T CompactHashtable<T,N>::lookup(const N* name, unsigned int hash, int len) {
- if (_entry_count > 0) {
- int index = hash % _bucket_count;
- u4 bucket_info = _buckets[index];
- u4 bucket_offset = BUCKET_OFFSET(bucket_info);
- int bucket_type = BUCKET_TYPE(bucket_info);
- u4* entry = _entries + bucket_offset;
-
- if (bucket_type == VALUE_ONLY_BUCKET_TYPE) {
- T res = decode_entry(this, entry[0], name, len);
- if (res != NULL) {
- return res;
- }
- } else {
- // This is a regular bucket, which has more than one
- // entries. Each entry is a pair of entry (hash, offset).
- // Seek until the end of the bucket.
- u4* entry_max = _entries + BUCKET_OFFSET(_buckets[index + 1]);
- while (entry < entry_max) {
- unsigned int h = (unsigned int)(entry[0]);
- if (h == hash) {
- T res = decode_entry(this, entry[1], name, len);
- if (res != NULL) {
- return res;
- }
- }
- entry += 2;
- }
- }
- }
- return NULL;
-}
-
-#endif // SHARE_VM_CLASSFILE_COMPACTHASHTABLE_INLINE_HPP
--- a/src/hotspot/share/classfile/javaClasses.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/classfile/javaClasses.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -37,7 +37,7 @@
#include "logging/log.hpp"
#include "logging/logStream.hpp"
#include "memory/oopFactory.hpp"
-#include "memory/metaspaceShared.hpp"
+#include "memory/metaspaceShared.inline.hpp"
#include "memory/resourceArea.hpp"
#include "memory/universe.hpp"
#include "oops/fieldStreams.hpp"
@@ -86,7 +86,6 @@
return _injected_fields[id].compute_offset();
}
-
InjectedField* JavaClasses::get_injected(Symbol* class_name, int* field_count) {
*field_count = 0;
@@ -156,18 +155,6 @@
compute_offset(dest_offset, ik, name, signature_symbol, is_static);
}
-// Same as above but for "optional" offsets that might not be present in certain JDK versions
-// Old versions should be cleaned out since Hotspot only supports the current JDK, and this
-// function should be removed.
-static void
-compute_optional_offset(int& dest_offset,
- InstanceKlass* ik, Symbol* name_symbol, Symbol* signature_symbol) {
- fieldDescriptor fd;
- if (ik->find_local_field(name_symbol, signature_symbol, &fd)) {
- dest_offset = fd.offset();
- }
-}
-
int java_lang_String::value_offset = 0;
int java_lang_String::hash_offset = 0;
int java_lang_String::coder_offset = 0;
@@ -181,17 +168,11 @@
#if INCLUDE_CDS
#define FIELD_SERIALIZE_OFFSET(offset, klass, name, signature, is_static) \
f->do_u4((u4*)&offset)
-
-#define FIELD_SERIALIZE_OFFSET_OPTIONAL(offset, klass, name, signature) \
- f->do_u4((u4*)&offset)
#endif
#define FIELD_COMPUTE_OFFSET(offset, klass, name, signature, is_static) \
compute_offset(offset, klass, name, vmSymbols::signature(), is_static)
-#define FIELD_COMPUTE_OFFSET_OPTIONAL(offset, klass, name, signature) \
- compute_optional_offset(offset, klass, name, vmSymbols::signature())
-
#define STRING_FIELDS_DO(macro) \
macro(value_offset, k, vmSymbols::value_name(), byte_array_signature, false); \
macro(hash_offset, k, "hash", int_signature, false); \
@@ -260,7 +241,7 @@
return h_obj;
}
-Handle java_lang_String::create_from_unicode(jchar* unicode, int length, TRAPS) {
+Handle java_lang_String::create_from_unicode(const jchar* unicode, int length, TRAPS) {
bool is_latin1 = CompactStrings && UNICODE::is_latin1(unicode, length);
Handle h_obj = basic_create(length, is_latin1, CHECK_NH);
typeArrayOop buffer = value(h_obj());
@@ -290,7 +271,7 @@
return h_obj;
}
-oop java_lang_String::create_oop_from_unicode(jchar* unicode, int length, TRAPS) {
+oop java_lang_String::create_oop_from_unicode(const jchar* unicode, int length, TRAPS) {
Handle h_obj = create_from_unicode(unicode, length, CHECK_0);
return h_obj();
}
@@ -662,7 +643,7 @@
}
}
-bool java_lang_String::equals(oop java_string, jchar* chars, int len) {
+bool java_lang_String::equals(oop java_string, const jchar* chars, int len) {
assert(java_string->klass() == SystemDictionary::String_klass(),
"must be java_string");
typeArrayOop value = java_lang_String::value_no_keepalive(java_string);
@@ -2588,7 +2569,7 @@
// Fill in class name
ResourceMark rm(THREAD);
const char* str = holder->external_name();
- oop classname = StringTable::intern((char*) str, CHECK);
+ oop classname = StringTable::intern(str, CHECK);
java_lang_StackTraceElement::set_declaringClass(element(), classname);
java_lang_StackTraceElement::set_declaringClassObject(element(), holder->java_mirror());
@@ -2735,20 +2716,13 @@
macro(exceptionTypes_offset, k, vmSymbols::exceptionTypes_name(), class_array_signature, false); \
macro(slot_offset, k, vmSymbols::slot_name(), int_signature, false); \
macro(modifiers_offset, k, vmSymbols::modifiers_name(), int_signature, false); \
- macro##_OPTIONAL(signature_offset, k, vmSymbols::signature_name(), string_signature); \
- macro##_OPTIONAL(annotations_offset, k, vmSymbols::annotations_name(), byte_array_signature); \
- macro##_OPTIONAL(parameter_annotations_offset, k, vmSymbols::parameter_annotations_name(), byte_array_signature); \
- macro##_OPTIONAL(annotation_default_offset, k, vmSymbols::annotation_default_name(), byte_array_signature); \
- macro##_OPTIONAL(type_annotations_offset, k, vmSymbols::type_annotations_name(), byte_array_signature)
+ macro(signature_offset, k, vmSymbols::signature_name(), string_signature, false); \
+ macro(annotations_offset, k, vmSymbols::annotations_name(), byte_array_signature, false); \
+ macro(parameter_annotations_offset, k, vmSymbols::parameter_annotations_name(), byte_array_signature, false); \
+ macro(annotation_default_offset, k, vmSymbols::annotation_default_name(), byte_array_signature, false);
void java_lang_reflect_Method::compute_offsets() {
InstanceKlass* k = SystemDictionary::reflect_Method_klass();
- // The generic signature and annotations fields are only present in 1.5
- signature_offset = -1;
- annotations_offset = -1;
- parameter_annotations_offset = -1;
- annotation_default_offset = -1;
- type_annotations_offset = -1;
METHOD_FIELDS_DO(FIELD_COMPUTE_OFFSET);
}
@@ -2787,11 +2761,6 @@
reflect->int_field_put(slot_offset, value);
}
-oop java_lang_reflect_Method::name(oop method) {
- assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem");
- return method->obj_field(name_offset);
-}
-
void java_lang_reflect_Method::set_name(oop method, oop value) {
assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem");
method->obj_field_put(name_offset, value);
@@ -2817,125 +2786,48 @@
method->obj_field_put(parameterTypes_offset, value);
}
-oop java_lang_reflect_Method::exception_types(oop method) {
- assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem");
- return method->obj_field(exceptionTypes_offset);
-}
-
void java_lang_reflect_Method::set_exception_types(oop method, oop value) {
assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem");
method->obj_field_put(exceptionTypes_offset, value);
}
-int java_lang_reflect_Method::modifiers(oop method) {
- assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem");
- return method->int_field(modifiers_offset);
-}
-
void java_lang_reflect_Method::set_modifiers(oop method, int value) {
assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem");
method->int_field_put(modifiers_offset, value);
}
-bool java_lang_reflect_Method::has_signature_field() {
- return (signature_offset >= 0);
-}
-
-oop java_lang_reflect_Method::signature(oop method) {
- assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem");
- assert(has_signature_field(), "signature field must be present");
- return method->obj_field(signature_offset);
-}
-
void java_lang_reflect_Method::set_signature(oop method, oop value) {
assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem");
- assert(has_signature_field(), "signature field must be present");
method->obj_field_put(signature_offset, value);
}
-bool java_lang_reflect_Method::has_annotations_field() {
- return (annotations_offset >= 0);
-}
-
-oop java_lang_reflect_Method::annotations(oop method) {
- assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem");
- assert(has_annotations_field(), "annotations field must be present");
- return method->obj_field(annotations_offset);
-}
-
void java_lang_reflect_Method::set_annotations(oop method, oop value) {
assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem");
- assert(has_annotations_field(), "annotations field must be present");
method->obj_field_put(annotations_offset, value);
}
-bool java_lang_reflect_Method::has_parameter_annotations_field() {
- return (parameter_annotations_offset >= 0);
-}
-
-oop java_lang_reflect_Method::parameter_annotations(oop method) {
- assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem");
- assert(has_parameter_annotations_field(), "parameter annotations field must be present");
- return method->obj_field(parameter_annotations_offset);
-}
-
void java_lang_reflect_Method::set_parameter_annotations(oop method, oop value) {
assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem");
- assert(has_parameter_annotations_field(), "parameter annotations field must be present");
method->obj_field_put(parameter_annotations_offset, value);
}
-bool java_lang_reflect_Method::has_annotation_default_field() {
- return (annotation_default_offset >= 0);
-}
-
-oop java_lang_reflect_Method::annotation_default(oop method) {
- assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem");
- assert(has_annotation_default_field(), "annotation default field must be present");
- return method->obj_field(annotation_default_offset);
-}
-
void java_lang_reflect_Method::set_annotation_default(oop method, oop value) {
assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem");
- assert(has_annotation_default_field(), "annotation default field must be present");
method->obj_field_put(annotation_default_offset, value);
}
-bool java_lang_reflect_Method::has_type_annotations_field() {
- return (type_annotations_offset >= 0);
-}
-
-oop java_lang_reflect_Method::type_annotations(oop method) {
- assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem");
- assert(has_type_annotations_field(), "type_annotations field must be present");
- return method->obj_field(type_annotations_offset);
-}
-
-void java_lang_reflect_Method::set_type_annotations(oop method, oop value) {
- assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem");
- assert(has_type_annotations_field(), "type_annotations field must be present");
- method->obj_field_put(type_annotations_offset, value);
-}
-
#define CONSTRUCTOR_FIELDS_DO(macro) \
macro(clazz_offset, k, vmSymbols::clazz_name(), class_signature, false); \
macro(parameterTypes_offset, k, vmSymbols::parameterTypes_name(), class_array_signature, false); \
macro(exceptionTypes_offset, k, vmSymbols::exceptionTypes_name(), class_array_signature, false); \
macro(slot_offset, k, vmSymbols::slot_name(), int_signature, false); \
macro(modifiers_offset, k, vmSymbols::modifiers_name(), int_signature, false); \
- macro##_OPTIONAL(signature_offset, k, vmSymbols::signature_name(), string_signature); \
- macro##_OPTIONAL(annotations_offset, k, vmSymbols::annotations_name(), byte_array_signature); \
- macro##_OPTIONAL(parameter_annotations_offset, k, vmSymbols::parameter_annotations_name(), byte_array_signature); \
- macro##_OPTIONAL(type_annotations_offset, k, vmSymbols::type_annotations_name(), byte_array_signature)
-
+ macro(signature_offset, k, vmSymbols::signature_name(), string_signature, false); \
+ macro(annotations_offset, k, vmSymbols::annotations_name(), byte_array_signature, false); \
+ macro(parameter_annotations_offset, k, vmSymbols::parameter_annotations_name(), byte_array_signature, false);
void java_lang_reflect_Constructor::compute_offsets() {
InstanceKlass* k = SystemDictionary::reflect_Constructor_klass();
- // The generic signature and annotations fields are only present in 1.5
- signature_offset = -1;
- annotations_offset = -1;
- parameter_annotations_offset = -1;
- type_annotations_offset = -1;
CONSTRUCTOR_FIELDS_DO(FIELD_COMPUTE_OFFSET);
}
@@ -2975,11 +2867,6 @@
constructor->obj_field_put(parameterTypes_offset, value);
}
-oop java_lang_reflect_Constructor::exception_types(oop constructor) {
- assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem");
- return constructor->obj_field(exceptionTypes_offset);
-}
-
void java_lang_reflect_Constructor::set_exception_types(oop constructor, oop value) {
assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem");
constructor->obj_field_put(exceptionTypes_offset, value);
@@ -2995,96 +2882,37 @@
reflect->int_field_put(slot_offset, value);
}
-int java_lang_reflect_Constructor::modifiers(oop constructor) {
- assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem");
- return constructor->int_field(modifiers_offset);
-}
-
void java_lang_reflect_Constructor::set_modifiers(oop constructor, int value) {
assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem");
constructor->int_field_put(modifiers_offset, value);
}
-bool java_lang_reflect_Constructor::has_signature_field() {
- return (signature_offset >= 0);
-}
-
-oop java_lang_reflect_Constructor::signature(oop constructor) {
- assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem");
- assert(has_signature_field(), "signature field must be present");
- return constructor->obj_field(signature_offset);
-}
-
void java_lang_reflect_Constructor::set_signature(oop constructor, oop value) {
assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem");
- assert(has_signature_field(), "signature field must be present");
constructor->obj_field_put(signature_offset, value);
}
-bool java_lang_reflect_Constructor::has_annotations_field() {
- return (annotations_offset >= 0);
-}
-
-oop java_lang_reflect_Constructor::annotations(oop constructor) {
- assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem");
- assert(has_annotations_field(), "annotations field must be present");
- return constructor->obj_field(annotations_offset);
-}
-
void java_lang_reflect_Constructor::set_annotations(oop constructor, oop value) {
assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem");
- assert(has_annotations_field(), "annotations field must be present");
constructor->obj_field_put(annotations_offset, value);
}
-bool java_lang_reflect_Constructor::has_parameter_annotations_field() {
- return (parameter_annotations_offset >= 0);
-}
-
-oop java_lang_reflect_Constructor::parameter_annotations(oop method) {
- assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem");
- assert(has_parameter_annotations_field(), "parameter annotations field must be present");
- return method->obj_field(parameter_annotations_offset);
-}
-
void java_lang_reflect_Constructor::set_parameter_annotations(oop method, oop value) {
assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem");
- assert(has_parameter_annotations_field(), "parameter annotations field must be present");
method->obj_field_put(parameter_annotations_offset, value);
}
-bool java_lang_reflect_Constructor::has_type_annotations_field() {
- return (type_annotations_offset >= 0);
-}
-
-oop java_lang_reflect_Constructor::type_annotations(oop constructor) {
- assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem");
- assert(has_type_annotations_field(), "type_annotations field must be present");
- return constructor->obj_field(type_annotations_offset);
-}
-
-void java_lang_reflect_Constructor::set_type_annotations(oop constructor, oop value) {
- assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem");
- assert(has_type_annotations_field(), "type_annotations field must be present");
- constructor->obj_field_put(type_annotations_offset, value);
-}
-
#define FIELD_FIELDS_DO(macro) \
macro(clazz_offset, k, vmSymbols::clazz_name(), class_signature, false); \
macro(name_offset, k, vmSymbols::name_name(), string_signature, false); \
macro(type_offset, k, vmSymbols::type_name(), class_signature, false); \
macro(slot_offset, k, vmSymbols::slot_name(), int_signature, false); \
macro(modifiers_offset, k, vmSymbols::modifiers_name(), int_signature, false); \
- macro##_OPTIONAL(signature_offset, k, vmSymbols::signature_name(), string_signature); \
- macro##_OPTIONAL(annotations_offset, k, vmSymbols::annotations_name(), byte_array_signature); \
- macro##_OPTIONAL(type_annotations_offset, k, vmSymbols::type_annotations_name(), byte_array_signature)
+ macro(signature_offset, k, vmSymbols::signature_name(), string_signature, false); \
+ macro(annotations_offset, k, vmSymbols::annotations_name(), byte_array_signature, false);
void java_lang_reflect_Field::compute_offsets() {
InstanceKlass* k = SystemDictionary::reflect_Field_klass();
- // The generic signature and annotations fields are only present in 1.5
- signature_offset = -1;
- annotations_offset = -1;
- type_annotations_offset = -1;
FIELD_FIELDS_DO(FIELD_COMPUTE_OFFSET);
}
@@ -3154,54 +2982,16 @@
field->int_field_put(modifiers_offset, value);
}
-bool java_lang_reflect_Field::has_signature_field() {
- return (signature_offset >= 0);
-}
-
-oop java_lang_reflect_Field::signature(oop field) {
- assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem");
- assert(has_signature_field(), "signature field must be present");
- return field->obj_field(signature_offset);
-}
-
void java_lang_reflect_Field::set_signature(oop field, oop value) {
assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem");
- assert(has_signature_field(), "signature field must be present");
field->obj_field_put(signature_offset, value);
}
-bool java_lang_reflect_Field::has_annotations_field() {
- return (annotations_offset >= 0);
-}
-
-oop java_lang_reflect_Field::annotations(oop field) {
- assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem");
- assert(has_annotations_field(), "annotations field must be present");
- return field->obj_field(annotations_offset);
-}
-
void java_lang_reflect_Field::set_annotations(oop field, oop value) {
assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem");
- assert(has_annotations_field(), "annotations field must be present");
field->obj_field_put(annotations_offset, value);
}
-bool java_lang_reflect_Field::has_type_annotations_field() {
- return (type_annotations_offset >= 0);
-}
-
-oop java_lang_reflect_Field::type_annotations(oop field) {
- assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem");
- assert(has_type_annotations_field(), "type_annotations field must be present");
- return field->obj_field(type_annotations_offset);
-}
-
-void java_lang_reflect_Field::set_type_annotations(oop field, oop value) {
- assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem");
- assert(has_type_annotations_field(), "type_annotations field must be present");
- field->obj_field_put(type_annotations_offset, value);
-}
-
#define CONSTANTPOOL_FIELDS_DO(macro) \
macro(_oop_offset, k, "constantPoolOop", object_signature, false)
@@ -4219,7 +4009,6 @@
int java_lang_reflect_Method::annotations_offset;
int java_lang_reflect_Method::parameter_annotations_offset;
int java_lang_reflect_Method::annotation_default_offset;
-int java_lang_reflect_Method::type_annotations_offset;
int java_lang_reflect_Constructor::clazz_offset;
int java_lang_reflect_Constructor::parameterTypes_offset;
int java_lang_reflect_Constructor::exceptionTypes_offset;
@@ -4228,7 +4017,6 @@
int java_lang_reflect_Constructor::signature_offset;
int java_lang_reflect_Constructor::annotations_offset;
int java_lang_reflect_Constructor::parameter_annotations_offset;
-int java_lang_reflect_Constructor::type_annotations_offset;
int java_lang_reflect_Field::clazz_offset;
int java_lang_reflect_Field::name_offset;
int java_lang_reflect_Field::type_offset;
@@ -4236,7 +4024,6 @@
int java_lang_reflect_Field::modifiers_offset;
int java_lang_reflect_Field::signature_offset;
int java_lang_reflect_Field::annotations_offset;
-int java_lang_reflect_Field::type_annotations_offset;
int java_lang_reflect_Parameter::name_offset;
int java_lang_reflect_Parameter::modifiers_offset;
int java_lang_reflect_Parameter::index_offset;
--- a/src/hotspot/share/classfile/javaClasses.hpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/classfile/javaClasses.hpp Mon Sep 24 10:59:26 2018 -0700
@@ -114,8 +114,8 @@
static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN;
// Instance creation
- static Handle create_from_unicode(jchar* unicode, int len, TRAPS);
- static oop create_oop_from_unicode(jchar* unicode, int len, TRAPS);
+ static Handle create_from_unicode(const jchar* unicode, int len, TRAPS);
+ static oop create_oop_from_unicode(const jchar* unicode, int len, TRAPS);
static Handle create_from_str(const char* utf8_str, TRAPS);
static oop create_oop_from_str(const char* utf8_str, TRAPS);
static Handle create_from_symbol(Symbol* symbol, TRAPS);
@@ -189,7 +189,7 @@
static unsigned int hash_code(oop java_string);
- static bool equals(oop java_string, jchar* chars, int len);
+ static bool equals(oop java_string, const jchar* chars, int len);
static bool equals(oop str1, oop str2);
// Conversion between '.' and '/' formats
@@ -602,10 +602,8 @@
static int annotations_offset;
static int parameter_annotations_offset;
static int annotation_default_offset;
- static int type_annotations_offset;
static void compute_offsets();
-
public:
static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN;
@@ -616,7 +614,6 @@
static oop clazz(oop reflect);
static void set_clazz(oop reflect, oop value);
- static oop name(oop method);
static void set_name(oop method, oop value);
static oop return_type(oop method);
@@ -625,35 +622,16 @@
static oop parameter_types(oop method);
static void set_parameter_types(oop method, oop value);
- static oop exception_types(oop method);
- static void set_exception_types(oop method, oop value);
-
static int slot(oop reflect);
static void set_slot(oop reflect, int value);
- static int modifiers(oop method);
+ static void set_exception_types(oop method, oop value);
static void set_modifiers(oop method, int value);
-
- static bool has_signature_field();
- static oop signature(oop method);
static void set_signature(oop method, oop value);
-
- static bool has_annotations_field();
- static oop annotations(oop method);
static void set_annotations(oop method, oop value);
-
- static bool has_parameter_annotations_field();
- static oop parameter_annotations(oop method);
static void set_parameter_annotations(oop method, oop value);
-
- static bool has_annotation_default_field();
- static oop annotation_default(oop method);
static void set_annotation_default(oop method, oop value);
- static bool has_type_annotations_field();
- static oop type_annotations(oop method);
- static void set_type_annotations(oop method, oop value);
-
// Debugging
friend class JavaClasses;
};
@@ -673,10 +651,8 @@
static int signature_offset;
static int annotations_offset;
static int parameter_annotations_offset;
- static int type_annotations_offset;
static void compute_offsets();
-
public:
static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN;
@@ -690,31 +666,15 @@
static oop parameter_types(oop constructor);
static void set_parameter_types(oop constructor, oop value);
- static oop exception_types(oop constructor);
- static void set_exception_types(oop constructor, oop value);
-
static int slot(oop reflect);
static void set_slot(oop reflect, int value);
- static int modifiers(oop constructor);
+ static void set_exception_types(oop constructor, oop value);
static void set_modifiers(oop constructor, int value);
-
- static bool has_signature_field();
- static oop signature(oop constructor);
static void set_signature(oop constructor, oop value);
-
- static bool has_annotations_field();
- static oop annotations(oop constructor);
static void set_annotations(oop constructor, oop value);
-
- static bool has_parameter_annotations_field();
- static oop parameter_annotations(oop method);
static void set_parameter_annotations(oop method, oop value);
- static bool has_type_annotations_field();
- static oop type_annotations(oop constructor);
- static void set_type_annotations(oop constructor, oop value);
-
// Debugging
friend class JavaClasses;
};
@@ -733,7 +693,6 @@
static int modifiers_offset;
static int signature_offset;
static int annotations_offset;
- static int type_annotations_offset;
static void compute_offsets();
@@ -759,26 +718,11 @@
static int modifiers(oop field);
static void set_modifiers(oop field, int value);
- static bool has_signature_field();
- static oop signature(oop constructor);
static void set_signature(oop constructor, oop value);
-
- static bool has_annotations_field();
- static oop annotations(oop constructor);
static void set_annotations(oop constructor, oop value);
-
- static bool has_parameter_annotations_field();
- static oop parameter_annotations(oop method);
static void set_parameter_annotations(oop method, oop value);
-
- static bool has_annotation_default_field();
- static oop annotation_default(oop method);
static void set_annotation_default(oop method, oop value);
- static bool has_type_annotations_field();
- static oop type_annotations(oop field);
- static void set_type_annotations(oop field, oop value);
-
// Debugging
friend class JavaClasses;
};
--- a/src/hotspot/share/classfile/stringTable.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/classfile/stringTable.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -24,7 +24,7 @@
#include "precompiled.hpp"
#include "classfile/altHashing.hpp"
-#include "classfile/compactHashtable.inline.hpp"
+#include "classfile/compactHashtable.hpp"
#include "classfile/javaClasses.inline.hpp"
#include "classfile/stringTable.hpp"
#include "classfile/systemDictionary.hpp"
@@ -35,7 +35,8 @@
#include "logging/logStream.hpp"
#include "memory/allocation.inline.hpp"
#include "memory/filemap.hpp"
-#include "memory/metaspaceShared.hpp"
+#include "memory/heapShared.inline.hpp"
+#include "memory/metaspaceShared.inline.hpp"
#include "memory/resourceArea.hpp"
#include "memory/universe.hpp"
#include "oops/access.inline.hpp"
@@ -62,9 +63,22 @@
// If we have as many dead items as 50% of the number of bucket
#define CLEAN_DEAD_HIGH_WATER_MARK 0.5
+#if INCLUDE_CDS_JAVA_HEAP
+inline oop read_string_from_compact_hashtable(address base_address, u4 offset) {
+ assert(sizeof(narrowOop) == sizeof(offset), "must be");
+ narrowOop v = (narrowOop)offset;
+ return HeapShared::decode_from_archive(v);
+}
+
+static CompactHashtable<
+ const jchar*, oop,
+ read_string_from_compact_hashtable,
+ java_lang_String::equals
+> _shared_table;
+#endif
+
// --------------------------------------------------------------------------
StringTable* StringTable::_the_table = NULL;
-CompactHashtable<oop, char> StringTable::_shared_table;
volatile bool StringTable::_shared_string_mapped = false;
volatile bool StringTable::_alt_hash = false;
@@ -134,7 +148,7 @@
*is_dead = true;
return false;
}
- bool equals = java_lang_String::equals(val_oop, (jchar*)_str, _len);
+ bool equals = java_lang_String::equals(val_oop, _str, _len);
if (!equals) {
return false;
}
@@ -236,7 +250,7 @@
return lookup(chars, length);
}
-oop StringTable::lookup(jchar* name, int len) {
+oop StringTable::lookup(const jchar* name, int len) {
unsigned int hash = java_lang_String::hash_code(name, len);
oop string = StringTable::the_table()->lookup_shared(name, len, hash);
if (string != NULL) {
@@ -263,7 +277,7 @@
}
};
-oop StringTable::do_lookup(jchar* name, int len, uintx hash) {
+oop StringTable::do_lookup(const jchar* name, int len, uintx hash) {
Thread* thread = Thread::current();
StringTableLookupJchar lookup(thread, hash, name, len);
StringTableGet stg(thread);
@@ -308,7 +322,7 @@
return result;
}
-oop StringTable::intern(Handle string_or_null_h, jchar* name, int len, TRAPS) {
+oop StringTable::intern(Handle string_or_null_h, const jchar* name, int len, TRAPS) {
// shared table always uses java_lang_String::hash_code
unsigned int hash = java_lang_String::hash_code(name, len);
oop found_string = StringTable::the_table()->lookup_shared(name, len, hash);
@@ -346,7 +360,7 @@
}
};
-oop StringTable::do_intern(Handle string_or_null_h, jchar* name,
+oop StringTable::do_intern(Handle string_or_null_h, const jchar* name,
int len, uintx hash, TRAPS) {
HandleMark hm(THREAD); // cleanup strings created
Handle string_h;
@@ -775,10 +789,10 @@
// Sharing
#if INCLUDE_CDS_JAVA_HEAP
-oop StringTable::lookup_shared(jchar* name, int len, unsigned int hash) {
+oop StringTable::lookup_shared(const jchar* name, int len, unsigned int hash) {
assert(hash == java_lang_String::hash_code(name, len),
"hash must be computed using java_lang_String::hash_code");
- return _shared_table.lookup((const char*)name, hash, len);
+ return _shared_table.lookup(name, hash, len);
}
oop StringTable::create_archived_string(oop s, Thread* THREAD) {
@@ -805,6 +819,15 @@
return new_s;
}
+class CompactStringTableWriter: public CompactHashtableWriter {
+public:
+ CompactStringTableWriter(int num_entries, CompactHashtableStats* stats) :
+ CompactHashtableWriter(num_entries, stats) {}
+ void add(unsigned int hash, oop string) {
+ CompactHashtableWriter::add(hash, CompressedOops::encode(string));
+ }
+};
+
struct CopyToArchive : StackObj {
CompactStringTableWriter* _writer;
CopyToArchive(CompactStringTableWriter* writer) : _writer(writer) {}
@@ -849,11 +872,10 @@
// Copy the interned strings into the "string space" within the java heap
copy_shared_string_table(&writer);
- writer.dump(&_shared_table);
+ writer.dump(&_shared_table, "string");
}
void StringTable::serialize(SerializeClosure* soc) {
- _shared_table.set_type(CompactHashtable<oop, char>::_string_table);
_shared_table.serialize(soc);
if (soc->writing()) {
@@ -864,7 +886,17 @@
}
}
+class SharedStringIterator {
+ OopClosure* _oop_closure;
+public:
+ SharedStringIterator(OopClosure* f) : _oop_closure(f) {}
+ void do_value(oop string) {
+ _oop_closure->do_oop(&string);
+ }
+};
+
void StringTable::shared_oops_do(OopClosure* f) {
- _shared_table.oops_do(f);
+ SharedStringIterator iter(f);
+ _shared_table.iterate(&iter);
}
#endif //INCLUDE_CDS_JAVA_HEAP
--- a/src/hotspot/share/classfile/stringTable.hpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/classfile/stringTable.hpp Mon Sep 24 10:59:26 2018 -0700
@@ -33,7 +33,6 @@
#include "oops/weakHandle.hpp"
#include "utilities/concurrentHashTable.hpp"
-template <class T, class N> class CompactHashtable;
class CompactStringTableWriter;
class SerializeClosure;
@@ -56,8 +55,6 @@
// The string table
static StringTable* _the_table;
- // Shared string table
- static CompactHashtable<oop, char> _shared_table;
static volatile bool _shared_string_mapped;
static volatile bool _alt_hash;
@@ -88,9 +85,9 @@
StringTable();
- static oop intern(Handle string_or_null_h, jchar* name, int len, TRAPS);
- oop do_intern(Handle string_or_null, jchar* name, int len, uintx hash, TRAPS);
- oop do_lookup(jchar* name, int len, uintx hash);
+ static oop intern(Handle string_or_null_h, const jchar* name, int len, TRAPS);
+ oop do_intern(Handle string_or_null, const jchar* name, int len, uintx hash, TRAPS);
+ oop do_lookup(const jchar* name, int len, uintx hash);
void concurrent_work(JavaThread* jt);
void print_table_statistics(outputStream* st, const char* table_name);
@@ -151,7 +148,7 @@
// Probing
static oop lookup(Symbol* symbol);
- static oop lookup(jchar* chars, int length);
+ static oop lookup(const jchar* chars, int length);
// Interning
static oop intern(Symbol* symbol, TRAPS);
@@ -165,7 +162,7 @@
// Sharing
private:
- oop lookup_shared(jchar* name, int len, unsigned int hash) NOT_CDS_JAVA_HEAP_RETURN_(NULL);
+ oop lookup_shared(const jchar* name, int len, unsigned int hash) NOT_CDS_JAVA_HEAP_RETURN_(NULL);
static void copy_shared_string_table(CompactStringTableWriter* ch_table) NOT_CDS_JAVA_HEAP_RETURN;
public:
static oop create_archived_string(oop s, Thread* THREAD) NOT_CDS_JAVA_HEAP_RETURN_(NULL);
--- a/src/hotspot/share/classfile/symbolTable.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/classfile/symbolTable.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -24,11 +24,12 @@
#include "precompiled.hpp"
#include "classfile/altHashing.hpp"
-#include "classfile/compactHashtable.inline.hpp"
+#include "classfile/compactHashtable.hpp"
#include "classfile/javaClasses.hpp"
#include "classfile/symbolTable.hpp"
#include "memory/allocation.inline.hpp"
#include "memory/metaspaceClosure.hpp"
+#include "memory/metaspaceShared.hpp"
#include "memory/resourceArea.hpp"
#include "oops/oop.inline.hpp"
#include "runtime/atomic.hpp"
@@ -56,8 +57,27 @@
#define ON_STACK_BUFFER_LENGTH 128
// --------------------------------------------------------------------------
+inline Symbol* read_symbol_from_compact_hashtable(address base_address, u4 offset) {
+ return (Symbol*)(base_address + offset);
+}
+
+inline bool symbol_equals_compact_hashtable_entry(Symbol* value, const char* key, int len) {
+ if (value->equals(key, len)) {
+ assert(value->refcount() == PERM_REFCOUNT, "must be shared");
+ return true;
+ } else {
+ return false;
+ }
+}
+
+static CompactHashtable<
+ const char*, Symbol*,
+ read_symbol_from_compact_hashtable,
+ symbol_equals_compact_hashtable_entry
+> _shared_table;
+
+// --------------------------------------------------------------------------
SymbolTable* SymbolTable::_the_table = NULL;
-CompactHashtable<Symbol*, char> SymbolTable::_shared_table;
volatile bool SymbolTable::_alt_hash = false;
volatile bool SymbolTable::_lookup_shared_first = false;
// Static arena for symbols that are not deallocated
@@ -224,10 +244,20 @@
};
};
+class SharedSymbolIterator {
+ SymbolClosure* _symbol_closure;
+public:
+ SharedSymbolIterator(SymbolClosure* f) : _symbol_closure(f) {}
+ void do_value(Symbol* symbol) {
+ _symbol_closure->do_symbol(&symbol);
+ }
+};
+
// Call function for all symbols in the symbol table.
void SymbolTable::symbols_do(SymbolClosure *cl) {
// all symbols from shared table
- _shared_table.symbols_do(cl);
+ SharedSymbolIterator iter(cl);
+ _shared_table.iterate(&iter);
// all symbols from the dynamic table
SymbolsDo sd(cl);
@@ -597,6 +627,22 @@
}
#if INCLUDE_CDS
+class CompactSymbolTableWriter: public CompactHashtableWriter {
+public:
+ CompactSymbolTableWriter(int num_buckets, CompactHashtableStats* stats) :
+ CompactHashtableWriter(num_buckets, stats) {}
+ void add(unsigned int hash, Symbol *symbol) {
+ uintx deltax = MetaspaceShared::object_delta(symbol);
+ // When the symbols are stored into the archive, we already check that
+ // they won't be more than MAX_SHARED_DELTA from the base address, or
+ // else the dumping would have been aborted.
+ assert(deltax <= MAX_SHARED_DELTA, "must not be");
+ u4 delta = u4(deltax);
+
+ CompactHashtableWriter::add(hash, delta);
+ }
+};
+
struct CopyToArchive : StackObj {
CompactSymbolTableWriter* _writer;
CopyToArchive(CompactSymbolTableWriter* writer) : _writer(writer) {}
@@ -613,7 +659,6 @@
// add to the compact table
_writer->add(fixed_hash, sym);
-
return true;
}
};
@@ -631,7 +676,7 @@
CompactSymbolTableWriter writer(num_buckets > 1 ? num_buckets : 1,
&MetaspaceShared::stats()->symbol);
copy_shared_symbol_table(&writer);
- writer.dump(&_shared_table);
+ writer.dump(&_shared_table, "symbol");
// Verify table is correct
Symbol* sym = vmSymbols::java_lang_Object();
@@ -642,7 +687,6 @@
}
void SymbolTable::serialize(SerializeClosure* soc) {
- _shared_table.set_type(CompactHashtable<Symbol*, char>::_symbol_table);
_shared_table.serialize(soc);
if (soc->writing()) {
--- a/src/hotspot/share/classfile/symbolTable.hpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/classfile/symbolTable.hpp Mon Sep 24 10:59:26 2018 -0700
@@ -84,7 +84,6 @@
operator Symbol*() { return _temp; }
};
-template <class T, class N> class CompactHashtable;
class CompactSymbolTableWriter;
class SerializeClosure;
@@ -108,8 +107,6 @@
// The symbol table
static SymbolTable* _the_table;
- // Shared symbol table.
- static CompactHashtable<Symbol*, char> _shared_table;
static volatile bool _lookup_shared_first;
static volatile bool _alt_hash;
--- a/src/hotspot/share/classfile/systemDictionaryShared.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/classfile/systemDictionaryShared.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,7 +28,6 @@
#include "classfile/classLoader.hpp"
#include "classfile/classLoaderData.inline.hpp"
#include "classfile/classLoaderExt.hpp"
-#include "classfile/compactHashtable.inline.hpp"
#include "classfile/dictionary.hpp"
#include "classfile/javaClasses.hpp"
#include "classfile/symbolTable.hpp"
--- a/src/hotspot/share/gc/g1/g1CollectedHeap.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/gc/g1/g1CollectedHeap.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -79,7 +79,7 @@
#include "logging/log.hpp"
#include "memory/allocation.hpp"
#include "memory/iterator.hpp"
-#include "memory/metaspaceShared.hpp"
+#include "memory/metaspaceShared.inline.hpp"
#include "memory/resourceArea.hpp"
#include "oops/access.inline.hpp"
#include "oops/compressedOops.inline.hpp"
@@ -1079,9 +1079,10 @@
// the full GC has compacted objects and updated TAMS but not updated
// the prev bitmap.
if (G1VerifyBitmaps) {
- GCTraceTime(Debug, gc)("Clear Bitmap for Verification");
+ GCTraceTime(Debug, gc)("Clear Prev Bitmap for Verification");
_cm->clear_prev_bitmap(workers());
}
+ // This call implicitly verifies that the next bitmap is clear after Full GC.
_verifier->check_bitmaps("Full GC End");
// At this point there should be no regions in the
@@ -2484,7 +2485,6 @@
// Fill TLAB's and such
double start = os::elapsedTime();
- accumulate_statistics_all_tlabs();
ensure_parsability(true);
g1_policy()->phase_times()->record_prepare_tlab_time_ms((os::elapsedTime() - start) * 1000.0);
}
--- a/src/hotspot/share/gc/g1/g1ConcurrentMark.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/gc/g1/g1ConcurrentMark.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -716,28 +716,6 @@
clear_bitmap(_prev_mark_bitmap, workers, false);
}
-class CheckBitmapClearHRClosure : public HeapRegionClosure {
- G1CMBitMap* _bitmap;
- public:
- CheckBitmapClearHRClosure(G1CMBitMap* bitmap) : _bitmap(bitmap) {
- }
-
- virtual bool do_heap_region(HeapRegion* r) {
- // This closure can be called concurrently to the mutator, so we must make sure
- // that the result of the getNextMarkedWordAddress() call is compared to the
- // value passed to it as limit to detect any found bits.
- // end never changes in G1.
- HeapWord* end = r->end();
- return _bitmap->get_next_marked_addr(r->bottom(), end) != end;
- }
-};
-
-bool G1ConcurrentMark::next_mark_bitmap_is_clear() {
- CheckBitmapClearHRClosure cl(_next_mark_bitmap);
- _g1h->heap_region_iterate(&cl);
- return cl.is_complete();
-}
-
class NoteStartOfMarkHRClosure : public HeapRegionClosure {
public:
bool do_heap_region(HeapRegion* r) {
--- a/src/hotspot/share/gc/g1/g1ConcurrentMark.hpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/gc/g1/g1ConcurrentMark.hpp Mon Sep 24 10:59:26 2018 -0700
@@ -544,10 +544,6 @@
// Clear the previous marking bitmap during safepoint.
void clear_prev_bitmap(WorkGang* workers);
- // Return whether the next mark bitmap has no marks set. To be used for assertions
- // only. Will not yield to pause requests.
- bool next_mark_bitmap_is_clear();
-
// These two methods do the work that needs to be done at the start and end of the
// initial mark pause.
void pre_initial_mark();
--- a/src/hotspot/share/gc/g1/g1ConcurrentMarkThread.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/gc/g1/g1ConcurrentMarkThread.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -381,8 +381,6 @@
if (!_cm->has_aborted()) {
G1ConcPhase p(G1ConcurrentPhase::CLEANUP_FOR_NEXT_MARK, this);
_cm->cleanup_for_next_mark();
- } else {
- assert(!G1VerifyBitmaps || _cm->next_mark_bitmap_is_clear(), "Next mark bitmap must be clear");
}
}
--- a/src/hotspot/share/gc/parallel/parallelScavengeHeap.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/gc/parallel/parallelScavengeHeap.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -488,10 +488,6 @@
return result;
}
-void ParallelScavengeHeap::accumulate_statistics_all_tlabs() {
- CollectedHeap::accumulate_statistics_all_tlabs();
-}
-
void ParallelScavengeHeap::resize_all_tlabs() {
CollectedHeap::resize_all_tlabs();
}
--- a/src/hotspot/share/gc/parallel/parallelScavengeHeap.hpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/gc/parallel/parallelScavengeHeap.hpp Mon Sep 24 10:59:26 2018 -0700
@@ -206,7 +206,6 @@
HeapWord** end_addr() const { return !UseNUMA ? young_gen()->end_addr() : (HeapWord**)-1; }
void ensure_parsability(bool retire_tlabs);
- void accumulate_statistics_all_tlabs();
void resize_all_tlabs();
bool supports_tlab_allocation() const { return true; }
--- a/src/hotspot/share/gc/parallel/psMarkSweep.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/gc/parallel/psMarkSweep.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -150,7 +150,6 @@
heap->trace_heap_before_gc(_gc_tracer);
// Fill in TLABs
- heap->accumulate_statistics_all_tlabs();
heap->ensure_parsability(true); // retire TLABs
if (VerifyBeforeGC && heap->total_collections() >= VerifyGCStartAt) {
--- a/src/hotspot/share/gc/parallel/psParallelCompact.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/gc/parallel/psParallelCompact.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -972,7 +972,6 @@
heap->trace_heap_before_gc(&_gc_tracer);
// Fill in TLABs
- heap->accumulate_statistics_all_tlabs();
heap->ensure_parsability(true); // retire TLABs
if (VerifyBeforeGC && heap->total_collections() >= VerifyGCStartAt) {
--- a/src/hotspot/share/gc/parallel/psScavenge.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/gc/parallel/psScavenge.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -279,7 +279,6 @@
assert(!AlwaysTenure || _tenuring_threshold == 0, "Sanity");
// Fill in TLABs
- heap->accumulate_statistics_all_tlabs();
heap->ensure_parsability(true); // retire TLABs
if (VerifyBeforeGC && heap->total_collections() >= VerifyGCStartAt) {
--- a/src/hotspot/share/gc/serial/markSweep.inline.hpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/gc/serial/markSweep.inline.hpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,7 +27,6 @@
#include "classfile/classLoaderData.inline.hpp"
#include "gc/serial/markSweep.hpp"
-#include "memory/metaspaceShared.hpp"
#include "memory/universe.hpp"
#include "oops/markOop.inline.hpp"
#include "oops/access.inline.hpp"
--- a/src/hotspot/share/gc/shared/c2/barrierSetC2.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/gc/shared/c2/barrierSetC2.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -25,8 +25,10 @@
#include "precompiled.hpp"
#include "gc/shared/c2/barrierSetC2.hpp"
#include "opto/arraycopynode.hpp"
+#include "opto/convertnode.hpp"
#include "opto/graphKit.hpp"
#include "opto/idealKit.hpp"
+#include "opto/macro.hpp"
#include "opto/narrowptrnode.hpp"
#include "utilities/macros.hpp"
@@ -601,3 +603,130 @@
kit->set_all_memory(n);
}
}
+
+Node* BarrierSetC2::obj_allocate(PhaseMacroExpand* macro, Node* ctrl, Node* mem, Node* toobig_false, Node* size_in_bytes,
+ Node*& i_o, Node*& needgc_ctrl,
+ Node*& fast_oop_ctrl, Node*& fast_oop_rawmem,
+ intx prefetch_lines) const {
+
+ Node* eden_top_adr;
+ Node* eden_end_adr;
+
+ macro->set_eden_pointers(eden_top_adr, eden_end_adr);
+
+ // Load Eden::end. Loop invariant and hoisted.
+ //
+ // Note: We set the control input on "eden_end" and "old_eden_top" when using
+ // a TLAB to work around a bug where these values were being moved across
+ // a safepoint. These are not oops, so they cannot be include in the oop
+ // map, but they can be changed by a GC. The proper way to fix this would
+ // be to set the raw memory state when generating a SafepointNode. However
+ // this will require extensive changes to the loop optimization in order to
+ // prevent a degradation of the optimization.
+ // See comment in memnode.hpp, around line 227 in class LoadPNode.
+ Node *eden_end = macro->make_load(ctrl, mem, eden_end_adr, 0, TypeRawPtr::BOTTOM, T_ADDRESS);
+
+ // We need a Region for the loop-back contended case.
+ enum { fall_in_path = 1, contended_loopback_path = 2 };
+ Node *contended_region;
+ Node *contended_phi_rawmem;
+ if (UseTLAB) {
+ contended_region = toobig_false;
+ contended_phi_rawmem = mem;
+ } else {
+ contended_region = new RegionNode(3);
+ contended_phi_rawmem = new PhiNode(contended_region, Type::MEMORY, TypeRawPtr::BOTTOM);
+ // Now handle the passing-too-big test. We fall into the contended
+ // loop-back merge point.
+ contended_region ->init_req(fall_in_path, toobig_false);
+ contended_phi_rawmem->init_req(fall_in_path, mem);
+ macro->transform_later(contended_region);
+ macro->transform_later(contended_phi_rawmem);
+ }
+
+ // Load(-locked) the heap top.
+ // See note above concerning the control input when using a TLAB
+ Node *old_eden_top = UseTLAB
+ ? new LoadPNode (ctrl, contended_phi_rawmem, eden_top_adr, TypeRawPtr::BOTTOM, TypeRawPtr::BOTTOM, MemNode::unordered)
+ : new LoadPLockedNode(contended_region, contended_phi_rawmem, eden_top_adr, MemNode::acquire);
+
+ macro->transform_later(old_eden_top);
+ // Add to heap top to get a new heap top
+ Node *new_eden_top = new AddPNode(macro->top(), old_eden_top, size_in_bytes);
+ macro->transform_later(new_eden_top);
+ // Check for needing a GC; compare against heap end
+ Node *needgc_cmp = new CmpPNode(new_eden_top, eden_end);
+ macro->transform_later(needgc_cmp);
+ Node *needgc_bol = new BoolNode(needgc_cmp, BoolTest::ge);
+ macro->transform_later(needgc_bol);
+ IfNode *needgc_iff = new IfNode(contended_region, needgc_bol, PROB_UNLIKELY_MAG(4), COUNT_UNKNOWN);
+ macro->transform_later(needgc_iff);
+
+ // Plug the failing-heap-space-need-gc test into the slow-path region
+ Node *needgc_true = new IfTrueNode(needgc_iff);
+ macro->transform_later(needgc_true);
+ needgc_ctrl = needgc_true;
+
+ // No need for a GC. Setup for the Store-Conditional
+ Node *needgc_false = new IfFalseNode(needgc_iff);
+ macro->transform_later(needgc_false);
+
+ i_o = macro->prefetch_allocation(i_o, needgc_false, contended_phi_rawmem,
+ old_eden_top, new_eden_top, prefetch_lines);
+
+ Node* fast_oop = old_eden_top;
+
+ // Store (-conditional) the modified eden top back down.
+ // StorePConditional produces flags for a test PLUS a modified raw
+ // memory state.
+ if (UseTLAB) {
+ Node* store_eden_top =
+ new StorePNode(needgc_false, contended_phi_rawmem, eden_top_adr,
+ TypeRawPtr::BOTTOM, new_eden_top, MemNode::unordered);
+ macro->transform_later(store_eden_top);
+ fast_oop_ctrl = needgc_false; // No contention, so this is the fast path
+ fast_oop_rawmem = store_eden_top;
+ } else {
+ Node* store_eden_top =
+ new StorePConditionalNode(needgc_false, contended_phi_rawmem, eden_top_adr,
+ new_eden_top, fast_oop/*old_eden_top*/);
+ macro->transform_later(store_eden_top);
+ Node *contention_check = new BoolNode(store_eden_top, BoolTest::ne);
+ macro->transform_later(contention_check);
+ store_eden_top = new SCMemProjNode(store_eden_top);
+ macro->transform_later(store_eden_top);
+
+ // If not using TLABs, check to see if there was contention.
+ IfNode *contention_iff = new IfNode (needgc_false, contention_check, PROB_MIN, COUNT_UNKNOWN);
+ macro->transform_later(contention_iff);
+ Node *contention_true = new IfTrueNode(contention_iff);
+ macro->transform_later(contention_true);
+ // If contention, loopback and try again.
+ contended_region->init_req(contended_loopback_path, contention_true);
+ contended_phi_rawmem->init_req(contended_loopback_path, store_eden_top);
+
+ // Fast-path succeeded with no contention!
+ Node *contention_false = new IfFalseNode(contention_iff);
+ macro->transform_later(contention_false);
+ fast_oop_ctrl = contention_false;
+
+ // Bump total allocated bytes for this thread
+ Node* thread = new ThreadLocalNode();
+ macro->transform_later(thread);
+ Node* alloc_bytes_adr = macro->basic_plus_adr(macro->top()/*not oop*/, thread,
+ in_bytes(JavaThread::allocated_bytes_offset()));
+ Node* alloc_bytes = macro->make_load(fast_oop_ctrl, store_eden_top, alloc_bytes_adr,
+ 0, TypeLong::LONG, T_LONG);
+#ifdef _LP64
+ Node* alloc_size = size_in_bytes;
+#else
+ Node* alloc_size = new ConvI2LNode(size_in_bytes);
+ macro->transform_later(alloc_size);
+#endif
+ Node* new_alloc_bytes = new AddLNode(alloc_bytes, alloc_size);
+ macro->transform_later(new_alloc_bytes);
+ fast_oop_rawmem = macro->make_store(fast_oop_ctrl, store_eden_top, alloc_bytes_adr,
+ 0, new_alloc_bytes, T_LONG);
+ }
+ return fast_oop;
+}
--- a/src/hotspot/share/gc/shared/c2/barrierSetC2.hpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/gc/shared/c2/barrierSetC2.hpp Mon Sep 24 10:59:26 2018 -0700
@@ -192,6 +192,11 @@
virtual Node* resolve(GraphKit* kit, Node* n, DecoratorSet decorators) const { return n; }
+ virtual Node* obj_allocate(PhaseMacroExpand* macro, Node* ctrl, Node* mem, Node* toobig_false, Node* size_in_bytes,
+ Node*& i_o, Node*& needgc_ctrl,
+ Node*& fast_oop_ctrl, Node*& fast_oop_rawmem,
+ intx prefetch_lines) const;
+
// These are general helper methods used by C2
virtual bool array_copy_requires_gc_barriers(BasicType type) const { return false; }
--- a/src/hotspot/share/gc/shared/collectedHeap.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/gc/shared/collectedHeap.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -468,50 +468,33 @@
}
void CollectedHeap::ensure_parsability(bool retire_tlabs) {
- // The second disjunct in the assertion below makes a concession
- // for the start-up verification done while the VM is being
- // created. Callers be careful that you know that mutators
- // aren't going to interfere -- for instance, this is permissible
- // if we are still single-threaded and have either not yet
- // started allocating (nothing much to verify) or we have
- // started allocating but are now a full-fledged JavaThread
- // (and have thus made our TLAB's) available for filling.
- assert(SafepointSynchronize::is_at_safepoint() ||
- !is_init_completed(),
- "Should only be called at a safepoint or at start-up"
- " otherwise concurrent mutator activity may make heap "
- " unparsable again");
- const bool use_tlab = UseTLAB;
- // The main thread starts allocating via a TLAB even before it
- // has added itself to the threads list at vm boot-up.
- JavaThreadIteratorWithHandle jtiwh;
- assert(!use_tlab || jtiwh.length() > 0,
- "Attempt to fill tlabs before main thread has been added"
- " to threads list is doomed to failure!");
- BarrierSet *bs = BarrierSet::barrier_set();
- for (; JavaThread *thread = jtiwh.next(); ) {
- if (use_tlab) thread->tlab().make_parsable(retire_tlabs);
- bs->make_parsable(thread);
+ assert(SafepointSynchronize::is_at_safepoint() || !is_init_completed(),
+ "Should only be called at a safepoint or at start-up");
+
+ ThreadLocalAllocStats stats;
+
+ for (JavaThreadIteratorWithHandle jtiwh; JavaThread *thread = jtiwh.next();) {
+ BarrierSet::barrier_set()->make_parsable(thread);
+ if (UseTLAB) {
+ if (retire_tlabs) {
+ thread->tlab().retire(&stats);
+ } else {
+ thread->tlab().make_parsable();
+ }
+ }
}
-}
-void CollectedHeap::accumulate_statistics_all_tlabs() {
- if (UseTLAB) {
- assert(SafepointSynchronize::is_at_safepoint() ||
- !is_init_completed(),
- "should only accumulate statistics on tlabs at safepoint");
-
- ThreadLocalAllocBuffer::accumulate_statistics_before_gc();
- }
+ stats.publish();
}
void CollectedHeap::resize_all_tlabs() {
- if (UseTLAB) {
- assert(SafepointSynchronize::is_at_safepoint() ||
- !is_init_completed(),
- "should only resize tlabs at safepoint");
+ assert(SafepointSynchronize::is_at_safepoint() || !is_init_completed(),
+ "Should only resize tlabs at safepoint");
- ThreadLocalAllocBuffer::resize_all_tlabs();
+ if (UseTLAB && ResizeTLAB) {
+ for (JavaThreadIteratorWithHandle jtiwh; JavaThread *thread = jtiwh.next(); ) {
+ thread->tlab().resize();
+ }
}
}
--- a/src/hotspot/share/gc/shared/collectedHeap.hpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/gc/shared/collectedHeap.hpp Mon Sep 24 10:59:26 2018 -0700
@@ -137,9 +137,6 @@
size_t requested_size,
size_t* actual_size);
- // Accumulate statistics on all tlabs.
- virtual void accumulate_statistics_all_tlabs();
-
// Reinitialize tlabs before resuming mutators.
virtual void resize_all_tlabs();
--- a/src/hotspot/share/gc/shared/genCollectedHeap.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/gc/shared/genCollectedHeap.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -1293,7 +1293,6 @@
assert(InlineCacheBuffer::is_empty(), "should have cleaned up ICBuffer");
// Fill TLAB's and such
- CollectedHeap::accumulate_statistics_all_tlabs();
ensure_parsability(true); // retire TLABs
// Walk generations
--- a/src/hotspot/share/gc/shared/memAllocator.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/gc/shared/memAllocator.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -320,7 +320,7 @@
// To minimize fragmentation, the last TLAB may be smaller than the rest.
size_t new_tlab_size = tlab.compute_size(_word_size);
- tlab.clear_before_allocation();
+ tlab.retire_before_allocation();
if (new_tlab_size == 0) {
return NULL;
--- a/src/hotspot/share/gc/shared/threadLocalAllocBuffer.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/gc/shared/threadLocalAllocBuffer.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -32,18 +32,9 @@
#include "runtime/threadSMR.hpp"
#include "utilities/copy.hpp"
-// Thread-Local Edens support
-
-// static member initialization
-size_t ThreadLocalAllocBuffer::_max_size = 0;
-int ThreadLocalAllocBuffer::_reserve_for_allocation_prefetch = 0;
-unsigned ThreadLocalAllocBuffer::_target_refills = 0;
-GlobalTLABStats* ThreadLocalAllocBuffer::_global_stats = NULL;
-
-void ThreadLocalAllocBuffer::clear_before_allocation() {
- _slow_refill_waste += (unsigned)remaining();
- make_parsable(true); // also retire the TLAB
-}
+size_t ThreadLocalAllocBuffer::_max_size = 0;
+int ThreadLocalAllocBuffer::_reserve_for_allocation_prefetch = 0;
+unsigned int ThreadLocalAllocBuffer::_target_refills = 0;
size_t ThreadLocalAllocBuffer::remaining() {
if (end() == NULL) {
@@ -53,22 +44,7 @@
return pointer_delta(hard_end(), top());
}
-void ThreadLocalAllocBuffer::accumulate_statistics_before_gc() {
- global_stats()->initialize();
-
- for (JavaThreadIteratorWithHandle jtiwh; JavaThread *thread = jtiwh.next(); ) {
- thread->tlab().accumulate_statistics();
- thread->tlab().initialize_statistics();
- }
-
- // Publish new stats if some allocation occurred.
- if (global_stats()->allocation() != 0) {
- global_stats()->publish();
- global_stats()->print();
- }
-}
-
-void ThreadLocalAllocBuffer::accumulate_statistics() {
+void ThreadLocalAllocBuffer::accumulate_and_reset_statistics(ThreadLocalAllocStats* stats) {
Thread* thr = thread();
size_t capacity = Universe::heap()->tlab_capacity(thr);
size_t used = Universe::heap()->tlab_used(thr);
@@ -95,55 +71,55 @@
double alloc_frac = MIN2(1.0, (double) allocated_since_last_gc / used);
_allocation_fraction.sample(alloc_frac);
}
- global_stats()->update_allocating_threads();
- global_stats()->update_number_of_refills(_number_of_refills);
- global_stats()->update_allocation(_allocated_size);
- global_stats()->update_gc_waste(_gc_waste);
- global_stats()->update_slow_refill_waste(_slow_refill_waste);
- global_stats()->update_fast_refill_waste(_fast_refill_waste);
+ stats->update_fast_allocations(_number_of_refills,
+ _allocated_size,
+ _gc_waste,
+ _fast_refill_waste,
+ _slow_refill_waste);
} else {
assert(_number_of_refills == 0 && _fast_refill_waste == 0 &&
_slow_refill_waste == 0 && _gc_waste == 0,
"tlab stats == 0");
}
- global_stats()->update_slow_allocations(_slow_allocations);
+
+ stats->update_slow_allocations(_slow_allocations);
+
+ reset_statistics();
}
-// Fills the current tlab with a dummy filler array to create
-// an illusion of a contiguous Eden and optionally retires the tlab.
-// Waste accounting should be done in caller as appropriate; see,
-// for example, clear_before_allocation().
-void ThreadLocalAllocBuffer::make_parsable(bool retire, bool zap) {
+void ThreadLocalAllocBuffer::insert_filler() {
+ assert(end() != NULL, "Must not be retired");
+ Universe::heap()->fill_with_dummy_object(top(), hard_end(), true);
+}
+
+void ThreadLocalAllocBuffer::make_parsable() {
if (end() != NULL) {
invariants();
-
- if (retire) {
- thread()->incr_allocated_bytes(used_bytes());
- }
-
- Universe::heap()->fill_with_dummy_object(top(), hard_end(), retire && zap);
-
- if (retire || ZeroTLAB) { // "Reset" the TLAB
- set_start(NULL);
- set_top(NULL);
- set_pf_top(NULL);
- set_end(NULL);
- set_allocation_end(NULL);
+ if (ZeroTLAB) {
+ retire();
+ } else {
+ insert_filler();
}
}
- assert(!(retire || ZeroTLAB) ||
- (start() == NULL && end() == NULL && top() == NULL &&
- _allocation_end == NULL),
- "TLAB must be reset");
}
-void ThreadLocalAllocBuffer::resize_all_tlabs() {
- if (ResizeTLAB) {
- for (JavaThreadIteratorWithHandle jtiwh; JavaThread *thread = jtiwh.next(); ) {
- thread->tlab().resize();
- }
+void ThreadLocalAllocBuffer::retire(ThreadLocalAllocStats* stats) {
+ if (stats != NULL) {
+ accumulate_and_reset_statistics(stats);
}
+
+ if (end() != NULL) {
+ invariants();
+ thread()->incr_allocated_bytes(used_bytes());
+ insert_filler();
+ initialize(NULL, NULL, NULL);
+ }
+}
+
+void ThreadLocalAllocBuffer::retire_before_allocation() {
+ _slow_refill_waste += (unsigned int)remaining();
+ retire();
}
void ThreadLocalAllocBuffer::resize() {
@@ -166,7 +142,7 @@
set_refill_waste_limit(initial_refill_waste_limit());
}
-void ThreadLocalAllocBuffer::initialize_statistics() {
+void ThreadLocalAllocBuffer::reset_statistics() {
_number_of_refills = 0;
_fast_refill_waste = 0;
_slow_refill_waste = 0;
@@ -207,21 +183,17 @@
set_desired_size(initial_desired_size());
- // Following check is needed because at startup the main
- // thread is initialized before the heap is. The initialization for
- // this thread is redone in startup_initialization below.
- if (Universe::heap() != NULL) {
- size_t capacity = Universe::heap()->tlab_capacity(thread()) / HeapWordSize;
- double alloc_frac = desired_size() * target_refills() / (double) capacity;
- _allocation_fraction.sample(alloc_frac);
- }
+ size_t capacity = Universe::heap()->tlab_capacity(thread()) / HeapWordSize;
+ double alloc_frac = desired_size() * target_refills() / (double) capacity;
+ _allocation_fraction.sample(alloc_frac);
set_refill_waste_limit(initial_refill_waste_limit());
- initialize_statistics();
+ reset_statistics();
}
void ThreadLocalAllocBuffer::startup_initialization() {
+ ThreadLocalAllocStats::initialize();
// Assuming each thread's active tlab is, on average,
// 1/2 full at a GC
@@ -230,8 +202,6 @@
// abort during VM initialization.
_target_refills = MAX2(_target_refills, 2U);
- _global_stats = new GlobalTLABStats();
-
#ifdef COMPILER2
// If the C2 compiler is present, extra space is needed at the end of
// TLABs, otherwise prefetching instructions generated by the C2
@@ -270,9 +240,9 @@
if (TLABSize > 0) {
init_sz = TLABSize / HeapWordSize;
- } else if (global_stats() != NULL) {
+ } else {
// Initial size is a function of the average number of allocating threads.
- unsigned nof_threads = global_stats()->allocating_threads_avg();
+ unsigned int nof_threads = ThreadLocalAllocStats::allocating_threads_avg();
init_sz = (Universe::heap()->tlab_capacity(thread()) / HeapWordSize) /
(nof_threads * target_refills());
@@ -346,123 +316,148 @@
return _allocation_end + alignment_reserve();
}
-GlobalTLABStats::GlobalTLABStats() :
- _allocating_threads_avg(TLABAllocationWeight) {
+PerfVariable* ThreadLocalAllocStats::_perf_allocating_threads;
+PerfVariable* ThreadLocalAllocStats::_perf_total_refills;
+PerfVariable* ThreadLocalAllocStats::_perf_max_refills;
+PerfVariable* ThreadLocalAllocStats::_perf_total_allocations;
+PerfVariable* ThreadLocalAllocStats::_perf_total_gc_waste;
+PerfVariable* ThreadLocalAllocStats::_perf_max_gc_waste;
+PerfVariable* ThreadLocalAllocStats::_perf_total_slow_refill_waste;
+PerfVariable* ThreadLocalAllocStats::_perf_max_slow_refill_waste;
+PerfVariable* ThreadLocalAllocStats::_perf_total_fast_refill_waste;
+PerfVariable* ThreadLocalAllocStats::_perf_max_fast_refill_waste;
+PerfVariable* ThreadLocalAllocStats::_perf_total_slow_allocations;
+PerfVariable* ThreadLocalAllocStats::_perf_max_slow_allocations;
+AdaptiveWeightedAverage ThreadLocalAllocStats::_allocating_threads_avg(0);
- initialize();
+static PerfVariable* create_perf_variable(const char* name, PerfData::Units unit, TRAPS) {
+ ResourceMark rm;
+ return PerfDataManager::create_variable(SUN_GC, PerfDataManager::counter_name("tlab", name), unit, THREAD);
+}
+void ThreadLocalAllocStats::initialize() {
+ _allocating_threads_avg = AdaptiveWeightedAverage(TLABAllocationWeight);
_allocating_threads_avg.sample(1); // One allocating thread at startup
if (UsePerfData) {
-
EXCEPTION_MARK;
- ResourceMark rm;
-
- char* cname = PerfDataManager::counter_name("tlab", "allocThreads");
- _perf_allocating_threads =
- PerfDataManager::create_variable(SUN_GC, cname, PerfData::U_None, CHECK);
-
- cname = PerfDataManager::counter_name("tlab", "fills");
- _perf_total_refills =
- PerfDataManager::create_variable(SUN_GC, cname, PerfData::U_None, CHECK);
-
- cname = PerfDataManager::counter_name("tlab", "maxFills");
- _perf_max_refills =
- PerfDataManager::create_variable(SUN_GC, cname, PerfData::U_None, CHECK);
-
- cname = PerfDataManager::counter_name("tlab", "alloc");
- _perf_allocation =
- PerfDataManager::create_variable(SUN_GC, cname, PerfData::U_Bytes, CHECK);
-
- cname = PerfDataManager::counter_name("tlab", "gcWaste");
- _perf_gc_waste =
- PerfDataManager::create_variable(SUN_GC, cname, PerfData::U_Bytes, CHECK);
-
- cname = PerfDataManager::counter_name("tlab", "maxGcWaste");
- _perf_max_gc_waste =
- PerfDataManager::create_variable(SUN_GC, cname, PerfData::U_Bytes, CHECK);
-
- cname = PerfDataManager::counter_name("tlab", "slowWaste");
- _perf_slow_refill_waste =
- PerfDataManager::create_variable(SUN_GC, cname, PerfData::U_Bytes, CHECK);
-
- cname = PerfDataManager::counter_name("tlab", "maxSlowWaste");
- _perf_max_slow_refill_waste =
- PerfDataManager::create_variable(SUN_GC, cname, PerfData::U_Bytes, CHECK);
-
- cname = PerfDataManager::counter_name("tlab", "fastWaste");
- _perf_fast_refill_waste =
- PerfDataManager::create_variable(SUN_GC, cname, PerfData::U_Bytes, CHECK);
-
- cname = PerfDataManager::counter_name("tlab", "maxFastWaste");
- _perf_max_fast_refill_waste =
- PerfDataManager::create_variable(SUN_GC, cname, PerfData::U_Bytes, CHECK);
-
- cname = PerfDataManager::counter_name("tlab", "slowAlloc");
- _perf_slow_allocations =
- PerfDataManager::create_variable(SUN_GC, cname, PerfData::U_None, CHECK);
-
- cname = PerfDataManager::counter_name("tlab", "maxSlowAlloc");
- _perf_max_slow_allocations =
- PerfDataManager::create_variable(SUN_GC, cname, PerfData::U_None, CHECK);
+ _perf_allocating_threads = create_perf_variable("allocThreads", PerfData::U_None, CHECK);
+ _perf_total_refills = create_perf_variable("fills", PerfData::U_None, CHECK);
+ _perf_max_refills = create_perf_variable("maxFills", PerfData::U_None, CHECK);
+ _perf_total_allocations = create_perf_variable("alloc", PerfData::U_Bytes, CHECK);
+ _perf_total_gc_waste = create_perf_variable("gcWaste", PerfData::U_Bytes, CHECK);
+ _perf_max_gc_waste = create_perf_variable("maxGcWaste", PerfData::U_Bytes, CHECK);
+ _perf_total_slow_refill_waste = create_perf_variable("slowWaste", PerfData::U_Bytes, CHECK);
+ _perf_max_slow_refill_waste = create_perf_variable("maxSlowWaste", PerfData::U_Bytes, CHECK);
+ _perf_total_fast_refill_waste = create_perf_variable("fastWaste", PerfData::U_Bytes, CHECK);
+ _perf_max_fast_refill_waste = create_perf_variable("maxFastWaste", PerfData::U_Bytes, CHECK);
+ _perf_total_slow_allocations = create_perf_variable("slowAlloc", PerfData::U_None, CHECK);
+ _perf_max_slow_allocations = create_perf_variable("maxSlowAlloc", PerfData::U_None, CHECK);
}
}
-void GlobalTLABStats::initialize() {
- // Clear counters summarizing info from all threads
+ThreadLocalAllocStats::ThreadLocalAllocStats() :
+ _allocating_threads(0),
+ _total_refills(0),
+ _max_refills(0),
+ _total_allocations(0),
+ _total_gc_waste(0),
+ _max_gc_waste(0),
+ _total_fast_refill_waste(0),
+ _max_fast_refill_waste(0),
+ _total_slow_refill_waste(0),
+ _max_slow_refill_waste(0),
+ _total_slow_allocations(0),
+ _max_slow_allocations(0) {}
+
+unsigned int ThreadLocalAllocStats::allocating_threads_avg() {
+ return MAX2((unsigned int)(_allocating_threads_avg.average() + 0.5), 1U);
+}
+
+void ThreadLocalAllocStats::update_fast_allocations(unsigned int refills,
+ size_t allocations,
+ size_t gc_waste,
+ size_t fast_refill_waste,
+ size_t slow_refill_waste) {
+ _allocating_threads += 1;
+ _total_refills += refills;
+ _max_refills = MAX2(_max_refills, refills);
+ _total_allocations += allocations;
+ _total_gc_waste += gc_waste;
+ _max_gc_waste = MAX2(_max_gc_waste, gc_waste);
+ _total_fast_refill_waste += fast_refill_waste;
+ _max_fast_refill_waste = MAX2(_max_fast_refill_waste, fast_refill_waste);
+ _total_slow_refill_waste += slow_refill_waste;
+ _max_slow_refill_waste = MAX2(_max_slow_refill_waste, slow_refill_waste);
+}
+
+void ThreadLocalAllocStats::update_slow_allocations(unsigned int allocations) {
+ _total_slow_allocations += allocations;
+ _max_slow_allocations = MAX2(_max_slow_allocations, allocations);
+}
+
+void ThreadLocalAllocStats::update(const ThreadLocalAllocStats& other) {
+ _allocating_threads += other._allocating_threads;
+ _total_refills += other._total_refills;
+ _max_refills = MAX2(_max_refills, other._max_refills);
+ _total_allocations += other._total_allocations;
+ _total_gc_waste += other._total_gc_waste;
+ _max_gc_waste = MAX2(_max_gc_waste, other._max_gc_waste);
+ _total_fast_refill_waste += other._total_fast_refill_waste;
+ _max_fast_refill_waste = MAX2(_max_fast_refill_waste, other._max_fast_refill_waste);
+ _total_slow_refill_waste += other._total_slow_refill_waste;
+ _max_slow_refill_waste = MAX2(_max_slow_refill_waste, other._max_slow_refill_waste);
+ _total_slow_allocations += other._total_slow_allocations;
+ _max_slow_allocations = MAX2(_max_slow_allocations, other._max_slow_allocations);
+}
+
+void ThreadLocalAllocStats::reset() {
_allocating_threads = 0;
_total_refills = 0;
_max_refills = 0;
- _total_allocation = 0;
+ _total_allocations = 0;
_total_gc_waste = 0;
_max_gc_waste = 0;
+ _total_fast_refill_waste = 0;
+ _max_fast_refill_waste = 0;
_total_slow_refill_waste = 0;
_max_slow_refill_waste = 0;
- _total_fast_refill_waste = 0;
- _max_fast_refill_waste = 0;
_total_slow_allocations = 0;
_max_slow_allocations = 0;
}
-void GlobalTLABStats::publish() {
- _allocating_threads_avg.sample(_allocating_threads);
- if (UsePerfData) {
- _perf_allocating_threads ->set_value(_allocating_threads);
- _perf_total_refills ->set_value(_total_refills);
- _perf_max_refills ->set_value(_max_refills);
- _perf_allocation ->set_value(_total_allocation);
- _perf_gc_waste ->set_value(_total_gc_waste);
- _perf_max_gc_waste ->set_value(_max_gc_waste);
- _perf_slow_refill_waste ->set_value(_total_slow_refill_waste);
- _perf_max_slow_refill_waste->set_value(_max_slow_refill_waste);
- _perf_fast_refill_waste ->set_value(_total_fast_refill_waste);
- _perf_max_fast_refill_waste->set_value(_max_fast_refill_waste);
- _perf_slow_allocations ->set_value(_total_slow_allocations);
- _perf_max_slow_allocations ->set_value(_max_slow_allocations);
- }
-}
-
-void GlobalTLABStats::print() {
- Log(gc, tlab) log;
- if (!log.is_debug()) {
+void ThreadLocalAllocStats::publish() {
+ if (_total_allocations == 0) {
return;
}
- size_t waste = _total_gc_waste + _total_slow_refill_waste + _total_fast_refill_waste;
- double waste_percent = percent_of(waste, _total_allocation);
- log.debug("TLAB totals: thrds: %d refills: %d max: %d"
- " slow allocs: %d max %d waste: %4.1f%%"
- " gc: " SIZE_FORMAT "B max: " SIZE_FORMAT "B"
- " slow: " SIZE_FORMAT "B max: " SIZE_FORMAT "B"
- " fast: " SIZE_FORMAT "B max: " SIZE_FORMAT "B",
- _allocating_threads,
- _total_refills, _max_refills,
- _total_slow_allocations, _max_slow_allocations,
- waste_percent,
- _total_gc_waste * HeapWordSize,
- _max_gc_waste * HeapWordSize,
- _total_slow_refill_waste * HeapWordSize,
- _max_slow_refill_waste * HeapWordSize,
- _total_fast_refill_waste * HeapWordSize,
- _max_fast_refill_waste * HeapWordSize);
+ _allocating_threads_avg.sample(_allocating_threads);
+
+ const size_t waste = _total_gc_waste + _total_slow_refill_waste + _total_fast_refill_waste;
+ const double waste_percent = percent_of(waste, _total_allocations);
+ log_debug(gc, tlab)("TLAB totals: thrds: %d refills: %d max: %d"
+ " slow allocs: %d max %d waste: %4.1f%%"
+ " gc: " SIZE_FORMAT "B max: " SIZE_FORMAT "B"
+ " slow: " SIZE_FORMAT "B max: " SIZE_FORMAT "B"
+ " fast: " SIZE_FORMAT "B max: " SIZE_FORMAT "B",
+ _allocating_threads, _total_refills, _max_refills,
+ _total_slow_allocations, _max_slow_allocations, waste_percent,
+ _total_gc_waste * HeapWordSize, _max_gc_waste * HeapWordSize,
+ _total_slow_refill_waste * HeapWordSize, _max_slow_refill_waste * HeapWordSize,
+ _total_fast_refill_waste * HeapWordSize, _max_fast_refill_waste * HeapWordSize);
+
+ if (UsePerfData) {
+ _perf_allocating_threads ->set_value(_allocating_threads);
+ _perf_total_refills ->set_value(_total_refills);
+ _perf_max_refills ->set_value(_max_refills);
+ _perf_total_allocations ->set_value(_total_allocations);
+ _perf_total_gc_waste ->set_value(_total_gc_waste);
+ _perf_max_gc_waste ->set_value(_max_gc_waste);
+ _perf_total_slow_refill_waste ->set_value(_total_slow_refill_waste);
+ _perf_max_slow_refill_waste ->set_value(_max_slow_refill_waste);
+ _perf_total_fast_refill_waste ->set_value(_total_fast_refill_waste);
+ _perf_max_fast_refill_waste ->set_value(_max_fast_refill_waste);
+ _perf_total_slow_allocations ->set_value(_total_slow_allocations);
+ _perf_max_slow_allocations ->set_value(_max_slow_allocations);
+ }
}
--- a/src/hotspot/share/gc/shared/threadLocalAllocBuffer.hpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/gc/shared/threadLocalAllocBuffer.hpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,7 +30,7 @@
#include "runtime/perfData.hpp"
#include "runtime/vm_version.hpp"
-class GlobalTLABStats;
+class ThreadLocalAllocStats;
// ThreadLocalAllocBuffer: a descriptor for thread-local storage used by
// the threads for allocation.
@@ -71,8 +71,7 @@
AdaptiveWeightedAverage _allocation_fraction; // fraction of eden allocated in tlabs
- void accumulate_statistics();
- void initialize_statistics();
+ void reset_statistics();
void set_start(HeapWord* start) { _start = start; }
void set_end(HeapWord* end) { _end = end; }
@@ -92,13 +91,14 @@
// Make parsable and release it.
void reset();
- // Resize based on amount of allocation, etc.
- void resize();
-
void invariants() const { assert(top() >= start() && top() <= end(), "invalid tlab"); }
void initialize(HeapWord* start, HeapWord* top, HeapWord* end);
+ void insert_filler();
+
+ void accumulate_and_reset_statistics(ThreadLocalAllocStats* stats);
+
void print_stats(const char* tag);
Thread* thread();
@@ -111,9 +111,6 @@
int gc_waste() const { return _gc_waste; }
int slow_allocations() const { return _slow_allocations; }
- static GlobalTLABStats* _global_stats;
- static GlobalTLABStats* global_stats() { return _global_stats; }
-
public:
ThreadLocalAllocBuffer() : _allocated_before_last_gc(0), _allocation_fraction(TLABAllocationWeight) {
// do nothing. tlabs must be inited by initialize() calls
@@ -162,17 +159,17 @@
// Initialization at startup
static void startup_initialization();
- // Make an in-use tlab parsable, optionally retiring and/or zapping it.
- void make_parsable(bool retire, bool zap = true);
+ // Make an in-use tlab parsable.
+ void make_parsable();
+
+ // Retire an in-use tlab and optionally collect statistics.
+ void retire(ThreadLocalAllocStats* stats = NULL);
// Retire in-use tlab before allocation of a new tlab
- void clear_before_allocation();
+ void retire_before_allocation();
- // Accumulate statistics across all tlabs before gc
- static void accumulate_statistics_before_gc();
-
- // Resize tlabs for all threads
- static void resize_all_tlabs();
+ // Resize based on amount of allocation, etc.
+ void resize();
void fill(HeapWord* start, HeapWord* top, size_t new_size);
void initialize();
@@ -199,88 +196,52 @@
void verify();
};
-class GlobalTLABStats: public CHeapObj<mtThread> {
+class ThreadLocalAllocStats : public StackObj {
private:
+ static PerfVariable* _perf_allocating_threads;
+ static PerfVariable* _perf_total_refills;
+ static PerfVariable* _perf_max_refills;
+ static PerfVariable* _perf_total_allocations;
+ static PerfVariable* _perf_total_gc_waste;
+ static PerfVariable* _perf_max_gc_waste;
+ static PerfVariable* _perf_total_slow_refill_waste;
+ static PerfVariable* _perf_max_slow_refill_waste;
+ static PerfVariable* _perf_total_fast_refill_waste;
+ static PerfVariable* _perf_max_fast_refill_waste;
+ static PerfVariable* _perf_total_slow_allocations;
+ static PerfVariable* _perf_max_slow_allocations;
- // Accumulate perfdata in private variables because
- // PerfData should be write-only for security reasons
- // (see perfData.hpp)
- unsigned _allocating_threads;
- unsigned _total_refills;
- unsigned _max_refills;
- size_t _total_allocation;
- size_t _total_gc_waste;
- size_t _max_gc_waste;
- size_t _total_slow_refill_waste;
- size_t _max_slow_refill_waste;
- size_t _total_fast_refill_waste;
- size_t _max_fast_refill_waste;
- unsigned _total_slow_allocations;
- unsigned _max_slow_allocations;
+ static AdaptiveWeightedAverage _allocating_threads_avg;
- PerfVariable* _perf_allocating_threads;
- PerfVariable* _perf_total_refills;
- PerfVariable* _perf_max_refills;
- PerfVariable* _perf_allocation;
- PerfVariable* _perf_gc_waste;
- PerfVariable* _perf_max_gc_waste;
- PerfVariable* _perf_slow_refill_waste;
- PerfVariable* _perf_max_slow_refill_waste;
- PerfVariable* _perf_fast_refill_waste;
- PerfVariable* _perf_max_fast_refill_waste;
- PerfVariable* _perf_slow_allocations;
- PerfVariable* _perf_max_slow_allocations;
-
- AdaptiveWeightedAverage _allocating_threads_avg;
+ unsigned int _allocating_threads;
+ unsigned int _total_refills;
+ unsigned int _max_refills;
+ size_t _total_allocations;
+ size_t _total_gc_waste;
+ size_t _max_gc_waste;
+ size_t _total_fast_refill_waste;
+ size_t _max_fast_refill_waste;
+ size_t _total_slow_refill_waste;
+ size_t _max_slow_refill_waste;
+ unsigned int _total_slow_allocations;
+ unsigned int _max_slow_allocations;
public:
- GlobalTLABStats();
-
- // Initialize all counters
- void initialize();
-
- // Write all perf counters to the perf_counters
- void publish();
-
- void print();
+ static void initialize();
+ static unsigned int allocating_threads_avg();
- // Accessors
- unsigned allocating_threads_avg() {
- return MAX2((unsigned)(_allocating_threads_avg.average() + 0.5), 1U);
- }
-
- size_t allocation() {
- return _total_allocation;
- }
-
- // Update methods
+ ThreadLocalAllocStats();
- void update_allocating_threads() {
- _allocating_threads++;
- }
- void update_number_of_refills(unsigned value) {
- _total_refills += value;
- _max_refills = MAX2(_max_refills, value);
- }
- void update_allocation(size_t value) {
- _total_allocation += value;
- }
- void update_gc_waste(size_t value) {
- _total_gc_waste += value;
- _max_gc_waste = MAX2(_max_gc_waste, value);
- }
- void update_fast_refill_waste(size_t value) {
- _total_fast_refill_waste += value;
- _max_fast_refill_waste = MAX2(_max_fast_refill_waste, value);
- }
- void update_slow_refill_waste(size_t value) {
- _total_slow_refill_waste += value;
- _max_slow_refill_waste = MAX2(_max_slow_refill_waste, value);
- }
- void update_slow_allocations(unsigned value) {
- _total_slow_allocations += value;
- _max_slow_allocations = MAX2(_max_slow_allocations, value);
- }
+ void update_fast_allocations(unsigned int refills,
+ size_t allocations,
+ size_t gc_waste,
+ size_t fast_refill_waste,
+ size_t slow_refill_waste);
+ void update_slow_allocations(unsigned int allocations);
+ void update(const ThreadLocalAllocStats& other);
+
+ void reset();
+ void publish();
};
#endif // SHARE_VM_GC_SHARED_THREADLOCALALLOCBUFFER_HPP
--- a/src/hotspot/share/gc/z/zCollectedHeap.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/gc/z/zCollectedHeap.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -117,6 +117,10 @@
return is_in(p);
}
+void ZCollectedHeap::fill_with_dummy_object(HeapWord* start, HeapWord* end, bool zap) {
+ // Does nothing, not a parsable heap
+}
+
HeapWord* ZCollectedHeap::allocate_new_tlab(size_t min_size, size_t requested_size, size_t* actual_size) {
const size_t size_in_bytes = ZUtils::words_to_bytes(align_object_size(requested_size));
const uintptr_t addr = _heap.alloc_tlab(size_in_bytes);
--- a/src/hotspot/share/gc/z/zCollectedHeap.hpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/gc/z/zCollectedHeap.hpp Mon Sep 24 10:59:26 2018 -0700
@@ -56,10 +56,6 @@
public:
static ZCollectedHeap* heap();
- using CollectedHeap::ensure_parsability;
- using CollectedHeap::accumulate_statistics_all_tlabs;
- using CollectedHeap::resize_all_tlabs;
-
ZCollectedHeap(ZCollectorPolicy* policy);
virtual Name kind() const;
virtual const char* name() const;
@@ -79,6 +75,8 @@
virtual bool is_in(const void* p) const;
virtual bool is_in_closed_subset(const void* p) const;
+ virtual void fill_with_dummy_object(HeapWord* start, HeapWord* end, bool zap);
+
virtual HeapWord* mem_allocate(size_t size, bool* gc_overhead_limit_was_exceeded);
virtual MetaWord* satisfy_failed_metadata_allocation(ClassLoaderData* loader_data,
size_t size,
--- a/src/hotspot/share/gc/z/zHeap.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/gc/z/zHeap.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -273,13 +273,13 @@
// Update statistics
ZStatSample(ZSamplerHeapUsedBeforeMark, used());
- // Retire TLABs
- _object_allocator.retire_tlabs();
-
// Flip address view
ZAddressMasks::flip_to_marked();
flip_views();
+ // Retire allocating pages
+ _object_allocator.retire_pages();
+
// Reset allocated/reclaimed/used statistics
_page_allocator.reset_statistics();
@@ -304,6 +304,17 @@
_mark.flush_and_free(thread);
}
+class ZFixupPartialLoadsClosure : public ZRootsIteratorClosure {
+public:
+ virtual void do_oop(oop* p) {
+ ZBarrier::mark_barrier_on_root_oop_field(p);
+ }
+
+ virtual void do_oop(narrowOop* p) {
+ ShouldNotReachHere();
+ }
+};
+
class ZFixupPartialLoadsTask : public ZTask {
private:
ZThreadRootsIterator _thread_roots;
@@ -314,7 +325,7 @@
_thread_roots() {}
virtual void work() {
- ZMarkRootOopClosure cl;
+ ZFixupPartialLoadsClosure cl;
_thread_roots.oops_do(&cl);
}
};
@@ -464,9 +475,6 @@
ZAddressMasks::flip_to_remapped();
flip_views();
- // Remap TLABs
- _object_allocator.remap_tlabs();
-
// Enter relocate phase
ZGlobalPhase = ZPhaseRelocate;
--- a/src/hotspot/share/gc/z/zHeapIterator.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/gc/z/zHeapIterator.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -51,7 +51,7 @@
}
};
-class ZHeapIteratorRootOopClosure : public OopClosure {
+class ZHeapIteratorRootOopClosure : public ZRootsIteratorClosure {
private:
ZHeapIterator* const _iter;
ObjectClosure* const _cl;
--- a/src/hotspot/share/gc/z/zInitialize.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/gc/z/zInitialize.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,6 +30,7 @@
#include "gc/z/zLargePages.hpp"
#include "gc/z/zNUMA.hpp"
#include "gc/z/zStat.hpp"
+#include "gc/z/zStatTLAB.hpp"
#include "gc/z/zTracer.hpp"
#include "logging/log.hpp"
#include "runtime/vm_version.hpp"
@@ -45,6 +46,7 @@
ZNUMA::initialize();
ZCPU::initialize();
ZStatValue::initialize();
+ ZStatTLAB::initialize();
ZTracer::initialize();
ZLargePages::initialize();
ZBarrierSet::set_barrier_set(barrier_set);
--- a/src/hotspot/share/gc/z/zMark.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/gc/z/zMark.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -32,6 +32,7 @@
#include "gc/z/zPageTable.inline.hpp"
#include "gc/z/zRootsIterator.hpp"
#include "gc/z/zStat.hpp"
+#include "gc/z/zStatTLAB.hpp"
#include "gc/z/zTask.hpp"
#include "gc/z/zThread.hpp"
#include "gc/z/zUtils.inline.hpp"
@@ -117,10 +118,43 @@
}
}
+class ZMarkRootsIteratorClosure : public ZRootsIteratorClosure {
+public:
+ ZMarkRootsIteratorClosure() {
+ ZStatTLAB::reset();
+ }
+
+ ~ZMarkRootsIteratorClosure() {
+ ZStatTLAB::publish();
+ }
+
+ virtual void do_thread(Thread* thread) {
+ ZRootsIteratorClosure::do_thread(thread);
+
+ // Update thread local address bad mask
+ ZThreadLocalData::set_address_bad_mask(thread, ZAddressBadMask);
+
+ // Retire TLAB
+ if (UseTLAB && thread->is_Java_thread()) {
+ thread->tlab().retire(ZStatTLAB::get());
+ thread->tlab().resize();
+ }
+ }
+
+ virtual void do_oop(oop* p) {
+ ZBarrier::mark_barrier_on_root_oop_field(p);
+ }
+
+ virtual void do_oop(narrowOop* p) {
+ ShouldNotReachHere();
+ }
+};
+
class ZMarkRootsTask : public ZTask {
private:
- ZMark* const _mark;
- ZRootsIterator _roots;
+ ZMark* const _mark;
+ ZRootsIterator _roots;
+ ZMarkRootsIteratorClosure _cl;
public:
ZMarkRootsTask(ZMark* mark) :
@@ -129,8 +163,7 @@
_roots() {}
virtual void work() {
- ZMarkRootOopClosure cl;
- _roots.oops_do(&cl);
+ _roots.oops_do(&_cl);
// Flush and free worker stacks. Needed here since
// the set of workers executing during root scanning
--- a/src/hotspot/share/gc/z/zObjectAllocator.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/gc/z/zObjectAllocator.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -22,7 +22,6 @@
*/
#include "precompiled.hpp"
-#include "gc/shared/threadLocalAllocBuffer.inline.hpp"
#include "gc/z/zCollectedHeap.hpp"
#include "gc/z/zGlobals.hpp"
#include "gc/z/zHeap.inline.hpp"
@@ -41,8 +40,6 @@
static const ZStatCounter ZCounterUndoObjectAllocationSucceeded("Memory", "Undo Object Allocation Succeeded", ZStatUnitOpsPerSecond);
static const ZStatCounter ZCounterUndoObjectAllocationFailed("Memory", "Undo Object Allocation Failed", ZStatUnitOpsPerSecond);
-static const ZStatSubPhase ZSubPhasePauseRetireTLABS("Pause Retire TLABS");
-static const ZStatSubPhase ZSubPhasePauseRemapTLABS("Pause Remap TLABS");
ZObjectAllocator::ZObjectAllocator(uint nworkers) :
_nworkers(nworkers),
@@ -293,18 +290,9 @@
return 0;
}
-void ZObjectAllocator::retire_tlabs() {
- ZStatTimer timer(ZSubPhasePauseRetireTLABS);
+void ZObjectAllocator::retire_pages() {
assert(SafepointSynchronize::is_at_safepoint(), "Should be at safepoint");
- // Retire TLABs
- if (UseTLAB) {
- ZCollectedHeap* heap = ZCollectedHeap::heap();
- heap->accumulate_statistics_all_tlabs();
- heap->ensure_parsability(true /* retire_tlabs */);
- heap->resize_all_tlabs();
- }
-
// Reset used
_used.set_all(0);
@@ -313,18 +301,3 @@
_shared_small_page.set_all(NULL);
_worker_small_page.set_all(NULL);
}
-
-static void remap_tlab_address(HeapWord** p) {
- *p = (HeapWord*)ZAddress::good_or_null((uintptr_t)*p);
-}
-
-void ZObjectAllocator::remap_tlabs() {
- ZStatTimer timer(ZSubPhasePauseRemapTLABS);
- assert(SafepointSynchronize::is_at_safepoint(), "Should be at safepoint");
-
- if (UseTLAB) {
- for (JavaThreadIteratorWithHandle iter; JavaThread* thread = iter.next(); ) {
- thread->tlab().addresses_do(remap_tlab_address);
- }
- }
-}
--- a/src/hotspot/share/gc/z/zObjectAllocator.hpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/gc/z/zObjectAllocator.hpp Mon Sep 24 10:59:26 2018 -0700
@@ -72,8 +72,7 @@
size_t used() const;
size_t remaining() const;
- void retire_tlabs();
- void remap_tlabs();
+ void retire_pages();
};
#endif // SHARE_GC_Z_ZOBJECTALLOCATOR_HPP
--- a/src/hotspot/share/gc/z/zOopClosures.hpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/gc/z/zOopClosures.hpp Mon Sep 24 10:59:26 2018 -0700
@@ -25,6 +25,7 @@
#define SHARE_GC_Z_ZOOPCLOSURES_HPP
#include "memory/iterator.hpp"
+#include "gc/z/zRootsIterator.hpp"
class ZLoadBarrierOopClosure : public BasicOopIterateClosure {
public:
@@ -38,18 +39,6 @@
#endif
};
-class ZMarkRootOopClosure : public OopClosure {
-public:
- virtual void do_oop(oop* p);
- virtual void do_oop(narrowOop* p);
-};
-
-class ZRelocateRootOopClosure : public OopClosure {
-public:
- virtual void do_oop(oop* p);
- virtual void do_oop(narrowOop* p);
-};
-
template <bool finalizable>
class ZMarkBarrierOopClosure : public BasicOopIterateClosure {
public:
@@ -70,13 +59,13 @@
virtual bool do_object_b(oop o);
};
-class ZPhantomKeepAliveOopClosure : public OopClosure {
+class ZPhantomKeepAliveOopClosure : public ZRootsIteratorClosure {
public:
virtual void do_oop(oop* p);
virtual void do_oop(narrowOop* p);
};
-class ZPhantomCleanOopClosure : public OopClosure {
+class ZPhantomCleanOopClosure : public ZRootsIteratorClosure {
public:
virtual void do_oop(oop* p);
virtual void do_oop(narrowOop* p);
@@ -97,7 +86,7 @@
#endif
};
-class ZVerifyRootOopClosure : public OopClosure {
+class ZVerifyRootOopClosure : public ZRootsIteratorClosure {
public:
ZVerifyRootOopClosure();
--- a/src/hotspot/share/gc/z/zOopClosures.inline.hpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/gc/z/zOopClosures.inline.hpp Mon Sep 24 10:59:26 2018 -0700
@@ -40,22 +40,6 @@
ShouldNotReachHere();
}
-inline void ZMarkRootOopClosure::do_oop(oop* p) {
- ZBarrier::mark_barrier_on_root_oop_field(p);
-}
-
-inline void ZMarkRootOopClosure::do_oop(narrowOop* p) {
- ShouldNotReachHere();
-}
-
-inline void ZRelocateRootOopClosure::do_oop(oop* p) {
- ZBarrier::relocate_barrier_on_root_oop_field(p);
-}
-
-inline void ZRelocateRootOopClosure::do_oop(narrowOop* p) {
- ShouldNotReachHere();
-}
-
template <bool finalizable>
inline ZMarkBarrierOopClosure<finalizable>::ZMarkBarrierOopClosure() :
BasicOopIterateClosure(finalizable ? NULL : ZHeap::heap()->reference_discoverer()) {}
--- a/src/hotspot/share/gc/z/zPage.inline.hpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/gc/z/zPage.inline.hpp Mon Sep 24 10:59:26 2018 -0700
@@ -285,11 +285,6 @@
_top = new_top;
- // Fill alignment padding if needed
- if (aligned_size != size) {
- ZUtils::insert_filler_object(addr + size, aligned_size - size);
- }
-
return ZAddress::good(addr);
}
@@ -308,11 +303,6 @@
const uintptr_t prev_top = Atomic::cmpxchg(new_top, &_top, addr);
if (prev_top == addr) {
- // Fill alignment padding if needed
- if (aligned_size != size) {
- ZUtils::insert_filler_object(addr + size, aligned_size - size);
- }
-
// Success
return ZAddress::good(addr);
}
--- a/src/hotspot/share/gc/z/zRelocate.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/gc/z/zRelocate.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -22,6 +22,8 @@
*/
#include "precompiled.hpp"
+#include "gc/z/zAddress.inline.hpp"
+#include "gc/z/zBarrier.inline.hpp"
#include "gc/z/zHeap.hpp"
#include "gc/z/zOopClosures.inline.hpp"
#include "gc/z/zPage.hpp"
@@ -34,9 +36,38 @@
ZRelocate::ZRelocate(ZWorkers* workers) :
_workers(workers) {}
+class ZRelocateRootsIteratorClosure : public ZRootsIteratorClosure {
+private:
+ static void remap_address(HeapWord** p) {
+ *p = (HeapWord*)ZAddress::good_or_null((uintptr_t)*p);
+ }
+
+public:
+ virtual void do_thread(Thread* thread) {
+ ZRootsIteratorClosure::do_thread(thread);
+
+ // Update thread local address bad mask
+ ZThreadLocalData::set_address_bad_mask(thread, ZAddressBadMask);
+
+ // Remap TLAB
+ if (UseTLAB && thread->is_Java_thread()) {
+ thread->tlab().addresses_do(remap_address);
+ }
+ }
+
+ virtual void do_oop(oop* p) {
+ ZBarrier::relocate_barrier_on_root_oop_field(p);
+ }
+
+ virtual void do_oop(narrowOop* p) {
+ ShouldNotReachHere();
+ }
+};
+
class ZRelocateRootsTask : public ZTask {
private:
- ZRootsIterator _roots;
+ ZRootsIterator _roots;
+ ZRelocateRootsIteratorClosure _cl;
public:
ZRelocateRootsTask() :
@@ -46,8 +77,7 @@
virtual void work() {
// During relocation we need to visit the JVMTI
// export weak roots to rehash the JVMTI tag map
- ZRelocateRootOopClosure cl;
- _roots.oops_do(&cl, true /* visit_jvmti_weak_export */);
+ _roots.oops_do(&_cl, true /* visit_jvmti_weak_export */);
}
};
--- a/src/hotspot/share/gc/z/zRootsIterator.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/gc/z/zRootsIterator.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -73,25 +73,25 @@
static const ZStatSubPhase ZSubPhaseConcurrentWeakRootsJNIWeakHandles("Concurrent Weak Roots JNIWeakHandles");
static const ZStatSubPhase ZSubPhaseConcurrentWeakRootsStringTable("Concurrent Weak Roots StringTable");
-template <typename T, void (T::*F)(OopClosure*)>
+template <typename T, void (T::*F)(ZRootsIteratorClosure*)>
ZSerialOopsDo<T, F>::ZSerialOopsDo(T* iter) :
_iter(iter),
_claimed(false) {}
-template <typename T, void (T::*F)(OopClosure*)>
-void ZSerialOopsDo<T, F>::oops_do(OopClosure* cl) {
+template <typename T, void (T::*F)(ZRootsIteratorClosure*)>
+void ZSerialOopsDo<T, F>::oops_do(ZRootsIteratorClosure* cl) {
if (!_claimed && Atomic::cmpxchg(true, &_claimed, false) == false) {
(_iter->*F)(cl);
}
}
-template <typename T, void (T::*F)(OopClosure*)>
+template <typename T, void (T::*F)(ZRootsIteratorClosure*)>
ZParallelOopsDo<T, F>::ZParallelOopsDo(T* iter) :
_iter(iter),
_completed(false) {}
-template <typename T, void (T::*F)(OopClosure*)>
-void ZParallelOopsDo<T, F>::oops_do(OopClosure* cl) {
+template <typename T, void (T::*F)(ZRootsIteratorClosure*)>
+void ZParallelOopsDo<T, F>::oops_do(ZRootsIteratorClosure* cl) {
if (!_completed) {
(_iter->*F)(cl);
if (!_completed) {
@@ -100,25 +100,25 @@
}
}
-template <typename T, void (T::*F)(BoolObjectClosure*, OopClosure*)>
+template <typename T, void (T::*F)(BoolObjectClosure*, ZRootsIteratorClosure*)>
ZSerialWeakOopsDo<T, F>::ZSerialWeakOopsDo(T* iter) :
_iter(iter),
_claimed(false) {}
-template <typename T, void (T::*F)(BoolObjectClosure*, OopClosure*)>
-void ZSerialWeakOopsDo<T, F>::weak_oops_do(BoolObjectClosure* is_alive, OopClosure* cl) {
+template <typename T, void (T::*F)(BoolObjectClosure*, ZRootsIteratorClosure*)>
+void ZSerialWeakOopsDo<T, F>::weak_oops_do(BoolObjectClosure* is_alive, ZRootsIteratorClosure* cl) {
if (!_claimed && Atomic::cmpxchg(true, &_claimed, false) == false) {
(_iter->*F)(is_alive, cl);
}
}
-template <typename T, void (T::*F)(BoolObjectClosure*, OopClosure*)>
+template <typename T, void (T::*F)(BoolObjectClosure*, ZRootsIteratorClosure*)>
ZParallelWeakOopsDo<T, F>::ZParallelWeakOopsDo(T* iter) :
_iter(iter),
_completed(false) {}
-template <typename T, void (T::*F)(BoolObjectClosure*, OopClosure*)>
-void ZParallelWeakOopsDo<T, F>::weak_oops_do(BoolObjectClosure* is_alive, OopClosure* cl) {
+template <typename T, void (T::*F)(BoolObjectClosure*, ZRootsIteratorClosure*)>
+void ZParallelWeakOopsDo<T, F>::weak_oops_do(BoolObjectClosure* is_alive, ZRootsIteratorClosure* cl) {
if (!_completed) {
(_iter->*F)(is_alive, cl);
if (!_completed) {
@@ -158,80 +158,60 @@
Threads::assert_all_threads_claimed();
}
-void ZRootsIterator::do_universe(OopClosure* cl) {
+void ZRootsIterator::do_universe(ZRootsIteratorClosure* cl) {
ZStatTimer timer(ZSubPhasePauseRootsUniverse);
Universe::oops_do(cl);
}
-void ZRootsIterator::do_jni_handles(OopClosure* cl) {
+void ZRootsIterator::do_jni_handles(ZRootsIteratorClosure* cl) {
ZStatTimer timer(ZSubPhasePauseRootsJNIHandles);
_jni_handles_iter.oops_do(cl);
}
-void ZRootsIterator::do_object_synchronizer(OopClosure* cl) {
+void ZRootsIterator::do_object_synchronizer(ZRootsIteratorClosure* cl) {
ZStatTimer timer(ZSubPhasePauseRootsObjectSynchronizer);
ObjectSynchronizer::oops_do(cl);
}
-void ZRootsIterator::do_management(OopClosure* cl) {
+void ZRootsIterator::do_management(ZRootsIteratorClosure* cl) {
ZStatTimer timer(ZSubPhasePauseRootsManagement);
Management::oops_do(cl);
}
-void ZRootsIterator::do_jvmti_export(OopClosure* cl) {
+void ZRootsIterator::do_jvmti_export(ZRootsIteratorClosure* cl) {
ZStatTimer timer(ZSubPhasePauseRootsJVMTIExport);
JvmtiExport::oops_do(cl);
}
-void ZRootsIterator::do_jvmti_weak_export(OopClosure* cl) {
+void ZRootsIterator::do_jvmti_weak_export(ZRootsIteratorClosure* cl) {
ZStatTimer timer(ZSubPhasePauseRootsJVMTIWeakExport);
AlwaysTrueClosure always_alive;
JvmtiExport::weak_oops_do(&always_alive, cl);
}
-void ZRootsIterator::do_system_dictionary(OopClosure* cl) {
+void ZRootsIterator::do_system_dictionary(ZRootsIteratorClosure* cl) {
ZStatTimer timer(ZSubPhasePauseRootsSystemDictionary);
SystemDictionary::oops_do(cl);
}
-void ZRootsIterator::do_class_loader_data_graph(OopClosure* cl) {
+void ZRootsIterator::do_class_loader_data_graph(ZRootsIteratorClosure* cl) {
ZStatTimer timer(ZSubPhasePauseRootsClassLoaderDataGraph);
CLDToOopClosure cld_cl(cl);
ClassLoaderDataGraph::cld_do(&cld_cl);
}
-class ZRootsIteratorThreadClosure : public ThreadClosure {
-private:
- OopClosure* const _cl;
-
-public:
- ZRootsIteratorThreadClosure(OopClosure* cl) :
- _cl(cl) {}
-
- virtual void do_thread(Thread* thread) {
- if (thread->is_Java_thread()) {
- // Update thread local address bad mask
- ZThreadLocalData::set_address_bad_mask(thread, ZAddressBadMask);
- }
-
- // Process thread oops
- thread->oops_do(_cl, NULL);
- }
-};
-
-void ZRootsIterator::do_threads(OopClosure* cl) {
+void ZRootsIterator::do_threads(ZRootsIteratorClosure* cl) {
ZStatTimer timer(ZSubPhasePauseRootsThreads);
ResourceMark rm;
- ZRootsIteratorThreadClosure thread_cl(cl);
- Threads::possibly_parallel_threads_do(true, &thread_cl);
+ Threads::possibly_parallel_threads_do(true, cl);
}
-void ZRootsIterator::do_code_cache(OopClosure* cl) {
+void ZRootsIterator::do_code_cache(ZRootsIteratorClosure* cl) {
ZStatTimer timer(ZSubPhasePauseRootsCodeCache);
ZNMethodTable::oops_do(cl);
}
-void ZRootsIterator::oops_do(OopClosure* cl, bool visit_jvmti_weak_export) {
+void ZRootsIterator::oops_do(ZRootsIteratorClosure* cl, bool visit_jvmti_weak_export) {
ZStatTimer timer(ZSubPhasePauseRoots);
_universe.oops_do(cl);
_object_synchronizer.oops_do(cl);
@@ -258,25 +238,25 @@
ZStatTimer timer(ZSubPhasePauseWeakRootsTeardown);
}
-void ZWeakRootsIterator::do_jvmti_weak_export(BoolObjectClosure* is_alive, OopClosure* cl) {
+void ZWeakRootsIterator::do_jvmti_weak_export(BoolObjectClosure* is_alive, ZRootsIteratorClosure* cl) {
ZStatTimer timer(ZSubPhasePauseWeakRootsJVMTIWeakExport);
JvmtiExport::weak_oops_do(is_alive, cl);
}
-void ZWeakRootsIterator::do_jfr_weak(BoolObjectClosure* is_alive, OopClosure* cl) {
+void ZWeakRootsIterator::do_jfr_weak(BoolObjectClosure* is_alive, ZRootsIteratorClosure* cl) {
#if INCLUDE_JFR
ZStatTimer timer(ZSubPhasePauseWeakRootsJFRWeak);
Jfr::weak_oops_do(is_alive, cl);
#endif
}
-void ZWeakRootsIterator::weak_oops_do(BoolObjectClosure* is_alive, OopClosure* cl) {
+void ZWeakRootsIterator::weak_oops_do(BoolObjectClosure* is_alive, ZRootsIteratorClosure* cl) {
ZStatTimer timer(ZSubPhasePauseWeakRoots);
_jvmti_weak_export.weak_oops_do(is_alive, cl);
_jfr_weak.weak_oops_do(is_alive, cl);
}
-void ZWeakRootsIterator::oops_do(OopClosure* cl) {
+void ZWeakRootsIterator::oops_do(ZRootsIteratorClosure* cl) {
AlwaysTrueClosure always_alive;
weak_oops_do(&always_alive, cl);
}
@@ -295,27 +275,27 @@
StringTable::finish_dead_counter();
}
-void ZConcurrentWeakRootsIterator::do_vm_weak_handles(OopClosure* cl) {
+void ZConcurrentWeakRootsIterator::do_vm_weak_handles(ZRootsIteratorClosure* cl) {
ZStatTimer timer(ZSubPhaseConcurrentWeakRootsVMWeakHandles);
_vm_weak_handles_iter.oops_do(cl);
}
-void ZConcurrentWeakRootsIterator::do_jni_weak_handles(OopClosure* cl) {
+void ZConcurrentWeakRootsIterator::do_jni_weak_handles(ZRootsIteratorClosure* cl) {
ZStatTimer timer(ZSubPhaseConcurrentWeakRootsJNIWeakHandles);
_jni_weak_handles_iter.oops_do(cl);
}
-class ZStringTableDeadCounterOopClosure : public OopClosure {
+class ZStringTableDeadCounterClosure : public ZRootsIteratorClosure {
private:
- OopClosure* const _cl;
- size_t _ndead;
+ ZRootsIteratorClosure* const _cl;
+ size_t _ndead;
public:
- ZStringTableDeadCounterOopClosure(OopClosure* cl) :
+ ZStringTableDeadCounterClosure(ZRootsIteratorClosure* cl) :
_cl(cl),
_ndead(0) {}
- ~ZStringTableDeadCounterOopClosure() {
+ ~ZStringTableDeadCounterClosure() {
StringTable::inc_dead_counter(_ndead);
}
@@ -331,13 +311,13 @@
}
};
-void ZConcurrentWeakRootsIterator::do_string_table(OopClosure* cl) {
+void ZConcurrentWeakRootsIterator::do_string_table(ZRootsIteratorClosure* cl) {
ZStatTimer timer(ZSubPhaseConcurrentWeakRootsStringTable);
- ZStringTableDeadCounterOopClosure counter_cl(cl);
+ ZStringTableDeadCounterClosure counter_cl(cl);
_string_table_iter.oops_do(&counter_cl);
}
-void ZConcurrentWeakRootsIterator::oops_do(OopClosure* cl) {
+void ZConcurrentWeakRootsIterator::oops_do(ZRootsIteratorClosure* cl) {
ZStatTimer timer(ZSubPhaseConcurrentWeakRoots);
_vm_weak_handles.oops_do(cl);
_jni_weak_handles.oops_do(cl);
@@ -356,13 +336,13 @@
Threads::assert_all_threads_claimed();
}
-void ZThreadRootsIterator::do_threads(OopClosure* cl) {
+void ZThreadRootsIterator::do_threads(ZRootsIteratorClosure* cl) {
ZStatTimer timer(ZSubPhasePauseRootsThreads);
ResourceMark rm;
Threads::possibly_parallel_oops_do(true, cl, NULL);
}
-void ZThreadRootsIterator::oops_do(OopClosure* cl) {
+void ZThreadRootsIterator::oops_do(ZRootsIteratorClosure* cl) {
ZStatTimer timer(ZSubPhasePauseRoots);
_threads.oops_do(cl);
}
--- a/src/hotspot/share/gc/z/zRootsIterator.hpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/gc/z/zRootsIterator.hpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,12 +27,20 @@
#include "gc/shared/oopStorageParState.hpp"
#include "memory/allocation.hpp"
#include "memory/iterator.hpp"
+#include "runtime/thread.hpp"
#include "utilities/globalDefinitions.hpp"
+class ZRootsIteratorClosure : public OopClosure, public ThreadClosure {
+public:
+ virtual void do_thread(Thread* thread) {
+ thread->oops_do(this, NULL);
+ }
+};
+
typedef OopStorage::ParState<false /* concurrent */, false /* is_const */> ZOopStorageIterator;
typedef OopStorage::ParState<true /* concurrent */, false /* is_const */> ZConcurrentOopStorageIterator;
-template <typename T, void (T::*F)(OopClosure*)>
+template <typename T, void (T::*F)(ZRootsIteratorClosure*)>
class ZSerialOopsDo {
private:
T* const _iter;
@@ -40,10 +48,10 @@
public:
ZSerialOopsDo(T* iter);
- void oops_do(OopClosure* cl);
+ void oops_do(ZRootsIteratorClosure* cl);
};
-template <typename T, void (T::*F)(OopClosure*)>
+template <typename T, void (T::*F)(ZRootsIteratorClosure*)>
class ZParallelOopsDo {
private:
T* const _iter;
@@ -51,10 +59,10 @@
public:
ZParallelOopsDo(T* iter);
- void oops_do(OopClosure* cl);
+ void oops_do(ZRootsIteratorClosure* cl);
};
-template <typename T, void (T::*F)(BoolObjectClosure*, OopClosure*)>
+template <typename T, void (T::*F)(BoolObjectClosure*, ZRootsIteratorClosure*)>
class ZSerialWeakOopsDo {
private:
T* const _iter;
@@ -62,10 +70,10 @@
public:
ZSerialWeakOopsDo(T* iter);
- void weak_oops_do(BoolObjectClosure* is_alive, OopClosure* cl);
+ void weak_oops_do(BoolObjectClosure* is_alive, ZRootsIteratorClosure* cl);
};
-template <typename T, void (T::*F)(BoolObjectClosure*, OopClosure*)>
+template <typename T, void (T::*F)(BoolObjectClosure*, ZRootsIteratorClosure*)>
class ZParallelWeakOopsDo {
private:
T* const _iter;
@@ -73,23 +81,23 @@
public:
ZParallelWeakOopsDo(T* iter);
- void weak_oops_do(BoolObjectClosure* is_alive, OopClosure* cl);
+ void weak_oops_do(BoolObjectClosure* is_alive, ZRootsIteratorClosure* cl);
};
class ZRootsIterator {
private:
ZOopStorageIterator _jni_handles_iter;
- void do_universe(OopClosure* cl);
- void do_jni_handles(OopClosure* cl);
- void do_object_synchronizer(OopClosure* cl);
- void do_management(OopClosure* cl);
- void do_jvmti_export(OopClosure* cl);
- void do_jvmti_weak_export(OopClosure* cl);
- void do_system_dictionary(OopClosure* cl);
- void do_class_loader_data_graph(OopClosure* cl);
- void do_threads(OopClosure* cl);
- void do_code_cache(OopClosure* cl);
+ void do_universe(ZRootsIteratorClosure* cl);
+ void do_jni_handles(ZRootsIteratorClosure* cl);
+ void do_object_synchronizer(ZRootsIteratorClosure* cl);
+ void do_management(ZRootsIteratorClosure* cl);
+ void do_jvmti_export(ZRootsIteratorClosure* cl);
+ void do_jvmti_weak_export(ZRootsIteratorClosure* cl);
+ void do_system_dictionary(ZRootsIteratorClosure* cl);
+ void do_class_loader_data_graph(ZRootsIteratorClosure* cl);
+ void do_threads(ZRootsIteratorClosure* cl);
+ void do_code_cache(ZRootsIteratorClosure* cl);
ZSerialOopsDo<ZRootsIterator, &ZRootsIterator::do_universe> _universe;
ZSerialOopsDo<ZRootsIterator, &ZRootsIterator::do_object_synchronizer> _object_synchronizer;
@@ -106,13 +114,13 @@
ZRootsIterator();
~ZRootsIterator();
- void oops_do(OopClosure* cl, bool visit_jvmti_weak_export = false);
+ void oops_do(ZRootsIteratorClosure* cl, bool visit_jvmti_weak_export = false);
};
class ZWeakRootsIterator {
private:
- void do_jvmti_weak_export(BoolObjectClosure* is_alive, OopClosure* cl);
- void do_jfr_weak(BoolObjectClosure* is_alive, OopClosure* cl);
+ void do_jvmti_weak_export(BoolObjectClosure* is_alive, ZRootsIteratorClosure* cl);
+ void do_jfr_weak(BoolObjectClosure* is_alive, ZRootsIteratorClosure* cl);
ZSerialWeakOopsDo<ZWeakRootsIterator, &ZWeakRootsIterator::do_jvmti_weak_export> _jvmti_weak_export;
ZSerialWeakOopsDo<ZWeakRootsIterator, &ZWeakRootsIterator::do_jfr_weak> _jfr_weak;
@@ -121,8 +129,8 @@
ZWeakRootsIterator();
~ZWeakRootsIterator();
- void weak_oops_do(BoolObjectClosure* is_alive, OopClosure* cl);
- void oops_do(OopClosure* cl);
+ void weak_oops_do(BoolObjectClosure* is_alive, ZRootsIteratorClosure* cl);
+ void oops_do(ZRootsIteratorClosure* cl);
};
class ZConcurrentWeakRootsIterator {
@@ -131,9 +139,9 @@
ZConcurrentOopStorageIterator _jni_weak_handles_iter;
ZConcurrentOopStorageIterator _string_table_iter;
- void do_vm_weak_handles(OopClosure* cl);
- void do_jni_weak_handles(OopClosure* cl);
- void do_string_table(OopClosure* cl);
+ void do_vm_weak_handles(ZRootsIteratorClosure* cl);
+ void do_jni_weak_handles(ZRootsIteratorClosure* cl);
+ void do_string_table(ZRootsIteratorClosure* cl);
ZParallelOopsDo<ZConcurrentWeakRootsIterator, &ZConcurrentWeakRootsIterator::do_vm_weak_handles> _vm_weak_handles;
ZParallelOopsDo<ZConcurrentWeakRootsIterator, &ZConcurrentWeakRootsIterator::do_jni_weak_handles> _jni_weak_handles;
@@ -143,12 +151,12 @@
ZConcurrentWeakRootsIterator();
~ZConcurrentWeakRootsIterator();
- void oops_do(OopClosure* cl);
+ void oops_do(ZRootsIteratorClosure* cl);
};
class ZThreadRootsIterator {
private:
- void do_threads(OopClosure* cl);
+ void do_threads(ZRootsIteratorClosure* cl);
ZParallelOopsDo<ZThreadRootsIterator, &ZThreadRootsIterator::do_threads> _threads;
@@ -156,7 +164,7 @@
ZThreadRootsIterator();
~ZThreadRootsIterator();
- void oops_do(OopClosure* cl);
+ void oops_do(ZRootsIteratorClosure* cl);
};
#endif // SHARE_GC_Z_ZROOTSITERATOR_HPP
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hotspot/share/gc/z/zStatTLAB.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+#include "gc/z/zStatTLAB.hpp"
+
+ZPerWorker<ThreadLocalAllocStats>* ZStatTLAB::_stats = NULL;
+
+void ZStatTLAB::initialize() {
+ if (UseTLAB) {
+ assert(_stats == NULL, "Already initialized");
+ _stats = new ZPerWorker<ThreadLocalAllocStats>();
+ reset();
+ }
+}
+
+void ZStatTLAB::reset() {
+ if (UseTLAB) {
+ ZPerWorkerIterator<ThreadLocalAllocStats> iter(_stats);
+ for (ThreadLocalAllocStats* stats; iter.next(&stats);) {
+ stats->reset();
+ }
+ }
+}
+
+ThreadLocalAllocStats* ZStatTLAB::get() {
+ if (UseTLAB) {
+ return _stats->addr();
+ }
+
+ return NULL;
+}
+
+void ZStatTLAB::publish() {
+ if (UseTLAB) {
+ ThreadLocalAllocStats total;
+
+ ZPerWorkerIterator<ThreadLocalAllocStats> iter(_stats);
+ for (ThreadLocalAllocStats* stats; iter.next(&stats);) {
+ total.update(*stats);
+ }
+
+ total.publish();
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hotspot/share/gc/z/zStatTLAB.hpp Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+#ifndef SHARE_GC_Z_ZSTATTLAB_HPP
+#define SHARE_GC_Z_ZSTATTLAB_HPP
+
+#include "gc/shared/threadLocalAllocBuffer.hpp"
+#include "gc/z/zValue.hpp"
+#include "memory/allocation.hpp"
+
+class ZStatTLAB : public AllStatic {
+private:
+ static ZPerWorker<ThreadLocalAllocStats>* _stats;
+
+public:
+ static void initialize();
+ static void reset();
+ static ThreadLocalAllocStats* get();
+ static void publish();
+};
+
+#endif // SHARE_GC_Z_ZSTATTLAB_HPP
--- a/src/hotspot/share/gc/z/zUtils.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/gc/z/zUtils.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -22,8 +22,6 @@
*/
#include "precompiled.hpp"
-#include "gc/shared/collectedHeap.hpp"
-#include "gc/z/zAddress.inline.hpp"
#include "gc/z/zUtils.inline.hpp"
#include "utilities/debug.hpp"
@@ -40,10 +38,3 @@
return (uintptr_t)res;
}
-
-void ZUtils::insert_filler_object(uintptr_t addr, size_t size) {
- const size_t fill_size_in_words = bytes_to_words(size);
- if (fill_size_in_words >= CollectedHeap::min_fill_size()) {
- CollectedHeap::fill_with_objects((HeapWord*)ZAddress::good(addr), fill_size_in_words);
- }
-}
--- a/src/hotspot/share/gc/z/zUtils.hpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/gc/z/zUtils.hpp Mon Sep 24 10:59:26 2018 -0700
@@ -42,9 +42,6 @@
// Object
static size_t object_size(uintptr_t addr);
static void object_copy(uintptr_t from, uintptr_t to, size_t size);
-
- // Filler
- static void insert_filler_object(uintptr_t addr, size_t size);
};
#endif // SHARE_GC_Z_ZUTILS_HPP
--- a/src/hotspot/share/gc/z/zValue.hpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/gc/z/zValue.hpp Mon Sep 24 10:59:26 2018 -0700
@@ -131,7 +131,7 @@
class ZValueIterator;
template <typename S, typename T>
-class ZValue {
+class ZValue : public CHeapObj<mtGC> {
private:
const uintptr_t _addr;
--- a/src/hotspot/share/memory/filemap.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/memory/filemap.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -26,7 +26,6 @@
#include "jvm.h"
#include "classfile/classLoader.inline.hpp"
#include "classfile/classLoaderExt.hpp"
-#include "classfile/compactHashtable.inline.hpp"
#include "classfile/stringTable.hpp"
#include "classfile/symbolTable.hpp"
#include "classfile/systemDictionaryShared.hpp"
--- a/src/hotspot/share/memory/heapShared.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/memory/heapShared.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -33,7 +33,7 @@
#include "memory/iterator.inline.hpp"
#include "memory/metadataFactory.hpp"
#include "memory/metaspaceClosure.hpp"
-#include "memory/metaspaceShared.hpp"
+#include "memory/metaspaceShared.inline.hpp"
#include "memory/resourceArea.hpp"
#include "oops/compressedOops.inline.hpp"
#include "oops/oop.inline.hpp"
--- a/src/hotspot/share/memory/metaspaceShared.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/memory/metaspaceShared.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -65,7 +65,6 @@
#include "utilities/defaultStream.hpp"
#include "utilities/hashtable.inline.hpp"
#if INCLUDE_G1GC
-#include "gc/g1/g1Allocator.inline.hpp"
#include "gc/g1/g1CollectedHeap.hpp"
#endif
@@ -1966,10 +1965,6 @@
}
}
-bool MetaspaceShared::is_archive_object(oop p) {
- return (p == NULL) ? false : G1ArchiveAllocator::is_archive_object(p);
-}
-
void MetaspaceShared::fixup_mapped_heap_regions() {
FileMapInfo *mapinfo = FileMapInfo::current_info();
mapinfo->fixup_mapped_heap_regions();
--- a/src/hotspot/share/memory/metaspaceShared.hpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/memory/metaspaceShared.hpp Mon Sep 24 10:59:26 2018 -0700
@@ -125,7 +125,7 @@
}
#endif
- static bool is_archive_object(oop p) NOT_CDS_JAVA_HEAP_RETURN_(false);
+ inline static bool is_archive_object(oop p) NOT_CDS_JAVA_HEAP_RETURN_(false);
static bool is_heap_object_archiving_allowed() {
CDS_JAVA_HEAP_ONLY(return (UseG1GC && UseCompressedOops && UseCompressedClassPointers);)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hotspot/share/memory/metaspaceShared.inline.hpp Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#ifndef SHARE_VM_MEMORY_METASPACESHARED_INLINE_HPP
+#define SHARE_VM_MEMORY_METASPACESHARED_INLINE_HPP
+
+#include "memory/metaspaceShared.hpp"
+#if INCLUDE_G1GC
+#include "gc/g1/g1Allocator.inline.hpp"
+#endif
+
+#if INCLUDE_CDS_JAVA_HEAP
+bool MetaspaceShared::is_archive_object(oop p) {
+ return (p == NULL) ? false : G1ArchiveAllocator::is_archive_object(p);
+}
+#endif
+
+#endif // SHARE_VM_MEMORY_METASPACESHARED_INLINE_HPP
--- a/src/hotspot/share/oops/method.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/oops/method.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -2152,6 +2152,8 @@
if (value && !already_set) {
MetadataOnStackMark::record(this);
}
+ assert(!value || !is_old() || is_obsolete() || is_running_emcp(),
+ "emcp methods cannot run after emcp bit is cleared");
}
// Called when the class loader is unloaded to make all methods weak.
--- a/src/hotspot/share/oops/oop.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/oops/oop.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -25,6 +25,7 @@
#include "precompiled.hpp"
#include "classfile/altHashing.hpp"
#include "classfile/javaClasses.inline.hpp"
+#include "memory/metaspaceShared.inline.hpp"
#include "memory/resourceArea.hpp"
#include "oops/access.inline.hpp"
#include "oops/oop.inline.hpp"
@@ -141,6 +142,12 @@
if (!Universe::heap()->is_in_reserved(this)) return false;
return mark()->is_unlocked();
}
+
+#if INCLUDE_CDS_JAVA_HEAP
+bool oopDesc::is_archive_object(oop p) {
+ return MetaspaceShared::is_archive_object(p);
+}
+#endif
#endif // PRODUCT
VerifyOopClosure VerifyOopClosure::verify_oop;
--- a/src/hotspot/share/oops/oop.hpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/oops/oop.hpp Mon Sep 24 10:59:26 2018 -0700
@@ -256,6 +256,7 @@
static bool is_oop_or_null(oop obj, bool ignore_mark_word = false);
#ifndef PRODUCT
inline bool is_unlocked_oop() const;
+ static bool is_archive_object(oop p) NOT_CDS_JAVA_HEAP_RETURN_(false);
#endif
// garbage collection
--- a/src/hotspot/share/oops/oop.inline.hpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/oops/oop.inline.hpp Mon Sep 24 10:59:26 2018 -0700
@@ -26,7 +26,6 @@
#define SHARE_VM_OOPS_OOP_INLINE_HPP
#include "gc/shared/collectedHeap.hpp"
-#include "memory/metaspaceShared.hpp"
#include "oops/access.inline.hpp"
#include "oops/arrayKlass.hpp"
#include "oops/arrayOop.hpp"
@@ -352,8 +351,8 @@
"forwarding to something not aligned");
assert(Universe::heap()->is_in_reserved(p),
"forwarding to something not in heap");
- assert(!MetaspaceShared::is_archive_object(oop(this)) &&
- !MetaspaceShared::is_archive_object(p),
+ assert(!is_archive_object(oop(this)) &&
+ !is_archive_object(p),
"forwarding archive object");
markOop m = markOopDesc::encode_pointer_as_mark(p);
assert(m->decode_pointer() == p, "encoding must be reversable");
--- a/src/hotspot/share/opto/library_call.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/opto/library_call.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -244,7 +244,7 @@
Node* generate_min_max(vmIntrinsics::ID id, Node* x, Node* y);
// This returns Type::AnyPtr, RawPtr, or OopPtr.
int classify_unsafe_addr(Node* &base, Node* &offset, BasicType type);
- Node* make_unsafe_address(Node*& base, Node* offset, BasicType type = T_ILLEGAL, bool can_cast = false);
+ Node* make_unsafe_address(Node*& base, Node* offset, DecoratorSet decorators, BasicType type = T_ILLEGAL, bool can_cast = false);
typedef enum { Relaxed, Opaque, Volatile, Acquire, Release } AccessKind;
DecoratorSet mo_decorator_for_access_kind(AccessKind kind);
@@ -1684,7 +1684,7 @@
if (!stopped()) {
src = access_resolve(src, ACCESS_READ);
- dst = access_resolve(dst, ACCESS_READ);
+ dst = access_resolve(dst, ACCESS_WRITE);
// Calculate starting addresses.
Node* src_start = array_element_address(src, src_begin, T_BYTE);
@@ -2193,7 +2193,7 @@
}
}
-inline Node* LibraryCallKit::make_unsafe_address(Node*& base, Node* offset, BasicType type, bool can_cast) {
+inline Node* LibraryCallKit::make_unsafe_address(Node*& base, Node* offset, DecoratorSet decorators, BasicType type, bool can_cast) {
Node* uncasted_base = base;
int kind = classify_unsafe_addr(uncasted_base, offset, type);
if (kind == Type::RawPtr) {
@@ -2222,6 +2222,7 @@
}
// We don't know if it's an on heap or off heap access. Fall back
// to raw memory access.
+ base = access_resolve(base, decorators);
Node* raw = _gvn.transform(new CheckCastPPNode(control(), base, TypeRawPtr::BOTTOM));
return basic_plus_adr(top(), raw, offset);
} else {
@@ -2388,7 +2389,7 @@
"fieldOffset must be byte-scaled");
// 32-bit machines ignore the high half!
offset = ConvL2X(offset);
- adr = make_unsafe_address(base, offset, type, kind == Relaxed);
+ adr = make_unsafe_address(base, offset, is_store ? ACCESS_WRITE : ACCESS_READ, type, kind == Relaxed);
if (_gvn.type(base)->isa_ptr() != TypePtr::NULL_PTR) {
heap_base_oop = base;
@@ -2672,7 +2673,7 @@
assert(Unsafe_field_offset_to_byte_offset(11) == 11, "fieldOffset must be byte-scaled");
// 32-bit machines ignore the high half of long offsets
offset = ConvL2X(offset);
- Node* adr = make_unsafe_address(base, offset, type, false);
+ Node* adr = make_unsafe_address(base, offset, ACCESS_WRITE | ACCESS_READ, type, false);
const TypePtr *adr_type = _gvn.type(adr)->isa_ptr();
Compile::AliasType* alias_type = C->alias_type(adr_type);
@@ -2967,6 +2968,11 @@
Node* rec_thr = argument(0);
Node* tls_ptr = NULL;
Node* cur_thr = generate_current_thread(tls_ptr);
+
+ // Resolve oops to stable for CmpP below.
+ cur_thr = access_resolve(cur_thr, 0);
+ rec_thr = access_resolve(rec_thr, 0);
+
Node* cmp_thr = _gvn.transform(new CmpPNode(cur_thr, rec_thr));
Node* bol_thr = _gvn.transform(new BoolNode(cmp_thr, BoolTest::ne));
@@ -3401,6 +3407,10 @@
klasses[which_arg] = _gvn.transform(kls);
}
+ // Resolve oops to stable for CmpP below.
+ args[0] = access_resolve(args[0], 0);
+ args[1] = access_resolve(args[1], 0);
+
// Having loaded both klasses, test each for null.
bool never_see_null = !too_many_traps(Deoptimization::Reason_null_check);
for (which_arg = 0; which_arg <= 1; which_arg++) {
@@ -4178,8 +4188,10 @@
assert(Unsafe_field_offset_to_byte_offset(11) == 11,
"fieldOffset must be byte-scaled");
- Node* src = make_unsafe_address(src_ptr, src_off);
- Node* dst = make_unsafe_address(dst_ptr, dst_off);
+ src_ptr = access_resolve(src_ptr, ACCESS_READ);
+ dst_ptr = access_resolve(dst_ptr, ACCESS_WRITE);
+ Node* src = make_unsafe_address(src_ptr, src_off, ACCESS_READ);
+ Node* dst = make_unsafe_address(dst_ptr, dst_off, ACCESS_WRITE);
// Conservatively insert a memory barrier on all memory slices.
// Do not let writes of the copy source or destination float below the copy.
@@ -5334,8 +5346,10 @@
Node* call;
jvms()->set_should_reexecute(true);
- Node* obja_adr = make_unsafe_address(obja, aoffset);
- Node* objb_adr = make_unsafe_address(objb, boffset);
+ obja = access_resolve(obja, ACCESS_READ);
+ objb = access_resolve(objb, ACCESS_READ);
+ Node* obja_adr = make_unsafe_address(obja, aoffset, ACCESS_READ);
+ Node* objb_adr = make_unsafe_address(objb, boffset, ACCESS_READ);
call = make_runtime_call(RC_LEAF,
OptoRuntime::vectorizedMismatch_Type(),
@@ -6117,6 +6131,10 @@
src = must_be_not_null(src, true);
dest = must_be_not_null(dest, true);
+ // Resolve oops to stable for CmpP below.
+ src = access_resolve(src, 0);
+ dest = access_resolve(dest, 0);
+
ciInstanceKlass* instklass_AESCrypt = klass_AESCrypt->as_instance_klass();
Node* instof = gen_instanceof(embeddedCipherObj, makecon(TypeKlassPtr::make(instklass_AESCrypt)));
--- a/src/hotspot/share/opto/loopopts.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/opto/loopopts.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -3383,12 +3383,19 @@
if (dom_lca(exit, u_ctrl) != exit) continue;
// Hit! Refactor use to use the post-incremented tripcounter.
// Compute a post-increment tripcounter.
- Node *opaq = new Opaque2Node( C, cle->incr() );
- register_new_node(opaq, exit);
+ Node* c = exit;
+ if (cl->is_strip_mined()) {
+ IdealLoopTree* outer_loop = get_loop(cl->outer_loop());
+ if (!outer_loop->is_member(u_loop)) {
+ c = cl->outer_loop_exit();
+ }
+ }
+ Node *opaq = new Opaque2Node(C, cle->incr());
+ register_new_node(opaq, c);
Node *neg_stride = _igvn.intcon(-cle->stride_con());
set_ctrl(neg_stride, C->root());
- Node *post = new AddINode( opaq, neg_stride);
- register_new_node(post, exit);
+ Node *post = new AddINode(opaq, neg_stride);
+ register_new_node(post, c);
_igvn.rehash_node_delayed(use);
for (uint j = 1; j < use->req(); j++) {
if (use->in(j) == phi)
--- a/src/hotspot/share/opto/macro.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/opto/macro.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -1307,143 +1307,35 @@
mem = mem->as_MergeMem()->memory_at(Compile::AliasIdxRaw);
}
- Node* eden_top_adr;
- Node* eden_end_adr;
-
- set_eden_pointers(eden_top_adr, eden_end_adr);
-
- // Load Eden::end. Loop invariant and hoisted.
- //
- // Note: We set the control input on "eden_end" and "old_eden_top" when using
- // a TLAB to work around a bug where these values were being moved across
- // a safepoint. These are not oops, so they cannot be include in the oop
- // map, but they can be changed by a GC. The proper way to fix this would
- // be to set the raw memory state when generating a SafepointNode. However
- // this will require extensive changes to the loop optimization in order to
- // prevent a degradation of the optimization.
- // See comment in memnode.hpp, around line 227 in class LoadPNode.
- Node *eden_end = make_load(ctrl, mem, eden_end_adr, 0, TypeRawPtr::BOTTOM, T_ADDRESS);
-
// allocate the Region and Phi nodes for the result
result_region = new RegionNode(3);
result_phi_rawmem = new PhiNode(result_region, Type::MEMORY, TypeRawPtr::BOTTOM);
result_phi_rawoop = new PhiNode(result_region, TypeRawPtr::BOTTOM);
result_phi_i_o = new PhiNode(result_region, Type::ABIO); // I/O is used for Prefetch
- // We need a Region for the loop-back contended case.
- enum { fall_in_path = 1, contended_loopback_path = 2 };
- Node *contended_region;
- Node *contended_phi_rawmem;
- if (UseTLAB) {
- contended_region = toobig_false;
- contended_phi_rawmem = mem;
- } else {
- contended_region = new RegionNode(3);
- contended_phi_rawmem = new PhiNode(contended_region, Type::MEMORY, TypeRawPtr::BOTTOM);
- // Now handle the passing-too-big test. We fall into the contended
- // loop-back merge point.
- contended_region ->init_req(fall_in_path, toobig_false);
- contended_phi_rawmem->init_req(fall_in_path, mem);
- transform_later(contended_region);
- transform_later(contended_phi_rawmem);
- }
-
- // Load(-locked) the heap top.
- // See note above concerning the control input when using a TLAB
- Node *old_eden_top = UseTLAB
- ? new LoadPNode (ctrl, contended_phi_rawmem, eden_top_adr, TypeRawPtr::BOTTOM, TypeRawPtr::BOTTOM, MemNode::unordered)
- : new LoadPLockedNode(contended_region, contended_phi_rawmem, eden_top_adr, MemNode::acquire);
-
- transform_later(old_eden_top);
- // Add to heap top to get a new heap top
- Node *new_eden_top = new AddPNode(top(), old_eden_top, size_in_bytes);
- transform_later(new_eden_top);
- // Check for needing a GC; compare against heap end
- Node *needgc_cmp = new CmpPNode(new_eden_top, eden_end);
- transform_later(needgc_cmp);
- Node *needgc_bol = new BoolNode(needgc_cmp, BoolTest::ge);
- transform_later(needgc_bol);
- IfNode *needgc_iff = new IfNode(contended_region, needgc_bol, PROB_UNLIKELY_MAG(4), COUNT_UNKNOWN);
- transform_later(needgc_iff);
-
- // Plug the failing-heap-space-need-gc test into the slow-path region
- Node *needgc_true = new IfTrueNode(needgc_iff);
- transform_later(needgc_true);
- if (initial_slow_test) {
- slow_region->init_req(need_gc_path, needgc_true);
- // This completes all paths into the slow merge point
- transform_later(slow_region);
- } else { // No initial slow path needed!
- // Just fall from the need-GC path straight into the VM call.
- slow_region = needgc_true;
- }
- // No need for a GC. Setup for the Store-Conditional
- Node *needgc_false = new IfFalseNode(needgc_iff);
- transform_later(needgc_false);
-
// Grab regular I/O before optional prefetch may change it.
// Slow-path does no I/O so just set it to the original I/O.
result_phi_i_o->init_req(slow_result_path, i_o);
- i_o = prefetch_allocation(i_o, needgc_false, contended_phi_rawmem,
- old_eden_top, new_eden_top, length);
-
+ Node* needgc_ctrl = NULL;
// Name successful fast-path variables
- Node* fast_oop = old_eden_top;
Node* fast_oop_ctrl;
Node* fast_oop_rawmem;
- // Store (-conditional) the modified eden top back down.
- // StorePConditional produces flags for a test PLUS a modified raw
- // memory state.
- if (UseTLAB) {
- Node* store_eden_top =
- new StorePNode(needgc_false, contended_phi_rawmem, eden_top_adr,
- TypeRawPtr::BOTTOM, new_eden_top, MemNode::unordered);
- transform_later(store_eden_top);
- fast_oop_ctrl = needgc_false; // No contention, so this is the fast path
- fast_oop_rawmem = store_eden_top;
- } else {
- Node* store_eden_top =
- new StorePConditionalNode(needgc_false, contended_phi_rawmem, eden_top_adr,
- new_eden_top, fast_oop/*old_eden_top*/);
- transform_later(store_eden_top);
- Node *contention_check = new BoolNode(store_eden_top, BoolTest::ne);
- transform_later(contention_check);
- store_eden_top = new SCMemProjNode(store_eden_top);
- transform_later(store_eden_top);
+ intx prefetch_lines = length != NULL ? AllocatePrefetchLines : AllocateInstancePrefetchLines;
+
+ BarrierSetC2* bs = BarrierSet::barrier_set()->barrier_set_c2();
+ Node* fast_oop = bs->obj_allocate(this, ctrl, mem, toobig_false, size_in_bytes, i_o, needgc_ctrl,
+ fast_oop_ctrl, fast_oop_rawmem,
+ prefetch_lines);
- // If not using TLABs, check to see if there was contention.
- IfNode *contention_iff = new IfNode (needgc_false, contention_check, PROB_MIN, COUNT_UNKNOWN);
- transform_later(contention_iff);
- Node *contention_true = new IfTrueNode(contention_iff);
- transform_later(contention_true);
- // If contention, loopback and try again.
- contended_region->init_req(contended_loopback_path, contention_true);
- contended_phi_rawmem->init_req(contended_loopback_path, store_eden_top);
-
- // Fast-path succeeded with no contention!
- Node *contention_false = new IfFalseNode(contention_iff);
- transform_later(contention_false);
- fast_oop_ctrl = contention_false;
-
- // Bump total allocated bytes for this thread
- Node* thread = new ThreadLocalNode();
- transform_later(thread);
- Node* alloc_bytes_adr = basic_plus_adr(top()/*not oop*/, thread,
- in_bytes(JavaThread::allocated_bytes_offset()));
- Node* alloc_bytes = make_load(fast_oop_ctrl, store_eden_top, alloc_bytes_adr,
- 0, TypeLong::LONG, T_LONG);
-#ifdef _LP64
- Node* alloc_size = size_in_bytes;
-#else
- Node* alloc_size = new ConvI2LNode(size_in_bytes);
- transform_later(alloc_size);
-#endif
- Node* new_alloc_bytes = new AddLNode(alloc_bytes, alloc_size);
- transform_later(new_alloc_bytes);
- fast_oop_rawmem = make_store(fast_oop_ctrl, store_eden_top, alloc_bytes_adr,
- 0, new_alloc_bytes, T_LONG);
+ if (initial_slow_test) {
+ slow_region->init_req(need_gc_path, needgc_ctrl);
+ // This completes all paths into the slow merge point
+ transform_later(slow_region);
+ } else { // No initial slow path needed!
+ // Just fall from the need-GC path straight into the VM call.
+ slow_region = needgc_ctrl;
}
InitializeNode* init = alloc->initialization();
@@ -1774,7 +1666,7 @@
Node* PhaseMacroExpand::prefetch_allocation(Node* i_o, Node*& needgc_false,
Node*& contended_phi_rawmem,
Node* old_eden_top, Node* new_eden_top,
- Node* length) {
+ intx lines) {
enum { fall_in_path = 1, pf_path = 2 };
if( UseTLAB && AllocatePrefetchStyle == 2 ) {
// Generate prefetch allocation with watermark check.
@@ -1832,11 +1724,10 @@
Node *prefetch_adr;
Node *prefetch;
- uint lines = (length != NULL) ? AllocatePrefetchLines : AllocateInstancePrefetchLines;
uint step_size = AllocatePrefetchStepSize;
uint distance = 0;
- for ( uint i = 0; i < lines; i++ ) {
+ for ( intx i = 0; i < lines; i++ ) {
prefetch_adr = new AddPNode( old_pf_wm, new_pf_wmt,
_igvn.MakeConX(distance) );
transform_later(prefetch_adr);
@@ -1865,7 +1756,6 @@
// This code is used to generate 1 prefetch instruction per cache line.
// Generate several prefetch instructions.
- uint lines = (length != NULL) ? AllocatePrefetchLines : AllocateInstancePrefetchLines;
uint step_size = AllocatePrefetchStepSize;
uint distance = AllocatePrefetchDistance;
@@ -1890,7 +1780,7 @@
contended_phi_rawmem = prefetch;
Node *prefetch_adr;
distance = step_size;
- for ( uint i = 1; i < lines; i++ ) {
+ for ( intx i = 1; i < lines; i++ ) {
prefetch_adr = new AddPNode( cache_adr, cache_adr,
_igvn.MakeConX(distance) );
transform_later(prefetch_adr);
@@ -1904,10 +1794,9 @@
Node *prefetch_adr;
Node *prefetch;
// Generate several prefetch instructions.
- uint lines = (length != NULL) ? AllocatePrefetchLines : AllocateInstancePrefetchLines;
uint step_size = AllocatePrefetchStepSize;
uint distance = AllocatePrefetchDistance;
- for ( uint i = 0; i < lines; i++ ) {
+ for ( intx i = 0; i < lines; i++ ) {
prefetch_adr = new AddPNode( old_eden_top, new_eden_top,
_igvn.MakeConX(distance) );
transform_later(prefetch_adr);
--- a/src/hotspot/share/opto/macro.hpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/opto/macro.hpp Mon Sep 24 10:59:26 2018 -0700
@@ -193,11 +193,6 @@
Node* klass_node, Node* length,
Node* size_in_bytes);
- Node* prefetch_allocation(Node* i_o,
- Node*& needgc_false, Node*& contended_phi_rawmem,
- Node* old_eden_top, Node* new_eden_top,
- Node* length);
-
Node* make_arraycopy_load(ArrayCopyNode* ac, intptr_t offset, Node* ctl, Node* mem, BasicType ft, const Type *ftype, AllocateNode *alloc);
public:
@@ -215,6 +210,11 @@
Node* longcon(jlong con) const { return _igvn.longcon(con); }
Node* makecon(const Type *t) const { return _igvn.makecon(t); }
Node* top() const { return C->top(); }
+
+ Node* prefetch_allocation(Node* i_o,
+ Node*& needgc_false, Node*& contended_phi_rawmem,
+ Node* old_eden_top, Node* new_eden_top,
+ intx lines);
};
#endif // SHARE_VM_OPTO_MACRO_HPP
--- a/src/hotspot/share/opto/parse2.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/opto/parse2.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -2747,8 +2747,8 @@
handle_if_acmp:
// If this is a backwards branch in the bytecodes, add Safepoint
maybe_add_safepoint(iter().get_dest());
- a = pop();
- b = pop();
+ a = access_resolve(pop(), 0);
+ b = access_resolve(pop(), 0);
c = _gvn.transform( new CmpPNode(b, a) );
c = optimize_cmp_with_klass(c);
do_if(btest, c);
--- a/src/hotspot/share/prims/jvmti.xml Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/prims/jvmti.xml Mon Sep 24 10:59:26 2018 -0700
@@ -24,7 +24,7 @@
-->
<!DOCTYPE specification [
- <!ELEMENT specification (title, intro*, functionsection, errorsection,
+ <!ELEMENT specification (title, copyright, intro*, functionsection, errorsection,
eventsection, datasection, issuessection, changehistory)>
<!ATTLIST specification label CDATA #REQUIRED
majorversion CDATA #REQUIRED
@@ -34,6 +34,8 @@
<!ELEMENT title (#PCDATA|jvmti|tm)*>
<!ATTLIST title subtitle CDATA #REQUIRED>
+ <!ELEMENT copyright ANY>
+
<!ELEMENT intro ANY>
<!ATTLIST intro id CDATA #IMPLIED
label CDATA "">
@@ -365,6 +367,10 @@
<tm>JVM</tm> Tool Interface
</title>
+ <copyright>
+ Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
+ </copyright>
+
<intro id="whatIs" label="What is the JVM Tool Interface?">
The <tm>JVM</tm> Tool Interface (<jvmti/>)
is a programming interface used by development and monitoring tools.
--- a/src/hotspot/share/prims/jvmti.xsl Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/prims/jvmti.xsl Mon Sep 24 10:59:26 2018 -0700
@@ -204,6 +204,7 @@
<p id="ChangeHistory"/>
<xsl:apply-templates select="changehistory"/>
</div>
+ <xsl:apply-templates select="copyright"/>
</body>
</html>
</xsl:template>
@@ -219,6 +220,12 @@
</h3>
</xsl:template>
+<xsl:template match="copyright">
+ <p>
+ <xsl:apply-templates/>
+ </p>
+</xsl:template>
+
<xsl:template match="functionsection">
<div class="sep"/>
<hr class="thick"/>
--- a/src/hotspot/share/prims/whitebox.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/prims/whitebox.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -37,7 +37,7 @@
#include "gc/shared/genCollectedHeap.hpp"
#include "jvmtifiles/jvmtiEnv.hpp"
#include "memory/metadataFactory.hpp"
-#include "memory/metaspaceShared.hpp"
+#include "memory/metaspaceShared.inline.hpp"
#include "memory/iterator.hpp"
#include "memory/resourceArea.hpp"
#include "memory/universe.hpp"
--- a/src/hotspot/share/runtime/flags/jvmFlagRangeList.hpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/runtime/flags/jvmFlagRangeList.hpp Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,7 +25,6 @@
#ifndef SHARE_VM_RUNTIME_JVMFLAGRANGELIST_HPP
#define SHARE_VM_RUNTIME_JVMFLAGRANGELIST_HPP
-#include "memory/metaspaceShared.hpp"
#include "runtime/flags/jvmFlag.hpp"
#include "utilities/growableArray.hpp"
--- a/src/hotspot/share/runtime/reflection.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/runtime/reflection.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -898,28 +898,17 @@
java_lang_reflect_Method::set_exception_types(mh(), exception_types());
java_lang_reflect_Method::set_modifiers(mh(), modifiers);
java_lang_reflect_Method::set_override(mh(), false);
- if (java_lang_reflect_Method::has_signature_field() &&
- method->generic_signature() != NULL) {
+ if (method->generic_signature() != NULL) {
Symbol* gs = method->generic_signature();
Handle sig = java_lang_String::create_from_symbol(gs, CHECK_NULL);
java_lang_reflect_Method::set_signature(mh(), sig());
}
- if (java_lang_reflect_Method::has_annotations_field()) {
- typeArrayOop an_oop = Annotations::make_java_array(method->annotations(), CHECK_NULL);
- java_lang_reflect_Method::set_annotations(mh(), an_oop);
- }
- if (java_lang_reflect_Method::has_parameter_annotations_field()) {
- typeArrayOop an_oop = Annotations::make_java_array(method->parameter_annotations(), CHECK_NULL);
- java_lang_reflect_Method::set_parameter_annotations(mh(), an_oop);
- }
- if (java_lang_reflect_Method::has_annotation_default_field()) {
- typeArrayOop an_oop = Annotations::make_java_array(method->annotation_default(), CHECK_NULL);
- java_lang_reflect_Method::set_annotation_default(mh(), an_oop);
- }
- if (java_lang_reflect_Method::has_type_annotations_field()) {
- typeArrayOop an_oop = Annotations::make_java_array(method->type_annotations(), CHECK_NULL);
- java_lang_reflect_Method::set_type_annotations(mh(), an_oop);
- }
+ typeArrayOop an_oop = Annotations::make_java_array(method->annotations(), CHECK_NULL);
+ java_lang_reflect_Method::set_annotations(mh(), an_oop);
+ an_oop = Annotations::make_java_array(method->parameter_annotations(), CHECK_NULL);
+ java_lang_reflect_Method::set_parameter_annotations(mh(), an_oop);
+ an_oop = Annotations::make_java_array(method->annotation_default(), CHECK_NULL);
+ java_lang_reflect_Method::set_annotation_default(mh(), an_oop);
return mh();
}
@@ -948,24 +937,15 @@
java_lang_reflect_Constructor::set_exception_types(ch(), exception_types());
java_lang_reflect_Constructor::set_modifiers(ch(), modifiers);
java_lang_reflect_Constructor::set_override(ch(), false);
- if (java_lang_reflect_Constructor::has_signature_field() &&
- method->generic_signature() != NULL) {
+ if (method->generic_signature() != NULL) {
Symbol* gs = method->generic_signature();
Handle sig = java_lang_String::create_from_symbol(gs, CHECK_NULL);
java_lang_reflect_Constructor::set_signature(ch(), sig());
}
- if (java_lang_reflect_Constructor::has_annotations_field()) {
- typeArrayOop an_oop = Annotations::make_java_array(method->annotations(), CHECK_NULL);
- java_lang_reflect_Constructor::set_annotations(ch(), an_oop);
- }
- if (java_lang_reflect_Constructor::has_parameter_annotations_field()) {
- typeArrayOop an_oop = Annotations::make_java_array(method->parameter_annotations(), CHECK_NULL);
- java_lang_reflect_Constructor::set_parameter_annotations(ch(), an_oop);
- }
- if (java_lang_reflect_Constructor::has_type_annotations_field()) {
- typeArrayOop an_oop = Annotations::make_java_array(method->type_annotations(), CHECK_NULL);
- java_lang_reflect_Constructor::set_type_annotations(ch(), an_oop);
- }
+ typeArrayOop an_oop = Annotations::make_java_array(method->annotations(), CHECK_NULL);
+ java_lang_reflect_Constructor::set_annotations(ch(), an_oop);
+ an_oop = Annotations::make_java_array(method->parameter_annotations(), CHECK_NULL);
+ java_lang_reflect_Constructor::set_parameter_annotations(ch(), an_oop);
return ch();
}
@@ -986,20 +966,13 @@
// Note the ACC_ANNOTATION bit, which is a per-class access flag, is never set here.
java_lang_reflect_Field::set_modifiers(rh(), fd->access_flags().as_int() & JVM_RECOGNIZED_FIELD_MODIFIERS);
java_lang_reflect_Field::set_override(rh(), false);
- if (java_lang_reflect_Field::has_signature_field() &&
- fd->has_generic_signature()) {
+ if (fd->has_generic_signature()) {
Symbol* gs = fd->generic_signature();
Handle sig = java_lang_String::create_from_symbol(gs, CHECK_NULL);
java_lang_reflect_Field::set_signature(rh(), sig());
}
- if (java_lang_reflect_Field::has_annotations_field()) {
- typeArrayOop an_oop = Annotations::make_java_array(fd->annotations(), CHECK_NULL);
- java_lang_reflect_Field::set_annotations(rh(), an_oop);
- }
- if (java_lang_reflect_Field::has_type_annotations_field()) {
- typeArrayOop an_oop = Annotations::make_java_array(fd->type_annotations(), CHECK_NULL);
- java_lang_reflect_Field::set_type_annotations(rh(), an_oop);
- }
+ typeArrayOop an_oop = Annotations::make_java_array(fd->annotations(), CHECK_NULL);
+ java_lang_reflect_Field::set_annotations(rh(), an_oop);
return rh();
}
--- a/src/hotspot/share/runtime/serviceThread.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/runtime/serviceThread.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -86,7 +86,6 @@
bool has_jvmti_events = false;
bool has_gc_notification_event = false;
bool has_dcmd_notification_event = false;
- bool acs_notify = false;
bool stringtable_work = false;
bool symboltable_work = false;
bool resolved_method_table_work = false;
@@ -104,16 +103,20 @@
ThreadBlockInVM tbivm(jt);
MutexLockerEx ml(Service_lock, Mutex::_no_safepoint_check_flag);
- while (!(sensors_changed = LowMemoryDetector::has_pending_requests()) &&
- !(has_jvmti_events = JvmtiDeferredEventQueue::has_events()) &&
- !(has_gc_notification_event = GCNotifier::has_event()) &&
- !(has_dcmd_notification_event = DCmdFactory::has_pending_jmx_notification()) &&
- !(stringtable_work = StringTable::has_work()) &&
- !(symboltable_work = SymbolTable::has_work()) &&
- !(resolved_method_table_work = ResolvedMethodTable::has_work()) &&
- !(protection_domain_table_work = SystemDictionary::pd_cache_table()->has_work())) {
- // wait until one of the sensors has pending requests, or there is a
- // pending JVMTI event or JMX GC notification to post
+ // Process all available work on each (outer) iteration, rather than
+ // only the first recognized bit of work, to avoid frequently true early
+ // tests from potentially starving later work. Hence the use of
+ // arithmetic-or to combine results; we don't want short-circuiting.
+ while (((sensors_changed = LowMemoryDetector::has_pending_requests()) |
+ (has_jvmti_events = JvmtiDeferredEventQueue::has_events()) |
+ (has_gc_notification_event = GCNotifier::has_event()) |
+ (has_dcmd_notification_event = DCmdFactory::has_pending_jmx_notification()) |
+ (stringtable_work = StringTable::has_work()) |
+ (symboltable_work = SymbolTable::has_work()) |
+ (resolved_method_table_work = ResolvedMethodTable::has_work()) |
+ (protection_domain_table_work = SystemDictionary::pd_cache_table()->has_work()))
+ == 0) {
+ // Wait until notified that there is some work to do.
Service_lock->wait(Mutex::_no_safepoint_check_flag);
}
--- a/src/hotspot/share/runtime/thread.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/runtime/thread.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -1989,7 +1989,7 @@
remove_stack_guard_pages();
if (UseTLAB) {
- tlab().make_parsable(true); // retire TLAB
+ tlab().retire();
}
if (JvmtiEnv::environments_might_exist()) {
@@ -2045,7 +2045,7 @@
remove_stack_guard_pages();
if (UseTLAB) {
- tlab().make_parsable(true); // retire TLAB, if any
+ tlab().retire();
}
BarrierSet::barrier_set()->on_thread_detach(this);
--- a/src/hotspot/share/services/diagnosticCommand.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/services/diagnosticCommand.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -26,7 +26,6 @@
#include "jvm.h"
#include "classfile/classLoaderHierarchyDCmd.hpp"
#include "classfile/classLoaderStats.hpp"
-#include "classfile/compactHashtable.hpp"
#include "compiler/compileBroker.hpp"
#include "compiler/directivesParser.hpp"
#include "gc/shared/vmGCOperations.hpp"
--- a/src/hotspot/share/utilities/utf8.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/utilities/utf8.cpp Mon Sep 24 10:59:26 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
@@ -401,7 +401,7 @@
return (c <= 0x00FF);
}
-bool UNICODE::is_latin1(jchar* base, int length) {
+bool UNICODE::is_latin1(const jchar* base, int length) {
for (int index = 0; index < length; index++) {
if (base[index] > 0x00FF) {
return false;
@@ -434,7 +434,7 @@
}
template<typename T>
-int UNICODE::utf8_length(T* base, int length) {
+int UNICODE::utf8_length(const T* base, int length) {
int result = 0;
for (int index = 0; index < length; index++) {
T c = base[index];
@@ -444,7 +444,7 @@
}
template<typename T>
-char* UNICODE::as_utf8(T* base, int& length) {
+char* UNICODE::as_utf8(const T* base, int& length) {
int utf8_len = utf8_length(base, length);
u_char* buf = NEW_RESOURCE_ARRAY(u_char, utf8_len + 1);
char* result = as_utf8(base, length, (char*) buf, utf8_len + 1);
@@ -454,7 +454,7 @@
return (char*) result;
}
-char* UNICODE::as_utf8(jchar* base, int length, char* buf, int buflen) {
+char* UNICODE::as_utf8(const jchar* base, int length, char* buf, int buflen) {
u_char* p = (u_char*)buf;
for (int index = 0; index < length; index++) {
jchar c = base[index];
@@ -466,7 +466,7 @@
return buf;
}
-char* UNICODE::as_utf8(jbyte* base, int length, char* buf, int buflen) {
+char* UNICODE::as_utf8(const jbyte* base, int length, char* buf, int buflen) {
u_char* p = (u_char*)buf;
u_char* end = (u_char*)buf + buflen;
for (int index = 0; index < length; index++) {
@@ -496,7 +496,7 @@
// returns the quoted ascii length of a unicode string
template<typename T>
-int UNICODE::quoted_ascii_length(T* base, int length) {
+int UNICODE::quoted_ascii_length(const T* base, int length) {
int result = 0;
for (int i = 0; i < length; i++) {
T c = base[i];
@@ -529,11 +529,11 @@
}
// Explicit instantiation for all supported types.
-template int UNICODE::utf8_length(jbyte* base, int length);
-template int UNICODE::utf8_length(jchar* base, int length);
-template char* UNICODE::as_utf8(jbyte* base, int& length);
-template char* UNICODE::as_utf8(jchar* base, int& length);
-template int UNICODE::quoted_ascii_length<jbyte>(jbyte* base, int length);
-template int UNICODE::quoted_ascii_length<jchar>(jchar* base, int length);
+template int UNICODE::utf8_length(const jbyte* base, int length);
+template int UNICODE::utf8_length(const jchar* base, int length);
+template char* UNICODE::as_utf8(const jbyte* base, int& length);
+template char* UNICODE::as_utf8(const jchar* base, int& length);
+template int UNICODE::quoted_ascii_length<jbyte>(const jbyte* base, int length);
+template int UNICODE::quoted_ascii_length<jchar>(const jchar* base, int length);
template void UNICODE::as_quoted_ascii<jbyte>(const jbyte* base, int length, char* buf, int buflen);
template void UNICODE::as_quoted_ascii<jchar>(const jchar* base, int length, char* buf, int buflen);
--- a/src/hotspot/share/utilities/utf8.hpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/utilities/utf8.hpp Mon Sep 24 10:59:26 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
@@ -90,14 +90,14 @@
static bool is_latin1(jchar c);
// checks if the given string can be encoded as latin1
- static bool is_latin1(jchar* base, int length);
+ static bool is_latin1(const jchar* base, int length);
// returns the utf8 size of a unicode character
static int utf8_size(jchar c);
static int utf8_size(jbyte c);
// returns the utf8 length of a unicode string
- template<typename T> static int utf8_length(T* base, int length);
+ template<typename T> static int utf8_length(const T* base, int length);
// converts a unicode string to utf8 string
static void convert_to_utf8(const jchar* base, int length, char* utf8_buffer);
@@ -105,12 +105,12 @@
// converts a unicode string to a utf8 string; result is allocated
// in resource area unless a buffer is provided. The unicode 'length'
// parameter is set to the length of the result utf8 string.
- template<typename T> static char* as_utf8(T* base, int& length);
- static char* as_utf8(jchar* base, int length, char* buf, int buflen);
- static char* as_utf8(jbyte* base, int length, char* buf, int buflen);
+ template<typename T> static char* as_utf8(const T* base, int& length);
+ static char* as_utf8(const jchar* base, int length, char* buf, int buflen);
+ static char* as_utf8(const jbyte* base, int length, char* buf, int buflen);
// returns the quoted ascii length of a unicode string
- template<typename T> static int quoted_ascii_length(T* base, int length);
+ template<typename T> static int quoted_ascii_length(const T* base, int length);
// converts a unicode string to quoted ascii
template<typename T> static void as_quoted_ascii(const T* base, int length, char* buf, int buflen);
--- a/src/hotspot/share/utilities/vmError.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/src/hotspot/share/utilities/vmError.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -84,6 +84,9 @@
"LD_LIBRARY_PATH", "LD_PRELOAD", "SHELL", "DISPLAY",
"HOSTTYPE", "OSTYPE", "ARCH", "MACHTYPE",
+ // defined on AIX
+ "LIBPATH", "LDR_PRELOAD", "LDR_PRELOAD64",
+
// defined on Linux
"LD_ASSUME_KERNEL", "_JAVA_SR_SIGNUM",
--- a/src/java.base/macosx/native/libjli/java_md_macosx.c Sat Sep 22 20:31:45 2018 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,943 +0,0 @@
-/*
- * Copyright (c) 2012, 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.
- */
-
-#include "java.h"
-#include "jvm_md.h"
-#include <dirent.h>
-#include <dlfcn.h>
-#include <fcntl.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/time.h>
-
-#include "manifest_info.h"
-
-/* Support Cocoa event loop on the main thread */
-#include <Cocoa/Cocoa.h>
-#include <objc/objc-runtime.h>
-#include <objc/objc-auto.h>
-
-#include <errno.h>
-#include <spawn.h>
-
-struct NSAppArgs {
- int argc;
- char **argv;
-};
-
-#define JVM_DLL "libjvm.dylib"
-#define JAVA_DLL "libjava.dylib"
-/* FALLBACK avoids naming conflicts with system libraries
- * (eg, ImageIO's libJPEG.dylib) */
-#define LD_LIBRARY_PATH "DYLD_FALLBACK_LIBRARY_PATH"
-
-/*
- * If a processor / os combination has the ability to run binaries of
- * two data models and cohabitation of jre/jdk bits with both data
- * models is supported, then DUAL_MODE is defined. MacOSX is a hybrid
- * system in that, the universal library can contain all types of libraries
- * 32/64 and client/server, thus the spawn is capable of linking with the
- * appropriate library as requested.
- *
- * Notes:
- * 1. VM. DUAL_MODE is disabled, and not supported, however, it is left here in
- * for experimentation and perhaps enable it in the future.
- * 2. At the time of this writing, the universal library contains only
- * a server 64-bit server JVM.
- * 3. "-client" command line option is supported merely as a command line flag,
- * for, compatibility reasons, however, a server VM will be launched.
- */
-
-/*
- * Flowchart of launcher execs and options processing on unix
- *
- * The selection of the proper vm shared library to open depends on
- * several classes of command line options, including vm "flavor"
- * options (-client, -server) and the data model options, -d32 and
- * -d64, as well as a version specification which may have come from
- * the command line or from the manifest of an executable jar file.
- * The vm selection options are not passed to the running
- * virtual machine; they must be screened out by the launcher.
- *
- * The version specification (if any) is processed first by the
- * platform independent routine SelectVersion. This may result in
- * the exec of the specified launcher version.
- *
- * Now, in most cases,the launcher will dlopen the target libjvm.so. All
- * required libraries are loaded by the runtime linker, using the known paths
- * baked into the shared libraries at compile time. Therefore,
- * in most cases, the launcher will only exec, if the data models are
- * mismatched, and will not set any environment variables, regardless of the
- * data models.
- *
- *
- *
- * Main
- * (incoming argv)
- * |
- * \|/
- * CreateExecutionEnvironment
- * (determines desired data model)
- * |
- * |
- * \|/
- * Have Desired Model ? --> NO --> Is Dual-Mode ? --> NO --> Exit(with error)
- * | |
- * | |
- * | \|/
- * | YES
- * | |
- * | |
- * | \|/
- * | CheckJvmType
- * | (removes -client, -server etc.)
- * | |
- * | |
- * \|/ \|/
- * YES Find the desired executable/library
- * | |
- * | |
- * \|/ \|/
- * CheckJvmType POINT A
- * (removes -client, -server, etc.)
- * |
- * |
- * \|/
- * TranslateDashJArgs...
- * (Prepare to pass args to vm)
- * |
- * |
- * \|/
- * ParseArguments
- * (processes version options,
- * creates argument list for vm,
- * etc.)
- * |
- * |
- * \|/
- * POINT A
- * |
- * |
- * \|/
- * Path is desired JRE ? YES --> Continue
- * NO
- * |
- * |
- * \|/
- * Paths have well known
- * jvm paths ? --> NO --> Continue
- * YES
- * |
- * |
- * \|/
- * Does libjvm.so exist
- * in any of them ? --> NO --> Continue
- * YES
- * |
- * |
- * \|/
- * Re-exec / Spawn
- * |
- * |
- * \|/
- * Main
- */
-
-/* Store the name of the executable once computed */
-static char *execname = NULL;
-
-/*
- * execname accessor from other parts of platform dependent logic
- */
-const char *
-GetExecName() {
- return execname;
-}
-
-/*
- * Exports the JNI interface from libjli
- *
- * This allows client code to link against the .jre/.jdk bundles,
- * and not worry about trying to pick a HotSpot to link against.
- *
- * Switching architectures is unsupported, since client code has
- * made that choice before the JVM was requested.
- */
-
-static InvocationFunctions *sExportedJNIFunctions = NULL;
-static char *sPreferredJVMType = NULL;
-
-static InvocationFunctions *GetExportedJNIFunctions() {
- if (sExportedJNIFunctions != NULL) return sExportedJNIFunctions;
-
- char jrePath[PATH_MAX];
- jboolean gotJREPath = GetJREPath(jrePath, sizeof(jrePath), JNI_FALSE);
- if (!gotJREPath) {
- JLI_ReportErrorMessage("Failed to GetJREPath()");
- return NULL;
- }
-
- char *preferredJVM = sPreferredJVMType;
- if (preferredJVM == NULL) {
-#if defined(__i386__)
- preferredJVM = "client";
-#elif defined(__x86_64__)
- preferredJVM = "server";
-#else
-#error "Unknown architecture - needs definition"
-#endif
- }
-
- char jvmPath[PATH_MAX];
- jboolean gotJVMPath = GetJVMPath(jrePath, preferredJVM, jvmPath, sizeof(jvmPath));
- if (!gotJVMPath) {
- JLI_ReportErrorMessage("Failed to GetJVMPath()");
- return NULL;
- }
-
- InvocationFunctions *fxns = malloc(sizeof(InvocationFunctions));
- jboolean vmLoaded = LoadJavaVM(jvmPath, fxns);
- if (!vmLoaded) {
- JLI_ReportErrorMessage("Failed to LoadJavaVM()");
- return NULL;
- }
-
- return sExportedJNIFunctions = fxns;
-}
-
-#ifndef STATIC_BUILD
-
-JNIEXPORT jint JNICALL
-JNI_GetDefaultJavaVMInitArgs(void *args) {
- InvocationFunctions *ifn = GetExportedJNIFunctions();
- if (ifn == NULL) return JNI_ERR;
- return ifn->GetDefaultJavaVMInitArgs(args);
-}
-
-JNIEXPORT jint JNICALL
-JNI_CreateJavaVM(JavaVM **pvm, void **penv, void *args) {
- InvocationFunctions *ifn = GetExportedJNIFunctions();
- if (ifn == NULL) return JNI_ERR;
- return ifn->CreateJavaVM(pvm, penv, args);
-}
-
-JNIEXPORT jint JNICALL
-JNI_GetCreatedJavaVMs(JavaVM **vmBuf, jsize bufLen, jsize *nVMs) {
- InvocationFunctions *ifn = GetExportedJNIFunctions();
- if (ifn == NULL) return JNI_ERR;
- return ifn->GetCreatedJavaVMs(vmBuf, bufLen, nVMs);
-}
-#endif
-
-/*
- * Allow JLI-aware launchers to specify a client/server preference
- */
-JNIEXPORT void JNICALL
-JLI_SetPreferredJVM(const char *prefJVM) {
- if (sPreferredJVMType != NULL) {
- free(sPreferredJVMType);
- sPreferredJVMType = NULL;
- }
-
- if (prefJVM == NULL) return;
- sPreferredJVMType = strdup(prefJVM);
-}
-
-static BOOL awtLoaded = NO;
-static pthread_mutex_t awtLoaded_mutex = PTHREAD_MUTEX_INITIALIZER;
-static pthread_cond_t awtLoaded_cv = PTHREAD_COND_INITIALIZER;
-
-JNIEXPORT void JNICALL
-JLI_NotifyAWTLoaded()
-{
- pthread_mutex_lock(&awtLoaded_mutex);
- awtLoaded = YES;
- pthread_cond_signal(&awtLoaded_cv);
- pthread_mutex_unlock(&awtLoaded_mutex);
-}
-
-static int (*main_fptr)(int argc, char **argv) = NULL;
-
-/*
- * Unwrap the arguments and re-run main()
- */
-static void *apple_main (void *arg)
-{
- if (main_fptr == NULL) {
-#ifdef STATIC_BUILD
- extern int main(int argc, char **argv);
- main_fptr = &main;
-#else
- main_fptr = (int (*)())dlsym(RTLD_DEFAULT, "main");
-#endif
- if (main_fptr == NULL) {
- JLI_ReportErrorMessageSys("error locating main entrypoint\n");
- exit(1);
- }
- }
-
- struct NSAppArgs *args = (struct NSAppArgs *) arg;
- exit(main_fptr(args->argc, args->argv));
-}
-
-static void dummyTimer(CFRunLoopTimerRef timer, void *info) {}
-
-static void ParkEventLoop() {
- // RunLoop needs at least one source, and 1e20 is pretty far into the future
- CFRunLoopTimerRef t = CFRunLoopTimerCreate(kCFAllocatorDefault, 1.0e20, 0.0, 0, 0, dummyTimer, NULL);
- CFRunLoopAddTimer(CFRunLoopGetCurrent(), t, kCFRunLoopDefaultMode);
- CFRelease(t);
-
- // Park this thread in the main run loop.
- int32_t result;
- do {
- result = CFRunLoopRunInMode(kCFRunLoopDefaultMode, 1.0e20, false);
- } while (result != kCFRunLoopRunFinished);
-}
-
-/*
- * Mac OS X mandates that the GUI event loop run on very first thread of
- * an application. This requires that we re-call Java's main() on a new
- * thread, reserving the 'main' thread for Cocoa.
- */
-static void MacOSXStartup(int argc, char *argv[]) {
- // Thread already started?
- static jboolean started = false;
- if (started) {
- return;
- }
- started = true;
-
- // Hand off arguments
- struct NSAppArgs args;
- args.argc = argc;
- args.argv = argv;
-
- // Fire up the main thread
- pthread_t main_thr;
- if (pthread_create(&main_thr, NULL, &apple_main, &args) != 0) {
- JLI_ReportErrorMessageSys("Could not create main thread: %s\n", strerror(errno));
- exit(1);
- }
- if (pthread_detach(main_thr)) {
- JLI_ReportErrorMessageSys("pthread_detach() failed: %s\n", strerror(errno));
- exit(1);
- }
-
- ParkEventLoop();
-}
-
-void
-CreateExecutionEnvironment(int *pargc, char ***pargv,
- char jrepath[], jint so_jrepath,
- char jvmpath[], jint so_jvmpath,
- char jvmcfg[], jint so_jvmcfg) {
- jboolean jvmpathExists;
-
- /* Compute/set the name of the executable */
- SetExecname(*pargv);
-
- char * jvmtype = NULL;
- int argc = *pargc;
- char **argv = *pargv;
-
- /* Find out where the JRE is that we will be using. */
- if (!GetJREPath(jrepath, so_jrepath, JNI_FALSE) ) {
- JLI_ReportErrorMessage(JRE_ERROR1);
- exit(2);
- }
- JLI_Snprintf(jvmcfg, so_jvmcfg, "%s%slib%sjvm.cfg",
- jrepath, FILESEP, FILESEP);
- /* Find the specified JVM type */
- if (ReadKnownVMs(jvmcfg, JNI_FALSE) < 1) {
- JLI_ReportErrorMessage(CFG_ERROR7);
- exit(1);
- }
-
- jvmpath[0] = '\0';
- jvmtype = CheckJvmType(pargc, pargv, JNI_FALSE);
- if (JLI_StrCmp(jvmtype, "ERROR") == 0) {
- JLI_ReportErrorMessage(CFG_ERROR9);
- exit(4);
- }
-
- if (!GetJVMPath(jrepath, jvmtype, jvmpath, so_jvmpath)) {
- JLI_ReportErrorMessage(CFG_ERROR8, jvmtype, jvmpath);
- exit(4);
- }
-
- /*
- * Mac OS X requires the Cocoa event loop to be run on the "main"
- * thread. Spawn off a new thread to run main() and pass
- * this thread off to the Cocoa event loop.
- */
- MacOSXStartup(argc, argv);
-
- /*
- * we seem to have everything we need
- */
- return;
-}
-
-/*
- * VM choosing is done by the launcher (java.c).
- */
-static jboolean
-GetJVMPath(const char *jrepath, const char *jvmtype,
- char *jvmpath, jint jvmpathsize)
-{
- struct stat s;
-
- if (JLI_StrChr(jvmtype, '/')) {
- JLI_Snprintf(jvmpath, jvmpathsize, "%s/" JVM_DLL, jvmtype);
- } else {
- /*
- * macosx client library is built thin, i386 only.
- * 64 bit client requests must load server library
- */
- JLI_Snprintf(jvmpath, jvmpathsize, "%s/lib/%s/" JVM_DLL, jrepath, jvmtype);
- }
-
- JLI_TraceLauncher("Does `%s' exist ... ", jvmpath);
-
-#ifdef STATIC_BUILD
- return JNI_TRUE;
-#else
- if (stat(jvmpath, &s) == 0) {
- JLI_TraceLauncher("yes.\n");
- return JNI_TRUE;
- } else {
- JLI_TraceLauncher("no.\n");
- return JNI_FALSE;
- }
-#endif
-}
-
-/*
- * Find path to JRE based on .exe's location or registry settings.
- */
-static jboolean
-GetJREPath(char *path, jint pathsize, jboolean speculative)
-{
- char libjava[MAXPATHLEN];
-
- if (GetApplicationHome(path, pathsize)) {
- /* Is JRE co-located with the application? */
-#ifdef STATIC_BUILD
- char jvm_cfg[MAXPATHLEN];
- JLI_Snprintf(jvm_cfg, sizeof(jvm_cfg), "%s/lib/jvm.cfg", path);
- if (access(jvm_cfg, F_OK) == 0) {
- return JNI_TRUE;
- }
-#else
- JLI_Snprintf(libjava, sizeof(libjava), "%s/lib/" JAVA_DLL, path);
- if (access(libjava, F_OK) == 0) {
- return JNI_TRUE;
- }
-#endif
- /* ensure storage for path + /jre + NULL */
- if ((JLI_StrLen(path) + 4 + 1) > (size_t) pathsize) {
- JLI_TraceLauncher("Insufficient space to store JRE path\n");
- return JNI_FALSE;
- }
- /* Does the app ship a private JRE in <apphome>/jre directory? */
- JLI_Snprintf(libjava, sizeof(libjava), "%s/jre/lib/" JAVA_DLL, path);
- if (access(libjava, F_OK) == 0) {
- JLI_StrCat(path, "/jre");
- JLI_TraceLauncher("JRE path is %s\n", path);
- return JNI_TRUE;
- }
- }
-
- /* try to find ourselves instead */
- Dl_info selfInfo;
- dladdr(&GetJREPath, &selfInfo);
-
-#ifdef STATIC_BUILD
- char jvm_cfg[MAXPATHLEN];
- char *p = NULL;
- strncpy(jvm_cfg, selfInfo.dli_fname, MAXPATHLEN);
- p = strrchr(jvm_cfg, '/'); *p = '\0';
- p = strrchr(jvm_cfg, '/');
- if (strcmp(p, "/.") == 0) {
- *p = '\0';
- p = strrchr(jvm_cfg, '/'); *p = '\0';
- }
- else *p = '\0';
- strncpy(path, jvm_cfg, pathsize);
- strncat(jvm_cfg, "/lib/jvm.cfg", MAXPATHLEN);
- if (access(jvm_cfg, F_OK) == 0) {
- return JNI_TRUE;
- }
-#endif
-
- char *realPathToSelf = realpath(selfInfo.dli_fname, path);
- if (realPathToSelf != path) {
- return JNI_FALSE;
- }
-
- size_t pathLen = strlen(realPathToSelf);
- if (pathLen == 0) {
- return JNI_FALSE;
- }
-
- const char lastPathComponent[] = "/lib/jli/libjli.dylib";
- size_t sizeOfLastPathComponent = sizeof(lastPathComponent) - 1;
- if (pathLen < sizeOfLastPathComponent) {
- return JNI_FALSE;
- }
-
- size_t indexOfLastPathComponent = pathLen - sizeOfLastPathComponent;
- if (0 == strncmp(realPathToSelf + indexOfLastPathComponent, lastPathComponent, sizeOfLastPathComponent - 1)) {
- realPathToSelf[indexOfLastPathComponent + 1] = '\0';
- return JNI_TRUE;
- }
-
- if (!speculative)
- JLI_ReportErrorMessage(JRE_ERROR8 JAVA_DLL);
- return JNI_FALSE;
-}
-
-jboolean
-LoadJavaVM(const char *jvmpath, InvocationFunctions *ifn)
-{
- Dl_info dlinfo;
- void *libjvm;
-
- JLI_TraceLauncher("JVM path is %s\n", jvmpath);
-
-#ifndef STATIC_BUILD
- libjvm = dlopen(jvmpath, RTLD_NOW + RTLD_GLOBAL);
-#else
- libjvm = dlopen(NULL, RTLD_FIRST);
-#endif
- if (libjvm == NULL) {
- JLI_ReportErrorMessage(DLL_ERROR1, __LINE__);
- JLI_ReportErrorMessage(DLL_ERROR2, jvmpath, dlerror());
- return JNI_FALSE;
- }
-
- ifn->CreateJavaVM = (CreateJavaVM_t)
- dlsym(libjvm, "JNI_CreateJavaVM");
- if (ifn->CreateJavaVM == NULL) {
- JLI_ReportErrorMessage(DLL_ERROR2, jvmpath, dlerror());
- return JNI_FALSE;
- }
-
- ifn->GetDefaultJavaVMInitArgs = (GetDefaultJavaVMInitArgs_t)
- dlsym(libjvm, "JNI_GetDefaultJavaVMInitArgs");
- if (ifn->GetDefaultJavaVMInitArgs == NULL) {
- JLI_ReportErrorMessage(DLL_ERROR2, jvmpath, dlerror());
- return JNI_FALSE;
- }
-
- ifn->GetCreatedJavaVMs = (GetCreatedJavaVMs_t)
- dlsym(libjvm, "JNI_GetCreatedJavaVMs");
- if (ifn->GetCreatedJavaVMs == NULL) {
- JLI_ReportErrorMessage(DLL_ERROR2, jvmpath, dlerror());
- return JNI_FALSE;
- }
-
- return JNI_TRUE;
-}
-
-/*
- * Compute the name of the executable
- *
- * In order to re-exec securely we need the absolute path of the
- * executable. On Solaris getexecname(3c) may not return an absolute
- * path so we use dladdr to get the filename of the executable and
- * then use realpath to derive an absolute path. From Solaris 9
- * onwards the filename returned in DL_info structure from dladdr is
- * an absolute pathname so technically realpath isn't required.
- * On Linux we read the executable name from /proc/self/exe.
- * As a fallback, and for platforms other than Solaris and Linux,
- * we use FindExecName to compute the executable name.
- */
-const char*
-SetExecname(char **argv)
-{
- char* exec_path = NULL;
- {
- Dl_info dlinfo;
-
-#ifdef STATIC_BUILD
- void *fptr;
- fptr = (void *)&SetExecname;
-#else
- int (*fptr)();
- fptr = (int (*)())dlsym(RTLD_DEFAULT, "main");
-#endif
- if (fptr == NULL) {
- JLI_ReportErrorMessage(DLL_ERROR3, dlerror());
- return JNI_FALSE;
- }
-
- if (dladdr((void*)fptr, &dlinfo)) {
- char *resolved = (char*)JLI_MemAlloc(PATH_MAX+1);
- if (resolved != NULL) {
- exec_path = realpath(dlinfo.dli_fname, resolved);
- if (exec_path == NULL) {
- JLI_MemFree(resolved);
- }
- }
- }
- }
- if (exec_path == NULL) {
- exec_path = FindExecName(argv[0]);
- }
- execname = exec_path;
- return exec_path;
-}
-
-/*
- * BSD's implementation of CounterGet()
- */
-int64_t
-CounterGet()
-{
- struct timeval tv;
- gettimeofday(&tv, NULL);
- return (tv.tv_sec * 1000) + tv.tv_usec;
-}
-
-
-/* --- Splash Screen shared library support --- */
-
-static JavaVM* SetJavaVMValue()
-{
- JavaVM * jvm = NULL;
-
- // The handle is good for both the launcher and the libosxapp.dylib
- void * handle = dlopen(NULL, RTLD_LAZY | RTLD_GLOBAL);
- if (handle) {
- typedef JavaVM* (*JLI_GetJavaVMInstance_t)();
-
- JLI_GetJavaVMInstance_t JLI_GetJavaVMInstance =
- (JLI_GetJavaVMInstance_t)dlsym(handle,
- "JLI_GetJavaVMInstance");
- if (JLI_GetJavaVMInstance) {
- jvm = JLI_GetJavaVMInstance();
- }
-
- if (jvm) {
- typedef void (*OSXAPP_SetJavaVM_t)(JavaVM*);
-
- OSXAPP_SetJavaVM_t OSXAPP_SetJavaVM =
- (OSXAPP_SetJavaVM_t)dlsym(handle, "OSXAPP_SetJavaVM");
- if (OSXAPP_SetJavaVM) {
- OSXAPP_SetJavaVM(jvm);
- } else {
- jvm = NULL;
- }
- }
-
- dlclose(handle);
- }
-
- return jvm;
-}
-
-static const char* SPLASHSCREEN_SO = JNI_LIB_NAME("splashscreen");
-
-static void* hSplashLib = NULL;
-
-void* SplashProcAddress(const char* name) {
- if (!hSplashLib) {
- char jrePath[PATH_MAX];
- if (!GetJREPath(jrePath, sizeof(jrePath), JNI_FALSE)) {
- JLI_ReportErrorMessage(JRE_ERROR1);
- return NULL;
- }
-
- char splashPath[PATH_MAX];
- const int ret = JLI_Snprintf(splashPath, sizeof(splashPath),
- "%s/lib/%s", jrePath, SPLASHSCREEN_SO);
- if (ret >= (int)sizeof(splashPath)) {
- JLI_ReportErrorMessage(JRE_ERROR11);
- return NULL;
- }
- if (ret < 0) {
- JLI_ReportErrorMessage(JRE_ERROR13);
- return NULL;
- }
-
- hSplashLib = dlopen(splashPath, RTLD_LAZY | RTLD_GLOBAL);
- // It's OK if dlopen() fails. The splash screen library binary file
- // might have been stripped out from the JRE image to reduce its size
- // (e.g. on embedded platforms).
-
- if (hSplashLib) {
- if (!SetJavaVMValue()) {
- dlclose(hSplashLib);
- hSplashLib = NULL;
- }
- }
- }
- if (hSplashLib) {
- void* sym = dlsym(hSplashLib, name);
- return sym;
- } else {
- return NULL;
- }
-}
-
-void SplashFreeLibrary() {
- if (hSplashLib) {
- dlclose(hSplashLib);
- hSplashLib = NULL;
- }
-}
-
-/*
- * Block current thread and continue execution in a new thread
- */
-int
-ContinueInNewThread0(int (JNICALL *continuation)(void *), jlong stack_size, void * args) {
- int rslt;
- pthread_t tid;
- pthread_attr_t attr;
- pthread_attr_init(&attr);
- pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
-
- if (stack_size > 0) {
- pthread_attr_setstacksize(&attr, stack_size);
- }
- pthread_attr_setguardsize(&attr, 0); // no pthread guard page on java threads
-
- if (pthread_create(&tid, &attr, (void *(*)(void*))continuation, (void*)args) == 0) {
- void * tmp;
- pthread_join(tid, &tmp);
- rslt = (int)(intptr_t)tmp;
- } else {
- /*
- * Continue execution in current thread if for some reason (e.g. out of
- * memory/LWP) a new thread can't be created. This will likely fail
- * later in continuation as JNI_CreateJavaVM needs to create quite a
- * few new threads, anyway, just give it a try..
- */
- rslt = continuation(args);
- }
-
- pthread_attr_destroy(&attr);
- return rslt;
-}
-
-void SetJavaLauncherPlatformProps() {
- /* Linux only */
-}
-
-static JavaVM* jvmInstance = NULL;
-static jboolean sameThread = JNI_FALSE; /* start VM in current thread */
-
-/*
- * Note there is a callback on this function from the splashscreen logic,
- * this as well SetJavaVMValue() needs to be simplified.
- */
-JavaVM*
-JLI_GetJavaVMInstance()
-{
- return jvmInstance;
-}
-
-void
-RegisterThread()
-{
- // stubbed out for windows and *nixes.
-}
-
-static void
-SetXDockArgForAWT(const char *arg)
-{
- char envVar[80];
- if (strstr(arg, "-Xdock:name=") == arg) {
- /*
- * The APP_NAME_<pid> environment variable is used to pass
- * an application name as specified with the -Xdock:name command
- * line option from Java launcher code to the AWT code in order
- * to assign this name to the app's dock tile on the Mac.
- * The _<pid> part is added to avoid collisions with child processes.
- *
- * WARNING: This environment variable is an implementation detail and
- * isn't meant for use outside of the core platform. The mechanism for
- * passing this information from Java launcher to other modules may
- * change drastically between update release, and it may even be
- * removed or replaced with another mechanism.
- *
- * NOTE: It is used by SWT, and JavaFX.
- */
- snprintf(envVar, sizeof(envVar), "APP_NAME_%d", getpid());
- setenv(envVar, (arg + 12), 1);
- }
-
- if (strstr(arg, "-Xdock:icon=") == arg) {
- /*
- * The APP_ICON_<pid> environment variable is used to pass
- * an application icon as specified with the -Xdock:icon command
- * line option from Java launcher code to the AWT code in order
- * to assign this icon to the app's dock tile on the Mac.
- * The _<pid> part is added to avoid collisions with child processes.
- *
- * WARNING: This environment variable is an implementation detail and
- * isn't meant for use outside of the core platform. The mechanism for
- * passing this information from Java launcher to other modules may
- * change drastically between update release, and it may even be
- * removed or replaced with another mechanism.
- *
- * NOTE: It is used by SWT, and JavaFX.
- */
- snprintf(envVar, sizeof(envVar), "APP_ICON_%d", getpid());
- setenv(envVar, (arg + 12), 1);
- }
-}
-
-static void
-SetMainClassForAWT(JNIEnv *env, jclass mainClass) {
- jclass classClass = NULL;
- NULL_CHECK(classClass = FindBootStrapClass(env, "java/lang/Class"));
-
- jmethodID getCanonicalNameMID = NULL;
- NULL_CHECK(getCanonicalNameMID = (*env)->GetMethodID(env, classClass, "getCanonicalName", "()Ljava/lang/String;"));
-
- jstring mainClassString = (*env)->CallObjectMethod(env, mainClass, getCanonicalNameMID);
- if ((*env)->ExceptionCheck(env)) {
- /*
- * Clears all errors caused by getCanonicalName() on the mainclass and
- * leaves the JAVA_MAIN_CLASS__<pid> empty.
- */
- (*env)->ExceptionClear(env);
- return;
- }
-
- const char *mainClassName = NULL;
- NULL_CHECK(mainClassName = (*env)->GetStringUTFChars(env, mainClassString, NULL));
-
- char envVar[80];
- /*
- * The JAVA_MAIN_CLASS_<pid> environment variable is used to pass
- * the name of a Java class whose main() method is invoked by
- * the Java launcher code to start the application, to the AWT code
- * in order to assign the name to the Apple menu bar when the app
- * is active on the Mac.
- * The _<pid> part is added to avoid collisions with child processes.
- *
- * WARNING: This environment variable is an implementation detail and
- * isn't meant for use outside of the core platform. The mechanism for
- * passing this information from Java launcher to other modules may
- * change drastically between update release, and it may even be
- * removed or replaced with another mechanism.
- *
- * NOTE: It is used by SWT, and JavaFX.
- */
- snprintf(envVar, sizeof(envVar), "JAVA_MAIN_CLASS_%d", getpid());
- setenv(envVar, mainClassName, 1);
-
- (*env)->ReleaseStringUTFChars(env, mainClassString, mainClassName);
-}
-
-void
-SetXStartOnFirstThreadArg()
-{
- // XXX: BEGIN HACK
- // short circuit hack for <https://bugs.eclipse.org/bugs/show_bug.cgi?id=211625>
- // need a way to get AWT/Swing apps launched when spawned from Eclipse,
- // which currently has no UI to not pass the -XstartOnFirstThread option
- if (getenv("HACK_IGNORE_START_ON_FIRST_THREAD") != NULL) return;
- // XXX: END HACK
-
- sameThread = JNI_TRUE;
- // Set a variable that tells us we started on the main thread.
- // This is used by the AWT during startup. (See LWCToolkit.m)
- char envVar[80];
- snprintf(envVar, sizeof(envVar), "JAVA_STARTED_ON_FIRST_THREAD_%d", getpid());
- setenv(envVar, "1", 1);
-}
-
-// MacOSX we may continue in the same thread
-int
-JVMInit(InvocationFunctions* ifn, jlong threadStackSize,
- int argc, char **argv,
- int mode, char *what, int ret) {
- if (sameThread) {
- JLI_TraceLauncher("In same thread\n");
- // need to block this thread against the main thread
- // so signals get caught correctly
- __block int rslt = 0;
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- {
- NSBlockOperation *op = [NSBlockOperation blockOperationWithBlock: ^{
- JavaMainArgs args;
- args.argc = argc;
- args.argv = argv;
- args.mode = mode;
- args.what = what;
- args.ifn = *ifn;
- rslt = JavaMain(&args);
- }];
-
- /*
- * We cannot use dispatch_sync here, because it blocks the main dispatch queue.
- * Using the main NSRunLoop allows the dispatch queue to run properly once
- * SWT (or whatever toolkit this is needed for) kicks off it's own NSRunLoop
- * and starts running.
- */
- [op performSelectorOnMainThread:@selector(start) withObject:nil waitUntilDone:YES];
- }
- [pool drain];
- return rslt;
- } else {
- return ContinueInNewThread(ifn, threadStackSize, argc, argv, mode, what, ret);
- }
-}
-
-/*
- * Note the jvmInstance must be initialized first before entering into
- * ShowSplashScreen, as there is a callback into the JLI_GetJavaVMInstance.
- */
-void PostJVMInit(JNIEnv *env, jclass mainClass, JavaVM *vm) {
- jvmInstance = vm;
- SetMainClassForAWT(env, mainClass);
- CHECK_EXCEPTION_RETURN();
- ShowSplashScreen();
-}
-
-jboolean
-ProcessPlatformOption(const char* arg)
-{
- if (JLI_StrCmp(arg, "-XstartOnFirstThread") == 0) {
- SetXStartOnFirstThreadArg();
- return JNI_TRUE;
- } else if (JLI_StrCCmp(arg, "-Xdock:") == 0) {
- SetXDockArgForAWT(arg);
- return JNI_TRUE;
- }
- // arguments we know not
- return JNI_FALSE;
-}
--- a/src/java.base/macosx/native/libjli/java_md_macosx.h Sat Sep 22 20:31:45 2018 -0700
+++ b/src/java.base/macosx/native/libjli/java_md_macosx.h Mon Sep 24 10:59:26 2018 -0700
@@ -38,7 +38,6 @@
* A collection of useful strings. One should think of these as #define
* entries, but actual strings can be more efficient (with many compilers).
*/
-static const char *system_dir = PACKAGE_PATH "/openjdk7";
static const char *user_dir = "/java";
#include <dlfcn.h>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/macosx/native/libjli/java_md_macosx.m Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,943 @@
+/*
+ * Copyright (c) 2012, 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.
+ */
+
+#include "java.h"
+#include "jvm_md.h"
+#include <dirent.h>
+#include <dlfcn.h>
+#include <fcntl.h>
+#include <inttypes.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/time.h>
+
+#include "manifest_info.h"
+
+/* Support Cocoa event loop on the main thread */
+#include <Cocoa/Cocoa.h>
+#include <objc/objc-runtime.h>
+#include <objc/objc-auto.h>
+
+#include <errno.h>
+#include <spawn.h>
+
+struct NSAppArgs {
+ int argc;
+ char **argv;
+};
+
+#define JVM_DLL "libjvm.dylib"
+#define JAVA_DLL "libjava.dylib"
+/* FALLBACK avoids naming conflicts with system libraries
+ * (eg, ImageIO's libJPEG.dylib) */
+#define LD_LIBRARY_PATH "DYLD_FALLBACK_LIBRARY_PATH"
+
+/*
+ * If a processor / os combination has the ability to run binaries of
+ * two data models and cohabitation of jre/jdk bits with both data
+ * models is supported, then DUAL_MODE is defined. MacOSX is a hybrid
+ * system in that, the universal library can contain all types of libraries
+ * 32/64 and client/server, thus the spawn is capable of linking with the
+ * appropriate library as requested.
+ *
+ * Notes:
+ * 1. VM. DUAL_MODE is disabled, and not supported, however, it is left here in
+ * for experimentation and perhaps enable it in the future.
+ * 2. At the time of this writing, the universal library contains only
+ * a server 64-bit server JVM.
+ * 3. "-client" command line option is supported merely as a command line flag,
+ * for, compatibility reasons, however, a server VM will be launched.
+ */
+
+/*
+ * Flowchart of launcher execs and options processing on unix
+ *
+ * The selection of the proper vm shared library to open depends on
+ * several classes of command line options, including vm "flavor"
+ * options (-client, -server) and the data model options, -d32 and
+ * -d64, as well as a version specification which may have come from
+ * the command line or from the manifest of an executable jar file.
+ * The vm selection options are not passed to the running
+ * virtual machine; they must be screened out by the launcher.
+ *
+ * The version specification (if any) is processed first by the
+ * platform independent routine SelectVersion. This may result in
+ * the exec of the specified launcher version.
+ *
+ * Now, in most cases,the launcher will dlopen the target libjvm.so. All
+ * required libraries are loaded by the runtime linker, using the known paths
+ * baked into the shared libraries at compile time. Therefore,
+ * in most cases, the launcher will only exec, if the data models are
+ * mismatched, and will not set any environment variables, regardless of the
+ * data models.
+ *
+ *
+ *
+ * Main
+ * (incoming argv)
+ * |
+ * \|/
+ * CreateExecutionEnvironment
+ * (determines desired data model)
+ * |
+ * |
+ * \|/
+ * Have Desired Model ? --> NO --> Is Dual-Mode ? --> NO --> Exit(with error)
+ * | |
+ * | |
+ * | \|/
+ * | YES
+ * | |
+ * | |
+ * | \|/
+ * | CheckJvmType
+ * | (removes -client, -server etc.)
+ * | |
+ * | |
+ * \|/ \|/
+ * YES Find the desired executable/library
+ * | |
+ * | |
+ * \|/ \|/
+ * CheckJvmType POINT A
+ * (removes -client, -server, etc.)
+ * |
+ * |
+ * \|/
+ * TranslateDashJArgs...
+ * (Prepare to pass args to vm)
+ * |
+ * |
+ * \|/
+ * ParseArguments
+ * (processes version options,
+ * creates argument list for vm,
+ * etc.)
+ * |
+ * |
+ * \|/
+ * POINT A
+ * |
+ * |
+ * \|/
+ * Path is desired JRE ? YES --> Continue
+ * NO
+ * |
+ * |
+ * \|/
+ * Paths have well known
+ * jvm paths ? --> NO --> Continue
+ * YES
+ * |
+ * |
+ * \|/
+ * Does libjvm.so exist
+ * in any of them ? --> NO --> Continue
+ * YES
+ * |
+ * |
+ * \|/
+ * Re-exec / Spawn
+ * |
+ * |
+ * \|/
+ * Main
+ */
+
+/* Store the name of the executable once computed */
+static char *execname = NULL;
+
+/*
+ * execname accessor from other parts of platform dependent logic
+ */
+const char *
+GetExecName() {
+ return execname;
+}
+
+/*
+ * Exports the JNI interface from libjli
+ *
+ * This allows client code to link against the .jre/.jdk bundles,
+ * and not worry about trying to pick a HotSpot to link against.
+ *
+ * Switching architectures is unsupported, since client code has
+ * made that choice before the JVM was requested.
+ */
+
+static InvocationFunctions *sExportedJNIFunctions = NULL;
+static char *sPreferredJVMType = NULL;
+
+static InvocationFunctions *GetExportedJNIFunctions() {
+ if (sExportedJNIFunctions != NULL) return sExportedJNIFunctions;
+
+ char jrePath[PATH_MAX];
+ jboolean gotJREPath = GetJREPath(jrePath, sizeof(jrePath), JNI_FALSE);
+ if (!gotJREPath) {
+ JLI_ReportErrorMessage("Failed to GetJREPath()");
+ return NULL;
+ }
+
+ char *preferredJVM = sPreferredJVMType;
+ if (preferredJVM == NULL) {
+#if defined(__i386__)
+ preferredJVM = "client";
+#elif defined(__x86_64__)
+ preferredJVM = "server";
+#else
+#error "Unknown architecture - needs definition"
+#endif
+ }
+
+ char jvmPath[PATH_MAX];
+ jboolean gotJVMPath = GetJVMPath(jrePath, preferredJVM, jvmPath, sizeof(jvmPath));
+ if (!gotJVMPath) {
+ JLI_ReportErrorMessage("Failed to GetJVMPath()");
+ return NULL;
+ }
+
+ InvocationFunctions *fxns = malloc(sizeof(InvocationFunctions));
+ jboolean vmLoaded = LoadJavaVM(jvmPath, fxns);
+ if (!vmLoaded) {
+ JLI_ReportErrorMessage("Failed to LoadJavaVM()");
+ return NULL;
+ }
+
+ return sExportedJNIFunctions = fxns;
+}
+
+#ifndef STATIC_BUILD
+
+JNIEXPORT jint JNICALL
+JNI_GetDefaultJavaVMInitArgs(void *args) {
+ InvocationFunctions *ifn = GetExportedJNIFunctions();
+ if (ifn == NULL) return JNI_ERR;
+ return ifn->GetDefaultJavaVMInitArgs(args);
+}
+
+JNIEXPORT jint JNICALL
+JNI_CreateJavaVM(JavaVM **pvm, void **penv, void *args) {
+ InvocationFunctions *ifn = GetExportedJNIFunctions();
+ if (ifn == NULL) return JNI_ERR;
+ return ifn->CreateJavaVM(pvm, penv, args);
+}
+
+JNIEXPORT jint JNICALL
+JNI_GetCreatedJavaVMs(JavaVM **vmBuf, jsize bufLen, jsize *nVMs) {
+ InvocationFunctions *ifn = GetExportedJNIFunctions();
+ if (ifn == NULL) return JNI_ERR;
+ return ifn->GetCreatedJavaVMs(vmBuf, bufLen, nVMs);
+}
+#endif
+
+/*
+ * Allow JLI-aware launchers to specify a client/server preference
+ */
+JNIEXPORT void JNICALL
+JLI_SetPreferredJVM(const char *prefJVM) {
+ if (sPreferredJVMType != NULL) {
+ free(sPreferredJVMType);
+ sPreferredJVMType = NULL;
+ }
+
+ if (prefJVM == NULL) return;
+ sPreferredJVMType = strdup(prefJVM);
+}
+
+static BOOL awtLoaded = NO;
+static pthread_mutex_t awtLoaded_mutex = PTHREAD_MUTEX_INITIALIZER;
+static pthread_cond_t awtLoaded_cv = PTHREAD_COND_INITIALIZER;
+
+JNIEXPORT void JNICALL
+JLI_NotifyAWTLoaded()
+{
+ pthread_mutex_lock(&awtLoaded_mutex);
+ awtLoaded = YES;
+ pthread_cond_signal(&awtLoaded_cv);
+ pthread_mutex_unlock(&awtLoaded_mutex);
+}
+
+static int (*main_fptr)(int argc, char **argv) = NULL;
+
+/*
+ * Unwrap the arguments and re-run main()
+ */
+static void *apple_main (void *arg)
+{
+ if (main_fptr == NULL) {
+#ifdef STATIC_BUILD
+ extern int main(int argc, char **argv);
+ main_fptr = &main;
+#else
+ main_fptr = (int (*)())dlsym(RTLD_DEFAULT, "main");
+#endif
+ if (main_fptr == NULL) {
+ JLI_ReportErrorMessageSys("error locating main entrypoint\n");
+ exit(1);
+ }
+ }
+
+ struct NSAppArgs *args = (struct NSAppArgs *) arg;
+ exit(main_fptr(args->argc, args->argv));
+}
+
+static void dummyTimer(CFRunLoopTimerRef timer, void *info) {}
+
+static void ParkEventLoop() {
+ // RunLoop needs at least one source, and 1e20 is pretty far into the future
+ CFRunLoopTimerRef t = CFRunLoopTimerCreate(kCFAllocatorDefault, 1.0e20, 0.0, 0, 0, dummyTimer, NULL);
+ CFRunLoopAddTimer(CFRunLoopGetCurrent(), t, kCFRunLoopDefaultMode);
+ CFRelease(t);
+
+ // Park this thread in the main run loop.
+ int32_t result;
+ do {
+ result = CFRunLoopRunInMode(kCFRunLoopDefaultMode, 1.0e20, false);
+ } while (result != kCFRunLoopRunFinished);
+}
+
+/*
+ * Mac OS X mandates that the GUI event loop run on very first thread of
+ * an application. This requires that we re-call Java's main() on a new
+ * thread, reserving the 'main' thread for Cocoa.
+ */
+static void MacOSXStartup(int argc, char *argv[]) {
+ // Thread already started?
+ static jboolean started = false;
+ if (started) {
+ return;
+ }
+ started = true;
+
+ // Hand off arguments
+ struct NSAppArgs args;
+ args.argc = argc;
+ args.argv = argv;
+
+ // Fire up the main thread
+ pthread_t main_thr;
+ if (pthread_create(&main_thr, NULL, &apple_main, &args) != 0) {
+ JLI_ReportErrorMessageSys("Could not create main thread: %s\n", strerror(errno));
+ exit(1);
+ }
+ if (pthread_detach(main_thr)) {
+ JLI_ReportErrorMessageSys("pthread_detach() failed: %s\n", strerror(errno));
+ exit(1);
+ }
+
+ ParkEventLoop();
+}
+
+void
+CreateExecutionEnvironment(int *pargc, char ***pargv,
+ char jrepath[], jint so_jrepath,
+ char jvmpath[], jint so_jvmpath,
+ char jvmcfg[], jint so_jvmcfg) {
+ jboolean jvmpathExists;
+
+ /* Compute/set the name of the executable */
+ SetExecname(*pargv);
+
+ char * jvmtype = NULL;
+ int argc = *pargc;
+ char **argv = *pargv;
+
+ /* Find out where the JRE is that we will be using. */
+ if (!GetJREPath(jrepath, so_jrepath, JNI_FALSE) ) {
+ JLI_ReportErrorMessage(JRE_ERROR1);
+ exit(2);
+ }
+ JLI_Snprintf(jvmcfg, so_jvmcfg, "%s%slib%sjvm.cfg",
+ jrepath, FILESEP, FILESEP);
+ /* Find the specified JVM type */
+ if (ReadKnownVMs(jvmcfg, JNI_FALSE) < 1) {
+ JLI_ReportErrorMessage(CFG_ERROR7);
+ exit(1);
+ }
+
+ jvmpath[0] = '\0';
+ jvmtype = CheckJvmType(pargc, pargv, JNI_FALSE);
+ if (JLI_StrCmp(jvmtype, "ERROR") == 0) {
+ JLI_ReportErrorMessage(CFG_ERROR9);
+ exit(4);
+ }
+
+ if (!GetJVMPath(jrepath, jvmtype, jvmpath, so_jvmpath)) {
+ JLI_ReportErrorMessage(CFG_ERROR8, jvmtype, jvmpath);
+ exit(4);
+ }
+
+ /*
+ * Mac OS X requires the Cocoa event loop to be run on the "main"
+ * thread. Spawn off a new thread to run main() and pass
+ * this thread off to the Cocoa event loop.
+ */
+ MacOSXStartup(argc, argv);
+
+ /*
+ * we seem to have everything we need
+ */
+ return;
+}
+
+/*
+ * VM choosing is done by the launcher (java.c).
+ */
+static jboolean
+GetJVMPath(const char *jrepath, const char *jvmtype,
+ char *jvmpath, jint jvmpathsize)
+{
+ struct stat s;
+
+ if (JLI_StrChr(jvmtype, '/')) {
+ JLI_Snprintf(jvmpath, jvmpathsize, "%s/" JVM_DLL, jvmtype);
+ } else {
+ /*
+ * macosx client library is built thin, i386 only.
+ * 64 bit client requests must load server library
+ */
+ JLI_Snprintf(jvmpath, jvmpathsize, "%s/lib/%s/" JVM_DLL, jrepath, jvmtype);
+ }
+
+ JLI_TraceLauncher("Does `%s' exist ... ", jvmpath);
+
+#ifdef STATIC_BUILD
+ return JNI_TRUE;
+#else
+ if (stat(jvmpath, &s) == 0) {
+ JLI_TraceLauncher("yes.\n");
+ return JNI_TRUE;
+ } else {
+ JLI_TraceLauncher("no.\n");
+ return JNI_FALSE;
+ }
+#endif
+}
+
+/*
+ * Find path to JRE based on .exe's location or registry settings.
+ */
+static jboolean
+GetJREPath(char *path, jint pathsize, jboolean speculative)
+{
+ char libjava[MAXPATHLEN];
+
+ if (GetApplicationHome(path, pathsize)) {
+ /* Is JRE co-located with the application? */
+#ifdef STATIC_BUILD
+ char jvm_cfg[MAXPATHLEN];
+ JLI_Snprintf(jvm_cfg, sizeof(jvm_cfg), "%s/lib/jvm.cfg", path);
+ if (access(jvm_cfg, F_OK) == 0) {
+ return JNI_TRUE;
+ }
+#else
+ JLI_Snprintf(libjava, sizeof(libjava), "%s/lib/" JAVA_DLL, path);
+ if (access(libjava, F_OK) == 0) {
+ return JNI_TRUE;
+ }
+#endif
+ /* ensure storage for path + /jre + NULL */
+ if ((JLI_StrLen(path) + 4 + 1) > (size_t) pathsize) {
+ JLI_TraceLauncher("Insufficient space to store JRE path\n");
+ return JNI_FALSE;
+ }
+ /* Does the app ship a private JRE in <apphome>/jre directory? */
+ JLI_Snprintf(libjava, sizeof(libjava), "%s/jre/lib/" JAVA_DLL, path);
+ if (access(libjava, F_OK) == 0) {
+ JLI_StrCat(path, "/jre");
+ JLI_TraceLauncher("JRE path is %s\n", path);
+ return JNI_TRUE;
+ }
+ }
+
+ /* try to find ourselves instead */
+ Dl_info selfInfo;
+ dladdr(&GetJREPath, &selfInfo);
+
+#ifdef STATIC_BUILD
+ char jvm_cfg[MAXPATHLEN];
+ char *p = NULL;
+ strncpy(jvm_cfg, selfInfo.dli_fname, MAXPATHLEN);
+ p = strrchr(jvm_cfg, '/'); *p = '\0';
+ p = strrchr(jvm_cfg, '/');
+ if (strcmp(p, "/.") == 0) {
+ *p = '\0';
+ p = strrchr(jvm_cfg, '/'); *p = '\0';
+ }
+ else *p = '\0';
+ strncpy(path, jvm_cfg, pathsize);
+ strncat(jvm_cfg, "/lib/jvm.cfg", MAXPATHLEN);
+ if (access(jvm_cfg, F_OK) == 0) {
+ return JNI_TRUE;
+ }
+#endif
+
+ char *realPathToSelf = realpath(selfInfo.dli_fname, path);
+ if (realPathToSelf != path) {
+ return JNI_FALSE;
+ }
+
+ size_t pathLen = strlen(realPathToSelf);
+ if (pathLen == 0) {
+ return JNI_FALSE;
+ }
+
+ const char lastPathComponent[] = "/lib/jli/libjli.dylib";
+ size_t sizeOfLastPathComponent = sizeof(lastPathComponent) - 1;
+ if (pathLen < sizeOfLastPathComponent) {
+ return JNI_FALSE;
+ }
+
+ size_t indexOfLastPathComponent = pathLen - sizeOfLastPathComponent;
+ if (0 == strncmp(realPathToSelf + indexOfLastPathComponent, lastPathComponent, sizeOfLastPathComponent - 1)) {
+ realPathToSelf[indexOfLastPathComponent + 1] = '\0';
+ return JNI_TRUE;
+ }
+
+ if (!speculative)
+ JLI_ReportErrorMessage(JRE_ERROR8 JAVA_DLL);
+ return JNI_FALSE;
+}
+
+jboolean
+LoadJavaVM(const char *jvmpath, InvocationFunctions *ifn)
+{
+ Dl_info dlinfo;
+ void *libjvm;
+
+ JLI_TraceLauncher("JVM path is %s\n", jvmpath);
+
+#ifndef STATIC_BUILD
+ libjvm = dlopen(jvmpath, RTLD_NOW + RTLD_GLOBAL);
+#else
+ libjvm = dlopen(NULL, RTLD_FIRST);
+#endif
+ if (libjvm == NULL) {
+ JLI_ReportErrorMessage(DLL_ERROR1, __LINE__);
+ JLI_ReportErrorMessage(DLL_ERROR2, jvmpath, dlerror());
+ return JNI_FALSE;
+ }
+
+ ifn->CreateJavaVM = (CreateJavaVM_t)
+ dlsym(libjvm, "JNI_CreateJavaVM");
+ if (ifn->CreateJavaVM == NULL) {
+ JLI_ReportErrorMessage(DLL_ERROR2, jvmpath, dlerror());
+ return JNI_FALSE;
+ }
+
+ ifn->GetDefaultJavaVMInitArgs = (GetDefaultJavaVMInitArgs_t)
+ dlsym(libjvm, "JNI_GetDefaultJavaVMInitArgs");
+ if (ifn->GetDefaultJavaVMInitArgs == NULL) {
+ JLI_ReportErrorMessage(DLL_ERROR2, jvmpath, dlerror());
+ return JNI_FALSE;
+ }
+
+ ifn->GetCreatedJavaVMs = (GetCreatedJavaVMs_t)
+ dlsym(libjvm, "JNI_GetCreatedJavaVMs");
+ if (ifn->GetCreatedJavaVMs == NULL) {
+ JLI_ReportErrorMessage(DLL_ERROR2, jvmpath, dlerror());
+ return JNI_FALSE;
+ }
+
+ return JNI_TRUE;
+}
+
+/*
+ * Compute the name of the executable
+ *
+ * In order to re-exec securely we need the absolute path of the
+ * executable. On Solaris getexecname(3c) may not return an absolute
+ * path so we use dladdr to get the filename of the executable and
+ * then use realpath to derive an absolute path. From Solaris 9
+ * onwards the filename returned in DL_info structure from dladdr is
+ * an absolute pathname so technically realpath isn't required.
+ * On Linux we read the executable name from /proc/self/exe.
+ * As a fallback, and for platforms other than Solaris and Linux,
+ * we use FindExecName to compute the executable name.
+ */
+const char*
+SetExecname(char **argv)
+{
+ char* exec_path = NULL;
+ {
+ Dl_info dlinfo;
+
+#ifdef STATIC_BUILD
+ void *fptr;
+ fptr = (void *)&SetExecname;
+#else
+ int (*fptr)();
+ fptr = (int (*)())dlsym(RTLD_DEFAULT, "main");
+#endif
+ if (fptr == NULL) {
+ JLI_ReportErrorMessage(DLL_ERROR3, dlerror());
+ return JNI_FALSE;
+ }
+
+ if (dladdr((void*)fptr, &dlinfo)) {
+ char *resolved = (char*)JLI_MemAlloc(PATH_MAX+1);
+ if (resolved != NULL) {
+ exec_path = realpath(dlinfo.dli_fname, resolved);
+ if (exec_path == NULL) {
+ JLI_MemFree(resolved);
+ }
+ }
+ }
+ }
+ if (exec_path == NULL) {
+ exec_path = FindExecName(argv[0]);
+ }
+ execname = exec_path;
+ return exec_path;
+}
+
+/*
+ * BSD's implementation of CounterGet()
+ */
+int64_t
+CounterGet()
+{
+ struct timeval tv;
+ gettimeofday(&tv, NULL);
+ return (tv.tv_sec * 1000) + tv.tv_usec;
+}
+
+
+/* --- Splash Screen shared library support --- */
+
+static JavaVM* SetJavaVMValue()
+{
+ JavaVM * jvm = NULL;
+
+ // The handle is good for both the launcher and the libosxapp.dylib
+ void * handle = dlopen(NULL, RTLD_LAZY | RTLD_GLOBAL);
+ if (handle) {
+ typedef JavaVM* (*JLI_GetJavaVMInstance_t)();
+
+ JLI_GetJavaVMInstance_t JLI_GetJavaVMInstance =
+ (JLI_GetJavaVMInstance_t)dlsym(handle,
+ "JLI_GetJavaVMInstance");
+ if (JLI_GetJavaVMInstance) {
+ jvm = JLI_GetJavaVMInstance();
+ }
+
+ if (jvm) {
+ typedef void (*OSXAPP_SetJavaVM_t)(JavaVM*);
+
+ OSXAPP_SetJavaVM_t OSXAPP_SetJavaVM =
+ (OSXAPP_SetJavaVM_t)dlsym(handle, "OSXAPP_SetJavaVM");
+ if (OSXAPP_SetJavaVM) {
+ OSXAPP_SetJavaVM(jvm);
+ } else {
+ jvm = NULL;
+ }
+ }
+
+ dlclose(handle);
+ }
+
+ return jvm;
+}
+
+static const char* SPLASHSCREEN_SO = JNI_LIB_NAME("splashscreen");
+
+static void* hSplashLib = NULL;
+
+void* SplashProcAddress(const char* name) {
+ if (!hSplashLib) {
+ char jrePath[PATH_MAX];
+ if (!GetJREPath(jrePath, sizeof(jrePath), JNI_FALSE)) {
+ JLI_ReportErrorMessage(JRE_ERROR1);
+ return NULL;
+ }
+
+ char splashPath[PATH_MAX];
+ const int ret = JLI_Snprintf(splashPath, sizeof(splashPath),
+ "%s/lib/%s", jrePath, SPLASHSCREEN_SO);
+ if (ret >= (int)sizeof(splashPath)) {
+ JLI_ReportErrorMessage(JRE_ERROR11);
+ return NULL;
+ }
+ if (ret < 0) {
+ JLI_ReportErrorMessage(JRE_ERROR13);
+ return NULL;
+ }
+
+ hSplashLib = dlopen(splashPath, RTLD_LAZY | RTLD_GLOBAL);
+ // It's OK if dlopen() fails. The splash screen library binary file
+ // might have been stripped out from the JRE image to reduce its size
+ // (e.g. on embedded platforms).
+
+ if (hSplashLib) {
+ if (!SetJavaVMValue()) {
+ dlclose(hSplashLib);
+ hSplashLib = NULL;
+ }
+ }
+ }
+ if (hSplashLib) {
+ void* sym = dlsym(hSplashLib, name);
+ return sym;
+ } else {
+ return NULL;
+ }
+}
+
+void SplashFreeLibrary() {
+ if (hSplashLib) {
+ dlclose(hSplashLib);
+ hSplashLib = NULL;
+ }
+}
+
+/*
+ * Block current thread and continue execution in a new thread
+ */
+int
+ContinueInNewThread0(int (JNICALL *continuation)(void *), jlong stack_size, void * args) {
+ int rslt;
+ pthread_t tid;
+ pthread_attr_t attr;
+ pthread_attr_init(&attr);
+ pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+
+ if (stack_size > 0) {
+ pthread_attr_setstacksize(&attr, stack_size);
+ }
+ pthread_attr_setguardsize(&attr, 0); // no pthread guard page on java threads
+
+ if (pthread_create(&tid, &attr, (void *(*)(void*))continuation, (void*)args) == 0) {
+ void * tmp;
+ pthread_join(tid, &tmp);
+ rslt = (int)(intptr_t)tmp;
+ } else {
+ /*
+ * Continue execution in current thread if for some reason (e.g. out of
+ * memory/LWP) a new thread can't be created. This will likely fail
+ * later in continuation as JNI_CreateJavaVM needs to create quite a
+ * few new threads, anyway, just give it a try..
+ */
+ rslt = continuation(args);
+ }
+
+ pthread_attr_destroy(&attr);
+ return rslt;
+}
+
+void SetJavaLauncherPlatformProps() {
+ /* Linux only */
+}
+
+static JavaVM* jvmInstance = NULL;
+static jboolean sameThread = JNI_FALSE; /* start VM in current thread */
+
+/*
+ * Note there is a callback on this function from the splashscreen logic,
+ * this as well SetJavaVMValue() needs to be simplified.
+ */
+JavaVM*
+JLI_GetJavaVMInstance()
+{
+ return jvmInstance;
+}
+
+void
+RegisterThread()
+{
+ // stubbed out for windows and *nixes.
+}
+
+static void
+SetXDockArgForAWT(const char *arg)
+{
+ char envVar[80];
+ if (strstr(arg, "-Xdock:name=") == arg) {
+ /*
+ * The APP_NAME_<pid> environment variable is used to pass
+ * an application name as specified with the -Xdock:name command
+ * line option from Java launcher code to the AWT code in order
+ * to assign this name to the app's dock tile on the Mac.
+ * The _<pid> part is added to avoid collisions with child processes.
+ *
+ * WARNING: This environment variable is an implementation detail and
+ * isn't meant for use outside of the core platform. The mechanism for
+ * passing this information from Java launcher to other modules may
+ * change drastically between update release, and it may even be
+ * removed or replaced with another mechanism.
+ *
+ * NOTE: It is used by SWT, and JavaFX.
+ */
+ snprintf(envVar, sizeof(envVar), "APP_NAME_%d", getpid());
+ setenv(envVar, (arg + 12), 1);
+ }
+
+ if (strstr(arg, "-Xdock:icon=") == arg) {
+ /*
+ * The APP_ICON_<pid> environment variable is used to pass
+ * an application icon as specified with the -Xdock:icon command
+ * line option from Java launcher code to the AWT code in order
+ * to assign this icon to the app's dock tile on the Mac.
+ * The _<pid> part is added to avoid collisions with child processes.
+ *
+ * WARNING: This environment variable is an implementation detail and
+ * isn't meant for use outside of the core platform. The mechanism for
+ * passing this information from Java launcher to other modules may
+ * change drastically between update release, and it may even be
+ * removed or replaced with another mechanism.
+ *
+ * NOTE: It is used by SWT, and JavaFX.
+ */
+ snprintf(envVar, sizeof(envVar), "APP_ICON_%d", getpid());
+ setenv(envVar, (arg + 12), 1);
+ }
+}
+
+static void
+SetMainClassForAWT(JNIEnv *env, jclass mainClass) {
+ jclass classClass = NULL;
+ NULL_CHECK(classClass = FindBootStrapClass(env, "java/lang/Class"));
+
+ jmethodID getCanonicalNameMID = NULL;
+ NULL_CHECK(getCanonicalNameMID = (*env)->GetMethodID(env, classClass, "getCanonicalName", "()Ljava/lang/String;"));
+
+ jstring mainClassString = (*env)->CallObjectMethod(env, mainClass, getCanonicalNameMID);
+ if ((*env)->ExceptionCheck(env)) {
+ /*
+ * Clears all errors caused by getCanonicalName() on the mainclass and
+ * leaves the JAVA_MAIN_CLASS__<pid> empty.
+ */
+ (*env)->ExceptionClear(env);
+ return;
+ }
+
+ const char *mainClassName = NULL;
+ NULL_CHECK(mainClassName = (*env)->GetStringUTFChars(env, mainClassString, NULL));
+
+ char envVar[80];
+ /*
+ * The JAVA_MAIN_CLASS_<pid> environment variable is used to pass
+ * the name of a Java class whose main() method is invoked by
+ * the Java launcher code to start the application, to the AWT code
+ * in order to assign the name to the Apple menu bar when the app
+ * is active on the Mac.
+ * The _<pid> part is added to avoid collisions with child processes.
+ *
+ * WARNING: This environment variable is an implementation detail and
+ * isn't meant for use outside of the core platform. The mechanism for
+ * passing this information from Java launcher to other modules may
+ * change drastically between update release, and it may even be
+ * removed or replaced with another mechanism.
+ *
+ * NOTE: It is used by SWT, and JavaFX.
+ */
+ snprintf(envVar, sizeof(envVar), "JAVA_MAIN_CLASS_%d", getpid());
+ setenv(envVar, mainClassName, 1);
+
+ (*env)->ReleaseStringUTFChars(env, mainClassString, mainClassName);
+}
+
+void
+SetXStartOnFirstThreadArg()
+{
+ // XXX: BEGIN HACK
+ // short circuit hack for <https://bugs.eclipse.org/bugs/show_bug.cgi?id=211625>
+ // need a way to get AWT/Swing apps launched when spawned from Eclipse,
+ // which currently has no UI to not pass the -XstartOnFirstThread option
+ if (getenv("HACK_IGNORE_START_ON_FIRST_THREAD") != NULL) return;
+ // XXX: END HACK
+
+ sameThread = JNI_TRUE;
+ // Set a variable that tells us we started on the main thread.
+ // This is used by the AWT during startup. (See LWCToolkit.m)
+ char envVar[80];
+ snprintf(envVar, sizeof(envVar), "JAVA_STARTED_ON_FIRST_THREAD_%d", getpid());
+ setenv(envVar, "1", 1);
+}
+
+// MacOSX we may continue in the same thread
+int
+JVMInit(InvocationFunctions* ifn, jlong threadStackSize,
+ int argc, char **argv,
+ int mode, char *what, int ret) {
+ if (sameThread) {
+ JLI_TraceLauncher("In same thread\n");
+ // need to block this thread against the main thread
+ // so signals get caught correctly
+ __block int rslt = 0;
+ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+ {
+ NSBlockOperation *op = [NSBlockOperation blockOperationWithBlock: ^{
+ JavaMainArgs args;
+ args.argc = argc;
+ args.argv = argv;
+ args.mode = mode;
+ args.what = what;
+ args.ifn = *ifn;
+ rslt = JavaMain(&args);
+ }];
+
+ /*
+ * We cannot use dispatch_sync here, because it blocks the main dispatch queue.
+ * Using the main NSRunLoop allows the dispatch queue to run properly once
+ * SWT (or whatever toolkit this is needed for) kicks off it's own NSRunLoop
+ * and starts running.
+ */
+ [op performSelectorOnMainThread:@selector(start) withObject:nil waitUntilDone:YES];
+ }
+ [pool drain];
+ return rslt;
+ } else {
+ return ContinueInNewThread(ifn, threadStackSize, argc, argv, mode, what, ret);
+ }
+}
+
+/*
+ * Note the jvmInstance must be initialized first before entering into
+ * ShowSplashScreen, as there is a callback into the JLI_GetJavaVMInstance.
+ */
+void PostJVMInit(JNIEnv *env, jclass mainClass, JavaVM *vm) {
+ jvmInstance = vm;
+ SetMainClassForAWT(env, mainClass);
+ CHECK_EXCEPTION_RETURN();
+ ShowSplashScreen();
+}
+
+jboolean
+ProcessPlatformOption(const char* arg)
+{
+ if (JLI_StrCmp(arg, "-XstartOnFirstThread") == 0) {
+ SetXStartOnFirstThreadArg();
+ return JNI_TRUE;
+ } else if (JLI_StrCCmp(arg, "-Xdock:") == 0) {
+ SetXDockArgForAWT(arg);
+ return JNI_TRUE;
+ }
+ // arguments we know not
+ return JNI_FALSE;
+}
--- a/src/java.base/share/classes/java/lang/ClassNotFoundException.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/java.base/share/classes/java/lang/ClassNotFoundException.java Mon Sep 24 10:59:26 2018 -0700
@@ -25,6 +25,11 @@
package java.lang;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.ObjectStreamField;
+
/**
* Thrown when an application tries to load in a class through its
* string name using:
@@ -57,15 +62,6 @@
private static final long serialVersionUID = 9176873029745254542L;
/**
- * This field holds the exception ex if the
- * ClassNotFoundException(String s, Throwable ex) constructor was
- * used to instantiate the object
- * @serial
- * @since 1.2
- */
- private Throwable ex;
-
- /**
* Constructs a <code>ClassNotFoundException</code> with no detail message.
*/
public ClassNotFoundException() {
@@ -92,8 +88,7 @@
* @since 1.2
*/
public ClassNotFoundException(String s, Throwable ex) {
- super(s, null); // Disallow initCause
- this.ex = ex;
+ super(s, ex); // Disallow initCause
}
/**
@@ -108,18 +103,42 @@
* @since 1.2
*/
public Throwable getException() {
- return ex;
+ return super.getCause();
}
/**
- * Returns the cause of this exception (the exception that was raised
- * if an error occurred while attempting to load the class; otherwise
- * {@code null}).
+ * Serializable fields for ClassNotFoundException.
+ *
+ * @serialField ex Throwable
+ */
+ private static final ObjectStreamField[] serialPersistentFields = {
+ new ObjectStreamField("ex", Throwable.class)
+ };
+
+ /*
+ * Reconstitutes the ClassNotFoundException instance from a stream
+ * and initialize the cause properly when deserializing from an older
+ * version.
*
- * @return the cause of this exception.
- * @since 1.4
+ * The getException and getCause method returns the private "ex" field
+ * in the older implementation and ClassNotFoundException::cause
+ * was set to null.
*/
- public Throwable getCause() {
- return ex;
+ private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException {
+ ObjectInputStream.GetField fields = s.readFields();
+ Throwable exception = (Throwable) fields.get("ex", null);
+ if (exception != null) {
+ setCause(exception);
+ }
+ }
+
+ /*
+ * To maintain compatibility with older implementation, write a serial
+ * "ex" field with the cause as the value.
+ */
+ private void writeObject(ObjectOutputStream out) throws IOException {
+ ObjectOutputStream.PutField fields = out.putFields();
+ fields.put("ex", super.getCause());
+ out.writeFields();
}
}
--- a/src/java.base/share/classes/java/lang/ExceptionInInitializerError.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/java.base/share/classes/java/lang/ExceptionInInitializerError.java Mon Sep 24 10:59:26 2018 -0700
@@ -25,6 +25,11 @@
package java.lang;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.ObjectStreamField;
+
/**
* Signals that an unexpected exception has occurred in a static initializer.
* An <code>ExceptionInInitializerError</code> is thrown to indicate that an
@@ -48,23 +53,13 @@
private static final long serialVersionUID = 1521711792217232256L;
/**
- * This field holds the exception if the
- * ExceptionInInitializerError(Throwable thrown) constructor was
- * used to instantiate the object
- *
- * @serial
- *
- */
- private Throwable exception;
-
- /**
* Constructs an <code>ExceptionInInitializerError</code> with
* <code>null</code> as its detail message string and with no saved
* throwable object.
* A detail message is a String that describes this particular exception.
*/
public ExceptionInInitializerError() {
- initCause(null); // Disallow subsequent initCause
+ initCause(null); // Disallow subsequent initCause
}
/**
@@ -76,23 +71,20 @@
* @param thrown The exception thrown
*/
public ExceptionInInitializerError(Throwable thrown) {
- initCause(null); // Disallow subsequent initCause
- this.exception = thrown;
+ super(null, thrown); // Disallow subsequent initCause
}
/**
- * Constructs an ExceptionInInitializerError with the specified detail
+ * Constructs an {@code ExceptionInInitializerError} with the specified detail
* message string. A detail message is a String that describes this
* particular exception. The detail message string is saved for later
* retrieval by the {@link Throwable#getMessage()} method. There is no
* saved throwable object.
*
- *
* @param s the detail message
*/
public ExceptionInInitializerError(String s) {
- super(s);
- initCause(null); // Disallow subsequent initCause
+ super(s, null); // Disallow subsequent initCause
}
/**
@@ -109,18 +101,43 @@
* throwable object.
*/
public Throwable getException() {
- return exception;
+ return super.getCause();
}
/**
- * Returns the cause of this error (the exception that occurred
- * during a static initialization that caused this error to be created).
+ * Serializable fields for ExceptionInInitializerError.
+ *
+ * @serialField exception Throwable
+ */
+ private static final ObjectStreamField[] serialPersistentFields = {
+ new ObjectStreamField("exception", Throwable.class)
+ };
+
+ /*
+ * Reconstitutes the ExceptionInInitializerError instance from a stream
+ * and initialize the cause properly when deserializing from an older
+ * version.
*
- * @return the cause of this error or <code>null</code> if the
- * cause is nonexistent or unknown.
- * @since 1.4
+ * The getException and getCause method returns the private "exception"
+ * field in the older implementation and ExceptionInInitializerError::cause
+ * was set to null.
*/
- public Throwable getCause() {
- return exception;
+ private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException {
+ ObjectInputStream.GetField fields = s.readFields();
+ Throwable exception = (Throwable) fields.get("exception", null);
+ if (exception != null) {
+ setCause(exception);
+ }
}
+
+ /*
+ * To maintain compatibility with older implementation, write a serial
+ * "exception" field with the cause as the value.
+ */
+ private void writeObject(ObjectOutputStream out) throws IOException {
+ ObjectOutputStream.PutField fields = out.putFields();
+ fields.put("exception", super.getCause());
+ out.writeFields();
+ }
+
}
--- a/src/java.base/share/classes/java/lang/System.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/java.base/share/classes/java/lang/System.java Mon Sep 24 10:59:26 2018 -0700
@@ -2201,6 +2201,9 @@
return StringCoding.getBytesUTF8NoRepl(s);
}
+ public void setCause(Throwable t, Throwable cause) {
+ t.setCause(cause);
+ }
});
}
}
--- a/src/java.base/share/classes/java/lang/Throwable.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/java.base/share/classes/java/lang/Throwable.java Mon Sep 24 10:59:26 2018 -0700
@@ -466,6 +466,16 @@
return this;
}
+ /*
+ * This is called by readObject of a few exceptions such as
+ * ClassNotFoundException and ExceptionInInitializerError to deserialize
+ * a stream output from an older runtime version where the cause may
+ * have set to null.
+ */
+ final void setCause(Throwable t) {
+ this.cause = t;
+ }
+
/**
* Returns a short description of this throwable.
* The result is the concatenation of:
--- a/src/java.base/share/classes/java/lang/invoke/MethodHandles.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/java.base/share/classes/java/lang/invoke/MethodHandles.java Mon Sep 24 10:59:26 2018 -0700
@@ -54,6 +54,7 @@
import java.util.Iterator;
import java.util.List;
import java.util.Objects;
+import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -643,6 +644,10 @@
/** The allowed sorts of members which may be looked up (PUBLIC, etc.). */
private final int allowedModes;
+ static {
+ Reflection.registerFieldsToFilter(Lookup.class, Set.of("lookupClass", "allowedModes"));
+ }
+
/** A single-bit mask representing {@code public} access,
* which may contribute to the result of {@link #lookupModes lookupModes}.
* The value, {@code 0x01}, happens to be the same as the value of the
--- a/src/java.base/share/classes/java/lang/reflect/UndeclaredThrowableException.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/java.base/share/classes/java/lang/reflect/UndeclaredThrowableException.java Mon Sep 24 10:59:26 2018 -0700
@@ -25,6 +25,12 @@
package java.lang.reflect;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.ObjectStreamField;
+import jdk.internal.misc.SharedSecrets;
+
/**
* Thrown by a method invocation on a proxy instance if its invocation
* handler's {@link InvocationHandler#invoke invoke} method throws a
@@ -59,12 +65,6 @@
static final long serialVersionUID = 330127114055056639L;
/**
- * the undeclared checked exception that was thrown
- * @serial
- */
- private Throwable undeclaredThrowable;
-
- /**
* Constructs an {@code UndeclaredThrowableException} with the
* specified {@code Throwable}.
*
@@ -72,8 +72,7 @@
* that was thrown
*/
public UndeclaredThrowableException(Throwable undeclaredThrowable) {
- super((Throwable) null); // Disallow initCause
- this.undeclaredThrowable = undeclaredThrowable;
+ super(null, undeclaredThrowable); // Disallow initCause
}
/**
@@ -87,8 +86,7 @@
public UndeclaredThrowableException(Throwable undeclaredThrowable,
String s)
{
- super(s, null); // Disallow initCause
- this.undeclaredThrowable = undeclaredThrowable;
+ super(s, undeclaredThrowable); // Disallow initCause
}
/**
@@ -102,18 +100,38 @@
* @return the undeclared checked exception that was thrown
*/
public Throwable getUndeclaredThrowable() {
- return undeclaredThrowable;
+ return super.getCause();
}
/**
- * Returns the cause of this exception (the {@code Throwable}
- * instance wrapped in this {@code UndeclaredThrowableException},
- * which may be {@code null}).
+ * Serializable fields for UndeclaredThrowableException.
*
- * @return the cause of this exception.
- * @since 1.4
+ * @serialField undeclaredThrowable Throwable
+ */
+ private static final ObjectStreamField[] serialPersistentFields = {
+ new ObjectStreamField("undeclaredThrowable", Throwable.class)
+ };
+
+ /*
+ * Reconstitutes the UndeclaredThrowableException instance from a stream
+ * and initialize the cause properly when deserializing from an older
+ * version.
*/
- public Throwable getCause() {
- return undeclaredThrowable;
+ private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException {
+ ObjectInputStream.GetField fields = s.readFields();
+ Throwable exception = (Throwable) fields.get("undeclaredThrowable", null);
+ if (exception != null) {
+ SharedSecrets.getJavaLangAccess().setCause(this, exception);
+ }
+ }
+
+ /*
+ * To maintain compatibility with older implementation, write a serial
+ * "ex" field with the cause as the value.
+ */
+ private void writeObject(ObjectOutputStream out) throws IOException {
+ ObjectOutputStream.PutField fields = out.putFields();
+ fields.put("undeclaredThrowable", super.getCause());
+ out.writeFields();
}
}
--- a/src/java.base/share/classes/java/nio/file/attribute/package-info.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/java.base/share/classes/java/nio/file/attribute/package-info.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -93,7 +93,7 @@
* <p> The {@link java.nio.file.attribute.DosFileAttributeView}
* class extends {@code BasicFileAttributeView} by defining methods to
* access the legacy "DOS" file attributes supported on file systems such as File
- * Allocation Tabl (FAT), commonly used in consumer devices.
+ * Allocation Table (FAT), commonly used in consumer devices.
*
* <p> The {@link java.nio.file.attribute.AclFileAttributeView}
* class defines methods to read and write the Access Control List (ACL)
--- a/src/java.base/share/classes/java/security/PrivilegedActionException.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/java.base/share/classes/java/security/PrivilegedActionException.java Mon Sep 24 10:59:26 2018 -0700
@@ -25,6 +25,12 @@
package java.security;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.ObjectStreamField;
+import jdk.internal.misc.SharedSecrets;
+
/**
* This exception is thrown by
* {@code doPrivileged(PrivilegedExceptionAction)} and
@@ -53,19 +59,13 @@
private static final long serialVersionUID = 4724086851538908602L;
/**
- * @serial
- */
- private Exception exception;
-
- /**
* Constructs a new PrivilegedActionException "wrapping"
* the specific Exception.
*
* @param exception The exception thrown
*/
public PrivilegedActionException(Exception exception) {
- super((Throwable)null); // Disallow initCause
- this.exception = exception;
+ super(null, exception); // Disallow initCause
}
/**
@@ -84,23 +84,49 @@
* AccessControlContext)
*/
public Exception getException() {
- return exception;
- }
-
- /**
- * Returns the cause of this exception (the exception thrown by
- * the privileged computation that resulted in this
- * {@code PrivilegedActionException}).
- *
- * @return the cause of this exception.
- * @since 1.4
- */
- public Throwable getCause() {
- return exception;
+ return (Exception)super.getCause();
}
public String toString() {
String s = getClass().getName();
- return (exception != null) ? (s + ": " + exception.toString()) : s;
+ Throwable cause = super.getCause();
+ return (cause != null) ? (s + ": " + cause.toString()) : s;
+ }
+
+
+ /**
+ * Serializable fields for UndeclaredThrowableException.
+ *
+ * @serialField undeclaredThrowable Throwable
+ */
+ private static final ObjectStreamField[] serialPersistentFields = {
+ new ObjectStreamField("exception", Exception.class)
+ };
+
+ /*
+ * Reconstitutes the PrivilegedActionException instance from a stream
+ * and initialize the cause properly when deserializing from an older
+ * version.
+ *
+ * The getException and getCause method returns the private "exception"
+ * field in the older implementation and PrivilegedActionException::cause
+ * was set to null.
+ */
+ private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException {
+ ObjectInputStream.GetField fields = s.readFields();
+ Exception exception = (Exception) fields.get("exception", null);
+ if (exception != null) {
+ SharedSecrets.getJavaLangAccess().setCause(this, exception);
+ }
+ }
+
+ /*
+ * To maintain compatibility with older implementation, write a serial
+ * "exception" field with the cause as the value.
+ */
+ private void writeObject(ObjectOutputStream out) throws IOException {
+ ObjectOutputStream.PutField fields = out.putFields();
+ fields.put("exception", super.getCause());
+ out.writeFields();
}
}
--- a/src/java.base/share/classes/javax/net/ssl/SSLServerSocketFactory.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/java.base/share/classes/javax/net/ssl/SSLServerSocketFactory.java Mon Sep 24 10:59:26 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
@@ -112,7 +112,7 @@
try {
return SSLContext.getDefault().getServerSocketFactory();
- } catch (NoSuchAlgorithmException e) {
+ } catch (NoSuchAlgorithmException | UnsupportedOperationException e) {
return new DefaultSSLServerSocketFactory(e);
}
}
--- a/src/java.base/share/classes/javax/net/ssl/SSLSocketFactory.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/java.base/share/classes/javax/net/ssl/SSLSocketFactory.java Mon Sep 24 10:59:26 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
@@ -121,7 +121,7 @@
try {
return SSLContext.getDefault().getSocketFactory();
- } catch (NoSuchAlgorithmException e) {
+ } catch (NoSuchAlgorithmException | UnsupportedOperationException e) {
return new DefaultSSLSocketFactory(e);
}
}
--- a/src/java.base/share/classes/jdk/internal/misc/JavaLangAccess.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/java.base/share/classes/jdk/internal/misc/JavaLangAccess.java Mon Sep 24 10:59:26 2018 -0700
@@ -305,4 +305,10 @@
* @throws IllegalArgumentException for malformed surrogates
*/
byte[] getBytesUTF8NoRepl(String s);
+
+ /**
+ * Set the cause of Throwable
+ * @param cause set t's cause to new value
+ */
+ void setCause(Throwable t, Throwable cause);
}
--- a/src/java.base/share/classes/jdk/internal/reflect/ConstantPool.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/java.base/share/classes/jdk/internal/reflect/ConstantPool.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,6 +26,7 @@
package jdk.internal.reflect;
import java.lang.reflect.*;
+import java.util.Set;
/** Provides reflective access to the constant pools of classes.
Currently this is needed to provide reflective access to annotations
@@ -104,7 +105,7 @@
//
static {
- Reflection.registerFieldsToFilter(ConstantPool.class, new String[] { "constantPoolOop" });
+ Reflection.registerFieldsToFilter(ConstantPool.class, Set.of("constantPoolOop"));
}
// HotSpot-internal constant pool object (set by the VM, name known to the VM)
--- a/src/java.base/share/classes/jdk/internal/reflect/Reflection.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/java.base/share/classes/jdk/internal/reflect/Reflection.java Mon Sep 24 10:59:26 2018 -0700
@@ -25,13 +25,12 @@
package jdk.internal.reflect;
-
import java.lang.reflect.*;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
+import java.util.Set;
import jdk.internal.HotSpotIntrinsicCandidate;
-import jdk.internal.loader.ClassLoaders;
import jdk.internal.misc.VM;
/** Common utility routines used by both java.lang and
@@ -43,18 +42,23 @@
view, where they are sensitive or they may contain VM-internal objects.
These Maps are updated very rarely. Rather than synchronize on
each access, we use copy-on-write */
- private static volatile Map<Class<?>,String[]> fieldFilterMap;
- private static volatile Map<Class<?>,String[]> methodFilterMap;
+ private static volatile Map<Class<?>, Set<String>> fieldFilterMap;
+ private static volatile Map<Class<?>, Set<String>> methodFilterMap;
+ private static final String WILDCARD = "*";
+ public static final Set<String> ALL_MEMBERS = Set.of(WILDCARD);
static {
- Map<Class<?>,String[]> map = new HashMap<Class<?>,String[]>();
- map.put(Reflection.class,
- new String[] {"fieldFilterMap", "methodFilterMap"});
- map.put(System.class, new String[] {"security"});
- map.put(Class.class, new String[] {"classLoader"});
- fieldFilterMap = map;
-
- methodFilterMap = new HashMap<>();
+ fieldFilterMap = Map.of(
+ Reflection.class, ALL_MEMBERS,
+ AccessibleObject.class, ALL_MEMBERS,
+ Class.class, Set.of("classLoader"),
+ ClassLoader.class, ALL_MEMBERS,
+ Constructor.class, ALL_MEMBERS,
+ Field.class, ALL_MEMBERS,
+ Method.class, ALL_MEMBERS,
+ System.class, Set.of("security")
+ );
+ methodFilterMap = Map.of();
}
/** Returns the class of the caller of the method calling this method,
@@ -236,31 +240,31 @@
// fieldNames must contain only interned Strings
public static synchronized void registerFieldsToFilter(Class<?> containingClass,
- String ... fieldNames) {
+ Set<String> fieldNames) {
fieldFilterMap =
registerFilter(fieldFilterMap, containingClass, fieldNames);
}
// methodNames must contain only interned Strings
public static synchronized void registerMethodsToFilter(Class<?> containingClass,
- String ... methodNames) {
+ Set<String> methodNames) {
methodFilterMap =
registerFilter(methodFilterMap, containingClass, methodNames);
}
- private static Map<Class<?>,String[]> registerFilter(Map<Class<?>,String[]> map,
- Class<?> containingClass, String ... names) {
+ private static Map<Class<?>, Set<String>> registerFilter(Map<Class<?>, Set<String>> map,
+ Class<?> containingClass,
+ Set<String> names) {
if (map.get(containingClass) != null) {
throw new IllegalArgumentException
("Filter already registered: " + containingClass);
}
- map = new HashMap<Class<?>,String[]>(map);
- map.put(containingClass, names);
+ map = new HashMap<>(map);
+ map.put(containingClass, Set.copyOf(names));
return map;
}
- public static Field[] filterFields(Class<?> containingClass,
- Field[] fields) {
+ public static Field[] filterFields(Class<?> containingClass, Field[] fields) {
if (fieldFilterMap == null) {
// Bootstrapping
return fields;
@@ -276,35 +280,24 @@
return (Method[])filter(methods, methodFilterMap.get(containingClass));
}
- private static Member[] filter(Member[] members, String[] filteredNames) {
+ private static Member[] filter(Member[] members, Set<String> filteredNames) {
if ((filteredNames == null) || (members.length == 0)) {
return members;
}
+ Class<?> memberType = members[0].getClass();
+ if (filteredNames.contains(WILDCARD)) {
+ return (Member[]) Array.newInstance(memberType, 0);
+ }
int numNewMembers = 0;
for (Member member : members) {
- boolean shouldSkip = false;
- for (String filteredName : filteredNames) {
- if (member.getName() == filteredName) {
- shouldSkip = true;
- break;
- }
- }
- if (!shouldSkip) {
+ if (!filteredNames.contains(member.getName())) {
++numNewMembers;
}
}
- Member[] newMembers =
- (Member[])Array.newInstance(members[0].getClass(), numNewMembers);
+ Member[] newMembers = (Member[])Array.newInstance(memberType, numNewMembers);
int destIdx = 0;
for (Member member : members) {
- boolean shouldSkip = false;
- for (String filteredName : filteredNames) {
- if (member.getName() == filteredName) {
- shouldSkip = true;
- break;
- }
- }
- if (!shouldSkip) {
+ if (!filteredNames.contains(member.getName())) {
newMembers[destIdx++] = member;
}
}
--- a/src/java.base/share/classes/jdk/internal/reflect/UnsafeStaticFieldAccessorImpl.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/java.base/share/classes/jdk/internal/reflect/UnsafeStaticFieldAccessorImpl.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -28,6 +28,8 @@
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.security.AccessController;
+import java.util.Set;
+
import jdk.internal.misc.Unsafe;
/** Base class for jdk.internal.misc.Unsafe-based FieldAccessors for static
@@ -40,7 +42,7 @@
abstract class UnsafeStaticFieldAccessorImpl extends UnsafeFieldAccessorImpl {
static {
Reflection.registerFieldsToFilter(UnsafeStaticFieldAccessorImpl.class,
- new String[] { "base" });
+ Set.of("base"));
}
protected final Object base; // base
--- a/src/java.base/share/classes/sun/security/ssl/CipherSuite.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/java.base/share/classes/sun/security/ssl/CipherSuite.java Mon Sep 24 10:59:26 2018 -0700
@@ -70,6 +70,9 @@
TLS_AES_256_GCM_SHA384(
0x1302, true, "TLS_AES_256_GCM_SHA384",
ProtocolVersion.PROTOCOLS_OF_13, B_AES_256_GCM_IV, H_SHA384),
+ TLS_CHACHA20_POLY1305_SHA256(
+ 0x1303, true, "TLS_CHACHA20_POLY1305_SHA256",
+ ProtocolVersion.PROTOCOLS_OF_13, B_CC20_P1305, H_SHA256),
// Suite B compliant cipher suites, see RFC 6460.
//
@@ -87,11 +90,22 @@
ProtocolVersion.PROTOCOLS_OF_12,
K_ECDHE_ECDSA, B_AES_128_GCM, M_NULL, H_SHA256),
+ // Not suite B, but we want it to position the suite early in the list
+ // of 1.2 suites.
+ TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256(
+ 0xCCA9, true, "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256", "",
+ ProtocolVersion.PROTOCOLS_OF_12,
+ K_ECDHE_ECDSA, B_CC20_P1305, M_NULL, H_SHA256),
+
// AES_256(GCM)
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384(
0xC030, true, "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", "",
ProtocolVersion.PROTOCOLS_OF_12,
K_ECDHE_RSA, B_AES_256_GCM, M_NULL, H_SHA384),
+ TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256(
+ 0xCCA8, true, "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256", "",
+ ProtocolVersion.PROTOCOLS_OF_12,
+ K_ECDHE_RSA, B_CC20_P1305, M_NULL, H_SHA256),
TLS_RSA_WITH_AES_256_GCM_SHA384(
0x009D, true, "TLS_RSA_WITH_AES_256_GCM_SHA384", "",
ProtocolVersion.PROTOCOLS_OF_12,
@@ -108,6 +122,10 @@
0x009F, true, "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384", "",
ProtocolVersion.PROTOCOLS_OF_12,
K_DHE_RSA, B_AES_256_GCM, M_NULL, H_SHA384),
+ TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256(
+ 0xCCAA, true, "TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256", "",
+ ProtocolVersion.PROTOCOLS_OF_12,
+ K_DHE_RSA, B_CC20_P1305, M_NULL, H_SHA256),
TLS_DHE_DSS_WITH_AES_256_GCM_SHA384(
0x00A3, true, "TLS_DHE_DSS_WITH_AES_256_GCM_SHA384", "",
ProtocolVersion.PROTOCOLS_OF_12,
@@ -480,8 +498,6 @@
// Definition of the CipherSuites that are not supported but the names
// are known.
- TLS_CHACHA20_POLY1305_SHA256( // TLS 1.3
- "TLS_CHACHA20_POLY1305_SHA256", 0x1303),
TLS_AES_128_CCM_SHA256( // TLS 1.3
"TLS_AES_128_CCM_SHA256", 0x1304),
TLS_AES_128_CCM_8_SHA256( // TLS 1.3
--- a/src/java.base/share/classes/sun/security/ssl/JsseJce.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/java.base/share/classes/sun/security/ssl/JsseJce.java Mon Sep 24 10:59:26 2018 -0700
@@ -130,6 +130,11 @@
static final String CIPHER_AES_GCM = "AES/GCM/NoPadding";
/**
+ * JCE transformation string for ChaCha20-Poly1305
+ */
+ static final String CIPHER_CHACHA20_POLY1305 = "ChaCha20-Poly1305";
+
+ /**
* JCA identifier string for DSA, i.e. a DSA with SHA-1.
*/
static final String SIGNATURE_DSA = "DSA";
--- a/src/java.base/share/classes/sun/security/ssl/SSLCipher.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/java.base/share/classes/sun/security/ssl/SSLCipher.java Mon Sep 24 10:59:26 2018 -0700
@@ -329,6 +329,32 @@
new T13GcmWriteCipherGenerator(),
ProtocolVersion.PROTOCOLS_OF_13
)
+ })),
+
+ @SuppressWarnings({"unchecked", "rawtypes"})
+ B_CC20_P1305(CIPHER_CHACHA20_POLY1305, AEAD_CIPHER, 32, 32, 12,
+ 12, true, false,
+ (Map.Entry<ReadCipherGenerator,
+ ProtocolVersion[]>[])(new Map.Entry[] {
+ new SimpleImmutableEntry<ReadCipherGenerator, ProtocolVersion[]>(
+ new T12CC20P1305ReadCipherGenerator(),
+ ProtocolVersion.PROTOCOLS_OF_12
+ ),
+ new SimpleImmutableEntry<ReadCipherGenerator, ProtocolVersion[]>(
+ new T13CC20P1305ReadCipherGenerator(),
+ ProtocolVersion.PROTOCOLS_OF_13
+ )
+ }),
+ (Map.Entry<WriteCipherGenerator,
+ ProtocolVersion[]>[])(new Map.Entry[] {
+ new SimpleImmutableEntry<WriteCipherGenerator, ProtocolVersion[]>(
+ new T12CC20P1305WriteCipherGenerator(),
+ ProtocolVersion.PROTOCOLS_OF_12
+ ),
+ new SimpleImmutableEntry<WriteCipherGenerator, ProtocolVersion[]>(
+ new T13CC20P1305WriteCipherGenerator(),
+ ProtocolVersion.PROTOCOLS_OF_13
+ )
}));
// descriptive name including key size, e.g. AES/128
@@ -2082,6 +2108,549 @@
}
}
+ private static final class T12CC20P1305ReadCipherGenerator
+ implements ReadCipherGenerator {
+
+ @Override
+ public SSLReadCipher createCipher(SSLCipher sslCipher,
+ Authenticator authenticator, ProtocolVersion protocolVersion,
+ String algorithm, Key key, AlgorithmParameterSpec params,
+ SecureRandom random) throws GeneralSecurityException {
+ return new CC20P1305ReadCipher(authenticator, protocolVersion,
+ sslCipher, algorithm, key, params, random);
+ }
+
+ static final class CC20P1305ReadCipher extends SSLReadCipher {
+ private final Cipher cipher;
+ private final int tagSize;
+ private final Key key;
+ private final byte[] iv;
+ private final SecureRandom random;
+
+ CC20P1305ReadCipher(Authenticator authenticator,
+ ProtocolVersion protocolVersion,
+ SSLCipher sslCipher, String algorithm,
+ Key key, AlgorithmParameterSpec params,
+ SecureRandom random) throws GeneralSecurityException {
+ super(authenticator, protocolVersion);
+ this.cipher = JsseJce.getCipher(algorithm);
+ this.tagSize = sslCipher.tagSize;
+ this.key = key;
+ this.iv = ((IvParameterSpec)params).getIV();
+ this.random = random;
+
+ // DON'T initialize the cipher for AEAD!
+ }
+
+ @Override
+ public Plaintext decrypt(byte contentType, ByteBuffer bb,
+ byte[] sequence) throws GeneralSecurityException {
+ if (bb.remaining() <= tagSize) {
+ throw new BadPaddingException(
+ "Insufficient buffer remaining for AEAD cipher " +
+ "fragment (" + bb.remaining() + "). Needs to be " +
+ "more than tag size (" + tagSize + ")");
+ }
+
+ byte[] sn = sequence;
+ if (sn == null) {
+ sn = authenticator.sequenceNumber();
+ }
+ byte[] nonce = new byte[iv.length];
+ System.arraycopy(sn, 0, nonce, nonce.length - sn.length,
+ sn.length);
+ for (int i = 0; i < nonce.length; i++) {
+ nonce[i] ^= iv[i];
+ }
+
+ // initialize the AEAD cipher with the unique IV
+ AlgorithmParameterSpec spec = new IvParameterSpec(nonce);
+ try {
+ cipher.init(Cipher.DECRYPT_MODE, key, spec, random);
+ } catch (InvalidKeyException |
+ InvalidAlgorithmParameterException ikae) {
+ // unlikely to happen
+ throw new RuntimeException(
+ "invalid key or spec in AEAD mode", ikae);
+ }
+
+ // update the additional authentication data
+ byte[] aad = authenticator.acquireAuthenticationBytes(
+ contentType, bb.remaining() - tagSize, sequence);
+ cipher.updateAAD(aad);
+
+ // DON'T decrypt the nonce_explicit for AEAD mode. The buffer
+ // position has moved out of the nonce_explicit range.
+ int len = bb.remaining();
+ int pos = bb.position();
+ ByteBuffer dup = bb.duplicate();
+ try {
+ len = cipher.doFinal(dup, bb);
+ } catch (IllegalBlockSizeException ibse) {
+ // unlikely to happen
+ throw new RuntimeException(
+ "Cipher error in AEAD mode \"" + ibse.getMessage() +
+ " \"in JCE provider " + cipher.getProvider().getName());
+ } catch (ShortBufferException sbe) {
+ // catch BouncyCastle buffering error
+ throw new RuntimeException("Cipher buffering error in " +
+ "JCE provider " + cipher.getProvider().getName(), sbe);
+ }
+ // reset the limit to the end of the decrypted data
+ bb.position(pos);
+ bb.limit(pos + len);
+
+ if (SSLLogger.isOn && SSLLogger.isOn("plaintext")) {
+ SSLLogger.fine(
+ "Plaintext after DECRYPTION", bb.duplicate());
+ }
+
+ return new Plaintext(contentType,
+ ProtocolVersion.NONE.major, ProtocolVersion.NONE.minor,
+ -1, -1L, bb.slice());
+ }
+
+ @Override
+ void dispose() {
+ if (cipher != null) {
+ try {
+ cipher.doFinal();
+ } catch (Exception e) {
+ // swallow all types of exceptions.
+ }
+ }
+ }
+
+ @Override
+ int estimateFragmentSize(int packetSize, int headerSize) {
+ return packetSize - headerSize - tagSize;
+ }
+ }
+ }
+
+ private static final class T12CC20P1305WriteCipherGenerator
+ implements WriteCipherGenerator {
+ @Override
+ public SSLWriteCipher createCipher(SSLCipher sslCipher,
+ Authenticator authenticator, ProtocolVersion protocolVersion,
+ String algorithm, Key key, AlgorithmParameterSpec params,
+ SecureRandom random) throws GeneralSecurityException {
+ return new CC20P1305WriteCipher(authenticator, protocolVersion,
+ sslCipher, algorithm, key, params, random);
+ }
+
+ private static final class CC20P1305WriteCipher extends SSLWriteCipher {
+ private final Cipher cipher;
+ private final int tagSize;
+ private final Key key;
+ private final byte[] iv;
+ private final SecureRandom random;
+
+ CC20P1305WriteCipher(Authenticator authenticator,
+ ProtocolVersion protocolVersion,
+ SSLCipher sslCipher, String algorithm,
+ Key key, AlgorithmParameterSpec params,
+ SecureRandom random) throws GeneralSecurityException {
+ super(authenticator, protocolVersion);
+ this.cipher = JsseJce.getCipher(algorithm);
+ this.tagSize = sslCipher.tagSize;
+ this.key = key;
+ this.iv = ((IvParameterSpec)params).getIV();
+ this.random = random;
+
+ keyLimitCountdown = cipherLimits.getOrDefault(
+ algorithm.toUpperCase() + ":" + tag[0], 0L);
+ if (SSLLogger.isOn && SSLLogger.isOn("ssl")) {
+ SSLLogger.fine("algorithm = " + algorithm.toUpperCase() +
+ ":" + tag[0] + "\ncountdown value = " +
+ keyLimitCountdown);
+ }
+ if (keyLimitCountdown > 0) {
+ keyLimitEnabled = true;
+ }
+
+ // DON'T initialize the cipher for AEAD!
+ }
+
+ @Override
+ public int encrypt(byte contentType,
+ ByteBuffer bb) {
+ byte[] sn = authenticator.sequenceNumber();
+ byte[] nonce = new byte[iv.length];
+ System.arraycopy(sn, 0, nonce, nonce.length - sn.length,
+ sn.length);
+ for (int i = 0; i < nonce.length; i++) {
+ nonce[i] ^= iv[i];
+ }
+
+ // initialize the AEAD cipher for the unique IV
+ AlgorithmParameterSpec spec = new IvParameterSpec(nonce);
+ try {
+ cipher.init(Cipher.ENCRYPT_MODE, key, spec, random);
+ } catch (InvalidKeyException |
+ InvalidAlgorithmParameterException ikae) {
+ // unlikely to happen
+ throw new RuntimeException(
+ "invalid key or spec in AEAD mode", ikae);
+ }
+
+ // Update the additional authentication data, using the
+ // implicit sequence number of the authenticator.
+ byte[] aad = authenticator.acquireAuthenticationBytes(
+ contentType, bb.remaining(), null);
+ cipher.updateAAD(aad);
+
+ // DON'T encrypt the nonce for AEAD mode.
+ int len = bb.remaining();
+ int pos = bb.position();
+ if (SSLLogger.isOn && SSLLogger.isOn("plaintext")) {
+ SSLLogger.fine(
+ "Plaintext before ENCRYPTION",
+ bb.duplicate());
+ }
+
+ ByteBuffer dup = bb.duplicate();
+ int outputSize = cipher.getOutputSize(dup.remaining());
+ if (outputSize > bb.remaining()) {
+ // Need to expand the limit of the output buffer for
+ // the authentication tag.
+ //
+ // DON'T worry about the buffer's capacity, we have
+ // reserved space for the authentication tag.
+ bb.limit(pos + outputSize);
+ }
+
+ try {
+ len = cipher.doFinal(dup, bb);
+ } catch (IllegalBlockSizeException |
+ BadPaddingException | ShortBufferException ibse) {
+ // unlikely to happen
+ throw new RuntimeException(
+ "Cipher error in AEAD mode in JCE provider " +
+ cipher.getProvider().getName(), ibse);
+ }
+
+ if (len != outputSize) {
+ throw new RuntimeException(
+ "Cipher buffering error in JCE provider " +
+ cipher.getProvider().getName());
+ }
+
+ return len;
+ }
+
+ @Override
+ void dispose() {
+ if (cipher != null) {
+ try {
+ cipher.doFinal();
+ } catch (Exception e) {
+ // swallow all types of exceptions.
+ }
+ }
+ }
+
+ @Override
+ int getExplicitNonceSize() {
+ return 0;
+ }
+
+ @Override
+ int calculateFragmentSize(int packetLimit, int headerSize) {
+ return packetLimit - headerSize - tagSize;
+ }
+
+ @Override
+ int calculatePacketSize(int fragmentSize, int headerSize) {
+ return fragmentSize + headerSize + tagSize;
+ }
+ }
+ }
+
+ private static final class T13CC20P1305ReadCipherGenerator
+ implements ReadCipherGenerator {
+
+ @Override
+ public SSLReadCipher createCipher(SSLCipher sslCipher,
+ Authenticator authenticator, ProtocolVersion protocolVersion,
+ String algorithm, Key key, AlgorithmParameterSpec params,
+ SecureRandom random) throws GeneralSecurityException {
+ return new CC20P1305ReadCipher(authenticator, protocolVersion,
+ sslCipher, algorithm, key, params, random);
+ }
+
+ static final class CC20P1305ReadCipher extends SSLReadCipher {
+ private final Cipher cipher;
+ private final int tagSize;
+ private final Key key;
+ private final byte[] iv;
+ private final SecureRandom random;
+
+ CC20P1305ReadCipher(Authenticator authenticator,
+ ProtocolVersion protocolVersion,
+ SSLCipher sslCipher, String algorithm,
+ Key key, AlgorithmParameterSpec params,
+ SecureRandom random) throws GeneralSecurityException {
+ super(authenticator, protocolVersion);
+ this.cipher = JsseJce.getCipher(algorithm);
+ this.tagSize = sslCipher.tagSize;
+ this.key = key;
+ this.iv = ((IvParameterSpec)params).getIV();
+ this.random = random;
+
+ // DON'T initialize the cipher for AEAD!
+ }
+
+ @Override
+ public Plaintext decrypt(byte contentType, ByteBuffer bb,
+ byte[] sequence) throws GeneralSecurityException {
+ // An implementation may receive an unencrypted record of type
+ // change_cipher_spec consisting of the single byte value 0x01
+ // at any time after the first ClientHello message has been
+ // sent or received and before the peer's Finished message has
+ // been received and MUST simply drop it without further
+ // processing.
+ if (contentType == ContentType.CHANGE_CIPHER_SPEC.id) {
+ return new Plaintext(contentType,
+ ProtocolVersion.NONE.major, ProtocolVersion.NONE.minor,
+ -1, -1L, bb.slice());
+ }
+
+ if (bb.remaining() <= tagSize) {
+ throw new BadPaddingException(
+ "Insufficient buffer remaining for AEAD cipher " +
+ "fragment (" + bb.remaining() + "). Needs to be " +
+ "more than tag size (" + tagSize + ")");
+ }
+
+ byte[] sn = sequence;
+ if (sn == null) {
+ sn = authenticator.sequenceNumber();
+ }
+ byte[] nonce = new byte[iv.length];
+ System.arraycopy(sn, 0, nonce, nonce.length - sn.length,
+ sn.length);
+ for (int i = 0; i < nonce.length; i++) {
+ nonce[i] ^= iv[i];
+ }
+
+ // initialize the AEAD cipher with the unique IV
+ AlgorithmParameterSpec spec = new IvParameterSpec(nonce);
+ try {
+ cipher.init(Cipher.DECRYPT_MODE, key, spec, random);
+ } catch (InvalidKeyException |
+ InvalidAlgorithmParameterException ikae) {
+ // unlikely to happen
+ throw new RuntimeException(
+ "invalid key or spec in AEAD mode", ikae);
+ }
+
+ // Update the additional authentication data, using the
+ // implicit sequence number of the authenticator.
+ byte[] aad = authenticator.acquireAuthenticationBytes(
+ contentType, bb.remaining(), sn);
+ cipher.updateAAD(aad);
+
+ int len = bb.remaining();
+ int pos = bb.position();
+ ByteBuffer dup = bb.duplicate();
+ try {
+ len = cipher.doFinal(dup, bb);
+ } catch (IllegalBlockSizeException ibse) {
+ // unlikely to happen
+ throw new RuntimeException(
+ "Cipher error in AEAD mode \"" + ibse.getMessage() +
+ " \"in JCE provider " + cipher.getProvider().getName());
+ } catch (ShortBufferException sbe) {
+ // catch BouncyCastle buffering error
+ throw new RuntimeException("Cipher buffering error in " +
+ "JCE provider " + cipher.getProvider().getName(), sbe);
+ }
+ // reset the limit to the end of the decrypted data
+ bb.position(pos);
+ bb.limit(pos + len);
+
+ // remove inner plaintext padding
+ int i = bb.limit() - 1;
+ for (; i > 0 && bb.get(i) == 0; i--) {
+ // blank
+ }
+ if (i < (pos + 1)) {
+ throw new BadPaddingException(
+ "Incorrect inner plaintext: no content type");
+ }
+ contentType = bb.get(i);
+ bb.limit(i);
+
+ if (SSLLogger.isOn && SSLLogger.isOn("plaintext")) {
+ SSLLogger.fine(
+ "Plaintext after DECRYPTION", bb.duplicate());
+ }
+
+ return new Plaintext(contentType,
+ ProtocolVersion.NONE.major, ProtocolVersion.NONE.minor,
+ -1, -1L, bb.slice());
+ }
+
+ @Override
+ void dispose() {
+ if (cipher != null) {
+ try {
+ cipher.doFinal();
+ } catch (Exception e) {
+ // swallow all types of exceptions.
+ }
+ }
+ }
+
+ @Override
+ int estimateFragmentSize(int packetSize, int headerSize) {
+ return packetSize - headerSize - tagSize;
+ }
+ }
+ }
+
+ private static final class T13CC20P1305WriteCipherGenerator
+ implements WriteCipherGenerator {
+ @Override
+ public SSLWriteCipher createCipher(SSLCipher sslCipher,
+ Authenticator authenticator, ProtocolVersion protocolVersion,
+ String algorithm, Key key, AlgorithmParameterSpec params,
+ SecureRandom random) throws GeneralSecurityException {
+ return new CC20P1305WriteCipher(authenticator, protocolVersion,
+ sslCipher, algorithm, key, params, random);
+ }
+
+ private static final class CC20P1305WriteCipher extends SSLWriteCipher {
+ private final Cipher cipher;
+ private final int tagSize;
+ private final Key key;
+ private final byte[] iv;
+ private final SecureRandom random;
+
+ CC20P1305WriteCipher(Authenticator authenticator,
+ ProtocolVersion protocolVersion,
+ SSLCipher sslCipher, String algorithm,
+ Key key, AlgorithmParameterSpec params,
+ SecureRandom random) throws GeneralSecurityException {
+ super(authenticator, protocolVersion);
+ this.cipher = JsseJce.getCipher(algorithm);
+ this.tagSize = sslCipher.tagSize;
+ this.key = key;
+ this.iv = ((IvParameterSpec)params).getIV();
+ this.random = random;
+
+ keyLimitCountdown = cipherLimits.getOrDefault(
+ algorithm.toUpperCase() + ":" + tag[0], 0L);
+ if (SSLLogger.isOn && SSLLogger.isOn("ssl")) {
+ SSLLogger.fine("algorithm = " + algorithm.toUpperCase() +
+ ":" + tag[0] + "\ncountdown value = " +
+ keyLimitCountdown);
+ }
+ if (keyLimitCountdown > 0) {
+ keyLimitEnabled = true;
+ }
+
+ // DON'T initialize the cipher for AEAD!
+ }
+
+ @Override
+ public int encrypt(byte contentType,
+ ByteBuffer bb) {
+ byte[] sn = authenticator.sequenceNumber();
+ byte[] nonce = new byte[iv.length];
+ System.arraycopy(sn, 0, nonce, nonce.length - sn.length,
+ sn.length);
+ for (int i = 0; i < nonce.length; i++) {
+ nonce[i] ^= iv[i];
+ }
+
+ // initialize the AEAD cipher for the unique IV
+ AlgorithmParameterSpec spec = new IvParameterSpec(nonce);
+ try {
+ cipher.init(Cipher.ENCRYPT_MODE, key, spec, random);
+ } catch (InvalidKeyException |
+ InvalidAlgorithmParameterException ikae) {
+ // unlikely to happen
+ throw new RuntimeException(
+ "invalid key or spec in AEAD mode", ikae);
+ }
+
+ // Update the additional authentication data, using the
+ // implicit sequence number of the authenticator.
+ int outputSize = cipher.getOutputSize(bb.remaining());
+ byte[] aad = authenticator.acquireAuthenticationBytes(
+ contentType, outputSize, sn);
+ cipher.updateAAD(aad);
+
+ int len = bb.remaining();
+ int pos = bb.position();
+ if (SSLLogger.isOn && SSLLogger.isOn("plaintext")) {
+ SSLLogger.fine(
+ "Plaintext before ENCRYPTION",
+ bb.duplicate());
+ }
+
+ ByteBuffer dup = bb.duplicate();
+ if (outputSize > bb.remaining()) {
+ // Need to expand the limit of the output buffer for
+ // the authentication tag.
+ //
+ // DON'T worry about the buffer's capacity, we have
+ // reserved space for the authentication tag.
+ bb.limit(pos + outputSize);
+ }
+
+ try {
+ len = cipher.doFinal(dup, bb);
+ } catch (IllegalBlockSizeException |
+ BadPaddingException | ShortBufferException ibse) {
+ // unlikely to happen
+ throw new RuntimeException(
+ "Cipher error in AEAD mode in JCE provider " +
+ cipher.getProvider().getName(), ibse);
+ }
+
+ if (len != outputSize) {
+ throw new RuntimeException(
+ "Cipher buffering error in JCE provider " +
+ cipher.getProvider().getName());
+ }
+
+ if (keyLimitEnabled) {
+ keyLimitCountdown -= len;
+ }
+ return len;
+ }
+
+ @Override
+ void dispose() {
+ if (cipher != null) {
+ try {
+ cipher.doFinal();
+ } catch (Exception e) {
+ // swallow all types of exceptions.
+ }
+ }
+ }
+
+ @Override
+ int getExplicitNonceSize() {
+ return 0;
+ }
+
+ @Override
+ int calculateFragmentSize(int packetLimit, int headerSize) {
+ return packetLimit - headerSize - tagSize;
+ }
+
+ @Override
+ int calculatePacketSize(int fragmentSize, int headerSize) {
+ return fragmentSize + headerSize + tagSize;
+ }
+ }
+ }
+
private static void addMac(MAC signer,
ByteBuffer destination, byte contentType) {
if (signer.macAlg().size != 0) {
@@ -2367,4 +2936,3 @@
return results;
}
}
-
--- a/src/java.base/share/classes/sun/security/ssl/SSLContextImpl.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/java.base/share/classes/sun/security/ssl/SSLContextImpl.java Mon Sep 24 10:59:26 2018 -0700
@@ -207,6 +207,10 @@
if (!isInitialized) {
throw new IllegalStateException("SSLContext is not initialized");
}
+ if (isDTLS()) {
+ throw new UnsupportedOperationException(
+ "DTLS not supported with SSLSocket");
+ }
return new SSLSocketFactoryImpl(this);
}
@@ -215,6 +219,10 @@
if (!isInitialized) {
throw new IllegalStateException("SSLContext is not initialized");
}
+ if (isDTLS()) {
+ throw new UnsupportedOperationException(
+ "DTLS not supported with SSLServerSocket");
+ }
return new SSLServerSocketFactoryImpl(this);
}
@@ -1262,6 +1270,21 @@
}
@Override
+ protected SSLParameters engineGetDefaultSSLParameters() {
+ SSLEngine engine = createSSLEngineImpl();
+ return engine.getSSLParameters();
+ }
+
+ @Override
+ protected SSLParameters engineGetSupportedSSLParameters() {
+ SSLEngine engine = createSSLEngineImpl();
+ SSLParameters params = new SSLParameters();
+ params.setCipherSuites(engine.getSupportedCipherSuites());
+ params.setProtocols(engine.getSupportedProtocols());
+ return params;
+ }
+
+ @Override
List<ProtocolVersion> getSupportedProtocolVersions() {
return supportedProtocols;
}
--- a/src/java.base/share/classes/sun/security/ssl/SSLExtensions.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/java.base/share/classes/sun/security/ssl/SSLExtensions.java Mon Sep 24 10:59:26 2018 -0700
@@ -333,7 +333,7 @@
return "<no extension>";
} else {
StringBuilder builder = new StringBuilder(512);
- if (logMap != null) {
+ if (logMap != null && !logMap.isEmpty()) {
for (Map.Entry<Integer, byte[]> en : logMap.entrySet()) {
SSLExtension ext = SSLExtension.valueOf(
handshakeMessage.handshakeType(), en.getKey());
--- a/src/java.base/share/classes/sun/security/ssl/SignatureAlgorithmsExtension.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/java.base/share/classes/sun/security/ssl/SignatureAlgorithmsExtension.java Mon Sep 24 10:59:26 2018 -0700
@@ -525,7 +525,7 @@
// signatures appearing in certificates.
SignatureSchemesSpec certSpec =
(SignatureSchemesSpec)chc.handshakeExtensions.get(
- SSLExtension.CH_SIGNATURE_ALGORITHMS_CERT);
+ SSLExtension.CR_SIGNATURE_ALGORITHMS_CERT);
if (certSpec == null) {
chc.peerRequestedCertSignSchemes = sss;
chc.handshakeSession.setPeerSupportedSignatureAlgorithms(sss);
--- a/src/java.base/share/native/libjli/java.c Sat Sep 22 20:31:45 2018 -0700
+++ b/src/java.base/share/native/libjli/java.c Mon Sep 24 10:59:26 2018 -0700
@@ -1326,7 +1326,9 @@
JLI_StrCmp(arg, "-cp") == 0) {
REPORT_ERROR (has_arg_any_len, ARG_ERROR1, arg);
SetClassPath(value);
- mode = LM_CLASS;
+ if (mode != LM_SOURCE) {
+ mode = LM_CLASS;
+ }
} else if (JLI_StrCmp(arg, "--list-modules") == 0) {
listModules = JNI_TRUE;
} else if (JLI_StrCmp(arg, "--show-resolved-modules") == 0) {
--- a/src/java.base/unix/native/libjava/java_props_md.c Sat Sep 22 20:31:45 2018 -0700
+++ b/src/java.base/unix/native/libjava/java_props_md.c Mon Sep 24 10:59:26 2018 -0700
@@ -348,8 +348,14 @@
* file to correctly read UTF-8 files using the default encoding (see
* 8011194).
*/
- if (strcmp(p,"US-ASCII") == 0 && getenv("LANG") == NULL &&
- getenv("LC_ALL") == NULL && getenv("LC_CTYPE") == NULL) {
+ const char* env_lang = getenv("LANG");
+ const char* env_lc_all = getenv("LC_ALL");
+ const char* env_lc_ctype = getenv("LC_CTYPE");
+
+ if (strcmp(p,"US-ASCII") == 0 &&
+ (env_lang == NULL || strlen(env_lang) == 0) &&
+ (env_lc_all == NULL || strlen(env_lc_all) == 0) &&
+ (env_lc_ctype == NULL || strlen(env_lc_ctype) == 0)) {
*std_encoding = "UTF-8";
}
#endif
--- a/src/java.base/unix/native/libjli/java_md_solinux.h Sat Sep 22 20:31:45 2018 -0700
+++ b/src/java.base/unix/native/libjli/java_md_solinux.h Mon Sep 24 10:59:26 2018 -0700
@@ -46,10 +46,8 @@
* entries, but actual strings can be more efficient (with many compilers).
*/
#ifdef __solaris__
-static const char *system_dir = "/usr/jdk";
static const char *user_dir = "/jdk";
#else /* !__solaris__, i.e. Linux, AIX,.. */
-static const char *system_dir = "/usr/java";
static const char *user_dir = "/java";
#endif
--- a/src/java.desktop/unix/native/common/awt/awt_Font.c Sat Sep 22 20:31:45 2018 -0700
+++ b/src/java.desktop/unix/native/common/awt/awt_Font.c Mon Sep 24 10:59:26 2018 -0700
@@ -638,7 +638,7 @@
/* XXX: sometimes XLoadQueryFont returns a bogus font structure */
/* with negative ascent. */
- if (xfont == (Font) NULL || xfont->ascent < 0) {
+ if (xfont == NULL || xfont->ascent < 0) {
if (xfont != NULL) {
XFreeFont(display, xfont);
}
--- a/src/java.instrument/unix/native/libinstrument/EncodingSupport_md.c Sat Sep 22 20:31:45 2018 -0700
+++ b/src/java.instrument/unix/native/libinstrument/EncodingSupport_md.c Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -63,7 +63,7 @@
static void
utfInitialize(void)
{
- char *codeset;
+ const char* codeset;
/* Set the locale from the environment */
(void)setlocale(LC_ALL, "");
@@ -77,6 +77,20 @@
UTF_DEBUG(("Codeset = %s\n", codeset));
+#ifdef MACOSX
+ /* On Mac, if US-ASCII, but with no env hints, use UTF-8 */
+ const char* env_lang = getenv("LANG");
+ const char* env_lc_all = getenv("LC_ALL");
+ const char* env_lc_ctype = getenv("LC_CTYPE");
+
+ if (strcmp(codeset,"US-ASCII") == 0 &&
+ (env_lang == NULL || strlen(env_lang) == 0) &&
+ (env_lc_all == NULL || strlen(env_lc_all) == 0) &&
+ (env_lc_ctype == NULL || strlen(env_lc_ctype) == 0)) {
+ codeset = "UTF-8";
+ }
+#endif
+
/* If we don't need this, skip it */
if (strcmp(codeset, "UTF-8") == 0 || strcmp(codeset, "utf8") == 0 ) {
UTF_DEBUG(("NO iconv() being used because it is not needed\n"));
@@ -146,6 +160,7 @@
}
/* Failed to do the conversion */
+ UTF_DEBUG(("iconv() failed to do the conversion\n"));
return -1;
}
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/ToHTMLStream.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/ToHTMLStream.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -40,6 +40,7 @@
* because it is used from another package.
*
* @xsl.usage internal
+ * @LastModified: Sept 2018
*/
public final class ToHTMLStream extends ToStream
{
@@ -1049,7 +1050,7 @@
String name,
String value,
ElemDesc elemDesc)
- throws IOException
+ throws IOException, SAXException
{
writer.write(' ');
@@ -1373,7 +1374,7 @@
*/
public void writeAttrString(
final java.io.Writer writer, String string, String encoding)
- throws IOException
+ throws IOException, SAXException
{
final int end = string.length();
if (end > m_attrBuff.length)
@@ -1425,13 +1426,16 @@
}
else
{
- if (Encodings.isHighUTF16Surrogate(ch))
+ if (Encodings.isHighUTF16Surrogate(ch) ||
+ Encodings.isLowUTF16Surrogate(ch))
{
-
- writeUTF16Surrogate(ch, chars, i, end);
- i++; // two input characters processed
- // this increments by one and the for()
- // loop itself increments by another one.
+ if (writeUTF16Surrogate(ch, chars, i, end) >= 0) {
+ // move the index if the low surrogate is consumed
+ // as writeUTF16Surrogate has written the pair
+ if (Encodings.isHighUTF16Surrogate(ch)) {
+ i++;
+ }
+ }
}
// The next is kind of a hack to keep from escaping in the case
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/ToStream.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/ToStream.java Mon Sep 24 10:59:26 2018 -0700
@@ -51,7 +51,7 @@
* serializers (xml, html, text ...) that write output to a stream.
*
* @xsl.usage internal
- * @LastModified: Feb 2018
+ * @LastModified: Sept 2018
*/
abstract public class ToStream extends SerializerBase {
@@ -193,6 +193,8 @@
*/
private boolean m_expandDTDEntities = true;
+ private char m_highSurrogate = 0;
+
/**
* Default constructor
*/
@@ -953,45 +955,46 @@
* @param ch Character array.
* @param i position Where the surrogate was detected.
* @param end The end index of the significant characters.
- * @return 0 if the pair of characters was written out as-is,
- * the unicode code point of the character represented by
- * the surrogate pair if an entity reference with that value
- * was written out.
+ * @return the status of writing a surrogate pair.
+ * -1 -- nothing is written
+ * 0 -- the pair is written as-is
+ * code point -- the pair is written as an entity reference
*
* @throws IOException
* @throws org.xml.sax.SAXException if invalid UTF-16 surrogate detected.
*/
protected int writeUTF16Surrogate(char c, char ch[], int i, int end)
- throws IOException
+ throws IOException, SAXException
{
- int codePoint = 0;
+ int status = -1;
if (i + 1 >= end)
{
- throw new IOException(
- Utils.messages.createMessage(
- MsgKey.ER_INVALID_UTF16_SURROGATE,
- new Object[] { Integer.toHexString((int) c)}));
+ m_highSurrogate = c;
+ return status;
}
- final char high = c;
- final char low = ch[i+1];
+ char high, low;
+ if (m_highSurrogate == 0) {
+ high = c;
+ low = ch[i+1];
+ status = 0;
+ } else {
+ high = m_highSurrogate;
+ low = c;
+ m_highSurrogate = 0;
+ }
+
if (!Encodings.isLowUTF16Surrogate(low)) {
- throw new IOException(
- Utils.messages.createMessage(
- MsgKey.ER_INVALID_UTF16_SURROGATE,
- new Object[] {
- Integer.toHexString((int) c)
- + " "
- + Integer.toHexString(low)}));
+ throwIOE(high, low);
}
final Writer writer = m_writer;
// If we make it to here we have a valid high, low surrogate pair
- if (m_encodingInfo.isInEncoding(c,low)) {
+ if (m_encodingInfo.isInEncoding(high,low)) {
// If the character formed by the surrogate pair
// is in the encoding, so just write it out
- writer.write(ch,i,2);
+ writer.write(new char[]{high, low}, 0, 2);
}
else {
// Don't know what to do with this char, it is
@@ -999,24 +1002,16 @@
// a surrogate pair, so write out as an entity ref
final String encoding = getEncoding();
if (encoding != null) {
- /* The output encoding is known,
- * so somthing is wrong.
- */
- codePoint = Encodings.toCodePoint(high, low);
- // not in the encoding, so write out a character reference
- writer.write('&');
- writer.write('#');
- writer.write(Integer.toString(codePoint));
- writer.write(';');
+ status = writeCharRef(writer, high, low);
} else {
/* The output encoding is not known,
* so just write it out as-is.
*/
- writer.write(ch, i, 2);
+ writer.write(new char[]{high, low}, 0, 2);
}
}
// non-zero only if character reference was written out.
- return codePoint;
+ return status;
}
/**
@@ -1106,32 +1101,7 @@
}
else if (isCData && (!escapingNotNeeded(c)))
{
- // if (i != 0)
- if (m_cdataTagOpen)
- closeCDATA();
-
- // This needs to go into a function...
- if (Encodings.isHighUTF16Surrogate(c))
- {
- writeUTF16Surrogate(c, ch, i, end);
- i++ ; // process two input characters
- }
- else
- {
- writer.write("&#");
-
- String intStr = Integer.toString((int) c);
-
- writer.write(intStr);
- writer.write(';');
- }
-
- // if ((i != 0) && (i < (end - 1)))
- // if (!m_cdataTagOpen && (i < (end - 1)))
- // {
- // writer.write(CDATA_DELIMITER_OPEN);
- // m_cdataTagOpen = true;
- // }
+ i = handleEscaping(writer, c, ch, i, end);
}
else if (
isCData
@@ -1155,25 +1125,8 @@
}
writer.write(c);
}
-
- // This needs to go into a function...
- else if (Encodings.isHighUTF16Surrogate(c))
- {
- if (m_cdataTagOpen)
- closeCDATA();
- writeUTF16Surrogate(c, ch, i, end);
- i++; // process two input characters
- }
- else
- {
- if (m_cdataTagOpen)
- closeCDATA();
- writer.write("&#");
-
- String intStr = Integer.toString((int) c);
-
- writer.write(intStr);
- writer.write(';');
+ else {
+ i = handleEscaping(writer, c, ch, i, end);
}
}
}
@@ -1181,6 +1134,38 @@
}
/**
+ * Handles escaping, writes either with a surrogate pair or a character
+ * reference.
+ *
+ * @param c the current char
+ * @param ch the character array
+ * @param i the current position
+ * @param end the end index of the array
+ * @return the next index
+ *
+ * @throws IOException
+ * @throws org.xml.sax.SAXException if invalid UTF-16 surrogate detected.
+ */
+ private int handleEscaping(Writer writer, char c, char ch[], int i, int end)
+ throws IOException, SAXException {
+ if (Encodings.isHighUTF16Surrogate(c) || Encodings.isLowUTF16Surrogate(c))
+ {
+ if (writeUTF16Surrogate(c, ch, i, end) >= 0) {
+ // move the index if the low surrogate is consumed
+ // as writeUTF16Surrogate has written the pair
+ if (Encodings.isHighUTF16Surrogate(c)) {
+ i++ ;
+ }
+ }
+ }
+ else
+ {
+ writeCharRef(writer, c);
+ }
+ return i;
+ }
+
+ /**
* Ends an un-escaping section.
*
* @see #startNonEscaping
@@ -1246,7 +1231,7 @@
m_elemContext.m_startTagOpen = false;
}
- if (shouldIndent())
+ if (!m_cdataTagOpen && shouldIndent())
indent();
boolean writeCDataBrackets =
@@ -1644,7 +1629,7 @@
int i,
char ch,
int lastDirty,
- boolean fromTextNode) throws IOException
+ boolean fromTextNode) throws IOException, SAXException
{
int startClean = lastDirty + 1;
// if we have some clean characters accumulated
@@ -1723,54 +1708,40 @@
int len,
boolean fromTextNode,
boolean escLF)
- throws IOException
+ throws IOException, SAXException
{
int pos = accumDefaultEntity(writer, ch, i, chars, len, fromTextNode, escLF);
if (i == pos)
{
+ if (m_highSurrogate != 0) {
+ if (!(Encodings.isLowUTF16Surrogate(ch))) {
+ throwIOE(m_highSurrogate, ch);
+ }
+ writeCharRef(writer, m_highSurrogate, ch);
+ m_highSurrogate = 0;
+ return ++pos;
+ }
+
if (Encodings.isHighUTF16Surrogate(ch))
{
-
- // Should be the UTF-16 low surrogate of the hig/low pair.
- char next;
- // Unicode code point formed from the high/low pair.
- int codePoint = 0;
-
if (i + 1 >= len)
{
- throw new IOException(
- Utils.messages.createMessage(
- MsgKey.ER_INVALID_UTF16_SURROGATE,
- new Object[] { Integer.toHexString(ch)}));
- //"Invalid UTF-16 surrogate detected: "
-
- //+Integer.toHexString(ch)+ " ?");
+ // save for the next read
+ m_highSurrogate = ch;
+ pos++;
}
else
{
- next = chars[++i];
-
+ // the next should be the UTF-16 low surrogate of the hig/low pair.
+ char next = chars[++i];
if (!(Encodings.isLowUTF16Surrogate(next)))
- throw new IOException(
- Utils.messages.createMessage(
- MsgKey
- .ER_INVALID_UTF16_SURROGATE,
- new Object[] {
- Integer.toHexString(ch)
- + " "
- + Integer.toHexString(next)}));
- //"Invalid UTF-16 surrogate detected: "
-
- //+Integer.toHexString(ch)+" "+Integer.toHexString(next));
- codePoint = Encodings.toCodePoint(ch,next);
+ throwIOE(ch, next);
+
+ writeCharRef(writer, ch, next);
+ pos += 2; // count the two characters that went into writing out this entity
}
-
- writer.write("&#");
- writer.write(Integer.toString(codePoint));
- writer.write(';');
- pos += 2; // count the two characters that went into writing out this entity
}
else
{
@@ -1782,18 +1753,14 @@
if (isCharacterInC0orC1Range(ch) ||
(XMLVERSION11.equals(getVersion()) && isNELorLSEPCharacter(ch)))
{
- writer.write("&#");
- writer.write(Integer.toString(ch));
- writer.write(';');
+ writeCharRef(writer, ch);
}
else if ((!escapingNotNeeded(ch) ||
( (fromTextNode && m_charInfo.isSpecialTextChar(ch))
|| (!fromTextNode && m_charInfo.isSpecialAttrChar(ch))))
- && m_elemContext.m_currentElemDepth > 0)
+ && m_elemContext.m_currentElemDepth > 0)
{
- writer.write("&#");
- writer.write(Integer.toString(ch));
- writer.write(';');
+ writeCharRef(writer, ch);
}
else
{
@@ -1807,6 +1774,45 @@
}
/**
+ * Writes out a character reference.
+ * @param writer the writer
+ * @param c the character
+ * @throws IOException
+ */
+ private void writeCharRef(Writer writer, char c) throws IOException, SAXException {
+ if (m_cdataTagOpen)
+ closeCDATA();
+ writer.write("&#");
+ writer.write(Integer.toString(c));
+ writer.write(';');
+ }
+
+ /**
+ * Writes out a pair of surrogates as a character reference
+ * @param writer the writer
+ * @param high the high surrogate
+ * @param low the low surrogate
+ * @throws IOException
+ */
+ private int writeCharRef(Writer writer, char high, char low) throws IOException, SAXException {
+ if (m_cdataTagOpen)
+ closeCDATA();
+ // Unicode code point formed from the high/low pair.
+ int codePoint = Encodings.toCodePoint(high, low);
+ writer.write("&#");
+ writer.write(Integer.toString(codePoint));
+ writer.write(';');
+ return codePoint;
+ }
+
+ private void throwIOE(char ch, char next) throws IOException {
+ throw new IOException(Utils.messages.createMessage(
+ MsgKey.ER_INVALID_UTF16_SURROGATE,
+ new Object[] {Integer.toHexString(ch) + " "
+ + Integer.toHexString(next)}));
+ }
+
+ /**
* Receive notification of the beginning of an element, although this is a
* SAX method additional namespace or attribute information can occur before
* or after this call, that is associated with this element.
@@ -2053,7 +2059,7 @@
Writer writer,
String string,
String encoding)
- throws IOException
+ throws IOException, SAXException
{
final int len = string.length();
if (len > m_attrBuff.length)
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/ToTextStream.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/ToTextStream.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,6 +1,5 @@
/*
- * reserved comment block
- * DO NOT REMOVE OR ALTER!
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -34,6 +33,7 @@
* This class converts SAX or SAX-like calls to a
* serialized document for xsl:output method of "text".
* @xsl.usage internal
+ * @LastModified: Sept 2018
*/
public final class ToTextStream extends ToStream
{
@@ -295,23 +295,32 @@
} else if (m_encodingInfo.isInEncoding(c)) {
writer.write(c);
// one input char processed
- } else if (Encodings.isHighUTF16Surrogate(c)) {
+ } else if (Encodings.isHighUTF16Surrogate(c) ||
+ Encodings.isLowUTF16Surrogate(c)) {
final int codePoint = writeUTF16Surrogate(c, ch, i, end);
- if (codePoint != 0) {
- // I think we can just emit the message,
- // not crash and burn.
- final String integralValue = Integer.toString(codePoint);
- final String msg = Utils.messages.createMessage(
- MsgKey.ER_ILLEGAL_CHARACTER,
- new Object[] { integralValue, encoding });
+ if (codePoint >= 0) {
+ // move the index if the low surrogate is consumed
+ // as writeUTF16Surrogate has written the pair
+ if (Encodings.isHighUTF16Surrogate(c)) {
+ i++;
+ }
- //Older behavior was to throw the message,
- //but newer gentler behavior is to write a message to System.err
- //throw new SAXException(msg);
- System.err.println(msg);
+ // printing to the console is not appropriate, but will leave
+ // it as is for compatibility.
+ if (codePoint >0) {
+ // I think we can just emit the message,
+ // not crash and burn.
+ final String integralValue = Integer.toString(codePoint);
+ final String msg = Utils.messages.createMessage(
+ MsgKey.ER_ILLEGAL_CHARACTER,
+ new Object[] { integralValue, encoding });
+ //Older behavior was to throw the message,
+ //but newer gentler behavior is to write a message to System.err
+ //throw new SAXException(msg);
+ System.err.println(msg);
+ }
}
- i++; // two input chars processed
} else {
// Don't know what to do with this char, it is
// not in the encoding and not a high char in
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TransTypes.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TransTypes.java Mon Sep 24 10:59:26 2018 -0700
@@ -772,7 +772,7 @@
}
}
}
- result = tree;
+ result = retype(tree, tree.type, pt);
}
public void visitTypeTest(JCInstanceOf tree) {
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassReader.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassReader.java Mon Sep 24 10:59:26 2018 -0700
@@ -1639,9 +1639,9 @@
}
ListBuffer<CompoundAnnotationProxy> proxies = new ListBuffer<>();
for (CompoundAnnotationProxy proxy : annotations) {
- if (proxy.type.tsym == syms.proprietaryType.tsym)
+ if (proxy.type.tsym.flatName() == syms.proprietaryType.tsym.flatName())
sym.flags_field |= PROPRIETARY;
- else if (proxy.type.tsym == syms.profileType.tsym) {
+ else if (proxy.type.tsym.flatName() == syms.profileType.tsym.flatName()) {
if (profile != Profile.DEFAULT) {
for (Pair<Name, Attribute> v : proxy.values) {
if (v.fst == names.value && v.snd instanceof Attribute.Constant) {
@@ -2645,8 +2645,6 @@
}
protected ClassSymbol enterClass(Name name) {
- if (syms.proprietaryType.tsym.flatName() == name)
- return (ClassSymbol) syms.proprietaryType.tsym;
return syms.enterClass(currentModule, name);
}
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/platform/JDKPlatformProvider.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/platform/JDKPlatformProvider.java Mon Sep 24 10:59:26 2018 -0700
@@ -45,6 +45,7 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Map.Entry;
import java.util.NoSuchElementException;
import java.util.Set;
import java.util.TreeSet;
@@ -61,6 +62,8 @@
import javax.tools.StandardLocation;
import com.sun.source.util.Plugin;
+import com.sun.tools.javac.code.Source;
+import com.sun.tools.javac.code.Source.Feature;
import com.sun.tools.javac.file.CacheFSInfo;
import com.sun.tools.javac.file.JavacFileManager;
import com.sun.tools.javac.jvm.Target;
@@ -252,52 +255,64 @@
ctSym2FileSystem.put(file, fs = FileSystems.newFileSystem(file, null));
}
- List<Path> paths = new ArrayList<>();
- Path modules = fs.getPath(ctSymVersion + "-modules");
Path root = fs.getRootDirectories().iterator().next();
- boolean pathsSet = false;
+ boolean hasModules =
+ Feature.MODULES.allowedInSource(Source.lookup(sourceVersion));
+ Path systemModules = root.resolve(ctSymVersion).resolve("system-modules");
Charset utf8 = Charset.forName("UTF-8");
- try (DirectoryStream<Path> dir = Files.newDirectoryStream(root)) {
- for (Path section : dir) {
- if (section.getFileName().toString().contains(ctSymVersion) &&
- !section.getFileName().toString().contains("-")) {
- Path systemModules = section.resolve("system-modules");
-
- if (Files.isRegularFile(systemModules)) {
- fm.handleOption("--system", Arrays.asList("none").iterator());
+ if (!hasModules) {
+ List<Path> paths = new ArrayList<>();
- Path jrtModules =
- FileSystems.getFileSystem(URI.create("jrt:/"))
- .getPath("modules");
- try (Stream<String> lines =
- Files.lines(systemModules, utf8)) {
- lines.map(line -> jrtModules.resolve(line))
- .filter(mod -> Files.exists(mod))
- .forEach(mod -> setModule(fm, mod));
+ try (DirectoryStream<Path> dir = Files.newDirectoryStream(root)) {
+ for (Path section : dir) {
+ if (section.getFileName().toString().contains(ctSymVersion) &&
+ !section.getFileName().toString().contains("-")) {
+ try (DirectoryStream<Path> modules = Files.newDirectoryStream(section)) {
+ for (Path module : modules) {
+ paths.add(module);
+ }
}
- pathsSet = true;
- } else {
- paths.add(section);
}
}
}
- }
- if (Files.isDirectory(modules)) {
- try (DirectoryStream<Path> dir = Files.newDirectoryStream(modules)) {
- fm.handleOption("--system", Arrays.asList("none").iterator());
+ fm.setLocationFromPaths(StandardLocation.PLATFORM_CLASS_PATH, paths);
+ } else if (Files.isRegularFile(systemModules)) {
+ fm.handleOption("--system", Arrays.asList("none").iterator());
- for (Path module : dir) {
- fm.setLocationForModule(StandardLocation.SYSTEM_MODULES,
- module.getFileName().toString(),
- Stream.concat(paths.stream(),
- Stream.of(module))
- .collect(Collectors.toList()));
+ Path jrtModules =
+ FileSystems.getFileSystem(URI.create("jrt:/"))
+ .getPath("modules");
+ try (Stream<String> lines =
+ Files.lines(systemModules, utf8)) {
+ lines.map(line -> jrtModules.resolve(line))
+ .filter(mod -> Files.exists(mod))
+ .forEach(mod -> setModule(fm, mod));
+ }
+ } else {
+ Map<String, List<Path>> module2Paths = new HashMap<>();
+
+ try (DirectoryStream<Path> dir = Files.newDirectoryStream(root)) {
+ for (Path section : dir) {
+ if (section.getFileName().toString().contains(ctSymVersion) &&
+ !section.getFileName().toString().contains("-")) {
+ try (DirectoryStream<Path> modules = Files.newDirectoryStream(section)) {
+ for (Path module : modules) {
+ module2Paths.computeIfAbsent(module.getFileName().toString(), dummy -> new ArrayList<>()).add(module);
+ }
+ }
+ }
}
}
- } else if (!pathsSet) {
- fm.setLocationFromPaths(StandardLocation.PLATFORM_CLASS_PATH, paths);
+
+ fm.handleOption("--system", Arrays.asList("none").iterator());
+
+ for (Entry<String, List<Path>> e : module2Paths.entrySet()) {
+ fm.setLocationForModule(StandardLocation.SYSTEM_MODULES,
+ e.getKey(),
+ e.getValue());
+ }
}
return fm;
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/launcher.properties Sat Sep 22 20:31:45 2018 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/launcher.properties Mon Sep 24 10:59:26 2018 -0700
@@ -82,21 +82,21 @@
error:\u0020
launcher.err.no.args=\
- no filename
+ no path for source file
# 0: string
launcher.err.invalid.filename=\
- invalid filename: {0}
+ invalid path for source file: {0}
# 0: path
launcher.err.file.not.found=\
- file not found: {0}
+ source file not found: {0}
launcher.err.compilation.failed=\
compilation failed
launcher.err.no.class=\
- no class declared in file
+ no class declared in source file
launcher.err.main.not.public.static=\
''main'' method is not declared ''public static''
@@ -122,7 +122,7 @@
# 0: path, 1: object
launcher.err.cant.read.file=\
- error reading file {0}: {1}
+ error reading source file {0}: {1}
# 0: string
launcher.err.no.value.for.option=\
--- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11TlsKeyMaterialGenerator.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11TlsKeyMaterialGenerator.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2016, 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
@@ -38,6 +38,7 @@
import static sun.security.pkcs11.TemplateManager.*;
import sun.security.pkcs11.wrapper.*;
+
import static sun.security.pkcs11.wrapper.PKCS11Constants.*;
/**
@@ -61,6 +62,8 @@
// mechanism id
private long mechanism;
+ private int tlsVersion;
+
// parameter spec
@SuppressWarnings("deprecation")
private TlsKeyMaterialParameterSpec spec;
@@ -96,14 +99,14 @@
}
TlsKeyMaterialParameterSpec spec = (TlsKeyMaterialParameterSpec)params;
- int version = (spec.getMajorVersion() << 8) | spec.getMinorVersion();
+ tlsVersion = (spec.getMajorVersion() << 8) | spec.getMinorVersion();
- if ((version == 0x0300 && !supportSSLv3) || (version < 0x0300) ||
- (version > 0x0302)) {
+ if ((tlsVersion == 0x0300 && !supportSSLv3) ||
+ (tlsVersion < 0x0300) || (tlsVersion > 0x0303)) {
throw new InvalidAlgorithmParameterException
("Only" + (supportSSLv3? " SSL 3.0,": "") +
- " TLS 1.0, and TLS 1.1 are supported (0x" +
- Integer.toHexString(version) + ")");
+ " TLS 1.0, TLS 1.1 and TLS 1.2 are supported (" +
+ tlsVersion + ")");
}
try {
p11Key = P11SecretKeyFactory.convertKey
@@ -112,8 +115,11 @@
throw new InvalidAlgorithmParameterException("init() failed", e);
}
this.spec = spec;
- this.mechanism = (version == 0x0300)?
- CKM_SSL3_KEY_AND_MAC_DERIVE : CKM_TLS_KEY_AND_MAC_DERIVE;
+ if (tlsVersion == 0x0300) {
+ mechanism = CKM_SSL3_KEY_AND_MAC_DERIVE;
+ } else if (tlsVersion == 0x0301 || tlsVersion == 0x0302) {
+ mechanism = CKM_TLS_KEY_AND_MAC_DERIVE;
+ }
}
protected void engineInit(int keysize, SecureRandom random) {
@@ -141,8 +147,18 @@
CK_SSL3_RANDOM_DATA random = new CK_SSL3_RANDOM_DATA
(spec.getClientRandom(), spec.getServerRandom());
- CK_SSL3_KEY_MAT_PARAMS params = new CK_SSL3_KEY_MAT_PARAMS
- (macBits, keyBits, ivBits, isExportable, random);
+ Object params = null;
+ CK_MECHANISM ckMechanism = null;
+ if (tlsVersion < 0x0303) {
+ params = new CK_SSL3_KEY_MAT_PARAMS
+ (macBits, keyBits, ivBits, isExportable, random);
+ ckMechanism = new CK_MECHANISM(mechanism, (CK_SSL3_KEY_MAT_PARAMS)params);
+ } else if (tlsVersion == 0x0303) {
+ params = new CK_TLS12_KEY_MAT_PARAMS
+ (macBits, keyBits, ivBits, isExportable, random,
+ Functions.getHashMechId(spec.getPRFHashAlg()));
+ ckMechanism = new CK_MECHANISM(mechanism, (CK_TLS12_KEY_MAT_PARAMS)params);
+ }
String cipherAlgorithm = spec.getCipherAlgorithm();
long keyType = P11SecretKeyFactory.getKeyType(cipherAlgorithm);
@@ -173,10 +189,15 @@
attributes = token.getAttributes
(O_GENERATE, CKO_SECRET_KEY, keyType, attributes);
// the returned keyID is a dummy, ignore
- long keyID = token.p11.C_DeriveKey(session.id(),
- new CK_MECHANISM(mechanism, params), p11Key.keyID, attributes);
+ token.p11.C_DeriveKey(session.id(),
+ ckMechanism, p11Key.keyID, attributes);
- CK_SSL3_KEY_MAT_OUT out = params.pReturnedKeyMaterial;
+ CK_SSL3_KEY_MAT_OUT out = null;
+ if (params instanceof CK_SSL3_KEY_MAT_PARAMS) {
+ out = ((CK_SSL3_KEY_MAT_PARAMS)params).pReturnedKeyMaterial;
+ } else if (params instanceof CK_TLS12_KEY_MAT_PARAMS) {
+ out = ((CK_TLS12_KEY_MAT_PARAMS)params).pReturnedKeyMaterial;
+ }
// Note that the MAC keys do not inherit all attributes from the
// template, but they do inherit the sensitive/extractable/token
// flags, which is all P11Key cares about.
--- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11TlsMasterSecretGenerator.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11TlsMasterSecretGenerator.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2016, 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
@@ -29,12 +29,11 @@
import java.security.spec.AlgorithmParameterSpec;
import javax.crypto.*;
-import javax.crypto.spec.*;
-
import sun.security.internal.spec.TlsMasterSecretParameterSpec;
import static sun.security.pkcs11.TemplateManager.*;
import sun.security.pkcs11.wrapper.*;
+
import static sun.security.pkcs11.wrapper.PKCS11Constants.*;
/**
@@ -57,6 +56,8 @@
// mechanism id
private long mechanism;
+ private int tlsVersion;
+
@SuppressWarnings("deprecation")
private TlsMasterSecretParameterSpec spec;
private P11Key p11Key;
@@ -91,13 +92,13 @@
}
TlsMasterSecretParameterSpec spec = (TlsMasterSecretParameterSpec)params;
- int version = (spec.getMajorVersion() << 8) | spec.getMinorVersion();
- if ((version == 0x0300 && !supportSSLv3) || (version < 0x0300) ||
- (version > 0x0302)) {
+ tlsVersion = (spec.getMajorVersion() << 8) | spec.getMinorVersion();
+ if ((tlsVersion == 0x0300 && !supportSSLv3) ||
+ (tlsVersion < 0x0300) || (tlsVersion > 0x0303)) {
throw new InvalidAlgorithmParameterException
("Only" + (supportSSLv3? " SSL 3.0,": "") +
- " TLS 1.0, and TLS 1.1 are supported (0x" +
- Integer.toHexString(version) + ")");
+ " TLS 1.0, TLS 1.1 and TLS 1.2 are supported (" +
+ tlsVersion + ")");
}
SecretKey key = spec.getPremasterSecret();
@@ -109,9 +110,19 @@
throw new InvalidAlgorithmParameterException("init() failed", e);
}
this.spec = spec;
- if (p11Key.getAlgorithm().equals("TlsRsaPremasterSecret")) {
- mechanism = (version == 0x0300) ? CKM_SSL3_MASTER_KEY_DERIVE
- : CKM_TLS_MASTER_KEY_DERIVE;
+ final boolean isTlsRsaPremasterSecret =
+ p11Key.getAlgorithm().equals("TlsRsaPremasterSecret");
+ if (tlsVersion == 0x0300) {
+ mechanism = isTlsRsaPremasterSecret ?
+ CKM_SSL3_MASTER_KEY_DERIVE : CKM_SSL3_MASTER_KEY_DERIVE_DH;
+ } else if (tlsVersion == 0x0301 || tlsVersion == 0x0302) {
+ mechanism = isTlsRsaPremasterSecret ?
+ CKM_TLS_MASTER_KEY_DERIVE : CKM_TLS_MASTER_KEY_DERIVE_DH;
+ } else if (tlsVersion == 0x0303) {
+ mechanism = isTlsRsaPremasterSecret ?
+ CKM_TLS12_MASTER_KEY_DERIVE : CKM_TLS12_MASTER_KEY_DERIVE_DH;
+ }
+ if (isTlsRsaPremasterSecret) {
ckVersion = new CK_VERSION(0, 0);
} else {
// Note: we use DH for all non-RSA premaster secrets. That includes
@@ -120,8 +131,6 @@
// TLS PRF (or the SSL equivalent).
// The only thing special about RSA master secret calculation is
// that it extracts the version numbers from the premaster secret.
- mechanism = (version == 0x0300) ? CKM_SSL3_MASTER_KEY_DERIVE_DH
- : CKM_TLS_MASTER_KEY_DERIVE_DH;
ckVersion = null;
}
}
@@ -139,23 +148,31 @@
byte[] serverRandom = spec.getServerRandom();
CK_SSL3_RANDOM_DATA random =
new CK_SSL3_RANDOM_DATA(clientRandom, serverRandom);
- CK_SSL3_MASTER_KEY_DERIVE_PARAMS params =
- new CK_SSL3_MASTER_KEY_DERIVE_PARAMS(random, ckVersion);
-
+ CK_MECHANISM ckMechanism = null;
+ if (tlsVersion < 0x0303) {
+ CK_SSL3_MASTER_KEY_DERIVE_PARAMS params =
+ new CK_SSL3_MASTER_KEY_DERIVE_PARAMS(random, ckVersion);
+ ckMechanism = new CK_MECHANISM(mechanism, params);
+ } else if (tlsVersion == 0x0303) {
+ CK_TLS12_MASTER_KEY_DERIVE_PARAMS params =
+ new CK_TLS12_MASTER_KEY_DERIVE_PARAMS(random, ckVersion,
+ Functions.getHashMechId(spec.getPRFHashAlg()));
+ ckMechanism = new CK_MECHANISM(mechanism, params);
+ }
Session session = null;
try {
session = token.getObjSession();
CK_ATTRIBUTE[] attributes = token.getAttributes(O_GENERATE,
CKO_SECRET_KEY, CKK_GENERIC_SECRET, new CK_ATTRIBUTE[0]);
long keyID = token.p11.C_DeriveKey(session.id(),
- new CK_MECHANISM(mechanism, params), p11Key.keyID, attributes);
+ ckMechanism, p11Key.keyID, attributes);
int major, minor;
- if (params.pVersion == null) {
+ if (ckVersion == null) {
major = -1;
minor = -1;
} else {
- major = params.pVersion.major;
- minor = params.pVersion.minor;
+ major = ckVersion.major;
+ minor = ckVersion.minor;
}
SecretKey key = P11Key.masterSecretKey(session, keyID,
"TlsMasterSecret", 48 << 3, attributes, major, minor);
--- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11TlsPrfGenerator.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11TlsPrfGenerator.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2014, 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
@@ -126,8 +126,47 @@
if (spec == null) {
throw new IllegalStateException("TlsPrfGenerator must be initialized");
}
+
+ byte[] seed = spec.getSeed();
+
+ // TLS 1.2
+ if (mechanism == CKM_TLS_MAC) {
+ SecretKey k = null;
+ int ulServerOrClient = 0;
+ if (spec.getLabel().equals("server finished")) {
+ ulServerOrClient = 1;
+ }
+ if (spec.getLabel().equals("client finished")) {
+ ulServerOrClient = 2;
+ }
+
+ if (ulServerOrClient != 0) {
+ // Finished message
+ CK_TLS_MAC_PARAMS params = new CK_TLS_MAC_PARAMS(
+ Functions.getHashMechId(spec.getPRFHashAlg()),
+ spec.getOutputLength(), ulServerOrClient);
+ Session session = null;
+ try {
+ session = token.getOpSession();
+ token.p11.C_SignInit(session.id(),
+ new CK_MECHANISM(mechanism, params), p11Key.keyID);
+ token.p11.C_SignUpdate(session.id(), 0, seed, 0, seed.length);
+ byte[] out = token.p11.C_SignFinal
+ (session.id(), spec.getOutputLength());
+ k = new SecretKeySpec(out, "TlsPrf");
+ } catch (PKCS11Exception e) {
+ throw new ProviderException("Could not calculate PRF", e);
+ } finally {
+ token.releaseSession(session);
+ }
+ } else {
+ throw new ProviderException("Only Finished message authentication code"+
+ " generation supported for TLS 1.2.");
+ }
+ return k;
+ }
+
byte[] label = P11Util.getBytesUTF8(spec.getLabel());
- byte[] seed = spec.getSeed();
if (mechanism == CKM_NSS_TLS_PRF_GENERAL) {
Session session = null;
--- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11TlsRsaPremasterSecretGenerator.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11TlsRsaPremasterSecretGenerator.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2016, 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
@@ -89,15 +89,14 @@
TlsRsaPremasterSecretParameterSpec spec =
(TlsRsaPremasterSecretParameterSpec) params;
-
- int version = (spec.getMajorVersion() << 8) | spec.getMinorVersion();
+ int tlsVersion = (spec.getMajorVersion() << 8) | spec.getMinorVersion();
- if ((version == 0x0300 && !supportSSLv3) || (version < 0x0300) ||
- (version > 0x0302)) {
+ if ((tlsVersion == 0x0300 && !supportSSLv3) ||
+ (tlsVersion < 0x0300) || (tlsVersion > 0x0303)) {
throw new InvalidAlgorithmParameterException
("Only" + (supportSSLv3? " SSL 3.0,": "") +
- " TLS 1.0, and TLS 1.1 are supported (0x" +
- Integer.toHexString(version) + ")");
+ " TLS 1.0, TLS 1.1 and TLS 1.2 are supported (" +
+ tlsVersion + ")");
}
this.spec = spec;
}
--- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/SunPKCS11.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/SunPKCS11.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -744,38 +744,28 @@
s("1.2.840.113549.1.1.13", "OID.1.2.840.113549.1.1.13"),
m(CKM_SHA512_RSA_PKCS, CKM_RSA_PKCS, CKM_RSA_X_509));
- /*
- * TLS 1.2 uses a different hash algorithm than 1.0/1.1 for the
- * PRF calculations. As of 2010, there is no PKCS11-level
- * support for TLS 1.2 PRF calculations, and no known OS's have
- * an internal variant we could use. Therefore for TLS 1.2, we
- * are updating JSSE to request different provider algorithms
- * (e.g. "SunTls12Prf"), and currently only SunJCE has these
- * TLS 1.2 algorithms.
- *
- * If we reused the names such as "SunTlsPrf", the PKCS11
- * providers would need be updated to fail correctly when
- * presented with the wrong version number (via
- * Provider.Service.supportsParameters()), and we would also
- * need to add the appropriate supportsParamters() checks into
- * KeyGenerators (not currently there).
- *
- * In the future, if PKCS11 support is added, we will restructure
- * this.
- */
d(KG, "SunTlsRsaPremasterSecret",
"sun.security.pkcs11.P11TlsRsaPremasterSecretGenerator",
+ s("SunTls12RsaPremasterSecret"),
m(CKM_SSL3_PRE_MASTER_KEY_GEN, CKM_TLS_PRE_MASTER_KEY_GEN));
d(KG, "SunTlsMasterSecret",
"sun.security.pkcs11.P11TlsMasterSecretGenerator",
m(CKM_SSL3_MASTER_KEY_DERIVE, CKM_TLS_MASTER_KEY_DERIVE,
CKM_SSL3_MASTER_KEY_DERIVE_DH,
CKM_TLS_MASTER_KEY_DERIVE_DH));
+ d(KG, "SunTls12MasterSecret",
+ "sun.security.pkcs11.P11TlsMasterSecretGenerator",
+ m(CKM_TLS12_MASTER_KEY_DERIVE, CKM_TLS12_MASTER_KEY_DERIVE_DH));
d(KG, "SunTlsKeyMaterial",
"sun.security.pkcs11.P11TlsKeyMaterialGenerator",
m(CKM_SSL3_KEY_AND_MAC_DERIVE, CKM_TLS_KEY_AND_MAC_DERIVE));
+ d(KG, "SunTls12KeyMaterial",
+ "sun.security.pkcs11.P11TlsKeyMaterialGenerator",
+ m(CKM_TLS12_KEY_AND_MAC_DERIVE));
d(KG, "SunTlsPrf", "sun.security.pkcs11.P11TlsPrfGenerator",
m(CKM_TLS_PRF, CKM_NSS_TLS_PRF_GENERAL));
+ d(KG, "SunTls12Prf", "sun.security.pkcs11.P11TlsPrfGenerator",
+ m(CKM_TLS_MAC));
}
// background thread that periodically checks for token insertion
@@ -1042,13 +1032,16 @@
if (algorithm == "SunTlsRsaPremasterSecret") {
return new P11TlsRsaPremasterSecretGenerator(
token, algorithm, mechanism);
- } else if (algorithm == "SunTlsMasterSecret") {
+ } else if (algorithm == "SunTlsMasterSecret"
+ || algorithm == "SunTls12MasterSecret") {
return new P11TlsMasterSecretGenerator(
token, algorithm, mechanism);
- } else if (algorithm == "SunTlsKeyMaterial") {
+ } else if (algorithm == "SunTlsKeyMaterial"
+ || algorithm == "SunTls12KeyMaterial") {
return new P11TlsKeyMaterialGenerator(
token, algorithm, mechanism);
- } else if (algorithm == "SunTlsPrf") {
+ } else if (algorithm == "SunTlsPrf"
+ || algorithm == "SunTls12Prf") {
return new P11TlsPrfGenerator(token, algorithm, mechanism);
} else {
return new P11KeyGenerator(token, algorithm, mechanism);
--- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/wrapper/CK_MECHANISM.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/wrapper/CK_MECHANISM.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
*/
/* Copyright (c) 2002 Graz University of Technology. All rights reserved.
@@ -112,14 +112,26 @@
init(mechanism, params);
}
+ public CK_MECHANISM(long mechanism, CK_TLS12_MASTER_KEY_DERIVE_PARAMS params) {
+ init(mechanism, params);
+ }
+
public CK_MECHANISM(long mechanism, CK_SSL3_KEY_MAT_PARAMS params) {
init(mechanism, params);
}
+ public CK_MECHANISM(long mechanism, CK_TLS12_KEY_MAT_PARAMS params) {
+ init(mechanism, params);
+ }
+
public CK_MECHANISM(long mechanism, CK_TLS_PRF_PARAMS params) {
init(mechanism, params);
}
+ public CK_MECHANISM(long mechanism, CK_TLS_MAC_PARAMS params) {
+ init(mechanism, params);
+ }
+
public CK_MECHANISM(long mechanism, CK_ECDH1_DERIVE_PARAMS params) {
init(mechanism, params);
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/wrapper/CK_TLS12_KEY_MAT_PARAMS.java Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,150 @@
+/*
+ * Copyright (c) 2018, Red Hat, Inc. and/or its affiliates.
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package sun.security.pkcs11.wrapper;
+
+/**
+ * CK_TLS12_KEY_MAT_PARAMS from PKCS#11 v2.40.
+ */
+public class CK_TLS12_KEY_MAT_PARAMS {
+
+ /**
+ * <B>PKCS#11:</B>
+ * <PRE>
+ * CK_ULONG ulMacSizeInBits;
+ * </PRE>
+ */
+ public long ulMacSizeInBits;
+
+ /**
+ * <B>PKCS#11:</B>
+ * <PRE>
+ * CK_ULONG ulKeySizeInBits;
+ * </PRE>
+ */
+ public long ulKeySizeInBits;
+
+ /**
+ * <B>PKCS#11:</B>
+ * <PRE>
+ * CK_ULONG ulIVSizeInBits;
+ * </PRE>
+ */
+ public long ulIVSizeInBits;
+
+ /**
+ * <B>PKCS#11:</B>
+ * <PRE>
+ * CK_BBOOL bIsExport;
+ * </PRE>
+ */
+ public boolean bIsExport;
+
+ /**
+ * <B>PKCS#11:</B>
+ * <PRE>
+ * CK_SSL3_RANDOM_DATA RandomInfo;
+ * </PRE>
+ */
+ public CK_SSL3_RANDOM_DATA RandomInfo;
+
+ /**
+ * <B>PKCS#11:</B>
+ * <PRE>
+ * CK_SSL3_KEY_MAT_OUT_PTR pReturnedKeyMaterial;
+ * </PRE>
+ */
+ public CK_SSL3_KEY_MAT_OUT pReturnedKeyMaterial;
+
+ /**
+ * <B>PKCS#11:</B>
+ * <PRE>
+ * CK_MECHANISM_TYPE prfHashMechanism;
+ * </PRE>
+ */
+ public long prfHashMechanism;
+
+ public CK_TLS12_KEY_MAT_PARAMS(
+ int macSize, int keySize, int ivSize, boolean export,
+ CK_SSL3_RANDOM_DATA random, long prfHashMechanism) {
+ ulMacSizeInBits = macSize;
+ ulKeySizeInBits = keySize;
+ ulIVSizeInBits = ivSize;
+ bIsExport = export;
+ RandomInfo = random;
+ pReturnedKeyMaterial = new CK_SSL3_KEY_MAT_OUT();
+ if (ivSize != 0) {
+ int n = ivSize >> 3;
+ pReturnedKeyMaterial.pIVClient = new byte[n];
+ pReturnedKeyMaterial.pIVServer = new byte[n];
+ }
+ this.prfHashMechanism = prfHashMechanism;
+ }
+
+ /**
+ * Returns the string representation of CK_TLS12_KEY_MAT_PARAMS.
+ *
+ * @return the string representation of CK_TLS12_KEY_MAT_PARAMS
+ */
+ public String toString() {
+ StringBuilder buffer = new StringBuilder();
+
+ buffer.append(Constants.INDENT);
+ buffer.append("ulMacSizeInBits: ");
+ buffer.append(ulMacSizeInBits);
+ buffer.append(Constants.NEWLINE);
+
+ buffer.append(Constants.INDENT);
+ buffer.append("ulKeySizeInBits: ");
+ buffer.append(ulKeySizeInBits);
+ buffer.append(Constants.NEWLINE);
+
+ buffer.append(Constants.INDENT);
+ buffer.append("ulIVSizeInBits: ");
+ buffer.append(ulIVSizeInBits);
+ buffer.append(Constants.NEWLINE);
+
+ buffer.append(Constants.INDENT);
+ buffer.append("bIsExport: ");
+ buffer.append(bIsExport);
+ buffer.append(Constants.NEWLINE);
+
+ buffer.append(Constants.INDENT);
+ buffer.append("RandomInfo: ");
+ buffer.append(RandomInfo);
+ buffer.append(Constants.NEWLINE);
+
+ buffer.append(Constants.INDENT);
+ buffer.append("pReturnedKeyMaterial: ");
+ buffer.append(pReturnedKeyMaterial);
+ buffer.append(Constants.NEWLINE);
+
+ buffer.append(Constants.INDENT);
+ buffer.append("prfHashMechanism: ");
+ buffer.append(prfHashMechanism);
+
+ return buffer.toString();
+ }
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/wrapper/CK_TLS12_MASTER_KEY_DERIVE_PARAMS.java Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2018, Red Hat, Inc. and/or its affiliates.
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package sun.security.pkcs11.wrapper;
+
+/**
+ * CK_TLS12_MASTER_KEY_DERIVE_PARAMS from PKCS#11 v2.40.
+ */
+public class CK_TLS12_MASTER_KEY_DERIVE_PARAMS {
+
+ /**
+ * <B>PKCS#11:</B>
+ * <PRE>
+ * CK_SSL3_RANDOM_DATA RandomInfo;
+ * </PRE>
+ */
+ public CK_SSL3_RANDOM_DATA RandomInfo;
+
+ /**
+ * <B>PKCS#11:</B>
+ * <PRE>
+ * CK_VERSION_PTR pVersion;
+ * </PRE>
+ */
+ public CK_VERSION pVersion;
+
+ /**
+ * <B>PKCS#11:</B>
+ * <PRE>
+ * CK_MECHANISM_TYPE prfHashMechanism;
+ * </PRE>
+ */
+ public long prfHashMechanism;
+
+ public CK_TLS12_MASTER_KEY_DERIVE_PARAMS(
+ CK_SSL3_RANDOM_DATA random, CK_VERSION version,
+ long prfHashMechanism) {
+ RandomInfo = random;
+ pVersion = version;
+ this.prfHashMechanism = prfHashMechanism;
+ }
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/wrapper/CK_TLS_MAC_PARAMS.java Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2018, Red Hat, Inc. and/or its affiliates.
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package sun.security.pkcs11.wrapper;
+
+/**
+ * CK_TLS_MAC_PARAMS from PKCS#11 v2.40.
+ */
+public class CK_TLS_MAC_PARAMS {
+
+ /**
+ * <B>PKCS#11:</B>
+ * <PRE>
+ * CK_MECHANISM_TYPE prfMechanism;
+ * </PRE>
+ */
+ public long prfMechanism;
+
+ /**
+ * <B>PKCS#11:</B>
+ * <PRE>
+ * CK_ULONG ulMacLength;
+ * </PRE>
+ */
+ public long ulMacLength;
+
+ /**
+ * <B>PKCS#11:</B>
+ * <PRE>
+ * CK_ULONG ulServerOrClient;
+ * </PRE>
+ */
+ public long ulServerOrClient;
+
+ public CK_TLS_MAC_PARAMS(long prfMechanism,
+ long ulMacLength, long ulServerOrClient) {
+ this.prfMechanism = prfMechanism;
+ this.ulMacLength = ulMacLength;
+ this.ulServerOrClient = ulServerOrClient;
+ }
+
+}
--- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/wrapper/Functions.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/wrapper/Functions.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
*/
/* Copyright (c) 2002 Graz University of Technology. All rights reserved.
@@ -73,6 +73,9 @@
private static final Map<String,Integer> mechIds =
new HashMap<String,Integer>();
+ private static final Map<String, Long> hashMechIds =
+ new HashMap<String, Long>();
+
// key types (CKK_*)
private static final Map<Integer,String> keyNames =
new HashMap<Integer,String>();
@@ -94,7 +97,6 @@
private static final Map<String,Integer> objectClassIds =
new HashMap<String,Integer>();
-
/**
* For converting numbers to their hex presentation.
*/
@@ -444,6 +446,10 @@
return getId(objectClassIds, name);
}
+ public static long getHashMechId(String name) {
+ return hashMechIds.get(name);
+ }
+
/**
* Check the given arrays for equalitiy. This method considers both arrays as
* equal, if both are <code>null</code> or both have the same length and
@@ -589,6 +595,10 @@
addMapping(objectClassNames, objectClassIds, id, name);
}
+ private static void addHashMech(long id, String name) {
+ hashMechIds.put(name, id);
+ }
+
static {
addMech(CKM_RSA_PKCS_KEY_PAIR_GEN, "CKM_RSA_PKCS_KEY_PAIR_GEN");
addMech(CKM_RSA_PKCS, "CKM_RSA_PKCS");
@@ -719,6 +729,10 @@
addMech(CKM_TLS_PRF, "CKM_TLS_PRF");
addMech(CKM_SSL3_MD5_MAC, "CKM_SSL3_MD5_MAC");
addMech(CKM_SSL3_SHA1_MAC, "CKM_SSL3_SHA1_MAC");
+ addMech(CKM_TLS12_MASTER_KEY_DERIVE, "CKM_TLS12_MASTER_KEY_DERIVE");
+ addMech(CKM_TLS12_KEY_AND_MAC_DERIVE, "CKM_TLS12_KEY_AND_MAC_DERIVE");
+ addMech(CKM_TLS12_MASTER_KEY_DERIVE_DH, "CKM_TLS12_MASTER_KEY_DERIVE_DH");
+ addMech(CKM_TLS_MAC, "CKM_TLS_MAC");
addMech(CKM_MD5_KEY_DERIVATION, "CKM_MD5_KEY_DERIVATION");
addMech(CKM_MD2_KEY_DERIVATION, "CKM_MD2_KEY_DERIVATION");
addMech(CKM_SHA1_KEY_DERIVATION, "CKM_SHA1_KEY_DERIVATION");
@@ -794,6 +808,12 @@
addMech(PCKM_SECURERANDOM, "SecureRandom");
addMech(PCKM_KEYSTORE, "KeyStore");
+ addHashMech(CKM_SHA_1, "SHA-1");
+ addHashMech(CKM_SHA224, "SHA-224");
+ addHashMech(CKM_SHA256, "SHA-256");
+ addHashMech(CKM_SHA384, "SHA-384");
+ addHashMech(CKM_SHA512, "SHA-512");
+
addKeyType(CKK_RSA, "CKK_RSA");
addKeyType(CKK_DSA, "CKK_DSA");
addKeyType(CKK_DH, "CKK_DH");
--- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/wrapper/PKCS11Constants.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/wrapper/PKCS11Constants.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
*/
/* Copyright (c) 2002 Graz University of Technology. All rights reserved.
@@ -625,6 +625,14 @@
public static final long CKM_PKCS5_PBKD2 = 0x000003B0L;
public static final long CKM_PBA_SHA1_WITH_SHA1_HMAC = 0x000003C0L;
+
+ /* CKM_TLS12_MASTER_KEY_DERIVE, CKM_TLS12_KEY_AND_MAC_DERIVE,
+ * CKM_TLS12_MASTER_KEY_DERIVE_DH and CKM_TLS_MAC are new for v2.40 */
+ public static final long CKM_TLS12_MASTER_KEY_DERIVE = 0x000003E0L;
+ public static final long CKM_TLS12_KEY_AND_MAC_DERIVE = 0x000003E1L;
+ public static final long CKM_TLS12_MASTER_KEY_DERIVE_DH = 0x000003E2L;
+ public static final long CKM_TLS_MAC = 0x000003E4L;
+
public static final long CKM_KEY_WRAP_LYNKS = 0x00000400L;
public static final long CKM_KEY_WRAP_SET_OAEP = 0x00000401L;
--- a/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_convert.c Sat Sep 22 20:31:45 2018 -0700
+++ b/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_convert.c Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
*/
/* Copyright (c) 2002 Graz University of Technology. All rights reserved.
@@ -457,67 +457,113 @@
return ckAttribute ;
}
-/*
- * converts the Java CK_SSL3_MASTER_KEY_DERIVE_PARAMS object to a
- * CK_SSL3_MASTER_KEY_DERIVE_PARAMS structure
- *
- * @param env - used to call JNI funktions to get the Java classes and objects
- * @param jParam - the Java CK_SSL3_MASTER_KEY_DERIVE_PARAMS object to convert
- * @return - the new CK_SSL3_MASTER_KEY_DERIVE_PARAMS structure
- */
-CK_SSL3_MASTER_KEY_DERIVE_PARAMS jSsl3MasterKeyDeriveParamToCKSsl3MasterKeyDeriveParam(JNIEnv *env, jobject jParam)
-{
- // XXX don't return structs
- // XXX prefetch class and field ids
- jclass jSsl3MasterKeyDeriveParamsClass;
- CK_SSL3_MASTER_KEY_DERIVE_PARAMS ckParam;
+void masterKeyDeriveParamToCKMasterKeyDeriveParam(JNIEnv *env, jobject jParam,
+ jclass masterKeyDeriveParamClass,
+ CK_VERSION_PTR* cKMasterKeyDeriveParamVersion,
+ CK_SSL3_RANDOM_DATA* cKMasterKeyDeriveParamRandomInfo) {
jfieldID fieldID;
jclass jSsl3RandomDataClass;
jobject jRandomInfo, jRIClientRandom, jRIServerRandom, jVersion;
- memset(&ckParam, 0, sizeof(CK_SSL3_MASTER_KEY_DERIVE_PARAMS));
/* get RandomInfo */
- jSsl3MasterKeyDeriveParamsClass = (*env)->FindClass(env, CLASS_SSL3_MASTER_KEY_DERIVE_PARAMS);
- if (jSsl3MasterKeyDeriveParamsClass == NULL) { return ckParam; }
- fieldID = (*env)->GetFieldID(env, jSsl3MasterKeyDeriveParamsClass, "RandomInfo", "Lsun/security/pkcs11/wrapper/CK_SSL3_RANDOM_DATA;");
- if (fieldID == NULL) { return ckParam; }
+ fieldID = (*env)->GetFieldID(env, masterKeyDeriveParamClass, "RandomInfo",
+ "Lsun/security/pkcs11/wrapper/CK_SSL3_RANDOM_DATA;");
+ if (fieldID == NULL) { return; }
jRandomInfo = (*env)->GetObjectField(env, jParam, fieldID);
/* get pClientRandom and ulClientRandomLength out of RandomInfo */
jSsl3RandomDataClass = (*env)->FindClass(env, CLASS_SSL3_RANDOM_DATA);
- if (jSsl3RandomDataClass == NULL) { return ckParam; }
+ if (jSsl3RandomDataClass == NULL) { return; }
fieldID = (*env)->GetFieldID(env, jSsl3RandomDataClass, "pClientRandom", "[B");
- if (fieldID == NULL) { return ckParam; }
+ if (fieldID == NULL) { return; }
jRIClientRandom = (*env)->GetObjectField(env, jRandomInfo, fieldID);
/* get pServerRandom and ulServerRandomLength out of RandomInfo */
fieldID = (*env)->GetFieldID(env, jSsl3RandomDataClass, "pServerRandom", "[B");
- if (fieldID == NULL) { return ckParam; }
+ if (fieldID == NULL) { return; }
jRIServerRandom = (*env)->GetObjectField(env, jRandomInfo, fieldID);
/* get pVersion */
- fieldID = (*env)->GetFieldID(env, jSsl3MasterKeyDeriveParamsClass, "pVersion", "Lsun/security/pkcs11/wrapper/CK_VERSION;");
- if (fieldID == NULL) { return ckParam; }
+ fieldID = (*env)->GetFieldID(env, masterKeyDeriveParamClass, "pVersion",
+ "Lsun/security/pkcs11/wrapper/CK_VERSION;");
+ if (fieldID == NULL) { return; }
jVersion = (*env)->GetObjectField(env, jParam, fieldID);
/* populate java values */
- ckParam.pVersion = jVersionToCKVersionPtr(env, jVersion);
- if ((*env)->ExceptionCheck(env)) { return ckParam; }
- jByteArrayToCKByteArray(env, jRIClientRandom, &(ckParam.RandomInfo.pClientRandom), &(ckParam.RandomInfo.ulClientRandomLen));
+ *cKMasterKeyDeriveParamVersion = jVersionToCKVersionPtr(env, jVersion);
+ if ((*env)->ExceptionCheck(env)) { return; }
+ jByteArrayToCKByteArray(env, jRIClientRandom,
+ &(cKMasterKeyDeriveParamRandomInfo->pClientRandom),
+ &(cKMasterKeyDeriveParamRandomInfo->ulClientRandomLen));
if ((*env)->ExceptionCheck(env)) {
- free(ckParam.pVersion);
- return ckParam;
+ free(*cKMasterKeyDeriveParamVersion);
+ return;
}
- jByteArrayToCKByteArray(env, jRIServerRandom, &(ckParam.RandomInfo.pServerRandom), &(ckParam.RandomInfo.ulServerRandomLen));
+ jByteArrayToCKByteArray(env, jRIServerRandom,
+ &(cKMasterKeyDeriveParamRandomInfo->pServerRandom),
+ &(cKMasterKeyDeriveParamRandomInfo->ulServerRandomLen));
if ((*env)->ExceptionCheck(env)) {
- free(ckParam.pVersion);
- free(ckParam.RandomInfo.pClientRandom);
- return ckParam;
+ free(*cKMasterKeyDeriveParamVersion);
+ free(cKMasterKeyDeriveParamRandomInfo->pClientRandom);
+ return;
}
-
- return ckParam ;
}
+/*
+ * converts the Java CK_SSL3_MASTER_KEY_DERIVE_PARAMS object to a
+ * CK_SSL3_MASTER_KEY_DERIVE_PARAMS structure
+ *
+ * @param env - used to call JNI functions to get the Java classes and objects
+ * @param jParam - the Java CK_SSL3_MASTER_KEY_DERIVE_PARAMS object to convert
+ * @return - the new CK_SSL3_MASTER_KEY_DERIVE_PARAMS structure
+ */
+CK_SSL3_MASTER_KEY_DERIVE_PARAMS
+jSsl3MasterKeyDeriveParamToCKSsl3MasterKeyDeriveParam(JNIEnv *env,
+ jobject jParam)
+{
+ CK_SSL3_MASTER_KEY_DERIVE_PARAMS ckParam;
+ jclass jSsl3MasterKeyDeriveParamsClass;
+ memset(&ckParam, 0, sizeof(CK_SSL3_MASTER_KEY_DERIVE_PARAMS));
+ jSsl3MasterKeyDeriveParamsClass =
+ (*env)->FindClass(env, CLASS_SSL3_MASTER_KEY_DERIVE_PARAMS);
+ if (jSsl3MasterKeyDeriveParamsClass == NULL) { return ckParam; }
+ masterKeyDeriveParamToCKMasterKeyDeriveParam(env, jParam,
+ jSsl3MasterKeyDeriveParamsClass,
+ &ckParam.pVersion, &ckParam.RandomInfo);
+ return ckParam;
+}
+
+/*
+ * converts the Java CK_TLS12_MASTER_KEY_DERIVE_PARAMS object to a
+ * CK_TLS12_MASTER_KEY_DERIVE_PARAMS structure
+ *
+ * @param env - used to call JNI functions to get the Java classes and objects
+ * @param jParam - the Java CK_TLS12_MASTER_KEY_DERIVE_PARAMS object to convert
+ * @return - the new CK_TLS12_MASTER_KEY_DERIVE_PARAMS structure
+ */
+CK_TLS12_MASTER_KEY_DERIVE_PARAMS
+jTls12MasterKeyDeriveParamToCKTls12MasterKeyDeriveParam(JNIEnv *env,
+ jobject jParam)
+{
+ CK_TLS12_MASTER_KEY_DERIVE_PARAMS ckParam;
+ jclass jTls12MasterKeyDeriveParamsClass;
+ jfieldID fieldID;
+ memset(&ckParam, 0, sizeof(CK_TLS12_MASTER_KEY_DERIVE_PARAMS));
+ jTls12MasterKeyDeriveParamsClass =
+ (*env)->FindClass(env, CLASS_TLS12_MASTER_KEY_DERIVE_PARAMS);
+ if (jTls12MasterKeyDeriveParamsClass == NULL) { return ckParam; }
+ masterKeyDeriveParamToCKMasterKeyDeriveParam(env, jParam,
+ jTls12MasterKeyDeriveParamsClass, &ckParam.pVersion,
+ &ckParam.RandomInfo);
+ fieldID = (*env)->GetFieldID(env,
+ jTls12MasterKeyDeriveParamsClass, "prfHashMechanism", "J");
+ if (fieldID != NULL) {
+ jlong prfHashMechanism =
+ (*env)->GetLongField(env, jParam, fieldID);
+ ckParam.prfHashMechanism = (CK_MECHANISM_TYPE)prfHashMechanism;
+ }
+ return ckParam;
+}
/*
* converts the Java CK_TLS_PRF_PARAMS object to a CK_TLS_PRF_PARAMS structure
@@ -576,126 +622,220 @@
}
/*
- * converts the Java CK_SSL3_KEY_MAT_PARAMS object to a CK_SSL3_KEY_MAT_PARAMS structure
- *
- * @param env - used to call JNI funktions to get the Java classes and objects
- * @param jParam - the Java CK_SSL3_KEY_MAT_PARAMS object to convert
- * @return - the new CK_SSL3_KEY_MAT_PARAMS structure
+ * converts the Java CK_TLS_MAC_PARAMS object to a CK_TLS_MAC_PARAMS structure
*/
-CK_SSL3_KEY_MAT_PARAMS jSsl3KeyMatParamToCKSsl3KeyMatParam(JNIEnv *env, jobject jParam)
+CK_TLS_MAC_PARAMS jTlsMacParamsToCKTlsMacParam(JNIEnv *env, jobject jParam)
{
- // XXX don't return structs
- // XXX prefetch class and field ids
- jclass jSsl3KeyMatParamsClass, jSsl3RandomDataClass, jSsl3KeyMatOutClass;
- CK_SSL3_KEY_MAT_PARAMS ckParam;
+ jclass jTlsMacParamsClass;
+ CK_TLS_MAC_PARAMS ckParam;
+ jfieldID fieldID;
+ jlong jPrfMechanism, jUlMacLength, jUlServerOrClient;
+ memset(&ckParam, 0, sizeof(CK_TLS_MAC_PARAMS));
+
+ jTlsMacParamsClass = (*env)->FindClass(env, CLASS_TLS_MAC_PARAMS);
+ if (jTlsMacParamsClass == NULL) { return ckParam; }
+
+ /* get prfMechanism */
+ fieldID = (*env)->GetFieldID(env, jTlsMacParamsClass, "prfMechanism", "J");
+ if (fieldID == NULL) { return ckParam; }
+ jPrfMechanism = (*env)->GetLongField(env, jParam, fieldID);
+
+ /* get ulMacLength */
+ fieldID = (*env)->GetFieldID(env, jTlsMacParamsClass, "ulMacLength", "J");
+ if (fieldID == NULL) { return ckParam; }
+ jUlMacLength = (*env)->GetLongField(env, jParam, fieldID);
+
+ /* get ulServerOrClient */
+ fieldID = (*env)->GetFieldID(env, jTlsMacParamsClass, "ulServerOrClient", "J");
+ if (fieldID == NULL) { return ckParam; }
+ jUlServerOrClient = (*env)->GetLongField(env, jParam, fieldID);
+
+ /* populate java values */
+ ckParam.prfMechanism = jLongToCKULong(jPrfMechanism);
+ ckParam.ulMacLength = jLongToCKULong(jUlMacLength);
+ ckParam.ulServerOrClient = jLongToCKULong(jUlServerOrClient);
+
+ return ckParam;
+}
+
+void keyMatParamToCKKeyMatParam(JNIEnv *env, jobject jParam,
+ jclass jKeyMatParamClass,
+ CK_ULONG* cKKeyMatParamUlMacSizeInBits,
+ CK_ULONG* cKKeyMatParamUlKeySizeInBits,
+ CK_ULONG* cKKeyMatParamUlIVSizeInBits,
+ CK_BBOOL* cKKeyMatParamBIsExport,
+ CK_SSL3_RANDOM_DATA* cKKeyMatParamRandomInfo,
+ CK_SSL3_KEY_MAT_OUT_PTR* cKKeyMatParamPReturnedKeyMaterial)
+{
+ jclass jSsl3RandomDataClass, jSsl3KeyMatOutClass;
jfieldID fieldID;
jlong jMacSizeInBits, jKeySizeInBits, jIVSizeInBits;
jboolean jIsExport;
jobject jRandomInfo, jRIClientRandom, jRIServerRandom;
jobject jReturnedKeyMaterial, jRMIvClient, jRMIvServer;
CK_ULONG ckTemp;
- memset(&ckParam, 0, sizeof(CK_SSL3_KEY_MAT_PARAMS));
/* get ulMacSizeInBits */
- jSsl3KeyMatParamsClass = (*env)->FindClass(env, CLASS_SSL3_KEY_MAT_PARAMS);
- if (jSsl3KeyMatParamsClass == NULL) { return ckParam; }
- fieldID = (*env)->GetFieldID(env, jSsl3KeyMatParamsClass, "ulMacSizeInBits", "J");
- if (fieldID == NULL) { return ckParam; }
+ fieldID = (*env)->GetFieldID(env, jKeyMatParamClass, "ulMacSizeInBits", "J");
+ if (fieldID == NULL) { return; }
jMacSizeInBits = (*env)->GetLongField(env, jParam, fieldID);
/* get ulKeySizeInBits */
- fieldID = (*env)->GetFieldID(env, jSsl3KeyMatParamsClass, "ulKeySizeInBits", "J");
- if (fieldID == NULL) { return ckParam; }
+ fieldID = (*env)->GetFieldID(env, jKeyMatParamClass, "ulKeySizeInBits", "J");
+ if (fieldID == NULL) { return; }
jKeySizeInBits = (*env)->GetLongField(env, jParam, fieldID);
/* get ulIVSizeInBits */
- fieldID = (*env)->GetFieldID(env, jSsl3KeyMatParamsClass, "ulIVSizeInBits", "J");
- if (fieldID == NULL) { return ckParam; }
+ fieldID = (*env)->GetFieldID(env, jKeyMatParamClass, "ulIVSizeInBits", "J");
+ if (fieldID == NULL) { return; }
jIVSizeInBits = (*env)->GetLongField(env, jParam, fieldID);
/* get bIsExport */
- fieldID = (*env)->GetFieldID(env, jSsl3KeyMatParamsClass, "bIsExport", "Z");
- if (fieldID == NULL) { return ckParam; }
+ fieldID = (*env)->GetFieldID(env, jKeyMatParamClass, "bIsExport", "Z");
+ if (fieldID == NULL) { return; }
jIsExport = (*env)->GetBooleanField(env, jParam, fieldID);
/* get RandomInfo */
jSsl3RandomDataClass = (*env)->FindClass(env, CLASS_SSL3_RANDOM_DATA);
- if (jSsl3RandomDataClass == NULL) { return ckParam; }
- fieldID = (*env)->GetFieldID(env, jSsl3KeyMatParamsClass, "RandomInfo", "Lsun/security/pkcs11/wrapper/CK_SSL3_RANDOM_DATA;");
- if (fieldID == NULL) { return ckParam; }
+ if (jSsl3RandomDataClass == NULL) { return; }
+ fieldID = (*env)->GetFieldID(env, jKeyMatParamClass, "RandomInfo",
+ "Lsun/security/pkcs11/wrapper/CK_SSL3_RANDOM_DATA;");
+ if (fieldID == NULL) { return; }
jRandomInfo = (*env)->GetObjectField(env, jParam, fieldID);
/* get pClientRandom and ulClientRandomLength out of RandomInfo */
fieldID = (*env)->GetFieldID(env, jSsl3RandomDataClass, "pClientRandom", "[B");
- if (fieldID == NULL) { return ckParam; }
+ if (fieldID == NULL) { return; }
jRIClientRandom = (*env)->GetObjectField(env, jRandomInfo, fieldID);
/* get pServerRandom and ulServerRandomLength out of RandomInfo */
fieldID = (*env)->GetFieldID(env, jSsl3RandomDataClass, "pServerRandom", "[B");
- if (fieldID == NULL) { return ckParam; }
+ if (fieldID == NULL) { return; }
jRIServerRandom = (*env)->GetObjectField(env, jRandomInfo, fieldID);
/* get pReturnedKeyMaterial */
jSsl3KeyMatOutClass = (*env)->FindClass(env, CLASS_SSL3_KEY_MAT_OUT);
- if (jSsl3KeyMatOutClass == NULL) { return ckParam; }
- fieldID = (*env)->GetFieldID(env, jSsl3KeyMatParamsClass, "pReturnedKeyMaterial", "Lsun/security/pkcs11/wrapper/CK_SSL3_KEY_MAT_OUT;");
- if (fieldID == NULL) { return ckParam; }
+ if (jSsl3KeyMatOutClass == NULL) { return; }
+ fieldID = (*env)->GetFieldID(env, jKeyMatParamClass, "pReturnedKeyMaterial",
+ "Lsun/security/pkcs11/wrapper/CK_SSL3_KEY_MAT_OUT;");
+ if (fieldID == NULL) { return; }
jReturnedKeyMaterial = (*env)->GetObjectField(env, jParam, fieldID);
/* get pIVClient out of pReturnedKeyMaterial */
fieldID = (*env)->GetFieldID(env, jSsl3KeyMatOutClass, "pIVClient", "[B");
- if (fieldID == NULL) { return ckParam; }
+ if (fieldID == NULL) { return; }
jRMIvClient = (*env)->GetObjectField(env, jReturnedKeyMaterial, fieldID);
/* get pIVServer out of pReturnedKeyMaterial */
fieldID = (*env)->GetFieldID(env, jSsl3KeyMatOutClass, "pIVServer", "[B");
- if (fieldID == NULL) { return ckParam; }
+ if (fieldID == NULL) { return; }
jRMIvServer = (*env)->GetObjectField(env, jReturnedKeyMaterial, fieldID);
/* populate java values */
- ckParam.ulMacSizeInBits = jLongToCKULong(jMacSizeInBits);
- ckParam.ulKeySizeInBits = jLongToCKULong(jKeySizeInBits);
- ckParam.ulIVSizeInBits = jLongToCKULong(jIVSizeInBits);
- ckParam.bIsExport = jBooleanToCKBBool(jIsExport);
- jByteArrayToCKByteArray(env, jRIClientRandom, &(ckParam.RandomInfo.pClientRandom), &(ckParam.RandomInfo.ulClientRandomLen));
- if ((*env)->ExceptionCheck(env)) { return ckParam; }
- jByteArrayToCKByteArray(env, jRIServerRandom, &(ckParam.RandomInfo.pServerRandom), &(ckParam.RandomInfo.ulServerRandomLen));
+ *cKKeyMatParamUlMacSizeInBits = jLongToCKULong(jMacSizeInBits);
+ *cKKeyMatParamUlKeySizeInBits = jLongToCKULong(jKeySizeInBits);
+ *cKKeyMatParamUlIVSizeInBits = jLongToCKULong(jIVSizeInBits);
+ *cKKeyMatParamBIsExport = jBooleanToCKBBool(jIsExport);
+ jByteArrayToCKByteArray(env, jRIClientRandom,
+ &(cKKeyMatParamRandomInfo->pClientRandom),
+ &(cKKeyMatParamRandomInfo->ulClientRandomLen));
+ if ((*env)->ExceptionCheck(env)) { return; }
+ jByteArrayToCKByteArray(env, jRIServerRandom,
+ &(cKKeyMatParamRandomInfo->pServerRandom),
+ &(cKKeyMatParamRandomInfo->ulServerRandomLen));
if ((*env)->ExceptionCheck(env)) {
- free(ckParam.RandomInfo.pClientRandom);
- return ckParam;
+ free(cKKeyMatParamRandomInfo->pClientRandom);
+ return;
}
/* allocate memory for pRetrunedKeyMaterial */
- ckParam.pReturnedKeyMaterial = (CK_SSL3_KEY_MAT_OUT_PTR) malloc(sizeof(CK_SSL3_KEY_MAT_OUT));
- if (ckParam.pReturnedKeyMaterial == NULL) {
- free(ckParam.RandomInfo.pClientRandom);
- free(ckParam.RandomInfo.pServerRandom);
+ *cKKeyMatParamPReturnedKeyMaterial =
+ (CK_SSL3_KEY_MAT_OUT_PTR)malloc(sizeof(CK_SSL3_KEY_MAT_OUT));
+ if (*cKKeyMatParamPReturnedKeyMaterial == NULL) {
+ free(cKKeyMatParamRandomInfo->pClientRandom);
+ free(cKKeyMatParamRandomInfo->pServerRandom);
throwOutOfMemoryError(env, 0);
- return ckParam;
+ return;
}
// the handles are output params only, no need to fetch them from Java
- ckParam.pReturnedKeyMaterial->hClientMacSecret = 0;
- ckParam.pReturnedKeyMaterial->hServerMacSecret = 0;
- ckParam.pReturnedKeyMaterial->hClientKey = 0;
- ckParam.pReturnedKeyMaterial->hServerKey = 0;
+ (*cKKeyMatParamPReturnedKeyMaterial)->hClientMacSecret = 0;
+ (*cKKeyMatParamPReturnedKeyMaterial)->hServerMacSecret = 0;
+ (*cKKeyMatParamPReturnedKeyMaterial)->hClientKey = 0;
+ (*cKKeyMatParamPReturnedKeyMaterial)->hServerKey = 0;
- jByteArrayToCKByteArray(env, jRMIvClient, &(ckParam.pReturnedKeyMaterial->pIVClient), &ckTemp);
+ jByteArrayToCKByteArray(env, jRMIvClient,
+ &((*cKKeyMatParamPReturnedKeyMaterial)->pIVClient), &ckTemp);
if ((*env)->ExceptionCheck(env)) {
- free(ckParam.RandomInfo.pClientRandom);
- free(ckParam.RandomInfo.pServerRandom);
- free(ckParam.pReturnedKeyMaterial);
- return ckParam;
+ free(cKKeyMatParamRandomInfo->pClientRandom);
+ free(cKKeyMatParamRandomInfo->pServerRandom);
+ free((*cKKeyMatParamPReturnedKeyMaterial));
+ return;
}
- jByteArrayToCKByteArray(env, jRMIvServer, &(ckParam.pReturnedKeyMaterial->pIVServer), &ckTemp);
+ jByteArrayToCKByteArray(env, jRMIvServer,
+ &((*cKKeyMatParamPReturnedKeyMaterial)->pIVServer), &ckTemp);
if ((*env)->ExceptionCheck(env)) {
- free(ckParam.RandomInfo.pClientRandom);
- free(ckParam.RandomInfo.pServerRandom);
- free(ckParam.pReturnedKeyMaterial->pIVClient);
- free(ckParam.pReturnedKeyMaterial);
- return ckParam;
+ free(cKKeyMatParamRandomInfo->pClientRandom);
+ free(cKKeyMatParamRandomInfo->pServerRandom);
+ free((*cKKeyMatParamPReturnedKeyMaterial)->pIVClient);
+ free((*cKKeyMatParamPReturnedKeyMaterial));
+ return;
}
- return ckParam ;
+ return;
+}
+/*
+ * converts the Java CK_SSL3_KEY_MAT_PARAMS object to a
+ * CK_SSL3_KEY_MAT_PARAMS structure
+ *
+ * @param env - used to call JNI funktions to get the Java classes and objects
+ * @param jParam - the Java CK_SSL3_KEY_MAT_PARAMS object to convert
+ * @return - the new CK_SSL3_KEY_MAT_PARAMS structure
+ */
+CK_SSL3_KEY_MAT_PARAMS
+jSsl3KeyMatParamToCKSsl3KeyMatParam(JNIEnv *env, jobject jParam)
+{
+ CK_SSL3_KEY_MAT_PARAMS ckParam;
+ jclass jSsl3KeyMatParamsClass;
+ memset(&ckParam, 0, sizeof(CK_SSL3_KEY_MAT_PARAMS));
+ jSsl3KeyMatParamsClass = (*env)->FindClass(env,
+ CLASS_SSL3_KEY_MAT_PARAMS);
+ if (jSsl3KeyMatParamsClass == NULL) { return ckParam; }
+ keyMatParamToCKKeyMatParam(env, jParam, jSsl3KeyMatParamsClass,
+ &ckParam.ulMacSizeInBits, &ckParam.ulKeySizeInBits,
+ &ckParam.ulIVSizeInBits, &ckParam.bIsExport,
+ &ckParam.RandomInfo, &ckParam.pReturnedKeyMaterial);
+ return ckParam;
+}
+
+/*
+ * converts the Java CK_TLS12_KEY_MAT_PARAMS object to a
+ * CK_TLS12_KEY_MAT_PARAMS structure
+ *
+ * @param env - used to call JNI functions to get the Java classes and objects
+ * @param jParam - the Java CK_TLS12_KEY_MAT_PARAMS object to convert
+ * @return - the new CK_TLS12_KEY_MAT_PARAMS structure
+ */
+CK_TLS12_KEY_MAT_PARAMS jTls12KeyMatParamToCKTls12KeyMatParam(JNIEnv *env,
+ jobject jParam)
+{
+ CK_TLS12_KEY_MAT_PARAMS ckParam;
+ jclass jTls12KeyMatParamsClass;
+ jfieldID fieldID;
+ memset(&ckParam, 0, sizeof(CK_TLS12_KEY_MAT_PARAMS));
+ jTls12KeyMatParamsClass = (*env)->FindClass(env,
+ CLASS_TLS12_KEY_MAT_PARAMS);
+ if (jTls12KeyMatParamsClass == NULL) { return ckParam; }
+ keyMatParamToCKKeyMatParam(env, jParam, jTls12KeyMatParamsClass,
+ &ckParam.ulMacSizeInBits, &ckParam.ulKeySizeInBits,
+ &ckParam.ulIVSizeInBits, &ckParam.bIsExport,
+ &ckParam.RandomInfo, &ckParam.pReturnedKeyMaterial);
+ fieldID = (*env)->GetFieldID(env, jTls12KeyMatParamsClass,
+ "prfHashMechanism", "J");
+ if (fieldID != NULL) {
+ jlong prfHashMechanism = (*env)->GetLongField(env, jParam, fieldID);
+ ckParam.prfHashMechanism = (CK_MECHANISM_TYPE)prfHashMechanism;
+ }
+ return ckParam;
}
/*
@@ -980,8 +1120,11 @@
void jMechanismParameterToCKMechanismParameterSlow(JNIEnv *env, jobject jParam, CK_VOID_PTR *ckpParamPtr, CK_ULONG *ckpLength)
{
/* get all Java mechanism parameter classes */
- jclass jVersionClass, jSsl3MasterKeyDeriveParamsClass, jSsl3KeyMatParamsClass;
- jclass jTlsPrfParamsClass, jAesCtrParamsClass, jRsaPkcsOaepParamsClass;
+ jclass jVersionClass, jSsl3MasterKeyDeriveParamsClass;
+ jclass jTls12MasterKeyDeriveParamsClass, jSsl3KeyMatParamsClass;
+ jclass jTls12KeyMatParamsClass;
+ jclass jTlsPrfParamsClass, jTlsMacParamsClass, jAesCtrParamsClass;
+ jclass jRsaPkcsOaepParamsClass;
jclass jPbeParamsClass, jPkcs5Pbkd2ParamsClass, jRsaPkcsPssParamsClass;
jclass jEcdh1DeriveParamsClass, jEcdh2DeriveParamsClass;
jclass jX942Dh1DeriveParamsClass, jX942Dh2DeriveParamsClass;
@@ -1061,6 +1204,62 @@
return;
}
+ jTls12KeyMatParamsClass = (*env)->FindClass(env, CLASS_TLS12_KEY_MAT_PARAMS);
+ if (jTls12KeyMatParamsClass == NULL) { return; }
+ if ((*env)->IsInstanceOf(env, jParam, jTls12KeyMatParamsClass)) {
+ /*
+ * CK_TLS12_KEY_MAT_PARAMS
+ */
+ CK_TLS12_KEY_MAT_PARAMS_PTR ckpParam;
+
+ ckpParam = (CK_TLS12_KEY_MAT_PARAMS_PTR) malloc(sizeof(CK_TLS12_KEY_MAT_PARAMS));
+ if (ckpParam == NULL) {
+ throwOutOfMemoryError(env, 0);
+ return;
+ }
+
+ /* convert jParameter to CKParameter */
+ *ckpParam = jTls12KeyMatParamToCKTls12KeyMatParam(env, jParam);
+ if ((*env)->ExceptionCheck(env)) {
+ free(ckpParam);
+ return;
+ }
+
+ /* get length and pointer of parameter */
+ *ckpLength = sizeof(CK_TLS12_KEY_MAT_PARAMS);
+ *ckpParamPtr = ckpParam;
+ return;
+ }
+
+ jTls12MasterKeyDeriveParamsClass =
+ (*env)->FindClass(env, CLASS_TLS12_MASTER_KEY_DERIVE_PARAMS);
+ if (jTls12MasterKeyDeriveParamsClass == NULL) { return; }
+ if ((*env)->IsInstanceOf(env, jParam, jTls12MasterKeyDeriveParamsClass)) {
+ /*
+ * CK_TLS12_MASTER_KEY_DERIVE_PARAMS
+ */
+ CK_TLS12_MASTER_KEY_DERIVE_PARAMS_PTR ckpParam;
+
+ ckpParam = (CK_TLS12_MASTER_KEY_DERIVE_PARAMS_PTR)malloc(
+ sizeof(CK_TLS12_MASTER_KEY_DERIVE_PARAMS));
+ if (ckpParam == NULL) {
+ throwOutOfMemoryError(env, 0);
+ return;
+ }
+
+ /* convert jParameter to CKParameter */
+ *ckpParam = jTls12MasterKeyDeriveParamToCKTls12MasterKeyDeriveParam(env, jParam);
+ if ((*env)->ExceptionCheck(env)) {
+ free(ckpParam);
+ return;
+ }
+
+ /* get length and pointer of parameter */
+ *ckpLength = sizeof(CK_TLS12_MASTER_KEY_DERIVE_PARAMS);
+ *ckpParamPtr = ckpParam;
+ return;
+ }
+
jTlsPrfParamsClass = (*env)->FindClass(env, CLASS_TLS_PRF_PARAMS);
if (jTlsPrfParamsClass == NULL) { return; }
if ((*env)->IsInstanceOf(env, jParam, jTlsPrfParamsClass)) {
@@ -1088,6 +1287,30 @@
return;
}
+ jTlsMacParamsClass = (*env)->FindClass(env, CLASS_TLS_MAC_PARAMS);
+ if (jTlsMacParamsClass == NULL) { return; }
+ if ((*env)->IsInstanceOf(env, jParam, jTlsMacParamsClass)) {
+ CK_TLS_MAC_PARAMS_PTR ckpParam;
+
+ ckpParam = (CK_TLS_MAC_PARAMS_PTR) malloc(sizeof(CK_TLS_MAC_PARAMS));
+ if (ckpParam == NULL) {
+ throwOutOfMemoryError(env, 0);
+ return;
+ }
+
+ /* convert jParameter to CKParameter */
+ *ckpParam = jTlsMacParamsToCKTlsMacParam(env, jParam);
+ if ((*env)->ExceptionCheck(env)) {
+ free(ckpParam);
+ return;
+ }
+
+ /* get length and pointer of parameter */
+ *ckpLength = sizeof(CK_TLS_MAC_PARAMS);
+ *ckpParamPtr = ckpParam;
+ return;
+ }
+
jAesCtrParamsClass = (*env)->FindClass(env, CLASS_AES_CTR_PARAMS);
if (jAesCtrParamsClass == NULL) { return; }
if ((*env)->IsInstanceOf(env, jParam, jAesCtrParamsClass)) {
--- a/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_keymgmt.c Sat Sep 22 20:31:45 2018 -0700
+++ b/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_keymgmt.c Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
*/
/* Copyright (c) 2002 Graz University of Technology. All rights reserved.
@@ -382,25 +382,38 @@
#ifdef P11_ENABLE_C_DERIVEKEY
-void freeMasterKeyDeriveParams(CK_MECHANISM_PTR ckMechanism) {
+static void freeMasterKeyDeriveParams(CK_SSL3_RANDOM_DATA *RandomInfo, CK_VERSION_PTR pVersion) {
+ if (RandomInfo->pClientRandom != NULL) {
+ free(RandomInfo->pClientRandom);
+ }
+ if (RandomInfo->pServerRandom != NULL) {
+ free(RandomInfo->pServerRandom);
+ }
+ if (pVersion != NULL) {
+ free(pVersion);
+ }
+}
+
+void ssl3FreeMasterKeyDeriveParams(CK_MECHANISM_PTR ckMechanism) {
CK_SSL3_MASTER_KEY_DERIVE_PARAMS *params = (CK_SSL3_MASTER_KEY_DERIVE_PARAMS *) ckMechanism->pParameter;
if (params == NULL) {
return;
}
+ freeMasterKeyDeriveParams(&(params->RandomInfo), params->pVersion);
+}
- if (params->RandomInfo.pClientRandom != NULL) {
- free(params->RandomInfo.pClientRandom);
+void tls12FreeMasterKeyDeriveParams(CK_MECHANISM_PTR ckMechanism) {
+ CK_TLS12_MASTER_KEY_DERIVE_PARAMS *params =
+ (CK_TLS12_MASTER_KEY_DERIVE_PARAMS *)ckMechanism->pParameter;
+ if (params == NULL) {
+ return;
}
- if (params->RandomInfo.pServerRandom != NULL) {
- free(params->RandomInfo.pServerRandom);
- }
- if (params->pVersion != NULL) {
- free(params->pVersion);
- }
+ freeMasterKeyDeriveParams(&(params->RandomInfo), params->pVersion);
}
void freeEcdh1DeriveParams(CK_MECHANISM_PTR ckMechanism) {
- CK_ECDH1_DERIVE_PARAMS *params = (CK_ECDH1_DERIVE_PARAMS *) ckMechanism->pParameter;
+ CK_ECDH1_DERIVE_PARAMS *params =
+ (CK_ECDH1_DERIVE_PARAMS *)ckMechanism->pParameter;
if (params == NULL) {
return;
}
@@ -525,6 +538,7 @@
switch (ckMechanism.mechanism) {
case CKM_SSL3_KEY_AND_MAC_DERIVE:
case CKM_TLS_KEY_AND_MAC_DERIVE:
+ case CKM_TLS12_KEY_AND_MAC_DERIVE:
case CKM_TLS_PRF:
// these mechanism do not return a key handle via phKey
// set to NULL in case pedantic implementations check for it
@@ -546,17 +560,28 @@
case CKM_SSL3_MASTER_KEY_DERIVE:
case CKM_TLS_MASTER_KEY_DERIVE:
/* we must copy back the client version */
- copyBackClientVersion(env, &ckMechanism, jMechanism);
- freeMasterKeyDeriveParams(&ckMechanism);
+ ssl3CopyBackClientVersion(env, &ckMechanism, jMechanism);
+ ssl3FreeMasterKeyDeriveParams(&ckMechanism);
+ break;
+ case CKM_TLS12_MASTER_KEY_DERIVE:
+ tls12CopyBackClientVersion(env, &ckMechanism, jMechanism);
+ tls12FreeMasterKeyDeriveParams(&ckMechanism);
break;
case CKM_SSL3_MASTER_KEY_DERIVE_DH:
case CKM_TLS_MASTER_KEY_DERIVE_DH:
- freeMasterKeyDeriveParams(&ckMechanism);
+ ssl3FreeMasterKeyDeriveParams(&ckMechanism);
+ break;
+ case CKM_TLS12_MASTER_KEY_DERIVE_DH:
+ tls12FreeMasterKeyDeriveParams(&ckMechanism);
break;
case CKM_SSL3_KEY_AND_MAC_DERIVE:
case CKM_TLS_KEY_AND_MAC_DERIVE:
/* we must copy back the unwrapped key info to the jMechanism object */
- copyBackSSLKeyMatParams(env, &ckMechanism, jMechanism);
+ ssl3CopyBackKeyMatParams(env, &ckMechanism, jMechanism);
+ break;
+ case CKM_TLS12_KEY_AND_MAC_DERIVE:
+ /* we must copy back the unwrapped key info to the jMechanism object */
+ tls12CopyBackKeyMatParams(env, &ckMechanism, jMechanism);
break;
case CKM_TLS_PRF:
copyBackTLSPrfParams(env, &ckMechanism, jMechanism);
@@ -577,53 +602,42 @@
return jKeyHandle ;
}
-/*
- * Copy back the client version information from the native
- * structure to the Java object. This is only used for the
- * CKM_SSL3_MASTER_KEY_DERIVE mechanism when used for deriving a key.
- *
- */
-void copyBackClientVersion(JNIEnv *env, CK_MECHANISM *ckMechanism, jobject jMechanism)
+static void copyBackClientVersion(JNIEnv *env, CK_MECHANISM *ckMechanism, jobject jMechanism,
+ CK_VERSION *ckVersion, const char *class_master_key_derive_params)
{
- jclass jMechanismClass, jSSL3MasterKeyDeriveParamsClass, jVersionClass;
- CK_SSL3_MASTER_KEY_DERIVE_PARAMS *ckSSL3MasterKeyDeriveParams;
- CK_VERSION *ckVersion;
- jfieldID fieldID;
- CK_MECHANISM_TYPE ckMechanismType;
- jlong jMechanismType;
- jobject jSSL3MasterKeyDeriveParams;
- jobject jVersion;
+ jclass jMasterKeyDeriveParamsClass, jMechanismClass, jVersionClass;
+ jobject jMasterKeyDeriveParams;
+ jfieldID fieldID;
+ CK_MECHANISM_TYPE ckMechanismType;
+ jlong jMechanismType;
+ jobject jVersion;
- /* get mechanism */
- jMechanismClass = (*env)->FindClass(env, CLASS_MECHANISM);
- if (jMechanismClass == NULL) { return; }
- fieldID = (*env)->GetFieldID(env, jMechanismClass, "mechanism", "J");
- if (fieldID == NULL) { return; }
- jMechanismType = (*env)->GetLongField(env, jMechanism, fieldID);
- ckMechanismType = jLongToCKULong(jMechanismType);
- if (ckMechanismType != ckMechanism->mechanism) {
- /* we do not have maching types, this should not occur */
- return;
- }
+ /* get mechanism */
+ jMechanismClass = (*env)->FindClass(env, CLASS_MECHANISM);
+ if (jMechanismClass == NULL) { return; }
+ fieldID = (*env)->GetFieldID(env, jMechanismClass, "mechanism", "J");
+ if (fieldID == NULL) { return; }
+ jMechanismType = (*env)->GetLongField(env, jMechanism, fieldID);
+ ckMechanismType = jLongToCKULong(jMechanismType);
+ if (ckMechanismType != ckMechanism->mechanism) {
+ /* we do not have maching types, this should not occur */
+ return;
+ }
- /* get the native CK_SSL3_MASTER_KEY_DERIVE_PARAMS */
- ckSSL3MasterKeyDeriveParams = (CK_SSL3_MASTER_KEY_DERIVE_PARAMS *) ckMechanism->pParameter;
- if (ckSSL3MasterKeyDeriveParams != NULL_PTR) {
- /* get the native CK_VERSION */
- ckVersion = ckSSL3MasterKeyDeriveParams->pVersion;
if (ckVersion != NULL_PTR) {
/* get the Java CK_SSL3_MASTER_KEY_DERIVE_PARAMS (pParameter) */
fieldID = (*env)->GetFieldID(env, jMechanismClass, "pParameter", "Ljava/lang/Object;");
if (fieldID == NULL) { return; }
- jSSL3MasterKeyDeriveParams = (*env)->GetObjectField(env, jMechanism, fieldID);
+ jMasterKeyDeriveParams = (*env)->GetObjectField(env, jMechanism, fieldID);
/* get the Java CK_VERSION */
- jSSL3MasterKeyDeriveParamsClass = (*env)->FindClass(env, CLASS_SSL3_MASTER_KEY_DERIVE_PARAMS);
- if (jSSL3MasterKeyDeriveParamsClass == NULL) { return; }
- fieldID = (*env)->GetFieldID(env, jSSL3MasterKeyDeriveParamsClass, "pVersion", "L"CLASS_VERSION";");
+ jMasterKeyDeriveParamsClass = (*env)->FindClass(env, class_master_key_derive_params);
+ if (jMasterKeyDeriveParamsClass == NULL) { return; }
+ fieldID = (*env)->GetFieldID(env, jMasterKeyDeriveParamsClass,
+ "pVersion", "L"CLASS_VERSION";");
if (fieldID == NULL) { return; }
- jVersion = (*env)->GetObjectField(env, jSSL3MasterKeyDeriveParams, fieldID);
+ jVersion = (*env)->GetObjectField(env, jMasterKeyDeriveParams, fieldID);
/* now copy back the version from the native structure to the Java structure */
@@ -639,92 +653,126 @@
if (fieldID == NULL) { return; }
(*env)->SetByteField(env, jVersion, fieldID, ckByteToJByte(ckVersion->minor));
}
- }
}
+/*
+ * Copy back the client version information from the native
+ * structure to the Java object. This is only used for
+ * CKM_SSL3_MASTER_KEY_DERIVE and CKM_TLS_MASTER_KEY_DERIVE
+ * mechanisms when used for deriving a key.
+ *
+ */
+void ssl3CopyBackClientVersion(JNIEnv *env, CK_MECHANISM *ckMechanism,
+ jobject jMechanism)
+{
+ CK_SSL3_MASTER_KEY_DERIVE_PARAMS *ckSSL3MasterKeyDeriveParams;
+ ckSSL3MasterKeyDeriveParams =
+ (CK_SSL3_MASTER_KEY_DERIVE_PARAMS *)ckMechanism->pParameter;
+ if (ckSSL3MasterKeyDeriveParams != NULL_PTR) {
+ copyBackClientVersion(env, ckMechanism, jMechanism,
+ ckSSL3MasterKeyDeriveParams->pVersion,
+ CLASS_SSL3_MASTER_KEY_DERIVE_PARAMS);
+ }
+}
/*
- * Copy back the derived keys and initialization vectors from the native
- * structure to the Java object. This is only used for the
- * CKM_SSL3_KEY_AND_MAC_DERIVE mechanism when used for deriving a key.
+ * Copy back the client version information from the native
+ * structure to the Java object. This is only used for
+ * CKM_TLS12_MASTER_KEY_DERIVE mechanism when used for deriving a key.
*
*/
-void copyBackSSLKeyMatParams(JNIEnv *env, CK_MECHANISM *ckMechanism, jobject jMechanism)
+void tls12CopyBackClientVersion(JNIEnv *env, CK_MECHANISM *ckMechanism,
+ jobject jMechanism)
{
- jclass jMechanismClass, jSSL3KeyMatParamsClass, jSSL3KeyMatOutClass;
- CK_SSL3_KEY_MAT_PARAMS *ckSSL3KeyMatParam;
- CK_SSL3_KEY_MAT_OUT *ckSSL3KeyMatOut;
- jfieldID fieldID;
- CK_MECHANISM_TYPE ckMechanismType;
- jlong jMechanismType;
- CK_BYTE_PTR iv;
- jobject jSSL3KeyMatParam;
- jobject jSSL3KeyMatOut;
- jobject jIV;
- jint jLength;
- jbyte* jBytes;
- int i;
+ CK_TLS12_MASTER_KEY_DERIVE_PARAMS *ckTLS12MasterKeyDeriveParams;
+ ckTLS12MasterKeyDeriveParams =
+ (CK_TLS12_MASTER_KEY_DERIVE_PARAMS *)ckMechanism->pParameter;
+ if (ckTLS12MasterKeyDeriveParams != NULL_PTR) {
+ copyBackClientVersion(env, ckMechanism, jMechanism,
+ ckTLS12MasterKeyDeriveParams->pVersion,
+ CLASS_TLS12_MASTER_KEY_DERIVE_PARAMS);
+ }
+}
- /* get mechanism */
- jMechanismClass= (*env)->FindClass(env, CLASS_MECHANISM);
- if (jMechanismClass == NULL) { return; }
- fieldID = (*env)->GetFieldID(env, jMechanismClass, "mechanism", "J");
- if (fieldID == NULL) { return; }
- jMechanismType = (*env)->GetLongField(env, jMechanism, fieldID);
- ckMechanismType = jLongToCKULong(jMechanismType);
- if (ckMechanismType != ckMechanism->mechanism) {
- /* we do not have maching types, this should not occur */
- return;
- }
+static void copyBackKeyMatParams(JNIEnv *env, CK_MECHANISM *ckMechanism,
+ jobject jMechanism, CK_SSL3_RANDOM_DATA *RandomInfo,
+ CK_SSL3_KEY_MAT_OUT_PTR ckSSL3KeyMatOut, const char *class_key_mat_params)
+{
+ jclass jMechanismClass, jKeyMatParamsClass, jSSL3KeyMatOutClass;
+ jfieldID fieldID;
+ CK_MECHANISM_TYPE ckMechanismType;
+ jlong jMechanismType;
+ CK_BYTE_PTR iv;
+ jobject jKeyMatParam;
+ jobject jSSL3KeyMatOut;
+ jobject jIV;
+ jint jLength;
+ jbyte* jBytes;
+ int i;
- /* get the native CK_SSL3_KEY_MAT_PARAMS */
- ckSSL3KeyMatParam = (CK_SSL3_KEY_MAT_PARAMS *) ckMechanism->pParameter;
- if (ckSSL3KeyMatParam != NULL_PTR) {
- // free malloc'd data
- if (ckSSL3KeyMatParam->RandomInfo.pClientRandom != NULL) {
- free(ckSSL3KeyMatParam->RandomInfo.pClientRandom);
- }
- if (ckSSL3KeyMatParam->RandomInfo.pServerRandom != NULL) {
- free(ckSSL3KeyMatParam->RandomInfo.pServerRandom);
+ /* get mechanism */
+ jMechanismClass= (*env)->FindClass(env, CLASS_MECHANISM);
+ if (jMechanismClass == NULL) { return; }
+ fieldID = (*env)->GetFieldID(env, jMechanismClass, "mechanism", "J");
+ if (fieldID == NULL) { return; }
+ jMechanismType = (*env)->GetLongField(env, jMechanism, fieldID);
+ ckMechanismType = jLongToCKULong(jMechanismType);
+ if (ckMechanismType != ckMechanism->mechanism) {
+ /* we do not have maching types, this should not occur */
+ return;
}
- /* get the native CK_SSL3_KEY_MAT_OUT */
- ckSSL3KeyMatOut = ckSSL3KeyMatParam->pReturnedKeyMaterial;
+ // free malloc'd data
+ if (RandomInfo->pClientRandom != NULL) {
+ free(RandomInfo->pClientRandom);
+ }
+ if (RandomInfo->pServerRandom != NULL) {
+ free(RandomInfo->pServerRandom);
+ }
+
if (ckSSL3KeyMatOut != NULL_PTR) {
- /* get the Java CK_SSL3_KEY_MAT_PARAMS (pParameter) */
- fieldID = (*env)->GetFieldID(env, jMechanismClass, "pParameter", "Ljava/lang/Object;");
+ /* get the Java params object (pParameter) */
+ fieldID = (*env)->GetFieldID(env, jMechanismClass, "pParameter",
+ "Ljava/lang/Object;");
if (fieldID == NULL) { return; }
- jSSL3KeyMatParam = (*env)->GetObjectField(env, jMechanism, fieldID);
+ jKeyMatParam = (*env)->GetObjectField(env, jMechanism, fieldID);
/* get the Java CK_SSL3_KEY_MAT_OUT */
- jSSL3KeyMatParamsClass = (*env)->FindClass(env, CLASS_SSL3_KEY_MAT_PARAMS);
- if (jSSL3KeyMatParamsClass == NULL) { return; }
- fieldID = (*env)->GetFieldID(env, jSSL3KeyMatParamsClass, "pReturnedKeyMaterial", "L"CLASS_SSL3_KEY_MAT_OUT";");
+ jKeyMatParamsClass = (*env)->FindClass(env, class_key_mat_params);
+ if (jKeyMatParamsClass == NULL) { return; }
+ fieldID = (*env)->GetFieldID(env, jKeyMatParamsClass,
+ "pReturnedKeyMaterial", "L"CLASS_SSL3_KEY_MAT_OUT";");
if (fieldID == NULL) { return; }
- jSSL3KeyMatOut = (*env)->GetObjectField(env, jSSL3KeyMatParam, fieldID);
+ jSSL3KeyMatOut = (*env)->GetObjectField(env, jKeyMatParam, fieldID);
/* now copy back all the key handles and the initialization vectors */
/* copy back client MAC secret handle */
jSSL3KeyMatOutClass = (*env)->FindClass(env, CLASS_SSL3_KEY_MAT_OUT);
if (jSSL3KeyMatOutClass == NULL) { return; }
- fieldID = (*env)->GetFieldID(env, jSSL3KeyMatOutClass, "hClientMacSecret", "J");
+ fieldID = (*env)->GetFieldID(env, jSSL3KeyMatOutClass,
+ "hClientMacSecret", "J");
if (fieldID == NULL) { return; }
- (*env)->SetLongField(env, jSSL3KeyMatOut, fieldID, ckULongToJLong(ckSSL3KeyMatOut->hClientMacSecret));
+ (*env)->SetLongField(env, jSSL3KeyMatOut, fieldID,
+ ckULongToJLong(ckSSL3KeyMatOut->hClientMacSecret));
/* copy back server MAC secret handle */
- fieldID = (*env)->GetFieldID(env, jSSL3KeyMatOutClass, "hServerMacSecret", "J");
+ fieldID = (*env)->GetFieldID(env, jSSL3KeyMatOutClass,
+ "hServerMacSecret", "J");
if (fieldID == NULL) { return; }
- (*env)->SetLongField(env, jSSL3KeyMatOut, fieldID, ckULongToJLong(ckSSL3KeyMatOut->hServerMacSecret));
+ (*env)->SetLongField(env, jSSL3KeyMatOut, fieldID,
+ ckULongToJLong(ckSSL3KeyMatOut->hServerMacSecret));
/* copy back client secret key handle */
fieldID = (*env)->GetFieldID(env, jSSL3KeyMatOutClass, "hClientKey", "J");
if (fieldID == NULL) { return; }
- (*env)->SetLongField(env, jSSL3KeyMatOut, fieldID, ckULongToJLong(ckSSL3KeyMatOut->hClientKey));
+ (*env)->SetLongField(env, jSSL3KeyMatOut, fieldID,
+ ckULongToJLong(ckSSL3KeyMatOut->hClientKey));
/* copy back server secret key handle */
fieldID = (*env)->GetFieldID(env, jSSL3KeyMatOutClass, "hServerKey", "J");
if (fieldID == NULL) { return; }
- (*env)->SetLongField(env, jSSL3KeyMatOut, fieldID, ckULongToJLong(ckSSL3KeyMatOut->hServerKey));
+ (*env)->SetLongField(env, jSSL3KeyMatOut, fieldID,
+ ckULongToJLong(ckSSL3KeyMatOut->hServerKey));
/* copy back the client IV */
fieldID = (*env)->GetFieldID(env, jSSL3KeyMatOutClass, "pIVClient", "[B");
@@ -767,7 +815,45 @@
free(ckSSL3KeyMatOut->pIVServer);
free(ckSSL3KeyMatOut);
}
- }
+}
+
+/*
+ * Copy back the derived keys and initialization vectors from the native
+ * structure to the Java object. This is only used for
+ * CKM_SSL3_KEY_AND_MAC_DERIVE and CKM_TLS_KEY_AND_MAC_DERIVE mechanisms
+ * when used for deriving a key.
+ *
+ */
+void ssl3CopyBackKeyMatParams(JNIEnv *env, CK_MECHANISM *ckMechanism,
+ jobject jMechanism)
+{
+ CK_SSL3_KEY_MAT_PARAMS *ckSSL3KeyMatParam;
+ ckSSL3KeyMatParam = (CK_SSL3_KEY_MAT_PARAMS *)ckMechanism->pParameter;
+ if (ckSSL3KeyMatParam != NULL_PTR) {
+ copyBackKeyMatParams(env, ckMechanism, jMechanism,
+ &(ckSSL3KeyMatParam->RandomInfo),
+ ckSSL3KeyMatParam->pReturnedKeyMaterial,
+ CLASS_SSL3_KEY_MAT_PARAMS);
+ }
+}
+
+/*
+ * Copy back the derived keys and initialization vectors from the native
+ * structure to the Java object. This is only used for
+ * CKM_TLS12_KEY_AND_MAC_DERIVE mechanism when used for deriving a key.
+ *
+ */
+void tls12CopyBackKeyMatParams(JNIEnv *env, CK_MECHANISM *ckMechanism,
+ jobject jMechanism)
+{
+ CK_TLS12_KEY_MAT_PARAMS *ckTLS12KeyMatParam;
+ ckTLS12KeyMatParam = (CK_TLS12_KEY_MAT_PARAMS *) ckMechanism->pParameter;
+ if (ckTLS12KeyMatParam != NULL_PTR) {
+ copyBackKeyMatParams(env, ckMechanism, jMechanism,
+ &(ckTLS12KeyMatParam->RandomInfo),
+ ckTLS12KeyMatParam->pReturnedKeyMaterial,
+ CLASS_TLS12_KEY_MAT_PARAMS);
+ }
}
#endif
--- a/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/pkcs11t.h Sat Sep 22 20:31:45 2018 -0700
+++ b/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/pkcs11t.h Mon Sep 24 10:59:26 2018 -0700
@@ -807,6 +807,12 @@
#define CKM_WTLS_SERVER_KEY_AND_MAC_DERIVE 0x000003D4
#define CKM_WTLS_CLIENT_KEY_AND_MAC_DERIVE 0x000003D5
+/* new for v2.40 */
+#define CKM_TLS12_MASTER_KEY_DERIVE 0x000003E0
+#define CKM_TLS12_KEY_AND_MAC_DERIVE 0x000003E1
+#define CKM_TLS12_MASTER_KEY_DERIVE_DH 0x000003E2
+#define CKM_TLS_MAC 0x000003E4
+
#define CKM_KEY_WRAP_LYNKS 0x00000400
#define CKM_KEY_WRAP_SET_OAEP 0x00000401
@@ -1682,4 +1688,34 @@
typedef CK_PKCS5_PBKD2_PARAMS CK_PTR CK_PKCS5_PBKD2_PARAMS_PTR;
+/* new for v2.40 */
+
+typedef struct CK_TLS12_MASTER_KEY_DERIVE_PARAMS {
+ CK_SSL3_RANDOM_DATA RandomInfo;
+ CK_VERSION_PTR pVersion;
+ CK_MECHANISM_TYPE prfHashMechanism;
+} CK_TLS12_MASTER_KEY_DERIVE_PARAMS;
+
+typedef CK_TLS12_MASTER_KEY_DERIVE_PARAMS CK_PTR CK_TLS12_MASTER_KEY_DERIVE_PARAMS_PTR;
+
+typedef struct CK_TLS12_KEY_MAT_PARAMS {
+ CK_ULONG ulMacSizeInBits;
+ CK_ULONG ulKeySizeInBits;
+ CK_ULONG ulIVSizeInBits;
+ CK_BBOOL bIsExport;
+ CK_SSL3_RANDOM_DATA RandomInfo;
+ CK_SSL3_KEY_MAT_OUT_PTR pReturnedKeyMaterial;
+ CK_MECHANISM_TYPE prfHashMechanism;
+} CK_TLS12_KEY_MAT_PARAMS;
+
+typedef CK_TLS12_KEY_MAT_PARAMS CK_PTR CK_TLS12_KEY_MAT_PARAMS_PTR;
+
+typedef struct CK_TLS_MAC_PARAMS {
+ CK_MECHANISM_TYPE prfMechanism;
+ CK_ULONG ulMacLength;
+ CK_ULONG ulServerOrClient;
+} CK_TLS_MAC_PARAMS;
+
+typedef CK_TLS_MAC_PARAMS CK_PTR CK_TLS_MAC_PARAMS_PTR;
+
#endif
--- a/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/pkcs11wrapper.h Sat Sep 22 20:31:45 2018 -0700
+++ b/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/pkcs11wrapper.h Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
*/
/* Copyright (c) 2002 Graz University of Technology. All rights reserved.
@@ -276,10 +276,13 @@
#define CLASS_SSL3_RANDOM_DATA "sun/security/pkcs11/wrapper/CK_SSL3_RANDOM_DATA"
// CLASS_SSL3_RANDOM_DATA is used by CLASS_SSL3_MASTER_KEY_DERIVE_PARAMS
#define CLASS_SSL3_KEY_MAT_OUT "sun/security/pkcs11/wrapper/CK_SSL3_KEY_MAT_OUT"
-// CLASS_SSL3_KEY_MAT_OUT is used by CLASS_SSL3_KEY_MAT_PARAMS
+// CLASS_SSL3_KEY_MAT_OUT is used by CLASS_SSL3_KEY_MAT_PARAMS and CK_TLS12_KEY_MAT_PARAMS
#define CLASS_SSL3_MASTER_KEY_DERIVE_PARAMS "sun/security/pkcs11/wrapper/CK_SSL3_MASTER_KEY_DERIVE_PARAMS"
+#define CLASS_TLS12_MASTER_KEY_DERIVE_PARAMS "sun/security/pkcs11/wrapper/CK_TLS12_MASTER_KEY_DERIVE_PARAMS"
#define CLASS_SSL3_KEY_MAT_PARAMS "sun/security/pkcs11/wrapper/CK_SSL3_KEY_MAT_PARAMS"
+#define CLASS_TLS12_KEY_MAT_PARAMS "sun/security/pkcs11/wrapper/CK_TLS12_KEY_MAT_PARAMS"
#define CLASS_TLS_PRF_PARAMS "sun/security/pkcs11/wrapper/CK_TLS_PRF_PARAMS"
+#define CLASS_TLS_MAC_PARAMS "sun/security/pkcs11/wrapper/CK_TLS_MAC_PARAMS"
#define CLASS_AES_CTR_PARAMS "sun/security/pkcs11/wrapper/CK_AES_CTR_PARAMS"
/* function to convert a PKCS#11 return value other than CK_OK into a Java Exception
@@ -369,9 +372,11 @@
CK_KEY_WRAP_SET_OAEP_PARAMS jKeyWrapSetOaepParamToCKKeyWrapSetOaepParam(JNIEnv *env, jobject jParam);
void copyBackSetUnwrappedKey(JNIEnv *env, CK_MECHANISM *ckMechanism, jobject jMechanism);
CK_SSL3_MASTER_KEY_DERIVE_PARAMS jSsl3MasterKeyDeriveParamToCKSsl3MasterKeyDeriveParam(JNIEnv *env, jobject jParam);
-void copyBackClientVersion(JNIEnv *env, CK_MECHANISM *ckMechanism, jobject jMechanism);
+void ssl3CopyBackClientVersion(JNIEnv *env, CK_MECHANISM *ckMechanism, jobject jMechanism);
+void tls12CopyBackClientVersion(JNIEnv *env, CK_MECHANISM *ckMechanism, jobject jMechanism);
CK_SSL3_KEY_MAT_PARAMS jSsl3KeyMatParamToCKSsl3KeyMatParam(JNIEnv *env, jobject jParam);
-void copyBackSSLKeyMatParams(JNIEnv *env, CK_MECHANISM *ckMechanism, jobject jMechanism);
+void ssl3CopyBackKeyMatParams(JNIEnv *env, CK_MECHANISM *ckMechanism, jobject jMechanism);
+void tls12CopyBackKeyMatParams(JNIEnv *env, CK_MECHANISM *ckMechanism, jobject jMechanism);
CK_KEY_DERIVATION_STRING_DATA jKeyDerivationStringDataToCKKeyDerivationStringData(JNIEnv *env, jobject jParam);
CK_RSA_PKCS_PSS_PARAMS jRsaPkcsPssParamToCKRsaPkcsPssParam(JNIEnv *env, jobject jParam);
CK_ECDH1_DERIVE_PARAMS jEcdh1DeriveParamToCKEcdh1DeriveParam(JNIEnv *env, jobject jParam);
--- a/src/jdk.hotspot.agent/linux/native/libsaproc/ps_core.c Sat Sep 22 20:31:45 2018 -0700
+++ b/src/jdk.hotspot.agent/linux/native/libsaproc/ps_core.c Mon Sep 24 10:59:26 2018 -0700
@@ -795,7 +795,11 @@
if (exec_php->p_filesz > BUF_SIZE) {
goto err;
}
- pread(ph->core->exec_fd, interp_name, exec_php->p_filesz, exec_php->p_offset);
+ if (pread(ph->core->exec_fd, interp_name,
+ exec_php->p_filesz, exec_php->p_offset) != exec_php->p_filesz) {
+ print_debug("Unable to read in the ELF interpreter\n");
+ goto err;
+ }
interp_name[exec_php->p_filesz] = '\0';
print_debug("ELF interpreter %s\n", interp_name);
// read interpreter segments as well
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractModuleIndexWriter.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractModuleIndexWriter.java Mon Sep 24 10:59:26 2018 -0700
@@ -33,6 +33,7 @@
import javax.lang.model.element.ModuleElement;
import javax.lang.model.element.PackageElement;
+import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder;
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlConstants;
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
@@ -81,30 +82,30 @@
/**
* Adds the navigation bar header to the documentation tree.
*
- * @param body the document tree to which the navigation bar header will be added
+ * @param header the document tree to which the navigation bar header will be added
*/
- protected abstract void addNavigationBarHeader(Content body);
+ protected abstract void addNavigationBarHeader(Content header);
/**
* Adds the navigation bar footer to the documentation tree.
*
- * @param body the document tree to which the navigation bar footer will be added
+ * @param footer the document tree to which the navigation bar footer will be added
*/
- protected abstract void addNavigationBarFooter(Content body);
+ protected abstract void addNavigationBarFooter(Content footer);
/**
* Adds the overview header to the documentation tree.
*
- * @param body the document tree to which the overview header will be added
+ * @param main the document tree to which the overview header will be added
*/
- protected abstract void addOverviewHeader(Content body);
+ protected abstract void addOverviewHeader(Content main);
/**
* Adds the modules list to the documentation tree.
*
- * @param body the document tree to which the modules list will be added
+ * @param main the document tree to which the modules list will be added
*/
- protected abstract void addModulesList(Content body);
+ protected abstract void addModulesList(Content main);
/**
* Adds the module packages list to the documentation tree.
@@ -112,11 +113,11 @@
* @param modules the set of modules
* @param text caption for the table
* @param tableSummary summary for the table
- * @param body the document tree to which the modules list will be added
+ * @param main the document tree to which the modules list will be added
* @param mdle the module being documented
*/
protected abstract void addModulePackagesList(Map<ModuleElement, Set<PackageElement>> modules, String text,
- String tableSummary, Content body, ModuleElement mdle);
+ String tableSummary, Content main, ModuleElement mdle);
/**
* Generate and prints the contents in the module index file. Call appropriate
@@ -130,11 +131,17 @@
protected void buildModuleIndexFile(String title, boolean includeScript) throws DocFileIOException {
String windowOverview = configuration.getText(title);
Content body = getBody(includeScript, getWindowTitle(windowOverview));
- addNavigationBarHeader(body);
- addOverviewHeader(body);
- addIndex(body);
- addOverview(body);
- addNavigationBarFooter(body);
+ Content header = createTagIfAllowed(HtmlTag.HEADER, HtmlTree::HEADER, ContentBuilder::new);
+ addNavigationBarHeader(header);
+ Content main = createTagIfAllowed(HtmlTag.MAIN, HtmlTree::MAIN, ContentBuilder::new);
+ addOverviewHeader(main);
+ addIndex(header, main);
+ addOverview(main);
+ Content footer = createTagIfAllowed(HtmlTag.FOOTER, HtmlTree::FOOTER, ContentBuilder::new);
+ addNavigationBarFooter(footer);
+ body.addContent(header);
+ body.addContent(main);
+ body.addContent(footer);
printHtmlDocument(configuration.metakeywords.getOverviewMetaKeywords(title,
configuration.doctitle), includeScript, body);
}
@@ -153,11 +160,17 @@
boolean includeScript, ModuleElement mdle) throws DocFileIOException {
String windowOverview = configuration.getText(title);
Content body = getBody(includeScript, getWindowTitle(windowOverview));
- addNavigationBarHeader(body);
- addOverviewHeader(body);
- addModulePackagesIndex(body, mdle);
- addOverview(body);
- addNavigationBarFooter(body);
+ Content header = createTagIfAllowed(HtmlTag.HEADER, HtmlTree::HEADER, ContentBuilder::new);
+ addNavigationBarHeader(header);
+ Content main = createTagIfAllowed(HtmlTag.MAIN, HtmlTree::MAIN, ContentBuilder::new);
+ addOverviewHeader(main);
+ addModulePackagesIndex(header, main, mdle);
+ addOverview(main);
+ Content footer = createTagIfAllowed(HtmlTag.FOOTER, HtmlTree::FOOTER, ContentBuilder::new);
+ addNavigationBarFooter(footer);
+ body.addContent(header);
+ body.addContent(main);
+ body.addContent(footer);
printHtmlDocument(configuration.metakeywords.getOverviewMetaKeywords(title,
configuration.doctitle), includeScript, body);
}
@@ -165,33 +178,35 @@
/**
* Default to no overview, override to add overview.
*
- * @param body the document tree to which the overview will be added
+ * @param main the document tree to which the overview will be added
*/
- protected void addOverview(Content body) { }
+ protected void addOverview(Content main) { }
/**
* Adds the frame or non-frame module index to the documentation tree.
*
- * @param body the document tree to which the index will be added
+ * @param header the document tree to which the navigational links will be added
+ * @param main the document tree to which the modules list will be added
*/
- protected void addIndex(Content body) {
+ protected void addIndex(Content header, Content main) {
addIndexContents(configuration.modules, "doclet.Module_Summary",
configuration.getText("doclet.Member_Table_Summary",
configuration.getText("doclet.Module_Summary"),
- configuration.getText("doclet.modules")), body);
+ configuration.getText("doclet.modules")), header, main);
}
/**
* Adds the frame or non-frame module packages index to the documentation tree.
*
- * @param body the document tree to which the index will be added
+ * @param header the document tree to which the navigational links will be added
+ * @param main the document tree to which the module packages list will be added
* @param mdle the module being documented
*/
- protected void addModulePackagesIndex(Content body, ModuleElement mdle) {
+ protected void addModulePackagesIndex(Content header, Content main, ModuleElement mdle) {
addModulePackagesIndexContents("doclet.Module_Summary",
configuration.getText("doclet.Member_Table_Summary",
configuration.getText("doclet.Module_Summary"),
- configuration.getText("doclet.modules")), body, mdle);
+ configuration.getText("doclet.modules")), header, main, mdle);
}
/**
@@ -201,20 +216,19 @@
* @param modules the modules to be documented
* @param text string which will be used as the heading
* @param tableSummary summary for the table
- * @param body the document tree to which the index contents will be added
+ * @param header the document tree to which the navgational links will be added
+ * @param main the document tree to which the modules list will be added
*/
protected void addIndexContents(Collection<ModuleElement> modules, String text,
- String tableSummary, Content body) {
- HtmlTree htmlTree = (configuration.allowTag(HtmlTag.NAV))
- ? HtmlTree.NAV()
- : new HtmlTree(HtmlTag.DIV);
+ String tableSummary, Content header, Content main) {
+ HtmlTree htmlTree = (HtmlTree)createTagIfAllowed(HtmlTag.NAV, HtmlTree::NAV, () -> new HtmlTree(HtmlTag.DIV));
htmlTree.setStyle(HtmlStyle.indexNav);
HtmlTree ul = new HtmlTree(HtmlTag.UL);
addAllClassesLink(ul);
addAllPackagesLink(ul);
htmlTree.addContent(ul);
- body.addContent(htmlTree);
- addModulesList(body);
+ header.addContent(htmlTree);
+ addModulesList(main);
}
/**
@@ -223,22 +237,21 @@
*
* @param text string which will be used as the heading
* @param tableSummary summary for the table
- * @param body the document tree to which the index contents will be added
+ * @param header the document tree to which the navigational links will be added
+ * @param main the document tree to which the module packages list will be added
* @param mdle the module being documented
*/
protected void addModulePackagesIndexContents(String text,
- String tableSummary, Content body, ModuleElement mdle) {
- HtmlTree htmlTree = (configuration.allowTag(HtmlTag.NAV))
- ? HtmlTree.NAV()
- : new HtmlTree(HtmlTag.DIV);
+ String tableSummary, Content header, Content main, ModuleElement mdle) {
+ HtmlTree htmlTree = (HtmlTree)createTagIfAllowed(HtmlTag.NAV, HtmlTree::NAV, () -> new HtmlTree(HtmlTag.DIV));
htmlTree.setStyle(HtmlStyle.indexNav);
HtmlTree ul = new HtmlTree(HtmlTag.UL);
addAllClassesLink(ul);
addAllPackagesLink(ul);
addAllModulesLink(ul);
htmlTree.addContent(ul);
- body.addContent(htmlTree);
- addModulePackagesList(modules, text, tableSummary, body, mdle);
+ header.addContent(htmlTree);
+ addModulePackagesList(modules, text, tableSummary, main, mdle);
}
/**
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractPackageIndexWriter.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractPackageIndexWriter.java Mon Sep 24 10:59:26 2018 -0700
@@ -29,6 +29,7 @@
import javax.lang.model.element.PackageElement;
+import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder;
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlConstants;
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
@@ -78,9 +79,9 @@
/**
* Adds the navigation bar header to the documentation tree.
*
- * @param body the document tree to which the navigation bar header will be added
+ * @param header the document tree to which the navigation bar header will be added
*/
- protected abstract void addNavigationBarHeader(Content body);
+ protected abstract void addNavigationBarHeader(Content header);
/**
* Adds the navigation bar footer to the documentation tree.
@@ -92,16 +93,16 @@
/**
* Adds the overview header to the documentation tree.
*
- * @param body the document tree to which the overview header will be added
+ * @param footer the document tree to which the overview header will be added
*/
- protected abstract void addOverviewHeader(Content body);
+ protected abstract void addOverviewHeader(Content footer);
/**
* Adds the packages list to the documentation tree.
*
- * @param body the document tree to which the packages list will be added
+ * @param main the document tree to which the packages list will be added
*/
- protected abstract void addPackagesList(Content body);
+ protected abstract void addPackagesList(Content main);
/**
* Generate and prints the contents in the package index file. Call appropriate
@@ -115,11 +116,17 @@
protected void buildPackageIndexFile(String title, boolean includeScript) throws DocFileIOException {
String windowOverview = configuration.getText(title);
Content body = getBody(includeScript, getWindowTitle(windowOverview));
- addNavigationBarHeader(body);
- addOverviewHeader(body);
- addIndex(body);
- addOverview(body);
- addNavigationBarFooter(body);
+ Content header = createTagIfAllowed(HtmlTag.HEADER, HtmlTree::HEADER, ContentBuilder::new);
+ addNavigationBarHeader(header);
+ Content main = createTagIfAllowed(HtmlTag.MAIN, HtmlTree::MAIN, ContentBuilder::new);
+ addOverviewHeader(main);
+ addIndex(header, main);
+ addOverview(main);
+ Content footer = createTagIfAllowed(HtmlTag.FOOTER, HtmlTree::FOOTER, ContentBuilder::new);
+ addNavigationBarFooter(footer);
+ body.addContent(header);
+ body.addContent(main);
+ body.addContent(footer);
printHtmlDocument(configuration.metakeywords.getOverviewMetaKeywords(title,
configuration.doctitle), includeScript, body);
}
@@ -127,30 +134,30 @@
/**
* Default to no overview, override to add overview.
*
- * @param body the document tree to which the overview will be added
+ * @param main the document tree to which the overview will be added
*/
- protected void addOverview(Content body) { }
+ protected void addOverview(Content main) { }
/**
* Adds the frame or non-frame package index to the documentation tree.
*
- * @param body the document tree to which the index will be added
+ * @param header the document tree to which the navigation links will be added
+ * @param main the document tree to which the packages list will be added
*/
- protected void addIndex(Content body) {
- addIndexContents(body);
+ protected void addIndex(Content header, Content main) {
+ addIndexContents(header, main);
}
/**
* Adds package index contents. Call appropriate methods from
* the sub-classes. Adds it to the body HtmlTree
*
- * @param body the document tree to which the index contents will be added
+ * @param header the document tree to which navigation links will be added
+ * @param main the document tree to which the packages list will be added
*/
- protected void addIndexContents(Content body) {
+ protected void addIndexContents(Content header, Content main) {
if (!packages.isEmpty()) {
- HtmlTree htmlTree = (configuration.allowTag(HtmlTag.NAV))
- ? HtmlTree.NAV()
- : new HtmlTree(HtmlTag.DIV);
+ HtmlTree htmlTree = (HtmlTree)createTagIfAllowed(HtmlTag.NAV, HtmlTree::NAV, () -> new HtmlTree(HtmlTag.DIV));
htmlTree.setStyle(HtmlStyle.indexNav);
HtmlTree ul = new HtmlTree(HtmlTag.UL);
addAllClassesLink(ul);
@@ -158,8 +165,8 @@
addAllModulesLink(ul);
}
htmlTree.addContent(ul);
- body.addContent(htmlTree);
- addPackagesList(body);
+ header.addContent(htmlTree);
+ addPackagesList(main);
}
}
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AllClassesFrameWriter.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AllClassesFrameWriter.java Mon Sep 24 10:59:26 2018 -0700
@@ -29,6 +29,7 @@
import javax.lang.model.element.Element;
import javax.lang.model.element.TypeElement;
+import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder;
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlConstants;
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
@@ -111,15 +112,15 @@
protected void buildAllClassesFile(boolean wantFrames) throws DocFileIOException {
String label = configuration.getText("doclet.All_Classes");
Content body = getBody(false, getWindowTitle(label));
+ Content htmlTree = createTagIfAllowed(HtmlTag.MAIN, HtmlTree::MAIN, ContentBuilder::new);
Content heading = HtmlTree.HEADING(HtmlConstants.TITLE_HEADING,
HtmlStyle.bar, contents.allClassesLabel);
- body.addContent(heading);
+ htmlTree.addContent(heading);
Content ul = new HtmlTree(HtmlTag.UL);
// Generate the class links and add it to the tdFont tree.
addAllClasses(ul, wantFrames);
- HtmlTree htmlTree = (configuration.allowTag(HtmlTag.MAIN))
- ? HtmlTree.MAIN(HtmlStyle.indexContainer, ul)
- : HtmlTree.DIV(HtmlStyle.indexContainer, ul);
+ HtmlTree div = HtmlTree.DIV(HtmlStyle.indexContainer, ul);
+ htmlTree.addContent(div);
body.addContent(htmlTree);
printHtmlDocument(null, false, body);
}
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java Mon Sep 24 10:59:26 2018 -0700
@@ -29,6 +29,7 @@
import jdk.javadoc.internal.doclets.formats.html.markup.TableHeader;
import java.util.*;
+import java.util.function.Supplier;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -2105,4 +2106,20 @@
Script getMainBodyScript() {
return mainBodyScript;
}
+
+ /**
+ * Creates the HTML tag if the tag is supported by this specific HTML version
+ * otherwise return the Content instance provided by Supplier ifNotSupported.
+ * @param tag the HTML tag
+ * @param ifSupported create this instance if HTML tag is supported
+ * @param ifNotSupported create this instance if HTML tag is not supported
+ * @return
+ */
+ protected Content createTagIfAllowed(HtmlTag tag, Supplier<Content> ifSupported, Supplier<Content> ifNotSupported) {
+ if (configuration.allowTag(tag)) {
+ return ifSupported.get();
+ } else {
+ return ifNotSupported.get();
+ }
+ }
}
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleIndexFrameWriter.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleIndexFrameWriter.java Mon Sep 24 10:59:26 2018 -0700
@@ -83,19 +83,17 @@
/**
* {@inheritDoc}
*/
- protected void addModulesList(Content body) {
+ protected void addModulesList(Content main) {
Content heading = HtmlTree.HEADING(HtmlConstants.MODULE_HEADING, true,
contents.modulesLabel);
- HtmlTree htmlTree = (configuration.allowTag(HtmlTag.MAIN))
- ? HtmlTree.MAIN(HtmlStyle.indexContainer, heading)
- : HtmlTree.DIV(HtmlStyle.indexContainer, heading);
+ HtmlTree htmlTree = HtmlTree.DIV(HtmlStyle.indexContainer, heading);
HtmlTree ul = new HtmlTree(HtmlTag.UL);
ul.setTitle(contents.modulesLabel);
for (ModuleElement mdle: configuration.modules) {
ul.addContent(getModuleLink(mdle));
}
htmlTree.addContent(ul);
- body.addContent(htmlTree);
+ main.addContent(htmlTree);
}
/**
@@ -126,7 +124,7 @@
/**
* {@inheritDoc}
*/
- protected void addNavigationBarHeader(Content body) {
+ protected void addNavigationBarHeader(Content header) {
Content headerContent;
if (configuration.packagesheader.length() > 0) {
headerContent = new RawHtml(replaceDocRootDir(configuration.packagesheader));
@@ -135,7 +133,7 @@
}
Content heading = HtmlTree.HEADING(HtmlConstants.TITLE_HEADING, true,
HtmlStyle.bar, headerContent);
- body.addContent(heading);
+ header.addContent(heading);
}
/**
@@ -173,12 +171,12 @@
/**
* {@inheritDoc}
*/
- protected void addNavigationBarFooter(Content body) {
+ protected void addNavigationBarFooter(Content footer) {
Content p = HtmlTree.P(Contents.SPACE);
- body.addContent(p);
+ footer.addContent(p);
}
protected void addModulePackagesList(Map<ModuleElement, Set<PackageElement>> modules, String text,
- String tableSummary, Content body, ModuleElement mdle) {
+ String tableSummary, Content main, ModuleElement mdle) {
}
}
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleIndexWriter.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleIndexWriter.java Mon Sep 24 10:59:26 2018 -0700
@@ -57,11 +57,6 @@
public class ModuleIndexWriter extends AbstractModuleIndexWriter {
/**
- * HTML tree for main tag.
- */
- private final HtmlTree htmlTree = HtmlTree.MAIN();
-
- /**
* Construct the ModuleIndexWriter.
* @param configuration the configuration object
* @param filename the name of the generated file
@@ -85,22 +80,22 @@
/**
* Add the module index.
*
- * @param body the documentation tree to which the index will be added
+ * @param header the documentation tree to which the navigational links will be added
+ * @param main the documentation tree to which the modules list will be added
*/
@Override
- protected void addIndex(Content body) {
- addIndexContents(body);
+ protected void addIndex(Content header, Content main) {
+ addIndexContents(header, main);
}
/**
* Adds module index contents.
*
- * @param body the document tree to which the index contents will be added
+ * @param header the document tree to which the navigational links will be added
+ * @param main the document tree to which the modules list will be added
*/
- protected void addIndexContents(Content body) {
- HtmlTree htmltree = (configuration.allowTag(HtmlTag.NAV))
- ? HtmlTree.NAV()
- : new HtmlTree(HtmlTag.DIV);
+ protected void addIndexContents(Content header, Content main) {
+ HtmlTree htmltree = (HtmlTree)createTagIfAllowed(HtmlTag.NAV, HtmlTree::NAV, () -> new HtmlTree(HtmlTag.DIV));
htmltree.setStyle(HtmlStyle.indexNav);
HtmlTree ul = new HtmlTree(HtmlTag.UL);
addAllClassesLink(ul);
@@ -108,17 +103,17 @@
addAllModulesLink(ul);
}
htmltree.addContent(ul);
- body.addContent(htmltree);
- addModulesList(body);
+ header.addContent(htmltree);
+ addModulesList(main);
}
/**
* Add the list of modules.
*
- * @param body the content tree to which the module list will be added
+ * @param main the content tree to which the module list will be added
*/
@Override
- protected void addModulesList(Content body) {
+ protected void addModulesList(Content main) {
Map<String, SortedSet<ModuleElement>> groupModuleMap
= configuration.group.groupModules(configuration.modules);
@@ -154,11 +149,7 @@
}
Content div = HtmlTree.DIV(HtmlStyle.contentContainer, table.toContent());
- if (configuration.allowTag(HtmlTag.MAIN)) {
- htmlTree.addContent(div);
- } else {
- body.addContent(div);
- }
+ main.addContent(div);
if (table.needsScript()) {
mainBodyScript.append(table.getScript());
@@ -171,20 +162,16 @@
* summary at the top of the page and generate a link to the description,
* which is added at the end of this page.
*
- * @param body the documentation tree to which the overview header will be added
+ * @param main the documentation tree to which the overview header will be added
*/
@Override
- protected void addOverviewHeader(Content body) {
- addConfigurationTitle(body);
+ protected void addOverviewHeader(Content main) {
+ addConfigurationTitle(main);
if (!utils.getFullBody(configuration.overviewElement).isEmpty()) {
HtmlTree div = new HtmlTree(HtmlTag.DIV);
div.setStyle(HtmlStyle.contentContainer);
addOverviewComment(div);
- if (configuration.allowTag(HtmlTag.MAIN)) {
- htmlTree.addContent(div);
- } else {
- body.addContent(div);
- }
+ main.addContent(div);
}
}
@@ -202,58 +189,34 @@
}
/**
- * For HTML 5, add the htmlTree to the body. For HTML 4, do nothing.
- *
- * @param body the documentation tree to which the overview will be added
- */
- @Override
- protected void addOverview(Content body) {
- if (configuration.allowTag(HtmlTag.MAIN)) {
- body.addContent(htmlTree);
- }
- }
-
- /**
* Adds the top text (from the -top option), the upper
* navigation bar, and then the title (from the"-title"
* option), at the top of page.
*
- * @param body the documentation tree to which the navigation bar header will be added
+ * @param header the documentation tree to which the navigation bar header will be added
*/
@Override
- protected void addNavigationBarHeader(Content body) {
- Content tree = (configuration.allowTag(HtmlTag.HEADER))
- ? HtmlTree.HEADER()
- : body;
- addTop(tree);
+ protected void addNavigationBarHeader(Content header) {
+ addTop(header);
navBar.setUserHeader(getUserHeaderFooter(true));
- tree.addContent(navBar.getContent(true));
- if (configuration.allowTag(HtmlTag.HEADER)) {
- body.addContent(tree);
- }
+ header.addContent(navBar.getContent(true));
}
/**
* Adds the lower navigation bar and the bottom text
* (from the -bottom option) at the bottom of page.
*
- * @param body the documentation tree to which the navigation bar footer will be added
+ * @param footer the documentation tree to which the navigation bar footer will be added
*/
@Override
- protected void addNavigationBarFooter(Content body) {
- Content htmltree = (configuration.allowTag(HtmlTag.FOOTER))
- ? HtmlTree.FOOTER()
- : body;
+ protected void addNavigationBarFooter(Content footer) {
navBar.setUserFooter(getUserHeaderFooter(false));
- htmltree.addContent(navBar.getContent(false));
- addBottom(htmltree);
- if (configuration.allowTag(HtmlTag.FOOTER)) {
- body.addContent(htmltree);
- }
+ footer.addContent(navBar.getContent(false));
+ addBottom(footer);
}
@Override
protected void addModulePackagesList(Map<ModuleElement, Set<PackageElement>> modules, String text,
- String tableSummary, Content body, ModuleElement mdle) {
+ String tableSummary, Content main, ModuleElement mdle) {
}
}
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModulePackageIndexFrameWriter.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModulePackageIndexFrameWriter.java Mon Sep 24 10:59:26 2018 -0700
@@ -84,15 +84,13 @@
* {@inheritDoc}
*/
protected void addModulePackagesList(Map<ModuleElement, Set<PackageElement>> modules, String text,
- String tableSummary, Content body, ModuleElement mdle) {
+ String tableSummary, Content main, ModuleElement mdle) {
Content profNameContent = new StringContent(mdle.getQualifiedName().toString());
Content heading = HtmlTree.HEADING(HtmlConstants.PACKAGE_HEADING, true,
getTargetModuleLink("classFrame", profNameContent, mdle));
heading.addContent(Contents.SPACE);
heading.addContent(contents.packagesLabel);
- HtmlTree htmlTree = (configuration.allowTag(HtmlTag.MAIN))
- ? HtmlTree.MAIN(HtmlStyle.indexContainer, heading)
- : HtmlTree.DIV(HtmlStyle.indexContainer, heading);
+ HtmlTree htmlTree = HtmlTree.DIV(HtmlStyle.indexContainer, heading);
HtmlTree ul = new HtmlTree(HtmlTag.UL);
ul.setTitle(contents.packagesLabel);
List<PackageElement> packages = new ArrayList<>(modules.get(mdle));
@@ -102,7 +100,7 @@
}
}
htmlTree.addContent(ul);
- body.addContent(htmlTree);
+ main.addContent(htmlTree);
}
/**
@@ -157,7 +155,7 @@
/**
* {@inheritDoc}
*/
- protected void addNavigationBarHeader(Content body) {
+ protected void addNavigationBarHeader(Content header) {
Content headerContent;
if (configuration.packagesheader.length() > 0) {
headerContent = new RawHtml(replaceDocRootDir(configuration.packagesheader));
@@ -166,7 +164,7 @@
}
Content heading = HtmlTree.HEADING(HtmlConstants.TITLE_HEADING, true,
HtmlStyle.bar, headerContent);
- body.addContent(heading);
+ header.addContent(heading);
}
/**
@@ -232,8 +230,8 @@
/**
* {@inheritDoc}
*/
- protected void addNavigationBarFooter(Content body) {
+ protected void addNavigationBarFooter(Content footer) {
Content p = HtmlTree.P(Contents.SPACE);
- body.addContent(p);
+ footer.addContent(p);
}
}
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageIndexFrameWriter.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageIndexFrameWriter.java Mon Sep 24 10:59:26 2018 -0700
@@ -77,12 +77,10 @@
* {@inheritDoc}
*/
@Override
- protected void addPackagesList(Content body) {
+ protected void addPackagesList(Content main) {
Content heading = HtmlTree.HEADING(HtmlConstants.PACKAGE_HEADING, true,
contents.packagesLabel);
- HtmlTree htmlTree = (configuration.allowTag(HtmlTag.MAIN))
- ? HtmlTree.MAIN(HtmlStyle.indexContainer, heading)
- : HtmlTree.DIV(HtmlStyle.indexContainer, heading);
+ HtmlTree htmlTree = HtmlTree.DIV(HtmlStyle.indexContainer, heading);
HtmlTree ul = new HtmlTree(HtmlTag.UL);
ul.setTitle(contents.packagesLabel);
for (PackageElement aPackage : packages) {
@@ -94,7 +92,7 @@
}
}
htmlTree.addContent(ul);
- body.addContent(htmlTree);
+ main.addContent(htmlTree);
}
/**
@@ -124,7 +122,7 @@
* {@inheritDoc}
*/
@Override
- protected void addNavigationBarHeader(Content body) {
+ protected void addNavigationBarHeader(Content header) {
Content headerContent;
if (configuration.packagesheader.length() > 0) {
headerContent = new RawHtml(replaceDocRootDir(configuration.packagesheader));
@@ -133,7 +131,7 @@
}
Content heading = HtmlTree.HEADING(HtmlConstants.TITLE_HEADING, true,
HtmlStyle.bar, headerContent);
- body.addContent(heading);
+ header.addContent(heading);
}
/**
@@ -175,8 +173,8 @@
* {@inheritDoc}
*/
@Override
- protected void addNavigationBarFooter(Content body) {
+ protected void addNavigationBarFooter(Content footer) {
Content p = HtmlTree.P(Contents.SPACE);
- body.addContent(p);
+ footer.addContent(p);
}
}
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageIndexWriter.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageIndexWriter.java Mon Sep 24 10:59:26 2018 -0700
@@ -57,11 +57,6 @@
public class PackageIndexWriter extends AbstractPackageIndexWriter {
/**
- * HTML tree for main tag.
- */
- private final HtmlTree htmlTree = HtmlTree.MAIN();
-
- /**
* Construct the PackageIndexWriter. Also constructs the grouping
* information as provided on the command line by "-group" option. Stores
* the order of groups specified by the user.
@@ -90,18 +85,19 @@
* Depending upon the grouping information and their titles, add
* separate table indices for each package group.
*
- * @param body the documentation tree to which the index will be added
+ * @param header the documentation tree to which the navigational links will be added
+ * @param main the documentation tree to which the packages list will be added
*/
@Override
- protected void addIndex(Content body) {
- addIndexContents(body);
+ protected void addIndex(Content header, Content main) {
+ addIndexContents(header, main);
}
/**
* {@inheritDoc}
*/
@Override
- protected void addPackagesList(Content body) {
+ protected void addPackagesList(Content main) {
Map<String, SortedSet<PackageElement>> groupPackageMap
= configuration.group.groupPackages(packages);
@@ -136,11 +132,7 @@
}
Content div = HtmlTree.DIV(HtmlStyle.contentContainer, table.toContent());
- if (configuration.allowTag(HtmlTag.MAIN)) {
- htmlTree.addContent(div);
- } else {
- body.addContent(div);
- }
+ main.addContent(div);
if (table.needsScript()) {
getMainBodyScript().append(table.getScript());
@@ -153,20 +145,16 @@
* summary at the top of the page and generate a link to the description,
* which is added at the end of this page.
*
- * @param body the documentation tree to which the overview header will be added
+ * @param main the documentation tree to which the overview header will be added
*/
@Override
- protected void addOverviewHeader(Content body) {
- addConfigurationTitle(body);
+ protected void addOverviewHeader(Content main) {
+ addConfigurationTitle(main);
if (!utils.getFullBody(configuration.overviewElement).isEmpty()) {
HtmlTree div = new HtmlTree(HtmlTag.DIV);
div.setStyle(HtmlStyle.contentContainer);
addOverviewComment(div);
- if (configuration.allowTag(HtmlTag.MAIN)) {
- htmlTree.addContent(div);
- } else {
- body.addContent(div);
- }
+ main.addContent(div);
}
}
@@ -184,53 +172,29 @@
}
/**
- * For HTML 5, add the htmlTree to the body. For HTML 4, do nothing.
- *
- * @param body the documentation tree to which the overview will be added
- */
- @Override
- protected void addOverview(Content body) {
- if (configuration.allowTag(HtmlTag.MAIN)) {
- body.addContent(htmlTree);
- }
- }
-
- /**
* Adds the top text (from the -top option), the upper
* navigation bar, and then the title (from the"-title"
* option), at the top of page.
*
- * @param body the documentation tree to which the navigation bar header will be added
+ * @param header the documentation tree to which the navigation bar header will be added
*/
@Override
- protected void addNavigationBarHeader(Content body) {
- Content tree = (configuration.allowTag(HtmlTag.HEADER))
- ? HtmlTree.HEADER()
- : body;
- addTop(tree);
+ protected void addNavigationBarHeader(Content header) {
+ addTop(header);
navBar.setUserHeader(getUserHeaderFooter(true));
- tree.addContent(navBar.getContent(true));
- if (configuration.allowTag(HtmlTag.HEADER)) {
- body.addContent(tree);
- }
+ header.addContent(navBar.getContent(true));
}
/**
* Adds the lower navigation bar and the bottom text
* (from the -bottom option) at the bottom of page.
*
- * @param body the documentation tree to which the navigation bar footer will be added
+ * @param footer the documentation tree to which the navigation bar footer will be added
*/
@Override
- protected void addNavigationBarFooter(Content body) {
- Content tree = (configuration.allowTag(HtmlTag.FOOTER))
- ? HtmlTree.FOOTER()
- : body;
+ protected void addNavigationBarFooter(Content footer) {
navBar.setUserFooter(getUserHeaderFooter(false));
- tree.addContent(navBar.getContent(false));
- addBottom(tree);
- if (configuration.allowTag(HtmlTag.FOOTER)) {
- body.addContent(tree);
- }
+ footer.addContent(navBar.getContent(false));
+ addBottom(footer);
}
}
--- a/src/jdk.unsupported/share/classes/sun/misc/Unsafe.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/jdk.unsupported/share/classes/sun/misc/Unsafe.java Mon Sep 24 10:59:26 2018 -0700
@@ -33,6 +33,7 @@
import sun.nio.ch.DirectBuffer;
import java.lang.reflect.Field;
+import java.util.Set;
/**
@@ -56,7 +57,7 @@
public final class Unsafe {
static {
- Reflection.registerMethodsToFilter(Unsafe.class, "getUnsafe");
+ Reflection.registerMethodsToFilter(Unsafe.class, Set.of("getUnsafe"));
}
private Unsafe() {}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/jdk.zipfs/share/classes/jdk/nio/zipfs/ByteArrayChannel.java Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,252 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package jdk.nio.zipfs;
+
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.nio.channels.ClosedChannelException;
+import java.nio.channels.NonWritableChannelException;
+import java.nio.channels.SeekableByteChannel;
+import java.util.Arrays;
+import java.util.concurrent.locks.ReadWriteLock;
+import java.util.concurrent.locks.ReentrantReadWriteLock;
+
+public class ByteArrayChannel implements SeekableByteChannel {
+
+ private final ReadWriteLock rwlock = new ReentrantReadWriteLock();
+ private byte buf[];
+
+ /*
+ * The current position of this channel.
+ */
+ private int pos;
+
+ /*
+ * The index that is one greater than the last valid byte in the channel.
+ */
+ private int last;
+
+ private boolean closed;
+ private boolean readonly;
+
+ /*
+ * Creates a {@code ByteArrayChannel} with size {@code sz}.
+ */
+ ByteArrayChannel(int sz, boolean readonly) {
+ this.buf = new byte[sz];
+ this.pos = this.last = 0;
+ this.readonly = readonly;
+ }
+
+ /*
+ * Creates a ByteArrayChannel with its 'pos' at 0 and its 'last' at buf's end.
+ * Note: no defensive copy of the 'buf', used directly.
+ */
+ ByteArrayChannel(byte[] buf, boolean readonly) {
+ this.buf = buf;
+ this.pos = 0;
+ this.last = buf.length;
+ this.readonly = readonly;
+ }
+
+ @Override
+ public boolean isOpen() {
+ return !closed;
+ }
+
+ @Override
+ public long position() throws IOException {
+ beginRead();
+ try {
+ ensureOpen();
+ return pos;
+ } finally {
+ endRead();
+ }
+ }
+
+ @Override
+ public SeekableByteChannel position(long pos) throws IOException {
+ beginWrite();
+ try {
+ ensureOpen();
+ if (pos < 0 || pos >= Integer.MAX_VALUE)
+ throw new IllegalArgumentException("Illegal position " + pos);
+ this.pos = Math.min((int)pos, last);
+ return this;
+ } finally {
+ endWrite();
+ }
+ }
+
+ @Override
+ public int read(ByteBuffer dst) throws IOException {
+ beginWrite();
+ try {
+ ensureOpen();
+ if (pos == last)
+ return -1;
+ int n = Math.min(dst.remaining(), last - pos);
+ dst.put(buf, pos, n);
+ pos += n;
+ return n;
+ } finally {
+ endWrite();
+ }
+ }
+
+ @Override
+ public SeekableByteChannel truncate(long size) throws IOException {
+ if (readonly)
+ throw new NonWritableChannelException();
+ ensureOpen();
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public int write(ByteBuffer src) throws IOException {
+ if (readonly)
+ throw new NonWritableChannelException();
+ beginWrite();
+ try {
+ ensureOpen();
+ int n = src.remaining();
+ ensureCapacity(pos + n);
+ src.get(buf, pos, n);
+ pos += n;
+ if (pos > last) {
+ last = pos;
+ }
+ return n;
+ } finally {
+ endWrite();
+ }
+ }
+
+ @Override
+ public long size() throws IOException {
+ beginRead();
+ try {
+ ensureOpen();
+ return last;
+ } finally {
+ endRead();
+ }
+ }
+
+ @Override
+ public void close() throws IOException {
+ if (closed)
+ return;
+ beginWrite();
+ try {
+ closed = true;
+ buf = null;
+ pos = 0;
+ last = 0;
+ } finally {
+ endWrite();
+ }
+ }
+
+ /**
+ * Creates a newly allocated byte array. Its size is the current
+ * size of this channel and the valid contents of the buffer
+ * have been copied into it.
+ *
+ * @return the current contents of this channel, as a byte array.
+ */
+ public byte[] toByteArray() {
+ beginRead();
+ try {
+ // avoid copy if last == bytes.length?
+ return Arrays.copyOf(buf, last);
+ } finally {
+ endRead();
+ }
+ }
+
+ private void ensureOpen() throws IOException {
+ if (closed)
+ throw new ClosedChannelException();
+ }
+
+ private final void beginWrite() {
+ rwlock.writeLock().lock();
+ }
+
+ private final void endWrite() {
+ rwlock.writeLock().unlock();
+ }
+
+ private final void beginRead() {
+ rwlock.readLock().lock();
+ }
+
+ private final void endRead() {
+ rwlock.readLock().unlock();
+ }
+
+ private void ensureCapacity(int minCapacity) {
+ // overflow-conscious code
+ if (minCapacity - buf.length > 0) {
+ grow(minCapacity);
+ }
+ }
+
+ /**
+ * The maximum size of array to allocate.
+ * Some VMs reserve some header words in an array.
+ * Attempts to allocate larger arrays may result in
+ * OutOfMemoryError: Requested array size exceeds VM limit
+ */
+ private static final int MAX_ARRAY_SIZE = Integer.MAX_VALUE - 8;
+
+ /**
+ * Increases the capacity to ensure that it can hold at least the
+ * number of elements specified by the minimum capacity argument.
+ *
+ * @param minCapacity the desired minimum capacity
+ */
+ private void grow(int minCapacity) {
+ // overflow-conscious code
+ int oldCapacity = buf.length;
+ int newCapacity = oldCapacity << 1;
+ if (newCapacity - minCapacity < 0)
+ newCapacity = minCapacity;
+ if (newCapacity - MAX_ARRAY_SIZE > 0)
+ newCapacity = hugeCapacity(minCapacity);
+ buf = Arrays.copyOf(buf, newCapacity);
+ }
+
+ private static int hugeCapacity(int minCapacity) {
+ if (minCapacity < 0) // overflow
+ throw new OutOfMemoryError();
+ return (minCapacity > MAX_ARRAY_SIZE) ?
+ Integer.MAX_VALUE :
+ MAX_ARRAY_SIZE;
+ }
+}
--- a/src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipFileSystem.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipFileSystem.java Mon Sep 24 10:59:26 2018 -0700
@@ -30,6 +30,7 @@
import java.io.ByteArrayOutputStream;
import java.io.EOFException;
import java.io.File;
+import java.io.FilterOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
@@ -70,33 +71,34 @@
private final ZipFileSystemProvider provider;
private final Path zfpath;
final ZipCoder zc;
+ private final ZipPath rootdir;
+ private boolean readOnly = false; // readonly file system
+
+ // configurable by env map
private final boolean noExtt; // see readExtra()
- private final ZipPath rootdir;
- // configurable by env map
private final boolean useTempFile; // use a temp file for newOS, default
// is to use BAOS for better performance
- private boolean readOnly = false; // readonly file system
private static final boolean isWindows = AccessController.doPrivileged(
(PrivilegedAction<Boolean>) () -> System.getProperty("os.name")
.startsWith("Windows"));
private final boolean forceEnd64;
+ private final int defaultMethod; // METHOD_STORED if "noCompression=true"
+ // METHOD_DEFLATED otherwise
ZipFileSystem(ZipFileSystemProvider provider,
Path zfpath,
Map<String, ?> env) throws IOException
{
- // create a new zip if not exists
- boolean createNew = "true".equals(env.get("create"));
// default encoding for name/comment
String nameEncoding = env.containsKey("encoding") ?
(String)env.get("encoding") : "UTF-8";
this.noExtt = "false".equals(env.get("zipinfo-time"));
- this.useTempFile = TRUE.equals(env.get("useTempFile"));
- this.forceEnd64 = "true".equals(env.get("forceZIP64End"));
- this.provider = provider;
- this.zfpath = zfpath;
+ this.useTempFile = isTrue(env, "useTempFile");
+ this.forceEnd64 = isTrue(env, "forceZIP64End");
+ this.defaultMethod = isTrue(env, "noCompression") ? METHOD_STORED: METHOD_DEFLATED;
if (Files.notExists(zfpath)) {
- if (createNew) {
+ // create a new zip if not exists
+ if (isTrue(env, "create")) {
try (OutputStream os = Files.newOutputStream(zfpath, CREATE_NEW, WRITE)) {
new END().write(os, 0, forceEnd64);
}
@@ -122,6 +124,13 @@
}
throw x;
}
+ this.provider = provider;
+ this.zfpath = zfpath;
+ }
+
+ // returns true if there is a name=true/"true" setting in env
+ private static boolean isTrue(Map<String, ?> env, String name) {
+ return "true".equals(env.get(name)) || TRUE.equals(env.get(name));
}
@Override
@@ -254,22 +263,23 @@
try {
if (!isOpen)
return;
- isOpen = false; // set closed
+ isOpen = false; // set closed
} finally {
endWrite();
}
- if (!streams.isEmpty()) { // unlock and close all remaining streams
+ if (!streams.isEmpty()) { // unlock and close all remaining streams
Set<InputStream> copy = new HashSet<>(streams);
for (InputStream is: copy)
is.close();
}
- beginWrite(); // lock and sync
+ beginWrite(); // lock and sync
try {
AccessController.doPrivileged((PrivilegedExceptionAction<Void>) () -> {
sync(); return null;
});
- ch.close(); // close the ch just in case no update
- } catch (PrivilegedActionException e) { // and sync dose not close the ch
+ ch.close(); // close the ch just in case no update
+ // and sync didn't close the ch
+ } catch (PrivilegedActionException e) {
throw (IOException)e.getException();
} finally {
endWrite();
@@ -316,8 +326,8 @@
IndexNode inode = getInode(path);
if (inode == null)
return null;
- e = new Entry(inode.name, inode.isdir); // pseudo directory
- e.method = METHOD_STORED; // STORED for dir
+ // pseudo directory, uses METHOD_STORED
+ e = new Entry(inode.name, inode.isdir, METHOD_STORED);
e.mtime = e.atime = e.ctime = zfsDefaultTimeStamp;
}
} finally {
@@ -425,8 +435,7 @@
if (dir.length == 0 || exists(dir)) // root dir, or exiting dir
throw new FileAlreadyExistsException(getString(dir));
checkParents(dir);
- Entry e = new Entry(dir, Entry.NEW, true);
- e.method = METHOD_STORED; // STORED for dir
+ Entry e = new Entry(dir, Entry.NEW, true, METHOD_STORED);
update(e);
} finally {
endWrite();
@@ -467,7 +476,7 @@
checkParents(dst);
}
Entry u = new Entry(eSrc, Entry.COPY); // copy eSrc entry
- u.name(dst); // change name
+ u.name(dst); // change name
if (eSrc.type == Entry.NEW || eSrc.type == Entry.FILECH)
{
u.type = eSrc.type; // make it the same type
@@ -527,7 +536,7 @@
if (hasAppend) {
InputStream is = getInputStream(e);
OutputStream os = getOutputStream(new Entry(e, Entry.NEW));
- copyStream(is, os);
+ is.transferTo(os);
is.close();
return os;
}
@@ -536,7 +545,7 @@
if (!hasCreate && !hasCreateNew)
throw new NoSuchFileException(getString(path));
checkParents(path);
- return getOutputStream(new Entry(path, Entry.NEW, false));
+ return getOutputStream(new Entry(path, Entry.NEW, false, defaultMethod));
}
} finally {
endRead();
@@ -572,6 +581,41 @@
throw new IllegalArgumentException("APPEND + TRUNCATE_EXISTING not allowed");
}
+
+ // Returns an output SeekableByteChannel for either
+ // (1) writing the contents of a new entry, if the entry doesn't exit, or
+ // (2) updating/replacing the contents of an existing entry.
+ // Note: The content is not compressed.
+ private class EntryOutputChannel extends ByteArrayChannel {
+ Entry e;
+
+ EntryOutputChannel(Entry e) throws IOException {
+ super(e.size > 0? (int)e.size : 8192, false);
+ this.e = e;
+ if (e.mtime == -1)
+ e.mtime = System.currentTimeMillis();
+ if (e.method == -1)
+ e.method = defaultMethod;
+ // store size, compressed size, and crc-32 in datadescriptor
+ e.flag = FLAG_DATADESCR;
+ if (zc.isUTF8())
+ e.flag |= FLAG_USE_UTF8;
+ }
+
+ @Override
+ public void close() throws IOException {
+ e.bytes = toByteArray();
+ e.size = e.bytes.length;
+ e.crc = -1;
+ super.close();
+ update(e);
+ }
+ }
+
+ private int getCompressMethod(FileAttribute<?>... attrs) {
+ return defaultMethod;
+ }
+
// Returns a Writable/ReadByteChannel for now. Might consdier to use
// newFileChannel() instead, which dump the entry data into a regular
// file on the default file system and create a FileChannel on top of
@@ -585,57 +629,36 @@
if (options.contains(StandardOpenOption.WRITE) ||
options.contains(StandardOpenOption.APPEND)) {
checkWritable();
- beginRead();
+ beginRead(); // only need a readlock, the "update()" will obtain
+ // thewritelock when the channel is closed
try {
- final WritableByteChannel wbc = Channels.newChannel(
- newOutputStream(path, options.toArray(new OpenOption[0])));
- long leftover = 0;
- if (options.contains(StandardOpenOption.APPEND)) {
- Entry e = getEntry(path);
- if (e != null && e.size >= 0)
- leftover = e.size;
- }
- final long offset = leftover;
- return new SeekableByteChannel() {
- long written = offset;
- public boolean isOpen() {
- return wbc.isOpen();
- }
-
- public long position() throws IOException {
- return written;
- }
-
- public SeekableByteChannel position(long pos)
- throws IOException
- {
- throw new UnsupportedOperationException();
+ ensureOpen();
+ Entry e = getEntry(path);
+ if (e != null) {
+ if (e.isDir() || options.contains(CREATE_NEW))
+ throw new FileAlreadyExistsException(getString(path));
+ SeekableByteChannel sbc =
+ new EntryOutputChannel(new Entry(e, Entry.NEW));
+ if (options.contains(APPEND)) {
+ try (InputStream is = getInputStream(e)) { // copyover
+ byte[] buf = new byte[8192];
+ ByteBuffer bb = ByteBuffer.wrap(buf);
+ int n;
+ while ((n = is.read(buf)) != -1) {
+ bb.position(0);
+ bb.limit(n);
+ sbc.write(bb);
+ }
+ }
}
-
- public int read(ByteBuffer dst) throws IOException {
- throw new UnsupportedOperationException();
- }
-
- public SeekableByteChannel truncate(long size)
- throws IOException
- {
- throw new UnsupportedOperationException();
- }
+ return sbc;
+ }
+ if (!options.contains(CREATE) && !options.contains(CREATE_NEW))
+ throw new NoSuchFileException(getString(path));
+ checkParents(path);
+ return new EntryOutputChannel(
+ new Entry(path, Entry.NEW, false, getCompressMethod(attrs)));
- public int write(ByteBuffer src) throws IOException {
- int n = wbc.write(src);
- written += n;
- return n;
- }
-
- public long size() throws IOException {
- return written;
- }
-
- public void close() throws IOException {
- wbc.close();
- }
- };
} finally {
endRead();
}
@@ -646,51 +669,10 @@
Entry e = getEntry(path);
if (e == null || e.isDir())
throw new NoSuchFileException(getString(path));
- final ReadableByteChannel rbc =
- Channels.newChannel(getInputStream(e));
- final long size = e.size;
- return new SeekableByteChannel() {
- long read = 0;
- public boolean isOpen() {
- return rbc.isOpen();
- }
-
- public long position() throws IOException {
- return read;
- }
-
- public SeekableByteChannel position(long pos)
- throws IOException
- {
- throw new UnsupportedOperationException();
- }
-
- public int read(ByteBuffer dst) throws IOException {
- int n = rbc.read(dst);
- if (n > 0) {
- read += n;
- }
- return n;
- }
-
- public SeekableByteChannel truncate(long size)
- throws IOException
- {
- throw new NonWritableChannelException();
- }
-
- public int write (ByteBuffer src) throws IOException {
- throw new NonWritableChannelException();
- }
-
- public long size() throws IOException {
- return size;
- }
-
- public void close() throws IOException {
- rbc.close();
- }
- };
+ try (InputStream is = getInputStream(e)) {
+ // TBD: if (e.size < NNNNN);
+ return new ByteArrayChannel(is.readAllBytes(), true);
+ }
} finally {
endRead();
}
@@ -743,7 +725,7 @@
final Entry u = isFCH ? e : new Entry(path, tmpfile, Entry.FILECH);
if (forWrite) {
u.flag = FLAG_DATADESCR;
- u.method = METHOD_DEFLATED;
+ u.method = getCompressMethod(attrs);
}
// is there a better way to hook into the FileChannel's close method?
return new FileChannel() {
@@ -846,10 +828,6 @@
private Set<InputStream> streams =
Collections.synchronizedSet(new HashSet<InputStream>());
- // the ex-channel and ex-path that need to close when their outstanding
- // input streams are all closed by the obtainers.
- private Set<ExChannelCloser> exChClosers = new HashSet<>();
-
private Set<Path> tmppaths = Collections.synchronizedSet(new HashSet<Path>());
private Path getTempPathForEntry(byte[] path) throws IOException {
Path tmpPath = createTempFileInSameDirectoryAs(zfpath);
@@ -1087,8 +1065,9 @@
if (pos + CENHDR + nlen > limit) {
zerror("invalid CEN header (bad header size)");
}
- IndexNode inode = new IndexNode(cen, nlen, pos);
+ IndexNode inode = new IndexNode(cen, pos, nlen);
inodes.put(inode, inode);
+
// skip ext and comment
pos += (CENHDR + nlen + elen + clen);
}
@@ -1205,19 +1184,37 @@
return written;
}
+ private long writeEntry(Entry e, OutputStream os, byte[] buf)
+ throws IOException {
+
+ if (e.bytes == null && e.file == null) // dir, 0-length data
+ return 0;
+
+ long written = 0;
+ try (OutputStream os2 = e.method == METHOD_STORED ?
+ new EntryOutputStreamCRC32(e, os) : new EntryOutputStreamDef(e, os)) {
+ if (e.bytes != null) { // in-memory
+ os2.write(e.bytes, 0, e.bytes.length);
+ } else if (e.file != null) { // tmp file
+ if (e.type == Entry.NEW || e.type == Entry.FILECH) {
+ try (InputStream is = Files.newInputStream(e.file)) {
+ is.transferTo(os2);
+ }
+ }
+ Files.delete(e.file);
+ tmppaths.remove(e.file);
+ }
+ }
+ written += e.csize;
+ if ((e.flag & FLAG_DATADESCR) != 0) {
+ written += e.writeEXT(os);
+ }
+ return written;
+ }
+
// sync the zip file system, if there is any udpate
private void sync() throws IOException {
- // System.out.printf("->sync(%s) starting....!%n", toString());
- // check ex-closer
- if (!exChClosers.isEmpty()) {
- for (ExChannelCloser ecc : exChClosers) {
- if (ecc.streams.isEmpty()) {
- ecc.ch.close();
- Files.delete(ecc.path);
- exChClosers.remove(ecc);
- }
- }
- }
+
if (!hasUpdate)
return;
Path tmpFile = createTempFileInSameDirectoryAs(zfpath);
@@ -1243,34 +1240,7 @@
} else { // NEW, FILECH or CEN
e.locoff = written;
written += e.writeLOC(os); // write loc header
- if (e.bytes != null) { // in-memory, deflated
- os.write(e.bytes); // already
- written += e.bytes.length;
- } else if (e.file != null) { // tmp file
- try (InputStream is = Files.newInputStream(e.file)) {
- int n;
- if (e.type == Entry.NEW) { // deflated already
- while ((n = is.read(buf)) != -1) {
- os.write(buf, 0, n);
- written += n;
- }
- } else if (e.type == Entry.FILECH) {
- // the data are not deflated, use ZEOS
- try (OutputStream os2 = new EntryOutputStream(e, os)) {
- while ((n = is.read(buf)) != -1) {
- os2.write(buf, 0, n);
- }
- }
- written += e.csize;
- if ((e.flag & FLAG_DATADESCR) != 0)
- written += e.writeEXT(os);
- }
- }
- Files.delete(e.file);
- tmppaths.remove(e.file);
- } else {
- // dir, 0-length data
- }
+ written += writeEntry(e, os, buf);
}
elist.add(e);
} catch (IOException x) {
@@ -1303,27 +1273,9 @@
end.cenlen = written - end.cenoff;
end.write(os, written, forceEnd64);
}
- if (!streams.isEmpty()) {
- //
- // TBD: ExChannelCloser should not be necessary if we only
- // sync when being closed, all streams should have been
- // closed already. Keep the logic here for now.
- //
- // There are outstanding input streams open on existing "ch",
- // so, don't close the "cha" and delete the "file for now, let
- // the "ex-channel-closer" to handle them
- ExChannelCloser ecc = new ExChannelCloser(
- createTempFileInSameDirectoryAs(zfpath),
- ch,
- streams);
- Files.move(zfpath, ecc.path, REPLACE_EXISTING);
- exChClosers.add(ecc);
- streams = Collections.synchronizedSet(new HashSet<InputStream>());
- } else {
- ch.close();
- Files.delete(zfpath);
- }
+ ch.close();
+ Files.delete(zfpath);
Files.move(tmpFile, zfpath, REPLACE_EXISTING);
hasUpdate = false; // clear
}
@@ -1361,16 +1313,6 @@
}
}
- private static void copyStream(InputStream is, OutputStream os)
- throws IOException
- {
- byte[] copyBuf = new byte[8192];
- int n;
- while ((n = is.read(copyBuf)) != -1) {
- os.write(copyBuf, 0, n);
- }
- }
-
// Returns an out stream for either
// (1) writing the contents of a new entry, if the entry exits, or
// (2) updating/replacing the contents of the specified existing entry.
@@ -1379,9 +1321,9 @@
if (e.mtime == -1)
e.mtime = System.currentTimeMillis();
if (e.method == -1)
- e.method = METHOD_DEFLATED; // TBD: use default method
- // store size, compressed size, and crc-32 in LOC header
- e.flag = 0;
+ e.method = defaultMethod;
+ // store size, compressed size, and crc-32 in datadescr
+ e.flag = FLAG_DATADESCR;
if (zc.isUTF8())
e.flag |= FLAG_USE_UTF8;
OutputStream os;
@@ -1394,16 +1336,130 @@
return new EntryOutputStream(e, os);
}
+ private class EntryOutputStream extends FilterOutputStream {
+ private Entry e;
+ private long written;
+ private boolean isClosed;
+
+ EntryOutputStream(Entry e, OutputStream os) throws IOException {
+ super(os);
+ this.e = Objects.requireNonNull(e, "Zip entry is null");
+ // this.written = 0;
+ }
+
+ @Override
+ public synchronized void write(int b) throws IOException {
+ out.write(b);
+ written += 1;
+ }
+
+ @Override
+ public synchronized void write(byte b[], int off, int len)
+ throws IOException {
+ out.write(b, off, len);
+ written += len;
+ }
+
+ @Override
+ public synchronized void close() throws IOException {
+ if (isClosed) {
+ return;
+ }
+ isClosed = true;
+ e.size = written;
+ if (out instanceof ByteArrayOutputStream)
+ e.bytes = ((ByteArrayOutputStream)out).toByteArray();
+ super.close();
+ update(e);
+ }
+ }
+
+ // Wrapper output stream class to write out a "stored" entry.
+ // (1) this class does not close the underlying out stream when
+ // being closed.
+ // (2) no need to be "synchronized", only used by sync()
+ private class EntryOutputStreamCRC32 extends FilterOutputStream {
+ private Entry e;
+ private CRC32 crc;
+ private long written;
+ private boolean isClosed;
+
+ EntryOutputStreamCRC32(Entry e, OutputStream os) throws IOException {
+ super(os);
+ this.e = Objects.requireNonNull(e, "Zip entry is null");
+ this.crc = new CRC32();
+ }
+
+ @Override
+ public void write(int b) throws IOException {
+ out.write(b);
+ crc.update(b);
+ written += 1;
+ }
+
+ @Override
+ public void write(byte b[], int off, int len)
+ throws IOException {
+ out.write(b, off, len);
+ crc.update(b, off, len);
+ written += len;
+ }
+
+ @Override
+ public void close() throws IOException {
+ if (isClosed)
+ return;
+ isClosed = true;
+ e.size = e.csize = written;
+ e.crc = crc.getValue();
+ }
+ }
+
+ // Wrapper output stream class to write out a "deflated" entry.
+ // (1) this class does not close the underlying out stream when
+ // being closed.
+ // (2) no need to be "synchronized", only used by sync()
+ private class EntryOutputStreamDef extends DeflaterOutputStream {
+ private CRC32 crc;
+ private Entry e;
+ private boolean isClosed;
+
+ EntryOutputStreamDef(Entry e, OutputStream os) throws IOException {
+ super(os, getDeflater());
+ this.e = Objects.requireNonNull(e, "Zip entry is null");
+ this.crc = new CRC32();
+ }
+
+ @Override
+ public void write(byte b[], int off, int len)
+ throws IOException {
+ super.write(b, off, len);
+ crc.update(b, off, len);
+ }
+
+ @Override
+ public void close() throws IOException {
+ if (isClosed)
+ return;
+ isClosed = true;
+ finish();
+ e.size = def.getBytesRead();
+ e.csize = def.getBytesWritten();
+ e.crc = crc.getValue();
+ }
+ }
+
private InputStream getInputStream(Entry e)
throws IOException
{
InputStream eis = null;
if (e.type == Entry.NEW) {
+ // now bytes & file is uncompressed.
if (e.bytes != null)
- eis = new ByteArrayInputStream(e.bytes);
+ return new ByteArrayInputStream(e.bytes);
else if (e.file != null)
- eis = Files.newInputStream(e.file);
+ return Files.newInputStream(e.file);
else
throw new ZipException("update entry data is missing");
} else if (e.type == Entry.FILECH) {
@@ -1569,87 +1625,6 @@
}
}
- class EntryOutputStream extends DeflaterOutputStream
- {
- private CRC32 crc;
- private Entry e;
- private long written;
- private boolean isClosed = false;
-
- EntryOutputStream(Entry e, OutputStream os)
- throws IOException
- {
- super(os, getDeflater());
- if (e == null)
- throw new NullPointerException("Zip entry is null");
- this.e = e;
- crc = new CRC32();
- }
-
- @Override
- public synchronized void write(byte b[], int off, int len)
- throws IOException
- {
- if (e.type != Entry.FILECH) // only from sync
- ensureOpen();
- if (isClosed) {
- throw new IOException("Stream closed");
- }
- if (off < 0 || len < 0 || off > b.length - len) {
- throw new IndexOutOfBoundsException();
- } else if (len == 0) {
- return;
- }
- switch (e.method) {
- case METHOD_DEFLATED:
- super.write(b, off, len);
- break;
- case METHOD_STORED:
- written += len;
- out.write(b, off, len);
- break;
- default:
- throw new ZipException("invalid compression method");
- }
- crc.update(b, off, len);
- }
-
- @Override
- public synchronized void close() throws IOException {
- if (isClosed) {
- return;
- }
- isClosed = true;
- // TBD ensureOpen();
- switch (e.method) {
- case METHOD_DEFLATED:
- finish();
- e.size = def.getBytesRead();
- e.csize = def.getBytesWritten();
- e.crc = crc.getValue();
- break;
- case METHOD_STORED:
- // we already know that both e.size and e.csize are the same
- e.size = e.csize = written;
- e.crc = crc.getValue();
- break;
- default:
- throw new ZipException("invalid compression method");
- }
- //crc.reset();
- if (out instanceof ByteArrayOutputStream)
- e.bytes = ((ByteArrayOutputStream)out).toByteArray();
-
- if (e.type == Entry.FILECH) {
- releaseDeflater(def);
- return;
- }
- super.close();
- releaseDeflater(def);
- update(e);
- }
- }
-
static void zerror(String msg) throws ZipException {
throw new ZipException(msg);
}
@@ -1806,7 +1781,7 @@
}
// constructor for cenInit() (1) remove tailing '/' (2) pad leading '/'
- IndexNode(byte[] cen, int nlen, int pos) {
+ IndexNode(byte[] cen, int pos, int nlen) {
int noff = pos + CENHDR;
if (cen[noff + nlen - 1] == '/') {
isdir = true;
@@ -1902,18 +1877,18 @@
Entry() {}
- Entry(byte[] name, boolean isdir) {
+ Entry(byte[] name, boolean isdir, int method) {
name(name);
this.isdir = isdir;
this.mtime = this.ctime = this.atime = System.currentTimeMillis();
this.crc = 0;
this.size = 0;
this.csize = 0;
- this.method = METHOD_DEFLATED;
+ this.method = method;
}
- Entry(byte[] name, int type, boolean isdir) {
- this(name, isdir);
+ Entry(byte[] name, int type, boolean isdir, int method) {
+ this(name, isdir, method);
this.type = type;
}
@@ -1941,9 +1916,8 @@
}
Entry (byte[] name, Path file, int type) {
- this(name, type, false);
+ this(name, type, false, METHOD_STORED);
this.file = file;
- this.method = METHOD_STORED;
}
int version() throws ZipException {
@@ -2422,6 +2396,7 @@
public String toString() {
StringBuilder sb = new StringBuilder(1024);
Formatter fm = new Formatter(sb);
+ fm.format(" name : %s%n", new String(name));
fm.format(" creationTime : %tc%n", creationTime().toMillis());
fm.format(" lastAccessTime : %tc%n", lastAccessTime().toMillis());
fm.format(" lastModifiedTime: %tc%n", lastModifiedTime().toMillis());
@@ -2439,20 +2414,6 @@
}
}
- private static class ExChannelCloser {
- Path path;
- SeekableByteChannel ch;
- Set<InputStream> streams;
- ExChannelCloser(Path path,
- SeekableByteChannel ch,
- Set<InputStream> streams)
- {
- this.path = path;
- this.ch = ch;
- this.streams = streams;
- }
- }
-
// ZIP directory has two issues:
// (1) ZIP spec does not require the ZIP file to include
// directory entry
--- a/src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipFileSystemProvider.java Sat Sep 22 20:31:45 2018 -0700
+++ b/src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipFileSystemProvider.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2009, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -124,9 +124,6 @@
public FileSystem newFileSystem(Path path, Map<String, ?> env)
throws IOException
{
- if (path.getFileSystem() != FileSystems.getDefault()) {
- throw new UnsupportedOperationException();
- }
ensureFile(path);
try {
ZipFileSystem zipfs;
--- a/test/hotspot/jtreg/compiler/aot/AotCompiler.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/compiler/aot/AotCompiler.java Mon Sep 24 10:59:26 2018 -0700
@@ -100,6 +100,7 @@
}
List<String> args = new ArrayList<>();
args.add("--compile-with-assertions");
+ args.add("--info");
args.add("--output");
args.add(libName);
if (file != null) {
--- a/test/hotspot/jtreg/compiler/jvmci/compilerToVM/AllocateCompileIdTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/compiler/jvmci/compilerToVM/AllocateCompileIdTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -33,7 +33,8 @@
* jdk.internal.vm.ci/jdk.vm.ci.hotspot
* jdk.internal.vm.ci/jdk.vm.ci.code
*
- * @build jdk.internal.vm.ci/jdk.vm.ci.hotspot.CompilerToVMHelper sun.hotspot.WhiteBox
+ * @build jdk.internal.vm.ci/jdk.vm.ci.hotspot.CompilerToVMHelper
+ * sun.hotspot.WhiteBox sun.hotspot.parser.DiagnosticCommand
* @run driver ClassFileInstaller sun.hotspot.WhiteBox
* sun.hotspot.parser.DiagnosticCommand
* sun.hotspot.WhiteBox$WhiteBoxPermission
--- a/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestResolvedJavaType.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestResolvedJavaType.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -49,6 +49,8 @@
import static org.junit.Assert.assertTrue;
import java.lang.annotation.Annotation;
+import java.lang.reflect.AccessibleObject;
+import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
@@ -762,6 +764,13 @@
if (f.getDeclaringClass().equals(metaAccess.lookupJavaType(Class.class)) && f.getName().equals("classLoader")) {
return true;
}
+ if (f.getDeclaringClass().equals(metaAccess.lookupJavaType(ClassLoader.class)) ||
+ f.getDeclaringClass().equals(metaAccess.lookupJavaType(AccessibleObject.class)) ||
+ f.getDeclaringClass().equals(metaAccess.lookupJavaType(Constructor.class)) ||
+ f.getDeclaringClass().equals(metaAccess.lookupJavaType(Field.class)) ||
+ f.getDeclaringClass().equals(metaAccess.lookupJavaType(Method.class))) {
+ return true;
+ }
return false;
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/compiler/loopstripmining/StripMinedLoopReorgOffsets.java Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,68 @@
+/*
+ * Copyright (c) 2018, Red Hat, Inc. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * @test
+ * @bug 8210390
+ * @summary C2 still crashes with "assert(mode == ControlAroundStripMined && use == sfpt) failed: missed a node"
+ *
+ * @run main/othervm -Xcomp StripMinedLoopReorgOffsets
+ *
+ */
+
+public class StripMinedLoopReorgOffsets {
+
+ public static final int N = 400;
+
+ public static long instanceCount=-4622920139809038929L;
+
+ public void mainTest(String[] strArr1) {
+
+ int i1=-211, i20=54720, i21=205, i22=2184, i23=58, i24=-50110, iArr3[]=new int[N];
+
+ for (i20 = 16; 331 > i20; ++i20) {
+ i1 = i20;
+ i21 += i1;
+ iArr3[i20] <<= (int)StripMinedLoopReorgOffsets.instanceCount;
+ for (i22 = 4; i22 < 80; i22++) {
+ i21 = i23;
+ i24 = 1;
+ while (++i24 < 2) {
+ try {
+ iArr3[i22] = (i23 / i1);
+ } catch (ArithmeticException a_e) {}
+ }
+ }
+ }
+
+ System.out.println("i1 i20 = " + i1 + "," + i20);
+ System.out.println("i21 i22 i23 = " + i21 + "," + i22 + "," + i23);
+ System.out.println("i24 = " + i24);
+ }
+ public static void main(String[] strArr) {
+ StripMinedLoopReorgOffsets _instance = new StripMinedLoopReorgOffsets();
+ for (int i = 0; i < 10; i++ ) {
+ _instance.mainTest(strArr);
+ }
+ }
+}
--- a/test/hotspot/jtreg/gc/stress/TestStressIHOPMultiThread.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/gc/stress/TestStressIHOPMultiThread.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -181,7 +181,13 @@
public void run() {
System.out.println("Start the thread " + threadId);
while (TestStressIHOPMultiThread.this.isRunning()) {
- allocate(amountOfGarbage);
+ try {
+ allocate(amountOfGarbage);
+ } catch (OutOfMemoryError e) {
+ free();
+ System.out.println("OutOfMemoryError occurred in thread " + threadId);
+ break;
+ }
free();
}
}
--- a/test/hotspot/jtreg/runtime/appcds/jigsaw/modulepath/AddReads.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/runtime/appcds/jigsaw/modulepath/AddReads.java Mon Sep 24 10:59:26 2018 -0700
@@ -25,7 +25,7 @@
/**
* @test
* @requires vm.cds
- * @library /test/jdk/lib/testlibrary /test/lib /test/hotspot/jtreg/runtime/appcds
+ * @library /test/lib /test/hotspot/jtreg/runtime/appcds
* @modules jdk.compiler
* jdk.jartool/sun.tools.jar
* jdk.jlink
@@ -39,7 +39,7 @@
import java.nio.file.Paths;
import jdk.test.lib.process.OutputAnalyzer;
-import jdk.testlibrary.Asserts;
+import jdk.test.lib.Asserts;
public class AddReads {
--- a/test/hotspot/jtreg/runtime/appcds/jigsaw/modulepath/ExportModule.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/runtime/appcds/jigsaw/modulepath/ExportModule.java Mon Sep 24 10:59:26 2018 -0700
@@ -25,7 +25,7 @@
/**
* @test
* @requires vm.cds
- * @library /test/jdk/lib/testlibrary /test/lib /test/hotspot/jtreg/runtime/appcds
+ * @library /test/lib /test/hotspot/jtreg/runtime/appcds
* @modules jdk.compiler
* jdk.jartool/sun.tools.jar
* jdk.jlink
@@ -40,7 +40,7 @@
import jdk.test.lib.compiler.CompilerUtils;
import jdk.test.lib.process.OutputAnalyzer;
-import jdk.testlibrary.Asserts;
+import jdk.test.lib.Asserts;
public class ExportModule {
--- a/test/hotspot/jtreg/runtime/execstack/TestCheckJDK.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/runtime/execstack/TestCheckJDK.java Mon Sep 24 10:59:26 2018 -0700
@@ -48,7 +48,8 @@
static void checkExecStack(Path file) {
String filename = file.toString();
- if (filename.endsWith(".so")) {
+ Path parent = file.getParent();
+ if (parent.endsWith("bin") || filename.endsWith(".so")) {
if (!WB.checkLibSpecifiesNoexecstack(filename)) {
System.out.println("Library does not have the noexecstack bit set: " + filename);
testPassed = false;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/runtime/jsig/Testjsig.java Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test Testjsig.java
+ * @bug 8017498
+ * @bug 8020791
+ * @bug 8021296
+ * @bug 8022301
+ * @bug 8025519
+ * @summary sigaction(sig) results in process hang/timed-out if sig is much greater than SIGRTMAX
+ * @requires (os.family == "linux")
+ * @library /test/lib
+ * @compile TestJNI.java
+ * @run driver Testjsig
+ */
+
+import jdk.test.lib.process.ProcessTools;
+import jdk.test.lib.process.OutputAnalyzer;
+
+public class Testjsig {
+
+ public static void main(String[] args) throws Throwable {
+
+ // Get the JDK, library and class path properties
+ String libpath = System.getProperty("java.library.path");
+
+ // Create a new java process for the TestJNI Java/JNI test
+ ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
+ "-Djava.library.path=" + libpath + ":.",
+ "TestJNI",
+ "100");
+
+ // Start the process and check the output
+ OutputAnalyzer output = new OutputAnalyzer(pb.start());
+ output.shouldContain("old handler");
+ }
+}
--- a/test/hotspot/jtreg/vmTestbase/gc/gctests/mallocWithGC1/libmallocWithGC1.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/gc/gctests/mallocWithGC1/libmallocWithGC1.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -24,9 +24,7 @@
#include <stdlib.h>
#include <time.h>
-#ifdef __cplusplus
extern "C" {
-#endif
JNIEXPORT void JNICALL Java_gc_gctests_mallocWithGC1_mallocWithGC1_getMallocLock01
(JNIEnv *env, jobject obj) {
@@ -43,6 +41,4 @@
}
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/gc/gctests/mallocWithGC2/libmallocWithGC2.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/gc/gctests/mallocWithGC2/libmallocWithGC2.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -24,9 +24,7 @@
#include <stdlib.h>
#include <time.h>
-#ifdef __cplusplus
extern "C" {
-#endif
JNIEXPORT void JNICALL Java_gc_gctests_mallocWithGC2_mallocWithGC2_getMallocLock02
(JNIEnv *env, jobject obj) {
@@ -43,6 +41,4 @@
}
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/gc/gctests/mallocWithGC3/libmallocWithGC3.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/gc/gctests/mallocWithGC3/libmallocWithGC3.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -24,9 +24,7 @@
#include <stdlib.h>
#include <time.h>
-#ifdef __cplusplus
extern "C" {
-#endif
JNIEXPORT void JNICALL
Java_gc_gctests_mallocWithGC3_mallocWithGC3_getMallocLock03
@@ -44,6 +42,4 @@
}
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/gc/gctests/nativeGC01/libnativeGC01.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/gc/gctests/nativeGC01/libnativeGC01.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -24,9 +24,7 @@
#include <jni.h>
#include <stdio.h>
-#ifdef __cplusplus
extern "C" {
-#endif
/*
* A C function that takes a reference to java Object( a circular Linked list)
@@ -66,6 +64,4 @@
return elementCount;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/gc/gctests/nativeGC02/libnativeGC02.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/gc/gctests/nativeGC02/libnativeGC02.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -23,9 +23,7 @@
#include <jni.h>
#include <stdio.h>
-#ifdef __cplusplus
extern "C" {
-#endif
/* A C function that takes a reference to java Object( a circular Linked list)
and utilizes this reference to do a java method callback to determine the
@@ -76,6 +74,4 @@
return elementCount;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/gc/gctests/nativeGC03/libnativeGC03.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/gc/gctests/nativeGC03/libnativeGC03.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -22,9 +22,7 @@
*/
#include <jni.h>
-#ifdef __cplusplus
extern "C" {
-#endif
JNIEXPORT void JNICALL
Java_gc_gctests_nativeGC03_nativeGC03_nativeMethod03
@@ -57,6 +55,4 @@
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/gc/gctests/nativeGC05/libnativeGC05.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/gc/gctests/nativeGC05/libnativeGC05.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -23,9 +23,7 @@
#include <jni.h>
#include <stdio.h>
-#ifdef __cplusplus
extern "C" {
-#endif
JNIEXPORT void JNICALL
Java_gc_gctests_nativeGC05_nativeGC05_kickOffRefillers
@@ -91,6 +89,4 @@
}
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/aod/VirtualMachine/VirtualMachine07/agent00.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/aod/VirtualMachine/VirtualMachine07/agent00.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -26,9 +26,7 @@
#include <jni.h>
#include <aod.h>
-#ifdef __cplusplus
extern "C" {
-#endif
#define AGENT_NAME "VMNativeAgent00"
@@ -65,6 +63,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/aod/VirtualMachine/VirtualMachine07/agent01.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/aod/VirtualMachine/VirtualMachine07/agent01.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -26,9 +26,7 @@
#include <jni.h>
#include <aod.h>
-#ifdef __cplusplus
extern "C" {
-#endif
#define AGENT_NAME "VMNativeAgent01"
@@ -68,6 +66,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/aod/VirtualMachine/VirtualMachine07/agent02.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/aod/VirtualMachine/VirtualMachine07/agent02.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -26,9 +26,7 @@
#include <jni.h>
#include <aod.h>
-#ifdef __cplusplus
extern "C" {
-#endif
#define AGENT_NAME "VMNativeAgent02"
@@ -70,6 +68,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/aod/VirtualMachine/VirtualMachine07/agent03.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/aod/VirtualMachine/VirtualMachine07/agent03.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -26,9 +26,7 @@
#include <jni.h>
#include <aod.h>
-#ifdef __cplusplus
extern "C" {
-#endif
#define AGENT_NAME "VMNativeAgent03"
@@ -59,6 +57,4 @@
return ON_ATTACH_EXIT_CODE;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/aod/VirtualMachine/VirtualMachine09/agent00.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/aod/VirtualMachine/VirtualMachine09/agent00.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -26,9 +26,7 @@
#include <jni.h>
#include <aod.h>
-#ifdef __cplusplus
extern "C" {
-#endif
/*
* Test checks following spec clause: "Agent_OnAttach function is invoked even if the agent library was loaded
@@ -68,6 +66,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jdb/unwatch/unwatch002/unwatch002.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jdb/unwatch/unwatch002/unwatch002.java Mon Sep 24 10:59:26 2018 -0700
@@ -91,6 +91,7 @@
static final String DEBUGGEE_CLASS2 = DEBUGGEE_CLASS + "$CheckedFields";
static final String FIRST_BREAK = DEBUGGEE_CLASS + ".main";
static final String LAST_BREAK = DEBUGGEE_CLASS + ".breakHere";
+ static final String expectedPrompt = "main[1]";
static String[] checkedFields = { "FS1" };
static String[] checkedFields2 = { "FT1", "FV1" };
@@ -113,7 +114,7 @@
// jdb.contToExit((checkedFields.length *2) + (checkedFields2.length *2) + 2);
for (int i = 0; i < (checkedFields.length *2 + checkedFields2.length*2 + 2); i++) {
- reply = jdb.receiveReplyFor(JdbCommand.cont);
+ reply = jdb.receiveReplyForWithMessageWait(JdbCommand.cont, expectedPrompt);
}
unwatchFields (DEBUGGEE_CLASS, checkedFields);
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AddCapabilities/addcaps001/addcaps001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AddCapabilities/addcaps001/addcaps001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -348,6 +346,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AddCapabilities/addcaps002/addcaps002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AddCapabilities/addcaps002/addcaps002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -372,6 +370,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AddCapabilities/addcaps003/addcaps003.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AddCapabilities/addcaps003/addcaps003.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -221,6 +219,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/Agent_OnLoad/agentonload001/agentonload001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/Agent_OnLoad/agentonload001/agentonload001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -25,9 +25,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -88,6 +86,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/Agent_OnLoad/agentonload002/agentonload002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/Agent_OnLoad/agentonload002/agentonload002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -26,9 +26,7 @@
#include "jvmti.h"
#include "agent_common.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -69,6 +67,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/Agent_OnLoad/agentonload003/agentonload003.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/Agent_OnLoad/agentonload003/agentonload003.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -26,9 +26,7 @@
#include "jvmti.h"
#include "agent_common.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -69,6 +67,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/Agent_OnUnload/agentonunload001/agentonunload001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/Agent_OnUnload/agentonunload001/agentonunload001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -25,9 +25,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -83,6 +81,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach002/attach002Agent00.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach002/attach002Agent00.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include <aod.h>
#include <jvmti_aod.h>
-#ifdef __cplusplus
extern "C" {
-#endif
/*
* Expected agent work scenario:
@@ -241,6 +239,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach002a/attach002aAgent00.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach002a/attach002aAgent00.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include <aod.h>
#include <jvmti_aod.h>
-#ifdef __cplusplus
extern "C" {
-#endif
/*
* Expected agent work scenario:
@@ -130,6 +128,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach008/attach008Agent00.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach008/attach008Agent00.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include <aod.h>
#include <jvmti_aod.h>
-#ifdef __cplusplus
extern "C" {
-#endif
/*
* Expected agent work scenario:
@@ -148,6 +146,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach009/attach009Agent00.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach009/attach009Agent00.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include <aod.h>
#include <jvmti_aod.h>
-#ifdef __cplusplus
extern "C" {
-#endif
/*
* Expected agent work scenario:
@@ -160,6 +158,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach012/attach012Agent00.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach012/attach012Agent00.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include <aod.h>
#include <jvmti_aod.h>
-#ifdef __cplusplus
extern "C" {
-#endif
/*
* Agent tries to get all potential capabilities
@@ -91,6 +89,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach014/attach014Agent00.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach014/attach014Agent00.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include <aod.h>
#include <jvmti_aod.h>
-#ifdef __cplusplus
extern "C" {
-#endif
#define LOADED_CLASS_NAME "Lnsk/jvmti/AttachOnDemand/attach014/ClassToLoad;"
@@ -122,6 +120,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach015/attach015Agent00.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach015/attach015Agent00.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include <aod.h>
#include <jvmti_aod.h>
-#ifdef __cplusplus
extern "C" {
-#endif
/*
* Expected agent work scenario:
@@ -114,6 +112,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach015/attach015Agent01.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach015/attach015Agent01.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include <aod.h>
#include <jvmti_aod.h>
-#ifdef __cplusplus
extern "C" {
-#endif
/*
* Expected agent work scenario:
@@ -114,6 +112,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach015/attach015Target.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach015/attach015Target.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include <aod.h>
#include <jvmti_aod.h>
-#ifdef __cplusplus
extern "C" {
-#endif
#define LOADED_CLASS_NAME "nsk/jvmti/AttachOnDemand/attach015/ClassToLoad2"
@@ -42,6 +40,4 @@
return NSK_CPP_STUB2(FindClass, jni, LOADED_CLASS_NAME) ? JNI_TRUE : JNI_FALSE;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach020/attach020Agent00.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach020/attach020Agent00.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include <aod.h>
#include <jvmti_aod.h>
-#ifdef __cplusplus
extern "C" {
-#endif
/*
* Expected agent work scenario:
@@ -194,6 +192,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach021/attach021Agent00.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach021/attach021Agent00.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include <aod.h>
#include <jvmti_aod.h>
-#ifdef __cplusplus
extern "C" {
-#endif
/*
* Expected agent work scenario:
@@ -166,6 +164,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach022/attach022Agent00.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach022/attach022Agent00.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include <aod.h>
#include <jvmti_aod.h>
-#ifdef __cplusplus
extern "C" {
-#endif
#define OBJECTS_FOR_ALLOCATION_TEST_CLASS_NAME "Lnsk/jvmti/AttachOnDemand/attach022/ClassForAllocationEventsTest;"
@@ -232,6 +230,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach037/attach037Agent00.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach037/attach037Agent00.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include <aod.h>
#include <jvmti_aod.h>
-#ifdef __cplusplus
extern "C" {
-#endif
/*
* Expected agent work scenario:
@@ -147,6 +145,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach038/attach038Agent00.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach038/attach038Agent00.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include <aod.h>
#include <jvmti_aod.h>
-#ifdef __cplusplus
extern "C" {
-#endif
/*
* Expected agent work scenario:
@@ -137,6 +135,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach039/attach039Agent00.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach039/attach039Agent00.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include <aod.h>
#include <jvmti_aod.h>
-#ifdef __cplusplus
extern "C" {
-#endif
/*
* Expected agent work scenario:
@@ -178,6 +176,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach040/attach040Agent00.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach040/attach040Agent00.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include <aod.h>
#include <jvmti_aod.h>
-#ifdef __cplusplus
extern "C" {
-#endif
/*
* Expected agent work scenario:
@@ -169,6 +167,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach041/attach041Agent00.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach041/attach041Agent00.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include <aod.h>
#include <jvmti_aod.h>
-#ifdef __cplusplus
extern "C" {
-#endif
/*
* Expected agent work scenario:
@@ -190,6 +188,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach042/attach042Agent00.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach042/attach042Agent00.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include <aod.h>
#include <jvmti_aod.h>
-#ifdef __cplusplus
extern "C" {
-#endif
/*
* Expected agent work scenario:
@@ -154,6 +152,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach045/attach045Agent00.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach045/attach045Agent00.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include <aod.h>
#include <jvmti_aod.h>
-#ifdef __cplusplus
extern "C" {
-#endif
/*
* Agent receives expected number of ClassLoad events and finishes work
@@ -134,6 +132,4 @@
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach045/attach045Agent01.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach045/attach045Agent01.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include <aod.h>
#include <jvmti_aod.h>
-#ifdef __cplusplus
extern "C" {
-#endif
/*
* Agent receives expected number of ClassPrepare events and finishes work
@@ -145,6 +143,4 @@
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach045/attach045Agent02.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach045/attach045Agent02.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include <aod.h>
#include <jvmti_aod.h>
-#ifdef __cplusplus
extern "C" {
-#endif
/*
* Agent receives expected number of ThreadStart/ThreadEnd events and finishes work
@@ -166,6 +164,4 @@
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach045/attach045Agent03.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach045/attach045Agent03.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include <aod.h>
#include <jvmti_aod.h>
-#ifdef __cplusplus
extern "C" {
-#endif
/*
* Agent receives expected number of VMObjectAlloc events and finishes work
@@ -161,6 +159,4 @@
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach046/attach046Agent00.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach046/attach046Agent00.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include <aod.h>
#include <jvmti_aod.h>
-#ifdef __cplusplus
extern "C" {
-#endif
/*
* In this test the same agent library is attached 3 times, but with
@@ -141,6 +139,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach050/attach050Agent00.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach050/attach050Agent00.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define ON_UNLOAD_MARKER "attach050.on_unload"
-#ifdef __cplusplus
extern "C" {
-#endif
/*
* This agent gets JVMTI environment and calls nsk_aod_agentLoaded and
@@ -94,6 +92,4 @@
fflush(stdout);
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/sharedAgents/simpleAgent00.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/sharedAgents/simpleAgent00.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include <aod.h>
#include <jvmti_aod.h>
-#ifdef __cplusplus
extern "C" {
-#endif
/*
* Simple agent, doesn't perform any specific checks,
@@ -77,6 +75,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/Breakpoint/breakpoint001/breakpoint001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/Breakpoint/breakpoint001/breakpoint001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -31,9 +31,7 @@
#include "jvmti_tools.h"
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define STATUS_FAILED 2
#define PASSED 0
@@ -303,6 +301,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk001/classfloadhk001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk001/classfloadhk001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -33,9 +33,7 @@
#include "JVMTITools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define PASSED 0
#define STATUS_FAILED 2
@@ -108,6 +106,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk002/classfloadhk002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk002/classfloadhk002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -350,6 +348,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk003/classfloadhk003.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk003/classfloadhk003.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -412,6 +410,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk004/classfloadhk004.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk004/classfloadhk004.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -303,6 +301,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk005/classfloadhk005.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk005/classfloadhk005.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -365,6 +363,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk006/classfloadhk006.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk006/classfloadhk006.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -429,6 +427,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk007/classfloadhk007.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk007/classfloadhk007.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -455,6 +453,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk008/classfloadhk008.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk008/classfloadhk008.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -391,6 +389,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk009/classfloadhk009.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk009/classfloadhk009.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -391,6 +389,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassLoad/classload001/classload001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassLoad/classload001/classload001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -33,9 +33,7 @@
#include "JVMTITools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define PASSED 0
#define STATUS_FAILED 2
@@ -206,6 +204,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/CompiledMethodLoad/compmethload001/compmethload001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/CompiledMethodLoad/compmethload001/compmethload001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#include "JVMTITools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define STATUS_FAILED 2
#define PASSED 0
@@ -156,6 +154,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/CompiledMethodUnload/compmethunload001/compmethunload001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/CompiledMethodUnload/compmethunload001/compmethunload001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#include "JVMTITools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define STATUS_FAILED 2
#define PASSED 0
@@ -204,6 +202,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/DataDumpRequest/datadumpreq001/datadumpreq001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/DataDumpRequest/datadumpreq001/datadumpreq001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -32,9 +32,7 @@
#include "jvmti_tools.h"
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define STATUS_FAILED 2
#define PASSED 0
@@ -133,6 +131,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/DisposeEnvironment/disposeenv001/disposeenv001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/DisposeEnvironment/disposeenv001/disposeenv001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -67,6 +65,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/DisposeEnvironment/disposeenv002/disposeenv002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/DisposeEnvironment/disposeenv002/disposeenv002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -117,6 +115,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/DynamicCodeGenerated/dyncodgen001/dyncodgen001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/DynamicCodeGenerated/dyncodgen001/dyncodgen001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -138,6 +136,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ForceEarlyReturn/ForceEarlyReturn001/ForceEarlyReturn001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ForceEarlyReturn/ForceEarlyReturn001/ForceEarlyReturn001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "JVMTITools.h"
#include "agent_common.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -272,6 +270,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ForceGarbageCollection/forcegc001/forcegc001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ForceGarbageCollection/forcegc001/forcegc001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -94,6 +92,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ForceGarbageCollection/forcegc002/forcegc002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ForceGarbageCollection/forcegc002/forcegc002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -138,6 +136,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GarbageCollectionFinish/gcfinish001/gcfinish001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GarbageCollectionFinish/gcfinish001/gcfinish001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -31,9 +31,7 @@
#include "JVMTITools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define STATUS_FAILED 2
#define PASSED 0
@@ -243,6 +241,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GarbageCollectionStart/gcstart001/gcstart001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GarbageCollectionStart/gcstart001/gcstart001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -31,9 +31,7 @@
#include "JVMTITools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define STATUS_FAILED 2
#define PASSED 0
@@ -155,6 +153,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GarbageCollectionStart/gcstart002/gcstart002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GarbageCollectionStart/gcstart002/gcstart002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -31,9 +31,7 @@
#include "JVMTITools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define STATUS_FAILED 2
#define PASSED 0
@@ -244,6 +242,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GenerateEvents/genevents001/genevents001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GenerateEvents/genevents001/genevents001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -220,6 +218,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/InterruptThread/intrpthrd001/intrpthrd001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/InterruptThread/intrpthrd001/intrpthrd001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
#define STATUS_FAILED 2
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -184,6 +182,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IsMethodObsolete/isobsolete001/isobsolete001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IsMethodObsolete/isobsolete001/isobsolete001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -410,6 +408,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap001/iterheap001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap001/iterheap001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -567,6 +565,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap002/iterheap002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap002/iterheap002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -575,6 +573,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap003/iterheap003.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap003/iterheap003.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -576,6 +574,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap004/iterheap004.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap004/iterheap004.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
static JNIEnv *jni = NULL;
static jvmtiEnv *jvmti = NULL;
@@ -279,6 +277,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap005/iterheap005.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap005/iterheap005.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -189,6 +187,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap006/iterheap006.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap006/iterheap006.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -150,6 +148,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap007/iterheap007.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap007/iterheap007.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -179,6 +177,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls001/iterinstcls001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls001/iterinstcls001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -586,6 +584,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls002/iterinstcls002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls002/iterinstcls002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -594,6 +592,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls003/iterinstcls003.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls003/iterinstcls003.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -595,6 +593,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls004/iterinstcls004.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls004/iterinstcls004.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -215,6 +213,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls005/iterinstcls005.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls005/iterinstcls005.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -198,6 +196,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls006/iterinstcls006.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls006/iterinstcls006.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -160,6 +158,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls007/iterinstcls007.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls007/iterinstcls007.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -190,6 +188,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj001/iterobjreachobj001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj001/iterobjreachobj001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -545,6 +543,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj002/iterobjreachobj002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj002/iterobjreachobj002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -237,6 +235,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj003/iterobjreachobj003.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj003/iterobjreachobj003.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -219,6 +217,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj004/iterobjreachobj004.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj004/iterobjreachobj004.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -189,6 +187,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj005/iterobjreachobj005.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj005/iterobjreachobj005.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -221,6 +219,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj001/iterreachobj001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj001/iterreachobj001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -738,6 +736,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj002/iterreachobj002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj002/iterreachobj002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
static JNIEnv *jni = NULL;
static jvmtiEnv *jvmti = NULL;
@@ -513,6 +511,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj003/iterreachobj003.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj003/iterreachobj003.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -349,6 +347,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj004/iterreachobj004.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj004/iterreachobj004.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -269,6 +267,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj005/iterreachobj005.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj005/iterreachobj005.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -346,6 +344,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateThroughHeap/abort/Abort.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateThroughHeap/abort/Abort.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -29,9 +29,7 @@
#include "jvmti_tools.h"
#include "agent_common.h"
-#ifdef __cplusplus
extern "C" {
-#endif
static int timeout = 0;
@@ -159,6 +157,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateThroughHeap/callbacks/Callbacks.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateThroughHeap/callbacks/Callbacks.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -29,9 +29,7 @@
#include "jvmti_tools.h"
#include "agent_common.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define STATIC_FIELD 0x0008
@@ -639,6 +637,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateThroughHeap/concrete-klass-filter/ConcreteKlassFilter.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateThroughHeap/concrete-klass-filter/ConcreteKlassFilter.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -29,9 +29,7 @@
#include "jvmti_tools.h"
#include "agent_common.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define TEST_OBJECT_TAG 0x8000
#define EXPECTED_NON_PRIMITIVES_COUNT 1
@@ -313,6 +311,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateThroughHeap/filter-tagged/HeapFilter.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateThroughHeap/filter-tagged/HeapFilter.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -29,9 +29,7 @@
#include "jvmti_tools.h"
#include "agent_common.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define STATIC_FIELD 0x0008
@@ -607,6 +605,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateThroughHeap/non-concrete-klass-filter/NonConcreteKlassFilter.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateThroughHeap/non-concrete-klass-filter/NonConcreteKlassFilter.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -29,9 +29,7 @@
#include "jvmti_tools.h"
#include "agent_common.h"
-#ifdef __cplusplus
extern "C" {
-#endif
//expected values
#define EXPECTED_PRIMITIVES 2
@@ -242,6 +240,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/MonitorContendedEnter/mcontenter001/mcontenter001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/MonitorContendedEnter/mcontenter001/mcontenter001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -265,6 +263,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/MonitorContendedEntered/mcontentered001/mcontentered001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/MonitorContendedEntered/mcontentered001/mcontentered001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -293,6 +291,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/MonitorWait/monitorwait001/monitorwait001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/MonitorWait/monitorwait001/monitorwait001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -268,6 +266,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/MonitorWaited/monitorwaited001/monitorwaited001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/MonitorWaited/monitorwaited001/monitorwaited001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -269,6 +267,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/NativeMethodBind/nativemethbind001/nativemethbind001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/NativeMethodBind/nativemethbind001/nativemethbind001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -31,9 +31,7 @@
#include "jvmti_tools.h"
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define STATUS_FAILED 2
#define PASSED 0
@@ -255,6 +253,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/NativeMethodBind/nativemethbind002/nativemethbind002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/NativeMethodBind/nativemethbind002/nativemethbind002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define STATUS_FAILED 2
#define PASSED 0
@@ -186,6 +184,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/NativeMethodBind/nativemethbind003/nativemethbind003.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/NativeMethodBind/nativemethbind003/nativemethbind003.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define STATUS_FAILED 2
#define PASSED 0
@@ -249,6 +247,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/NativeMethodBind/nativemethbind004/nativemethbind004.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/NativeMethodBind/nativemethbind004/nativemethbind004.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define STATUS_FAILED 2
#define PASSED 0
@@ -219,6 +217,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ObjectFree/objfree001/objfree001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ObjectFree/objfree001/objfree001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -32,9 +32,7 @@
#include "jvmti_tools.h"
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define STATUS_FAILED 2
#define PASSED 0
@@ -299,6 +297,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ObjectFree/objfree002/objfree002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ObjectFree/objfree002/objfree002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -32,9 +32,7 @@
#include "jvmti_tools.h"
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define STATUS_FAILED 2
#define PASSED 0
@@ -327,6 +325,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/PopFrame/popframe005/popframe005.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/PopFrame/popframe005/popframe005.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include <jvmti_tools.h>
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
// Deallocate memory region allocated by VM
#define DEALLOCATE(p) \
@@ -391,6 +389,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/StressRedefineWithoutBytecodeCorruption/TestDescription.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/StressRedefineWithoutBytecodeCorruption/TestDescription.java Mon Sep 24 10:59:26 2018 -0700
@@ -32,6 +32,7 @@
* /test/lib
* @run driver jdk.test.lib.FileInstaller . .
* @run main/othervm/native
+ * -Xlog:redefine+class+iklass+purge=trace,redefine+class+iklass+add=trace
* -agentlib:stressRedefine
* nsk.jvmti.RedefineClasses.StressRedefine
* ./bin
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass028/redefclass028.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass028/redefclass028.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -33,9 +33,7 @@
#include "JVMTITools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define PASSED 0
#define STATUS_FAILED 2
@@ -289,6 +287,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass029/redefclass029.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass029/redefclass029.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -33,9 +33,7 @@
#include "JVMTITools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define PASSED 0
#define STATUS_FAILED 2
@@ -288,6 +286,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass030/redefclass030.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass030/redefclass030.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -33,9 +33,7 @@
#include "JVMTITools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define PASSED 0
#define STATUS_FAILED 2
@@ -289,6 +287,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RelinquishCapabilities/relcaps001/relcaps001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RelinquishCapabilities/relcaps001/relcaps001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -392,6 +390,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RelinquishCapabilities/relcaps002/relcaps002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RelinquishCapabilities/relcaps002/relcaps002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -381,6 +379,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ResourceExhausted/resexhausted.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ResourceExhausted/resexhausted.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
#define STATUS_FAILED 2
-#ifdef __cplusplus
extern "C" {
-#endif
static jvmtiEnv* gJvmti = NULL;
static volatile jboolean gGotEvent = JNI_FALSE;
@@ -102,6 +100,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ResumeThread/resumethrd001/resumethrd001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ResumeThread/resumethrd001/resumethrd001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -155,6 +153,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ResumeThread/resumethrd002/resumethrd002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ResumeThread/resumethrd002/resumethrd002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -194,6 +192,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ResumeThreadList/resumethrdlst001/resumethrdlst001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ResumeThreadList/resumethrdlst001/resumethrdlst001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -290,6 +288,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ResumeThreadList/resumethrdlst002/resumethrdlst002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ResumeThreadList/resumethrdlst002/resumethrdlst002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -351,6 +349,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RetransformClasses/retransform002/retransform002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RetransformClasses/retransform002/retransform002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include <jvmti_tools.h>
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
static jvmtiEnv *jvmti = NULL;
@@ -168,8 +166,6 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
/* ============================================================================= */
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RetransformClasses/retransform003/retransform003.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RetransformClasses/retransform003/retransform003.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -29,9 +29,7 @@
#include <jvmti_tools.h>
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -284,8 +282,6 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
/* ============================================================================= */
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RetransformClasses/retransform004/retransform004.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RetransformClasses/retransform004/retransform004.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -29,9 +29,7 @@
#include <jvmti_tools.h>
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -181,8 +179,6 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
/* ============================================================================= */
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetEnvironmentLocalStorage/setenvstor001/setenvstor001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetEnvironmentLocalStorage/setenvstor001/setenvstor001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -252,6 +250,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetEnvironmentLocalStorage/setenvstor002/setenvstor002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetEnvironmentLocalStorage/setenvstor002/setenvstor002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -247,6 +245,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetEnvironmentLocalStorage/setenvstor003/setenvstor003.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetEnvironmentLocalStorage/setenvstor003/setenvstor003.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -250,6 +248,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetEventCallbacks/setevntcallb001/setevntcallb001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetEventCallbacks/setevntcallb001/setevntcallb001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -205,6 +203,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetEventCallbacks/setevntcallb002/setevntcallb002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetEventCallbacks/setevntcallb002/setevntcallb002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -208,6 +206,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetEventCallbacks/setevntcallb003/setevntcallb003.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetEventCallbacks/setevntcallb003/setevntcallb003.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -213,6 +211,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetExtensionEventCallback/setextevent001/setextevent001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetExtensionEventCallback/setextevent001/setextevent001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -164,6 +162,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetNativeMethodPrefix/SetNativeMethodPrefix001/SetNativeMethodPrefix001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetNativeMethodPrefix/SetNativeMethodPrefix001/SetNativeMethodPrefix001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#include "jvmti_tools.h"
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define FOO 1
#define WRAPPED_FOO 2
@@ -367,6 +365,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetNativeMethodPrefix/SetNativeMethodPrefix002/SetNativeMethodPrefix002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetNativeMethodPrefix/SetNativeMethodPrefix002/SetNativeMethodPrefix002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#include "jvmti_tools.h"
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -148,6 +146,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetNativeMethodPrefix/SetNativeMethodPrefix002/SetNativeMethodPrefix002Main.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetNativeMethodPrefix/SetNativeMethodPrefix002/SetNativeMethodPrefix002Main.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -29,9 +29,7 @@
#include "jvmti_tools.h"
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -49,6 +47,4 @@
return FOO;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetSystemProperty/setsysprop002/setsysprop002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetSystemProperty/setsysprop002/setsysprop002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -204,6 +202,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetSystemProperty/setsysprop003/setsysprop003.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetSystemProperty/setsysprop003/setsysprop003.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -104,6 +102,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetTag/settag001/settag001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetTag/settag001/settag001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -222,6 +220,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetThreadLocalStorage/setthrdstor001/setthrdstor001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetThreadLocalStorage/setthrdstor001/setthrdstor001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -175,6 +173,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetThreadLocalStorage/setthrdstor002/setthrdstor002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetThreadLocalStorage/setthrdstor002/setthrdstor002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -161,6 +159,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetThreadLocalStorage/setthrdstor003/setthrdstor003.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetThreadLocalStorage/setthrdstor003/setthrdstor003.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -259,6 +257,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetVerboseFlag/setvrbflag001/setvrbflag001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetVerboseFlag/setvrbflag001/setvrbflag001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -227,6 +225,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetVerboseFlag/setvrbflag002/setvrbflag002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetVerboseFlag/setvrbflag002/setvrbflag002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -26,9 +26,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -98,6 +96,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SingleStep/singlestep001/singlestep001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SingleStep/singlestep001/singlestep001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -31,9 +31,7 @@
#include "jvmti_tools.h"
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define STATUS_FAILED 2
#define PASSED 0
@@ -300,6 +298,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SingleStep/singlestep002/singlestep002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SingleStep/singlestep002/singlestep002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -32,9 +32,7 @@
#include "jvmti_tools.h"
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define STATUS_FAILED 2
#define PASSED 0
@@ -137,6 +135,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SingleStep/singlestep003/singlestep003.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SingleStep/singlestep003/singlestep003.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -31,9 +31,7 @@
#include "jvmti_tools.h"
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define STATUS_FAILED 2
#define PASSED 0
@@ -308,6 +306,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/StopThread/stopthrd007/stopthrd007.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/StopThread/stopthrd007/stopthrd007.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
#define STATUS_FAILED 2
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -205,6 +203,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SuspendThread/suspendthrd001/suspendthrd001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SuspendThread/suspendthrd001/suspendthrd001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -155,6 +153,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SuspendThread/suspendthrd002/suspendthrd002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SuspendThread/suspendthrd002/suspendthrd002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -196,6 +194,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SuspendThread/suspendthrd003/suspendthrd003.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SuspendThread/suspendthrd003/suspendthrd003.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -196,6 +194,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SuspendThreadList/suspendthrdlst001/suspendthrdlst001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SuspendThreadList/suspendthrdlst001/suspendthrdlst001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -282,6 +280,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SuspendThreadList/suspendthrdlst002/suspendthrdlst002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SuspendThreadList/suspendthrdlst002/suspendthrdlst002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -327,6 +325,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ThreadEnd/threadend002/threadend002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ThreadEnd/threadend002/threadend002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include "jvmti_tools.h"
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -170,6 +168,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ThreadStart/threadstart002/threadstart002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ThreadStart/threadstart002/threadstart002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#include "agent_common.h"
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define PASSED 0
#define STATUS_FAILED 2
@@ -542,6 +540,4 @@
return result;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/VMObjectAlloc/vmobjalloc001/vmobjalloc001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/VMObjectAlloc/vmobjalloc001/vmobjalloc001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -158,6 +156,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP01/ap01t001/ap01t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP01/ap01t001/ap01t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -32,9 +32,7 @@
#include "JVMTITools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define PASSED 0
#define STATUS_FAILED 2
@@ -371,6 +369,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP02/ap02t001/ap02t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP02/ap02t001/ap02t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -31,9 +31,7 @@
#include "JVMTITools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define PASSED 0
#define STATUS_FAILED 2
@@ -256,6 +254,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP03/ap03t001/ap03t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP03/ap03t001/ap03t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -31,9 +31,7 @@
#include "JVMTITools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define EXP_OBJ_NUMBER 1
@@ -271,6 +269,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP04/ap04t001/ap04t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP04/ap04t001/ap04t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -31,9 +31,7 @@
#include "JVMTITools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define OBJ_MAX_COUNT 100000
@@ -530,6 +528,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP04/ap04t002/ap04t002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP04/ap04t002/ap04t002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -31,9 +31,7 @@
#include "JVMTITools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define OBJ_MAX_COUNT 100000
@@ -514,6 +512,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP04/ap04t003/ap04t003.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP04/ap04t003/ap04t003.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -31,9 +31,7 @@
#include "JVMTITools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define OBJ_MAX_COUNT 100000
@@ -704,6 +702,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP05/ap05t001/ap05t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP05/ap05t001/ap05t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -31,9 +31,7 @@
#include "JVMTITools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define EXP_OBJ_NUMBER 1
@@ -233,6 +231,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP05/ap05t002/ap05t002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP05/ap05t002/ap05t002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -31,9 +31,7 @@
#include "JVMTITools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define EXP_OBJ_NUMBER 1
@@ -236,6 +234,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP06/ap06t001/ap06t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP06/ap06t001/ap06t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -31,9 +31,7 @@
#include "JVMTITools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define EXP_OBJ_NUMBER 1
@@ -254,6 +252,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP07/ap07t001/ap07t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP07/ap07t001/ap07t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -31,9 +31,7 @@
#include "JVMTITools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define EXP_OBJ_NUMBER 1
@@ -211,6 +209,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP07/ap07t002/ap07t002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP07/ap07t002/ap07t002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -31,9 +31,7 @@
#include "JVMTITools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define EXP_OBJ_NUMBER 1
@@ -189,6 +187,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP09/ap09t001/ap09t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP09/ap09t001/ap09t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -31,9 +31,7 @@
#include "JVMTITools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define EXP_OBJ_NUMBER 1
@@ -246,6 +244,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP10/ap10t001/ap10t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP10/ap10t001/ap10t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#include "JVMTITools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define STATUS_FAILED 2
#define PASSED 0
@@ -322,6 +320,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP11/ap11t001/ap11t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP11/ap11t001/ap11t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -262,6 +260,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP12/ap12t001/ap12t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP12/ap12t001/ap12t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -32,9 +32,7 @@
#include "JVMTITools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define PASSED 0
#define STATUS_FAILED 2
@@ -169,6 +167,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI01/bi01t001/bi01t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI01/bi01t001/bi01t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* scaffold objects */
static jvmtiEnv *jvmti = NULL;
@@ -292,6 +290,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI01/bi01t002/bi01t002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI01/bi01t002/bi01t002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* scaffold objects */
static jvmtiEnv *jvmti = NULL;
@@ -306,6 +304,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI02/bi02t001/bi02t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI02/bi02t001/bi02t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
#define STATUS_FAILED 2
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -202,6 +200,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI02/bi02t002/bi02t002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI02/bi02t002/bi02t002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
#define STATUS_FAILED 2
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -184,6 +182,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI03/bi03t001/bi03t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI03/bi03t001/bi03t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
#define STATUS_FAILED 2
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -202,6 +200,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI03/bi03t002/bi03t002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI03/bi03t002/bi03t002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
#define STATUS_FAILED 2
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -184,6 +182,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI04/bi04t002/bi04t002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI04/bi04t002/bi04t002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* scaffold objects */
static jlong timeout = 0;
@@ -181,6 +179,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t001/cm01t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t001/cm01t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define CAPABILITY can_tag_objects
#define CAPABILITY_STR "can_tag_objects"
@@ -663,6 +661,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t002/cm01t002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t002/cm01t002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define CAPABILITY can_get_bytecodes
#define CAPABILITY_STR "can_get_bytecodes"
@@ -658,6 +656,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t003/cm01t003.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t003/cm01t003.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define CAPABILITY can_get_synthetic_attribute
#define CAPABILITY_STR "can_get_synthetic_attribute"
@@ -658,6 +656,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t004/cm01t004.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t004/cm01t004.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define CAPABILITY can_get_owned_monitor_info
#define CAPABILITY_STR "can_get_owned_monitor_info"
@@ -656,6 +654,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t005/cm01t005.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t005/cm01t005.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define CAPABILITY can_get_current_contended_monitor
#define CAPABILITY_STR "can_get_current_contended_monitor"
@@ -656,6 +654,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t006/cm01t006.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t006/cm01t006.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define CAPABILITY can_get_monitor_info
#define CAPABILITY_STR "can_get_monitor_info"
@@ -656,6 +654,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t007/cm01t007.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t007/cm01t007.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define CAPABILITY can_pop_frame
#define CAPABILITY_STR "can_pop_frame"
@@ -676,6 +674,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t008/cm01t008.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t008/cm01t008.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define CAPABILITY can_redefine_classes
#define CAPABILITY_STR "can_redefine_classes"
@@ -700,6 +698,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t009/cm01t009.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t009/cm01t009.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define CAPABILITY can_signal_thread
#define CAPABILITY_STR "can_signal_thread"
@@ -656,6 +654,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t010/cm01t010.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t010/cm01t010.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define CAPABILITY can_get_source_file_name
#define CAPABILITY_STR "can_get_source_file_name"
@@ -657,6 +655,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t011/cm01t011.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t011/cm01t011.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define CAPABILITY can_access_local_variables
#define CAPABILITY_STR "can_access_local_variables"
@@ -696,6 +694,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t012/cm01t012.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t012/cm01t012.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define CAPABILITY can_suspend
#define CAPABILITY_STR "can_suspend"
@@ -658,6 +656,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t013/cm01t013.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t013/cm01t013.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define CAPABILITY can_get_line_numbers
#define CAPABILITY_STR "can_get_line_numbers"
@@ -657,6 +655,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t014/cm01t014.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t014/cm01t014.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define CAPABILITY can_get_bytecodes
#define CAPABILITY_STR "can_get_bytecodes"
@@ -722,6 +720,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t015/cm01t015.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t015/cm01t015.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define CAPABILITY can_get_synthetic_attribute
#define CAPABILITY_STR "can_get_synthetic_attribute"
@@ -727,6 +725,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t016/cm01t016.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t016/cm01t016.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define CAPABILITY can_get_monitor_info
#define CAPABILITY_STR "can_get_monitor_info"
@@ -721,6 +719,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t017/cm01t017.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t017/cm01t017.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define CAPABILITY can_signal_thread
#define CAPABILITY_STR "can_signal_thread"
@@ -726,6 +724,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t018/cm01t018.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t018/cm01t018.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define CAPABILITY can_suspend
#define CAPABILITY_STR "can_suspend"
@@ -737,6 +735,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t019/cm01t019.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t019/cm01t019.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define CAPABILITY can_get_source_debug_extension
#define CAPABILITY_STR "can_get_source_debug_extension"
@@ -657,6 +655,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t020/cm01t020.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t020/cm01t020.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define CAPABILITY can_get_current_thread_cpu_time
#define CAPABILITY_STR "can_get_current_thread_cpu_time"
@@ -658,6 +656,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t021/cm01t021.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t021/cm01t021.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define CAPABILITY can_get_thread_cpu_time
#define CAPABILITY_STR "can_get_thread_cpu_time"
@@ -658,6 +656,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM02/cm02t001/cm02t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM02/cm02t001/cm02t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* The test adds all capabilities suitable for profiling at OnLoad phase:
*
@@ -776,6 +774,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM03/cm03t001/cm03t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM03/cm03t001/cm03t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* The test adds all capabilities suitable for debugging at OnLoad phase:
*
@@ -963,6 +961,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC01/tc01t001/tc01t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC01/tc01t001/tc01t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -293,6 +291,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC02/tc02t001/tc02t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC02/tc02t001/tc02t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -386,6 +384,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC03/tc03t001/tc03t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC03/tc03t001/tc03t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
typedef struct {
jthread thread;
@@ -275,6 +273,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC03/tc03t002/tc03t002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC03/tc03t002/tc03t002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
typedef struct {
jthread thread;
@@ -275,6 +273,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC04/tc04t001/tc04t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC04/tc04t001/tc04t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -359,6 +357,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC05/tc05t001/tc05t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC05/tc05t001/tc05t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -364,6 +362,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM01/em01t001/em01t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM01/em01t001/em01t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include "jvmti_tools.h"
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -479,6 +477,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM01/em01t002/em01t002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM01/em01t002/em01t002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include "jvmti_tools.h"
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -577,6 +575,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t001/em02t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t001/em02t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include "jvmti_tools.h"
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -807,6 +805,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t002/em02t002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t002/em02t002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include "jvmti_tools.h"
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -555,6 +553,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t003/em02t003.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t003/em02t003.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include "jvmti_tools.h"
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -604,6 +602,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t004/em02t004.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t004/em02t004.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include "jvmti_tools.h"
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -610,6 +608,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t005/em02t005.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t005/em02t005.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include "jvmti_tools.h"
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -587,6 +585,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t006/em02t006.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t006/em02t006.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include "jvmti_tools.h"
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -530,6 +528,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t007/em02t007.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t007/em02t007.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include "jvmti_tools.h"
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -575,6 +573,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t008/em02t008.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t008/em02t008.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include "jvmti_tools.h"
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -589,6 +587,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t009/em02t009.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t009/em02t009.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include "jvmti_tools.h"
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -595,6 +593,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t010/em02t010.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t010/em02t010.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include "jvmti_tools.h"
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -571,6 +569,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t011/em02t011.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t011/em02t011.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include "jvmti_tools.h"
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -546,6 +544,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t012/em02t012.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t012/em02t012.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include "jvmti_tools.h"
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -550,6 +548,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM04/em04t001/em04t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM04/em04t001/em04t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -31,9 +31,7 @@
#include "nsk_list.h"
#include "nsk_mutex.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -252,6 +250,4 @@
}
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM05/em05t001/em05t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM05/em05t001/em05t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -353,6 +351,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM05/em05t002/em05t002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM05/em05t002/em05t002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -421,6 +419,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM06/em06t001/em06t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM06/em06t001/em06t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include "jvmti_tools.h"
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -273,6 +271,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM07/em07t001/em07t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM07/em07t001/em07t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include "jvmti_tools.h"
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -390,6 +388,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM07/em07t002/em07t002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM07/em07t002/em07t002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#include "JVMTITools.h"
#include "nsk_list.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -298,6 +296,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/extension/EX03/ex03t001/ex03t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/extension/EX03/ex03t001/ex03t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
static JNIEnv *jni = NULL;
static jvmtiEnv* jvmti = NULL;
@@ -277,6 +275,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/general_functions/GF01/gf01t001/gf01t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/general_functions/GF01/gf01t001/gf01t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -33,9 +33,7 @@
#include "JVMTITools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define PASSED 0
#define STATUS_FAILED 2
@@ -207,6 +205,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/general_functions/GF04/gf04t001/gf04t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/general_functions/GF04/gf04t001/gf04t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define PASSED 0
#define STATUS_FAILED 2
@@ -217,6 +215,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/general_functions/GF08/gf08t001/gf08t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/general_functions/GF08/gf08t001/gf08t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -85,6 +83,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/general_functions/GF08/gf08t002/gf08t002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/general_functions/GF08/gf08t002/gf08t002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -85,6 +83,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/general_functions/GF08/gf08t003/gf08t003.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/general_functions/GF08/gf08t003/gf08t003.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -85,6 +83,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS103/hs103t002/hs103t002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS103/hs103t002/hs103t002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -33,9 +33,7 @@
#include "jvmti_tools.h"
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define FILE_NAME "nsk/jvmti/scenarios/hotswap/HS103/hs103t002/MyThread"
#define SEARCH_NAME "nsk/jvmti/scenarios/hotswap/HS103/hs103t002/MyThread"
@@ -178,6 +176,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS104/hs104t001/hs104t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS104/hs104t001/hs104t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define FILE_NAME "nsk/jvmti/scenarios/hotswap/HS104/hs104t001/MyClass"
#define CLASS_NAME "Lnsk/jvmti/scenarios/hotswap/HS104/hs104t001/MyClass;"
@@ -108,6 +106,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS104/hs104t002/hs104t002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS104/hs104t002/hs104t002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include "JVMTITools.h"
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define DIR_NAME "newclass"
#define PATH_FORMAT "%s%02d/%s"
@@ -94,6 +92,4 @@
}
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS201/hs201t001/hs201t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS201/hs201t001/hs201t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -732,6 +730,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS201/hs201t002/hs201t002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS201/hs201t002/hs201t002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -732,6 +730,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS201/hs201t003/hs201t003.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS201/hs201t003/hs201t003.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -32,9 +32,7 @@
#include "JVMTITools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define PASSED 0
#define STATUS_FAILED 2
@@ -353,6 +351,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS202/hs202t001/hs202t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS202/hs202t001/hs202t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -36,9 +36,7 @@
4. Pop a currently executed frame.
*/
-#ifdef __cplusplus
extern "C" {
-#endif
#define FILE_NAME "nsk/jvmti/scenarios/hotswap/HS202/hs203t001/MyObject"
#define CLASS_NAME "Lnsk/jvmti/scenarios/hotswap/HS202/hs203t001/MyObject;"
#define METHOD_NAME "leaveMonitor"
@@ -227,6 +225,4 @@
return retvalue;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS202/hs202t002/hs202t002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS202/hs202t002/hs202t002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -31,9 +31,7 @@
/*
hs202t002:
*/
-#ifdef __cplusplus
extern "C" {
-#endif
#define FILE_NAME "nsk/jvmti/scenarios/hotswap/HS202/hs202t002/MyThread"
#define CLASS_NAME "Lnsk/jvmti/scenarios/hotswap/HS202/hs202t002/MyThread;"
@@ -200,6 +198,4 @@
return suspended == thread_suspend_status;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS203/hs203t001/hs203t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS203/hs203t001/hs203t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -39,9 +39,7 @@
4. Pop a currently executed frame. Stepping should be continued
on invoke instruction.
*/
-#ifdef __cplusplus
extern "C" {
-#endif
#define FILE_NAME "nsk/jvmti/scenarios/hotswap/HS203/hs203t001/MyThread"
@@ -234,6 +232,4 @@
return retvalue;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS203/hs203t002/hs203t002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS203/hs203t002/hs203t002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -43,9 +43,7 @@
method b().
*/
-#ifdef __cplusplus
extern "C" {
-#endif
#define FILE_NAME "nsk/jvmti/scenarios/hotswap/HS203/hs203t002/MyThread"
#define SEARCH_NAME "nsk/jvmti/scenarios/hotswap/HS203/hs203t002/MyThread"
@@ -252,6 +250,4 @@
return retvalue;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS203/hs203t003/hs203t003.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS203/hs203t003/hs203t003.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -37,9 +37,7 @@
frame within FieldAccess/FieldModification callback.
*/
-#ifdef __cplusplus
extern "C" {
-#endif
#define DIR_NAME "newclass"
#define PATH_FORMAT "%s%02d/%s"
@@ -227,6 +225,4 @@
return retvalue;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS203/hs203t004/hs203t004.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS203/hs203t004/hs203t004.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#include "JVMTITools.h"
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define FILE_NAME "nsk/jvmti/scenarios/hotswap/HS203/hs203t004/MyThread"
#define CLASS_NAME "Lnsk/jvmti/scenarios/hotswap/HS203/hs203t004/MyThread;"
#define METHOD_NAME "doTask2"
@@ -257,6 +255,4 @@
return retvalue;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS204/hs204t001/hs204t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS204/hs204t001/hs204t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
static JNIEnv* jni = NULL;
static jvmtiEnv *jvmti = NULL;
static jlong timeout = 0;
@@ -305,6 +303,4 @@
}
return NSK_TRUE;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS204/hs204t002/hs204t002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS204/hs204t002/hs204t002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -34,9 +34,7 @@
*3. Upon reaching the breakpoint, redefine the class and pop
*a currently executed frame of the static initializer.
*/
-#ifdef __cplusplus
extern "C" {
-#endif
#define FILE_NAME "nsk/jvmti/scenarios/hotswap/HS204/hs204t002/MyThread"
#define SEARCH_NAME "nsk/jvmti/scenarios/hotswap/HS204/hs204t002/MyThread"
@@ -166,6 +164,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS204/hs204t002/hs204t002.h Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS204/hs204t002/hs204t002.h Mon Sep 24 10:59:26 2018 -0700
@@ -26,9 +26,7 @@
#ifndef _Included_hs204t002
#define _Included_hs204t002
-#ifdef __cplusplus
extern "C" {
-#endif
/*
* Class: hs204t002
* Method: setBreakPoint
@@ -37,7 +35,5 @@
JNIEXPORT void JNICALL Java_hs204t002_setBreakPoint
(JNIEnv *, jclass, jclass);
-#ifdef __cplusplus
}
#endif
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS204/hs204t003/hs204t003.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS204/hs204t003/hs204t003.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#include "jni_tools.h"
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define FILE_NAME "nsk/jvmti/scenarios/hotswap/HS204/hs204t003/MyThread"
#define CLASS_NAME "Lnsk/jvmti/scenarios/hotswap/HS204/hs204t003/MyThread;"
@@ -252,6 +250,4 @@
}
return retvalue;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS204/hs204t004/hs204t004.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS204/hs204t004/hs204t004.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -34,9 +34,7 @@
3. Upon accessing the field by the initializer, redefine the class and pop a currently executed
frame of the initializer within incoming FieldAccess callback.
*/
-#ifdef __cplusplus
extern "C" {
-#endif
#define METHOD_NAME "loadClass"
#define SIGNATURE "(Ljava/lang/String;)Ljava/lang/Class;"
@@ -200,6 +198,4 @@
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t001/hs301t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t001/hs301t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include <string.h>
#include "jvmti_tools.h"
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define FILE_NAME "nsk/jvmti/scenarios/hotswap/HS301/hs301t001/MyClass"
#define DIR_NAME "newclass"
@@ -104,6 +102,4 @@
return ret;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t002/hs301t002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t002/hs301t002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -31,9 +31,7 @@
#include "jvmti_tools.h"
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define FILE_NAME "nsk/jvmti/scenarios/hotswap/HS301/hs301t002/MyClass"
#define DIR_NAME "newclass"
#define PATH_FORMAT "%s%02d/%s"
@@ -102,6 +100,4 @@
return ret;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t003/hs301t003.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t003/hs301t003.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -26,9 +26,7 @@
#include <string.h>
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define FILE_NAME "nsk/jvmti/scenarios/hotswap/HS301/hs301t003/MyClass"
#define CLASS_NAME "Lnsk/jvmti/scenarios/hotswap/HS301/hs301t003/MyClass;"
@@ -106,6 +104,4 @@
}
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t004/hs301t004.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t004/hs301t004.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -26,9 +26,7 @@
#include <string.h>
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define FILE_NAME "nsk/jvmti/scenarios/hotswap/HS301/hs301t004/MyClass"
#define CLASS_NAME "Lnsk/jvmti/scenarios/hotswap/HS301/hs301t004/MyClass;"
@@ -108,6 +106,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t005/hs301t005.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t005/hs301t005.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define FILE_NAME "nsk/jvmti/scenarios/hotswap/HS301/hs301t005/MyClass"
#define CLASS_NAME "Lnsk/jvmti/scenarios/hotswap/HS301/hs301t005/MyClass;"
@@ -99,6 +97,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t001/hs302t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t001/hs302t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -26,9 +26,7 @@
#include <string.h>
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define FILE_NAME "nsk/jvmti/scenarios/hotswap/HS302/hs302t001/MyClass"
#define CLASS_NAME "Lnsk/jvmti/scenarios/hotswap/HS302/hs302t001/MyClass;"
@@ -99,6 +97,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t002/hs302t002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t002/hs302t002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -26,9 +26,7 @@
#include <string.h>
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define FILE_NAME "nsk/jvmti/scenarios/hotswap/HS302/hs302t002/MyClass"
#define CLASS_NAME "Lnsk/jvmti/scenarios/hotswap/HS302/hs302t002/MyClass;"
@@ -106,6 +104,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t003/hs302t003.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t003/hs302t003.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -26,9 +26,7 @@
#include <string.h>
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define FILE_NAME "nsk/jvmti/scenarios/hotswap/HS302/hs302t003/MyClass"
#define CLASS_NAME "Lnsk/jvmti/scenarios/hotswap/HS302/hs302t003/MyClass;"
@@ -105,6 +103,4 @@
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t004/hs302t004.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t004/hs302t004.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -26,9 +26,7 @@
#include <string.h>
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define FILE_NAME "nsk/jvmti/scenarios/hotswap/HS302/hs302t004r/MyClass"
#define CLASS_NAME "Lnsk/jvmti/scenarios/hotswap/HS302/hs302t004r/MyClass;"
@@ -98,6 +96,4 @@
}
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t005/hs302t005.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t005/hs302t005.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define FILE_NAME "nsk/jvmti/scenarios/hotswap/HS302/hs302t005r/MyClass"
#define CLASS_NAME "Lnsk/jvmti/scenarios/hotswap/HS302/hs302t005r/MyClass;"
@@ -102,6 +100,4 @@
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t006/hs302t006.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t006/hs302t006.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -26,9 +26,7 @@
#include <string.h>
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define FILE_NAME "nsk/jvmti/scenarios/hotswap/HS302/hs302t006r/MyClass"
#define CLASS_NAME "Lnsk/jvmti/scenarios/hotswap/HS302/hs302t006r/MyClass;"
@@ -100,6 +98,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t007/hs302t007.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t007/hs302t007.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -25,9 +25,7 @@
#include "agent_common.h"
#include <string.h>
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define FILE_NAME "nsk/jvmti/scenarios/hotswap/HS302/hs302t007r/MyClass"
#define CLASS_NAME "Lnsk/jvmti/scenarios/hotswap/HS302/hs302t007r/MyClass;"
void JNICALL callbackClassPrepare(jvmtiEnv *jvmti_env,
@@ -96,6 +94,4 @@
}
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t008/hs302t008.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t008/hs302t008.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -26,9 +26,7 @@
#include <string.h>
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define FILE_NAME "nsk/jvmti/scenarios/hotswap/HS302/hs302t008r/MyClass"
#define CLASS_NAME "Lnsk/jvmti/scenarios/hotswap/HS302/hs302t008r/MyClass;"
@@ -99,6 +97,4 @@
}
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t009/hs302t009.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t009/hs302t009.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -26,9 +26,7 @@
#include <string.h>
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define FILE_NAME "nsk/jvmti/scenarios/hotswap/HS302/hs302t009r/MyClass"
#define CLASS_NAME "Lnsk/jvmti/scenarios/hotswap/HS302/hs302t009r/MyClass;"
@@ -100,6 +98,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t010/hs302t010.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t010/hs302t010.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -26,9 +26,7 @@
#include <string.h>
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define FILE_NAME "nsk/jvmti/scenarios/hotswap/HS302/hs302t010r/MyClass"
#define PATH_FORMAT "%s%02d/%s"
@@ -98,6 +96,4 @@
}
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t011/hs302t011.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t011/hs302t011.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -26,9 +26,7 @@
#include <string.h>
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define FILE_NAME "nsk/jvmti/scenarios/hotswap/HS302/hs302t011r/MyClass"
#define CLASS_NAME "Lnsk/jvmti/scenarios/hotswap/HS302/hs302t011r/MyClass;"
@@ -99,6 +97,4 @@
}
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t012/hs302t012.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t012/hs302t012.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -26,9 +26,7 @@
#include <string.h>
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define FILE_NAME "nsk/jvmti/scenarios/hotswap/HS302/hs302t012r/MyClass"
#define DIR_NAME "newclass"
@@ -102,6 +100,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/jni_interception/JI01/ji01t001/ji01t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/jni_interception/JI01/ji01t001/ji01t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -33,9 +33,7 @@
#include "jvmti_tools.h"
#include "nsk_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ====================================================================== */
@@ -455,6 +453,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA01/ma01t001/ma01t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA01/ma01t001/ma01t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
#define STATUS_FAILED 2
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -114,6 +112,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA01/ma01t001/ma01t001a.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA01/ma01t001/ma01t001a.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
#define STATUS_FAILED 2
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -114,6 +112,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA02/ma02t001/ma02t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA02/ma02t001/ma02t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
#define STATUS_FAILED 2
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -151,6 +149,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA02/ma02t001/ma02t001a.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA02/ma02t001/ma02t001a.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
#define STATUS_FAILED 2
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -151,6 +149,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA03/ma03t001/ma03t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA03/ma03t001/ma03t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
#define STATUS_FAILED 2
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -162,6 +160,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA03/ma03t001/ma03t001a.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA03/ma03t001/ma03t001a.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
#define STATUS_FAILED 2
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -151,6 +149,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA04/ma04t001/ma04t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA04/ma04t001/ma04t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -31,9 +31,7 @@
#define STATUS_FAILED 2
#define SAMPLE_TAG ((jlong) 111111)
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -240,6 +238,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA04/ma04t001/ma04t001a.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA04/ma04t001/ma04t001a.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -31,9 +31,7 @@
#define STATUS_FAILED 2
#define SAMPLE_TAG ((jlong) 222222)
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -240,6 +238,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA04/ma04t002/ma04t002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA04/ma04t002/ma04t002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -31,9 +31,7 @@
#define STATUS_FAILED 2
#define SAMPLE_TAG ((jlong) 111111)
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -348,6 +346,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA04/ma04t002/ma04t002a.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA04/ma04t002/ma04t002a.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -31,9 +31,7 @@
#define STATUS_FAILED 2
#define SAMPLE_TAG ((jlong) 222222)
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -348,6 +346,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA04/ma04t003/ma04t003.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA04/ma04t003/ma04t003.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -31,9 +31,7 @@
#define STATUS_FAILED 2
#define SAMPLE_TAG ((jlong) 111111)
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -197,6 +195,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA04/ma04t003/ma04t003a.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA04/ma04t003/ma04t003a.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -31,9 +31,7 @@
#define STATUS_FAILED 2
#define SAMPLE_TAG ((jlong) 222222)
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -197,6 +195,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA05/ma05t001/ma05t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA05/ma05t001/ma05t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
#define STATUS_FAILED 2
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -287,6 +285,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA05/ma05t001/ma05t001a.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA05/ma05t001/ma05t001a.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
#define STATUS_FAILED 2
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -307,6 +305,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA06/ma06t001/ma06t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA06/ma06t001/ma06t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
#define STATUS_FAILED 2
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -245,6 +243,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA06/ma06t001/ma06t001a.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA06/ma06t001/ma06t001a.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
#define STATUS_FAILED 2
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -245,6 +243,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA07/ma07t001/ma07t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA07/ma07t001/ma07t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
#define STATUS_FAILED 2
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -185,6 +183,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA07/ma07t001/ma07t001a.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA07/ma07t001/ma07t001a.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
#define STATUS_FAILED 2
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -186,6 +184,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA08/ma08t001/ma08t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA08/ma08t001/ma08t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
#define STATUS_FAILED 2
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -214,6 +212,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA08/ma08t001/ma08t001a.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA08/ma08t001/ma08t001a.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
#define STATUS_FAILED 2
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -261,6 +259,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t001/ma10t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t001/ma10t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
#define STATUS_FAILED 2
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -195,6 +193,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t001/ma10t001a.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t001/ma10t001a.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
#define STATUS_FAILED 2
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -173,6 +171,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t002/ma10t002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t002/ma10t002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
#define STATUS_FAILED 2
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -201,6 +199,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t002/ma10t002a.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t002/ma10t002a.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
#define STATUS_FAILED 2
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -138,6 +136,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t003/ma10t003.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t003/ma10t003.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
#define STATUS_FAILED 2
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -202,6 +200,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t003/ma10t003a.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t003/ma10t003a.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
#define STATUS_FAILED 2
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -139,6 +137,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t004/ma10t004.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t004/ma10t004.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
#define STATUS_FAILED 2
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -207,6 +205,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t004/ma10t004a.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t004/ma10t004a.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
#define STATUS_FAILED 2
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -144,6 +142,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t005/ma10t005.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t005/ma10t005.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
#define STATUS_FAILED 2
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -135,6 +133,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t005/ma10t005a.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t005/ma10t005a.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
#define STATUS_FAILED 2
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -131,6 +129,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t006/ma10t006.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t006/ma10t006.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
#define STATUS_FAILED 2
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -172,6 +170,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t006/ma10t006a.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t006/ma10t006a.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
#define STATUS_FAILED 2
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -162,6 +160,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t007/ma10t007.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t007/ma10t007.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
#define STATUS_FAILED 2
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -139,6 +137,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t007/ma10t007a.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t007/ma10t007a.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
#define STATUS_FAILED 2
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -132,6 +130,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t008/ma10t008.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t008/ma10t008.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
#define STATUS_FAILED 2
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -222,6 +220,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t008/ma10t008a.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t008/ma10t008a.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
#define STATUS_FAILED 2
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -208,6 +206,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP01/sp01t001/sp01t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP01/sp01t001/sp01t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -277,6 +275,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP01/sp01t002/sp01t002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP01/sp01t002/sp01t002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -465,6 +463,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP01/sp01t003/sp01t003.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP01/sp01t003/sp01t003.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -478,6 +476,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP02/sp02t001/sp02t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP02/sp02t001/sp02t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -388,6 +386,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP02/sp02t002/sp02t002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP02/sp02t002/sp02t002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -452,6 +450,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP02/sp02t003/sp02t003.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP02/sp02t003/sp02t003.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -469,6 +467,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP03/sp03t001/sp03t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP03/sp03t001/sp03t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -481,6 +479,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP03/sp03t002/sp03t002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP03/sp03t002/sp03t002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -484,6 +482,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP04/sp04t001/sp04t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP04/sp04t001/sp04t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -481,6 +479,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP04/sp04t002/sp04t002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP04/sp04t002/sp04t002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -481,6 +479,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP05/sp05t002/sp05t002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP05/sp05t002/sp05t002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -420,6 +418,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP05/sp05t003/sp05t003.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP05/sp05t003/sp05t003.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -532,6 +530,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP06/sp06t001/sp06t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP06/sp06t001/sp06t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -518,6 +516,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP06/sp06t002/sp06t002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP06/sp06t002/sp06t002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -547,6 +545,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP06/sp06t003/sp06t003.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP06/sp06t003/sp06t003.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -564,6 +562,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP07/sp07t001/sp07t001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP07/sp07t001/sp07t001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define MAX_DEPTH 1024
@@ -370,6 +368,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP07/sp07t002/sp07t002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP07/sp07t002/sp07t002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "agent_common.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define MAX_DEPTH 1024
@@ -336,6 +334,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/FollowReferences/followref001/followref001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/FollowReferences/followref001/followref001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -880,6 +878,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/FollowReferences/followref002/followref002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/FollowReferences/followref002/followref002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -773,6 +771,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/FollowReferences/followref003/followref003.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/FollowReferences/followref003/followref003.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -1108,6 +1106,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/FollowReferences/followref004/followref004.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/FollowReferences/followref004/followref004.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include "jvmti_tools.h"
#include "jvmti_FollowRefObjects.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -265,6 +263,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/FollowReferences/followref005/followref005.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/FollowReferences/followref005/followref005.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jvmti_tools.h"
#include "jvmti_FollowRefObjects.h"
-#ifdef __cplusplus
extern "C" {
-#endif
static jlong g_timeout = 0;
@@ -165,6 +163,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/FollowReferences/followref006/followref006.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/FollowReferences/followref006/followref006.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include "jvmti_tools.h"
#include "jvmti_FollowRefObjects.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -270,6 +268,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretfp/earlyretfp.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretfp/earlyretfp.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,21 +27,8 @@
#include "agent_common.h"
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
-
-#ifndef JNI_ENV_ARG
-#ifdef __cplusplus
-#define JNI_ENV_ARG(x, y) y
-#define JNI_ENV_PTR(x) x
-#else
-#define JNI_ENV_ARG(x,y) x, y
-#define JNI_ENV_PTR(x) (*x)
-#endif
-
-#endif
#define PASSED 0
#define STATUS_FAILED 2
@@ -326,8 +313,7 @@
printdump = JNI_TRUE;
}
- res = JNI_ENV_PTR(jvm)->GetEnv(JNI_ENV_ARG(jvm, (void **) &jvmti),
- JVMTI_VERSION_1_1);
+ res = jvm->GetEnv((void **) &jvmti, JVMTI_VERSION_1_1);
if (res != JNI_OK || jvmti == NULL) {
printf("Wrong error code from a valid call to GetEnv!\n");
return JNI_ERR;
@@ -396,29 +382,25 @@
return;
}
- midRun = JNI_ENV_PTR(env)->GetMethodID(JNI_ENV_ARG(env, cls),
- "run", "()V");
+ midRun = env->GetMethodID(cls, "run", "()V");
if (midRun == NULL) {
printf("Cannot find Method ID for method run\n");
RETURN_FAILED;
}
- midCheckPoint = JNI_ENV_PTR(env)->GetMethodID(JNI_ENV_ARG(env, cls),
- "checkPoint", "()V");
+ midCheckPoint = env->GetMethodID(cls, "checkPoint", "()V");
if (midCheckPoint == NULL) {
printf("Cannot find Method ID for method checkPoint\n");
RETURN_FAILED;
}
- midCountDownFloat = JNI_ENV_PTR(env)->GetMethodID(JNI_ENV_ARG(env, cls),
- "countDownFloat", "(I)F");
+ midCountDownFloat = env->GetMethodID(cls, "countDownFloat", "(I)F");
if (midCountDownFloat == NULL) {
printf("Cannot find Method ID for method countDownFloat\n");
RETURN_FAILED;
}
- midCountDownDouble = JNI_ENV_PTR(env)->GetMethodID(JNI_ENV_ARG(env, cls),
- "countDownDouble", "(I)D");
+ midCountDownDouble = env->GetMethodID(cls, "countDownDouble", "(I)D");
if (midCountDownDouble == NULL) {
printf("Cannot find Method ID for method countDownDouble\n");
RETURN_FAILED;
@@ -473,6 +455,4 @@
return errCode;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretint/earlyretint.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretint/earlyretint.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,21 +27,8 @@
#include "agent_common.h"
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
-
-#ifndef JNI_ENV_ARG
-#ifdef __cplusplus
-#define JNI_ENV_ARG(x, y) y
-#define JNI_ENV_PTR(x) x
-#else
-#define JNI_ENV_ARG(x,y) x, y
-#define JNI_ENV_PTR(x) (*x)
-#endif
-
-#endif
#define PASSED 0
#define STATUS_FAILED 2
@@ -332,8 +319,7 @@
printdump = JNI_TRUE;
}
- res = JNI_ENV_PTR(jvm)->GetEnv(JNI_ENV_ARG(jvm, (void **) &jvmti),
- JVMTI_VERSION_1_1);
+ res = jvm->GetEnv((void **) &jvmti, JVMTI_VERSION_1_1);
if (res != JNI_OK || jvmti == NULL) {
printf("Wrong error code from a valid call to GetEnv!\n");
return JNI_ERR;
@@ -401,50 +387,43 @@
return;
}
- midRun = JNI_ENV_PTR(env)->GetMethodID(JNI_ENV_ARG(env, cls),
- "run", "()V");
+ midRun = env->GetMethodID(cls, "run", "()V");
if (midRun == NULL) {
printf("Cannot find Method ID for method run\n");
RETURN_FAILED;
}
- midCheckPoint = JNI_ENV_PTR(env)->GetMethodID(JNI_ENV_ARG(env, cls),
- "checkPoint", "()V");
+ midCheckPoint = env->GetMethodID(cls, "checkPoint", "()V");
if (midCheckPoint == NULL) {
printf("Cannot find Method ID for method checkPoint\n");
RETURN_FAILED;
}
- midCountDownInt = JNI_ENV_PTR(env)->GetMethodID(JNI_ENV_ARG(env, cls),
- "countDownInt", "(I)I");
+ midCountDownInt = env->GetMethodID(cls, "countDownInt", "(I)I");
if (midCheckPoint == NULL) {
printf("Cannot find Method ID for method countDownInt\n");
RETURN_FAILED;
}
- midCountDownShort = JNI_ENV_PTR(env)->GetMethodID(JNI_ENV_ARG(env, cls),
- "countDownShort", "(I)S");
+ midCountDownShort = env->GetMethodID(cls, "countDownShort", "(I)S");
if (midCountDownShort == NULL) {
printf("Cannot find Method ID for method countDownShort\n");
RETURN_FAILED;
}
- midCountDownChar = JNI_ENV_PTR(env)->GetMethodID(JNI_ENV_ARG(env, cls),
- "countDownChar", "(I)C");
+ midCountDownChar = env->GetMethodID(cls, "countDownChar", "(I)C");
if (midCountDownChar == NULL) {
printf("Cannot find Method ID for method countDownChar\n");
RETURN_FAILED;
}
- midCountDownByte = JNI_ENV_PTR(env)->GetMethodID(JNI_ENV_ARG(env, cls),
- "countDownByte", "(I)B");
+ midCountDownByte = env->GetMethodID(cls, "countDownByte", "(I)B");
if (midCountDownByte == NULL) {
printf("Cannot find Method ID for method countDownByte\n");
RETURN_FAILED;
}
- midCountDownBoolean = JNI_ENV_PTR(env)->GetMethodID(JNI_ENV_ARG(env, cls),
- "countDownBoolean", "(I)Z");
+ midCountDownBoolean = env->GetMethodID(cls, "countDownBoolean", "(I)Z");
if (midCountDownBoolean == NULL) {
printf("Cannot find Method ID for method countDownBoolean\n");
RETURN_FAILED;
@@ -488,6 +467,4 @@
return errCode;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretlong/earlyretlong.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretlong/earlyretlong.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,21 +28,8 @@
#include "agent_common.h"
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
-
-#ifndef JNI_ENV_ARG
-#ifdef __cplusplus
-#define JNI_ENV_ARG(x, y) y
-#define JNI_ENV_PTR(x) x
-#else
-#define JNI_ENV_ARG(x,y) x, y
-#define JNI_ENV_PTR(x) (*x)
-#endif
-
-#endif
#define PASSED 0
#define STATUS_FAILED 2
@@ -313,8 +300,7 @@
printdump = JNI_TRUE;
}
- res = JNI_ENV_PTR(jvm)->GetEnv(JNI_ENV_ARG(jvm, (void **) &jvmti),
- JVMTI_VERSION_1_1);
+ res = jvm->GetEnv((void **) &jvmti, JVMTI_VERSION_1_1);
if (res != JNI_OK || jvmti == NULL) {
printf("Wrong error code from a valid call to GetEnv!\n");
return JNI_ERR;
@@ -383,22 +369,19 @@
return;
}
- midRun = JNI_ENV_PTR(env)->GetMethodID(JNI_ENV_ARG(env, cls),
- "run", "()V");
+ midRun = env->GetMethodID(cls, "run", "()V");
if (midRun == NULL) {
printf("Cannot find Method ID for method run\n");
RETURN_FAILED;
}
- midCheckPoint = JNI_ENV_PTR(env)->GetMethodID(JNI_ENV_ARG(env, cls),
- "checkPoint", "()V");
+ midCheckPoint = env->GetMethodID(cls, "checkPoint", "()V");
if (midCheckPoint == NULL) {
printf("Cannot find Method ID for method checkPoint\n");
RETURN_FAILED;
}
- midCountDownLong = JNI_ENV_PTR(env)->GetMethodID(JNI_ENV_ARG(env, cls),
- "countDownLong", "(I)J");
+ midCountDownLong = env->GetMethodID(cls, "countDownLong", "(I)J");
if (midCountDownLong == NULL) {
printf("Cannot find Method ID for method countDownLong\n");
RETURN_FAILED;
@@ -444,6 +427,4 @@
return errCode;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretobj/earlyretobj.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretobj/earlyretobj.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,21 +28,8 @@
#include "agent_common.h"
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
-
-#ifndef JNI_ENV_ARG
-#ifdef __cplusplus
-#define JNI_ENV_ARG(x, y) y
-#define JNI_ENV_PTR(x) x
-#else
-#define JNI_ENV_ARG(x,y) x, y
-#define JNI_ENV_PTR(x) (*x)
-#endif
-
-#endif
#define PASSED 0
#define STATUS_FAILED 2
@@ -277,7 +264,7 @@
return;
}
if (method == midCountDownObject) {
- if (!JNI_ENV_PTR(env)->IsSameObject(JNI_ENV_ARG(env, ret_val), val_exp)) {
+ if (!env->IsSameObject(ret_val, val_exp)) {
printf("Wrong ForceEarlyReturnObject return value: 0x%p\n", ret_val);
printf("expected: 0x%p\n", val_exp);
errCode = STATUS_FAILED;
@@ -311,8 +298,7 @@
printdump = JNI_TRUE;
}
- res = JNI_ENV_PTR(jvm)->GetEnv(JNI_ENV_ARG(jvm, (void **) &jvmti),
- JVMTI_VERSION_1_1);
+ res = jvm->GetEnv((void **) &jvmti, JVMTI_VERSION_1_1);
if (res != JNI_OK || jvmti == NULL) {
printf("Wrong error code from a valid call to GetEnv!\n");
return JNI_ERR;
@@ -380,22 +366,19 @@
return;
}
- midRun = JNI_ENV_PTR(env)->GetMethodID(JNI_ENV_ARG(env, cls),
- "run", "()V");
+ midRun = env->GetMethodID(cls, "run", "()V");
if (midRun == NULL) {
printf("Cannot find Method ID for method run\n");
RETURN_FAILED;
}
- midCheckPoint = JNI_ENV_PTR(env)->GetMethodID(JNI_ENV_ARG(env, cls),
- "checkPoint", "()V");
+ midCheckPoint = env->GetMethodID(cls, "checkPoint", "()V");
if (midCheckPoint == NULL) {
printf("Cannot find Method ID for method checkPoint\n");
RETURN_FAILED;
}
- midCountDownObject = JNI_ENV_PTR(env)->GetMethodID(JNI_ENV_ARG(env, cls),
- "countDownObject", sig_exp);
+ midCountDownObject = env->GetMethodID(cls, "countDownObject", sig_exp);
if (midCountDownObject == NULL) {
printf("Cannot find Method ID for method countDownObject\n");
RETURN_FAILED;
@@ -415,7 +398,7 @@
TranslateError(err), err);
RETURN_FAILED;
} else {
- val_exp = JNI_ENV_PTR(env)->NewGlobalRef(JNI_ENV_ARG(env, ret_obj));
+ val_exp = env->NewGlobalRef(ret_obj);
framesExpected = depth;
}
}
@@ -440,6 +423,4 @@
return;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretstr/earlyretstr.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretstr/earlyretstr.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,21 +27,8 @@
#include "agent_common.h"
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
-
-#ifndef JNI_ENV_ARG
-#ifdef __cplusplus
-#define JNI_ENV_ARG(x, y) y
-#define JNI_ENV_PTR(x) x
-#else
-#define JNI_ENV_ARG(x,y) x, y
-#define JNI_ENV_PTR(x) (*x)
-#endif
-
-#endif
#define PASSED 0
#define STATUS_FAILED 2
@@ -277,8 +264,8 @@
return;
}
if (method == midCountDownString) {
- ret_str = JNI_ENV_PTR(env)->GetStringUTFChars(JNI_ENV_ARG(env, ret_val), 0);
- exp_str = JNI_ENV_PTR(env)->GetStringUTFChars(JNI_ENV_ARG(env, str_exp), 0);
+ ret_str = env->GetStringUTFChars(ret_val, 0);
+ exp_str = env->GetStringUTFChars(str_exp, 0);
printf("Expected string: \"%s\"\n", exp_str);
printf("Returned string: \"%s\"\n", ret_str);
if (was_popped_by_exception) {
@@ -310,8 +297,7 @@
printdump = JNI_TRUE;
}
- res = JNI_ENV_PTR(jvm)->GetEnv(JNI_ENV_ARG(jvm, (void **) &jvmti),
- JVMTI_VERSION_1_1);
+ res = jvm->GetEnv((void **) &jvmti, JVMTI_VERSION_1_1);
if (res != JNI_OK || jvmti == NULL) {
printf("Wrong error code of a valid call to GetEnv!\n");
return JNI_ERR;
@@ -379,22 +365,19 @@
return;
}
- midRun = JNI_ENV_PTR(env)->GetMethodID(JNI_ENV_ARG(env, cls),
- "run", "()V");
+ midRun = env->GetMethodID(cls, "run", "()V");
if (midRun == NULL) {
printf("Cannot find Method ID for method run\n");
RETURN_FAILED;
}
- midCheckPoint = JNI_ENV_PTR(env)->GetMethodID(JNI_ENV_ARG(env, cls),
- "checkPoint", "()V");
+ midCheckPoint = env->GetMethodID(cls, "checkPoint", "()V");
if (midCheckPoint == NULL) {
printf("Cannot find Method ID for method checkPoint\n");
RETURN_FAILED;
}
- midCountDownString = JNI_ENV_PTR(env)->GetMethodID(JNI_ENV_ARG(env, cls),
- "countDownString", sig_exp);
+ midCountDownString = env->GetMethodID(cls, "countDownString", sig_exp);
if (midCountDownString == NULL) {
printf("Cannot find Method ID for method countDownString\n");
RETURN_FAILED;
@@ -414,7 +397,7 @@
TranslateError(err), err);
RETURN_FAILED;
} else {
- str_exp = (jstring) JNI_ENV_PTR(env)->NewGlobalRef(JNI_ENV_ARG(env, expected_str));
+ str_exp = (jstring) env->NewGlobalRef(expected_str);
framesExpected = depth;
}
}
@@ -430,6 +413,4 @@
return errCode;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretvoid/earlyretvoid.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretvoid/earlyretvoid.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,21 +27,8 @@
#include "agent_common.h"
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
-
-#ifndef JNI_ENV_ARG
-#ifdef __cplusplus
-#define JNI_ENV_ARG(x, y) y
-#define JNI_ENV_PTR(x) x
-#else
-#define JNI_ENV_ARG(x,y) x, y
-#define JNI_ENV_PTR(x) (*x)
-#endif
-
-#endif
#define PASSED 0
#define STATUS_FAILED 2
@@ -260,8 +247,7 @@
printdump = JNI_TRUE;
}
- res = JNI_ENV_PTR(jvm)->GetEnv(JNI_ENV_ARG(jvm, (void **) &jvmti),
- JVMTI_VERSION_1_1);
+ res = jvm->GetEnv((void **) &jvmti, JVMTI_VERSION_1_1);
if (res != JNI_OK || jvmti == NULL) {
printf("Wrong error code from a valid call to GetEnv!\n");
return JNI_ERR;
@@ -325,15 +311,13 @@
return;
}
- midRun = JNI_ENV_PTR(env)->GetMethodID(JNI_ENV_ARG(env, cls),
- "run", "()V");
+ midRun = env->GetMethodID(cls, "run", "()V");
if (midRun == NULL) {
printf("Cannot find Method ID for method run\n");
RETURN_FAILED;
}
- midCheckPoint = JNI_ENV_PTR(env)->GetMethodID(JNI_ENV_ARG(env, cls),
- "checkPoint", "()V");
+ midCheckPoint = env->GetMethodID(cls, "checkPoint", "()V");
if (midCheckPoint == NULL) {
printf("Cannot find Method ID for method checkPoint\n");
RETURN_FAILED;
@@ -369,6 +353,4 @@
return errCode;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/GetAllStackTraces/getallstktr001/getallstktr001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/GetAllStackTraces/getallstktr001/getallstktr001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,39 +27,19 @@
#include "jni_tools.h"
#include "agent_common.h"
-#ifdef __cplusplus
extern "C" {
-#endif
-
-#ifndef JNI_ENV_ARG
-
-#ifdef __cplusplus
-#define JNI_ENV_ARG(x, y) y
-#define JNI_ENV_ARG1(x)
-#define JNI_ENV_PTR(x) x
-#else
-#define JNI_ENV_ARG(x,y) x, y
-#define JNI_ENV_ARG1(x) x
-#define JNI_ENV_PTR(x) (*x)
-#endif
-
-#endif
-
-#define JVMTI_ENV_ARG JNI_ENV_ARG
-#define JVMTI_ENV_ARG1 JNI_ENV_ARG1
-#define JVMTI_ENV_PTR JNI_ENV_PTR
#define STATUS_FAILED 2
#define PASSED 0
#define JVMTI_ERROR_CHECK(str,res) \
- if ( res != JVMTI_ERROR_NONE) { \
+ if (res != JVMTI_ERROR_NONE) { \
printf("%s %d\n" ,str, res); \
return res; \
}
#define JVMTI_ERROR_CHECK_EXPECTED_ERROR(str,res,err) \
- if ( res != err) { \
+ if (res != err) { \
printf("%s unexpected error %d\n", str, res); \
return res; \
}
@@ -105,18 +85,17 @@
jint Agent_Initialize(JavaVM * jvm, char *options, void *reserved) {
jint res;
- res = JNI_ENV_PTR(jvm)->
- GetEnv(JNI_ENV_ARG(jvm, (void **) &jvmti), JVMTI_VERSION_1_1);
+ res = jvm->GetEnv((void **) &jvmti, JVMTI_VERSION_1_1);
if (res < 0) {
printf("Wrong result of a valid call to GetEnv!\n");
return JNI_ERR;
}
/* Add capabilities */
- res = JVMTI_ENV_PTR(jvmti)->GetPotentialCapabilities(JVMTI_ENV_ARG(jvmti, &jvmti_caps));
+ res = jvmti->GetPotentialCapabilities(&jvmti_caps);
JVMTI_ERROR_CHECK("GetPotentialCapabilities returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->AddCapabilities(JVMTI_ENV_ARG(jvmti, &jvmti_caps));
+ res = jvmti->AddCapabilities(&jvmti_caps);
JVMTI_ERROR_CHECK("GetPotentialCapabilities returned error", res);
return JNI_OK;
@@ -139,8 +118,7 @@
char sz[128];
sprintf(sz, "Raw-monitor");
- ret = JVMTI_ENV_PTR(jvmti)->CreateRawMonitor(JVMTI_ENV_ARG(jvmti, sz),
- &jraw_monitor);
+ ret = jvmti->CreateRawMonitor(sz, &jraw_monitor);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: Raw monitor create %d \n", ret);
@@ -154,7 +132,7 @@
{
jvmtiError ret;
- ret = JVMTI_ENV_PTR(jvmti)->RawMonitorEnter(JVMTI_ENV_ARG(jvmti, jraw_monitor));
+ ret = jvmti->RawMonitorEnter(jraw_monitor);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: Raw monitor enter %d \n", ret);
@@ -168,7 +146,7 @@
{
jvmtiError ret;
- ret = JVMTI_ENV_PTR(jvmti)->RawMonitorExit(JVMTI_ENV_ARG(jvmti, jraw_monitor));
+ ret = jvmti->RawMonitorExit(jraw_monitor);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: RawMonitorExit %d \n", ret);
@@ -273,16 +251,14 @@
jvmtiError ret;
int ti;
- ret = JVMTI_ENV_PTR(jvmti)->GetAllStackTraces(JVMTI_ENV_ARG(jvmti, MAX_FRAMES_CNT),
- &stack_buf1,
- &threads_count);
+ ret = jvmti->GetAllStackTraces(MAX_FRAMES_CNT, &stack_buf1, &threads_count);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: GetAllStackTraces %d \n", ret);
iGlobalStatus = STATUS_FAILED;
}
- ret = JVMTI_ENV_PTR(jvmti)->Allocate(JVMTI_ENV_ARG(jvmti, sizeof(jthread) * threads_count),
- (unsigned char**)&thread_list);
+ ret = jvmti->Allocate(sizeof(jthread) * threads_count,
+ (unsigned char**) &thread_list);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: Allocate failed with %d \n", ret);
iGlobalStatus = STATUS_FAILED;
@@ -290,8 +266,7 @@
for (ti = 0; ti < threads_count; ti++) {
thread_list[ti] =
- (jthread)JNI_ENV_PTR(env)->NewGlobalRef(
- JNI_ENV_ARG(env, stack_buf1[ti].thread));
+ (jthread)env->NewGlobalRef(stack_buf1[ti].thread);
}
}
@@ -302,16 +277,15 @@
jvmtiError ret;
int ti;
- ret = JVMTI_ENV_PTR(jvmti)->Allocate(JVMTI_ENV_ARG(jvmti, sizeof(jvmtiThreadInfo) * threads_count),
- (unsigned char**)&thread_info);
+ ret = jvmti->Allocate(sizeof(jvmtiThreadInfo) * threads_count,
+ (unsigned char**)&thread_info);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: Allocate failed with %d \n", ret);
iGlobalStatus = STATUS_FAILED;
}
for (ti = 0; ti < threads_count; ti++) {
- ret = JVMTI_ENV_PTR(jvmti)->GetThreadInfo(JVMTI_ENV_ARG(jvmti, thread_list[ti]),
- &thread_info[ti]);
+ ret = jvmti->GetThreadInfo(thread_list[ti], &thread_info[ti]);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: GetThreadInfo %d \n", ret);
iGlobalStatus = STATUS_FAILED;
@@ -327,11 +301,8 @@
{
jvmtiError ret;
- ret = JVMTI_ENV_PTR(jvmti)->GetThreadListStackTraces(
- JVMTI_ENV_ARG(jvmti, threads_count),
- thread_list,
- MAX_FRAMES_CNT,
- &stack_buf2);
+ ret = jvmti->GetThreadListStackTraces(
+ threads_count, thread_list, MAX_FRAMES_CNT, &stack_buf2);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: GetThreadListStackTraces %d \n", ret);
iGlobalStatus = STATUS_FAILED;
@@ -344,7 +315,7 @@
JNIEnv * env, jclass cls)
{
jvmtiError ret;
- ret = JVMTI_ENV_PTR(jvmti)->ForceGarbageCollection(JVMTI_ENV_ARG1(jvmti));
+ ret = jvmti->ForceGarbageCollection();
if (ret != JVMTI_ERROR_NONE) {
printf("Error: ForceGarbageCollection %d \n", ret);
@@ -365,30 +336,28 @@
{
jvmtiError ret;
- ret = JVMTI_ENV_PTR(jvmti)->Deallocate(JVMTI_ENV_ARG(jvmti, (unsigned char *)stack_buf1));
+ ret = jvmti->Deallocate((unsigned char *) stack_buf1);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: Deallocate stack_buf1 failed with %d \n", ret);
iGlobalStatus = STATUS_FAILED;
}
- ret = JVMTI_ENV_PTR(jvmti)->Deallocate(JVMTI_ENV_ARG(jvmti, (unsigned char *)stack_buf2));
+ ret = jvmti->Deallocate((unsigned char *) stack_buf2);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: Deallocate stack_buf2 failed with %d \n", ret);
iGlobalStatus = STATUS_FAILED;
}
- ret = JVMTI_ENV_PTR(jvmti)->Deallocate(JVMTI_ENV_ARG(jvmti, (unsigned char *)thread_info));
+ ret = jvmti->Deallocate((unsigned char *) thread_info);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: Deallocate thread_info failed with %d \n", ret);
iGlobalStatus = STATUS_FAILED;
}
- ret = JVMTI_ENV_PTR(jvmti)->Deallocate(JVMTI_ENV_ARG(jvmti, (unsigned char *)thread_list));
+ ret = jvmti->Deallocate((unsigned char *) thread_list);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: Deallocate thread_list failed with %d \n", ret);
iGlobalStatus = STATUS_FAILED;
}
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/GetConstantPool/getcpool001/getcpool001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/GetConstantPool/getcpool001/getcpool001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,21 +27,8 @@
#include "agent_common.h"
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
-
-#ifndef JNI_ENV_ARG
-#ifdef __cplusplus
-#define JNI_ENV_ARG(x, y) y
-#define JNI_ENV_PTR(x) x
-#else
-#define JNI_ENV_ARG(x,y) x, y
-#define JNI_ENV_PTR(x) (*x)
-#endif
-
-#endif
#define PASSED 0
#define STATUS_FAILED 2
@@ -114,8 +101,7 @@
jvmtiError err;
jint res;
- res = JNI_ENV_PTR(jvm)->GetEnv(JNI_ENV_ARG(jvm, (void **) &jvmti),
- JVMTI_VERSION_1_1);
+ res = jvm->GetEnv((void **) &jvmti, JVMTI_VERSION_1_1);
if (res != JNI_OK || jvmti == NULL) {
printf("Wrong result of a valid call to GetEnv!\n");
return JNI_ERR;
@@ -176,8 +162,7 @@
return;
}
- midCheckPoint = JNI_ENV_PTR(env)->GetMethodID(JNI_ENV_ARG(env, cls),
- "checkPoint", "()V");
+ midCheckPoint = env->GetMethodID(cls, "checkPoint", "()V");
if (midCheckPoint == NULL) {
printf("Cannot find Method ID for method checkPoint\n");
RETURN_FAILED;
@@ -190,8 +175,7 @@
RETURN_FAILED;
}
- err = jvmti->SetEventNotificationMode(JVMTI_ENABLE,
- JVMTI_EVENT_BREAKPOINT, NULL);
+ err = jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_BREAKPOINT, NULL);
if (err != JVMTI_ERROR_NONE) {
printf("Failed to enable BREAKPOINT event: %s (%d)\n",
TranslateError(err), err);
@@ -205,6 +189,4 @@
return errCode;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/GetLineNumberTable/linetab004/linetab004.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/GetLineNumberTable/linetab004/linetab004.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,21 +30,8 @@
#include "agent_common.h"
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
-
-#ifndef JNI_ENV_ARG
-#ifdef __cplusplus
-#define JNI_ENV_ARG(x, y) y
-#define JNI_ENV_PTR(x) x
-#else
-#define JNI_ENV_ARG(x,y) x, y
-#define JNI_ENV_PTR(x) (*x)
-#endif
-
-#endif
#define PASSED 0
#define STATUS_FAILED 2
@@ -73,8 +60,7 @@
printdump = JNI_TRUE;
}
- res = JNI_ENV_PTR(jvm)->GetEnv(JNI_ENV_ARG(jvm, (void **) &jvmti),
- JVMTI_VERSION_1_1);
+ res = jvm->GetEnv((void **) &jvmti, JVMTI_VERSION_1_1);
if (res != JNI_OK || jvmti == NULL) {
printf("Wrong result of a valid call to GetEnv!\n");
return JNI_ERR;
@@ -158,15 +144,13 @@
if (printdump == JNI_TRUE) {
printf("\n Check methods of interface:\n");
}
- interf = JNI_ENV_PTR(env)->FindClass(JNI_ENV_ARG(env,
- "nsk/jvmti/unit/GetLineNumberTable/Interface004"));
+ interf = env->FindClass("nsk/jvmti/unit/GetLineNumberTable/Interface004");
if (interf == NULL) {
printf("Cannot get Interface class!\n");
return STATUS_FAILED;
}
- mid = JNI_ENV_PTR(env)->GetMethodID(JNI_ENV_ARG(env, cls),
- "instanceMeth0", "()I");
+ mid = env->GetMethodID(cls, "instanceMeth0", "()I");
if (mid == NULL) {
printf("Cannot get method ID!\n");
return STATUS_FAILED;
@@ -174,8 +158,7 @@
checkGetLineNumberTable(mid, "instanceMeth0", 1,
JVMTI_ERROR_ABSENT_INFORMATION);
- mid = JNI_ENV_PTR(env)->GetMethodID(JNI_ENV_ARG(env, cls),
- "instanceMeth1", "()I");
+ mid = env->GetMethodID(cls, "instanceMeth1", "()I");
if (mid == NULL) {
printf("Cannot get method ID!\n");
return STATUS_FAILED;
@@ -186,14 +169,13 @@
if (printdump == JNI_TRUE) {
printf("\n Check methods of abstract class:\n");
}
- abstr = JNI_ENV_PTR(env)->GetSuperclass(JNI_ENV_ARG(env, cls));
+ abstr = env->GetSuperclass(cls);
if (abstr == NULL) {
printf("Cannot get super class!\n");
return STATUS_FAILED;
}
- mid = JNI_ENV_PTR(env)->GetMethodID(JNI_ENV_ARG(env, abstr),
- "instanceMeth0", "()I");
+ mid = env->GetMethodID(abstr, "instanceMeth0", "()I");
if (mid == NULL) {
printf("Cannot get method ID!\n");
return STATUS_FAILED;
@@ -201,8 +183,7 @@
checkGetLineNumberTable(mid, "instanceMeth0", 1,
JVMTI_ERROR_ABSENT_INFORMATION);
- mid = JNI_ENV_PTR(env)->GetMethodID(JNI_ENV_ARG(env, abstr),
- "instanceMeth1", "()I");
+ mid = env->GetMethodID(abstr, "instanceMeth1", "()I");
if (mid == NULL) {
printf("Cannot get method ID!\n");
return STATUS_FAILED;
@@ -213,8 +194,7 @@
if (printdump == JNI_TRUE) {
printf("\n Check methods of regular class:\n");
}
- mid = JNI_ENV_PTR(env)->GetMethodID(JNI_ENV_ARG(env, cls),
- "instanceMeth0", "()I");
+ mid = env->GetMethodID(cls, "instanceMeth0", "()I");
if (mid == NULL) {
printf("Cannot get method ID!\n");
return STATUS_FAILED;
@@ -222,8 +202,7 @@
checkGetLineNumberTable(mid, "instanceMeth0", 0,
JVMTI_ERROR_ABSENT_INFORMATION);
- mid = JNI_ENV_PTR(env)->GetMethodID(JNI_ENV_ARG(env, cls),
- "instanceMeth1", "()I");
+ mid = env->GetMethodID(cls, "instanceMeth1", "()I");
if (mid == NULL) {
printf("Cannot get method ID!\n");
return STATUS_FAILED;
@@ -231,8 +210,7 @@
checkGetLineNumberTable(mid, "instanceMeth1", 0,
JVMTI_ERROR_ABSENT_INFORMATION);
- mid = JNI_ENV_PTR(env)->GetMethodID(JNI_ENV_ARG(env, cls),
- "instanceMeth2", "()I");
+ mid = env->GetMethodID(cls, "instanceMeth2", "()I");
if (mid == NULL) {
printf("Cannot get method ID!\n");
return STATUS_FAILED;
@@ -243,8 +221,7 @@
if (printdump == JNI_TRUE) {
printf("\n Check native methods of regular class:\n");
}
- mid = JNI_ENV_PTR(env)->GetMethodID(JNI_ENV_ARG(env, cls),
- "instanceNativeMeth", "()I");
+ mid = env->GetMethodID(cls, "instanceNativeMeth", "()I");
if (mid == NULL) {
printf("Cannot get method ID!\n");
return STATUS_FAILED;
@@ -252,8 +229,7 @@
checkGetLineNumberTable(mid, "instanceNativeMeth", 1,
JVMTI_ERROR_NATIVE_METHOD);
- mid = JNI_ENV_PTR(env)->GetStaticMethodID(JNI_ENV_ARG(env, cls),
- "staticNativeMeth", "()I");
+ mid = env->GetStaticMethodID(cls, "staticNativeMeth", "()I");
if (mid == NULL) {
printf("Cannot get method ID!\n");
return STATUS_FAILED;
@@ -268,6 +244,4 @@
return result;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/GetLocalVariable/getlocal003/getlocal003.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/GetLocalVariable/getlocal003/getlocal003.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -31,21 +31,8 @@
#include "agent_common.h"
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
-
-#ifndef JNI_ENV_ARG
-#ifdef __cplusplus
-#define JNI_ENV_ARG(x, y) y
-#define JNI_ENV_PTR(x) x
-#else
-#define JNI_ENV_ARG(x,y) x, y
-#define JNI_ENV_PTR(x) (*x)
-#endif
-
-#endif
#define PASSED 0
#define STATUS_FAILED 2
@@ -151,8 +138,7 @@
printdump = JNI_TRUE;
}
- res = JNI_ENV_PTR(jvm)->GetEnv(JNI_ENV_ARG(jvm, (void **) &jvmti),
- JVMTI_VERSION_1_1);
+ res = jvm->GetEnv((void **) &jvmti, JVMTI_VERSION_1_1);
if (res != JNI_OK || jvmti == NULL) {
printf("Wrong result of a valid call to GetEnv!\n");
return JNI_ERR;
@@ -209,8 +195,7 @@
if (!caps.can_access_local_variables ||
!caps.can_generate_method_exit_events) return;
- mid = JNI_ENV_PTR(env)->GetStaticMethodID(JNI_ENV_ARG(env, cls),
- "staticMeth", "(I)I");
+ mid = env->GetStaticMethodID(cls, "staticMeth", "(I)I");
if (mid == NULL) {
printf("Cannot find Method ID for staticMeth\n");
result = STATUS_FAILED;
@@ -250,8 +235,7 @@
return;
}
- mid = JNI_ENV_PTR(env)->GetStaticMethodID(JNI_ENV_ARG(env, cls),
- "staticMeth", "(I)I");
+ mid = env->GetStaticMethodID(cls, "staticMeth", "(I)I");
if (mid == NULL) {
printf("Cannot find Method ID for staticMeth\n");
result = STATUS_FAILED;
@@ -324,6 +308,4 @@
return result;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/GetLocalVariable/getlocal004/getlocal004.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/GetLocalVariable/getlocal004/getlocal004.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -31,21 +31,8 @@
#include "agent_common.h"
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
-
-#ifndef JNI_ENV_ARG
-#ifdef __cplusplus
-#define JNI_ENV_ARG(x, y) y
-#define JNI_ENV_PTR(x) x
-#else
-#define JNI_ENV_ARG(x,y) x, y
-#define JNI_ENV_PTR(x) (*x)
-#endif
-
-#endif
#define PASSED 0
#define STATUS_FAILED 2
@@ -82,8 +69,7 @@
printdump = JNI_TRUE;
}
- res = JNI_ENV_PTR(jvm)->GetEnv(JNI_ENV_ARG(jvm, (void **) &jvmti),
- JVMTI_VERSION_1_1);
+ res = jvm->GetEnv((void **) &jvmti, JVMTI_VERSION_1_1);
if (res != JNI_OK || jvmti == NULL) {
printf("Wrong result of a valid call to GetEnv!\n");
return JNI_ERR;
@@ -128,8 +114,7 @@
if (!caps.can_access_local_variables ||
!caps.can_generate_method_exit_events) return;
- mid = JNI_ENV_PTR(env)->GetStaticMethodID(JNI_ENV_ARG(env, cls),
- "staticMeth", "(I)I");
+ mid = env->GetStaticMethodID(cls, "staticMeth", "(I)I");
if (mid == NULL) {
printf("Cannot find Method ID for staticMeth\n");
result = STATUS_FAILED;
@@ -243,6 +228,4 @@
return result;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/IsSynthetic/issynth001/issynth001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/IsSynthetic/issynth001/issynth001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,21 +27,8 @@
#include "agent_common.h"
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
-
-#ifndef JNI_ENV_ARG
-#ifdef __cplusplus
-#define JNI_ENV_ARG(x, y) y
-#define JNI_ENV_PTR(x) x
-#else
-#define JNI_ENV_ARG(x,y) x, y
-#define JNI_ENV_PTR(x) (*x)
-#endif
-
-#endif
#define PASSED 0
#define STATUS_FAILED 2
@@ -71,8 +58,7 @@
printdump = JNI_TRUE;
}
- res = JNI_ENV_PTR(jvm)->GetEnv(JNI_ENV_ARG(jvm, (void **) &jvmti),
- JVMTI_VERSION_1_1);
+ res = jvm->GetEnv((void **) &jvmti, JVMTI_VERSION_1_1);
if (res != JNI_OK || jvmti == NULL) {
printf("Wrong result of a valid call to GetEnv!\n");
return JNI_ERR;
@@ -294,6 +280,4 @@
return result;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/MethodBind/JvmtiTest/JvmtiTest.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/MethodBind/JvmtiTest/JvmtiTest.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -26,27 +26,8 @@
#include "jvmti.h"
#include "agent_common.h"
-#ifdef __cplusplus
extern "C" {
-#endif
-
-#ifndef JNI_ENV_ARG
-#ifdef __cplusplus
-#define JNI_ENV_ARG(x, y) y
-#define JNI_ENV_ARG1(x)
-#define JNI_ENV_PTR(x) x
-#else
-#define JNI_ENV_ARG(x,y) x, y
-#define JNI_ENV_ARG1(x) x
-#define JNI_ENV_PTR(x) (*x)
-#endif
-
-#endif
-
-#define JVMTI_ENV_ARG JNI_ENV_ARG
-#define JVMTI_ENV_ARG1 JNI_ENV_ARG1
-#define JVMTI_ENV_PTR JNI_ENV_PTR
#define JVMTI_ERROR_CHECK(str,res) if ( res != JVMTI_ERROR_NONE) { printf(str); printf("%d\n",res); return res;}
#define JVMTI_ERROR_CHECK_EXPECTED_ERROR(str,res,err) if ( res != err) { printf(str); printf("unexpected error %d\n",res); return res;}
@@ -161,8 +142,7 @@
}
}
- res = JNI_ENV_PTR(jvm)->
- GetEnv(JNI_ENV_ARG(jvm, (void **) &jvmti), JVMTI_VERSION_1_1);
+ res = jvm->GetEnv((void **) &jvmti, JVMTI_VERSION_1_1);
if (res < 0) {
printf("Wrong result of a valid call to GetEnv!\n");
return JNI_ERR;
@@ -170,24 +150,24 @@
/* Add capabilities */
- res = JVMTI_ENV_PTR(jvmti)->GetPotentialCapabilities(JVMTI_ENV_ARG(jvmti, &jvmti_caps));
+ res = jvmti->GetPotentialCapabilities(&jvmti_caps);
JVMTI_ERROR_CHECK("GetPotentialCapabilities returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->AddCapabilities(JVMTI_ENV_ARG(jvmti, &jvmti_caps));
+ res = jvmti->AddCapabilities(&jvmti_caps);
JVMTI_ERROR_CHECK("AddCapabilities returned error", res);
/* Enable events */
init_callbacks();
- res = JVMTI_ENV_PTR(jvmti)->SetEventCallbacks(JVMTI_ENV_ARG(jvmti, &callbacks), sizeof(callbacks));
+ res = jvmti->SetEventCallbacks(&callbacks, sizeof(callbacks));
JVMTI_ERROR_CHECK("SetEventCallbacks returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->SetEventNotificationMode(JVMTI_ENV_ARG(jvmti,JVMTI_ENABLE),JVMTI_EVENT_VM_INIT,NULL);
+ res = jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_INIT, NULL);
JVMTI_ERROR_CHECK("SetEventNotificationMode for VM_INIT returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->SetEventNotificationMode(JVMTI_ENV_ARG(jvmti,JVMTI_ENABLE),JVMTI_EVENT_VM_DEATH,NULL);
+ res = jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_DEATH, NULL);
JVMTI_ERROR_CHECK("SetEventNotificationMode for vm death event returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->SetEventNotificationMode(JVMTI_ENV_ARG(jvmti,JVMTI_ENABLE),JVMTI_EVENT_NATIVE_METHOD_BIND,NULL);
+ res = jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_NATIVE_METHOD_BIND, NULL);
JVMTI_ERROR_CHECK("SetEventNotificationMode for native method bind event returned error", res);
return JNI_OK;
@@ -207,7 +187,7 @@
sprintf(sz, "Rawmonitor-%d",i);
debug_printf("jvmti create raw monitor \n");
- ret = JVMTI_ENV_PTR(jvmti)->CreateRawMonitor(JVMTI_ENV_ARG(jvmti, sz), &jraw_monitor[i]);
+ ret = jvmti->CreateRawMonitor(sz, &jraw_monitor[i]);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: ForceGarbageCollection %d \n", ret);
@@ -220,7 +200,7 @@
jvmtiError ret;
debug_printf("jvmti Raw monitor enter \n");
- ret = JVMTI_ENV_PTR(jvmti)->RawMonitorEnter(JVMTI_ENV_ARG(jvmti, jraw_monitor[i]));
+ ret = jvmti->RawMonitorEnter(jraw_monitor[i]);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: Raw monitor enter %d \n", ret);
@@ -233,7 +213,7 @@
jvmtiError ret;
debug_printf("jvmti raw monitor exit \n");
- ret = JVMTI_ENV_PTR(jvmti)->RawMonitorExit(JVMTI_ENV_ARG(jvmti, jraw_monitor[i]));
+ ret = jvmti->RawMonitorExit(jraw_monitor[i]);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: RawMonitorExit %d \n", ret);
@@ -246,7 +226,7 @@
jvmtiError ret;
debug_printf("jvmti RawMonitorWait \n");
- ret = JVMTI_ENV_PTR(jvmti)->RawMonitorWait(JVMTI_ENV_ARG(jvmti, jraw_monitor[i]), -1);
+ ret = jvmti->RawMonitorWait(jraw_monitor[i], -1);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: RawMonitorWait %d \n", ret);
@@ -259,7 +239,7 @@
jvmtiError ret;
debug_printf("jvmti RawMonitorNotify \n");
- ret = JVMTI_ENV_PTR(jvmti)->RawMonitorNotifyAll(JVMTI_ENV_ARG(jvmti, jraw_monitor[i]));
+ ret = jvmti->RawMonitorNotifyAll(jraw_monitor[i]);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: RawMonitorNotify %d \n", ret);
@@ -273,7 +253,7 @@
jint count;
debug_printf("jvmti GetFrameCount \n");
- ret = JVMTI_ENV_PTR(jvmti)->GetFrameCount(JVMTI_ENV_ARG(jvmti, (jthread)thr), &count);
+ ret = jvmti->GetFrameCount((jthread) thr, &count);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: GetFrameCount returned %d \n", ret);
iGlobalStatus = 2;
@@ -288,21 +268,21 @@
char *mname;
char *signature;
char *clname = (char*) "unknown";
- ret = JVMTI_ENV_PTR(jvmti)->GetMethodDeclaringClass(JVMTI_ENV_ARG(jvmti, mid), &klass);
+ ret = jvmti->GetMethodDeclaringClass(mid, &klass);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: GetMethodDeclaringClass %d \n", ret);
iGlobalStatus = 2;
return;
}
- ret = JVMTI_ENV_PTR(jvmti)->GetClassSignature(JVMTI_ENV_ARG(jvmti, klass), &clname, NULL);
+ ret = jvmti->GetClassSignature(klass, &clname, NULL);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: GetClassSignature %d \n", ret);
iGlobalStatus = 2;
return;
}
- ret = JVMTI_ENV_PTR(jvmti)->GetMethodName(JVMTI_ENV_ARG(jvmti, mid), &mname, &signature, NULL);
+ ret = jvmti->GetMethodName(mid, &mname, &signature, NULL);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: GetMethodName %d \n", ret);
iGlobalStatus = 2;
@@ -321,19 +301,20 @@
jint count;
- ret = JVMTI_ENV_PTR(jvmti)->Allocate(JVMTI_ENV_ARG(jvmti, sizeof(jvmtiFrameInfo) * max_count), (unsigned char**)&stack_buffer);
+ ret = jvmti->Allocate(sizeof(jvmtiFrameInfo) * max_count,
+ (unsigned char**) &stack_buffer);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: Allocate failed with %d \n", ret);
iGlobalStatus = 2;
}
- ret = JVMTI_ENV_PTR(jvmti)->GetStackTrace(JVMTI_ENV_ARG(jvmti, thr), 0, max_count , stack_buffer, &count);
+ ret = jvmti->GetStackTrace(thr, 0, max_count, stack_buffer, &count);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: GetStackTrace %d \n", ret);
iGlobalStatus = 2;
}
- ret = JVMTI_ENV_PTR(jvmti)->Deallocate(JVMTI_ENV_ARG(jvmti, (unsigned char *)stack_buffer));
+ ret = jvmti->Deallocate((unsigned char *) stack_buffer);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: Deallocate failed with %d \n", ret);
iGlobalStatus = 2;
@@ -347,6 +328,4 @@
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/OnUnload/JvmtiTest/JvmtiTest.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/OnUnload/JvmtiTest/JvmtiTest.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -26,23 +26,8 @@
#include "jvmti.h"
#include "agent_common.h"
-#ifdef __cplusplus
extern "C" {
-#endif
-
-#ifndef JNI_ENV_ARG
-#ifdef __cplusplus
-#define JNI_ENV_ARG(x, y) y
-#define JNI_ENV_ARG1(x)
-#define JNI_ENV_PTR(x) x
-#else
-#define JNI_ENV_ARG(x,y) x, y
-#define JNI_ENV_ARG1(x) x
-#define JNI_ENV_PTR(x) (*x)
-#endif
-
-#endif
jvmtiEnv *jvmti;
@@ -61,8 +46,7 @@
jint Agent_Initialize(JavaVM * jvm, char *options, void *reserved) {
jint res;
- res = JNI_ENV_PTR(jvm)->
- GetEnv(JNI_ENV_ARG(jvm, (void **) &jvmti), JVMTI_VERSION_1_1);
+ res = jvm->GetEnv((void **) &jvmti, JVMTI_VERSION_1_1);
if (res < 0) {
printf("Wrong result of a valid call to GetEnv!\n");
return JNI_ERR;
@@ -83,6 +67,4 @@
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/StackTrace/JvmtiTest/JvmtiTest.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/StackTrace/JvmtiTest/JvmtiTest.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,27 +30,7 @@
#include "jvmti.h"
#include "agent_common.h"
-#ifdef __cplusplus
extern "C" {
-#endif
-
-#ifndef JNI_ENV_ARG
-
-#ifdef __cplusplus
-#define JNI_ENV_ARG(x, y) y
-#define JNI_ENV_ARG1(x)
-#define JNI_ENV_PTR(x) x
-#else
-#define JNI_ENV_ARG(x,y) x, y
-#define JNI_ENV_ARG1(x) x
-#define JNI_ENV_PTR(x) (*x)
-#endif
-
-#endif
-
-#define JVMTI_ENV_ARG JNI_ENV_ARG
-#define JVMTI_ENV_ARG1 JNI_ENV_ARG1
-#define JVMTI_ENV_PTR JNI_ENV_PTR
#define JVMTI_ERROR_CHECK(str,res) if ( res != JVMTI_ERROR_NONE) { printf(str); printf("%d\n",res); return res;}
#define JVMTI_ERROR_CHECK_EXPECTED_ERROR(str,res,err) if ( res != err) { printf(str); printf("unexpected error %d\n",res); return res;}
@@ -107,8 +87,7 @@
}
}
- res = JNI_ENV_PTR(jvm)->
- GetEnv(JNI_ENV_ARG(jvm, (void **) &jvmti), JVMTI_VERSION_1_1);
+ res = jvm->GetEnv((void **) &jvmti, JVMTI_VERSION_1_1);
if (res < 0) {
printf("Wrong result of a valid call to GetEnv!\n");
return JNI_ERR;
@@ -116,10 +95,10 @@
/* Add capabilities */
- res = JVMTI_ENV_PTR(jvmti)->GetPotentialCapabilities(JVMTI_ENV_ARG(jvmti, &jvmti_caps));
+ res = jvmti->GetPotentialCapabilities(&jvmti_caps);
JVMTI_ERROR_CHECK("GetPotentialCapabilities returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->AddCapabilities(JVMTI_ENV_ARG(jvmti, &jvmti_caps));
+ res = jvmti->AddCapabilities(&jvmti_caps);
JVMTI_ERROR_CHECK("GetPotentialCapabilities returned error", res);
return JNI_OK;
@@ -139,7 +118,7 @@
sprintf(sz, "Rawmonitor-%d",i);
debug_printf("jvmti create raw monitor \n");
- ret = JVMTI_ENV_PTR(jvmti)->CreateRawMonitor(JVMTI_ENV_ARG(jvmti, sz), &jraw_monitor[i]);
+ ret = jvmti->CreateRawMonitor(sz, &jraw_monitor[i]);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: ForceGarbageCollection %d \n", ret);
@@ -152,7 +131,7 @@
jvmtiError ret;
debug_printf("jvmti Raw monitor enter \n");
- ret = JVMTI_ENV_PTR(jvmti)->RawMonitorEnter(JVMTI_ENV_ARG(jvmti, jraw_monitor[i]));
+ ret = jvmti->RawMonitorEnter(jraw_monitor[i]);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: Raw monitor enter %d \n", ret);
@@ -165,7 +144,7 @@
jvmtiError ret;
debug_printf("jvmti raw monitor exit \n");
- ret = JVMTI_ENV_PTR(jvmti)->RawMonitorExit(JVMTI_ENV_ARG(jvmti, jraw_monitor[i]));
+ ret = jvmti->RawMonitorExit(jraw_monitor[i]);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: RawMonitorExit %d \n", ret);
@@ -178,7 +157,7 @@
jvmtiError ret;
debug_printf("jvmti RawMonitorWait \n");
- ret = JVMTI_ENV_PTR(jvmti)->RawMonitorWait(JVMTI_ENV_ARG(jvmti, jraw_monitor[i]), -1);
+ ret = jvmti->RawMonitorWait(jraw_monitor[i], -1);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: RawMonitorWait %d \n", ret);
@@ -191,7 +170,7 @@
jvmtiError ret;
debug_printf("jvmti RawMonitorNotify \n");
- ret = JVMTI_ENV_PTR(jvmti)->RawMonitorNotifyAll(JVMTI_ENV_ARG(jvmti, jraw_monitor[i]));
+ ret = jvmti->RawMonitorNotifyAll(jraw_monitor[i]);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: RawMonitorNotify %d \n", ret);
@@ -205,7 +184,7 @@
jint count;
debug_printf("jvmti GetFrameCount \n");
- ret = JVMTI_ENV_PTR(jvmti)->GetFrameCount(JVMTI_ENV_ARG(jvmti, (jthread)thr), &count);
+ ret = jvmti->GetFrameCount((jthread) thr, &count);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: GetFrameCount returned %d \n", ret);
iGlobalStatus = 2;
@@ -230,26 +209,26 @@
debug_printf("jvmti GetStackTrace \n");
- ret = JVMTI_ENV_PTR(jvmti)->Allocate(JVMTI_ENV_ARG(jvmti, sizeof(jvmtiFrameInfo) * max_count), (unsigned char**)&stack_buffer);
+ ret = jvmti->Allocate(sizeof(jvmtiFrameInfo) * max_count, (unsigned char**)&stack_buffer);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: Allocate failed with %d \n", ret);
iGlobalStatus = 2;
}
- ret = JVMTI_ENV_PTR(jvmti)->Allocate(JVMTI_ENV_ARG(jvmti, sizeof(jvmtiFrameInfo) * max_count), (unsigned char**)&compare_buffer);
+ ret = jvmti->Allocate(sizeof(jvmtiFrameInfo) * max_count, (unsigned char**)&compare_buffer);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: Allocate failed with %d \n", ret);
iGlobalStatus = 2;
}
- ret = JVMTI_ENV_PTR(jvmti)->SuspendThread(JVMTI_ENV_ARG(jvmti, thr));
+ ret = jvmti->SuspendThread(thr);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: SuspendThread failed with %d \n", ret);
iGlobalStatus = 2;
}
- ret = JVMTI_ENV_PTR(jvmti)->GetStackTrace(JVMTI_ENV_ARG(jvmti, thr), 0, max_count , stack_buffer, &count);
+ ret = jvmti->GetStackTrace(thr, 0, max_count, stack_buffer, &count);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: GetStackTrace %d \n", ret);
iGlobalStatus = 2;
@@ -257,7 +236,7 @@
for (i = 1; i < count; ++i) {
jint res_count = 48343;
- ret = JVMTI_ENV_PTR(jvmti)->GetStackTrace(JVMTI_ENV_ARG(jvmti, thr), i, max_count , compare_buffer, &res_count);
+ ret = jvmti->GetStackTrace(thr, i, max_count, compare_buffer, &res_count);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: GetStackTrace2 %d \n", ret);
iGlobalStatus = 2;
@@ -276,7 +255,7 @@
for (i = 1; i < count; ++i) {
jint res_count = 48343;
- ret = JVMTI_ENV_PTR(jvmti)->GetStackTrace(JVMTI_ENV_ARG(jvmti, thr), -i, max_count , compare_buffer, &res_count);
+ ret = jvmti->GetStackTrace(thr, -i, max_count, compare_buffer, &res_count);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: GetStackTrace2 %d \n", ret);
iGlobalStatus = 2;
@@ -296,7 +275,7 @@
debug_printf("Count = %d\n", count);
- ret = JVMTI_ENV_PTR(jvmti)->ResumeThread(JVMTI_ENV_ARG(jvmti, thr));
+ ret = jvmti->ResumeThread(thr);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: ResumeThread failed with %d \n", ret);
iGlobalStatus = 2;
@@ -305,21 +284,21 @@
debug_printf(" Java Stack trace ---\n");
for (i = 0; i < count; i++) {
- ret = JVMTI_ENV_PTR(jvmti)->GetMethodDeclaringClass(JVMTI_ENV_ARG(jvmti, stack_buffer[i].method), &klass);
+ ret = jvmti->GetMethodDeclaringClass(stack_buffer[i].method, &klass);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: GetMethodDeclaringClass %d \n", ret);
iGlobalStatus = 2;
return;
}
- ret = JVMTI_ENV_PTR(jvmti)->GetClassSignature(JVMTI_ENV_ARG(jvmti, klass), &clname, NULL);
+ ret = jvmti->GetClassSignature(klass, &clname, NULL);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: GetClassSignature %d \n", ret);
iGlobalStatus = 2;
return;
}
- ret = JVMTI_ENV_PTR(jvmti)->GetMethodName(JVMTI_ENV_ARG(jvmti, stack_buffer[i].method), &mname, &signature, NULL);
+ ret = jvmti->GetMethodName(stack_buffer[i].method, &mname, &signature, NULL);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: GetMethodName %d \n", ret);
iGlobalStatus = 2;
@@ -332,7 +311,7 @@
}
- ret = JVMTI_ENV_PTR(jvmti)->Deallocate(JVMTI_ENV_ARG(jvmti, (unsigned char *)stack_buffer));
+ ret = jvmti->Deallocate((unsigned char *) stack_buffer);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: Deallocate failed with %d \n", ret);
iGlobalStatus = 2;
@@ -346,6 +325,4 @@
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/agentthr/agentthr.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/agentthr/agentthr.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,21 +27,8 @@
#include "agent_common.h"
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
-
-#ifndef JNI_ENV_ARG
-#ifdef __cplusplus
-#define JNI_ENV_ARG(x, y) y
-#define JNI_ENV_PTR(x) x
-#else
-#define JNI_ENV_ARG(x,y) x, y
-#define JNI_ENV_PTR(x) (*x)
-#endif
-
-#endif
#define PASSED 0
#define STATUS_FAILED 2
@@ -60,9 +47,9 @@
jmethodID cid;
jthread res;
- thrClass = JNI_ENV_PTR(env)->FindClass(JNI_ENV_ARG(env, "java/lang/Thread"));
- cid = JNI_ENV_PTR(env)->GetMethodID(JNI_ENV_ARG(env, thrClass), "<init>", "()V");
- res = JNI_ENV_PTR(env)->NewObject(JNI_ENV_ARG(env, thrClass), cid);
+ thrClass = env->FindClass("java/lang/Thread");
+ cid = env->GetMethodID(thrClass, "<init>", "()V");
+ res = env->NewObject(thrClass, cid);
return res;
}
@@ -74,8 +61,7 @@
result = STATUS_FAILED;
}
- JNI_ENV_PTR(jvm_ins)->GetEnv(JNI_ENV_ARG(jvm_ins, (void **) &env),
- JNI_VERSION_1_2);
+ jvm_ins->GetEnv((void **) &env, JNI_VERSION_1_2);
if (jni_env != env) {
printf("(agent_start) JNI envs don't match\n");
result = STATUS_FAILED;
@@ -140,8 +126,7 @@
}
jvm_ins = jvm;
- res = JNI_ENV_PTR(jvm)->GetEnv(JNI_ENV_ARG(jvm, (void **) &jvmti),
- JVMTI_VERSION_1_1);
+ res = jvm->GetEnv((void **) &jvmti, JVMTI_VERSION_1_1);
if (res != JNI_OK || jvmti == NULL) {
printf("Wrong result of a valid call to GetEnv!\n");
return JNI_ERR;
@@ -179,6 +164,4 @@
return result;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/clsldrclss00x/clsldrclss00x.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/clsldrclss00x/clsldrclss00x.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,21 +27,8 @@
#include "agent_common.h"
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
-
-#ifndef JNI_ENV_ARG
-#ifdef __cplusplus
-#define JNI_ENV_ARG(x, y) y
-#define JNI_ENV_PTR(x) x
-#else
-#define JNI_ENV_ARG(x,y) x, y
-#define JNI_ENV_PTR(x) (*x)
-#endif
-
-#endif
#define PASSED 0
#define STATUS_FAILED 2
@@ -68,8 +55,7 @@
printdump = JNI_TRUE;
}
- res = JNI_ENV_PTR(jvm)->GetEnv(JNI_ENV_ARG(jvm, (void **) &jvmti),
- JVMTI_VERSION_1_1);
+ res = jvm->GetEnv((void **) &jvmti, JVMTI_VERSION_1_1);
if (res != JNI_OK || jvmti == NULL) {
printf("Wrong result of a valid call to GetEnv!\n");
return JNI_ERR;
@@ -188,6 +174,4 @@
return result;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/events/redefineCFLH/JvmtiTest/JvmtiTest.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/events/redefineCFLH/JvmtiTest/JvmtiTest.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,21 +27,8 @@
#include "agent_common.h"
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
-
-#ifndef JNI_ENV_ARG
-#ifdef __cplusplus
-#define JNI_ENV_ARG(x, y) y
-#define JNI_ENV_PTR(x) x
-#else
-#define JNI_ENV_ARG(x,y) x, y
-#define JNI_ENV_PTR(x) (*x)
-#endif
-
-#endif
#define STATUS_FAILED 2
#define PASSED 0
@@ -123,8 +110,7 @@
printdump = JNI_TRUE;
}
- if ((res = JNI_ENV_PTR(vm)->GetEnv(JNI_ENV_ARG(vm, (void **) &jvmti),
- JVMTI_VERSION_1_1)) != JNI_OK) {
+ if ((res = vm->GetEnv((void **) &jvmti, JVMTI_VERSION_1_1)) != JNI_OK) {
printf("%s: Failed to call GetEnv: error=%d\n", __FILE__, res);
return JNI_ERR;
}
@@ -197,11 +183,8 @@
/* filling the structure jvmtiClassDefinition */
classDef.klass = redefCls;
- classDef.class_byte_count =
- JNI_ENV_PTR(env)->GetArrayLength(JNI_ENV_ARG(env, classBytes));
- classDef.class_bytes = (unsigned char *)
- JNI_ENV_PTR(env)->GetByteArrayElements(JNI_ENV_ARG(env, classBytes),
- NULL);
+ classDef.class_byte_count = env->GetArrayLength(classBytes);
+ classDef.class_bytes = (unsigned char *) env->GetByteArrayElements(classBytes, NULL);
if (fl == 2) {
printf(">>>>>>>> Invoke RedefineClasses():\n");
@@ -226,6 +209,4 @@
return result;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/extmech/extmech.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/extmech/extmech.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -26,9 +26,7 @@
#include "jvmti.h"
#include "agent_common.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define PASSED 0
#define STATUS_FAILED 2
@@ -227,6 +225,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/functions/AddToBootstrapClassLoaderSearch/JvmtiTest/JvmtiTest.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/functions/AddToBootstrapClassLoaderSearch/JvmtiTest/JvmtiTest.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,27 +27,7 @@
#include "jvmti.h"
#include "agent_common.h"
-#ifdef __cplusplus
extern "C" {
-#endif
-
-#ifndef JNI_ENV_ARG
-
-#ifdef __cplusplus
-#define JNI_ENV_ARG(x, y) y
-#define JNI_ENV_ARG1(x)
-#define JNI_ENV_PTR(x) x
-#else
-#define JNI_ENV_ARG(x,y) x, y
-#define JNI_ENV_ARG1(x) x
-#define JNI_ENV_PTR(x) (*x)
-#endif
-
-#endif
-
-#define JVMTI_ENV_ARG JNI_ENV_ARG
-#define JVMTI_ENV_ARG1 JNI_ENV_ARG1
-#define JVMTI_ENV_PTR JNI_ENV_PTR
#define JVMTI_ERROR_CHECK(str,res) if ( res != JVMTI_ERROR_NONE) { printf(str); printf("%d\n",res); return res;}
#define JVMTI_ERROR_CHECK_EXPECTED_ERROR(str,res,err) if ( res != err) { printf(str); printf("unexpected error %d\n",res); return res;}
@@ -92,7 +72,7 @@
debug_printf("VMStart event done\n");
- res = JVMTI_ENV_PTR(jvmti)->AddToBootstrapClassLoaderSearch(JVMTI_ENV_ARG(jvmti, segment));
+ res = jvmti->AddToBootstrapClassLoaderSearch(segment);
JVMTI_ERROR_CHECK_EXPECTED_ERROR_VOID("VMStart: AddToBootstrapClassLoaderSearch returned error ",
res, JVMTI_ERROR_WRONG_PHASE);
}
@@ -106,7 +86,7 @@
debug_printf("VMDeath event done\n");
- res = JVMTI_ENV_PTR(jvmti)->AddToBootstrapClassLoaderSearch(JVMTI_ENV_ARG(jvmti, segment));
+ res = jvmti->AddToBootstrapClassLoaderSearch(segment);
/* In the live phase, anything other than an existing JAR file is an invalid path.
So, check that JVMTI_ERROR_ILLEGAL_ARGUMENT error is thrown.
*/
@@ -122,7 +102,7 @@
debug_printf("VMInit event done\n");
- res = JVMTI_ENV_PTR(jvmti)->AddToBootstrapClassLoaderSearch(JVMTI_ENV_ARG(jvmti, segment));
+ res = jvmti->AddToBootstrapClassLoaderSearch(segment);
/* In the live phase, anything other than an existing JAR file is an invalid path.
So, check that JVMTI_ERROR_ILLEGAL_ARGUMENT error is thrown.
*/
@@ -140,13 +120,13 @@
jvmtiPhase phase;
jvmtiError res;
- res = JVMTI_ENV_PTR(jvmti)->GetPhase(JVMTI_ENV_ARG(jvmti, &phase));
+ res = jvmti->GetPhase(&phase);
JVMTI_ERROR_CHECK_VOID("GetPhase returned error", res);
if (phase == JVMTI_PHASE_PRIMORDIAL) {
debug_printf("Primordial phase\n");
- res = JVMTI_ENV_PTR(jvmti)->AddToBootstrapClassLoaderSearch(JVMTI_ENV_ARG(jvmti, segment));
+ res = jvmti->AddToBootstrapClassLoaderSearch(segment);
JVMTI_ERROR_CHECK_EXPECTED_ERROR_VOID("Primordial: AddToBootstrapClassLoaderSearch returned error ",
res, JVMTI_ERROR_WRONG_PHASE);
}
@@ -215,44 +195,43 @@
if (idx != NULL) *idx = 0;
}
- res = JNI_ENV_PTR(jvm)->
- GetEnv(JNI_ENV_ARG(jvm, (void **) &jvmti), JVMTI_VERSION_1_1);
+ res = jvm->GetEnv((void **) &jvmti, JVMTI_VERSION_1_1);
if (res < 0) {
printf("Wrong result of a valid call to GetEnv!\n");
return JNI_ERR;
}
/* Add capabilities */
- res = JVMTI_ENV_PTR(jvmti)->GetPotentialCapabilities(JVMTI_ENV_ARG(jvmti, &jvmti_caps));
+ res = jvmti->GetPotentialCapabilities(&jvmti_caps);
JVMTI_ERROR_CHECK("GetPotentialCapabilities returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->AddCapabilities(JVMTI_ENV_ARG(jvmti, &jvmti_caps));
+ res = jvmti->AddCapabilities(&jvmti_caps);
JVMTI_ERROR_CHECK("GetAddCapabilities returned error", res);
/* Enable events */
init_callbacks();
- res = JVMTI_ENV_PTR(jvmti)->SetEventCallbacks(JVMTI_ENV_ARG(jvmti, &callbacks), sizeof(callbacks));
+ res = jvmti->SetEventCallbacks(&callbacks, sizeof(callbacks));
JVMTI_ERROR_CHECK("SetEventCallbacks returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->SetEventNotificationMode(JVMTI_ENV_ARG(jvmti,JVMTI_ENABLE),JVMTI_EVENT_VM_START,NULL);
+ res = jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_START, NULL);
JVMTI_ERROR_CHECK("SetEventNotificationMode for VM_START returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->SetEventNotificationMode(JVMTI_ENV_ARG(jvmti,JVMTI_ENABLE),JVMTI_EVENT_VM_INIT,NULL);
+ res = jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_INIT, NULL);
JVMTI_ERROR_CHECK("SetEventNotificationMode for VM_INIT returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->SetEventNotificationMode(JVMTI_ENV_ARG(jvmti,JVMTI_ENABLE),JVMTI_EVENT_NATIVE_METHOD_BIND,NULL);
+ res = jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_NATIVE_METHOD_BIND, NULL);
JVMTI_ERROR_CHECK("SetEventNotificationMode for NATIVE_METHOD_BIND returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->SetEventNotificationMode(JVMTI_ENV_ARG(jvmti,JVMTI_ENABLE),JVMTI_EVENT_VM_DEATH,NULL);
+ res = jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_DEATH, NULL);
JVMTI_ERROR_CHECK("SetEventNotificationMode for VM_DEATH returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->SetEventNotificationMode(JVMTI_ENV_ARG(jvmti,JVMTI_ENABLE),JVMTI_EVENT_CLASS_FILE_LOAD_HOOK,NULL);
+ res = jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_CLASS_FILE_LOAD_HOOK, NULL);
JVMTI_ERROR_CHECK("SetEventNotificationMode CLASS_FILE_LOAD_HOOK returned error", res);
strcat(segment, "/newclass");
debug_printf("segment=%s\n", segment);
- res = JVMTI_ENV_PTR(jvmti)->AddToBootstrapClassLoaderSearch(JVMTI_ENV_ARG(jvmti, segment));
+ res = jvmti->AddToBootstrapClassLoaderSearch(segment);
JVMTI_ERROR_CHECK("AddToBootStrapClassLoaderSearch returned error", res);
return JNI_OK;
@@ -269,6 +248,4 @@
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/functions/Dispose/JvmtiTest/JvmtiTest.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/functions/Dispose/JvmtiTest/JvmtiTest.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -26,27 +26,8 @@
#include "jvmti.h"
#include "agent_common.h"
-#ifdef __cplusplus
extern "C" {
-#endif
-
-#ifndef JNI_ENV_ARG
-#ifdef __cplusplus
-#define JNI_ENV_ARG(x, y) y
-#define JNI_ENV_ARG1(x)
-#define JNI_ENV_PTR(x) x
-#else
-#define JNI_ENV_ARG(x,y) x, y
-#define JNI_ENV_ARG1(x) x
-#define JNI_ENV_PTR(x) (*x)
-#endif
-
-#endif
-
-#define JVMTI_ENV_ARG JNI_ENV_ARG
-#define JVMTI_ENV_ARG1 JNI_ENV_ARG1
-#define JVMTI_ENV_PTR JNI_ENV_PTR
#define JVMTI_ERROR_CHECK(str,res) if ( res != JVMTI_ERROR_NONE) { printf(str); printf(" %d\n",res); return res;}
#define JVMTI_ERROR_CHECK_EXPECTED_ERROR(str,res,err) if ( res != err) { printf(str); printf("unexpected error %d\n",res); return res;}
@@ -80,7 +61,7 @@
void JNICALL vmInit(jvmtiEnv *jvmti_env, JNIEnv *env, jthread thread) {
jvmtiError res;
debug_printf("VMInit event received\n");
- res = JVMTI_ENV_PTR(jvmti_env)->DisposeEnvironment(JVMTI_ENV_ARG1(jvmti_env));
+ res = jvmti_env->DisposeEnvironment();
JVMTI_ERROR_CHECK_VOID("DisposeEnvironment returned error", res);
}
@@ -115,8 +96,7 @@
}
}
- res = JNI_ENV_PTR(jvm)->
- GetEnv(JNI_ENV_ARG(jvm, (void **) &jvmti), JVMTI_VERSION_1_1);
+ res = jvm->GetEnv((void **) &jvmti, JVMTI_VERSION_1_1);
if (res < 0) {
printf("Wrong result of a valid call to GetEnv!\n");
return JNI_ERR;
@@ -124,34 +104,33 @@
/* Enable event call backs. */
init_callbacks();
- res = JVMTI_ENV_PTR(jvmti)->SetEventCallbacks(JVMTI_ENV_ARG(jvmti, &callbacks), sizeof(callbacks));
+ res = jvmti->SetEventCallbacks(&callbacks, sizeof(callbacks));
JVMTI_ERROR_CHECK("SetEventCallbacks returned error", res);
/* Add capabilities */
- res = JVMTI_ENV_PTR(jvmti)->GetPotentialCapabilities(JVMTI_ENV_ARG(jvmti, &jvmti_caps));
+ res = jvmti->GetPotentialCapabilities(&jvmti_caps);
JVMTI_ERROR_CHECK("GetPotentialCapabilities returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->AddCapabilities(JVMTI_ENV_ARG(jvmti, &jvmti_caps));
+ res = jvmti->AddCapabilities(&jvmti_caps);
JVMTI_ERROR_CHECK("GetAddCapabilities returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->SetEventNotificationMode(JVMTI_ENV_ARG(jvmti,JVMTI_ENABLE),JVMTI_EVENT_VM_INIT,NULL);
+ res = jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_INIT, NULL);
JVMTI_ERROR_CHECK("SetEventNotificationMode for VM_INIT returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->GetSystemProperties(JVMTI_ENV_ARG(jvmti, &count), &properties);
+ res = jvmti->GetSystemProperties(&count, &properties);
JVMTI_ERROR_CHECK("GetSystemProperties returned error", res);
for (i=0; i< count; i++) {
char *value;
- res = JVMTI_ENV_PTR(jvmti)->GetSystemProperty(JVMTI_ENV_ARG(jvmti, (const char *)properties[i]), &value);
+ res = jvmti->GetSystemProperty((const char *) properties[i], &value);
JVMTI_ERROR_CHECK("GetSystemProperty returned error", res);
debug_printf(" %s %s \n", properties[i], value);
- res = JVMTI_ENV_PTR(jvmti)->SetSystemProperty(JVMTI_ENV_ARG(jvmti, (const char *)properties[i]), value);
+ res = jvmti->SetSystemProperty((const char *) properties[i], value);
debug_printf("SetSystemProperty returned error %d\n", res);
-
}
return JNI_OK;
@@ -164,6 +143,4 @@
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/functions/ForceGarbageCollection/gc/gc.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/functions/ForceGarbageCollection/gc/gc.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -26,27 +26,8 @@
#include "jvmti.h"
#include "agent_common.h"
-#ifdef __cplusplus
extern "C" {
-#endif
-
-#ifndef JNI_ENV_ARG
-#ifdef __cplusplus
-#define JNI_ENV_ARG(x, y) y
-#define JNI_ENV_ARG1(x)
-#define JNI_ENV_PTR(x) x
-#else
-#define JNI_ENV_ARG(x,y) x, y
-#define JNI_ENV_ARG1(x) x
-#define JNI_ENV_PTR(x) (*x)
-#endif
-
-#endif
-
-#define JVMTI_ENV_ARG JNI_ENV_ARG
-#define JVMTI_ENV_ARG1 JNI_ENV_ARG1
-#define JVMTI_ENV_PTR JNI_ENV_PTR
#define JVMTI_ERROR_CHECK(str,res) if ( res != JVMTI_ERROR_NONE) { printf(str); printf("%d\n",res); return res;}
#define JVMTI_ERROR_CHECK_VOID(str,res) if ( res != JVMTI_ERROR_NONE) { printf(str); printf("%d\n",res); iGlobalStatus = 2; }
@@ -130,40 +111,39 @@
}
}
- res = JNI_ENV_PTR(jvm)->
- GetEnv(JNI_ENV_ARG(jvm, (void **) &jvmti), JVMTI_VERSION_1_1);
+ res = jvm->GetEnv((void **) &jvmti, JVMTI_VERSION_1_1);
if (res < 0) {
debug_printf("Wrong result of a valid call to GetEnv!\n");
return JNI_ERR;
}
/* Create data access lock */
- res = JVMTI_ENV_PTR(jvmti)->CreateRawMonitor(JVMTI_ENV_ARG(jvmti,"_access_lock"),&access_lock);
+ res = jvmti->CreateRawMonitor("_access_lock", &access_lock);
JVMTI_ERROR_CHECK("RawMonitorEnter in monitor_contended_entered failed with error code ", res);
/* Add capabilities */
- res = JVMTI_ENV_PTR(jvmti)->GetPotentialCapabilities(JVMTI_ENV_ARG(jvmti, &jvmti_caps));
+ res = jvmti->GetPotentialCapabilities(&jvmti_caps);
JVMTI_ERROR_CHECK("SetEventCallbacks returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->AddCapabilities(JVMTI_ENV_ARG(jvmti, &jvmti_caps));
+ res = jvmti->AddCapabilities(&jvmti_caps);
JVMTI_ERROR_CHECK("SetEventCallbacks returned error", res);
/* Enable events */
init_callbacks();
- res = JVMTI_ENV_PTR(jvmti)->SetEventCallbacks(JVMTI_ENV_ARG(jvmti, &callbacks), sizeof(callbacks));
+ res = jvmti->SetEventCallbacks(&callbacks, sizeof(callbacks));
JVMTI_ERROR_CHECK("SetEventCallbacks returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->SetEventNotificationMode(JVMTI_ENV_ARG(jvmti,JVMTI_ENABLE),JVMTI_EVENT_VM_INIT,NULL);
+ res = jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_INIT, NULL);
JVMTI_ERROR_CHECK("SetEventNotificationMode for VM_INIT returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->SetEventNotificationMode(JVMTI_ENV_ARG(jvmti,JVMTI_ENABLE),JVMTI_EVENT_VM_DEATH,NULL);
+ res = jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_DEATH, NULL);
JVMTI_ERROR_CHECK("SetEventNotificationMode for vm death event returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->SetEventNotificationMode(JVMTI_ENV_ARG(jvmti,JVMTI_ENABLE),JVMTI_EVENT_GARBAGE_COLLECTION_START,NULL);
+ res = jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_GARBAGE_COLLECTION_START, NULL);
JVMTI_ERROR_CHECK("SetEventNotificationMode for gc start returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->SetEventNotificationMode(JVMTI_ENV_ARG(jvmti,JVMTI_ENABLE),JVMTI_EVENT_GARBAGE_COLLECTION_FINISH,NULL);
+ res = jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_GARBAGE_COLLECTION_FINISH, NULL);
JVMTI_ERROR_CHECK("SetEventNotificationMode for gc finish returned error", res);
return JNI_OK;
@@ -199,7 +179,7 @@
jvmtiError ret;
debug_printf("jvmti Force gc requested \n");
- ret = JVMTI_ENV_PTR(jvmti)->ForceGarbageCollection(JVMTI_ENV_ARG1(jvmti));
+ ret = jvmti->ForceGarbageCollection();
if (ret != JVMTI_ERROR_NONE) {
printf("Error: ForceGarbageCollection %d \n", ret);
@@ -207,6 +187,4 @@
}
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/functions/environment/JvmtiTest/JvmtiTest.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/functions/environment/JvmtiTest/JvmtiTest.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -26,27 +26,8 @@
#include "jvmti.h"
#include "agent_common.h"
-#ifdef __cplusplus
extern "C" {
-#endif
-
-#ifndef JNI_ENV_ARG
-#ifdef __cplusplus
-#define JNI_ENV_ARG(x, y) y
-#define JNI_ENV_ARG1(x)
-#define JNI_ENV_PTR(x) x
-#else
-#define JNI_ENV_ARG(x,y) x, y
-#define JNI_ENV_ARG1(x) x
-#define JNI_ENV_PTR(x) (*x)
-#endif
-
-#endif
-
-#define JVMTI_ENV_ARG JNI_ENV_ARG
-#define JVMTI_ENV_ARG1 JNI_ENV_ARG1
-#define JVMTI_ENV_PTR JNI_ENV_PTR
#define JVMTI_ERROR_CHECK(str,res) if ( res != JVMTI_ERROR_NONE) { printf(str); printf("%d\n",res); return res;}
#define JVMTI_ERROR_CHECK_EXPECTED_ERROR(str,res,err) if ( res != err) { printf(str); printf("unexpected error %d\n",res); return res;}
@@ -99,8 +80,7 @@
}
}
- res = JNI_ENV_PTR(jvm)->
- GetEnv(JNI_ENV_ARG(jvm, (void **) &jvmti), JVMTI_VERSION_1_1);
+ res = jvm->GetEnv((void **) &jvmti, JVMTI_VERSION_1_1);
if (res < 0) {
debug_printf("Wrong result of a valid call to GetEnv!\n");
return JNI_ERR;
@@ -108,26 +88,26 @@
/* Add capabilities */
- res = JVMTI_ENV_PTR(jvmti)->GetPotentialCapabilities(JVMTI_ENV_ARG(jvmti, &jvmti_caps));
+ res = jvmti->GetPotentialCapabilities(&jvmti_caps);
JVMTI_ERROR_CHECK("GetPotentialCapabilities returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->AddCapabilities(JVMTI_ENV_ARG(jvmti, &jvmti_caps));
+ res = jvmti->AddCapabilities(&jvmti_caps);
JVMTI_ERROR_CHECK("GetAddCapabilities returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->GetSystemProperties(JVMTI_ENV_ARG(jvmti, &count), &properties);
+ res = jvmti->GetSystemProperties(&count, &properties);
JVMTI_ERROR_CHECK("GetSystemProperties returned error", res);
for (i=0; i< count; i++) {
char *value;
- res = JVMTI_ENV_PTR(jvmti)->GetSystemProperty(JVMTI_ENV_ARG(jvmti, (const char *)properties[i]), &value);
+ res = jvmti->GetSystemProperty((const char *) properties[i], &value);
JVMTI_ERROR_CHECK("GetSystemProperty returned error", res);
debug_printf(" %s %s \n", properties[i], value);
/* Only writeable properties returns JVMTI_ERROR_NONE. */
- res = JVMTI_ENV_PTR(jvmti)->SetSystemProperty(JVMTI_ENV_ARG(jvmti, (const char *)properties[i]), value);
+ res = jvmti->SetSystemProperty((const char *) properties[i], value);
debug_printf("SetSystemProperty returned error %d\n", res);
}
@@ -142,6 +122,4 @@
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/functions/nosuspendMonitorInfo/JvmtiTest/JvmtiTest.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/functions/nosuspendMonitorInfo/JvmtiTest/JvmtiTest.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -26,27 +26,8 @@
#include "jvmti.h"
#include "agent_common.h"
-#ifdef __cplusplus
extern "C" {
-#endif
-
-#ifndef JNI_ENV_ARG
-#ifdef __cplusplus
-#define JNI_ENV_ARG(x, y) y
-#define JNI_ENV_ARG1(x)
-#define JNI_ENV_PTR(x) x
-#else
-#define JNI_ENV_ARG(x,y) x, y
-#define JNI_ENV_ARG1(x) x
-#define JNI_ENV_PTR(x) (*x)
-#endif
-
-#endif
-
-#define JVMTI_ENV_ARG JNI_ENV_ARG
-#define JVMTI_ENV_ARG1 JNI_ENV_ARG1
-#define JVMTI_ENV_PTR JNI_ENV_PTR
#define JVMTI_ERROR_CHECK(str,res) if ( res != JVMTI_ERROR_NONE) { printf(str); printf("%d\n",res); return res;}
#define JVMTI_ERROR_CHECK_EXPECTED_ERROR(str,res,err) if ( res != err) { printf(str); printf("unexpected error %d\n",res); return res;}
@@ -134,8 +115,7 @@
}
}
- res = JNI_ENV_PTR(jvm)->
- GetEnv(JNI_ENV_ARG(jvm, (void **) &jvmti), JVMTI_VERSION_1_1);
+ res = jvm->GetEnv((void **) &jvmti, JVMTI_VERSION_1_1);
if (res < 0) {
debug_printf("Wrong result of a valid call to GetEnv!\n");
return JNI_ERR;
@@ -143,21 +123,21 @@
/* Add capabilities */
- res = JVMTI_ENV_PTR(jvmti)->GetPotentialCapabilities(JVMTI_ENV_ARG(jvmti, &jvmti_caps));
+ res = jvmti->GetPotentialCapabilities(&jvmti_caps);
JVMTI_ERROR_CHECK("GetPotentialCapabilities returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->AddCapabilities(JVMTI_ENV_ARG(jvmti, &jvmti_caps));
+ res = jvmti->AddCapabilities(&jvmti_caps);
JVMTI_ERROR_CHECK("GetPotentialCapabilities returned error", res);
/* Enable events */
init_callbacks();
- res = JVMTI_ENV_PTR(jvmti)->SetEventCallbacks(JVMTI_ENV_ARG(jvmti, &callbacks), sizeof(callbacks));
+ res = jvmti->SetEventCallbacks(&callbacks, sizeof(callbacks));
JVMTI_ERROR_CHECK("SetEventCallbacks returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->SetEventNotificationMode(JVMTI_ENV_ARG(jvmti,JVMTI_ENABLE),JVMTI_EVENT_VM_INIT,NULL);
+ res = jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_INIT, NULL);
JVMTI_ERROR_CHECK("SetEventNotificationMode for VM_INIT returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->SetEventNotificationMode(JVMTI_ENV_ARG(jvmti,JVMTI_ENABLE),JVMTI_EVENT_VM_DEATH,NULL);
+ res = jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_DEATH, NULL);
JVMTI_ERROR_CHECK("SetEventNotificationMode for vm death event returned error", res);
return JNI_OK;
@@ -179,7 +159,7 @@
debug_printf(" jvmti GetMonitorInfo \n");
- ret = JVMTI_ENV_PTR(jvmti)->GetOwnedMonitorInfo(JVMTI_ENV_ARG(jvmti, thr), &count , &owned_monitor);
+ ret = jvmti->GetOwnedMonitorInfo(thr, &count, &owned_monitor);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: GetMonitorInfo %d \n", ret);
iGlobalStatus = 2;
@@ -190,9 +170,9 @@
iGlobalStatus = 2;
}
- if (expected_count !=0 ) {
+ if (expected_count !=0) {
- ret = JVMTI_ENV_PTR(jvmti)->GetCurrentContendedMonitor(JVMTI_ENV_ARG(jvmti, thr), owned_monitor);
+ ret = jvmti->GetCurrentContendedMonitor(thr, owned_monitor);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: GetContendedMonitorInfo %d \n", ret);
iGlobalStatus = 2;
@@ -201,6 +181,4 @@
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/functions/nosuspendStackTrace/JvmtiTest/JvmtiTest.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/functions/nosuspendStackTrace/JvmtiTest/JvmtiTest.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -26,27 +26,7 @@
#include "jvmti.h"
#include "agent_common.h"
-#ifdef __cplusplus
extern "C" {
-#endif
-
-#ifndef JNI_ENV_ARG
-
-#ifdef __cplusplus
-#define JNI_ENV_ARG(x, y) y
-#define JNI_ENV_ARG1(x)
-#define JNI_ENV_PTR(x) x
-#else
-#define JNI_ENV_ARG(x,y) x, y
-#define JNI_ENV_ARG1(x) x
-#define JNI_ENV_PTR(x) (*x)
-#endif
-
-#endif
-
-#define JVMTI_ENV_ARG JNI_ENV_ARG
-#define JVMTI_ENV_ARG1 JNI_ENV_ARG1
-#define JVMTI_ENV_PTR JNI_ENV_PTR
#define JVMTI_ERROR_CHECK(str,res) if ( res != JVMTI_ERROR_NONE) { printf(str); printf("%d\n",res); return res;}
#define JVMTI_ERROR_CHECK_EXPECTED_ERROR(str,res,err) if ( res != err) { printf(str); printf("unexpected error %d\n",res); return res;}
@@ -134,8 +114,7 @@
}
}
- res = JNI_ENV_PTR(jvm)->
- GetEnv(JNI_ENV_ARG(jvm, (void **) &jvmti), JVMTI_VERSION_1_1);
+ res = jvm->GetEnv((void **) &jvmti, JVMTI_VERSION_1_1);
if (res < 0) {
debug_printf("Wrong result of a valid call to GetEnv!\n");
return JNI_ERR;
@@ -143,21 +122,21 @@
/* Add capabilities */
- res = JVMTI_ENV_PTR(jvmti)->GetPotentialCapabilities(JVMTI_ENV_ARG(jvmti, &jvmti_caps));
+ res = jvmti->GetPotentialCapabilities(&jvmti_caps);
JVMTI_ERROR_CHECK("GetPotentialCapabilities returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->AddCapabilities(JVMTI_ENV_ARG(jvmti, &jvmti_caps));
+ res = jvmti->AddCapabilities(&jvmti_caps);
JVMTI_ERROR_CHECK("GetPotentialCapabilities returned error", res);
/* Enable events */
init_callbacks();
- res = JVMTI_ENV_PTR(jvmti)->SetEventCallbacks(JVMTI_ENV_ARG(jvmti, &callbacks), sizeof(callbacks));
+ res = jvmti->SetEventCallbacks(&callbacks, sizeof(callbacks));
JVMTI_ERROR_CHECK("SetEventCallbacks returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->SetEventNotificationMode(JVMTI_ENV_ARG(jvmti,JVMTI_ENABLE),JVMTI_EVENT_VM_INIT,NULL);
+ res = jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_INIT, NULL);
JVMTI_ERROR_CHECK("SetEventNotificationMode for VM_INIT returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->SetEventNotificationMode(JVMTI_ENV_ARG(jvmti,JVMTI_ENABLE),JVMTI_EVENT_VM_DEATH,NULL);
+ res = jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_DEATH, NULL);
JVMTI_ERROR_CHECK("SetEventNotificationMode for vm death event returned error", res);
return JNI_OK;
@@ -177,7 +156,7 @@
sprintf(sz, "Rawmonitor-%d",i);
debug_printf("jvmti create raw monitor \n");
- ret = JVMTI_ENV_PTR(jvmti)->CreateRawMonitor(JVMTI_ENV_ARG(jvmti, sz), &jraw_monitor[i]);
+ ret = jvmti->CreateRawMonitor(sz, &jraw_monitor[i]);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: ForceGarbageCollection %d \n", ret);
@@ -190,7 +169,7 @@
jvmtiError ret;
debug_printf("jvmti Raw monitor enter \n");
- ret = JVMTI_ENV_PTR(jvmti)->RawMonitorEnter(JVMTI_ENV_ARG(jvmti, jraw_monitor[i]));
+ ret = jvmti->RawMonitorEnter(jraw_monitor[i]);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: Raw monitor enter %d \n", ret);
@@ -203,7 +182,7 @@
jvmtiError ret;
debug_printf("jvmti raw monitor exit \n");
- ret = JVMTI_ENV_PTR(jvmti)->RawMonitorExit(JVMTI_ENV_ARG(jvmti, jraw_monitor[i]));
+ ret = jvmti->RawMonitorExit(jraw_monitor[i]);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: RawMonitorExit %d \n", ret);
@@ -216,7 +195,7 @@
jvmtiError ret;
debug_printf("jvmti RawMonitorWait \n");
- ret = JVMTI_ENV_PTR(jvmti)->RawMonitorWait(JVMTI_ENV_ARG(jvmti,jraw_monitor[i]),-1);
+ ret = jvmti->RawMonitorWait(jraw_monitor[i], -1);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: RawMonitorWait %d \n", ret);
@@ -229,7 +208,7 @@
jvmtiError ret;
debug_printf("jvmti RawMonitorNotify \n");
- ret = JVMTI_ENV_PTR(jvmti)->RawMonitorNotifyAll(JVMTI_ENV_ARG(jvmti,jraw_monitor[i]));
+ ret = jvmti->RawMonitorNotifyAll(jraw_monitor[i]);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: RawMonitorNotify %d \n", ret);
@@ -243,7 +222,7 @@
jint count;
debug_printf("jvmti GetFrameCount \n");
- ret = JVMTI_ENV_PTR(jvmti)->GetFrameCount(JVMTI_ENV_ARG(jvmti, (jthread)thr), &count);
+ ret = jvmti->GetFrameCount((jthread) thr, &count);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: GetFrameCount returned %d \n", ret);
iGlobalStatus = 2;
@@ -266,14 +245,14 @@
debug_printf("jvmti GetStackTrace \n");
- ret = JVMTI_ENV_PTR(jvmti)->Allocate(JVMTI_ENV_ARG(jvmti, sizeof(jvmtiFrameInfo) * count), (unsigned char**)&stack_buffer);
+ ret = jvmti->Allocate(sizeof(jvmtiFrameInfo) * count, (unsigned char**)&stack_buffer);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: Allocate failed with %d \n", ret);
iGlobalStatus = 2;
}
- ret = JVMTI_ENV_PTR(jvmti)->GetStackTrace(JVMTI_ENV_ARG(jvmti, thr), 0, count , stack_buffer, &count);
+ ret = jvmti->GetStackTrace(thr, 0, count, stack_buffer, &count);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: GetStackTrace %d \n", ret);
@@ -283,21 +262,21 @@
debug_printf(" Java Stack trace ---\n");
for (i = 0; i < count; i++) {
- ret = JVMTI_ENV_PTR(jvmti)->GetMethodDeclaringClass(JVMTI_ENV_ARG(jvmti, stack_buffer[i].method), &klass);
+ ret = jvmti->GetMethodDeclaringClass(stack_buffer[i].method, &klass);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: GetMethodDeclaringClass %d \n", ret);
iGlobalStatus = 2;
return;
}
- ret = JVMTI_ENV_PTR(jvmti)->GetClassSignature(JVMTI_ENV_ARG(jvmti, klass), &clname, &generic);
+ ret = jvmti->GetClassSignature(klass, &clname, &generic);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: GetMethodDeclaringClass %d \n", ret);
iGlobalStatus = 2;
return;
}
- ret = JVMTI_ENV_PTR(jvmti)->GetMethodName(JVMTI_ENV_ARG(jvmti, stack_buffer[i].method), &mname, &signature, &generic);
+ ret = jvmti->GetMethodName(stack_buffer[i].method, &mname, &signature, &generic);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: GetMethodDeclaringClass %d \n", ret);
iGlobalStatus = 2;
@@ -310,7 +289,7 @@
}
- ret = JVMTI_ENV_PTR(jvmti)->Deallocate(JVMTI_ENV_ARG(jvmti, (unsigned char *)stack_buffer));
+ ret = jvmti->Deallocate((unsigned char *) stack_buffer);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: Deallocate failed with %d \n", ret);
iGlobalStatus = 2;
@@ -324,6 +303,4 @@
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/functions/rawmonitor/rawmonitor.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/functions/rawmonitor/rawmonitor.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -48,27 +48,8 @@
#include "jvmti.h"
#include "agent_common.h"
-#ifdef __cplusplus
extern "C" {
-#endif
-
-#ifndef JNI_ENV_ARG
-#ifdef __cplusplus
-#define JNI_ENV_ARG(x, y) y
-#define JNI_ENV_ARG1(x)
-#define JNI_ENV_PTR(x) x
-#else
-#define JNI_ENV_ARG(x,y) x, y
-#define JNI_ENV_ARG1(x) x
-#define JNI_ENV_PTR(x) (*x)
-#endif
-
-#endif
-
-#define JVMTI_ENV_ARG JNI_ENV_ARG
-#define JVMTI_ENV_ARG1 JNI_ENV_ARG1
-#define JVMTI_ENV_PTR JNI_ENV_PTR
#define JVMTI_ERROR_CHECK(str,res) if ( res != JVMTI_ERROR_NONE) { printf(str); printf(" %d\n",res); return res;}
#define JVMTI_ERROR_CHECK_EXPECTED_ERROR(str,res,err) if ( res != err) { printf(str); printf(" unexpected error %d\n",res); return res;}
@@ -108,9 +89,9 @@
void JNICALL vmStart(jvmtiEnv *jvmti_env, JNIEnv *env) {
jvmtiError res;
- res = JVMTI_ENV_PTR(jvmti)->GetCurrentThread(JVMTI_ENV_ARG(jvmti_env, &main_thread));
+ res = jvmti_env->GetCurrentThread(&main_thread);
JVMTI_ERROR_CHECK_VOID(" JVMTI GetCurrentThread returned error", res);
- main_thread = (jthread)JNI_ENV_PTR(env)->NewGlobalRef(JNI_ENV_ARG(env, main_thread));
+ main_thread = (jthread)env->NewGlobalRef(main_thread);
}
void JNICALL vmInit(jvmtiEnv *jvmti_env, JNIEnv *env, jthread thread) {
@@ -118,9 +99,9 @@
jvmtiError res;
debug_printf("VMInit event done\n");
- res = JVMTI_ENV_PTR(jvmti)->RawMonitorExit(JVMTI_ENV_ARG(jvmti_env, access_lock));
+ res = jvmti_env->RawMonitorExit(access_lock);
JVMTI_ERROR_CHECK_VOID(" Raw monitor exit returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->RawMonitorExit(JVMTI_ENV_ARG(jvmti_env, access_lock));
+ res = jvmti_env->RawMonitorExit(access_lock);
JVMTI_ERROR_CHECK_VOID(" Raw monitor exit returned error", res);
}
@@ -140,17 +121,15 @@
jvmtiError res;
jvmtiPhase phase;
jthread thread;
- jboolean is_main;
- res = JVMTI_ENV_PTR(jvmti)->GetPhase(JVMTI_ENV_ARG(jvmti_env, &phase));
+ res = jvmti_env->GetPhase(&phase);
JVMTI_ERROR_CHECK_VOID(" JVMTI GetPhase returned error", res);
if (phase != JVMTI_PHASE_START) {
return; /* only the start phase is tested */
}
- res = JVMTI_ENV_PTR(jvmti)->GetCurrentThread(JVMTI_ENV_ARG(jvmti_env, &thread));
+ res = jvmti_env->GetCurrentThread(&thread);
JVMTI_ERROR_CHECK_VOID(" JVMTI GetCurrentThread returned error", res);
- is_main = JNI_ENV_PTR(env)->IsSameObject(JNI_ENV_ARG(env, thread), main_thread);
- if (is_main == JNI_FALSE) {
+ if (!env->IsSameObject(thread, main_thread)) {
return; /* only the main thread is tested */
}
@@ -163,21 +142,21 @@
process_once = 0;
/* test not entered raw monitor */
- res = JVMTI_ENV_PTR(jvmti)->RawMonitorExit(JVMTI_ENV_ARG(jvmti_env, access_lock_not_entered));
+ res = jvmti_env->RawMonitorExit(access_lock_not_entered);
JVMTI_ERROR_CHECK_EXPECTED_ERROR_VOID("Raw monitor exit returned error", res,JVMTI_ERROR_NOT_MONITOR_OWNER);
/* release lock in start phase */
- res = JVMTI_ENV_PTR(jvmti)->RawMonitorExit(JVMTI_ENV_ARG(jvmti_env, access_lock));
+ res = jvmti_env->RawMonitorExit(access_lock);
JVMTI_ERROR_CHECK_VOID("Raw monitor exit returned error", res);
/* release lock in start phase */
- res = JVMTI_ENV_PTR(jvmti)->RawMonitorExit(JVMTI_ENV_ARG(jvmti_env, access_lock));
+ res = jvmti_env->RawMonitorExit(access_lock);
JVMTI_ERROR_CHECK_VOID("Raw monitor exit returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->RawMonitorEnter(JVMTI_ENV_ARG(jvmti, access_lock));
+ res = jvmti_env->RawMonitorEnter(access_lock);
JVMTI_ERROR_CHECK_VOID("Raw monitor enter returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->RawMonitorEnter(JVMTI_ENV_ARG(jvmti, access_lock));
+ res = jvmti_env->RawMonitorEnter(access_lock);
JVMTI_ERROR_CHECK_VOID("Raw monitor enter returned error", res);
}
@@ -214,88 +193,87 @@
}
}
- res = JNI_ENV_PTR(jvm)->
- GetEnv(JNI_ENV_ARG(jvm, (void **) &jvmti), JVMTI_VERSION_1_1);
+ res = jvm->GetEnv((void **) &jvmti, JVMTI_VERSION_1_1);
if (res < 0) {
debug_printf("Wrong result of a valid call to GetEnv!\n");
return JNI_ERR;
}
/* Onload phase Create data access lock */
- res = JVMTI_ENV_PTR(jvmti)->CreateRawMonitor(JVMTI_ENV_ARG(jvmti,"_access_lock"),&access_lock);
+ res = jvmti->CreateRawMonitor("_access_lock", &access_lock);
JVMTI_ERROR_CHECK("CreateRawMonitor failed with error code ", res);
- res = JVMTI_ENV_PTR(jvmti)->CreateRawMonitor(JVMTI_ENV_ARG(jvmti,"_access_lock_not_entered"),&access_lock_not_entered);
+ res = jvmti->CreateRawMonitor("_access_lock_not_entered", &access_lock_not_entered);
JVMTI_ERROR_CHECK("CreateRawMonitor failed with error code ", res);
/* Create this raw monitor in onload and it is used in live phase */
- res = JVMTI_ENV_PTR(jvmti)->CreateRawMonitor(JVMTI_ENV_ARG(jvmti,"RawMonitor-0"),&jraw_monitor[0]);
+ res = jvmti->CreateRawMonitor("RawMonitor-0", &jraw_monitor[0]);
JVMTI_ERROR_CHECK("CreateRawMonitor failed with error code ", res);
/* Add capabilities */
- res = JVMTI_ENV_PTR(jvmti)->GetPotentialCapabilities(JVMTI_ENV_ARG(jvmti, &jvmti_caps));
+ res = jvmti->GetPotentialCapabilities(&jvmti_caps);
JVMTI_ERROR_CHECK("GetPotentialCapabilities returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->AddCapabilities(JVMTI_ENV_ARG(jvmti, &jvmti_caps));
+ res = jvmti->AddCapabilities(&jvmti_caps);
JVMTI_ERROR_CHECK("GetPotentialCapabilities returned error", res);
/* Enable events */
init_callbacks();
- res = JVMTI_ENV_PTR(jvmti)->SetEventCallbacks(JVMTI_ENV_ARG(jvmti, &callbacks), sizeof(callbacks));
+ res = jvmti->SetEventCallbacks(&callbacks, sizeof(callbacks));
JVMTI_ERROR_CHECK("SetEventCallbacks returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->SetEventNotificationMode(JVMTI_ENV_ARG(jvmti,JVMTI_ENABLE),JVMTI_EVENT_VM_INIT,NULL);
+ res = jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_INIT, NULL);
JVMTI_ERROR_CHECK("SetEventNotificationMode for VM_INIT returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->SetEventNotificationMode(JVMTI_ENV_ARG(jvmti,JVMTI_ENABLE),JVMTI_EVENT_VM_DEATH,NULL);
+ res = jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_DEATH, NULL);
JVMTI_ERROR_CHECK("SetEventNotificationMode for vm death event returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->SetEventNotificationMode(JVMTI_ENV_ARG(jvmti,JVMTI_ENABLE),JVMTI_EVENT_CLASS_FILE_LOAD_HOOK,NULL);
+ res = jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_CLASS_FILE_LOAD_HOOK, NULL);
JVMTI_ERROR_CHECK("SetEventNotificationMode CLASS_FILE_LOAD_HOOK returned error", res);
/* acquire lock in onload */
- res = JVMTI_ENV_PTR(jvmti)->RawMonitorEnter(JVMTI_ENV_ARG(jvmti, access_lock));
+ res = jvmti->RawMonitorEnter(access_lock);
JVMTI_ERROR_CHECK("Raw monitor enter returned error", res);
/* release lock in onload */
- res = JVMTI_ENV_PTR(jvmti)->RawMonitorExit(JVMTI_ENV_ARG(jvmti, access_lock));
+ res = jvmti->RawMonitorExit(access_lock);
JVMTI_ERROR_CHECK("Raw monitor exit returned error", res);
/* test not entered raw monitor */
- res = JVMTI_ENV_PTR(jvmti)->RawMonitorExit(JVMTI_ENV_ARG(jvmti ,access_lock_not_entered));
+ res = jvmti->RawMonitorExit(access_lock_not_entered);
JVMTI_ERROR_CHECK_EXPECTED_ERROR("Raw monitor exit returned error", res,JVMTI_ERROR_NOT_MONITOR_OWNER);
/* acquire lock in onload */
- res = JVMTI_ENV_PTR(jvmti)->RawMonitorEnter(JVMTI_ENV_ARG(jvmti, access_lock));
+ res = jvmti->RawMonitorEnter(access_lock);
JVMTI_ERROR_CHECK("Raw monitor enter returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->RawMonitorEnter(JVMTI_ENV_ARG(jvmti, access_lock));
+ res = jvmti->RawMonitorEnter(access_lock);
JVMTI_ERROR_CHECK("Raw monitor enter returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->RawMonitorEnter(JVMTI_ENV_ARG(jvmti, access_lock));
+ res = jvmti->RawMonitorEnter(access_lock);
JVMTI_ERROR_CHECK("Raw monitor enter returned error", res);
/* test Destroy raw monitor in onload phase */
- res = JVMTI_ENV_PTR(jvmti)->DestroyRawMonitor(JVMTI_ENV_ARG(jvmti, access_lock));
+ res = jvmti->DestroyRawMonitor(access_lock);
JVMTI_ERROR_CHECK("Destroy Raw monitor returned error", res);
/* Create data access lock in onload and enter in onload phase */
- res = JVMTI_ENV_PTR(jvmti)->CreateRawMonitor(JVMTI_ENV_ARG(jvmti,"_access_lock"),&access_lock);
+ res = jvmti->CreateRawMonitor("_access_lock", &access_lock);
JVMTI_ERROR_CHECK("CreateRawMonitor failed with error code ", res);
- res = JVMTI_ENV_PTR(jvmti)->RawMonitorEnter(JVMTI_ENV_ARG(jvmti, access_lock));
+ res = jvmti->RawMonitorEnter(access_lock);
JVMTI_ERROR_CHECK("Raw monitor enter returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->RawMonitorEnter(JVMTI_ENV_ARG(jvmti, access_lock));
+ res = jvmti->RawMonitorEnter(access_lock);
JVMTI_ERROR_CHECK("Raw monitor enter returned error", res);
/* This monitor is entered here and it is released in live phase by a call from java code
*/
- res = JVMTI_ENV_PTR(jvmti)->RawMonitorEnter(JVMTI_ENV_ARG(jvmti, jraw_monitor[0]));
+ res = jvmti->RawMonitorEnter(jraw_monitor[0]);
JVMTI_ERROR_CHECK("Raw monitor enter returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->RawMonitorEnter(JVMTI_ENV_ARG(jvmti, jraw_monitor[0]));
+ res = jvmti->RawMonitorEnter(jraw_monitor[0]);
JVMTI_ERROR_CHECK("Raw monitor enter returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->RawMonitorExit(JVMTI_ENV_ARG(jvmti, jraw_monitor[0]));
+ res = jvmti->RawMonitorExit(jraw_monitor[0]);
JVMTI_ERROR_CHECK("Raw monitor exit returned error", res);
return JNI_OK;
@@ -315,7 +293,7 @@
sprintf(sz, "Rawmonitor-%d",i);
debug_printf("jvmti create raw monitor \n");
- ret = JVMTI_ENV_PTR(jvmti)->CreateRawMonitor(JVMTI_ENV_ARG(jvmti, sz), &jraw_monitor[i]);
+ ret = jvmti->CreateRawMonitor(sz, &jraw_monitor[i]);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: CreateRawMonitor %d \n", ret);
@@ -328,7 +306,7 @@
jvmtiError ret;
debug_printf("jvmti Raw monitor enter \n");
- ret = JVMTI_ENV_PTR(jvmti)->RawMonitorEnter(JVMTI_ENV_ARG(jvmti, jraw_monitor[i]));
+ ret = jvmti->RawMonitorEnter(jraw_monitor[i]);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: RawMonitorEnter %d \n", ret);
@@ -341,7 +319,7 @@
jvmtiError ret;
debug_printf("jvmti raw monitor exit \n");
- ret = JVMTI_ENV_PTR(jvmti)->RawMonitorExit(JVMTI_ENV_ARG(jvmti, jraw_monitor[i]));
+ ret = jvmti->RawMonitorExit(jraw_monitor[i]);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: RawMonitorExit %d \n", ret);
@@ -354,7 +332,7 @@
jvmtiError ret;
debug_printf("jvmti RawMonitorWait \n");
- ret = JVMTI_ENV_PTR(jvmti)->RawMonitorWait(JVMTI_ENV_ARG(jvmti, jraw_monitor[i]), -1);
+ ret = jvmti->RawMonitorWait(jraw_monitor[i], -1);
if (ret != JVMTI_ERROR_NONE) {
printf("Error: RawMonitorWait %d \n", ret);
@@ -362,6 +340,4 @@
}
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/heapref/heapref.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/heapref/heapref.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -29,21 +29,8 @@
#include "agent_common.h"
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
-
-#ifndef JNI_ENV_ARG
-#ifdef __cplusplus
-#define JNI_ENV_ARG(x, y) y
-#define JNI_ENV_PTR(x) x
-#else
-#define JNI_ENV_ARG(x,y) x, y
-#define JNI_ENV_PTR(x) (*x)
-#endif
-
-#endif
#define PASSED 0
#define STATUS_FAILED 2
@@ -275,8 +262,7 @@
printdump = JNI_TRUE;
}
- res = JNI_ENV_PTR(jvm)->GetEnv(JNI_ENV_ARG(jvm, (void **) &jvmti),
- JVMTI_VERSION_1_1);
+ res = jvm->GetEnv((void **) &jvmti, JVMTI_VERSION_1_1);
if (res != JNI_OK || jvmti == NULL) {
printf("Wrong result of a valid call to GetEnv!\n");
return JNI_ERR;
@@ -487,6 +473,4 @@
return result;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/refignore/refignore.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/refignore/refignore.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -29,21 +29,8 @@
#include "agent_common.h"
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
-
-#ifndef JNI_ENV_ARG
-#ifdef __cplusplus
-#define JNI_ENV_ARG(x, y) y
-#define JNI_ENV_PTR(x) x
-#else
-#define JNI_ENV_ARG(x,y) x, y
-#define JNI_ENV_PTR(x) (*x)
-#endif
-
-#endif
#define PASSED 0
#define STATUS_FAILED 2
@@ -273,8 +260,7 @@
printdump = JNI_TRUE;
}
- res = JNI_ENV_PTR(jvm)->GetEnv(JNI_ENV_ARG(jvm, (void **) &jvmti),
- JVMTI_VERSION_1_1);
+ res = jvm->GetEnv((void **) &jvmti, JVMTI_VERSION_1_1);
if (res != JNI_OK || jvmti == NULL) {
printf("Wrong result of a valid call to GetEnv!\n");
return JNI_ERR;
@@ -485,6 +471,4 @@
return result;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/setNullVMInit/JvmtiTest/JvmtiTest.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/setNullVMInit/JvmtiTest/JvmtiTest.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -36,27 +36,7 @@
#include "jni_tools.h"
#include "agent_common.h"
-#ifdef __cplusplus
extern "C" {
-#endif
-
-#ifndef JNI_ENV_ARG
-
-#ifdef __cplusplus
-#define JNI_ENV_ARG(x, y) y
-#define JNI_ENV_ARG1(x)
-#define JNI_ENV_PTR(x) x
-#else
-#define JNI_ENV_ARG(x,y) x, y
-#define JNI_ENV_ARG1(x) x
-#define JNI_ENV_PTR(x) (*x)
-#endif
-
-#endif
-
-#define JVMTI_ENV_ARG JNI_ENV_ARG
-#define JVMTI_ENV_ARG1 JNI_ENV_ARG1
-#define JVMTI_ENV_PTR JNI_ENV_PTR
#define JVMTI_ERROR_CHECK(str,res) if ( res != JVMTI_ERROR_NONE) { printf(str); printf("%d\n",res); return res;}
#define JVMTI_ERROR_CHECK_EXPECTED_ERROR(str,res,err) if ( res != err) { printf(str); printf("unexpected error %d\n",res); return res;}
@@ -86,7 +66,7 @@
intptr_t get_env_local() {
jvmtiError res;
void *val;
- res = JVMTI_ENV_PTR(jvmti)->GetEnvironmentLocalStorage(JVMTI_ENV_ARG(jvmti, &val));
+ res = jvmti->GetEnvironmentLocalStorage(&val);
JVMTI_ERROR_CHECK("GetEnvironmentLocalStorage returned error", res);
return (intptr_t)val;
}
@@ -94,14 +74,14 @@
void set_env_local(intptr_t x) {
jvmtiError res;
void *val = (void*)x;
- res = JVMTI_ENV_PTR(jvmti)->SetEnvironmentLocalStorage(JVMTI_ENV_ARG(jvmti, val));
+ res = jvmti->SetEnvironmentLocalStorage(val);
JVMTI_ERROR_CHECK_VOID("SetEnvironmentLocalStorage returned error", res);
}
intptr_t get_thread_local(jthread thread) {
jvmtiError res;
void *val;
- res = JVMTI_ENV_PTR(jvmti)->GetThreadLocalStorage(JVMTI_ENV_ARG(jvmti, thread), &val);
+ res = jvmti->GetThreadLocalStorage(thread, &val);
JVMTI_ERROR_CHECK("GetThreadLocalStorage returned error", res);
return (intptr_t)val;
}
@@ -109,7 +89,7 @@
void set_thread_local(jthread thread, intptr_t x) {
jvmtiError res;
void *val = (void*)x;
- res = JVMTI_ENV_PTR(jvmti)->SetThreadLocalStorage(JVMTI_ENV_ARG(jvmti, thread), val);
+ res = jvmti->SetThreadLocalStorage(thread, val);
JVMTI_ERROR_CHECK_VOID("SetThreadLocalStorage returned error", res);
}
@@ -164,8 +144,7 @@
}
}
- res = JNI_ENV_PTR(jvm)->
- GetEnv(JNI_ENV_ARG(jvm, (void **) &jvmti), JVMTI_VERSION_1_1);
+ res = jvm->GetEnv((void **) &jvmti, JVMTI_VERSION_1_1);
if (res < 0) {
printf("Wrong result of a valid call to GetEnv!\n");
return JNI_ERR;
@@ -179,10 +158,10 @@
/* Enable events */
init_callbacks();
- res = JVMTI_ENV_PTR(jvmti)->SetEventCallbacks(JVMTI_ENV_ARG(jvmti, &callbacks), sizeof(callbacks));
+ res = jvmti->SetEventCallbacks(&callbacks, sizeof(callbacks));
JVMTI_ERROR_CHECK("SetEventCallbacks returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->SetEventNotificationMode(JVMTI_ENV_ARG(jvmti, JVMTI_ENABLE), JVMTI_EVENT_VM_INIT,NULL);
+ res = jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_INIT,NULL);
JVMTI_ERROR_CHECK("SetEventNotificationMode for VM_INIT returned error", res);
return JNI_OK;
@@ -201,6 +180,4 @@
return iGlobalStatus;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/timers/JvmtiTest/JvmtiTest.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/timers/JvmtiTest/JvmtiTest.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -39,24 +39,7 @@
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
-
-#ifndef JNI_ENV_ARG
-
-#ifdef __cplusplus
-#define JNI_ENV_PTR(x) x
-#define JNI_ENV_ARG(x, y) y
-#else
-#define JNI_ENV_PTR(x) (*x)
-#define JNI_ENV_ARG(x, y) x, y
-#endif
-
-#endif
-
-#define JVMTI_ENV_PTR JNI_ENV_PTR
-#define JVMTI_ENV_ARG JNI_ENV_ARG
#define JVMTI_ERROR_CHECK_DURING_ONLOAD(str,res) if ( res != JVMTI_ERROR_NONE) { printf("Fatal error: %s - %d\n", str, res); return JNI_ERR; }
@@ -102,7 +85,7 @@
debug_printf("VMInit event\n");
debug_printf("jvmti GetTime \n");
- err = JVMTI_ENV_PTR(jvmti_env)->GetTime(JVMTI_ENV_ARG(jvmti_env, &initial_time));
+ err = jvmti_env->GetTime(&initial_time);
JVMTI_ERROR_CHECK("GetTime", err);
debug_printf(" Initial time: %s ns\n",
jlong_to_string(initial_time, buffer));
@@ -157,13 +140,13 @@
/* Enable events */
init_callbacks();
- res = JVMTI_ENV_PTR(jvmti)->SetEventCallbacks(JVMTI_ENV_ARG(jvmti_env, &callbacks), sizeof(callbacks));
+ res = jvmti->SetEventCallbacks(&callbacks, sizeof(callbacks));
JVMTI_ERROR_CHECK_DURING_ONLOAD("SetEventCallbacks returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->SetEventNotificationMode(JVMTI_ENV_ARG(jvmti_env, JVMTI_ENABLE), JVMTI_EVENT_VM_INIT, NULL);
+ res = jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_INIT, NULL);
JVMTI_ERROR_CHECK_DURING_ONLOAD("SetEventNotificationMode for VM_INIT returned error", res);
- res = JVMTI_ENV_PTR(jvmti)->SetEventNotificationMode(JVMTI_ENV_ARG(jvmti_env, JVMTI_ENABLE), JVMTI_EVENT_VM_DEATH, NULL);
+ res = jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_DEATH, NULL);
JVMTI_ERROR_CHECK_DURING_ONLOAD("SetEventNotificationMode for vm death event returned error", res);
return JNI_OK;
@@ -184,12 +167,12 @@
jlong curr;
debug_printf("jvmti GetCurrentThreadCpuTime \n");
- ret = JVMTI_ENV_PTR(jvmti)->GetCurrentThreadCpuTime(JVMTI_ENV_ARG(jvmti_env, &curr));
+ ret = jvmti->GetCurrentThreadCpuTime(&curr);
JVMTI_ERROR_CHECK_RETURN("GetCurrentThreadCpuTime", ret);
thread_info[threadNumber].iterationCount = iterationCount;
thread_info[threadNumber].currThreadTime = curr;
- thread_info[threadNumber].ref = JNI_ENV_PTR(env)->NewWeakGlobalRef(JNI_ENV_ARG(env, thread));
+ thread_info[threadNumber].ref = env->NewWeakGlobalRef(thread);
}
static void print_timerinfo(jvmtiTimerInfo* timerInfo) {
@@ -237,34 +220,34 @@
char buffer[32];
debug_printf("jvmti GetTime \n");
- ret = JVMTI_ENV_PTR(jvmti)->GetTime(JVMTI_ENV_ARG(jvmti_env, &now));
+ ret = jvmti->GetTime(&now);
JVMTI_ERROR_CHECK_RETURN("GetTime", ret);
etime = now - initial_time;
debug_printf(" Elapsed time: %s ms\n",
jlong_to_string(milli(etime), buffer));
debug_printf("jvmti GetCurrentThreadCpuTimerInfo \n");
- ret = JVMTI_ENV_PTR(jvmti)->GetCurrentThreadCpuTimerInfo(JVMTI_ENV_ARG(jvmti_env, &timerInfoCurr));
+ ret = jvmti->GetCurrentThreadCpuTimerInfo(&timerInfoCurr);
JVMTI_ERROR_CHECK_RETURN("GetCurrentThreadCpuTimerInfo", ret);
print_timerinfo(&timerInfoCurr);
debug_printf("jvmti GetThreadCpuTimerInfo \n");
- ret = JVMTI_ENV_PTR(jvmti)->GetThreadCpuTimerInfo(JVMTI_ENV_ARG(jvmti_env, &timerInfoOther));
+ ret = jvmti->GetThreadCpuTimerInfo(&timerInfoOther);
JVMTI_ERROR_CHECK_RETURN("GetThreadCpuTimerInfo", ret);
print_timerinfo(&timerInfoOther);
debug_printf("jvmti GetTimerInfo \n");
- ret = JVMTI_ENV_PTR(jvmti)->GetTimerInfo(JVMTI_ENV_ARG(jvmti_env, &timerInfoTime));
+ ret = jvmti->GetTimerInfo(&timerInfoTime);
JVMTI_ERROR_CHECK_RETURN("GetTimerInfo", ret);
print_timerinfo(&timerInfoTime);
debug_printf("jvmti GetAvailableProcessors \n");
- ret = JVMTI_ENV_PTR(jvmti)->GetAvailableProcessors(JVMTI_ENV_ARG(jvmti_env, &processor_count));
+ ret = jvmti->GetAvailableProcessors(&processor_count);
JVMTI_ERROR_CHECK_RETURN("GetAvailableProcessors", ret);
debug_printf(" processor_count = %d\n", processor_count);
debug_printf("jvmti GetAllThreads \n");
- ret = JVMTI_ENV_PTR(jvmti)->GetAllThreads(JVMTI_ENV_ARG(jvmti_env, &thrCnt), &thrArray);
+ ret = jvmti->GetAllThreads(&thrCnt, &thrArray);
JVMTI_ERROR_CHECK_RETURN("GetAllThreads", ret);
for (k = 0; k < thrCnt; ++k) {
@@ -272,13 +255,13 @@
jthread thread;
thread = thrArray[k];
- ret = JVMTI_ENV_PTR(jvmti)->GetThreadCpuTime(JVMTI_ENV_ARG(jvmti_env, thread), &oth);
+ ret = jvmti->GetThreadCpuTime(thread, &oth);
JVMTI_ERROR_CHECK_RETURN("GetThreadCpuTime", ret);
for (i = 1; i < THREADS_LIMIT; ++i) {
jweak tref = thread_info[i].ref;
if (tref != 0) {
- if (JNI_ENV_PTR(env)->IsSameObject(JNI_ENV_ARG(env, thread), tref)) {
+ if (env->IsSameObject(thread, tref)) {
thread_info[i].threadTime = oth;
break;
}
@@ -287,7 +270,7 @@
if (i == THREADS_LIMIT) {
jvmtiThreadInfo info;
info.name = (char*) "*retrieval error*";
- ret = JVMTI_ENV_PTR(jvmti)->GetThreadInfo(JVMTI_ENV_ARG(jvmti_env, thread), &info);
+ ret = jvmti->GetThreadInfo(thread, &info);
JVMTI_ERROR_CHECK("GetThreadInfo %d \n", ret);
debug_printf("non-test thread: %s - %s ms\n", info.name,
@@ -380,6 +363,4 @@
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/monitoring/share/StackTraceController.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/monitoring/share/StackTraceController.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -25,9 +25,7 @@
#include <stdio.h>
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define GET_OBJECT_CLASS(_class, _obj)\
if (!NSK_JNI_VERIFY(env, (_class = \
@@ -93,6 +91,4 @@
return 0;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/monitoring/share/ThreadController.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/monitoring/share/ThreadController.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include <stdio.h>
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define FIND_CLASS(_class, _className)\
if (!NSK_JNI_VERIFY(env, (_class = \
@@ -526,6 +524,4 @@
return threadState;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/monitoring/share/thread/Deadlock.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/monitoring/share/thread/Deadlock.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -23,9 +23,7 @@
#include <jni.h>
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define FIND_CLASS(_class, _className)\
if (!NSK_JNI_VERIFY(env, (_class = \
@@ -107,6 +105,4 @@
}
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/monitoring/share/thread/LockingThreads.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/monitoring/share/thread/LockingThreads.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -23,9 +23,7 @@
#include <jni.h>
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define FIND_CLASS(_class, _className)\
if (!NSK_JNI_VERIFY(env, (_class = \
@@ -85,6 +83,4 @@
env->ThrowNew(testBugClass, "MonitorEnter(lock4) call failed");
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/monitoring/share/thread/RecursiveMonitoringThread.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/monitoring/share/thread/RecursiveMonitoringThread.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -25,9 +25,7 @@
#include <stdio.h>
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define FIND_CLASS(_class, _className)\
if (!NSK_JNI_VERIFY(env, (_class = \
@@ -176,7 +174,5 @@
}
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/monitoring/share/thread/libNativeBlockedThread.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/monitoring/share/thread/libNativeBlockedThread.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -23,9 +23,7 @@
#include <jni.h>
-#ifdef __cplusplus
extern "C" {
-#endif
/*
* Class: nsk_monitoring_share_thread_NativeBlockedThread
@@ -40,6 +38,4 @@
env->MonitorExit(lock);
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/JVMDITools.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/JVMDITools.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -24,9 +24,7 @@
#include "jvmdi.h"
#include "JVMDITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
char const *TranslateEvent(jint kind) {
switch (kind) {
@@ -168,6 +166,4 @@
}
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/JVMDITools.h Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/JVMDITools.h Mon Sep 24 10:59:26 2018 -0700
@@ -21,13 +21,9 @@
* questions.
*/
-#ifdef __cplusplus
extern "C" {
-#endif
char const *TranslateEvent(jint kind);
char const *TranslateError(jvmdiError err);
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/JVMTIagent.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/JVMTIagent.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -39,9 +39,7 @@
#include "JVMTITools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
static jvmtiEnv *jvmti = NULL; /* JVMTI env */
static jvmtiEventCallbacks callbacks;
@@ -1271,6 +1269,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/aod/aod.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/aod/aod.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include <nsk_tools.h>
#include <aod.h>
-#ifdef __cplusplus
extern "C" {
-#endif
static volatile int internalError = 0;
@@ -283,6 +281,4 @@
return jni;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/aod/aod.h Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/aod/aod.h Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include <jni_tools.h>
#include <nsk_tools.h>
-#ifdef __cplusplus
extern "C" {
-#endif
/*
* This function can be used to inform AOD framework that some non-critical for test logic
@@ -76,8 +74,6 @@
JNIEnv* nsk_aod_createJNIEnv(JavaVM* vm);
-#ifdef __cplusplus
}
-#endif
#endif /* END OF NSK_SHARE_AOD_H */
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/BooleanArrayCriticalLocker.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/BooleanArrayCriticalLocker.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -25,9 +25,7 @@
#include <time.h>
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
static jfieldID objFieldId = NULL;
@@ -83,6 +81,4 @@
return hash;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/ByteArrayCriticalLocker.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/ByteArrayCriticalLocker.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -25,9 +25,7 @@
#include <time.h>
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
static jfieldID objFieldId = NULL;
@@ -82,6 +80,4 @@
return hash;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/CharArrayCriticalLocker.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/CharArrayCriticalLocker.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -25,9 +25,7 @@
#include <time.h>
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
static jfieldID objFieldId = NULL;
@@ -83,6 +81,4 @@
return hash;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/DoubleArrayCriticalLocker.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/DoubleArrayCriticalLocker.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -25,9 +25,7 @@
#include <time.h>
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
static jfieldID objFieldId = NULL;
@@ -83,6 +81,4 @@
return hash;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/FloatArrayCriticalLocker.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/FloatArrayCriticalLocker.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -25,9 +25,7 @@
#include <time.h>
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
static jfieldID objFieldId = NULL;
@@ -83,6 +81,4 @@
return hash;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/IntArrayCriticalLocker.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/IntArrayCriticalLocker.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -25,9 +25,7 @@
#include <time.h>
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
static jfieldID objFieldId = NULL;
@@ -83,6 +81,4 @@
return hash;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/LongArrayCriticalLocker.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/LongArrayCriticalLocker.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -25,9 +25,7 @@
#include <time.h>
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
static jfieldID objFieldId = NULL;
@@ -83,6 +81,4 @@
return hash;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/ShortArrayCriticalLocker.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/ShortArrayCriticalLocker.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -25,9 +25,7 @@
#include <time.h>
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
static jfieldID objFieldId = NULL;
@@ -83,6 +81,4 @@
return hash;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/StringCriticalLocker.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/StringCriticalLocker.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -25,9 +25,7 @@
#include <time.h>
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
static jfieldID objFieldId = NULL;
@@ -83,6 +81,4 @@
return hash;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jniref/JNIGlobalRefLocker.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jniref/JNIGlobalRefLocker.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -25,9 +25,7 @@
#include <time.h>
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
static jfieldID objFieldId = NULL;
@@ -73,6 +71,4 @@
env->SetObjectField(o, objFieldId, obj);
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jniref/JNILocalRefLocker.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jniref/JNILocalRefLocker.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -25,9 +25,7 @@
#include <time.h>
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
static jfieldID objFieldId = NULL;
@@ -73,6 +71,4 @@
env->SetObjectField(o, objFieldId, obj);
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jniref/JNIRefLocker.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jniref/JNIRefLocker.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -25,9 +25,7 @@
#include <time.h>
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
static jfieldID objFieldId = NULL;
@@ -77,6 +75,4 @@
env->SetObjectField(o, objFieldId, obj);
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jniref/JNIWeakGlobalRefLocker.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jniref/JNIWeakGlobalRefLocker.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -25,9 +25,7 @@
#include <time.h>
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
static jfieldID objFieldId = NULL;
@@ -73,6 +71,4 @@
env->SetObjectField(o, objFieldId, obj);
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jvmti/JVMTIAllocLocker.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jvmti/JVMTIAllocLocker.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -26,9 +26,7 @@
#include <stdlib.h>
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
static jvmtiEnv *jvmti = NULL;
static jvmtiCapabilities caps;
@@ -67,6 +65,4 @@
}
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/malloc/MallocLocker.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/malloc/MallocLocker.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -25,9 +25,7 @@
#include <stdlib.h>
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/*
* Class: nsk_share_gc_lock_malloc_MallocLocker
@@ -50,6 +48,4 @@
}
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/jdb/Jdb.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/jdb/Jdb.java Mon Sep 24 10:59:26 2018 -0700
@@ -291,7 +291,7 @@
jdbCommand += lineSeparator;
} else {
// we don't want to log the line separator
- logCmd = jdbCommand.substring(0, jdbCommand.length() - 1);
+ logCmd = jdbCommand.substring(0, jdbCommand.length() - lineSeparator.length());
}
launcher.getLog().display("Sending command: " + logCmd);
@@ -698,7 +698,7 @@
int i = string.indexOf(lineSeparator, ind);
if (i >= 0) {
v.add(string.substring(ind, i));
- ind = i + 1;
+ ind = i + lineSeparator.length();
} else {
v.add(string.substring(ind));
break;
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/jni/jni_tools.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/jni/jni_tools.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -45,9 +45,7 @@
/*************************************************************/
-#ifdef __cplusplus
extern "C" {
-#endif
/*************************************************************/
@@ -199,6 +197,4 @@
/*************************************************************/
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/jni/jni_tools.h Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/jni/jni_tools.h Mon Sep 24 10:59:26 2018 -0700
@@ -94,9 +94,7 @@
/*************************************************************/
-#ifdef __cplusplus
extern "C" {
-#endif
/*************************************************************/
@@ -165,9 +163,7 @@
/*************************************************************/
-#ifdef __cplusplus
}
-#endif
/*************************************************************/
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/AddToBootstrapClassLoaderSearch/bootclssearch_agent.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/AddToBootstrapClassLoaderSearch/bootclssearch_agent.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include "jvmti_tools.h"
#include "agent_common.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -243,6 +241,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/AddToSystemClassLoaderSearch/systemclssearch_agent.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/AddToSystemClassLoaderSearch/systemclssearch_agent.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include "jvmti_tools.h"
#include "agent_common.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -243,6 +241,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/Injector.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/Injector.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -105,9 +105,7 @@
/* ========================================================================== */
-#ifdef __cplusplus
extern "C" {
-#endif
static u1 get_u1() {
return *inputPos++;
@@ -1202,6 +1200,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/Injector.h Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/Injector.h Mon Sep 24 10:59:26 2018 -0700
@@ -279,9 +279,7 @@
BCI_MODE_ALLOC = 2
};
-#ifdef __cplusplus
extern "C" {
-#endif
/**
* Class file transformer. Transforms a classfile image from old_bytes
@@ -305,8 +303,6 @@
int Inject(const u1* old_bytes, const jint old_length,
u1** new_bytes, jint* new_length, int bci_mode);
-#ifdef __cplusplus
}
-#endif
#endif /* _NSK_SHARE_JVMTI_INJECTOR_H_ */
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/JVMTITools.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/JVMTITools.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -25,9 +25,7 @@
#include <string.h>
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
const char* TranslateState(jint flags) {
static char str[15 * 20];
@@ -326,6 +324,4 @@
}
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/JVMTITools.h Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/JVMTITools.h Mon Sep 24 10:59:26 2018 -0700
@@ -26,9 +26,7 @@
#include "jvmti.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/**
* Return string representation of given JVMTI event constant.
@@ -60,8 +58,6 @@
*/
const char* TranslateObjectRefKind(jvmtiObjectReferenceKind ref);
-#ifdef __cplusplus
}
-#endif
#endif /* _NSK_SHARE_JVMTI_JVMTITOOLS_H_ */
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/agent_common/agent_common.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/agent_common/agent_common.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -23,9 +23,7 @@
#include "jvmti.h"
#include "agent_common.h"
-#ifdef __cplusplus
extern "C" {
-#endif
JNIEXPORT jint JNICALL Agent_OnLoad(JavaVM *jvm, char *options, void *reserved) {
return Agent_Initialize(jvm, options, reserved);
@@ -35,6 +33,4 @@
return Agent_Initialize(jvm, options, reserved);
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/agent_common/agent_common.h Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/agent_common/agent_common.h Mon Sep 24 10:59:26 2018 -0700
@@ -26,9 +26,7 @@
#include "jvmti.h"
#include "../jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
JNIEXPORT jint JNICALL Agent_OnLoad(JavaVM *jvm, char *options, void *reserved);
@@ -36,8 +34,6 @@
jint Agent_Initialize(JavaVM *vm, char *options, void *reserved);
-#ifdef __cplusplus
}
-#endif
#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/agent_tools.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/agent_tools.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include "jni_tools.h"
#include "jvmti_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -810,6 +808,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/aod/jvmti_aod.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/aod/jvmti_aod.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -24,9 +24,7 @@
#include <stdlib.h>
#include <jvmti_aod.h>
-#ifdef __cplusplus
extern "C" {
-#endif
void nsk_jvmti_aod_disableEventAndFinish(const char* agentName, jvmtiEvent event, int success, jvmtiEnv *jvmti, JNIEnv* jni) {
if (!nsk_jvmti_aod_disableEvent(jvmti, event))
@@ -347,6 +345,4 @@
#undef printCap
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/aod/jvmti_aod.h Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/aod/jvmti_aod.h Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include <jvmti.h>
#include <jvmti_tools.h>
-#ifdef __cplusplus
extern "C" {
-#endif
#define MAX_STRING_LENGTH 1024
@@ -90,8 +88,6 @@
void printCapabilities(jvmtiCapabilities caps);
-#ifdef __cplusplus
}
-#endif
#endif /* END OF NSK_SHARE_JVMTI_AOD_H */
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/hotswap/HotSwap.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/hotswap/HotSwap.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#define PASSED 0
-#ifdef __cplusplus
extern "C" {
-#endif
/* ========================================================================== */
@@ -500,6 +498,4 @@
/* ========================================================================== */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/jvmti_FollowRefObjects.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/jvmti_FollowRefObjects.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jvmti_tools.h"
#include "jvmti_FollowRefObjects.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -392,6 +390,4 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/jvmti_FollowRefObjects.h Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/jvmti_FollowRefObjects.h Mon Sep 24 10:59:26 2018 -0700
@@ -25,9 +25,7 @@
#include <jvmti.h>
-#ifdef __cplusplus
extern "C" {
-#endif
/* ============================================================================= */
@@ -101,8 +99,6 @@
/* ============================================================================= */
-#ifdef __cplusplus
}
-#endif
#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/jvmti_tools.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/jvmti_tools.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -40,9 +40,7 @@
/*************************************************************/
-#ifdef __cplusplus
extern "C" {
-#endif
/*************************************************************/
@@ -679,6 +677,4 @@
/*************************************************************/
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/jvmti_tools.h Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/jvmti_tools.h Mon Sep 24 10:59:26 2018 -0700
@@ -35,9 +35,7 @@
#include "JVMTITools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/******************** Diagnostics errors *********************/
@@ -393,8 +391,6 @@
#endif
-#ifdef __cplusplus
}
-#endif
#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/unit/Heap.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/unit/Heap.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -29,9 +29,7 @@
#include "jvmti.h"
#include "agent_common.h"
-#ifdef __cplusplus
extern "C" {
-#endif
static jvmtiEnv *jvmti;
static jint dummy_user_data;
@@ -470,6 +468,4 @@
return 0;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/native/native_thread.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/native/native_thread.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -52,9 +52,7 @@
/***************************************************************/
-#ifdef __cplusplus
extern "C" {
-#endif
/**
* A mirror to control a thread.
@@ -206,6 +204,4 @@
/***************************************************************/
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/native/native_thread.h Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/native/native_thread.h Mon Sep 24 10:59:26 2018 -0700
@@ -24,9 +24,7 @@
#ifndef NSK_SHARE_NATIVE_NATIVE_THREAD_H
#define NSK_SHARE_NATIVE_NATIVE_THREAD_H
-#ifdef __cplusplus
extern "C" {
-#endif
/**
* A thread procedure with a void* argument and returning
@@ -75,8 +73,6 @@
*/
void THREAD_sleep(int seconds);
-#ifdef __cplusplus
}
-#endif
#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/native/native_utils.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/native/native_utils.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -34,14 +34,10 @@
#include <sys/types.h>
#include <jni.h>
-#ifdef __cplusplus
extern "C" {
-#endif
JNIEXPORT jlong
JNICALL Java_nsk_share_NativeUtils_getCurrentPID(JNIEnv * jni, jobject jobj) {
return (jlong) getpid();
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/native/nsk_list.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/native/nsk_list.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "nsk_list.h"
#include "nsk_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define NSK_LIST_INIT_COUNT 20
@@ -136,8 +134,6 @@
return NULL;
}
-#ifdef __cplusplus
}
-#endif
/* ============================================================================= */
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/native/nsk_list.h Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/native/nsk_list.h Mon Sep 24 10:59:26 2018 -0700
@@ -24,9 +24,7 @@
#ifndef NSK_LIST
#define NSK_LIST
-#ifdef __cplusplus
extern "C" {
-#endif
/**
* Prepares array of pointers which has fixed INITIAL_SIZE.
@@ -68,8 +66,6 @@
*/
int nsk_list_remove(const void *plist, int i);
-#ifdef __cplusplus
}
-#endif
#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/native/nsk_mutex.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/native/nsk_mutex.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -24,9 +24,7 @@
#include <stdlib.h>
#include "nsk_mutex.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#ifndef _WIN32
@@ -92,6 +90,4 @@
#endif // _WIN32
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/native/nsk_mutex.h Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/native/nsk_mutex.h Mon Sep 24 10:59:26 2018 -0700
@@ -24,9 +24,7 @@
#ifndef NSK_MUTEX_H
#define NSK_MUTEX_H
-#ifdef __cplusplus
extern "C" {
-#endif
/**
* Structure to hold mutex data (the content is platform-specific)
@@ -54,8 +52,6 @@
void MUTEX_destroy(MUTEX* mutex);
-#ifdef __cplusplus
}
-#endif
#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/native/nsk_tools.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/native/nsk_tools.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -35,9 +35,7 @@
/*************************************************************/
-#ifdef __cplusplus
extern "C" {
-#endif
/*************************************************************/
@@ -305,6 +303,4 @@
/*************************************************************/
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/native/nsk_tools.h Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/native/nsk_tools.h Mon Sep 24 10:59:26 2018 -0700
@@ -47,27 +47,6 @@
*
*/
-#define NSK_CPP_STUB1(Func,env) (*env)->Func(env)
-#define NSK_CPP_STUB2(Func,env,a) (*env)->Func(env,a)
-#define NSK_CPP_STUB3(Func,env,a,b) (*env)->Func(env,a,b)
-#define NSK_CPP_STUB4(Func,env,a,b,c) (*env)->Func(env,a,b,c)
-#define NSK_CPP_STUB5(Func,env,a,b,c,d) (*env)->Func(env,a,b,c,d)
-#define NSK_CPP_STUB6(Func,env,a,b,c,d,e) (*env)->Func(env,a,b,c,d,e)
-#define NSK_CPP_STUB7(Func,env,a,b,c,d,e,f) (*env)->Func(env,a,b,c,d,e,f)
-#define NSK_CPP_STUB8(Func,env,a,b,c,d,e,f,g) (*env)->Func(env,a,b,c,d,e,f,g)
-#define NSK_CPP_STUB9(Func,env,a,b,c,d,e,f,g,h) (*env)->Func(env,a,b,c,d,e,f,g,h)
-
-#ifdef __cplusplus
-#ifndef NSK_CPP_STUBS_ENFORCE_C
-#undef NSK_CPP_STUB1
-#undef NSK_CPP_STUB2
-#undef NSK_CPP_STUB3
-#undef NSK_CPP_STUB4
-#undef NSK_CPP_STUB5
-#undef NSK_CPP_STUB6
-#undef NSK_CPP_STUB7
-#undef NSK_CPP_STUB8
-#undef NSK_CPP_STUB9
#define NSK_CPP_STUB1(Func,env) env->Func()
#define NSK_CPP_STUB2(Func,env,a) env->Func(a)
#define NSK_CPP_STUB3(Func,env,a,b) env->Func(a,b)
@@ -77,8 +56,6 @@
#define NSK_CPP_STUB7(Func,env,a,b,c,d,e,f) env->Func(a,b,c,d,e,f)
#define NSK_CPP_STUB8(Func,env,a,b,c,d,e,f,g) env->Func(a,b,c,d,e,f,g)
#define NSK_CPP_STUB9(Func,env,a,b,c,d,e,f,g,h) env->Func(a,b,c,d,e,f,g,h)
-#endif
-#endif
/*************************************************************/
@@ -123,9 +100,7 @@
/*************************************************************/
-#ifdef __cplusplus
extern "C" {
-#endif
#define NSK_TRUE 1
#define NSK_FALSE 0
@@ -210,9 +185,7 @@
/*************************************************************/
-#ifdef __cplusplus
}
-#endif
/*************************************************************/
--- a/test/hotspot/jtreg/vmTestbase/nsk/stress/jni/gclocker/libgcl001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/jni/gclocker/libgcl001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -24,9 +24,7 @@
#include <stdlib.h>
#include "jnihelper.h"
-#ifdef __cplusplus
extern "C" {
-#endif
// compare most java primitive value types
#define COMP(type) \
@@ -203,6 +201,4 @@
BODY(jdouble)
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/stress/jni/libjnistress001.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/jni/libjnistress001.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -28,9 +28,7 @@
#include <stdlib.h>
#include "jnihelper.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define DIGESTLENGTH 16
@@ -242,6 +240,4 @@
return(env->NewString(javachars->str[index-1],javachars->size[index-1]));
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/stress/jni/libjnistress002.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/jni/libjnistress002.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -25,9 +25,7 @@
#include <stdio.h>
#include "jnihelper.h"
-#ifdef __cplusplus
extern "C" {
-#endif
jobject NewObjectWrapper(JNIEnv *env, jclass clazz, jmethodID methodID, ...) {
va_list ap;
@@ -105,6 +103,4 @@
return obj;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/stress/jni/libjnistress003.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/jni/libjnistress003.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -26,9 +26,7 @@
#include <stdlib.h>
#include "jnihelper.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define BOOL 0
#define BYTE 1
@@ -263,6 +261,4 @@
return JNI_TRUE;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/stress/jni/libjnistress004.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/jni/libjnistress004.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include <string.h>
#include "jnihelper.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define DIGESTLENGTH 16
@@ -171,6 +169,4 @@
return ret;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/stress/jni/libjnistress005.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/jni/libjnistress005.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -25,9 +25,7 @@
#include <stdio.h>
#include <stdlib.h>
-#ifdef __cplusplus
extern "C" {
-#endif
#define CHECK_EXCEPTION { if (env->ExceptionOccurred()) { fprintf(stderr, "Unexpected exception:\n"); env->ExceptionDescribe(); env->ExceptionClear(); exit(97); } }
@@ -114,6 +112,4 @@
/* printf("JNI: count %d\n", Exceptcalls); */
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/stress/jni/libjnistress006.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/jni/libjnistress006.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -26,9 +26,7 @@
#include <stdlib.h>
#include "jnihelper.h"
-#ifdef __cplusplus
extern "C" {
-#endif
JNIEXPORT jboolean JNICALL
Java_nsk_stress_jni_JNIter006_refs (JNIEnv *env, jobject jobj, jobject tobj, jint LIMIT) {
@@ -86,6 +84,4 @@
return res;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/stress/jni/libjnistress007.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/jni/libjnistress007.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -25,9 +25,7 @@
#include <stdio.h>
#include "jnihelper.h"
-#ifdef __cplusplus
extern "C" {
-#endif
JNIEXPORT void JNICALL
Java_nsk_stress_jni_JNIter007_incCount (JNIEnv *env, jobject jobj, jstring name) {
@@ -47,6 +45,4 @@
printf("in %s Count after %u\n", str, value);
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace003.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace003.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -24,9 +24,7 @@
#include <stdio.h>
#include "nsk_strace.h"
-#ifdef __cplusplus
extern "C" {
-#endif
static const char *Stest_cn="nsk/stress/strace/strace003";
static const char *Slongparam="(J)V";
@@ -89,6 +87,4 @@
SET_INT_FIELD(obj, threadClass, "currentDepth", currDepth);
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace004.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace004.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -24,9 +24,7 @@
#include <stdio.h>
#include "nsk_strace.h"
-#ifdef __cplusplus
extern "C" {
-#endif
static const char *Stest_cn="nsk/stress/strace/strace004";
static const char *Slongparam="(J)V";
@@ -89,6 +87,4 @@
SET_INT_FIELD(obj, threadClass, "currentDepth", currDepth);
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace005.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace005.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -25,9 +25,7 @@
#include "nsk_strace.h"
#include "nsk_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
static const char *Stest_cn="nsk/stress/strace/strace005";
static jclass stackOverflowErrorClass;
@@ -102,6 +100,4 @@
SET_INT_FIELD(obj, threadClass, "currentDepth", currDepth);
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace006.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace006.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -24,9 +24,7 @@
#include <stdio.h>
#include "nsk_strace.h"
-#ifdef __cplusplus
extern "C" {
-#endif
static const char *Stest_cn="nsk/stress/strace/strace006";
@@ -103,6 +101,4 @@
SET_INT_FIELD(obj, threadClass, "currentDepth", currDepth);
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace008.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace008.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -24,9 +24,7 @@
#include <stdio.h>
#include "nsk_strace.h"
-#ifdef __cplusplus
extern "C" {
-#endif
static const char *Stest_cn="nsk/stress/strace/strace008";
@@ -87,6 +85,4 @@
SET_INT_FIELD(obj, threadClass, "currentDepth", currDepth);
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace009.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace009.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -24,9 +24,7 @@
#include <stdio.h>
#include "nsk_strace.h"
-#ifdef __cplusplus
extern "C" {
-#endif
static const char *Stest_cn="nsk/stress/strace/strace009";
@@ -59,6 +57,4 @@
SET_INT_FIELD(obj, threadClass, "currentDepth", currDepth);
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace011.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace011.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -24,9 +24,7 @@
#include <stdio.h>
#include "nsk_strace.h"
-#ifdef __cplusplus
extern "C" {
-#endif
static const char *Stest_cn="nsk/stress/strace/strace011";
static const char *SthreadName_mn="getName";
@@ -112,6 +110,4 @@
SET_INT_FIELD(obj, threadClass, "currentDepth", currDepth);
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace012.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace012.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -24,9 +24,7 @@
#include <stdio.h>
#include "nsk_strace.h"
-#ifdef __cplusplus
extern "C" {
-#endif
JNIEXPORT void JNICALL
Java_nsk_stress_strace_strace012Thread_recursiveMethod2(JNIEnv *env, jobject obj)
@@ -39,6 +37,4 @@
CALL_VOID_NOPARAM(obj, threadClass, "recursiveMethod1");
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace014.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace014.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -24,9 +24,7 @@
#include <stdio.h>
#include "nsk_strace.h"
-#ifdef __cplusplus
extern "C" {
-#endif
static const char *Stest_cn="nsk/stress/strace/strace014";
static const char *SthreadName_mn="getName";
@@ -93,6 +91,4 @@
SET_INT_FIELD(obj, threadClass, "currentDepth", currDepth);
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace015.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace015.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -24,9 +24,7 @@
#include <stdio.h>
#include "nsk_strace.h"
-#ifdef __cplusplus
extern "C" {
-#endif
JNIEXPORT void JNICALL
Java_nsk_stress_strace_strace015Thread_recursiveMethod2(JNIEnv *env, jobject obj)
@@ -39,6 +37,4 @@
CALL_VOID_NOPARAM(obj, threadClass, "recursiveMethod1");
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/libLTTest.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/libLTTest.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -23,9 +23,7 @@
#include <jni.h>
#include <stdio.h>
-#ifdef __cplusplus
extern "C" {
-#endif
JNIEXPORT void JNICALL Java_vm_jit_LongTransitions_LTTest_nativeFnc1(JNIEnv *e, jclass c
,jfloat p0,jfloat p1,jfloat p2,jfloat p3,jfloat p4,jfloat p5,jfloat p6,jfloat p7
@@ -3464,6 +3462,4 @@
fclose(file);
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/vm/mlvm/indy/func/jvmti/share/IndyRedefineClass.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/vm/mlvm/indy/func/jvmti/share/IndyRedefineClass.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#include "jvmti_tools.h"
#include "mlvmJvmtiUtils.h"
-#ifdef __cplusplus
extern "C" {
-#endif
static jvmtiEnv* gJvmtiEnv = NULL;
@@ -221,6 +219,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/vm/mlvm/indy/func/jvmti/stepBreakPopReturn/stepBreakPopReturn.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/vm/mlvm/indy/func/jvmti/stepBreakPopReturn/stepBreakPopReturn.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#include "jvmti_tools.h"
#include "mlvmJvmtiUtils.h"
-#ifdef __cplusplus
extern "C" {
-#endif
static jvmtiEnv* gJvmtiEnv = NULL;
@@ -205,6 +203,4 @@
return JNI_OK;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/vm/mlvm/meth/stress/jni/nativeAndMH/nativeAndMH.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/vm/mlvm/meth/stress/jni/nativeAndMH/nativeAndMH.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -27,9 +27,7 @@
#include "jni.h"
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
#define ARGS_COUNT 6
@@ -74,6 +72,4 @@
return result;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/vm/mlvm/share/mlvmJvmtiUtils.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/vm/mlvm/share/mlvmJvmtiUtils.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -30,9 +30,7 @@
#include "jvmti_tools.h"
#include "mlvmJvmtiUtils.h"
-#ifdef __cplusplus
extern "C" {
-#endif
void copyFromJString(JNIEnv * pEnv, jstring src, char ** dst) {
const char * pStr;
@@ -125,6 +123,4 @@
return tls;
}
-#ifdef __cplusplus
}
-#endif
--- a/test/hotspot/jtreg/vmTestbase/vm/mlvm/share/mlvmJvmtiUtils.h Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/vm/mlvm/share/mlvmJvmtiUtils.h Mon Sep 24 10:59:26 2018 -0700
@@ -26,9 +26,7 @@
#include "jvmti.h"
-#ifdef __cplusplus
extern "C" {
-#endif
void copyFromJString(JNIEnv * pEnv, jstring src, char ** dst);
@@ -42,8 +40,6 @@
char * locationToString(jvmtiEnv * pJvmtiEnv, jmethodID method, jlocation location);
void * getTLS(jvmtiEnv * pJvmtiEnv, jthread thread, jsize sizeToAllocate);
-#ifdef __cplusplus
}
-#endif
#endif /* MLVMJVMTIUTILS_H_ */
--- a/test/hotspot/jtreg/vmTestbase/vm/share/ProcessUtils.cpp Sat Sep 22 20:31:45 2018 -0700
+++ b/test/hotspot/jtreg/vmTestbase/vm/share/ProcessUtils.cpp Mon Sep 24 10:59:26 2018 -0700
@@ -33,9 +33,7 @@
#endif /* _WIN32 */
#include "jni_tools.h"
-#ifdef __cplusplus
extern "C" {
-#endif
/*
* Class: vm_share_ProcessUtils
@@ -261,6 +259,4 @@
#endif /* _WIN32 */
}
-#ifdef __cplusplus
}
-#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jaxp/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/JDK8209615.java Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,171 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package stream.XMLEventReaderTest;
+
+import org.testng.annotations.Listeners;
+import org.testng.annotations.Test;
+import javax.xml.stream.*;
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
+import java.util.Iterator;
+
+/*
+ * @test
+ * @bug 8209615
+ * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest
+ * @run testng/othervm -DrunSecMngr=true stream.XMLEventReaderTest.JDK8209615
+ * @run testng/othervm stream.XMLEventReaderTest.JDK8209615
+ * @summary Verifies that the parser continues parsing the character data
+ */
+@Listeners({jaxp.library.BasePolicy.class})
+public class JDK8209615 {
+
+ /**
+ * Verifies that the parser parses the xml successfully. Before the patch,
+ * the parser failed with the following error message:
+ * The element type "Data" must be terminated by the matching end-tag "</Data>".
+ *
+ * @throws Exception if the parser fails to parse the xml
+ */
+ @Test
+ public void testParseCData() throws Exception {
+
+ String xml = "<Export generator=\"Cache\" version=\"25\">\r\n"
+ + "<Class name=\"DSVRDemo.ConditionalBannerLIDR\">\r\n" + "<Description>\r\n" + "</Description>\r\n"
+ + "<Parameter name=\"XSLTMODE\">\r\n" + "</Parameter>\r\n" + "<Parameter name=\"DSSHOME\">\r\n"
+ + "</Parameter>\r\n" + "<Parameter name=\"DSSCLASS\">\r\n" + "</Parameter>\r\n"
+ + "<XData name=\"ReportModel\">\r\n" + "{t:\"txt\",gc:\r\n" + "{t:\"txt\",gc:\r\n"
+ + "{t:\"txt\",gc:\r\n" + "{t:\"txt\",gc:\r\n" + "{t:\"txt\",gc:\r\n" + "{t:\"txt\",gc:\r\n"
+ + "{t:\"txt\",gc:\r\n" + "{t:\"txt\",gc:\r\n" + "{t:\"txt\",gc:\r\n" + "{t:\"box\",gc:\r\n"
+ + "{t:\"txt\",gc:\r\n" + "{t:\"txt\",gc:\r\n" + "{t:\"txt\",gc:\r\n" + "{t:\"txt\",gc:\r\n"
+ + "{t:\"txt\",gc:\r\n" + "{t:\"box\",gc:\r\n" + "{t:\"txt\",gc:\r\n" + "{t:\"txt\",gc:\r\n"
+ + "{t:\"txt\",gc:\r\n" + "{t:\"txt\",gc:\r\n" + "{t:\"txt\",gc:\r\n" + "{t:\"txt\",gc:\r\n"
+ + "{t:\"txt\",gc:\r\n" + "{t:\"txt\",gc:\r\n" + "{t:\"txt\",gc:\r\n" + "{t:\"txt\",gc:\r\n"
+ + "{t:\"txt\",gc:\r\n" + "{t:\"txt\",gc:\r\n" + "<Data><![CDATA[\r\n" + "<pageheader>\r\n"
+ + "<![CDATA[\r\n" + "</svg:text>\r\n"
+ + "<svg:text x=\"0\" y=\"30.333333333333336\" style=\"font-size:10;font-family:sans-serif;fill:#000000;fill-opacity:1;font-weight:bold;\" >\r\n"
+ + "Run by:\r\n" + "</svg:text>\r\n" + "<xsl:value-of select=\"@Genre\"/>\r\n" + "</svg:text>\r\n"
+ + "<svg:text x=\"0\" y=\"19.333333333333336\" style=\"font-size:10;font-family:sans-serif;fill:#000000;fill-opacity:1;font-weight:bold;\" >\r\n"
+ + "Genre:\r\n" + "</svg:text>\r\n"
+ + "<svg:rect x=\"70\" y=\"0\" width=\"86\" height=\"11\" style=\"fill:#ffffff;fill-opacity:0;stroke-width:0;\" />\r\n"
+ + "<svg:text x=\"70\" y=\"8.333333333333334\" style=\"font-size:10;font-family:sans-serif;fill:#000000;fill-opacity:1;font-weight:bold;\" >\r\n"
+ + "</svg:text>\r\n"
+ + "<svg:rect x=\"0\" y=\"0\" width=\"70\" height=\"11\" style=\"fill:#ffffff;fill-opacity:0;stroke-width:0;\" />\r\n"
+ + "<svg:text x=\"0\" y=\"8.333333333333334\" style=\"font-size:10;font-family:sans-serif;fill:#000000;fill-opacity:1;font-weight:bold;\" >\r\n"
+ + "Run time:\r\n" + "</svg:text>\r\n"
+ + "<svg:line x1=\"0\" y1=\"34\" x2=\"466\" y2=\"34\" style=\"stroke:#000000;stroke-width:2;stroke-opacity:1\" />\r\n"
+ + "</svg:svg>\r\n" + "</fo:instream-foreign-object>\r\n" + "</fo:block>\r\n" + "]]]]><![CDATA[>\r\n"
+ + "<!-- end of PAGE HEADER -->\r\n" + "<pagefooter>\r\n" + "<!-- PAGE FOOTER -->\r\n" + "<write>\r\n"
+ + "<![CDATA[\r\n" + "<fo:block font-size=\"0pt\" >\r\n" + "<fo:instream-foreign-object>\r\n"
+ + "<svg:svg width=\"468pt\" height=\"37pt\" viewBox=\"0 0 468 37\" >\r\n"
+ + "<svg:line x1=\"0\" y1=\"1\" x2=\"466\" y2=\"1\" style=\"stroke:#000000;stroke-width:2;stroke-opacity:1\" />\r\n"
+ + "<svg:rect x=\"70\" y=\"2\" width=\"86\" height=\"11\" style=\"fill:#ffffff;fill-opacity:0;stroke-width:0;\" />\r\n"
+ + "<xsl:value-of select=\"@runBy\"/>\r\n" + "</svg:text>\r\n"
+ + "<svg:rect x=\"0\" y=\"2\" width=\"70\" height=\"11\" style=\"fill:#ffffff;fill-opacity:0;stroke-width:0;\" />\r\n"
+ + "<svg:text x=\"0\" y=\"10.333333333333334\" style=\"font-size:10;font-family:sans-serif;fill:#000000;fill-opacity:1;font-weight:bold;\" >\r\n"
+ + "</svg:text>\r\n"
+ + "<svg:rect x=\"70\" y=\"13\" width=\"86\" height=\"11\" style=\"fill:#ffffff;fill-opacity:0;stroke-width:0;\" />\r\n"
+ + "</svg:text>\r\n"
+ + "<svg:text x=\"0\" y=\"21.333333333333336\" style=\"font-size:10;font-family:sans-serif;fill:#000000;fill-opacity:1;font-weight:bold;\" >\r\n"
+ + "</svg:text>\r\n"
+ + "<svg:rect x=\"70\" y=\"24\" width=\"86\" height=\"11\" style=\"fill:#ffffff;fill-opacity:0;stroke-width:0;\" />\r\n"
+ + "<svg:text x=\"70\" y=\"32.333333333333336\" style=\"font-size:10;font-family:sans-serif;fill:#000000;fill-opacity:1;font-weight:bold;\" >\r\n"
+ + "</svg:text>\r\n"
+ + "<svg:rect x=\"0\" y=\"24\" width=\"70\" height=\"11\" style=\"fill:#ffffff;fill-opacity:0;stroke-width:0;\" />\r\n"
+ + "<svg:text x=\"0\" y=\"32.333333333333336\" style=\"font-size:10;font-family:sans-serif;fill:#000000;fill-opacity:1;font-weight:bold;\" >\r\n"
+ + "Run time:\r\n" + "</svg:text>\r\n"
+ + "<svg:rect x=\"312\" y=\"23\" width=\"156\" height=\"12\" style=\"fill:#ffffff;fill-opacity:0;stroke-width:0;\" />\r\n"
+ + "<svg:text x=\"468\" y=\"31.333333333333336\" style=\"font-size:10;font-family:sans-serif;fill:#000000;fill-opacity:1;font-weight:bold;text-anchor:end;\" >\r\n"
+ + "Annotated Box Office\r\n" + "</svg:text>\r\n" + "</fo:instream-foreign-object>\r\n"
+ + "</fo:block>\r\n" + "<!-- end of PAGE FOOTER -->\r\n" + "</pagefooter>\r\n" + "<body>\r\n"
+ + "<write>\r\n" + "<![CDATA[\r\n" + "<fo:block font-size=\"0pt\" >\r\n"
+ + "<svg:svg width=\"468pt\" height=\"205pt\" viewBox=\"0 0 468 205\" >\r\n"
+ + "<svg:rect x=\"1\" y=\"73\" width=\"466\" height=\"126\" style=\"fill-opacity:1;fill:#ffffff;stroke:#000000;stroke-width:2;stroke-opacity:1\" />\r\n"
+ + "<svg:rect x=\"0\" y=\"74\" width=\"468\" height=\"44\" style=\"fill:#ffffff;fill-opacity:0;stroke-width:0;\" />\r\n"
+ + "Annotated Box Office\r\n" + "</svg:text>\r\n"
+ + "<svg:rect x=\"246\" y=\"118\" width=\"222\" height=\"16\" style=\"fill:#ffffff;fill-opacity:0;stroke-width:0;\" />\r\n"
+ + "<svg:text x=\"246\" y=\"129.66666666666666\" style=\"font-size:14;font-family:sans-serif;fill:#000000;fill-opacity:1;font-weight:bold;\" >\r\n"
+ + "</svg:text>\r\n"
+ + "<svg:rect x=\"0\" y=\"118\" width=\"222\" height=\"16\" style=\"fill:#ffffff;fill-opacity:0;stroke-width:0;\" />\r\n"
+ + "<svg:text x=\"222\" y=\"129.66666666666666\" style=\"font-size:14;font-family:sans-serif;fill:#000000;fill-opacity:1;font-weight:bold;text-anchor:end;\" >\r\n"
+ + "Run by:\r\n" + "</svg:text>\r\n"
+ + "<svg:rect x=\"246\" y=\"134\" width=\"222\" height=\"16\" style=\"fill:#ffffff;fill-opacity:0;stroke-width:0;\" />\r\n"
+ + "</svg:text>\r\n"
+ + "<svg:text x=\"222\" y=\"145.66666666666666\" style=\"font-size:14;font-family:sans-serif;fill:#000000;fill-opacity:1;font-weight:bold;text-anchor:end;\" >\r\n"
+ + "Genre:\r\n"
+ + "<svg:rect x=\"246\" y=\"150\" width=\"222\" height=\"16\" style=\"fill:#ffffff;fill-opacity:0;stroke-width:0;\" />\r\n"
+ + "<svg:text x=\"246\" y=\"161.66666666666666\" style=\"font-size:14;font-family:sans-serif;fill:#000000;fill-opacity:1;font-weight:bold;\" >\r\n"
+ + "<xsl:value-of select=\"@runTime\"/>\r\n"
+ + "<svg:rect x=\"0\" y=\"150\" width=\"222\" height=\"16\" style=\"fill:#ffffff;fill-opacity:0;stroke-width:0;\" />\r\n"
+ + "Run time:\r\n" + "</svg:text>\r\n"
+ + "<svg:rect x=\"246\" y=\"166\" width=\"222\" height=\"16\" style=\"fill:#ffffff;fill-opacity:0;stroke-width:0;\" />\r\n"
+ + "<svg:text x=\"246\" y=\"177.66666666666666\" style=\"font-size:14;font-family:sans-serif;fill:#000000;fill-opacity:1;font-weight:bold;\" >\r\n"
+ + "<xsl:value-of select=\"TotalTicketsSold\"/>\r\n" + "</svg:text>\r\n"
+ + "<svg:rect x=\"0\" y=\"166\" width=\"222\" height=\"16\" style=\"fill:#ffffff;fill-opacity:0;stroke-width:0;\" />\r\n"
+ + "<svg:text x=\"222\" y=\"177.66666666666666\" style=\"font-size:14;font-family:sans-serif;fill:#000000;fill-opacity:1;font-weight:bold;text-anchor:end;\" >\r\n"
+ + "Total tickets sold:\r\n" + "</svg:text>\r\n"
+ + "<svg:rect x=\"246\" y=\"182\" width=\"222\" height=\"16\" style=\"fill:#ffffff;fill-opacity:0;stroke-width:0;\" />\r\n"
+ + "<svg:text x=\"246\" y=\"193.66666666666666\" style=\"font-size:14;font-family:sans-serif;fill:#000000;fill-opacity:1;font-weight:bold;\" >\r\n"
+ + "<xsl:value-of select=\"TotalFilms\"/>\r\n" + "</svg:text>\r\n"
+ + "<svg:rect x=\"0\" y=\"182\" width=\"222\" height=\"16\" style=\"fill:#ffffff;fill-opacity:0;stroke-width:0;\" />\r\n"
+ + "<svg:text x=\"222\" y=\"193.66666666666666\" style=\"font-size:14;font-family:sans-serif;fill:#000000;fill-opacity:1;font-weight:bold;text-anchor:end;\" >\r\n"
+ + "Total films:\r\n" + "</svg:text>\r\n" + "</svg:svg>\r\n" + "]]]]><![CDATA[>\r\n" + "</write>\r\n"
+ + "<pagebreak/>\r\n" + "<!-- end of REPORT HEADER -->\r\n" + "<group name='FilmsByGenre' >\r\n"
+ + "<!-- GROUP HEADER (FilmsByGenre) -->\r\n" + "<write>\r\n" + "<![CDATA[\r\n"
+ + "<fo:block font-size=\"0pt\" >\r\n" + "<fo:instream-foreign-object>\r\n"
+ + "<svg:svg width=\"468pt\" height=\"74pt\" viewBox=\"0 0 468 74\" >\r\n"
+ + "<svg:text x=\"78\" y=\"55\" style=\"font-size:12;font-family:sans-serif;fill:#000000;fill-opacity:1;font-weight:bold;\" >\r\n"
+ + "<xsl:value-of select=\"TitleCount\"/>\r\n" + "</svg:text>\r\n"
+ + "<svg:rect x=\"0\" y=\"45\" width=\"78\" height=\"14\" style=\"fill:#ffffff;fill-opacity:0;stroke-width:0;\" />\r\n"
+ + "<svg:text x=\"0\" y=\"55\" style=\"font-size:12;font-family:sans-serif;fill:#000000;fill-opacity:1;font-weight:bold;\" >\r\n"
+ + "Title count:\r\n" + "</svg:text>\r\n"
+ + "<svg:rect x=\"156\" y=\"24\" width=\"156\" height=\"21\" style=\"fill:#ffffff;fill-opacity:0;stroke-width:0;\" />\r\n"
+ + "<xsl:value-of select=\"@CategoryName\"/>\r\n" + "</svg:text>\r\n"
+ + "<svg:text x=\"468\" y=\"55\" style=\"font-size:12;font-family:sans-serif;fill:#000000;fill-opacity:1;font-weight:bold;text-anchor:end;\" >\r\n"
+ + "<svg:rect x=\"312\" y=\"45\" width=\"78\" height=\"14\" style=\"fill:#ffffff;fill-opacity:0;stroke-width:0;\" />\r\n"
+ + "<svg:text x=\"390\" y=\"55\" style=\"font-size:12;font-family:sans-serif;fill:#000000;fill-opacity:1;font-weight:bold;text-anchor:end;\" >\r\n"
+ + "</svg:text>\r\n"
+ + "<svg:line x1=\"0\" y1=\"60\" x2=\"466\" y2=\"60\" style=\"stroke:#000000;stroke-width:2;stroke-opacity:1\" />\r\n"
+ + "</svg:svg>\r\n" + "</fo:instream-foreign-object>\r\n" + "</fo:block>\r\n" + "]]]]><![CDATA[>\r\n"
+ + "</write>\r\n" + "<group name='FilmDetail' >\r\n" + "<!-- REPORT BODY (FilmDetail) -->\r\n"
+ + "<write>\r\n" + "<![CDATA[\r\n" + "<fo:block font-size=\"0pt\">\r\n"
+ + "<fo:instream-foreign-object>\r\n"
+ + "<svg:svg width=\"468pt\" height=\"71pt\" viewBox=\"0 0 468 71\" >\r\n"
+ + "<svg:rect x=\"3\" y=\"4\" width=\"257\" height=\"16\" style=\"fill:#ffffff;fill-opacity:0;stroke-width:0;\" />\r\n"
+ + "<svg:text x=\"3\" y=\"14\" style=\"font-size:12;font-family:sans-serif;fill:#000000;fill-opacity:1;font-weight:bold;\" >\r\n"
+ + "</svg:text>\r\n" + "</report>]]></Data>\r\n" + "</XData>\r\n" + "</Class>\r\n" + "</Export>\r\n";
+ try (ByteArrayInputStream inputStream = new ByteArrayInputStream(xml.getBytes(StandardCharsets.UTF_8))) {
+ stax(inputStream);
+ }
+
+ }
+
+ private static void stax(InputStream input) throws XMLStreamException, FactoryConfigurationError {
+ XMLEventReader eventReader = XMLInputFactory.newInstance()
+ .createXMLEventReader(input);
+ ((Iterator<?>) eventReader).forEachRemaining(ignored -> {
+ });
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jaxp/javax/xml/jaxp/unittest/transform/JDK8207760.java Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,175 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package transform;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.nio.charset.StandardCharsets;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+
+import org.testng.Assert;
+import org.testng.annotations.Listeners;
+import org.testng.annotations.Test;
+import java.util.Random;
+import javax.xml.transform.OutputKeys;
+import org.testng.annotations.DataProvider;
+
+/*
+ * @test
+ * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest
+ * @run testng/othervm transform.JDK8207760
+ * @summary Verifies that a surrogate pair at the edge of a buffer is properly handled
+ * @bug 8207760
+ */
+@Listeners({jaxp.library.FilePolicy.class})
+public class JDK8207760 {
+ final String xsl8207760 =
+ "<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\">\n" +
+ " <xsl:output omit-xml-declaration=\"yes\" indent=\"no\" />\n" +
+ "\n" +
+ " <xsl:template match=\"node()|@*\">\n" +
+ " <xsl:copy>\n" +
+ " <xsl:apply-templates select=\"node()|@*\" />\n" +
+ " </xsl:copy>\n" +
+ " </xsl:template>\n" +
+ "</xsl:stylesheet>\n";
+
+ final String xsl8207760_2 = "<xsl:stylesheet \n" +
+ " version=\"1.0\" \n" +
+ " xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\">\n" +
+ "\n" +
+ " <xsl:output method=\"xml\" indent=\"no\" cdata-section-elements=\"source\"/>\n" +
+ "\n" +
+ " <xsl:template match=\"source\">\n" +
+ " <xsl:copy>\n" +
+ " <xsl:apply-templates select=\"node()\" />\n" +
+ " </xsl:copy>\n" +
+ " </xsl:template>\n" +
+ "\n" +
+ "</xsl:stylesheet>";
+
+ final String xsl8207760_3 = "<xsl:stylesheet \n" +
+ " version=\"1.0\" \n" +
+ " xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\">\n" +
+ "\n" +
+ " <xsl:output method=\"xml\" indent=\"no\" cdata-section-elements=\"source\"/>\n" +
+ "\n" +
+ " <xsl:template match=\"source\">\n" +
+ " <xsl:copy>\n" +
+ " <!-- Copy the attributes -->\n" +
+ " <xsl:apply-templates select=\"@*\"/>\n" +
+ " <!-- Convert the contained nodes (elements and text) into text -->\n" +
+ " <xsl:variable name=\"subElementsText\">\n" +
+ " <xsl:apply-templates select=\"node()\"/>\n" +
+ " </xsl:variable>\n" +
+ " <!-- Output the XML directive and the converted nodes -->\n" +
+ " <xsl:value-of select=\"$subElementsText\"/>\n" +
+ " </xsl:copy>\n" +
+ " </xsl:template>\n" +
+ "\n" +
+ "</xsl:stylesheet>";
+
+ @DataProvider(name = "xsls")
+ public Object[][] getDataBug8207760_cdata() {
+ return new Object[][]{
+ {xsl8207760_2},
+ {xsl8207760_3},
+ };
+ }
+
+ /*
+ * @bug 8207760
+ * Verifies that a surrogate pair at the edge of a buffer is properly handled
+ * when serializing into a Character section.
+ */
+ @Test
+ public final void testBug8207760() throws Exception {
+ String[] xmls = prepareXML(false);
+ Transformer t = createTransformerFromInputstream(
+ new ByteArrayInputStream(xsl8207760.getBytes(StandardCharsets.UTF_8)));
+ t.setOutputProperty(OutputKeys.ENCODING, StandardCharsets.UTF_8.name());
+ StringWriter sw = new StringWriter();
+ t.transform(new StreamSource(new StringReader(xmls[0])), new StreamResult(sw));
+ Assert.assertEquals(sw.toString().replaceAll(System.lineSeparator(), "\n"), xmls[1]);
+ }
+
+ /*
+ * @bug 8207760
+ * Verifies that a surrogate pair at the edge of a buffer is properly handled
+ * when serializing into a CDATA section.
+ */
+ @Test(dataProvider = "xsls")
+ public final void testBug8207760_cdata(String xsl) throws Exception {
+ String[] xmls = prepareXML(true);
+ Transformer t = createTransformerFromInputstream(
+ new ByteArrayInputStream(xsl.getBytes(StandardCharsets.UTF_8)));
+ t.setOutputProperty(OutputKeys.ENCODING, StandardCharsets.UTF_8.name());
+ StringWriter sw = new StringWriter();
+ t.transform(new StreamSource(new StringReader(xmls[0])), new StreamResult(sw));
+ Assert.assertEquals(sw.toString().replaceAll(System.lineSeparator(), "\n"), xmls[1]);
+ }
+
+ private String[] prepareXML(boolean cdata) {
+ String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><source>";
+ if (cdata) {
+ xml += "<![CDATA[";
+ }
+ String tail = "abc 123 </source>";
+ if (cdata) {
+ tail = "abc 123 ]]></source>";
+ }
+ String temp = generateString(1023);
+ xml = xml + temp + '\uD83C' + '\uDF42' + tail;
+ //xml = xml + temp + tail;
+ String expected = (!cdata) ? "<source>" + temp + "🍂" + tail
+ : xml;
+
+ return new String[]{xml, expected};
+ }
+
+ static final char[] CHARS = "abcdefghijklmnopqrstuvwxyz \n".toCharArray();
+ StringBuilder sb = new StringBuilder(1024 << 4);
+ Random random = new Random();
+
+ private String generateString(int size) {
+ sb.setLength(0);
+ for (int i = 0; i < size; i++) {
+ char c = CHARS[random.nextInt(CHARS.length)];
+ sb.append(c);
+ }
+
+ return sb.toString();
+ }
+
+ private Transformer createTransformerFromInputstream(InputStream xslStream)
+ throws TransformerException {
+ return TransformerFactory.newInstance().newTransformer(new StreamSource(xslStream));
+ }
+}
--- a/test/jdk/ProblemList.txt Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/ProblemList.txt Mon Sep 24 10:59:26 2018 -0700
@@ -516,8 +516,6 @@
java/lang/instrument/RedefineBigClass.sh 8065756 generic-all
java/lang/instrument/RetransformBigClass.sh 8065756 generic-all
-java/lang/instrument/BootClassPath/BootClassPathTest.sh 8072130 macosx-all
-
java/lang/management/MemoryMXBean/Pending.java 8158837 generic-all
java/lang/management/MemoryMXBean/PendingAllGC.sh 8158837 generic-all
@@ -558,9 +556,6 @@
java/net/DatagramSocket/SendDatagramToBadAddress.java 7143960 macosx-all
-java/net/Socket/LingerTest.java 8208690 generic-all
-sun/net/www/http/HttpClient/MultiThreadTest.java 8208690 generic-all
-
############################################################################
# jdk_nio
@@ -834,8 +829,6 @@
com/sun/jdi/BasicJDWPConnectionTest.java 8195703 generic-all
-com/sun/jdi/RedefineImplementor.sh 8004127 generic-all
-
com/sun/jdi/RepStep.java 8043571 generic-all
com/sun/jdi/sde/SourceDebugExtensionTest.java 8158066 windows-all
--- a/test/jdk/com/sun/crypto/provider/Mac/HmacSHA512.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/com/sun/crypto/provider/Mac/HmacSHA512.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -21,7 +21,7 @@
* questions.
*/
-import jdk.testlibrary.Asserts;
+import jdk.test.lib.Asserts;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
@@ -30,7 +30,7 @@
/**
* @test
* @bug 8051408
- * @library /lib/testlibrary
+ * @library /test/lib
* @summary testing HmacSHA512/224 and HmacSHA512/256.
*/
public class HmacSHA512 {
--- a/test/jdk/com/sun/jdi/BasicJDWPConnectionTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/com/sun/jdi/BasicJDWPConnectionTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/test/jdk/com/sun/jdi/NoLaunchOptionTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/com/sun/jdi/NoLaunchOptionTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -21,7 +21,7 @@
* questions.
*/
-import static jdk.testlibrary.Asserts.assertFalse;
+import static jdk.test.lib.Asserts.assertFalse;
import jdk.test.lib.process.OutputAnalyzer;
import jdk.test.lib.process.ProcessTools;
@@ -31,11 +31,10 @@
* @summary Test for -Xrunjdwp:[onthrow,onuncaught] suboptions require launch suboption
* @author Tim Bell
*
- * @library /lib/testlibrary
* @library /test/lib
*
* @run compile -g NoLaunchOptionTest.java
- * @build jdk.testlibrary.* VMConnection
+ * @build VMConnection
* @run driver NoLaunchOptionTest
*/
public class NoLaunchOptionTest extends Object {
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/jdi/RedefineException.java Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,104 @@
+/*
+ * 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
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 4559100
+ * @summary The VM crashes when a method in a redefined class throws an exception.
+ * @comment converted from test/jdk/com/sun/jdi/RedefineException.sh
+ *
+ * @library /test/lib
+ * @run main/othervm RedefineException
+ */
+
+/* This is another symptomm of 4559100
+ * This causes a bus error on solsparc:
+ * ---- called from signal handler with signal 10 (SIGBUS) ------
+ * [11] constantPoolOopDesc::klass_at_if_loaded(0xffbed4d8, 0x16, 0xffbed5cc, 0x0, 0x1, 0xfa40b330), at 0xfe11568c
+ * [12] methodOopDesc::fast_exception_handler_bci_for(0x6, 0x1, 0xfe400a0c, 0x0, 0x2d1f0, 0x0), at 0xfe12e620
+ * [13] jvmdi::post_exception_throw_event(0x2d1f0, 0xf61036f8, 0xf6103752, 0xf20414a8, 0x2e2928, 0xfe12e190), at 0xfe2a4fa4
+ */
+
+import lib.jdb.JdbCommand;
+import lib.jdb.JdbTest;
+
+class RedefineExceptionTarg {
+ String str;
+ int ii;
+ static public void main(String[] args) {
+ System.out.println("In Main");
+ RedefineExceptionTarg mine = new RedefineExceptionTarg();
+ mine.a1();
+ }
+
+ public void a1() {
+ int a1local = 1;
+ String a1string = "a1";
+
+ ii = 89; // @1 delete this line
+ str = "foo";
+ System.out.println("a1: Calling the original a2/a3. 'The @@@ deleted lines should appear");
+ System.out.println("ii = " + ii); // @1 delete this line
+ a2();
+ }
+
+ public void a2() {
+ int a2local = 2;
+ String a2string = "a2";
+ //System.out.println("a2: @ @@delete this line");
+ try {
+ a3();
+ } catch (Exception ee) {
+ System.out.println("a2: Exception caught");
+ }
+ System.out.println("a2: done");
+ }
+
+ public void a3() throws Exception {
+ int a3local = 3;
+ String a3string = "a3";
+ System.out.println("a3: @@ delete this line"); // If this line is deleted, the test passes!
+ System.out.println("a3: @1 breakpoint here a3");
+ throw new Exception("This is the exception");
+ }
+}
+
+public class RedefineException extends JdbTest {
+
+ public static void main(String argv[]) {
+ new RedefineException().run();
+ }
+
+ private RedefineException() {
+ super(RedefineExceptionTarg.class.getName(), "RedefineException.java");
+ }
+
+ @Override
+ protected void runCases() {
+ setBreakpoints(1);
+ jdb.command(JdbCommand.run());
+ redefineClass(1);
+ jdb.command(JdbCommand.pop());
+ jdb.contToExit(1);
+ }
+}
--- a/test/jdk/com/sun/jdi/RedefineException.sh Sat Sep 22 20:31:45 2018 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,119 +0,0 @@
-#!/bin/sh
-
-#
-# Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-
-# @test
-# @bug 4559100
-# @summary The VM crashes when a method in a redefined class throws an exception.
-# @author Jim Holmlund
-#
-# @key intermittent
-# @run shell RedefineException.sh
-
-# This is another symptomm of 4559100
-# This causes a bus error on solsparc:
-# ---- called from signal handler with signal 10 (SIGBUS) ------
-# [11] constantPoolOopDesc::klass_at_if_loaded(0xffbed4d8, 0x16, 0xffbed5cc, 0x0, 0x1, 0xfa40b330), at 0xfe11568c
-# [12] methodOopDesc::fast_exception_handler_bci_for(0x6, 0x1, 0xfe400a0c, 0x0, 0x2d1f0, 0x0), at 0xfe12e620
-# [13] jvmdi::post_exception_throw_event(0x2d1f0, 0xf61036f8, 0xf6103752, 0xf20414a8, 0x2e2928, 0xfe12e190), at 0xfe2a4fa4
-
-# These are variables that can be set to control execution
-
-createJavaFile()
-{
- cat <<EOF > $1.java.1
-
-public class $1 {
- String str;
- int ii;
- static public void main(String[] args) {
- System.out.println("In Main");
- $1 mine = new $1();
- mine.a1();
- }
-
- public void a1() {
- int a1local = 1;
- String a1string = "a1";
-
- ii = 89; // @1 delete this line
- str = "foo";
- System.out.println("a1: Calling the original a2/a3. 'The @@@ deleted lines should appear");
- System.out.println("ii = " + ii); // @1 delete this line
- a2();
- }
-
- public void a2() {
- int a2local = 2;
- String a2string = "a2";
- //System.out.println("a2: @ @@delete this line");
- try {
- a3();
- } catch (Exception ee) {
- System.out.println("a2: Exception caught");
- }
- System.out.println("a2: done");
- }
-
- public void a3() throws Exception {
- int a3local = 3;
- String a3string = "a3";
- System.out.println("a3: @@ delete this line"); // If this line is deleted, the test passes!
- System.out.println("a3: @1 breakpoint here a3");
- throw new Exception("This is the exception");
- }
-}
-EOF
-}
-
-dojdbCmds()
-{
- setBkpts @1
- runToBkpt
- redefineClass @1
- cmd pop
- cmd allowExit cont
-}
-
-
-mysetup()
-{
- if [ -z "$TESTSRC" ] ; then
- TESTSRC=.
- fi
-
- for ii in . $TESTSRC $TESTSRC/.. ; do
- if [ -r "$ii/ShellScaffold.sh" ] ; then
- . $ii/ShellScaffold.sh
- break
- fi
- done
-}
-
-# You could replace this next line with the contents
-# of ShellScaffold.sh and this script will run just the same.
-mysetup
-
-runit
-pass
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/jdi/RedefineFinal.java Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,86 @@
+/*
+ * 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
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 4788344
+ * @summary RedefineClasses is an apparent no-op if instance method is final
+ * @comment converted from test/jdk/com/sun/jdi/RedefineFinal.sh
+ *
+ * @library /test/lib
+ * @compile -g RedefineFinal.java
+ * @run main/othervm RedefineFinal
+ */
+
+import jdk.test.lib.process.OutputAnalyzer;
+import lib.jdb.JdbCommand;
+import lib.jdb.JdbTest;
+
+final class RedefineFinalTarg {
+
+ public int m1(int i) {
+ // @1 uncomment System.out.println("I'm here");
+ return m2(i, 1000);
+ }
+
+ public int m2(int i, int j) {
+ if (i < 0 || j < 0) { // @1 breakpoint
+ throw new IllegalArgumentException();
+ }
+ return i+j;
+ }
+
+ RedefineFinalTarg() {
+ m1(0);
+ m1(0);
+ }
+
+ public static void main(String args[]) {
+ new RedefineFinalTarg();
+ }
+}
+
+public class RedefineFinal extends JdbTest {
+
+ public static void main(String argv[]) {
+ new RedefineFinal().run();
+ }
+
+ private RedefineFinal() {
+ super(RedefineFinalTarg.class.getName(), "RedefineFinal.java");
+ }
+
+ @Override
+ protected void runCases() {
+ setBreakpoints(1);
+ jdb.command(JdbCommand.run());
+ redefineClass(1, "-g");
+ setBreakpoints(1);
+ jdb.command(JdbCommand.cont());
+ jdb.command(JdbCommand.where(""));
+ jdb.contToExit(1);
+
+ new OutputAnalyzer(getJdbOutput())
+ .shouldNotContain("obsolete");
+ }
+}
--- a/test/jdk/com/sun/jdi/RedefineFinal.sh Sat Sep 22 20:31:45 2018 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,103 +0,0 @@
-#!/bin/sh
-
-#
-# Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-
-# @test
-# @bug 4788344
-# @summary RedefineClasses is an apparent no-op if instance method is final
-#
-# @key intermittent
-# @run shell RedefineFinal.sh
-
-compileOptions=-g
-compileOptions2=-g
-
-# Uncomment this to see the JDI trace
-#jdbOptions=-dbgtrace
-
-createJavaFile()
-{
- cat <<EOF > $1.java.1
-
-public final class $1 {
-
- public int m1(int i) {
- // @1 uncomment System.out.println("I'm here");
- return m2(i, 1000);
- }
-
- public int m2(int i, int j) {
- if (i < 0 || j < 0) { // @1 breakpoint
- throw new IllegalArgumentException();
- }
- return i+j;
- }
-
- $1() {
- m1(0);
- m1(0);
- }
-
- public static void main(String args[]) {
- new $1();
- }
-}
-EOF
-}
-
-# This is called to feed cmds to jdb.
-dojdbCmds()
-{
- setBkpts @1
- runToBkpt @1
- redefineClass @1
- setBkpts @1
- contToBkpt
- cmd where
- cmd allowExit cont
-}
-
-
-mysetup()
-{
- if [ -z "$TESTSRC" ] ; then
- TESTSRC=.
- fi
-
- for ii in . $TESTSRC $TESTSRC/.. ; do
- if [ -r "$ii/ShellScaffold.sh" ] ; then
- . $ii/ShellScaffold.sh
- break
- fi
- done
-}
-
-# You could replace this next line with the contents
-# of ShellScaffold.sh and this script will run just the same.
-mysetup
-
-runit
-
-jdbFailIfPresent 'obsolete'
-pass
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/jdi/RedefineIntConstantToLong.java Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,101 @@
+/*
+ * Copyright (c) 2006, 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 6394084
+ * @summary Redefine class can't handle addition of 64 bit constants in JDK1.5.0_05
+ * @comment converted from test/jdk/com/sun/jdi/RedefineIntConstantToLong.sh
+ *
+ * @library /test/lib
+ * @compile -g RedefineIntConstantToLong.java
+ * @run main/othervm RedefineIntConstantToLong
+ */
+
+import jdk.test.lib.process.OutputAnalyzer;
+import lib.jdb.JdbCommand;
+import lib.jdb.JdbTest;
+
+final class RedefineIntConstantToLongTarg {
+
+ public long m1(int i) {
+ long r=0;
+ r = m2(i * 2); // @1 commentout
+ // @1 uncomment r =m2(i * 2L);
+ return r;
+ }
+
+ public long m2(int j) {
+ System.out.println(System.getProperty("line.separator") +
+ "**** public long m2(int j) with value: " + j);
+ return j;
+ }
+
+ public long m2(long j) {
+ System.out.println(System.getProperty("line.separator") +
+ "**** public long m2(long j) with value: " + j);
+ return j;
+ }
+
+ public void doit() throws Exception {
+ long r1 = 0;
+ long r2;
+ r1 = m1(1000);
+ r2 = 0; // @1 breakpoint
+ r2 = m1(1000);
+ if (r1 != r2) { // @1 breakpoint
+ throw new Exception("FAILURE: Expected value: " + r1 + " Actual value: " + r2);
+ } else {
+ System.out.println("SUCCESS: Expected value: " + r1 + " Actual value: " + r2);
+ }
+ }
+
+ public static void main(String args[]) throws Exception {
+ new RedefineIntConstantToLongTarg().doit();
+ }
+}
+
+public class RedefineIntConstantToLong extends JdbTest {
+
+ public static void main(String argv[]) {
+ new RedefineIntConstantToLong().run();
+ }
+
+ private RedefineIntConstantToLong() {
+ super(RedefineIntConstantToLongTarg.class.getName(), "RedefineIntConstantToLong.java");
+ }
+
+ @Override
+ protected void runCases() {
+ setBreakpoints(1);
+ jdb.command(JdbCommand.run());
+ redefineClass(1, "-g");
+ setBreakpoints(1);
+ jdb.command(JdbCommand.cont());
+ jdb.command(JdbCommand.where(""));
+ jdb.contToExit(1);
+
+ new OutputAnalyzer(getJdbOutput())
+ .shouldNotContain("FAILURE:");
+ }
+}
--- a/test/jdk/com/sun/jdi/RedefineIntConstantToLong.sh Sat Sep 22 20:31:45 2018 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,118 +0,0 @@
-#!/bin/sh
-
-#
-# Copyright (c) 2006, 2014, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-
-# @test
-# @bug 6394084
-# @summary Redefine class can't handle addition of 64 bit constants in JDK1.5.0_05
-#
-# @key intermittent
-# @run shell RedefineIntConstantToLong.sh
-
-compileOptions=-g
-compileOptions2=-g
-
-# Uncomment this to see the JDI trace
-#jdbOptions=-dbgtrace
-
-createJavaFile()
-{
- cat <<EOF > $1.java.1
-
-public final class $1 {
-
- public long m1(int i) {
- long r=0;
- r = m2(i * 2); // @1 commentout
- // @1 uncomment r =m2(i * 2L);
- return r;
- }
-
- public long m2(int j) {
- System.out.println(System.getProperty("line.separator") +
- "**** public long m2(int j) with value: " + j);
- return j;
- }
-
- public long m2(long j) {
- System.out.println(System.getProperty("line.separator") +
- "**** public long m2(long j) with value: " + j);
- return j;
- }
-
- public void doit() throws Exception {
- long r1 = 0;
- long r2;
- r1 = m1(1000);
- r2 = 0; // @1 breakpoint
- r2 = m1(1000);
- if (r1 != r2) { // @1 breakpoint
- throw new Exception("FAILURE: Expected value: " + r1 + " Actual value: " + r2);
- } else {
- System.out.println("SUCCESS: Expected value: " + r1 + " Actual value: " + r2);
- }
- }
-
- public static void main(String args[]) throws Exception {
- new $1().doit();
- }
-}
-EOF
-}
-
-# This is called to feed cmds to jdb.
-dojdbCmds()
-{
- setBkpts @1
- runToBkpt @1
- redefineClass @1
- setBkpts @1
- contToBkpt
- cmd where
- cmd allowExit cont
-}
-
-
-mysetup()
-{
- if [ -z "$TESTSRC" ] ; then
- TESTSRC=.
- fi
-
- for ii in . $TESTSRC $TESTSRC/.. ; do
- if [ -r "$ii/ShellScaffold.sh" ] ; then
- . $ii/ShellScaffold.sh
- break
- fi
- done
-}
-
-# You could replace this next line with the contents
-# of ShellScaffold.sh and this script will run just the same.
-mysetup
-
-runit
-
-jdbFailIfPresent 'FAILURE:'
-pass
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/jdi/RedefineMulti.java Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,140 @@
+/*
+ * 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
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 4724076
+ * @summary Redefine does not work in for/while loop
+ * @comment converted from test/jdk/com/sun/jdi/RedefineMulti.sh
+ *
+ * @library /test/lib
+ * @compile -g RedefineMulti.java
+ * @run main/othervm RedefineMulti
+ */
+
+/*
+ * The failure occurs when a method is active and
+ * a method that it calls multiple times is redefined
+ * more than once.
+ */
+
+import jdk.test.lib.process.OutputAnalyzer;
+import lib.jdb.JdbCommand;
+import lib.jdb.JdbTest;
+
+class RedefineMultiTarg {
+
+ String field1;
+ String field2;
+
+ // The first time thru the loop in start,
+ // "Before update..." should be printed.
+ // After the first redefine, "After update..." should be printed
+ // After the 2nd redefine, "abcde..." should be printed.
+ // The bug is that "After update..." is printed instead because
+ // stat() calls version 2 of doSomething() instead of
+ // version 3.
+ private void doSomething() {
+ System.out.println("Before update..."); // @1 commentout
+ // @1 uncomment System.out.println("After update..."); // @2 commentout
+ // @2 uncomment System.out.println("abcde...");
+ }
+
+ public void start() {
+ for (int i=0; i < 3; i++) {
+ doSomething(); // @1 breakpoint here line 16
+ System.out.println("field1 = " + field1);
+ System.out.println("field2 = " + field2);
+ }
+ // Redefinex myx = new Redefinex();
+ // for (int i = 0; i < 5; i++) {
+ // myx.methodx1(); // line 22
+ // System.out.println("fieldx1 = " + myx.fieldx1);
+ // System.out.println("fieldx2 = " + myx.fieldx2);
+ // }
+ }
+
+ public static void main(String[] args) {
+ RedefineMultiTarg xxx = new RedefineMultiTarg();
+ xxx.field1 = "field1";
+ xxx.field2 = "field2";
+ xxx.start();
+ }
+}
+
+class Redefinex {
+ public String fieldx1;
+ public String fieldx2;
+
+ Redefinex() {
+ fieldx1 = "fieldx1";
+ fieldx2 = "fieldx2";
+ }
+
+ public void methodx1() {
+ System.out.println("redefinex 1");
+ //System.out.println("redefinex 2");
+ //System.out.println("redefinex 3");
+ }
+}
+
+/*********
+Steps to reproduce this problem:
+ a. add line breakpoint in start()
+ b. debug
+ c. when breakpoint is hit, type continue. You should see output "Before update..."
+ d. change "Before update" to "After update"
+ e. redefine, and set line breakpoint (see step a)
+ f. type continue. You should see output "After update"
+ g. change "After update" to "abcde"
+ h. redefine, and set line breakpoint (see step a)
+ i. type continue. The output is shown as "After update"
+ j. to see "abcde" output, users will have to pop the stack, and re-execute method start().
+************/
+
+public class RedefineMulti extends JdbTest {
+
+ public static void main(String argv[]) {
+ new RedefineMulti().run();
+ }
+
+ private RedefineMulti() {
+ super(RedefineMultiTarg.class.getName(), "RedefineMulti.java");
+ }
+
+ @Override
+ protected void runCases() {
+ setBreakpoints(1);
+ jdb.command(JdbCommand.run());
+ jdb.command(JdbCommand.cont());
+ redefineClass(1, "-g");
+ setBreakpoints(1);
+ jdb.command(JdbCommand.cont());
+ redefineClass(2, "-g");
+ jdb.contToExit(1);
+
+ new OutputAnalyzer(getDebuggeeOutput())
+ .shouldNotContain("Internal exception:")
+ .shouldContain("abcde");
+ }
+}
--- a/test/jdk/com/sun/jdi/RedefineMulti.sh Sat Sep 22 20:31:45 2018 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,154 +0,0 @@
-#!/bin/sh
-
-#
-# Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-
-# @test
-# @bug 4724076
-# @summary Redefine does not work in for/while loop
-# @author Jim Holmlund/Swamy Venkataramanappa
-#
-# The failure occurs when a method is active and
-# a method that it calls multiple times is redefined
-# more than once.
-# @run shell/timeout=240 RedefineMulti.sh
-
-compileOptions=-g
-#java=java_g
-
-createJavaFile()
-{
- cat <<EOF > $1.java.1
-
-public class $1 {
-
- String field1;
- String field2;
-
- // The first time thru the loop in start,
- // "Before update..." should be printed.
- // After the first redefine, "After update..." should be printed
- // After the 2nd redefine, "abcde..." should be printed.
- // The bug is that "After update..." is printed instead because
- // stat() calls version 2 of doSomething() instead of
- // version 3.
- private void doSomething() {
- System.out.println("Before update..."); // @1 commentout
- // @1 uncomment System.out.println("After update..."); // @2 commentout
- // @2 uncomment System.out.println("abcde...");
- }
-
- public void start() {
- for (int i=0; i < 3; i++) {
- doSomething(); // @1 breakpoint here line 16
- System.out.println("field1 = " + field1);
- System.out.println("field2 = " + field2);
- }
- // Redefinex myx = new Redefinex();
- // for (int i = 0; i < 5; i++) {
- // myx.methodx1(); // line 22
- // System.out.println("fieldx1 = " + myx.fieldx1);
- // System.out.println("fieldx2 = " + myx.fieldx2);
- // }
- }
-
- public static void main(String[] args) {
- $1 xxx = new $1();
- xxx.field1 = "field1";
- xxx.field2 = "field2";
- xxx.start();
- }
-}
-
-class Redefinex {
- public String fieldx1;
- public String fieldx2;
-
- Redefinex() {
- fieldx1 = "fieldx1";
- fieldx2 = "fieldx2";
- }
-
- public void methodx1() {
- System.out.println("redefinex 1");
- //System.out.println("redefinex 2");
- //System.out.println("redefinex 3");
- }
-
-}
-
- /*********
-Steps to reproduce this problem:
- a. add line breakpoint in start()
- b. debug
- c. when breakpoint is hit, type continue. You should see output
-"Before update..."
- d. change "Before update" to "After update"
- e. redefine, and set line breakpoint (see step a)
- f. type continue. You should see output "After update"
- g. change "After update" to "abcde"
- h. redefine, and set line breakpoint (see step a)
- i. type continue. The output is shown as "After update"
-
- j. to see "abcde" output, users will have to pop the stack, and
-re-execute method start().
- ************/
-EOF
-}
-
-# This is called to feed cmds to jdb.
-dojdbCmds()
-{
- setBkpts @1
- runToBkpt @1
- contToBkpt
- redefineClass @1
- setBkpts @1
- contToBkpt
- redefineClass @2
- cmd allowExit cont
-}
-
-
-mysetup()
-{
- if [ -z "$TESTSRC" ] ; then
- TESTSRC=.
- fi
-
- for ii in . $TESTSRC $TESTSRC/.. ; do
- if [ -r "$ii/ShellScaffold.sh" ] ; then
- . $ii/ShellScaffold.sh
- break
- fi
- done
-}
-
-# You could replace this next line with the contents
-# of ShellScaffold.sh and this script will run just the same.
-mysetup
-
-runit
-debuggeeFailIfPresent "Internal exception:"
-debuggeeFailIfNotPresent "abcde"
-pass
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/jdi/RedefinePop.java Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,91 @@
+/*
+ * 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
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 4622663
+ * @summary redefine and pop top frame from jdb gets assertion failure
+ * @comment converted from test/jdk/com/sun/jdi/RedefinePop.sh
+ *
+ * @library /test/lib
+ * @compile -g RedefinePop.java
+ * @run main/othervm RedefinePop
+ */
+
+/*
+ * The failure occurs with debug java when the pop deletes the
+ * line that called the method which is being popped.
+ */
+
+/*
+ * assert(index<len, "should have found method")
+ * [8] report_assertion_failure(0xfe2a54d9, 0xfe2a54e3, 0x2cc, 0xfe2a5527, 0xfffffff8, 0x3f2b8), at 0xfda1e5e8
+ * [9] methodOopDesc::jni_id(0xf590a2f0, 0x3e868, 0x8, 0xffbed760, 0xf590a3ac, 0xffbed664), at 0xfdcd7a2c
+ * [10] JvmdiThreadState::compare_and_set_current_location(0x3f450, 0xf590a2f0, 0xf590a33f, 0x1, 0x1, 0x3e868), at 0xfdc0f670
+ * [11] jvmdi::at_single_stepping_point(0x3e868, 0xf590a2f0, 0xf590a33f, 0x5, 0x0, 0x0), at 0xfdc29184
+ * [12] InterpreterRuntime::at_safepoint(0x3e868, 0xb6, 0x2, 0xf9c28744, 0xf590a038, 0xffbed880), at 0xfdb0d590
+ */
+
+import jdk.test.lib.process.OutputAnalyzer;
+import lib.jdb.JdbCommand;
+import lib.jdb.JdbTest;
+
+class RedefinePopTarg {
+ static public void main(String[] args) {
+ RedefinePopTarg mine = new RedefinePopTarg();
+ mine.a1(44); // @1 delete the call that we are in when the pop occurs
+ mine.a4();
+ }
+
+ public void a1(int p1) {
+ System.out.println("a1: @1 breakpoint here");
+ }
+
+ public void a4() {
+ System.out.println("a4: The next line should not say Ni!");
+ System.out.println("a4: Ni!"); // @1 delete
+ }
+}
+
+public class RedefinePop extends JdbTest {
+
+ public static void main(String argv[]) {
+ new RedefinePop().run();
+ }
+
+ private RedefinePop() {
+ super(RedefinePopTarg.class.getName(), "RedefinePop.java");
+ }
+
+ @Override
+ protected void runCases() {
+ setBreakpoints(1);
+ jdb.command(JdbCommand.run());
+ redefineClass(1, "-g");
+ jdb.command(JdbCommand.pop());
+ jdb.contToExit(1);
+
+ new OutputAnalyzer(getDebuggeeOutput())
+ .shouldNotContain("Internal exception:");
+ }
+}
--- a/test/jdk/com/sun/jdi/RedefinePop.sh Sat Sep 22 20:31:45 2018 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-#!/bin/sh
-
-#
-# Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-
-# @test
-# @bug 4622663
-# @summary redefine and pop top frame from jdb gets assertion failure
-# @author Jim Holmlund/Swamy Venkataramanappa
-#
-# The failure occurs with debug java when the pop deletes the
-# line that called the method which is being popped.
-# @key intermittent
-# @run shell RedefinePop.sh
-
-
-# assert(index<len, "should have found method")
-# [8] report_assertion_failure(0xfe2a54d9, 0xfe2a54e3, 0x2cc, 0xfe2a5527, 0xfffffff8, 0x3f2b8), at 0xfda1e5e8
-# [9] methodOopDesc::jni_id(0xf590a2f0, 0x3e868, 0x8, 0xffbed760, 0xf590a3ac, 0xffbed664), at 0xfdcd7a2c
- # [10] JvmdiThreadState::compare_and_set_current_location(0x3f450, 0xf590a2f0, 0xf590a33f, 0x1, 0x1, 0x3e868), at 0xfdc0f670
-# [11] jvmdi::at_single_stepping_point(0x3e868, 0xf590a2f0, 0xf590a33f, 0x5, 0x0, 0x0), at 0xfdc29184
-# [12] InterpreterRuntime::at_safepoint(0x3e868, 0xb6, 0x2, 0xf9c28744, 0xf590a038, 0xffbed880), at 0xfdb0d590
-
-# These are variables that can be set to control execution
-
-compileOptions=-g
-
-createJavaFile()
-{
- cat <<EOF > $1.java.1
-
-public class $1 {
- static public void main(String[] args) {
- $1 mine = new $1();
- mine.a1(44); // @1 delete the call that we are in when the pop occurs
- mine.a4();
- }
-
- public void a1(int p1) {
- System.out.println("a1: @1 breakpoint here");
- }
-
- public void a4() {
- System.out.println("a4: The next line should not say Ni!");
- System.out.println("a4: Ni!"); // @1 delete
- }
-}
-EOF
-}
-
-# This is called to feed cmds to jdb.
-dojdbCmds()
-{
- setBkpts @1
- runToBkpt @1
- redefineClass @1
- cmd pop
- cmd allowExit cont
-}
-
-
-mysetup()
-{
- if [ -z "$TESTSRC" ] ; then
- TESTSRC=.
- fi
-
- for ii in . $TESTSRC $TESTSRC/.. ; do
- if [ -r "$ii/ShellScaffold.sh" ] ; then
- . $ii/ShellScaffold.sh
- break
- fi
- done
-}
-
-# You could replace this next line with the contents
-# of ShellScaffold.sh and this script will run just the same.
-mysetup
-
-runit
-debuggeeFailIfPresent "Internal exception:"
-pass
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/jdi/RedefineStep.java Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,82 @@
+/*
+ * 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
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 4689395
+ * @summary "step over" after a class is redefined acts like "step out"
+ * @comment converted from test/jdk/com/sun/jdi/RedefineStep.sh
+ *
+ * @library /test/lib
+ * @compile -g RedefineStep.java
+ * @run main/othervm RedefineStep
+ */
+
+import jdk.test.lib.process.OutputAnalyzer;
+import lib.jdb.JdbCommand;
+import lib.jdb.JdbTest;
+
+class RedefineStepTarg {
+ static int counter;
+ static public void main(String[] args) {
+ RedefineStepTarg mine = new RedefineStepTarg();
+ mine.a1(10);
+ System.out.println("done"); // should not see this
+ }
+
+ public void a1(int p1) {
+ System.out.println("jj0"); // @1 breakpoint line 10
+ a2();
+ System.out.println("jj3"); // @1 delete
+ }
+ public void a2() {
+ System.out.println("a2");
+ }
+}
+
+public class RedefineStep extends JdbTest {
+
+ public static void main(String argv[]) {
+ new RedefineStep().run();
+ }
+
+ private RedefineStep() {
+ super(RedefineStepTarg.class.getName(), "RedefineStep.java");
+ }
+
+ @Override
+ protected void runCases() {
+ setBreakpoints(1);
+ jdb.command(JdbCommand.run());
+ redefineClass(1, "-g");
+
+ jdb.command(JdbCommand.next());
+ jdb.command(JdbCommand.next());
+ jdb.command(JdbCommand.next());
+ jdb.command(JdbCommand.next());
+ jdb.command(JdbCommand.next());
+
+ new OutputAnalyzer(getJdbOutput())
+ .shouldNotContain("should not see this");
+ }
+}
--- a/test/jdk/com/sun/jdi/RedefineStep.sh Sat Sep 22 20:31:45 2018 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-#!/bin/sh
-
-#
-# Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-
-# @test
-# @bug 4689395
-# @summary "step over" after a class is redefined acts like "step out"
-# @author Jim Holmlund
-# @key intermittent
-# @run shell RedefineStep.sh
-#
-
-#pkg=untitled7
-classname=gus1
-compileOptions=-g
-#java=java_g
-
-# Uncomment this to see the JDI trace
-#jdbOptions=-dbgtrace
-
-createJavaFile()
-{
- cat <<EOF > $1.java.1
-
-public class $1 {
- static int counter;
- static public void main(String[] args) {
- $1 mine = new $1();
- mine.a1(10);
- System.out.println("done"); // should not see this
- }
-
- public void a1(int p1) {
- System.out.println("jj0"); // @1 breakpoint line 10
- a2();
- System.out.println("jj3"); // @1 delete
- }
- public void a2() {
- System.out.println("a2");
- }
-}
-EOF
-}
-
-# This is called to feed cmds to jdb.
-dojdbCmds()
-{
- setBkpts @1
- runToBkpt @1
- redefineClass @1
-
- cmd next
- cmd next
- cmd next
- cmd next
- cmd next
-}
-
-
-mysetup()
-{
- if [ -z "$TESTSRC" ] ; then
- TESTSRC=.
- fi
-
- for ii in . $TESTSRC $TESTSRC/.. ; do
- if [ -r "$ii/ShellScaffold.sh" ] ; then
- . $ii/ShellScaffold.sh
- break
- fi
- done
-}
-
-# You could replace this next line with the contents
-# of ShellScaffold.sh and this script will run just the same.
-mysetup
-
-runit
-
-jdbFailIfPresent 'should not see this'
-pass
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/jdi/RedefineTTYLineNumber.java Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,110 @@
+/*
+ * 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
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 4660756
+ * @summary TTY: Need to clear source cache after doing a redefine class
+ * @comment converted from test/jdk/com/sun/jdi/RedefineTTYLineNumber.sh
+ *
+ * @library /test/lib
+ * @compile -g RedefineTTYLineNumber.java
+ * @run main/othervm RedefineTTYLineNumber
+ */
+
+import jdk.test.lib.Asserts;
+import jdk.test.lib.process.OutputAnalyzer;
+import lib.jdb.JdbCommand;
+import lib.jdb.JdbTest;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+class RedefineTTYLineNumberTarg {
+
+ public void B() {
+ System.out.println("in B: @1 delete"); // delete 1 line before A method
+ }
+
+ public void A() {
+ System.out.println("expected statement printed by jdb");
+ }
+
+ public static void main(String[] args) {
+ RedefineTTYLineNumberTarg untitled41 = new RedefineTTYLineNumberTarg();
+ untitled41.A();
+ System.out.println("done");
+ }
+}
+
+public class RedefineTTYLineNumber extends JdbTest {
+
+ public static void main(String argv[]) {
+ new RedefineTTYLineNumber().run();
+ }
+
+ private RedefineTTYLineNumber() {
+ super(DEBUGGEE_CLASS, SOURCE_FILE);
+ }
+
+ private final static String DEBUGGEE_CLASS = RedefineTTYLineNumberTarg.class.getName();
+ private final static String SOURCE_FILE = "RedefineTTYLineNumber.java";
+
+ // parses line number from the jdb "Breakpoint hit" message
+ private static int parseLineNum(String s) {
+ // Breakpoint hit: "thread=main", RedefineTTYLineNumberTarg.A(), line=49 bci=0
+ // 49 System.out.println("expected statement printed by jdb");
+ Matcher m = Pattern.compile("\\bline=(\\d+)\\b").matcher(s);
+ if (!m.find()) {
+ throw new RuntimeException("could not parse line number");
+ }
+ return Integer.parseInt(m.group(1));
+ }
+
+ private void verifyBPSource(int n, String reply) {
+ if (!reply.contains("expected statement printed by jdb")) {
+ throw new RuntimeException("Breakpoint source (" + n + ") is not correct");
+ }
+ }
+
+ @Override
+ protected void runCases() {
+ jdb.command(JdbCommand.stopIn(DEBUGGEE_CLASS, "A"));
+ String bp1Reply = execCommand(JdbCommand.run()).getStdout();
+ int bp1Line = parseLineNum(bp1Reply);
+ redefineClass(1, "-g");
+ jdb.command(JdbCommand.pop());
+ jdb.command(JdbCommand.stopIn(DEBUGGEE_CLASS, "A"));
+ String bp2Reply = execCommand(JdbCommand.cont()).getStdout();
+ int bp2Line = parseLineNum(bp2Reply);
+
+ new OutputAnalyzer(getDebuggeeOutput())
+ .shouldNotContain("Internal exception:");
+ // 1 line is deleted before RedefineTTYLineNumberTarg.A(),
+ // so bp2Line should be equals bp1Line-1
+ Asserts.assertEquals(bp2Line, bp1Line - 1, "BP line numbers");
+ verifyBPSource(1, bp1Reply);
+ // uncomment the following line to reproduce JDK-8210927
+ //verifyBPSource(2, bp2Reply);
+ }
+}
--- a/test/jdk/com/sun/jdi/RedefineTTYLineNumber.sh Sat Sep 22 20:31:45 2018 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
-#!/bin/sh
-
-#
-# Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-
-# @test
-# @bug 4660756
-# @summary TTY: Need to clear source cache after doing a redefine class
-# @author Jim Holmlund
-# @key intermittent
-# @run shell/timeout=240 RedefineTTYLineNumber.sh
-
-#set -x
-# These are variables that can be set to control execution
-
-#pkg=untitled7
-#classname=Untitled3
-compileOptions=-g
-#java=java_g
-
-createJavaFile()
-{
- cat <<EOF > $1.java.1
-
-public class $1 {
-
- public void B() {
- System.out.println("in B");
- System.out.println("in B: @1 delete");
- }
-
- // line number sensitive!!! Next line must be line 10.
- public void A() {
- System.out.println("in A, about to call B"); // 11 before, 10 afterward
- System.out.println("out from B");
- }
-
- public static void main(String[] args) {
- $1 untitled41 = new $1();
- untitled41.A();
- System.out.println("done");
- }
-}
-EOF
-}
-
-# This is called to feed cmds to jdb.
-dojdbCmds()
-{
- cmd stop in shtest.A
- runToBkpt
- #jdbFailIfNotPresent "System\.out\.println" 3
- redefineClass @1
- cmd pop
- cmd stop in shtest.A
- contToBkpt
- #jdbFailIfNotPresent "System\.out\.println" 3
-}
-
-
-mysetup()
-{
- if [ -z "$TESTSRC" ] ; then
- TESTSRC=.
- fi
-
- if [ -r $TESTSRC/ShellScaffold.sh ] ; then
- . $TESTSRC/ShellScaffold.sh
- elif [ -r $TESTSRC/../ShellScaffold.sh ] ; then
- . $TESTSRC/../ShellScaffold.sh
- fi
-}
-
-# You could replace this next line with the contents
-# of ShellScaffold.sh and this script will run just the same.
-mysetup
-
-runit
-debuggeeFailIfPresent "Internal exception:"
-pass
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/jdi/StringConvertTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,198 @@
+/*
+ * 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
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 4511950 4843082
+ * @summary 1. jdb's expression evaluation doesn't perform string conversion properly
+ * 2. TTY: run on expression evaluation
+ * @comment converted from test/jdk/com/sun/jdi/StringConvertTest.sh
+ *
+ * @library /test/lib
+ * @compile -g StringConvertTest.java
+ * @run main/othervm StringConvertTest
+ */
+
+import jdk.test.lib.process.OutputAnalyzer;
+import lib.jdb.JdbCommand;
+import lib.jdb.JdbTest;
+
+class StringConvertTarg {
+ String me;
+ static JJ1 x1;
+ static JJ2 x2;
+ static JJ2[] x3 = new JJ2[2];
+ static String x4 = "abc";
+ static int ii = 89;
+ static String grower = "grower";
+ static StringBuffer sbGrower = new StringBuffer("sbGrower");
+ int ivar = 89;
+ StringConvertTarg(String xx) {
+ me = xx;
+ }
+
+ static String fred() {
+ return "a static method";
+ }
+
+ void gus() {
+ int gusLoc = 1;
+ StringBuffer sbTim = new StringBuffer("tim");
+ int kk = 1; //@1 breakpoint
+ }
+
+ static String growit(String extra) {
+ grower += extra;
+ return grower;
+ }
+
+ static String sbGrowit(String extra) {
+ sbGrower.append(extra);
+ return sbGrower.toString();
+ }
+
+ public static void main(String[] args) {
+ x1 = new JJ1("first JJ1");
+ x2 = new JJ2("first JJ2");
+ x3[0] = new JJ2("array0");
+ x3[1] = new JJ2("array1");
+ StringConvertTarg loc1 = new StringConvertTarg("first me");
+
+ // These just show what output should look like
+ System.out.println("x1 = " + x1);
+ System.out.println("x2 = " + x2);
+ System.out.println("x3.toString = " + x3.toString());
+ System.out.println("x4.toString = " + x4.toString());
+
+ // Dont want to call growit since it would change
+ // the value.
+
+ System.out.println("loc1 = " + loc1);
+ System.out.println("-" + loc1);
+ loc1.gus();
+ }
+
+ // This does not have a toString method
+ static class JJ1 {
+ String me;
+
+ JJ1(String whoAmI) {
+ me = whoAmI;
+ }
+ }
+
+ // This has a toString method
+ static class JJ2 {
+ String me;
+
+ JJ2(String whoAmI) {
+ me = whoAmI;
+ }
+ public String toString() {
+ return me;
+ }
+
+ public int meth1() {
+ return 89;
+ }
+ }
+}
+
+public class StringConvertTest extends JdbTest {
+ public static void main(String argv[]) {
+ new StringConvertTest().run();
+ }
+
+ private StringConvertTest() {
+ super(DEBUGGEE_CLASS, SOURCE_FILE);
+ }
+
+ private static final String DEBUGGEE_CLASS = StringConvertTarg.class.getName();
+ private static final String SOURCE_FILE = "StringConvertTest.java";
+
+ @Override
+ protected void runCases() {
+ setBreakpoints(1);
+ // Run to breakpoint #1
+ jdb.command(JdbCommand.run());
+
+ // Each print without the 'toString()' should print the
+ // same thing as the following print with the toString().
+ // The "print 1"s are just spacers
+ jdb.command(JdbCommand.print("StringConvertTarg.x1"));
+ jdb.command(JdbCommand.print("StringConvertTarg.x1.toString()"));
+ jdb.command(JdbCommand.print("1"));
+
+ jdb.command(JdbCommand.print("StringConvertTarg.x2"));
+ jdb.command(JdbCommand.print("StringConvertTarg.x2.toString()"));
+ jdb.command(JdbCommand.print("1"));
+
+ // arrays is a special case.
+ // StringConvertTarg prints:
+ // x3.toString = [LStringConvertTarg$JJ2;@61443d8f
+ // jdb "print ((Object)StringConvertTarg.x3).toString()" prints:
+ // com.sun.tools.example.debug.expr.ParseException:
+ // No instance field or method with the name toString in StringConvertTarg$JJ2[]
+ // ((Object)StringConvertTarg.x3).toString() = null
+ // jdb "print (Object)(StringConvertTarg.x3)" prints:
+ // (Object)(StringConvertTarg.x3) = instance of StringConvertTarg$JJ2[2] (id=624)
+ /*
+ jdb.command(JdbCommand.print("(Object)(StringConvertTarg.x3)"));
+ jdb.command(JdbCommand.print("((Object)StringConvertTarg.x3).toString()"));
+ jdb.command(JdbCommand.print("1"));
+ */
+
+ jdb.command(JdbCommand.print("StringConvertTarg.x4"));
+ jdb.command(JdbCommand.print("StringConvertTarg.x4.toString()"));
+ jdb.command(JdbCommand.print("1"));
+
+ // Make sure jdb doesn't call a method multiple times.
+ jdb.command(JdbCommand.print("StringConvertTarg.growit(\"xyz\")"));
+ jdb.command(JdbCommand.eval("StringConvertTarg.sbGrower.append(\"xyz\")"));
+ jdb.command(JdbCommand.print("1"));
+
+ jdb.command(JdbCommand.eval("sbTim.toString()"));
+ jdb.command(JdbCommand.print("1"));
+
+ jdb.command(JdbCommand.print("this"));
+ jdb.command(JdbCommand.print("this.toString()"));
+ jdb.command(JdbCommand.print("1"));
+
+ // A possible bug is that this ends up with multiple "s
+ jdb.command(JdbCommand.print("\"--\"StringConvertTarg.x1"));
+ jdb.command(JdbCommand.print("1"));
+
+ // This too
+ jdb.command(JdbCommand.print("StringConvertTarg.x4 + 2"));
+ jdb.command(JdbCommand.print("1"));
+
+ jdb.command(JdbCommand.print("this.ivar"));
+ jdb.command(JdbCommand.print("gusLoc"));
+ jdb.command(JdbCommand.print("1"));
+
+ new OutputAnalyzer(jdb.getJdbOutput())
+ .shouldNotContain("\"\"")
+ .shouldNotContain("instance of")
+ .shouldNotContain("xyzxyz");
+ }
+}
--- a/test/jdk/com/sun/jdi/StringConvertTest.sh Sat Sep 22 20:31:45 2018 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,211 +0,0 @@
-#!/bin/sh
-
-#
-# Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-
-# @test
-# @bug 4511950 4843082
-# @summary 1. jdb's expression evaluation doesn't perform string conversion properly
-# 2. TTY: run on expression evaluation
-# @author jim/suvasis mukherjee
-#
-# @key intermittent
-# @run shell StringConvertTest.sh
-
-# Run this script to see the bug. See comments at the end
-# of the .java file for info on what the bug looks like.
-
-# These are variables that can be set to control execution
-
-#pkg=untitled7
-classname=StringConvertTest
-compileOptions=-g
-#java=java_g
-#mode=-Xcomp
-
-#jdbOptions=-dbgtrace
-createJavaFile()
-{
- cat <<EOF > $1.java.1
-
-class $classname {
- String me;
- static JJ1 x1;
- static JJ2 x2;
- static JJ2[] x3 = new JJ2[2];
- static String x4 = "abc";
- static int ii = 89;
- static String grower = "grower";
- static StringBuffer sbGrower = new StringBuffer("sbGrower");
- int ivar = 89;
- $classname(String xx) {
- me = xx;
- }
-
- static String fred() {
- return "a static method";
- }
-
- void gus() {
- int gusLoc = 1;
- StringBuffer sbTim = new StringBuffer("tim");
- int kk = 1; //@1 breakpoint
- }
-
- static String growit(String extra) {
- grower += extra;
- return grower;
- }
-
- static String sbGrowit(String extra) {
- sbGrower.append(extra);
- return sbGrower.toString();
- }
-
- public static void main(String[] args) {
- x1 = new JJ1("first JJ1");
- x2 = new JJ2("first JJ2");
- x3[0] = new JJ2("array0");
- x3[1] = new JJ2("array1");
- $classname loc1 = new $classname("first me");
-
- // These just show what output should look like
- System.out.println("x1 = " + x1);
- System.out.println("x2 = " + x2);
- System.out.println("x3.toString = " + x3.toString());
- System.out.println("x4.toString = " + x4.toString());
-
- // Dont want to call growit since it would change
- // the value.
-
- System.out.println("loc1 = " + loc1);
- System.out.println("-" + loc1);
- loc1.gus();
- }
-
- // This does not have a toString method
- static class JJ1 {
- String me;
-
- JJ1(String whoAmI) {
- me = whoAmI;
- }
- }
-
- // This has a toString method
- static class JJ2 {
- String me;
-
- JJ2(String whoAmI) {
- me = whoAmI;
- }
- public String toString() {
- return me;
- }
-
- public int meth1() {
- return 89;
- }
- }
-}
-
-EOF
-}
-
-# This is called to feed cmds to jdb.
-dojdbCmds()
-{
- setBkpts @1
- runToBkpt @1
-
- # Each print without the 'toString()' should print the
- # same thing as the following print with the toString().
- # The print 1s are just spacers
-
- cmd print $classname.x1
- cmd print "$classname.x1.toString()"
- cmd print 1
-
- cmd print $classname.x2
- cmd print "$classname.x2.toString()"
- cmd print 1
-
- # An unreported bug: this isn't handled correctly.
- # If we uncomment this line, we will get an 'instance of...' line
- # which will cause the test to fail.
- #cmd print "(Object)($classname.x3)"
- cmd print "((Object)$classname.x3).toString()"
- cmd print 1
-
- cmd print $classname.x4
- cmd print "$classname.x4.toString()"
- cmd print 1
-
- # Make sure jdb doesn't call a method multiple times.
- cmd print "$classname.growit(\"xyz\")"
- cmd eval "$classname.sbGrower.append(\"xyz\")"
- cmd print 1
-
- cmd eval "sbTim.toString()"
- cmd print 1
-
- cmd print this
- cmd print "this.toString()"
- cmd print 1
-
- # A possible bug is that this ends up with multiple "s
- cmd print '"--" + '$classname.x1
- cmd print 1
-
- # This too
- cmd print "$classname.x4 + 2"
- cmd print 1
-
- cmd print "this.ivar"
- cmd print gusLoc
- cmd print 1
-}
-
-mysetup()
-{
- if [ -z "$TESTSRC" ] ; then
- TESTSRC=.
- fi
-
- for ii in . $TESTSRC $TESTSRC/.. ; do
- if [ -r "$ii/ShellScaffold.sh" ] ; then
- . $ii/ShellScaffold.sh
- break
- fi
- done
-}
-
-# You could replace this next line with the contents
-# of ShellScaffold.sh and this script will run just the same.
-mysetup
-
-runit
-jdbFailIfPresent '""'
-jdbFailIfPresent 'instance of'
-jdbFailIfPresent 'xyzxyz'
-pass
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/jdi/WatchFramePop.java Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,93 @@
+/*
+ * 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
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 4546478
+ * @summary Enabling a watchpoint can kill following NotifyFramePops
+ * @comment converted from test/jdk/com/sun/jdi/WatchFramePop.sh
+ *
+ * @library /test/lib
+ * @run main/othervm WatchFramePop
+ */
+
+import jdk.test.lib.process.OutputAnalyzer;
+import lib.jdb.JdbCommand;
+import lib.jdb.JdbTest;
+
+class WatchFramePopTarg {
+ int watchMe;
+ static public void main(String[] args) {
+ System.out.println("In Main");
+ WatchFramePopTarg mine = new WatchFramePopTarg();
+ mine.a1();
+ System.out.println("Test completed");
+ }
+
+ public void a1() {
+ a2(); // @1 breakpoint. We'll do a watch of watchMe here
+ }
+
+ public void a2() {
+ System.out.println("in a2");
+ a3();
+ } // line 18
+
+ public void a3() {
+ System.out.println("in a3"); // After the watch, we'll run to here, line 21
+ a4(); // We'll do a 'next' to here. The failure is that this
+ } // runs to completion, or asserts with java_g
+
+ public void a4() {
+ System.out.println("in a4");
+ }
+
+}
+
+public class WatchFramePop extends JdbTest {
+ public static void main(String argv[]) {
+ new WatchFramePop().run();
+ }
+
+ private WatchFramePop() {
+ super(DEBUGGEE_CLASS, SOURCE_FILE);
+ }
+
+ private static final String DEBUGGEE_CLASS = WatchFramePopTarg.class.getName();
+ private static final String SOURCE_FILE = "WatchFramePop.java";
+
+ @Override
+ protected void runCases() {
+ setBreakpoints(1);
+ jdb.command(JdbCommand.run());
+ jdb.command(JdbCommand.watch(DEBUGGEE_CLASS, "watchMe"));
+ jdb.command(JdbCommand.stopIn(DEBUGGEE_CLASS, "a3"));
+ jdb.command(JdbCommand.cont()); // stops at the bkpt
+ jdb.command(JdbCommand.next()); // The bug is that this next runs to completion
+ // In which case, so does jdb
+ // so we never get here.
+
+ new OutputAnalyzer(jdb.getJdbOutput())
+ .shouldNotContain("The application exited");
+ }
+}
--- a/test/jdk/com/sun/jdi/WatchFramePop.sh Sat Sep 22 20:31:45 2018 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,110 +0,0 @@
-#!/bin/sh
-
-#
-# Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-
-# @test
-# @bug 4546478
-# @summary Enabling a watchpoint can kill following NotifyFramePops
-# @author Jim Holmlund
-#
-# @run shell WatchFramePop.sh
-
-# These are variables that can be set to control execution
-
-#pkg=untitled7
-#classname=Untitled3
-#compileOptions=-g
-#java="java_g"
-
-createJavaFile()
-{
- cat <<EOF > $1.java.1
-
-public class $1 {
- int watchMe;
- static public void main(String[] args) {
- System.out.println("In Main");
- $1 mine = new $1();
- mine.a1();
- System.out.println("Test completed");
- }
-
- public void a1() {
- a2(); // @1 breakpoint. We'll do a watch of watchMe here
- }
-
- public void a2() {
- System.out.println("in a2");
- a3();
- } // line 18
-
- public void a3() {
- System.out.println("in a3"); // After the watch, we'll run to here, line 21
- a4(); // We'll do a 'next' to here. The failure is that this
- } // runs to completion, or asserts with java_g
-
-
- public void a4() {
- System.out.println("in a4");
- }
-
-}
-EOF
-}
-
-# drive jdb by sending cmds to it and examining its output
-dojdbCmds()
-{
- setBkpts @1
- runToBkpt @1
- cmd watch shtest.watchMe
- cmd stop in shtest.a3 # bkpt at line 17
- contToBkpt # stops at the bkpt at
- cmd next # The bug is that this next runs to completion
- # In which case, so does jdb
- # so we never get here.
-}
-
-
-mysetup()
-{
- if [ -z "$TESTSRC" ] ; then
- TESTSRC=.
- fi
-
- for ii in . $TESTSRC $TESTSRC/.. ; do
- if [ -r "$ii/ShellScaffold.sh" ] ; then
- . $ii/ShellScaffold.sh
- break
- fi
- done
-}
-
-# You could replace this next line with the contents
-# of ShellScaffold.sh and this script will run just the same.
-mysetup
-
-runit
-jdbFailIfPresent 'The application exited'
-pass
--- a/test/jdk/com/sun/jdi/lib/jdb/Jdb.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/com/sun/jdi/lib/jdb/Jdb.java Mon Sep 24 10:59:26 2018 -0700
@@ -73,9 +73,9 @@
private static final String lineSeparator = System.getProperty("line.separator");
// wait time before check jdb output (in ms)
- private static long sleepTime = 1000;
+ private static final long sleepTime = 1000;
// max time to wait for jdb output (in ms)
- private static long timeout = 60000;
+ private static final long timeout = Utils.adjustTimeout(60000);
// pattern for message of a breakpoint hit
public static final String BREAKPOINT_HIT = "Breakpoint hit:";
@@ -215,7 +215,7 @@
throw new RuntimeException("Attempt to send command '" + cmd.cmd + "' to terminated jdb");
}
- System.out.println("> " + cmd.cmd);
+ log("> " + cmd.cmd);
inputWriter.println(cmd.cmd);
@@ -251,13 +251,13 @@
command(JdbCommand.quit());
}
- private void log(String s) {
+ void log(String s) {
System.out.println(s);
}
private void logJdb(List<String> reply) {
jdbOutput.addAll(reply);
- reply.forEach(s -> System.out.println("[jdb] " + s));
+ reply.forEach(s -> log("[jdb] " + s));
}
// returns the whole jdb output as a string
--- a/test/jdk/com/sun/jdi/lib/jdb/JdbTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/com/sun/jdi/lib/jdb/JdbTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -94,6 +94,11 @@
try {
setup();
runCases();
+ } catch (Throwable e) {
+ jdb.log("=======================================");
+ jdb.log("Exception thrown during test execution: " + e.getMessage());
+ jdb.log("=======================================");
+ throw e;
} finally {
shutdown();
}
--- a/test/jdk/com/sun/management/HotSpotDiagnosticMXBean/DumpHeap.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/com/sun/management/HotSpotDiagnosticMXBean/DumpHeap.java Mon Sep 24 10:59:26 2018 -0700
@@ -21,8 +21,8 @@
* questions.
*/
-import static jdk.testlibrary.Asserts.assertTrue;
-import static jdk.testlibrary.Asserts.fail;
+import static jdk.test.lib.Asserts.assertTrue;
+import static jdk.test.lib.Asserts.fail;
import java.io.File;
import java.lang.management.*;
@@ -37,9 +37,7 @@
* @test
* @bug 6455258
* @summary Sanity test for com.sun.management.HotSpotDiagnosticMXBean.dumpHeap method
- * @library /lib/testlibrary
* @library /test/lib
- * @build jdk.testlibrary.*
* @build jdk.test.lib.hprof.*
* @build jdk.test.lib.hprof.model.*
* @build jdk.test.lib.hprof.parser.*
--- a/test/jdk/java/awt/Modal/FileDialog/FileDialogAppModal1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/FileDialog/FileDialogAppModal1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* created with a null Frame constructor. Also check if other
* windows are blocked by the FileDialog too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/FileDialog/FileDialogAppModal2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/FileDialog/FileDialogAppModal2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* created with a null Dialog constructor. Also check if other
* windows are blocked by the FileDialog too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/FileDialog/FileDialogAppModal3Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/FileDialog/FileDialogAppModal3Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* created with a hidden Frame constructor. Also check if other
* windows are blocked by the FileDialog too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/FileDialog/FileDialogAppModal4Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/FileDialog/FileDialogAppModal4Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* created with a hidden Dialog constructor. Also check if other
* windows are blocked by the FileDialog too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/FileDialog/FileDialogAppModal5Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/FileDialog/FileDialogAppModal5Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* created with a visible Frame constructor. Also check if other
* windows are blocked by the FileDialog too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/FileDialog/FileDialogAppModal6Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/FileDialog/FileDialogAppModal6Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* created with a visible Dialog constructor. Also check if other
* windows are blocked by the FileDialog too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/FileDialog/FileDialogDocModal1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/FileDialog/FileDialogDocModal1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* created with a null Frame constructor. Also check if other
* windows are blocked by the FileDialog too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/FileDialog/FileDialogDocModal2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/FileDialog/FileDialogDocModal2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* created with a null Dialog constructor. Also check if other
* windows are blocked by the FileDialog too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/FileDialog/FileDialogDocModal3Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/FileDialog/FileDialogDocModal3Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* created with a hidden Frame constructor. Also check if other
* windows are blocked by the FileDialog too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/FileDialog/FileDialogDocModal4Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/FileDialog/FileDialogDocModal4Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* created with a hidden Dialog constructor. Also check if other
* windows are blocked by the FileDialog too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/FileDialog/FileDialogDocModal5Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/FileDialog/FileDialogDocModal5Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* created with a visible Frame constructor. Also check if other
* windows are blocked by the FileDialog too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/FileDialog/FileDialogDocModal6Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/FileDialog/FileDialogDocModal6Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* created with a visible Dialog constructor. Also check if other
* windows are blocked by the FileDialog too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/FileDialog/FileDialogDocModal7Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/FileDialog/FileDialogDocModal7Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,8 @@
* @bug 8054359 7186009
* @summary Check whether a FileDialog set to document modality behaves as expected.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/FileDialog/FileDialogModal1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/FileDialog/FileDialogModal1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* created with a null Frame constructor. Also check if other
* windows are blocked by the FileDialog too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/FileDialog/FileDialogModal2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/FileDialog/FileDialogModal2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* created with a null Dialog constructor. Also check if other
* windows are blocked by the FileDialog too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/FileDialog/FileDialogModal3Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/FileDialog/FileDialogModal3Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* created with a hidden Frame constructor. Also check if other
* windows are blocked by the FileDialog too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/FileDialog/FileDialogModal4Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/FileDialog/FileDialogModal4Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* created with a hidden Dialog constructor. Also check if other
* windows are blocked by the FileDialog too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/FileDialog/FileDialogModal5Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/FileDialog/FileDialogModal5Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* created with a visible Frame constructor. Also check if other
* windows are blocked by the FileDialog too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/FileDialog/FileDialogModal6Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/FileDialog/FileDialogModal6Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* created with a visible Dialog constructor. Also check if other
* windows are blocked by the FileDialog too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/FileDialog/FileDialogNonModal1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/FileDialog/FileDialogNonModal1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* created with a null Frame constructor. Also check if other
* windows are blocked by the FileDialog too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/FileDialog/FileDialogNonModal2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/FileDialog/FileDialogNonModal2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* created with a null Dialog constructor. Also check if other
* windows are blocked by the FileDialog too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/FileDialog/FileDialogNonModal3Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/FileDialog/FileDialogNonModal3Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* created with a hidden Frame constructor. Also check if other
* windows are blocked by the FileDialog too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/FileDialog/FileDialogNonModal4Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/FileDialog/FileDialogNonModal4Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* created with a hidden Dialog constructor. Also check if other
* windows are blocked by the FileDialog too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/FileDialog/FileDialogNonModal5Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/FileDialog/FileDialogNonModal5Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* created with a visible Frame constructor. Also check if other
* windows are blocked by the FileDialog too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/FileDialog/FileDialogNonModal6Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/FileDialog/FileDialogNonModal6Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* created with a visible Dialog constructor. Also check if other
* windows are blocked by the FileDialog too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/FileDialog/FileDialogNonModal7Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/FileDialog/FileDialogNonModal7Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,8 @@
* @bug 8054359
* @summary Check whether a modeless FileDialog behaves as expected.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/FileDialog/FileDialogTKModal1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/FileDialog/FileDialogTKModal1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* created with a null Frame constructor. Also check if other
* windows are blocked by the FileDialog too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/FileDialog/FileDialogTKModal2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/FileDialog/FileDialogTKModal2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* created with a null Dialog constructor. Also check if other
* windows are blocked by the FileDialog too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/FileDialog/FileDialogTKModal3Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/FileDialog/FileDialogTKModal3Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* created with a hidden Frame constructor. Also check if other
* windows are blocked by the FileDialog too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/FileDialog/FileDialogTKModal4Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/FileDialog/FileDialogTKModal4Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* created with a hidden Dialog constructor. Also check if other
* windows are blocked by the FileDialog too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/FileDialog/FileDialogTKModal5Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/FileDialog/FileDialogTKModal5Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* created with a visible Frame constructor. Also check if other
* windows are blocked by the FileDialog too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/FileDialog/FileDialogTKModal6Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/FileDialog/FileDialogTKModal6Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* created with a visible Dialog constructor. Also check if other
* windows are blocked by the FileDialog too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/FileDialog/FileDialogTKModal7Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/FileDialog/FileDialogTKModal7Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,8 @@
* @bug 8054359 7186009
* @summary Check whether a FileDialog set to toolkit modality behaves as expected.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingDDAppModalTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingDDAppModalTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* and respond to key events. Check also the correctness
* of blocking behavior for the parent Dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingDDDocModalTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingDDDocModalTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* and respond to key events. Check also the correctness
* of blocking behavior for the parent Dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingDDModelessTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingDDModelessTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* and respond to key events. Check also the correctness
* of blocking behavior for the parent Dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingDDNonModalTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingDDNonModalTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* and respond to key events. Check also the correctness
* of blocking behavior for the parent Dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingDDSetModalTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingDDSetModalTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* and respond to key events. Check also the correctness
* of blocking behavior for the parent Dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingDDTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingDDTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -22,7 +22,7 @@
*/
import java.awt.*;
-import static jdk.testlibrary.Asserts.*;
+import static jdk.test.lib.Asserts.*;
// DD: Dialog -> Dialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingDDToolkitModalTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingDDToolkitModalTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* and respond to key events. Check also the correctness
* of blocking behavior for the parent Dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingDFAppModalTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingDFAppModalTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* and respond to key events. Check also the correctness
* of blocking behavior for the parent Frame.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingDFSetModalTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingDFSetModalTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* and respond to key events. Check also the correctness
* of blocking behavior for the parent Frame.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingDFTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingDFTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
import java.awt.*;
-import static jdk.testlibrary.Asserts.*;
+import static jdk.test.lib.Asserts.*;
// DF: Dialog -> Frame
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingDFToolkitModalTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingDFToolkitModalTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* and respond to key events. Check also the correctness
* of blocking behavior for the parent Frame.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingDFWModeless1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingDFWModeless1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* and respond to key events. Check also if the other windows
* receive mouse and key events.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingDFWModeless2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingDFWModeless2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* and respond to key events. Check also if the other windows
* receive mouse and key events.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingDFWNonModal1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingDFWNonModal1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* and respond to key events. Check also if the other windows
* receive mouse and key events.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingDFWNonModal2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingDFWNonModal2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* and respond to key events. Check also if the other windows
* receive mouse and key events.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingDFWTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingDFWTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
import java.awt.*;
import java.awt.event.KeyEvent;
-import static jdk.testlibrary.Asserts.*;
+import static jdk.test.lib.Asserts.*;
// DFW: Dialog -> Frame -> Window
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingDocModalTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingDocModalTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
import java.awt.*;
-import static jdk.testlibrary.Asserts.*;
+import static jdk.test.lib.Asserts.*;
/*
@@ -34,7 +34,8 @@
* whether all the windows lying down the document root
* (Frame) get blocked.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDAppModalTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDAppModalTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* and respond to key events. Check also the correctness
* of the blocking behavior for the parent Frame.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDDocModalTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDDocModalTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* and respond to key events. Check also the correctness
* of the blocking behavior for the parent Frame.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDModelessTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDModelessTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* and respond to key events. Check also the correctness
* of the blocking behavior for the parent Frame.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDNonModalTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDNonModalTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* and respond to key events. Check also the correctness
* of the blocking behavior for the parent Frame.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDSetModalTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDSetModalTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* and respond to key events. Check also the correctness
* of the blocking behavior for the parent Frame.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -22,7 +22,7 @@
*/
import java.awt.*;
-import static jdk.testlibrary.Asserts.*;
+import static jdk.test.lib.Asserts.*;
// FD: Frame -> Dialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDToolkitModalTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDToolkitModalTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* and respond to key events. Check also the correctness
* of the blocking behavior for the parent Frame.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* and respond to key events, when there are other windows shown.
* Check also the correctness of blocking behavior for other windows shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* and respond to key events, when there are other windows shown.
* Check also the correctness of blocking behavior for other windows shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal3Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal3Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* and respond to key events, when there are other windows shown.
* Check also the correctness of blocking behavior for other windows shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal4Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDWDocModal4Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* and respond to key events, when there are other windows shown.
* Check also the correctness of blocking behavior for other windows shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDWModeless1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDWModeless1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* and respond to key events, when there are other windows shown.
* Check also the correctness of blocking behavior for other windows shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDWModeless2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDWModeless2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* and respond to key events, when there are other windows shown.
* Check also the correctness of blocking behavior for other windows shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDWModeless3Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDWModeless3Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* and respond to key events, when there are other windows shown.
* Check also the correctness of blocking behavior for other windows shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDWModeless4Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDWModeless4Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* and respond to key events, when there are other windows shown.
* Check also the correctness of blocking behavior for other windows shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* and respond to key events, when there are other windows shown.
* Check also the correctness of blocking behavior for other windows shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* and respond to key events, when there are other windows shown.
* Check also the correctness of blocking behavior for other windows shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal3Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal3Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* and respond to key events, when there are other windows shown.
* Check also the correctness of blocking behavior for other windows shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal4Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDWNonModal4Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* and respond to key events, when there are other windows shown.
* Check also the correctness of blocking behavior for other windows shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDWTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingFDWTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
import java.awt.*;
-import static jdk.testlibrary.Asserts.*;
+import static jdk.test.lib.Asserts.*;
// FDW: Frame -> Dialog -> Window
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* and respond to key events, when there are other windows shown.
* Also check the correctness of blocking behavior for other windows shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* and respond to key events, when there are other windows shown.
* Also check the correctness of blocking behavior for other windows shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal3Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal3Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* and respond to key events, when there are other windows shown.
* Also check the correctness of blocking behavior for other windows shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal4Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal4Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* and respond to key events, when there are other windows shown.
* Also check the correctness of blocking behavior for other windows shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal5Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal5Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* and respond to key events, when there are other windows shown.
* Also check the correctness of blocking behavior for other windows shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal6Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsAppModal6Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* and respond to key events, when there are other windows shown.
* Also check the correctness of blocking behavior for other windows shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsDocModal1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsDocModal1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* and respond to key events, when there are other windows shown.
* Also check the correctness of blocking behavior for other windows shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsDocModal2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsDocModal2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* and respond to key events, when there are other windows shown.
* Also check the correctness of blocking behavior for other windows shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsDocModalTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsDocModalTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -24,7 +24,7 @@
import java.awt.*;
import java.awt.event.KeyEvent;
-import static jdk.testlibrary.Asserts.*;
+import static jdk.test.lib.Asserts.*;
import java.util.List;
import java.util.ArrayList;
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* and respond to key events, when there are other windows shown.
* Also check the correctness of blocking behavior for other windows shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* and respond to key events, when there are other windows shown.
* Also check the correctness of blocking behavior for other windows shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal3Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal3Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* and respond to key events, when there are other windows shown.
* Also check the correctness of blocking behavior for other windows shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal4Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal4Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* and respond to key events, when there are other windows shown.
* Also check the correctness of blocking behavior for other windows shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal5Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal5Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* and respond to key events, when there are other windows shown.
* Also check the correctness of blocking behavior for other windows shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal6Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsSetModal6Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* and respond to key events, when there are other windows shown.
* Also check the correctness of blocking behavior for other windows shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -21,7 +21,7 @@
* questions.
*/
-import static jdk.testlibrary.Asserts.*;
+import static jdk.test.lib.Asserts.*;
import java.awt.*;
import java.util.List;
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* and respond to key events, when there are other windows shown.
* Also check the correctness of blocking behavior for other windows shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* and respond to key events, when there are other windows shown.
* Also check the correctness of blocking behavior for other windows shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal3Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal3Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* and respond to key events, when there are other windows shown.
* Also check the correctness of blocking behavior for other windows shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal4Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal4Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* and respond to key events, when there are other windows shown.
* Also check the correctness of blocking behavior for other windows shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal5Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal5Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* and respond to key events, when there are other windows shown.
* Also check the correctness of blocking behavior for other windows shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal6Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/BlockingWindowsToolkitModal6Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* and respond to key events, when there are other windows shown.
* Also check the correctness of blocking behavior for other windows shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/UnblockedDialogAppModalTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/UnblockedDialogAppModalTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether an application modal Dialog receives focus; check
* if its components receive focus and respond to key events
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/UnblockedDialogDocModalTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/UnblockedDialogDocModalTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether a document modal Dialog receives focus; check
* if its components receive focus and respond to key events
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/UnblockedDialogModelessTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/UnblockedDialogModelessTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether a modeless Dialog receives focus; check
* if its components receive focus and respond to key events
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/UnblockedDialogNonModalTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/UnblockedDialogNonModalTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,8 @@
* @summary Check whether a non-modal Dialog receives focus; check
* if its components receive focus and respond to key events
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/UnblockedDialogSetModalTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/UnblockedDialogSetModalTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,8 @@
* @summary Check whether a modal Dialog receives focus; check
* if its components receive focus and respond to key events
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/UnblockedDialogTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/UnblockedDialogTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -22,7 +22,7 @@
*/
import java.awt.*;
-import static jdk.testlibrary.Asserts.*;
+import static jdk.test.lib.Asserts.*;
public class UnblockedDialogTest {
--- a/test/jdk/java/awt/Modal/ModalBlockingTests/UnblockedDialogToolkitModalTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalBlockingTests/UnblockedDialogToolkitModalTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether a toolkit modal Dialog receives focus; check
* if its components receive focus and respond to key events
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogFileTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogFileTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* (it shouldn't). Checks also whether setting a parent dialog to be
* modality excluded excludes its children from being blocked too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogPageSetupTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogPageSetupTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* (it shouldn't). Checks also whether setting a parent dialog to be
* modality excluded excludes its children from being blocked too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogPrintSetupTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalExclusionTests/ApplicationExcludeDialogPrintSetupTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* (it shouldn't). Checks also whether setting a parent dialog to be
* modality excluded excludes its children from being blocked too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalExclusionTests/ApplicationExcludeFrameFileTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalExclusionTests/ApplicationExcludeFrameFileTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* (it shouldn't). Checks also whether setting a parent frame to be
* modality excluded excludes its children from being blocked too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalExclusionTests/ApplicationExcludeFramePageSetupTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalExclusionTests/ApplicationExcludeFramePageSetupTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* (it shouldn't). Checks also whether setting a parent frame to be
* modality excluded excludes its children from being blocked too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalExclusionTests/ApplicationExcludeFramePrintSetupTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalExclusionTests/ApplicationExcludeFramePrintSetupTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* (it shouldn't). Checks also whether setting a parent frame to be
* modality excluded excludes its children from being blocked too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalExclusionTests/ExcludeDialogTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalExclusionTests/ExcludeDialogTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,7 +25,7 @@
import java.awt.event.*;
import java.awt.print.*;
-import static jdk.testlibrary.Asserts.*;
+import static jdk.test.lib.Asserts.*;
public class ExcludeDialogTest implements AWTEventListener {
--- a/test/jdk/java/awt/Modal/ModalExclusionTests/ExcludeFrameTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalExclusionTests/ExcludeFrameTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,7 +25,7 @@
import java.awt.event.*;
import java.awt.print.*;
-import static jdk.testlibrary.Asserts.*;
+import static jdk.test.lib.Asserts.*;
public class ExcludeFrameTest implements AWTEventListener {
--- a/test/jdk/java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogFileTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogFileTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* (it shouldn't). Checks also whether setting a parent dialog to be
* modality excluded excludes its children from being blocked too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogPageSetupTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogPageSetupTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* (it shouldn't). Checks also whether setting a parent dialog to be
* modality excluded excludes its children from being blocked too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogPrintSetupTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalExclusionTests/ToolkitExcludeDialogPrintSetupTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* (it shouldn't). Checks also whether setting a parent dialog to be
* modality excluded excludes its children from being blocked too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalExclusionTests/ToolkitExcludeFrameFileTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalExclusionTests/ToolkitExcludeFrameFileTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* (it shouldn't). Checks also whether setting a parent frame to be
* modality excluded excludes its children from being blocked too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalExclusionTests/ToolkitExcludeFramePageSetupTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalExclusionTests/ToolkitExcludeFramePageSetupTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* (it shouldn't). Checks also whether setting a parent frame to be
* modality excluded excludes its children from being blocked too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalExclusionTests/ToolkitExcludeFramePrintSetupTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalExclusionTests/ToolkitExcludeFramePrintSetupTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* (it shouldn't). Checks also whether setting a parent frame to be
* modality excluded excludes its children from being blocked too.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFAppModalTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFAppModalTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* happens: an application modal dialog (D) having null frame owner is shown;
* a window having D as owner is shown; a frame is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFDocModalTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFDocModalTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* following happens: a document modal dialog (D) having null frame owner is shown;
* a window having D as owner is shown; a frame is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFModelessTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFModelessTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* following happens: a modeless dialog (D) having null frame owner is shown;
* a window having D as owner is shown; a frame is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFNonModalTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFNonModalTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* happens: a non-modal dialog (D) having null frame owner is shown; a window having D
* as owner is shown; a frame is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
import java.awt.*;
-import static jdk.testlibrary.Asserts.*;
+import static jdk.test.lib.Asserts.*;
// DWF: Dialog -> Window -> Frame
public class FocusTransferDWFTest {
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsAppModalTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsAppModalTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* frame owner is shown; a dialog (D2) having D1 owner is shown; a dialog
* with a hidden frame owner is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsDocModalTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsDocModalTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* frame owner is shown; a dialog (D2) having D1 owner is shown; a dialog
* with a hidden frame owner is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsModelessTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsModelessTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* frame owner is shown; a dialog (D2) having D1 owner is shown; a dialog
* with a hidden frame owner is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsNonModalTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsNonModalTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* frame owner is shown; a dialog (D2) having D1 owner is shown; a dialog
* with a hidden frame owner is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWAppModalTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWAppModalTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* the following happens: a frame is shown; an application modal dialog (D)
* having a null frame owner is shown; a window having D as owner is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWDocModalTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWDocModalTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* the following happens: a frame is shown; a document modal dialog (D)
* having a null frame owner is shown; a window having D as owner is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWModelessTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWModelessTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* the following happens: a frame is shown; a modeless dialog (D)
* having a null frame owner is shown; a window having D as owner is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWNonModalTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFDWNonModalTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* the following happens: a frame is shown; a non-modal dialog (D)
* having a null frame owner is shown; a window having D as owner is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* a frame (F) is shown; a window having F as owner is shown; an application modal dialog having
* a hidden dialog owner is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* a frame (F) is shown; a window having F as owner is shown; an application modal dialog having
* a hidden frame owner is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal3Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal3Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* a frame (F) is shown; a window having F as owner is shown; an application modal dialog having
* a null dialog owner is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal4Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDAppModal4Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* a frame (F) is shown; a window having F as owner is shown; an application modal dialog having
* a null frame owner is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* a frame (F) is shown; a window having F as owner is shown; a document modal dialog having
* a hidden dialog owner is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* a frame (F) is shown; a window having F as owner is shown; a document modal dialog having
* a hidden frame owner is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal3Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal3Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* a frame (F) is shown; a window having F as owner is shown; a document modal dialog having
* a null dialog owner is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal4Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDDocModal4Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* a frame (F) is shown; a window having F as owner is shown; a document modal dialog having
* a null frame owner is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* a frame (F) is shown; a window having F as owner is shown; a modeless dialog having
* a hidden dialog owner is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* a frame (F) is shown; a window having F as owner is shown; a modeless dialog having
* a hidden frame owner is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless3Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless3Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* a frame (F) is shown; a window having F as owner is shown; a modeless dialog having
* a null dialog owner is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless4Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDModeless4Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* a frame (F) is shown; a window having F as owner is shown; a modeless dialog having
* a null frame owner is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* a frame (F) is shown; a window having F as owner is shown; a non-modal dialog having
* a hidden dialog owner is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* a frame (F) is shown; a window having F as owner is shown; a non-modal dialog having
* a hidden frame owner is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal3Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal3Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* a frame (F) is shown; a window having F as owner is shown; a non-modal dialog having
* a null dialog owner is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal4Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDNonModal4Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* a frame (F) is shown; a window having F as owner is shown; a non-modal dialog having
* a null frame owner is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferFWDTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
import java.awt.*;
-import static jdk.testlibrary.Asserts.*;
+import static jdk.test.lib.Asserts.*;
// FWD: Frame -> Window -> Dialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* the following happens: a window having a hidden frame owner is shown;
* an application modal dialog having a frame (F) owner is shown; F is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* an application modal dialog having a null dialog owner is shown;
* a frame is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal3Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFAppModal3Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* an application modal dialog having F owner is shown; F is shown.
*
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* the following happens: a window having a hidden frame owner is shown;
* a document modal dialog with a frame (F) owner is shown; F is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* a document modal dialog having a null dialog owner is shown;
* a frame is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal3Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFDocModal3Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* the following happens: a window having a frame (F) owner is shown;
* a document modal dialog having F owner is shown; F is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* the following happens: a window having a hidden frame owner is shown;
* a modeless dialog having a frame (F) owner is shown; F is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* a modeless dialog having a null dialog owner is shown;
* a frame is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless3Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFModeless3Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* the following happens: a window having a frame (F) owner is shown;
* a modeless dialog having F owner is shown; F is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* the following happens: a window having a hidden frame owner is shown;
* a non-modal dialog having a frame (F) owner is shown; F is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* a non-modal dialog having a null dialog owner is shown;
* a frame is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal3Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFNonModal3Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* the following happens: a window having a frame (F) owner is shown;
* a non-modal dialog having F owner is shown; F is shown.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalFocusTransferTests/FocusTransferWDFTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
import java.awt.*;
-import static jdk.testlibrary.Asserts.*;
+import static jdk.test.lib.Asserts.*;
// WDF: Window -> Dialog -> Frame
public class FocusTransferWDFTest {
--- a/test/jdk/java/awt/Modal/ModalitySettingsTest/ModalitySettingsTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ModalitySettingsTest/ModalitySettingsTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -22,7 +22,7 @@
*/
import java.awt.*;
-import static jdk.testlibrary.Asserts.*;
+import static jdk.test.lib.Asserts.*;
/*
* @test
@@ -30,7 +30,7 @@
* @bug 8047367
* @summary Check modality settings for Window and Dialog.
*
- * @library ../../../../lib/testlibrary/
+ * @library /test/lib
* @run main ModalitySettingsTest
*/
--- a/test/jdk/java/awt/Modal/MultipleDialogs/MultipleDialogs1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/MultipleDialogs/MultipleDialogs1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,8 @@
* parent has a proper modal blocking behavior. Also show a document modal
* dialog and check if it blocks the document properly.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/MultipleDialogs/MultipleDialogs2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/MultipleDialogs/MultipleDialogs2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,8 @@
* parent has a proper modal blocking behavior. Also show a document modal
* dialog and check if it blocks the document properly.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/MultipleDialogs/MultipleDialogs3Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/MultipleDialogs/MultipleDialogs3Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -28,7 +28,8 @@
* @summary Check correctness of modal blocking behavior for a chain of Dialogs
* having different modality types with a Frame as a document root.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
@@ -38,7 +39,7 @@
import java.awt.*;
-import static jdk.testlibrary.Asserts.*;
+import static jdk.test.lib.Asserts.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Collections;
--- a/test/jdk/java/awt/Modal/MultipleDialogs/MultipleDialogs4Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/MultipleDialogs/MultipleDialogs4Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,8 @@
* work properly. Also check whether the blocking dialogs are
* opening on top of the windows they block.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
@@ -39,7 +40,7 @@
import java.awt.*;
-import static jdk.testlibrary.Asserts.*;
+import static jdk.test.lib.Asserts.*;
public class MultipleDialogs4Test {
--- a/test/jdk/java/awt/Modal/MultipleDialogs/MultipleDialogs5Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/MultipleDialogs/MultipleDialogs5Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -28,7 +28,8 @@
* @summary This is a simple check if a chain of dialogs having different
* modality types block each other properly.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
@@ -39,7 +40,7 @@
import java.awt.*;
-import static jdk.testlibrary.Asserts.*;
+import static jdk.test.lib.Asserts.*;
public class MultipleDialogs5Test {
--- a/test/jdk/java/awt/Modal/NullModalityDialogTest/NullModalityDialogTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/NullModalityDialogTest/NullModalityDialogTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -24,7 +24,7 @@
import java.awt.*;
import java.awt.event.KeyEvent;
-import static jdk.testlibrary.Asserts.*;
+import static jdk.test.lib.Asserts.*;
/*
@@ -34,7 +34,8 @@
* @summary Check whether a Dialog set with null modality type
* behaves like a modeless dialog
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/OnTop/OnTopAppModal1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/OnTop/OnTopAppModal1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether an application modal Dialog created with null Frame
* constructor stays on top of the windows it blocks.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/OnTop/OnTopAppModal2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/OnTop/OnTopAppModal2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether an application modal Dialog created with null Dialog
* constructor stays on top of the windows it blocks.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/OnTop/OnTopAppModal3Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/OnTop/OnTopAppModal3Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether an application modal Dialog created with hidden Frame
* constructor stays on top of the windows it blocks.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/OnTop/OnTopAppModal4Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/OnTop/OnTopAppModal4Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether an application modal Dialog created with hidden Dialog
* constructor stays on top of the windows it blocks.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/OnTop/OnTopAppModal5Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/OnTop/OnTopAppModal5Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether an application modal Dialog created with visible Frame
* constructor stays on top of the windows it blocks.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/OnTop/OnTopAppModal6Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/OnTop/OnTopAppModal6Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether an application modal Dialog created with visible
* Dialog constructor stays on top of the windows it blocks.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/OnTop/OnTopDDFTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/OnTop/OnTopDDFTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
import java.awt.*;
-import static jdk.testlibrary.Asserts.*;
+import static jdk.test.lib.Asserts.*;
// DDF: Dialog - Dialog - Frame
--- a/test/jdk/java/awt/Modal/OnTop/OnTopDocModal1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/OnTop/OnTopDocModal1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether a document modal Dialog created with null Frame
* constructor follows normal Z order.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/OnTop/OnTopDocModal2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/OnTop/OnTopDocModal2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether a document modal Dialog created with null Dialog
* constructor follows normal Z order.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/OnTop/OnTopDocModal3Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/OnTop/OnTopDocModal3Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether a document modal Dialog created with hidden Frame
* constructor follows normal Z order.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/OnTop/OnTopDocModal4Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/OnTop/OnTopDocModal4Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether a document modal Dialog created with hidden Dialog
* constructor follows normal Z order.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/OnTop/OnTopDocModal5Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/OnTop/OnTopDocModal5Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether a document modal Dialog created with visible Frame
* constructor stays on top of the windows it blocks.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/OnTop/OnTopDocModal6Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/OnTop/OnTopDocModal6Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether a document modal Dialog created with visible
* Dialog constructor stays on top of the windows it blocks.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/OnTop/OnTopFDFTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/OnTop/OnTopFDFTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
import java.awt.*;
-import static jdk.testlibrary.Asserts.*;
+import static jdk.test.lib.Asserts.*;
// FDF: Frame - Dialog - Frame
--- a/test/jdk/java/awt/Modal/OnTop/OnTopModal1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/OnTop/OnTopModal1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether a modal Dialog created with null Frame
* constructor stays on top of the windows it blocks.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/OnTop/OnTopModal2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/OnTop/OnTopModal2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether a modal Dialog created with null Dialog
* constructor stays on top of the windows it blocks.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/OnTop/OnTopModal3Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/OnTop/OnTopModal3Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether a modal Dialog created with hidden Frame
* constructor stays on top of the windows it blocks.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/OnTop/OnTopModal4Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/OnTop/OnTopModal4Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether a modal Dialog created with hidden Dialog
* constructor stays on top of the windows it blocks.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/OnTop/OnTopModal5Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/OnTop/OnTopModal5Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether a modal Dialog created with visible Frame
* constructor stays on top of the windows it blocks.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/OnTop/OnTopModal6Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/OnTop/OnTopModal6Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether a modal Dialog created with visible Dialog
* constructor stays on top of the windows it blocks.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/OnTop/OnTopModeless1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/OnTop/OnTopModeless1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether a modeless Dialog created with a
* null Frame constructor follows normal Z Order.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/OnTop/OnTopModeless2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/OnTop/OnTopModeless2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether a modeless Dialog created with a
* null Dialog constructor follows normal Z Order.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/OnTop/OnTopModeless3Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/OnTop/OnTopModeless3Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether a modeless Dialog created with a
* hidden Frame constructor follows normal Z Order.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/OnTop/OnTopModeless4Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/OnTop/OnTopModeless4Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether a modeless Dialog created with a
* hidden Dialog constructor follows normal Z Order.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/OnTop/OnTopModeless5Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/OnTop/OnTopModeless5Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether a modeless Dialog created with a
* visible Frame constructor follows normal Z Order.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/OnTop/OnTopModeless6Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/OnTop/OnTopModeless6Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether a modeless Dialog created with a visible Dialog
* constructor follows a normal Z order.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/OnTop/OnTopTKModal1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/OnTop/OnTopTKModal1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether a toolkit modal Dialog created with null Frame
* constructor stays on top of the windows it blocks.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/OnTop/OnTopTKModal2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/OnTop/OnTopTKModal2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether a toolkit modal Dialog created with null Dialog
* constructor stays on top of the windows it blocks.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/OnTop/OnTopTKModal3Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/OnTop/OnTopTKModal3Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether a toolkit modal Dialog created with hidden Frame
* constructor stays on top of the windows it blocks.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/OnTop/OnTopTKModal4Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/OnTop/OnTopTKModal4Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether a toolkit modal Dialog created with hidden Dialog
* constructor stays on top of the windows it blocks.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/OnTop/OnTopTKModal5Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/OnTop/OnTopTKModal5Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether a toolkit modal Dialog created with visible Frame
* constructor stays on top of the windows it blocks.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/OnTop/OnTopTKModal6Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/OnTop/OnTopTKModal6Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether a toolkit modal Dialog created with visible
* Dialog constructor stays on top of the windows it blocks.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToBack/ToBackAppModal1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackAppModal1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* constructor still stays on top of the blocked windows even
* after calling toBack for the dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToBack/ToBackAppModal2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackAppModal2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* constructor still stays on top of the blocked windows even
* after calling toBack for the dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToBack/ToBackAppModal3Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackAppModal3Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* constructor still stays on top of the blocked windows even
* after calling toBack for the dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToBack/ToBackAppModal4Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackAppModal4Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* constructor still stays on top of the blocked windows even
* after calling toBack for the dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToBack/ToBackAppModal5Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackAppModal5Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* constructor still stays on top of the blocked windows even
* after calling toBack for the dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToBack/ToBackAppModal6Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackAppModal6Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* constructor still stays on top of the blocked windows even
* after calling toBack for the dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToBack/ToBackDDFTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackDDFTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -22,7 +22,7 @@
*/
import java.awt.*;
-import static jdk.testlibrary.Asserts.*;
+import static jdk.test.lib.Asserts.*;
// DDF: Dialog->Dialog->Frame
--- a/test/jdk/java/awt/Modal/ToBack/ToBackDocModal1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackDocModal1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check if toBack method works correctly for
* a document modal dialog with null Frame parent.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToBack/ToBackDocModal2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackDocModal2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check if toBack method works correctly for
* a document modal dialog with null Dialog parent.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToBack/ToBackDocModal3Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackDocModal3Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check if toBack method works correctly for
* a document modal dialog with hidden Frame parent.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToBack/ToBackDocModal4Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackDocModal4Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check if toBack method works correctly for
* a document modal dialog with hidden Dialog parent.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToBack/ToBackDocModal5Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackDocModal5Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* constructor still stays on top of the blocked windows even
* after calling toBack for the dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToBack/ToBackDocModal6Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackDocModal6Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* constructor still stays on top of the blocked windows even
* after calling toBack for the dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToBack/ToBackFDFTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackFDFTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
import java.awt.*;
-import static jdk.testlibrary.Asserts.*;
+import static jdk.test.lib.Asserts.*;
// FDF: Frame->Dialog->Frame
--- a/test/jdk/java/awt/Modal/ToBack/ToBackModal1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackModal1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* constructor still stays on top of the blocked windows even
* after calling toBack for the dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToBack/ToBackModal2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackModal2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* constructor still stays on top of the blocked windows even
* after calling toBack for the dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToBack/ToBackModal3Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackModal3Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* constructor still stays on top of the blocked windows even
* after calling toBack for the dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToBack/ToBackModal4Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackModal4Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* constructor still stays on top of the blocked windows even
* after calling toBack for the dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToBack/ToBackModal5Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackModal5Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* constructor still stays on top of the blocked windows even
* after calling toBack for the dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToBack/ToBackModal6Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackModal6Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* constructor still stays on top of the blocked windows even
* after calling toBack for the dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToBack/ToBackModeless1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackModeless1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether a modeless dialog having a null Frame constructor
* goes behind other windows when toBack is called for it.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToBack/ToBackModeless2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackModeless2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether a modeless dialog having a null Dialog constructor
* goes behind other windows when toBack is called for it.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToBack/ToBackModeless3Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackModeless3Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether a modeless dialog having a hidden Frame constructor
* goes behind other windows when toBack is called for it.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToBack/ToBackModeless4Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackModeless4Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check whether a modeless dialog having a hidden Dialog constructor
* goes behind other windows when toBack is called for it.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToBack/ToBackModeless5Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackModeless5Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check if toBack method works correctly for a modeless dialog
* having a visible Frame constructor.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToBack/ToBackModeless6Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackModeless6Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* @summary Check if toBack method works correctly for a modeless dialog
* having a visible Dialog constructor.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToBack/ToBackNonModal1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackNonModal1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,8 @@
* @summary Check whether a non-modal dialog having a null Frame constructor
* goes behind other windows when toBack is called for it.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToBack/ToBackNonModal2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackNonModal2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,8 @@
* @summary Check whether a non-modal dialog having a null Dialog constructor
* goes behind other windows when toBack is called for it.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToBack/ToBackNonModal3Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackNonModal3Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,8 @@
* @summary Check whether a non-modal dialog having a hidden Frame constructor
* goes behind other windows when toBack is called for it.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToBack/ToBackNonModal4Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackNonModal4Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,8 @@
* @summary Check whether a non-modal dialog having a hidden Dialog constructor
* goes behind other windows when toBack is called for it.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToBack/ToBackNonModal5Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackNonModal5Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,8 @@
* @summary Check if toBack method works correctly for a non-modal dialog
* having a visible Frame constructor.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToBack/ToBackNonModal6Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackNonModal6Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,8 @@
* @summary Check if toBack method works correctly for a non-modal dialog
* having a visible Dialog constructor.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToBack/ToBackTKModal1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackTKModal1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* constructor still stays on top of the blocked windows even
* after calling toBack for the dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToBack/ToBackTKModal2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackTKModal2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* constructor still stays on top of the blocked windows even
* after calling toBack for the dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToBack/ToBackTKModal3Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackTKModal3Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* constructor still stays on top of the blocked windows even
* after calling toBack for the dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToBack/ToBackTKModal4Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackTKModal4Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* constructor still stays on top of the blocked windows even
* after calling toBack for the dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToBack/ToBackTKModal5Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackTKModal5Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* constructor still stays on top of the blocked windows even
* after calling toBack for the dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToBack/ToBackTKModal6Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToBack/ToBackTKModal6Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* constructor still stays on top of the blocked windows even
* after calling toBack for the dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToFront/DialogToFrontAppModalTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToFront/DialogToFrontAppModalTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* blocking application modal dialog does not bring it to the top
* of the modal dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToFront/DialogToFrontDocModalTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToFront/DialogToFrontDocModalTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* blocking document modal dialog does not bring it to the top
* of the modal dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToFront/DialogToFrontModalTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToFront/DialogToFrontModalTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,8 @@
* blocking modal dialog does not bring it to the top
* of the modal dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToFront/DialogToFrontModeless1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToFront/DialogToFrontModeless1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -28,7 +28,8 @@
* @summary Check that calling toFront method does not bring a dialog to the top
* of a child modeless dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToFront/DialogToFrontNonModalTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToFront/DialogToFrontNonModalTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -28,7 +28,8 @@
* @summary Check that calling toFront method does not bring a dialog to the top
* of a non-modal child dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToFront/DialogToFrontTKModalTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToFront/DialogToFrontTKModalTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* blocking toolkit modal dialog does not bring it to the top
* of the modal dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToFront/FrameToFrontAppModal1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToFront/FrameToFrontAppModal1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* blocking application modal dialog having a null Frame parent
* does not bring the frame to the top of the modal dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToFront/FrameToFrontAppModal2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToFront/FrameToFrontAppModal2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* blocking application modal dialog having a null Dialog parent
* does not bring the frame to the top of the modal dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToFront/FrameToFrontAppModal3Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToFront/FrameToFrontAppModal3Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* blocking application modal dialog having a hidden Frame parent
* does not bring the frame to the top of the modal dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToFront/FrameToFrontAppModal4Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToFront/FrameToFrontAppModal4Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* blocking application modal dialog having a hidden Dialog parent
* does not bring the frame to the top of the modal dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToFront/FrameToFrontAppModal5Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToFront/FrameToFrontAppModal5Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* blocking application modal dialog having a visible Frame parent
* does not bring the frame to the top of the modal dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToFront/FrameToFrontDocModal1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToFront/FrameToFrontDocModal1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* blocking document modal dialog having a visible Frame parent
* does not bring the frame to the top of the modal dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToFront/FrameToFrontDocModal2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToFront/FrameToFrontDocModal2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,8 @@
* @bug 8050885
* @summary Check if toFront method works correctly for a document modal dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToFront/FrameToFrontModal1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToFront/FrameToFrontModal1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* blocking modal dialog having a null Frame parent
* does not bring the frame to the top of the modal dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToFront/FrameToFrontModal2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToFront/FrameToFrontModal2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* blocking modal dialog having a null Dialog parent
* does not bring the frame to the top of the modal dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToFront/FrameToFrontModal3Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToFront/FrameToFrontModal3Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* blocking modal dialog having a hidden Frame parent
* does not bring the frame to the top of the modal dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToFront/FrameToFrontModal4Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToFront/FrameToFrontModal4Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* blocking modal dialog having a hidden Dialog parent
* does not bring the frame to the top of the modal dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToFront/FrameToFrontModal5Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToFront/FrameToFrontModal5Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,7 +30,8 @@
* blocking modal dialog having a visible Frame parent
* does not bring the frame to the top of the modal dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToFront/FrameToFrontModeless1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToFront/FrameToFrontModeless1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,8 @@
* @summary Check that calling toFront method does not bring a frame to the top of
* a modeless child dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToFront/FrameToFrontNonModalTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToFront/FrameToFrontNonModalTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,8 @@
* @summary Check that calling toFront method does not bring a frame to the top
* of a non-modal child dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToFront/FrameToFrontTKModal1Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToFront/FrameToFrontTKModal1Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* blocking modal toolkit dialog having a null Frame parent
* does not bring the frame to the top of the modal dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToFront/FrameToFrontTKModal2Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToFront/FrameToFrontTKModal2Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* blocking toolkit modal dialog having a null Dialog parent
* does not bring the frame to the top of the modal dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToFront/FrameToFrontTKModal3Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToFront/FrameToFrontTKModal3Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* blocking toolkit modal dialog having a hidden Frame parent
* does not bring the frame to the top of the modal dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToFront/FrameToFrontTKModal4Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToFront/FrameToFrontTKModal4Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* blocking toolkit modal dialog having a hidden Dialog parent
* does not bring the frame to the top of the modal dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/ToFront/FrameToFrontTKModal5Test.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/ToFront/FrameToFrontTKModal5Test.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,8 @@
* blocking toolkit modal dialog having a visible Frame parent
* does not bring the frame to the top of the modal dialog.
*
- * @library ../helpers ../../../../lib/testlibrary/
+ * @library ../helpers /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @build Flag
* @build TestDialog
--- a/test/jdk/java/awt/Modal/helpers/TestDialog.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/helpers/TestDialog.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,7 +25,7 @@
import java.awt.*;
import java.awt.event.*;
-import static jdk.testlibrary.Asserts.*;
+import static jdk.test.lib.Asserts.*;
--- a/test/jdk/java/awt/Modal/helpers/TestFrame.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/helpers/TestFrame.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -24,7 +24,7 @@
import java.awt.*;
import java.awt.event.*;
-import static jdk.testlibrary.Asserts.*;
+import static jdk.test.lib.Asserts.*;
--- a/test/jdk/java/awt/Modal/helpers/TestWindow.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Modal/helpers/TestWindow.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -24,7 +24,7 @@
import java.awt.*;
import java.awt.event.*;
-import static jdk.testlibrary.Asserts.*;
+import static jdk.test.lib.Asserts.*;
--- a/test/jdk/java/awt/Robot/ModifierRobotKey/ModifierRobotEnhancedKeyTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Robot/ModifierRobotKey/ModifierRobotEnhancedKeyTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,7 @@
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
-import static jdk.testlibrary.Asserts.assertTrue;
+import static jdk.test.lib.Asserts.assertTrue;
/*
* NOTE: this is no intentionally a manual test (i.e. has no test tag) because
@@ -53,7 +53,8 @@
*
* @summary Make sure that modifier key mask is set when robot press
* some key with one or more modifiers.
- * @library ../../../../lib/testlibrary/
+ * @library /lib/testlibrary/
+ * @library /test/lib
* @build ExtendedRobot
* @key headful
* @run main/timeout=600 ModifierRobotEnhancedKeyTest
--- a/test/jdk/java/awt/Robot/ModifierRobotKey/ModifierRobotKeyTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/Robot/ModifierRobotKey/ModifierRobotKeyTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,8 +32,8 @@
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
-import static jdk.testlibrary.Asserts.assertNull;
-import static jdk.testlibrary.Asserts.assertTrue;
+import static jdk.test.lib.Asserts.assertNull;
+import static jdk.test.lib.Asserts.assertTrue;
/*
* @test
@@ -41,7 +41,8 @@
* @key headful
* @summary Make sure that modifier key mask is set when robot press
* some key with one or more modifiers.
- * @library ../../../../lib/testlibrary/
+ * @library /lib/testlibrary
+ * @library /test/lib
* @build ExtendedRobot
* @run main ModifierRobotKeyTest
*/
--- a/test/jdk/java/awt/datatransfer/ClipboardInterVMTest/ClipboardInterVMTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/datatransfer/ClipboardInterVMTest/ClipboardInterVMTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/test/jdk/java/awt/dnd/DragSourceListenerSerializationTest/DragSourceListenerSerializationTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/dnd/DragSourceListenerSerializationTest/DragSourceListenerSerializationTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -27,8 +27,8 @@
@bug 4422345 8039083
@summary tests serialization of DragSourceListeners
@author das@sparc.spb.su area=dnd
- @library ../../../../lib/testlibrary
- @build jdk.testlibrary.Asserts
+ @library /test/lib
+ @build jdk.test.lib.Asserts
@run main/othervm DragSourceListenerSerializationTest
*/
@@ -58,7 +58,7 @@
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import static jdk.testlibrary.Asserts.assertEquals;
+import static jdk.test.lib.Asserts.assertEquals;
public class DragSourceListenerSerializationTest {
public static void main(String[] args) throws Exception {
--- a/test/jdk/java/awt/event/KeyEvent/ExtendedModifiersTest/ExtendedModifiersTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/event/KeyEvent/ExtendedModifiersTest/ExtendedModifiersTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,8 @@
* 2. InputEvent.getModifiersExText() returns
* correct extended modifier keys description
*
- * @library ../../../../../lib/testlibrary/ ../../helpers/lwcomponents/
+ * @library /lib/testlibrary/ ../../helpers/lwcomponents/
+ * @library /test/lib
* @build LWComponent
* @build LWButton
* @build LWList
@@ -54,7 +55,7 @@
import java.awt.event.KeyListener;
import java.util.ArrayList;
-import static jdk.testlibrary.Asserts.*;
+import static jdk.test.lib.Asserts.*;
import test.java.awt.event.helpers.lwcomponents.LWButton;
import test.java.awt.event.helpers.lwcomponents.LWList;
--- a/test/jdk/java/awt/event/KeyEvent/KeyMaskTest/KeyMaskTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/event/KeyEvent/KeyMaskTest/KeyMaskTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,8 @@
* @summary Check whether KeyEvent.getModifiers() returns correct modifiers
* when Ctrl, Alt or Shift keys are pressed.
*
- * @library ../../../../../lib/testlibrary/ ../../helpers/lwcomponents/
+ * @library /lib/testlibrary/ ../../helpers/lwcomponents/
+ * @library /test/lib
* @build LWComponent
* @build LWButton
* @build LWList
@@ -46,7 +47,7 @@
import java.util.ArrayList;
-import static jdk.testlibrary.Asserts.*;
+import static jdk.test.lib.Asserts.*;
import test.java.awt.event.helpers.lwcomponents.LWButton;
import test.java.awt.event.helpers.lwcomponents.LWList;
--- a/test/jdk/java/awt/event/MouseEvent/MouseButtonsAndKeyMasksTest/MouseButtonsAndKeyMasksTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/event/MouseEvent/MouseButtonsAndKeyMasksTest/MouseButtonsAndKeyMasksTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,7 @@
import java.awt.event.MouseListener;
import java.util.ArrayList;
-import static jdk.testlibrary.Asserts.*;
+import static jdk.test.lib.Asserts.*;
import test.java.awt.event.helpers.lwcomponents.LWButton;
@@ -46,7 +46,8 @@
* and KeyEvent.getModifiers() return correct modifiers when pressing
* keys Ctrl, Alt, Shift, Meta and mouse buttons sequentially
*
- * @library ../../../../../lib/testlibrary/ ../../helpers/lwcomponents/
+ * @library /lib/testlibrary/ ../../helpers/lwcomponents/
+ * @library /test/lib
* @build LWComponent
* @build LWButton
* @build LWList
--- a/test/jdk/java/awt/event/MouseEvent/MouseButtonsTest/MouseButtonsTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/event/MouseEvent/MouseButtonsTest/MouseButtonsTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -34,7 +34,7 @@
import java.util.ArrayList;
-import static jdk.testlibrary.Asserts.*;
+import static jdk.test.lib.Asserts.*;
/*
* @test
@@ -44,7 +44,8 @@
* number when the mouse buttons are pressed and getModifiers()
* returns correct modifiers
*
- * @library ../../../../../lib/testlibrary/ ../../helpers/lwcomponents/
+ * @library /lib/testlibrary/ ../../helpers/lwcomponents/
+ * @library /test/lib
* @build LWComponent
* @build LWButton
* @build LWList
--- a/test/jdk/java/awt/event/MouseEvent/MultipleMouseButtonsTest/MultipleMouseButtonsTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/awt/event/MouseEvent/MultipleMouseButtonsTest/MultipleMouseButtonsTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -28,7 +28,7 @@
import test.java.awt.event.helpers.lwcomponents.LWButton;
import test.java.awt.event.helpers.lwcomponents.LWList;
-import static jdk.testlibrary.Asserts.*;
+import static jdk.test.lib.Asserts.*;
/*
* @test
@@ -37,7 +37,8 @@
* @summary Check whether correct modifiers set when multiple mouse buttons were pressed;
* check number of received events.
*
- * @library ../../../../../lib/testlibrary/ ../../helpers/lwcomponents/
+ * @library /lib/testlibrary/ ../../helpers/lwcomponents/
+ * @library /test/lib
* @build LWComponent
* @build LWButton
* @build LWList
--- a/test/jdk/java/lang/Thread/ThreadStateController.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/lang/Thread/ThreadStateController.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/test/jdk/java/lang/Throwable/LegacyChainedExceptionSerialization.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/lang/Throwable/LegacyChainedExceptionSerialization.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -22,10 +22,15 @@
*/
import java.io.*;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.UndeclaredThrowableException;
+import java.security.PrivilegedActionException;
+import java.util.Base64;
+import java.util.Map;
/**
* @test
- * @bug 4385429 8004928
+ * @bug 4385429 8004928 8210721
* @summary Certain legacy chained exceptions throw IllegalArgumentException
* upon deserialization if "causative exception" is null.
* @author Josh Bloch
@@ -33,18 +38,31 @@
public class LegacyChainedExceptionSerialization {
private static Throwable[] broken = {
new ClassNotFoundException(),
+ new ClassNotFoundException("bar", new IOException("reading class file")),
new ExceptionInInitializerError(),
+ new ExceptionInInitializerError(new NullPointerException("foo")),
new java.lang.reflect.UndeclaredThrowableException(null),
+ new java.lang.reflect.UndeclaredThrowableException(new IllegalArgumentException("foo")),
new java.lang.reflect.InvocationTargetException(null),
- new java.security.PrivilegedActionException(null)
+ new java.lang.reflect.InvocationTargetException(new Error("goo")),
+ new java.security.PrivilegedActionException(null),
+ new java.security.PrivilegedActionException(new IOException("foo")),
};
+
public static void main(String[] args) throws Exception {
for (int i=0; i<broken.length; i++)
test(broken[i]);
+
+ for (Map.Entry<String, Throwable> e : SERIALIZED_DATA.entrySet()) {
+ Throwable t = deserialize(e.getKey());
+ verify(t, e.getValue());
+ }
+
+ testOverriddenGetCause();
}
- private static void test(Throwable e) throws Exception {
+ private static Throwable test(Throwable e) throws Exception {
ByteArrayOutputStream bout = new ByteArrayOutputStream();
ObjectOutputStream out = new ObjectOutputStream(bout);
out.writeObject(e);
@@ -54,5 +72,247 @@
new ByteArrayInputStream(bout.toByteArray());
ObjectInputStream in = new ObjectInputStream(bin);
Throwable clone = (Throwable) in.readObject();
+ return clone;
}
+
+ private static void testOverriddenGetCause() throws Exception {
+ SubClass sc = new SubClass(new NullPointerException());
+ SubClass clone = (SubClass)test(sc);
+ Throwable cause = clone.getException();
+ if (!(cause instanceof NullPointerException) || cause.getMessage() != null) {
+ throw new RuntimeException("unexpected cause: " + cause);
+ }
+
+ }
+
+ private static Throwable deserialize(String ser) throws Exception {
+ Base64.Decoder decoder = Base64.getDecoder();
+ try (ByteArrayInputStream bin = new ByteArrayInputStream(decoder.decode(ser));
+ ObjectInputStream ois = new ObjectInputStream(bin)) {
+ return (Throwable)ois.readObject();
+ }
+ }
+
+ /*
+ * Verify the deserialization of the serialized data from an old version.
+ * See SERIALIZED_DATA.
+ */
+ private static void verify(Throwable t, Throwable expected) {
+ String msg = expected.getMessage();
+ Throwable cause = expected.getCause();
+ if (t.getMessage() != msg && msg != null && !msg.equals(t.getMessage())) {
+ throw new RuntimeException("unexpected message: " + t.getMessage()
+ + " expected: " + msg);
+ }
+ Throwable e = t.getCause();
+ if (e.getClass() != cause.getClass()) {
+ throw new RuntimeException("unexpected cause: " + t.getCause());
+ }
+ String causedBy = cause.getMessage();
+ if (e.getMessage() != causedBy) {
+ if (e.getMessage() == null || causedBy == null || !causedBy.equals(e.getMessage())) {
+ throw new RuntimeException("unexpected message: " + t.getMessage()
+ + " expected: " + causedBy);
+ }
+ }
+ Throwable exception = null;
+ if (t instanceof ExceptionInInitializerError) {
+ exception = ((ExceptionInInitializerError)t).getException();
+ } else if (t instanceof ClassNotFoundException) {
+ exception = ((ClassNotFoundException)t).getException();
+ } else if (t instanceof InvocationTargetException) {
+ exception = ((InvocationTargetException) t).getTargetException();
+ } else if (t instanceof UndeclaredThrowableException) {
+ exception = ((UndeclaredThrowableException) t).getUndeclaredThrowable();
+ } else if (t instanceof PrivilegedActionException) {
+ exception = ((PrivilegedActionException) t).getException();
+ } else {
+ // skip the cause == exception check below
+ e = null;
+ }
+ if (e != exception) {
+ throw new RuntimeException("unexpected exception: " + exception);
+ }
+ }
+
+ static class SubClass extends ExceptionInInitializerError {
+ public SubClass(Throwable t) {
+ super(t);
+ }
+ @Override
+ public Throwable getCause() {
+ return new Throwable("always new");
+ }
+ }
+
+ /*
+ * The following strings are base64-encoded serialized data generated
+ * by running the jdk10SerializeThrowable method with JDK 10 runtime.
+ *
+ * private static void jdk10SerializeThrowable(Throwable e) throws Exception {
+ * Base64.Encoder encoder = Base64.getEncoder();
+ * try (ByteArrayOutputStream os = new ByteArrayOutputStream();
+ * ObjectOutputStream out = new ObjectOutputStream(os)) {
+ * out.writeObject(e);
+ * out.flush();
+ * String s = encoder.encodeToString(os.toByteArray());
+ * for (int i=0; i < s.length();) {
+ * int end = Math.min(i+60, s.length());
+ * CharSequence seq = s.subSequence(i, end);
+ * System.out.format("\"%s\" +%n", seq);
+ * i = end;
+ * }
+ * }
+ * }
+ */
+
+ private static final String EIIE_OLD_VERSION =
+ "rO0ABXNyACVqYXZhLmxhbmcuRXhjZXB0aW9uSW5Jbml0aWFsaXplckVycm9y" +
+ "FR400Amhk4ACAAFMAAlleGNlcHRpb250ABVMamF2YS9sYW5nL1Rocm93YWJs" +
+ "ZTt4cgAWamF2YS5sYW5nLkxpbmthZ2VFcnJvcjGtS1U0qEq6AgAAeHIAD2ph" +
+ "dmEubGFuZy5FcnJvckUdNlaLgg5WAgAAeHIAE2phdmEubGFuZy5UaHJvd2Fi" +
+ "bGXVxjUnOXe4ywMABEwABWNhdXNlcQB+AAFMAA1kZXRhaWxNZXNzYWdldAAS" +
+ "TGphdmEvbGFuZy9TdHJpbmc7WwAKc3RhY2tUcmFjZXQAHltMamF2YS9sYW5n" +
+ "L1N0YWNrVHJhY2VFbGVtZW50O0wAFHN1cHByZXNzZWRFeGNlcHRpb25zdAAQ" +
+ "TGphdmEvdXRpbC9MaXN0O3hwcHB1cgAeW0xqYXZhLmxhbmcuU3RhY2tUcmFj" +
+ "ZUVsZW1lbnQ7AkYqPDz9IjkCAAB4cAAAAAFzcgAbamF2YS5sYW5nLlN0YWNr" +
+ "VHJhY2VFbGVtZW50YQnFmiY23YUCAAhCAAZmb3JtYXRJAApsaW5lTnVtYmVy" +
+ "TAAPY2xhc3NMb2FkZXJOYW1lcQB+AAVMAA5kZWNsYXJpbmdDbGFzc3EAfgAF" +
+ "TAAIZmlsZU5hbWVxAH4ABUwACm1ldGhvZE5hbWVxAH4ABUwACm1vZHVsZU5h" +
+ "bWVxAH4ABUwADW1vZHVsZVZlcnNpb25xAH4ABXhwAQAAAAd0AANhcHB0AARU" +
+ "ZXN0dAAJVGVzdC5qYXZhdAAEbWFpbnBwc3IAH2phdmEudXRpbC5Db2xsZWN0" +
+ "aW9ucyRFbXB0eUxpc3R6uBe0PKee3gIAAHhweHNyAB5qYXZhLmxhbmcuTnVs" +
+ "bFBvaW50ZXJFeGNlcHRpb25HpaGO/zHhuAIAAHhyABpqYXZhLmxhbmcuUnVu" +
+ "dGltZUV4Y2VwdGlvbp5fBkcKNIPlAgAAeHIAE2phdmEubGFuZy5FeGNlcHRp" +
+ "b27Q/R8+GjscxAIAAHhxAH4ABHEAfgAWdAADZm9vdXEAfgAJAAAAAXNxAH4A" +
+ "CwEAAAAHcQB+AA1xAH4ADnEAfgAPcQB+ABBwcHEAfgASeA==";
+
+ private static final String CNFE_OLD_VERSION =
+ "rO0ABXNyACBqYXZhLmxhbmcuQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbn9azWY+" +
+ "1CCOAgABTAACZXh0ABVMamF2YS9sYW5nL1Rocm93YWJsZTt4cgAmamF2YS5s" +
+ "YW5nLlJlZmxlY3RpdmVPcGVyYXRpb25FeGNlcHRpb24AAAAAB1vNFQIAAHhy" +
+ "ABNqYXZhLmxhbmcuRXhjZXB0aW9u0P0fPho7HMQCAAB4cgATamF2YS5sYW5n" +
+ "LlRocm93YWJsZdXGNSc5d7jLAwAETAAFY2F1c2VxAH4AAUwADWRldGFpbE1l" +
+ "c3NhZ2V0ABJMamF2YS9sYW5nL1N0cmluZztbAApzdGFja1RyYWNldAAeW0xq" +
+ "YXZhL2xhbmcvU3RhY2tUcmFjZUVsZW1lbnQ7TAAUc3VwcHJlc3NlZEV4Y2Vw" +
+ "dGlvbnN0ABBMamF2YS91dGlsL0xpc3Q7eHBwdAADYmFydXIAHltMamF2YS5s" +
+ "YW5nLlN0YWNrVHJhY2VFbGVtZW50OwJGKjw8/SI5AgAAeHAAAAABc3IAG2ph" +
+ "dmEubGFuZy5TdGFja1RyYWNlRWxlbWVudGEJxZomNt2FAgAIQgAGZm9ybWF0" +
+ "SQAKbGluZU51bWJlckwAD2NsYXNzTG9hZGVyTmFtZXEAfgAFTAAOZGVjbGFy" +
+ "aW5nQ2xhc3NxAH4ABUwACGZpbGVOYW1lcQB+AAVMAAptZXRob2ROYW1lcQB+" +
+ "AAVMAAptb2R1bGVOYW1lcQB+AAVMAA1tb2R1bGVWZXJzaW9ucQB+AAV4cAEA" +
+ "AAAMdAADYXBwdAAEVGVzdHQACVRlc3QuamF2YXQABG1haW5wcHNyAB9qYXZh" +
+ "LnV0aWwuQ29sbGVjdGlvbnMkRW1wdHlMaXN0ergXtDynnt4CAAB4cHhzcgAT" +
+ "amF2YS5pby5JT0V4Y2VwdGlvbmyAc2RlJfCrAgAAeHEAfgADcQB+ABV0ABJy" +
+ "ZWFkaW5nIGNsYXNzIGZpbGV1cQB+AAoAAAABc3EAfgAMAQAAAAxxAH4ADnEA" +
+ "fgAPcQB+ABBxAH4AEXBwcQB+ABN4";
+
+ private static final String ITE1_OLD_VERSION =
+ "rO0ABXNyACtqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhj" +
+ "ZXB0aW9uOLEmjtZxJG8CAAFMAAZ0YXJnZXR0ABVMamF2YS9sYW5nL1Rocm93" +
+ "YWJsZTt4cgAmamF2YS5sYW5nLlJlZmxlY3RpdmVPcGVyYXRpb25FeGNlcHRp" +
+ "b24AAAAAB1vNFQIAAHhyABNqYXZhLmxhbmcuRXhjZXB0aW9u0P0fPho7HMQC" +
+ "AAB4cgATamF2YS5sYW5nLlRocm93YWJsZdXGNSc5d7jLAwAETAAFY2F1c2Vx" +
+ "AH4AAUwADWRldGFpbE1lc3NhZ2V0ABJMamF2YS9sYW5nL1N0cmluZztbAApz" +
+ "dGFja1RyYWNldAAeW0xqYXZhL2xhbmcvU3RhY2tUcmFjZUVsZW1lbnQ7TAAU" +
+ "c3VwcHJlc3NlZEV4Y2VwdGlvbnN0ABBMamF2YS91dGlsL0xpc3Q7eHBwdAAD" +
+ "YmFydXIAHltMamF2YS5sYW5nLlN0YWNrVHJhY2VFbGVtZW50OwJGKjw8/SI5" +
+ "AgAAeHAAAAABc3IAG2phdmEubGFuZy5TdGFja1RyYWNlRWxlbWVudGEJxZom" +
+ "Nt2FAgAIQgAGZm9ybWF0SQAKbGluZU51bWJlckwAD2NsYXNzTG9hZGVyTmFt" +
+ "ZXEAfgAFTAAOZGVjbGFyaW5nQ2xhc3NxAH4ABUwACGZpbGVOYW1lcQB+AAVM" +
+ "AAptZXRob2ROYW1lcQB+AAVMAAptb2R1bGVOYW1lcQB+AAVMAA1tb2R1bGVW" +
+ "ZXJzaW9ucQB+AAV4cAEAAAARdAADYXBwdAAEVGVzdHQACVRlc3QuamF2YXQA" +
+ "BG1haW5wcHNyAB9qYXZhLnV0aWwuQ29sbGVjdGlvbnMkRW1wdHlMaXN0ergX" +
+ "tDynnt4CAAB4cHhzcgAPamF2YS5sYW5nLkVycm9yRR02VouCDlYCAAB4cQB+" +
+ "AARxAH4AFXQAA2Zvb3VxAH4ACgAAAAFzcQB+AAwBAAAAEXEAfgAOcQB+AA9x" +
+ "AH4AEHEAfgARcHBxAH4AE3g=";
+
+ private static final String ITE2_OLD_VERSION =
+ "rO0ABXNyACtqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhj" +
+ "ZXB0aW9uOLEmjtZxJG8CAAFMAAZ0YXJnZXR0ABVMamF2YS9sYW5nL1Rocm93" +
+ "YWJsZTt4cgAmamF2YS5sYW5nLlJlZmxlY3RpdmVPcGVyYXRpb25FeGNlcHRp" +
+ "b24AAAAAB1vNFQIAAHhyABNqYXZhLmxhbmcuRXhjZXB0aW9u0P0fPho7HMQC" +
+ "AAB4cgATamF2YS5sYW5nLlRocm93YWJsZdXGNSc5d7jLAwAETAAFY2F1c2Vx" +
+ "AH4AAUwADWRldGFpbE1lc3NhZ2V0ABJMamF2YS9sYW5nL1N0cmluZztbAApz" +
+ "dGFja1RyYWNldAAeW0xqYXZhL2xhbmcvU3RhY2tUcmFjZUVsZW1lbnQ7TAAU" +
+ "c3VwcHJlc3NlZEV4Y2VwdGlvbnN0ABBMamF2YS91dGlsL0xpc3Q7eHBwcHVy" +
+ "AB5bTGphdmEubGFuZy5TdGFja1RyYWNlRWxlbWVudDsCRio8PP0iOQIAAHhw" +
+ "AAAAAXNyABtqYXZhLmxhbmcuU3RhY2tUcmFjZUVsZW1lbnRhCcWaJjbdhQIA" +
+ "CEIABmZvcm1hdEkACmxpbmVOdW1iZXJMAA9jbGFzc0xvYWRlck5hbWVxAH4A" +
+ "BUwADmRlY2xhcmluZ0NsYXNzcQB+AAVMAAhmaWxlTmFtZXEAfgAFTAAKbWV0" +
+ "aG9kTmFtZXEAfgAFTAAKbW9kdWxlTmFtZXEAfgAFTAANbW9kdWxlVmVyc2lv" +
+ "bnEAfgAFeHABAAAAEnQAA2FwcHQABFRlc3R0AAlUZXN0LmphdmF0AARtYWlu" +
+ "cHBzcgAfamF2YS51dGlsLkNvbGxlY3Rpb25zJEVtcHR5TGlzdHq4F7Q8p57e" +
+ "AgAAeHB4c3IAD2phdmEubGFuZy5FcnJvckUdNlaLgg5WAgAAeHEAfgAEcQB+" +
+ "ABR0AANnb291cQB+AAkAAAABc3EAfgALAQAAABJxAH4ADXEAfgAOcQB+AA9x" +
+ "AH4AEHBwcQB+ABJ4";
+
+ private static final String UTE1_OLD_VERSION =
+ "rO0ABXNyAC5qYXZhLmxhbmcucmVmbGVjdC5VbmRlY2xhcmVkVGhyb3dhYmxl" +
+ "RXhjZXB0aW9uBJTY3HP5/P8CAAFMABN1bmRlY2xhcmVkVGhyb3dhYmxldAAV" +
+ "TGphdmEvbGFuZy9UaHJvd2FibGU7eHIAGmphdmEubGFuZy5SdW50aW1lRXhj" +
+ "ZXB0aW9unl8GRwo0g+UCAAB4cgATamF2YS5sYW5nLkV4Y2VwdGlvbtD9Hz4a" +
+ "OxzEAgAAeHIAE2phdmEubGFuZy5UaHJvd2FibGXVxjUnOXe4ywMABEwABWNh" +
+ "dXNlcQB+AAFMAA1kZXRhaWxNZXNzYWdldAASTGphdmEvbGFuZy9TdHJpbmc7" +
+ "WwAKc3RhY2tUcmFjZXQAHltMamF2YS9sYW5nL1N0YWNrVHJhY2VFbGVtZW50" +
+ "O0wAFHN1cHByZXNzZWRFeGNlcHRpb25zdAAQTGphdmEvdXRpbC9MaXN0O3hw" +
+ "cHQAA2JhcnVyAB5bTGphdmEubGFuZy5TdGFja1RyYWNlRWxlbWVudDsCRio8" +
+ "PP0iOQIAAHhwAAAAAXNyABtqYXZhLmxhbmcuU3RhY2tUcmFjZUVsZW1lbnRh" +
+ "CcWaJjbdhQIACEIABmZvcm1hdEkACmxpbmVOdW1iZXJMAA9jbGFzc0xvYWRl" +
+ "ck5hbWVxAH4ABUwADmRlY2xhcmluZ0NsYXNzcQB+AAVMAAhmaWxlTmFtZXEA" +
+ "fgAFTAAKbWV0aG9kTmFtZXEAfgAFTAAKbW9kdWxlTmFtZXEAfgAFTAANbW9k" +
+ "dWxlVmVyc2lvbnEAfgAFeHABAAAAE3QAA2FwcHQABFRlc3R0AAlUZXN0Lmph" +
+ "dmF0AARtYWlucHBzcgAfamF2YS51dGlsLkNvbGxlY3Rpb25zJEVtcHR5TGlz" +
+ "dHq4F7Q8p57eAgAAeHB4c3IAImphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRF" +
+ "eGNlcHRpb261iXPTfWaPvAIAAHhxAH4AAnEAfgAVdAADZm9vdXEAfgAKAAAA" +
+ "AXNxAH4ADAEAAAATcQB+AA5xAH4AD3EAfgAQcQB+ABFwcHEAfgATeA==";
+
+ private static final String UTE2_OLD_VERSION =
+ "rO0ABXNyAC5qYXZhLmxhbmcucmVmbGVjdC5VbmRlY2xhcmVkVGhyb3dhYmxl" +
+ "RXhjZXB0aW9uBJTY3HP5/P8CAAFMABN1bmRlY2xhcmVkVGhyb3dhYmxldAAV" +
+ "TGphdmEvbGFuZy9UaHJvd2FibGU7eHIAGmphdmEubGFuZy5SdW50aW1lRXhj" +
+ "ZXB0aW9unl8GRwo0g+UCAAB4cgATamF2YS5sYW5nLkV4Y2VwdGlvbtD9Hz4a" +
+ "OxzEAgAAeHIAE2phdmEubGFuZy5UaHJvd2FibGXVxjUnOXe4ywMABEwABWNh" +
+ "dXNlcQB+AAFMAA1kZXRhaWxNZXNzYWdldAASTGphdmEvbGFuZy9TdHJpbmc7" +
+ "WwAKc3RhY2tUcmFjZXQAHltMamF2YS9sYW5nL1N0YWNrVHJhY2VFbGVtZW50" +
+ "O0wAFHN1cHByZXNzZWRFeGNlcHRpb25zdAAQTGphdmEvdXRpbC9MaXN0O3hw" +
+ "cHB1cgAeW0xqYXZhLmxhbmcuU3RhY2tUcmFjZUVsZW1lbnQ7AkYqPDz9IjkC" +
+ "AAB4cAAAAAFzcgAbamF2YS5sYW5nLlN0YWNrVHJhY2VFbGVtZW50YQnFmiY2" +
+ "3YUCAAhCAAZmb3JtYXRJAApsaW5lTnVtYmVyTAAPY2xhc3NMb2FkZXJOYW1l" +
+ "cQB+AAVMAA5kZWNsYXJpbmdDbGFzc3EAfgAFTAAIZmlsZU5hbWVxAH4ABUwA" +
+ "Cm1ldGhvZE5hbWVxAH4ABUwACm1vZHVsZU5hbWVxAH4ABUwADW1vZHVsZVZl" +
+ "cnNpb25xAH4ABXhwAQAAABR0AANhcHB0AARUZXN0dAAJVGVzdC5qYXZhdAAE" +
+ "bWFpbnBwc3IAH2phdmEudXRpbC5Db2xsZWN0aW9ucyRFbXB0eUxpc3R6uBe0" +
+ "PKee3gIAAHhweHNyACJqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0" +
+ "aW9utYlz031mj7wCAAB4cQB+AAJxAH4AFHQAA2dvb3VxAH4ACQAAAAFzcQB+" +
+ "AAsBAAAAFHEAfgANcQB+AA5xAH4AD3EAfgAQcHBxAH4AEng=";
+
+ private static final String PAE_OLD_VERSION =
+ "rO0ABXNyACdqYXZhLnNlY3VyaXR5LlByaXZpbGVnZWRBY3Rpb25FeGNlcHRp" +
+ "b25Bj1P2UhH1ugIAAUwACWV4Y2VwdGlvbnQAFUxqYXZhL2xhbmcvRXhjZXB0" +
+ "aW9uO3hyABNqYXZhLmxhbmcuRXhjZXB0aW9u0P0fPho7HMQCAAB4cgATamF2" +
+ "YS5sYW5nLlRocm93YWJsZdXGNSc5d7jLAwAETAAFY2F1c2V0ABVMamF2YS9s" +
+ "YW5nL1Rocm93YWJsZTtMAA1kZXRhaWxNZXNzYWdldAASTGphdmEvbGFuZy9T" +
+ "dHJpbmc7WwAKc3RhY2tUcmFjZXQAHltMamF2YS9sYW5nL1N0YWNrVHJhY2VF" +
+ "bGVtZW50O0wAFHN1cHByZXNzZWRFeGNlcHRpb25zdAAQTGphdmEvdXRpbC9M" +
+ "aXN0O3hwcHB1cgAeW0xqYXZhLmxhbmcuU3RhY2tUcmFjZUVsZW1lbnQ7AkYq" +
+ "PDz9IjkCAAB4cAAAAAFzcgAbamF2YS5sYW5nLlN0YWNrVHJhY2VFbGVtZW50" +
+ "YQnFmiY23YUCAAhCAAZmb3JtYXRJAApsaW5lTnVtYmVyTAAPY2xhc3NMb2Fk" +
+ "ZXJOYW1lcQB+AAVMAA5kZWNsYXJpbmdDbGFzc3EAfgAFTAAIZmlsZU5hbWVx" +
+ "AH4ABUwACm1ldGhvZE5hbWVxAH4ABUwACm1vZHVsZU5hbWVxAH4ABUwADW1v" +
+ "ZHVsZVZlcnNpb25xAH4ABXhwAQAAABd0AANhcHB0AARUZXN0dAAJVGVzdC5q" +
+ "YXZhdAAEbWFpbnBwc3IAH2phdmEudXRpbC5Db2xsZWN0aW9ucyRFbXB0eUxp" +
+ "c3R6uBe0PKee3gIAAHhweHNyABNqYXZhLmlvLklPRXhjZXB0aW9ubIBzZGUl" +
+ "8KsCAAB4cQB+AAJxAH4AFHQAA2Zvb3VxAH4ACQAAAAFzcQB+AAsBAAAAF3EA" +
+ "fgANcQB+AA5xAH4AD3EAfgAQcHBxAH4AEng=";
+
+ private static Map<String, Throwable> SERIALIZED_DATA = Map.of(
+ EIIE_OLD_VERSION, new ExceptionInInitializerError(new NullPointerException("foo")),
+ CNFE_OLD_VERSION, new ClassNotFoundException("bar", new IOException("reading class file")),
+ ITE1_OLD_VERSION, new InvocationTargetException(new Error("foo"), "bar"),
+ ITE2_OLD_VERSION, new InvocationTargetException(new Error("goo")),
+ UTE1_OLD_VERSION, new UndeclaredThrowableException(new IllegalArgumentException("foo"), "bar"),
+ UTE2_OLD_VERSION, new UndeclaredThrowableException(new IllegalArgumentException("goo")),
+ PAE_OLD_VERSION, new PrivilegedActionException(new IOException("foo"))
+ );
}
--- a/test/jdk/java/lang/annotation/repeatingAnnotations/CustomRepeatingWithSecurityManager.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/lang/annotation/repeatingAnnotations/CustomRepeatingWithSecurityManager.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,8 +26,8 @@
* @bug 8073056
* @summary Repeating annotations throws java.security.AccessControlException with a SecurityManager
*
- * @library /lib/testlibrary
- * @build jdk.testlibrary.Asserts
+ * @library /test/lib
+ * @build jdk.test.lib.Asserts
* @run main CustomRepeatingWithSecurityManager
* @run main/othervm CustomRepeatingWithSecurityManager "withSM"
*/
@@ -35,7 +35,7 @@
import java.lang.annotation.*;
import java.lang.reflect.*;
-import jdk.testlibrary.Asserts;
+import jdk.test.lib.Asserts;
public class CustomRepeatingWithSecurityManager {
public static void main(String[] args) throws Exception {
--- a/test/jdk/java/lang/annotation/repeatingAnnotations/RepeatingWithSecurityManager.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/lang/annotation/repeatingAnnotations/RepeatingWithSecurityManager.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,8 +26,8 @@
* @bug 8073056
* @summary Repeating annotations throws java.security.AccessControlException with a SecurityManager
*
- * @library /lib/testlibrary
- * @build jdk.testlibrary.Asserts
+ * @library /test/lib
+ * @build jdk.test.lib.Asserts
* @run main RepeatingWithSecurityManager
* @run main/othervm RepeatingWithSecurityManager "withSM"
*/
@@ -35,7 +35,7 @@
import java.lang.annotation.*;
import java.util.*;
-import jdk.testlibrary.Asserts;
+import jdk.test.lib.Asserts;
public class RepeatingWithSecurityManager {
public static void main(String[] args) throws Exception {
--- a/test/jdk/java/lang/annotation/typeAnnotations/GetAnnotatedOwnerType.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/lang/annotation/typeAnnotations/GetAnnotatedOwnerType.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,15 +26,15 @@
* @bug 8058595
* @summary Test that AnnotatedType.getAnnotatedOwnerType() works as expected
*
- * @library /lib/testlibrary
- * @build jdk.testlibrary.Asserts
+ * @library /test/lib
+ * @build jdk.test.lib.Asserts
* @run main GetAnnotatedOwnerType
*/
import java.lang.annotation.*;
import java.lang.reflect.*;
-import jdk.testlibrary.Asserts;
+import jdk.test.lib.Asserts;
public class GetAnnotatedOwnerType<Dummy> {
public @TA("generic") GetAnnotatedOwnerType<String> . @TB("generic") Nested<Integer> genericField;
--- a/test/jdk/java/lang/instrument/BootClassPath/BootClassPathTest.sh Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/lang/instrument/BootClassPath/BootClassPathTest.sh Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2018, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -90,6 +90,6 @@
"$JAVAC" ${TESTJAVACOPTS} ${TESTTOOLVMOPTS} -d "${TESTCLASSES}" \
"${TESTSRC}"/Cleanup.java
-"$JAVA" ${TESTTOOLVMOPTS} -classpath "${TESTCLASSES}" Cleanup "${BOOTDIR}"
+"$JAVA" ${TESTVMOPTS} -classpath "${TESTCLASSES}" Cleanup "${BOOTDIR}"
exit $result
--- a/test/jdk/java/lang/instrument/BootClassPath/Setup.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/lang/instrument/BootClassPath/Setup.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -27,7 +27,7 @@
* Used by BootClassPath.sh.
*
* Given a "work directory" this class creates a sub-directory with a
- * name that uses locale specific characters. It the creates a jar
+ * name that uses locale specific characters. It then creates a jar
* manifest file in the work directory with a Boot-Class-Path that
* encodes the created sub-directory. Finally it creates a file
* "boot.dir" in the work directory with the name of the sub-directory.
@@ -51,6 +51,13 @@
String bootDir = workDir + fileSeparator + bootClassPath;
+ /*
+ * Environment variable settings ("null" if unset)
+ */
+ System.out.println("Env vars:");
+ System.out.println(" LANG=" + System.getenv("LANG"));
+ System.out.println(" LC_ALL=" + System.getenv("LC_ALL"));
+ System.out.println(" LC_CTYPE=" + System.getenv("LC_CTYPE"));
/*
* Create sub-directory
--- a/test/jdk/java/lang/invoke/ExplicitCastArgumentsTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/lang/invoke/ExplicitCastArgumentsTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -38,7 +38,7 @@
* @test
* @bug 8060483 8066746
* @key randomness
- * @library /lib/testlibrary /java/lang/invoke/common
+ * @library /test/lib /java/lang/invoke/common
* @modules java.base/sun.invoke.util
* @summary unit tests for MethodHandles.explicitCastArguments()
* @run main ExplicitCastArgumentsTest
--- a/test/jdk/java/lang/invoke/LFCaching/LambdaFormTestCase.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/lang/invoke/LFCaching/LambdaFormTestCase.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/test/jdk/java/lang/invoke/MethodHandles/CatchExceptionTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/lang/invoke/MethodHandles/CatchExceptionTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -24,7 +24,7 @@
package test.java.lang.invoke.MethodHandles;
import jdk.test.lib.TimeLimitedRunner;
-import jdk.testlibrary.Asserts;
+import jdk.test.lib.Asserts;
import jdk.test.lib.Utils;
import test.java.lang.invoke.lib.CodeCacheOverflowProcessor;
import test.java.lang.invoke.lib.Helper;
@@ -43,7 +43,7 @@
import java.util.function.Supplier;
/* @test
- * @library /lib/testlibrary /java/lang/invoke/common /test/lib
+ * @library /java/lang/invoke/common /test/lib
* @build jdk.test.lib.TimeLimitedRunner
* @compile CatchExceptionTest.java
* @run main/othervm -esa test.java.lang.invoke.MethodHandles.CatchExceptionTest
--- a/test/jdk/java/lang/invoke/PermuteArgsTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/lang/invoke/PermuteArgsTest.java Mon Sep 24 10:59:26 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
--- a/test/jdk/java/lang/invoke/TestCatchExceptionWithVarargs.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/lang/invoke/TestCatchExceptionWithVarargs.java Mon Sep 24 10:59:26 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
--- a/test/jdk/java/lang/invoke/VarargsArrayTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/lang/invoke/VarargsArrayTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/test/jdk/java/lang/invoke/common/test/java/lang/invoke/lib/CodeCacheOverflowProcessor.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/lang/invoke/common/test/java/lang/invoke/lib/CodeCacheOverflowProcessor.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/test/jdk/java/lang/invoke/common/test/java/lang/invoke/lib/Helper.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/lang/invoke/common/test/java/lang/invoke/lib/Helper.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
package test.java.lang.invoke.lib;
-import jdk.testlibrary.Asserts;
+import jdk.test.lib.Asserts;
import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;
--- a/test/jdk/java/lang/reflect/callerCache/AccessTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/lang/reflect/callerCache/AccessTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -113,25 +113,17 @@
if (!Modifier.isFinal(f.getModifiers())) {
throw new RuntimeException("not a final field");
}
- makeFinalNonFinal(f);
}
public Void call() throws Exception {
Members obj = isStatic ? null : new Members();
try {
f.set(obj, 20);
- checkValue(obj, 20);
+ throw new RuntimeException("IllegalAccessException expected");
} catch (IllegalAccessException e) {
- throw e;
+ // expected
}
return null;
}
-
- void checkValue(Object obj, int expected) throws Exception {
- int value = (int) f.get(obj);
- if (value != expected) {
- throw new RuntimeException("unexpectd value: " + value);
- }
- }
}
public static class PublicFinalField extends FinalField {
@@ -157,15 +149,4 @@
super("privateStaticFinalField");
}
}
-
- private static void makeFinalNonFinal(Field f) throws ReflectiveOperationException {
- Field modifiers = Field.class.getDeclaredField("modifiers");
- modifiers.setAccessible(true);
- modifiers.set(f, modifiers.getInt(f) & ~Modifier.FINAL);
- f.setAccessible(true);
-
- if (Modifier.isFinal(f.getModifiers())) {
- throw new RuntimeException("should be a non-final field");
- }
- }
}
--- a/test/jdk/java/net/DatagramSocket/ReportSocketClosed.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/net/DatagramSocket/ReportSocketClosed.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 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
@@ -37,7 +37,7 @@
byte[] array = {21,22,23};
try {
- soc = new DatagramSocket(4001);
+ soc = new DatagramSocket(0);
sin = InetAddress.getLocalHost();
soc.close();
} catch (Exception e) {
--- a/test/jdk/java/net/MulticastSocket/MultiDead.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/net/MulticastSocket/MultiDead.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/test/jdk/java/net/MulticastSocket/UnreferencedMulticastSockets.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/net/MulticastSocket/UnreferencedMulticastSockets.java Mon Sep 24 10:59:26 2018 -0700
@@ -120,6 +120,7 @@
thr.start();
MulticastSocket client = new MulticastSocket(0);
+ System.out.printf(" client bound port: %d%n", client.getLocalPort());
client.connect(svr.getHost(), svr.getPort());
pendingSockets.add(new NamedWeak(client, pendingQueue, "clientMulticastSocket"));
extractRefs(client, "clientMulticastSocket");
--- a/test/jdk/java/net/httpclient/EchoHandler.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/net/httpclient/EchoHandler.java Mon Sep 24 10:59:26 2018 -0700
@@ -40,6 +40,7 @@
import java.util.logging.Logger;
public class EchoHandler implements HttpHandler {
+ static final Path CWD = Paths.get(".");
public EchoHandler() {}
@Override
@@ -53,7 +54,7 @@
map1.add("X-Hello", "world");
map1.add("X-Bye", "universe");
String fixedrequest = map.getFirst("XFixed");
- File outfile = File.createTempFile("foo", "bar");
+ File outfile = Files.createTempFile(CWD, "foo", "bar").toFile();
FileOutputStream fos = new FileOutputStream(outfile);
int count = (int) is.transferTo(fos);
is.close();
--- a/test/jdk/java/net/spi/URLStreamHandlerProvider/Basic.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/net/spi/URLStreamHandlerProvider/Basic.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/test/jdk/java/nio/channels/FileChannel/LoopingTruncate.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/nio/channels/FileChannel/LoopingTruncate.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/test/jdk/java/nio/channels/Selector/Wakeup.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/nio/channels/Selector/Wakeup.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/test/jdk/java/security/KeyStore/PKCS12/EntryProtectionTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/security/KeyStore/PKCS12/EntryProtectionTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/test/jdk/java/security/SecureRandom/GetInstanceTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/security/SecureRandom/GetInstanceTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -24,7 +24,7 @@
/*
* @test
* @bug 8141039
- * @library /lib/testlibrary
+ * @library /test/lib
* @summary SecureRandom supports multiple getInstance method including
* getInstanceStrong() method. This test verifies a set of possible
* cases for getInstance with different SecureRandom mechanism
@@ -39,7 +39,7 @@
import static java.security.DrbgParameters.Capability.*;
import java.security.Security;
import java.util.Arrays;
-import jdk.testlibrary.Asserts;
+import jdk.test.lib.Asserts;
public class GetInstanceTest {
--- a/test/jdk/java/security/SecureRandom/SerializedSeedTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/security/SecureRandom/SerializedSeedTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -24,7 +24,7 @@
/*
* @test
* @bug 8141039
- * @library /lib/testlibrary
+ * @library /test/lib
* @summary When random number is generated through the a SecureRandom instance
* as well from it's serialized instance in the same time then the
* generated random numbers should be different when one or both are
@@ -39,7 +39,7 @@
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.security.Security;
-import jdk.testlibrary.Asserts;
+import jdk.test.lib.Asserts;
public class SerializedSeedTest {
--- a/test/jdk/java/util/concurrent/BlockingQueue/Interrupt.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/util/concurrent/BlockingQueue/Interrupt.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/test/jdk/java/util/concurrent/CyclicBarrier/Basic.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/util/concurrent/CyclicBarrier/Basic.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2014, 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
--- a/test/jdk/java/util/concurrent/Executors/AutoShutdown.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/util/concurrent/Executors/AutoShutdown.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/test/jdk/java/util/concurrent/FutureTask/BlockingTaskExecutor.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/util/concurrent/FutureTask/BlockingTaskExecutor.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/test/jdk/java/util/concurrent/ScheduledThreadPoolExecutor/ZeroCorePoolSize.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/util/concurrent/ScheduledThreadPoolExecutor/ZeroCorePoolSize.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/test/jdk/java/util/concurrent/ThreadPoolExecutor/CoreThreadTimeOut.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/util/concurrent/ThreadPoolExecutor/CoreThreadTimeOut.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2011, 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
--- a/test/jdk/java/util/concurrent/ThreadPoolExecutor/Custom.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/util/concurrent/ThreadPoolExecutor/Custom.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2012, 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
--- a/test/jdk/java/util/concurrent/ThreadPoolExecutor/SelfInterrupt.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/util/concurrent/ThreadPoolExecutor/SelfInterrupt.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/test/jdk/java/util/concurrent/ThreadPoolExecutor/TimeOutShrink.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/util/concurrent/ThreadPoolExecutor/TimeOutShrink.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/test/jdk/java/util/concurrent/forkjoin/SubmissionTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/util/concurrent/forkjoin/SubmissionTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/test/jdk/java/util/concurrent/locks/Lock/TimedAcquireLeak.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/util/concurrent/locks/Lock/TimedAcquireLeak.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/test/jdk/java/util/concurrent/locks/ReentrantReadWriteLock/Count.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/util/concurrent/locks/ReentrantReadWriteLock/Count.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2008, 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
--- a/test/jdk/java/util/logging/TestLoggerWeakRefLeak.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/java/util/logging/TestLoggerWeakRefLeak.java Mon Sep 24 10:59:26 2018 -0700
@@ -25,7 +25,7 @@
import java.io.InputStream;
import java.io.InputStreamReader;
-import static jdk.testlibrary.Asserts.assertGreaterThan;
+import static jdk.test.lib.Asserts.assertGreaterThan;
import jdk.test.lib.process.ProcessTools;
import com.sun.tools.attach.AttachNotSupportedException;
@@ -37,7 +37,6 @@
* @test
* @bug 6942989
* @summary Check for WeakReference leak in Logger and anonymous Logger objects
- * @library /lib/testlibrary
* @library /test/lib
* @modules jdk.attach/sun.tools.attach
* java.logging
--- a/test/jdk/javax/management/monitor/GaugeMonitorDeadlockTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/javax/management/monitor/GaugeMonitorDeadlockTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/test/jdk/javax/management/monitor/StartStopTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/javax/management/monitor/StartStopTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/test/jdk/javax/management/remote/mandatory/loading/MethodResultTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/javax/management/remote/mandatory/loading/MethodResultTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/test/jdk/javax/net/ssl/TLSCommon/CipherSuite.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/javax/net/ssl/TLSCommon/CipherSuite.java Mon Sep 24 10:59:26 2018 -0700
@@ -27,6 +27,8 @@
0x1302, Protocol.TLSV1_3, Protocol.TLSV1_3),
TLS_AES_128_GCM_SHA256(
0x1301, Protocol.TLSV1_3, Protocol.TLSV1_3),
+ TLS_CHACHA20_POLY1305_SHA256(
+ 0x1303, Protocol.TLSV1_3, Protocol.TLSV1_3),
TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256(
0xCCAA, Protocol.TLSV1_2, Protocol.TLSV1_2),
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256(
--- a/test/jdk/javax/net/ssl/TLSCommon/SSLEngineTestCase.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/javax/net/ssl/TLSCommon/SSLEngineTestCase.java Mon Sep 24 10:59:26 2018 -0700
@@ -182,7 +182,8 @@
private static final String[] TLS13_CIPHERS = {
"TLS_AES_256_GCM_SHA384",
- "TLS_AES_128_GCM_SHA256"
+ "TLS_AES_128_GCM_SHA256",
+ "TLS_CHACHA20_POLY1305_SHA256"
};
private static final String[] SUPPORTED_NON_KRB_CIPHERS;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/javax/net/ssl/compatibility/ClientHelloProcessing.java Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,781 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8210918 8210334 8209916
+ * @summary Add test to exercise server-side client hello processing
+ * @run main/othervm ClientHelloProcessing noPskNoKexModes
+ * @run main/othervm ClientHelloProcessing noPskYesKexModes
+ * @run main/othervm ClientHelloProcessing yesPskNoKexModes
+ * @run main/othervm ClientHelloProcessing yesPskYesKexModes
+ * @run main/othervm ClientHelloProcessing supGroupsSect163k1
+ */
+
+/*
+ * SunJSSE does not support dynamic system properties, no way to re-use
+ * system properties in samevm/agentvm mode.
+ */
+
+import java.io.FileInputStream;
+import javax.net.ssl.*;
+import javax.net.ssl.SSLEngineResult.HandshakeStatus;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.security.GeneralSecurityException;
+import java.security.KeyStore;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.Objects;
+
+/*
+ * If you wish to add test cases, the following must be done:
+ * 1. Add a @run line with the parameter being a name for the test case
+ * 2. Create the ClientHello as a byte[]. It should be a complete TLS
+ * record, but does not need upper layer headers like TCP, IP, Ethernet, etc.
+ * 3. Create a new TestCase instance, see "noPskNoKexModes" as an example
+ * 4. Create a mapping between the test case name in your @run line and the
+ * TestCase object you created in step #3. Add this to TESTMAP.
+ */
+
+public class ClientHelloProcessing {
+
+ private static final ByteBuffer SERVOUTBUF =
+ ByteBuffer.wrap("Server Side".getBytes());
+
+ private static final String pathToStores = "../etc";
+ private static final String keyStoreFile = "keystore";
+ private static final String trustStoreFile = "truststore";
+ private static final String passwd = "passphrase";
+
+ private static final String keyFilename =
+ System.getProperty("test.src", ".") + "/" + pathToStores +
+ "/" + keyStoreFile;
+ private static final String trustFilename =
+ System.getProperty("test.src", ".") + "/" + pathToStores +
+ "/" + trustStoreFile;
+
+ private static TrustManagerFactory trustMgrFac = null;
+ private static KeyManagerFactory keyMgrFac = null;
+
+ // Canned client hello messages
+ // These were created from packet captures using openssl 1.1.1's
+ // s_client utility. The captured TLS record containing the client
+ // hello was then manually edited to remove or add fields if the s_client
+ // utility could not be used to generate a message with the desired
+ // extensions. When manually altering the hello messages, care must
+ // be taken to change the lengths of the extensions themselves, the
+ // extensions vector length, the handshake message length, and the TLS
+ // record length.
+
+ // Client Hello with the pre_shared_key and psk_key_exchange_modes
+ // both absent. Required manual removal of the psk_key_exchange_modes
+ // extension. Similarly formed Client Hello messages may be generated
+ // by clients that don't support pre-shared keys.
+ //
+ // TLSv1.3 Record Layer: Handshake Protocol: Client Hello
+ // Content Type: Handshake (22)
+ // Version: TLS 1.0 (0x0301)
+ // Length: 256
+ // Handshake Protocol: Client Hello
+ // Handshake Type: Client Hello (1)
+ // Length: 252
+ // Version: TLS 1.2 (0x0303)
+ // Random: 9b796ad0cbd559fb48fc4ba32da5bb8c1ef9a7da85231860...
+ // Session ID Length: 32
+ // Session ID: fe8411205bc99a506952f5c28569facb96ff0f37621be072...
+ // Cipher Suites Length: 8
+ // Cipher Suites (4 suites)
+ // Compression Methods Length: 1
+ // Compression Methods (1 method)
+ // Extensions Length: 171
+ // Extension: server_name (len=14)
+ // Extension: ec_point_formats (len=4)
+ // Extension: supported_groups (len=4)
+ // Extension: SessionTicket TLS (len=0)
+ // Extension: status_request (len=5)
+ // Extension: encrypt_then_mac (len=0)
+ // Extension: extended_master_secret (len=0)
+ // Extension: signature_algorithms (len=30)
+ // Extension: supported_versions (len=3)
+ // Extension: key_share (len=71)
+ private static final byte[] CLIHELLO_NOPSK_NOPSKEXMODE = {
+ 22, 3, 1, 1, 0, 1, 0, 0,
+ -4, 3, 3, -101, 121, 106, -48, -53,
+ -43, 89, -5, 72, -4, 75, -93, 45,
+ -91, -69, -116, 30, -7, -89, -38, -123,
+ 35, 24, 96, 29, -93, -22, 10, -97,
+ -15, -11, 3, 32, -2, -124, 17, 32,
+ 91, -55, -102, 80, 105, 82, -11, -62,
+ -123, 105, -6, -53, -106, -1, 15, 55,
+ 98, 27, -32, 114, -126, -13, 42, -104,
+ -102, 37, -65, 52, 0, 8, 19, 2,
+ 19, 3, 19, 1, 0, -1, 1, 0,
+ 0, -85, 0, 0, 0, 14, 0, 12,
+ 0, 0, 9, 108, 111, 99, 97, 108,
+ 104, 111, 115, 116, 0, 11, 0, 4,
+ 3, 0, 1, 2, 0, 10, 0, 4,
+ 0, 2, 0, 23, 0, 35, 0, 0,
+ 0, 5, 0, 5, 1, 0, 0, 0,
+ 0, 0, 22, 0, 0, 0, 23, 0,
+ 0, 0, 13, 0, 30, 0, 28, 4,
+ 3, 5, 3, 6, 3, 8, 7, 8,
+ 8, 8, 9, 8, 10, 8, 11, 8,
+ 4, 8, 5, 8, 6, 4, 1, 5,
+ 1, 6, 1, 0, 43, 0, 3, 2,
+ 3, 4, 0, 51, 0, 71, 0, 69,
+ 0, 23, 0, 65, 4, 125, -92, -50,
+ -91, -39, -55, -114, 0, 22, 2, -50,
+ 123, -126, 0, -94, 100, -119, -106, 125,
+ -81, -24, 51, -84, 25, 25, -115, 13,
+ -17, -20, 93, 68, -97, -79, -98, 91,
+ 86, 91, -114, 123, 119, -87, -12, 32,
+ 63, -41, 50, 126, -70, 96, 33, -6,
+ 94, -7, -68, 54, -47, 53, 0, 88,
+ 40, -48, -102, -50, 88
+ };
+
+ // Client Hello with the pre_shared_key extension absent but
+ // containing the psk_key_exchange_modes extension asserted. No
+ // manual modification was necessary.
+ //
+ // TLSv1.3 Record Layer: Handshake Protocol: Client Hello
+ // Content Type: Handshake (22)
+ // Version: TLS 1.0 (0x0301)
+ // Length: 262
+ // Handshake Protocol: Client Hello
+ // Handshake Type: Client Hello (1)
+ // Length: 258
+ // Version: TLS 1.2 (0x0303)
+ // Random: 9b796ad0cbd559fb48fc4ba32da5bb8c1ef9a7da85231860...
+ // Session ID Length: 32
+ // Session ID: fe8411205bc99a506952f5c28569facb96ff0f37621be072...
+ // Cipher Suites Length: 8
+ // Cipher Suites (4 suites)
+ // Compression Methods Length: 1
+ // Compression Methods (1 method)
+ // Extensions Length: 177
+ // Extension: server_name (len=14)
+ // Extension: ec_point_formats (len=4)
+ // Extension: supported_groups (len=4)
+ // Extension: SessionTicket TLS (len=0)
+ // Extension: status_request (len=5)
+ // Extension: encrypt_then_mac (len=0)
+ // Extension: extended_master_secret (len=0)
+ // Extension: signature_algorithms (len=30)
+ // Extension: supported_versions (len=3)
+ // Extension: psk_key_exchange_modes (len=2)
+ // Type: psk_key_exchange_modes (45)
+ // Length: 2
+ // PSK Key Exchange Modes Length: 1
+ // PSK Key Exchange Mode: PSK with (EC)DHE key establishment (psk_dhe_ke) (1)
+ // Extension: key_share (len=71)
+ private static final byte[] CLIHELLO_NOPSK_YESPSKEXMODE = {
+ 22, 3, 1, 1, 6, 1, 0, 1,
+ 2, 3, 3, -101, 121, 106, -48, -53,
+ -43, 89, -5, 72, -4, 75, -93, 45,
+ -91, -69, -116, 30, -7, -89, -38, -123,
+ 35, 24, 96, 29, -93, -22, 10, -97,
+ -15, -11, 3, 32, -2, -124, 17, 32,
+ 91, -55, -102, 80, 105, 82, -11, -62,
+ -123, 105, -6, -53, -106, -1, 15, 55,
+ 98, 27, -32, 114, -126, -13, 42, -104,
+ -102, 37, -65, 52, 0, 8, 19, 2,
+ 19, 3, 19, 1, 0, -1, 1, 0,
+ 0, -79, 0, 0, 0, 14, 0, 12,
+ 0, 0, 9, 108, 111, 99, 97, 108,
+ 104, 111, 115, 116, 0, 11, 0, 4,
+ 3, 0, 1, 2, 0, 10, 0, 4,
+ 0, 2, 0, 23, 0, 35, 0, 0,
+ 0, 5, 0, 5, 1, 0, 0, 0,
+ 0, 0, 22, 0, 0, 0, 23, 0,
+ 0, 0, 13, 0, 30, 0, 28, 4,
+ 3, 5, 3, 6, 3, 8, 7, 8,
+ 8, 8, 9, 8, 10, 8, 11, 8,
+ 4, 8, 5, 8, 6, 4, 1, 5,
+ 1, 6, 1, 0, 43, 0, 3, 2,
+ 3, 4, 0, 45, 0, 2, 1, 1,
+ 0, 51, 0, 71, 0, 69, 0, 23,
+ 0, 65, 4, 125, -92, -50, -91, -39,
+ -55, -114, 0, 22, 2, -50, 123, -126,
+ 0, -94, 100, -119, -106, 125, -81, -24,
+ 51, -84, 25, 25, -115, 13, -17, -20,
+ 93, 68, -97, -79, -98, 91, 86, 91,
+ -114, 123, 119, -87, -12, 32, 63, -41,
+ 50, 126, -70, 96, 33, -6, 94, -7,
+ -68, 54, -47, 53, 0, 88, 40, -48,
+ -102, -50, 88
+ };
+
+ // Client Hello with pre_shared_key asserted and psk_key_exchange_modes
+ // absent. This is a violation of RFC 8446. This required manual
+ // removal of the psk_key_exchange_modes extension.
+ //
+ // TLSv1.3 Record Layer: Handshake Protocol: Client Hello
+ // Content Type: Handshake (22)
+ // Version: TLS 1.0 (0x0301)
+ // Length: 318
+ // Handshake Protocol: Client Hello
+ // Handshake Type: Client Hello (1)
+ // Length: 314
+ // Version: TLS 1.2 (0x0303)
+ // Random: e730e42336a19ed9fdb42919c65769132e9e779a797f188c...
+ // Session ID Length: 32
+ // Session ID: 6c6ed31408042fabd0c47fdeee6d19de2d6795e37590f00e...
+ // Cipher Suites Length: 8
+ // Cipher Suites (4 suites)
+ // Compression Methods Length: 1
+ // Compression Methods (1 method)
+ // Extensions Length: 233
+ // Extension: server_name (len=14)
+ // Extension: ec_point_formats (len=4)
+ // Extension: supported_groups (len=4)
+ // Extension: SessionTicket TLS (len=0)
+ // Extension: status_request (len=5)
+ // Extension: encrypt_then_mac (len=0)
+ // Extension: extended_master_secret (len=0)
+ // Extension: signature_algorithms (len=30)
+ // Extension: supported_versions (len=3)
+ // Extension: key_share (len=71)
+ // Extension: pre_shared_key (len=58)
+ // Type: pre_shared_key (41)
+ // Length: 58
+ // Pre-Shared Key extension
+ // Identities Length: 21
+ // PSK Identity (length: 15)
+ // Identity Length: 15
+ // Identity: 436c69656e745f6964656e74697479
+ // Obfuscated Ticket Age: 0
+ // PSK Binders length: 33
+ // PSK Binders
+ private static final byte[] CLIHELLO_YESPSK_NOPSKEXMODE = {
+ 22, 3, 1, 1, 62, 1, 0, 1,
+ 58, 3, 3, -25, 48, -28, 35, 54,
+ -95, -98, -39, -3, -76, 41, 25, -58,
+ 87, 105, 19, 46, -98, 119, -102, 121,
+ 127, 24, -116, -9, -99, 22, 116, -97,
+ 90, 73, -18, 32, 108, 110, -45, 20,
+ 8, 4, 47, -85, -48, -60, 127, -34,
+ -18, 109, 25, -34, 45, 103, -107, -29,
+ 117, -112, -16, 14, -5, -24, 24, 61,
+ -9, 28, -119, -73, 0, 8, 19, 2,
+ 19, 3, 19, 1, 0, -1, 1, 0,
+ 0, -23, 0, 0, 0, 14, 0, 12,
+ 0, 0, 9, 108, 111, 99, 97, 108,
+ 104, 111, 115, 116, 0, 11, 0, 4,
+ 3, 0, 1, 2, 0, 10, 0, 4,
+ 0, 2, 0, 23, 0, 35, 0, 0,
+ 0, 5, 0, 5, 1, 0, 0, 0,
+ 0, 0, 22, 0, 0, 0, 23, 0,
+ 0, 0, 13, 0, 30, 0, 28, 4,
+ 3, 5, 3, 6, 3, 8, 7, 8,
+ 8, 8, 9, 8, 10, 8, 11, 8,
+ 4, 8, 5, 8, 6, 4, 1, 5,
+ 1, 6, 1, 0, 43, 0, 3, 2,
+ 3, 4, 0, 51, 0, 71, 0, 69,
+ 0, 23, 0, 65, 4, -6, 101, 105,
+ -2, -6, 85, -99, -37, 112, 90, 44,
+ -123, -107, 4, -12, -64, 92, 40, 100,
+ 22, -53, -124, 54, 56, 102, 25, 76,
+ -86, -1, 6, 110, 95, 92, -86, -35,
+ -101, 115, 85, 99, 19, 6, -43, 105,
+ -37, -92, 53, -97, 84, -1, -53, 87,
+ -53, -107, -13, -14, 32, 101, -35, 39,
+ 102, -17, -119, -25, -51, 0, 41, 0,
+ 58, 0, 21, 0, 15, 67, 108, 105,
+ 101, 110, 116, 95, 105, 100, 101, 110,
+ 116, 105, 116, 121, 0, 0, 0, 0,
+ 0, 33, 32, -113, -27, -44, -71, -68,
+ -26, -47, 57, -82, -29, -13, -61, 77,
+ 52, -60, 27, 74, -120, -104, 102, 21,
+ 121, 0, 48, 43, -40, -19, -67, 57,
+ -20, 97, 23
+ };
+
+ // Client Hello containing both pre_shared_key and psk_key_exchange_modes
+ // extensions. Generation of this hello was done by adding
+ // "-psk a1b2c3d4" to the s_client command.
+ //
+ // TLSv1.3 Record Layer: Handshake Protocol: Client Hello
+ // Content Type: Handshake (22)
+ // Version: TLS 1.0 (0x0301)
+ // Length: 324
+ // Handshake Protocol: Client Hello
+ // Handshake Type: Client Hello (1)
+ // Length: 320
+ // Version: TLS 1.2 (0x0303)
+ // Random: e730e42336a19ed9fdb42919c65769132e9e779a797f188c...
+ // Session ID Length: 32
+ // Session ID: 6c6ed31408042fabd0c47fdeee6d19de2d6795e37590f00e...
+ // Cipher Suites Length: 8
+ // Cipher Suites (4 suites)
+ // Compression Methods Length: 1
+ // Compression Methods (1 method)
+ // Extensions Length: 239
+ // Extension: server_name (len=14)
+ // Extension: ec_point_formats (len=4)
+ // Extension: supported_groups (len=4)
+ // Extension: SessionTicket TLS (len=0)
+ // Extension: status_request (len=5)
+ // Extension: encrypt_then_mac (len=0)
+ // Extension: extended_master_secret (len=0)
+ // Extension: signature_algorithms (len=30)
+ // Extension: supported_versions (len=3)
+ // Extension: psk_key_exchange_modes (len=2)
+ // Type: psk_key_exchange_modes (45)
+ // Length: 2
+ // PSK Key Exchange Modes Length: 1
+ // PSK Key Exchange Mode: PSK with (EC)DHE key establishment (psk_dhe_ke) (1)
+ // Extension: key_share (len=71)
+ // Extension: pre_shared_key (len=58)
+ // Type: pre_shared_key (41)
+ // Length: 58
+ // Pre-Shared Key extension
+ // Identities Length: 21
+ // PSK Identity (length: 15)
+ // Identity Length: 15
+ // Identity: 436c69656e745f6964656e74697479
+ // Obfuscated Ticket Age: 0
+ // PSK Binders length: 33
+ // PSK Binders
+ private static final byte[] CLIHELLO_YESPSK_YESPSKEXMODE = {
+ 22, 3, 1, 1, 68, 1, 0, 1,
+ 64, 3, 3, -25, 48, -28, 35, 54,
+ -95, -98, -39, -3, -76, 41, 25, -58,
+ 87, 105, 19, 46, -98, 119, -102, 121,
+ 127, 24, -116, -9, -99, 22, 116, -97,
+ 90, 73, -18, 32, 108, 110, -45, 20,
+ 8, 4, 47, -85, -48, -60, 127, -34,
+ -18, 109, 25, -34, 45, 103, -107, -29,
+ 117, -112, -16, 14, -5, -24, 24, 61,
+ -9, 28, -119, -73, 0, 8, 19, 2,
+ 19, 3, 19, 1, 0, -1, 1, 0,
+ 0, -17, 0, 0, 0, 14, 0, 12,
+ 0, 0, 9, 108, 111, 99, 97, 108,
+ 104, 111, 115, 116, 0, 11, 0, 4,
+ 3, 0, 1, 2, 0, 10, 0, 4,
+ 0, 2, 0, 23, 0, 35, 0, 0,
+ 0, 5, 0, 5, 1, 0, 0, 0,
+ 0, 0, 22, 0, 0, 0, 23, 0,
+ 0, 0, 13, 0, 30, 0, 28, 4,
+ 3, 5, 3, 6, 3, 8, 7, 8,
+ 8, 8, 9, 8, 10, 8, 11, 8,
+ 4, 8, 5, 8, 6, 4, 1, 5,
+ 1, 6, 1, 0, 43, 0, 3, 2,
+ 3, 4, 0, 45, 0, 2, 1, 1,
+ 0, 51, 0, 71, 0, 69, 0, 23,
+ 0, 65, 4, -6, 101, 105, -2, -6,
+ 85, -99, -37, 112, 90, 44, -123, -107,
+ 4, -12, -64, 92, 40, 100, 22, -53,
+ -124, 54, 56, 102, 25, 76, -86, -1,
+ 6, 110, 95, 92, -86, -35, -101, 115,
+ 85, 99, 19, 6, -43, 105, -37, -92,
+ 53, -97, 84, -1, -53, 87, -53, -107,
+ -13, -14, 32, 101, -35, 39, 102, -17,
+ -119, -25, -51, 0, 41, 0, 58, 0,
+ 21, 0, 15, 67, 108, 105, 101, 110,
+ 116, 95, 105, 100, 101, 110, 116, 105,
+ 116, 121, 0, 0, 0, 0, 0, 33,
+ 32, -113, -27, -44, -71, -68, -26, -47,
+ 57, -82, -29, -13, -61, 77, 52, -60,
+ 27, 74, -120, -104, 102, 21, 121, 0,
+ 48, 43, -40, -19, -67, 57, -20, 97,
+ 23
+ };
+
+ // Client Hello with sect163k1 and secp256r1 as supported groups. This
+ // test covers an error condition where a known, supported curve that is
+ // not in the default enabled set of curves would cause failures.
+ // Generation of this hello was done using "-curves sect163k1:prime256v1"
+ // as an option to s_client.
+ //
+ // TLSv1.2 Record Layer: Handshake Protocol: Client Hello
+ // Content Type: Handshake (22)
+ // Version: TLS 1.0 (0x0301)
+ // Length: 210
+ // Handshake Protocol: Client Hello
+ // Handshake Type: Client Hello (1)
+ // Length: 206
+ // Version: TLS 1.2 (0x0303)
+ // Random: 05cbae9b834851d856355b72601cb67b7cd4eb51f29ed50b...
+ // Session ID Length: 0
+ // Cipher Suites Length: 56
+ // Cipher Suites (28 suites)
+ // Compression Methods Length: 1
+ // Compression Methods (1 method)
+ // Extensions Length: 109
+ // Extension: server_name (len=14)
+ // Extension: ec_point_formats (len=4)
+ // Extension: supported_groups (len=6)
+ // Type: supported_groups (10)
+ // Length: 6
+ // Supported Groups List Length: 4
+ // Supported Groups (2 groups)
+ // Supported Group: sect163k1 (0x0001)
+ // Supported Group: secp256r1 (0x0017)
+ // Extension: SessionTicket TLS (len=0)
+ // Extension: status_request (len=5)
+ // Extension: encrypt_then_mac (len=0)
+ // Extension: extended_master_secret (len=0)
+ // Extension: signature_algorithms (len=48)
+ private static final byte[] CLIHELLO_SUPGRP_SECT163K1 = {
+ 22, 3, 1, 0, -46, 1, 0, 0,
+ -50, 3, 3, 5, -53, -82, -101, -125,
+ 72, 81, -40, 86, 53, 91, 114, 96,
+ 28, -74, 123, 124, -44, -21, 81, -14,
+ -98, -43, 11, 90, -87, -106, 13, 63,
+ -62, 100, 111, 0, 0, 56, -64, 44,
+ -64, 48, 0, -97, -52, -87, -52, -88,
+ -52, -86, -64, 43, -64, 47, 0, -98,
+ -64, 36, -64, 40, 0, 107, -64, 35,
+ -64, 39, 0, 103, -64, 10, -64, 20,
+ 0, 57, -64, 9, -64, 19, 0, 51,
+ 0, -99, 0, -100, 0, 61, 0, 60,
+ 0, 53, 0, 47, 0, -1, 1, 0,
+ 0, 109, 0, 0, 0, 14, 0, 12,
+ 0, 0, 9, 108, 111, 99, 97, 108,
+ 104, 111, 115, 116, 0, 11, 0, 4,
+ 3, 0, 1, 2, 0, 10, 0, 6,
+ 0, 4, 0, 1, 0, 23, 0, 35,
+ 0, 0, 0, 5, 0, 5, 1, 0,
+ 0, 0, 0, 0, 22, 0, 0, 0,
+ 23, 0, 0, 0, 13, 0, 48, 0,
+ 46, 4, 3, 5, 3, 6, 3, 8,
+ 7, 8, 8, 8, 9, 8, 10, 8,
+ 11, 8, 4, 8, 5, 8, 6, 4,
+ 1, 5, 1, 6, 1, 3, 3, 2,
+ 3, 3, 1, 2, 1, 3, 2, 2,
+ 2, 4, 2, 5, 2, 6, 2
+ };
+
+ public static interface TestCase {
+ void execTest() throws Exception;
+ }
+
+ private static final Map<String, TestCase> TESTMAP = new HashMap<>();
+
+ public static void main(String[] args) throws Exception {
+ boolean allGood = true;
+ System.setProperty("javax.net.debug", "ssl:handshake");
+ trustMgrFac = makeTrustManagerFactory(trustFilename, passwd);
+ keyMgrFac = makeKeyManagerFactory(keyFilename, passwd);
+
+ // Populate the test map
+ TESTMAP.put("noPskNoKexModes", noPskNoKexModes);
+ TESTMAP.put("noPskYesKexModes", noPskYesKexModes);
+ TESTMAP.put("yesPskNoKexModes", yesPskNoKexModes);
+ TESTMAP.put("yesPskYesKexModes", yesPskYesKexModes);
+ TESTMAP.put("supGroupsSect163k1", supGroupsSect163k1);
+
+ if (args == null || args.length < 1) {
+ throw new Exception("FAIL: Test @run line is missing a test label");
+ }
+
+ // Pull the test to run from the test map.
+ TestCase test = Objects.requireNonNull(TESTMAP.get(args[0]),
+ "No TestCase found for test label " + args[0]);
+ test.execTest();
+ }
+
+ /**
+ * Test case to cover hellos with no pre_shared_key nor
+ * psk_key_exchange_modes extensions. Clients not supporting PSK at all
+ * may send hellos like this.
+ */
+ private static final TestCase noPskNoKexModes = new TestCase() {
+ @Override
+ public void execTest() throws Exception {
+ System.out.println("\nTest: PSK = No, PSKEX = No");
+ processClientHello("TLS", CLIHELLO_NOPSK_NOPSKEXMODE);
+ System.out.println("PASS");
+ }
+ };
+
+ /**
+ * Test case to cover hellos with no pre_shared_key but have the
+ * psk_key_exchange_modes extension. This kind of hello is seen from
+ * some popular browsers and test clients.
+ */
+ private static final TestCase noPskYesKexModes = new TestCase() {
+ @Override
+ public void execTest() throws Exception {
+ System.out.println("\nTest: PSK = No, PSKEX = Yes");
+ processClientHello("TLS", CLIHELLO_NOPSK_YESPSKEXMODE);
+ System.out.println("PASS");
+ }
+ };
+
+ /**
+ * Test case using a client hello with the pre_shared_key extension but
+ * no psk_key_exchange_modes extension present. This is a violation of
+ * 8446 and should cause an exception when unwrapped and processed by
+ * SSLEngine.
+ */
+ private static final TestCase yesPskNoKexModes = new TestCase() {
+ @Override
+ public void execTest() throws Exception {
+ try {
+ System.out.println("\nTest: PSK = Yes, PSKEX = No");
+ processClientHello("TLS", CLIHELLO_YESPSK_NOPSKEXMODE);
+ throw new Exception(
+ "FAIL: Client Hello processed without expected error");
+ } catch (SSLHandshakeException sslhe) {
+ System.out.println("PASS: Caught expected exception: " + sslhe);
+ }
+ }
+ };
+
+ /**
+ * Test case using a client hello asserting the pre_shared_key and
+ * psk_key_exchange_modes extensions.
+ */
+ private static final TestCase yesPskYesKexModes = new TestCase() {
+ @Override
+ public void execTest() throws Exception {
+ System.out.println("\nTest: PSK = Yes, PSKEX = Yes");
+ processClientHello("TLS", CLIHELLO_YESPSK_YESPSKEXMODE);
+ System.out.println("PASS");
+ }
+ };
+
+ /**
+ * Test case with a client hello asserting two named curves in the
+ * supported_groups extension: sect163k1 and secp256r1.
+ */
+ private static final TestCase supGroupsSect163k1 = new TestCase() {
+ @Override
+ public void execTest() throws Exception {
+ System.out.println("\nTest: Use of non-default-enabled " +
+ "Supported Group (sect163k1)");
+ processClientHello("TLS", CLIHELLO_SUPGRP_SECT163K1);
+ System.out.println("PASS");
+ }
+ };
+
+ /**
+ * Send a ClientHello message to an SSLEngine instance configured as a
+ * server.
+ *
+ * @param proto the protocol used to create the SSLContext. This will
+ * default to "TLS" if null is passed in.
+ * @param message the ClientHello as a complete TLS record.
+ *
+ * @throws Exception if any processing errors occur. The caller (TestCase)
+ * is expected to deal with the exception in whatever way appropriate
+ * for the test.
+ */
+ private static void processClientHello(String proto, byte[] message)
+ throws Exception {
+ SSLEngine serverEng = makeServerEngine(proto, keyMgrFac, trustMgrFac);
+ ByteBuffer sTOc = makePacketBuf(serverEng);
+ SSLEngineResult serverResult;
+
+ ByteBuffer cTOs = ByteBuffer.wrap(message);
+ System.out.println("CLIENT-TO-SERVER\n" +
+ dumpHexBytes(cTOs, 16, "\n", " "));
+ serverResult = serverEng.unwrap(cTOs, SERVOUTBUF);
+ printResult("server unwrap: ", serverResult);
+ runDelegatedTasks(serverResult, serverEng);
+ serverEng.wrap(SERVOUTBUF, sTOc);
+ }
+
+ /**
+ * Create a TrustManagerFactory from a given keystore.
+ *
+ * @param tsPath the path to the trust store file.
+ * @param pass the password for the trust store.
+ *
+ * @return a new TrustManagerFactory built from the trust store provided.
+ *
+ * @throws GeneralSecurityException if any processing errors occur
+ * with the Keystore instantiation or TrustManagerFactory creation.
+ * @throws IOException if any loading error with the trust store occurs.
+ */
+ private static TrustManagerFactory makeTrustManagerFactory(String tsPath,
+ String pass) throws GeneralSecurityException, IOException {
+ KeyStore ts = KeyStore.getInstance("JKS");
+ char[] passphrase = pass.toCharArray();
+
+ ts.load(new FileInputStream(tsPath), passphrase);
+ TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509");
+ tmf.init(ts);
+ return tmf;
+ }
+
+ /**
+ * Create a KeyManagerFactory from a given keystore.
+ *
+ * @param ksPath the path to the keystore file.
+ * @param pass the password for the keystore.
+ *
+ * @return a new TrustManagerFactory built from the keystore provided.
+ *
+ * @throws GeneralSecurityException if any processing errors occur
+ * with the Keystore instantiation or KeyManagerFactory creation.
+ * @throws IOException if any loading error with the keystore occurs
+ */
+ private static KeyManagerFactory makeKeyManagerFactory(String ksPath,
+ String pass) throws GeneralSecurityException, IOException {
+ KeyStore ks = KeyStore.getInstance("JKS");
+ char[] passphrase = pass.toCharArray();
+
+ ks.load(new FileInputStream(ksPath), passphrase);
+ KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
+ kmf.init(ks, passphrase);
+ return kmf;
+ }
+
+ /**
+ * Create an SSLEngine instance from a given protocol specifier,
+ * KeyManagerFactory and TrustManagerFactory.
+ *
+ * @param proto the protocol specifier for the SSLContext. This will
+ * default to "TLS" if null is provided.
+ * @param kmf an initialized KeyManagerFactory. May be null.
+ * @param tmf an initialized TrustManagerFactory. May be null.
+ *
+ * @return an SSLEngine instance configured as a server and with client
+ * authentication disabled.
+ *
+ * @throws GeneralSecurityException if any errors occur during the
+ * creation of the SSLEngine.
+ */
+ private static SSLEngine makeServerEngine(String proto,
+ KeyManagerFactory kmf, TrustManagerFactory tmf)
+ throws GeneralSecurityException {
+ SSLContext ctx = SSLContext.getInstance(proto != null ? proto : "TLS");
+ ctx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
+ SSLEngine ssle = ctx.createSSLEngine();
+ ssle.setUseClientMode(false);
+ ssle.setNeedClientAuth(false);
+ return ssle;
+ }
+
+ /**
+ * Make a ByteBuffer sized for TLS records that can be used by an SSLEngine.
+ *
+ * @param engine the SSLEngine used to determine the packet buffer size.
+ *
+ * @return a ByteBuffer sized for TLS packets.
+ */
+ private static ByteBuffer makePacketBuf(SSLEngine engine) {
+ SSLSession sess = engine.getSession();
+ ByteBuffer packetBuf = ByteBuffer.allocate(sess.getPacketBufferSize());
+ return packetBuf;
+ }
+
+ /**
+ * Runs any delegated tasks after unwrapping TLS records.
+ *
+ * @param result the most recent result from an unwrap operation on
+ * an SSLEngine.
+ * @param engine the SSLEngine used to unwrap the data.
+ *
+ * @throws Exception if any errors occur while running the delegated
+ * tasks.
+ */
+ private static void runDelegatedTasks(SSLEngineResult result,
+ SSLEngine engine) throws Exception {
+ HandshakeStatus hsStatus = result.getHandshakeStatus();
+ if (hsStatus == HandshakeStatus.NEED_TASK) {
+ Runnable runnable;
+ while ((runnable = engine.getDelegatedTask()) != null) {
+ System.out.println("\trunning delegated task...");
+ runnable.run();
+ }
+ hsStatus = engine.getHandshakeStatus();
+ if (hsStatus == HandshakeStatus.NEED_TASK) {
+ throw new Exception(
+ "handshake shouldn't need additional tasks");
+ }
+ System.out.println("\tnew HandshakeStatus: " + hsStatus);
+ }
+ }
+
+ /**
+ * Display the results of a wrap or unwrap operation from an SSLEngine.
+ *
+ * @param str a label to be prefixed to the result display.
+ * @param result the result returned from the wrap/unwrap operation.
+ */
+ private static void printResult(String str, SSLEngineResult result) {
+ System.out.println("The format of the SSLEngineResult is: \n" +
+ "\t\"getStatus() / getHandshakeStatus()\" +\n" +
+ "\t\"bytesConsumed() / bytesProduced()\"\n");
+ HandshakeStatus hsStatus = result.getHandshakeStatus();
+ System.out.println(str + result.getStatus() + "/" + hsStatus + ", " +
+ result.bytesConsumed() + "/" + result.bytesProduced() + " bytes");
+ if (hsStatus == HandshakeStatus.FINISHED) {
+ System.out.println("\t...ready for application data");
+ }
+ }
+
+ /**
+ * Dump the hex bytes of a buffer into string form.
+ *
+ * @param data The array of bytes to dump to stdout.
+ * @param itemsPerLine The number of bytes to display per line
+ * if the {@code lineDelim} character is blank then all bytes
+ * will be printed on a single line.
+ * @param lineDelim The delimiter between lines
+ * @param itemDelim The delimiter between bytes
+ *
+ * @return The hexdump of the byte array
+ */
+ private static String dumpHexBytes(byte[] data, int itemsPerLine,
+ String lineDelim, String itemDelim) {
+ return dumpHexBytes(ByteBuffer.wrap(data), itemsPerLine, lineDelim,
+ itemDelim);
+ }
+
+ /**
+ * Dump the hex bytes of a buffer into string form.
+ *
+ * @param data The ByteBuffer to dump to stdout.
+ * @param itemsPerLine The number of bytes to display per line
+ * if the {@code lineDelim} character is blank then all bytes
+ * will be printed on a single line.
+ * @param lineDelim The delimiter between lines
+ * @param itemDelim The delimiter between bytes
+ *
+ * @return The hexdump of the byte array
+ */
+ private static String dumpHexBytes(ByteBuffer data, int itemsPerLine,
+ String lineDelim, String itemDelim) {
+ StringBuilder sb = new StringBuilder();
+ if (data != null) {
+ data.mark();
+ int i = 0;
+ while (data.remaining() > 0) {
+ if (i % itemsPerLine == 0 && i != 0) {
+ sb.append(lineDelim);
+ }
+ sb.append(String.format("%02X", data.get())).append(itemDelim);
+ i++;
+ }
+ data.reset();
+ }
+
+ return sb.toString();
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/jdk/internal/reflect/Reflection/Filtering.java Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,80 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * @test
+ * @bug 8210496
+ * @modules java.base/jdk.internal.reflect
+ * @run testng Filtering
+ * @summary Test that security sensitive fields that filtered by core reflection
+ */
+
+import java.lang.reflect.*;
+import java.lang.invoke.MethodHandles.Lookup;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import static org.testng.Assert.assertTrue;
+
+public class Filtering {
+
+ @DataProvider(name = "sensitiveClasses")
+ private Object[][] sensitiveClasses() {
+ return new Object[][]{
+ { jdk.internal.reflect.Reflection.class, null },
+ { AccessibleObject.class, null },
+ { ClassLoader.class, null },
+ { Constructor.class, null },
+ { Field.class, null },
+ { Method.class, null },
+ };
+ }
+
+ @DataProvider(name = "sensitiveFields")
+ private Object[][] sensitiveFields() {
+ return new Object[][]{
+ { AccessibleObject.class, "override" },
+ { Class.class, "classLoader" },
+ { ClassLoader.class, "parent" },
+ { Field.class, "clazz" },
+ { Field.class, "modifiers" },
+ { Lookup.class, "lookupClass" },
+ { Lookup.class, "allowedModes" },
+ { Method.class, "clazz" },
+ { Method.class, "modifiers" },
+ { System.class, "security" },
+ };
+ }
+
+ @Test(dataProvider = "sensitiveClasses")
+ public void testClass(Class<?> clazz, Object ignore) throws Exception {
+ Field[] fields = clazz.getDeclaredFields();
+ assertTrue(fields.length == 0);
+ }
+
+ @Test(dataProvider = "sensitiveFields",
+ expectedExceptions = NoSuchFieldException.class)
+ public void testField(Class<?> clazz, String name) throws Exception {
+ clazz.getDeclaredField(name);
+ }
+
+}
--- a/test/jdk/jdk/internal/reflect/constantPool/ConstantPoolTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/jdk/internal/reflect/constantPool/ConstantPoolTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -27,7 +27,7 @@
* @summary Tests new public methods at ConstantPool
* @modules java.base/jdk.internal.misc
* java.base/jdk.internal.reflect
- * @library /lib/testlibrary
+ * @library /test/lib
* @compile ConstantPoolTestDummy.jasm
* @run main jdk.internal.reflect.constantPool.ConstantPoolTest
*/
@@ -37,7 +37,7 @@
import java.util.HashMap;
import java.util.Map;
import jdk.internal.misc.SharedSecrets;
-import jdk.testlibrary.Asserts;
+import jdk.test.lib.Asserts;
import jdk.internal.reflect.ConstantPool;
public class ConstantPoolTest {
--- a/test/jdk/jdk/nio/zipfs/ZipFSTester.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/jdk/nio/zipfs/ZipFSTester.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -28,6 +28,7 @@
import java.net.URI;
import java.net.URLDecoder;
import java.nio.ByteBuffer;
+import java.nio.channels.Channels;
import java.nio.channels.FileChannel;
import java.nio.channels.SeekableByteChannel;
import java.nio.file.DirectoryStream;
@@ -58,8 +59,10 @@
import java.util.Random;
import java.util.Set;
import java.util.concurrent.TimeUnit;
+import java.util.zip.CRC32;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
+import java.util.zip.ZipOutputStream;
import static java.nio.file.StandardOpenOption.*;
import static java.nio.file.StandardCopyOption.*;
@@ -70,7 +73,7 @@
* @test
* @bug 6990846 7009092 7009085 7015391 7014948 7005986 7017840 7007596
* 7157656 8002390 7012868 7012856 8015728 8038500 8040059 8069211
- * 8131067
+ * 8131067 8034802 8210899
* @summary Test Zip filesystem provider
* @modules jdk.zipfs
* @run main ZipFSTester
@@ -80,23 +83,26 @@
public class ZipFSTester {
public static void main(String[] args) throws Exception {
-
// create JAR file for test, actual contents don't matter
Path jarFile = Utils.createJarFile("tester.jar",
"META-INF/MANIFEST.MF",
"dir1/foo",
- "dir2/bar");
+ "dir2/bar",
+ "dir1/dir3/fooo");
try (FileSystem fs = newZipFileSystem(jarFile, Collections.emptyMap())) {
test0(fs);
test1(fs);
test2(fs); // more tests
}
+ testStreamChannel();
testTime(jarFile);
test8069211();
test8131067();
}
+ private static Random rdm = new Random();
+
static void test0(FileSystem fs)
throws Exception
{
@@ -121,13 +127,28 @@
static void test1(FileSystem fs0)
throws Exception
{
- Random rdm = new Random();
- // clone a fs and test on it
+ // prepare a src for testing
+ Path src = getTempPath();
+ String tmpName = src.toString();
+ try (OutputStream os = Files.newOutputStream(src)) {
+ byte[] bits = new byte[12345];
+ rdm.nextBytes(bits);
+ os.write(bits);
+ }
+
+ // clone a fs from fs0 and test on it
Path tmpfsPath = getTempPath();
Map<String, Object> env = new HashMap<String, Object>();
env.put("create", "true");
try (FileSystem copy = newZipFileSystem(tmpfsPath, env)) {
z2zcopy(fs0, copy, "/", 0);
+
+ // copy the test jar itself in
+ Files.copy(Paths.get(fs0.toString()), copy.getPath("/foo.jar"));
+ Path zpath = copy.getPath("/foo.jar");
+ try (FileSystem zzfs = FileSystems.newFileSystem(zpath, null)) {
+ Files.copy(src, zzfs.getPath("/srcInjarjar"));
+ }
}
try (FileSystem fs = newZipFileSystem(tmpfsPath, new HashMap<String, Object>())) {
@@ -142,15 +163,6 @@
throw new RuntimeException("newFileSystem(URI...) does not throw exception");
} catch (FileSystemAlreadyExistsException fsaee) {}
- // prepare a src
- Path src = getTempPath();
- String tmpName = src.toString();
- OutputStream os = Files.newOutputStream(src);
- byte[] bits = new byte[12345];
- rdm.nextBytes(bits);
- os.write(bits);
- os.close();
-
try {
provider.newFileSystem(new File(System.getProperty("test.src", ".")).toPath(),
new HashMap<String, Object>());
@@ -162,6 +174,8 @@
throw new RuntimeException("newFileSystem() opens a non-zip file as zipfs");
} catch (UnsupportedOperationException uoe) {}
+ // walk
+ walk(fs.getPath("/"));
// copyin
Path dst = getPathWithParents(fs, tmpName);
@@ -236,10 +250,29 @@
// test channels
channel(fs, dst);
Files.delete(dst);
- Files.delete(src);
+
+ // test foo.jar in jar/zipfs #8034802
+ Path jpath = fs.getPath("/foo.jar");
+ System.out.println("walking: " + jpath);
+ try (FileSystem zzfs = FileSystems.newFileSystem(jpath, null)) {
+ walk(zzfs.getPath("/"));
+ // foojar:/srcInjarjar
+ checkEqual(src, zzfs.getPath("/srcInjarjar"));
+
+ dst = getPathWithParents(zzfs, tmpName);
+ fchCopy(src, dst);
+ checkEqual(src, dst);
+ tmp = Paths.get(tmpName + "_Tmp");
+ fchCopy(dst, tmp); // out
+ checkEqual(src, tmp);
+ Files.delete(tmp);
+
+ channel(zzfs, dst);
+ Files.delete(dst);
+ }
} finally {
- if (Files.exists(tmpfsPath))
- Files.delete(tmpfsPath);
+ Files.deleteIfExists(tmpfsPath);
+ Files.deleteIfExists(src);
}
}
@@ -383,6 +416,180 @@
Files.delete(fs3Path);
}
+ static final int METHOD_STORED = 0;
+ static final int METHOD_DEFLATED = 8;
+
+ static Object[][] getEntries() {
+ Object[][] entries = new Object[10 + rdm.nextInt(20)][3];
+ for (int i = 0; i < entries.length; i++) {
+ entries[i][0] = "entries" + i;
+ entries[i][1] = rdm.nextInt(10) % 2 == 0 ?
+ METHOD_STORED : METHOD_DEFLATED;
+ entries[i][2] = new byte[rdm.nextInt(8192)];
+ rdm.nextBytes((byte[])entries[i][2]);
+ }
+ return entries;
+ }
+
+ // check the content of read from zipfs is equal to the "bytes"
+ private static void checkRead(Path path, byte[] expected) throws IOException {
+
+ // fileAttribute
+ CRC32 crc32 = new CRC32();
+ crc32.update(expected);
+
+ if (((Long)Files.getAttribute(path, "zip:crc")).intValue() !=
+ (int)crc32.getValue()) {
+ System.out.printf(" getAttribute.crc <%s> failed %x vs %x ...%n",
+ path.toString(),
+ ((Long)Files.getAttribute(path, "zip:crc")).intValue(),
+ (int)crc32.getValue());
+ throw new RuntimeException("CHECK FAILED!");
+ }
+
+ if (((Long)Files.getAttribute(path, "zip:size")).intValue() != expected.length) {
+ System.out.printf(" getAttribute.size <%s> failed %x vs %x ...%n",
+ path.toString(),
+ ((Long)Files.getAttribute(path, "zip:size")).intValue(),
+ expected.length);
+ throw new RuntimeException("CHECK FAILED!");
+ }
+
+ //streams
+ try (InputStream is = Files.newInputStream(path)) {
+ if (!Arrays.equals(is.readAllBytes(), expected)) {
+ System.out.printf(" newInputStream <%s> failed...%n", path.toString());
+ throw new RuntimeException("CHECK FAILED!");
+ }
+ }
+
+ // channels -- via sun.nio.ch.ChannelInputStream
+ try (SeekableByteChannel sbc = Files.newByteChannel(path);
+ InputStream is = Channels.newInputStream(sbc)) {
+
+ // check all bytes match
+ if (!Arrays.equals(is.readAllBytes(), expected)) {
+ System.out.printf(" newByteChannel <%s> failed...%n", path.toString());
+ throw new RuntimeException("CHECK FAILED!");
+ }
+
+ // Check if read position is at the end
+ if (sbc.position() != expected.length) {
+ System.out.printf("pos [%s]: size=%d, position=%d%n",
+ path.toString(), expected.length, sbc.position());
+ throw new RuntimeException("CHECK FAILED!");
+ }
+
+ // Check position(x) + read() at the random/specific pos/len
+ byte[] buf = new byte[1024];
+ ByteBuffer bb = ByteBuffer.wrap(buf);
+ for (int i = 0; i < 10; i++) {
+ int pos = rdm.nextInt((int)sbc.size());
+ int len = rdm.nextInt(Math.min(buf.length, expected.length - pos));
+ // System.out.printf(" --> %d, %d%n", pos, len);
+ bb.position(0).limit(len); // bb.flip().limit(len);
+ if (sbc.position(pos).position() != pos ||
+ sbc.read(bb) != len ||
+ !Arrays.equals(buf, 0, bb.position(), expected, pos, pos + len)) {
+ System.out.printf("read()/position() failed%n");
+ }
+ }
+ } catch (IOException x) {
+ x.printStackTrace();
+ throw new RuntimeException("CHECK FAILED!");
+ }
+ }
+
+ // test entry stream/channel reading
+ static void testStreamChannel() throws Exception {
+ Path zpath = getTempPath();
+ try {
+ var crc = new CRC32();
+ Object[][] entries = getEntries();
+
+ // [1] create zip via ZipOutputStream
+ try (var os = Files.newOutputStream(zpath);
+ var zos = new ZipOutputStream(os)) {
+ for (Object[] entry : entries) {
+ var ze = new ZipEntry((String)entry[0]);
+ int method = (int)entry[1];
+ byte[] bytes = (byte[])entry[2];
+ if (method == METHOD_STORED) {
+ ze.setSize(bytes.length);
+ crc.reset();
+ crc.update(bytes);
+ ze.setCrc(crc.getValue());
+ }
+ ze.setMethod(method);
+ zos.putNextEntry(ze);
+ zos.write(bytes);
+ zos.closeEntry();
+ }
+ }
+ try (var zfs = newZipFileSystem(zpath, Collections.emptyMap())) {
+ for (Object[] e : entries) {
+ Path path = zfs.getPath((String)e[0]);
+ int method = (int)e[1];
+ byte[] bytes = (byte[])e[2];
+ // System.out.printf("checking read [%s, %d, %d]%n",
+ // path.toString(), bytes.length, method);
+ checkRead(path, bytes);
+ }
+ }
+ Files.deleteIfExists(zpath);
+
+ // [2] create zip via zfs.newByteChannel
+ try (var zfs = newZipFileSystem(zpath, Map.of("create", "true"))) {
+ for (Object[] e : entries) {
+ // tbd: method is not used
+ try (var sbc = Files.newByteChannel(zfs.getPath((String)e[0]),
+ CREATE_NEW, WRITE)) {
+ sbc.write(ByteBuffer.wrap((byte[])e[2]));
+ }
+ }
+ }
+ try (var zfs = newZipFileSystem(zpath, Collections.emptyMap())) {
+ for (Object[] e : entries) {
+ checkRead(zfs.getPath((String)e[0]), (byte[])e[2]);
+ }
+ }
+ Files.deleteIfExists(zpath);
+
+ // [3] create zip via Files.write()/newoutputStream/
+ try (var zfs = newZipFileSystem(zpath, Map.of("create", "true"))) {
+ for (Object[] e : entries) {
+ Files.write(zfs.getPath((String)e[0]), (byte[])e[2]);
+ }
+ }
+ try (var zfs = newZipFileSystem(zpath, Collections.emptyMap())) {
+ for (Object[] e : entries) {
+ checkRead(zfs.getPath((String)e[0]), (byte[])e[2]);
+ }
+ }
+ Files.deleteIfExists(zpath);
+
+ // [4] create zip via zfs.newByteChannel, with "method_stored"
+ try (var zfs = newZipFileSystem(zpath,
+ Map.of("create", true, "noCompression", true))) {
+ for (Object[] e : entries) {
+ try (var sbc = Files.newByteChannel(zfs.getPath((String)e[0]),
+ CREATE_NEW, WRITE)) {
+ sbc.write(ByteBuffer.wrap((byte[])e[2]));
+ }
+ }
+ }
+ try (var zfs = newZipFileSystem(zpath, Collections.emptyMap())) {
+ for (Object[] e : entries) {
+ checkRead(zfs.getPath((String)e[0]), (byte[])e[2]);
+ }
+ }
+ Files.deleteIfExists(zpath);
+
+ } finally {
+ Files.deleteIfExists(zpath);
+ }
+ }
+
// test file stamp
static void testTime(Path src) throws Exception {
BasicFileAttributes attrs = Files
@@ -392,34 +599,35 @@
Map<String, Object> env = new HashMap<String, Object>();
env.put("create", "true");
Path fsPath = getTempPath();
- FileSystem fs = newZipFileSystem(fsPath, env);
+ try (FileSystem fs = newZipFileSystem(fsPath, env)) {
+ System.out.println("test copy with timestamps...");
+ // copyin
+ Path dst = getPathWithParents(fs, "me");
+ Files.copy(src, dst, COPY_ATTRIBUTES);
+ checkEqual(src, dst);
+ System.out.println("mtime: " + attrs.lastModifiedTime());
+ System.out.println("ctime: " + attrs.creationTime());
+ System.out.println("atime: " + attrs.lastAccessTime());
+ System.out.println(" ==============>");
+ BasicFileAttributes dstAttrs = Files
+ .getFileAttributeView(dst, BasicFileAttributeView.class)
+ .readAttributes();
+ System.out.println("mtime: " + dstAttrs.lastModifiedTime());
+ System.out.println("ctime: " + dstAttrs.creationTime());
+ System.out.println("atime: " + dstAttrs.lastAccessTime());
- System.out.println("test copy with timestamps...");
- // copyin
- Path dst = getPathWithParents(fs, "me");
- Files.copy(src, dst, COPY_ATTRIBUTES);
- checkEqual(src, dst);
- System.out.println("mtime: " + attrs.lastModifiedTime());
- System.out.println("ctime: " + attrs.creationTime());
- System.out.println("atime: " + attrs.lastAccessTime());
- System.out.println(" ==============>");
- BasicFileAttributes dstAttrs = Files
- .getFileAttributeView(dst, BasicFileAttributeView.class)
- .readAttributes();
- System.out.println("mtime: " + dstAttrs.lastModifiedTime());
- System.out.println("ctime: " + dstAttrs.creationTime());
- System.out.println("atime: " + dstAttrs.lastAccessTime());
-
- // 1-second granularity
- if (attrs.lastModifiedTime().to(TimeUnit.SECONDS) !=
- dstAttrs.lastModifiedTime().to(TimeUnit.SECONDS) ||
- attrs.lastAccessTime().to(TimeUnit.SECONDS) !=
- dstAttrs.lastAccessTime().to(TimeUnit.SECONDS) ||
- attrs.creationTime().to(TimeUnit.SECONDS) !=
- dstAttrs.creationTime().to(TimeUnit.SECONDS)) {
- throw new RuntimeException("Timestamp Copy Failed!");
+ // 1-second granularity
+ if (attrs.lastModifiedTime().to(TimeUnit.SECONDS) !=
+ dstAttrs.lastModifiedTime().to(TimeUnit.SECONDS) ||
+ attrs.lastAccessTime().to(TimeUnit.SECONDS) !=
+ dstAttrs.lastAccessTime().to(TimeUnit.SECONDS) ||
+ attrs.creationTime().to(TimeUnit.SECONDS) !=
+ dstAttrs.creationTime().to(TimeUnit.SECONDS)) {
+ throw new RuntimeException("Timestamp Copy Failed!");
+ }
+ } finally {
+ Files.delete(fsPath);
}
- Files.delete(fsPath);
}
static void test8069211() throws Exception {
@@ -624,8 +832,8 @@
// check the content of two paths are equal
private static void checkEqual(Path src, Path dst) throws IOException
{
- //System.out.printf("checking <%s> vs <%s>...%n",
- // src.toString(), dst.toString());
+ System.out.printf("checking <%s> vs <%s>...%n",
+ src.toString(), dst.toString());
//streams
byte[] bufSrc = new byte[8192];
@@ -702,6 +910,21 @@
chDst.toString(), chDst.size(), chDst.position());
throw new RuntimeException("CHECK FAILED!");
}
+
+ // Check position(x) + read() at the specific pos/len
+ for (int i = 0; i < 10; i++) {
+ int pos = rdm.nextInt((int)chSrc.size());
+ int limit = rdm.nextInt(1024);
+ if (chSrc.position(pos).position() != chDst.position(pos).position()) {
+ System.out.printf("dst/src.position(pos failed%n");
+ }
+ bbSrc.clear().limit(limit);
+ bbDst.clear().limit(limit);
+ if (chSrc.read(bbSrc) != chDst.read(bbDst) ||
+ !bbSrc.flip().equals(bbDst.flip())) {
+ System.out.printf("dst/src.read() failed%n");
+ }
+ }
} catch (IOException x) {
x.printStackTrace();
}
--- a/test/jdk/lib/testlibrary/AssertsTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/lib/testlibrary/AssertsTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -23,9 +23,11 @@
import java.lang.SuppressWarnings;
-import static jdk.testlibrary.Asserts.*;
+import static jdk.test.lib.Asserts.*;
-/* @test
+/*
+ * @test
+ * @library /test/lib
* @summary Tests the different assertions in the Assert class
*/
public class AssertsTest {
--- a/test/jdk/lib/testlibrary/jdk/testlibrary/Asserts.java Sat Sep 22 20:31:45 2018 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,566 +0,0 @@
-/*
- * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package jdk.testlibrary;
-
-import java.util.Objects;
-
-/**
- * Asserts that can be used for verifying assumptions in tests.
- *
- * An assertion will throw a {@link RuntimeException} if the assertion isn't true.
- * All the asserts can be imported into a test by using a static import:
- *
- * <pre>
- * {@code
- * import static jdk.testlibrary.Asserts.*;
- * }
- *
- * Always provide a message describing the assumption if the line number of the
- * failing assertion isn't enough to understand why the assumption failed. For
- * example, if the assertion is in a loop or in a method that is called
- * multiple times, then the line number won't provide enough context to
- * understand the failure.
- * </pre>
- *
- * @deprecated This class is deprecated. Use the one from
- * {@code <root>/test/lib/jdk/test/lib}
- */
-@Deprecated
-public class Asserts {
-
- /**
- * Shorthand for {@link #assertLessThan(Comparable, Comparable)}.
- *
- * @param <T> a type
- * @param lhs The left hand side of the comparison.
- * @param rhs The right hand side of the comparison.
- * @see #assertLessThan(Comparable, Comparable)
- */
- public static <T extends Comparable<T>> void assertLT(T lhs, T rhs) {
- assertLessThan(lhs, rhs);
- }
-
- /**
- * Shorthand for {@link #assertLessThan(Comparable, Comparable, String)}.
- *
- * @param <T> a type
- * @param lhs The left hand side of the comparison.
- * @param rhs The right hand side of the comparison.
- * @param msg A description of the assumption; {@code null} for a default message.
- * @see #assertLessThan(Comparable, Comparable, String)
- */
- public static <T extends Comparable<T>> void assertLT(T lhs, T rhs, String msg) {
- assertLessThan(lhs, rhs, msg);
- }
-
- /**
- * Calls {@link #assertLessThan(Comparable, Comparable, String)} with a default message.
- *
- * @param <T> a type
- * @param lhs The left hand side of the comparison.
- * @param rhs The right hand side of the comparison.
- * @see #assertLessThan(Comparable, Comparable, String)
- */
- public static <T extends Comparable<T>> void assertLessThan(T lhs, T rhs) {
- assertLessThan(lhs, rhs, null);
- }
-
- /**
- * Asserts that {@code lhs} is less than {@code rhs}.
- *
- * @param <T> a type
- * @param lhs The left hand side of the comparison.
- * @param rhs The right hand side of the comparison.
- * @param msg A description of the assumption; {@code null} for a default message.
- * @throws RuntimeException if the assertion is not true.
- */
- public static <T extends Comparable<T>>void assertLessThan(T lhs, T rhs, String msg) {
- if (!(compare(lhs, rhs, msg) < 0)) {
- msg = Objects.toString(msg, "assertLessThan")
- + ": expected that " + Objects.toString(lhs)
- + " < " + Objects.toString(rhs);
- fail(msg);
- }
- }
-
- /**
- * Shorthand for {@link #assertLessThanOrEqual(Comparable, Comparable)}.
- *
- * @param <T> a type
- * @param lhs The left hand side of the comparison.
- * @param rhs The right hand side of the comparison.
- * @see #assertLessThanOrEqual(Comparable, Comparable)
- */
- public static <T extends Comparable<T>> void assertLTE(T lhs, T rhs) {
- assertLessThanOrEqual(lhs, rhs);
- }
-
- /**
- * Shorthand for {@link #assertLessThanOrEqual(Comparable, Comparable, String)}.
- *
- * @param <T> a type
- * @param lhs The left hand side of the comparison.
- * @param rhs The right hand side of the comparison.
- * @param msg A description of the assumption; {@code null} for a default message.
- * @see #assertLessThanOrEqual(Comparable, Comparable, String)
- */
- public static <T extends Comparable<T>> void assertLTE(T lhs, T rhs, String msg) {
- assertLessThanOrEqual(lhs, rhs, msg);
- }
-
- /**
- * Calls {@link #assertLessThanOrEqual(Comparable, Comparable, String)} with a default message.
- *
- * @param <T> a type
- * @param lhs The left hand side of the comparison.
- * @param rhs The right hand side of the comparison.
- * @see #assertLessThanOrEqual(Comparable, Comparable, String)
- */
- public static <T extends Comparable<T>> void assertLessThanOrEqual(T lhs, T rhs) {
- assertLessThanOrEqual(lhs, rhs, null);
- }
-
- /**
- * Asserts that {@code lhs} is less than or equal to {@code rhs}.
- *
- * @param <T> a type
- * @param lhs The left hand side of the comparison.
- * @param rhs The right hand side of the comparison.
- * @param msg A description of the assumption; {@code null} for a default message.
- * @throws RuntimeException if the assertion is not true.
- */
- public static <T extends Comparable<T>> void assertLessThanOrEqual(T lhs, T rhs, String msg) {
- if (!(compare(lhs, rhs, msg) <= 0)) {
- msg = Objects.toString(msg, "assertLessThanOrEqual")
- + ": expected that " + Objects.toString(lhs)
- + " <= " + Objects.toString(rhs);
- fail(msg);
- }
- }
-
- /**
- * Shorthand for {@link #assertEquals(Object, Object)}.
- *
- * @param lhs The left hand side of the comparison.
- * @param rhs The right hand side of the comparison.
- * @see #assertEquals(Object, Object)
- */
- public static void assertEQ(Object lhs, Object rhs) {
- assertEquals(lhs, rhs);
- }
-
- /**
- * Shorthand for {@link #assertEquals(Object, Object, String)}.
- *
- * @param lhs The left hand side of the comparison.
- * @param rhs The right hand side of the comparison.
- * @param msg A description of the assumption; {@code null} for a default message.
- * @see #assertEquals(Object, Object, String)
- */
- public static void assertEQ(Object lhs, Object rhs, String msg) {
- assertEquals(lhs, rhs, msg);
- }
-
- /**
- * Calls {@link #assertEquals(java.lang.Object, java.lang.Object, java.lang.String)} with a default message.
- *
- * @param lhs The left hand side of the comparison.
- * @param rhs The right hand side of the comparison.
- * @see #assertEquals(Object, Object, String)
- */
- public static void assertEquals(Object lhs, Object rhs) {
- assertEquals(lhs, rhs, null);
- }
-
- /**
- * Asserts that {@code lhs} is equal to {@code rhs}.
- *
- * @param lhs The left hand side of the comparison.
- * @param rhs The right hand side of the comparison.
- * @param msg A description of the assumption; {@code null} for a default message.
- * @throws RuntimeException if the assertion is not true.
- */
- public static void assertEquals(Object lhs, Object rhs, String msg) {
- if ((lhs != rhs) && ((lhs == null) || !(lhs.equals(rhs)))) {
- msg = Objects.toString(msg, "assertEquals")
- + ": expected " + Objects.toString(lhs)
- + " to equal " + Objects.toString(rhs);
- fail(msg);
- }
- }
-
- /**
- * Calls {@link #assertSame(java.lang.Object, java.lang.Object, java.lang.String)} with a default message.
- *
- * @param lhs The left hand side of the comparison.
- * @param rhs The right hand side of the comparison.
- * @see #assertSame(Object, Object, String)
- */
- public static void assertSame(Object lhs, Object rhs) {
- assertSame(lhs, rhs, null);
- }
-
- /**
- * Asserts that {@code lhs} is the same as {@code rhs}.
- *
- * @param lhs The left hand side of the comparison.
- * @param rhs The right hand side of the comparison.
- * @param msg A description of the assumption; {@code null} for a default message.
- * @throws RuntimeException if the assertion is not true.
- */
- public static void assertSame(Object lhs, Object rhs, String msg) {
- if (lhs != rhs) {
- msg = Objects.toString(msg, "assertSame")
- + ": expected " + Objects.toString(lhs)
- + " to equal " + Objects.toString(rhs);
- fail(msg);
- }
- }
-
- /**
- * Shorthand for {@link #assertGreaterThanOrEqual(Comparable, Comparable)}.
- *
- * @param <T> a type
- * @param lhs The left hand side of the comparison.
- * @param rhs The right hand side of the comparison.
- * @see #assertGreaterThanOrEqual(Comparable, Comparable)
- */
- public static <T extends Comparable<T>> void assertGTE(T lhs, T rhs) {
- assertGreaterThanOrEqual(lhs, rhs);
- }
-
- /**
- * Shorthand for {@link #assertGreaterThanOrEqual(Comparable, Comparable, String)}.
- *
- * @param <T> a type
- * @param lhs The left hand side of the comparison.
- * @param rhs The right hand side of the comparison.
- * @param msg A description of the assumption; {@code null} for a default message.
- * @see #assertGreaterThanOrEqual(Comparable, Comparable, String)
- */
- public static <T extends Comparable<T>> void assertGTE(T lhs, T rhs, String msg) {
- assertGreaterThanOrEqual(lhs, rhs, msg);
- }
-
- /**
- * Calls {@link #assertGreaterThanOrEqual(Comparable, Comparable, String)} with a default message.
- *
- * @param <T> a type
- * @param lhs The left hand side of the comparison.
- * @param rhs The right hand side of the comparison.
- * @see #assertGreaterThanOrEqual(Comparable, Comparable, String)
- */
- public static <T extends Comparable<T>> void assertGreaterThanOrEqual(T lhs, T rhs) {
- assertGreaterThanOrEqual(lhs, rhs, null);
- }
-
- /**
- * Asserts that {@code lhs} is greater than or equal to {@code rhs}.
- *
- * @param <T> a type
- * @param lhs The left hand side of the comparison.
- * @param rhs The right hand side of the comparison.
- * @param msg A description of the assumption; {@code null} for a default message.
- * @throws RuntimeException if the assertion is not true.
- */
- public static <T extends Comparable<T>> void assertGreaterThanOrEqual(T lhs, T rhs, String msg) {
- if (!(compare(lhs, rhs, msg) >= 0)) {
- msg = Objects.toString(msg, "assertGreaterThanOrEqual")
- + ": expected " + Objects.toString(lhs)
- + " >= " + Objects.toString(rhs);
- fail(msg);
- }
- }
-
- /**
- * Shorthand for {@link #assertGreaterThan(Comparable, Comparable)}.
- *
- * @param <T> a type
- * @param lhs The left hand side of the comparison.
- * @param rhs The right hand side of the comparison.
- * @see #assertGreaterThan(Comparable, Comparable)
- */
- public static <T extends Comparable<T>> void assertGT(T lhs, T rhs) {
- assertGreaterThan(lhs, rhs);
- }
-
- /**
- * Shorthand for {@link #assertGreaterThan(Comparable, Comparable, String)}.
- *
- * @param <T> a type
- * @param lhs the left hand value
- * @param rhs the right hand value
- * @param msg A description of the assumption; {@code null} for a default message.
- * @see #assertGreaterThan(Comparable, Comparable, String)
- */
- public static <T extends Comparable<T>> void assertGT(T lhs, T rhs, String msg) {
- assertGreaterThan(lhs, rhs, msg);
- }
-
- /**
- * Calls {@link #assertGreaterThan(Comparable, Comparable, String)} with a default message.
- *
- * @param <T> a type
- * @param lhs the left hand value
- * @param rhs the right hand value
- * @see #assertGreaterThan(Comparable, Comparable, String)
- */
- public static <T extends Comparable<T>> void assertGreaterThan(T lhs, T rhs) {
- assertGreaterThan(lhs, rhs, null);
- }
-
- /**
- * Asserts that {@code lhs} is greater than {@code rhs}.
- *
- * @param <T> a type
- * @param lhs The left hand side of the comparison.
- * @param rhs The right hand side of the comparison.
- * @param msg A description of the assumption; {@code null} for a default message.
- * @throws RuntimeException if the assertion is not true.
- */
- public static <T extends Comparable<T>> void assertGreaterThan(T lhs, T rhs, String msg) {
- if (!(compare(lhs, rhs, msg) > 0)) {
- msg = Objects.toString(msg, "assertGreaterThan")
- + ": expected " + Objects.toString(lhs)
- + " > " + Objects.toString(rhs);
- fail(msg);
- }
- }
-
- /**
- * Shorthand for {@link #assertNotEquals(Object, Object)}.
- *
- * @param lhs The left hand side of the comparison.
- * @param rhs The right hand side of the comparison.
- * @see #assertNotEquals(Object, Object)
- */
- public static void assertNE(Object lhs, Object rhs) {
- assertNotEquals(lhs, rhs);
- }
-
- /**
- * Shorthand for {@link #assertNotEquals(Object, Object, String)}.
- *
- * @param lhs The left hand side of the comparison.
- * @param rhs The right hand side of the comparison.
- * @param msg A description of the assumption; {@code null} for a default message.
- * @see #assertNotEquals(Object, Object, String)
- */
- public static void assertNE(Object lhs, Object rhs, String msg) {
- assertNotEquals(lhs, rhs, msg);
- }
-
- /**
- * Calls {@link #assertNotEquals(Object, Object, String)} with a default message.
- *
- * @param lhs The left hand side of the comparison.
- * @param rhs The right hand side of the comparison.
- * @see #assertNotEquals(Object, Object, String)
- */
- public static void assertNotEquals(Object lhs, Object rhs) {
- assertNotEquals(lhs, rhs, null);
- }
-
- /**
- * Asserts that {@code lhs} is not equal to {@code rhs}.
- *
- * @param lhs The left hand side of the comparison.
- * @param rhs The right hand side of the comparison.
- * @param msg A description of the assumption; {@code null} for a default message.
- * @throws RuntimeException if the assertion is not true.
- */
- public static void assertNotEquals(Object lhs, Object rhs, String msg) {
- if ((lhs == rhs) || (lhs != null && lhs.equals(rhs))) {
- msg = Objects.toString(msg, "assertNotEquals")
- + ": expected " + Objects.toString(lhs)
- + " to not equal " + Objects.toString(rhs);
- fail(msg);
- }
- }
-
- /**
- * Calls {@link #assertNull(Object, String)} with a default message.
- *
- * @param o The reference assumed to be null.
- * @see #assertNull(Object, String)
- */
- public static void assertNull(Object o) {
- assertNull(o, null);
- }
-
- /**
- * Asserts that {@code o} is null.
- *
- * @param o The reference assumed to be null.
- * @param msg A description of the assumption; {@code null} for a default message.
- * @throws RuntimeException if the assertion is not true.
- */
- public static void assertNull(Object o, String msg) {
- assertEquals(o, null, msg);
- }
-
- /**
- * Calls {@link #assertNotNull(Object, String)} with a default message.
- *
- * @param o The reference assumed <i>not</i> to be null,
- * @see #assertNotNull(Object, String)
- */
- public static void assertNotNull(Object o) {
- assertNotNull(o, null);
- }
-
- /**
- * Asserts that {@code o} is <i>not</i> null.
- *
- * @param o The reference assumed <i>not</i> to be null,
- * @param msg A description of the assumption; {@code null} for a default message.
- * @throws RuntimeException if the assertion is not true.
- */
- public static void assertNotNull(Object o, String msg) {
- assertNotEquals(o, null, msg);
- }
-
- /**
- * Calls {@link #assertFalse(boolean, String)} with a default message.
- *
- * @param value The value assumed to be false.
- * @see #assertFalse(boolean, String)
- */
- public static void assertFalse(boolean value) {
- assertFalse(value, null);
- }
-
- /**
- * Asserts that {@code value} is {@code false}.
- *
- * @param value The value assumed to be false.
- * @param msg A description of the assumption; {@code null} for a default message.
- * @throws RuntimeException if the assertion is not true.
- */
- public static void assertFalse(boolean value, String msg) {
- if (value) {
- msg = Objects.toString(msg, "assertFalse")
- + ": expected false, was true";
- fail(msg);
- }
- }
-
- /**
- * Calls {@link #assertTrue(boolean, String)} with a default message.
- *
- * @param value The value assumed to be true.
- * @see #assertTrue(boolean, String)
- */
- public static void assertTrue(boolean value) {
- assertTrue(value, null);
- }
-
- /**
- * Asserts that {@code value} is {@code true}.
- *
- * @param value The value assumed to be true.
- * @param msg A description of the assumption; {@code null} for a default message.
- * @throws RuntimeException if the assertion is not true.
- */
- public static void assertTrue(boolean value, String msg) {
- if (!value) {
- msg = Objects.toString(msg, "assertTrue")
- + ": expected true, was false";
- fail(msg);
- }
- }
-
- private static <T extends Comparable<T>> int compare(T lhs, T rhs, String msg) {
- if (lhs == null || rhs == null) {
- fail(lhs, rhs, msg + ": values must be non-null:", ",");
- }
- return lhs.compareTo(rhs);
- }
-
- /**
- * Returns a string formatted with a message and expected and actual values.
- * @param lhs the actual value
- * @param rhs the expected value
- * @param message the actual value
- * @param relation the asserted relationship between lhs and rhs
- * @return a formatted string
- */
- public static String format(Object lhs, Object rhs, String message, String relation) {
- StringBuilder sb = new StringBuilder(80);
- if (message != null) {
- sb.append(message);
- sb.append(' ');
- }
- sb.append("<");
- sb.append(Objects.toString(lhs));
- sb.append("> ");
- sb.append(Objects.toString(relation, ","));
- sb.append(" <");
- sb.append(Objects.toString(rhs));
- sb.append(">");
- return sb.toString();
- }
-
- /**
- * Fail reports a failure with message fail.
- *
- * @throws RuntimeException always
- */
- public static void fail() {
- fail("fail");
- }
-
- /**
- * Fail reports a failure with a message.
- * @param message for the failure
- * @throws RuntimeException always
- */
- public static void fail(String message) {
- throw new RuntimeException(message);
- }
-
- /**
- * Fail reports a failure with a formatted message.
- *
- * @param lhs the actual value
- * @param rhs the expected value
- * @param message to be format before the expected and actual values
- * @param relation the asserted relationship between lhs and rhs
- * @throws RuntimeException always
- */
- public static void fail(Object lhs, Object rhs, String message, String relation) {
- throw new RuntimeException(format(lhs, rhs, message, relation));
- }
-
- /**
- * Fail reports a failure with a message and a cause.
- * @param message to be format before the expected and actual values
- * @param cause the exception that caused this failure
- * @throws RuntimeException always
- */
- public static void fail(String message, Throwable cause) {
- throw new RuntimeException(message, cause);
- }
-
-}
--- a/test/jdk/sun/jvmstat/monitor/MonitoredVm/TestPollingInterval.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/sun/jvmstat/monitor/MonitoredVm/TestPollingInterval.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,7 @@
import java.util.ArrayList;
import java.util.List;
-import jdk.testlibrary.Asserts;
+import jdk.test.lib.Asserts;
import jdk.test.lib.Utils;
import jdk.test.lib.apps.LingeredApp;
import sun.jvmstat.monitor.MonitorException;
@@ -41,10 +41,8 @@
* @bug 6672135
* @summary setInterval() for local MonitoredHost and local MonitoredVm
*
- * @library /lib/testlibrary
* @library /test/lib
*
- * @build jdk.testlibrary.*
* @build jdk.test.lib.apps.*
* @run main TestPollingInterval
*/
--- a/test/jdk/sun/management/jdp/JdpDefaultsTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/sun/management/jdp/JdpDefaultsTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -31,10 +31,9 @@
* @test JdpDefaultsTest
* @summary Assert that we can read JDP packets from a multicast socket connection, on default IP and port.
*
- * @library /lib/testlibrary
* @library /test/lib
*
- * @build jdk.testlibrary.* ClientConnection JdpTestUtil JdpTestCase JdpOnTestCase DynamicLauncher
+ * @build ClientConnection JdpTestUtil JdpTestCase JdpOnTestCase DynamicLauncher
* @run main/othervm JdpDefaultsTest
*/
--- a/test/jdk/sun/management/jdp/JdpJmxRemoteDynamicPortTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/sun/management/jdp/JdpJmxRemoteDynamicPortTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -27,10 +27,9 @@
* @summary Verify a non-zero value is assigned to jmxremote.port
* when VM is started with jmxremote.port=0.
*
- * @library /lib/testlibrary
* @library /test/lib
*
- * @build jdk.testlibrary.* ClientConnection JdpTestUtil JdpTestCase JdpJmxRemoteDynamicPortTestCase DynamicLauncher
+ * @build ClientConnection JdpTestUtil JdpTestCase JdpJmxRemoteDynamicPortTestCase DynamicLauncher
* @run main/othervm JdpJmxRemoteDynamicPortTest
*/
--- a/test/jdk/sun/management/jdp/JdpOffTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/sun/management/jdp/JdpOffTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -32,10 +32,9 @@
* @test JdpOffTest.java
* @summary Assert that no JDP packets are sent to the default address and port.
*
- * @library /lib/testlibrary
* @library /test/lib
*
- * @build jdk.testlibrary.* ClientConnection JdpTestUtil JdpTestCase JdpOffTestCase DynamicLauncher
+ * @build ClientConnection JdpTestUtil JdpTestCase JdpOffTestCase DynamicLauncher
* @run main/othervm JdpOffTest
*/
--- a/test/jdk/sun/management/jdp/JdpOnTestCase.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/sun/management/jdp/JdpOnTestCase.java Mon Sep 24 10:59:26 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
@@ -31,7 +31,7 @@
import java.net.SocketTimeoutException;
import java.util.Map;
-import static jdk.testlibrary.Asserts.assertNotEquals;
+import static jdk.test.lib.Asserts.assertNotEquals;
public class JdpOnTestCase extends JdpTestCase {
--- a/test/jdk/sun/management/jdp/JdpSpecificAddressTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/sun/management/jdp/JdpSpecificAddressTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -31,10 +31,9 @@
* @test JdpSpecificAddressTest
* @summary Assert that we can read JDP packets from a multicast socket connection, on specific IP and port.
*
- * @library /lib/testlibrary
* @library /test/lib
*
- * @build jdk.testlibrary.* ClientConnection JdpTestUtil JdpTestCase JdpOnTestCase DynamicLauncher
+ * @build ClientConnection JdpTestUtil JdpTestCase JdpOnTestCase DynamicLauncher
* @run main/othervm JdpSpecificAddressTest
*/
--- a/test/jdk/sun/management/jdp/JdpTestUtilTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/sun/management/jdp/JdpTestUtilTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -27,7 +27,7 @@
import java.io.UnsupportedEncodingException;
import java.util.Map;
-import static jdk.testlibrary.Asserts.assertEquals;
+import static jdk.test.lib.Asserts.assertEquals;
/*
--- a/test/jdk/sun/management/jmxremote/bootstrap/RmiBootstrapTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/sun/management/jmxremote/bootstrap/RmiBootstrapTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/test/jdk/sun/management/jmxremote/bootstrap/RmiBootstrapTest.sh Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/sun/management/jmxremote/bootstrap/RmiBootstrapTest.sh Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/test/jdk/sun/management/jmxremote/bootstrap/RmiRegistrySslTestApp.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/sun/management/jmxremote/bootstrap/RmiRegistrySslTestApp.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 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
--- a/test/jdk/sun/management/jmxremote/bootstrap/RmiSslBootstrapTest.sh Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/sun/management/jmxremote/bootstrap/RmiSslBootstrapTest.sh Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
--- a/test/jdk/sun/net/InetAddress/nameservice/dns/CNameTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/sun/net/InetAddress/nameservice/dns/CNameTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -38,7 +38,7 @@
* @summary Test DNS provider's handling of CNAME records
*/
public class CNameTest {
- private static final String HOST = "www-proxy.us.oracle.com";
+ private static final String HOST = "www.w3c.org";
private static final String POLICY = "grant {" + System.lineSeparator() +
" permission java.net .SocketPermission \"${HOST}\", \"resolve\";" +
System.lineSeparator() + "};";
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/sun/security/pkcs11/fips/TestTLS12.java Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,454 @@
+/*
+ * Copyright (c) 2018, Red Hat, Inc. and/or its affiliates.
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8029661
+ * @summary Test TLS 1.2
+ * @modules java.base/sun.security.internal.spec
+ * java.base/sun.security.util
+ * java.base/com.sun.net.ssl.internal.ssl
+ * java.base/com.sun.crypto.provider
+ * @library /test/lib ..
+ * @run main/othervm/timeout=120 TestTLS12
+ */
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.nio.ByteBuffer;
+
+import java.security.interfaces.RSAPrivateKey;
+import java.security.interfaces.RSAPublicKey;
+import java.security.KeyStore;
+import java.security.NoSuchAlgorithmException;
+import java.security.Provider;
+import java.security.SecureRandom;
+import java.security.Security;
+
+import java.util.Arrays;
+
+import javax.crypto.Cipher;
+import javax.crypto.KeyGenerator;
+import javax.crypto.SecretKey;
+import javax.crypto.spec.SecretKeySpec;
+
+import javax.net.ssl.KeyManagerFactory;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLEngine;
+import javax.net.ssl.SSLEngineResult;
+import javax.net.ssl.SSLEngineResult.HandshakeStatus;
+import javax.net.ssl.SSLParameters;
+import javax.net.ssl.SSLSession;
+import javax.net.ssl.TrustManagerFactory;
+
+import sun.security.internal.spec.TlsMasterSecretParameterSpec;
+import sun.security.internal.spec.TlsPrfParameterSpec;
+import sun.security.internal.spec.TlsRsaPremasterSecretParameterSpec;
+
+public final class TestTLS12 extends SecmodTest {
+
+ private static final boolean enableDebug = true;
+
+ private static Provider sunPKCS11NSSProvider;
+ private static Provider sunJCEProvider;
+ private static com.sun.net.ssl.internal.ssl.Provider jsseProvider;
+ private static KeyStore ks;
+ private static KeyStore ts;
+ private static char[] passphrase = "JAHshj131@@".toCharArray();
+ private static RSAPrivateKey privateKey;
+ private static RSAPublicKey publicKey;
+
+ public static void main(String[] args) throws Exception {
+ try {
+ initialize();
+ } catch (Exception e) {
+ System.out.println("Test skipped: failure during" +
+ " initialization");
+ return;
+ }
+
+ if (shouldRun()) {
+ // Test against JCE
+ testTlsAuthenticationCodeGeneration();
+
+ // Self-integrity test (complete TLS 1.2 communication)
+ new testTLS12SunPKCS11Communication().run();
+
+ System.out.println("Test PASS - OK");
+ } else {
+ System.out.println("Test skipped: TLS 1.2 mechanisms" +
+ " not supported by current SunPKCS11 back-end");
+ }
+ }
+
+ private static boolean shouldRun() {
+ if (sunPKCS11NSSProvider == null) {
+ return false;
+ }
+ try {
+ KeyGenerator.getInstance("SunTls12MasterSecret",
+ sunPKCS11NSSProvider);
+ KeyGenerator.getInstance(
+ "SunTls12RsaPremasterSecret", sunPKCS11NSSProvider);
+ KeyGenerator.getInstance("SunTls12Prf", sunPKCS11NSSProvider);
+ } catch (NoSuchAlgorithmException e) {
+ return false;
+ }
+ return true;
+ }
+
+ private static void testTlsAuthenticationCodeGeneration()
+ throws Exception {
+ // Generate RSA Pre-Master Secret in SunPKCS11 provider
+ SecretKey rsaPreMasterSecret = null;
+ @SuppressWarnings("deprecation")
+ TlsRsaPremasterSecretParameterSpec rsaPreMasterSecretSpec =
+ new TlsRsaPremasterSecretParameterSpec(0x0303, 0x0303);
+ {
+ KeyGenerator rsaPreMasterSecretKG = KeyGenerator.getInstance(
+ "SunTls12RsaPremasterSecret", sunPKCS11NSSProvider);
+ rsaPreMasterSecretKG.init(rsaPreMasterSecretSpec, null);
+ rsaPreMasterSecret = rsaPreMasterSecretKG.generateKey();
+ }
+
+ // Get RSA Pre-Master Secret in plain (from SunPKCS11 provider)
+ byte[] rsaPlainPreMasterSecret = null;
+ {
+ Cipher rsaPreMasterSecretWrapperCipher =
+ Cipher.getInstance("RSA/ECB/PKCS1Padding",
+ sunPKCS11NSSProvider);
+ rsaPreMasterSecretWrapperCipher.init(Cipher.WRAP_MODE, publicKey,
+ new SecureRandom());
+ byte[] rsaEncryptedPreMasterSecret =
+ rsaPreMasterSecretWrapperCipher.wrap(rsaPreMasterSecret);
+ Cipher rsaPreMasterSecretUnwrapperCipher =
+ Cipher.getInstance("RSA/ECB/PKCS1Padding", sunJCEProvider);
+ rsaPreMasterSecretUnwrapperCipher.init(Cipher.UNWRAP_MODE,
+ privateKey, rsaPreMasterSecretSpec);
+ rsaPlainPreMasterSecret = rsaPreMasterSecretUnwrapperCipher.unwrap(
+ rsaEncryptedPreMasterSecret, "TlsRsaPremasterSecret",
+ Cipher.SECRET_KEY).getEncoded();
+
+ if (enableDebug) {
+ System.out.println("rsaPlainPreMasterSecret:");
+ for (byte b : rsaPlainPreMasterSecret) {
+ System.out.printf("%02X, ", b);
+ }
+ System.out.println("");
+ }
+ }
+
+ // Generate Master Secret
+ SecretKey sunPKCS11MasterSecret = null;
+ SecretKey jceMasterSecret = null;
+ {
+ KeyGenerator sunPKCS11MasterSecretGenerator =
+ KeyGenerator.getInstance("SunTls12MasterSecret",
+ sunPKCS11NSSProvider);
+ KeyGenerator jceMasterSecretGenerator = KeyGenerator.getInstance(
+ "SunTls12MasterSecret", sunJCEProvider);
+ @SuppressWarnings("deprecation")
+ TlsMasterSecretParameterSpec sunPKCS11MasterSecretSpec =
+ new TlsMasterSecretParameterSpec(rsaPreMasterSecret, 3, 3,
+ new byte[32], new byte[32], "SHA-256", 32, 64);
+ @SuppressWarnings("deprecation")
+ TlsMasterSecretParameterSpec jceMasterSecretSpec =
+ new TlsMasterSecretParameterSpec(
+ new SecretKeySpec(rsaPlainPreMasterSecret,
+ "Generic"), 3, 3, new byte[32],
+ new byte[32], "SHA-256", 32, 64);
+ sunPKCS11MasterSecretGenerator.init(sunPKCS11MasterSecretSpec,
+ null);
+ jceMasterSecretGenerator.init(jceMasterSecretSpec, null);
+ sunPKCS11MasterSecret =
+ sunPKCS11MasterSecretGenerator.generateKey();
+ jceMasterSecret = jceMasterSecretGenerator.generateKey();
+ if (enableDebug) {
+ System.out.println("Master Secret (SunJCE):");
+ if (jceMasterSecret != null) {
+ for (byte b : jceMasterSecret.getEncoded()) {
+ System.out.printf("%02X, ", b);
+ }
+ System.out.println("");
+ }
+ }
+ }
+
+ // Generate authentication codes
+ byte[] sunPKCS11AuthenticationCode = null;
+ byte[] jceAuthenticationCode = null;
+ {
+ // Generate SunPKCS11 authentication code
+ {
+ @SuppressWarnings("deprecation")
+ TlsPrfParameterSpec sunPKCS11AuthenticationCodeSpec =
+ new TlsPrfParameterSpec(sunPKCS11MasterSecret,
+ "client finished", "a".getBytes(), 12,
+ "SHA-256", 32, 64);
+ KeyGenerator sunPKCS11AuthCodeGenerator =
+ KeyGenerator.getInstance("SunTls12Prf",
+ sunPKCS11NSSProvider);
+ sunPKCS11AuthCodeGenerator.init(
+ sunPKCS11AuthenticationCodeSpec);
+ sunPKCS11AuthenticationCode =
+ sunPKCS11AuthCodeGenerator.generateKey().getEncoded();
+ }
+
+ // Generate SunJCE authentication code
+ {
+ @SuppressWarnings("deprecation")
+ TlsPrfParameterSpec jceAuthenticationCodeSpec =
+ new TlsPrfParameterSpec(jceMasterSecret,
+ "client finished", "a".getBytes(), 12,
+ "SHA-256", 32, 64);
+ KeyGenerator jceAuthCodeGenerator =
+ KeyGenerator.getInstance("SunTls12Prf",
+ sunJCEProvider);
+ jceAuthCodeGenerator.init(jceAuthenticationCodeSpec);
+ jceAuthenticationCode =
+ jceAuthCodeGenerator.generateKey().getEncoded();
+ }
+
+ if (enableDebug) {
+ System.out.println("SunPKCS11 Authentication Code: ");
+ for (byte b : sunPKCS11AuthenticationCode) {
+ System.out.printf("%02X, ", b);
+ }
+ System.out.println("");
+ System.out.println("SunJCE Authentication Code: ");
+ for (byte b : jceAuthenticationCode) {
+ System.out.printf("%02X, ", b);
+ }
+ System.out.println("");
+ }
+ }
+
+ if (sunPKCS11AuthenticationCode == null ||
+ jceAuthenticationCode == null ||
+ sunPKCS11AuthenticationCode.length == 0 ||
+ jceAuthenticationCode.length == 0 ||
+ !Arrays.equals(sunPKCS11AuthenticationCode,
+ jceAuthenticationCode)) {
+ throw new Exception("Authentication codes from JCE" +
+ " and SunPKCS11 differ.");
+ }
+ }
+
+ private static class testTLS12SunPKCS11Communication {
+ public static void run() throws Exception {
+ SSLEngine[][] enginesToTest = getSSLEnginesToTest();
+
+ for (SSLEngine[] engineToTest : enginesToTest) {
+
+ SSLEngine clientSSLEngine = engineToTest[0];
+ SSLEngine serverSSLEngine = engineToTest[1];
+
+ // SSLEngine code based on RedhandshakeFinished.java
+
+ boolean dataDone = false;
+
+ ByteBuffer clientOut = null;
+ ByteBuffer clientIn = null;
+ ByteBuffer serverOut = null;
+ ByteBuffer serverIn = null;
+ ByteBuffer cTOs;
+ ByteBuffer sTOc;
+
+ SSLSession session = clientSSLEngine.getSession();
+ int appBufferMax = session.getApplicationBufferSize();
+ int netBufferMax = session.getPacketBufferSize();
+
+ clientIn = ByteBuffer.allocate(appBufferMax + 50);
+ serverIn = ByteBuffer.allocate(appBufferMax + 50);
+
+ cTOs = ByteBuffer.allocateDirect(netBufferMax);
+ sTOc = ByteBuffer.allocateDirect(netBufferMax);
+
+ clientOut = ByteBuffer.wrap(
+ "Hi Server, I'm Client".getBytes());
+ serverOut = ByteBuffer.wrap(
+ "Hello Client, I'm Server".getBytes());
+
+ SSLEngineResult clientResult;
+ SSLEngineResult serverResult;
+
+ while (!dataDone) {
+ clientResult = clientSSLEngine.wrap(clientOut, cTOs);
+ runDelegatedTasks(clientResult, clientSSLEngine);
+ serverResult = serverSSLEngine.wrap(serverOut, sTOc);
+ runDelegatedTasks(serverResult, serverSSLEngine);
+ cTOs.flip();
+ sTOc.flip();
+
+ if (enableDebug) {
+ System.out.println("Client -> Network");
+ printTlsNetworkPacket("", cTOs);
+ System.out.println("");
+ System.out.println("Server -> Network");
+ printTlsNetworkPacket("", sTOc);
+ System.out.println("");
+ }
+
+ clientResult = clientSSLEngine.unwrap(sTOc, clientIn);
+ runDelegatedTasks(clientResult, clientSSLEngine);
+ serverResult = serverSSLEngine.unwrap(cTOs, serverIn);
+ runDelegatedTasks(serverResult, serverSSLEngine);
+
+ cTOs.compact();
+ sTOc.compact();
+
+ if (!dataDone &&
+ (clientOut.limit() == serverIn.position()) &&
+ (serverOut.limit() == clientIn.position())) {
+ checkTransfer(serverOut, clientIn);
+ checkTransfer(clientOut, serverIn);
+ dataDone = true;
+ }
+ }
+ }
+ }
+
+ static void printTlsNetworkPacket(String prefix, ByteBuffer bb) {
+ ByteBuffer slice = bb.slice();
+ byte[] buffer = new byte[slice.remaining()];
+ slice.get(buffer);
+ for (int i = 0; i < buffer.length; i++) {
+ System.out.printf("%02X, ", (byte)(buffer[i] & (byte)0xFF));
+ if (i % 8 == 0 && i % 16 != 0) {
+ System.out.print(" ");
+ }
+ if (i % 16 == 0) {
+ System.out.println("");
+ }
+ }
+ System.out.flush();
+ }
+
+ private static void checkTransfer(ByteBuffer a, ByteBuffer b)
+ throws Exception {
+ a.flip();
+ b.flip();
+ if (!a.equals(b)) {
+ throw new Exception("Data didn't transfer cleanly");
+ }
+ a.position(a.limit());
+ b.position(b.limit());
+ a.limit(a.capacity());
+ b.limit(b.capacity());
+ }
+
+ private static void runDelegatedTasks(SSLEngineResult result,
+ SSLEngine engine) throws Exception {
+
+ if (result.getHandshakeStatus() == HandshakeStatus.NEED_TASK) {
+ Runnable runnable;
+ while ((runnable = engine.getDelegatedTask()) != null) {
+ runnable.run();
+ }
+ HandshakeStatus hsStatus = engine.getHandshakeStatus();
+ if (hsStatus == HandshakeStatus.NEED_TASK) {
+ throw new Exception(
+ "handshake shouldn't need additional tasks");
+ }
+ }
+ }
+
+ private static SSLEngine[][] getSSLEnginesToTest() throws Exception {
+ SSLEngine[][] enginesToTest = new SSLEngine[2][2];
+ String[][] preferredSuites = new String[][]{ new String[] {
+ "TLS_RSA_WITH_AES_128_CBC_SHA256"
+ }, new String[] {
+ "TLS_DHE_RSA_WITH_AES_128_CBC_SHA256"
+ }};
+ for (int i = 0; i < enginesToTest.length; i++) {
+ enginesToTest[i][0] = createSSLEngine(true);
+ enginesToTest[i][1] = createSSLEngine(false);
+ enginesToTest[i][0].setEnabledCipherSuites(preferredSuites[i]);
+ enginesToTest[i][1].setEnabledCipherSuites(preferredSuites[i]);
+ }
+ return enginesToTest;
+ }
+
+ static private SSLEngine createSSLEngine(boolean client)
+ throws Exception {
+ SSLEngine ssle;
+ KeyManagerFactory kmf = KeyManagerFactory.getInstance("PKIX",
+ jsseProvider);
+ kmf.init(ks, passphrase);
+
+ TrustManagerFactory tmf = TrustManagerFactory.getInstance("PKIX",
+ jsseProvider);
+ tmf.init(ts);
+
+ SSLContext sslCtx = SSLContext.getInstance("TLSv1.2",
+ jsseProvider);
+ sslCtx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
+ ssle = sslCtx.createSSLEngine("localhost", 443);
+ ssle.setUseClientMode(client);
+ SSLParameters sslParameters = ssle.getSSLParameters();
+ ssle.setSSLParameters(sslParameters);
+
+ return ssle;
+ }
+ }
+
+ private static void initialize() throws Exception {
+ if (initSecmod() == false) {
+ return;
+ }
+ String configName = BASE + SEP + "fips.cfg";
+ sunPKCS11NSSProvider = getSunPKCS11(configName);
+ System.out.println("SunPKCS11 provider: " + sunPKCS11NSSProvider);
+ Security.addProvider(sunPKCS11NSSProvider);
+
+ sunJCEProvider = new com.sun.crypto.provider.SunJCE();
+ Security.addProvider(sunJCEProvider);
+
+ Security.removeProvider("SunJSSE");
+ jsseProvider =new com.sun.net.ssl.internal.ssl.Provider(
+ sunPKCS11NSSProvider);
+ Security.addProvider(jsseProvider);
+ System.out.println(jsseProvider.getInfo());
+
+ ks = KeyStore.getInstance("PKCS11", sunPKCS11NSSProvider);
+ ks.load(null, "test12".toCharArray());
+ ts = ks;
+
+ KeyStore ksPlain = readTestKeyStore();
+ privateKey = (RSAPrivateKey)ksPlain.getKey("rh_rsa_sha256",
+ passphrase);
+ publicKey = (RSAPublicKey)ksPlain.getCertificate(
+ "rh_rsa_sha256").getPublicKey();
+ }
+
+ private static KeyStore readTestKeyStore() throws Exception {
+ File file = new File(System.getProperty("test.src", "."), "keystore");
+ InputStream in = new FileInputStream(file);
+ KeyStore ks = KeyStore.getInstance("JKS");
+ ks.load(in, "passphrase".toCharArray());
+ in.close();
+ return ks;
+ }
+}
\ No newline at end of file
Binary file test/jdk/sun/security/pkcs11/fips/cert8.db has changed
Binary file test/jdk/sun/security/pkcs11/fips/key3.db has changed
Binary file test/jdk/sun/security/pkcs11/fips/keystore has changed
--- a/test/jdk/sun/security/provider/MessageDigest/SHA512.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/sun/security/provider/MessageDigest/SHA512.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -21,7 +21,7 @@
* questions.
*/
-import jdk.testlibrary.Asserts;
+import jdk.test.lib.Asserts;
import java.security.MessageDigest;
import java.util.Arrays;
@@ -29,7 +29,7 @@
/**
* @test
* @bug 8051408
- * @library /lib/testlibrary
+ * @library /test/lib
* @summary testing SHA-512/224 and SHA-512/256.
*/
public class SHA512 {
--- a/test/jdk/sun/security/ssl/SSLContextImpl/CustomizedDTLSDefaultProtocols.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/sun/security/ssl/SSLContextImpl/CustomizedDTLSDefaultProtocols.java Mon Sep 24 10:59:26 2018 -0700
@@ -191,33 +191,13 @@
// Check SSLParameters of SSLSocket
System.out.println();
System.out.println("\tChecking SSLSocket of this SSLContext");
- System.out.println("\tChecking SSLSocket.getSSLParameters()");
- SocketFactory fac = context.getSocketFactory();
- SSLSocket socket = (SSLSocket)fac.createSocket();
- parameters = socket.getSSLParameters();
-
- protocols = parameters.getProtocols();
- failed |= !checkProtocols(protocols, cv.enabledProtocols);
-
- ciphers = parameters.getCipherSuites();
- failed |= !checkCipherSuites(ciphers);
-
- System.out.println("\tChecking SSLEngine.getEnabledProtocols()");
- protocols = socket.getEnabledProtocols();
- failed |= !checkProtocols(protocols, cv.enabledProtocols);
-
- System.out.println("\tChecking SSLEngine.getEnabledCipherSuites()");
- ciphers = socket.getEnabledCipherSuites();
- failed |= !checkCipherSuites(ciphers);
-
- System.out.println("\tChecking SSLEngine.getSupportedProtocols()");
- protocols = socket.getSupportedProtocols();
- failed |= !checkProtocols(protocols, cv.supportedProtocols);
-
- System.out.println(
- "\tChecking SSLEngine.getSupportedCipherSuites()");
- ciphers = socket.getSupportedCipherSuites();
- failed |= !checkCipherSuites(ciphers);
+ try {
+ context.getSocketFactory();
+ failed = true;
+ System.out.println("SSLSocket returned a socket for DTLS");
+ } catch (UnsupportedOperationException e) {
+ System.out.println("\t " + e.getMessage());
+ }
//
// Check SSLServerSocket
@@ -225,33 +205,13 @@
// Check SSLParameters of SSLServerSocket
System.out.println();
System.out.println("\tChecking SSLServerSocket of this SSLContext");
- System.out.println("\tChecking SSLServerSocket.getSSLParameters()");
- SSLServerSocketFactory sf = context.getServerSocketFactory();
- SSLServerSocket ssocket = (SSLServerSocket)sf.createServerSocket();
- parameters = ssocket.getSSLParameters();
-
- protocols = parameters.getProtocols();
- failed |= !checkProtocols(protocols, cv.supportedProtocols);
-
- ciphers = parameters.getCipherSuites();
- failed |= !checkCipherSuites(ciphers);
-
- System.out.println("\tChecking SSLEngine.getEnabledProtocols()");
- protocols = ssocket.getEnabledProtocols();
- failed |= !checkProtocols(protocols, cv.supportedProtocols);
-
- System.out.println("\tChecking SSLEngine.getEnabledCipherSuites()");
- ciphers = ssocket.getEnabledCipherSuites();
- failed |= !checkCipherSuites(ciphers);
-
- System.out.println("\tChecking SSLEngine.getSupportedProtocols()");
- protocols = ssocket.getSupportedProtocols();
- failed |= !checkProtocols(protocols, cv.supportedProtocols);
-
- System.out.println(
- "\tChecking SSLEngine.getSupportedCipherSuites()");
- ciphers = ssocket.getSupportedCipherSuites();
- failed |= !checkCipherSuites(ciphers);
+ try {
+ context.getServerSocketFactory();
+ failed = true;
+ System.out.println("SSLServerSocket returned a socket for DTLS");
+ } catch (UnsupportedOperationException e) {
+ System.out.println("\t " + e.getMessage());
+ }
}
if (failed) {
--- a/test/jdk/sun/security/ssl/SSLContextImpl/CustomizedDTLSServerDefaultProtocols.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/sun/security/ssl/SSLContextImpl/CustomizedDTLSServerDefaultProtocols.java Mon Sep 24 10:59:26 2018 -0700
@@ -31,6 +31,7 @@
* CustomizedDTLSServerDefaultProtocols
*/
+import java.lang.UnsupportedOperationException;
import java.security.NoSuchAlgorithmException;
import java.security.Security;
import java.util.Arrays;
@@ -211,33 +212,13 @@
// Check SSLParameters of SSLSocket
System.out.println();
System.out.println("\tChecking SSLSocket of this SSLContext");
- System.out.println("\tChecking SSLSocket.getSSLParameters()");
- SocketFactory fac = context.getSocketFactory();
- SSLSocket socket = (SSLSocket) fac.createSocket();
- parameters = socket.getSSLParameters();
-
- protocols = parameters.getProtocols();
- failed |= !checkProtocols(protocols, cv.clientEnabledProtocols);
-
- ciphers = parameters.getCipherSuites();
- failed |= !checkCipherSuites(ciphers);
-
- System.out.println("\tChecking SSLSocket.getEnabledProtocols()");
- protocols = socket.getEnabledProtocols();
- failed |= !checkProtocols(protocols, cv.clientEnabledProtocols);
-
- System.out.println("\tChecking SSLSocket.getEnabledCipherSuites()");
- ciphers = socket.getEnabledCipherSuites();
- failed |= !checkCipherSuites(ciphers);
-
- System.out.println("\tChecking SSLSocket.getSupportedProtocols()");
- protocols = socket.getSupportedProtocols();
- failed |= !checkProtocols(protocols, supportedProtocols);
-
- System.out.println(
- "\tChecking SSLSocket.getSupportedCipherSuites()");
- ciphers = socket.getSupportedCipherSuites();
- failed |= !checkCipherSuites(ciphers);
+ try {
+ context.getSocketFactory();
+ failed = true;
+ System.out.println("SSLSocket returned a socket for DTLS");
+ } catch (UnsupportedOperationException e) {
+ System.out.println("\t " + e.getMessage());
+ }
//
// Check SSLServerSocket
@@ -245,33 +226,13 @@
// Check SSLParameters of SSLServerSocket
System.out.println();
System.out.println("\tChecking SSLServerSocket of this SSLContext");
- System.out.println("\tChecking SSLServerSocket.getSSLParameters()");
- SSLServerSocketFactory sf = context.getServerSocketFactory();
- SSLServerSocket ssocket = (SSLServerSocket) sf.createServerSocket();
- parameters = ssocket.getSSLParameters();
-
- protocols = parameters.getProtocols();
- failed |= !checkProtocols(protocols, cv.serverEnabledProtocols);
-
- ciphers = parameters.getCipherSuites();
- failed |= !checkCipherSuites(ciphers);
-
- System.out.println("\tChecking SSLEngine.getEnabledProtocols()");
- protocols = ssocket.getEnabledProtocols();
- failed |= !checkProtocols(protocols, cv.serverEnabledProtocols);
-
- System.out.println("\tChecking SSLEngine.getEnabledCipherSuites()");
- ciphers = ssocket.getEnabledCipherSuites();
- failed |= !checkCipherSuites(ciphers);
-
- System.out.println("\tChecking SSLEngine.getSupportedProtocols()");
- protocols = ssocket.getSupportedProtocols();
- failed |= !checkProtocols(protocols, supportedProtocols);
-
- System.out.println(
- "\tChecking SSLEngine.getSupportedCipherSuites()");
- ciphers = ssocket.getSupportedCipherSuites();
- failed |= !checkCipherSuites(ciphers);
+ try {
+ context.getServerSocketFactory();
+ failed = true;
+ System.out.println("SSLServerSocket returned a socket for DTLS");
+ } catch (UnsupportedOperationException e) {
+ System.out.println("\t " + e.getMessage());
+ }
if (failed) {
throw new Exception("Run into problems, see log for more details");
--- a/test/jdk/sun/security/ssl/SSLContextImpl/DefaultDTLSEnabledProtocols.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/sun/security/ssl/SSLContextImpl/DefaultDTLSEnabledProtocols.java Mon Sep 24 10:59:26 2018 -0700
@@ -188,33 +188,13 @@
// Check SSLParameters of SSLSocket
System.out.println();
System.out.println("\tChecking SSLSocket of this SSLContext");
- System.out.println("\tChecking SSLSocket.getSSLParameters()");
- SocketFactory fac = context.getSocketFactory();
- SSLSocket socket = (SSLSocket)fac.createSocket();
- parameters = socket.getSSLParameters();
-
- protocols = parameters.getProtocols();
- failed |= !checkProtocols(protocols, cv.enabledProtocols);
-
- ciphers = parameters.getCipherSuites();
- failed |= !checkCipherSuites(ciphers);
-
- System.out.println("\tChecking SSLEngine.getEnabledProtocols()");
- protocols = socket.getEnabledProtocols();
- failed |= !checkProtocols(protocols, cv.enabledProtocols);
-
- System.out.println("\tChecking SSLEngine.getEnabledCipherSuites()");
- ciphers = socket.getEnabledCipherSuites();
- failed |= !checkCipherSuites(ciphers);
-
- System.out.println("\tChecking SSLEngine.getSupportedProtocols()");
- protocols = socket.getSupportedProtocols();
- failed |= !checkProtocols(protocols, cv.supportedProtocols);
-
- System.out.println(
- "\tChecking SSLEngine.getSupportedCipherSuites()");
- ciphers = socket.getSupportedCipherSuites();
- failed |= !checkCipherSuites(ciphers);
+ try {
+ context.getSocketFactory();
+ failed = true;
+ System.out.println("SSLSocket returned a socket for DTLS");
+ } catch (UnsupportedOperationException e) {
+ System.out.println("\t " + e.getMessage());
+ }
//
// Check SSLServerSocket
@@ -222,33 +202,13 @@
// Check SSLParameters of SSLServerSocket
System.out.println();
System.out.println("\tChecking SSLServerSocket of this SSLContext");
- System.out.println("\tChecking SSLServerSocket.getSSLParameters()");
- SSLServerSocketFactory sf = context.getServerSocketFactory();
- SSLServerSocket ssocket = (SSLServerSocket)sf.createServerSocket();
- parameters = ssocket.getSSLParameters();
-
- protocols = parameters.getProtocols();
- failed |= !checkProtocols(protocols, cv.supportedProtocols);
-
- ciphers = parameters.getCipherSuites();
- failed |= !checkCipherSuites(ciphers);
-
- System.out.println("\tChecking SSLEngine.getEnabledProtocols()");
- protocols = ssocket.getEnabledProtocols();
- failed |= !checkProtocols(protocols, cv.supportedProtocols);
-
- System.out.println("\tChecking SSLEngine.getEnabledCipherSuites()");
- ciphers = ssocket.getEnabledCipherSuites();
- failed |= !checkCipherSuites(ciphers);
-
- System.out.println("\tChecking SSLEngine.getSupportedProtocols()");
- protocols = ssocket.getSupportedProtocols();
- failed |= !checkProtocols(protocols, cv.supportedProtocols);
-
- System.out.println(
- "\tChecking SSLEngine.getSupportedCipherSuites()");
- ciphers = ssocket.getSupportedCipherSuites();
- failed |= !checkCipherSuites(ciphers);
+ try {
+ context.getServerSocketFactory();
+ failed = true;
+ System.out.println("SSLServerSocket returned a socket for DTLS");
+ } catch (UnsupportedOperationException e) {
+ System.out.println("\t " + e.getMessage());
+ }
}
if (failed) {
--- a/test/jdk/sun/tools/jcmd/TestJcmdDefaults.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/sun/tools/jcmd/TestJcmdDefaults.java Mon Sep 24 10:59:26 2018 -0700
@@ -21,7 +21,7 @@
* questions.
*/
-import static jdk.testlibrary.Asserts.*;
+import static jdk.test.lib.Asserts.*;
import java.io.IOException;
import java.nio.file.Files;
@@ -38,10 +38,8 @@
* @summary Unit test for jcmd utility. Tests jcmd options which do not send
* requests to a specific JVM process.
*
- * @library /lib/testlibrary
* @library /test/lib
*
- * @build jdk.testlibrary.*
* @run main TestJcmdDefaults
*/
public class TestJcmdDefaults {
--- a/test/jdk/sun/tools/jcmd/TestJcmdSanity.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/sun/tools/jcmd/TestJcmdSanity.java Mon Sep 24 10:59:26 2018 -0700
@@ -21,7 +21,7 @@
* questions.
*/
-import static jdk.testlibrary.Asserts.*;
+import static jdk.test.lib.Asserts.*;
import java.io.File;
import java.io.IOException;
@@ -40,10 +40,8 @@
* @summary Unit test for jcmd utility. The test will send different diagnostic
* command requests to the current java process.
*
- * @library /lib/testlibrary
* @library /test/lib
*
- * @build jdk.testlibrary.*
* @run main/othervm -XX:+UsePerfData TestJcmdSanity
*/
public class TestJcmdSanity {
--- a/test/jdk/sun/tools/jhsdb/HeapDumpTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/sun/tools/jhsdb/HeapDumpTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -27,12 +27,11 @@
* @summary Test hashing of extended characters in Serviceability Agent.
* @requires vm.hasSAandCanAttach
* @library /test/lib
- * @library /lib/testlibrary
* @compile -encoding utf8 HeapDumpTest.java
* @run main/timeout=240 HeapDumpTest
*/
-import static jdk.testlibrary.Asserts.assertTrue;
+import static jdk.test.lib.Asserts.assertTrue;
import java.io.IOException;
import java.io.File;
--- a/test/jdk/sun/tools/jhsdb/heapconfig/TmtoolTestScenario.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/sun/tools/jhsdb/heapconfig/TmtoolTestScenario.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/test/jdk/sun/tools/jmap/BasicJMapTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/sun/tools/jmap/BasicJMapTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -21,8 +21,8 @@
* questions.
*/
-import static jdk.testlibrary.Asserts.assertTrue;
-import static jdk.testlibrary.Asserts.fail;
+import static jdk.test.lib.Asserts.assertTrue;
+import static jdk.test.lib.Asserts.fail;
import java.io.File;
import java.util.Arrays;
@@ -36,9 +36,7 @@
* @test
* @summary Unit test for jmap utility
* @key intermittent
- * @library /lib/testlibrary
* @library /test/lib
- * @build jdk.testlibrary.*
* @build jdk.test.lib.hprof.*
* @build jdk.test.lib.hprof.model.*
* @build jdk.test.lib.hprof.parser.*
--- a/test/jdk/sun/tools/jps/JpsHelper.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/sun/tools/jps/JpsHelper.java Mon Sep 24 10:59:26 2018 -0700
@@ -21,8 +21,8 @@
* questions.
*/
-import static jdk.testlibrary.Asserts.assertGreaterThan;
-import static jdk.testlibrary.Asserts.assertTrue;
+import static jdk.test.lib.Asserts.assertGreaterThan;
+import static jdk.test.lib.Asserts.assertTrue;
import java.io.BufferedWriter;
import java.io.File;
@@ -38,7 +38,7 @@
import jdk.test.lib.JDKToolLauncher;
import jdk.test.lib.process.OutputAnalyzer;
import jdk.test.lib.process.ProcessTools;
-import jdk.testlibrary.Asserts;
+import jdk.test.lib.Asserts;
import jdk.test.lib.Utils;
/**
--- a/test/jdk/sun/tools/jps/TestJps.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/sun/tools/jps/TestJps.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
/*
* @test
- * @library /lib/testlibrary /test/lib
+ * @library /test/lib
* @modules jdk.jartool/sun.tools.jar
* @build LingeredAppForJps
* @build LingeredApp
--- a/test/jdk/sun/tools/jps/TestJpsSanity.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/sun/tools/jps/TestJpsSanity.java Mon Sep 24 10:59:26 2018 -0700
@@ -21,7 +21,7 @@
* questions.
*/
-import jdk.testlibrary.Asserts;
+import jdk.test.lib.Asserts;
import jdk.test.lib.process.OutputAnalyzer;
import jdk.test.lib.apps.LingeredApp;
@@ -29,11 +29,11 @@
* @test
* @summary This test verifies jps usage and checks that appropriate error message is shown
* when running jps with illegal arguments.
- * @library /lib/testlibrary /test/lib
+ * @library /test/lib
* @modules jdk.jartool/sun.tools.jar
* java.management
* java.base/jdk.internal.misc
- * @build jdk.testlibrary.* jdk.test.lib.apps.* JpsHelper
+ * @build jdk.test.lib.apps.* JpsHelper
* @run driver TestJpsSanity
*/
public class TestJpsSanity {
--- a/test/jdk/sun/tools/jstatd/JstatGCUtilParser.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/sun/tools/jstatd/JstatGCUtilParser.java Mon Sep 24 10:59:26 2018 -0700
@@ -22,10 +22,10 @@
*/
import java.util.Arrays;
+import java.text.NumberFormat;
+import static jdk.test.lib.Asserts.*;
import jdk.test.lib.Utils;
-import static jdk.testlibrary.Asserts.*;
-import java.text.NumberFormat;
/**
* The helper class for parsing following output from command 'jstat -gcutil':
--- a/test/jdk/sun/tools/jstatd/JstatdTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/sun/tools/jstatd/JstatdTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -28,12 +28,12 @@
import java.rmi.registry.Registry;
import java.util.Arrays;
-import jdk.test.lib.thread.ProcessThread;
-import static jdk.testlibrary.Asserts.*;
+import static jdk.test.lib.Asserts.*;
import jdk.test.lib.Utils;
import jdk.test.lib.JDKToolLauncher;
import jdk.test.lib.process.OutputAnalyzer;
import jdk.test.lib.process.ProcessTools;
+import jdk.test.lib.thread.ProcessThread;
/**
* The base class for tests of jstatd.
--- a/test/jdk/sun/tools/jstatd/TestJstatdDefaults.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/sun/tools/jstatd/TestJstatdDefaults.java Mon Sep 24 10:59:26 2018 -0700
@@ -26,10 +26,9 @@
* @bug 4990825
* @key intermittent
*
- * @library /lib/testlibrary
* @library /test/lib
*
- * @build jdk.testlibrary.* JstatdTest JstatGCUtilParser
+ * @build JstatdTest JstatGCUtilParser
* @run main/timeout=60 TestJstatdDefaults
*/
public class TestJstatdDefaults {
--- a/test/jdk/sun/tools/jstatd/TestJstatdExternalRegistry.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/sun/tools/jstatd/TestJstatdExternalRegistry.java Mon Sep 24 10:59:26 2018 -0700
@@ -26,10 +26,9 @@
* @bug 4990825 7092186
* @key intermittent
*
- * @library /lib/testlibrary
* @library /test/lib
*
- * @build jdk.testlibrary.* JstatdTest JstatGCUtilParser
+ * @build JstatdTest JstatGCUtilParser
* @run main/timeout=60 TestJstatdExternalRegistry
*/
public class TestJstatdExternalRegistry {
--- a/test/jdk/sun/tools/jstatd/TestJstatdPort.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/sun/tools/jstatd/TestJstatdPort.java Mon Sep 24 10:59:26 2018 -0700
@@ -26,10 +26,9 @@
* @bug 4990825
* @key intermittent
*
- * @library /lib/testlibrary
* @library /test/lib
*
- * @build jdk.testlibrary.* JstatdTest JstatGCUtilParser
+ * @build JstatdTest JstatGCUtilParser
* @run main/timeout=60 TestJstatdPort
*/
public class TestJstatdPort {
--- a/test/jdk/sun/tools/jstatd/TestJstatdPortAndServer.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/sun/tools/jstatd/TestJstatdPortAndServer.java Mon Sep 24 10:59:26 2018 -0700
@@ -26,10 +26,9 @@
* @bug 4990825
* @key intermittent
*
- * @library /lib/testlibrary
* @library /test/lib
*
- * @build jdk.testlibrary.* JstatdTest JstatGCUtilParser
+ * @build JstatdTest JstatGCUtilParser
* @run main/timeout=60 TestJstatdPortAndServer
*/
public class TestJstatdPortAndServer {
--- a/test/jdk/sun/tools/jstatd/TestJstatdServer.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/sun/tools/jstatd/TestJstatdServer.java Mon Sep 24 10:59:26 2018 -0700
@@ -26,10 +26,9 @@
* @bug 4990825
* @key intermittent
*
- * @library /lib/testlibrary
* @library /test/lib
*
- * @build jdk.testlibrary.* JstatdTest JstatGCUtilParser
+ * @build JstatdTest JstatGCUtilParser
* @run main/timeout=60 TestJstatdServer
*/
public class TestJstatdServer {
--- a/test/jdk/tools/jar/compat/CLICompatibility.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/tools/jar/compat/CLICompatibility.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/test/jdk/tools/launcher/SourceMode.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/jdk/tools/launcher/SourceMode.java Mon Sep 24 10:59:26 2018 -0700
@@ -23,7 +23,7 @@
/**
* @test
- * @bug 8192920 8204588
+ * @bug 8192920 8204588 8210275
* @summary Test source mode
* @modules jdk.compiler jdk.jlink
* @run main SourceMode
@@ -251,6 +251,31 @@
show(tr);
}
+ // java --source N -cp ... HelloWorld
+ @Test
+ void testSourceClasspath() throws IOException {
+ starting("testSourceClasspath");
+ Path base = Files.createDirectories(Paths.get("testSourceClasspath"));
+ Path src = Files.createDirectories(base.resolve("src"));
+ Path srcfile = src.resolve("java.java");
+ createFile(srcfile, List.of(
+ "class HelloWorld {",
+ " public static void main(String... args) {",
+ " System.out.println(\"Hello World\");",
+ " }",
+ "}"
+ ));
+ Path classes = base.resolve("classes");
+ compile("-d", classes.toString(), srcfile.toString());
+ TestResult tr =
+ doExec(javaCmd, "--source", thisVersion, "-cp", classes.toString(), "HelloWorld");
+ if (tr.isOK())
+ error(tr, "Command succeeded unexpectedly");
+ if (!tr.contains("file not found: HelloWorld"))
+ error(tr, "Expected output not found");
+ show(tr);
+ }
+
// java --source
@Test
void testSourceNoArg() throws IOException {
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/langtools/jdk/javadoc/doclet/testHtmlLandmarkRegions/TestHtmlLankmarkRegions.java Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,223 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8210047
+ * @summary some pages contains content outside of landmark region
+ * @library /tools/lib ../lib
+ * @modules
+ * jdk.javadoc/jdk.javadoc.internal.tool
+ * jdk.compiler/com.sun.tools.javac.api
+ * jdk.compiler/com.sun.tools.javac.main
+ * @build JavadocTester
+ * @run main TestHtmlLankmarkRegions
+ */
+
+
+import java.nio.file.Path;
+import java.nio.file.Paths;
+
+import builder.ClassBuilder;
+import toolbox.ModuleBuilder;
+import toolbox.ToolBox;
+
+public class TestHtmlLankmarkRegions extends JavadocTester {
+
+ final ToolBox tb;
+
+ public static void main(String... args) throws Exception {
+ TestHtmlLankmarkRegions tester = new TestHtmlLankmarkRegions();
+ tester.runTests(m -> new Object[]{Paths.get(m.getName())});
+ }
+
+ TestHtmlLankmarkRegions() {
+ tb = new ToolBox();
+ }
+
+ @Test
+ void testModules(Path base) throws Exception {
+ Path srcDir = base.resolve("src");
+ createModules(srcDir);
+
+ Path outDir = base.resolve("out");
+ javadoc("-d", outDir.toString(),
+ "-doctitle", "Document Title",
+ "-header", "Test Header",
+ "--frames",
+ "--module-source-path", srcDir.toString(),
+ "--module", "m1,m2");
+
+ checkExit(Exit.OK);
+
+ checkOrder("module-overview-frame.html",
+ "<header role=\"banner\">\n"
+ + "<h1 title=\"Test Header\" class=\"bar\">Test Header</h1>\n"
+ + "<nav role=\"navigation\" class=\"indexNav\">",
+ "<main role=\"main\">\n"
+ + "<div class=\"indexContainer\">\n"
+ + "<h2 title=\"Modules\">Modules</h2>\n"
+ + "<ul title=\"Modules\">",
+ "<footer role=\"contentinfo\">");
+
+ checkOrder("m1/module-frame.html",
+ "<header role=\"banner\">\n"
+ + "<h1 title=\"Test Header\" class=\"bar\">Test Header</h1>\n"
+ + "<nav role=\"navigation\" class=\"indexNav\">",
+ "<main role=\"main\">\n"
+ + "<div class=\"indexContainer\">\n"
+ + "<h2 title=\"m1\"><a href=\"module-summary.html\" target=\"classFrame\">m1</a> Packages</h2>",
+ "<footer role=\"contentinfo\">");
+
+ checkOrder("overview-summary.html",
+ "<header role=\"banner\">\n"
+ + "<nav role=\"navigation\">",
+ "<main role=\"main\">\n"
+ + "<div class=\"header\">\n"
+ + "<h1 class=\"title\">Document Title</h1>",
+ "<footer role=\"contentinfo\">\n"
+ + "<nav role=\"navigation\">");
+ }
+
+ @Test
+ void testModulesHtml4(Path base) throws Exception {
+ Path srcDir = base.resolve("src");
+ createModules(srcDir);
+
+ Path outDir = base.resolve("out2");
+ javadoc("-d", outDir.toString(),
+ "-doctitle", "Document Title",
+ "-header", "Test Header",
+ "--frames",
+ "--module-source-path", srcDir.toString(),
+ "--module", "m1,m2",
+ "-html4");
+
+ checkExit(Exit.OK);
+
+ checkOrder("module-overview-frame.html",
+ "<h1 title=\"Test Header\" class=\"bar\">Test Header</h1>\n"
+ + "<div class=\"indexNav\">",
+ "<div class=\"indexContainer\">\n"
+ + "<h2 title=\"Modules\">Modules</h2>\n"
+ + "<ul title=\"Modules\">");
+
+ checkOrder("m1/module-frame.html",
+ "<h1 title=\"Test Header\" class=\"bar\">Test Header</h1>\n"
+ + "<div class=\"indexNav\">",
+ "<div class=\"indexContainer\">\n"
+ + "<h2 title=\"m1\"><a href=\"module-summary.html\" target=\"classFrame\">m1</a> Packages</h2>");
+
+ checkOrder("overview-summary.html",
+ "<div class=\"fixedNav\">",
+ "<div class=\"header\">\n"
+ + "<h1 class=\"title\">Document Title</h1>",
+ "<div class=\"bottomNav\"><a name=\"navbar.bottom\">");
+ }
+
+ @Test
+ void testPackages(Path base) throws Exception {
+ Path srcDir = base.resolve("src");
+ createPackages(srcDir);
+
+ Path outDir = base.resolve("out3");
+ javadoc("-d", outDir.toString(),
+ "-doctitle", "Document Title",
+ "-header", "Test Header",
+ "--frames",
+ "-sourcepath", srcDir.toString(),
+ "pkg1", "pkg2");
+
+ checkExit(Exit.OK);
+
+ checkOrder("overview-summary.html",
+ "<header role=\"banner\">\n"
+ + "<nav role=\"navigation\">",
+ "<main role=\"main\">\n"
+ + "<div class=\"header\">\n"
+ + "<h1 class=\"title\">Document Title</h1>",
+ "<footer role=\"contentinfo\">\n" +
+ "<nav role=\"navigation\">");
+
+ checkOrder("overview-frame.html",
+ "<header role=\"banner\">\n"
+ + "<h1 title=\"Test Header\" class=\"bar\">Test Header</h1>\n"
+ + "<nav role=\"navigation\" class=\"indexNav\">",
+ "<main role=\"main\">\n"
+ + "<div class=\"indexContainer\">\n"
+ + "<h2 title=\"Packages\">Packages</h2>",
+ "<footer role=\"contentinfo\">");
+ }
+
+ @Test
+ void testPackagesHtml4(Path base) throws Exception {
+ Path srcDir = base.resolve("src");
+ createPackages(srcDir);
+
+ Path outDir = base.resolve("out4");
+ javadoc("-d", outDir.toString(),
+ "-doctitle", "Document Title",
+ "-header", "Test Header",
+ "--frames",
+ "-sourcepath", srcDir.toString(),
+ "pkg1", "pkg2",
+ "-html4");
+
+ checkExit(Exit.OK);
+
+ checkOrder("overview-summary.html",
+ "<div class=\"fixedNav\">",
+ "<div class=\"header\">\n"
+ + "<h1 class=\"title\">Document Title</h1>",
+ "<div class=\"bottomNav\"><a name=\"navbar.bottom\">");
+
+ checkOrder("overview-frame.html",
+ "<h1 title=\"Test Header\" class=\"bar\">Test Header</h1>\n"
+ + "<div class=\"indexNav\">",
+ "<div class=\"indexContainer\">\n"
+ + "<h2 title=\"Packages\">Packages</h2>"
+ );
+ }
+
+ void createModules(Path srcDir) throws Exception {
+ new ModuleBuilder(tb, "m1")
+ .classes("package p1; public class a{}")
+ .classes("package p2; public class b{}")
+ .write(srcDir);
+ new ModuleBuilder(tb, "m2")
+ .classes("package p3; public class c{}")
+ .classes("package p4; public class d{}")
+ .write(srcDir);
+ }
+
+ void createPackages(Path srcDir) throws Exception {
+ new ClassBuilder(tb, "pkg1.A")
+ .setModifiers("public", "class")
+ .write(srcDir);
+ new ClassBuilder(tb, "pkg2.B")
+ .setModifiers("public", "class")
+ .write(srcDir);
+ }
+}
--- a/test/langtools/jdk/javadoc/doclet/testHtmlVersion/TestHtmlVersion.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/langtools/jdk/javadoc/doclet/testHtmlVersion/TestHtmlVersion.java Mon Sep 24 10:59:26 2018 -0700
@@ -24,7 +24,7 @@
/*
* @test
* @bug 8072945 8081854 8141492 8148985 8150188 4649116 8173707 8151743 8169819 8183037 8182765 8196202
- * 8202624
+ * 8202624 8210047
* @summary Test the version of HTML generated by the javadoc tool.
* @author bpatel
* @library ../lib
@@ -106,14 +106,17 @@
"<nav role=\"navigation\" class=\"indexNav\">\n"
+ "<ul>\n"
+ "<li><a href=\"allclasses-frame.html\" target=\"packageFrame\">All Classes</a></li>",
- "<main role=\"main\" class=\"indexContainer\">\n"
+ "<main role=\"main\">\n"
+ + "<div class=\"indexContainer\">\n"
+ "<h2 title=\"Packages\">Packages</h2>");
// Test for allclasses-frame page
checkOutput("allclasses-frame.html", true,
"<!DOCTYPE HTML>",
"<meta name=\"dc.created\"",
- "<main role=\"main\" class=\"indexContainer\">\n"
+ "<main role=\"main\">\n"
+ + "<h1 class=\"bar\">All Classes</h1>\n"
+ + "<div class=\"indexContainer\">\n"
+ "<ul>\n"
+ "<li>");
@@ -636,14 +639,14 @@
"<div class=\"indexNav\">\n"
+ "<ul>\n"
+ "<li><a href=\"allclasses-frame.html\" target=\"packageFrame\">All Classes</a></li>",
- "<div class=\"indexContainer\">\n"
+ "<main class=\"indexContainer\">\n"
+ "<h2 title=\"Packages\">Packages</h2>");
// Negated test for allclasses-frame page
checkOutput("allclasses-frame.html", false,
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
"<meta name=\"date\"",
- "<div class=\"indexContainer\">\n"
+ "<main class=\"indexContainer\">\n"
+ "<ul>\n"
+ "<li>");
--- a/test/langtools/jdk/javadoc/doclet/testOverview/TestOverview.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/langtools/jdk/javadoc/doclet/testOverview/TestOverview.java Mon Sep 24 10:59:26 2018 -0700
@@ -23,7 +23,7 @@
/*
* @test
- * @bug 8173302 8182765 8196202
+ * @bug 8173302 8182765 8196202 8210047
* @summary make sure the overview-summary and module-summary pages don't
* don't have the See link, and the overview is copied correctly.
* @library ../lib
@@ -95,10 +95,10 @@
void checkOverview() {
checkOutput("overview-summary.html", true,
- "<div class=\"header\">\n"
+ "<main role=\"main\">\n"
+ + "<div class=\"header\">\n"
+ "<h1 class=\"title\">Document Title</h1>\n"
+ "</div>\n"
- + "<main role=\"main\">\n"
+ "<div class=\"contentContainer\">\n"
+ "<div class=\"block\">This is line1. This is line 2.</div>\n"
+ "</div>\n"
--- a/test/langtools/tools/javac/launcher/SourceLauncherTest.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/langtools/tools/javac/launcher/SourceLauncherTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -229,7 +229,7 @@
Files.createDirectories(base);
Path file = base.resolve("NoClass.java");
Files.write(file, List.of("package p;"));
- testError(file, "", "error: no class declared in file");
+ testError(file, "", "error: no class declared in source file");
}
@Test
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/langtools/tools/javac/platform/CanHandleClassFilesTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,115 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * @test
+ * @bug 8207954
+ * @summary Verify that CreateSymbols can handle classfiles from the current release.
+ * @library /tools/lib /tools/javac/lib
+ * @modules jdk.compiler/com.sun.tools.javac.api
+ * jdk.compiler/com.sun.tools.javac.main
+ * @build toolbox.ToolBox toolbox.JavacTask toolbox.Task
+ * @run main CanHandleClassFilesTest
+ */
+
+import java.io.Writer;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+
+import javax.tools.StandardLocation;
+
+import toolbox.JavacTask;
+import toolbox.ToolBox;
+
+public class CanHandleClassFilesTest {
+
+ public static void main(String... args) throws Exception {
+ new CanHandleClassFilesTest().run();
+ }
+
+ void run() throws Exception {
+ var testSrc = Paths.get(System.getProperty("test.src", "."));
+ var targetDir = Paths.get(".");
+ Path createSymbols = null;
+ Path includeList = null;
+ for (Path d = testSrc; d != null; d = d.getParent()) {
+ if (Files.exists(d.resolve("TEST.ROOT"))) {
+ d = d.getParent().getParent();
+ Path test = d.resolve("make/langtools/src/classes/build/tools/symbolgenerator/CreateSymbols.java");
+ if (Files.exists(test)) {
+ createSymbols = test;
+ includeList = d.resolve("make/data/symbols/include.list");
+ break;
+ }
+ }
+ }
+ if (createSymbols == null || includeList == null || !Files.isReadable(includeList)) {
+ System.err.println("Warning: sources not found, test skipped.");
+ return ;
+ }
+ try (ToolBox.MemoryFileManager mfm = new ToolBox.MemoryFileManager()) {
+ ToolBox tb = new ToolBox();
+ new JavacTask(tb)
+ .options("--add-exports", "jdk.jdeps/com.sun.tools.classfile=ALL-UNNAMED",
+ "--add-exports", "jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED",
+ "--add-exports", "jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED",
+ "--add-exports", "jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED",
+ "--add-modules", "jdk.jdeps")
+ .files(createSymbols)
+ .fileManager(mfm)
+ .run()
+ .writeAll();
+
+ ClassLoader cl = new ClassLoader() {
+ @Override
+ protected Class<?> findClass(String name) throws ClassNotFoundException {
+ byte[] data = mfm.getFileBytes(StandardLocation.CLASS_OUTPUT, name);
+ if (data != null) {
+ return defineClass(name, data, 0, data.length);
+ } else {
+ throw new ClassNotFoundException(name);
+ }
+ }
+ };
+
+ var createSymbolsClass = Class.forName("build.tools.symbolgenerator.CreateSymbols", false, cl);
+ var main = createSymbolsClass.getDeclaredMethod("main", String[].class);
+ var symbols = targetDir.resolve("symbols");
+
+ try (Writer w = Files.newBufferedWriter(symbols)) {}
+
+ main.invoke(null,
+ (Object) new String[] {"build-description-incremental",
+ symbols.toAbsolutePath().toString(),
+ includeList.toAbsolutePath().toString()});
+
+ main.invoke(null,
+ (Object) new String[] {"build-ctsym",
+ "does-not-exist",
+ symbols.toAbsolutePath().toString(),
+ targetDir.resolve("ct.sym").toAbsolutePath().toString()});
+ }
+ }
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/langtools/tools/javac/platform/NoProfileAnnotationWarning.java Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8209058
+ * @summary Verify the synthetic Profile+Annotation is ignored when using --release
+ * @modules java.compiler
+ * @compile -Xlint:all -Werror --release 10 NoProfileAnnotationWarning.java
+ */
+
+import javax.annotation.processing.ProcessingEnvironment;
+
+public class NoProfileAnnotationWarning {
+ void t(ProcessingEnvironment pe) {
+ pe.getElementUtils().getTypeElement("a");
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/langtools/tools/javac/platform/ReleaseModulesAndTypeElement.java Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,71 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8209865
+ * @summary Verify that when reading from ct.sym, classes are only visible from modules from which
+ * they are exported.
+ * @modules jdk.compiler
+ * @build ReleaseModulesAndTypeElement
+ * @compile -processor ReleaseModulesAndTypeElement --release 11 ReleaseModulesAndTypeElement.java
+ */
+
+import java.util.Set;
+
+import javax.annotation.processing.AbstractProcessor;
+import javax.annotation.processing.RoundEnvironment;
+import javax.annotation.processing.SupportedAnnotationTypes;
+import javax.lang.model.SourceVersion;
+import javax.lang.model.element.ModuleElement;
+import javax.lang.model.element.TypeElement;
+import javax.lang.model.util.Elements;
+
+@SupportedAnnotationTypes("*")
+public class ReleaseModulesAndTypeElement extends AbstractProcessor {
+
+ @Override
+ public boolean process(Set<? extends TypeElement> roots, RoundEnvironment roundEnv) {
+ Elements elements = processingEnv.getElementUtils();
+ if (elements.getTypeElement(JX_A_P_GENERATED) == null) {
+ throw new AssertionError("jx.a.p.Generated not found by unqualified search!");
+ }
+ ModuleElement javaBase = elements.getModuleElement("java.base");
+ if (elements.getTypeElement(javaBase, JX_A_P_GENERATED) != null) {
+ throw new AssertionError("jx.a.p.Generated found in java.base!");
+ }
+ ModuleElement javaCompiler = elements.getModuleElement("java.compiler");
+ if (elements.getTypeElement(javaCompiler, JX_A_P_GENERATED) == null) {
+ throw new AssertionError("jx.a.p.Generated not found in java.compiler!");
+ }
+ return false;
+ }
+ //where:
+ private static final String JX_A_P_GENERATED = "javax.annotation.processing.Generated";
+
+ @Override
+ public SourceVersion getSupportedSourceVersion() {
+ return SourceVersion.latestSupported();
+ }
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/langtools/tools/javac/typeVariableCast/TypeVariableCastTest.java Mon Sep 24 10:59:26 2018 -0700
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8209022
+ * @run testng TypeVariableCastTest
+ * @summary Missing checkcast when casting to type parameter bounded by intersection type
+ */
+
+import java.util.*;
+import org.testng.annotations.Test;
+
+@Test
+public class TypeVariableCastTest {
+ static <T extends List<?> & Runnable> void f() {
+ Runnable r = (T) new ArrayList<>();
+ }
+
+ static <T extends Runnable & List<?>> void g() {
+ Runnable r = (T) new ArrayList<>();
+ }
+
+ @Test(expectedExceptions = ClassCastException.class)
+ static void testMethodF() {
+ f();
+ }
+
+ @Test(expectedExceptions = ClassCastException.class)
+ static void testMethodG() {
+ g();
+ }
+}
--- a/test/lib/jdk/test/lib/Asserts.java Sat Sep 22 20:31:45 2018 -0700
+++ b/test/lib/jdk/test/lib/Asserts.java Mon Sep 24 10:59:26 2018 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -33,7 +33,7 @@
*
* <pre>
* {@code
- * import static jdk.testlibrary.Asserts.*;
+ * import static jdk.test.lib.Asserts.*;
* }
*
* Always provide a message describing the assumption if the line number of the