--- a/.hgtags Mon Jul 09 15:24:43 2018 -0400
+++ b/.hgtags Wed Jul 11 19:30:26 2018 -0400
@@ -493,4 +493,5 @@
36ca515343e00b021dcfc902e986d26ec994a2e5 jdk-11+19
95aad0c785e497f1bade3955c4e4a677b629fa9d jdk-12+0
9816d7cc655e53ba081f938b656e31971b8f097a jdk-11+20
+14708e1acdc3974f4539027cbbcfa6d69f83cf51 jdk-11+21
00b16d0457e43d23f6ca5ade6b243edce62750a0 jdk-12+1
--- a/make/Docs.gmk Mon Jul 09 15:24:43 2018 -0400
+++ b/make/Docs.gmk Wed Jul 11 19:30:26 2018 -0400
@@ -274,6 +274,8 @@
$1_INDIRECT_EXPORTS := $$(call FindTransitiveIndirectDepsForModules, $$($1_MODULES))
$1_ALL_MODULES := $$(sort $$($1_MODULES) $$($1_INDIRECT_EXPORTS))
+ $1_JAVA_ARGS := -Dextlink.spec.version=$$(VERSION_SPECIFICATION)
+
ifeq ($$(ENABLE_FULL_DOCS), true)
# Tell the ModuleGraph taglet to generate html links to soon-to-be-created
# png files with module graphs.
@@ -327,9 +329,10 @@
)
ifeq ($$($1_JAVADOC_CMD), )
- $1_JAVADOC_CMD := $$(JAVA) -Djava.awt.headless=true \
- -Dextlink.spec.version=$$(VERSION_SPECIFICATION) $$($1_JAVA_ARGS) \
+ $1_JAVADOC_CMD := $$(JAVA) -Djava.awt.headless=true $$($1_JAVA_ARGS) \
$$(NEW_JAVADOC)
+ else
+ $1_OPTIONS += $$(addprefix -J, $$($1_JAVA_ARGS))
endif
$1_VARDEPS := $$($1_JAVA_ARGS) $$($1_OPTIONS) $$(MODULES_SOURCE_PATH) \
@@ -463,7 +466,9 @@
# Setup generation of the reference Java SE API documentation (javadoc + modulegraph)
# The reference javadoc is just the same as javase, but using the BootJDK javadoc
-# and a stable set of javadoc options.
+# and a stable set of javadoc options. Typically it is used for generating
+# diffs between the reference javadoc and a javadoc bundle of a specific build
+# generated in the same way.
$(eval $(call SetupApiDocsGeneration, REFERENCE_API, \
MODULES := $(JAVASE_MODULES), \
@@ -497,10 +502,9 @@
JDK_INDEX_TARGETS += $(COPY_GLOBAL_RESOURCES)
# Copy the legal notices distributed with the docs bundle
-DOCS_LEGAL_NOTICES := jquery.md jszip.md pako.md
$(eval $(call SetupCopyFiles, COPY_DOCS_LEGAL_NOTICES, \
SRC := $(TOPDIR)/src/jdk.javadoc/share/legal, \
- FILES := $(DOCS_LEGAL_NOTICES), \
+ FILES := $(wildcard $(TOPDIR)/src/jdk.javadoc/share/legal/*), \
DEST := $(DOCS_OUTPUTDIR)/legal, \
))
JDK_INDEX_TARGETS += $(COPY_DOCS_LEGAL_NOTICES)
--- a/make/autoconf/hotspot.m4 Mon Jul 09 15:24:43 2018 -0400
+++ b/make/autoconf/hotspot.m4 Wed Jul 11 19:30:26 2018 -0400
@@ -201,8 +201,6 @@
ENABLE_AOT="true"
elif test "x$enable_aot" = "xno"; then
ENABLE_AOT="false"
- AC_MSG_CHECKING([if aot should be enabled])
- AC_MSG_RESULT([no, forced])
else
AC_MSG_ERROR([Invalid value for --enable-aot: $enable_aot])
fi
@@ -228,7 +226,7 @@
else
ENABLE_AOT="false"
if test "x$enable_aot" = "xyes"; then
- AC_MSG_ERROR([AOT is currently only supported on x86_64. Remove --enable-aot.])
+ AC_MSG_ERROR([AOT is currently only supported on x86_64 and aarch64. Remove --enable-aot.])
fi
fi
fi
@@ -374,57 +372,106 @@
fi
fi
- # Only enable jvmci on x86_64, sparcv9 and aarch64.
- if test "x$OPENJDK_TARGET_CPU" = "xx86_64" || \
- test "x$OPENJDK_TARGET_CPU" = "xsparcv9" || \
- test "x$OPENJDK_TARGET_CPU" = "xaarch64" ; then
- JVM_FEATURES_jvmci="jvmci"
+ AC_MSG_CHECKING([if jvmci module jdk.internal.vm.ci should be built])
+ # Check if jvmci is diabled
+ DISABLE_JVMCI=`$ECHO $DISABLED_JVM_FEATURES | $GREP jvmci`
+ if test "x$DISABLE_JVMCI" = "xjvmci"; then
+ AC_MSG_RESULT([no, forced])
+ JVM_FEATURES_jvmci=""
+ INCLUDE_JVMCI="false"
else
- JVM_FEATURES_jvmci=""
+ # Only enable jvmci on x86_64, sparcv9 and aarch64
+ if test "x$OPENJDK_TARGET_CPU" = "xx86_64" || \
+ test "x$OPENJDK_TARGET_CPU" = "xsparcv9" || \
+ test "x$OPENJDK_TARGET_CPU" = "xaarch64" ; then
+ AC_MSG_RESULT([yes])
+ JVM_FEATURES_jvmci="jvmci"
+ INCLUDE_JVMCI="true"
+ else
+ AC_MSG_RESULT([no])
+ JVM_FEATURES_jvmci=""
+ INCLUDE_JVMCI="false"
+ if HOTSPOT_CHECK_JVM_FEATURE(jvmci); then
+ AC_MSG_ERROR([JVMCI is currently not supported on this platform.])
+ fi
+ fi
fi
- AC_MSG_CHECKING([if jdk.internal.vm.compiler should be built])
- if HOTSPOT_CHECK_JVM_FEATURE(graal); then
- AC_MSG_RESULT([yes, forced])
- if test "x$JVM_FEATURES_jvmci" != "xjvmci" ; then
- AC_MSG_ERROR([Specified JVM feature 'graal' requires feature 'jvmci'])
- fi
- INCLUDE_GRAAL="true"
+ AC_SUBST(INCLUDE_JVMCI)
+
+ AC_MSG_CHECKING([if graal module jdk.internal.vm.compiler should be built])
+ # Check if graal is diabled
+ DISABLE_GRAAL=`$ECHO $DISABLED_JVM_FEATURES | $GREP graal`
+ if test "x$DISABLE_GRAAL" = "xgraal"; then
+ AC_MSG_RESULT([no, forced])
+ JVM_FEATURES_graal=""
+ INCLUDE_GRAAL="false"
else
- # By default enable graal build on x64 or where AOT is available.
- # graal build requires jvmci.
- if test "x$JVM_FEATURES_jvmci" = "xjvmci" && \
- (test "x$OPENJDK_TARGET_CPU" = "xx86_64" || \
- test "x$ENABLE_AOT" = "xtrue") ; then
- AC_MSG_RESULT([yes])
+ if HOTSPOT_CHECK_JVM_FEATURE(graal); then
+ AC_MSG_RESULT([yes, forced])
+ if test "x$JVM_FEATURES_jvmci" != "xjvmci" ; then
+ AC_MSG_ERROR([Specified JVM feature 'graal' requires feature 'jvmci'])
+ fi
JVM_FEATURES_graal="graal"
INCLUDE_GRAAL="true"
else
- AC_MSG_RESULT([no])
- JVM_FEATURES_graal=""
- INCLUDE_GRAAL="false"
+ # By default enable graal build on x64 or where AOT is available.
+ # graal build requires jvmci.
+ if test "x$JVM_FEATURES_jvmci" = "xjvmci" && \
+ (test "x$OPENJDK_TARGET_CPU" = "xx86_64" || \
+ test "x$ENABLE_AOT" = "xtrue") ; then
+ AC_MSG_RESULT([yes])
+ JVM_FEATURES_graal="graal"
+ INCLUDE_GRAAL="true"
+ else
+ AC_MSG_RESULT([no])
+ JVM_FEATURES_graal=""
+ INCLUDE_GRAAL="false"
+ fi
fi
fi
AC_SUBST(INCLUDE_GRAAL)
+ # Disable aot with '--with-jvm-features=-aot'
+ DISABLE_AOT=`$ECHO $DISABLED_JVM_FEATURES | $GREP aot`
+ if test "x$DISABLE_AOT" = "xaot"; then
+ ENABLE_AOT="false"
+ fi
+
AC_MSG_CHECKING([if aot should be enabled])
if test "x$ENABLE_AOT" = "xtrue"; then
- if test "x$enable_aot" = "xyes"; then
- AC_MSG_RESULT([yes, forced])
+ if test "x$JVM_FEATURES_graal" != "xgraal"; then
+ if test "x$enable_aot" = "xyes" || HOTSPOT_CHECK_JVM_FEATURE(aot); then
+ AC_MSG_RESULT([yes, forced])
+ AC_MSG_ERROR([Specified JVM feature 'aot' requires feature 'graal'])
+ else
+ AC_MSG_RESULT([no])
+ fi
+ JVM_FEATURES_aot=""
+ ENABLE_AOT="false"
else
- AC_MSG_RESULT([yes])
+ if test "x$enable_aot" = "xyes" || HOTSPOT_CHECK_JVM_FEATURE(aot); then
+ AC_MSG_RESULT([yes, forced])
+ else
+ AC_MSG_RESULT([yes])
+ fi
+ JVM_FEATURES_aot="aot"
fi
- JVM_FEATURES_aot="aot"
else
- if test "x$enable_aot" = "xno"; then
+ if test "x$enable_aot" = "xno" || "x$DISABLE_AOT" = "xaot"; then
AC_MSG_RESULT([no, forced])
else
AC_MSG_RESULT([no])
fi
JVM_FEATURES_aot=""
+ if HOTSPOT_CHECK_JVM_FEATURE(aot); then
+ AC_MSG_ERROR([To enable aot, you must use --enable-aot])
+ fi
fi
+ AC_SUBST(ENABLE_AOT)
+
if test "x$OPENJDK_TARGET_CPU" = xarm ; then
# Default to use link time optimizations on minimal on arm
JVM_FEATURES_link_time_opt="link-time-opt"
--- a/make/autoconf/spec.gmk.in Mon Jul 09 15:24:43 2018 -0400
+++ b/make/autoconf/spec.gmk.in Wed Jul 11 19:30:26 2018 -0400
@@ -814,6 +814,7 @@
INCLUDE_SA=@INCLUDE_SA@
INCLUDE_GRAAL=@INCLUDE_GRAAL@
+INCLUDE_JVMCI=@INCLUDE_JVMCI@
OS_VERSION_MAJOR:=@OS_VERSION_MAJOR@
OS_VERSION_MINOR:=@OS_VERSION_MINOR@
--- a/make/common/Modules.gmk Mon Jul 09 15:24:43 2018 -0400
+++ b/make/common/Modules.gmk Wed Jul 11 19:30:26 2018 -0400
@@ -205,7 +205,14 @@
endif
################################################################################
-# Filter out Graal specific modules if Graal build is disabled
+# Filter out jvmci specific modules if jvmci is disabled
+
+ifeq ($(INCLUDE_JVMCI), false)
+ MODULES_FILTER += jdk.internal.vm.ci
+endif
+
+################################################################################
+# Filter out Graal specific modules if Graal is disabled
ifeq ($(INCLUDE_GRAAL), false)
MODULES_FILTER += jdk.internal.vm.compiler
--- a/make/conf/jib-profiles.js Mon Jul 09 15:24:43 2018 -0400
+++ b/make/conf/jib-profiles.js Wed Jul 11 19:30:26 2018 -0400
@@ -239,7 +239,7 @@
// These are the base setttings for all the main build profiles.
common.main_profile_base = {
- dependencies: ["boot_jdk", "gnumake", "jtreg", "jib"],
+ dependencies: ["boot_jdk", "gnumake", "jtreg", "jib", "autoconf"],
default_make_targets: ["product-bundles", "test-bundles"],
configure_args: concat(["--enable-jtreg-failure-handler"],
"--with-exclude-translations=de,es,fr,it,ko,pt_BR,sv,ca,tr,cs,sk,ja_JP_A,ja_JP_HA,ja_JP_HI,ja_JP_I",
@@ -378,7 +378,7 @@
"linux-x64": {
target_os: "linux",
target_cpu: "x64",
- dependencies: ["devkit", "autoconf", "graphviz", "pandoc", "graalunit_lib"],
+ dependencies: ["devkit", "graphviz", "pandoc", "graalunit_lib"],
configure_args: concat(common.configure_args_64bit,
"--enable-full-docs", "--with-zlib=system"),
default_make_targets: ["docs-bundles"],
@@ -388,7 +388,7 @@
target_os: "linux",
target_cpu: "x86",
build_cpu: "x64",
- dependencies: ["devkit", "autoconf"],
+ dependencies: ["devkit"],
configure_args: concat(common.configure_args_32bit,
"--with-jvm-variants=minimal,server", "--with-zlib=system"),
},
@@ -396,7 +396,7 @@
"macosx-x64": {
target_os: "macosx",
target_cpu: "x64",
- dependencies: ["devkit", "autoconf", "graalunit_lib"],
+ dependencies: ["devkit", "graalunit_lib"],
configure_args: concat(common.configure_args_64bit, "--with-zlib=system",
"--with-macosx-version-max=10.9.0"),
},
@@ -404,7 +404,7 @@
"solaris-x64": {
target_os: "solaris",
target_cpu: "x64",
- dependencies: ["devkit", "autoconf", "cups"],
+ dependencies: ["devkit", "cups"],
configure_args: concat(common.configure_args_64bit,
"--with-zlib=system", "--enable-dtrace"),
},
@@ -412,7 +412,7 @@
"solaris-sparcv9": {
target_os: "solaris",
target_cpu: "sparcv9",
- dependencies: ["devkit", "autoconf", "cups"],
+ dependencies: ["devkit", "cups"],
configure_args: concat(common.configure_args_64bit,
"--with-zlib=system", "--enable-dtrace"),
},
@@ -420,7 +420,7 @@
"windows-x64": {
target_os: "windows",
target_cpu: "x64",
- dependencies: ["devkit", "autoconf", "graalunit_lib"],
+ dependencies: ["devkit", "graalunit_lib"],
configure_args: concat(common.configure_args_64bit),
},
@@ -428,7 +428,7 @@
target_os: "windows",
target_cpu: "x86",
build_cpu: "x64",
- dependencies: ["devkit", "autoconf"],
+ dependencies: ["devkit"],
configure_args: concat(common.configure_args_32bit),
},
@@ -436,7 +436,7 @@
target_os: "linux",
target_cpu: "aarch64",
build_cpu: "x64",
- dependencies: ["devkit", "autoconf", "build_devkit", "cups"],
+ dependencies: ["devkit", "build_devkit", "cups"],
configure_args: [
"--openjdk-target=aarch64-linux-gnu", "--with-freetype=bundled",
"--disable-warnings-as-errors", "--with-cpu-port=aarch64",
@@ -447,7 +447,7 @@
target_os: "linux",
target_cpu: "aarch64",
build_cpu: "x64",
- dependencies: ["devkit", "autoconf", "build_devkit", "cups", "headless_stubs"],
+ dependencies: ["devkit", "build_devkit", "cups", "headless_stubs"],
configure_args: [
"--with-cpu-port=arm64",
"--with-jvm-variants=server",
@@ -460,7 +460,7 @@
target_os: "linux",
target_cpu: "arm",
build_cpu: "x64",
- dependencies: ["devkit", "autoconf", "build_devkit", "cups"],
+ dependencies: ["devkit", "build_devkit", "cups"],
configure_args: [
"--openjdk-target=arm-linux-gnueabihf", "--with-freetype=bundled",
"--with-abi-profile=arm-vfp-hflt", "--disable-warnings-as-errors"
@@ -471,7 +471,7 @@
target_os: "linux",
target_cpu: "arm",
build_cpu: "x64",
- dependencies: ["devkit", "autoconf", "build_devkit", "cups"],
+ dependencies: ["devkit", "build_devkit", "cups"],
configure_args: [
"--with-jvm-variants=minimal1,client",
"--with-x=" + input.get("devkit", "install_path") + "/arm-linux-gnueabihf/libc/usr/X11R6-PI",
--- a/make/test/JtregNativeHotspot.gmk Mon Jul 09 15:24:43 2018 -0400
+++ b/make/test/JtregNativeHotspot.gmk Wed Jul 11 19:30:26 2018 -0400
@@ -836,6 +836,10 @@
################################################################################
+ifeq ($(TOOLCHAIN_TYPE), solstudio)
+ BUILD_HOTSPOT_JTREG_LIBRARIES_CFLAGS_libji06t001 += -erroff=E_END_OF_LOOP_CODE_NOT_REACHED
+endif
+
# Platform specific setup
ifneq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH), solaris-sparc)
BUILD_HOTSPOT_JTREG_EXCLUDE += liboverflow.c exeThreadSignalMask.c
@@ -858,9 +862,13 @@
BUILD_HOTSPOT_JTREG_EXECUTABLES_LIBS_exesigtest := -ljvm
+ifeq ($(OPENJDK_TARGET_OS), solaris)
+ BUILD_HOTSPOT_JTREG_EXCLUDE += libterminatedThread.c
+endif
+
ifeq ($(OPENJDK_TARGET_OS), windows)
BUILD_HOTSPOT_JTREG_EXECUTABLES_CFLAGS_exeFPRegs := -MT
- BUILD_HOTSPOT_JTREG_EXCLUDE += exesigtest.c
+ BUILD_HOTSPOT_JTREG_EXCLUDE += exesigtest.c libterminatedThread.c
else
BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libbootclssearch_agent += -lpthread
@@ -1494,6 +1502,7 @@
BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libvmdeath001 += -lpthread
BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libgetphase001 += -lpthread
BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libgetphase002 += -lpthread
+ BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libterminatedThread += -lpthread
endif
$(eval $(call SetupTestFilesCompilation, BUILD_HOTSPOT_JTREG_LIBRARIES, \
--- a/src/hotspot/cpu/aarch64/aarch64.ad Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/cpu/aarch64/aarch64.ad Wed Jul 11 19:30:26 2018 -0400
@@ -1471,7 +1471,7 @@
// Ctl+Mem to a StoreB node (which does the actual card mark).
//
// n.b. a StoreCM node will only appear in this configuration when
- // using CMS. StoreCM differs from a normal card mark write (StoreB)
+ // using CMS or G1. StoreCM differs from a normal card mark write (StoreB)
// because it implies a requirement to order visibility of the card
// mark (StoreCM) relative to the object put (StoreP/N) using a
// StoreStore memory barrier (arguably this ought to be represented
@@ -1481,16 +1481,12 @@
// the sequence
//
// dmb ishst
- // stlrb
- //
- // However, in the case of a volatile put if we can recognise this
- // configuration and plant an stlr for the object write then we can
- // omit the dmb and just plant an strb since visibility of the stlr
- // is ordered before visibility of subsequent stores. StoreCM nodes
- // also arise when using G1 or using CMS with conditional card
- // marking. In these cases (as we shall see) we don't need to insert
- // the dmb when translating StoreCM because there is already an
- // intervening StoreLoad barrier between it and the StoreP/N.
+ // strb
+ //
+ // However, when using G1 or CMS with conditional card marking (as
+ // we shall see) we don't need to insert the dmb when translating
+ // StoreCM because there is already an intervening StoreLoad barrier
+ // between it and the StoreP/N.
//
// It is also possible to perform the card mark conditionally on it
// currently being unmarked in which case the volatile put graph
@@ -2868,50 +2864,17 @@
{
assert(storecm->Opcode() == Op_StoreCM, "expecting a StoreCM");
- // we only ever need to generate a dmb ishst between an object put
- // and the associated card mark when we are using CMS without
- // conditional card marking
-
- if (!UseConcMarkSweepGC || UseCondCardMark) {
- return true;
- }
-
- // if we are implementing volatile puts using barriers then the
- // object put is an str so we must insert the dmb ishst
-
- if (UseBarriersForVolatile) {
+ // we need to generate a dmb ishst between an object put and the
+ // associated card mark when we are using CMS without conditional
+ // card marking
+
+ if (UseConcMarkSweepGC && !UseCondCardMark) {
return false;
}
- // we can omit the dmb ishst if this StoreCM is part of a volatile
- // put because in thta case the put will be implemented by stlr
- //
- // we need to check for a normal subgraph feeding this StoreCM.
- // that means the StoreCM must be fed Memory from a leading membar,
- // either a MemBarRelease or its dependent MemBarCPUOrder, and the
- // leading membar must be part of a normal subgraph
-
- Node *x = storecm->in(StoreNode::Memory);
-
- if (!x->is_Proj()) {
- return false;
- }
-
- x = x->in(0);
-
- if (!x->is_MemBar()) {
- return false;
- }
-
- MemBarNode *leading = x->as_MemBar();
-
- // reject invalid candidates
- if (!leading_membar(leading)) {
- return false;
- }
-
- // we can omit the StoreStore if it is the head of a normal subgraph
- return (leading_to_normal(leading) != NULL);
+ // a storestore is unnecesary in all other cases
+
+ return true;
}
--- a/src/hotspot/cpu/ppc/vm_version_ext_ppc.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/cpu/ppc/vm_version_ext_ppc.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -25,19 +25,30 @@
#include "jvm.h"
#include "memory/allocation.hpp"
#include "memory/allocation.inline.hpp"
+#include "runtime/vm_version.hpp"
#include "vm_version_ext_ppc.hpp"
// VM_Version_Ext statics
int VM_Version_Ext::_no_of_threads = 0;
int VM_Version_Ext::_no_of_cores = 0;
int VM_Version_Ext::_no_of_sockets = 0;
+bool VM_Version_Ext::_initialized = false;
char VM_Version_Ext::_cpu_name[CPU_TYPE_DESC_BUF_SIZE] = {0};
char VM_Version_Ext::_cpu_desc[CPU_DETAILED_DESC_BUF_SIZE] = {0};
// get cpu information.
-bool VM_Version_Ext::initialize_cpu_information(void) {
- // Not yet implemented.
- return false;
+void VM_Version_Ext::initialize_cpu_information(void) {
+ // do nothing if cpu info has been initialized
+ if (_initialized) {
+ return;
+ }
+
+ _no_of_cores = os::processor_count();
+ _no_of_threads = _no_of_cores;
+ _no_of_sockets = _no_of_cores;
+ snprintf(_cpu_name, CPU_TYPE_DESC_BUF_SIZE, "PowerPC POWER%lu", PowerArchitecturePPC64);
+ snprintf(_cpu_desc, CPU_DETAILED_DESC_BUF_SIZE, "PPC %s", features_string());
+ _initialized = true;
}
int VM_Version_Ext::number_of_threads(void) {
@@ -56,9 +67,7 @@
}
const char* VM_Version_Ext::cpu_name(void) {
- if (!initialize_cpu_information()) {
- return NULL;
- }
+ initialize_cpu_information();
char* tmp = NEW_C_HEAP_ARRAY_RETURN_NULL(char, CPU_TYPE_DESC_BUF_SIZE, mtTracing);
if (NULL == tmp) {
return NULL;
@@ -68,9 +77,7 @@
}
const char* VM_Version_Ext::cpu_description(void) {
- if (!initialize_cpu_information()) {
- return NULL;
- }
+ initialize_cpu_information();
char* tmp = NEW_C_HEAP_ARRAY_RETURN_NULL(char, CPU_DETAILED_DESC_BUF_SIZE, mtTracing);
if (NULL == tmp) {
return NULL;
--- a/src/hotspot/cpu/ppc/vm_version_ext_ppc.hpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/cpu/ppc/vm_version_ext_ppc.hpp Wed Jul 11 19:30:26 2018 -0400
@@ -43,10 +43,11 @@
static int _no_of_threads;
static int _no_of_cores;
static int _no_of_sockets;
+ static bool _initialized;
static char _cpu_name[CPU_TYPE_DESC_BUF_SIZE];
static char _cpu_desc[CPU_DETAILED_DESC_BUF_SIZE];
- static bool initialize_cpu_information(void);
+ static void initialize_cpu_information(void);
public:
--- a/src/hotspot/cpu/s390/s390.ad Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/cpu/s390/s390.ad Wed Jul 11 19:30:26 2018 -0400
@@ -9839,7 +9839,7 @@
match(Set index (PartialSubtypeCheck sub super));
effect(KILL pcc, KILL scratch1, KILL scratch2);
ins_cost(10 * DEFAULT_COST);
- size(12);
+ // TODO: s390 port size(FIXED_SIZE);
format %{ " CALL PartialSubtypeCheck\n" %}
ins_encode %{
AddressLiteral stub_address(StubRoutines::zarch::partial_subtype_check());
--- a/src/hotspot/cpu/s390/templateTable_s390.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/cpu/s390/templateTable_s390.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -3636,7 +3636,7 @@
NearLabel subtype, no_such_interface;
- __ check_klass_subtype(klass, interface, Z_tmp_2, Z_tmp_3, subtype);
+ __ check_klass_subtype(klass, interface, Z_tmp_2, flags/*scratch*/, subtype);
// If we get here the typecheck failed
__ z_bru(no_such_interface);
__ bind(subtype);
@@ -3649,7 +3649,6 @@
__ bind(notVFinal);
// Get receiver klass into klass - also a null check.
- __ restore_locals();
__ load_klass(klass, receiver);
__ lookup_interface_method(klass, interface, noreg, noreg, /*temp*/Z_ARG1,
@@ -3680,7 +3679,7 @@
// interpreter entry point and a conditional jump to it in case of a null
// method.
__ compareU64_and_branch(method2, (intptr_t) 0,
- Assembler::bcondZero, no_such_method);
+ Assembler::bcondZero, no_such_method);
__ profile_arguments_type(Z_tmp_1, method2, Z_tmp_2, true);
@@ -3695,8 +3694,6 @@
__ bind(no_such_method);
// Throw exception.
- __ restore_bcp(); // Bcp must be correct for exception handler (was destroyed).
- __ restore_locals(); // Make sure locals pointer is correct as well (was destroyed).
// Pass arguments for generating a verbose error message.
__ z_lgr(Z_tmp_1, method); // Prevent register clash.
__ call_VM(noreg,
@@ -3709,8 +3706,6 @@
__ bind(no_such_interface);
// Throw exception.
- __ restore_bcp(); // Bcp must be correct for exception handler (was destroyed).
- __ restore_locals(); // Make sure locals pointer is correct as well (was destroyed).
// Pass arguments for generating a verbose error message.
__ call_VM(noreg,
CAST_FROM_FN_PTR(address,
--- a/src/hotspot/cpu/s390/vm_version_ext_s390.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/cpu/s390/vm_version_ext_s390.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -31,13 +31,23 @@
int VM_Version_Ext::_no_of_threads = 0;
int VM_Version_Ext::_no_of_cores = 0;
int VM_Version_Ext::_no_of_sockets = 0;
+bool VM_Version_Ext::_initialized = false;
char VM_Version_Ext::_cpu_name[CPU_TYPE_DESC_BUF_SIZE] = {0};
char VM_Version_Ext::_cpu_desc[CPU_DETAILED_DESC_BUF_SIZE] = {0};
// get cpu information.
-bool VM_Version_Ext::initialize_cpu_information(void) {
- // Not yet implemented.
- return false;
+void VM_Version_Ext::initialize_cpu_information(void) {
+ // do nothing if cpu info has been initialized
+ if (_initialized) {
+ return;
+ }
+
+ _no_of_cores = os::processor_count();
+ _no_of_threads = _no_of_cores;
+ _no_of_sockets = _no_of_cores;
+ snprintf(_cpu_name, CPU_TYPE_DESC_BUF_SIZE, "s390 %s", VM_Version::get_model_string());
+ snprintf(_cpu_desc, CPU_DETAILED_DESC_BUF_SIZE, "zArch %s", features_string());
+ _initialized = true;
}
int VM_Version_Ext::number_of_threads(void) {
@@ -56,9 +66,7 @@
}
const char* VM_Version_Ext::cpu_name(void) {
- if (!initialize_cpu_information()) {
- return NULL;
- }
+ initialize_cpu_information();
char* tmp = NEW_C_HEAP_ARRAY_RETURN_NULL(char, CPU_TYPE_DESC_BUF_SIZE, mtTracing);
if (NULL == tmp) {
return NULL;
@@ -68,9 +76,7 @@
}
const char* VM_Version_Ext::cpu_description(void) {
- if (!initialize_cpu_information()) {
- return NULL;
- }
+ initialize_cpu_information();
char* tmp = NEW_C_HEAP_ARRAY_RETURN_NULL(char, CPU_DETAILED_DESC_BUF_SIZE, mtTracing);
if (NULL == tmp) {
return NULL;
--- a/src/hotspot/cpu/s390/vm_version_ext_s390.hpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/cpu/s390/vm_version_ext_s390.hpp Wed Jul 11 19:30:26 2018 -0400
@@ -43,10 +43,11 @@
static int _no_of_threads;
static int _no_of_cores;
static int _no_of_sockets;
+ static bool _initialized;
static char _cpu_name[CPU_TYPE_DESC_BUF_SIZE];
static char _cpu_desc[CPU_DETAILED_DESC_BUF_SIZE];
- static bool initialize_cpu_information(void);
+ static void initialize_cpu_information(void);
public:
--- a/src/hotspot/cpu/s390/vm_version_s390.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/cpu/s390/vm_version_s390.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -1,6 +1,6 @@
/*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2016, 2017 SAP SE. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018 SAP SE. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -36,6 +36,7 @@
# include <sys/sysinfo.h>
bool VM_Version::_is_determine_features_test_running = false;
+const char* VM_Version::_model_string;
unsigned long VM_Version::_features[_features_buffer_len] = {0, 0, 0, 0};
unsigned long VM_Version::_cipher_features[_features_buffer_len] = {0, 0, 0, 0};
@@ -210,6 +211,10 @@
FLAG_SET_DEFAULT(UseSHA512Intrinsics, false);
}
+ if (!(UseSHA1Intrinsics || UseSHA256Intrinsics || UseSHA512Intrinsics)) {
+ FLAG_SET_DEFAULT(UseSHA, false);
+ }
+
if (FLAG_IS_DEFAULT(UseMultiplyToLenIntrinsic)) {
FLAG_SET_DEFAULT(UseMultiplyToLenIntrinsic, true);
}
@@ -244,32 +249,40 @@
void VM_Version::set_features_string() {
unsigned int ambiguity = 0;
+ _model_string = z_name[0];
if (is_z13()) {
_features_string = "System z G7-z13 (LDISP_fast, ExtImm, PCrel Load/Store, CmpB, Cond Load/Store, Interlocked Update, TxM, VectorInstr)";
+ _model_string = z_name[7];
ambiguity++;
}
if (is_ec12()) {
_features_string = "System z G6-EC12 (LDISP_fast, ExtImm, PCrel Load/Store, CmpB, Cond Load/Store, Interlocked Update, TxM)";
+ _model_string = z_name[6];
ambiguity++;
}
if (is_z196()) {
_features_string = "System z G5-z196 (LDISP_fast, ExtImm, PCrel Load/Store, CmpB, Cond Load/Store, Interlocked Update)";
+ _model_string = z_name[5];
ambiguity++;
}
if (is_z10()) {
_features_string = "System z G4-z10 (LDISP_fast, ExtImm, PCrel Load/Store, CmpB)";
+ _model_string = z_name[4];
ambiguity++;
}
if (is_z9()) {
_features_string = "System z G3-z9 (LDISP_fast, ExtImm), out-of-support as of 2016-04-01";
+ _model_string = z_name[3];
ambiguity++;
}
if (is_z990()) {
_features_string = "System z G2-z990 (LDISP_fast), out-of-support as of 2014-07-01";
+ _model_string = z_name[2];
ambiguity++;
}
if (is_z900()) {
_features_string = "System z G1-z900 (LDISP), out-of-support as of 2014-07-01";
+ _model_string = z_name[1];
ambiguity++;
}
--- a/src/hotspot/cpu/s390/vm_version_s390.hpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/cpu/s390/vm_version_s390.hpp Wed Jul 11 19:30:26 2018 -0400
@@ -1,6 +1,6 @@
/*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2016 SAP SE. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018 SAP SE. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -131,6 +131,7 @@
static unsigned int _Dcache_lineSize;
static unsigned int _Icache_lineSize;
static bool _is_determine_features_test_running;
+ static const char* _model_string;
static bool test_feature_bit(unsigned long* featureBuffer, int featureNum, unsigned int bufLen);
static void set_features_string();
@@ -346,6 +347,7 @@
static bool is_determine_features_test_running() { return _is_determine_features_test_running; }
// CPU feature query functions
+ static const char* get_model_string() { return _model_string; }
static bool has_StoreFacilityListExtended() { return (_features[0] & StoreFacilityListExtendedMask) == StoreFacilityListExtendedMask; }
static bool has_Crypto() { return (_features[0] & CryptoFacilityMask) == CryptoFacilityMask; }
static bool has_ETF2() { return (_features[0] & ETF2Mask) == ETF2Mask; }
--- a/src/hotspot/os/aix/os_aix.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/os/aix/os_aix.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -576,7 +576,9 @@
}
}
Arguments::set_java_home(buf);
- set_boot_path('/', ':');
+ if (!set_boot_path('/', ':')) {
+ vm_exit_during_initialization("Failed setting boot class path.", NULL);
+ }
}
// Where to look for native libraries.
--- a/src/hotspot/os/bsd/os_bsd.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/os/bsd/os_bsd.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -372,7 +372,9 @@
}
}
Arguments::set_java_home(buf);
- set_boot_path('/', ':');
+ if (!set_boot_path('/', ':')) {
+ vm_exit_during_initialization("Failed setting boot class path.", NULL);
+ }
}
// Where to look for native libraries.
--- a/src/hotspot/os/linux/os_linux.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/os/linux/os_linux.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -367,7 +367,9 @@
}
}
Arguments::set_java_home(buf);
- set_boot_path('/', ':');
+ if (!set_boot_path('/', ':')) {
+ vm_exit_during_initialization("Failed setting boot class path.", NULL);
+ }
}
// Where to look for native libraries.
@@ -5555,14 +5557,18 @@
static jlong slow_thread_cpu_time(Thread *thread, bool user_sys_cpu_time);
-static clockid_t thread_cpu_clockid(Thread* thread) {
- pthread_t tid = thread->osthread()->pthread_id();
- clockid_t clockid;
-
- // Get thread clockid
- int rc = os::Linux::pthread_getcpuclockid(tid, &clockid);
- assert(rc == 0, "pthread_getcpuclockid is expected to return 0 code");
- return clockid;
+static jlong fast_cpu_time(Thread *thread) {
+ clockid_t clockid;
+ int rc = os::Linux::pthread_getcpuclockid(thread->osthread()->pthread_id(),
+ &clockid);
+ if (rc == 0) {
+ return os::Linux::fast_thread_cpu_time(clockid);
+ } else {
+ // It's possible to encounter a terminated native thread that failed
+ // to detach itself from the VM - which should result in ESRCH.
+ assert_status(rc == ESRCH, rc, "pthread_getcpuclockid failed");
+ return -1;
+ }
}
// current_thread_cpu_time(bool) and thread_cpu_time(Thread*, bool)
@@ -5584,7 +5590,7 @@
jlong os::thread_cpu_time(Thread* thread) {
// consistent with what current_thread_cpu_time() returns
if (os::Linux::supports_fast_thread_cpu_time()) {
- return os::Linux::fast_thread_cpu_time(thread_cpu_clockid(thread));
+ return fast_cpu_time(thread);
} else {
return slow_thread_cpu_time(thread, true /* user + sys */);
}
@@ -5600,7 +5606,7 @@
jlong os::thread_cpu_time(Thread *thread, bool user_sys_cpu_time) {
if (user_sys_cpu_time && os::Linux::supports_fast_thread_cpu_time()) {
- return os::Linux::fast_thread_cpu_time(thread_cpu_clockid(thread));
+ return fast_cpu_time(thread);
} else {
return slow_thread_cpu_time(thread, user_sys_cpu_time);
}
--- a/src/hotspot/os/solaris/os_solaris.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/os/solaris/os_solaris.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -580,7 +580,9 @@
}
}
Arguments::set_java_home(buf);
- set_boot_path('/', ':');
+ if (!set_boot_path('/', ':')) {
+ vm_exit_during_initialization("Failed setting boot class path.", NULL);
+ }
}
// Where to look for native libraries.
--- a/src/hotspot/os/windows/os_windows.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/os/windows/os_windows.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -230,7 +230,7 @@
FREE_C_HEAP_ARRAY(char, dll_path);
if (!set_boot_path('\\', ';')) {
- return;
+ vm_exit_during_initialization("Failed setting boot class path.", NULL);
}
}
--- a/src/hotspot/os_cpu/linux_x86/gc/z/zBackingFile_linux_x86.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/os_cpu/linux_x86/gc/z/zBackingFile_linux_x86.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -28,7 +28,6 @@
#include "gc/z/zErrno.hpp"
#include "gc/z/zLargePages.inline.hpp"
#include "logging/log.hpp"
-#include "runtime/init.hpp"
#include "runtime/os.hpp"
#include "utilities/align.hpp"
#include "utilities/debug.hpp"
@@ -47,10 +46,6 @@
// Sysfs file for transparent huge page on tmpfs
#define ZFILENAME_SHMEM_ENABLED "/sys/kernel/mm/transparent_hugepage/shmem_enabled"
-// Default mount points
-#define ZMOUNTPOINT_TMPFS "/dev/shm"
-#define ZMOUNTPOINT_HUGETLBFS "/hugepages"
-
// Java heap filename
#define ZFILENAME_HEAP "java_heap"
@@ -79,13 +74,30 @@
#define HUGETLBFS_MAGIC 0x958458f6
#endif
+// Preferred tmpfs mount points, ordered by priority
+static const char* z_preferred_tmpfs_mountpoints[] = {
+ "/dev/shm",
+ "/run/shm",
+ NULL
+};
+
+// Preferred hugetlbfs mount points, ordered by priority
+static const char* z_preferred_hugetlbfs_mountpoints[] = {
+ "/dev/hugepages",
+ "/hugepages",
+ NULL
+};
+
static int z_memfd_create(const char *name, unsigned int flags) {
return syscall(__NR_memfd_create, name, flags);
}
+bool ZBackingFile::_hugetlbfs_mmap_retry = true;
+
ZBackingFile::ZBackingFile() :
_fd(-1),
_filesystem(0),
+ _available(0),
_initialized(false) {
// Create backing file
@@ -94,39 +106,47 @@
return;
}
- // Get filesystem type
+ // Get filesystem statistics
struct statfs statfs_buf;
if (fstatfs(_fd, &statfs_buf) == -1) {
ZErrno err;
- log_error(gc, init)("Failed to determine filesystem type for backing file (%s)", err.to_string());
+ log_error(gc, init)("Failed to determine filesystem type for backing file (%s)",
+ err.to_string());
return;
}
+
_filesystem = statfs_buf.f_type;
+ _available = statfs_buf.f_bavail * statfs_buf.f_bsize;
// Make sure we're on a supported filesystem
if (!is_tmpfs() && !is_hugetlbfs()) {
- log_error(gc, init)("Backing file must be located on a %s or a %s filesystem", ZFILESYSTEM_TMPFS, ZFILESYSTEM_HUGETLBFS);
+ log_error(gc, init)("Backing file must be located on a %s or a %s filesystem",
+ ZFILESYSTEM_TMPFS, ZFILESYSTEM_HUGETLBFS);
return;
}
// Make sure the filesystem type matches requested large page type
if (ZLargePages::is_transparent() && !is_tmpfs()) {
- log_error(gc, init)("-XX:+UseTransparentHugePages can only be enable when using a %s filesystem", ZFILESYSTEM_TMPFS);
+ log_error(gc, init)("-XX:+UseTransparentHugePages can only be enable when using a %s filesystem",
+ ZFILESYSTEM_TMPFS);
return;
}
if (ZLargePages::is_transparent() && !tmpfs_supports_transparent_huge_pages()) {
- log_error(gc, init)("-XX:+UseTransparentHugePages on a %s filesystem not supported by kernel", ZFILESYSTEM_TMPFS);
+ log_error(gc, init)("-XX:+UseTransparentHugePages on a %s filesystem not supported by kernel",
+ ZFILESYSTEM_TMPFS);
return;
}
if (ZLargePages::is_explicit() && !is_hugetlbfs()) {
- log_error(gc, init)("-XX:+UseLargePages (without -XX:+UseTransparentHugePages) can only be enabled when using a %s filesystem", ZFILESYSTEM_HUGETLBFS);
+ log_error(gc, init)("-XX:+UseLargePages (without -XX:+UseTransparentHugePages) can only be enabled when using a %s filesystem",
+ ZFILESYSTEM_HUGETLBFS);
return;
}
if (!ZLargePages::is_explicit() && is_hugetlbfs()) {
- log_error(gc, init)("-XX:+UseLargePages must be enabled when using a %s filesystem", ZFILESYSTEM_HUGETLBFS);
+ log_error(gc, init)("-XX:+UseLargePages must be enabled when using a %s filesystem",
+ ZFILESYSTEM_HUGETLBFS);
return;
}
@@ -149,17 +169,21 @@
return -1;
}
- log_debug(gc, init)("Heap backed by file /memfd:%s", filename);
+ log_info(gc, init)("Heap backed by file: /memfd:%s", filename);
return fd;
}
int ZBackingFile::create_file_fd(const char* name) const {
- const char* const filesystem = ZLargePages::is_explicit() ? ZFILESYSTEM_HUGETLBFS : ZFILESYSTEM_TMPFS;
- const char* const mountpoint = ZLargePages::is_explicit() ? ZMOUNTPOINT_HUGETLBFS : ZMOUNTPOINT_TMPFS;
+ const char* const filesystem = ZLargePages::is_explicit()
+ ? ZFILESYSTEM_HUGETLBFS
+ : ZFILESYSTEM_TMPFS;
+ const char** const preferred_mountpoints = ZLargePages::is_explicit()
+ ? z_preferred_hugetlbfs_mountpoints
+ : z_preferred_tmpfs_mountpoints;
// Find mountpoint
- ZBackingPath path(filesystem, mountpoint);
+ ZBackingPath path(filesystem, preferred_mountpoints);
if (path.get() == NULL) {
log_error(gc, init)("Use -XX:ZPath to specify the path to a %s filesystem", filesystem);
return -1;
@@ -181,7 +205,7 @@
return -1;
}
- log_debug(gc, init)("Heap backed by file %s/#" UINT64_FORMAT, path.get(), (uint64_t)stat_buf.st_ino);
+ log_info(gc, init)("Heap backed by file: %s/#" UINT64_FORMAT, path.get(), (uint64_t)stat_buf.st_ino);
return fd_anon;
}
@@ -207,7 +231,7 @@
return -1;
}
- log_debug(gc, init)("Heap backed by file %s", filename);
+ log_info(gc, init)("Heap backed by file: %s", filename);
return fd;
}
@@ -238,6 +262,10 @@
return _fd;
}
+size_t ZBackingFile::available() const {
+ return _available;
+}
+
bool ZBackingFile::is_tmpfs() const {
return _filesystem == TMPFS_MAGIC;
}
@@ -292,12 +320,12 @@
return true;
}
-bool ZBackingFile::expand_tmpfs(size_t offset, size_t length) const {
+bool ZBackingFile::try_expand_tmpfs(size_t offset, size_t length) const {
assert(is_tmpfs(), "Wrong filesystem");
return try_expand_tmpfs(offset, length, os::vm_page_size());
}
-bool ZBackingFile::expand_hugetlbfs(size_t offset, size_t length) const {
+bool ZBackingFile::try_expand_hugetlbfs(size_t offset, size_t length) const {
assert(is_hugetlbfs(), "Wrong filesystem");
// Prior to kernel 4.3, hugetlbfs did not support posix_fallocate().
@@ -320,11 +348,11 @@
// process being returned to the huge page pool and made available for new
// allocations.
void* addr = MAP_FAILED;
- const int max_attempts = 3;
+ const int max_attempts = 5;
for (int attempt = 1; attempt <= max_attempts; attempt++) {
addr = mmap(0, length, PROT_READ|PROT_WRITE, MAP_SHARED, _fd, offset);
- if (addr != MAP_FAILED || is_init_completed()) {
- // Mapping was successful or initialization phase has completed
+ if (addr != MAP_FAILED || !_hugetlbfs_mmap_retry) {
+ // Mapping was successful or mmap retry is disabled
break;
}
@@ -337,6 +365,11 @@
sleep(1);
}
+ // Disable mmap retry from now on
+ if (_hugetlbfs_mmap_retry) {
+ _hugetlbfs_mmap_retry = false;
+ }
+
if (addr == MAP_FAILED) {
// Not enough huge pages left
ZErrno err;
@@ -355,6 +388,39 @@
return true;
}
-bool ZBackingFile::expand(size_t offset, size_t length) const {
- return is_hugetlbfs() ? expand_hugetlbfs(offset, length) : expand_tmpfs(offset, length);
+bool ZBackingFile::try_expand_tmpfs_or_hugetlbfs(size_t offset, size_t length, size_t alignment) const {
+ assert(is_aligned(offset, alignment), "Invalid offset");
+ assert(is_aligned(length, alignment), "Invalid length");
+
+ log_debug(gc)("Expanding heap from " SIZE_FORMAT "M to " SIZE_FORMAT "M", offset / M, (offset + length) / M);
+
+ return is_hugetlbfs() ? try_expand_hugetlbfs(offset, length) : try_expand_tmpfs(offset, length);
}
+
+size_t ZBackingFile::try_expand(size_t offset, size_t length, size_t alignment) const {
+ size_t start = offset;
+ size_t end = offset + length;
+
+ // Try to expand
+ if (try_expand_tmpfs_or_hugetlbfs(start, length, alignment)) {
+ // Success
+ return end;
+ }
+
+ // Failed, try to expand as much as possible
+ for (;;) {
+ length = align_down((end - start) / 2, alignment);
+ if (length < alignment) {
+ // Done, don't expand more
+ return start;
+ }
+
+ if (try_expand_tmpfs_or_hugetlbfs(start, length, alignment)) {
+ // Success, try expand more
+ start += length;
+ } else {
+ // Failed, try expand less
+ end -= length;
+ }
+ }
+}
--- a/src/hotspot/os_cpu/linux_x86/gc/z/zBackingFile_linux_x86.hpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/os_cpu/linux_x86/gc/z/zBackingFile_linux_x86.hpp Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -28,8 +28,11 @@
class ZBackingFile {
private:
+ static bool _hugetlbfs_mmap_retry;
+
int _fd;
uint64_t _filesystem;
+ size_t _available;
bool _initialized;
int create_mem_fd(const char* name) const;
@@ -42,9 +45,9 @@
bool try_split_and_expand_tmpfs(size_t offset, size_t length, size_t alignment) const;
bool try_expand_tmpfs(size_t offset, size_t length, size_t alignment) const;
- bool expand_tmpfs(size_t offset, size_t length) const;
-
- bool expand_hugetlbfs(size_t offset, size_t length) const;
+ bool try_expand_tmpfs(size_t offset, size_t length) const;
+ bool try_expand_hugetlbfs(size_t offset, size_t length) const;
+ bool try_expand_tmpfs_or_hugetlbfs(size_t offset, size_t length, size_t alignment) const;
public:
ZBackingFile();
@@ -52,7 +55,9 @@
bool is_initialized() const;
int fd() const;
- bool expand(size_t offset, size_t length) const;
+ size_t available() const;
+
+ size_t try_expand(size_t offset, size_t length, size_t alignment) const;
};
#endif // OS_CPU_LINUX_X86_ZBACKINGFILE_LINUX_X86_HPP
--- a/src/hotspot/os_cpu/linux_x86/gc/z/zBackingPath_linux_x86.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/os_cpu/linux_x86/gc/z/zBackingPath_linux_x86.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -33,13 +33,13 @@
// Mount information, see proc(5) for more details.
#define PROC_SELF_MOUNTINFO "/proc/self/mountinfo"
-ZBackingPath::ZBackingPath(const char* filesystem, const char* preferred_path) {
+ZBackingPath::ZBackingPath(const char* filesystem, const char** preferred_mountpoints) {
if (ZPath != NULL) {
// Use specified path
_path = strdup(ZPath);
} else {
// Find suitable path
- _path = find_mountpoint(filesystem, preferred_path);
+ _path = find_mountpoint(filesystem, preferred_mountpoints);
}
}
@@ -52,8 +52,8 @@
char* line_mountpoint = NULL;
char* line_filesystem = NULL;
- // Parse line and return a newly allocated string containing the mountpoint if
- // the line contains a matching filesystem and the mountpoint is accessible by
+ // Parse line and return a newly allocated string containing the mount point if
+ // the line contains a matching filesystem and the mount point is accessible by
// the current user.
if (sscanf(line, "%*u %*u %*u:%*u %*s %ms %*[^-]- %ms", &line_mountpoint, &line_filesystem) != 2 ||
strcmp(line_filesystem, filesystem) != 0 ||
@@ -68,7 +68,7 @@
return line_mountpoint;
}
-void ZBackingPath::get_mountpoints(ZArray<char*>* mountpoints, const char* filesystem) const {
+void ZBackingPath::get_mountpoints(const char* filesystem, ZArray<char*>* mountpoints) const {
FILE* fd = fopen(PROC_SELF_MOUNTINFO, "r");
if (fd == NULL) {
ZErrno err;
@@ -98,37 +98,45 @@
mountpoints->clear();
}
-char* ZBackingPath::find_mountpoint(const char* filesystem, const char* preferred_mountpoint) const {
+char* ZBackingPath::find_preferred_mountpoint(const char* filesystem,
+ ZArray<char*>* mountpoints,
+ const char** preferred_mountpoints) const {
+ // Find preferred mount point
+ ZArrayIterator<char*> iter1(mountpoints);
+ for (char* mountpoint; iter1.next(&mountpoint);) {
+ for (const char** preferred = preferred_mountpoints; *preferred != NULL; preferred++) {
+ if (!strcmp(mountpoint, *preferred)) {
+ // Preferred mount point found
+ return strdup(mountpoint);
+ }
+ }
+ }
+
+ // Preferred mount point not found
+ log_error(gc, init)("More than one %s filesystem found:", filesystem);
+ ZArrayIterator<char*> iter2(mountpoints);
+ for (char* mountpoint; iter2.next(&mountpoint);) {
+ log_error(gc, init)(" %s", mountpoint);
+ }
+
+ return NULL;
+}
+
+char* ZBackingPath::find_mountpoint(const char* filesystem, const char** preferred_mountpoints) const {
char* path = NULL;
ZArray<char*> mountpoints;
- get_mountpoints(&mountpoints, filesystem);
+ get_mountpoints(filesystem, &mountpoints);
if (mountpoints.size() == 0) {
- // No filesystem found
+ // No mount point found
log_error(gc, init)("Failed to find an accessible %s filesystem", filesystem);
} else if (mountpoints.size() == 1) {
- // One filesystem found
+ // One mount point found
path = strdup(mountpoints.at(0));
- } else if (mountpoints.size() > 1) {
- // More than one filesystem found
- ZArrayIterator<char*> iter(&mountpoints);
- for (char* mountpoint; iter.next(&mountpoint);) {
- if (!strcmp(mountpoint, preferred_mountpoint)) {
- // Preferred mount point found
- path = strdup(mountpoint);
- break;
- }
- }
-
- if (path == NULL) {
- // Preferred mount point not found
- log_error(gc, init)("More than one %s filesystem found:", filesystem);
- ZArrayIterator<char*> iter2(&mountpoints);
- for (char* mountpoint; iter2.next(&mountpoint);) {
- log_error(gc, init)(" %s", mountpoint);
- }
- }
+ } else {
+ // More than one mount point found
+ path = find_preferred_mountpoint(filesystem, &mountpoints, preferred_mountpoints);
}
free_mountpoints(&mountpoints);
--- a/src/hotspot/os_cpu/linux_x86/gc/z/zBackingPath_linux_x86.hpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/os_cpu/linux_x86/gc/z/zBackingPath_linux_x86.hpp Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,13 +31,19 @@
private:
char* _path;
- char* get_mountpoint(const char* line, const char* filesystem) const;
- void get_mountpoints(ZArray<char*>* mountpoints, const char* filesystem) const;
+ char* get_mountpoint(const char* line,
+ const char* filesystem) const;
+ void get_mountpoints(const char* filesystem,
+ ZArray<char*>* mountpoints) const;
void free_mountpoints(ZArray<char*>* mountpoints) const;
- char* find_mountpoint(const char* filesystem, const char* preferred_mountpoint) const;
+ char* find_preferred_mountpoint(const char* filesystem,
+ ZArray<char*>* mountpoints,
+ const char** preferred_mountpoints) const;
+ char* find_mountpoint(const char* filesystem,
+ const char** preferred_mountpoints) const;
public:
- ZBackingPath(const char* filesystem, const char* preferred_path);
+ ZBackingPath(const char* filesystem, const char** preferred_mountpoints);
~ZBackingPath();
const char* get() const;
--- a/src/hotspot/os_cpu/linux_x86/gc/z/zPhysicalMemoryBacking_linux_x86.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/os_cpu/linux_x86/gc/z/zPhysicalMemoryBacking_linux_x86.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -52,8 +52,15 @@
_file(),
_granule_size(granule_size) {
- // Check and warn if max map count seems too low
+ if (!_file.is_initialized()) {
+ return;
+ }
+
+ // Check and warn if max map count is too low
check_max_map_count(max_capacity, granule_size);
+
+ // Check and warn if available space on filesystem is too low
+ check_available_space_on_filesystem(max_capacity);
}
void ZPhysicalMemoryBacking::check_max_map_count(size_t max_capacity, size_t granule_size) const {
@@ -61,7 +68,7 @@
FILE* const file = fopen(filename, "r");
if (file == NULL) {
// Failed to open file, skip check
- log_debug(gc)("Failed to open %s", filename);
+ log_debug(gc, init)("Failed to open %s", filename);
return;
}
@@ -70,7 +77,7 @@
fclose(file);
if (result != 1) {
// Failed to read file, skip check
- log_debug(gc)("Failed to read %s", filename);
+ log_debug(gc, init)("Failed to read %s", filename);
return;
}
@@ -81,15 +88,43 @@
// We speculate that we need another 20% to allow for non-ZGC subsystems to map memory.
const size_t required_max_map_count = (max_capacity / granule_size) * 3 * 1.2;
if (actual_max_map_count < required_max_map_count) {
- log_warning(gc)("The system limit on number of memory mappings "
- "per process might be too low for the given");
- log_warning(gc)("Java heap size (" SIZE_FORMAT "M). Please "
- "adjust %s to allow for at least", max_capacity / M, filename);
- log_warning(gc)(SIZE_FORMAT " mappings (current limit is " SIZE_FORMAT "). "
- "Continuing execution with the current limit could",
- required_max_map_count, actual_max_map_count);
- log_warning(gc)("lead to a fatal error down the line, due to failed "
- "attempts to map memory.");
+ log_warning(gc, init)("***** WARNING! INCORRECT SYSTEM CONFIGURATION DETECTED! *****");
+ log_warning(gc, init)("The system limit on number of memory mappings per process might be too low "
+ "for the given");
+ log_warning(gc, init)("max Java heap size (" SIZE_FORMAT "M). Please adjust %s to allow for at",
+ max_capacity / M, filename);
+ log_warning(gc, init)("least " SIZE_FORMAT " mappings (current limit is " SIZE_FORMAT "). Continuing "
+ "execution with the current", required_max_map_count, actual_max_map_count);
+ log_warning(gc, init)("limit could lead to a fatal error, due to failure to map memory.");
+ }
+}
+
+void ZPhysicalMemoryBacking::check_available_space_on_filesystem(size_t max_capacity) const {
+ // Note that the available space on a tmpfs or a hugetlbfs filesystem
+ // will be zero if no size limit was specified when it was mounted.
+ const size_t available = _file.available();
+ if (available == 0) {
+ // No size limit set, skip check
+ log_info(gc, init)("Available space on backing filesystem: N/A");
+ return;
+ }
+
+ log_info(gc, init)("Available space on backing filesystem: " SIZE_FORMAT "M",
+ available / M);
+
+ // Warn if the filesystem doesn't currently have enough space available to hold
+ // the max heap size. The max heap size will be capped if we later hit this limit
+ // when trying to expand the heap.
+ if (available < max_capacity) {
+ log_warning(gc, init)("***** WARNING! INCORRECT SYSTEM CONFIGURATION DETECTED! *****");
+ log_warning(gc, init)("Not enough space available on the backing filesystem to hold the current "
+ "max Java heap");
+ log_warning(gc, init)("size (" SIZE_FORMAT "M). Please adjust the size of the backing filesystem "
+ "accordingly (available", max_capacity / M);
+ log_warning(gc, init)("space is currently " SIZE_FORMAT "M). Continuing execution with the current "
+ "filesystem size could", available / M);
+ log_warning(gc, init)("lead to a premature OutOfMemoryError being thrown, due to failure to map "
+ "memory.");
}
}
@@ -97,18 +132,16 @@
return _file.is_initialized();
}
-bool ZPhysicalMemoryBacking::expand(size_t from, size_t to) {
- const size_t size = to - from;
+size_t ZPhysicalMemoryBacking::try_expand(size_t old_capacity, size_t new_capacity) {
+ assert(old_capacity < new_capacity, "Invalid old/new capacity");
- // Expand
- if (!_file.expand(from, size)) {
- return false;
+ const size_t capacity = _file.try_expand(old_capacity, new_capacity - old_capacity, _granule_size);
+ if (capacity > old_capacity) {
+ // Add expanded capacity to free list
+ _manager.free(old_capacity, capacity - old_capacity);
}
- // Add expanded space to free list
- _manager.free(from, size);
-
- return true;
+ return capacity;
}
ZPhysicalMemory ZPhysicalMemoryBacking::alloc(size_t size) {
--- a/src/hotspot/os_cpu/linux_x86/gc/z/zPhysicalMemoryBacking_linux_x86.hpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/os_cpu/linux_x86/gc/z/zPhysicalMemoryBacking_linux_x86.hpp Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -37,6 +37,7 @@
const size_t _granule_size;
void check_max_map_count(size_t max_capacity, size_t granule_size) const;
+ void check_available_space_on_filesystem(size_t max_capacity) const;
void map_failed(ZErrno err) const;
void advise_view(uintptr_t addr, size_t size) const;
@@ -49,7 +50,8 @@
bool is_initialized() const;
- bool expand(size_t from, size_t to);
+ size_t try_expand(size_t old_capacity, size_t new_capacity);
+
ZPhysicalMemory alloc(size_t size);
void free(ZPhysicalMemory pmem);
--- a/src/hotspot/share/aot/aotCompiledMethod.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/aot/aotCompiledMethod.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -272,6 +272,7 @@
if (md != _method) f(md);
}
} else if (iter.type() == relocInfo::virtual_call_type) {
+ ResourceMark rm;
// Check compiledIC holders associated with this nmethod
CompiledIC *ic = CompiledIC_at(&iter);
if (ic->is_icholder_call()) {
@@ -444,6 +445,7 @@
return;
}
+ ResourceMark rm;
RelocIterator iter(this);
while (iter.next()) {
iter.reloc()->clear_inline_cache();
--- a/src/hotspot/share/ci/ciEnv.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/ci/ciEnv.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -938,9 +938,9 @@
_inc_decompile_count_on_failure = false;
record_failure("call site target change");
} else if (Dependencies::is_klass_type(result)) {
- record_failure("invalid non-klass dependency");
+ record_failure("concurrent class loading");
} else {
- record_failure("concurrent class loading");
+ record_failure("invalid non-klass dependency");
}
}
}
--- a/src/hotspot/share/ci/ciStreams.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/ci/ciStreams.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -255,8 +255,7 @@
// constant.
constantTag ciBytecodeStream::get_constant_pool_tag(int index) const {
VM_ENTRY_MARK;
- BasicType bt = _method->get_Method()->constants()->basic_type_for_constant_at(index);
- return constantTag::ofBasicType(bt);
+ return _method->get_Method()->constants()->constant_tag_at(index);
}
// ------------------------------------------------------------------
--- a/src/hotspot/share/classfile/classLoader.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/classfile/classLoader.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -549,6 +549,7 @@
void ClassLoader::setup_bootstrap_search_path() {
const char* sys_class_path = Arguments::get_sysclasspath();
+ assert(sys_class_path != NULL, "System boot class path must not be NULL");
if (PrintSharedArchiveAndExit) {
// Don't print sys_class_path - this is the bootcp of this current VM process, not necessarily
// the same as the bootcp of the shared archive.
--- a/src/hotspot/share/code/compiledMethod.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/code/compiledMethod.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -325,6 +325,7 @@
// Clear ICStubs of all compiled ICs
void CompiledMethod::clear_ic_stubs() {
assert_locked_or_safepoint(CompiledIC_lock);
+ ResourceMark rm;
RelocIterator iter(this);
while(iter.next()) {
if (iter.type() == relocInfo::virtual_call_type) {
@@ -547,6 +548,7 @@
bool CompiledMethod::cleanup_inline_caches_impl(bool parallel, bool unloading_occurred, bool clean_all) {
assert_locked_or_safepoint(CompiledIC_lock);
bool postponed = false;
+ ResourceMark rm;
// Find all calls in an nmethod and clear the ones that point to non-entrant,
// zombie and unloaded nmethods.
--- a/src/hotspot/share/compiler/compileBroker.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/compiler/compileBroker.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -530,7 +530,6 @@
void CompileBroker::print_compile_queues(outputStream* st) {
st->print_cr("Current compiles: ");
- MutexLocker locker(MethodCompileQueue_lock);
char buf[2000];
int buflen = sizeof(buf);
@@ -546,7 +545,7 @@
}
void CompileQueue::print(outputStream* st) {
- assert(MethodCompileQueue_lock->owned_by_self(), "must own lock");
+ assert_locked_or_safepoint(MethodCompileQueue_lock);
st->print_cr("%s:", name());
CompileTask* task = _first;
if (task == NULL) {
--- a/src/hotspot/share/compiler/compilerDefinitions.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/compiler/compilerDefinitions.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -253,17 +253,18 @@
if (FLAG_IS_DEFAULT(OnStackReplacePercentage)) {
FLAG_SET_DEFAULT(OnStackReplacePercentage, 933);
}
+ // JVMCI needs values not less than defaults
if (FLAG_IS_DEFAULT(ReservedCodeCacheSize)) {
- FLAG_SET_DEFAULT(ReservedCodeCacheSize, 64*M);
+ FLAG_SET_DEFAULT(ReservedCodeCacheSize, MAX2(64*M, ReservedCodeCacheSize));
}
if (FLAG_IS_DEFAULT(InitialCodeCacheSize)) {
- FLAG_SET_DEFAULT(InitialCodeCacheSize, 16*M);
+ FLAG_SET_DEFAULT(InitialCodeCacheSize, MAX2(16*M, InitialCodeCacheSize));
}
if (FLAG_IS_DEFAULT(MetaspaceSize)) {
- FLAG_SET_DEFAULT(MetaspaceSize, 12*M);
+ FLAG_SET_DEFAULT(MetaspaceSize, MAX2(12*M, MetaspaceSize));
}
if (FLAG_IS_DEFAULT(NewSizeThreadIncrease)) {
- FLAG_SET_DEFAULT(NewSizeThreadIncrease, 4*K);
+ FLAG_SET_DEFAULT(NewSizeThreadIncrease, MAX2(4*K, NewSizeThreadIncrease));
}
if (TieredStopAtLevel != CompLevel_full_optimization) {
// Currently JVMCI compiler can only work at the full optimization level
--- a/src/hotspot/share/gc/g1/g1ConcurrentMark.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/gc/g1/g1ConcurrentMark.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -1024,11 +1024,17 @@
uint _num_regions_selected_for_rebuild; // The number of regions actually selected for rebuild.
- void update_remset_before_rebuild(HeapRegion * hr) {
+ void update_remset_before_rebuild(HeapRegion* hr) {
G1RemSetTrackingPolicy* tracking_policy = _g1h->g1_policy()->remset_tracker();
- size_t const live_bytes = _cm->liveness(hr->hrm_index()) * HeapWordSize;
- bool selected_for_rebuild = tracking_policy->update_before_rebuild(hr, live_bytes);
+ bool selected_for_rebuild;
+ if (hr->is_humongous()) {
+ bool const is_live = _cm->liveness(hr->humongous_start_region()->hrm_index()) > 0;
+ selected_for_rebuild = tracking_policy->update_humongous_before_rebuild(hr, is_live);
+ } else {
+ size_t const live_bytes = _cm->liveness(hr->hrm_index());
+ selected_for_rebuild = tracking_policy->update_before_rebuild(hr, live_bytes);
+ }
if (selected_for_rebuild) {
_num_regions_selected_for_rebuild++;
}
--- a/src/hotspot/share/gc/g1/g1RemSetTrackingPolicy.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/gc/g1/g1RemSetTrackingPolicy.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -29,10 +29,6 @@
#include "gc/g1/heapRegionRemSet.hpp"
#include "runtime/safepoint.hpp"
-bool G1RemSetTrackingPolicy::is_interesting_humongous_region(HeapRegion* r) const {
- return r->is_humongous() && oop(r->humongous_start_region()->bottom())->is_typeArray();
-}
-
bool G1RemSetTrackingPolicy::needs_scan_for_rebuild(HeapRegion* r) const {
// All non-free, non-young, non-closed archive regions need to be scanned for references;
// At every gc we gather references to other regions in young, and closed archive
@@ -64,51 +60,81 @@
/* nothing to do */
}
+static void print_before_rebuild(HeapRegion* r, bool selected_for_rebuild, size_t total_live_bytes, size_t live_bytes) {
+ log_trace(gc, remset, tracking)("Before rebuild region %u "
+ "(ntams: " PTR_FORMAT ") "
+ "total_live_bytes " SIZE_FORMAT " "
+ "selected %s "
+ "(live_bytes " SIZE_FORMAT " "
+ "next_marked " SIZE_FORMAT " "
+ "marked " SIZE_FORMAT " "
+ "type %s)",
+ r->hrm_index(),
+ p2i(r->next_top_at_mark_start()),
+ total_live_bytes,
+ BOOL_TO_STR(selected_for_rebuild),
+ live_bytes,
+ r->next_marked_bytes(),
+ r->marked_bytes(),
+ r->get_type_str());
+}
+
+bool G1RemSetTrackingPolicy::update_humongous_before_rebuild(HeapRegion* r, bool is_live) {
+ assert(SafepointSynchronize::is_at_safepoint(), "should be at safepoint");
+ assert(r->is_humongous(), "Region %u should be humongous", r->hrm_index());
+
+ if (r->is_archive()) {
+ return false;
+ }
+
+ assert(!r->rem_set()->is_updating(), "Remembered set of region %u is updating before rebuild", r->hrm_index());
+
+ bool selected_for_rebuild = false;
+ // For humongous regions, to be of interest for rebuilding the remembered set the following must apply:
+ // - We always try to update the remembered sets of humongous regions containing
+ // type arrays as they might have been reset after full gc.
+ if (is_live && oop(r->humongous_start_region()->bottom())->is_typeArray() && !r->rem_set()->is_tracked()) {
+ r->rem_set()->set_state_updating();
+ selected_for_rebuild = true;
+ }
+
+ size_t const live_bytes = is_live ? HeapRegion::GrainBytes : 0;
+ print_before_rebuild(r, selected_for_rebuild, live_bytes, live_bytes);
+
+ return selected_for_rebuild;
+}
+
bool G1RemSetTrackingPolicy::update_before_rebuild(HeapRegion* r, size_t live_bytes) {
assert(SafepointSynchronize::is_at_safepoint(), "should be at safepoint");
-
- bool selected_for_rebuild = false;
+ assert(!r->is_humongous(), "Region %u is humongous", r->hrm_index());
// Only consider updating the remembered set for old gen regions - excluding archive regions
// which never move (but are "Old" regions).
- if (r->is_old_or_humongous() && !r->is_archive()) {
- size_t between_ntams_and_top = (r->top() - r->next_top_at_mark_start()) * HeapWordSize;
- size_t total_live_bytes = live_bytes + between_ntams_and_top;
- // Completely free regions after rebuild are of no interest wrt rebuilding the
- // remembered set.
- assert(!r->rem_set()->is_updating(), "Remembered set of region %u is updating before rebuild", r->hrm_index());
- // To be of interest for rebuilding the remembered set the following must apply:
- // - They must contain some live data in them.
- // - We always try to update the remembered sets of humongous regions containing
- // type arrays if they are empty as they might have been reset after full gc.
- // - Only need to rebuild non-complete remembered sets.
- // - Otherwise only add those old gen regions which occupancy is low enough that there
- // is a chance that we will ever evacuate them in the mixed gcs.
- if ((total_live_bytes > 0) &&
- (is_interesting_humongous_region(r) || CollectionSetChooser::region_occupancy_low_enough_for_evac(total_live_bytes)) &&
- !r->rem_set()->is_tracked()) {
+ if (!r->is_old() || r->is_archive()) {
+ return false;
+ }
+
+ assert(!r->rem_set()->is_updating(), "Remembered set of region %u is updating before rebuild", r->hrm_index());
+
+ size_t between_ntams_and_top = (r->top() - r->next_top_at_mark_start()) * HeapWordSize;
+ size_t total_live_bytes = live_bytes + between_ntams_and_top;
- r->rem_set()->set_state_updating();
- selected_for_rebuild = true;
- }
- log_trace(gc, remset, tracking)("Before rebuild region %u "
- "(ntams: " PTR_FORMAT ") "
- "total_live_bytes " SIZE_FORMAT " "
- "selected %s "
- "(live_bytes " SIZE_FORMAT " "
- "next_marked " SIZE_FORMAT " "
- "marked " SIZE_FORMAT " "
- "type %s)",
- r->hrm_index(),
- p2i(r->next_top_at_mark_start()),
- total_live_bytes,
- BOOL_TO_STR(selected_for_rebuild),
- live_bytes,
- r->next_marked_bytes(),
- r->marked_bytes(),
- r->get_type_str());
+ bool selected_for_rebuild = false;
+ // For old regions, to be of interest for rebuilding the remembered set the following must apply:
+ // - They must contain some live data in them.
+ // - Only need to rebuild non-complete remembered sets.
+ // - Otherwise only add those old gen regions which occupancy is low enough that there
+ // is a chance that we will ever evacuate them in the mixed gcs.
+ if ((total_live_bytes > 0) &&
+ CollectionSetChooser::region_occupancy_low_enough_for_evac(total_live_bytes) &&
+ !r->rem_set()->is_tracked()) {
+
+ r->rem_set()->set_state_updating();
+ selected_for_rebuild = true;
}
+ print_before_rebuild(r, selected_for_rebuild, total_live_bytes, live_bytes);
+
return selected_for_rebuild;
}
@@ -149,4 +175,3 @@
r->rem_set()->mem_size());
}
}
-
--- a/src/hotspot/share/gc/g1/g1RemSetTrackingPolicy.hpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/gc/g1/g1RemSetTrackingPolicy.hpp Wed Jul 11 19:30:26 2018 -0400
@@ -33,10 +33,6 @@
// the remembered set, ie. when it should be tracked, and if/when the remembered
// set is complete.
class G1RemSetTrackingPolicy : public CHeapObj<mtGC> {
-private:
- // Is the given region an interesting humongous region to start remembered set tracking
- // for?
- bool is_interesting_humongous_region(HeapRegion* r) const;
public:
// Do we need to scan the given region to get all outgoing references for remembered
// set rebuild?
@@ -45,6 +41,9 @@
// called at any time. The caller makes sure that the changes to the remembered
// set state are visible to other threads.
void update_at_allocate(HeapRegion* r);
+ // Update remembered set tracking state for humongous regions before we are going to
+ // rebuild remembered sets. Called at safepoint in the remark pause.
+ bool update_humongous_before_rebuild(HeapRegion* r, bool is_live);
// Update remembered set tracking state before we are going to rebuild remembered
// sets. Called at safepoint in the remark pause.
bool update_before_rebuild(HeapRegion* r, size_t live_bytes);
--- a/src/hotspot/share/gc/shared/referenceProcessorPhaseTimes.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/gc/shared/referenceProcessorPhaseTimes.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -80,8 +80,7 @@
STATIC_ASSERT((REF_PHANTOM + 1) == ARRAY_SIZE(ReferenceTypeNames));
static const char* phase_enum_2_phase_string(ReferenceProcessor::RefProcPhases phase) {
- assert(phase >= ReferenceProcessor::RefPhase1 && phase <= ReferenceProcessor::RefPhaseMax,
- "Invalid reference processing phase (%d)", phase);
+ ASSERT_PHASE(phase);
return PhaseNames[phase];
}
--- a/src/hotspot/share/gc/shared/space.inline.hpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/gc/shared/space.inline.hpp Wed Jul 11 19:30:26 2018 -0400
@@ -25,6 +25,7 @@
#ifndef SHARE_VM_GC_SHARED_SPACE_INLINE_HPP
#define SHARE_VM_GC_SHARED_SPACE_INLINE_HPP
+#include "gc/shared/blockOffsetTable.inline.hpp"
#include "gc/shared/collectedHeap.hpp"
#include "gc/shared/generation.hpp"
#include "gc/shared/space.hpp"
--- a/src/hotspot/share/gc/z/zDirector.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/gc/z/zDirector.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -81,7 +81,7 @@
// Perform GC if heap usage passes 10/20/30% and no other GC has been
// performed yet. This allows us to get some early samples of the GC
// duration, which is needed by the other rules.
- const size_t max_capacity = ZHeap::heap()->max_capacity();
+ const size_t max_capacity = ZHeap::heap()->current_max_capacity();
const size_t used = ZHeap::heap()->used();
const double used_threshold_percent = (ZStatCycle::ncycles() + 1) * 0.1;
const size_t used_threshold = max_capacity * used_threshold_percent;
@@ -107,7 +107,7 @@
// Calculate amount of free memory available to Java threads. Note that
// the heap reserve is not available to Java threads and is therefore not
// considered part of the free memory.
- const size_t max_capacity = ZHeap::heap()->max_capacity();
+ const size_t max_capacity = ZHeap::heap()->current_max_capacity();
const size_t max_reserve = ZHeap::heap()->max_reserve();
const size_t used = ZHeap::heap()->used();
const size_t free_with_reserve = max_capacity - used;
@@ -155,7 +155,7 @@
// passed since the previous GC. This helps avoid superfluous GCs when running
// applications with very low allocation rate.
const size_t used_after_last_gc = ZStatHeap::used_at_relocate_end();
- const size_t used_increase_threshold = ZHeap::heap()->max_capacity() * 0.10; // 10%
+ const size_t used_increase_threshold = ZHeap::heap()->current_max_capacity() * 0.10; // 10%
const size_t used_threshold = used_after_last_gc + used_increase_threshold;
const size_t used = ZHeap::heap()->used();
const double time_since_last_gc = ZStatCycle::time_since_last();
--- a/src/hotspot/share/gc/z/zHash.inline.hpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/gc/z/zHash.inline.hpp Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -21,6 +21,38 @@
* questions.
*/
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file:
+ *
+ * (C) 2009 by Remo Dentato (rdentato@gmail.com)
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * http://opensource.org/licenses/bsd-license.php
+ */
+
#ifndef SHARE_GC_Z_ZHASH_INLINE_HPP
#define SHARE_GC_Z_ZHASH_INLINE_HPP
--- a/src/hotspot/share/gc/z/zHeap.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/gc/z/zHeap.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -107,6 +107,10 @@
return _page_allocator.max_capacity();
}
+size_t ZHeap::current_max_capacity() const {
+ return _page_allocator.current_max_capacity();
+}
+
size_t ZHeap::capacity() const {
return _page_allocator.capacity();
}
--- a/src/hotspot/share/gc/z/zHeap.hpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/gc/z/zHeap.hpp Wed Jul 11 19:30:26 2018 -0400
@@ -79,6 +79,7 @@
// Heap metrics
size_t min_capacity() const;
size_t max_capacity() const;
+ size_t current_max_capacity() const;
size_t capacity() const;
size_t max_reserve() const;
size_t used_high() const;
--- a/src/hotspot/share/gc/z/zPageAllocator.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/gc/z/zPageAllocator.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -84,11 +84,12 @@
ZPage* const ZPageAllocator::gc_marker = (ZPage*)-1;
ZPageAllocator::ZPageAllocator(size_t min_capacity, size_t max_capacity, size_t max_reserve) :
+ _lock(),
_virtual(),
_physical(max_capacity, ZPageSizeMin),
_cache(),
- _pre_mapped(_virtual, _physical, min_capacity),
_max_reserve(max_reserve),
+ _pre_mapped(_virtual, _physical, try_ensure_unused_for_pre_mapped(min_capacity)),
_used_high(0),
_used_low(0),
_used(0),
@@ -107,6 +108,10 @@
return _physical.max_capacity();
}
+size_t ZPageAllocator::current_max_capacity() const {
+ return _physical.current_max_capacity();
+}
+
size_t ZPageAllocator::capacity() const {
return _physical.capacity();
}
@@ -169,18 +174,43 @@
}
}
-size_t ZPageAllocator::available(ZAllocationFlags flags) const {
- size_t available = max_capacity() - used();
- assert(_physical.available() + _pre_mapped.available() + _cache.available() == available, "Should be equal");
+size_t ZPageAllocator::max_available(bool no_reserve) const {
+ size_t available = current_max_capacity() - used();
- if (flags.no_reserve()) {
- // The memory reserve should not be considered free
+ if (no_reserve) {
+ // The reserve should not be considered available
available -= MIN2(available, max_reserve());
}
return available;
}
+size_t ZPageAllocator::try_ensure_unused(size_t size, bool no_reserve) {
+ // Ensure that we always have space available for the reserve. This
+ // is needed to avoid losing the reserve because of failure to map
+ // more memory before reaching max capacity.
+ _physical.try_ensure_unused_capacity(size + max_reserve());
+
+ size_t unused = _physical.unused_capacity();
+
+ if (no_reserve) {
+ // The reserve should not be considered unused
+ unused -= MIN2(unused, max_reserve());
+ }
+
+ return MIN2(size, unused);
+}
+
+size_t ZPageAllocator::try_ensure_unused_for_pre_mapped(size_t size) {
+ // This function is called during construction, where the
+ // physical memory manager might have failed to initialied.
+ if (!_physical.is_initialized()) {
+ return 0;
+ }
+
+ return try_ensure_unused(size, true /* no_reserve */);
+}
+
ZPage* ZPageAllocator::create_page(uint8_t type, size_t size) {
// Allocate physical memory
const ZPhysicalMemory pmem = _physical.alloc(size);
@@ -259,8 +289,8 @@
}
ZPage* ZPageAllocator::alloc_page_common_inner(uint8_t type, size_t size, ZAllocationFlags flags) {
- const size_t available_total = available(flags);
- if (available_total < size) {
+ const size_t max = max_available(flags.no_reserve());
+ if (max < size) {
// Not enough free memory
return NULL;
}
@@ -281,11 +311,11 @@
// subsequent allocations can use the physical memory.
flush_pre_mapped();
- // Check if physical memory is available
- const size_t available_physical = _physical.available();
- if (available_physical < size) {
+ // Try ensure that physical memory is available
+ const size_t unused = try_ensure_unused(size, flags.no_reserve());
+ if (unused < size) {
// Flush cache to free up more physical memory
- flush_cache(size - available_physical);
+ flush_cache(size - unused);
}
// Create new page and allocate physical memory
@@ -303,7 +333,7 @@
increase_used(size, flags.relocation());
// Send trace event
- ZTracer::tracer()->report_page_alloc(size, used(), available(flags), _cache.available(), flags);
+ ZTracer::tracer()->report_page_alloc(size, used(), max_available(flags.no_reserve()), _cache.available(), flags);
return page;
}
--- a/src/hotspot/share/gc/z/zPageAllocator.hpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/gc/z/zPageAllocator.hpp Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -43,8 +43,8 @@
ZVirtualMemoryManager _virtual;
ZPhysicalMemoryManager _physical;
ZPageCache _cache;
+ const size_t _max_reserve;
ZPreMappedMemory _pre_mapped;
- const size_t _max_reserve;
size_t _used_high;
size_t _used_low;
size_t _used;
@@ -58,7 +58,9 @@
void increase_used(size_t size, bool relocation);
void decrease_used(size_t size, bool reclaimed);
- size_t available(ZAllocationFlags flags) const;
+ size_t max_available(bool no_reserve) const;
+ size_t try_ensure_unused(size_t size, bool no_reserve);
+ size_t try_ensure_unused_for_pre_mapped(size_t size);
ZPage* create_page(uint8_t type, size_t size);
void map_page(ZPage* page);
@@ -83,6 +85,7 @@
bool is_initialized() const;
size_t max_capacity() const;
+ size_t current_max_capacity() const;
size_t capacity() const;
size_t max_reserve() const;
size_t used_high() const;
--- a/src/hotspot/share/gc/z/zPhysicalMemory.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/gc/z/zPhysicalMemory.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -27,6 +27,7 @@
#include "memory/allocation.inline.hpp"
#include "services/memTracker.hpp"
#include "utilities/debug.hpp"
+#include "utilities/globalDefinitions.hpp"
ZPhysicalMemory::ZPhysicalMemory() :
_nsegments(0),
@@ -93,6 +94,7 @@
ZPhysicalMemoryManager::ZPhysicalMemoryManager(size_t max_capacity, size_t granule_size) :
_backing(max_capacity, granule_size),
_max_capacity(max_capacity),
+ _current_max_capacity(max_capacity),
_capacity(0),
_used(0) {}
@@ -100,31 +102,34 @@
return _backing.is_initialized();
}
-bool ZPhysicalMemoryManager::ensure_available(size_t size) {
- const size_t unused_capacity = _capacity - _used;
- if (unused_capacity >= size) {
- // Enough unused capacity available
- return true;
+void ZPhysicalMemoryManager::try_ensure_unused_capacity(size_t size) {
+ const size_t unused = unused_capacity();
+ if (unused >= size) {
+ // Don't try to expand, enough unused capacity available
+ return;
+ }
+
+ const size_t current_max = current_max_capacity();
+ if (_capacity == current_max) {
+ // Don't try to expand, current max capacity reached
+ return;
}
- const size_t expand_with = size - unused_capacity;
- const size_t new_capacity = _capacity + expand_with;
- if (new_capacity > _max_capacity) {
- // Can not expand beyond max capacity
- return false;
- }
+ // Try to expand
+ const size_t old_capacity = capacity();
+ const size_t new_capacity = MIN2(old_capacity + size - unused, current_max);
+ _capacity = _backing.try_expand(old_capacity, new_capacity);
- // Expand
- if (!_backing.expand(_capacity, new_capacity)) {
- log_error(gc)("Failed to expand Java heap with " SIZE_FORMAT "%s",
- byte_size_in_proper_unit(expand_with),
- proper_unit_for_byte_size(expand_with));
- return false;
+ if (_capacity != new_capacity) {
+ // Failed, or partly failed, to expand
+ log_error(gc, init)("Not enough space available on the backing filesystem to hold the current max");
+ log_error(gc, init)("Java heap size (" SIZE_FORMAT "M). Forcefully lowering max Java heap size to "
+ SIZE_FORMAT "M (%.0lf%%).", current_max / M, _capacity / M,
+ percent_of(_capacity, current_max));
+
+ // Adjust current max capacity to avoid further expand attempts
+ _current_max_capacity = _capacity;
}
-
- _capacity = new_capacity;
-
- return true;
}
void ZPhysicalMemoryManager::nmt_commit(ZPhysicalMemory pmem, uintptr_t offset) {
@@ -144,7 +149,7 @@
}
ZPhysicalMemory ZPhysicalMemoryManager::alloc(size_t size) {
- if (!ensure_available(size)) {
+ if (unused_capacity() < size) {
// Not enough memory available
return ZPhysicalMemory();
}
--- a/src/hotspot/share/gc/z/zPhysicalMemory.hpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/gc/z/zPhysicalMemory.hpp Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -70,11 +70,10 @@
private:
ZPhysicalMemoryBacking _backing;
const size_t _max_capacity;
+ size_t _current_max_capacity;
size_t _capacity;
size_t _used;
- bool ensure_available(size_t size);
-
void nmt_commit(ZPhysicalMemory pmem, uintptr_t offset);
void nmt_uncommit(ZPhysicalMemory pmem, uintptr_t offset);
@@ -84,9 +83,11 @@
bool is_initialized() const;
size_t max_capacity() const;
+ size_t current_max_capacity() const;
size_t capacity() const;
- size_t used() const;
- size_t available() const;
+ size_t unused_capacity() const;
+
+ void try_ensure_unused_capacity(size_t size);
ZPhysicalMemory alloc(size_t size);
void free(ZPhysicalMemory pmem);
--- a/src/hotspot/share/gc/z/zPhysicalMemory.inline.hpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/gc/z/zPhysicalMemory.inline.hpp Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -71,16 +71,16 @@
return _max_capacity;
}
+inline size_t ZPhysicalMemoryManager::current_max_capacity() const {
+ return _current_max_capacity;
+}
+
inline size_t ZPhysicalMemoryManager::capacity() const {
return _capacity;
}
-inline size_t ZPhysicalMemoryManager::used() const {
- return _used;
-}
-
-inline size_t ZPhysicalMemoryManager::available() const {
- return _max_capacity - _used;
+inline size_t ZPhysicalMemoryManager::unused_capacity() const {
+ return _capacity - _used;
}
#endif // SHARE_GC_Z_ZPHYSICALMEMORY_INLINE_HPP
--- a/src/hotspot/share/gc/z/zPreMappedMemory.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/gc/z/zPreMappedMemory.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -42,22 +42,26 @@
log_info(gc, init)("Pre-touching: %s", AlwaysPreTouch ? "Enabled" : "Disabled");
log_info(gc, init)("Pre-mapping: " SIZE_FORMAT "M", size / M);
- _pmem = pmm.alloc(size);
- if (_pmem.is_null()) {
- // Out of memory
- return;
- }
+ if (size > 0) {
+ _pmem = pmm.alloc(size);
+ if (_pmem.is_null()) {
+ // Out of memory
+ log_error(gc, init)("Failed to pre-map Java heap (Cannot allocate physical memory)");
+ return;
+ }
- _vmem = vmm.alloc(size, true /* alloc_from_front */);
- if (_vmem.is_null()) {
- // Out of address space
- pmm.free(_pmem);
- return;
+ _vmem = vmm.alloc(size, true /* alloc_from_front */);
+ if (_vmem.is_null()) {
+ // Out of address space
+ log_error(gc, init)("Failed to pre-map Java heap (Cannot allocate virtual memory)");
+ pmm.free(_pmem);
+ return;
+ }
+
+ // Map physical memory
+ pmm.map(_pmem, _vmem.start());
}
- // Map physical memory
- pmm.map(_pmem, _vmem.start());
-
_initialized = true;
}
--- a/src/hotspot/share/jfr/jfr.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/jfr/jfr.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -26,10 +26,10 @@
#include "jfr/jfr.hpp"
#include "jfr/leakprofiler/leakProfiler.hpp"
#include "jfr/periodic/sampling/jfrThreadSampler.hpp"
-#include "jfr/recorder/service/jfrOptionSet.hpp"
#include "jfr/recorder/jfrRecorder.hpp"
#include "jfr/recorder/checkpoint/jfrCheckpointManager.hpp"
#include "jfr/recorder/repository/jfrEmergencyDump.hpp"
+#include "jfr/recorder/service/jfrOptionSet.hpp"
#include "jfr/support/jfrThreadLocal.hpp"
#include "runtime/java.hpp"
@@ -64,9 +64,7 @@
}
void Jfr::on_thread_exit(JavaThread* thread) {
- if (JfrRecorder::is_recording()) {
- JfrThreadLocal::on_exit(thread);
- }
+ JfrThreadLocal::on_exit(thread);
}
void Jfr::on_thread_destruct(Thread* thread) {
--- a/src/hotspot/share/jfr/leakprofiler/utilities/saveRestore.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/jfr/leakprofiler/utilities/saveRestore.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -74,7 +74,6 @@
CLDClaimContext::~CLDClaimContext() {
if (_cld != NULL) {
- assert(!_cld->claimed(), "invariant");
_cld->claim();
assert(_cld->claimed(), "invariant");
}
--- a/src/hotspot/share/jfr/recorder/checkpoint/types/jfrType.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/jfr/recorder/checkpoint/types/jfrType.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -60,22 +60,32 @@
#include "gc/g1/g1YCTypes.hpp"
#endif
-class JfrCheckpointThreadCountClosure : public ThreadClosure {
-private:
- u4 _total_threads;
-public:
- JfrCheckpointThreadCountClosure() : _total_threads(0) {}
- u4 total_threads() { return _total_threads; }
- void do_thread(Thread *t) { _total_threads++; }
-};
-
// Requires a ResourceMark for get_thread_name/as_utf8
class JfrCheckpointThreadClosure : public ThreadClosure {
private:
JfrCheckpointWriter& _writer;
- Thread* _curthread;
+ JfrCheckpointContext _ctx;
+ const intptr_t _count_position;
+ Thread* const _curthread;
+ u4 _count;
+
public:
- JfrCheckpointThreadClosure(JfrCheckpointWriter& writer) : _writer(writer), _curthread(Thread::current()) {}
+ JfrCheckpointThreadClosure(JfrCheckpointWriter& writer) : _writer(writer),
+ _ctx(writer.context()),
+ _count_position(writer.reserve(sizeof(u4))),
+ _curthread(Thread::current()),
+ _count(0) {
+ }
+
+ ~JfrCheckpointThreadClosure() {
+ if (_count == 0) {
+ // restore
+ _writer.set_context(_ctx);
+ return;
+ }
+ _writer.write_count(_count, _count_position);
+ }
+
void do_thread(Thread* t);
};
@@ -83,10 +93,16 @@
void JfrCheckpointThreadClosure::do_thread(Thread* t) {
assert(t != NULL, "invariant");
assert_locked_or_safepoint(Threads_lock);
- _writer.write_key(t->jfr_thread_local()->thread_id());
+ const JfrThreadLocal* const tl = t->jfr_thread_local();
+ assert(tl != NULL, "invariant");
+ if (tl->is_dead()) {
+ return;
+ }
+ ++_count;
+ _writer.write_key(tl->thread_id());
_writer.write(t->name());
const OSThread* const os_thread = t->osthread();
- _writer.write<traceid>(os_thread != NULL ? os_thread->thread_id() : (u8)0);
+ _writer.write<traceid>(os_thread != NULL ? os_thread->thread_id() : 0);
if (t->is_Java_thread()) {
JavaThread* const jt = (JavaThread*)t;
_writer.write(jt->name());
@@ -97,17 +113,12 @@
return;
}
_writer.write((const char*)NULL); // java name
- _writer.write<traceid>((traceid)0); // java thread id
- _writer.write<traceid>((traceid)0); // java thread group
+ _writer.write((traceid)0); // java thread id
+ _writer.write((traceid)0); // java thread group
}
void JfrThreadConstantSet::serialize(JfrCheckpointWriter& writer) {
assert(SafepointSynchronize::is_at_safepoint(), "invariant");
- JfrCheckpointThreadCountClosure tcc;
- Threads::threads_do(&tcc);
- const u4 total_threads = tcc.total_threads();
- // THREADS
- writer.write_count(total_threads);
JfrCheckpointThreadClosure tc(writer);
Threads::threads_do(&tc);
}
@@ -334,7 +345,7 @@
writer.write_count(1);
writer.write_key(_thread->jfr_thread_local()->thread_id());
writer.write(thread_name);
- writer.write((u8)_thread->osthread()->thread_id());
+ writer.write((traceid)_thread->osthread()->thread_id());
writer.write(thread_name);
writer.write(java_lang_thread_id);
writer.write(thread_group_id);
--- a/src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeManager.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeManager.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -148,9 +148,8 @@
}
void JfrTypeManager::write_type_set() {
- assert(!SafepointSynchronize::is_at_safepoint(), "invariant");
// can safepoint here because of Module_lock
- MutexLockerEx lock(Module_lock);
+ MutexLockerEx lock(SafepointSynchronize::is_at_safepoint() ? NULL : Module_lock);
JfrCheckpointWriter writer(true, true, Thread::current());
TypeSet set;
set.serialize(writer);
--- a/src/hotspot/share/jfr/support/jfrThreadLocal.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/jfr/support/jfrThreadLocal.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -23,8 +23,9 @@
*/
#include "precompiled.hpp"
+#include "jfr/jni/jfrJavaSupport.hpp"
#include "jfr/periodic/jfrThreadCPULoadEvent.hpp"
-#include "jfr/jni/jfrJavaSupport.hpp"
+#include "jfr/recorder/jfrRecorder.hpp"
#include "jfr/recorder/checkpoint/jfrCheckpointManager.hpp"
#include "jfr/recorder/checkpoint/types/traceid/jfrTraceId.inline.hpp"
#include "jfr/recorder/service/jfrOptionSet.hpp"
@@ -51,7 +52,8 @@
_wallclock_time(os::javaTimeNanos()),
_stack_trace_hash(0),
_stackdepth(0),
- _entering_suspend_flag(0) {}
+ _entering_suspend_flag(0),
+ _dead(false) {}
u8 JfrThreadLocal::add_data_lost(u8 value) {
_data_lost += value;
@@ -71,9 +73,17 @@
return _thread_cp;
}
+void JfrThreadLocal::set_dead() {
+ assert(!is_dead(), "invariant");
+ _dead = true;
+}
+
void JfrThreadLocal::on_exit(JavaThread* thread) {
- JfrCheckpointManager::write_thread_checkpoint(thread);
- JfrThreadCPULoadEvent::send_event_for_thread(thread);
+ if (JfrRecorder::is_recording()) {
+ JfrCheckpointManager::write_thread_checkpoint(thread);
+ JfrThreadCPULoadEvent::send_event_for_thread(thread);
+ }
+ thread->jfr_thread_local()->set_dead();
}
void JfrThreadLocal::on_destruct(Thread* thread) {
--- a/src/hotspot/share/jfr/support/jfrThreadLocal.hpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/jfr/support/jfrThreadLocal.hpp Wed Jul 11 19:30:26 2018 -0400
@@ -50,11 +50,14 @@
unsigned int _stack_trace_hash;
mutable u4 _stackdepth;
volatile jint _entering_suspend_flag;
+ bool _dead;
JfrBuffer* install_native_buffer() const;
JfrBuffer* install_java_buffer() const;
JfrStackFrame* install_stackframes() const;
+ void set_dead();
+
public:
JfrThreadLocal();
@@ -202,6 +205,10 @@
_trace_id = id;
}
+ bool is_dead() const {
+ return _dead;
+ }
+
bool has_thread_checkpoint() const;
void set_thread_checkpoint(const JfrCheckpointBlobHandle& handle);
const JfrCheckpointBlobHandle& thread_checkpoint() const;
--- a/src/hotspot/share/oops/constantPool.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/oops/constantPool.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -807,6 +807,17 @@
}
}
+constantTag ConstantPool::constant_tag_at(int which) {
+ constantTag tag = tag_at(which);
+ if (tag.is_dynamic_constant() ||
+ tag.is_dynamic_constant_in_error()) {
+ // have to look at the signature for this one
+ Symbol* constant_type = uncached_signature_ref_at(which);
+ return constantTag::ofBasicType(FieldType::basic_type(constant_type));
+ }
+ return tag;
+}
+
BasicType ConstantPool::basic_type_for_constant_at(int which) {
constantTag tag = tag_at(which);
if (tag.is_dynamic_constant() ||
--- a/src/hotspot/share/oops/constantPool.hpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/oops/constantPool.hpp Wed Jul 11 19:30:26 2018 -0400
@@ -719,6 +719,9 @@
enum { _no_index_sentinel = -1, _possible_index_sentinel = -2 };
public:
+ // Get the tag for a constant, which may involve a constant dynamic
+ constantTag constant_tag_at(int which);
+ // Get the basic type for a constant, which may involve a constant dynamic
BasicType basic_type_for_constant_at(int which);
// Resolve late bound constants.
--- a/src/hotspot/share/opto/loopTransform.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/opto/loopTransform.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -861,7 +861,9 @@
// Check for being too big
if (body_size > (uint)_local_loop_unroll_limit) {
- if ((UseSubwordForMaxVector || xors_in_loop >= 4) && body_size < (uint)LoopUnrollLimit * 4) return true;
+ if ((cl->is_subword_loop() || xors_in_loop >= 4) && body_size < (uint)LoopUnrollLimit * 4) {
+ return true;
+ }
// Normal case: loop too big
return false;
}
--- a/src/hotspot/share/opto/loopnode.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/opto/loopnode.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -616,6 +616,11 @@
}
IfNode* check_iff = limit_check_proj->in(0)->as_If();
+
+ if (!is_dominator(get_ctrl(limit), check_iff->in(0))) {
+ return false;
+ }
+
Node* cmp_limit;
Node* bol;
--- a/src/hotspot/share/opto/loopnode.hpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/opto/loopnode.hpp Wed Jul 11 19:30:26 2018 -0400
@@ -75,7 +75,8 @@
HasRangeChecks=8192,
IsMultiversioned=16384,
StripMined=32768,
- ProfileTripFailed=65536};
+ SubwordLoop=65536,
+ ProfileTripFailed=131072};
char _unswitch_count;
enum { _unswitch_max=3 };
char _postloop_flags;
@@ -99,6 +100,7 @@
bool partial_peel_has_failed() const { return _loop_flags & PartialPeelFailed; }
bool is_strip_mined() const { return _loop_flags & StripMined; }
bool is_profile_trip_failed() const { return _loop_flags & ProfileTripFailed; }
+ bool is_subword_loop() const { return _loop_flags & SubwordLoop; }
void mark_partial_peel_failed() { _loop_flags |= PartialPeelFailed; }
void mark_has_reductions() { _loop_flags |= HasReductions; }
@@ -112,6 +114,7 @@
void mark_strip_mined() { _loop_flags |= StripMined; }
void clear_strip_mined() { _loop_flags &= ~StripMined; }
void mark_profile_trip_failed() { _loop_flags |= ProfileTripFailed; }
+ void mark_subword_loop() { _loop_flags |= SubwordLoop; }
int unswitch_max() { return _unswitch_max; }
int unswitch_count() { return _unswitch_count; }
--- a/src/hotspot/share/opto/superword.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/opto/superword.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -376,6 +376,7 @@
if (same_type) {
max_vector = cur_max_vector;
flag_small_bt = true;
+ cl->mark_subword_loop();
}
}
}
--- a/src/hotspot/share/runtime/arguments.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/runtime/arguments.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -535,9 +535,6 @@
{ "IgnoreUnverifiableClassesDuringDump", JDK_Version::jdk(10), JDK_Version::undefined(), JDK_Version::undefined() },
{ "CompilerThreadHintNoPreempt", JDK_Version::jdk(11), JDK_Version::jdk(12), JDK_Version::jdk(13) },
{ "VMThreadHintNoPreempt", JDK_Version::jdk(11), JDK_Version::jdk(12), JDK_Version::jdk(13) },
- { "PrintSafepointStatistics", JDK_Version::jdk(11), JDK_Version::jdk(12), JDK_Version::jdk(13) },
- { "PrintSafepointStatisticsTimeout", JDK_Version::jdk(11), JDK_Version::jdk(12), JDK_Version::jdk(13) },
- { "PrintSafepointStatisticsCount",JDK_Version::jdk(11), JDK_Version::jdk(12), JDK_Version::jdk(13) },
{ "AggressiveOpts", JDK_Version::jdk(11), JDK_Version::jdk(12), JDK_Version::jdk(13) },
// --- Deprecated alias flags (see also aliased_jvm_flags) - sorted by obsolete_in then expired_in:
@@ -573,6 +570,9 @@
{ "NativeMonitorFlags", JDK_Version::undefined(), JDK_Version::jdk(11), JDK_Version::jdk(12) },
{ "UnlinkSymbolsALot", JDK_Version::jdk(11), JDK_Version::jdk(12), JDK_Version::jdk(13) },
{ "AllowNonVirtualCalls", JDK_Version::jdk(11), JDK_Version::jdk(12), JDK_Version::jdk(13) },
+ { "PrintSafepointStatistics", JDK_Version::jdk(11), JDK_Version::jdk(12), JDK_Version::jdk(13) },
+ { "PrintSafepointStatisticsTimeout",JDK_Version::jdk(11), JDK_Version::jdk(12), JDK_Version::jdk(13) },
+ { "PrintSafepointStatisticsCount", JDK_Version::jdk(11), JDK_Version::jdk(12), JDK_Version::jdk(13) },
#ifdef TEST_VERIFY_SPECIAL_JVM_FLAGS
{ "dep > obs", JDK_Version::jdk(9), JDK_Version::jdk(8), JDK_Version::undefined() },
--- a/src/hotspot/share/runtime/globals.hpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/runtime/globals.hpp Wed Jul 11 19:30:26 2018 -0400
@@ -1177,20 +1177,6 @@
"null (+offset) will not raise a SIGSEGV, i.e.," \
"ImplicitNullChecks don't work (PPC64).") \
\
- product(bool, PrintSafepointStatistics, false, \
- "(Deprecated) Print statistics about safepoint synchronization") \
- \
- product(intx, PrintSafepointStatisticsCount, 300, \
- "(Deprecated) Total number of safepoint statistics collected " \
- "before printing them out") \
- range(1, max_intx) \
- \
- product(intx, PrintSafepointStatisticsTimeout, -1, \
- "(Deprecated) Print safepoint statistics only when safepoint takes " \
- "more than PrintSafepointSatisticsTimeout in millis") \
- LP64_ONLY(range(-1, max_intx/MICROUNITS)) \
- NOT_LP64(range(-1, max_intx)) \
- \
diagnostic(bool, EnableThreadSMRExtraValidityChecks, true, \
"Enable Thread SMR extra validity checks") \
\
--- a/src/hotspot/share/runtime/init.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/runtime/init.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -28,6 +28,8 @@
#include "code/icBuffer.hpp"
#include "gc/shared/collectedHeap.hpp"
#include "interpreter/bytecodes.hpp"
+#include "logging/log.hpp"
+#include "logging/logTag.hpp"
#include "memory/universe.hpp"
#include "prims/methodHandles.hpp"
#include "runtime/flags/jvmFlag.hpp"
@@ -165,7 +167,7 @@
if (!destructorsCalled) {
destructorsCalled = true;
perfMemory_exit();
- if (PrintSafepointStatistics) {
+ if (log_is_enabled(Debug, safepoint, stats)) {
// Print the collected safepoint statistics.
SafepointSynchronize::print_stat_on_exit();
}
--- a/src/hotspot/share/runtime/safepoint.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/runtime/safepoint.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -150,15 +150,23 @@
static volatile int TryingToBlock = 0 ; // proximate value -- for advisory use only
static bool timeout_error_printed = false;
+
+// Statistic related statics
+julong SafepointSynchronize::_coalesced_vmop_count = 0;
+static jlong _safepoint_begin_time = 0;
+static float _ts_of_current_safepoint = 0.0f;
+static volatile int _nof_threads_hit_polling_page = 0;
+
// Roll all threads forward to a safepoint and suspend them all
void SafepointSynchronize::begin() {
EventSafepointBegin begin_event;
Thread* myThread = Thread::current();
assert(myThread->is_VM_thread(), "Only VM thread may execute a safepoint");
- if (PrintSafepointStatistics || PrintSafepointStatisticsTimeout > 0) {
+ if (log_is_enabled(Debug, safepoint, stats)) {
_safepoint_begin_time = os::javaTimeNanos();
_ts_of_current_safepoint = tty->time_stamp().seconds();
+ _nof_threads_hit_polling_page = 0;
}
Universe::heap()->safepoint_synchronize_begin();
@@ -190,14 +198,6 @@
jlong safepoint_limit_time = 0;
timeout_error_printed = false;
- // PrintSafepointStatisticsTimeout can be specified separately. When
- // specified, PrintSafepointStatistics will be set to true in
- // deferred_initialize_stat method. The initialization has to be done
- // early enough to avoid any races. See bug 6880029 for details.
- if (PrintSafepointStatistics || PrintSafepointStatisticsTimeout > 0) {
- deferred_initialize_stat();
- }
-
// Begin the process of bringing the system to a safepoint.
// Java threads can be in several different states and are
// stopped by different mechanisms:
@@ -312,7 +312,7 @@
if (iterations == 0) {
initial_running = still_running;
- if (PrintSafepointStatistics) {
+ if (log_is_enabled(Debug, safepoint, stats)) {
begin_statistics(nof_threads, still_running);
}
}
@@ -403,7 +403,7 @@
} // ThreadsListHandle destroyed here.
assert(still_running == 0, "sanity check");
- if (PrintSafepointStatistics) {
+ if (log_is_enabled(Debug, safepoint, stats)) {
update_statistics_on_spin_end();
}
if (sync_event.should_commit()) {
@@ -436,7 +436,7 @@
if (SafepointTimeout) {
jlong current_time = os::javaTimeNanos();
if (safepoint_limit_time < current_time) {
- tty->print_cr("# SafepointSynchronize: Finished after "
+ log_warning(safepoint)("# SafepointSynchronize: Finished after "
INT64_FORMAT_W(6) " ms",
(int64_t)((current_time - safepoint_limit_time) / MICROUNITS +
(jlong)SafepointTimeoutDelay));
@@ -470,7 +470,7 @@
log_info(safepoint)("Entering safepoint region: %s", VMThread::vm_safepoint_description());
RuntimeService::record_safepoint_synchronized();
- if (PrintSafepointStatistics) {
+ if (log_is_enabled(Debug, safepoint, stats)) {
update_statistics_on_sync_end(os::javaTimeNanos());
}
@@ -483,7 +483,7 @@
}
}
- if (PrintSafepointStatistics) {
+ if (log_is_enabled(Debug, safepoint, stats)) {
// Record how much time spend on the above cleanup tasks
update_statistics_on_cleanup_end(os::javaTimeNanos());
}
@@ -506,7 +506,7 @@
DEBUG_ONLY(Thread* myThread = Thread::current();)
assert(myThread->is_VM_thread(), "Only VM thread can execute a safepoint");
- if (PrintSafepointStatistics) {
+ if (log_is_enabled(Debug, safepoint, stats)) {
end_statistics(os::javaTimeNanos());
}
@@ -952,8 +952,8 @@
assert(SafepointSynchronize::is_synchronizing(), "polling encountered outside safepoint synchronization");
}
- if (PrintSafepointStatistics) {
- inc_page_trap_count();
+ if (log_is_enabled(Debug, safepoint, stats)) {
+ Atomic::inc(&_nof_threads_hit_polling_page);
}
ThreadSafepointState* state = thread->safepoint_state();
@@ -967,29 +967,34 @@
timeout_error_printed = true;
// Print out the thread info which didn't reach the safepoint for debugging
// purposes (useful when there are lots of threads in the debugger).
- tty->cr();
- tty->print_cr("# SafepointSynchronize::begin: Timeout detected:");
- if (reason == _spinning_timeout) {
- tty->print_cr("# SafepointSynchronize::begin: Timed out while spinning to reach a safepoint.");
- } else if (reason == _blocking_timeout) {
- tty->print_cr("# SafepointSynchronize::begin: Timed out while waiting for threads to stop.");
- }
+ LogTarget(Warning, safepoint) lt;
+ if (lt.is_enabled()) {
+ ResourceMark rm;
+ LogStream ls(lt);
+
+ ls.cr();
+ ls.print_cr("# SafepointSynchronize::begin: Timeout detected:");
+ if (reason == _spinning_timeout) {
+ ls.print_cr("# SafepointSynchronize::begin: Timed out while spinning to reach a safepoint.");
+ } else if (reason == _blocking_timeout) {
+ ls.print_cr("# SafepointSynchronize::begin: Timed out while waiting for threads to stop.");
+ }
- tty->print_cr("# SafepointSynchronize::begin: Threads which did not reach the safepoint:");
- ThreadSafepointState *cur_state;
- ResourceMark rm;
- for (JavaThreadIteratorWithHandle jtiwh; JavaThread *cur_thread = jtiwh.next(); ) {
- cur_state = cur_thread->safepoint_state();
+ ls.print_cr("# SafepointSynchronize::begin: Threads which did not reach the safepoint:");
+ ThreadSafepointState *cur_state;
+ for (JavaThreadIteratorWithHandle jtiwh; JavaThread *cur_thread = jtiwh.next(); ) {
+ cur_state = cur_thread->safepoint_state();
- if (cur_thread->thread_state() != _thread_blocked &&
- ((reason == _spinning_timeout && cur_state->is_running()) ||
- (reason == _blocking_timeout && !cur_state->has_called_back()))) {
- tty->print("# ");
- cur_thread->print();
- tty->cr();
+ if (cur_thread->thread_state() != _thread_blocked &&
+ ((reason == _spinning_timeout && cur_state->is_running()) ||
+ (reason == _blocking_timeout && !cur_state->has_called_back()))) {
+ ls.print("# ");
+ cur_thread->print_on(&ls);
+ ls.cr();
+ }
}
+ ls.print_cr("# SafepointSynchronize::begin: (End of list)");
}
- tty->print_cr("# SafepointSynchronize::begin: (End of list)");
}
// To debug the long safepoint, specify both DieOnSafepointTimeout &
@@ -1239,67 +1244,42 @@
//
// Statistics & Instrumentations
//
-SafepointSynchronize::SafepointStats* SafepointSynchronize::_safepoint_stats = NULL;
-jlong SafepointSynchronize::_safepoint_begin_time = 0;
-int SafepointSynchronize::_cur_stat_index = 0;
-julong SafepointSynchronize::_safepoint_reasons[VM_Operation::VMOp_Terminating];
-julong SafepointSynchronize::_coalesced_vmop_count = 0;
-jlong SafepointSynchronize::_max_sync_time = 0;
-jlong SafepointSynchronize::_max_vmop_time = 0;
-float SafepointSynchronize::_ts_of_current_safepoint = 0.0f;
+struct SafepointStats {
+ float _time_stamp; // record when the current safepoint occurs in seconds
+ int _vmop_type; // tyep of VM operation triggers the safepoint
+ int _nof_total_threads; // total number of Java threads
+ int _nof_initial_running_threads; // total number of initially seen running threads
+ int _nof_threads_wait_to_block; // total number of threads waiting for to block
+ bool _page_armed; // true if polling page is armed, false otherwise
+ int _nof_threads_hit_page_trap; // total number of threads hitting the page trap
+ jlong _time_to_spin; // total time in millis spent in spinning
+ jlong _time_to_wait_to_block; // total time in millis spent in waiting for to block
+ jlong _time_to_do_cleanups; // total time in millis spent in performing cleanups
+ jlong _time_to_sync; // total time in millis spent in getting to _synchronized
+ jlong _time_to_exec_vmop; // total time in millis spent in vm operation itself
+};
+
+static const int _statistics_header_count = 30;
+static int _cur_stat_index = 0;
+static SafepointStats safepoint_stats = {0}; // zero initialize
+static SafepointStats* spstat = &safepoint_stats;
+
+static julong _safepoint_reasons[VM_Operation::VMOp_Terminating];
+static jlong _max_sync_time = 0;
+static jlong _max_vmop_time = 0;
static jlong cleanup_end_time = 0;
-static bool init_done = false;
-
-// Helper method to print the header.
-static void print_header() {
- // The number of spaces is significant here, and should match the format
- // specifiers in print_statistics().
-
- tty->print(" vmop "
- "[ threads: total initially_running wait_to_block ]"
- "[ time: spin block sync cleanup vmop ] ");
-
- tty->print_cr("page_trap_count");
-}
-
-void SafepointSynchronize::deferred_initialize_stat() {
- if (init_done) return;
-
- // If PrintSafepointStatisticsTimeout is specified, the statistics data will
- // be printed right away, in which case, _safepoint_stats will regress to
- // a single element array. Otherwise, it is a circular ring buffer with default
- // size of PrintSafepointStatisticsCount.
- int stats_array_size;
- if (PrintSafepointStatisticsTimeout > 0) {
- stats_array_size = 1;
- PrintSafepointStatistics = true;
- } else {
- stats_array_size = PrintSafepointStatisticsCount;
- }
- _safepoint_stats = (SafepointStats*)os::malloc(stats_array_size
- * sizeof(SafepointStats), mtInternal);
- guarantee(_safepoint_stats != NULL,
- "not enough memory for safepoint instrumentation data");
-
- init_done = true;
-}
void SafepointSynchronize::begin_statistics(int nof_threads, int nof_running) {
- assert(init_done, "safepoint statistics array hasn't been initialized");
- SafepointStats *spstat = &_safepoint_stats[_cur_stat_index];
spstat->_time_stamp = _ts_of_current_safepoint;
VM_Operation *op = VMThread::vm_operation();
- spstat->_vmop_type = (op != NULL ? op->type() : -1);
- if (op != NULL) {
- _safepoint_reasons[spstat->_vmop_type]++;
- }
+ spstat->_vmop_type = op != NULL ? op->type() : VM_Operation::VMOp_None;
+ _safepoint_reasons[spstat->_vmop_type]++;
spstat->_nof_total_threads = nof_threads;
spstat->_nof_initial_running_threads = nof_running;
- spstat->_nof_threads_hit_page_trap = 0;
// Records the start time of spinning. The real time spent on spinning
// will be adjusted when spin is done. Same trick is applied for time
@@ -1312,8 +1292,6 @@
}
void SafepointSynchronize::update_statistics_on_spin_end() {
- SafepointStats *spstat = &_safepoint_stats[_cur_stat_index];
-
jlong cur_time = os::javaTimeNanos();
spstat->_nof_threads_wait_to_block = _waiting_to_block;
@@ -1330,7 +1308,6 @@
}
void SafepointSynchronize::update_statistics_on_sync_end(jlong end_time) {
- SafepointStats *spstat = &_safepoint_stats[_cur_stat_index];
if (spstat->_nof_threads_wait_to_block != 0) {
spstat->_time_to_wait_to_block = end_time -
@@ -1349,106 +1326,90 @@
}
void SafepointSynchronize::update_statistics_on_cleanup_end(jlong end_time) {
- SafepointStats *spstat = &_safepoint_stats[_cur_stat_index];
// Record how long spent in cleanup tasks.
spstat->_time_to_do_cleanups = end_time - spstat->_time_to_do_cleanups;
-
cleanup_end_time = end_time;
}
void SafepointSynchronize::end_statistics(jlong vmop_end_time) {
- SafepointStats *spstat = &_safepoint_stats[_cur_stat_index];
// Update the vm operation time.
spstat->_time_to_exec_vmop = vmop_end_time - cleanup_end_time;
if (spstat->_time_to_exec_vmop > _max_vmop_time) {
_max_vmop_time = spstat->_time_to_exec_vmop;
}
- // Only the sync time longer than the specified
- // PrintSafepointStatisticsTimeout will be printed out right away.
- // By default, it is -1 meaning all samples will be put into the list.
- if ( PrintSafepointStatisticsTimeout > 0) {
- if (spstat->_time_to_sync > (jlong)PrintSafepointStatisticsTimeout * MICROUNITS) {
- print_statistics();
- }
- } else {
- // The safepoint statistics will be printed out when the _safepoin_stats
- // array fills up.
- if (_cur_stat_index == PrintSafepointStatisticsCount - 1) {
- print_statistics();
- _cur_stat_index = 0;
- } else {
- _cur_stat_index++;
- }
- }
+
+ spstat->_nof_threads_hit_page_trap = _nof_threads_hit_polling_page;
+
+ print_statistics();
+}
+
+// Helper method to print the header.
+static void print_header(outputStream* st) {
+ // The number of spaces is significant here, and should match the format
+ // specifiers in print_statistics().
+
+ st->print(" vmop "
+ "[ threads: total initially_running wait_to_block ]"
+ "[ time: spin block sync cleanup vmop ] ");
+
+ st->print_cr("page_trap_count");
}
+// This prints a nice table. To get the statistics to not shift due to the logging uptime
+// decorator, use the option as: -Xlog:safepoint+stats=debug:[outputfile]:none
void SafepointSynchronize::print_statistics() {
- for (int index = 0; index <= _cur_stat_index; index++) {
- if (index % 30 == 0) {
- print_header();
- }
- SafepointStats* sstats = &_safepoint_stats[index];
- tty->print("%8.3f: ", sstats->_time_stamp);
- tty->print("%-30s [ "
- INT32_FORMAT_W(8) " " INT32_FORMAT_W(17) " " INT32_FORMAT_W(13) " "
- "]",
- (sstats->_vmop_type == -1 ? "no vm operation" : VM_Operation::name(sstats->_vmop_type)),
- sstats->_nof_total_threads,
- sstats->_nof_initial_running_threads,
- sstats->_nof_threads_wait_to_block);
- // "/ MICROUNITS " is to convert the unit from nanos to millis.
- tty->print("[ "
- INT64_FORMAT_W(7) " " INT64_FORMAT_W(7) " "
- INT64_FORMAT_W(7) " " INT64_FORMAT_W(7) " "
- INT64_FORMAT_W(7) " ] ",
- (int64_t)(sstats->_time_to_spin / MICROUNITS),
- (int64_t)(sstats->_time_to_wait_to_block / MICROUNITS),
- (int64_t)(sstats->_time_to_sync / MICROUNITS),
- (int64_t)(sstats->_time_to_do_cleanups / MICROUNITS),
- (int64_t)(sstats->_time_to_exec_vmop / MICROUNITS));
+ LogTarget(Debug, safepoint, stats) lt;
+ assert (lt.is_enabled(), "should only be called when printing statistics is enabled");
+ LogStream ls(lt);
+
+ // Print header every 30 entries
+ if ((_cur_stat_index % _statistics_header_count) == 0) {
+ print_header(&ls);
+ _cur_stat_index = 1; // wrap
+ } else {
+ _cur_stat_index++;
+ }
- tty->print_cr(INT32_FORMAT_W(15) " ", sstats->_nof_threads_hit_page_trap);
- }
+ ls.print("%8.3f: ", spstat->_time_stamp);
+ ls.print("%-28s [ "
+ INT32_FORMAT_W(8) " " INT32_FORMAT_W(17) " " INT32_FORMAT_W(13) " "
+ "]",
+ VM_Operation::name(spstat->_vmop_type),
+ spstat->_nof_total_threads,
+ spstat->_nof_initial_running_threads,
+ spstat->_nof_threads_wait_to_block);
+ // "/ MICROUNITS " is to convert the unit from nanos to millis.
+ ls.print("[ "
+ INT64_FORMAT_W(7) " " INT64_FORMAT_W(7) " "
+ INT64_FORMAT_W(7) " " INT64_FORMAT_W(7) " "
+ INT64_FORMAT_W(7) " ] ",
+ (int64_t)(spstat->_time_to_spin / MICROUNITS),
+ (int64_t)(spstat->_time_to_wait_to_block / MICROUNITS),
+ (int64_t)(spstat->_time_to_sync / MICROUNITS),
+ (int64_t)(spstat->_time_to_do_cleanups / MICROUNITS),
+ (int64_t)(spstat->_time_to_exec_vmop / MICROUNITS));
+
+ ls.print_cr(INT32_FORMAT_W(15) " ", spstat->_nof_threads_hit_page_trap);
}
-// This method will be called when VM exits. It will first call
-// print_statistics to print out the rest of the sampling. Then
-// it tries to summarize the sampling.
+// This method will be called when VM exits. This tries to summarize the sampling.
+// Current thread may already be deleted, so don't use ResourceMark.
void SafepointSynchronize::print_stat_on_exit() {
- if (_safepoint_stats == NULL) return;
-
- SafepointStats *spstat = &_safepoint_stats[_cur_stat_index];
-
- // During VM exit, end_statistics may not get called and in that
- // case, if the sync time is less than PrintSafepointStatisticsTimeout,
- // don't print it out.
- // Approximate the vm op time.
- _safepoint_stats[_cur_stat_index]._time_to_exec_vmop =
- os::javaTimeNanos() - cleanup_end_time;
-
- if ( PrintSafepointStatisticsTimeout < 0 ||
- spstat->_time_to_sync > (jlong)PrintSafepointStatisticsTimeout * MICROUNITS) {
- print_statistics();
- }
- tty->cr();
-
- // Print out polling page sampling status.
- tty->print_cr("Polling page always armed");
for (int index = 0; index < VM_Operation::VMOp_Terminating; index++) {
if (_safepoint_reasons[index] != 0) {
- tty->print_cr("%-26s" UINT64_FORMAT_W(10), VM_Operation::name(index),
- _safepoint_reasons[index]);
+ log_debug(safepoint, stats)("%-28s" UINT64_FORMAT_W(10), VM_Operation::name(index),
+ _safepoint_reasons[index]);
}
}
- tty->print_cr(UINT64_FORMAT_W(5) " VM operations coalesced during safepoint",
- _coalesced_vmop_count);
- tty->print_cr("Maximum sync time " INT64_FORMAT_W(5) " ms",
- (int64_t)(_max_sync_time / MICROUNITS));
- tty->print_cr("Maximum vm operation time (except for Exit VM operation) "
- INT64_FORMAT_W(5) " ms",
- (int64_t)(_max_vmop_time / MICROUNITS));
+ log_debug(safepoint, stats)("VM operations coalesced during safepoint " INT64_FORMAT,
+ _coalesced_vmop_count);
+ log_debug(safepoint, stats)("Maximum sync time " INT64_FORMAT" ms",
+ (int64_t)(_max_sync_time / MICROUNITS));
+ log_debug(safepoint, stats)("Maximum vm operation time (except for Exit VM operation) "
+ INT64_FORMAT " ms",
+ (int64_t)(_max_vmop_time / MICROUNITS));
}
--- a/src/hotspot/share/runtime/safepoint.hpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/runtime/safepoint.hpp Wed Jul 11 19:30:26 2018 -0400
@@ -89,20 +89,6 @@
SAFEPOINT_CLEANUP_NUM_TASKS
};
- typedef struct {
- float _time_stamp; // record when the current safepoint occurs in seconds
- int _vmop_type; // type of VM operation triggers the safepoint
- int _nof_total_threads; // total number of Java threads
- int _nof_initial_running_threads; // total number of initially seen running threads
- int _nof_threads_wait_to_block; // total number of threads waiting for to block
- int _nof_threads_hit_page_trap; // total number of threads hitting the page trap
- jlong _time_to_spin; // total time in millis spent in spinning
- jlong _time_to_wait_to_block; // total time in millis spent in waiting for to block
- jlong _time_to_do_cleanups; // total time in millis spent in performing cleanups
- jlong _time_to_sync; // total time in millis spent in getting to _synchronized
- jlong _time_to_exec_vmop; // total time in millis spent in vm operation itself
- } SafepointStats;
-
private:
static volatile SynchronizeState _state; // Threads might read this flag directly, without acquiring the Threads_lock
static volatile int _waiting_to_block; // number of threads we are waiting for to block
@@ -118,27 +104,16 @@
public:
static volatile int _safepoint_counter;
private:
- static long _end_of_last_safepoint; // Time of last safepoint in milliseconds
+ static long _end_of_last_safepoint; // Time of last safepoint in milliseconds
+ static julong _coalesced_vmop_count; // coalesced vmop count
// Statistics
- static jlong _safepoint_begin_time; // time when safepoint begins
- static SafepointStats* _safepoint_stats; // array of SafepointStats struct
- static int _cur_stat_index; // current index to the above array
- static julong _safepoint_reasons[]; // safepoint count for each VM op
- static julong _coalesced_vmop_count; // coalesced vmop count
- static jlong _max_sync_time; // maximum sync time in nanos
- static jlong _max_vmop_time; // maximum vm operation time in nanos
- static float _ts_of_current_safepoint; // time stamp of current safepoint in seconds
-
static void begin_statistics(int nof_threads, int nof_running);
static void update_statistics_on_spin_end();
static void update_statistics_on_sync_end(jlong end_time);
static void update_statistics_on_cleanup_end(jlong end_time);
static void end_statistics(jlong end_time);
static void print_statistics();
- inline static void inc_page_trap_count() {
- Atomic::inc(&_safepoint_stats[_cur_stat_index]._nof_threads_hit_page_trap);
- }
// For debug long safepoint
static void print_safepoint_timeout(SafepointTimeoutReason timeout_reason);
@@ -192,7 +167,6 @@
static bool is_cleanup_needed();
static void do_cleanup_tasks();
- static void deferred_initialize_stat();
static void print_stat_on_exit();
inline static void inc_vmop_coalesced_count() { _coalesced_vmop_count++; }
--- a/src/hotspot/share/runtime/thread.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/runtime/thread.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -963,7 +963,7 @@
// The flag: potential_vm_operation notifies if this particular safepoint state could potentially
// invoke the vm-thread (e.g., an oop allocation). In that case, we also have to make sure that
-// no threads which allow_vm_block's are held
+// no locks which allow_vm_block's are held
void Thread::check_for_valid_safepoint_state(bool potential_vm_operation) {
// Check if current thread is allowed to block at a safepoint
if (!(_allow_safepoint_count == 0)) {
--- a/src/hotspot/share/runtime/vmThread.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/runtime/vmThread.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -47,8 +47,8 @@
#include "utilities/xmlstream.hpp"
// Dummy VM operation to act as first element in our circular double-linked list
-class VM_Dummy: public VM_Operation {
- VMOp_Type type() const { return VMOp_Dummy; }
+class VM_None: public VM_Operation {
+ VMOp_Type type() const { return VMOp_None; }
void doit() {};
};
@@ -58,7 +58,7 @@
for(int i = 0; i < nof_priorities; i++) {
_queue_length[i] = 0;
_queue_counter = 0;
- _queue[i] = new VM_Dummy();
+ _queue[i] = new VM_None();
_queue[i]->set_next(_queue[i]);
_queue[i]->set_prev(_queue[i]);
}
@@ -511,7 +511,7 @@
_vm_queue->set_drain_list(next);
evaluate_operation(_cur_vm_operation);
_cur_vm_operation = next;
- if (PrintSafepointStatistics) {
+ if (log_is_enabled(Debug, safepoint, stats)) {
SafepointSynchronize::inc_vmop_coalesced_count();
}
} while (_cur_vm_operation != NULL);
--- a/src/hotspot/share/runtime/vm_operations.hpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/runtime/vm_operations.hpp Wed Jul 11 19:30:26 2018 -0400
@@ -40,7 +40,7 @@
// Note: When new VM_XXX comes up, add 'XXX' to the template table.
#define VM_OPS_DO(template) \
- template(Dummy) \
+ template(None) \
template(ThreadStop) \
template(ThreadDump) \
template(PrintThreads) \
--- a/src/hotspot/share/services/mallocSiteTable.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/services/mallocSiteTable.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -28,34 +28,10 @@
#include "runtime/atomic.hpp"
#include "services/mallocSiteTable.hpp"
-/*
- * Early os::malloc() calls come from initializations of static variables, long before entering any
- * VM code. Upon the arrival of the first os::malloc() call, malloc site hashtable has to be
- * initialized, along with the allocation site for the hashtable entries.
- * To ensure that malloc site hashtable can be initialized without triggering any additional os::malloc()
- * call, the hashtable bucket array and hashtable entry allocation site have to be static.
- * It is not a problem for hashtable bucket, since it is an array of pointer type, C runtime just
- * allocates a block memory and zero the memory for it.
- * But for hashtable entry allocation site object, things get tricky. C runtime not only allocates
- * memory for it, but also calls its constructor at some later time. If we initialize the allocation site
- * at the first os::malloc() call, the object will be reinitialized when its constructor is called
- * by C runtime.
- * To workaround above issue, we declare a static size_t array with the size of the CallsiteHashtableEntry,
- * the memory is used to instantiate CallsiteHashtableEntry for the hashtable entry allocation site.
- * Given it is a primitive type array, C runtime will do nothing other than assign the memory block for the variable,
- * which is exactly what we want.
- * The same trick is also applied to create NativeCallStack object for CallsiteHashtableEntry memory allocation.
- *
- * Note: C++ object usually aligns to particular alignment, depends on compiler implementation, we declare
- * the memory as size_t arrays, to ensure the memory is aligned to native machine word alignment.
- */
-
-// Reserve enough memory for NativeCallStack and MallocSiteHashtableEntry objects
-size_t MallocSiteTable::_hash_entry_allocation_stack[CALC_OBJ_SIZE_IN_TYPE(NativeCallStack, size_t)];
-size_t MallocSiteTable::_hash_entry_allocation_site[CALC_OBJ_SIZE_IN_TYPE(MallocSiteHashtableEntry, size_t)];
-
// Malloc site hashtable buckets
MallocSiteHashtableEntry* MallocSiteTable::_table[MallocSiteTable::table_size];
+const NativeCallStack* MallocSiteTable::_hash_entry_allocation_stack = NULL;
+const MallocSiteHashtableEntry* MallocSiteTable::_hash_entry_allocation_site = NULL;
// concurrent access counter
volatile int MallocSiteTable::_access_count = 0;
@@ -73,9 +49,6 @@
* time, it is in single-threaded mode from JVM perspective.
*/
bool MallocSiteTable::initialize() {
- assert(sizeof(_hash_entry_allocation_stack) >= sizeof(NativeCallStack), "Sanity Check");
- assert(sizeof(_hash_entry_allocation_site) >= sizeof(MallocSiteHashtableEntry),
- "Sanity Check");
assert((size_t)table_size <= MAX_MALLOCSITE_TABLE_SIZE, "Hashtable overflow");
// Fake the call stack for hashtable entry allocation
@@ -84,24 +57,32 @@
// Create pseudo call stack for hashtable entry allocation
address pc[3];
if (NMT_TrackingStackDepth >= 3) {
- pc[2] = (address)MallocSiteTable::allocation_at;
+ uintx *fp = (uintx*)MallocSiteTable::allocation_at;
+ // On ppc64, 'fp' is a pointer to a function descriptor which is a struct of
+ // three native pointers where the first pointer is the real function address.
+ // See: http://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi-1.9.html#FUNC-DES
+ pc[2] = (address)(fp PPC64_ONLY(BIG_ENDIAN_ONLY([0])));
}
if (NMT_TrackingStackDepth >= 2) {
- pc[1] = (address)MallocSiteTable::lookup_or_add;
+ uintx *fp = (uintx*)MallocSiteTable::lookup_or_add;
+ pc[1] = (address)(fp PPC64_ONLY(BIG_ENDIAN_ONLY([0])));
}
- pc[0] = (address)MallocSiteTable::new_entry;
+ uintx *fp = (uintx*)MallocSiteTable::new_entry;
+ pc[0] = (address)(fp PPC64_ONLY(BIG_ENDIAN_ONLY([0])));
- // Instantiate NativeCallStack object, have to use placement new operator. (see comments above)
- NativeCallStack* stack = ::new ((void*)_hash_entry_allocation_stack)
- NativeCallStack(pc, MIN2(((int)(sizeof(pc) / sizeof(address))), ((int)NMT_TrackingStackDepth)));
+ static const NativeCallStack stack(pc, MIN2(((int)(sizeof(pc) / sizeof(address))), ((int)NMT_TrackingStackDepth)));
+ static const MallocSiteHashtableEntry entry(stack, mtNMT);
- // Instantiate hash entry for hashtable entry allocation callsite
- MallocSiteHashtableEntry* entry = ::new ((void*)_hash_entry_allocation_site)
- MallocSiteHashtableEntry(*stack, mtNMT);
+ assert(_hash_entry_allocation_stack == NULL &&
+ _hash_entry_allocation_site == NULL,
+ "Already initailized");
+
+ _hash_entry_allocation_stack = &stack;
+ _hash_entry_allocation_site = &entry;
// Add the allocation site to hashtable.
- int index = hash_to_index(stack->hash());
- _table[index] = entry;
+ int index = hash_to_index(stack.hash());
+ _table[index] = const_cast<MallocSiteHashtableEntry*>(&entry);
return true;
}
@@ -204,6 +185,9 @@
_table[index] = NULL;
delete_linked_list(head);
}
+
+ _hash_entry_allocation_stack = NULL;
+ _hash_entry_allocation_site = NULL;
}
void MallocSiteTable::delete_linked_list(MallocSiteHashtableEntry* head) {
@@ -211,7 +195,7 @@
while (head != NULL) {
p = head;
head = (MallocSiteHashtableEntry*)head->next();
- if (p != (MallocSiteHashtableEntry*)_hash_entry_allocation_site) {
+ if (p != hash_entry_allocation_site()) {
delete p;
}
}
--- a/src/hotspot/share/services/mallocSiteTable.hpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/services/mallocSiteTable.hpp Wed Jul 11 19:30:26 2018 -0400
@@ -247,7 +247,13 @@
}
static inline const NativeCallStack* hash_entry_allocation_stack() {
- return (NativeCallStack*)_hash_entry_allocation_stack;
+ assert(_hash_entry_allocation_stack != NULL, "Must be set");
+ return _hash_entry_allocation_stack;
+ }
+
+ static inline const MallocSiteHashtableEntry* hash_entry_allocation_site() {
+ assert(_hash_entry_allocation_site != NULL, "Must be set");
+ return _hash_entry_allocation_site;
}
private:
@@ -256,15 +262,11 @@
// The callsite hashtable. It has to be a static table,
// since malloc call can come from C runtime linker.
- static MallocSiteHashtableEntry* _table[table_size];
+ static MallocSiteHashtableEntry* _table[table_size];
+ static const NativeCallStack* _hash_entry_allocation_stack;
+ static const MallocSiteHashtableEntry* _hash_entry_allocation_site;
- // Reserve enough memory for placing the objects
-
- // The memory for hashtable entry allocation stack object
- static size_t _hash_entry_allocation_stack[CALC_OBJ_SIZE_IN_TYPE(NativeCallStack, size_t)];
- // The memory for hashtable entry allocation callsite object
- static size_t _hash_entry_allocation_site[CALC_OBJ_SIZE_IN_TYPE(MallocSiteHashtableEntry, size_t)];
NOT_PRODUCT(static int _peak_count;)
};
--- a/src/hotspot/share/services/memTracker.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/services/memTracker.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -68,10 +68,6 @@
os::unsetenv(buf);
}
- // Construct NativeCallStack::EMPTY_STACK. It may get constructed twice,
- // but it is benign, the results are the same.
- ::new ((void*)&NativeCallStack::EMPTY_STACK) NativeCallStack(0, false);
-
if (!MallocTracker::initialize(level) ||
!VirtualMemoryTracker::initialize(level)) {
level = NMT_off;
--- a/src/hotspot/share/utilities/concurrentHashTable.inline.hpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/utilities/concurrentHashTable.inline.hpp Wed Jul 11 19:30:26 2018 -0400
@@ -263,8 +263,11 @@
Prefetch::read(*pref->value(), 0);
pref = pref->next();
}
- if (next->next() != NULL) {
- Prefetch::read(*next->next()->value(), 0);
+ // Read next() Node* once. May be racing with a thread moving the next
+ // pointers.
+ Node* next_pref = next->next();
+ if (next_pref != NULL) {
+ Prefetch::read(*next_pref->value(), 0);
}
if (eval_f(next->value())) {
return true;
@@ -546,8 +549,9 @@
lookup_f.equals(rem_n->value(), &is_dead);
if (is_dead) {
ndel[dels++] = rem_n;
- bucket->release_assign_node_ptr(rem_n_prev, rem_n->next());
- rem_n = rem_n->next();
+ Node* next_node = rem_n->next();
+ bucket->release_assign_node_ptr(rem_n_prev, next_node);
+ rem_n = next_node;
if (dels == BULK_DELETE_LIMIT) {
break;
}
@@ -654,32 +658,33 @@
while (aux != NULL) {
bool dead_hash = false;
size_t aux_hash = CONFIG::get_hash(*aux->value(), &dead_hash);
+ Node* aux_next = aux->next();
if (dead_hash) {
delete_me = aux;
// This item is dead, move both list to next
new_table->get_bucket(odd_index)->release_assign_node_ptr(odd,
- aux->next());
+ aux_next);
new_table->get_bucket(even_index)->release_assign_node_ptr(even,
- aux->next());
+ aux_next);
} else {
size_t aux_index = bucket_idx_hash(new_table, aux_hash);
if (aux_index == even_index) {
// This is a even, so move odd to aux/even next
new_table->get_bucket(odd_index)->release_assign_node_ptr(odd,
- aux->next());
+ aux_next);
// Keep in even list
even = aux->next_ptr();
} else if (aux_index == odd_index) {
// This is a odd, so move odd to aux/odd next
new_table->get_bucket(even_index)->release_assign_node_ptr(even,
- aux->next());
+ aux_next);
// Keep in odd list
odd = aux->next_ptr();
} else {
fatal("aux_index does not match even or odd indices");
}
}
- aux = aux->next();
+ aux = aux_next;
// We can only move 1 pointer otherwise a reader might be moved to the wrong
// chain. E.g. looking for even hash value but got moved to the odd bucket
@@ -976,8 +981,9 @@
while (rem_n != NULL) {
if (eval_f(rem_n->value())) {
ndel[dels++] = rem_n;
- bucket->release_assign_node_ptr(rem_n_prev, rem_n->next());
- rem_n = rem_n->next();
+ Node* next_node = rem_n->next();
+ bucket->release_assign_node_ptr(rem_n_prev, next_node);
+ rem_n = next_node;
if (dels == num_del) {
break;
}
--- a/src/hotspot/share/utilities/macros.hpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/utilities/macros.hpp Wed Jul 11 19:30:26 2018 -0400
@@ -569,6 +569,14 @@
#define NOT_AARCH64(code) code
#endif
+#ifdef VM_LITTLE_ENDIAN
+#define LITTLE_ENDIAN_ONLY(code) code
+#define BIG_ENDIAN_ONLY(code)
+#else
+#define LITTLE_ENDIAN_ONLY(code)
+#define BIG_ENDIAN_ONLY(code) code
+#endif
+
#define define_pd_global(type, name, value) const type pd_##name = value;
// Helper macros for constructing file names for includes.
--- a/src/hotspot/share/utilities/nativeCallStack.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/utilities/nativeCallStack.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -28,8 +28,6 @@
#include "utilities/globalDefinitions.hpp"
#include "utilities/nativeCallStack.hpp"
-NativeCallStack NativeCallStack::EMPTY_STACK(0, false);
-
NativeCallStack::NativeCallStack(int toSkip, bool fillStack) :
_hash_value(0) {
--- a/src/hotspot/share/utilities/nativeCallStack.hpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/hotspot/share/utilities/nativeCallStack.hpp Wed Jul 11 19:30:26 2018 -0400
@@ -54,18 +54,16 @@
class MemTracker;
class NativeCallStack : public StackObj {
- friend class MemTracker;
-
private:
address _stack[NMT_TrackingStackDepth];
unsigned int _hash_value;
- static NativeCallStack EMPTY_STACK;
public:
NativeCallStack(int toSkip = 0, bool fillStack = false);
NativeCallStack(address* pc, int frameCount);
static inline const NativeCallStack& empty_stack() {
+ static const NativeCallStack EMPTY_STACK(0, false);
return EMPTY_STACK;
}
--- a/src/java.base/linux/classes/jdk/internal/platform/cgroupv1/SubSystem.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.base/linux/classes/jdk/internal/platform/cgroupv1/SubSystem.java Wed Jul 11 19:30:26 2018 -0400
@@ -27,6 +27,7 @@
import java.io.BufferedReader;
import java.io.IOException;
+import java.math.BigInteger;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
@@ -100,11 +101,20 @@
public static long getLongValue(SubSystem subsystem, String parm) {
String strval = getStringValue(subsystem, parm);
+ long retval = 0;
if (strval == null) return 0L;
- long retval = Long.parseLong(strval);
-
+ try {
+ retval = Long.parseLong(strval);
+ } catch (NumberFormatException e) {
+ // For some properties (e.g. memory.limit_in_bytes) we may overflow the range of signed long.
+ // In this case, return Long.max
+ BigInteger b = new BigInteger(strval);
+ if (b.compareTo(BigInteger.valueOf(Long.MAX_VALUE)) > 0) {
+ return Long.MAX_VALUE;
+ }
+ }
return retval;
}
--- a/src/java.base/share/classes/java/io/FileSystem.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.base/share/classes/java/io/FileSystem.java Wed Jul 11 19:30:26 2018 -0400
@@ -231,8 +231,8 @@
// Flags for enabling/disabling performance optimizations for file
// name canonicalization
- static boolean useCanonCaches = true;
- static boolean useCanonPrefixCache = true;
+ static boolean useCanonCaches;
+ static boolean useCanonPrefixCache;
private static boolean getBooleanProperty(String prop, boolean defaultVal) {
return Boolean.parseBoolean(System.getProperty(prop,
--- a/src/java.base/share/classes/java/util/ArrayDeque.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.base/share/classes/java/util/ArrayDeque.java Wed Jul 11 19:30:26 2018 -0400
@@ -180,7 +180,7 @@
* sufficient to hold 16 elements.
*/
public ArrayDeque() {
- elements = new Object[16];
+ elements = new Object[16 + 1];
}
/**
--- a/src/java.base/share/classes/java/util/HashMap.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.base/share/classes/java/util/HashMap.java Wed Jul 11 19:30:26 2018 -0400
@@ -1263,9 +1263,7 @@
@Override
public V merge(K key, V value,
BiFunction<? super V, ? super V, ? extends V> remappingFunction) {
- if (value == null)
- throw new NullPointerException();
- if (remappingFunction == null)
+ if (value == null || remappingFunction == null)
throw new NullPointerException();
int hash = hash(key);
Node<K,V>[] tab; Node<K,V> first; int n, i;
@@ -1308,8 +1306,7 @@
else
removeNode(hash, key, null, false, true);
return v;
- }
- if (value != null) {
+ } else {
if (t != null)
t.putTreeVal(this, tab, hash, key, value);
else {
@@ -1320,8 +1317,8 @@
++modCount;
++size;
afterNodeInsertion(true);
+ return value;
}
- return value;
}
@Override
--- a/src/java.base/share/classes/java/util/zip/ZipOutputStream.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.base/share/classes/java/util/zip/ZipOutputStream.java Wed Jul 11 19:30:26 2018 -0400
@@ -582,7 +582,9 @@
uctime > UPPER_UNIXTIME_BOUND) {
elen += 36; // NTFS time total 36 bytes
} else {
- elen += 9; // headid(2) + sz(2) + flag(1) + mtime (4)
+ elen += 5; // headid(2) + sz(2) + flag(1)
+ if (e.mtime != null)
+ elen += 4; // + mtime (4)
}
}
writeShort(elen);
--- a/src/java.base/share/classes/sun/security/ssl/SSLSessionImpl.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.base/share/classes/sun/security/ssl/SSLSessionImpl.java Wed Jul 11 19:30:26 2018 -0400
@@ -658,7 +658,7 @@
*/
@Override
public Principal getLocalPrincipal() {
- return ((localCerts == null && localCerts.length != 0) ? null :
+ return ((localCerts == null || localCerts.length == 0) ? null :
localCerts[0].getSubjectX500Principal());
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/share/classes/sun/util/cldr/CLDRCalendarNameProviderImpl.java Wed Jul 11 19:30:26 2018 -0400
@@ -0,0 +1,68 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package sun.util.cldr;
+
+import static sun.util.locale.provider.LocaleProviderAdapter.Type;
+
+import java.util.Locale;
+import java.util.Set;
+import sun.util.locale.provider.AvailableLanguageTags;
+import sun.util.locale.provider.CalendarNameProviderImpl;
+import sun.util.locale.provider.LocaleProviderAdapter;
+
+
+public class CLDRCalendarNameProviderImpl extends CalendarNameProviderImpl implements AvailableLanguageTags{
+
+ public CLDRCalendarNameProviderImpl(Type type, Set<String> langtags) {
+ super(type, langtags);
+ }
+
+ @Override
+ public boolean isSupportedLocale(Locale locale) {
+ if (Locale.ROOT.equals(locale)) {
+ return true;
+ }
+ String calendarType = null;
+ if (locale.hasExtensions()) {
+ calendarType = locale.getUnicodeLocaleType("ca");
+ locale = locale.stripExtensions();
+ }
+ if (calendarType != null) {
+ switch (calendarType) {
+ case "buddhist":
+ case "japanese":
+ case "gregory":
+ case "islamic":
+ case "roc":
+ break;
+ default:
+ // Unknown calendar type
+ return false;
+ }
+ }
+ return LocaleProviderAdapter.forType(Type.CLDR).isSupportedProviderLocale(locale, langtags);
+ }
+}
--- a/src/java.base/share/classes/sun/util/cldr/CLDRLocaleProviderAdapter.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.base/share/classes/sun/util/cldr/CLDRLocaleProviderAdapter.java Wed Jul 11 19:30:26 2018 -0400
@@ -45,6 +45,7 @@
import java.util.StringTokenizer;
import java.util.concurrent.ConcurrentHashMap;
import java.util.spi.CalendarDataProvider;
+import java.util.spi.CalendarNameProvider;
import java.util.spi.TimeZoneNameProvider;
import sun.util.locale.provider.JRELocaleProviderAdapter;
import sun.util.locale.provider.LocaleDataMetaInfo;
@@ -133,6 +134,24 @@
}
@Override
+ public CalendarNameProvider getCalendarNameProvider() {
+ if (calendarNameProvider == null) {
+ CalendarNameProvider provider = AccessController.doPrivileged(
+ (PrivilegedAction<CalendarNameProvider>) ()
+ -> new CLDRCalendarNameProviderImpl(
+ getAdapterType(),
+ getLanguageTagSet("FormatData")));
+
+ synchronized (this) {
+ if (calendarNameProvider == null) {
+ calendarNameProvider = provider;
+ }
+ }
+ }
+ return calendarNameProvider;
+ }
+
+ @Override
public CollatorProvider getCollatorProvider() {
return null;
}
@@ -166,7 +185,7 @@
return locs;
}
- private Locale applyAliases(Locale loc) {
+ private static Locale applyAliases(Locale loc) {
if (langAliasesMap.isEmpty()) {
langAliasesMap = baseMetaInfo.getLanguageAliasMap();
}
@@ -264,19 +283,18 @@
}
/**
- * This method returns equivalent CLDR supported locale for zh-HK,
- * no, no-NO locales so that COMPAT locales do not precede
- * those locales during ResourceBundle search path.
+ * This method returns equivalent CLDR supported locale
+ * for no, no-NO locales so that COMPAT locales do not precede
+ * those locales during ResourceBundle search path, also if an alias exists for a locale,
+ * it returns equivalent locale, e.g for zh_HK it returns zh_Hant-HK.
*/
private static Locale getEquivalentLoc(Locale locale) {
switch (locale.toString()) {
- case "zh_HK":
- return Locale.forLanguageTag("zh-Hant-HK");
case "no":
case "no_NO":
return Locale.forLanguageTag("nb");
}
- return locale;
+ return applyAliases(locale);
}
@Override
--- a/src/java.base/share/classes/sun/util/locale/provider/CalendarNameProviderImpl.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.base/share/classes/sun/util/locale/provider/CalendarNameProviderImpl.java Wed Jul 11 19:30:26 2018 -0400
@@ -42,8 +42,8 @@
* @author Naoto Sato
*/
public class CalendarNameProviderImpl extends CalendarNameProvider implements AvailableLanguageTags {
- private final LocaleProviderAdapter.Type type;
- private final Set<String> langtags;
+ protected final LocaleProviderAdapter.Type type;
+ protected final Set<String> langtags;
public CalendarNameProviderImpl(LocaleProviderAdapter.Type type, Set<String> langtags) {
this.type = type;
@@ -248,11 +248,8 @@
if (langtags.contains(locale.toLanguageTag())) {
return true;
}
- if (type == LocaleProviderAdapter.Type.JRE) {
- String oldname = locale.toString().replace('_', '-');
- return langtags.contains(oldname);
- }
- return false;
+ String oldname = locale.toString().replace('_', '-');
+ return langtags.contains(oldname);
}
@Override
--- a/src/java.base/share/classes/sun/util/locale/provider/JRELocaleProviderAdapter.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.base/share/classes/sun/util/locale/provider/JRELocaleProviderAdapter.java Wed Jul 11 19:30:26 2018 -0400
@@ -131,7 +131,7 @@
private volatile LocaleNameProvider localeNameProvider;
protected volatile TimeZoneNameProvider timeZoneNameProvider;
protected volatile CalendarDataProvider calendarDataProvider;
- private volatile CalendarNameProvider calendarNameProvider;
+ protected volatile CalendarNameProvider calendarNameProvider;
private volatile CalendarProvider calendarProvider;
private volatile JavaTimeDateTimePatternProvider javaTimeDateTimePatternProvider;
--- a/src/java.base/unix/native/libjava/java_props_md.c Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.base/unix/native/libjava/java_props_md.c Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -297,7 +297,23 @@
if (strcmp(p, "EUC-JP") == 0) {
*std_encoding = "EUC-JP-LINUX";
}
-#else
+#endif
+
+#ifdef _AIX
+ if (strcmp(p, "big5") == 0) {
+ /* On AIX Traditional Chinese Big5 codeset is mapped to IBM-950 */
+ *std_encoding = "IBM-950";
+ } else if (strcmp(p, "IBM-943") == 0) {
+ /*
+ * On AIX, IBM-943 is mapped to IBM-943C in which symbol 'yen' and
+ * 'overline' are replaced with 'backslash' and 'tilde' from ASCII
+ * making first 96 code points same as ASCII.
+ */
+ *std_encoding = "IBM-943C";
+ }
+#endif
+
+#ifdef __solaris__
if (strcmp(p,"eucJP") == 0) {
/* For Solaris use customized vendor defined character
* customized EUC-JP converter
--- a/src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor7.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor7.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -64,9 +64,12 @@
/**
* Constructor for concrete subclasses to call.
+ *
+ * @deprecated Release 7 is obsolete; update to a visitor for a newer
+ * release level.
*/
- @SuppressWarnings("deprecation") // Superclass constructor deprecated
+ @Deprecated
protected AbstractAnnotationValueVisitor7() {
- super();
+ super(); // Superclass constructor deprecated too
}
}
--- a/src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor8.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor8.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -65,6 +65,7 @@
/**
* Constructor for concrete subclasses to call.
*/
+ @SuppressWarnings("deprecation") // Superclass constructor deprecated
protected AbstractAnnotationValueVisitor8() {
super();
}
--- a/src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor7.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor7.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oacle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -67,9 +67,12 @@
public abstract class AbstractElementVisitor7<R, P> extends AbstractElementVisitor6<R, P> {
/**
* Constructor for concrete subclasses to call.
+ *
+ * @deprecated Release 7 is obsolete; update to a visitor for a newer
+ * release level.
*/
- @SuppressWarnings("deprecation") // Superclass constructor deprecated
+ @Deprecated
protected AbstractElementVisitor7(){
- super();
+ super(); // Superclass constructor deprecated too
}
}
--- a/src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor8.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor8.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -68,6 +68,7 @@
/**
* Constructor for concrete subclasses to call.
*/
+ @SuppressWarnings("deprecation") // Superclass constructor deprecated
protected AbstractElementVisitor8(){
super();
}
--- a/src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitor7.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitor7.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -67,10 +67,13 @@
public abstract class AbstractTypeVisitor7<R, P> extends AbstractTypeVisitor6<R, P> {
/**
* Constructor for concrete subclasses to call.
+ *
+ * @deprecated Release 7 is obsolete; update to a visitor for a newer
+ * release level.
*/
- @SuppressWarnings("deprecation") // Superclass constructor deprecated
+ @Deprecated
protected AbstractTypeVisitor7() {
- super();
+ super(); // Superclass constructor deprecated too
}
/**
--- a/src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitor8.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitor8.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -68,6 +68,7 @@
/**
* Constructor for concrete subclasses to call.
*/
+ @SuppressWarnings("deprecation") // Superclass constructor deprecated
protected AbstractTypeVisitor8() {
super();
}
--- a/src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor7.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor7.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -81,10 +81,13 @@
/**
* Constructor for concrete subclasses; uses {@code null} for the
* default value.
+ *
+ * @deprecated Release 7 is obsolete; update to a visitor for a newer
+ * release level.
*/
- @SuppressWarnings("deprecation") // Superclass constructor deprecated
+ @Deprecated
protected ElementKindVisitor7() {
- super(null);
+ super(null); // Superclass constructor deprecated too
}
/**
@@ -92,10 +95,13 @@
* default value.
*
* @param defaultValue the value to assign to {@link #DEFAULT_VALUE}
+ *
+ * @deprecated Release 7 is obsolete; update to a visitor for a newer
+ * release level.
*/
- @SuppressWarnings("deprecation") // Superclass constructor deprecated
+ @Deprecated
protected ElementKindVisitor7(R defaultValue) {
- super(defaultValue);
+ super(defaultValue); // Superclass constructor deprecated too
}
/**
--- a/src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor8.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor8.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -82,6 +82,7 @@
* Constructor for concrete subclasses; uses {@code null} for the
* default value.
*/
+ @SuppressWarnings("deprecation") // Superclass constructor deprecated
protected ElementKindVisitor8() {
super(null);
}
@@ -92,6 +93,7 @@
*
* @param defaultValue the value to assign to {@link #DEFAULT_VALUE}
*/
+ @SuppressWarnings("deprecation") // Superclass constructor deprecated
protected ElementKindVisitor8(R defaultValue) {
super(defaultValue);
}
--- a/src/java.compiler/share/classes/javax/lang/model/util/ElementScanner7.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.compiler/share/classes/javax/lang/model/util/ElementScanner7.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -94,10 +94,13 @@
/**
* Constructor for concrete subclasses; uses {@code null} for the
* default value.
+ *
+ * @deprecated Release 7 is obsolete; update to a visitor for a newer
+ * release level.
*/
- @SuppressWarnings("deprecation") // Superclass constructor deprecated
+ @Deprecated
protected ElementScanner7(){
- super(null);
+ super(null); // Superclass constructor deprecated too
}
/**
@@ -105,10 +108,13 @@
* default value.
*
* @param defaultValue the default value
+ *
+ * @deprecated Release 7 is obsolete; update to a visitor for a newer
+ * release level.
*/
- @SuppressWarnings("deprecation") // Superclass constructor deprecated
+ @Deprecated
protected ElementScanner7(R defaultValue){
- super(defaultValue);
+ super(defaultValue); // Superclass constructor deprecated too
}
/**
--- a/src/java.compiler/share/classes/javax/lang/model/util/ElementScanner8.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.compiler/share/classes/javax/lang/model/util/ElementScanner8.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -95,6 +95,7 @@
* Constructor for concrete subclasses; uses {@code null} for the
* default value.
*/
+ @SuppressWarnings("deprecation") // Superclass constructor deprecated
protected ElementScanner8(){
super(null);
}
@@ -105,6 +106,7 @@
*
* @param defaultValue the default value
*/
+ @SuppressWarnings("deprecation") // Superclass constructor deprecated
protected ElementScanner8(R defaultValue){
super(defaultValue);
}
--- a/src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor7.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor7.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -71,10 +71,13 @@
/**
* Constructor for concrete subclasses; uses {@code null} for the
* default value.
+ *
+ * @deprecated Release 7 is obsolete; update to a visitor for a newer
+ * release level.
*/
- @SuppressWarnings("deprecation") // Superclass constructor deprecated
+ @Deprecated
protected SimpleAnnotationValueVisitor7() {
- super(null);
+ super(null); // Superclass constructor deprecated too
}
/**
@@ -82,9 +85,12 @@
* default value.
*
* @param defaultValue the value to assign to {@link #DEFAULT_VALUE}
+ *
+ * @deprecated Release 7 is obsolete; update to a visitor for a newer
+ * release level.
*/
- @SuppressWarnings("deprecation") // Superclass constructor deprecated
+ @Deprecated
protected SimpleAnnotationValueVisitor7(R defaultValue) {
- super(defaultValue);
+ super(defaultValue); // Superclass constructor deprecated too
}
}
--- a/src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor8.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor8.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -72,6 +72,7 @@
* Constructor for concrete subclasses; uses {@code null} for the
* default value.
*/
+ @SuppressWarnings("deprecation") // Superclass constructor deprecated
protected SimpleAnnotationValueVisitor8() {
super(null);
}
@@ -82,6 +83,7 @@
*
* @param defaultValue the value to assign to {@link #DEFAULT_VALUE}
*/
+ @SuppressWarnings("deprecation") // Superclass constructor deprecated
protected SimpleAnnotationValueVisitor8(R defaultValue) {
super(defaultValue);
}
--- a/src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor7.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor7.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -77,10 +77,13 @@
/**
* Constructor for concrete subclasses; uses {@code null} for the
* default value.
+ *
+ * @deprecated Release 7 is obsolete; update to a visitor for a newer
+ * release level.
*/
- @SuppressWarnings("deprecation") // Superclass constructor deprecated
+ @Deprecated
protected SimpleElementVisitor7(){
- super(null);
+ super(null); // Superclass constructor deprecated too
}
/**
@@ -88,10 +91,13 @@
* default value.
*
* @param defaultValue the value to assign to {@link #DEFAULT_VALUE}
+ *
+ * @deprecated Release 7 is obsolete; update to a visitor for a newer
+ * release level.
*/
- @SuppressWarnings("deprecation") // Superclass constructor deprecated
+ @Deprecated
protected SimpleElementVisitor7(R defaultValue){
- super(defaultValue);
+ super(defaultValue); // Superclass constructor deprecated too
}
/**
--- a/src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor8.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor8.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -77,6 +77,7 @@
* Constructor for concrete subclasses; uses {@code null} for the
* default value.
*/
+ @SuppressWarnings("deprecation") // Superclass constructor deprecated
protected SimpleElementVisitor8(){
super(null);
}
@@ -87,6 +88,7 @@
*
* @param defaultValue the value to assign to {@link #DEFAULT_VALUE}
*/
+ @SuppressWarnings("deprecation") // Superclass constructor deprecated
protected SimpleElementVisitor8(R defaultValue){
super(defaultValue);
}
--- a/src/java.compiler/share/classes/javax/lang/model/util/SimpleTypeVisitor7.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.compiler/share/classes/javax/lang/model/util/SimpleTypeVisitor7.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -77,10 +77,13 @@
/**
* Constructor for concrete subclasses; uses {@code null} for the
* default value.
+ *
+ * @deprecated Release 7 is obsolete; update to a visitor for a newer
+ * release level.
*/
- @SuppressWarnings("deprecation") // Superclass constructor deprecated
+ @Deprecated
protected SimpleTypeVisitor7(){
- super(null);
+ super(null); // Superclass constructor deprecated too
}
/**
@@ -88,10 +91,13 @@
* default value.
*
* @param defaultValue the value to assign to {@link #DEFAULT_VALUE}
+ *
+ * @deprecated Release 7 is obsolete; update to a visitor for a newer
+ * release level.
*/
- @SuppressWarnings("deprecation") // Superclass constructor deprecated
+ @Deprecated
protected SimpleTypeVisitor7(R defaultValue){
- super(defaultValue);
+ super(defaultValue); // Superclass constructor deprecated too
}
/**
--- a/src/java.compiler/share/classes/javax/lang/model/util/SimpleTypeVisitor8.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.compiler/share/classes/javax/lang/model/util/SimpleTypeVisitor8.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -78,6 +78,7 @@
* Constructor for concrete subclasses; uses {@code null} for the
* default value.
*/
+ @SuppressWarnings("deprecation") // Superclass constructor deprecated
protected SimpleTypeVisitor8(){
super(null);
}
@@ -88,6 +89,7 @@
*
* @param defaultValue the value to assign to {@link #DEFAULT_VALUE}
*/
+ @SuppressWarnings("deprecation") // Superclass constructor deprecated
protected SimpleTypeVisitor8(R defaultValue){
super(defaultValue);
}
--- a/src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor7.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor7.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -78,10 +78,13 @@
/**
* Constructor for concrete subclasses to call; uses {@code null}
* for the default value.
+ *
+ * @deprecated Release 7 is obsolete; update to a visitor for a newer
+ * release level.
*/
- @SuppressWarnings("deprecation") // Superclass constructor deprecated
+ @Deprecated
protected TypeKindVisitor7() {
- super(null);
+ super(null); // Superclass constructor deprecated too
}
/**
@@ -89,10 +92,13 @@
* for the default value.
*
* @param defaultValue the value to assign to {@link #DEFAULT_VALUE}
+ *
+ * @deprecated Release 7 is obsolete; update to a visitor for a newer
+ * release level.
*/
- @SuppressWarnings("deprecation") // Superclass constructor deprecated
+ @Deprecated
protected TypeKindVisitor7(R defaultValue) {
- super(defaultValue);
+ super(defaultValue); // Superclass constructor deprecated too
}
/**
--- a/src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor8.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor8.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -79,6 +79,7 @@
* Constructor for concrete subclasses to call; uses {@code null}
* for the default value.
*/
+ @SuppressWarnings("deprecation") // Superclass constructor deprecated
protected TypeKindVisitor8() {
super(null);
}
@@ -89,6 +90,7 @@
*
* @param defaultValue the value to assign to {@link #DEFAULT_VALUE}
*/
+ @SuppressWarnings("deprecation") // Superclass constructor deprecated
protected TypeKindVisitor8(R defaultValue) {
super(defaultValue);
}
--- a/src/java.desktop/share/classes/com/sun/awt/SecurityWarning.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.desktop/share/classes/com/sun/awt/SecurityWarning.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -45,7 +45,10 @@
* for limited use outside of the core platform. This API may change
* drastically between update release, and it may even be
* removed or be moved to some other packages or classes.
+ *
+ * @deprecated This class is deprecated, no replacement.
*/
+@Deprecated(since = "11", forRemoval = true)
public final class SecurityWarning {
/**
--- a/src/java.desktop/share/classes/com/sun/media/sound/EventDispatcher.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.desktop/share/classes/com/sun/media/sound/EventDispatcher.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -308,7 +308,12 @@
* called from auto-closing clips when their closed() method is called.
*/
void autoClosingClipClosed(AutoClosingClip clip) {
- // nothing to do -- is removed from arraylist above
+ synchronized(autoClosingClips) {
+ int index = getAutoClosingClipIndex(clip);
+ if (index != -1) {
+ autoClosingClips.remove(index);
+ }
+ }
}
--- a/src/java.desktop/share/classes/com/sun/media/sound/JavaSoundAudioClip.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.desktop/share/classes/com/sun/media/sound/JavaSoundAudioClip.java Wed Jul 11 19:30:26 2018 -0400
@@ -173,29 +173,31 @@
if (DEBUG || Printer.debug) Printer.debug("JavaSoundAudioClip.startImpl(loop="+loop+")");
try {
if (clip != null) {
- if (!clip.isOpen()) {
- if (DEBUG || Printer.trace)Printer.trace("JavaSoundAudioClip: clip.open()");
- clip.open(loadedAudioFormat, loadedAudio, 0, loadedAudioByteLength);
- } else {
- if (DEBUG || Printer.trace)Printer.trace("JavaSoundAudioClip: clip.flush()");
- clip.flush();
- if (loop != clipLooping) {
- // need to stop in case the looped status changed
- if (DEBUG || Printer.trace)Printer.trace("JavaSoundAudioClip: clip.stop()");
- clip.stop();
+ // We need to disable autoclosing mechanism otherwise the clip
+ // can be closed after "!clip.isOpen()" check, because of
+ // previous inactivity.
+ clip.setAutoClosing(false);
+ try {
+ if (!clip.isOpen()) {
+ clip.open(loadedAudioFormat, loadedAudio, 0,
+ loadedAudioByteLength);
+ } else {
+ clip.flush();
+ if (loop != clipLooping) {
+ // need to stop in case the looped status changed
+ clip.stop();
+ }
}
+ clip.setFramePosition(0);
+ if (loop) {
+ clip.loop(Clip.LOOP_CONTINUOUSLY);
+ } else {
+ clip.start();
+ }
+ clipLooping = loop;
+ } finally {
+ clip.setAutoClosing(true);
}
- clip.setFramePosition(0);
- if (loop) {
- if (DEBUG || Printer.trace)Printer.trace("JavaSoundAudioClip: clip.loop()");
- clip.loop(Clip.LOOP_CONTINUOUSLY);
- } else {
- if (DEBUG || Printer.trace)Printer.trace("JavaSoundAudioClip: clip.start()");
- clip.start();
- }
- clipLooping = loop;
- if (DEBUG || Printer.debug)Printer.debug("Clip should be playing/looping");
-
} else if (datapusher != null ) {
datapusher.start(loop);
if (DEBUG || Printer.debug)Printer.debug("Stream should be playing/looping");
--- a/src/java.desktop/share/classes/java/awt/Component.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.desktop/share/classes/java/awt/Component.java Wed Jul 11 19:30:26 2018 -0400
@@ -5987,7 +5987,8 @@
* {@code InputMethodRequests} instance.
* If listener {@code l} is {@code null},
* no exception is thrown and no action is performed.
- * <p>Refer to <a href="{@docRoot}/java/awt/doc-files/AWTThreadIssues.html#ListenersThreads"
+ * <p>Refer to
+ * <a href="{@docRoot}/java.desktop/java/awt/doc-files/AWTThreadIssues.html#ListenersThreads"
* >AWT Threading Issues</a> for details on AWT's threading model.
*
* @param l the input method listener
--- a/src/java.desktop/share/classes/java/awt/Shape.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.desktop/share/classes/java/awt/Shape.java Wed Jul 11 19:30:26 2018 -0400
@@ -90,7 +90,8 @@
* representation.
*
* <p>
- * Note that the <a href="{@docRoot}/java/awt/Shape.html#def_insideness">
+ * Note that the
+ * <a href="{@docRoot}/java.desktop/java/awt/Shape.html#def_insideness">
* definition of insideness</a> can lead to situations where points
* on the defining outline of the {@code shape} may not be considered
* contained in the returned {@code bounds} object, but only in cases
@@ -135,7 +136,8 @@
* store the dimensions.
*
* <p>
- * Note that the <a href="{@docRoot}/java/awt/Shape.html#def_insideness">
+ * Note that the
+ * <a href="{@docRoot}/java.desktop/java/awt/Shape.html#def_insideness">
* definition of insideness</a> can lead to situations where points
* on the defining outline of the {@code shape} may not be considered
* contained in the returned {@code bounds} object, but only in cases
@@ -169,7 +171,7 @@
/**
* Tests if the specified coordinates are inside the boundary of the
* {@code Shape}, as described by the
- * <a href="{@docRoot}/java/awt/Shape.html#def_insideness">
+ * <a href="{@docRoot}/java.desktop/java/awt/Shape.html#def_insideness">
* definition of insideness</a>.
* @param x the specified X coordinate to be tested
* @param y the specified Y coordinate to be tested
@@ -183,7 +185,7 @@
/**
* Tests if a specified {@link Point2D} is inside the boundary
* of the {@code Shape}, as described by the
- * <a href="{@docRoot}/java/awt/Shape.html#def_insideness">
+ * <a href="{@docRoot}/java.desktop/java/awt/Shape.html#def_insideness">
* definition of insideness</a>.
* @param p the specified {@code Point2D} to be tested
* @return {@code true} if the specified {@code Point2D} is
--- a/src/java.desktop/share/classes/javax/imageio/metadata/IIOMetadataNode.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.desktop/share/classes/javax/imageio/metadata/IIOMetadataNode.java Wed Jul 11 19:30:26 2018 -0400
@@ -198,9 +198,7 @@
/**
* A class representing a node in a meta-data tree, which implements
- * the <a
- * href="../../../../api/org/w3c/dom/Element.html">
- * {@code org.w3c.dom.Element}</a> interface and additionally allows
+ * the {@link Element org.w3c.dom.Element} interface and additionally allows
* for the storage of non-textual objects via the
* {@code getUserObject} and {@code setUserObject} methods.
*
--- a/src/java.desktop/share/classes/javax/swing/JButton.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.desktop/share/classes/javax/swing/JButton.java Wed Jul 11 19:30:26 2018 -0400
@@ -151,7 +151,7 @@
* @see UIDefaults#getUI
*/
@BeanProperty(bound = false, expert = true, description
- = "A string that specifies the name of the L&F class.")
+ = "A string that specifies the name of the L&F class.")
public String getUIClassID() {
return uiClassID;
}
--- a/src/java.desktop/share/classes/javax/swing/JCheckBox.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.desktop/share/classes/javax/swing/JCheckBox.java Wed Jul 11 19:30:26 2018 -0400
@@ -235,7 +235,7 @@
* @see UIDefaults#getUI
*/
@BeanProperty(bound = false, expert = true, description
- = "A string that specifies the name of the L&F class")
+ = "A string that specifies the name of the L&F class")
public String getUIClassID() {
return uiClassID;
}
--- a/src/java.desktop/share/classes/javax/swing/JFileChooser.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.desktop/share/classes/javax/swing/JFileChooser.java Wed Jul 11 19:30:26 2018 -0400
@@ -861,7 +861,7 @@
* @since 1.3
*/
@BeanProperty(preferred = true, description
- = "Sets whether the approve & cancel buttons are shown.")
+ = "Sets whether the approve & cancel buttons are shown.")
public void setControlButtonsAreShown(boolean b) {
if(controlsShown == b) {
return;
@@ -1838,7 +1838,7 @@
* @see UIDefaults#getUI
*/
@BeanProperty(bound = false, expert = true, description
- = "A string that specifies the name of the L&F class.")
+ = "A string that specifies the name of the L&F class.")
public String getUIClassID() {
return uiClassID;
}
--- a/src/java.desktop/share/classes/javax/swing/JPanel.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.desktop/share/classes/javax/swing/JPanel.java Wed Jul 11 19:30:26 2018 -0400
@@ -127,7 +127,7 @@
}
/**
- * Returns the look and feel (L&amp;F) object that renders this component.
+ * Returns the look and feel (L&F) object that renders this component.
*
* @return the PanelUI object that renders this component
* @since 1.4
@@ -159,7 +159,7 @@
* @see UIDefaults#getUI
*/
@BeanProperty(bound = false, expert = true, description
- = "A string that specifies the name of the L&F class.")
+ = "A string that specifies the name of the L&F class.")
public String getUIClassID() {
return uiClassID;
}
--- a/src/java.desktop/share/classes/javax/swing/JRadioButton.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.desktop/share/classes/javax/swing/JRadioButton.java Wed Jul 11 19:30:26 2018 -0400
@@ -201,7 +201,7 @@
* @see UIDefaults#getUI
*/
@BeanProperty(bound = false, expert = true, description
- = "A string that specifies the name of the L&F class.")
+ = "A string that specifies the name of the L&F class.")
public String getUIClassID() {
return uiClassID;
}
--- a/src/java.desktop/share/classes/javax/swing/JSplitPane.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.desktop/share/classes/javax/swing/JSplitPane.java Wed Jul 11 19:30:26 2018 -0400
@@ -377,7 +377,7 @@
* @return the <code>SplitPaneUI</code> object that renders this component
*/
@BeanProperty(bound = false, expert = true, description
- = "The L&F object that renders this component.")
+ = "The L&F object that renders this component.")
public SplitPaneUI getUI() {
return (SplitPaneUI)ui;
}
@@ -404,7 +404,7 @@
* @see UIDefaults#getUI
*/
@BeanProperty(bound = false, expert = true, description
- = "A string that specifies the name of the L&F class.")
+ = "A string that specifies the name of the L&F class.")
public String getUIClassID() {
return uiClassID;
}
@@ -824,7 +824,7 @@
* <code>null</code>
*/
@BeanProperty(bound = false, description
- = "The minimum location of the divider from the L&F.")
+ = "The minimum location of the divider from the L&F.")
public int getMinimumDividerLocation() {
SplitPaneUI ui = getUI();
--- a/src/java.desktop/share/classes/javax/swing/JToggleButton.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.desktop/share/classes/javax/swing/JToggleButton.java Wed Jul 11 19:30:26 2018 -0400
@@ -195,7 +195,7 @@
* @see UIDefaults#getUI
*/
@BeanProperty(bound = false, description
- = "A string that specifies the name of the L&F class")
+ = "A string that specifies the name of the L&F class")
public String getUIClassID() {
return uiClassID;
}
--- a/src/java.desktop/share/legal/harfbuzz.md Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.desktop/share/legal/harfbuzz.md Wed Jul 11 19:30:26 2018 -0400
@@ -1,4 +1,4 @@
-## Harfbuzz v1.8.1
+## Harfbuzz v1.8.2
### Harfbuzz License
--- a/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-blob.cc Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-blob.cc Wed Jul 11 19:30:26 2018 -0400
@@ -489,10 +489,10 @@
#if defined(_WIN32) || defined(__CYGWIN__)
# include <windows.h>
-#endif
-
-#ifndef _O_BINARY
-# define _O_BINARY 0
+#else
+# ifndef _O_BINARY
+# define _O_BINARY 0
+# endif
#endif
#ifndef MAP_NORESERVE
@@ -517,7 +517,7 @@
UnmapViewOfFile (file->contents);
CloseHandle (file->mapping);
#else
- free (file->contents);
+ assert (0); // If we don't have mmap we shouldn't reach here
#endif
free (file);
@@ -534,77 +534,103 @@
hb_blob_t *
hb_blob_create_from_file (const char *file_name)
{
- // Adopted from glib's gmappedfile.c with Matthias Clasen and
- // Allison Lortie permission but changed a lot to suit our need.
- bool writable = false;
- hb_memory_mode_t mm = HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITABLE;
+ /* Adopted from glib's gmappedfile.c with Matthias Clasen and
+ Allison Lortie permission but changed a lot to suit our need. */
+#if defined(HAVE_MMAP) && !defined(HB_NO_MMAP)
hb_mapped_file_t *file = (hb_mapped_file_t *) calloc (1, sizeof (hb_mapped_file_t));
if (unlikely (!file)) return hb_blob_get_empty ();
-#ifdef HAVE_MMAP
- int fd = open (file_name, (writable ? O_RDWR : O_RDONLY) | _O_BINARY, 0);
-# define CLOSE close
+ int fd = open (file_name, O_RDONLY | _O_BINARY, 0);
if (unlikely (fd == -1)) goto fail_without_close;
struct stat st;
if (unlikely (fstat (fd, &st) == -1)) goto fail;
- // See https://github.com/GNOME/glib/blob/f9faac7/glib/gmappedfile.c#L139-L142
- if (unlikely (st.st_size == 0 && S_ISREG (st.st_mode))) goto fail;
-
file->length = (unsigned long) st.st_size;
- file->contents = (char *) mmap (nullptr, file->length,
- writable ? PROT_READ|PROT_WRITE : PROT_READ,
+ file->contents = (char *) mmap (nullptr, file->length, PROT_READ,
MAP_PRIVATE | MAP_NORESERVE, fd, 0);
if (unlikely (file->contents == MAP_FAILED)) goto fail;
-#elif defined(_WIN32) || defined(__CYGWIN__)
- HANDLE fd = CreateFile (file_name,
- writable ? GENERIC_READ|GENERIC_WRITE : GENERIC_READ,
- FILE_SHARE_READ, nullptr, OPEN_EXISTING,
- FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, nullptr);
-# define CLOSE CloseHandle
+ close (fd);
+
+ return hb_blob_create (file->contents, file->length,
+ HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITABLE, (void *) file,
+ (hb_destroy_func_t) _hb_mapped_file_destroy);
+
+fail:
+ close (fd);
+fail_without_close:
+ free (file);
+
+#elif (defined(_WIN32) || defined(__CYGWIN__)) && !defined(HB_NO_MMAP)
+ hb_mapped_file_t *file = (hb_mapped_file_t *) calloc (1, sizeof (hb_mapped_file_t));
+ if (unlikely (!file)) return hb_blob_get_empty ();
+
+ HANDLE fd = CreateFile (file_name, GENERIC_READ, FILE_SHARE_READ, nullptr,
+ OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,
+ nullptr);
if (unlikely (fd == INVALID_HANDLE_VALUE)) goto fail_without_close;
file->length = (unsigned long) GetFileSize (fd, nullptr);
- file->mapping = CreateFileMapping (fd, nullptr,
- writable ? PAGE_WRITECOPY : PAGE_READONLY,
- 0, 0, nullptr);
+ file->mapping = CreateFileMapping (fd, nullptr, PAGE_READONLY, 0, 0, nullptr);
if (unlikely (file->mapping == nullptr)) goto fail;
- file->contents = (char *) MapViewOfFile (file->mapping,
- writable ? FILE_MAP_COPY : FILE_MAP_READ,
- 0, 0, 0);
+ file->contents = (char *) MapViewOfFile (file->mapping, FILE_MAP_READ, 0, 0, 0);
if (unlikely (file->contents == nullptr)) goto fail;
-#else
- mm = HB_MEMORY_MODE_WRITABLE;
-
- FILE *fd = fopen (file_name, "rb");
-# define CLOSE fclose
- if (unlikely (!fd)) goto fail_without_close;
+ CloseHandle (fd);
+ return hb_blob_create (file->contents, file->length,
+ HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITABLE, (void *) file,
+ (hb_destroy_func_t) _hb_mapped_file_destroy);
- fseek (fd, 0, SEEK_END);
- file->length = ftell (fd);
- rewind (fd);
- file->contents = (char *) malloc (file->length);
- if (unlikely (!file->contents)) goto fail;
-
- if (unlikely (fread (file->contents, 1, file->length, fd) != file->length))
- goto fail;
+fail:
+ CloseHandle (fd);
+fail_without_close:
+ free (file);
#endif
- CLOSE (fd);
- return hb_blob_create (file->contents, file->length, mm, (void *) file,
- (hb_destroy_func_t) _hb_mapped_file_destroy);
+ /* The following tries to read a file without knowing its size beforehand
+ It's used as a fallback for systems without mmap or to read from pipes */
+ unsigned long len = 0, allocated = BUFSIZ * 16;
+ char *data = (char *) malloc (allocated);
+ if (unlikely (data == nullptr)) return hb_blob_get_empty ();
+
+ FILE *fp = fopen (file_name, "rb");
+ if (unlikely (fp == nullptr)) goto fread_fail_without_close;
-fail:
- CLOSE (fd);
-#undef CLOSE
-fail_without_close:
- free (file);
+ while (!feof (fp))
+ {
+ if (allocated - len < BUFSIZ)
+ {
+ allocated *= 2;
+ /* Don't allocate and go more than ~536MB, our mmap reader still
+ can cover files like that but lets limit our fallback reader */
+ if (unlikely (allocated > (2 << 28))) goto fread_fail;
+ char *new_data = (char *) realloc (data, allocated);
+ if (unlikely (new_data == nullptr)) goto fread_fail;
+ data = new_data;
+ }
+
+ unsigned long addition = fread (data + len, 1, allocated - len, fp);
+
+ int err = ferror (fp);
+#ifdef EINTR // armcc doesn't have it
+ if (unlikely (err == EINTR)) continue;
+#endif
+ if (unlikely (err)) goto fread_fail;
+
+ len += addition;
+ }
+
+ return hb_blob_create (data, len, HB_MEMORY_MODE_WRITABLE, data,
+ (hb_destroy_func_t) free);
+
+fread_fail:
+ fclose (fp);
+fread_fail_without_close:
+ free (data);
return hb_blob_get_empty ();
}
--- a/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-open-file-private.hh Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-open-file-private.hh Wed Jul 11 19:30:26 2018 -0400
@@ -286,6 +286,197 @@
} u;
};
+/*
+ * Mac Resource Fork
+ */
+
+struct ResourceRefItem
+{
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
+ TRACE_SANITIZE (this);
+ // actual data sanitization is done on ResourceForkHeader sanitizer
+ return_trace (likely (c->check_struct (this)));
+ }
+
+ HBINT16 id; /* Resource ID, is really should be signed? */
+ HBINT16 nameOffset; /* Offset from beginning of resource name list
+ * to resource name, minus means there is no */
+ HBUINT8 attr; /* Resource attributes */
+ HBUINT24 dataOffset; /* Offset from beginning of resource data to
+ * data for this resource */
+ HBUINT32 reserved; /* Reserved for handle to resource */
+ public:
+ DEFINE_SIZE_STATIC (12);
+};
+
+struct ResourceTypeItem
+{
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
+ TRACE_SANITIZE (this);
+ // RefList sanitization is done on ResourceMap sanitizer
+ return_trace (likely (c->check_struct (this)));
+ }
+
+ inline unsigned int get_resource_count () const
+ {
+ return numRes + 1;
+ }
+
+ inline bool is_sfnt () const
+ {
+ return type == HB_TAG ('s','f','n','t');
+ }
+
+ inline const ResourceRefItem& get_ref_item (const void *base,
+ unsigned int i) const
+ {
+ return (base+refList)[i];
+ }
+
+ protected:
+ Tag type; /* Resource type */
+ HBUINT16 numRes; /* Number of resource this type in map minus 1 */
+ OffsetTo<UnsizedArrayOf<ResourceRefItem> >
+ refList; /* Offset from beginning of resource type list
+ * to reference list for this type */
+ public:
+ DEFINE_SIZE_STATIC (8);
+};
+
+struct ResourceMap
+{
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
+ TRACE_SANITIZE (this);
+ if (unlikely (!c->check_struct (this)))
+ return_trace (false);
+ for (unsigned int i = 0; i < get_types_count (); ++i)
+ {
+ const ResourceTypeItem& type = get_type (i);
+ if (unlikely (!type.sanitize (c)))
+ return_trace (false);
+ for (unsigned int j = 0; j < type.get_resource_count (); ++j)
+ if (unlikely (!get_ref_item (type, j).sanitize (c)))
+ return_trace (false);
+ }
+ return_trace (true);
+ }
+
+ inline const ResourceTypeItem& get_type (unsigned int i) const
+ {
+ // Why offset from the second byte of the object? I'm not sure
+ return ((&reserved[2])+typeList)[i];
+ }
+
+ inline unsigned int get_types_count () const
+ {
+ return nTypes + 1;
+ }
+
+ inline const ResourceRefItem &get_ref_item (const ResourceTypeItem &type,
+ unsigned int i) const
+ {
+ return type.get_ref_item (&(this+typeList), i);
+ }
+
+ inline const PString& get_name (const ResourceRefItem &item,
+ unsigned int i) const
+ {
+ if (item.nameOffset == -1)
+ return Null (PString);
+
+ return StructAtOffset<PString> (this, nameList + item.nameOffset);
+ }
+
+ protected:
+ HBUINT8 reserved[16]; /* Reserved for copy of resource header */
+ LOffsetTo<ResourceMap>
+ reserved1; /* Reserved for handle to next resource map */
+ HBUINT16 reserved2; /* Reserved for file reference number */
+ HBUINT16 attr; /* Resource fork attribute */
+ OffsetTo<UnsizedArrayOf<ResourceTypeItem> >
+ typeList; /* Offset from beginning of map to
+ * resource type list */
+ HBUINT16 nameList; /* Offset from beginning of map to
+ * resource name list */
+ HBUINT16 nTypes; /* Number of types in the map minus 1 */
+ public:
+ DEFINE_SIZE_STATIC (30);
+};
+
+struct ResourceForkHeader
+{
+ inline unsigned int get_face_count () const
+ {
+ const ResourceMap &resource_map = this+map;
+ for (unsigned int i = 0; i < resource_map.get_types_count (); ++i)
+ {
+ const ResourceTypeItem& type = resource_map.get_type (i);
+ if (type.is_sfnt ())
+ return type.get_resource_count ();
+ }
+ return 0;
+ }
+
+ inline const LArrayOf<HBUINT8>& get_data (const ResourceTypeItem& type,
+ unsigned int idx) const
+ {
+ const ResourceMap &resource_map = this+map;
+ unsigned int offset = dataOffset;
+ offset += resource_map.get_ref_item (type, idx).dataOffset;
+ return StructAtOffset<LArrayOf<HBUINT8> > (this, offset);
+ }
+
+ inline const OpenTypeFontFace& get_face (unsigned int idx) const
+ {
+ const ResourceMap &resource_map = this+map;
+ for (unsigned int i = 0; i < resource_map.get_types_count (); ++i)
+ {
+ const ResourceTypeItem& type = resource_map.get_type (i);
+ if (type.is_sfnt () && idx < type.get_resource_count ())
+ return (OpenTypeFontFace&) get_data (type, idx).arrayZ;
+ }
+ return Null (OpenTypeFontFace);
+ }
+
+ inline bool sanitize (hb_sanitize_context_t *c) const
+ {
+ TRACE_SANITIZE (this);
+ if (unlikely (!c->check_struct (this)))
+ return_trace (false);
+
+ const ResourceMap &resource_map = this+map;
+ if (unlikely (!resource_map.sanitize (c)))
+ return_trace (false);
+
+ for (unsigned int i = 0; i < resource_map.get_types_count (); ++i)
+ {
+ const ResourceTypeItem& type = resource_map.get_type (i);
+ for (unsigned int j = 0; j < type.get_resource_count (); ++j)
+ {
+ const LArrayOf<HBUINT8>& data = get_data (type, j);
+ if (unlikely (!(data.sanitize (c) &&
+ ((OpenTypeFontFace&) data.arrayZ).sanitize (c))))
+ return_trace (false);
+ }
+ }
+
+ return_trace (true);
+ }
+
+ protected:
+ HBUINT32 dataOffset; /* Offset from beginning of resource fork
+ * to resource data */
+ LOffsetTo<ResourceMap>
+ map; /* Offset from beginning of resource fork
+ * to resource map */
+ HBUINT32 dataLen; /* Length of resource data */
+ HBUINT32 mapLen; /* Length of resource map */
+ public:
+ DEFINE_SIZE_STATIC (16);
+};
/*
* OpenType Font File
@@ -299,6 +490,7 @@
CFFTag = HB_TAG ('O','T','T','O'), /* OpenType with Postscript outlines */
TrueTypeTag = HB_TAG ( 0 , 1 , 0 , 0 ), /* OpenType with TrueType outlines */
TTCTag = HB_TAG ('t','t','c','f'), /* TrueType Collection */
+ DFontTag = HB_TAG ( 0 , 0 , 1 , 0 ), /* DFont Mac Resource Fork */
TrueTag = HB_TAG ('t','r','u','e'), /* Obsolete Apple TrueType */
Typ1Tag = HB_TAG ('t','y','p','1') /* Obsolete Apple Type1 font in SFNT container */
};
@@ -313,6 +505,7 @@
case Typ1Tag:
case TrueTypeTag: return 1;
case TTCTag: return u.ttcHeader.get_face_count ();
+// case DFontTag: return u.rfHeader.get_face_count ();
default: return 0;
}
}
@@ -327,6 +520,7 @@
case Typ1Tag:
case TrueTypeTag: return u.fontFace;
case TTCTag: return u.ttcHeader.get_face (i);
+// case DFontTag: return u.rfHeader.get_face (i);
default: return Null(OpenTypeFontFace);
}
}
@@ -353,6 +547,7 @@
case Typ1Tag:
case TrueTypeTag: return_trace (u.fontFace.sanitize (c));
case TTCTag: return_trace (u.ttcHeader.sanitize (c));
+// case DFontTag: return_trace (u.rfHeader.sanitize (c));
default: return_trace (true);
}
}
@@ -362,6 +557,7 @@
Tag tag; /* 4-byte identifier. */
OpenTypeFontFace fontFace;
TTCHeader ttcHeader;
+ ResourceForkHeader rfHeader;
} u;
public:
DEFINE_SIZE_UNION (4, tag);
--- a/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-open-type-private.hh Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-open-type-private.hh Wed Jul 11 19:30:26 2018 -0400
@@ -1033,6 +1033,7 @@
DEFINE_SIZE_ARRAY (sizeof (LenType), arrayZ);
};
template <typename Type> struct LArrayOf : ArrayOf<Type, HBUINT32> {};
+typedef ArrayOf<HBUINT8, HBUINT8> PString;
/* Array of Offset's */
template <typename Type, typename OffsetType=HBUINT16>
--- a/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-layout-common-private.hh Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-layout-common-private.hh Wed Jul 11 19:30:26 2018 -0400
@@ -832,7 +832,12 @@
c = &c_;
coverage = 0;
i = 0;
- j = c->rangeRecord.len ? c_.rangeRecord[0].start : 0;
+ j = c->rangeRecord.len ? c->rangeRecord[0].start : 0;
+ if (unlikely (c->rangeRecord[0].start > c->rangeRecord[0].end))
+ {
+ /* Broken table. Skip. */
+ i = c->rangeRecord.len;
+ }
}
inline bool more (void) { return i < c->rangeRecord.len; }
inline void next (void)
@@ -842,7 +847,14 @@
i++;
if (more ())
{
+ hb_codepoint_t old = j;
j = c->rangeRecord[i].start;
+ if (unlikely (j <= old))
+ {
+ /* Broken table. Skip. Important to avoid DoS. */
+ i = c->rangeRecord.len;
+ return;
+ }
coverage = c->rangeRecord[i].value;
}
return;
@@ -855,7 +867,8 @@
private:
const struct CoverageFormat2 *c;
- unsigned int i, j, coverage;
+ unsigned int i, coverage;
+ hb_codepoint_t j;
};
private:
--- a/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-layout-gpos-table.hh Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-layout-gpos-table.hh Wed Jul 11 19:30:26 2018 -0400
@@ -1074,10 +1074,13 @@
if (!skippy_iter.prev ()) return_trace (false);
/* We only want to attach to the first of a MultipleSubst sequence.
* https://github.com/harfbuzz/harfbuzz/issues/740
- * Reject others. */
+ * Reject others...
+ * ...but stop if we find a mark in the MultipleSubst sequence:
+ * https://github.com/harfbuzz/harfbuzz/issues/1020 */
if (!_hb_glyph_info_multiplied (&buffer->info[skippy_iter.idx]) ||
0 == _hb_glyph_info_get_lig_comp (&buffer->info[skippy_iter.idx]) ||
(skippy_iter.idx == 0 ||
+ _hb_glyph_info_is_mark (&buffer->info[skippy_iter.idx - 1]) ||
_hb_glyph_info_get_lig_id (&buffer->info[skippy_iter.idx]) !=
_hb_glyph_info_get_lig_id (&buffer->info[skippy_iter.idx - 1]) ||
_hb_glyph_info_get_lig_comp (&buffer->info[skippy_iter.idx]) !=
--- a/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex-indic.cc Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex-indic.cc Wed Jul 11 19:30:26 2018 -0400
@@ -668,8 +668,9 @@
*
* Reports suggest that in some scripts Uniscribe does this only if there
* is *not* a Halant after last consonant already (eg. Kannada), while it
- * does it unconditionally in other scripts (eg. Malayalam). We don't
- * currently know about other scripts, so we single out Malayalam for now.
+ * does it unconditionally in other scripts (eg. Malayalam, Bengali). We
+ * don't currently know about other scripts, so we whitelist Malayalam and
+ * Bengali for now.
*
* Kannada test case:
* U+0C9A,U+0CCD,U+0C9A,U+0CCD
@@ -679,10 +680,16 @@
* Malayalam test case:
* U+0D38,U+0D4D,U+0D31,U+0D4D,U+0D31,U+0D4D
* With lohit-ttf-20121122/Lohit-Malayalam.ttf
+ *
+ * Bengali test case
+ * U+0998,U+09CD,U+09AF,U+09CD
+ * With Windows XP vrinda.ttf
+ * https://github.com/harfbuzz/harfbuzz/issues/1073
*/
if (indic_plan->is_old_spec)
{
- bool disallow_double_halants = buffer->props.script != HB_SCRIPT_MALAYALAM;
+ bool disallow_double_halants = buffer->props.script != HB_SCRIPT_MALAYALAM &&
+ buffer->props.script != HB_SCRIPT_BENGALI;
for (unsigned int i = base + 1; i < end; i++)
if (info[i].indic_category() == OT_H)
{
--- a/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex-khmer.cc Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex-khmer.cc Wed Jul 11 19:30:26 2018 -0400
@@ -372,22 +372,25 @@
break;
}
- /* Note! syllable() is a one-byte field. */
- for (unsigned int i = base; i < end; i++)
- if (info[i].syllable() != 255)
- {
- unsigned int max = i;
- unsigned int j = start + info[i].syllable();
- while (j != i)
+ if (unlikely (end - start >= 127))
+ buffer->merge_clusters (start, end);
+ else
+ /* Note! syllable() is a one-byte field. */
+ for (unsigned int i = base; i < end; i++)
+ if (info[i].syllable() != 255)
{
- max = MAX (max, j);
- unsigned int next = start + info[j].syllable();
- info[j].syllable() = 255; /* So we don't process j later again. */
- j = next;
+ unsigned int max = i;
+ unsigned int j = start + info[i].syllable();
+ while (j != i)
+ {
+ max = MAX (max, j);
+ unsigned int next = start + info[j].syllable();
+ info[j].syllable() = 255; /* So we don't process j later again. */
+ j = next;
+ }
+ if (i != max)
+ buffer->merge_clusters (i, max + 1);
}
- if (i != max)
- buffer->merge_clusters (i, max + 1);
- }
/* Put syllable back in. */
for (unsigned int i = start; i < end; i++)
--- a/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-private.hh Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-private.hh Wed Jul 11 19:30:26 2018 -0400
@@ -1228,13 +1228,14 @@
/* fallback for round() */
#if !defined (HAVE_ROUND) && !defined (HAVE_DECL_ROUND)
static inline double
-round (double x)
+_hb_round (double x)
{
if (x >= 0)
return floor (x + 0.5);
else
return ceil (x - 0.5);
}
+#define round(x) _hb_round(x)
#endif
--- a/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-version.h Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-version.h Wed Jul 11 19:30:26 2018 -0400
@@ -38,9 +38,9 @@
#define HB_VERSION_MAJOR 1
#define HB_VERSION_MINOR 8
-#define HB_VERSION_MICRO 1
+#define HB_VERSION_MICRO 2
-#define HB_VERSION_STRING "1.8.1"
+#define HB_VERSION_STRING "1.8.2"
#define HB_VERSION_ATLEAST(major,minor,micro) \
((major)*10000+(minor)*100+(micro) <= \
--- a/src/java.desktop/unix/native/common/awt/CUPSfuncs.c Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.desktop/unix/native/common/awt/CUPSfuncs.c Wed Jul 11 19:30:26 2018 -0400
@@ -29,6 +29,16 @@
#include <dlfcn.h>
#include <cups/cups.h>
#include <cups/ppd.h>
+/*
+ * CUPS #define's __attribute__(x) to be empty unless __GNUC__ is defined.
+ * However OpenJDK officially uses the SunStudio compiler on Solaris.
+ * We need to #undef this else it breaks use of this keyword used by JNIEXPORT.
+ * See: https://github.com/apple/cups/issues/5349
+ */
+#ifdef __SUNPRO_C
+#undef __attribute__
+#endif
+
//#define CUPS_DEBUG
--- a/src/java.desktop/windows/classes/sun/awt/shell/Win32ShellFolder2.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.desktop/windows/classes/sun/awt/shell/Win32ShellFolder2.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -170,7 +170,7 @@
}
// Known Folder data
- static class KnownFolderDefinition {
+ static final class KnownFolderDefinition {
String guid;
int category;
String name;
@@ -187,7 +187,10 @@
String ftidType;
String path;
String saveLocation;
- static final List<KnownFolderDefinition> libraries = getLibraries();
+ }
+
+ static final class KnownLibraries {
+ static final List<KnownFolderDefinition> INSTANCE = getLibraries();
}
static class FolderDisposer implements sun.java2d.DisposerRecord {
@@ -625,7 +628,7 @@
// this is a temp fix until java.io starts support Libraries
if( path != null && path.startsWith("::{") &&
path.toLowerCase().endsWith(".library-ms")) {
- for (KnownFolderDefinition kf : KnownFolderDefinition.libraries) {
+ for (KnownFolderDefinition kf : KnownLibraries.INSTANCE) {
if (path.toLowerCase().endsWith(
"\\" + kf.relativePath.toLowerCase()) &&
path.toUpperCase().startsWith(
--- a/src/java.desktop/windows/native/libawt/windows/ShellFolder2.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.desktop/windows/native/libawt/windows/ShellFolder2.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -1398,7 +1398,7 @@
DEFINE_FIELD_ID(field_defenitionFlags, cl, "defenitionFlags", "I");
DEFINE_FIELD_ID(field_ftidType, cl, "ftidType", "Ljava/lang/String;");
- jobjectArray result;
+ jobjectArray result = NULL;
KNOWNFOLDERID* pFoldersIds = NULL;
UINT count = 0;
if (SUCCEEDED(pkfm->GetFolderIds(&pFoldersIds, &count))) {
--- a/src/java.net.http/share/classes/jdk/internal/net/http/AbstractAsyncSSLConnection.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.net.http/share/classes/jdk/internal/net/http/AbstractAsyncSSLConnection.java Wed Jul 11 19:30:26 2018 -0400
@@ -27,6 +27,7 @@
import java.net.InetSocketAddress;
import java.util.Arrays;
+import java.util.ArrayDeque;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import javax.net.ssl.SNIHostName;
@@ -89,11 +90,30 @@
final SSLEngine getEngine() { return engine; }
+ private static boolean contains(String[] rr, String target) {
+ for (String s : rr)
+ if (target.equalsIgnoreCase(s))
+ return true;
+ return false;
+ }
+
private static SSLParameters createSSLParameters(HttpClientImpl client,
ServerName serverName,
String[] alpn) {
SSLParameters sslp = client.sslParameters();
SSLParameters sslParameters = Utils.copySSLParameters(sslp);
+ // filter out unwanted protocols, if h2 only
+ if (alpn != null && alpn.length != 0 && !contains(alpn, "http/1.1")) {
+ ArrayDeque<String> l = new ArrayDeque<>();
+ for (String proto : sslParameters.getProtocols()) {
+ if (!proto.startsWith("SSL") && !proto.endsWith("v1.1") && !proto.endsWith("v1")) {
+ l.add(proto);
+ }
+ }
+ String[] a1 = l.toArray(new String[0]);
+ sslParameters.setProtocols(a1);
+ }
+
if (!disableHostnameVerification)
sslParameters.setEndpointIdentificationAlgorithm("HTTPS");
if (alpn != null) {
@@ -112,10 +132,12 @@
return sslParameters;
}
+
private static SSLEngine createEngine(SSLContext context, String serverName, int port,
SSLParameters sslParameters) {
SSLEngine engine = context.createSSLEngine(serverName, port);
engine.setUseClientMode(true);
+
engine.setSSLParameters(sslParameters);
return engine;
}
--- a/src/java.net.http/share/classes/jdk/internal/net/http/Exchange.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.net.http/share/classes/jdk/internal/net/http/Exchange.java Wed Jul 11 19:30:26 2018 -0400
@@ -316,7 +316,7 @@
proxyResponse.version, true);
return MinimalFuture.completedFuture(syntheticResponse);
} else if (t != null) {
- if (debug.on()) debug.log("checkFor407: no response - %s", t);
+ if (debug.on()) debug.log("checkFor407: no response - %s", (Object)t);
return MinimalFuture.failedFuture(t);
} else {
if (debug.on()) debug.log("checkFor407: all clear");
--- a/src/java.net.http/share/classes/jdk/internal/net/http/Http1AsyncReceiver.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.net.http/share/classes/jdk/internal/net/http/Http1AsyncReceiver.java Wed Jul 11 19:30:26 2018 -0400
@@ -386,8 +386,11 @@
// we have a flow List<ByteBuffer> upstream.
Http1AsyncDelegateSubscription subscription =
new Http1AsyncDelegateSubscription(scheduler, cancel, onSubscriptionError);
- pending.onSubscribe(subscription);
- this.delegate = delegate = pending;
+ try {
+ pending.onSubscribe(subscription);
+ } finally {
+ this.delegate = delegate = pending;
+ }
final Object captured = delegate;
if (debug.on())
debug.log("delegate is now " + captured
@@ -485,10 +488,11 @@
error = ex;
}
}
- final Throwable t = (recorded == null ? ex : recorded);
- if (debug.on())
- debug.log("recorded " + t + "\n\t delegate: " + delegate
- + "\t\t queue.isEmpty: " + queue.isEmpty(), ex);
+
+ final Throwable t = (recorded == null ? ex : recorded);
+ if (debug.on())
+ debug.log("recorded " + t + "\n\t delegate: " + delegate
+ + "\t\t queue.isEmpty: " + queue.isEmpty(), ex);
if (Log.errors()) {
Log.logError("HTTP/1 read subscriber recorded error: {0} - {1}", describe(), t);
}
--- a/src/java.net.http/share/classes/jdk/internal/net/http/Http1Exchange.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.net.http/share/classes/jdk/internal/net/http/Http1Exchange.java Wed Jul 11 19:30:26 2018 -0400
@@ -257,6 +257,14 @@
.thenCompose(unused -> {
CompletableFuture<Void> cf = new MinimalFuture<>();
try {
+ asyncReceiver.whenFinished.whenComplete((r,t) -> {
+ if (t != null) {
+ if (debug.on())
+ debug.log("asyncReceiver finished (failed=%s)", (Object)t);
+ if (!headersSentCF.isDone())
+ headersSentCF.completeAsync(() -> this, executor);
+ }
+ });
connectFlows(connection);
if (debug.on()) debug.log("requestAction.headers");
@@ -282,7 +290,8 @@
private void cancelIfFailed(Flow.Subscription s) {
asyncReceiver.whenFinished.whenCompleteAsync((r,t) -> {
- if (debug.on()) debug.log("asyncReceiver finished (failed=%s)", t);
+ if (debug.on())
+ debug.log("asyncReceiver finished (failed=%s)", (Object)t);
if (t != null) {
s.cancel();
// Don't complete exceptionally here as 't'
--- a/src/java.net.http/share/classes/jdk/internal/net/http/Http2Connection.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.net.http/share/classes/jdk/internal/net/http/Http2Connection.java Wed Jul 11 19:30:26 2018 -0400
@@ -673,7 +673,11 @@
client2.deleteConnection(this);
List<Stream<?>> c = new LinkedList<>(streams.values());
for (Stream<?> s : c) {
- s.connectionClosing(t);
+ try {
+ s.connectionClosing(t);
+ } catch (Throwable e) {
+ Log.logError("Failed to close stream {0}: {1}", s.streamid, e);
+ }
}
connection.close();
}
@@ -738,6 +742,9 @@
}
if (!(frame instanceof ResetFrame)) {
+ if (frame instanceof DataFrame) {
+ dropDataFrame((DataFrame)frame);
+ }
if (isServerInitiatedStream(streamid)) {
if (streamid < nextPushStream) {
// trailing data on a cancelled push promise stream,
@@ -776,6 +783,27 @@
}
}
+ final void dropDataFrame(DataFrame df) {
+ if (closed) return;
+ if (debug.on()) {
+ debug.log("Dropping data frame for stream %d (%d payload bytes)",
+ df.streamid(), df.payloadLength());
+ }
+ ensureWindowUpdated(df);
+ }
+
+ final void ensureWindowUpdated(DataFrame df) {
+ try {
+ if (closed) return;
+ int length = df.payloadLength();
+ if (length > 0) {
+ windowUpdater.update(length);
+ }
+ } catch(Throwable t) {
+ Log.logError("Unexpected exception while updating window: {0}", (Object)t);
+ }
+ }
+
private <T> void handlePushPromise(Stream<T> parent, PushPromiseFrame pp)
throws IOException
{
@@ -984,7 +1012,6 @@
connection.channel().getLocalAddress(),
connection.address());
SettingsFrame sf = new SettingsFrame(clientSettings);
- int initialWindowSize = sf.getParameter(INITIAL_WINDOW_SIZE);
ByteBuffer buf = framesEncoder.encodeConnectionPreface(PREFACE_BYTES, sf);
Log.logFrames(sf, "OUT");
// send preface bytes and SettingsFrame together
@@ -997,9 +1024,20 @@
Log.logTrace("Settings Frame sent");
// send a Window update for the receive buffer we are using
- // minus the initial 64 K specified in protocol
- final int len = windowUpdater.initialWindowSize - initialWindowSize;
- if (len > 0) {
+ // minus the initial 64 K -1 specified in protocol:
+ // RFC 7540, Section 6.9.2:
+ // "[...] the connection flow-control window is set to the default
+ // initial window size until a WINDOW_UPDATE frame is received."
+ //
+ // Note that the default initial window size, not to be confused
+ // with the initial window size, is defined by RFC 7540 as
+ // 64K -1.
+ final int len = windowUpdater.initialWindowSize - DEFAULT_INITIAL_WINDOW_SIZE;
+ if (len != 0) {
+ if (Log.channel()) {
+ Log.logChannel("Sending initial connection window update frame: {0} ({1} - {2})",
+ len, windowUpdater.initialWindowSize, DEFAULT_INITIAL_WINDOW_SIZE);
+ }
windowUpdater.sendWindowUpdate(len);
}
// there will be an ACK to the windows update - which should
@@ -1132,6 +1170,7 @@
private Stream<?> registerNewStream(OutgoingHeaders<Stream<?>> oh) {
Stream<?> stream = oh.getAttachment();
+ assert stream.streamid == 0;
int streamid = nextstreamid;
nextstreamid += 2;
stream.registerStream(streamid);
--- a/src/java.net.http/share/classes/jdk/internal/net/http/HttpClientImpl.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.net.http/share/classes/jdk/internal/net/http/HttpClientImpl.java Wed Jul 11 19:30:26 2018 -0400
@@ -329,7 +329,18 @@
private static SSLParameters getDefaultParams(SSLContext ctx) {
SSLParameters params = ctx.getSupportedSSLParameters();
- params.setProtocols(new String[]{"TLSv1.2"});
+ String[] protocols = params.getProtocols();
+ boolean found13 = false;
+ for (String proto : protocols) {
+ if (proto.equals("TLSv1.3")) {
+ found13 = true;
+ break;
+ }
+ }
+ if (found13)
+ params.setProtocols(new String[] {"TLSv1.3", "TLSv1.2"});
+ else
+ params.setProtocols(new String[] {"TLSv1.2"});
return params;
}
--- a/src/java.net.http/share/classes/jdk/internal/net/http/SocketTube.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.net.http/share/classes/jdk/internal/net/http/SocketTube.java Wed Jul 11 19:30:26 2018 -0400
@@ -360,7 +360,6 @@
}
} catch (Throwable t) {
signalError(t);
- subscription.cancel();
}
}
@@ -424,6 +423,8 @@
}
completed = true;
readPublisher.signalError(error);
+ Flow.Subscription subscription = this.subscription;
+ if (subscription != null) subscription.cancel();
}
// A repeatable WriteEvent which is paused after firing and can
@@ -468,7 +469,11 @@
@Override
public void cancel() {
+ if (cancelled) return;
if (debug.on()) debug.log("write: cancel");
+ if (Log.channel()) {
+ Log.logChannel("Cancelling write subscription");
+ }
dropSubscription();
upstreamSubscription.cancel();
}
@@ -503,9 +508,7 @@
} catch (Throwable t) {
if (debug.on())
debug.log("write: error while requesting more: " + t);
- cancelled = true;
signalError(t);
- subscription.cancel();
} finally {
debugState("leaving requestMore: ");
}
--- a/src/java.net.http/share/classes/jdk/internal/net/http/Stream.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.net.http/share/classes/jdk/internal/net/http/Stream.java Wed Jul 11 19:30:26 2018 -0400
@@ -185,6 +185,7 @@
int size = Utils.remaining(dsts, Integer.MAX_VALUE);
if (size == 0 && finished) {
inputQ.remove();
+ connection.ensureWindowUpdated(df); // must update connection window
Log.logTrace("responseSubscriber.onComplete");
if (debug.on()) debug.log("incoming: onComplete");
sched.stop();
@@ -197,7 +198,12 @@
inputQ.remove();
Log.logTrace("responseSubscriber.onNext {0}", size);
if (debug.on()) debug.log("incoming: onNext(%d)", size);
- subscriber.onNext(dsts);
+ try {
+ subscriber.onNext(dsts);
+ } catch (Throwable t) {
+ connection.dropDataFrame(df); // must update connection window
+ throw t;
+ }
if (consumed(df)) {
Log.logTrace("responseSubscriber.onComplete");
if (debug.on()) debug.log("incoming: onComplete");
@@ -215,6 +221,8 @@
}
} catch (Throwable throwable) {
errorRef.compareAndSet(null, throwable);
+ } finally {
+ if (sched.isStopped()) drainInputQueue();
}
Throwable t = errorRef.get();
@@ -223,20 +231,35 @@
try {
if (!onCompleteCalled) {
if (debug.on())
- debug.log("calling subscriber.onError: %s", (Object)t);
+ debug.log("calling subscriber.onError: %s", (Object) t);
subscriber.onError(t);
} else {
if (debug.on())
- debug.log("already completed: dropping error %s", (Object)t);
+ debug.log("already completed: dropping error %s", (Object) t);
}
} catch (Throwable x) {
- Log.logError("Subscriber::onError threw exception: {0}", (Object)t);
+ Log.logError("Subscriber::onError threw exception: {0}", (Object) t);
} finally {
cancelImpl(t);
+ drainInputQueue();
}
}
}
+ // must only be called from the scheduler schedule() loop.
+ // ensure that all received data frames are accounted for
+ // in the connection window flow control if the scheduler
+ // is stopped before all the data is consumed.
+ private void drainInputQueue() {
+ Http2Frame frame;
+ while ((frame = inputQ.poll()) != null) {
+ if (frame instanceof DataFrame) {
+ connection.dropDataFrame((DataFrame)frame);
+ }
+ }
+ }
+
+
// Callback invoked after the Response BodySubscriber has consumed the
// buffers contained in a DataFrame.
// Returns true if END_STREAM is reached, false otherwise.
@@ -245,15 +268,19 @@
// The entire DATA frame payload is included in flow control,
// including the Pad Length and Padding fields if present
int len = df.payloadLength();
+ boolean endStream = df.getFlag(DataFrame.END_STREAM);
+ if (len == 0) return endStream;
+
connection.windowUpdater.update(len);
- if (!df.getFlag(DataFrame.END_STREAM)) {
+ if (!endStream) {
// Don't send window update on a stream which is
// closed or half closed.
windowUpdater.update(len);
- return false; // more data coming
}
- return true; // end of stream
+
+ // true: end of stream; false: more data coming
+ return endStream;
}
boolean deRegister() {
@@ -500,8 +527,8 @@
{
int amount = frame.getUpdate();
if (amount <= 0) {
- Log.logTrace("Resetting stream: {0} %d, Window Update amount: %d\n",
- streamid, streamid, amount);
+ Log.logTrace("Resetting stream: {0}, Window Update amount: {1}",
+ streamid, amount);
connection.resetStream(streamid, ResetFrame.FLOW_CONTROL_ERROR);
} else {
assert streamid != 0;
@@ -1126,7 +1153,7 @@
connection.resetStream(streamid, ResetFrame.CANCEL);
}
}
- } catch (IOException ex) {
+ } catch (Throwable ex) {
Log.logError(ex);
}
}
@@ -1289,6 +1316,18 @@
int getStreamId() {
return streamid;
}
+
+ @Override
+ String dbgString() {
+ String dbg = dbgString;
+ if (dbg != null) return dbg;
+ if (streamid == 0) {
+ return connection.dbgString() + ":WindowUpdateSender(stream: ?)";
+ } else {
+ dbg = connection.dbgString() + ":WindowUpdateSender(stream: " + streamid + ")";
+ return dbgString = dbg;
+ }
+ }
}
/**
--- a/src/java.net.http/share/classes/jdk/internal/net/http/WindowUpdateSender.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.net.http/share/classes/jdk/internal/net/http/WindowUpdateSender.java Wed Jul 11 19:30:26 2018 -0400
@@ -25,6 +25,7 @@
package jdk.internal.net.http;
+import jdk.internal.net.http.common.FlowTube;
import jdk.internal.net.http.common.Logger;
import jdk.internal.net.http.frame.SettingsFrame;
import jdk.internal.net.http.frame.WindowUpdateFrame;
@@ -66,8 +67,9 @@
abstract int getStreamId();
void update(int delta) {
- if (debug.on()) debug.log("update: %d", delta);
- if (received.addAndGet(delta) > limit) {
+ int rcv = received.addAndGet(delta);
+ if (debug.on()) debug.log("update: %d, received: %d, limit: %d", delta, rcv, limit);
+ if (rcv > limit) {
synchronized (this) {
int tosend = received.get();
if( tosend > limit) {
@@ -83,8 +85,18 @@
connection.sendUnorderedFrame(new WindowUpdateFrame(getStreamId(), delta));
}
+ volatile String dbgString;
String dbgString() {
- return "WindowUpdateSender(stream: " + getStreamId() + ")";
+ String dbg = dbgString;
+ if (dbg != null) return dbg;
+ FlowTube tube = connection.connection.getConnectionFlow();
+ if (tube == null) {
+ return "WindowUpdateSender(stream: " + getStreamId() + ")";
+ } else {
+ int streamId = getStreamId();
+ dbg = connection.dbgString() + ":WindowUpdateSender(stream: " + streamId + ")";
+ return streamId == 0 ? dbg : (dbgString = dbg);
+ }
}
}
--- a/src/java.net.http/share/classes/jdk/internal/net/http/common/SSLFlowDelegate.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.net.http/share/classes/jdk/internal/net/http/common/SSLFlowDelegate.java Wed Jul 11 19:30:26 2018 -0400
@@ -33,6 +33,9 @@
import javax.net.ssl.SSLEngineResult.Status;
import javax.net.ssl.SSLException;
import java.io.IOException;
+import java.lang.ref.Reference;
+import java.lang.ref.ReferenceQueue;
+import java.lang.ref.WeakReference;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Collections;
@@ -93,6 +96,8 @@
// When handshake is in progress trying to wrap may produce no bytes.
private static final ByteBuffer NOTHING = ByteBuffer.allocate(0);
private static final String monProp = Utils.getProperty("jdk.internal.httpclient.monitorFlowDelegate");
+ private static final boolean isMonitored =
+ monProp != null && (monProp.equals("") || monProp.equalsIgnoreCase("true"));
final Executor exec;
final Reader reader;
@@ -100,6 +105,7 @@
final SSLEngine engine;
final String tubeName; // hack
final CompletableFuture<String> alpnCF; // completes on initial handshake
+ final Monitorable monitor = isMonitored ? this::monitor : null; // prevent GC until SSLFD is stopped
volatile boolean close_notify_received;
final CompletableFuture<Void> readerCF;
final CompletableFuture<Void> writerCF;
@@ -152,8 +158,7 @@
// Writer to the downWriter.
connect(downReader, downWriter);
- if (monProp != null && (monProp.equals("") || monProp.equalsIgnoreCase("true")))
- Monitor.add(this::monitor);
+ if (isMonitored) Monitor.add(monitor);
}
/**
@@ -202,6 +207,7 @@
public String monitor() {
StringBuilder sb = new StringBuilder();
sb.append("SSL: id ").append(id);
+ sb.append(" ").append(dbgString());
sb.append(" HS state: " + states(handshakeState));
sb.append(" Engine state: " + engine.getHandshakeStatus().toString());
if (stateList != null) {
@@ -293,8 +299,10 @@
@Override
public String toString() {
- return "READER: " + super.toString() + " readBuf: " + readBuf.toString()
- + " count: " + count.toString();
+ return "READER: " + super.toString() + ", readBuf: " + readBuf.toString()
+ + ", count: " + count.toString() + ", scheduler: "
+ + (scheduler.isStopped() ? "stopped" : "running")
+ + ", status: " + lastUnwrapStatus;
}
private void reallocReadBuf() {
@@ -335,6 +343,7 @@
}
if (complete) {
this.completing = complete;
+ minBytesRequired = 0;
}
}
}
@@ -395,13 +404,23 @@
// not enough data in the read buffer...
// no need to try to unwrap again unless we get more bytes
// than minBytesRequired = len in the read buffer.
- minBytesRequired = len;
synchronized (readBufferLock) {
+ minBytesRequired = len;
// more bytes could already have been added...
assert readBuf.remaining() >= len;
// check if we have received some data, and if so
// we can just re-spin the loop
if (readBuf.remaining() > len) continue;
+ else if (this.completing) {
+ if (debug.on()) {
+ debugr.log("BUFFER_UNDERFLOW with EOF," +
+ " %d bytes non decrypted.", len);
+ }
+ // The channel won't send us any more data, and
+ // we are in underflow: we need to fail.
+ throw new IOException("BUFFER_UNDERFLOW with EOF, "
+ + len + " bytes non decrypted.");
+ }
}
// request more data and return.
requestMore();
@@ -429,6 +448,7 @@
} catch (IOException ex) {
errorCommon(ex);
handleError(ex);
+ return;
}
if (handshaking && !complete)
return;
@@ -452,12 +472,13 @@
}
}
+ private volatile Status lastUnwrapStatus;
EngineResult unwrapBuffer(ByteBuffer src) throws IOException {
ByteBuffer dst = getAppBuffer();
int len = src.remaining();
while (true) {
SSLEngineResult sslResult = engine.unwrap(src, dst);
- switch (sslResult.getStatus()) {
+ switch (lastUnwrapStatus = sslResult.getStatus()) {
case BUFFER_OVERFLOW:
// may happen if app size buffer was changed, or if
// our 'adaptiveBufferSize' guess was too small for
@@ -507,7 +528,9 @@
}
public static class Monitor extends Thread {
- final List<Monitorable> list;
+ final List<WeakReference<Monitorable>> list;
+ final List<FinalMonitorable> finalList;
+ final ReferenceQueue<Monitorable> queue = new ReferenceQueue<>();
static Monitor themon;
static {
@@ -515,19 +538,61 @@
themon.start(); // uncomment to enable Monitor
}
+ // An instance used to temporarily store the
+ // last observable state of a monitorable object.
+ // When Monitor.remove(o) is called, we replace
+ // 'o' with a FinalMonitorable whose reference
+ // will be enqueued after the last observable state
+ // has been printed.
+ final class FinalMonitorable implements Monitorable {
+ final String finalState;
+ FinalMonitorable(Monitorable o) {
+ finalState = o.getInfo();
+ finalList.add(this);
+ }
+ @Override
+ public String getInfo() {
+ finalList.remove(this);
+ return finalState;
+ }
+ }
+
Monitor() {
super("Monitor");
setDaemon(true);
list = Collections.synchronizedList(new LinkedList<>());
+ finalList = new ArrayList<>(); // access is synchronized on list above
}
void addTarget(Monitorable o) {
- list.add(o);
+ list.add(new WeakReference<>(o, queue));
+ }
+ void removeTarget(Monitorable o) {
+ // It can take a long time for GC to clean up references.
+ // Calling Monitor.remove() early helps removing noise from the
+ // logs/
+ synchronized (list) {
+ Iterator<WeakReference<Monitorable>> it = list.iterator();
+ while (it.hasNext()) {
+ Monitorable m = it.next().get();
+ if (m == null) it.remove();
+ if (o == m) {
+ it.remove();
+ break;
+ }
+ }
+ FinalMonitorable m = new FinalMonitorable(o);
+ addTarget(m);
+ Reference.reachabilityFence(m);
+ }
}
public static void add(Monitorable o) {
themon.addTarget(o);
}
+ public static void remove(Monitorable o) {
+ themon.removeTarget(o);
+ }
@Override
public void run() {
@@ -536,7 +601,14 @@
while (true) {
Thread.sleep(20 * 1000);
synchronized (list) {
- for (Monitorable o : list) {
+ Reference<? extends Monitorable> expired;
+ while ((expired = queue.poll()) != null) list.remove(expired);
+ for (WeakReference<Monitorable> ref : list) {
+ Monitorable o = ref.get();
+ if (o == null) continue;
+ if (o instanceof FinalMonitorable) {
+ ref.enqueue();
+ }
System.out.println(o.getInfo());
System.out.println("-------------------------");
}
@@ -733,6 +805,7 @@
// downstream. Otherwise, we send the writeBuffer downstream
// and will allocate a new one next time.
volatile ByteBuffer writeBuffer;
+ private volatile Status lastWrappedStatus;
@SuppressWarnings("fallthrough")
EngineResult wrapBuffers(ByteBuffer[] src) throws SSLException {
long len = Utils.remaining(src);
@@ -747,7 +820,7 @@
while (true) {
SSLEngineResult sslResult = engine.wrap(src, dst);
if (debugw.on()) debugw.log("SSLResult: " + sslResult);
- switch (sslResult.getStatus()) {
+ switch (lastWrappedStatus = sslResult.getStatus()) {
case BUFFER_OVERFLOW:
// Shouldn't happen. We allocated buffer with packet size
// get it again if net buffer size was changed
@@ -815,8 +888,10 @@
@Override
public String toString() {
- return "WRITER: " + super.toString() +
- " writeList size " + Integer.toString(writeList.size());
+ return "WRITER: " + super.toString()
+ + ", writeList size: " + Integer.toString(writeList.size())
+ + ", scheduler: " + (scheduler.isStopped() ? "stopped" : "running")
+ + ", status: " + lastWrappedStatus;
//" writeList: " + writeList.toString();
}
}
@@ -839,6 +914,7 @@
stopped = true;
reader.stop();
writer.stop();
+ if (isMonitored) Monitor.remove(monitor);
}
private Void stopOnError(Throwable currentlyUnused) {
@@ -953,6 +1029,10 @@
case NEED_UNWRAP_AGAIN:
// do nothing else
// receiving-side data will trigger unwrap
+ if (caller == WRITER) {
+ reader.schedule();
+ return false;
+ }
break;
default:
throw new InternalError("Unexpected handshake status:"
--- a/src/java.net.http/share/classes/jdk/internal/net/http/common/SSLTube.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.net.http/share/classes/jdk/internal/net/http/common/SSLTube.java Wed Jul 11 19:30:26 2018 -0400
@@ -406,6 +406,21 @@
}
}
+ private void complete(DelegateWrapper subscriberImpl, Throwable t) {
+ try {
+ if (t == null) subscriberImpl.onComplete();
+ else subscriberImpl.onError(t);
+ if (debug.on()) {
+ debug.log("subscriber completed %s"
+ + ((t == null) ? "normally" : ("with error: " + t)));
+ }
+ } finally {
+ // Error or EOF while reading:
+ // cancel write side after completing read side
+ writeSubscription.cancel();
+ }
+ }
+
private void onNewSubscription(DelegateWrapper subscriberImpl,
Flow.Subscription subscription) {
assert subscriberImpl != null;
@@ -432,13 +447,13 @@
if (debug.on())
debug.log("onNewSubscription: subscriberImpl:%s, invoking onError:%s",
subscriberImpl, failed);
- subscriberImpl.onError(failed);
+ complete(subscriberImpl, failed);
} else if (completed) {
if (debug.on())
debug.log("onNewSubscription: subscriberImpl:%s, invoking onCompleted",
subscriberImpl);
finished = true;
- subscriberImpl.onComplete();
+ complete(subscriberImpl, null);
}
}
@@ -463,7 +478,7 @@
subscriberImpl = subscribed;
}
if (subscriberImpl != null) {
- subscriberImpl.onError(failed);
+ complete(subscriberImpl, failed);
} else {
if (debug.on())
debug.log("%s: delegate null, stored %s", this, failed);
@@ -485,14 +500,22 @@
return !(hs == NOT_HANDSHAKING || hs == FINISHED);
}
- private boolean handshakeFailed() {
+ private String handshakeFailed() {
// sslDelegate can be null if we reach here
// during the initial handshake, as that happens
// within the SSLFlowDelegate constructor.
// In that case we will want to raise an exception.
- return handshaking()
+ if (handshaking()
&& (sslDelegate == null
- || !sslDelegate.closeNotifyReceived());
+ || !sslDelegate.closeNotifyReceived())) {
+ return "Remote host terminated the handshake";
+ }
+ // The initial handshake may not have been started yet.
+ // In which case - if we are completed before the initial handshake
+ // is started, we consider this a handshake failure as well.
+ if ("SSL_NULL_WITH_NULL_NULL".equals(engine.getSession().getCipherSuite()))
+ return "Remote host closed the channel";
+ return null;
}
@Override
@@ -503,17 +526,18 @@
subscriberImpl = subscribed;
}
- if (handshakeFailed()) {
+ String handshakeFailed = handshakeFailed();
+ if (handshakeFailed != null) {
if (debug.on())
- debug.log("handshake: %s, inbound done: %s outbound done: %s",
+ debug.log("handshake: %s, inbound done: %s, outbound done: %s: %s",
engine.getHandshakeStatus(),
engine.isInboundDone(),
- engine.isOutboundDone());
- onErrorImpl(new SSLHandshakeException(
- "Remote host terminated the handshake"));
+ engine.isOutboundDone(),
+ handshakeFailed);
+ onErrorImpl(new SSLHandshakeException(handshakeFailed));
} else if (subscriberImpl != null) {
onCompleteReceived = finished = true;
- subscriberImpl.onComplete();
+ complete(subscriberImpl, null);
} else {
onCompleteReceived = true;
}
--- a/src/java.net.http/share/classes/jdk/internal/net/http/frame/SettingsFrame.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/java.net.http/share/classes/jdk/internal/net/http/frame/SettingsFrame.java Wed Jul 11 19:30:26 2018 -0400
@@ -161,14 +161,19 @@
}
}
+ public static final int DEFAULT_INITIAL_WINDOW_SIZE = 64 * K -1;
+ public static final int DEFAULT_HEADER_TABLE_SIZE = 4 * K;
+ public static final int DEFAULT_MAX_CONCURRENT_STREAMS = 100;
+ public static final int DEFAULT_MAX_FRAME_SIZE = 16 * K;
+
public static SettingsFrame getDefaultSettings() {
SettingsFrame f = new SettingsFrame();
// TODO: check these values
f.setParameter(ENABLE_PUSH, 1);
- f.setParameter(HEADER_TABLE_SIZE, 4 * K);
- f.setParameter(MAX_CONCURRENT_STREAMS, 100);
- f.setParameter(INITIAL_WINDOW_SIZE, 64 * K - 1);
- f.setParameter(MAX_FRAME_SIZE, 16 * K);
+ f.setParameter(HEADER_TABLE_SIZE, DEFAULT_HEADER_TABLE_SIZE);
+ f.setParameter(MAX_CONCURRENT_STREAMS, DEFAULT_MAX_CONCURRENT_STREAMS);
+ f.setParameter(INITIAL_WINDOW_SIZE, DEFAULT_INITIAL_WINDOW_SIZE);
+ f.setParameter(MAX_FRAME_SIZE, DEFAULT_MAX_FRAME_SIZE);
return f;
}
}
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java Wed Jul 11 19:30:26 2018 -0400
@@ -131,6 +131,10 @@
return tab.get(name);
}
+ public boolean isSupported() {
+ return this.compareTo(MIN) >= 0;
+ }
+
public Target requiredTarget() {
if (this.compareTo(JDK12) >= 0) return Target.JDK1_12;
if (this.compareTo(JDK11) >= 0) return Target.JDK1_11;
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Target.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Target.java Wed Jul 11 19:30:26 2018 -0400
@@ -49,22 +49,22 @@
JDK1_4("1.4", 48, 0),
/** JDK 5, codename Tiger. */
- JDK1_5("1.5", 49, 0),
+ JDK1_5("5", 49, 0),
/** JDK 6. */
- JDK1_6("1.6", 50, 0),
+ JDK1_6("6", 50, 0),
/** JDK 7. */
- JDK1_7("1.7", 51, 0),
+ JDK1_7("7", 51, 0),
/** JDK 8. */
- JDK1_8("1.8", 52, 0),
+ JDK1_8("8", 52, 0),
/** JDK 9. */
- JDK1_9("1.9", 53, 0),
+ JDK1_9("9", 53, 0),
/** JDK 10. */
- JDK1_10("1.10", 54, 0),
+ JDK1_10("10", 54, 0),
/** JDK 11. */
JDK1_11("11", 55, 0),
@@ -95,14 +95,12 @@
for (Target t : values()) {
tab.put(t.name, t);
}
- tab.put("5", JDK1_5);
- tab.put("6", JDK1_6);
- tab.put("7", JDK1_7);
- tab.put("8", JDK1_8);
- tab.put("9", JDK1_9);
- tab.put("10", JDK1_10);
- tab.put("11", JDK1_11);
- tab.put("12", JDK1_12);
+ tab.put("1.5", JDK1_5);
+ tab.put("1.6", JDK1_6);
+ tab.put("1.7", JDK1_7);
+ tab.put("1.8", JDK1_8);
+ tab.put("1.9", JDK1_9);
+ tab.put("1.10", JDK1_10);
}
public final String name;
@@ -120,6 +118,10 @@
return tab.get(name);
}
+ public boolean isSupported() {
+ return this.compareTo(MIN) >= 0;
+ }
+
/** Return the character to be used in constructing synthetic
* identifiers, where not specified by the JLS.
*/
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/main/Option.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/main/Option.java Wed Jul 11 19:30:26 2018 -0400
@@ -41,6 +41,7 @@
import java.util.Locale;
import java.util.ServiceLoader;
import java.util.Set;
+import java.util.StringJoiner;
import java.util.TreeSet;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
@@ -295,6 +296,16 @@
}
super.process(helper, option, operand);
}
+
+ @Override
+ protected void help(Log log) {
+ StringJoiner sj = new StringJoiner(", ");
+ for(Source source : Source.values()) {
+ if (source.isSupported())
+ sj.add(source.name);
+ }
+ super.help(log, log.localize(PrefixKind.JAVAC, descrKey, sj.toString()));
+ }
},
TARGET("-target", "opt.arg.release", "opt.target", STANDARD, BASIC) {
@@ -306,6 +317,16 @@
}
super.process(helper, option, operand);
}
+
+ @Override
+ protected void help(Log log) {
+ StringJoiner sj = new StringJoiner(", ");
+ for(Target target : Target.values()) {
+ if (target.isSupported())
+ sj.add(target.name);
+ }
+ super.help(log, log.localize(PrefixKind.JAVAC, descrKey, sj.toString()));
+ }
},
RELEASE("--release", "opt.arg.release", "opt.release", STANDARD, BASIC) {
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java Wed Jul 11 19:30:26 2018 -0400
@@ -1179,7 +1179,9 @@
cs.reset();
cs.classfile = file;
cs.completer = initialCompleter;
- cs.owner.members().enter(cs); //XXX - OverwriteBetweenCompilations; syms.getClass is not sufficient anymore
+ if (cs.owner.kind == PCK) {
+ cs.owner.members().enter(cs); //XXX - OverwriteBetweenCompilations; syms.getClass is not sufficient anymore
+ }
}
list = list.prepend(cs);
}
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java Wed Jul 11 19:30:26 2018 -0400
@@ -123,7 +123,7 @@
enclosing != null &&
NestingKind.ANONYMOUS ==
// Use an anonymous class to determine anonymity!
- (new SimpleElementVisitor7<NestingKind, Void>() {
+ (new SimpleElementVisitor9<NestingKind, Void>() {
@Override @DefinedBy(Api.LANGUAGE_MODEL)
public NestingKind visitType(TypeElement e, Void p) {
return e.getNestingKind();
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/javac.properties Mon Jul 09 15:24:43 2018 -0400
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/javac.properties Wed Jul 11 19:30:26 2018 -0400
@@ -80,11 +80,11 @@
javac.opt.profile=\
Check that API used is available in the specified profile
javac.opt.target=\
- Generate class files for specific VM version
+ Generate class files for specific VM version. Supported versions: {0}
javac.opt.release=\
- Compile for a specific VM version. Supported targets: {0}
+ Compile for a specific release. Supported releases: {0}
javac.opt.source=\
- Provide source compatibility with specified release
+ Provide source compatibility with specified release. Supported releases: {0}
javac.opt.Werror=\
Terminate compilation if warnings occur
javac.opt.A=\
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/Contents.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/Contents.java Wed Jul 11 19:30:26 2018 -0400
@@ -118,7 +118,6 @@
public final Content indexLabel;
public final Content interfaceLabel;
public final Content interfaces;
- public final Content interfacesItalic;
public final Content methodDetailLabel;
public final Content methodLabel;
public final Content methodSummary;
@@ -157,9 +156,10 @@
public final Content properties;
public final Content propertyLabel;
public final Content propertyDetailsLabel;
- public final Content propertySummary;
+ public final Content propertySummaryLabel;
public final Content seeLabel;
public final Content serializedForm;
+ public final Content servicesLabel;
public final Content specifiedByLabel;
public final Content subclassesLabel;
public final Content subinterfacesLabel;
@@ -245,7 +245,6 @@
indexLabel = getContent("doclet.Index");
interfaceLabel = getContent("doclet.Interface");
interfaces = getContent("doclet.Interfaces");
- interfacesItalic = getContent("doclet.Interfaces_Italic");
methodDetailLabel = getContent("doclet.Method_Detail");
methodSummary = getContent("doclet.Method_Summary");
methodLabel = getContent("doclet.Method");
@@ -284,9 +283,10 @@
properties = getContent("doclet.Properties");
propertyLabel = getContent("doclet.Property");
propertyDetailsLabel = getContent("doclet.Property_Detail");
- propertySummary = getContent("doclet.Property_Summary");
+ propertySummaryLabel = getContent("doclet.Property_Summary");
seeLabel = getContent("doclet.See");
serializedForm = getContent("doclet.Serialized_Form");
+ servicesLabel = getContent("doclet.Services");
specifiedByLabel = getContent("doclet.Specified_By");
subclassesLabel = getContent("doclet.Subclasses");
subinterfacesLabel = getContent("doclet.Subinterfaces");
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HelpWriter.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HelpWriter.java Wed Jul 11 19:30:26 2018 -0400
@@ -143,9 +143,13 @@
htmlTree = (configuration.allowTag(HtmlTag.SECTION))
? HtmlTree.SECTION(overviewHeading)
: HtmlTree.LI(HtmlStyle.blockList, overviewHeading);
- Content overviewBody = contents.getContent("doclet.help.overview.body",
- links.createLink(DocPaths.overviewSummary(configuration.frames),
- resources.getText("doclet.Overview")));
+ String overviewKey = configuration.showModules
+ ? "doclet.help.overview.modules.body"
+ : "doclet.help.overview.packages.body";
+ Content overviewLink = links.createLink(
+ DocPaths.overviewSummary(configuration.frames),
+ resources.getText("doclet.Overview"));
+ Content overviewBody = contents.getContent(overviewKey, overviewLink);
Content overviewPara = HtmlTree.P(overviewBody);
htmlTree.addContent(overviewPara);
if (configuration.allowTag(HtmlTag.SECTION)) {
@@ -155,6 +159,29 @@
}
}
+ // Module
+ if (configuration.showModules) {
+ Content moduleHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
+ contents.moduleLabel);
+ htmlTree = (configuration.allowTag(HtmlTag.SECTION))
+ ? HtmlTree.SECTION(moduleHead)
+ : HtmlTree.LI(HtmlStyle.blockList, moduleHead);
+ Content moduleIntro = contents.getContent("doclet.help.module.intro");
+ Content modulePara = HtmlTree.P(moduleIntro);
+ htmlTree.addContent(modulePara);
+ HtmlTree ulModule = new HtmlTree(HtmlTag.UL);
+ ulModule.addContent(HtmlTree.LI(contents.packagesLabel));
+ ulModule.addContent(HtmlTree.LI(contents.modulesLabel));
+ ulModule.addContent(HtmlTree.LI(contents.servicesLabel));
+ htmlTree.addContent(ulModule);
+ if (configuration.allowTag(HtmlTag.SECTION)) {
+ ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
+ } else {
+ ul.addContent(htmlTree);
+ }
+
+ }
+
// Package
Content packageHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
contents.packageLabel);
@@ -165,7 +192,7 @@
Content packagePara = HtmlTree.P(packageIntro);
htmlTree.addContent(packagePara);
HtmlTree ulPackage = new HtmlTree(HtmlTag.UL);
- ulPackage.addContent(HtmlTree.LI(contents.interfacesItalic));
+ ulPackage.addContent(HtmlTree.LI(contents.interfaces));
ulPackage.addContent(HtmlTree.LI(contents.classes));
ulPackage.addContent(HtmlTree.LI(contents.enums));
ulPackage.addContent(HtmlTree.LI(contents.exceptions));
@@ -195,14 +222,18 @@
ul1.addContent(HtmlTree.LI(contents.getContent("doclet.help.class_interface.declaration")));
ul1.addContent(HtmlTree.LI(contents.getContent("doclet.help.class_interface.description")));
htmlTree.addContent(ul1);
+ htmlTree.addContent(new HtmlTree(HtmlTag.BR));
HtmlTree ul2 = new HtmlTree(HtmlTag.UL);
ul2.addContent(HtmlTree.LI(contents.nestedClassSummary));
ul2.addContent(HtmlTree.LI(contents.fieldSummaryLabel));
+ ul2.addContent(HtmlTree.LI(contents.propertySummaryLabel));
ul2.addContent(HtmlTree.LI(contents.constructorSummaryLabel));
ul2.addContent(HtmlTree.LI(contents.methodSummary));
htmlTree.addContent(ul2);
+ htmlTree.addContent(new HtmlTree(HtmlTag.BR));
HtmlTree ul3 = new HtmlTree(HtmlTag.UL);
ul3.addContent(HtmlTree.LI(contents.fieldDetailsLabel));
+ ul3.addContent(HtmlTree.LI(contents.propertyDetailsLabel));
ul3.addContent(HtmlTree.LI(contents.constructorDetailsLabel));
ul3.addContent(HtmlTree.LI(contents.methodDetailLabel));
htmlTree.addContent(ul3);
@@ -342,21 +373,6 @@
}
}
- // Prev/Next
- Content prevHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
- contents.getContent("doclet.help.prev_next.head"));
- htmlTree = (configuration.allowTag(HtmlTag.SECTION))
- ? HtmlTree.SECTION(prevHead)
- : HtmlTree.LI(HtmlStyle.blockList, prevHead);
- Content prevBody = contents.getContent("doclet.help.prev_next.body");
- Content prevPara = HtmlTree.P(prevBody);
- htmlTree.addContent(prevPara);
- if (configuration.allowTag(HtmlTag.SECTION)) {
- ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
- } else {
- ul.addContent(htmlTree);
- }
-
// Frames
if (configuration.frames) {
Content frameHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
@@ -367,12 +383,12 @@
Content framesBody = contents.getContent("doclet.help.frames.body");
Content framePara = HtmlTree.P(framesBody);
htmlTree.addContent(framePara);
- }
- if (configuration.allowTag(HtmlTag.SECTION)) {
- ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
- } else {
- ul.addContent(htmlTree);
+ if (configuration.allowTag(HtmlTag.SECTION)) {
+ ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
+ } else {
+ ul.addContent(htmlTree);
+ }
}
// Serialized Form
@@ -408,9 +424,10 @@
}
Content divContent = HtmlTree.DIV(HtmlStyle.contentContainer, ul);
- Content line30 = HtmlTree.SPAN(HtmlStyle.emphasizedPhrase,
+ divContent.addContent(new HtmlTree(HtmlTag.HR));
+ Content footnote = HtmlTree.SPAN(HtmlStyle.emphasizedPhrase,
contents.getContent("doclet.help.footnote"));
- divContent.addContent(line30);
+ divContent.addContent(footnote);
if (configuration.allowTag(HtmlTag.MAIN)) {
mainTree.addContent(divContent);
contentTree.addContent(mainTree);
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PropertyWriterImpl.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PropertyWriterImpl.java Wed Jul 11 19:30:26 2018 -0400
@@ -37,7 +37,6 @@
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
-import jdk.javadoc.internal.doclets.formats.html.markup.Navigation;
import jdk.javadoc.internal.doclets.formats.html.markup.StringContent;
import jdk.javadoc.internal.doclets.toolkit.Content;
import jdk.javadoc.internal.doclets.toolkit.MemberSummaryWriter;
@@ -206,7 +205,7 @@
@Override
public void addSummaryLabel(Content memberTree) {
Content label = HtmlTree.HEADING(HtmlConstants.SUMMARY_HEADING,
- contents.propertySummary);
+ contents.propertySummaryLabel);
memberTree.addContent(label);
}
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard.properties Mon Jul 09 15:24:43 2018 -0400
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard.properties Wed Jul 11 19:30:26 2018 -0400
@@ -92,7 +92,7 @@
doclet.Description_From_Interface=Description copied from interface:
doclet.Description_From_Class=Description copied from class:
doclet.No_Non_Deprecated_Classes_To_Document=No non-deprecated classes found to document.
-doclet.Interfaces_Italic=Interfaces (italic)
+doclet.Interfaces=Interfaces
doclet.Enclosing_Class=Enclosing class:
doclet.Enclosing_Interface=Enclosing interface:
doclet.Window_Source_title=Source code
@@ -103,20 +103,26 @@
doclet.help.intro=\
This API (Application Programming Interface) document has pages corresponding to the items in \
the navigation bar, described as follows.
-doclet.help.overview.body=\
+doclet.help.overview.modules.body=\
+ The {0} page is the front page of this API document and provides a list of all modules with a \
+ summary for each. This page can also contain an overall description of the set of modules.
+doclet.help.overview.packages.body=\
The {0} page is the front page of this API document and provides a list of all packages with a \
summary for each. This page can also contain an overall description of the set of packages.
doclet.help.package.intro=\
Each package has a page that contains a list of its classes and interfaces, with a summary for \
- each. This page can contain six categories:
+ each. These pages may contain six categories:
+doclet.help.module.intro=\
+ Each module has a page that contains a list of its packages, dependencies on other modules, \
+ and services, with a summary for each. These page may contain three categories:
doclet.help.class_interface.head=\
- Class/Interface
+ Class or Interface
doclet.help.class_interface.intro=\
Each class, interface, nested class and nested interface has its own separate page. Each of \
these pages has three sections consisting of a class/interface description, summary tables, \
and detailed member descriptions:
doclet.help.class_interface.inheritance_diagram=\
- Class inheritance diagram
+ Class Inheritance Diagram
doclet.help.class_interface.subclasses=\
Direct Subclasses
doclet.help.class_interface.subinterfaces=\
@@ -124,9 +130,9 @@
doclet.help.class_interface.implementations=\
All Known Implementing Classes
doclet.help.class_interface.declaration=\
- Class/interface declaration
+ Class or Interface Declaration
doclet.help.class_interface.description=\
- Class/interface description
+ Class or Interface Description
doclet.help.class_interface.summary=\
Each summary entry contains the first sentence from the detailed description for that item. \
The summary entries are alphabetical, while the detailed descriptions are in the order they \
@@ -136,7 +142,7 @@
doclet.help.use.body=\
Each documented package, class and interface has its own Use page. This page describes what \
packages, classes, methods, constructors and fields use any part of the given class or \
- package. Given a class or interface A, its Use page includes subclasses of A, fields declared \
+ package. Given a class or interface A, its "Use" page includes subclasses of A, fields declared \
as A, methods that return A, and methods and constructors with parameters of type A. \
You can access this page by first going to the package, class or interface, then clicking on \
the "Use" link in the navigation bar.
@@ -144,12 +150,12 @@
Tree (Class Hierarchy)
doclet.help.tree.intro=\
There is a {0} page for all packages, plus a hierarchy for each package. Each hierarchy page \
- contains a list of classes and a list of interfaces. The classes are organized by inheritance \
- structure starting with {1}. The interfaces do not inherit from {1}.
+ contains a list of classes and a list of interfaces. Classes are organized by inheritance \
+ structure starting with {1}. Interfaces do not inherit from {1}.
doclet.help.tree.overview=\
When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
doclet.help.tree.package=\
- When viewing a particular package, class or interface page, clicking "Tree" displays the \
+ When viewing a particular package, class or interface page, clicking on "Tree" displays the \
hierarchy for only that package.
doclet.help.deprecated.body=\
The {0} page lists all of the API that have been deprecated. A deprecated API is not \
@@ -158,12 +164,8 @@
doclet.help.index.head=\
Index
doclet.help.index.body=\
- The {0} contains an alphabetic list of all classes, interfaces, constructors, methods, \
- and fields.
-doclet.help.prev_next.head=\
- Prev/Next
-doclet.help.prev_next.body=\
- These links take you to the next or previous class, interface, package, or related page.
+ The {0} contains an alphabetic index of all classes, interfaces, constructors, methods, \
+ and fields, as well as lists of all packages and all classes.
doclet.help.frames.head=\
Frames/No Frames
doclet.help.frames.body=\
@@ -177,19 +179,19 @@
doclet.help.constants.body=\
The {0} page lists the static final fields and their values.
doclet.help.footnote=\
- This help file applies to API documentation generated using the standard doclet.
+ This help file applies to API documentation generated by the standard doclet.
doclet.help.enum.intro=\
Each enum has its own separate page with the following sections:
doclet.help.enum.declaration=\
- Enum declaration
+ Enum Declaration
doclet.help.enum.definition=\
- Enum description
+ Enum Description
doclet.help.annotation_type.intro=\
Each annotation type has its own separate page with the following sections:
doclet.help.annotation_type.declaration=\
- Annotation Type declaration
+ Annotation Type Declaration
doclet.help.annotation_type.description=\
- Annotation Type description
+ Annotation Type Description
doclet.ClassUse_Packages.that.use.0=Packages that use {0}
doclet.ClassUse_Uses.of.0.in.1=Uses of {0} in {1}
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets.properties Mon Jul 09 15:24:43 2018 -0400
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets.properties Wed Jul 11 19:30:26 2018 -0400
@@ -75,6 +75,7 @@
doclet.See_Also=See Also:
doclet.See=See:
doclet.SerialData=Serial Data:
+doclet.Services=Services
doclet.Since=Since:
doclet.Throws=Throws:
doclet.Version=Version:
@@ -117,7 +118,6 @@
doclet.Exceptions=Exceptions
doclet.Errors=Errors
doclet.Classes=Classes
-doclet.Packages=Packages
doclet.packages=packages
doclet.modules=modules
doclet.types=types
--- a/src/jdk.jdwp.agent/unix/native/libdt_socket/socket_md.c Mon Jul 09 15:24:43 2018 -0400
+++ b/src/jdk.jdwp.agent/unix/native/libdt_socket/socket_md.c Wed Jul 11 19:30:26 2018 -0400
@@ -145,9 +145,15 @@
int dbgsysSocketClose(int fd) {
int rv;
+
+ /* AIX recommends to repeat the close call on EINTR */
+#if defined(_AIX)
do {
rv = close(fd);
} while (rv == -1 && errno == EINTR);
+#else
+ rv = close(fd);
+#endif
return rv;
}
--- a/src/jdk.jsobject/share/classes/netscape/javascript/JSObject.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/jdk.jsobject/share/classes/netscape/javascript/JSObject.java Wed Jul 11 19:30:26 2018 -0400
@@ -151,7 +151,7 @@
* JavaScript engine or if applet is {@code null}
*
* @deprecated The Applet API is deprecated. See the
- * <a href="{@docRoot}/java/applet/package-summary.html">
+ * <a href="{@docRoot}/java.desktop/java/applet/package-summary.html">
* java.applet package documentation</a> for further information.
*/
--- a/src/jdk.security.auth/share/classes/com/sun/security/auth/UnixNumericGroupPrincipal.java Mon Jul 09 15:24:43 2018 -0400
+++ b/src/jdk.security.auth/share/classes/com/sun/security/auth/UnixNumericGroupPrincipal.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,6 +26,7 @@
package com.sun.security.auth;
import java.security.Principal;
+import java.util.Objects;
/**
* This class implements the {@code Principal} interface
@@ -195,6 +196,6 @@
* @return a hash code for this {@code UnixNumericGroupPrincipal}.
*/
public int hashCode() {
- return toString().hashCode();
+ return Objects.hash(name, isPrimaryGroup());
}
}
--- a/test/hotspot/gtest/gc/g1/test_heapRegion.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/gtest/gc/g1/test_heapRegion.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -27,6 +27,9 @@
#include "gc/g1/g1ConcurrentMarkBitMap.inline.hpp"
#include "gc/g1/heapRegion.inline.hpp"
#include "gc/shared/referenceProcessor.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
+#include "runtime/vm_operations.hpp"
+#include "runtime/vmThread.hpp"
#include "unittest.hpp"
class VerifyAndCountMarkClosure : public StackObj {
@@ -60,11 +63,12 @@
#define MARK_OFFSET_2 ( 99 * MinObjAlignment)
#define MARK_OFFSET_3 (337 * MinObjAlignment)
-TEST_OTHER_VM(HeapRegion, apply_to_marked_objects) {
- if (!UseG1GC) {
- return;
- }
+class VM_HeapRegionApplyToMarkedObjectsTest : public VM_GTestExecuteAtSafepoint {
+public:
+ void doit();
+};
+void VM_HeapRegionApplyToMarkedObjectsTest::doit() {
G1CollectedHeap* heap = G1CollectedHeap::heap();
// Using region 0 for testing.
@@ -80,6 +84,8 @@
VerifyAndCountMarkClosure cl(bitmap);
+ HeapWord* old_top = region->top();
+
// When top is equal to bottom the closure should not be
// applied to any object because apply_to_marked_objects
// will stop at HeapRegion::scan_limit which is equal to top.
@@ -112,5 +118,19 @@
region->apply_to_marked_objects(bitmap, &cl);
EXPECT_EQ(4, cl.count());
cl.reset();
+
+ region->set_top(old_top);
}
+TEST_VM(HeapRegion, apply_to_marked_object) {
+ if (!UseG1GC) {
+ return;
+ }
+
+ // Run the test in our very own safepoint, because otherwise it
+ // modifies a region behind the back of a possibly using allocation
+ // or running GC.
+ VM_HeapRegionApplyToMarkedObjectsTest op;
+ ThreadInVMfromNative invm(JavaThread::current());
+ VMThread::execute(&op);
+}
--- a/test/hotspot/gtest/gc/z/test_zAddress.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/gtest/gc/z/test_zAddress.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -1,6 +1,24 @@
/*
* Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
- * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
*/
#include "precompiled.hpp"
--- a/test/hotspot/gtest/gc/z/test_zArray.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/gtest/gc/z/test_zArray.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -1,6 +1,24 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
*/
#include "precompiled.hpp"
--- a/test/hotspot/gtest/gc/z/test_zBitField.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/gtest/gc/z/test_zBitField.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -1,6 +1,24 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
*/
#include "precompiled.hpp"
--- a/test/hotspot/gtest/gc/z/test_zBitMap.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/gtest/gc/z/test_zBitMap.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -1,6 +1,24 @@
/*
* Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
- * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
*/
#include "precompiled.hpp"
--- a/test/hotspot/gtest/gc/z/test_zForwardingTable.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/gtest/gc/z/test_zForwardingTable.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -1,6 +1,24 @@
/*
* Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
- * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
*/
#include "precompiled.hpp"
--- a/test/hotspot/gtest/gc/z/test_zList.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/gtest/gc/z/test_zList.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -1,6 +1,24 @@
/*
* Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
- * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
*/
#include "precompiled.hpp"
--- a/test/hotspot/gtest/gc/z/test_zLiveMap.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/gtest/gc/z/test_zLiveMap.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -1,6 +1,24 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
*/
#include "precompiled.hpp"
--- a/test/hotspot/gtest/gc/z/test_zPhysicalMemory.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/gtest/gc/z/test_zPhysicalMemory.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -1,6 +1,24 @@
/*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
- * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
*/
#include "precompiled.hpp"
@@ -37,6 +55,9 @@
ZPhysicalMemoryManager pmem_manager(10 * SegmentSize, SegmentSize);
+ pmem_manager.try_ensure_unused_capacity(10 * SegmentSize);
+ EXPECT_EQ(pmem_manager.unused_capacity(), 10 * SegmentSize);
+
ZPhysicalMemory pmem = pmem_manager.alloc(8 * SegmentSize);
EXPECT_EQ(pmem.nsegments(), 1u) << "wrong number of segments";
--- a/test/hotspot/gtest/gc/z/test_zUtils.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/gtest/gc/z/test_zUtils.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -1,6 +1,24 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
*/
#include "precompiled.hpp"
--- a/test/hotspot/gtest/gc/z/test_zVirtualMemory.cpp Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/gtest/gc/z/test_zVirtualMemory.cpp Wed Jul 11 19:30:26 2018 -0400
@@ -1,6 +1,24 @@
/*
* Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
- * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
*/
#include "precompiled.hpp"
--- a/test/hotspot/gtest/utilities/utilitiesHelper.inline.hpp Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/gtest/utilities/utilitiesHelper.inline.hpp Wed Jul 11 19:30:26 2018 -0400
@@ -35,7 +35,7 @@
public:
Semaphore* _test_complete;
VM_StopSafepoint(Semaphore* wait_for) : _test_complete(wait_for) {}
- VMOp_Type type() const { return VMOp_Dummy; }
+ VMOp_Type type() const { return VMOp_None; }
Mode evaluation_mode() const { return _no_safepoint; }
bool is_cheap_allocated() const { return false; }
void doit() { _test_complete->wait(); }
--- a/test/hotspot/jtreg/Makefile Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/Makefile Wed Jul 11 19:30:26 2018 -0400
@@ -4,9 +4,7 @@
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation. Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
+# published by the Free Software Foundation.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/ProblemList-graal.txt Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/ProblemList-graal.txt Wed Jul 11 19:30:26 2018 -0400
@@ -95,6 +95,7 @@
compiler/intrinsics/mathexact/sanity/MultiplyExactLongTest.java 8202124 generic-all
compiler/intrinsics/mathexact/sanity/MultiplyExactIntTest.java 8202124 generic-all
compiler/whitebox/DeoptimizeAllTest.java 8202124 generic-all
+compiler/whitebox/DeoptimizeFramesTest.java 8202124 generic-all
compiler/whitebox/DeoptimizeMethodTest.java 8202124 generic-all
compiler/whitebox/ForceNMethodSweepTest.java 8202124 generic-all
compiler/whitebox/GetNMethodTest.java 8202124 generic-all
@@ -181,3 +182,5 @@
org.graalvm.compiler.core.test.CountedLoopTest 8199885
org.graalvm.compiler.debug.test.DebugContextTest 8203504
org.graalvm.compiler.core.test.VerifyDebugUsageTest 8205078
+
+org.graalvm.compiler.hotspot.test.GraalOSRTest 8206947
--- a/test/hotspot/jtreg/TEST.ROOT Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/TEST.ROOT Wed Jul 11 19:30:26 2018 -0400
@@ -29,7 +29,7 @@
# The list of keywords supported in this test suite
keys=cte_test jcmd nmt regression gc stress metaspace headful intermittent
-groups=TEST.groups
+groups=TEST.groups TEST.quick-groups
# Source files for classes that will be used at the beginning of each test suite run,
# to determine additional characteristics of the system for use with the @requires tag.
--- a/test/hotspot/jtreg/TEST.groups Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/TEST.groups Wed Jul 11 19:30:26 2018 -0400
@@ -329,846 +329,19 @@
vmTestbase_nsk_monitoring = \
vmTestbase/nsk/monitoring
-vmTestbase_nsk_monitoring_quick = \
- vmTestbase/nsk/monitoring/MemoryNotificationInfo/MemoryNotificationInfo/info001/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryNotificationInfo/from/from001/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryNotificationInfo/getCount/getcount001/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryNotificationInfo/getPoolName/getpoolname001/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryNotificationInfo/getUsage/getusage001/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsage/getusage001/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsage/getusage002/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsage/getusage003/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsage/getusage004/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsage/getusage005/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThreshold/getthreshold001/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThreshold/getthreshold002/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThreshold/getthreshold003/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThreshold/getthreshold004/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThreshold/getthreshold005/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThresholdCount/getcount001/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThresholdCount/getcount002/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThresholdCount/getcount003/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThresholdCount/getcount004/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThresholdCount/getcount005/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/getPeakUsage/getpeak001/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/getPeakUsage/getpeak002/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/getPeakUsage/getpeak003/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/getPeakUsage/getpeak004/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/getPeakUsage/getpeak005/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsage/getusage001/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsage/getusage002/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsage/getusage003/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsage/getusage004/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsage/getusage005/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThreshold/getthreshold001/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThreshold/getthreshold002/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThreshold/getthreshold003/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThreshold/getthreshold004/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThreshold/getthreshold005/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThresholdCount/getcount001/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThresholdCount/getcount002/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThresholdCount/getcount003/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThresholdCount/getcount004/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThresholdCount/getcount005/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdExceeded/isexceeded001/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdExceeded/isexceeded002/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdExceeded/isexceeded003/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdExceeded/isexceeded004/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdExceeded/isexceeded005/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdSupported/issupported001/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdSupported/issupported002/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdSupported/issupported003/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdSupported/issupported004/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdSupported/issupported005/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdExceeded/isexceeded001/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdExceeded/isexceeded002/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdExceeded/isexceeded003/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdExceeded/isexceeded004/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdExceeded/isexceeded005/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdSupported/issupported001/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdSupported/issupported002/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdSupported/issupported003/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdSupported/issupported004/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdSupported/issupported005/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/resetPeakUsage/reset001/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/resetPeakUsage/reset002/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/resetPeakUsage/reset003/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/resetPeakUsage/reset004/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/resetPeakUsage/reset005/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/setCollectionUsageThreshold/setthreshold001/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/setCollectionUsageThreshold/setthreshold002/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/setCollectionUsageThreshold/setthreshold003/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/setCollectionUsageThreshold/setthreshold004/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/setCollectionUsageThreshold/setthreshold005/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/setUsageThreshold/setthreshold001/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/setUsageThreshold/setthreshold002/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/setUsageThreshold/setthreshold003/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/setUsageThreshold/setthreshold004/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryPoolMBean/setUsageThreshold/setthreshold005/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryUsage/MemoryUsage/memoryusage001/TestDescription.java \
- vmTestbase/nsk/monitoring/MemoryUsage/from/from001/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadInfo/from_c/from_c001/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadInfo/getLockName/getlockname001/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadInfo/getLockOwnerName/getlockownername001/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadInfo/isInNative/isinnative001/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadInfo/isSuspended/issuspended001/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadInfo/isSuspended/issuspended002/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/findMonitorDeadlockedThreads/find001/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/findMonitorDeadlockedThreads/find002/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/findMonitorDeadlockedThreads/find003/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/findMonitorDeadlockedThreads/find004/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/findMonitorDeadlockedThreads/find005/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/findMonitorDeadlockedThreads/find006/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/isCurrentThreadCpuTimeSupported/curthcputime001/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/isCurrentThreadCpuTimeSupported/curthcputime002/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/isCurrentThreadCpuTimeSupported/curthcputime003/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/isCurrentThreadCpuTimeSupported/curthcputime004/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/isCurrentThreadCpuTimeSupported/curthcputime005/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/isThreadContentionMonitoringSupported/thcontmonitor001/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/isThreadContentionMonitoringSupported/thcontmonitor002/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/isThreadContentionMonitoringSupported/thcontmonitor003/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/isThreadContentionMonitoringSupported/thcontmonitor004/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/isThreadContentionMonitoringSupported/thcontmonitor005/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/isThreadCpuTimeSupported/thcputime001/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/isThreadCpuTimeSupported/thcputime002/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/isThreadCpuTimeSupported/thcputime003/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/isThreadCpuTimeSupported/thcputime004/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/isThreadCpuTimeSupported/thcputime005/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/resetPeakThreadCount/reset001/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/resetPeakThreadCount/reset002/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/resetPeakThreadCount/reset003/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/resetPeakThreadCount/reset004/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/resetPeakThreadCount/reset005/TestDescription.java \
- vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerLevel/getloggerlevel001/TestDescription.java \
- vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerLevel/getloggerlevel002/TestDescription.java \
- vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerLevel/getloggerlevel003/TestDescription.java \
- vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerLevel/getloggerlevel004/TestDescription.java \
- vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerLevel/getloggerlevel005/TestDescription.java \
- vmTestbase/nsk/monitoring/LoggingMXBean/setLoggerLevel/setloggerlevel001/TestDescription.java \
- vmTestbase/nsk/monitoring/LoggingMXBean/setLoggerLevel/setloggerlevel002/TestDescription.java \
- vmTestbase/nsk/monitoring/LoggingMXBean/setLoggerLevel/setloggerlevel003/TestDescription.java \
- vmTestbase/nsk/monitoring/LoggingMXBean/setLoggerLevel/setloggerlevel004/TestDescription.java \
- vmTestbase/nsk/monitoring/LoggingMXBean/setLoggerLevel/setloggerlevel005/TestDescription.java \
- vmTestbase/nsk/monitoring/LoggingMXBean/getParentLoggerName/getparentloggername001/TestDescription.java \
- vmTestbase/nsk/monitoring/LoggingMXBean/getParentLoggerName/getparentloggername002/TestDescription.java \
- vmTestbase/nsk/monitoring/LoggingMXBean/getParentLoggerName/getparentloggername003/TestDescription.java \
- vmTestbase/nsk/monitoring/LoggingMXBean/getParentLoggerName/getparentloggername004/TestDescription.java \
- vmTestbase/nsk/monitoring/LoggingMXBean/getParentLoggerName/getparentloggername005/TestDescription.java \
- vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerNames/getloggernames001/TestDescription.java \
- vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerNames/getloggernames002/TestDescription.java \
- vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerNames/getloggernames003/TestDescription.java \
- vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerNames/getloggernames004/TestDescription.java \
- vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerNames/getloggernames005/TestDescription.java \
- vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionCount/getcollectioncount001/TestDescription.java \
- vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionCount/getcollectioncount002/TestDescription.java \
- vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionCount/getcollectioncount003/TestDescription.java \
- vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionCount/getcollectioncount004/TestDescription.java \
- vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionCount/getcollectioncount005/TestDescription.java \
- vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionTime/getcollectiontime001/TestDescription.java \
- vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionTime/getcollectiontime002/TestDescription.java \
- vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionTime/getcollectiontime003/TestDescription.java \
- vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionTime/getcollectiontime004/TestDescription.java \
- vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionTime/getcollectiontime005/TestDescription.java \
- vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean001/RuntimeMXBean001.java \
- vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean002/TestDescription.java \
- vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean003/TestDescription.java \
- vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean004/TestDescription.java \
- vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean005/TestDescription.java \
- vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean006/RuntimeMXBean006.java \
- vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean007/TestDescription.java \
- vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean008/TestDescription.java \
- vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean009/TestDescription.java \
- vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean010/TestDescription.java \
- vmTestbase/nsk/monitoring/CompilationMXBean/comptimemon001/comptimemon001.java \
- vmTestbase/nsk/monitoring/CompilationMXBean/comptimemon002/TestDescription.java \
- vmTestbase/nsk/monitoring/CompilationMXBean/comptimemon003/TestDescription.java \
- vmTestbase/nsk/monitoring/CompilationMXBean/comptimemon004/TestDescription.java \
- vmTestbase/nsk/monitoring/CompilationMXBean/comptimemon005/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/TimedWaitingThread/TimedWaitingThread001/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/TimedWaitingThread/TimedWaitingThread002/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/TimedWaitingThread/TimedWaitingThread003/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/TimedWaitingThread/TimedWaitingThread004/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/TimedWaitingThread/TimedWaitingThread005/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/RunningThread/RunningThread001/RunningThread001.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/RunningThread/RunningThread002/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/RunningThread/RunningThread003/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/RunningThread/RunningThread004/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/RunningThread/RunningThread005/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SleepingThread/SleepingThread001/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SleepingThread/SleepingThread002/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SleepingThread/SleepingThread003/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SleepingThread/SleepingThread004/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SleepingThread/SleepingThread005/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/WaitingThread/WaitingThread001/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/WaitingThread/WaitingThread002/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/WaitingThread/WaitingThread003/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/WaitingThread/WaitingThread004/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/WaitingThread/WaitingThread005/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/BlockedThread/BlockedThread001/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/BlockedThread/BlockedThread002/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/BlockedThread/BlockedThread003/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/BlockedThread/BlockedThread004/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/BlockedThread/BlockedThread005/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NativeBlockedThread/NativeBlockedThread001/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NativeBlockedThread/NativeBlockedThread002/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NativeBlockedThread/NativeBlockedThread003/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NativeBlockedThread/NativeBlockedThread004/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NativeBlockedThread/NativeBlockedThread005/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NewThread/NewThread001/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NewThread/NewThread002/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NewThread/NewThread003/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NewThread/NewThread004/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NewThread/NewThread005/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/FinishedThread/FinishedThread001/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/FinishedThread/FinishedThread002/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/FinishedThread/FinishedThread003/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/FinishedThread/FinishedThread004/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/FinishedThread/FinishedThread005/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/LockingThreads/LockingThreads001/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/LockingThreads/LockingThreads002/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/LockingThreads/LockingThreads003/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/LockingThreads/LockingThreads004/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/LockingThreads/LockingThreads005/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SynchronizerLockingThreads/SynchronizerLockingThreads001/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SynchronizerLockingThreads/SynchronizerLockingThreads002/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SynchronizerLockingThreads/SynchronizerLockingThreads003/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SynchronizerLockingThreads/SynchronizerLockingThreads004/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SynchronizerLockingThreads/SynchronizerLockingThreads005/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Deadlock/JavaDeadlock001/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Deadlock/JavaDeadlock002/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Deadlock/JavaDeadlock003/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Deadlock/JavaDeadlock004/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Deadlock/JavaDeadlock005/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Deadlock/NativeDeadlock001/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Deadlock/SynchronizerDeadlock001/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Deadlock/SynchronizedMethodDeadlock001/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Deadlock/MixedDeadlock001/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/baseBehaviorTest_directly/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/baseBehaviorTest_server_default/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/baseBehaviorTest_server_custom/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/baseBehaviorTest_proxy_default/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/baseBehaviorTest_proxy_custom/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/illegalArgumentsTest_directly/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/illegalArgumentsTest_server_default/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/illegalArgumentsTest_server_custom/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/illegalArgumentsTest_proxy_default/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/illegalArgumentsTest_proxy_custom/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/allocatedMemorySupportedTest_directly/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/allocatedMemorySupportedTest_server_default/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/allocatedMemorySupportedTest_server_custom/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/allocatedMemorySupportedTest_proxy_default/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/allocatedMemorySupportedTest_proxy_custom/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/baseBehaviorTest_directly/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/baseBehaviorTest_server_default/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/baseBehaviorTest_server_custom/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/baseBehaviorTest_proxy_default/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/baseBehaviorTest_proxy_custom/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_directly_array/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_server_default_array/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_server_custom_array/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_proxy_default_array/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_proxy_custom_array/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_directly_string/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_server_default_string/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_server_custom_string/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_proxy_default_string/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_proxy_custom_string/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_directly_array/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_server_default_array/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_server_custom_array/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_proxy_default_array/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_proxy_custom_array/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_directly_string/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_server_default_string/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_server_custom_string/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_proxy_default_string/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_proxy_custom_string/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/illegalArgumentsTest_directly/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/illegalArgumentsTest_server_default/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/illegalArgumentsTest_server_custom/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/illegalArgumentsTest_proxy_default/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/illegalArgumentsTest_proxy_custom/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/noAllocationTest_directly/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/noAllocationTest_server_default/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/noAllocationTest_server_custom/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/noAllocationTest_proxy_default/TestDescription.java \
- vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/noAllocationTest_proxy_custom/TestDescription.java
-
-
# Tests for default method implementation
vmTestbase_vm_defmeth = \
vmTestbase/vm/runtime/defmeth
-
# JDI tests
vmTestbase_nsk_jdi = \
vmTestbase/nsk/jdi
-
# Stress tests for classes loading/unloading
# NSK tests for functionality of the HS system dictionary
vmTestbase_nsk_sysdict = \
vmTestbase/nsk/sysdict/vm/stress
-
-vmTestbase_nsk_jdi_quick = \
- vmTestbase/nsk/jdi/Argument/description/description001/TestDescription.java \
- vmTestbase/nsk/jdi/Argument/isValid/isvalid001/TestDescription.java \
- vmTestbase/nsk/jdi/Argument/isValid/isvalid002/TestDescription.java \
- vmTestbase/nsk/jdi/Argument/isValid/isvalid003/TestDescription.java \
- vmTestbase/nsk/jdi/Argument/isValid/isvalid004/TestDescription.java \
- vmTestbase/nsk/jdi/Argument/isValid/isvalid005/TestDescription.java \
- vmTestbase/nsk/jdi/Argument/name/name001/TestDescription.java \
- vmTestbase/nsk/jdi/Argument/value/value001/TestDescription.java \
- vmTestbase/nsk/jdi/Argument/value/value002/TestDescription.java \
- vmTestbase/nsk/jdi/Argument/value/value003/TestDescription.java \
- vmTestbase/nsk/jdi/Argument/setValue/setvalue001/TestDescription.java \
- vmTestbase/nsk/jdi/Argument/setValue/setvalue002/TestDescription.java \
- vmTestbase/nsk/jdi/Argument/mustSpecify/mustspecify001/TestDescription.java \
- vmTestbase/nsk/jdi/AttachingConnector/attach/attach002/TestDescription.java \
- vmTestbase/nsk/jdi/BooleanArgument/booleanValue/booleanvalue001/TestDescription.java \
- vmTestbase/nsk/jdi/BooleanArgument/booleanValue/booleanvalue002/TestDescription.java \
- vmTestbase/nsk/jdi/BooleanArgument/isValid/isvalid001/TestDescription.java \
- vmTestbase/nsk/jdi/BooleanArgument/isValid/isvalid002/TestDescription.java \
- vmTestbase/nsk/jdi/BooleanArgument/setValue/setvalue001/TestDescription.java \
- vmTestbase/nsk/jdi/BooleanArgument/setValue/setvalue002/TestDescription.java \
- vmTestbase/nsk/jdi/BooleanArgument/stringValueOf/stringvalueof001/TestDescription.java \
- vmTestbase/nsk/jdi/BooleanArgument/stringValueOf/stringvalueof002/TestDescription.java \
- vmTestbase/nsk/jdi/ClassLoaderReference/definedClasses/definedclasses001/TestDescription.java \
- vmTestbase/nsk/jdi/ClassLoaderReference/definedClasses/definedclasses002/TestDescription.java \
- vmTestbase/nsk/jdi/ClassLoaderReference/definedClasses/definedclasses003/TestDescription.java \
- vmTestbase/nsk/jdi/ClassLoaderReference/definedClasses/definedclasses004/TestDescription.java \
- vmTestbase/nsk/jdi/ClassLoaderReference/definedClasses/definedclasses005/TestDescription.java \
- vmTestbase/nsk/jdi/ClassLoaderReference/visibleClasses/visibleclasses002/TestDescription.java \
- vmTestbase/nsk/jdi/Connector/defaultArguments/defaultArguments001/TestDescription.java \
- vmTestbase/nsk/jdi/Connector/defaultArguments/defaultArguments002/TestDescription.java \
- vmTestbase/nsk/jdi/Connector/defaultArguments/defaultArguments003/TestDescription.java \
- vmTestbase/nsk/jdi/Connector/description/description001/TestDescription.java \
- vmTestbase/nsk/jdi/Connector/name/name001/TestDescription.java \
- vmTestbase/nsk/jdi/Connector/transport/transport001/TestDescription.java \
- vmTestbase/nsk/jdi/FloatValue/compareTo/compareto001/TestDescription.java \
- vmTestbase/nsk/jdi/IntegerArgument/intValue/intvalue001/TestDescription.java \
- vmTestbase/nsk/jdi/IntegerArgument/intValue/intvalue002/TestDescription.java \
- vmTestbase/nsk/jdi/IntegerArgument/isValid/isvalid001/TestDescription.java \
- vmTestbase/nsk/jdi/IntegerArgument/isValid/isvalid002/TestDescription.java \
- vmTestbase/nsk/jdi/IntegerArgument/isValid/isvalid003/TestDescription.java \
- vmTestbase/nsk/jdi/IntegerArgument/max/max001/TestDescription.java \
- vmTestbase/nsk/jdi/IntegerArgument/min/min001/TestDescription.java \
- vmTestbase/nsk/jdi/IntegerArgument/setValue/setvalue001/TestDescription.java \
- vmTestbase/nsk/jdi/IntegerArgument/stringValueOf/stringvalueof001/TestDescription.java \
- vmTestbase/nsk/jdi/IntegerValue/compareTo/compareto001/TestDescription.java \
- vmTestbase/nsk/jdi/LaunchingConnector/launch/launch001/TestDescription.java \
- vmTestbase/nsk/jdi/LaunchingConnector/launch/launch002/TestDescription.java \
- vmTestbase/nsk/jdi/LaunchingConnector/launch/launch004/TestDescription.java \
- vmTestbase/nsk/jdi/ListeningConnector/accept/accept001/TestDescription.java \
- vmTestbase/nsk/jdi/ListeningConnector/accept/accept002/TestDescription.java \
- vmTestbase/nsk/jdi/ListeningConnector/stopListening/stoplis001/TestDescription.java \
- vmTestbase/nsk/jdi/ListeningConnector/supportsMultipleConnections/supportsmultipleconnections001/TestDescription.java \
- vmTestbase/nsk/jdi/ListeningConnector/listennosuspend/listennosuspend001/TestDescription.java \
- vmTestbase/nsk/jdi/LongValue/compareTo/compareto001/TestDescription.java \
- vmTestbase/nsk/jdi/ObjectReference/entryCount/entrycount002/TestDescription.java \
- vmTestbase/nsk/jdi/ObjectReference/owningThread/owningthread002/TestDescription.java \
- vmTestbase/nsk/jdi/ObjectReference/waitingThreads/waitingthreads002/TestDescription.java \
- vmTestbase/nsk/jdi/ObjectReference/waitingThreads/waitingthreads003/TestDescription.java \
- vmTestbase/nsk/jdi/ObjectReference/waitingThreads/waitingthreads004/TestDescription.java \
- vmTestbase/nsk/jdi/ReferenceType/isVerified/isverified003/TestDescription.java \
- vmTestbase/nsk/jdi/SelectedArgument/choices/choices001/TestDescription.java \
- vmTestbase/nsk/jdi/SelectedArgument/isValid/isvalid001/TestDescription.java \
- vmTestbase/nsk/jdi/SelectedArgument/isValid/isvalid002/TestDescription.java \
- vmTestbase/nsk/jdi/ShortType/_itself_/shorttype001/TestDescription.java \
- vmTestbase/nsk/jdi/ShortValue/compareTo/compareto001/TestDescription.java \
- vmTestbase/nsk/jdi/StackFrame/thisObject/thisobject002/TestDescription.java \
- vmTestbase/nsk/jdi/StackFrame/thread/thread001/TestDescription.java \
- vmTestbase/nsk/jdi/StackFrame/visibleVariableByName/visiblevarbyname001/TestDescription.java \
- vmTestbase/nsk/jdi/StackFrame/visibleVariableByName/visiblevarbyname002/TestDescription.java \
- vmTestbase/nsk/jdi/StackFrame/visibleVariables/visiblevariables001/TestDescription.java \
- vmTestbase/nsk/jdi/StackFrame/visibleVariables/visiblevariables002/TestDescription.java \
- vmTestbase/nsk/jdi/StepEvent/_itself_/stepevent001/TestDescription.java \
- vmTestbase/nsk/jdi/StepEvent/_itself_/stepevent002/TestDescription.java \
- vmTestbase/nsk/jdi/StepRequest/addClassExclusionFilter/filter001/TestDescription.java \
- vmTestbase/nsk/jdi/StepRequest/addClassExclusionFilter/filter002/TestDescription.java \
- vmTestbase/nsk/jdi/StepRequest/addClassFilter_s/filter_s001/TestDescription.java \
- vmTestbase/nsk/jdi/StepRequest/addClassFilter_s/filter_s002/TestDescription.java \
- vmTestbase/nsk/jdi/StepRequest/addClassFilter_rt/filter_rt001/TestDescription.java \
- vmTestbase/nsk/jdi/StepRequest/addClassFilter_rt/filter_rt002/TestDescription.java \
- vmTestbase/nsk/jdi/StepRequest/depth/depth001/TestDescription.java \
- vmTestbase/nsk/jdi/StepRequest/depth/depth002/TestDescription.java \
- vmTestbase/nsk/jdi/StepRequest/depth/depth003/TestDescription.java \
- vmTestbase/nsk/jdi/StepRequest/size/size001/TestDescription.java \
- vmTestbase/nsk/jdi/StepRequest/size/size002/TestDescription.java \
- vmTestbase/nsk/jdi/StepRequest/thread/thread001/TestDescription.java \
- vmTestbase/nsk/jdi/StringArgument/isValid/isvalid001/TestDescription.java \
- vmTestbase/nsk/jdi/StringArgument/isValid/isvalid002/TestDescription.java \
- vmTestbase/nsk/jdi/StringArgument/isValid/isvalid003/TestDescription.java \
- vmTestbase/nsk/jdi/StringReference/value/value001/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadDeathEvent/thread/thread001/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadDeathRequest/addThreadFilter/addthreadfilter001/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadDeathRequest/addThreadFilter/addthreadfilter002/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadDeathRequest/addThreadFilter/addthreadfilter003/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadDeathRequest/addThreadFilter/addthreadfilter004/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadDeathRequest/addThreadFilter/addthreadfilter005/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadGroupReference/name/name001/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadGroupReference/parent/parent001/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadGroupReference/resume/resume001/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadGroupReference/suspend/suspend001/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadGroupReference/threadGroups/threadgroups001/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadGroupReference/threads/threads001/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadReference/frame/frame001/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadReference/frameCount/framecount001/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadReference/frames/frames001/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadReference/frames_ii/frames_ii002/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadReference/isAtBreakpoint/isatbreakpoint001/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadReference/isSuspended/issuspended001/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadReference/isSuspended/issuspended003/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadReference/isSuspended/issuspended004/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadReference/name/name001/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadReference/ownedMonitors/ownedmonitors001/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadReference/suspendCount/suspendcount001/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadReference/threadGroup/threadgroup001/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadReference/currentContendedMonitor/currentcm001/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadReference/interrupt/interrupt001/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadReference/resume/resume001/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadReference/status/status003/status003.java \
- vmTestbase/nsk/jdi/ThreadReference/status/status004/status004.java \
- vmTestbase/nsk/jdi/ThreadReference/status/status005/status005.java \
- vmTestbase/nsk/jdi/ThreadReference/status/status006/status006.java \
- vmTestbase/nsk/jdi/ThreadReference/status/status007/status007.java \
- vmTestbase/nsk/jdi/ThreadReference/status/status008/status008.java \
- vmTestbase/nsk/jdi/ThreadReference/stop/stop001/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadStartRequest/addThreadFilter/addthreadfilter001/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadStartRequest/addThreadFilter/addthreadfilter002/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadStartRequest/addThreadFilter/addthreadfilter003/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadStartRequest/addThreadFilter/addthreadfilter004/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadStartRequest/addThreadFilter/addthreadfilter005/TestDescription.java \
- vmTestbase/nsk/jdi/Transport/name/name001/TestDescription.java \
- vmTestbase/nsk/jdi/Type/name/name001/TestDescription.java \
- vmTestbase/nsk/jdi/Type/name/name002/TestDescription.java \
- vmTestbase/nsk/jdi/Type/name/name003/TestDescription.java \
- vmTestbase/nsk/jdi/Type/signature/signature001/TestDescription.java \
- vmTestbase/nsk/jdi/Type/signature/signature002/TestDescription.java \
- vmTestbase/nsk/jdi/Type/signature/signature003/TestDescription.java \
- vmTestbase/nsk/jdi/TypeComponent/declaringType/decltype001/TestDescription.java \
- vmTestbase/nsk/jdi/TypeComponent/declaringType/decltype002/TestDescription.java \
- vmTestbase/nsk/jdi/TypeComponent/declaringType/decltype003/TestDescription.java \
- vmTestbase/nsk/jdi/TypeComponent/declaringType/decltype007/TestDescription.java \
- vmTestbase/nsk/jdi/TypeComponent/declaringType/decltype008/TestDescription.java \
- vmTestbase/nsk/jdi/TypeComponent/isFinal/isfinal001/TestDescription.java \
- vmTestbase/nsk/jdi/TypeComponent/isFinal/isfinal003/TestDescription.java \
- vmTestbase/nsk/jdi/TypeComponent/isStatic/isstatic001/TestDescription.java \
- vmTestbase/nsk/jdi/TypeComponent/isStatic/isstatic003/TestDescription.java \
- vmTestbase/nsk/jdi/TypeComponent/isSynthetic/issynthetic001/TestDescription.java \
- vmTestbase/nsk/jdi/TypeComponent/isSynthetic/issynthetic002/TestDescription.java \
- vmTestbase/nsk/jdi/TypeComponent/name/name001/TestDescription.java \
- vmTestbase/nsk/jdi/TypeComponent/name/name003/TestDescription.java \
- vmTestbase/nsk/jdi/TypeComponent/signature/sign001/TestDescription.java \
- vmTestbase/nsk/jdi/TypeComponent/signature/sign003/TestDescription.java \
- vmTestbase/nsk/jdi/Value/type/type001/TestDescription.java \
- vmTestbase/nsk/jdi/Value/type/type002/type002.java \
- vmTestbase/nsk/jdi/Value/type/type003/TestDescription.java \
- vmTestbase/nsk/jdi/Value/_itself_/value001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/allClasses/allclasses001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/allClasses/allclasses002/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/allThreads/allthreads001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/canGetBytecodes/cangetbytecodes001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/canGetCurrentContendedMonitor/cangccm001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/canGetMonitorInfo/cangetmonitorinfo001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/canGetOwnedMonitorInfo/cangetinfo001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/canGetSyntheticAttribute/cangetattr001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/canWatchFieldAccess/canwatchaccess001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/canWatchFieldModification/canwatchmod001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/classesByName/classesbyname001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/description/description001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/eventQueue/eventqueue001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/eventRequestManager/eventrmanager001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/exit/exit001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/exit/exit002/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/mirrorOf_bool/mirrorof_bool001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/mirrorOf_byte/mirrorof_byte001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/mirrorOf_char/mirrorof_char001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/mirrorOf_double/mirrorof_double001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/mirrorOf_float/mirrorof_float001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/mirrorOf_int/mirrorof_int001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/mirrorOf_long/mirrorof_long001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/mirrorOf_short/mirrorof_short001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/mirrorOf_string/mirrorof_string001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/name/name001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/process/process001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/topLevelThreadGroups/toplevelgroups001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/version/version001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachineManager/allConnectors/allconnectors001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachineManager/attachingConnectors/attaching001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachineManager/connectedVirtualMachines/convm001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachineManager/connectedVirtualMachines/convm002/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachineManager/connectedVirtualMachines/convm003/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachineManager/defaultConnector/default001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachineManager/launchingConnectors/launching001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachineManager/listeningConnectors/listening001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachineManager/majorInterfaceVersion/major001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachineManager/minorInterfaceVersion/minor001/TestDescription.java \
- vmTestbase/nsk/jdi/VoidType/_itself_/voidtype001/TestDescription.java \
- vmTestbase/nsk/jdi/VoidValue/equals/equals001/equals001.java \
- vmTestbase/nsk/jdi/VoidValue/hashCode/hashcode001/hashcode001.java \
- vmTestbase/nsk/jdi/VMDeathEvent/_itself_/vmdeath001/TestDescription.java \
- vmTestbase/nsk/jdi/VMDeathEvent/_itself_/vmdeath002/TestDescription.java \
- vmTestbase/nsk/jdi/VMDeathEvent/_itself_/vmdeath003/TestDescription.java \
- vmTestbase/nsk/jdi/VMDisconnectEvent/_itself_/disconnect001/TestDescription.java \
- vmTestbase/nsk/jdi/VMDisconnectEvent/_itself_/disconnect002/TestDescription.java \
- vmTestbase/nsk/jdi/VMDisconnectEvent/_itself_/disconnect003/TestDescription.java \
- vmTestbase/nsk/jdi/VMStartEvent/thread/thread001/TestDescription.java \
- vmTestbase/nsk/jdi/WatchpointEvent/object/object001/TestDescription.java \
- vmTestbase/nsk/jdi/WatchpointEvent/field/field001/TestDescription.java \
- vmTestbase/nsk/jdi/WatchpointEvent/valueCurrent/valuecur001/TestDescription.java \
- vmTestbase/nsk/jdi/WatchpointRequest/addClassExclusionFilter/filter001/TestDescription.java \
- vmTestbase/nsk/jdi/WatchpointRequest/addClassExclusionFilter/filter002/TestDescription.java \
- vmTestbase/nsk/jdi/WatchpointRequest/addClassExclusionFilter/filter003/TestDescription.java \
- vmTestbase/nsk/jdi/WatchpointRequest/addClassExclusionFilter/filter004/TestDescription.java \
- vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_s/filter_s001/TestDescription.java \
- vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_s/filter_s002/TestDescription.java \
- vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_s/filter_s003/TestDescription.java \
- vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_s/filter_s004/TestDescription.java \
- vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_rt/filter_rt001/TestDescription.java \
- vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_rt/filter_rt002/TestDescription.java \
- vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_rt/filter_rt003/TestDescription.java \
- vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_rt/filter_rt004/TestDescription.java \
- vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_rt/filter_rt005/TestDescription.java \
- vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_rt/filter_rt006/TestDescription.java \
- vmTestbase/nsk/jdi/WatchpointRequest/addThreadFilter/addthreadfilter001/TestDescription.java \
- vmTestbase/nsk/jdi/WatchpointRequest/addThreadFilter/addthreadfilter002/TestDescription.java \
- vmTestbase/nsk/jdi/WatchpointRequest/addThreadFilter/addthreadfilter003/TestDescription.java \
- vmTestbase/nsk/jdi/WatchpointRequest/addThreadFilter/addthreadfilter004/TestDescription.java \
- vmTestbase/nsk/jdi/WatchpointRequest/addThreadFilter/addthreadfilter005/TestDescription.java \
- vmTestbase/nsk/jdi/WatchpointRequest/addThreadFilter/addthreadfilter006/TestDescription.java \
- vmTestbase/nsk/jdi/WatchpointRequest/addThreadFilter/addthreadfilter007/TestDescription.java \
- vmTestbase/nsk/jdi/WatchpointRequest/addThreadFilter/addthreadfilter008/TestDescription.java \
- vmTestbase/nsk/jdi/WatchpointRequest/field/field001/TestDescription.java \
- vmTestbase/nsk/jdi/WatchpointRequest/field/field002/TestDescription.java \
- vmTestbase/nsk/jdi/AttachingConnector/attach/attach003/TestDescription.java \
- vmTestbase/nsk/jdi/ClassObjectReference/toString/tostring001/TestDescription.java \
- vmTestbase/nsk/jdi/ClassType/invokeMethod/invokemethod003/TestDescription.java \
- vmTestbase/nsk/jdi/ClassType/invokeMethod/invokemethod010/TestDescription.java \
- vmTestbase/nsk/jdi/ClassType/invokeMethod/invokemethod011/TestDescription.java \
- vmTestbase/nsk/jdi/ClassType/invokeMethod/invokemethod012/TestDescription.java \
- vmTestbase/nsk/jdi/ClassType/invokeMethod/invokemethod013/TestDescription.java \
- vmTestbase/nsk/jdi/ClassType/invokeMethod/invokemethod014/TestDescription.java \
- vmTestbase/nsk/jdi/ClassType/newInstance/newinstance009/TestDescription.java \
- vmTestbase/nsk/jdi/ClassType/setValue/setvalue006/TestDescription.java \
- vmTestbase/nsk/jdi/ClassType/setValue/setvalue007/TestDescription.java \
- vmTestbase/nsk/jdi/Connector/_bounds_/bounds001/TestDescription.java \
- vmTestbase/nsk/jdi/Connector/toString/tostring001/TestDescription.java \
- vmTestbase/nsk/jdi/BScenarios/hotswap/tc01x001/TestDescription.java \
- vmTestbase/nsk/jdi/BScenarios/hotswap/tc01x002/TestDescription.java \
- vmTestbase/nsk/jdi/BScenarios/hotswap/tc02x001/TestDescription.java \
- vmTestbase/nsk/jdi/BScenarios/hotswap/tc02x002/TestDescription.java \
- vmTestbase/nsk/jdi/BScenarios/hotswap/tc03x001/TestDescription.java \
- vmTestbase/nsk/jdi/BScenarios/hotswap/tc04x001/TestDescription.java \
- vmTestbase/nsk/jdi/BScenarios/hotswap/tc04x002/TestDescription.java \
- vmTestbase/nsk/jdi/BScenarios/hotswap/tc05x002/TestDescription.java \
- vmTestbase/nsk/jdi/BScenarios/hotswap/tc06x001/TestDescription.java \
- vmTestbase/nsk/jdi/BScenarios/hotswap/tc07x001/TestDescription.java \
- vmTestbase/nsk/jdi/BScenarios/hotswap/tc08x001/TestDescription.java \
- vmTestbase/nsk/jdi/BScenarios/hotswap/tc09x001/TestDescription.java \
- vmTestbase/nsk/jdi/BScenarios/hotswap/tc09x002/TestDescription.java \
- vmTestbase/nsk/jdi/BScenarios/hotswap/tc10x001/TestDescription.java \
- vmTestbase/nsk/jdi/BScenarios/hotswap/tc10x002/TestDescription.java \
- vmTestbase/nsk/jdi/BScenarios/multithrd/tc01x001/TestDescription.java \
- vmTestbase/nsk/jdi/BScenarios/multithrd/tc02x001/TestDescription.java \
- vmTestbase/nsk/jdi/BScenarios/multithrd/tc02x002/TestDescription.java \
- vmTestbase/nsk/jdi/BScenarios/multithrd/tc02x003/TestDescription.java \
- vmTestbase/nsk/jdi/BScenarios/multithrd/tc02x004/TestDescription.java \
- vmTestbase/nsk/jdi/BScenarios/multithrd/tc03x001/TestDescription.java \
- vmTestbase/nsk/jdi/BScenarios/multithrd/tc04x001/TestDescription.java \
- vmTestbase/nsk/jdi/BScenarios/singlethrd/tc01x001/TestDescription.java \
- vmTestbase/nsk/jdi/BScenarios/singlethrd/tc01x002/TestDescription.java \
- vmTestbase/nsk/jdi/BScenarios/singlethrd/tc02x001/TestDescription.java \
- vmTestbase/nsk/jdi/BScenarios/singlethrd/tc03x001/TestDescription.java \
- vmTestbase/nsk/jdi/BScenarios/singlethrd/tc03x002/TestDescription.java \
- vmTestbase/nsk/jdi/BScenarios/singlethrd/tc03x003/TestDescription.java \
- vmTestbase/nsk/jdi/BScenarios/singlethrd/tc04x001/TestDescription.java \
- vmTestbase/nsk/jdi/BScenarios/singlethrd/tc05x001/TestDescription.java \
- vmTestbase/nsk/jdi/Event/equals/equals001/TestDescription.java \
- vmTestbase/nsk/jdi/Event/hashCode/hashcode001/TestDescription.java \
- vmTestbase/nsk/jdi/EventQueue/hashCode/hashcode001/TestDescription.java \
- vmTestbase/nsk/jdi/EventRequest/disable/disable003/TestDescription.java \
- vmTestbase/nsk/jdi/EventRequest/hashCode/hashcode001/TestDescription.java \
- vmTestbase/nsk/jdi/EventRequestManager/deleteEventRequest/delevtreq003/TestDescription.java \
- vmTestbase/nsk/jdi/EventRequestManager/hashCode/hashcode001/TestDescription.java \
- vmTestbase/nsk/jdi/EventSet/resume/resume011/TestDescription.java \
- vmTestbase/nsk/jdi/EventSet/toString/tostring001/TestDescription.java \
- vmTestbase/nsk/jdi/EventSet/virtualMachine/virtualmachine001/TestDescription.java \
- vmTestbase/nsk/jdi/LocalVariable/toString/tostring001/TestDescription.java \
- vmTestbase/nsk/jdi/Method/_bounds_/bounds001/TestDescription.java \
- vmTestbase/nsk/jdi/Method/isObsolete/isobsolete003/TestDescription.java \
- vmTestbase/nsk/jdi/MethodEntryRequest/_bounds_/filters001/TestDescription.java \
- vmTestbase/nsk/jdi/MethodExitRequest/_bounds_/filters001/TestDescription.java \
- vmTestbase/nsk/jdi/Mirror/hashCode/hashcode001/TestDescription.java \
- vmTestbase/nsk/jdi/ObjectReference/_bounds_/bounds001/TestDescription.java \
- vmTestbase/nsk/jdi/ObjectReference/_bounds_/bounds002/TestDescription.java \
- vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod002/TestDescription.java \
- vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod003/TestDescription.java \
- vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod004/TestDescription.java \
- vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod005/TestDescription.java \
- vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod007/TestDescription.java \
- vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod008/TestDescription.java \
- vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod009/TestDescription.java \
- vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod010/TestDescription.java \
- vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod011/TestDescription.java \
- vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod012/TestDescription.java \
- vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod013/TestDescription.java \
- vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod014/TestDescription.java \
- vmTestbase/nsk/jdi/ObjectReference/setValue/setvalue002/TestDescription.java \
- vmTestbase/nsk/jdi/ObjectReference/setValue/setvalue003/TestDescription.java \
- vmTestbase/nsk/jdi/ObjectReference/setValue/setvalue004/TestDescription.java \
- vmTestbase/nsk/jdi/ObjectReference/setValue/setvalue005/TestDescription.java \
- vmTestbase/nsk/jdi/ReferenceType/_bounds_/bounds001/TestDescription.java \
- vmTestbase/nsk/jdi/ReferenceType/_bounds_/bounds002/TestDescription.java \
- vmTestbase/nsk/jdi/ReferenceType/allFields/allfields005/TestDescription.java \
- vmTestbase/nsk/jdi/ReferenceType/allLineLocations/alllinelocations002/TestDescription.java \
- vmTestbase/nsk/jdi/ReferenceType/allLineLocations_ss/alllinelocations_ss002/TestDescription.java \
- vmTestbase/nsk/jdi/ReferenceType/allMethods/allmethods005/TestDescription.java \
- vmTestbase/nsk/jdi/ReferenceType/fields/fields005/TestDescription.java \
- vmTestbase/nsk/jdi/ReferenceType/getValue/getvalue004/TestDescription.java \
- vmTestbase/nsk/jdi/ReferenceType/getValue/getvalue005/TestDescription.java \
- vmTestbase/nsk/jdi/ReferenceType/getValues/getvalues002/TestDescription.java \
- vmTestbase/nsk/jdi/ReferenceType/getValues/getvalues003/TestDescription.java \
- vmTestbase/nsk/jdi/ReferenceType/locationsOfLine_i/locationsofline_i002/TestDescription.java \
- vmTestbase/nsk/jdi/ReferenceType/locationsOfLine_ssi/locationsofline_ssi002/TestDescription.java \
- vmTestbase/nsk/jdi/ReferenceType/methods/methods005/TestDescription.java \
- vmTestbase/nsk/jdi/ReferenceType/sourceName/sourcename004/TestDescription.java \
- vmTestbase/nsk/jdi/ReferenceType/sourceNames/sourcenames002/TestDescription.java \
- vmTestbase/nsk/jdi/ReferenceType/sourcePaths/sourcepaths002/TestDescription.java \
- vmTestbase/nsk/jdi/ReferenceType/visibleFields/visibfield005/TestDescription.java \
- vmTestbase/nsk/jdi/ReferenceType/visibleMethods/visibmethod006/TestDescription.java \
- vmTestbase/nsk/jdi/Scenarios/invokeMethod/popframes001/TestDescription.java \
- vmTestbase/nsk/jdi/Scenarios/invokeMethod/redefineclasses001/TestDescription.java \
- vmTestbase/nsk/jdi/StackFrame/_bounds_/bounds002/TestDescription.java \
- vmTestbase/nsk/jdi/StackFrame/getValue/getvalue003/TestDescription.java \
- vmTestbase/nsk/jdi/StackFrame/getValues/getvalues003/TestDescription.java \
- vmTestbase/nsk/jdi/StackFrame/hashCode/hashcode001/TestDescription.java \
- vmTestbase/nsk/jdi/StackFrame/setValue/setvalue005/setvalue005.java \
- vmTestbase/nsk/jdi/StackFrame/setValue/setvalue006/setvalue006.java \
- vmTestbase/nsk/jdi/StackFrame/toString/tostring001/TestDescription.java \
- vmTestbase/nsk/jdi/StepRequest/_bounds_/filters001/TestDescription.java \
- vmTestbase/nsk/jdi/StepRequest/addClassFilter_rt/filter_rt003/TestDescription.java \
- vmTestbase/nsk/jdi/StepRequest/addInstanceFilter/instancefilter001/TestDescription.java \
- vmTestbase/nsk/jdi/StepRequest/addInstanceFilter/instancefilter002/TestDescription.java \
- vmTestbase/nsk/jdi/StepRequest/addInstanceFilter/instancefilter003/TestDescription.java \
- vmTestbase/nsk/jdi/StepRequest/addInstanceFilter/instancefilter004/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadGroupReference/toString/tostring001/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadReference/frames_ii/frames_ii001/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadReference/ownedMonitors/ownedmonitors002/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadReference/popFrames/popframes001/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadReference/popFrames/popframes002/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadReference/popFrames/popframes003/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadReference/popFrames/popframes004/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadReference/popFrames/popframes005/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadReference/popFrames/popframes006/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadReference/popFrames/popframes007/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadReference/stop/stop002/TestDescription.java \
- vmTestbase/nsk/jdi/Type/hashCode/hashcode001/TestDescription.java \
- vmTestbase/nsk/jdi/TypeComponent/isPackagePrivate/ispackageprivate001/TestDescription.java \
- vmTestbase/nsk/jdi/TypeComponent/isPrivate/isprivate001/TestDescription.java \
- vmTestbase/nsk/jdi/TypeComponent/isProtected/isprotected001/TestDescription.java \
- vmTestbase/nsk/jdi/TypeComponent/isPublic/ispublic001/TestDescription.java \
- vmTestbase/nsk/jdi/WatchpointEvent/_itself_/wevent001/TestDescription.java \
- vmTestbase/nsk/jdi/WatchpointRequest/_bounds_/filters001/TestDescription.java \
- vmTestbase/nsk/jdi/WatchpointRequest/addInstanceFilter/instancefilter001/TestDescription.java \
- vmTestbase/nsk/jdi/WatchpointRequest/addInstanceFilter/instancefilter002/TestDescription.java \
- vmTestbase/nsk/jdi/WatchpointRequest/addInstanceFilter/instancefilter003/TestDescription.java \
- vmTestbase/nsk/jdi/WatchpointRequest/addInstanceFilter/instancefilter004/TestDescription.java \
- vmTestbase/nsk/jdi/WatchpointRequest/addInstanceFilter/instancefilter005/TestDescription.java \
- vmTestbase/nsk/jdi/WatchpointRequest/addInstanceFilter/instancefilter006/TestDescription.java \
- vmTestbase/nsk/jdi/WatchpointRequest/addInstanceFilter/instancefilter007/TestDescription.java \
- vmTestbase/nsk/jdi/WatchpointRequest/addInstanceFilter/instancefilter008/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/canAddMethod/canaddmethod001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/canGetSourceDebugExtension/cangetsde001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/canPopFrames/canpopframes001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/canRedefineClasses/canredefineclasses001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/canRequestVMDeathEvent/canreqvmdev001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/canUnrestrictedlyRedefineClasses/curc001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/canUseInstanceFilters/canusefilters001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/getDefaultStratum/getdefaultstratum001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses002/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses003/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses004/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses005/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses006/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses007/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses008/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses009/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses010/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses011/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses012/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses013/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses014/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses015/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses016/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses020/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses022/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses024/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses026/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses027/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses028/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses029/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses030/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses032/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses034/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses035/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/setDefaultStratum/setdefaultstratum001/TestDescription.java \
- vmTestbase/nsk/jdi/VoidType/toString/tostring001/TestDescription.java \
- vmTestbase/nsk/jdi/VoidValue/equals/equals002/TestDescription.java \
- vmTestbase/nsk/jdi/VoidValue/toString/tostring001/TestDescription.java \
- vmTestbase/nsk/jdi/ConstantField/values001/TestDescription.java \
- vmTestbase/nsk/jdi/Accessible/isPackagePrivate/accipp002/TestDescription.java \
- vmTestbase/nsk/jdi/Accessible/isPrivate/isprivate002/TestDescription.java \
- vmTestbase/nsk/jdi/Accessible/isProtected/isprotected002/TestDescription.java \
- vmTestbase/nsk/jdi/Accessible/isPublic/ispublic002/TestDescription.java \
- vmTestbase/nsk/jdi/Accessible/isPublic/ispublic003/TestDescription.java \
- vmTestbase/nsk/jdi/Accessible/modifiers/modifiers002/TestDescription.java \
- vmTestbase/nsk/jdi/ClassType/allInterfaces/allinterfaces002/TestDescription.java \
- vmTestbase/nsk/jdi/ClassType/interfaces/interfaces002/TestDescription.java \
- vmTestbase/nsk/jdi/ClassType/invokeMethod/invokemethod015/TestDescription.java \
- vmTestbase/nsk/jdi/ClassType/isEnum/isenum001/TestDescription.java \
- vmTestbase/nsk/jdi/ClassType/setValue/setvalue008/TestDescription.java \
- vmTestbase/nsk/jdi/ClassType/subclasses/subclasses002/TestDescription.java \
- vmTestbase/nsk/jdi/ClassType/superclass/superclass002/TestDescription.java \
- vmTestbase/nsk/jdi/Field/isEnumConstant/isenumconstant001/TestDescription.java \
- vmTestbase/nsk/jdi/Field/type/type004/TestDescription.java \
- vmTestbase/nsk/jdi/Field/typeName/typename002/TestDescription.java \
- vmTestbase/nsk/jdi/LocalVariable/genericSignature/gensignature001/TestDescription.java \
- vmTestbase/nsk/jdi/Method/arguments/arguments003/TestDescription.java \
- vmTestbase/nsk/jdi/Method/argumentTypeNames/argumenttypenames003/TestDescription.java \
- vmTestbase/nsk/jdi/Method/isBridge/isbridge001/TestDescription.java \
- vmTestbase/nsk/jdi/Method/isVarArgs/isvarargs001/TestDescription.java \
- vmTestbase/nsk/jdi/PlugConnectors/AttachConnector/plugAttachConnect001/plugAttachConnect001.java \
- vmTestbase/nsk/jdi/PlugConnectors/AttachConnector/plugAttachConnect002/plugAttachConnect002.java \
- vmTestbase/nsk/jdi/PlugConnectors/AttachConnector/plugAttachConnect003/plugAttachConnect003.java \
- vmTestbase/nsk/jdi/PlugConnectors/LaunchConnector/plugLaunchConnect001/plugLaunchConnect001.java \
- vmTestbase/nsk/jdi/PlugConnectors/LaunchConnector/plugLaunchConnect002/plugLaunchConnect002.java \
- vmTestbase/nsk/jdi/PlugConnectors/LaunchConnector/plugLaunchConnect003/plugLaunchConnect003.java \
- vmTestbase/nsk/jdi/PlugConnectors/ListenConnector/plugListenConnect001/plugListenConnect001.java \
- vmTestbase/nsk/jdi/PlugConnectors/ListenConnector/plugListenConnect002/plugListenConnect002.java \
- vmTestbase/nsk/jdi/PlugConnectors/ListenConnector/plugListenConnect003/plugListenConnect003.java \
- vmTestbase/nsk/jdi/PlugConnectors/MultiConnectors/plugMultiConnect001/plugMultiConnect001.java \
- vmTestbase/nsk/jdi/PlugConnectors/MultiConnectors/plugMultiConnect002/plugMultiConnect002.java \
- vmTestbase/nsk/jdi/PlugConnectors/MultiConnectors/plugMultiConnect003/plugMultiConnect003.java \
- vmTestbase/nsk/jdi/PlugConnectors/MultiConnectors/plugMultiConnect004/plugMultiConnect004.java \
- vmTestbase/nsk/jdi/PlugConnectors/MultiConnectors/plugMultiConnect005/plugMultiConnect005.java \
- vmTestbase/nsk/jdi/PlugConnectors/MultiConnectors/plugMultiConnect006/plugMultiConnect006.java \
- vmTestbase/nsk/jdi/PlugConnectors/TransportService/transportService001/transportService001.java \
- vmTestbase/nsk/jdi/PlugConnectors/TransportService/transportService002/transportService002.java \
- vmTestbase/nsk/jdi/PlugConnectors/TransportService/transportService003/transportService003.java \
- vmTestbase/nsk/jdi/ReferenceType/allFields/allfields006/TestDescription.java \
- vmTestbase/nsk/jdi/ReferenceType/allMethods/allmethods006/TestDescription.java \
- vmTestbase/nsk/jdi/ReferenceType/classObject/classobj003/TestDescription.java \
- vmTestbase/nsk/jdi/ReferenceType/fields/fields006/TestDescription.java \
- vmTestbase/nsk/jdi/ReferenceType/genericSignature/genericSignature001/TestDescription.java \
- vmTestbase/nsk/jdi/ReferenceType/genericSignature/genericSignature002/TestDescription.java \
- vmTestbase/nsk/jdi/ReferenceType/isAbstract/isabstract003/TestDescription.java \
- vmTestbase/nsk/jdi/ReferenceType/isFinal/isfinal002/TestDescription.java \
- vmTestbase/nsk/jdi/ReferenceType/isInitialized/isinit003/TestDescription.java \
- vmTestbase/nsk/jdi/ReferenceType/methods/methods006/TestDescription.java \
- vmTestbase/nsk/jdi/ReferenceType/visibleFields/visibfield006/TestDescription.java \
- vmTestbase/nsk/jdi/ReferenceType/visibleMethods/visibmethod007/TestDescription.java \
- vmTestbase/nsk/jdi/TypeComponent/declaringType/decltype009/TestDescription.java \
- vmTestbase/nsk/jdi/TypeComponent/genericSignature/genericSignature001/TestDescription.java \
- vmTestbase/nsk/jdi/TypeComponent/genericSignature/genericSignature002/TestDescription.java \
- vmTestbase/nsk/jdi/TypeComponent/isFinal/isfinal004/TestDescription.java \
- vmTestbase/nsk/jdi/TypeComponent/isStatic/isstatic004/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/canBeModified/canbemodified001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachineManager/createVirtualMachine/createVM001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachineManager/createVirtualMachine/createVM002/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachineManager/createVirtualMachine/createVM003/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachineManager/createVirtualMachine/createVM004/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachineManager/createVirtualMachine/createVM005/TestDescription.java \
- vmTestbase/nsk/jdi/VMCannotBeModifiedEx/_itself_/canntbemod001/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/instanceCounts/instancecounts001/instancecounts001.java \
- vmTestbase/nsk/jdi/VirtualMachine/instanceCounts/instancecounts002/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/instanceCounts/instancecounts003/instancecounts003.java \
- vmTestbase/nsk/jdi/VirtualMachine/instanceCounts/instancecounts004/instancecounts004.java \
- vmTestbase/nsk/jdi/ReferenceType/instances/instances001/instances001.java \
- vmTestbase/nsk/jdi/ReferenceType/instances/instances002/instances002.java \
- vmTestbase/nsk/jdi/ReferenceType/instances/instances005/instances005.java \
- vmTestbase/nsk/jdi/ObjectReference/referringObjects/referringObjects001/referringObjects001.java \
- vmTestbase/nsk/jdi/ObjectReference/referringObjects/referringObjects002/referringObjects002.java \
- vmTestbase/nsk/jdi/ObjectReference/referringObjects/referringObjects003/referringObjects003.java \
- vmTestbase/nsk/jdi/ObjectReference/referringObjects/referringObjects004/referringObjects004.java \
- vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn002/forceEarlyReturn002.java \
- vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn003/forceEarlyReturn003.java \
- vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn004/forceEarlyReturn004.java \
- vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn005/forceEarlyReturn005.java \
- vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn006/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn007/TestDescription.java \
- vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn008/forceEarlyReturn008.java \
- vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn009/forceEarlyReturn009.java \
- vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn013/forceEarlyReturn013.java \
- vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn014/forceEarlyReturn014.java \
- vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn015/forceEarlyReturn015.java \
- vmTestbase/nsk/jdi/ThreadReference/ownedMonitorsAndFrames/ownedMonitorsAndFrames001/ownedMonitorsAndFrames001.java \
- vmTestbase/nsk/jdi/ThreadReference/ownedMonitorsAndFrames/ownedMonitorsAndFrames002/ownedMonitorsAndFrames002.java \
- vmTestbase/nsk/jdi/ThreadReference/ownedMonitorsAndFrames/ownedMonitorsAndFrames003/ownedMonitorsAndFrames003.java \
- vmTestbase/nsk/jdi/ThreadReference/ownedMonitorsAndFrames/ownedMonitorsAndFrames004/ownedMonitorsAndFrames004.java \
- vmTestbase/nsk/jdi/ThreadReference/ownedMonitorsAndFrames/ownedMonitorsAndFrames005/ownedMonitorsAndFrames005.java \
- vmTestbase/nsk/jdi/ThreadReference/ownedMonitorsAndFrames/ownedMonitorsAndFrames008/TestDescription.java \
- vmTestbase/nsk/jdi/MonitorContendedEnteredRequest/addClassExclusionFilter/TestDescription.java \
- vmTestbase/nsk/jdi/MonitorContendedEnteredRequest/addClassFilter_ClassName/TestDescription.java \
- vmTestbase/nsk/jdi/MonitorContendedEnteredRequest/addClassFilter_ReferenceType/TestDescription.java \
- vmTestbase/nsk/jdi/MonitorContendedEnteredRequest/addInstanceFilter/TestDescription.java \
- vmTestbase/nsk/jdi/MonitorContendedEnteredRequest/addThreadFilter/TestDescription.java \
- vmTestbase/nsk/jdi/MonitorContendedEnterRequest/addClassExclusionFilter/TestDescription.java \
- vmTestbase/nsk/jdi/MonitorContendedEnterRequest/addClassFilter_ClassName/TestDescription.java \
- vmTestbase/nsk/jdi/MonitorContendedEnterRequest/addClassFilter_ReferenceType/TestDescription.java \
- vmTestbase/nsk/jdi/MonitorContendedEnterRequest/addInstanceFilter/TestDescription.java \
- vmTestbase/nsk/jdi/MonitorContendedEnterRequest/addThreadFilter/TestDescription.java \
- vmTestbase/nsk/jdi/MonitorWaitRequest/addClassExclusionFilter/TestDescription.java \
- vmTestbase/nsk/jdi/MonitorWaitRequest/addClassFilter_ClassName/TestDescription.java \
- vmTestbase/nsk/jdi/MonitorWaitRequest/addClassFilter_ReferenceType/TestDescription.java \
- vmTestbase/nsk/jdi/MonitorWaitRequest/addInstanceFilter/TestDescription.java \
- vmTestbase/nsk/jdi/MonitorWaitRequest/addThreadFilter/TestDescription.java \
- vmTestbase/nsk/jdi/MonitorWaitedRequest/addClassExclusionFilter/TestDescription.java \
- vmTestbase/nsk/jdi/MonitorWaitedRequest/addClassFilter_ClassName/TestDescription.java \
- vmTestbase/nsk/jdi/MonitorWaitedRequest/addClassFilter_ReferenceType/TestDescription.java \
- vmTestbase/nsk/jdi/MonitorWaitedRequest/addInstanceFilter/TestDescription.java \
- vmTestbase/nsk/jdi/MonitorWaitedRequest/addThreadFilter/TestDescription.java \
- vmTestbase/nsk/jdi/stress/ClassPrepareEvents/ClassPrepareEvents001/ClassPrepareEvents001.java \
- vmTestbase/nsk/jdi/ClassPrepareRequest/addSourceNameFilter/addSourceNameFilter001/addSourceNameFilter001.java \
- vmTestbase/nsk/jdi/ClassPrepareRequest/addSourceNameFilter/addSourceNameFilter002/addSourceNameFilter002.java \
- vmTestbase/nsk/jdi/VMOutOfMemoryException/VMOutOfMemoryException001/VMOutOfMemoryException001.java \
- vmTestbase/nsk/jdi/stress/serial/forceEarlyReturn001/TestDescription.java \
- vmTestbase/nsk/jdi/stress/serial/heapwalking001/TestDescription.java \
- vmTestbase/nsk/jdi/stress/serial/monitorEvents001/TestDescription.java \
- vmTestbase/nsk/jdi/stress/serial/ownedMonitorsAndFrames001/TestDescription.java \
- vmTestbase/nsk/jdi/stress/serial/mixed001/TestDescription.java \
- vmTestbase/nsk/jdi/stress/serial/forceEarlyReturn002/TestDescription.java \
- vmTestbase/nsk/jdi/stress/serial/monitorEvents002/TestDescription.java \
- vmTestbase/nsk/jdi/stress/serial/ownedMonitorsAndFrames002/TestDescription.java \
- vmTestbase/nsk/jdi/VirtualMachine/setDefaultStratum/setDefaultStratum002/setDefaultStratum002.java \
- vmTestbase/nsk/jdi/ReferenceType/allLineLocations_ss/allLineLocations_ss003/allLineLocations_ss003.java \
- vmTestbase/nsk/jdi/ReferenceType/allLineLocations_ss/allLineLocations_ss004/allLineLocations_ss004.java \
- vmTestbase/nsk/jdi/Method/allLineLocations_ss/allLineLocations_ss002/allLineLocations_ss002.java \
- vmTestbase/nsk/jdi/Method/allLineLocations_ss/allLineLocations_ss003/allLineLocations_ss003.java \
- vmTestbase/nsk/jdi/ReferenceType/locationsOfLine_ssi/locationsOfLine_ssi003/locationsOfLine_ssi003.java \
- vmTestbase/nsk/jdi/ReferenceType/locationsOfLine_ssi/locationsOfLine_ssi004/locationsOfLine_ssi004.java \
- vmTestbase/nsk/jdi/Method/locationsOfLine_ssi/locationsOfLine_ssi002/locationsOfLine_ssi002.java \
- vmTestbase/nsk/jdi/Method/locationsOfLine_ssi/locationsOfLine_ssi003/locationsOfLine_ssi003.java \
- vmTestbase/nsk/jdi/ReferenceType/sourceNames/sourceNames003/sourceNames003.java \
- vmTestbase/nsk/jdi/ReferenceType/sourcePaths/sourcePaths003/sourcePaths003.java \
- vmTestbase/nsk/jdi/ReferenceType/availableStrata/availableStrata002/availableStrata002.java \
- vmTestbase/nsk/jdi/ReferenceType/defaultStratum/defaultStratum002/defaultStratum002.java \
- vmTestbase/nsk/jdi/Location/lineNumber_s/lineNumber_s002/lineNumber_s002.java \
- vmTestbase/nsk/jdi/Location/sourceName_s/sourceName_s002/sourceName_s002.java \
- vmTestbase/nsk/jdi/Location/sourcePath_s/sourcePath_s002/sourcePath_s002.java \
- vmTestbase/nsk/jdi/AttachingConnector/attach/attach005/TestDescription.java \
- vmTestbase/nsk/jdi/AttachingConnector/attachnosuspend/attachnosuspend002/TestDescription.java \
- vmTestbase/nsk/jdi/AttachingConnector/attachnosuspend/attachnosuspend003/TestDescription.java \
- vmTestbase/nsk/jdi/MethodExitEvent/returnValue/returnValue001/returnValue001.java \
- vmTestbase/nsk/jdi/MethodExitEvent/returnValue/returnValue002/returnValue002.java \
- vmTestbase/nsk/jdi/MethodExitEvent/returnValue/returnValue003/returnValue003.java \
- vmTestbase/nsk/jdi/MethodExitEvent/returnValue/returnValue004/returnValue004.java \
- vmTestbase/nsk/jdi/StackFrame/getArgumentValues/getArgumentValues001/getArgumentValues001.java \
- vmTestbase/nsk/jdi/StackFrame/getArgumentValues/getArgumentValues002/getArgumentValues002.java \
- vmTestbase/nsk/jdi/StackFrame/getArgumentValues/getArgumentValues003/getArgumentValues003.java
-
vmTestbase_vm_metaspace = \
vmTestbase/metaspace
@@ -1176,702 +349,10 @@
vmTestbase_nsk_jvmti = \
vmTestbase/nsk/jvmti
-vmTestbase_nsk_jvmti_quick = \
- vmTestbase/nsk/jvmti/AddCapabilities/addcaps001/TestDescription.java \
- vmTestbase/nsk/jvmti/AddCapabilities/addcaps002/TestDescription.java \
- vmTestbase/nsk/jvmti/AddCapabilities/addcaps003/TestDescription.java \
- vmTestbase/nsk/jvmti/AddToBootstrapClassLoaderSearch/bootclssearch001/TestDescription.java \
- vmTestbase/nsk/jvmti/AddToBootstrapClassLoaderSearch/bootclssearch002/TestDescription.java \
- vmTestbase/nsk/jvmti/AddToBootstrapClassLoaderSearch/bootclssearch003/TestDescription.java \
- vmTestbase/nsk/jvmti/AddToBootstrapClassLoaderSearch/bootclssearch004/TestDescription.java \
- vmTestbase/nsk/jvmti/AddToBootstrapClassLoaderSearch/bootclssearch007/TestDescription.java \
- vmTestbase/nsk/jvmti/AddToBootstrapClassLoaderSearch/bootclssearch008/TestDescription.java \
- vmTestbase/nsk/jvmti/AddToBootstrapClassLoaderSearch/bootclssearch009/TestDescription.java \
- vmTestbase/nsk/jvmti/AddToBootstrapClassLoaderSearch/bootclssearch010/TestDescription.java \
- vmTestbase/nsk/jvmti/AddToSystemClassLoaderSearch/systemclssearch001/TestDescription.java \
- vmTestbase/nsk/jvmti/AddToSystemClassLoaderSearch/systemclssearch002/TestDescription.java \
- vmTestbase/nsk/jvmti/AddToSystemClassLoaderSearch/systemclssearch003/TestDescription.java \
- vmTestbase/nsk/jvmti/AddToSystemClassLoaderSearch/systemclssearch004/TestDescription.java \
- vmTestbase/nsk/jvmti/AddToSystemClassLoaderSearch/systemclssearch005/TestDescription.java \
- vmTestbase/nsk/jvmti/AddToSystemClassLoaderSearch/systemclssearch006/TestDescription.java \
- vmTestbase/nsk/jvmti/Agent_OnLoad/agentonload001/TestDescription.java \
- vmTestbase/nsk/jvmti/Agent_OnLoad/agentonload002/TestDescription.java \
- vmTestbase/nsk/jvmti/Agent_OnLoad/agentonload003/TestDriver.java \
- vmTestbase/nsk/jvmti/Agent_OnUnload/agentonunload001/TestDriver.java \
- vmTestbase/nsk/jvmti/Breakpoint/breakpoint001/TestDescription.java \
- vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk001/TestDescription.java \
- vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk002/TestDescription.java \
- vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk003/TestDescription.java \
- vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk004/TestDescription.java \
- vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk005/TestDescription.java \
- vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk006/TestDescription.java \
- vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk007/TestDescription.java \
- vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk008/TestDescription.java \
- vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk009/TestDescription.java \
- vmTestbase/nsk/jvmti/ClassLoad/classload001/TestDescription.java \
- vmTestbase/nsk/jvmti/ClassPrepare/classprep001/TestDescription.java \
- vmTestbase/nsk/jvmti/ClearBreakpoint/clrbrk001/TestDescription.java \
- vmTestbase/nsk/jvmti/ClearBreakpoint/clrbrk002/TestDescription.java \
- vmTestbase/nsk/jvmti/ClearBreakpoint/clrbrk005/TestDescription.java \
- vmTestbase/nsk/jvmti/ClearFieldAccessWatch/clrfldw001/TestDescription.java \
- vmTestbase/nsk/jvmti/ClearFieldAccessWatch/clrfldw002/TestDescription.java \
- vmTestbase/nsk/jvmti/ClearFieldModificationWatch/clrfmodw001/TestDescription.java \
- vmTestbase/nsk/jvmti/ClearFieldModificationWatch/clrfmodw002/TestDescription.java \
- vmTestbase/nsk/jvmti/CompiledMethodLoad/compmethload001/TestDescription.java \
- vmTestbase/nsk/jvmti/CreateRawMonitor/crrawmon001/TestDescription.java \
- vmTestbase/nsk/jvmti/CreateRawMonitor/crrawmon002/TestDescription.java \
- vmTestbase/nsk/jvmti/DisposeEnvironment/disposeenv001/TestDescription.java \
- vmTestbase/nsk/jvmti/DisposeEnvironment/disposeenv002/TestDescription.java \
- vmTestbase/nsk/jvmti/Deallocate/dealloc001/TestDescription.java \
- vmTestbase/nsk/jvmti/DestroyRawMonitor/drrawmon001/TestDescription.java \
- vmTestbase/nsk/jvmti/DestroyRawMonitor/drrawmon003/TestDescription.java \
- vmTestbase/nsk/jvmti/DestroyRawMonitor/drrawmon004/TestDescription.java \
- vmTestbase/nsk/jvmti/DynamicCodeGenerated/dyncodgen001/TestDescription.java \
- vmTestbase/nsk/jvmti/Exception/exception001/TestDescription.java \
- vmTestbase/nsk/jvmti/ExceptionCatch/excatch001/TestDescription.java \
- vmTestbase/nsk/jvmti/FieldAccess/fieldacc001/TestDescription.java \
- vmTestbase/nsk/jvmti/FieldAccess/fieldacc002/TestDescription.java \
- vmTestbase/nsk/jvmti/FieldAccess/fieldacc003/TestDescription.java \
- vmTestbase/nsk/jvmti/FieldAccess/fieldacc004/TestDescription.java \
- vmTestbase/nsk/jvmti/FieldModification/fieldmod001/TestDescription.java \
- vmTestbase/nsk/jvmti/FieldModification/fieldmod002/TestDescription.java \
- vmTestbase/nsk/jvmti/ForceGarbageCollection/forcegc001/TestDescription.java \
- vmTestbase/nsk/jvmti/ForceGarbageCollection/forcegc002/TestDescription.java \
- vmTestbase/nsk/jvmti/FramePop/framepop001/TestDescription.java \
- vmTestbase/nsk/jvmti/FramePop/framepop002/TestDescription.java \
- vmTestbase/nsk/jvmti/GenerateEvents/genevents001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetAllThreads/allthr001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetAllThreads/allthr002/TestDescription.java \
- vmTestbase/nsk/jvmti/GetAvailableProcessors/getavailproc001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetArgumentsSize/argsize001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetArgumentsSize/argsize002/TestDescription.java \
- vmTestbase/nsk/jvmti/GetBytecodes/bytecodes001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetBytecodes/bytecodes002/TestDescription.java \
- vmTestbase/nsk/jvmti/GetBytecodes/bytecodes003/TestDescription.java \
- vmTestbase/nsk/jvmti/GetCapabilities/getcaps001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetCapabilities/getcaps002/TestDescription.java \
- vmTestbase/nsk/jvmti/GetClassFields/getclfld005/TestDescription.java \
- vmTestbase/nsk/jvmti/GetClassFields/getclfld006/TestDescription.java \
- vmTestbase/nsk/jvmti/GetClassFields/getclfld007/TestDescription.java \
- vmTestbase/nsk/jvmti/GetClassLoader/getclsldr001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetClassLoader/getclsldr002/TestDescription.java \
- vmTestbase/nsk/jvmti/GetClassLoader/getclsldr003/TestDescription.java \
- vmTestbase/nsk/jvmti/GetClassLoaderClasses/clsldrclss001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetClassLoaderClasses/clsldrclss002/TestDescription.java \
- vmTestbase/nsk/jvmti/GetClassMethods/getclmthd005/TestDescription.java \
- vmTestbase/nsk/jvmti/GetClassMethods/getclmthd006/TestDescription.java \
- vmTestbase/nsk/jvmti/GetClassMethods/getclmthd007/TestDescription.java \
- vmTestbase/nsk/jvmti/GetClassModifiers/getclmdf004/TestDescription.java \
- vmTestbase/nsk/jvmti/GetClassModifiers/getclmdf005/TestDescription.java \
- vmTestbase/nsk/jvmti/GetClassModifiers/getclmdf006/TestDescription.java \
- vmTestbase/nsk/jvmti/GetClassModifiers/getclmdf007/TestDescription.java \
- vmTestbase/nsk/jvmti/GetClassSignature/getclsig004/TestDescription.java \
- vmTestbase/nsk/jvmti/GetClassSignature/getclsig005/TestDescription.java \
- vmTestbase/nsk/jvmti/GetClassSignature/getclsig006/TestDescription.java \
- vmTestbase/nsk/jvmti/GetClassStatus/getclstat005/TestDescription.java \
- vmTestbase/nsk/jvmti/GetClassStatus/getclstat006/TestDescription.java \
- vmTestbase/nsk/jvmti/GetClassStatus/getclstat007/TestDescription.java \
- vmTestbase/nsk/jvmti/GetCurrentContendedMonitor/contmon001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetCurrentContendedMonitor/contmon002/TestDescription.java \
- vmTestbase/nsk/jvmti/GetCurrentContendedMonitor/contmon003/TestDescription.java \
- vmTestbase/nsk/jvmti/GetCurrentThreadCpuTime/curthrcputime001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetCurrentThreadCpuTimerInfo/curthrtimerinfo001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetEnvironmentLocalStorage/getenvstor001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetErrorName/geterrname001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetErrorName/geterrname002/TestDescription.java \
- vmTestbase/nsk/jvmti/GetExtensionEvents/extevents001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetExtensionFunctions/extfuncs001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetFieldDeclaringClass/getfldecl001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetFieldDeclaringClass/getfldecl002/TestDescription.java \
- vmTestbase/nsk/jvmti/GetFieldDeclaringClass/getfldecl004/TestDescription.java \
- vmTestbase/nsk/jvmti/GetFieldModifiers/getfldmdf003/TestDescription.java \
- vmTestbase/nsk/jvmti/GetFieldModifiers/getfldmdf004/TestDescription.java \
- vmTestbase/nsk/jvmti/GetFieldName/getfldnm003/TestDescription.java \
- vmTestbase/nsk/jvmti/GetFieldName/getfldnm004/TestDescription.java \
- vmTestbase/nsk/jvmti/GetFieldName/getfldnm005/TestDescription.java \
- vmTestbase/nsk/jvmti/GetFrameCount/framecnt001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetFrameCount/framecnt002/TestDescription.java \
- vmTestbase/nsk/jvmti/GetFrameCount/framecnt003/TestDescription.java \
- vmTestbase/nsk/jvmti/GetFrameLocation/frameloc002/TestDescription.java \
- vmTestbase/nsk/jvmti/GetFrameLocation/frameloc003/TestDescription.java \
- vmTestbase/nsk/jvmti/GetImplementedInterfaces/getintrf005/TestDescription.java \
- vmTestbase/nsk/jvmti/GetImplementedInterfaces/getintrf006/TestDescription.java \
- vmTestbase/nsk/jvmti/GetImplementedInterfaces/getintrf007/TestDescription.java \
- vmTestbase/nsk/jvmti/GetJLocationFormat/getjlocfmt001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetJLocationFormat/getjlocfmt002/TestDescription.java \
- vmTestbase/nsk/jvmti/GetJNIFunctionTable/getjniftab001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetJNIFunctionTable/getjniftab002/TestDescription.java \
- vmTestbase/nsk/jvmti/GetLineNumberTable/linetab001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetLineNumberTable/linetab002/TestDescription.java \
- vmTestbase/nsk/jvmti/GetLineNumberTable/linetab003/TestDescription.java \
- vmTestbase/nsk/jvmti/GetLoadedClasses/loadedclss001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetLoadedClasses/loadedclss002/TestDescription.java \
- vmTestbase/nsk/jvmti/GetLocalVariable/getlocal001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetLocalVariable/getlocal002/TestDescription.java \
- vmTestbase/nsk/jvmti/GetLocalVariableTable/localtab001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetLocalVariableTable/localtab002/TestDescription.java \
- vmTestbase/nsk/jvmti/GetLocalVariableTable/localtab003/TestDescription.java \
- vmTestbase/nsk/jvmti/GetLocalVariableTable/localtab004/TestDescription.java \
- vmTestbase/nsk/jvmti/GetLocalVariableTable/localtab005/TestDescription.java \
- vmTestbase/nsk/jvmti/GetMaxLocals/maxloc001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetMaxLocals/maxloc002/TestDescription.java \
- vmTestbase/nsk/jvmti/GetMethodDeclaringClass/declcls001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetMethodDeclaringClass/declcls002/TestDescription.java \
- vmTestbase/nsk/jvmti/GetMethodDeclaringClass/declcls003/TestDescription.java \
- vmTestbase/nsk/jvmti/GetObjectHashCode/objhashcode001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetMethodLocation/methloc001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetMethodLocation/methloc002/TestDescription.java \
- vmTestbase/nsk/jvmti/GetMethodModifiers/methmod001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetMethodModifiers/methmod002/TestDescription.java \
- vmTestbase/nsk/jvmti/GetMethodName/methname001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetMethodName/methname002/TestDescription.java \
- vmTestbase/nsk/jvmti/GetMethodName/methname003/TestDescription.java \
- vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage002/TestDescription.java \
- vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage003/TestDescription.java \
- vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage004/TestDescription.java \
- vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage005/TestDescription.java \
- vmTestbase/nsk/jvmti/GetObjectSize/objsize001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetObjectsWithTags/objwithtags001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetOwnedMonitorInfo/ownmoninf001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetOwnedMonitorInfo/ownmoninf002/TestDescription.java \
- vmTestbase/nsk/jvmti/GetOwnedMonitorInfo/ownmoninf003/TestDescription.java \
- vmTestbase/nsk/jvmti/GetPhase/getphase001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetPhase/getphase002/TestDescription.java \
- vmTestbase/nsk/jvmti/GetPotentialCapabilities/getpotcaps001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetSourceDebugExtension/srcdebugex001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetSourceDebugExtension/srcdebugex002/TestDescription.java \
- vmTestbase/nsk/jvmti/GetSourceDebugExtension/srcdebugex003/TestDescription.java \
- vmTestbase/nsk/jvmti/GetSourceFileName/getsrcfn004/TestDescription.java \
- vmTestbase/nsk/jvmti/GetSourceFileName/getsrcfn005/TestDescription.java \
- vmTestbase/nsk/jvmti/GetSourceFileName/getsrcfn006/TestDescription.java \
- vmTestbase/nsk/jvmti/GetSystemProperties/getsysprops001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetSystemProperties/getsysprops002/TestDescription.java \
- vmTestbase/nsk/jvmti/GetSystemProperty/getsysprop001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetSystemProperty/getsysprop002/TestDescription.java \
- vmTestbase/nsk/jvmti/GetStackTrace/getstacktr001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetStackTrace/getstacktr002/TestDescription.java \
- vmTestbase/nsk/jvmti/GetStackTrace/getstacktr003/TestDescription.java \
- vmTestbase/nsk/jvmti/GetStackTrace/getstacktr004/TestDescription.java \
- vmTestbase/nsk/jvmti/GetStackTrace/getstacktr005/TestDescription.java \
- vmTestbase/nsk/jvmti/GetStackTrace/getstacktr006/TestDescription.java \
- vmTestbase/nsk/jvmti/GetStackTrace/getstacktr007/TestDescription.java \
- vmTestbase/nsk/jvmti/GetStackTrace/getstacktr008/TestDescription.java \
- vmTestbase/nsk/jvmti/GetStackTrace/getstacktr009/TestDescription.java \
- vmTestbase/nsk/jvmti/GetTag/gettag001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetThreadCpuTime/thrcputime001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetThreadCpuTime/thrcputime002/TestDescription.java \
- vmTestbase/nsk/jvmti/GetThreadCpuTimerInfo/thrtimerinfo001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetThreadGroupChildren/getthrdgrpchld001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetThreadGroupInfo/thrgrpinfo001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetThreadGroupInfo/thrgrpinfo002/TestDescription.java \
- vmTestbase/nsk/jvmti/GetThreadInfo/thrinfo001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetThreadInfo/thrinfo002/TestDescription.java \
- vmTestbase/nsk/jvmti/GetThreadLocalStorage/getthrdstor001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetThreadState/thrstat001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetThreadState/thrstat002/TestDescription.java \
- vmTestbase/nsk/jvmti/GetThreadState/thrstat003/TestDescription.java \
- vmTestbase/nsk/jvmti/GetThreadState/thrstat004/TestDescription.java \
- vmTestbase/nsk/jvmti/GetThreadState/thrstat005/TestDescription.java \
- vmTestbase/nsk/jvmti/GetTime/gettime001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetTimerInfo/timerinfo001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetTopThreadGroups/topthrgrp001/TestDescription.java \
- vmTestbase/nsk/jvmti/GetTopThreadGroups/topthrgrp002/TestDescription.java \
- vmTestbase/nsk/jvmti/GetVersionNumber/getvern001/TestDescription.java \
- vmTestbase/nsk/jvmti/InterruptThread/intrpthrd001/TestDescription.java \
- vmTestbase/nsk/jvmti/InterruptThread/intrpthrd002/TestDescription.java \
- vmTestbase/nsk/jvmti/InterruptThread/intrpthrd003/TestDescription.java \
- vmTestbase/nsk/jvmti/IsArrayClass/isarray004/TestDescription.java \
- vmTestbase/nsk/jvmti/IsArrayClass/isarray005/TestDescription.java \
- vmTestbase/nsk/jvmti/IsFieldSynthetic/isfldsin002/TestDescription.java \
- vmTestbase/nsk/jvmti/IsFieldSynthetic/isfldsin003/TestDescription.java \
- vmTestbase/nsk/jvmti/IsInterface/isintrf004/TestDescription.java \
- vmTestbase/nsk/jvmti/IsInterface/isintrf005/TestDescription.java \
- vmTestbase/nsk/jvmti/IsMethodNative/isnative001/TestDescription.java \
- vmTestbase/nsk/jvmti/IsMethodNative/isnative002/TestDescription.java \
- vmTestbase/nsk/jvmti/IsMethodObsolete/isobsolete001/TestDescription.java \
- vmTestbase/nsk/jvmti/IsMethodSynthetic/issynth001/TestDescription.java \
- vmTestbase/nsk/jvmti/IsMethodSynthetic/issynth002/TestDescription.java \
- vmTestbase/nsk/jvmti/IterateOverHeap/iterheap001/TestDescription.java \
- vmTestbase/nsk/jvmti/IterateOverHeap/iterheap002/TestDescription.java \
- vmTestbase/nsk/jvmti/IterateOverHeap/iterheap003/TestDescription.java \
- vmTestbase/nsk/jvmti/IterateOverHeap/iterheap004/TestDescription.java \
- vmTestbase/nsk/jvmti/IterateOverHeap/iterheap005/TestDescription.java \
- vmTestbase/nsk/jvmti/IterateOverHeap/iterheap006/TestDescription.java \
- vmTestbase/nsk/jvmti/IterateOverHeap/iterheap007/TestDescription.java \
- vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls001/TestDescription.java \
- vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls002/TestDescription.java \
- vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls003/TestDescription.java \
- vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls004/TestDescription.java \
- vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls005/TestDescription.java \
- vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls006/TestDescription.java \
- vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls007/TestDescription.java \
- vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj001/TestDescription.java \
- vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj002/TestDescription.java \
- vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj003/TestDescription.java \
- vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj004/TestDescription.java \
- vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj005/TestDescription.java \
- vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj001/TestDescription.java \
- vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj002/TestDescription.java \
- vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj003/TestDescription.java \
- vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj004/TestDescription.java \
- vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj005/TestDescription.java \
- vmTestbase/nsk/jvmti/IterateThroughHeap/callbacks/Callbacks.java \
- vmTestbase/nsk/jvmti/IterateThroughHeap/concrete-klass-filter/TestDescription.java \
- vmTestbase/nsk/jvmti/IterateThroughHeap/non-concrete-klass-filter/TestDescription.java \
- vmTestbase/nsk/jvmti/IterateThroughHeap/filter-tagged/TestDescription.java \
- vmTestbase/nsk/jvmti/IterateThroughHeap/filter-untagged/TestDescription.java \
- vmTestbase/nsk/jvmti/IterateThroughHeap/filter-class-tagged/TestDescription.java \
- vmTestbase/nsk/jvmti/IterateThroughHeap/filter-class-untagged/TestDescription.java \
- vmTestbase/nsk/jvmti/IterateThroughHeap/abort/Abort.java \
- vmTestbase/nsk/jvmti/MethodEntry/mentry001/TestDescription.java \
- vmTestbase/nsk/jvmti/MethodEntry/mentry002/TestDescription.java \
- vmTestbase/nsk/jvmti/MethodExit/mexit002/TestDescription.java \
- vmTestbase/nsk/jvmti/MonitorContendedEnter/mcontenter001/TestDescription.java \
- vmTestbase/nsk/jvmti/MonitorContendedEntered/mcontentered001/TestDescription.java \
- vmTestbase/nsk/jvmti/MonitorWait/monitorwait001/TestDescription.java \
- vmTestbase/nsk/jvmti/MonitorWaited/monitorwaited001/TestDescription.java \
- vmTestbase/nsk/jvmti/NativeMethodBind/nativemethbind001/TestDescription.java \
- vmTestbase/nsk/jvmti/NativeMethodBind/nativemethbind002/TestDescription.java \
- vmTestbase/nsk/jvmti/NativeMethodBind/nativemethbind003/TestDescription.java \
- vmTestbase/nsk/jvmti/NativeMethodBind/nativemethbind004/TestDescription.java \
- vmTestbase/nsk/jvmti/NotifyFramePop/nframepop001/TestDescription.java \
- vmTestbase/nsk/jvmti/NotifyFramePop/nframepop002/TestDescription.java \
- vmTestbase/nsk/jvmti/NotifyFramePop/nframepop003/TestDescription.java \
- vmTestbase/nsk/jvmti/ObjectFree/objfree002/TestDescription.java \
- vmTestbase/nsk/jvmti/PopFrame/popframe001/TestDescription.java \
- vmTestbase/nsk/jvmti/PopFrame/popframe002/TestDescription.java \
- vmTestbase/nsk/jvmti/PopFrame/popframe003/TestDescription.java \
- vmTestbase/nsk/jvmti/PopFrame/popframe004/TestDescription.java \
- vmTestbase/nsk/jvmti/PopFrame/popframe005/TestDescription.java \
- vmTestbase/nsk/jvmti/PopFrame/popframe006/TestDescription.java \
- vmTestbase/nsk/jvmti/PopFrame/popframe007/TestDescription.java \
- vmTestbase/nsk/jvmti/PopFrame/popframe008/TestDescription.java \
- vmTestbase/nsk/jvmti/PopFrame/popframe009/TestDescription.java \
- vmTestbase/nsk/jvmti/PopFrame/popframe010/TestDescription.java \
- vmTestbase/nsk/jvmti/RawMonitorEnter/rawmonenter001/TestDescription.java \
- vmTestbase/nsk/jvmti/RawMonitorEnter/rawmonenter002/TestDescription.java \
- vmTestbase/nsk/jvmti/RawMonitorEnter/rawmonenter003/TestDescription.java \
- vmTestbase/nsk/jvmti/RawMonitorEnter/rawmonenter004/TestDescription.java \
- vmTestbase/nsk/jvmti/RawMonitorExit/rawmonexit001/TestDescription.java \
- vmTestbase/nsk/jvmti/RawMonitorExit/rawmonexit002/TestDescription.java \
- vmTestbase/nsk/jvmti/RawMonitorExit/rawmonexit003/TestDescription.java \
- vmTestbase/nsk/jvmti/RawMonitorExit/rawmonexit005/TestDescription.java \
- vmTestbase/nsk/jvmti/RawMonitorNotify/rawmnntfy001/TestDescription.java \
- vmTestbase/nsk/jvmti/RawMonitorNotify/rawmnntfy002/TestDescription.java \
- vmTestbase/nsk/jvmti/RawMonitorNotify/rawmnntfy003/TestDescription.java \
- vmTestbase/nsk/jvmti/RawMonitorNotify/rawmnntfy004/TestDescription.java \
- vmTestbase/nsk/jvmti/RawMonitorNotifyAll/rawmnntfyall001/TestDescription.java \
- vmTestbase/nsk/jvmti/RawMonitorNotifyAll/rawmnntfyall002/TestDescription.java \
- vmTestbase/nsk/jvmti/RawMonitorNotifyAll/rawmnntfyall003/TestDescription.java \
- vmTestbase/nsk/jvmti/RawMonitorNotifyAll/rawmnntfyall004/TestDescription.java \
- vmTestbase/nsk/jvmti/RawMonitorWait/rawmnwait001/TestDescription.java \
- vmTestbase/nsk/jvmti/RawMonitorWait/rawmnwait002/TestDescription.java \
- vmTestbase/nsk/jvmti/RawMonitorWait/rawmnwait003/TestDescription.java \
- vmTestbase/nsk/jvmti/RawMonitorWait/rawmnwait004/TestDescription.java \
- vmTestbase/nsk/jvmti/RawMonitorWait/rawmnwait005/TestDescription.java \
- vmTestbase/nsk/jvmti/RedefineClasses/StressRedefine/TestDescription.java \
- vmTestbase/nsk/jvmti/RedefineClasses/StressRedefineWithoutBytecodeCorruption/TestDescription.java \
- vmTestbase/nsk/jvmti/RedefineClasses/redefclass001/TestDescription.java \
- vmTestbase/nsk/jvmti/RedefineClasses/redefclass002/TestDescription.java \
- vmTestbase/nsk/jvmti/RedefineClasses/redefclass003/TestDescription.java \
- vmTestbase/nsk/jvmti/RedefineClasses/redefclass004/TestDescription.java \
- vmTestbase/nsk/jvmti/RedefineClasses/redefclass005/TestDescription.java \
- vmTestbase/nsk/jvmti/RedefineClasses/redefclass006/TestDescription.java \
- vmTestbase/nsk/jvmti/RedefineClasses/redefclass008/TestDescription.java \
- vmTestbase/nsk/jvmti/RedefineClasses/redefclass009/TestDescription.java \
- vmTestbase/nsk/jvmti/RedefineClasses/redefclass010/TestDescription.java \
- vmTestbase/nsk/jvmti/RedefineClasses/redefclass011/TestDescription.java \
- vmTestbase/nsk/jvmti/RedefineClasses/redefclass012/TestDescription.java \
- vmTestbase/nsk/jvmti/RedefineClasses/redefclass013/TestDescription.java \
- vmTestbase/nsk/jvmti/RedefineClasses/redefclass014/TestDescription.java \
- vmTestbase/nsk/jvmti/RedefineClasses/redefclass015/TestDescription.java \
- vmTestbase/nsk/jvmti/RedefineClasses/redefclass016/TestDescription.java \
- vmTestbase/nsk/jvmti/RedefineClasses/redefclass017/TestDescription.java \
- vmTestbase/nsk/jvmti/RedefineClasses/redefclass018/TestDescription.java \
- vmTestbase/nsk/jvmti/RedefineClasses/redefclass019/TestDescription.java \
- vmTestbase/nsk/jvmti/RedefineClasses/redefclass020/TestDescription.java \
- vmTestbase/nsk/jvmti/RedefineClasses/redefclass021/TestDescription.java \
- vmTestbase/nsk/jvmti/RedefineClasses/redefclass022/TestDescription.java \
- vmTestbase/nsk/jvmti/RedefineClasses/redefclass023/TestDescription.java \
- vmTestbase/nsk/jvmti/RedefineClasses/redefclass024/TestDescription.java \
- vmTestbase/nsk/jvmti/RedefineClasses/redefclass025/TestDescription.java \
- vmTestbase/nsk/jvmti/RedefineClasses/redefclass026/TestDescription.java \
- vmTestbase/nsk/jvmti/RedefineClasses/redefclass027/TestDescription.java \
- vmTestbase/nsk/jvmti/RedefineClasses/redefclass028/TestDescription.java \
- vmTestbase/nsk/jvmti/RedefineClasses/redefclass029/TestDescription.java \
- vmTestbase/nsk/jvmti/RedefineClasses/redefclass030/TestDescription.java \
- vmTestbase/nsk/jvmti/RedefineClasses/redefclass031/TestDescription.java \
- vmTestbase/nsk/jvmti/RelinquishCapabilities/relcaps001/TestDescription.java \
- vmTestbase/nsk/jvmti/RelinquishCapabilities/relcaps002/TestDescription.java \
- vmTestbase/nsk/jvmti/ResumeThread/resumethrd001/TestDescription.java \
- vmTestbase/nsk/jvmti/ResumeThread/resumethrd002/TestDescription.java \
- vmTestbase/nsk/jvmti/ResumeThreadList/resumethrdlst001/TestDescription.java \
- vmTestbase/nsk/jvmti/ResumeThreadList/resumethrdlst002/TestDescription.java \
- vmTestbase/nsk/jvmti/RunAgentThread/agentthr001/TestDescription.java \
- vmTestbase/nsk/jvmti/RunAgentThread/agentthr002/TestDescription.java \
- vmTestbase/nsk/jvmti/RunAgentThread/agentthr003/TestDescription.java \
- vmTestbase/nsk/jvmti/SetBreakpoint/setbrk002/TestDescription.java \
- vmTestbase/nsk/jvmti/SetBreakpoint/setbrk003/TestDescription.java \
- vmTestbase/nsk/jvmti/SetBreakpoint/setbrk005/TestDescription.java \
- vmTestbase/nsk/jvmti/SetBreakpoint/setbrk007/TestDescription.java \
- vmTestbase/nsk/jvmti/SetBreakpoint/setbrk008/TestDescription.java \
- vmTestbase/nsk/jvmti/SetEnvironmentLocalStorage/setenvstor001/TestDescription.java \
- vmTestbase/nsk/jvmti/SetEnvironmentLocalStorage/setenvstor002/TestDescription.java \
- vmTestbase/nsk/jvmti/SetEnvironmentLocalStorage/setenvstor003/TestDescription.java \
- vmTestbase/nsk/jvmti/SetEventCallbacks/setevntcallb001/TestDescription.java \
- vmTestbase/nsk/jvmti/SetEventCallbacks/setevntcallb002/TestDescription.java \
- vmTestbase/nsk/jvmti/SetEventCallbacks/setevntcallb003/TestDescription.java \
- vmTestbase/nsk/jvmti/SetEventNotificationMode/setnotif001/TestDescription.java \
- vmTestbase/nsk/jvmti/SetExtensionEventCallback/setextevent001/TestDescription.java \
- vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw001/TestDescription.java \
- vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw002/TestDescription.java \
- vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw003/TestDescription.java \
- vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw004/TestDescription.java \
- vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw005/TestDescription.java \
- vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw006/TestDescription.java \
- vmTestbase/nsk/jvmti/SetFieldModificationWatch/setfmodw002/TestDescription.java \
- vmTestbase/nsk/jvmti/SetFieldModificationWatch/setfmodw003/TestDescription.java \
- vmTestbase/nsk/jvmti/SetFieldModificationWatch/setfmodw004/TestDescription.java \
- vmTestbase/nsk/jvmti/SetFieldModificationWatch/setfmodw005/TestDescription.java \
- vmTestbase/nsk/jvmti/SetFieldModificationWatch/setfmodw006/TestDescription.java \
- vmTestbase/nsk/jvmti/SetJNIFunctionTable/setjniftab001/TestDescription.java \
- vmTestbase/nsk/jvmti/SetJNIFunctionTable/setjniftab002/TestDescription.java \
- vmTestbase/nsk/jvmti/SetLocalVariable/setlocal001/TestDescription.java \
- vmTestbase/nsk/jvmti/SetLocalVariable/setlocal002/TestDescription.java \
- vmTestbase/nsk/jvmti/SetLocalVariable/setlocal003/TestDescription.java \
- vmTestbase/nsk/jvmti/SetLocalVariable/setlocal004/TestDescription.java \
- vmTestbase/nsk/jvmti/SetSystemProperty/setsysprop002/TestDescription.java \
- vmTestbase/nsk/jvmti/SetSystemProperty/setsysprop003/TestDescription.java \
- vmTestbase/nsk/jvmti/SetTag/settag001/TestDescription.java \
- vmTestbase/nsk/jvmti/SetThreadLocalStorage/setthrdstor001/TestDescription.java \
- vmTestbase/nsk/jvmti/SetThreadLocalStorage/setthrdstor002/TestDescription.java \
- vmTestbase/nsk/jvmti/SetThreadLocalStorage/setthrdstor003/TestDescription.java \
- vmTestbase/nsk/jvmti/SetVerboseFlag/setvrbflag001/TestDescription.java \
- vmTestbase/nsk/jvmti/SetVerboseFlag/setvrbflag002/TestDescription.java \
- vmTestbase/nsk/jvmti/SingleStep/singlestep001/TestDescription.java \
- vmTestbase/nsk/jvmti/SingleStep/singlestep003/TestDescription.java \
- vmTestbase/nsk/jvmti/SuspendThread/suspendthrd001/TestDescription.java \
- vmTestbase/nsk/jvmti/SuspendThreadList/suspendthrdlst001/TestDescription.java \
- vmTestbase/nsk/jvmti/StopThread/stopthrd006/TestDescription.java \
- vmTestbase/nsk/jvmti/StopThread/stopthrd007/TestDescription.java \
- vmTestbase/nsk/jvmti/ThreadEnd/threadend001/TestDescription.java \
- vmTestbase/nsk/jvmti/ThreadEnd/threadend002/TestDescription.java \
- vmTestbase/nsk/jvmti/ThreadStart/threadstart001/TestDescription.java \
- vmTestbase/nsk/jvmti/ThreadStart/threadstart002/TestDescription.java \
- vmTestbase/nsk/jvmti/ThreadStart/threadstart003/TestDescription.java \
- vmTestbase/nsk/jvmti/VMDeath/vmdeath001/TestDescription.java \
- vmTestbase/nsk/jvmti/VMInit/vminit001/TestDescription.java \
- vmTestbase/nsk/jvmti/VMObjectAlloc/vmobjalloc001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/allocation/AP01/ap01t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/allocation/AP02/ap02t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/allocation/AP03/ap03t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/allocation/AP05/ap05t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/allocation/AP05/ap05t002/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/allocation/AP06/ap06t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/allocation/AP07/ap07t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/allocation/AP07/ap07t002/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/allocation/AP09/ap09t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/allocation/AP10/ap10t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/allocation/AP11/ap11t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/bcinstr/BI01/bi01t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/bcinstr/BI01/bi01t002/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/bcinstr/BI02/bi02t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/bcinstr/BI02/bi02t002/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/bcinstr/BI03/bi03t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/bcinstr/BI03/bi03t002/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/bcinstr/BI04/bi04t002/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t002/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t003/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t004/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t005/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t006/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t008/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t009/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t010/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t011/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t012/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t013/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t014/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t015/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t016/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t017/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t018/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t019/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t020/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t021/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/capability/CM02/cm02t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/contention/TC01/tc01t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/contention/TC02/tc02t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/contention/TC03/tc03t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/contention/TC03/tc03t002/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/contention/TC04/tc04t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/events/EM01/em01t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/events/EM01/em01t002/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t004/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t008/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t009/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t010/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t011/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/events/EM04/em04t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/events/EM05/em05t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/events/EM06/em06t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/events/EM07/em07t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/general_functions/GF01/gf01t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/general_functions/GF04/gf04t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/general_functions/GF06/gf06t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/general_functions/GF08/gf08t001/TestDriver.java \
- vmTestbase/nsk/jvmti/scenarios/general_functions/GF08/gf08t002/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/general_functions/GF08/gf08t003/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS101/hs101t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS101/hs101t002/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS101/hs101t003/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS101/hs101t004/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS101/hs101t005/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS101/hs101t006/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS101/hs101t007/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS101/hs101t008/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS102/hs102t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS102/hs102t002/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS103/hs103t002/hs103t002.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS104/hs104t001/hs104t001.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS104/hs104t002/hs104t002.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS201/hs201t002/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS201/hs201t003/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS202/hs202t001/hs202t001.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS202/hs202t002/hs202t002.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS203/hs203t001/hs203t001.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS203/hs203t002/hs203t002.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS203/hs203t003/hs203t003.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS204/hs204t002/hs204t002.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS204/hs204t003/hs204t003.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS204/hs204t004/hs204t004.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t001/hs301t001.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t002/hs301t002.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t003/hs301t003.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t004/hs301t004.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t005/hs301t005.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t001/hs302t001.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t002/hs302t002.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t003/hs302t003.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t004/hs302t004.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t005/hs302t005.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t006/hs302t006.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t007/hs302t007.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t008/hs302t008.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t009/hs302t009.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t010/hs302t010.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t011/hs302t011.java \
- vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t012/hs302t012.java \
- vmTestbase/nsk/jvmti/scenarios/jni_interception/JI01/ji01t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/jni_interception/JI03/ji03t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/jni_interception/JI03/ji03t002/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/jni_interception/JI03/ji03t003/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/jni_interception/JI05/ji05t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/jni_interception/JI06/ji06t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/multienv/MA01/ma01t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/multienv/MA02/ma02t001/TestDriver.java \
- vmTestbase/nsk/jvmti/scenarios/multienv/MA03/ma03t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/multienv/MA04/ma04t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/multienv/MA04/ma04t002/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/multienv/MA04/ma04t003/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/multienv/MA05/ma05t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/multienv/MA06/ma06t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/multienv/MA07/ma07t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/multienv/MA08/ma08t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t002/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t003/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t004/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t005/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t006/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t007/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t008/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/sampling/SP01/sp01t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/sampling/SP02/sp02t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/sampling/SP02/sp02t002/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/sampling/SP02/sp02t003/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/sampling/SP03/sp03t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/sampling/SP03/sp03t002/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/sampling/SP04/sp04t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/sampling/SP04/sp04t002/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/sampling/SP05/sp05t002/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/sampling/SP05/sp05t003/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/sampling/SP06/sp06t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/sampling/SP06/sp06t002/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/sampling/SP06/sp06t003/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/sampling/SP07/sp07t001/TestDescription.java \
- vmTestbase/nsk/jvmti/scenarios/sampling/SP07/sp07t002/TestDescription.java \
- vmTestbase/nsk/jvmti/AttachOnDemand/attach002a/TestDescription.java \
- vmTestbase/nsk/jvmti/AttachOnDemand/attach024/TestDescription.java \
- vmTestbase/nsk/jvmti/RetransformClasses/retransform002/TestDescription.java \
- vmTestbase/nsk/jvmti/RetransformClasses/retransform003/TestDriver.java \
- vmTestbase/nsk/jvmti/RetransformClasses/retransform004/TestDescription.java \
- vmTestbase/nsk/jvmti/ForceEarlyReturn/ForceEarlyReturn001/TestDescription.java \
- vmTestbase/nsk/jvmti/ForceEarlyReturn/ForceEarlyReturn002/TestDescription.java \
- vmTestbase/nsk/jvmti/SetNativeMethodPrefix/SetNativeMethodPrefix001/TestDescription.java \
- vmTestbase/nsk/jvmti/SetNativeMethodPrefix/SetNativeMethodPrefix002/TestDriver.java \
- vmTestbase/nsk/jvmti/GetEnv/GetEnv001/GetEnv001.java \
- vmTestbase/nsk/jvmti/unit/MethodBind/JvmtiTest/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/OnUnload/JvmtiTest/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/StackTrace/JvmtiTest/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/agentthr/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/clsldrclss00x/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/events/redefineCFLH/JvmtiTest/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/extmech/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/functions/AddToBootstrapClassLoaderSearch/JvmtiTest/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/functions/Dispose/JvmtiTest/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/functions/environment/JvmtiTest/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/functions/nosuspendMonitorInfo/JvmtiTest/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/functions/nosuspendStackTrace/JvmtiTest/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/functions/rawmonitor/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/heap/BasicIterationTests/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/heap/BasicTagTests/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/heap/GetWithTests/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/heap/HeapWalkTests/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/heap/ObjectFreeTests/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/heap/ObjectSizeTests/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/heapref/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/refignore/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/setNullVMInit/JvmtiTest/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/GetLineNumberTable/linetab004/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/GetLocalVariable/getlocal003/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/GetLocalVariable/getlocal004/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/IsSynthetic/issynth001/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/FollowReferences/followref001/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/FollowReferences/followref002/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/FollowReferences/followref003/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/FollowReferences/followref004/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/FollowReferences/followref005/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/FollowReferences/followref006/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretbase/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretfp/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretint/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretlong/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretobj/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretstr/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretvoid/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/GetAllStackTraces/getallstktr001/TestDescription.java \
- vmTestbase/nsk/jvmti/unit/GetConstantPool/getcpool001/TestDescription.java
-
# JDWP tests
vmTestbase_nsk_jdwp = \
vmTestbase/nsk/jdwp
-vmTestbase_nsk_jdwp_quick = \
- vmTestbase/nsk/jdwp/ArrayReference/GetValues/getvalues001/TestDescription.java \
- vmTestbase/nsk/jdwp/ArrayReference/GetValues/getvalues002/TestDescription.java \
- vmTestbase/nsk/jdwp/ArrayReference/Length/length001/TestDescription.java \
- vmTestbase/nsk/jdwp/ArrayReference/SetValues/setvalues001/TestDescription.java \
- vmTestbase/nsk/jdwp/ArrayType/NewInstance/newinstance001/TestDescription.java \
- vmTestbase/nsk/jdwp/ClassLoaderReference/VisibleClasses/visibclasses001/TestDescription.java \
- vmTestbase/nsk/jdwp/ClassObjectReference/ReflectedType/reflectype001/TestDescription.java \
- vmTestbase/nsk/jdwp/ClassType/InvokeMethod/invokemeth001/TestDescription.java \
- vmTestbase/nsk/jdwp/ClassType/NewInstance/newinst001/TestDescription.java \
- vmTestbase/nsk/jdwp/ClassType/SetValues/setvalues001/TestDescription.java \
- vmTestbase/nsk/jdwp/ClassType/Superclass/superclass001/TestDescription.java \
- vmTestbase/nsk/jdwp/Event/BREAKPOINT/breakpoint001/TestDescription.java \
- vmTestbase/nsk/jdwp/Event/EXCEPTION/exception001/TestDescription.java \
- vmTestbase/nsk/jdwp/Event/FIELD_ACCESS/fldaccess001/TestDescription.java \
- vmTestbase/nsk/jdwp/Event/FIELD_MODIFICATION/fldmodification001/TestDescription.java \
- vmTestbase/nsk/jdwp/Event/CLASS_PREPARE/clsprepare001/TestDescription.java \
- vmTestbase/nsk/jdwp/Event/CLASS_UNLOAD/clsunload001/TestDescription.java \
- vmTestbase/nsk/jdwp/Event/METHOD_ENTRY/methentry001/TestDescription.java \
- vmTestbase/nsk/jdwp/Event/METHOD_EXIT/methexit001/TestDescription.java \
- vmTestbase/nsk/jdwp/Event/SINGLE_STEP/singlestep001/TestDescription.java \
- vmTestbase/nsk/jdwp/Event/SINGLE_STEP/singlestep002/TestDescription.java \
- vmTestbase/nsk/jdwp/Event/SINGLE_STEP/singlestep003/TestDescription.java \
- vmTestbase/nsk/jdwp/Event/THREAD_DEATH/thrdeath001/TestDescription.java \
- vmTestbase/nsk/jdwp/Event/THREAD_START/thrstart001/TestDescription.java \
- vmTestbase/nsk/jdwp/Event/VM_DEATH/vmdeath001/TestDescription.java \
- vmTestbase/nsk/jdwp/Event/VM_START/vmstart001/TestDescription.java \
- vmTestbase/nsk/jdwp/Event/Composite/composite001/TestDescription.java \
- vmTestbase/nsk/jdwp/EventRequest/Clear/clear001/TestDescription.java \
- vmTestbase/nsk/jdwp/EventRequest/ClearAllBreakpoints/clrallbreakp001/TestDescription.java \
- vmTestbase/nsk/jdwp/EventRequest/ClearAllBreakpoints/clrallbreakp002/TestDescription.java \
- vmTestbase/nsk/jdwp/EventRequest/ClearAllBreakpoints/clrallbreakp003/TestDescription.java \
- vmTestbase/nsk/jdwp/EventRequest/Set/set001/TestDescription.java \
- vmTestbase/nsk/jdwp/EventRequest/Set/set002/TestDescription.java \
- vmTestbase/nsk/jdwp/Method/LineTable/linetable001/TestDescription.java \
- vmTestbase/nsk/jdwp/Method/VariableTable/vartable001/TestDescription.java \
- vmTestbase/nsk/jdwp/Method/Bytecodes/bytecodes001/TestDescription.java \
- vmTestbase/nsk/jdwp/ObjectReference/DisableCollection/disablecol001/TestDescription.java \
- vmTestbase/nsk/jdwp/ObjectReference/EnableCollection/enablecol001/TestDescription.java \
- vmTestbase/nsk/jdwp/ObjectReference/GetValues/getvalues001/TestDescription.java \
- vmTestbase/nsk/jdwp/ObjectReference/InvokeMethod/invokemeth001/TestDescription.java \
- vmTestbase/nsk/jdwp/ObjectReference/IsCollected/iscollected001/TestDescription.java \
- vmTestbase/nsk/jdwp/ObjectReference/MonitorInfo/monitorinfo001/TestDescription.java \
- vmTestbase/nsk/jdwp/ObjectReference/ReferenceType/referencetype001/TestDescription.java \
- vmTestbase/nsk/jdwp/ObjectReference/SetValues/setvalues001/TestDescription.java \
- vmTestbase/nsk/jdwp/ReferenceType/ClassLoader/classloader001/TestDescription.java \
- vmTestbase/nsk/jdwp/ReferenceType/ClassObject/classobj001/TestDescription.java \
- vmTestbase/nsk/jdwp/ReferenceType/Fields/fields001/TestDescription.java \
- vmTestbase/nsk/jdwp/ReferenceType/GetValues/getvalues001/TestDescription.java \
- vmTestbase/nsk/jdwp/ReferenceType/Interfaces/interfaces001/TestDescription.java \
- vmTestbase/nsk/jdwp/ReferenceType/Methods/methods001/TestDescription.java \
- vmTestbase/nsk/jdwp/ReferenceType/Modifiers/modifiers001/TestDescription.java \
- vmTestbase/nsk/jdwp/ReferenceType/NestedTypes/nestedtypes001/TestDescription.java \
- vmTestbase/nsk/jdwp/ReferenceType/Signature/signature001/TestDescription.java \
- vmTestbase/nsk/jdwp/ReferenceType/SourceFile/srcfile001/TestDescription.java \
- vmTestbase/nsk/jdwp/ReferenceType/Status/status001/TestDescription.java \
- vmTestbase/nsk/jdwp/StackFrame/GetValues/getvalues001/TestDescription.java \
- vmTestbase/nsk/jdwp/StackFrame/SetValues/setvalues001/TestDescription.java \
- vmTestbase/nsk/jdwp/StackFrame/ThisObject/thisobject001/TestDescription.java \
- vmTestbase/nsk/jdwp/StringReference/Value/value001/TestDescription.java \
- vmTestbase/nsk/jdwp/ThreadGroupReference/Children/children001/TestDescription.java \
- vmTestbase/nsk/jdwp/ThreadGroupReference/Name/name001/TestDescription.java \
- vmTestbase/nsk/jdwp/ThreadGroupReference/Parent/parent001/TestDescription.java \
- vmTestbase/nsk/jdwp/ThreadReference/CurrentContendedMonitor/curcontmonitor001/TestDescription.java \
- vmTestbase/nsk/jdwp/ThreadReference/Frames/frames001/TestDescription.java \
- vmTestbase/nsk/jdwp/ThreadReference/FrameCount/framecnt001/TestDescription.java \
- vmTestbase/nsk/jdwp/ThreadReference/Interrupt/interrupt001/TestDescription.java \
- vmTestbase/nsk/jdwp/ThreadReference/Name/name001/TestDescription.java \
- vmTestbase/nsk/jdwp/ThreadReference/OwnedMonitors/ownmonitors001/TestDescription.java \
- vmTestbase/nsk/jdwp/ThreadReference/Resume/resume001/TestDescription.java \
- vmTestbase/nsk/jdwp/ThreadReference/Status/status001/TestDescription.java \
- vmTestbase/nsk/jdwp/ThreadReference/Stop/stop001/TestDescription.java \
- vmTestbase/nsk/jdwp/ThreadReference/Suspend/suspend001/TestDescription.java \
- vmTestbase/nsk/jdwp/ThreadReference/SuspendCount/suspendcnt001/TestDescription.java \
- vmTestbase/nsk/jdwp/ThreadReference/ThreadGroup/threadgroup001/TestDescription.java \
- vmTestbase/nsk/jdwp/VirtualMachine/AllThreads/allthreads001/TestDescription.java \
- vmTestbase/nsk/jdwp/VirtualMachine/Capabilities/capabilities001/TestDescription.java \
- vmTestbase/nsk/jdwp/VirtualMachine/ClassPaths/classpaths001/TestDescription.java \
- vmTestbase/nsk/jdwp/VirtualMachine/ClassesBySignature/classbysig001/TestDescription.java \
- vmTestbase/nsk/jdwp/VirtualMachine/CreateString/createstr001/TestDescription.java \
- vmTestbase/nsk/jdwp/VirtualMachine/Dispose/dispose001/TestDescription.java \
- vmTestbase/nsk/jdwp/VirtualMachine/DisposeObjects/disposeobj001/TestDescription.java \
- vmTestbase/nsk/jdwp/VirtualMachine/Exit/exit001/TestDescription.java \
- vmTestbase/nsk/jdwp/VirtualMachine/HoldEvents/holdevents001/TestDescription.java \
- vmTestbase/nsk/jdwp/VirtualMachine/IDSizes/idsizes001/TestDescription.java \
- vmTestbase/nsk/jdwp/VirtualMachine/TopLevelThreadGroups/threadgroups001/TestDescription.java \
- vmTestbase/nsk/jdwp/VirtualMachine/ReleaseEvents/releaseevents001/TestDescription.java \
- vmTestbase/nsk/jdwp/VirtualMachine/ReleaseEvents/releaseevents002/TestDescription.java \
- vmTestbase/nsk/jdwp/VirtualMachine/Resume/resume001/TestDescription.java \
- vmTestbase/nsk/jdwp/VirtualMachine/Version/version001/TestDescription.java \
- vmTestbase/nsk/jdwp/VirtualMachine/Version/version002/TestDescription.java \
- vmTestbase/nsk/jdwp/Event/VM_DEATH/vmdeath002/TestDescription.java \
- vmTestbase/nsk/jdwp/Method/IsObsolete/isobsolete001/TestDescription.java \
- vmTestbase/nsk/jdwp/Method/IsObsolete/isobsolete002/TestDescription.java \
- vmTestbase/nsk/jdwp/ReferenceType/SourceDebugExtension/srcdebugext001/TestDescription.java \
- vmTestbase/nsk/jdwp/StackFrame/PopFrames/popframes001/TestDescription.java \
- vmTestbase/nsk/jdwp/VirtualMachine/CapabilitiesNew/capabilitiesnew001/TestDescription.java \
- vmTestbase/nsk/jdwp/VirtualMachine/RedefineClasses/redefinecls001/TestDescription.java \
- vmTestbase/nsk/jdwp/VirtualMachine/SetDefaultStratum/setdefstrat001/TestDescription.java \
- vmTestbase/nsk/jdwp/Method/VariableTableWithGeneric/vartblwithgen001/TestDescription.java \
- vmTestbase/nsk/jdwp/ReferenceType/FieldsWithGeneric/fldwithgeneric001/TestDescription.java \
- vmTestbase/nsk/jdwp/ReferenceType/MethodsWithGeneric/methwithgeneric001/TestDescription.java \
- vmTestbase/nsk/jdwp/ReferenceType/SignatureWithGeneric/sigwithgeneric001/TestDescription.java \
- vmTestbase/nsk/jdwp/ReferenceType/Instances/instances001/instances001.java \
- vmTestbase/nsk/jdwp/ReferenceType/Instances/instances002/instances002.java \
- vmTestbase/nsk/jdwp/ObjectReference/ReferringObjects/referringObjects001/referringObjects001.java \
- vmTestbase/nsk/jdwp/ObjectReference/ReferringObjects/referringObjects002/referringObjects002.java \
- vmTestbase/nsk/jdwp/VirtualMachine/InstanceCounts/instanceCounts001/instanceCounts001.java \
- vmTestbase/nsk/jdwp/ThreadReference/ForceEarlyReturn/forceEarlyReturn002/forceEarlyReturn002.java \
- vmTestbase/nsk/jdwp/ThreadReference/OwnedMonitorsStackDepthInfo/ownedMonitorsStackDepthInfo001/ownedMonitorsStackDepthInfo001.java \
- vmTestbase/nsk/jdwp/ThreadReference/OwnedMonitorsStackDepthInfo/ownedMonitorsStackDepthInfo002/ownedMonitorsStackDepthInfo002.java
-
vmTestbase_nsk_stress = \
vmTestbase/nsk/stress
@@ -1888,32 +369,6 @@
:vmTestbase_vm_gc_misc \
:vmTestbase_vm_gc_ref
-# vmTestbase_vm_gc w/ 'quick' k/w
-vmTestbase_vm_gc_quick = \
- vmTestbase/vm/gc/compact/Compact_Arrays \
- vmTestbase/vm/gc/compact/Compact_Strings_TwoFields \
- vmTestbase/vm/gc/compact/Compact_InternedStrings_Strings \
- vmTestbase/vm/gc/compact/Humongous_Arrays5M \
- vmTestbase/vm/gc/compact/Humongous_NonbranchyTree \
- vmTestbase/vm/gc/containers/LinkedBlockingDeque_Arrays/TestDescription.java \
- vmTestbase/vm/gc/containers/LinkedHashMap_Arrays/TestDescription.java \
- vmTestbase/vm/gc/containers/Combination05/TestDescription.java \
- vmTestbase/gc/ArrayJuggle/Juggle01 \
- vmTestbase/gc/ArrayJuggle/Juggle14 \
- vmTestbase/gc/ArrayJuggle/Juggle22 \
- vmTestbase/gc/ArrayJuggle/Juggle29 \
- vmTestbase/gc/ArrayJuggle/Juggle34 \
- vmTestbase/gc/gctests/LargeObjects/large001/large001.java \
- vmTestbase/gc/gctests/LoadUnloadGC2/LoadUnloadGC2.java \
- vmTestbase/gc/gctests/StringGC/StringGC.java \
- vmTestbase/gc/gctests/StringInternGC/StringInternGC.java \
- vmTestbase/gc/gctests/ReferencesGC/ReferencesGC.java \
- vmTestbase/vm/gc/kind/parOld/TestDescription.java \
- vmTestbase/gc/lock/jni/jnilock001/TestDescription.java \
- vmTestbase/gc/lock/jniref/jnireflock04/TestDescription.java \
- vmTestbase/gc/lock/jvmti/alloc/jvmtialloclock02/TestDescription.java \
- vmTestbase/gc/lock/malloc/malloclock03/TestDescription.java
-
# In a loop: fill out the heap until OOME and then partly clear it. Variate object type and size
vmTestbase_vm_gc_compact = \
vmTestbase/vm/gc/compact
@@ -1983,287 +438,6 @@
vmTestbase/jit \
vmTestbase/vm/jit
-vmTestbase_vm_compiler_quick = \
- vmTestbase/vm/compiler/jbe/constprop/constprop01/constprop01.java \
- vmTestbase/vm/compiler/jbe/constprop/constprop02/constprop02.java \
- vmTestbase/vm/compiler/jbe/dead/dead01/dead01.java \
- vmTestbase/vm/compiler/jbe/dead/dead02/dead02.java \
- vmTestbase/vm/compiler/jbe/dead/dead03/dead03.java \
- vmTestbase/vm/compiler/jbe/dead/dead04/dead04.java \
- vmTestbase/vm/compiler/jbe/dead/dead05/dead05.java \
- vmTestbase/vm/compiler/jbe/dead/dead06/dead06.java \
- vmTestbase/vm/compiler/jbe/dead/dead07/dead07.java \
- vmTestbase/vm/compiler/jbe/dead/dead08/dead08.java \
- vmTestbase/vm/compiler/jbe/dead/dead09/dead09.java \
- vmTestbase/vm/compiler/jbe/dead/dead10/dead10.java \
- vmTestbase/vm/compiler/jbe/dead/dead11/dead11.java \
- vmTestbase/vm/compiler/jbe/dead/dead12/dead12.java \
- vmTestbase/vm/compiler/jbe/dead/dead13/dead13.java \
- vmTestbase/vm/compiler/jbe/dead/dead14/dead14.java \
- vmTestbase/vm/compiler/jbe/dead/dead15/dead15.java \
- vmTestbase/vm/compiler/jbe/dead/dead16/dead16.java \
- vmTestbase/vm/compiler/jbe/hoist/hoist01/hoist01.java \
- vmTestbase/vm/compiler/jbe/hoist/hoist02/hoist02.java \
- vmTestbase/vm/compiler/jbe/hoist/hoist03/hoist03.java \
- vmTestbase/vm/compiler/jbe/hoist/hoist04/hoist04.java \
- vmTestbase/vm/compiler/jbe/subcommon/subcommon01/subcommon01.java \
- vmTestbase/vm/compiler/jbe/subcommon/subcommon03/subcommon03.java \
- vmTestbase/vm/compiler/jbe/subcommon/subcommon04/subcommon04.java \
- vmTestbase/vm/compiler/jbe/subcommon/subcommon05/subcommon05.java \
- vmTestbase/vm/compiler/coverage/parentheses/TestDescription.java \
- vmTestbase/vm/compiler/optimizations/stringconcat/explicit/Explicit01/cs_disabled/TestDescription.java \
- vmTestbase/vm/compiler/optimizations/stringconcat/explicit/Explicit01/cs_enabled/TestDescription.java \
- vmTestbase/vm/compiler/optimizations/stringconcat/explicit/Merge01/cs_disabled/TestDescription.java \
- vmTestbase/vm/compiler/optimizations/stringconcat/explicit/Merge01/cs_enabled/TestDescription.java \
- vmTestbase/vm/compiler/optimizations/stringconcat/implicit/Implicit01/cs_disabled/TestDescription.java \
- vmTestbase/vm/compiler/optimizations/stringconcat/implicit/Implicit01/cs_enabled/TestDescription.java \
- vmTestbase/vm/compiler/optimizations/stringconcat/implicit/Merge01/cs_disabled/TestDescription.java \
- vmTestbase/vm/compiler/optimizations/stringconcat/implicit/Merge01/cs_enabled/TestDescription.java \
- vmTestbase/vm/compiler/optimizations/partialpeel/ForWhile/TestDescription.java \
- vmTestbase/vm/compiler/optimizations/partialpeel/While/TestDescription.java \
- vmTestbase/vm/compiler/optimizations/partialpeel/WhileWhile/TestDescription.java \
- vmTestbase/vm/compiler/optimizations/partialpeel/Do/TestDescription.java \
- vmTestbase/vm/compiler/complog/uninit/uninit001/uninit001.java \
- vmTestbase/vm/compiler/complog/uninit/uninit002/uninit002.java \
- vmTestbase/vm/compiler/complog/uninit/uninit003/uninit003.java \
- vmTestbase/vm/compiler/complog/uninit/uninit004/uninit004.java \
- vmTestbase/vm/compiler/complog/uninit/uninit005/uninit005.java \
- vmTestbase/vm/compiler/complog/uninit/uninit006/uninit006.java \
- vmTestbase/vm/compiler/complog/uninit/uninit007/uninit007.java \
- vmTestbase/vm/compiler/complog/uninit/uninit008/uninit008.java \
- vmTestbase/vm/compiler/complog/uninit/uninit009/uninit009.java \
- vmTestbase/vm/compiler/complog/uninit/uninit010/uninit010.java \
- vmTestbase/vm/compiler/complog/uninit/uninit011/uninit011.java \
- vmTestbase/vm/compiler/complog/uninit/uninit012/uninit012.java \
- vmTestbase/vm/compiler/complog/uninit/uninit013/uninit013.java \
- vmTestbase/jit/Arrays/ArrayBounds/ArrayBounds.java \
- vmTestbase/jit/Arrays/ArrayStoreCheck/ArrayStoreCheck.java \
- vmTestbase/jit/Arrays/ArrayTests/ArrayTests.java \
- vmTestbase/jit/CEETest/CEETest.java \
- vmTestbase/jit/CondExpr/CondExpr.java \
- vmTestbase/jit/DivTest/DivTest.java \
- vmTestbase/jit/ExcOpt/ExcOpt.java \
- vmTestbase/jit/FloatingPoint/FPCompare/TestFPBinop/TestFPBinop.java \
- vmTestbase/jit/FloatingPoint/gen_math/Filtering/Filtering.java \
- vmTestbase/jit/FloatingPoint/gen_math/Loops01/Loops01.java \
- vmTestbase/jit/FloatingPoint/gen_math/Loops02/Loops02.java \
- vmTestbase/jit/FloatingPoint/gen_math/Loops03/Loops03.java \
- vmTestbase/jit/FloatingPoint/gen_math/Loops04/Loops04.java \
- vmTestbase/jit/FloatingPoint/gen_math/Loops05/Loops05.java \
- vmTestbase/jit/FloatingPoint/gen_math/Loops06/Loops06.java \
- vmTestbase/jit/FloatingPoint/gen_math/Loops07/Loops07.java \
- vmTestbase/jit/FloatingPoint/gen_math/Matrix_3d/Matrix_3d.java \
- vmTestbase/jit/FloatingPoint/gen_math/ShortCircuitTest/ShortCircuitTest.java \
- vmTestbase/jit/FloatingPoint/gen_math/Summ/Summ.java \
- vmTestbase/jit/PrintProperties/PrintProperties.java \
- vmTestbase/jit/PrintThis/PrintThis.java \
- vmTestbase/jit/Robert/Robert.java \
- vmTestbase/jit/Sleeper/Sleeper.java \
- vmTestbase/jit/bounds/bounds.java \
- vmTestbase/jit/collapse/collapse.java \
- vmTestbase/jit/deoptimization/test01/test01.java \
- vmTestbase/jit/deoptimization/test02/test02.java \
- vmTestbase/jit/deoptimization/test03/test03.java \
- vmTestbase/jit/deoptimization/test04/test04.java \
- vmTestbase/jit/deoptimization/test05/test05.java \
- vmTestbase/jit/deoptimization/test06/test06.java \
- vmTestbase/jit/deoptimization/test07/test07.java \
- vmTestbase/jit/deoptimization/test08/test08.java \
- vmTestbase/jit/escape/AdaptiveBlocking/AdaptiveBlocking001/AdaptiveBlocking001.java \
- vmTestbase/jit/escape/LockElision/MatMul/MatMul.java \
- vmTestbase/jit/escape/LockCoarsening/LockCoarsening002/TestDescription.java \
- vmTestbase/jit/exception/exception.java \
- vmTestbase/jit/graph/cgt0/cgt0.java \
- vmTestbase/jit/graph/cgt1/cgt1.java \
- vmTestbase/jit/graph/cgt2/cgt2.java \
- vmTestbase/jit/graph/cgt3/cgt3.java \
- vmTestbase/jit/graph/cgt4/cgt4.java \
- vmTestbase/jit/graph/cgt5/cgt5.java \
- vmTestbase/jit/graph/cgt6/cgt6.java \
- vmTestbase/jit/graph/cgt7/cgt7.java \
- vmTestbase/jit/graph/cgt8/cgt8.java \
- vmTestbase/jit/graph/cgt9/cgt9.java \
- vmTestbase/jit/graph/cgt10/cgt10.java \
- vmTestbase/jit/graph/cgt11/cgt11.java \
- vmTestbase/jit/init/init01/init01.java \
- vmTestbase/jit/init/init02/init02.java \
- vmTestbase/jit/inline/inline003/inline003.java \
- vmTestbase/jit/inline/inline004/inline004.java \
- vmTestbase/jit/inline/inline005/inline005.java \
- vmTestbase/jit/inline/inline007/inline007.java \
- vmTestbase/jit/misctests/JitBug1/JitBug1.java \
- vmTestbase/jit/misctests/Pi/Pi.java \
- vmTestbase/jit/misctests/clss14702/clss14702.java \
- vmTestbase/jit/misctests/fpustack/GraphApplet.java \
- vmTestbase/jit/misctests/putfield00802/putfield00802.java \
- vmTestbase/jit/misctests/t5/t5.java \
- vmTestbase/jit/overflow/overflow.java \
- vmTestbase/jit/regression/b4427606/b4427606.java \
- vmTestbase/jit/regression/b4446672/b4446672.java \
- vmTestbase/jit/regression/CrashC1/CrashC1.java \
- vmTestbase/jit/series/series.java \
- vmTestbase/jit/t/t001/t001.java \
- vmTestbase/jit/t/t002/t002.java \
- vmTestbase/jit/t/t003/t003.java \
- vmTestbase/jit/t/t004/t004.java \
- vmTestbase/jit/t/t005/t005.java \
- vmTestbase/jit/t/t006/t006.java \
- vmTestbase/jit/t/t007/t007.java \
- vmTestbase/jit/t/t008/t008.java \
- vmTestbase/jit/t/t009/t009.java \
- vmTestbase/jit/t/t011/t011.java \
- vmTestbase/jit/t/t012/t012.java \
- vmTestbase/jit/t/t013/t013.java \
- vmTestbase/jit/t/t014/t014.java \
- vmTestbase/jit/t/t015/t015.java \
- vmTestbase/jit/t/t016/t016.java \
- vmTestbase/jit/t/t017/t017.java \
- vmTestbase/jit/t/t018/t018.java \
- vmTestbase/jit/t/t019/t019.java \
- vmTestbase/jit/t/t020/t020.java \
- vmTestbase/jit/t/t021/t021.java \
- vmTestbase/jit/t/t022/t022.java \
- vmTestbase/jit/t/t023/t023.java \
- vmTestbase/jit/t/t024/t024.java \
- vmTestbase/jit/t/t025/t025.java \
- vmTestbase/jit/t/t026/t026.java \
- vmTestbase/jit/t/t027/t027.java \
- vmTestbase/jit/t/t028/t028.java \
- vmTestbase/jit/t/t029/t029.java \
- vmTestbase/jit/t/t030/t030.java \
- vmTestbase/jit/t/t031/t031.java \
- vmTestbase/jit/t/t032/t032.java \
- vmTestbase/jit/t/t033/t033.java \
- vmTestbase/jit/t/t034/t034.java \
- vmTestbase/jit/t/t035/t035.java \
- vmTestbase/jit/t/t036/t036.java \
- vmTestbase/jit/t/t037/t037.java \
- vmTestbase/jit/t/t038/t038.java \
- vmTestbase/jit/t/t039/t039.java \
- vmTestbase/jit/t/t040/t040.java \
- vmTestbase/jit/t/t041/t041.java \
- vmTestbase/jit/t/t042/t042.java \
- vmTestbase/jit/t/t043/t043.java \
- vmTestbase/jit/t/t044/t044.java \
- vmTestbase/jit/t/t045/t045.java \
- vmTestbase/jit/t/t046/t046.java \
- vmTestbase/jit/t/t047/t047.java \
- vmTestbase/jit/t/t048/t048.java \
- vmTestbase/jit/t/t049/t049.java \
- vmTestbase/jit/t/t050/t050.java \
- vmTestbase/jit/t/t051/t051.java \
- vmTestbase/jit/t/t052/t052.java \
- vmTestbase/jit/t/t053/t053.java \
- vmTestbase/jit/t/t054/t054.java \
- vmTestbase/jit/t/t055/t055.java \
- vmTestbase/jit/t/t056/t056.java \
- vmTestbase/jit/t/t057/t057.java \
- vmTestbase/jit/t/t058/t058.java \
- vmTestbase/jit/t/t059/t059.java \
- vmTestbase/jit/t/t060/t060.java \
- vmTestbase/jit/t/t061/t061.java \
- vmTestbase/jit/t/t062/t062.java \
- vmTestbase/jit/t/t063/t063.java \
- vmTestbase/jit/t/t064/t064.java \
- vmTestbase/jit/t/t065/t065.java \
- vmTestbase/jit/t/t066/t066.java \
- vmTestbase/jit/t/t067/t067.java \
- vmTestbase/jit/t/t068/t068.java \
- vmTestbase/jit/t/t069/t069.java \
- vmTestbase/jit/t/t070/t070.java \
- vmTestbase/jit/t/t071/t071.java \
- vmTestbase/jit/t/t072/t072.java \
- vmTestbase/jit/t/t073/t073.java \
- vmTestbase/jit/t/t074/t074.java \
- vmTestbase/jit/t/t075/t075.java \
- vmTestbase/jit/t/t076/t076.java \
- vmTestbase/jit/t/t077/t077.java \
- vmTestbase/jit/t/t078/t078.java \
- vmTestbase/jit/t/t079/t079.java \
- vmTestbase/jit/t/t080/t080.java \
- vmTestbase/jit/t/t081/t081.java \
- vmTestbase/jit/t/t086/t086.java \
- vmTestbase/jit/t/t087/t087.java \
- vmTestbase/jit/t/t088/t088.java \
- vmTestbase/jit/t/t091/t091.java \
- vmTestbase/jit/t/t093/t093.java \
- vmTestbase/jit/t/t094/t094.java \
- vmTestbase/jit/t/t095/t095.java \
- vmTestbase/jit/t/t096/t096.java \
- vmTestbase/jit/t/t098/t098.java \
- vmTestbase/jit/t/t099/t099.java \
- vmTestbase/jit/t/t100/t100.java \
- vmTestbase/jit/t/t101/t101.java \
- vmTestbase/jit/t/t102/t102.java \
- vmTestbase/jit/t/t103/t103.java \
- vmTestbase/jit/t/t104/t104.java \
- vmTestbase/jit/t/t105/t105.java \
- vmTestbase/jit/t/t106/t106.java \
- vmTestbase/jit/t/t107/t107.java \
- vmTestbase/jit/t/t108/TestDescription.java \
- vmTestbase/jit/t/t109/TestDescription.java \
- vmTestbase/jit/t/t110/TestDescription.java \
- vmTestbase/jit/t/t111/TestDescription.java \
- vmTestbase/jit/t/t112/TestDescription.java \
- vmTestbase/jit/t/t113/TestDescription.java \
- vmTestbase/jit/tiered/TestDescription.java \
- vmTestbase/jit/verifier/VerifyInitLocal/VerifyInitLocal.java \
- vmTestbase/jit/verifier/VerifyMergeStack/VerifyMergeStack.java \
- vmTestbase/jit/wide/wide01/wide01.java \
- vmTestbase/jit/wide/wide02/wide02.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc1/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc2/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc3/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc4/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc5/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc6/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc7/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc8/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc9/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc10/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc11/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc12/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc13/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc14/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc15/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc16/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc17/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc18/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc19/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc20/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc21/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc22/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc23/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc24/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc25/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc26/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc27/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc28/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc29/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc30/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc31/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc32/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc33/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc34/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc35/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc36/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc37/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc38/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc39/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc40/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc41/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc42/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc43/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc44/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc45/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc46/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc47/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc48/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc49/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc50/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc51/TestDescription.java \
- vmTestbase/vm/jit/LongTransitions/nativeFnc52/TestDescription.java
-
# JSR292 tests (invokedynamic AKA Multi-Language VM AKA Da Vinci Machine)
vmTestbase_vm_mlvm = \
vmTestbase/vm/mlvm
@@ -2275,3 +449,5 @@
# JDB tests
vmTestbase_nsk_jdb = \
vmTestbase/nsk/jdb
+
+# vmTestbase_*_quick groups are defined in TEST.quick-groups
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/TEST.quick-groups Wed Jul 11 19:30:26 2018 -0400
@@ -0,0 +1,1844 @@
+#
+# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+vmTestbase_nsk_monitoring_quick = \
+ vmTestbase/nsk/monitoring/MemoryNotificationInfo/MemoryNotificationInfo/info001/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryNotificationInfo/from/from001/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryNotificationInfo/getCount/getcount001/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryNotificationInfo/getPoolName/getpoolname001/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryNotificationInfo/getUsage/getusage001/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsage/getusage001/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsage/getusage002/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsage/getusage003/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsage/getusage004/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsage/getusage005/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThreshold/getthreshold001/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThreshold/getthreshold002/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThreshold/getthreshold003/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThreshold/getthreshold004/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThreshold/getthreshold005/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThresholdCount/getcount001/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThresholdCount/getcount002/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThresholdCount/getcount003/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThresholdCount/getcount004/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/getCollectionUsageThresholdCount/getcount005/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/getPeakUsage/getpeak001/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/getPeakUsage/getpeak002/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/getPeakUsage/getpeak003/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/getPeakUsage/getpeak004/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/getPeakUsage/getpeak005/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsage/getusage001/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsage/getusage002/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsage/getusage003/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsage/getusage004/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsage/getusage005/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThreshold/getthreshold001/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThreshold/getthreshold002/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThreshold/getthreshold003/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThreshold/getthreshold004/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThreshold/getthreshold005/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThresholdCount/getcount001/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThresholdCount/getcount002/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThresholdCount/getcount003/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThresholdCount/getcount004/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/getUsageThresholdCount/getcount005/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdExceeded/isexceeded001/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdExceeded/isexceeded002/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdExceeded/isexceeded003/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdExceeded/isexceeded004/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdExceeded/isexceeded005/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdSupported/issupported001/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdSupported/issupported002/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdSupported/issupported003/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdSupported/issupported004/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdSupported/issupported005/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdExceeded/isexceeded001/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdExceeded/isexceeded002/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdExceeded/isexceeded003/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdExceeded/isexceeded004/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdExceeded/isexceeded005/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdSupported/issupported001/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdSupported/issupported002/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdSupported/issupported003/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdSupported/issupported004/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdSupported/issupported005/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/resetPeakUsage/reset001/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/resetPeakUsage/reset002/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/resetPeakUsage/reset003/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/resetPeakUsage/reset004/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/resetPeakUsage/reset005/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/setCollectionUsageThreshold/setthreshold001/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/setCollectionUsageThreshold/setthreshold002/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/setCollectionUsageThreshold/setthreshold003/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/setCollectionUsageThreshold/setthreshold004/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/setCollectionUsageThreshold/setthreshold005/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/setUsageThreshold/setthreshold001/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/setUsageThreshold/setthreshold002/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/setUsageThreshold/setthreshold003/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/setUsageThreshold/setthreshold004/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryPoolMBean/setUsageThreshold/setthreshold005/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryUsage/MemoryUsage/memoryusage001/TestDescription.java \
+ vmTestbase/nsk/monitoring/MemoryUsage/from/from001/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadInfo/from_c/from_c001/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadInfo/getLockName/getlockname001/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadInfo/getLockOwnerName/getlockownername001/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadInfo/isInNative/isinnative001/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadInfo/isSuspended/issuspended001/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadInfo/isSuspended/issuspended002/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/findMonitorDeadlockedThreads/find001/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/findMonitorDeadlockedThreads/find002/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/findMonitorDeadlockedThreads/find003/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/findMonitorDeadlockedThreads/find004/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/findMonitorDeadlockedThreads/find005/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/findMonitorDeadlockedThreads/find006/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/isCurrentThreadCpuTimeSupported/curthcputime001/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/isCurrentThreadCpuTimeSupported/curthcputime002/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/isCurrentThreadCpuTimeSupported/curthcputime003/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/isCurrentThreadCpuTimeSupported/curthcputime004/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/isCurrentThreadCpuTimeSupported/curthcputime005/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/isThreadContentionMonitoringSupported/thcontmonitor001/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/isThreadContentionMonitoringSupported/thcontmonitor002/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/isThreadContentionMonitoringSupported/thcontmonitor003/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/isThreadContentionMonitoringSupported/thcontmonitor004/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/isThreadContentionMonitoringSupported/thcontmonitor005/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/isThreadCpuTimeSupported/thcputime001/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/isThreadCpuTimeSupported/thcputime002/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/isThreadCpuTimeSupported/thcputime003/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/isThreadCpuTimeSupported/thcputime004/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/isThreadCpuTimeSupported/thcputime005/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/resetPeakThreadCount/reset001/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/resetPeakThreadCount/reset002/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/resetPeakThreadCount/reset003/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/resetPeakThreadCount/reset004/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/resetPeakThreadCount/reset005/TestDescription.java \
+ vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerLevel/getloggerlevel001/TestDescription.java \
+ vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerLevel/getloggerlevel002/TestDescription.java \
+ vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerLevel/getloggerlevel003/TestDescription.java \
+ vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerLevel/getloggerlevel004/TestDescription.java \
+ vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerLevel/getloggerlevel005/TestDescription.java \
+ vmTestbase/nsk/monitoring/LoggingMXBean/setLoggerLevel/setloggerlevel001/TestDescription.java \
+ vmTestbase/nsk/monitoring/LoggingMXBean/setLoggerLevel/setloggerlevel002/TestDescription.java \
+ vmTestbase/nsk/monitoring/LoggingMXBean/setLoggerLevel/setloggerlevel003/TestDescription.java \
+ vmTestbase/nsk/monitoring/LoggingMXBean/setLoggerLevel/setloggerlevel004/TestDescription.java \
+ vmTestbase/nsk/monitoring/LoggingMXBean/setLoggerLevel/setloggerlevel005/TestDescription.java \
+ vmTestbase/nsk/monitoring/LoggingMXBean/getParentLoggerName/getparentloggername001/TestDescription.java \
+ vmTestbase/nsk/monitoring/LoggingMXBean/getParentLoggerName/getparentloggername002/TestDescription.java \
+ vmTestbase/nsk/monitoring/LoggingMXBean/getParentLoggerName/getparentloggername003/TestDescription.java \
+ vmTestbase/nsk/monitoring/LoggingMXBean/getParentLoggerName/getparentloggername004/TestDescription.java \
+ vmTestbase/nsk/monitoring/LoggingMXBean/getParentLoggerName/getparentloggername005/TestDescription.java \
+ vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerNames/getloggernames001/TestDescription.java \
+ vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerNames/getloggernames002/TestDescription.java \
+ vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerNames/getloggernames003/TestDescription.java \
+ vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerNames/getloggernames004/TestDescription.java \
+ vmTestbase/nsk/monitoring/LoggingMXBean/getLoggerNames/getloggernames005/TestDescription.java \
+ vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionCount/getcollectioncount001/TestDescription.java \
+ vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionCount/getcollectioncount002/TestDescription.java \
+ vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionCount/getcollectioncount003/TestDescription.java \
+ vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionCount/getcollectioncount004/TestDescription.java \
+ vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionCount/getcollectioncount005/TestDescription.java \
+ vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionTime/getcollectiontime001/TestDescription.java \
+ vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionTime/getcollectiontime002/TestDescription.java \
+ vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionTime/getcollectiontime003/TestDescription.java \
+ vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionTime/getcollectiontime004/TestDescription.java \
+ vmTestbase/nsk/monitoring/GarbageCollectorMXBean/getCollectionTime/getcollectiontime005/TestDescription.java \
+ vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean001/RuntimeMXBean001.java \
+ vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean002/TestDescription.java \
+ vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean003/TestDescription.java \
+ vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean004/TestDescription.java \
+ vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean005/TestDescription.java \
+ vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean006/RuntimeMXBean006.java \
+ vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean007/TestDescription.java \
+ vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean008/TestDescription.java \
+ vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean009/TestDescription.java \
+ vmTestbase/nsk/monitoring/RuntimeMXBean/RuntimeMXBean010/TestDescription.java \
+ vmTestbase/nsk/monitoring/CompilationMXBean/comptimemon001/comptimemon001.java \
+ vmTestbase/nsk/monitoring/CompilationMXBean/comptimemon002/TestDescription.java \
+ vmTestbase/nsk/monitoring/CompilationMXBean/comptimemon003/TestDescription.java \
+ vmTestbase/nsk/monitoring/CompilationMXBean/comptimemon004/TestDescription.java \
+ vmTestbase/nsk/monitoring/CompilationMXBean/comptimemon005/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/TimedWaitingThread/TimedWaitingThread001/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/TimedWaitingThread/TimedWaitingThread002/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/TimedWaitingThread/TimedWaitingThread003/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/TimedWaitingThread/TimedWaitingThread004/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/TimedWaitingThread/TimedWaitingThread005/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/RunningThread/RunningThread001/RunningThread001.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/RunningThread/RunningThread002/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/RunningThread/RunningThread003/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/RunningThread/RunningThread004/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/RunningThread/RunningThread005/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SleepingThread/SleepingThread001/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SleepingThread/SleepingThread002/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SleepingThread/SleepingThread003/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SleepingThread/SleepingThread004/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SleepingThread/SleepingThread005/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/WaitingThread/WaitingThread001/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/WaitingThread/WaitingThread002/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/WaitingThread/WaitingThread003/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/WaitingThread/WaitingThread004/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/WaitingThread/WaitingThread005/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/BlockedThread/BlockedThread001/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/BlockedThread/BlockedThread002/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/BlockedThread/BlockedThread003/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/BlockedThread/BlockedThread004/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/BlockedThread/BlockedThread005/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NativeBlockedThread/NativeBlockedThread001/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NativeBlockedThread/NativeBlockedThread002/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NativeBlockedThread/NativeBlockedThread003/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NativeBlockedThread/NativeBlockedThread004/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NativeBlockedThread/NativeBlockedThread005/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NewThread/NewThread001/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NewThread/NewThread002/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NewThread/NewThread003/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NewThread/NewThread004/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/NewThread/NewThread005/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/FinishedThread/FinishedThread001/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/FinishedThread/FinishedThread002/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/FinishedThread/FinishedThread003/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/FinishedThread/FinishedThread004/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/FinishedThread/FinishedThread005/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/LockingThreads/LockingThreads001/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/LockingThreads/LockingThreads002/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/LockingThreads/LockingThreads003/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/LockingThreads/LockingThreads004/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/LockingThreads/LockingThreads005/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SynchronizerLockingThreads/SynchronizerLockingThreads001/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SynchronizerLockingThreads/SynchronizerLockingThreads002/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SynchronizerLockingThreads/SynchronizerLockingThreads003/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SynchronizerLockingThreads/SynchronizerLockingThreads004/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/SynchronizerLockingThreads/SynchronizerLockingThreads005/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Deadlock/JavaDeadlock001/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Deadlock/JavaDeadlock002/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Deadlock/JavaDeadlock003/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Deadlock/JavaDeadlock004/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Deadlock/JavaDeadlock005/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Deadlock/NativeDeadlock001/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Deadlock/SynchronizerDeadlock001/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Deadlock/SynchronizedMethodDeadlock001/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Deadlock/MixedDeadlock001/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/baseBehaviorTest_directly/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/baseBehaviorTest_server_default/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/baseBehaviorTest_server_custom/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/baseBehaviorTest_proxy_default/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/baseBehaviorTest_proxy_custom/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/illegalArgumentsTest_directly/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/illegalArgumentsTest_server_default/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/illegalArgumentsTest_server_custom/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/illegalArgumentsTest_proxy_default/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadCpuTime/illegalArgumentsTest_proxy_custom/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/allocatedMemorySupportedTest_directly/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/allocatedMemorySupportedTest_server_default/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/allocatedMemorySupportedTest_server_custom/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/allocatedMemorySupportedTest_proxy_default/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/allocatedMemorySupportedTest_proxy_custom/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/baseBehaviorTest_directly/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/baseBehaviorTest_server_default/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/baseBehaviorTest_server_custom/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/baseBehaviorTest_proxy_default/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/baseBehaviorTest_proxy_custom/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_directly_array/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_server_default_array/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_server_custom_array/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_proxy_default_array/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_proxy_custom_array/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_directly_string/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_server_default_string/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_server_custom_string/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_proxy_default_string/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/doubleAllocationTest_proxy_custom_string/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_directly_array/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_server_default_array/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_server_custom_array/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_proxy_default_array/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_proxy_custom_array/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_directly_string/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_server_default_string/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_server_custom_string/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_proxy_default_string/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/equalThreadsTest_proxy_custom_string/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/illegalArgumentsTest_directly/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/illegalArgumentsTest_server_default/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/illegalArgumentsTest_server_custom/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/illegalArgumentsTest_proxy_default/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/illegalArgumentsTest_proxy_custom/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/noAllocationTest_directly/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/noAllocationTest_server_default/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/noAllocationTest_server_custom/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/noAllocationTest_proxy_default/TestDescription.java \
+ vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/noAllocationTest_proxy_custom/TestDescription.java
+
+vmTestbase_nsk_jdi_quick = \
+ vmTestbase/nsk/jdi/Argument/description/description001/TestDescription.java \
+ vmTestbase/nsk/jdi/Argument/isValid/isvalid001/TestDescription.java \
+ vmTestbase/nsk/jdi/Argument/isValid/isvalid002/TestDescription.java \
+ vmTestbase/nsk/jdi/Argument/isValid/isvalid003/TestDescription.java \
+ vmTestbase/nsk/jdi/Argument/isValid/isvalid004/TestDescription.java \
+ vmTestbase/nsk/jdi/Argument/isValid/isvalid005/TestDescription.java \
+ vmTestbase/nsk/jdi/Argument/name/name001/TestDescription.java \
+ vmTestbase/nsk/jdi/Argument/value/value001/TestDescription.java \
+ vmTestbase/nsk/jdi/Argument/value/value002/TestDescription.java \
+ vmTestbase/nsk/jdi/Argument/value/value003/TestDescription.java \
+ vmTestbase/nsk/jdi/Argument/setValue/setvalue001/TestDescription.java \
+ vmTestbase/nsk/jdi/Argument/setValue/setvalue002/TestDescription.java \
+ vmTestbase/nsk/jdi/Argument/mustSpecify/mustspecify001/TestDescription.java \
+ vmTestbase/nsk/jdi/AttachingConnector/attach/attach002/TestDescription.java \
+ vmTestbase/nsk/jdi/BooleanArgument/booleanValue/booleanvalue001/TestDescription.java \
+ vmTestbase/nsk/jdi/BooleanArgument/booleanValue/booleanvalue002/TestDescription.java \
+ vmTestbase/nsk/jdi/BooleanArgument/isValid/isvalid001/TestDescription.java \
+ vmTestbase/nsk/jdi/BooleanArgument/isValid/isvalid002/TestDescription.java \
+ vmTestbase/nsk/jdi/BooleanArgument/setValue/setvalue001/TestDescription.java \
+ vmTestbase/nsk/jdi/BooleanArgument/setValue/setvalue002/TestDescription.java \
+ vmTestbase/nsk/jdi/BooleanArgument/stringValueOf/stringvalueof001/TestDescription.java \
+ vmTestbase/nsk/jdi/BooleanArgument/stringValueOf/stringvalueof002/TestDescription.java \
+ vmTestbase/nsk/jdi/ClassLoaderReference/definedClasses/definedclasses001/TestDescription.java \
+ vmTestbase/nsk/jdi/ClassLoaderReference/definedClasses/definedclasses002/TestDescription.java \
+ vmTestbase/nsk/jdi/ClassLoaderReference/definedClasses/definedclasses003/TestDescription.java \
+ vmTestbase/nsk/jdi/ClassLoaderReference/definedClasses/definedclasses004/TestDescription.java \
+ vmTestbase/nsk/jdi/ClassLoaderReference/definedClasses/definedclasses005/TestDescription.java \
+ vmTestbase/nsk/jdi/ClassLoaderReference/visibleClasses/visibleclasses002/TestDescription.java \
+ vmTestbase/nsk/jdi/Connector/defaultArguments/defaultArguments001/TestDescription.java \
+ vmTestbase/nsk/jdi/Connector/defaultArguments/defaultArguments002/TestDescription.java \
+ vmTestbase/nsk/jdi/Connector/defaultArguments/defaultArguments003/TestDescription.java \
+ vmTestbase/nsk/jdi/Connector/description/description001/TestDescription.java \
+ vmTestbase/nsk/jdi/Connector/name/name001/TestDescription.java \
+ vmTestbase/nsk/jdi/Connector/transport/transport001/TestDescription.java \
+ vmTestbase/nsk/jdi/FloatValue/compareTo/compareto001/TestDescription.java \
+ vmTestbase/nsk/jdi/IntegerArgument/intValue/intvalue001/TestDescription.java \
+ vmTestbase/nsk/jdi/IntegerArgument/intValue/intvalue002/TestDescription.java \
+ vmTestbase/nsk/jdi/IntegerArgument/isValid/isvalid001/TestDescription.java \
+ vmTestbase/nsk/jdi/IntegerArgument/isValid/isvalid002/TestDescription.java \
+ vmTestbase/nsk/jdi/IntegerArgument/isValid/isvalid003/TestDescription.java \
+ vmTestbase/nsk/jdi/IntegerArgument/max/max001/TestDescription.java \
+ vmTestbase/nsk/jdi/IntegerArgument/min/min001/TestDescription.java \
+ vmTestbase/nsk/jdi/IntegerArgument/setValue/setvalue001/TestDescription.java \
+ vmTestbase/nsk/jdi/IntegerArgument/stringValueOf/stringvalueof001/TestDescription.java \
+ vmTestbase/nsk/jdi/IntegerValue/compareTo/compareto001/TestDescription.java \
+ vmTestbase/nsk/jdi/LaunchingConnector/launch/launch001/TestDescription.java \
+ vmTestbase/nsk/jdi/LaunchingConnector/launch/launch002/TestDescription.java \
+ vmTestbase/nsk/jdi/LaunchingConnector/launch/launch004/TestDescription.java \
+ vmTestbase/nsk/jdi/ListeningConnector/accept/accept001/TestDescription.java \
+ vmTestbase/nsk/jdi/ListeningConnector/accept/accept002/TestDescription.java \
+ vmTestbase/nsk/jdi/ListeningConnector/stopListening/stoplis001/TestDescription.java \
+ vmTestbase/nsk/jdi/ListeningConnector/supportsMultipleConnections/supportsmultipleconnections001/TestDescription.java \
+ vmTestbase/nsk/jdi/ListeningConnector/listennosuspend/listennosuspend001/TestDescription.java \
+ vmTestbase/nsk/jdi/LongValue/compareTo/compareto001/TestDescription.java \
+ vmTestbase/nsk/jdi/ObjectReference/entryCount/entrycount002/TestDescription.java \
+ vmTestbase/nsk/jdi/ObjectReference/owningThread/owningthread002/TestDescription.java \
+ vmTestbase/nsk/jdi/ObjectReference/waitingThreads/waitingthreads002/TestDescription.java \
+ vmTestbase/nsk/jdi/ObjectReference/waitingThreads/waitingthreads003/TestDescription.java \
+ vmTestbase/nsk/jdi/ObjectReference/waitingThreads/waitingthreads004/TestDescription.java \
+ vmTestbase/nsk/jdi/ReferenceType/isVerified/isverified003/TestDescription.java \
+ vmTestbase/nsk/jdi/SelectedArgument/choices/choices001/TestDescription.java \
+ vmTestbase/nsk/jdi/SelectedArgument/isValid/isvalid001/TestDescription.java \
+ vmTestbase/nsk/jdi/SelectedArgument/isValid/isvalid002/TestDescription.java \
+ vmTestbase/nsk/jdi/ShortType/_itself_/shorttype001/TestDescription.java \
+ vmTestbase/nsk/jdi/ShortValue/compareTo/compareto001/TestDescription.java \
+ vmTestbase/nsk/jdi/StackFrame/thisObject/thisobject002/TestDescription.java \
+ vmTestbase/nsk/jdi/StackFrame/thread/thread001/TestDescription.java \
+ vmTestbase/nsk/jdi/StackFrame/visibleVariableByName/visiblevarbyname001/TestDescription.java \
+ vmTestbase/nsk/jdi/StackFrame/visibleVariableByName/visiblevarbyname002/TestDescription.java \
+ vmTestbase/nsk/jdi/StackFrame/visibleVariables/visiblevariables001/TestDescription.java \
+ vmTestbase/nsk/jdi/StackFrame/visibleVariables/visiblevariables002/TestDescription.java \
+ vmTestbase/nsk/jdi/StepEvent/_itself_/stepevent001/TestDescription.java \
+ vmTestbase/nsk/jdi/StepEvent/_itself_/stepevent002/TestDescription.java \
+ vmTestbase/nsk/jdi/StepRequest/addClassExclusionFilter/filter001/TestDescription.java \
+ vmTestbase/nsk/jdi/StepRequest/addClassExclusionFilter/filter002/TestDescription.java \
+ vmTestbase/nsk/jdi/StepRequest/addClassFilter_s/filter_s001/TestDescription.java \
+ vmTestbase/nsk/jdi/StepRequest/addClassFilter_s/filter_s002/TestDescription.java \
+ vmTestbase/nsk/jdi/StepRequest/addClassFilter_rt/filter_rt001/TestDescription.java \
+ vmTestbase/nsk/jdi/StepRequest/addClassFilter_rt/filter_rt002/TestDescription.java \
+ vmTestbase/nsk/jdi/StepRequest/depth/depth001/TestDescription.java \
+ vmTestbase/nsk/jdi/StepRequest/depth/depth002/TestDescription.java \
+ vmTestbase/nsk/jdi/StepRequest/depth/depth003/TestDescription.java \
+ vmTestbase/nsk/jdi/StepRequest/size/size001/TestDescription.java \
+ vmTestbase/nsk/jdi/StepRequest/size/size002/TestDescription.java \
+ vmTestbase/nsk/jdi/StepRequest/thread/thread001/TestDescription.java \
+ vmTestbase/nsk/jdi/StringArgument/isValid/isvalid001/TestDescription.java \
+ vmTestbase/nsk/jdi/StringArgument/isValid/isvalid002/TestDescription.java \
+ vmTestbase/nsk/jdi/StringArgument/isValid/isvalid003/TestDescription.java \
+ vmTestbase/nsk/jdi/StringReference/value/value001/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadDeathEvent/thread/thread001/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadDeathRequest/addThreadFilter/addthreadfilter001/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadDeathRequest/addThreadFilter/addthreadfilter002/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadDeathRequest/addThreadFilter/addthreadfilter003/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadDeathRequest/addThreadFilter/addthreadfilter004/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadDeathRequest/addThreadFilter/addthreadfilter005/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadGroupReference/name/name001/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadGroupReference/parent/parent001/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadGroupReference/resume/resume001/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadGroupReference/suspend/suspend001/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadGroupReference/threadGroups/threadgroups001/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadGroupReference/threads/threads001/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadReference/frame/frame001/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadReference/frameCount/framecount001/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadReference/frames/frames001/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadReference/frames_ii/frames_ii002/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadReference/isAtBreakpoint/isatbreakpoint001/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadReference/isSuspended/issuspended001/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadReference/isSuspended/issuspended003/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadReference/isSuspended/issuspended004/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadReference/name/name001/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadReference/ownedMonitors/ownedmonitors001/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadReference/suspendCount/suspendcount001/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadReference/threadGroup/threadgroup001/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadReference/currentContendedMonitor/currentcm001/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadReference/interrupt/interrupt001/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadReference/resume/resume001/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadReference/status/status003/status003.java \
+ vmTestbase/nsk/jdi/ThreadReference/status/status004/status004.java \
+ vmTestbase/nsk/jdi/ThreadReference/status/status005/status005.java \
+ vmTestbase/nsk/jdi/ThreadReference/status/status006/status006.java \
+ vmTestbase/nsk/jdi/ThreadReference/status/status007/status007.java \
+ vmTestbase/nsk/jdi/ThreadReference/status/status008/status008.java \
+ vmTestbase/nsk/jdi/ThreadReference/stop/stop001/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadStartRequest/addThreadFilter/addthreadfilter001/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadStartRequest/addThreadFilter/addthreadfilter002/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadStartRequest/addThreadFilter/addthreadfilter003/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadStartRequest/addThreadFilter/addthreadfilter004/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadStartRequest/addThreadFilter/addthreadfilter005/TestDescription.java \
+ vmTestbase/nsk/jdi/Transport/name/name001/TestDescription.java \
+ vmTestbase/nsk/jdi/Type/name/name001/TestDescription.java \
+ vmTestbase/nsk/jdi/Type/name/name002/TestDescription.java \
+ vmTestbase/nsk/jdi/Type/name/name003/TestDescription.java \
+ vmTestbase/nsk/jdi/Type/signature/signature001/TestDescription.java \
+ vmTestbase/nsk/jdi/Type/signature/signature002/TestDescription.java \
+ vmTestbase/nsk/jdi/Type/signature/signature003/TestDescription.java \
+ vmTestbase/nsk/jdi/TypeComponent/declaringType/decltype001/TestDescription.java \
+ vmTestbase/nsk/jdi/TypeComponent/declaringType/decltype002/TestDescription.java \
+ vmTestbase/nsk/jdi/TypeComponent/declaringType/decltype003/TestDescription.java \
+ vmTestbase/nsk/jdi/TypeComponent/declaringType/decltype007/TestDescription.java \
+ vmTestbase/nsk/jdi/TypeComponent/declaringType/decltype008/TestDescription.java \
+ vmTestbase/nsk/jdi/TypeComponent/isFinal/isfinal001/TestDescription.java \
+ vmTestbase/nsk/jdi/TypeComponent/isFinal/isfinal003/TestDescription.java \
+ vmTestbase/nsk/jdi/TypeComponent/isStatic/isstatic001/TestDescription.java \
+ vmTestbase/nsk/jdi/TypeComponent/isStatic/isstatic003/TestDescription.java \
+ vmTestbase/nsk/jdi/TypeComponent/isSynthetic/issynthetic001/TestDescription.java \
+ vmTestbase/nsk/jdi/TypeComponent/isSynthetic/issynthetic002/TestDescription.java \
+ vmTestbase/nsk/jdi/TypeComponent/name/name001/TestDescription.java \
+ vmTestbase/nsk/jdi/TypeComponent/name/name003/TestDescription.java \
+ vmTestbase/nsk/jdi/TypeComponent/signature/sign001/TestDescription.java \
+ vmTestbase/nsk/jdi/TypeComponent/signature/sign003/TestDescription.java \
+ vmTestbase/nsk/jdi/Value/type/type001/TestDescription.java \
+ vmTestbase/nsk/jdi/Value/type/type002/type002.java \
+ vmTestbase/nsk/jdi/Value/type/type003/TestDescription.java \
+ vmTestbase/nsk/jdi/Value/_itself_/value001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/allClasses/allclasses001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/allClasses/allclasses002/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/allThreads/allthreads001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/canGetBytecodes/cangetbytecodes001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/canGetCurrentContendedMonitor/cangccm001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/canGetMonitorInfo/cangetmonitorinfo001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/canGetOwnedMonitorInfo/cangetinfo001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/canGetSyntheticAttribute/cangetattr001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/canWatchFieldAccess/canwatchaccess001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/canWatchFieldModification/canwatchmod001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/classesByName/classesbyname001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/description/description001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/eventQueue/eventqueue001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/eventRequestManager/eventrmanager001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/exit/exit001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/exit/exit002/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/mirrorOf_bool/mirrorof_bool001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/mirrorOf_byte/mirrorof_byte001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/mirrorOf_char/mirrorof_char001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/mirrorOf_double/mirrorof_double001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/mirrorOf_float/mirrorof_float001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/mirrorOf_int/mirrorof_int001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/mirrorOf_long/mirrorof_long001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/mirrorOf_short/mirrorof_short001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/mirrorOf_string/mirrorof_string001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/name/name001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/process/process001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/topLevelThreadGroups/toplevelgroups001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/version/version001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachineManager/allConnectors/allconnectors001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachineManager/attachingConnectors/attaching001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachineManager/connectedVirtualMachines/convm001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachineManager/connectedVirtualMachines/convm002/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachineManager/connectedVirtualMachines/convm003/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachineManager/defaultConnector/default001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachineManager/launchingConnectors/launching001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachineManager/listeningConnectors/listening001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachineManager/majorInterfaceVersion/major001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachineManager/minorInterfaceVersion/minor001/TestDescription.java \
+ vmTestbase/nsk/jdi/VoidType/_itself_/voidtype001/TestDescription.java \
+ vmTestbase/nsk/jdi/VoidValue/equals/equals001/equals001.java \
+ vmTestbase/nsk/jdi/VoidValue/hashCode/hashcode001/hashcode001.java \
+ vmTestbase/nsk/jdi/VMDeathEvent/_itself_/vmdeath001/TestDescription.java \
+ vmTestbase/nsk/jdi/VMDeathEvent/_itself_/vmdeath002/TestDescription.java \
+ vmTestbase/nsk/jdi/VMDeathEvent/_itself_/vmdeath003/TestDescription.java \
+ vmTestbase/nsk/jdi/VMDisconnectEvent/_itself_/disconnect001/TestDescription.java \
+ vmTestbase/nsk/jdi/VMDisconnectEvent/_itself_/disconnect002/TestDescription.java \
+ vmTestbase/nsk/jdi/VMDisconnectEvent/_itself_/disconnect003/TestDescription.java \
+ vmTestbase/nsk/jdi/VMStartEvent/thread/thread001/TestDescription.java \
+ vmTestbase/nsk/jdi/WatchpointEvent/object/object001/TestDescription.java \
+ vmTestbase/nsk/jdi/WatchpointEvent/field/field001/TestDescription.java \
+ vmTestbase/nsk/jdi/WatchpointEvent/valueCurrent/valuecur001/TestDescription.java \
+ vmTestbase/nsk/jdi/WatchpointRequest/addClassExclusionFilter/filter001/TestDescription.java \
+ vmTestbase/nsk/jdi/WatchpointRequest/addClassExclusionFilter/filter002/TestDescription.java \
+ vmTestbase/nsk/jdi/WatchpointRequest/addClassExclusionFilter/filter003/TestDescription.java \
+ vmTestbase/nsk/jdi/WatchpointRequest/addClassExclusionFilter/filter004/TestDescription.java \
+ vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_s/filter_s001/TestDescription.java \
+ vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_s/filter_s002/TestDescription.java \
+ vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_s/filter_s003/TestDescription.java \
+ vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_s/filter_s004/TestDescription.java \
+ vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_rt/filter_rt001/TestDescription.java \
+ vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_rt/filter_rt002/TestDescription.java \
+ vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_rt/filter_rt003/TestDescription.java \
+ vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_rt/filter_rt004/TestDescription.java \
+ vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_rt/filter_rt005/TestDescription.java \
+ vmTestbase/nsk/jdi/WatchpointRequest/addClassFilter_rt/filter_rt006/TestDescription.java \
+ vmTestbase/nsk/jdi/WatchpointRequest/addThreadFilter/addthreadfilter001/TestDescription.java \
+ vmTestbase/nsk/jdi/WatchpointRequest/addThreadFilter/addthreadfilter002/TestDescription.java \
+ vmTestbase/nsk/jdi/WatchpointRequest/addThreadFilter/addthreadfilter003/TestDescription.java \
+ vmTestbase/nsk/jdi/WatchpointRequest/addThreadFilter/addthreadfilter004/TestDescription.java \
+ vmTestbase/nsk/jdi/WatchpointRequest/addThreadFilter/addthreadfilter005/TestDescription.java \
+ vmTestbase/nsk/jdi/WatchpointRequest/addThreadFilter/addthreadfilter006/TestDescription.java \
+ vmTestbase/nsk/jdi/WatchpointRequest/addThreadFilter/addthreadfilter007/TestDescription.java \
+ vmTestbase/nsk/jdi/WatchpointRequest/addThreadFilter/addthreadfilter008/TestDescription.java \
+ vmTestbase/nsk/jdi/WatchpointRequest/field/field001/TestDescription.java \
+ vmTestbase/nsk/jdi/WatchpointRequest/field/field002/TestDescription.java \
+ vmTestbase/nsk/jdi/AttachingConnector/attach/attach003/TestDescription.java \
+ vmTestbase/nsk/jdi/ClassObjectReference/toString/tostring001/TestDescription.java \
+ vmTestbase/nsk/jdi/ClassType/invokeMethod/invokemethod003/TestDescription.java \
+ vmTestbase/nsk/jdi/ClassType/invokeMethod/invokemethod010/TestDescription.java \
+ vmTestbase/nsk/jdi/ClassType/invokeMethod/invokemethod011/TestDescription.java \
+ vmTestbase/nsk/jdi/ClassType/invokeMethod/invokemethod012/TestDescription.java \
+ vmTestbase/nsk/jdi/ClassType/invokeMethod/invokemethod013/TestDescription.java \
+ vmTestbase/nsk/jdi/ClassType/invokeMethod/invokemethod014/TestDescription.java \
+ vmTestbase/nsk/jdi/ClassType/newInstance/newinstance009/TestDescription.java \
+ vmTestbase/nsk/jdi/ClassType/setValue/setvalue006/TestDescription.java \
+ vmTestbase/nsk/jdi/ClassType/setValue/setvalue007/TestDescription.java \
+ vmTestbase/nsk/jdi/Connector/_bounds_/bounds001/TestDescription.java \
+ vmTestbase/nsk/jdi/Connector/toString/tostring001/TestDescription.java \
+ vmTestbase/nsk/jdi/BScenarios/hotswap/tc01x001/TestDescription.java \
+ vmTestbase/nsk/jdi/BScenarios/hotswap/tc01x002/TestDescription.java \
+ vmTestbase/nsk/jdi/BScenarios/hotswap/tc02x001/TestDescription.java \
+ vmTestbase/nsk/jdi/BScenarios/hotswap/tc02x002/TestDescription.java \
+ vmTestbase/nsk/jdi/BScenarios/hotswap/tc03x001/TestDescription.java \
+ vmTestbase/nsk/jdi/BScenarios/hotswap/tc04x001/TestDescription.java \
+ vmTestbase/nsk/jdi/BScenarios/hotswap/tc04x002/TestDescription.java \
+ vmTestbase/nsk/jdi/BScenarios/hotswap/tc05x002/TestDescription.java \
+ vmTestbase/nsk/jdi/BScenarios/hotswap/tc06x001/TestDescription.java \
+ vmTestbase/nsk/jdi/BScenarios/hotswap/tc07x001/TestDescription.java \
+ vmTestbase/nsk/jdi/BScenarios/hotswap/tc08x001/TestDescription.java \
+ vmTestbase/nsk/jdi/BScenarios/hotswap/tc09x001/TestDescription.java \
+ vmTestbase/nsk/jdi/BScenarios/hotswap/tc09x002/TestDescription.java \
+ vmTestbase/nsk/jdi/BScenarios/hotswap/tc10x001/TestDescription.java \
+ vmTestbase/nsk/jdi/BScenarios/hotswap/tc10x002/TestDescription.java \
+ vmTestbase/nsk/jdi/BScenarios/multithrd/tc01x001/TestDescription.java \
+ vmTestbase/nsk/jdi/BScenarios/multithrd/tc02x001/TestDescription.java \
+ vmTestbase/nsk/jdi/BScenarios/multithrd/tc02x002/TestDescription.java \
+ vmTestbase/nsk/jdi/BScenarios/multithrd/tc02x003/TestDescription.java \
+ vmTestbase/nsk/jdi/BScenarios/multithrd/tc02x004/TestDescription.java \
+ vmTestbase/nsk/jdi/BScenarios/multithrd/tc03x001/TestDescription.java \
+ vmTestbase/nsk/jdi/BScenarios/multithrd/tc04x001/TestDescription.java \
+ vmTestbase/nsk/jdi/BScenarios/singlethrd/tc01x001/TestDescription.java \
+ vmTestbase/nsk/jdi/BScenarios/singlethrd/tc01x002/TestDescription.java \
+ vmTestbase/nsk/jdi/BScenarios/singlethrd/tc02x001/TestDescription.java \
+ vmTestbase/nsk/jdi/BScenarios/singlethrd/tc03x001/TestDescription.java \
+ vmTestbase/nsk/jdi/BScenarios/singlethrd/tc03x002/TestDescription.java \
+ vmTestbase/nsk/jdi/BScenarios/singlethrd/tc03x003/TestDescription.java \
+ vmTestbase/nsk/jdi/BScenarios/singlethrd/tc04x001/TestDescription.java \
+ vmTestbase/nsk/jdi/BScenarios/singlethrd/tc05x001/TestDescription.java \
+ vmTestbase/nsk/jdi/Event/equals/equals001/TestDescription.java \
+ vmTestbase/nsk/jdi/Event/hashCode/hashcode001/TestDescription.java \
+ vmTestbase/nsk/jdi/EventQueue/hashCode/hashcode001/TestDescription.java \
+ vmTestbase/nsk/jdi/EventRequest/disable/disable003/TestDescription.java \
+ vmTestbase/nsk/jdi/EventRequest/hashCode/hashcode001/TestDescription.java \
+ vmTestbase/nsk/jdi/EventRequestManager/deleteEventRequest/delevtreq003/TestDescription.java \
+ vmTestbase/nsk/jdi/EventRequestManager/hashCode/hashcode001/TestDescription.java \
+ vmTestbase/nsk/jdi/EventSet/resume/resume011/TestDescription.java \
+ vmTestbase/nsk/jdi/EventSet/toString/tostring001/TestDescription.java \
+ vmTestbase/nsk/jdi/EventSet/virtualMachine/virtualmachine001/TestDescription.java \
+ vmTestbase/nsk/jdi/LocalVariable/toString/tostring001/TestDescription.java \
+ vmTestbase/nsk/jdi/Method/_bounds_/bounds001/TestDescription.java \
+ vmTestbase/nsk/jdi/Method/isObsolete/isobsolete003/TestDescription.java \
+ vmTestbase/nsk/jdi/MethodEntryRequest/_bounds_/filters001/TestDescription.java \
+ vmTestbase/nsk/jdi/MethodExitRequest/_bounds_/filters001/TestDescription.java \
+ vmTestbase/nsk/jdi/Mirror/hashCode/hashcode001/TestDescription.java \
+ vmTestbase/nsk/jdi/ObjectReference/_bounds_/bounds001/TestDescription.java \
+ vmTestbase/nsk/jdi/ObjectReference/_bounds_/bounds002/TestDescription.java \
+ vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod002/TestDescription.java \
+ vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod003/TestDescription.java \
+ vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod004/TestDescription.java \
+ vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod005/TestDescription.java \
+ vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod007/TestDescription.java \
+ vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod008/TestDescription.java \
+ vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod009/TestDescription.java \
+ vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod010/TestDescription.java \
+ vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod011/TestDescription.java \
+ vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod012/TestDescription.java \
+ vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod013/TestDescription.java \
+ vmTestbase/nsk/jdi/ObjectReference/invokeMethod/invokemethod014/TestDescription.java \
+ vmTestbase/nsk/jdi/ObjectReference/setValue/setvalue002/TestDescription.java \
+ vmTestbase/nsk/jdi/ObjectReference/setValue/setvalue003/TestDescription.java \
+ vmTestbase/nsk/jdi/ObjectReference/setValue/setvalue004/TestDescription.java \
+ vmTestbase/nsk/jdi/ObjectReference/setValue/setvalue005/TestDescription.java \
+ vmTestbase/nsk/jdi/ReferenceType/_bounds_/bounds001/TestDescription.java \
+ vmTestbase/nsk/jdi/ReferenceType/_bounds_/bounds002/TestDescription.java \
+ vmTestbase/nsk/jdi/ReferenceType/allFields/allfields005/TestDescription.java \
+ vmTestbase/nsk/jdi/ReferenceType/allLineLocations/alllinelocations002/TestDescription.java \
+ vmTestbase/nsk/jdi/ReferenceType/allLineLocations_ss/alllinelocations_ss002/TestDescription.java \
+ vmTestbase/nsk/jdi/ReferenceType/allMethods/allmethods005/TestDescription.java \
+ vmTestbase/nsk/jdi/ReferenceType/fields/fields005/TestDescription.java \
+ vmTestbase/nsk/jdi/ReferenceType/getValue/getvalue004/TestDescription.java \
+ vmTestbase/nsk/jdi/ReferenceType/getValue/getvalue005/TestDescription.java \
+ vmTestbase/nsk/jdi/ReferenceType/getValues/getvalues002/TestDescription.java \
+ vmTestbase/nsk/jdi/ReferenceType/getValues/getvalues003/TestDescription.java \
+ vmTestbase/nsk/jdi/ReferenceType/locationsOfLine_i/locationsofline_i002/TestDescription.java \
+ vmTestbase/nsk/jdi/ReferenceType/locationsOfLine_ssi/locationsofline_ssi002/TestDescription.java \
+ vmTestbase/nsk/jdi/ReferenceType/methods/methods005/TestDescription.java \
+ vmTestbase/nsk/jdi/ReferenceType/sourceName/sourcename004/TestDescription.java \
+ vmTestbase/nsk/jdi/ReferenceType/sourceNames/sourcenames002/TestDescription.java \
+ vmTestbase/nsk/jdi/ReferenceType/sourcePaths/sourcepaths002/TestDescription.java \
+ vmTestbase/nsk/jdi/ReferenceType/visibleFields/visibfield005/TestDescription.java \
+ vmTestbase/nsk/jdi/ReferenceType/visibleMethods/visibmethod006/TestDescription.java \
+ vmTestbase/nsk/jdi/Scenarios/invokeMethod/popframes001/TestDescription.java \
+ vmTestbase/nsk/jdi/Scenarios/invokeMethod/redefineclasses001/TestDescription.java \
+ vmTestbase/nsk/jdi/StackFrame/_bounds_/bounds002/TestDescription.java \
+ vmTestbase/nsk/jdi/StackFrame/getValue/getvalue003/TestDescription.java \
+ vmTestbase/nsk/jdi/StackFrame/getValues/getvalues003/TestDescription.java \
+ vmTestbase/nsk/jdi/StackFrame/hashCode/hashcode001/TestDescription.java \
+ vmTestbase/nsk/jdi/StackFrame/setValue/setvalue005/setvalue005.java \
+ vmTestbase/nsk/jdi/StackFrame/setValue/setvalue006/setvalue006.java \
+ vmTestbase/nsk/jdi/StackFrame/toString/tostring001/TestDescription.java \
+ vmTestbase/nsk/jdi/StepRequest/_bounds_/filters001/TestDescription.java \
+ vmTestbase/nsk/jdi/StepRequest/addClassFilter_rt/filter_rt003/TestDescription.java \
+ vmTestbase/nsk/jdi/StepRequest/addInstanceFilter/instancefilter001/TestDescription.java \
+ vmTestbase/nsk/jdi/StepRequest/addInstanceFilter/instancefilter002/TestDescription.java \
+ vmTestbase/nsk/jdi/StepRequest/addInstanceFilter/instancefilter003/TestDescription.java \
+ vmTestbase/nsk/jdi/StepRequest/addInstanceFilter/instancefilter004/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadGroupReference/toString/tostring001/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadReference/frames_ii/frames_ii001/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadReference/ownedMonitors/ownedmonitors002/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadReference/popFrames/popframes001/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadReference/popFrames/popframes002/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadReference/popFrames/popframes003/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadReference/popFrames/popframes004/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadReference/popFrames/popframes005/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadReference/popFrames/popframes006/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadReference/popFrames/popframes007/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadReference/stop/stop002/TestDescription.java \
+ vmTestbase/nsk/jdi/Type/hashCode/hashcode001/TestDescription.java \
+ vmTestbase/nsk/jdi/TypeComponent/isPackagePrivate/ispackageprivate001/TestDescription.java \
+ vmTestbase/nsk/jdi/TypeComponent/isPrivate/isprivate001/TestDescription.java \
+ vmTestbase/nsk/jdi/TypeComponent/isProtected/isprotected001/TestDescription.java \
+ vmTestbase/nsk/jdi/TypeComponent/isPublic/ispublic001/TestDescription.java \
+ vmTestbase/nsk/jdi/WatchpointEvent/_itself_/wevent001/TestDescription.java \
+ vmTestbase/nsk/jdi/WatchpointRequest/_bounds_/filters001/TestDescription.java \
+ vmTestbase/nsk/jdi/WatchpointRequest/addInstanceFilter/instancefilter001/TestDescription.java \
+ vmTestbase/nsk/jdi/WatchpointRequest/addInstanceFilter/instancefilter002/TestDescription.java \
+ vmTestbase/nsk/jdi/WatchpointRequest/addInstanceFilter/instancefilter003/TestDescription.java \
+ vmTestbase/nsk/jdi/WatchpointRequest/addInstanceFilter/instancefilter004/TestDescription.java \
+ vmTestbase/nsk/jdi/WatchpointRequest/addInstanceFilter/instancefilter005/TestDescription.java \
+ vmTestbase/nsk/jdi/WatchpointRequest/addInstanceFilter/instancefilter006/TestDescription.java \
+ vmTestbase/nsk/jdi/WatchpointRequest/addInstanceFilter/instancefilter007/TestDescription.java \
+ vmTestbase/nsk/jdi/WatchpointRequest/addInstanceFilter/instancefilter008/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/canAddMethod/canaddmethod001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/canGetSourceDebugExtension/cangetsde001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/canPopFrames/canpopframes001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/canRedefineClasses/canredefineclasses001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/canRequestVMDeathEvent/canreqvmdev001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/canUnrestrictedlyRedefineClasses/curc001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/canUseInstanceFilters/canusefilters001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/getDefaultStratum/getdefaultstratum001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses002/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses003/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses004/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses005/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses006/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses007/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses008/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses009/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses010/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses011/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses012/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses013/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses014/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses015/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses016/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses020/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses022/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses024/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses026/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses027/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses028/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses029/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses030/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses032/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses034/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses035/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/setDefaultStratum/setdefaultstratum001/TestDescription.java \
+ vmTestbase/nsk/jdi/VoidType/toString/tostring001/TestDescription.java \
+ vmTestbase/nsk/jdi/VoidValue/equals/equals002/TestDescription.java \
+ vmTestbase/nsk/jdi/VoidValue/toString/tostring001/TestDescription.java \
+ vmTestbase/nsk/jdi/ConstantField/values001/TestDescription.java \
+ vmTestbase/nsk/jdi/Accessible/isPackagePrivate/accipp002/TestDescription.java \
+ vmTestbase/nsk/jdi/Accessible/isPrivate/isprivate002/TestDescription.java \
+ vmTestbase/nsk/jdi/Accessible/isProtected/isprotected002/TestDescription.java \
+ vmTestbase/nsk/jdi/Accessible/isPublic/ispublic002/TestDescription.java \
+ vmTestbase/nsk/jdi/Accessible/isPublic/ispublic003/TestDescription.java \
+ vmTestbase/nsk/jdi/Accessible/modifiers/modifiers002/TestDescription.java \
+ vmTestbase/nsk/jdi/ClassType/allInterfaces/allinterfaces002/TestDescription.java \
+ vmTestbase/nsk/jdi/ClassType/interfaces/interfaces002/TestDescription.java \
+ vmTestbase/nsk/jdi/ClassType/invokeMethod/invokemethod015/TestDescription.java \
+ vmTestbase/nsk/jdi/ClassType/isEnum/isenum001/TestDescription.java \
+ vmTestbase/nsk/jdi/ClassType/setValue/setvalue008/TestDescription.java \
+ vmTestbase/nsk/jdi/ClassType/subclasses/subclasses002/TestDescription.java \
+ vmTestbase/nsk/jdi/ClassType/superclass/superclass002/TestDescription.java \
+ vmTestbase/nsk/jdi/Field/isEnumConstant/isenumconstant001/TestDescription.java \
+ vmTestbase/nsk/jdi/Field/type/type004/TestDescription.java \
+ vmTestbase/nsk/jdi/Field/typeName/typename002/TestDescription.java \
+ vmTestbase/nsk/jdi/LocalVariable/genericSignature/gensignature001/TestDescription.java \
+ vmTestbase/nsk/jdi/Method/arguments/arguments003/TestDescription.java \
+ vmTestbase/nsk/jdi/Method/argumentTypeNames/argumenttypenames003/TestDescription.java \
+ vmTestbase/nsk/jdi/Method/isBridge/isbridge001/TestDescription.java \
+ vmTestbase/nsk/jdi/Method/isVarArgs/isvarargs001/TestDescription.java \
+ vmTestbase/nsk/jdi/PlugConnectors/AttachConnector/plugAttachConnect001/plugAttachConnect001.java \
+ vmTestbase/nsk/jdi/PlugConnectors/AttachConnector/plugAttachConnect002/plugAttachConnect002.java \
+ vmTestbase/nsk/jdi/PlugConnectors/AttachConnector/plugAttachConnect003/plugAttachConnect003.java \
+ vmTestbase/nsk/jdi/PlugConnectors/LaunchConnector/plugLaunchConnect001/plugLaunchConnect001.java \
+ vmTestbase/nsk/jdi/PlugConnectors/LaunchConnector/plugLaunchConnect002/plugLaunchConnect002.java \
+ vmTestbase/nsk/jdi/PlugConnectors/LaunchConnector/plugLaunchConnect003/plugLaunchConnect003.java \
+ vmTestbase/nsk/jdi/PlugConnectors/ListenConnector/plugListenConnect001/plugListenConnect001.java \
+ vmTestbase/nsk/jdi/PlugConnectors/ListenConnector/plugListenConnect002/plugListenConnect002.java \
+ vmTestbase/nsk/jdi/PlugConnectors/ListenConnector/plugListenConnect003/plugListenConnect003.java \
+ vmTestbase/nsk/jdi/PlugConnectors/MultiConnectors/plugMultiConnect001/plugMultiConnect001.java \
+ vmTestbase/nsk/jdi/PlugConnectors/MultiConnectors/plugMultiConnect002/plugMultiConnect002.java \
+ vmTestbase/nsk/jdi/PlugConnectors/MultiConnectors/plugMultiConnect003/plugMultiConnect003.java \
+ vmTestbase/nsk/jdi/PlugConnectors/MultiConnectors/plugMultiConnect004/plugMultiConnect004.java \
+ vmTestbase/nsk/jdi/PlugConnectors/MultiConnectors/plugMultiConnect005/plugMultiConnect005.java \
+ vmTestbase/nsk/jdi/PlugConnectors/MultiConnectors/plugMultiConnect006/plugMultiConnect006.java \
+ vmTestbase/nsk/jdi/PlugConnectors/TransportService/transportService001/transportService001.java \
+ vmTestbase/nsk/jdi/PlugConnectors/TransportService/transportService002/transportService002.java \
+ vmTestbase/nsk/jdi/PlugConnectors/TransportService/transportService003/transportService003.java \
+ vmTestbase/nsk/jdi/ReferenceType/allFields/allfields006/TestDescription.java \
+ vmTestbase/nsk/jdi/ReferenceType/allMethods/allmethods006/TestDescription.java \
+ vmTestbase/nsk/jdi/ReferenceType/classObject/classobj003/TestDescription.java \
+ vmTestbase/nsk/jdi/ReferenceType/fields/fields006/TestDescription.java \
+ vmTestbase/nsk/jdi/ReferenceType/genericSignature/genericSignature001/TestDescription.java \
+ vmTestbase/nsk/jdi/ReferenceType/genericSignature/genericSignature002/TestDescription.java \
+ vmTestbase/nsk/jdi/ReferenceType/isAbstract/isabstract003/TestDescription.java \
+ vmTestbase/nsk/jdi/ReferenceType/isFinal/isfinal002/TestDescription.java \
+ vmTestbase/nsk/jdi/ReferenceType/isInitialized/isinit003/TestDescription.java \
+ vmTestbase/nsk/jdi/ReferenceType/methods/methods006/TestDescription.java \
+ vmTestbase/nsk/jdi/ReferenceType/visibleFields/visibfield006/TestDescription.java \
+ vmTestbase/nsk/jdi/ReferenceType/visibleMethods/visibmethod007/TestDescription.java \
+ vmTestbase/nsk/jdi/TypeComponent/declaringType/decltype009/TestDescription.java \
+ vmTestbase/nsk/jdi/TypeComponent/genericSignature/genericSignature001/TestDescription.java \
+ vmTestbase/nsk/jdi/TypeComponent/genericSignature/genericSignature002/TestDescription.java \
+ vmTestbase/nsk/jdi/TypeComponent/isFinal/isfinal004/TestDescription.java \
+ vmTestbase/nsk/jdi/TypeComponent/isStatic/isstatic004/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/canBeModified/canbemodified001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachineManager/createVirtualMachine/createVM001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachineManager/createVirtualMachine/createVM002/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachineManager/createVirtualMachine/createVM003/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachineManager/createVirtualMachine/createVM004/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachineManager/createVirtualMachine/createVM005/TestDescription.java \
+ vmTestbase/nsk/jdi/VMCannotBeModifiedEx/_itself_/canntbemod001/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/instanceCounts/instancecounts001/instancecounts001.java \
+ vmTestbase/nsk/jdi/VirtualMachine/instanceCounts/instancecounts002/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/instanceCounts/instancecounts003/instancecounts003.java \
+ vmTestbase/nsk/jdi/VirtualMachine/instanceCounts/instancecounts004/instancecounts004.java \
+ vmTestbase/nsk/jdi/ReferenceType/instances/instances001/instances001.java \
+ vmTestbase/nsk/jdi/ReferenceType/instances/instances002/instances002.java \
+ vmTestbase/nsk/jdi/ReferenceType/instances/instances005/instances005.java \
+ vmTestbase/nsk/jdi/ObjectReference/referringObjects/referringObjects001/referringObjects001.java \
+ vmTestbase/nsk/jdi/ObjectReference/referringObjects/referringObjects002/referringObjects002.java \
+ vmTestbase/nsk/jdi/ObjectReference/referringObjects/referringObjects003/referringObjects003.java \
+ vmTestbase/nsk/jdi/ObjectReference/referringObjects/referringObjects004/referringObjects004.java \
+ vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn002/forceEarlyReturn002.java \
+ vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn003/forceEarlyReturn003.java \
+ vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn004/forceEarlyReturn004.java \
+ vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn005/forceEarlyReturn005.java \
+ vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn006/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn007/TestDescription.java \
+ vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn008/forceEarlyReturn008.java \
+ vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn009/forceEarlyReturn009.java \
+ vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn013/forceEarlyReturn013.java \
+ vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn014/forceEarlyReturn014.java \
+ vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn015/forceEarlyReturn015.java \
+ vmTestbase/nsk/jdi/ThreadReference/ownedMonitorsAndFrames/ownedMonitorsAndFrames001/ownedMonitorsAndFrames001.java \
+ vmTestbase/nsk/jdi/ThreadReference/ownedMonitorsAndFrames/ownedMonitorsAndFrames002/ownedMonitorsAndFrames002.java \
+ vmTestbase/nsk/jdi/ThreadReference/ownedMonitorsAndFrames/ownedMonitorsAndFrames003/ownedMonitorsAndFrames003.java \
+ vmTestbase/nsk/jdi/ThreadReference/ownedMonitorsAndFrames/ownedMonitorsAndFrames004/ownedMonitorsAndFrames004.java \
+ vmTestbase/nsk/jdi/ThreadReference/ownedMonitorsAndFrames/ownedMonitorsAndFrames005/ownedMonitorsAndFrames005.java \
+ vmTestbase/nsk/jdi/ThreadReference/ownedMonitorsAndFrames/ownedMonitorsAndFrames008/TestDescription.java \
+ vmTestbase/nsk/jdi/MonitorContendedEnteredRequest/addClassExclusionFilter/TestDescription.java \
+ vmTestbase/nsk/jdi/MonitorContendedEnteredRequest/addClassFilter_ClassName/TestDescription.java \
+ vmTestbase/nsk/jdi/MonitorContendedEnteredRequest/addClassFilter_ReferenceType/TestDescription.java \
+ vmTestbase/nsk/jdi/MonitorContendedEnteredRequest/addInstanceFilter/TestDescription.java \
+ vmTestbase/nsk/jdi/MonitorContendedEnteredRequest/addThreadFilter/TestDescription.java \
+ vmTestbase/nsk/jdi/MonitorContendedEnterRequest/addClassExclusionFilter/TestDescription.java \
+ vmTestbase/nsk/jdi/MonitorContendedEnterRequest/addClassFilter_ClassName/TestDescription.java \
+ vmTestbase/nsk/jdi/MonitorContendedEnterRequest/addClassFilter_ReferenceType/TestDescription.java \
+ vmTestbase/nsk/jdi/MonitorContendedEnterRequest/addInstanceFilter/TestDescription.java \
+ vmTestbase/nsk/jdi/MonitorContendedEnterRequest/addThreadFilter/TestDescription.java \
+ vmTestbase/nsk/jdi/MonitorWaitRequest/addClassExclusionFilter/TestDescription.java \
+ vmTestbase/nsk/jdi/MonitorWaitRequest/addClassFilter_ClassName/TestDescription.java \
+ vmTestbase/nsk/jdi/MonitorWaitRequest/addClassFilter_ReferenceType/TestDescription.java \
+ vmTestbase/nsk/jdi/MonitorWaitRequest/addInstanceFilter/TestDescription.java \
+ vmTestbase/nsk/jdi/MonitorWaitRequest/addThreadFilter/TestDescription.java \
+ vmTestbase/nsk/jdi/MonitorWaitedRequest/addClassExclusionFilter/TestDescription.java \
+ vmTestbase/nsk/jdi/MonitorWaitedRequest/addClassFilter_ClassName/TestDescription.java \
+ vmTestbase/nsk/jdi/MonitorWaitedRequest/addClassFilter_ReferenceType/TestDescription.java \
+ vmTestbase/nsk/jdi/MonitorWaitedRequest/addInstanceFilter/TestDescription.java \
+ vmTestbase/nsk/jdi/MonitorWaitedRequest/addThreadFilter/TestDescription.java \
+ vmTestbase/nsk/jdi/stress/ClassPrepareEvents/ClassPrepareEvents001/ClassPrepareEvents001.java \
+ vmTestbase/nsk/jdi/ClassPrepareRequest/addSourceNameFilter/addSourceNameFilter001/addSourceNameFilter001.java \
+ vmTestbase/nsk/jdi/ClassPrepareRequest/addSourceNameFilter/addSourceNameFilter002/addSourceNameFilter002.java \
+ vmTestbase/nsk/jdi/VMOutOfMemoryException/VMOutOfMemoryException001/VMOutOfMemoryException001.java \
+ vmTestbase/nsk/jdi/stress/serial/forceEarlyReturn001/TestDescription.java \
+ vmTestbase/nsk/jdi/stress/serial/heapwalking001/TestDescription.java \
+ vmTestbase/nsk/jdi/stress/serial/monitorEvents001/TestDescription.java \
+ vmTestbase/nsk/jdi/stress/serial/ownedMonitorsAndFrames001/TestDescription.java \
+ vmTestbase/nsk/jdi/stress/serial/mixed001/TestDescription.java \
+ vmTestbase/nsk/jdi/stress/serial/forceEarlyReturn002/TestDescription.java \
+ vmTestbase/nsk/jdi/stress/serial/monitorEvents002/TestDescription.java \
+ vmTestbase/nsk/jdi/stress/serial/ownedMonitorsAndFrames002/TestDescription.java \
+ vmTestbase/nsk/jdi/VirtualMachine/setDefaultStratum/setDefaultStratum002/setDefaultStratum002.java \
+ vmTestbase/nsk/jdi/ReferenceType/allLineLocations_ss/allLineLocations_ss003/allLineLocations_ss003.java \
+ vmTestbase/nsk/jdi/ReferenceType/allLineLocations_ss/allLineLocations_ss004/allLineLocations_ss004.java \
+ vmTestbase/nsk/jdi/Method/allLineLocations_ss/allLineLocations_ss002/allLineLocations_ss002.java \
+ vmTestbase/nsk/jdi/Method/allLineLocations_ss/allLineLocations_ss003/allLineLocations_ss003.java \
+ vmTestbase/nsk/jdi/ReferenceType/locationsOfLine_ssi/locationsOfLine_ssi003/locationsOfLine_ssi003.java \
+ vmTestbase/nsk/jdi/ReferenceType/locationsOfLine_ssi/locationsOfLine_ssi004/locationsOfLine_ssi004.java \
+ vmTestbase/nsk/jdi/Method/locationsOfLine_ssi/locationsOfLine_ssi002/locationsOfLine_ssi002.java \
+ vmTestbase/nsk/jdi/Method/locationsOfLine_ssi/locationsOfLine_ssi003/locationsOfLine_ssi003.java \
+ vmTestbase/nsk/jdi/ReferenceType/sourceNames/sourceNames003/sourceNames003.java \
+ vmTestbase/nsk/jdi/ReferenceType/sourcePaths/sourcePaths003/sourcePaths003.java \
+ vmTestbase/nsk/jdi/ReferenceType/availableStrata/availableStrata002/availableStrata002.java \
+ vmTestbase/nsk/jdi/ReferenceType/defaultStratum/defaultStratum002/defaultStratum002.java \
+ vmTestbase/nsk/jdi/Location/lineNumber_s/lineNumber_s002/lineNumber_s002.java \
+ vmTestbase/nsk/jdi/Location/sourceName_s/sourceName_s002/sourceName_s002.java \
+ vmTestbase/nsk/jdi/Location/sourcePath_s/sourcePath_s002/sourcePath_s002.java \
+ vmTestbase/nsk/jdi/AttachingConnector/attach/attach005/TestDescription.java \
+ vmTestbase/nsk/jdi/AttachingConnector/attachnosuspend/attachnosuspend002/TestDescription.java \
+ vmTestbase/nsk/jdi/AttachingConnector/attachnosuspend/attachnosuspend003/TestDescription.java \
+ vmTestbase/nsk/jdi/MethodExitEvent/returnValue/returnValue001/returnValue001.java \
+ vmTestbase/nsk/jdi/MethodExitEvent/returnValue/returnValue002/returnValue002.java \
+ vmTestbase/nsk/jdi/MethodExitEvent/returnValue/returnValue003/returnValue003.java \
+ vmTestbase/nsk/jdi/MethodExitEvent/returnValue/returnValue004/returnValue004.java \
+ vmTestbase/nsk/jdi/StackFrame/getArgumentValues/getArgumentValues001/getArgumentValues001.java \
+ vmTestbase/nsk/jdi/StackFrame/getArgumentValues/getArgumentValues002/getArgumentValues002.java \
+ vmTestbase/nsk/jdi/StackFrame/getArgumentValues/getArgumentValues003/getArgumentValues003.java
+
+vmTestbase_nsk_jvmti_quick = \
+ vmTestbase/nsk/jvmti/AddCapabilities/addcaps001/TestDescription.java \
+ vmTestbase/nsk/jvmti/AddCapabilities/addcaps002/TestDescription.java \
+ vmTestbase/nsk/jvmti/AddCapabilities/addcaps003/TestDescription.java \
+ vmTestbase/nsk/jvmti/AddToBootstrapClassLoaderSearch/bootclssearch001/TestDescription.java \
+ vmTestbase/nsk/jvmti/AddToBootstrapClassLoaderSearch/bootclssearch002/TestDescription.java \
+ vmTestbase/nsk/jvmti/AddToBootstrapClassLoaderSearch/bootclssearch003/TestDescription.java \
+ vmTestbase/nsk/jvmti/AddToBootstrapClassLoaderSearch/bootclssearch004/TestDescription.java \
+ vmTestbase/nsk/jvmti/AddToBootstrapClassLoaderSearch/bootclssearch007/TestDescription.java \
+ vmTestbase/nsk/jvmti/AddToBootstrapClassLoaderSearch/bootclssearch008/TestDescription.java \
+ vmTestbase/nsk/jvmti/AddToBootstrapClassLoaderSearch/bootclssearch009/TestDescription.java \
+ vmTestbase/nsk/jvmti/AddToBootstrapClassLoaderSearch/bootclssearch010/TestDescription.java \
+ vmTestbase/nsk/jvmti/AddToSystemClassLoaderSearch/systemclssearch001/TestDescription.java \
+ vmTestbase/nsk/jvmti/AddToSystemClassLoaderSearch/systemclssearch002/TestDescription.java \
+ vmTestbase/nsk/jvmti/AddToSystemClassLoaderSearch/systemclssearch003/TestDescription.java \
+ vmTestbase/nsk/jvmti/AddToSystemClassLoaderSearch/systemclssearch004/TestDescription.java \
+ vmTestbase/nsk/jvmti/AddToSystemClassLoaderSearch/systemclssearch005/TestDescription.java \
+ vmTestbase/nsk/jvmti/AddToSystemClassLoaderSearch/systemclssearch006/TestDescription.java \
+ vmTestbase/nsk/jvmti/Agent_OnLoad/agentonload001/TestDescription.java \
+ vmTestbase/nsk/jvmti/Agent_OnLoad/agentonload002/TestDescription.java \
+ vmTestbase/nsk/jvmti/Agent_OnLoad/agentonload003/TestDriver.java \
+ vmTestbase/nsk/jvmti/Agent_OnUnload/agentonunload001/TestDriver.java \
+ vmTestbase/nsk/jvmti/Breakpoint/breakpoint001/TestDescription.java \
+ vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk001/TestDescription.java \
+ vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk002/TestDescription.java \
+ vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk003/TestDescription.java \
+ vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk004/TestDescription.java \
+ vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk005/TestDescription.java \
+ vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk006/TestDescription.java \
+ vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk007/TestDescription.java \
+ vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk008/TestDescription.java \
+ vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk009/TestDescription.java \
+ vmTestbase/nsk/jvmti/ClassLoad/classload001/TestDescription.java \
+ vmTestbase/nsk/jvmti/ClassPrepare/classprep001/TestDescription.java \
+ vmTestbase/nsk/jvmti/ClearBreakpoint/clrbrk001/TestDescription.java \
+ vmTestbase/nsk/jvmti/ClearBreakpoint/clrbrk002/TestDescription.java \
+ vmTestbase/nsk/jvmti/ClearBreakpoint/clrbrk005/TestDescription.java \
+ vmTestbase/nsk/jvmti/ClearFieldAccessWatch/clrfldw001/TestDescription.java \
+ vmTestbase/nsk/jvmti/ClearFieldAccessWatch/clrfldw002/TestDescription.java \
+ vmTestbase/nsk/jvmti/ClearFieldModificationWatch/clrfmodw001/TestDescription.java \
+ vmTestbase/nsk/jvmti/ClearFieldModificationWatch/clrfmodw002/TestDescription.java \
+ vmTestbase/nsk/jvmti/CompiledMethodLoad/compmethload001/TestDescription.java \
+ vmTestbase/nsk/jvmti/CreateRawMonitor/crrawmon001/TestDescription.java \
+ vmTestbase/nsk/jvmti/CreateRawMonitor/crrawmon002/TestDescription.java \
+ vmTestbase/nsk/jvmti/DisposeEnvironment/disposeenv001/TestDescription.java \
+ vmTestbase/nsk/jvmti/DisposeEnvironment/disposeenv002/TestDescription.java \
+ vmTestbase/nsk/jvmti/Deallocate/dealloc001/TestDescription.java \
+ vmTestbase/nsk/jvmti/DestroyRawMonitor/drrawmon001/TestDescription.java \
+ vmTestbase/nsk/jvmti/DestroyRawMonitor/drrawmon003/TestDescription.java \
+ vmTestbase/nsk/jvmti/DestroyRawMonitor/drrawmon004/TestDescription.java \
+ vmTestbase/nsk/jvmti/DynamicCodeGenerated/dyncodgen001/TestDescription.java \
+ vmTestbase/nsk/jvmti/Exception/exception001/TestDescription.java \
+ vmTestbase/nsk/jvmti/ExceptionCatch/excatch001/TestDescription.java \
+ vmTestbase/nsk/jvmti/FieldAccess/fieldacc001/TestDescription.java \
+ vmTestbase/nsk/jvmti/FieldAccess/fieldacc002/TestDescription.java \
+ vmTestbase/nsk/jvmti/FieldAccess/fieldacc003/TestDescription.java \
+ vmTestbase/nsk/jvmti/FieldAccess/fieldacc004/TestDescription.java \
+ vmTestbase/nsk/jvmti/FieldModification/fieldmod001/TestDescription.java \
+ vmTestbase/nsk/jvmti/FieldModification/fieldmod002/TestDescription.java \
+ vmTestbase/nsk/jvmti/ForceGarbageCollection/forcegc001/TestDescription.java \
+ vmTestbase/nsk/jvmti/ForceGarbageCollection/forcegc002/TestDescription.java \
+ vmTestbase/nsk/jvmti/FramePop/framepop001/TestDescription.java \
+ vmTestbase/nsk/jvmti/FramePop/framepop002/TestDescription.java \
+ vmTestbase/nsk/jvmti/GenerateEvents/genevents001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetAllThreads/allthr001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetAllThreads/allthr002/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetAvailableProcessors/getavailproc001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetArgumentsSize/argsize001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetArgumentsSize/argsize002/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetBytecodes/bytecodes001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetBytecodes/bytecodes002/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetBytecodes/bytecodes003/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetCapabilities/getcaps001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetCapabilities/getcaps002/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetClassFields/getclfld005/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetClassFields/getclfld006/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetClassFields/getclfld007/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetClassLoader/getclsldr001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetClassLoader/getclsldr002/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetClassLoader/getclsldr003/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetClassLoaderClasses/clsldrclss001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetClassLoaderClasses/clsldrclss002/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetClassMethods/getclmthd005/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetClassMethods/getclmthd006/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetClassMethods/getclmthd007/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetClassModifiers/getclmdf004/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetClassModifiers/getclmdf005/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetClassModifiers/getclmdf006/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetClassModifiers/getclmdf007/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetClassSignature/getclsig004/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetClassSignature/getclsig005/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetClassSignature/getclsig006/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetClassStatus/getclstat005/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetClassStatus/getclstat006/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetClassStatus/getclstat007/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetCurrentContendedMonitor/contmon001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetCurrentContendedMonitor/contmon002/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetCurrentContendedMonitor/contmon003/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetCurrentThreadCpuTime/curthrcputime001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetCurrentThreadCpuTimerInfo/curthrtimerinfo001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetEnvironmentLocalStorage/getenvstor001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetErrorName/geterrname001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetErrorName/geterrname002/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetExtensionEvents/extevents001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetExtensionFunctions/extfuncs001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetFieldDeclaringClass/getfldecl001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetFieldDeclaringClass/getfldecl002/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetFieldDeclaringClass/getfldecl004/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetFieldModifiers/getfldmdf003/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetFieldModifiers/getfldmdf004/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetFieldName/getfldnm003/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetFieldName/getfldnm004/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetFieldName/getfldnm005/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetFrameCount/framecnt001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetFrameCount/framecnt002/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetFrameCount/framecnt003/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetFrameLocation/frameloc002/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetFrameLocation/frameloc003/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetImplementedInterfaces/getintrf005/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetImplementedInterfaces/getintrf006/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetImplementedInterfaces/getintrf007/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetJLocationFormat/getjlocfmt001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetJLocationFormat/getjlocfmt002/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetJNIFunctionTable/getjniftab001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetJNIFunctionTable/getjniftab002/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetLineNumberTable/linetab001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetLineNumberTable/linetab002/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetLineNumberTable/linetab003/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetLoadedClasses/loadedclss001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetLoadedClasses/loadedclss002/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetLocalVariable/getlocal001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetLocalVariable/getlocal002/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetLocalVariableTable/localtab001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetLocalVariableTable/localtab002/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetLocalVariableTable/localtab003/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetLocalVariableTable/localtab004/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetLocalVariableTable/localtab005/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetMaxLocals/maxloc001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetMaxLocals/maxloc002/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetMethodDeclaringClass/declcls001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetMethodDeclaringClass/declcls002/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetMethodDeclaringClass/declcls003/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetObjectHashCode/objhashcode001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetMethodLocation/methloc001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetMethodLocation/methloc002/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetMethodModifiers/methmod001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetMethodModifiers/methmod002/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetMethodName/methname001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetMethodName/methname002/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetMethodName/methname003/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage002/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage003/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage004/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage005/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetObjectSize/objsize001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetObjectsWithTags/objwithtags001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetOwnedMonitorInfo/ownmoninf001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetOwnedMonitorInfo/ownmoninf002/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetOwnedMonitorInfo/ownmoninf003/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetPhase/getphase001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetPhase/getphase002/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetPotentialCapabilities/getpotcaps001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetSourceDebugExtension/srcdebugex001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetSourceDebugExtension/srcdebugex002/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetSourceDebugExtension/srcdebugex003/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetSourceFileName/getsrcfn004/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetSourceFileName/getsrcfn005/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetSourceFileName/getsrcfn006/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetSystemProperties/getsysprops001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetSystemProperties/getsysprops002/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetSystemProperty/getsysprop001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetSystemProperty/getsysprop002/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetStackTrace/getstacktr001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetStackTrace/getstacktr002/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetStackTrace/getstacktr003/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetStackTrace/getstacktr004/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetStackTrace/getstacktr005/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetStackTrace/getstacktr006/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetStackTrace/getstacktr007/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetStackTrace/getstacktr008/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetStackTrace/getstacktr009/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetTag/gettag001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetThreadCpuTime/thrcputime001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetThreadCpuTime/thrcputime002/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetThreadCpuTimerInfo/thrtimerinfo001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetThreadGroupChildren/getthrdgrpchld001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetThreadGroupInfo/thrgrpinfo001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetThreadGroupInfo/thrgrpinfo002/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetThreadInfo/thrinfo001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetThreadInfo/thrinfo002/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetThreadLocalStorage/getthrdstor001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetThreadState/thrstat001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetThreadState/thrstat002/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetThreadState/thrstat003/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetThreadState/thrstat004/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetThreadState/thrstat005/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetTime/gettime001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetTimerInfo/timerinfo001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetTopThreadGroups/topthrgrp001/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetTopThreadGroups/topthrgrp002/TestDescription.java \
+ vmTestbase/nsk/jvmti/GetVersionNumber/getvern001/TestDescription.java \
+ vmTestbase/nsk/jvmti/InterruptThread/intrpthrd001/TestDescription.java \
+ vmTestbase/nsk/jvmti/InterruptThread/intrpthrd002/TestDescription.java \
+ vmTestbase/nsk/jvmti/InterruptThread/intrpthrd003/TestDescription.java \
+ vmTestbase/nsk/jvmti/IsArrayClass/isarray004/TestDescription.java \
+ vmTestbase/nsk/jvmti/IsArrayClass/isarray005/TestDescription.java \
+ vmTestbase/nsk/jvmti/IsFieldSynthetic/isfldsin002/TestDescription.java \
+ vmTestbase/nsk/jvmti/IsFieldSynthetic/isfldsin003/TestDescription.java \
+ vmTestbase/nsk/jvmti/IsInterface/isintrf004/TestDescription.java \
+ vmTestbase/nsk/jvmti/IsInterface/isintrf005/TestDescription.java \
+ vmTestbase/nsk/jvmti/IsMethodNative/isnative001/TestDescription.java \
+ vmTestbase/nsk/jvmti/IsMethodNative/isnative002/TestDescription.java \
+ vmTestbase/nsk/jvmti/IsMethodObsolete/isobsolete001/TestDescription.java \
+ vmTestbase/nsk/jvmti/IsMethodSynthetic/issynth001/TestDescription.java \
+ vmTestbase/nsk/jvmti/IsMethodSynthetic/issynth002/TestDescription.java \
+ vmTestbase/nsk/jvmti/IterateOverHeap/iterheap001/TestDescription.java \
+ vmTestbase/nsk/jvmti/IterateOverHeap/iterheap002/TestDescription.java \
+ vmTestbase/nsk/jvmti/IterateOverHeap/iterheap003/TestDescription.java \
+ vmTestbase/nsk/jvmti/IterateOverHeap/iterheap004/TestDescription.java \
+ vmTestbase/nsk/jvmti/IterateOverHeap/iterheap005/TestDescription.java \
+ vmTestbase/nsk/jvmti/IterateOverHeap/iterheap006/TestDescription.java \
+ vmTestbase/nsk/jvmti/IterateOverHeap/iterheap007/TestDescription.java \
+ vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls001/TestDescription.java \
+ vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls002/TestDescription.java \
+ vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls003/TestDescription.java \
+ vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls004/TestDescription.java \
+ vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls005/TestDescription.java \
+ vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls006/TestDescription.java \
+ vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls007/TestDescription.java \
+ vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj001/TestDescription.java \
+ vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj002/TestDescription.java \
+ vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj003/TestDescription.java \
+ vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj004/TestDescription.java \
+ vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj005/TestDescription.java \
+ vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj001/TestDescription.java \
+ vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj002/TestDescription.java \
+ vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj003/TestDescription.java \
+ vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj004/TestDescription.java \
+ vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj005/TestDescription.java \
+ vmTestbase/nsk/jvmti/IterateThroughHeap/callbacks/Callbacks.java \
+ vmTestbase/nsk/jvmti/IterateThroughHeap/concrete-klass-filter/TestDescription.java \
+ vmTestbase/nsk/jvmti/IterateThroughHeap/non-concrete-klass-filter/TestDescription.java \
+ vmTestbase/nsk/jvmti/IterateThroughHeap/filter-tagged/TestDescription.java \
+ vmTestbase/nsk/jvmti/IterateThroughHeap/filter-untagged/TestDescription.java \
+ vmTestbase/nsk/jvmti/IterateThroughHeap/filter-class-tagged/TestDescription.java \
+ vmTestbase/nsk/jvmti/IterateThroughHeap/filter-class-untagged/TestDescription.java \
+ vmTestbase/nsk/jvmti/IterateThroughHeap/abort/Abort.java \
+ vmTestbase/nsk/jvmti/MethodEntry/mentry001/TestDescription.java \
+ vmTestbase/nsk/jvmti/MethodEntry/mentry002/TestDescription.java \
+ vmTestbase/nsk/jvmti/MethodExit/mexit002/TestDescription.java \
+ vmTestbase/nsk/jvmti/MonitorContendedEnter/mcontenter001/TestDescription.java \
+ vmTestbase/nsk/jvmti/MonitorContendedEntered/mcontentered001/TestDescription.java \
+ vmTestbase/nsk/jvmti/MonitorWait/monitorwait001/TestDescription.java \
+ vmTestbase/nsk/jvmti/MonitorWaited/monitorwaited001/TestDescription.java \
+ vmTestbase/nsk/jvmti/NativeMethodBind/nativemethbind001/TestDescription.java \
+ vmTestbase/nsk/jvmti/NativeMethodBind/nativemethbind002/TestDescription.java \
+ vmTestbase/nsk/jvmti/NativeMethodBind/nativemethbind003/TestDescription.java \
+ vmTestbase/nsk/jvmti/NativeMethodBind/nativemethbind004/TestDescription.java \
+ vmTestbase/nsk/jvmti/NotifyFramePop/nframepop001/TestDescription.java \
+ vmTestbase/nsk/jvmti/NotifyFramePop/nframepop002/TestDescription.java \
+ vmTestbase/nsk/jvmti/NotifyFramePop/nframepop003/TestDescription.java \
+ vmTestbase/nsk/jvmti/ObjectFree/objfree002/TestDescription.java \
+ vmTestbase/nsk/jvmti/PopFrame/popframe001/TestDescription.java \
+ vmTestbase/nsk/jvmti/PopFrame/popframe002/TestDescription.java \
+ vmTestbase/nsk/jvmti/PopFrame/popframe003/TestDescription.java \
+ vmTestbase/nsk/jvmti/PopFrame/popframe004/TestDescription.java \
+ vmTestbase/nsk/jvmti/PopFrame/popframe005/TestDescription.java \
+ vmTestbase/nsk/jvmti/PopFrame/popframe006/TestDescription.java \
+ vmTestbase/nsk/jvmti/PopFrame/popframe007/TestDescription.java \
+ vmTestbase/nsk/jvmti/PopFrame/popframe008/TestDescription.java \
+ vmTestbase/nsk/jvmti/PopFrame/popframe009/TestDescription.java \
+ vmTestbase/nsk/jvmti/PopFrame/popframe010/TestDescription.java \
+ vmTestbase/nsk/jvmti/RawMonitorEnter/rawmonenter001/TestDescription.java \
+ vmTestbase/nsk/jvmti/RawMonitorEnter/rawmonenter002/TestDescription.java \
+ vmTestbase/nsk/jvmti/RawMonitorEnter/rawmonenter003/TestDescription.java \
+ vmTestbase/nsk/jvmti/RawMonitorEnter/rawmonenter004/TestDescription.java \
+ vmTestbase/nsk/jvmti/RawMonitorExit/rawmonexit001/TestDescription.java \
+ vmTestbase/nsk/jvmti/RawMonitorExit/rawmonexit002/TestDescription.java \
+ vmTestbase/nsk/jvmti/RawMonitorExit/rawmonexit003/TestDescription.java \
+ vmTestbase/nsk/jvmti/RawMonitorExit/rawmonexit005/TestDescription.java \
+ vmTestbase/nsk/jvmti/RawMonitorNotify/rawmnntfy001/TestDescription.java \
+ vmTestbase/nsk/jvmti/RawMonitorNotify/rawmnntfy002/TestDescription.java \
+ vmTestbase/nsk/jvmti/RawMonitorNotify/rawmnntfy003/TestDescription.java \
+ vmTestbase/nsk/jvmti/RawMonitorNotify/rawmnntfy004/TestDescription.java \
+ vmTestbase/nsk/jvmti/RawMonitorNotifyAll/rawmnntfyall001/TestDescription.java \
+ vmTestbase/nsk/jvmti/RawMonitorNotifyAll/rawmnntfyall002/TestDescription.java \
+ vmTestbase/nsk/jvmti/RawMonitorNotifyAll/rawmnntfyall003/TestDescription.java \
+ vmTestbase/nsk/jvmti/RawMonitorNotifyAll/rawmnntfyall004/TestDescription.java \
+ vmTestbase/nsk/jvmti/RawMonitorWait/rawmnwait001/TestDescription.java \
+ vmTestbase/nsk/jvmti/RawMonitorWait/rawmnwait002/TestDescription.java \
+ vmTestbase/nsk/jvmti/RawMonitorWait/rawmnwait003/TestDescription.java \
+ vmTestbase/nsk/jvmti/RawMonitorWait/rawmnwait004/TestDescription.java \
+ vmTestbase/nsk/jvmti/RawMonitorWait/rawmnwait005/TestDescription.java \
+ vmTestbase/nsk/jvmti/RedefineClasses/StressRedefine/TestDescription.java \
+ vmTestbase/nsk/jvmti/RedefineClasses/StressRedefineWithoutBytecodeCorruption/TestDescription.java \
+ vmTestbase/nsk/jvmti/RedefineClasses/redefclass001/TestDescription.java \
+ vmTestbase/nsk/jvmti/RedefineClasses/redefclass002/TestDescription.java \
+ vmTestbase/nsk/jvmti/RedefineClasses/redefclass003/TestDescription.java \
+ vmTestbase/nsk/jvmti/RedefineClasses/redefclass004/TestDescription.java \
+ vmTestbase/nsk/jvmti/RedefineClasses/redefclass005/TestDescription.java \
+ vmTestbase/nsk/jvmti/RedefineClasses/redefclass006/TestDescription.java \
+ vmTestbase/nsk/jvmti/RedefineClasses/redefclass008/TestDescription.java \
+ vmTestbase/nsk/jvmti/RedefineClasses/redefclass009/TestDescription.java \
+ vmTestbase/nsk/jvmti/RedefineClasses/redefclass010/TestDescription.java \
+ vmTestbase/nsk/jvmti/RedefineClasses/redefclass011/TestDescription.java \
+ vmTestbase/nsk/jvmti/RedefineClasses/redefclass012/TestDescription.java \
+ vmTestbase/nsk/jvmti/RedefineClasses/redefclass013/TestDescription.java \
+ vmTestbase/nsk/jvmti/RedefineClasses/redefclass014/TestDescription.java \
+ vmTestbase/nsk/jvmti/RedefineClasses/redefclass015/TestDescription.java \
+ vmTestbase/nsk/jvmti/RedefineClasses/redefclass016/TestDescription.java \
+ vmTestbase/nsk/jvmti/RedefineClasses/redefclass017/TestDescription.java \
+ vmTestbase/nsk/jvmti/RedefineClasses/redefclass018/TestDescription.java \
+ vmTestbase/nsk/jvmti/RedefineClasses/redefclass019/TestDescription.java \
+ vmTestbase/nsk/jvmti/RedefineClasses/redefclass020/TestDescription.java \
+ vmTestbase/nsk/jvmti/RedefineClasses/redefclass021/TestDescription.java \
+ vmTestbase/nsk/jvmti/RedefineClasses/redefclass022/TestDescription.java \
+ vmTestbase/nsk/jvmti/RedefineClasses/redefclass023/TestDescription.java \
+ vmTestbase/nsk/jvmti/RedefineClasses/redefclass024/TestDescription.java \
+ vmTestbase/nsk/jvmti/RedefineClasses/redefclass025/TestDescription.java \
+ vmTestbase/nsk/jvmti/RedefineClasses/redefclass026/TestDescription.java \
+ vmTestbase/nsk/jvmti/RedefineClasses/redefclass027/TestDescription.java \
+ vmTestbase/nsk/jvmti/RedefineClasses/redefclass028/TestDescription.java \
+ vmTestbase/nsk/jvmti/RedefineClasses/redefclass029/TestDescription.java \
+ vmTestbase/nsk/jvmti/RedefineClasses/redefclass030/TestDescription.java \
+ vmTestbase/nsk/jvmti/RedefineClasses/redefclass031/TestDescription.java \
+ vmTestbase/nsk/jvmti/RelinquishCapabilities/relcaps001/TestDescription.java \
+ vmTestbase/nsk/jvmti/RelinquishCapabilities/relcaps002/TestDescription.java \
+ vmTestbase/nsk/jvmti/ResumeThread/resumethrd001/TestDescription.java \
+ vmTestbase/nsk/jvmti/ResumeThread/resumethrd002/TestDescription.java \
+ vmTestbase/nsk/jvmti/ResumeThreadList/resumethrdlst001/TestDescription.java \
+ vmTestbase/nsk/jvmti/ResumeThreadList/resumethrdlst002/TestDescription.java \
+ vmTestbase/nsk/jvmti/RunAgentThread/agentthr001/TestDescription.java \
+ vmTestbase/nsk/jvmti/RunAgentThread/agentthr002/TestDescription.java \
+ vmTestbase/nsk/jvmti/RunAgentThread/agentthr003/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetBreakpoint/setbrk002/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetBreakpoint/setbrk003/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetBreakpoint/setbrk005/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetBreakpoint/setbrk007/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetBreakpoint/setbrk008/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetEnvironmentLocalStorage/setenvstor001/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetEnvironmentLocalStorage/setenvstor002/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetEnvironmentLocalStorage/setenvstor003/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetEventCallbacks/setevntcallb001/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetEventCallbacks/setevntcallb002/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetEventCallbacks/setevntcallb003/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetEventNotificationMode/setnotif001/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetExtensionEventCallback/setextevent001/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw001/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw002/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw003/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw004/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw005/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw006/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetFieldModificationWatch/setfmodw002/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetFieldModificationWatch/setfmodw003/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetFieldModificationWatch/setfmodw004/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetFieldModificationWatch/setfmodw005/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetFieldModificationWatch/setfmodw006/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetJNIFunctionTable/setjniftab001/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetJNIFunctionTable/setjniftab002/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetLocalVariable/setlocal001/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetLocalVariable/setlocal002/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetLocalVariable/setlocal003/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetLocalVariable/setlocal004/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetSystemProperty/setsysprop002/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetSystemProperty/setsysprop003/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetTag/settag001/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetThreadLocalStorage/setthrdstor001/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetThreadLocalStorage/setthrdstor002/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetThreadLocalStorage/setthrdstor003/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetVerboseFlag/setvrbflag001/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetVerboseFlag/setvrbflag002/TestDescription.java \
+ vmTestbase/nsk/jvmti/SingleStep/singlestep001/TestDescription.java \
+ vmTestbase/nsk/jvmti/SingleStep/singlestep003/TestDescription.java \
+ vmTestbase/nsk/jvmti/SuspendThread/suspendthrd001/TestDescription.java \
+ vmTestbase/nsk/jvmti/SuspendThreadList/suspendthrdlst001/TestDescription.java \
+ vmTestbase/nsk/jvmti/StopThread/stopthrd006/TestDescription.java \
+ vmTestbase/nsk/jvmti/StopThread/stopthrd007/TestDescription.java \
+ vmTestbase/nsk/jvmti/ThreadEnd/threadend001/TestDescription.java \
+ vmTestbase/nsk/jvmti/ThreadEnd/threadend002/TestDescription.java \
+ vmTestbase/nsk/jvmti/ThreadStart/threadstart001/TestDescription.java \
+ vmTestbase/nsk/jvmti/ThreadStart/threadstart002/TestDescription.java \
+ vmTestbase/nsk/jvmti/ThreadStart/threadstart003/TestDescription.java \
+ vmTestbase/nsk/jvmti/VMDeath/vmdeath001/TestDescription.java \
+ vmTestbase/nsk/jvmti/VMInit/vminit001/TestDescription.java \
+ vmTestbase/nsk/jvmti/VMObjectAlloc/vmobjalloc001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/allocation/AP01/ap01t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/allocation/AP02/ap02t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/allocation/AP03/ap03t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/allocation/AP05/ap05t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/allocation/AP05/ap05t002/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/allocation/AP06/ap06t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/allocation/AP07/ap07t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/allocation/AP07/ap07t002/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/allocation/AP09/ap09t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/allocation/AP10/ap10t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/allocation/AP11/ap11t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/bcinstr/BI01/bi01t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/bcinstr/BI01/bi01t002/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/bcinstr/BI02/bi02t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/bcinstr/BI02/bi02t002/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/bcinstr/BI03/bi03t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/bcinstr/BI03/bi03t002/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/bcinstr/BI04/bi04t002/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t002/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t003/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t004/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t005/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t006/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t008/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t009/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t010/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t011/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t012/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t013/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t014/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t015/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t016/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t017/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t018/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t019/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t020/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t021/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/capability/CM02/cm02t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/contention/TC01/tc01t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/contention/TC02/tc02t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/contention/TC03/tc03t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/contention/TC03/tc03t002/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/contention/TC04/tc04t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/events/EM01/em01t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/events/EM01/em01t002/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t004/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t008/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t009/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t010/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t011/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/events/EM04/em04t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/events/EM05/em05t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/events/EM06/em06t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/events/EM07/em07t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/general_functions/GF01/gf01t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/general_functions/GF04/gf04t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/general_functions/GF06/gf06t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/general_functions/GF08/gf08t001/TestDriver.java \
+ vmTestbase/nsk/jvmti/scenarios/general_functions/GF08/gf08t002/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/general_functions/GF08/gf08t003/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS101/hs101t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS101/hs101t002/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS101/hs101t003/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS101/hs101t004/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS101/hs101t005/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS101/hs101t006/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS101/hs101t007/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS101/hs101t008/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS102/hs102t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS102/hs102t002/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS103/hs103t002/hs103t002.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS104/hs104t001/hs104t001.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS104/hs104t002/hs104t002.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS201/hs201t002/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS201/hs201t003/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS202/hs202t001/hs202t001.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS202/hs202t002/hs202t002.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS203/hs203t001/hs203t001.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS203/hs203t002/hs203t002.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS203/hs203t003/hs203t003.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS204/hs204t002/hs204t002.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS204/hs204t003/hs204t003.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS204/hs204t004/hs204t004.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t001/hs301t001.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t002/hs301t002.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t003/hs301t003.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t004/hs301t004.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t005/hs301t005.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t001/hs302t001.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t002/hs302t002.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t003/hs302t003.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t004/hs302t004.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t005/hs302t005.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t006/hs302t006.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t007/hs302t007.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t008/hs302t008.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t009/hs302t009.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t010/hs302t010.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t011/hs302t011.java \
+ vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t012/hs302t012.java \
+ vmTestbase/nsk/jvmti/scenarios/jni_interception/JI01/ji01t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/jni_interception/JI03/ji03t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/jni_interception/JI03/ji03t002/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/jni_interception/JI03/ji03t003/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/jni_interception/JI05/ji05t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/jni_interception/JI06/ji06t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/multienv/MA01/ma01t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/multienv/MA02/ma02t001/TestDriver.java \
+ vmTestbase/nsk/jvmti/scenarios/multienv/MA03/ma03t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/multienv/MA04/ma04t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/multienv/MA04/ma04t002/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/multienv/MA04/ma04t003/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/multienv/MA05/ma05t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/multienv/MA06/ma06t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/multienv/MA07/ma07t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/multienv/MA08/ma08t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t002/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t003/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t004/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t005/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t006/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t007/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t008/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/sampling/SP01/sp01t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/sampling/SP02/sp02t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/sampling/SP02/sp02t002/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/sampling/SP02/sp02t003/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/sampling/SP03/sp03t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/sampling/SP03/sp03t002/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/sampling/SP04/sp04t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/sampling/SP04/sp04t002/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/sampling/SP05/sp05t002/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/sampling/SP05/sp05t003/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/sampling/SP06/sp06t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/sampling/SP06/sp06t002/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/sampling/SP06/sp06t003/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/sampling/SP07/sp07t001/TestDescription.java \
+ vmTestbase/nsk/jvmti/scenarios/sampling/SP07/sp07t002/TestDescription.java \
+ vmTestbase/nsk/jvmti/AttachOnDemand/attach002a/TestDescription.java \
+ vmTestbase/nsk/jvmti/AttachOnDemand/attach024/TestDescription.java \
+ vmTestbase/nsk/jvmti/RetransformClasses/retransform002/TestDescription.java \
+ vmTestbase/nsk/jvmti/RetransformClasses/retransform003/TestDriver.java \
+ vmTestbase/nsk/jvmti/RetransformClasses/retransform004/TestDescription.java \
+ vmTestbase/nsk/jvmti/ForceEarlyReturn/ForceEarlyReturn001/TestDescription.java \
+ vmTestbase/nsk/jvmti/ForceEarlyReturn/ForceEarlyReturn002/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetNativeMethodPrefix/SetNativeMethodPrefix001/TestDescription.java \
+ vmTestbase/nsk/jvmti/SetNativeMethodPrefix/SetNativeMethodPrefix002/TestDriver.java \
+ vmTestbase/nsk/jvmti/GetEnv/GetEnv001/GetEnv001.java \
+ vmTestbase/nsk/jvmti/unit/MethodBind/JvmtiTest/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/OnUnload/JvmtiTest/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/StackTrace/JvmtiTest/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/agentthr/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/clsldrclss00x/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/events/redefineCFLH/JvmtiTest/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/extmech/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/functions/AddToBootstrapClassLoaderSearch/JvmtiTest/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/functions/Dispose/JvmtiTest/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/functions/environment/JvmtiTest/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/functions/nosuspendMonitorInfo/JvmtiTest/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/functions/nosuspendStackTrace/JvmtiTest/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/functions/rawmonitor/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/heap/BasicIterationTests/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/heap/BasicTagTests/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/heap/GetWithTests/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/heap/HeapWalkTests/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/heap/ObjectFreeTests/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/heap/ObjectSizeTests/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/heapref/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/refignore/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/setNullVMInit/JvmtiTest/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/GetLineNumberTable/linetab004/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/GetLocalVariable/getlocal003/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/GetLocalVariable/getlocal004/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/IsSynthetic/issynth001/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/FollowReferences/followref001/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/FollowReferences/followref002/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/FollowReferences/followref003/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/FollowReferences/followref004/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/FollowReferences/followref005/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/FollowReferences/followref006/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretbase/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretfp/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretint/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretlong/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretobj/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretstr/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretvoid/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/GetAllStackTraces/getallstktr001/TestDescription.java \
+ vmTestbase/nsk/jvmti/unit/GetConstantPool/getcpool001/TestDescription.java
+
+vmTestbase_nsk_jdwp_quick = \
+ vmTestbase/nsk/jdwp/ArrayReference/GetValues/getvalues001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ArrayReference/GetValues/getvalues002/TestDescription.java \
+ vmTestbase/nsk/jdwp/ArrayReference/Length/length001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ArrayReference/SetValues/setvalues001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ArrayType/NewInstance/newinstance001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ClassLoaderReference/VisibleClasses/visibclasses001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ClassObjectReference/ReflectedType/reflectype001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ClassType/InvokeMethod/invokemeth001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ClassType/NewInstance/newinst001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ClassType/SetValues/setvalues001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ClassType/Superclass/superclass001/TestDescription.java \
+ vmTestbase/nsk/jdwp/Event/BREAKPOINT/breakpoint001/TestDescription.java \
+ vmTestbase/nsk/jdwp/Event/EXCEPTION/exception001/TestDescription.java \
+ vmTestbase/nsk/jdwp/Event/FIELD_ACCESS/fldaccess001/TestDescription.java \
+ vmTestbase/nsk/jdwp/Event/FIELD_MODIFICATION/fldmodification001/TestDescription.java \
+ vmTestbase/nsk/jdwp/Event/CLASS_PREPARE/clsprepare001/TestDescription.java \
+ vmTestbase/nsk/jdwp/Event/CLASS_UNLOAD/clsunload001/TestDescription.java \
+ vmTestbase/nsk/jdwp/Event/METHOD_ENTRY/methentry001/TestDescription.java \
+ vmTestbase/nsk/jdwp/Event/METHOD_EXIT/methexit001/TestDescription.java \
+ vmTestbase/nsk/jdwp/Event/SINGLE_STEP/singlestep001/TestDescription.java \
+ vmTestbase/nsk/jdwp/Event/SINGLE_STEP/singlestep002/TestDescription.java \
+ vmTestbase/nsk/jdwp/Event/SINGLE_STEP/singlestep003/TestDescription.java \
+ vmTestbase/nsk/jdwp/Event/THREAD_DEATH/thrdeath001/TestDescription.java \
+ vmTestbase/nsk/jdwp/Event/THREAD_START/thrstart001/TestDescription.java \
+ vmTestbase/nsk/jdwp/Event/VM_DEATH/vmdeath001/TestDescription.java \
+ vmTestbase/nsk/jdwp/Event/VM_START/vmstart001/TestDescription.java \
+ vmTestbase/nsk/jdwp/Event/Composite/composite001/TestDescription.java \
+ vmTestbase/nsk/jdwp/EventRequest/Clear/clear001/TestDescription.java \
+ vmTestbase/nsk/jdwp/EventRequest/ClearAllBreakpoints/clrallbreakp001/TestDescription.java \
+ vmTestbase/nsk/jdwp/EventRequest/ClearAllBreakpoints/clrallbreakp002/TestDescription.java \
+ vmTestbase/nsk/jdwp/EventRequest/ClearAllBreakpoints/clrallbreakp003/TestDescription.java \
+ vmTestbase/nsk/jdwp/EventRequest/Set/set001/TestDescription.java \
+ vmTestbase/nsk/jdwp/EventRequest/Set/set002/TestDescription.java \
+ vmTestbase/nsk/jdwp/Method/LineTable/linetable001/TestDescription.java \
+ vmTestbase/nsk/jdwp/Method/VariableTable/vartable001/TestDescription.java \
+ vmTestbase/nsk/jdwp/Method/Bytecodes/bytecodes001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ObjectReference/DisableCollection/disablecol001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ObjectReference/EnableCollection/enablecol001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ObjectReference/GetValues/getvalues001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ObjectReference/InvokeMethod/invokemeth001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ObjectReference/IsCollected/iscollected001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ObjectReference/MonitorInfo/monitorinfo001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ObjectReference/ReferenceType/referencetype001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ObjectReference/SetValues/setvalues001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ReferenceType/ClassLoader/classloader001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ReferenceType/ClassObject/classobj001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ReferenceType/Fields/fields001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ReferenceType/GetValues/getvalues001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ReferenceType/Interfaces/interfaces001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ReferenceType/Methods/methods001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ReferenceType/Modifiers/modifiers001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ReferenceType/NestedTypes/nestedtypes001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ReferenceType/Signature/signature001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ReferenceType/SourceFile/srcfile001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ReferenceType/Status/status001/TestDescription.java \
+ vmTestbase/nsk/jdwp/StackFrame/GetValues/getvalues001/TestDescription.java \
+ vmTestbase/nsk/jdwp/StackFrame/SetValues/setvalues001/TestDescription.java \
+ vmTestbase/nsk/jdwp/StackFrame/ThisObject/thisobject001/TestDescription.java \
+ vmTestbase/nsk/jdwp/StringReference/Value/value001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ThreadGroupReference/Children/children001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ThreadGroupReference/Name/name001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ThreadGroupReference/Parent/parent001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ThreadReference/CurrentContendedMonitor/curcontmonitor001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ThreadReference/Frames/frames001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ThreadReference/FrameCount/framecnt001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ThreadReference/Interrupt/interrupt001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ThreadReference/Name/name001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ThreadReference/OwnedMonitors/ownmonitors001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ThreadReference/Resume/resume001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ThreadReference/Status/status001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ThreadReference/Stop/stop001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ThreadReference/Suspend/suspend001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ThreadReference/SuspendCount/suspendcnt001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ThreadReference/ThreadGroup/threadgroup001/TestDescription.java \
+ vmTestbase/nsk/jdwp/VirtualMachine/AllThreads/allthreads001/TestDescription.java \
+ vmTestbase/nsk/jdwp/VirtualMachine/Capabilities/capabilities001/TestDescription.java \
+ vmTestbase/nsk/jdwp/VirtualMachine/ClassPaths/classpaths001/TestDescription.java \
+ vmTestbase/nsk/jdwp/VirtualMachine/ClassesBySignature/classbysig001/TestDescription.java \
+ vmTestbase/nsk/jdwp/VirtualMachine/CreateString/createstr001/TestDescription.java \
+ vmTestbase/nsk/jdwp/VirtualMachine/Dispose/dispose001/TestDescription.java \
+ vmTestbase/nsk/jdwp/VirtualMachine/DisposeObjects/disposeobj001/TestDescription.java \
+ vmTestbase/nsk/jdwp/VirtualMachine/Exit/exit001/TestDescription.java \
+ vmTestbase/nsk/jdwp/VirtualMachine/HoldEvents/holdevents001/TestDescription.java \
+ vmTestbase/nsk/jdwp/VirtualMachine/IDSizes/idsizes001/TestDescription.java \
+ vmTestbase/nsk/jdwp/VirtualMachine/TopLevelThreadGroups/threadgroups001/TestDescription.java \
+ vmTestbase/nsk/jdwp/VirtualMachine/ReleaseEvents/releaseevents001/TestDescription.java \
+ vmTestbase/nsk/jdwp/VirtualMachine/ReleaseEvents/releaseevents002/TestDescription.java \
+ vmTestbase/nsk/jdwp/VirtualMachine/Resume/resume001/TestDescription.java \
+ vmTestbase/nsk/jdwp/VirtualMachine/Version/version001/TestDescription.java \
+ vmTestbase/nsk/jdwp/VirtualMachine/Version/version002/TestDescription.java \
+ vmTestbase/nsk/jdwp/Event/VM_DEATH/vmdeath002/TestDescription.java \
+ vmTestbase/nsk/jdwp/Method/IsObsolete/isobsolete001/TestDescription.java \
+ vmTestbase/nsk/jdwp/Method/IsObsolete/isobsolete002/TestDescription.java \
+ vmTestbase/nsk/jdwp/ReferenceType/SourceDebugExtension/srcdebugext001/TestDescription.java \
+ vmTestbase/nsk/jdwp/StackFrame/PopFrames/popframes001/TestDescription.java \
+ vmTestbase/nsk/jdwp/VirtualMachine/CapabilitiesNew/capabilitiesnew001/TestDescription.java \
+ vmTestbase/nsk/jdwp/VirtualMachine/RedefineClasses/redefinecls001/TestDescription.java \
+ vmTestbase/nsk/jdwp/VirtualMachine/SetDefaultStratum/setdefstrat001/TestDescription.java \
+ vmTestbase/nsk/jdwp/Method/VariableTableWithGeneric/vartblwithgen001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ReferenceType/FieldsWithGeneric/fldwithgeneric001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ReferenceType/MethodsWithGeneric/methwithgeneric001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ReferenceType/SignatureWithGeneric/sigwithgeneric001/TestDescription.java \
+ vmTestbase/nsk/jdwp/ReferenceType/Instances/instances001/instances001.java \
+ vmTestbase/nsk/jdwp/ReferenceType/Instances/instances002/instances002.java \
+ vmTestbase/nsk/jdwp/ObjectReference/ReferringObjects/referringObjects001/referringObjects001.java \
+ vmTestbase/nsk/jdwp/ObjectReference/ReferringObjects/referringObjects002/referringObjects002.java \
+ vmTestbase/nsk/jdwp/VirtualMachine/InstanceCounts/instanceCounts001/instanceCounts001.java \
+ vmTestbase/nsk/jdwp/ThreadReference/ForceEarlyReturn/forceEarlyReturn002/forceEarlyReturn002.java \
+ vmTestbase/nsk/jdwp/ThreadReference/OwnedMonitorsStackDepthInfo/ownedMonitorsStackDepthInfo001/ownedMonitorsStackDepthInfo001.java \
+ vmTestbase/nsk/jdwp/ThreadReference/OwnedMonitorsStackDepthInfo/ownedMonitorsStackDepthInfo002/ownedMonitorsStackDepthInfo002.java
+
+# vmTestbase_vm_gc w/ 'quick' k/w
+vmTestbase_vm_gc_quick = \
+ vmTestbase/vm/gc/compact/Compact_Arrays \
+ vmTestbase/vm/gc/compact/Compact_Strings_TwoFields \
+ vmTestbase/vm/gc/compact/Compact_InternedStrings_Strings \
+ vmTestbase/vm/gc/compact/Humongous_Arrays5M \
+ vmTestbase/vm/gc/compact/Humongous_NonbranchyTree \
+ vmTestbase/vm/gc/containers/LinkedBlockingDeque_Arrays/TestDescription.java \
+ vmTestbase/vm/gc/containers/LinkedHashMap_Arrays/TestDescription.java \
+ vmTestbase/vm/gc/containers/Combination05/TestDescription.java \
+ vmTestbase/gc/ArrayJuggle/Juggle01 \
+ vmTestbase/gc/ArrayJuggle/Juggle14 \
+ vmTestbase/gc/ArrayJuggle/Juggle22 \
+ vmTestbase/gc/ArrayJuggle/Juggle29 \
+ vmTestbase/gc/ArrayJuggle/Juggle34 \
+ vmTestbase/gc/gctests/LargeObjects/large001/large001.java \
+ vmTestbase/gc/gctests/LoadUnloadGC2/LoadUnloadGC2.java \
+ vmTestbase/gc/gctests/StringGC/StringGC.java \
+ vmTestbase/gc/gctests/StringInternGC/StringInternGC.java \
+ vmTestbase/gc/gctests/ReferencesGC/ReferencesGC.java \
+ vmTestbase/vm/gc/kind/parOld/TestDescription.java \
+ vmTestbase/gc/lock/jni/jnilock001/TestDescription.java \
+ vmTestbase/gc/lock/jniref/jnireflock04/TestDescription.java \
+ vmTestbase/gc/lock/jvmti/alloc/jvmtialloclock02/TestDescription.java \
+ vmTestbase/gc/lock/malloc/malloclock03/TestDescription.java
+
+vmTestbase_vm_compiler_quick = \
+ vmTestbase/vm/compiler/jbe/constprop/constprop01/constprop01.java \
+ vmTestbase/vm/compiler/jbe/constprop/constprop02/constprop02.java \
+ vmTestbase/vm/compiler/jbe/dead/dead01/dead01.java \
+ vmTestbase/vm/compiler/jbe/dead/dead02/dead02.java \
+ vmTestbase/vm/compiler/jbe/dead/dead03/dead03.java \
+ vmTestbase/vm/compiler/jbe/dead/dead04/dead04.java \
+ vmTestbase/vm/compiler/jbe/dead/dead05/dead05.java \
+ vmTestbase/vm/compiler/jbe/dead/dead06/dead06.java \
+ vmTestbase/vm/compiler/jbe/dead/dead07/dead07.java \
+ vmTestbase/vm/compiler/jbe/dead/dead08/dead08.java \
+ vmTestbase/vm/compiler/jbe/dead/dead09/dead09.java \
+ vmTestbase/vm/compiler/jbe/dead/dead10/dead10.java \
+ vmTestbase/vm/compiler/jbe/dead/dead11/dead11.java \
+ vmTestbase/vm/compiler/jbe/dead/dead12/dead12.java \
+ vmTestbase/vm/compiler/jbe/dead/dead13/dead13.java \
+ vmTestbase/vm/compiler/jbe/dead/dead14/dead14.java \
+ vmTestbase/vm/compiler/jbe/dead/dead15/dead15.java \
+ vmTestbase/vm/compiler/jbe/dead/dead16/dead16.java \
+ vmTestbase/vm/compiler/jbe/hoist/hoist01/hoist01.java \
+ vmTestbase/vm/compiler/jbe/hoist/hoist02/hoist02.java \
+ vmTestbase/vm/compiler/jbe/hoist/hoist03/hoist03.java \
+ vmTestbase/vm/compiler/jbe/hoist/hoist04/hoist04.java \
+ vmTestbase/vm/compiler/jbe/subcommon/subcommon01/subcommon01.java \
+ vmTestbase/vm/compiler/jbe/subcommon/subcommon03/subcommon03.java \
+ vmTestbase/vm/compiler/jbe/subcommon/subcommon04/subcommon04.java \
+ vmTestbase/vm/compiler/jbe/subcommon/subcommon05/subcommon05.java \
+ vmTestbase/vm/compiler/coverage/parentheses/TestDescription.java \
+ vmTestbase/vm/compiler/optimizations/stringconcat/explicit/Explicit01/cs_disabled/TestDescription.java \
+ vmTestbase/vm/compiler/optimizations/stringconcat/explicit/Explicit01/cs_enabled/TestDescription.java \
+ vmTestbase/vm/compiler/optimizations/stringconcat/explicit/Merge01/cs_disabled/TestDescription.java \
+ vmTestbase/vm/compiler/optimizations/stringconcat/explicit/Merge01/cs_enabled/TestDescription.java \
+ vmTestbase/vm/compiler/optimizations/stringconcat/implicit/Implicit01/cs_disabled/TestDescription.java \
+ vmTestbase/vm/compiler/optimizations/stringconcat/implicit/Implicit01/cs_enabled/TestDescription.java \
+ vmTestbase/vm/compiler/optimizations/stringconcat/implicit/Merge01/cs_disabled/TestDescription.java \
+ vmTestbase/vm/compiler/optimizations/stringconcat/implicit/Merge01/cs_enabled/TestDescription.java \
+ vmTestbase/vm/compiler/optimizations/partialpeel/ForWhile/TestDescription.java \
+ vmTestbase/vm/compiler/optimizations/partialpeel/While/TestDescription.java \
+ vmTestbase/vm/compiler/optimizations/partialpeel/WhileWhile/TestDescription.java \
+ vmTestbase/vm/compiler/optimizations/partialpeel/Do/TestDescription.java \
+ vmTestbase/vm/compiler/complog/uninit/uninit001/uninit001.java \
+ vmTestbase/vm/compiler/complog/uninit/uninit002/uninit002.java \
+ vmTestbase/vm/compiler/complog/uninit/uninit003/uninit003.java \
+ vmTestbase/vm/compiler/complog/uninit/uninit004/uninit004.java \
+ vmTestbase/vm/compiler/complog/uninit/uninit005/uninit005.java \
+ vmTestbase/vm/compiler/complog/uninit/uninit006/uninit006.java \
+ vmTestbase/vm/compiler/complog/uninit/uninit007/uninit007.java \
+ vmTestbase/vm/compiler/complog/uninit/uninit008/uninit008.java \
+ vmTestbase/vm/compiler/complog/uninit/uninit009/uninit009.java \
+ vmTestbase/vm/compiler/complog/uninit/uninit010/uninit010.java \
+ vmTestbase/vm/compiler/complog/uninit/uninit011/uninit011.java \
+ vmTestbase/vm/compiler/complog/uninit/uninit012/uninit012.java \
+ vmTestbase/vm/compiler/complog/uninit/uninit013/uninit013.java \
+ vmTestbase/jit/Arrays/ArrayBounds/ArrayBounds.java \
+ vmTestbase/jit/Arrays/ArrayStoreCheck/ArrayStoreCheck.java \
+ vmTestbase/jit/Arrays/ArrayTests/ArrayTests.java \
+ vmTestbase/jit/CEETest/CEETest.java \
+ vmTestbase/jit/CondExpr/CondExpr.java \
+ vmTestbase/jit/DivTest/DivTest.java \
+ vmTestbase/jit/ExcOpt/ExcOpt.java \
+ vmTestbase/jit/FloatingPoint/FPCompare/TestFPBinop/TestFPBinop.java \
+ vmTestbase/jit/FloatingPoint/gen_math/Filtering/Filtering.java \
+ vmTestbase/jit/FloatingPoint/gen_math/Loops01/Loops01.java \
+ vmTestbase/jit/FloatingPoint/gen_math/Loops02/Loops02.java \
+ vmTestbase/jit/FloatingPoint/gen_math/Loops03/Loops03.java \
+ vmTestbase/jit/FloatingPoint/gen_math/Loops04/Loops04.java \
+ vmTestbase/jit/FloatingPoint/gen_math/Loops05/Loops05.java \
+ vmTestbase/jit/FloatingPoint/gen_math/Loops06/Loops06.java \
+ vmTestbase/jit/FloatingPoint/gen_math/Loops07/Loops07.java \
+ vmTestbase/jit/FloatingPoint/gen_math/Matrix_3d/Matrix_3d.java \
+ vmTestbase/jit/FloatingPoint/gen_math/ShortCircuitTest/ShortCircuitTest.java \
+ vmTestbase/jit/FloatingPoint/gen_math/Summ/Summ.java \
+ vmTestbase/jit/PrintProperties/PrintProperties.java \
+ vmTestbase/jit/PrintThis/PrintThis.java \
+ vmTestbase/jit/Robert/Robert.java \
+ vmTestbase/jit/Sleeper/Sleeper.java \
+ vmTestbase/jit/bounds/bounds.java \
+ vmTestbase/jit/collapse/collapse.java \
+ vmTestbase/jit/deoptimization/test01/test01.java \
+ vmTestbase/jit/deoptimization/test02/test02.java \
+ vmTestbase/jit/deoptimization/test03/test03.java \
+ vmTestbase/jit/deoptimization/test04/test04.java \
+ vmTestbase/jit/deoptimization/test05/test05.java \
+ vmTestbase/jit/deoptimization/test06/test06.java \
+ vmTestbase/jit/deoptimization/test07/test07.java \
+ vmTestbase/jit/deoptimization/test08/test08.java \
+ vmTestbase/jit/escape/AdaptiveBlocking/AdaptiveBlocking001/AdaptiveBlocking001.java \
+ vmTestbase/jit/escape/LockElision/MatMul/MatMul.java \
+ vmTestbase/jit/escape/LockCoarsening/LockCoarsening002/TestDescription.java \
+ vmTestbase/jit/exception/exception.java \
+ vmTestbase/jit/graph/cgt0/cgt0.java \
+ vmTestbase/jit/graph/cgt1/cgt1.java \
+ vmTestbase/jit/graph/cgt2/cgt2.java \
+ vmTestbase/jit/graph/cgt3/cgt3.java \
+ vmTestbase/jit/graph/cgt4/cgt4.java \
+ vmTestbase/jit/graph/cgt5/cgt5.java \
+ vmTestbase/jit/graph/cgt6/cgt6.java \
+ vmTestbase/jit/graph/cgt7/cgt7.java \
+ vmTestbase/jit/graph/cgt8/cgt8.java \
+ vmTestbase/jit/graph/cgt9/cgt9.java \
+ vmTestbase/jit/graph/cgt10/cgt10.java \
+ vmTestbase/jit/graph/cgt11/cgt11.java \
+ vmTestbase/jit/init/init01/init01.java \
+ vmTestbase/jit/init/init02/init02.java \
+ vmTestbase/jit/inline/inline003/inline003.java \
+ vmTestbase/jit/inline/inline004/inline004.java \
+ vmTestbase/jit/inline/inline005/inline005.java \
+ vmTestbase/jit/inline/inline007/inline007.java \
+ vmTestbase/jit/misctests/JitBug1/JitBug1.java \
+ vmTestbase/jit/misctests/Pi/Pi.java \
+ vmTestbase/jit/misctests/clss14702/clss14702.java \
+ vmTestbase/jit/misctests/fpustack/GraphApplet.java \
+ vmTestbase/jit/misctests/putfield00802/putfield00802.java \
+ vmTestbase/jit/misctests/t5/t5.java \
+ vmTestbase/jit/overflow/overflow.java \
+ vmTestbase/jit/regression/b4427606/b4427606.java \
+ vmTestbase/jit/regression/b4446672/b4446672.java \
+ vmTestbase/jit/regression/CrashC1/CrashC1.java \
+ vmTestbase/jit/series/series.java \
+ vmTestbase/jit/t/t001/t001.java \
+ vmTestbase/jit/t/t002/t002.java \
+ vmTestbase/jit/t/t003/t003.java \
+ vmTestbase/jit/t/t004/t004.java \
+ vmTestbase/jit/t/t005/t005.java \
+ vmTestbase/jit/t/t006/t006.java \
+ vmTestbase/jit/t/t007/t007.java \
+ vmTestbase/jit/t/t008/t008.java \
+ vmTestbase/jit/t/t009/t009.java \
+ vmTestbase/jit/t/t011/t011.java \
+ vmTestbase/jit/t/t012/t012.java \
+ vmTestbase/jit/t/t013/t013.java \
+ vmTestbase/jit/t/t014/t014.java \
+ vmTestbase/jit/t/t015/t015.java \
+ vmTestbase/jit/t/t016/t016.java \
+ vmTestbase/jit/t/t017/t017.java \
+ vmTestbase/jit/t/t018/t018.java \
+ vmTestbase/jit/t/t019/t019.java \
+ vmTestbase/jit/t/t020/t020.java \
+ vmTestbase/jit/t/t021/t021.java \
+ vmTestbase/jit/t/t022/t022.java \
+ vmTestbase/jit/t/t023/t023.java \
+ vmTestbase/jit/t/t024/t024.java \
+ vmTestbase/jit/t/t025/t025.java \
+ vmTestbase/jit/t/t026/t026.java \
+ vmTestbase/jit/t/t027/t027.java \
+ vmTestbase/jit/t/t028/t028.java \
+ vmTestbase/jit/t/t029/t029.java \
+ vmTestbase/jit/t/t030/t030.java \
+ vmTestbase/jit/t/t031/t031.java \
+ vmTestbase/jit/t/t032/t032.java \
+ vmTestbase/jit/t/t033/t033.java \
+ vmTestbase/jit/t/t034/t034.java \
+ vmTestbase/jit/t/t035/t035.java \
+ vmTestbase/jit/t/t036/t036.java \
+ vmTestbase/jit/t/t037/t037.java \
+ vmTestbase/jit/t/t038/t038.java \
+ vmTestbase/jit/t/t039/t039.java \
+ vmTestbase/jit/t/t040/t040.java \
+ vmTestbase/jit/t/t041/t041.java \
+ vmTestbase/jit/t/t042/t042.java \
+ vmTestbase/jit/t/t043/t043.java \
+ vmTestbase/jit/t/t044/t044.java \
+ vmTestbase/jit/t/t045/t045.java \
+ vmTestbase/jit/t/t046/t046.java \
+ vmTestbase/jit/t/t047/t047.java \
+ vmTestbase/jit/t/t048/t048.java \
+ vmTestbase/jit/t/t049/t049.java \
+ vmTestbase/jit/t/t050/t050.java \
+ vmTestbase/jit/t/t051/t051.java \
+ vmTestbase/jit/t/t052/t052.java \
+ vmTestbase/jit/t/t053/t053.java \
+ vmTestbase/jit/t/t054/t054.java \
+ vmTestbase/jit/t/t055/t055.java \
+ vmTestbase/jit/t/t056/t056.java \
+ vmTestbase/jit/t/t057/t057.java \
+ vmTestbase/jit/t/t058/t058.java \
+ vmTestbase/jit/t/t059/t059.java \
+ vmTestbase/jit/t/t060/t060.java \
+ vmTestbase/jit/t/t061/t061.java \
+ vmTestbase/jit/t/t062/t062.java \
+ vmTestbase/jit/t/t063/t063.java \
+ vmTestbase/jit/t/t064/t064.java \
+ vmTestbase/jit/t/t065/t065.java \
+ vmTestbase/jit/t/t066/t066.java \
+ vmTestbase/jit/t/t067/t067.java \
+ vmTestbase/jit/t/t068/t068.java \
+ vmTestbase/jit/t/t069/t069.java \
+ vmTestbase/jit/t/t070/t070.java \
+ vmTestbase/jit/t/t071/t071.java \
+ vmTestbase/jit/t/t072/t072.java \
+ vmTestbase/jit/t/t073/t073.java \
+ vmTestbase/jit/t/t074/t074.java \
+ vmTestbase/jit/t/t075/t075.java \
+ vmTestbase/jit/t/t076/t076.java \
+ vmTestbase/jit/t/t077/t077.java \
+ vmTestbase/jit/t/t078/t078.java \
+ vmTestbase/jit/t/t079/t079.java \
+ vmTestbase/jit/t/t080/t080.java \
+ vmTestbase/jit/t/t081/t081.java \
+ vmTestbase/jit/t/t086/t086.java \
+ vmTestbase/jit/t/t087/t087.java \
+ vmTestbase/jit/t/t088/t088.java \
+ vmTestbase/jit/t/t091/t091.java \
+ vmTestbase/jit/t/t093/t093.java \
+ vmTestbase/jit/t/t094/t094.java \
+ vmTestbase/jit/t/t095/t095.java \
+ vmTestbase/jit/t/t096/t096.java \
+ vmTestbase/jit/t/t098/t098.java \
+ vmTestbase/jit/t/t099/t099.java \
+ vmTestbase/jit/t/t100/t100.java \
+ vmTestbase/jit/t/t101/t101.java \
+ vmTestbase/jit/t/t102/t102.java \
+ vmTestbase/jit/t/t103/t103.java \
+ vmTestbase/jit/t/t104/t104.java \
+ vmTestbase/jit/t/t105/t105.java \
+ vmTestbase/jit/t/t106/t106.java \
+ vmTestbase/jit/t/t107/t107.java \
+ vmTestbase/jit/t/t108/TestDescription.java \
+ vmTestbase/jit/t/t109/TestDescription.java \
+ vmTestbase/jit/t/t110/TestDescription.java \
+ vmTestbase/jit/t/t111/TestDescription.java \
+ vmTestbase/jit/t/t112/TestDescription.java \
+ vmTestbase/jit/t/t113/TestDescription.java \
+ vmTestbase/jit/tiered/TestDescription.java \
+ vmTestbase/jit/verifier/VerifyInitLocal/VerifyInitLocal.java \
+ vmTestbase/jit/verifier/VerifyMergeStack/VerifyMergeStack.java \
+ vmTestbase/jit/wide/wide01/wide01.java \
+ vmTestbase/jit/wide/wide02/wide02.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc1/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc2/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc3/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc4/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc5/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc6/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc7/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc8/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc9/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc10/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc11/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc12/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc13/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc14/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc15/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc16/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc17/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc18/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc19/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc20/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc21/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc22/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc23/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc24/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc25/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc26/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc27/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc28/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc29/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc30/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc31/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc32/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc33/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc34/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc35/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc36/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc37/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc38/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc39/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc40/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc41/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc42/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc43/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc44/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc45/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc46/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc47/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc48/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc49/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc50/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc51/TestDescription.java \
+ vmTestbase/vm/jit/LongTransitions/nativeFnc52/TestDescription.java
--- a/test/hotspot/jtreg/compiler/c2/aarch64/TestVolatiles.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/compiler/c2/aarch64/TestVolatiles.java Wed Jul 11 19:30:26 2018 -0400
@@ -34,7 +34,7 @@
* TestUnsafeVolatileCAS}
* and <testtype> in {G1,
* CMS,
- * CMSCondCardMark,
+ * CMSCondMark,
* Serial,
* Parallel}
*/
@@ -287,7 +287,7 @@
"ret"
};
break;
- case "CMSCondCardMark":
+ case "CMSCondMark":
// a card mark volatile barrier should be generated
// before the card mark strb from the StoreCM and the
// storestore barrier from the StoreCM should be elided
@@ -305,11 +305,13 @@
case "CMS":
// a volatile card mark membar should not be generated
// before the card mark strb from the StoreCM and the
- // storestore barrier from the StoreCM should be elided
+ // storestore barrier from the StoreCM should be
+ // generated as "dmb ishst"
matches = new String[] {
"membar_release (elided)",
"stlrw",
- "storestore (elided)",
+ "storestore",
+ "dmb ishst",
"strb",
"membar_volatile (elided)",
"ret"
@@ -344,7 +346,7 @@
"ret"
};
break;
- case "CMSCondCardMark":
+ case "CMSCondMark":
// a card mark volatile barrier should be generated
// before the card mark strb from the StoreCM and the
// storestore barrier from the StoreCM should be elided
@@ -443,7 +445,7 @@
"ret"
};
break;
- case "CMSCondCardMark":
+ case "CMSCondMark":
// a card mark volatile barrier should be generated
// before the card mark strb from the StoreCM and the
// storestore barrier from the StoreCM should be elided
@@ -465,7 +467,8 @@
matches = new String[] {
"membar_release (elided)",
"cmpxchgw_acq",
- "storestore (elided)",
+ "storestore",
+ "dmb ishst",
"strb",
"membar_acquire (elided)",
"ret"
@@ -500,7 +503,7 @@
"ret"
};
break;
- case "CMSCondCardMark":
+ case "CMSCondMark":
// a card mark volatile barrier should be generated
// before the card mark strb from the StoreCM and the
// storestore barrier from the StoreCM should be elided
--- a/test/hotspot/jtreg/compiler/debug/TraceIterativeGVN.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/compiler/debug/TraceIterativeGVN.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/compiler/dependencies/MonomorphicObjectCall/java.base/java/lang/Object.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/compiler/dependencies/MonomorphicObjectCall/java.base/java/lang/Object.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 1994, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1994, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/compiler/eliminateAutobox/UnsignedLoads.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/compiler/eliminateAutobox/UnsignedLoads.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/compiler/intrinsics/string/TestHasNegatives.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/compiler/intrinsics/string/TestHasNegatives.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/compiler/intrinsics/string/TestStringIntrinsicRangeChecks.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/compiler/intrinsics/string/TestStringIntrinsicRangeChecks.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/compiler/intrinsics/string/TestStringUTF16IntrinsicRangeChecks.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/compiler/intrinsics/string/TestStringUTF16IntrinsicRangeChecks.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/compiler/loopopts/TestLimitLoadBelowLoopLimitCheck.java Wed Jul 11 19:30:26 2018 -0400
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 2018, Red Hat, Inc. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * @test
+ * @bug 8202123
+ * @summary C2 Crash in Node::in(unsigned int) const+0x14
+ *
+ * @run main/othervm TestLimitLoadBelowLoopLimitCheck
+ *
+ */
+
+public class TestLimitLoadBelowLoopLimitCheck {
+ public static int[] run(int[] arr) {
+ int max = 0;
+ for (int i : arr) {
+ if (i > max) {
+ max = i;
+ }
+ }
+
+ int[] counts = new int[10];
+
+ int i = 0;
+ for (i = 0; i < counts.length; i += 1) {
+ for (int j = 0; j < counts[i]; j += 1) {
+ }
+ }
+
+ while (i < max) {
+ for (int j = 0; j < counts[i]; j += 1) {
+ arr[0] = i;
+ }
+ }
+
+ return arr;
+ }
+
+ public static void main(String[] args) {
+ int[] arr = new int[1000 * 1000];
+
+ for (int i = 0; i < 100; i++) {
+ run(arr);
+ }
+ }
+}
--- a/test/hotspot/jtreg/compiler/patches/java.base/java/lang/Helper.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/compiler/patches/java.base/java/lang/Helper.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/compiler/stable/StableConfiguration.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/compiler/stable/StableConfiguration.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/compiler/stable/TestStableBoolean.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/compiler/stable/TestStableBoolean.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/compiler/stable/TestStableByte.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/compiler/stable/TestStableByte.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/compiler/stable/TestStableChar.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/compiler/stable/TestStableChar.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/compiler/stable/TestStableDouble.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/compiler/stable/TestStableDouble.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/compiler/stable/TestStableFloat.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/compiler/stable/TestStableFloat.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/compiler/stable/TestStableInt.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/compiler/stable/TestStableInt.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/compiler/stable/TestStableLong.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/compiler/stable/TestStableLong.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/compiler/stable/TestStableMemoryBarrier.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/compiler/stable/TestStableMemoryBarrier.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/compiler/stable/TestStableObject.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/compiler/stable/TestStableObject.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/compiler/stable/TestStableShort.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/compiler/stable/TestStableShort.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/compiler/stable/TestStableUByte.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/compiler/stable/TestStableUByte.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/compiler/stable/TestStableUShort.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/compiler/stable/TestStableUShort.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/compiler/unsafe/OpaqueAccesses.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/compiler/unsafe/OpaqueAccesses.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/compiler/unsafe/UnsafeGetConstantField.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/compiler/unsafe/UnsafeGetConstantField.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/compiler/unsafe/UnsafeGetStableArrayElement.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/compiler/unsafe/UnsafeGetStableArrayElement.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/gc/g1/TestHumongousRemsetsMatch.java Wed Jul 11 19:30:26 2018 -0400
@@ -0,0 +1,79 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test TestHumongousRemSetsMatch
+ * @bug 8205426
+ * @summary Test to make sure that humongous object remset states are in sync
+ * @key gc
+ * @requires vm.gc.G1
+ * @library /test/lib
+ * @build sun.hotspot.WhiteBox
+ * @run driver ClassFileInstaller sun.hotspot.WhiteBox
+ * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -Xmx512M -Xms512M -Xmn10M -XX:ParallelGCThreads=2 -XX:-UseDynamicNumberOfGCThreads -XX:+UseG1GC -XX:+WhiteBoxAPI -XX:G1HeapRegionSize=1M -XX:+VerifyAfterGC -Xlog:gc,gc+remset+tracking=trace TestHumongousRemsetsMatch
+ */
+
+import sun.hotspot.WhiteBox;
+
+public class TestHumongousRemsetsMatch {
+
+ // G1 at the moment uses one thread every this amount of regions.
+ private static final int WorkerThreadBoundary = 384;
+
+ private static final int ObjSizeInRegions = 17;
+ private static final int M = 1024 * 1024;
+ private static final int TypeArrayObjSize = ObjSizeInRegions * M / 4 /* sizeof(int) */ - 1024 /* > header size */;
+
+ public static void main(String[] args) throws Exception {
+ WhiteBox wb = WhiteBox.getWhiteBox();
+
+ for (int j = 0; j < 3; j++) {
+ wb.fullGC(); // Start with a clean slate
+
+ // It may happen that our 7-region sized humongous objects may just be "misaligned"
+ // so that they do not cross the region 384 boundary. Try to counter this by offsetting
+ // the humongous objects just a little.
+ Object alignmentFudge = new int[(j + 1) * M / 4 /* sizeof(int) */ - 1024];
+
+ // Fill the heap so that more than WorkerThreadBoundary regions are occupied with humongous objects
+ // and hopefully one of these objects crosses the region WorkerThreadBoundary boundary.
+ Object[] lotsOfHumongousObjects = new Object[(WorkerThreadBoundary / ObjSizeInRegions) + 3];
+
+ for (int i = 0; i < lotsOfHumongousObjects.length; i++) {
+ lotsOfHumongousObjects[i] = new int[TypeArrayObjSize];
+ }
+
+ wb.fullGC();
+
+ // Trigger a concurrent cycle and wait until the Remark pause
+ wb.g1StartConcMarkCycle();
+ while (wb.g1InConcurrentMark()) {
+ Thread.sleep(200);
+ }
+ wb.youngGC(); // Trigger verification error.
+
+ System.out.println(lotsOfHumongousObjects + " " + alignmentFudge);
+ }
+ }
+}
+
--- a/test/hotspot/jtreg/runtime/appcds/MoveJDKTest.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/runtime/appcds/MoveJDKTest.java Wed Jul 11 19:30:26 2018 -0400
@@ -108,6 +108,16 @@
out.shouldNotContain("shared class paths mismatch");
out.shouldNotContain("BOOT classpath mismatch");
}
+
+ // Test with no modules image in the <java home>/lib directory
+ renameModulesFile(java_home_dst);
+ {
+ ProcessBuilder pb = makeBuilder(java_home_dst + "/bin/java",
+ "-version");
+ OutputAnalyzer out = TestCommon.executeAndLog(pb, "exec-missing-modules");
+ out.shouldHaveExitValue(1);
+ out.shouldContain("Failed setting boot class path.");
+ }
}
// Do a cheap clone of the JDK. Most files can be sym-linked. However, $JAVA_HOME/bin/java and $JAVA_HOME/lib/.../libjvm.so"
@@ -144,6 +154,24 @@
}
}
+ static void renameModulesFile(String javaHome) throws Exception {
+ String modulesDir = javaHome + File.separator + "lib";
+ File origModules = new File(modulesDir, "modules");
+ if (!origModules.exists()) {
+ throw new RuntimeException("modules file not found");
+ }
+
+ File renamedModules = new File(modulesDir, "orig_modules");
+ if (renamedModules.exists()) {
+ throw new RuntimeException("found orig_modules unexpectedly");
+ }
+
+ boolean success = origModules.renameTo(renamedModules);
+ if (!success) {
+ throw new RuntimeException("rename modules file failed");
+ }
+ }
+
static ProcessBuilder makeBuilder(String... args) throws Exception {
System.out.print("[");
for (String s : args) {
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/runtime/jni/terminatedThread/TestTerminatedThread.java Wed Jul 11 19:30:26 2018 -0400
@@ -0,0 +1,112 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+import java.lang.management.*;
+
+/*
+ * @test
+ * @bug 8205878 8206954
+ * @requires os.family != "windows" & os.family != "solaris"
+ * @summary Basic test of Thread and ThreadMXBean queries on a natively
+ * attached thread that has failed to detach before terminating.
+ * @comment The native code only supports POSIX so no windows testing; also
+ * we have to skip solaris as a terminating thread that fails to
+ * detach will hit an infinite loop due to TLS destructor issues - see
+ * comments in JDK-8156708
+ * @run main/othervm/native TestTerminatedThread
+ */
+
+public class TestTerminatedThread {
+
+ static native Thread createTerminatedThread();
+
+ static {
+ System.loadLibrary("terminatedThread");
+ }
+
+ private static ThreadMXBean mbean = ManagementFactory.getThreadMXBean();
+
+ public static void main(String[] args) throws Throwable {
+
+ Thread t = createTerminatedThread();
+
+ if (!t.isAlive())
+ throw new Error("Thread is only supposed to terminate at native layer!");
+
+ // Now invoke the various functions on this thread to
+ // make sure the VM handles it okay. The focus is on
+ // functions with an underlying native OS implementation.
+ // Generally as long as we don't crash or throw unexpected
+ // exceptions then the test passes. In some cases we know exactly
+ // what a function should return and so can check that.
+
+ System.out.println("Working with thread: " + t +
+ ", in state: " + t.getState());
+
+ System.out.println("Calling suspend ...");
+ t.suspend();
+ System.out.println("Calling resume ...");
+ t.resume();
+ System.out.println("Calling getStackTrace ...");
+ StackTraceElement[] stack = t.getStackTrace();
+ System.out.println(java.util.Arrays.toString(stack));
+ if (stack.length != 0)
+ throw new Error("Terminated thread should have empty java stack trace");
+ System.out.println("Calling setName(\"NewName\") ...");
+ t.setName("NewName");
+ System.out.println("Calling interrupt ...");
+ t.interrupt();
+ System.out.println("Calling stop ...");
+ t.stop();
+
+ // Now the ThreadMXBean functions
+
+ if (mbean.isThreadCpuTimeSupported() &&
+ mbean.isThreadCpuTimeEnabled() ) {
+ System.out.println("Calling getThreadCpuTime ...");
+ long t1 = mbean.getThreadCpuTime(t.getId());
+ if (t1 != -1) {
+ throw new RuntimeException("Invalid ThreadCpuTime returned = " +
+ t1 + " expected = -1");
+ }
+ System.out.println("Okay: getThreadCpuTime() reported -1 as expected");
+ } else {
+ System.out.println("Skipping Thread CPU time test as it's not supported");
+ }
+
+ System.out.println("Calling getThreadUserTime ...");
+ long t1 = mbean.getThreadUserTime(t.getId());
+ if (t1 != -1) {
+ throw new RuntimeException("Invalid ThreadUserTime returned = " +
+ t1 + " expected = -1");
+ }
+ System.out.println("Okay: getThreadUserTime() reported -1 as expected");
+
+ System.out.println("Calling getThreadInfo ...");
+ ThreadInfo info = mbean.getThreadInfo(t.getId());
+ System.out.println(info);
+
+ System.out.println("Calling getThreadInfo with stack ...");
+ info = mbean.getThreadInfo(t.getId(), Integer.MAX_VALUE);
+ System.out.println(info);
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/runtime/jni/terminatedThread/libterminatedThread.c Wed Jul 11 19:30:26 2018 -0400
@@ -0,0 +1,96 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <pthread.h>
+#include <string.h>
+
+#include "jni.h"
+#include "jni_util.h"
+
+
+JavaVM* jvm;
+jobject nativeThread;
+
+static void * thread_start(void* unused) {
+ JNIEnv *env;
+ jclass class_id;
+ jmethodID method_id;
+ int res;
+
+ printf("Native thread is running and attaching as daemon ...\n");
+
+ res = (*jvm)->AttachCurrentThreadAsDaemon(jvm, (void **)&env, NULL);
+ if (res != JNI_OK) {
+ fprintf(stderr, "Test ERROR. Can't attach current thread: %d\n", res);
+ exit(1);
+ }
+
+ class_id = (*env)->FindClass (env, "java/lang/Thread");
+ if (class_id == NULL) {
+ fprintf(stderr, "Test ERROR. Can't load class Thread\n");
+ exit(1);
+ }
+
+ method_id = (*env)->GetStaticMethodID(env, class_id, "currentThread",
+ "()Ljava/lang/Thread;");
+ if (method_id == NULL) {
+ fprintf(stderr, "Test ERROR. Can't find method currentThread\n");
+ exit(1);
+ }
+
+ nativeThread = (*env)->CallStaticObjectMethod(env, class_id, method_id, NULL);
+
+ if ((*env)->ExceptionOccurred(env) != NULL) {
+ (*env)->ExceptionDescribe(env);
+ exit(1);
+ }
+ printf("Native thread terminating\n");
+
+ return NULL;
+}
+
+JNIEXPORT jobject JNICALL
+Java_TestTerminatedThread_createTerminatedThread
+(JNIEnv *env, jclass cls) {
+ pthread_t thread;
+ int res = (*env)->GetJavaVM(env, &jvm);
+ if (res != JNI_OK) {
+ fprintf(stderr, "Test ERROR. Can't extract JavaVM: %d\n", res);
+ exit(1);
+ }
+
+ if ((res = pthread_create(&thread, NULL, thread_start, NULL)) != 0) {
+ fprintf(stderr, "TEST ERROR: pthread_create failed: %s (%d)\n", strerror(res), res);
+ exit(1);
+ }
+
+ if ((res = pthread_join(thread, NULL)) != 0) {
+ fprintf(stderr, "TEST ERROR: pthread_join failed: %s (%d)\n", strerror(res), res);
+ exit(1);
+ }
+
+ return nativeThread;
+}
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/CheckRead.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/CheckRead.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/DiffCL_CheckRead.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/DiffCL_CheckRead.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/DiffCL_ExpQualOther.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/DiffCL_ExpQualOther.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/DiffCL_ExpQualToM1.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/DiffCL_ExpQualToM1.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/DiffCL_ExpUnqual.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/DiffCL_ExpUnqual.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/DiffCL_PkgNotExp.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/DiffCL_PkgNotExp.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/DiffCL_Umod.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/DiffCL_Umod.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/DiffCL_UmodUpkg.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/DiffCL_UmodUpkg.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/ExpQualOther.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/ExpQualOther.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/ExpQualToM1.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/ExpQualToM1.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/ExpQualToM1PrivateMethodIAE.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/ExpQualToM1PrivateMethodIAE.java Wed Jul 11 19:30:26 2018 -0400
@@ -4,9 +4,7 @@
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/ExpUnqual.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/ExpUnqual.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/ExportAllUnnamed.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/ExportAllUnnamed.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/PkgNotExp.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/PkgNotExp.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/Umod.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/Umod.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodDiffCL_ExpQualOther.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodDiffCL_ExpQualOther.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodDiffCL_ExpUnqual.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodDiffCL_ExpUnqual.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodDiffCL_PkgNotExp.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodDiffCL_PkgNotExp.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodDiffCL_Umod.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodDiffCL_Umod.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodDiffCL_UmodUpkg.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodDiffCL_UmodUpkg.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodUPkg.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodUPkg.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodUpkgDiffCL_ExpQualOther.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodUpkgDiffCL_ExpQualOther.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodUpkgDiffCL_NotExp.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodUpkgDiffCL_NotExp.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodUpkgDiffCL_Umod.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodUpkgDiffCL_Umod.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodUpkg_ExpQualOther.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodUpkg_ExpQualOther.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodUpkg_NotExp.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodUpkg_NotExp.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodUpkg_Umod.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/UmodUpkg_Umod.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/Umod_ExpQualOther.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/Umod_ExpQualOther.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/Umod_ExpUnqual.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/Umod_ExpUnqual.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/Umod_PkgNotExp.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/Umod_PkgNotExp.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/Umod_UmodUpkg.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/Umod_UmodUpkg.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/p1/c1.jasm Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/p1/c1.jasm Wed Jul 11 19:30:26 2018 -0400
@@ -4,9 +4,7 @@
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/AccessCheck/p2/c2.jasm Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/runtime/modules/AccessCheck/p2/c2.jasm Wed Jul 11 19:30:26 2018 -0400
@@ -4,9 +4,7 @@
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/ModuleStress/ModuleNonBuiltinCLMain.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/runtime/modules/ModuleStress/ModuleNonBuiltinCLMain.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/ModuleStress/ModuleSameCLMain.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/runtime/modules/ModuleStress/ModuleSameCLMain.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/runtime/modules/ModuleStress/ModuleStress.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/runtime/modules/ModuleStress/ModuleStress.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach024/java.base/java/util/TooManyListenersException.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach024/java.base/java/util/TooManyListenersException.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 1996, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/jni_interception/JI05/ji05t001/ji05t001.c Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/jni_interception/JI05/ji05t001/ji05t001.c Wed Jul 11 19:30:26 2018 -0400
@@ -333,8 +333,11 @@
checkIntercept(1, 0, 1); /* expected interceptions: 1 */
NSK_DISPLAY0("\n<<< TEST CASE #4) done\n");
- NSK_DISPLAY1("\nagent A: returning exit code %d\n",
+ NSK_DISPLAY1("\nagent A: detaching and returning exit code %d\n",
exitCode);
+ if ((res = JNI_ENV_PTR(vm)->DetachCurrentThread(JNI_ENV_ARG1(vm))) != 0) {
+ NSK_COMPLAIN1("TEST WARNING: agent A: DetachCurrentThread() returns: %d\n", res);
+ }
return exitCode;
}
@@ -393,8 +396,11 @@
redir[1] = 1;
- NSK_DISPLAY1("\nagent B: returning exit code %d\n",
+ NSK_DISPLAY1("\nagent B: detaching and returning exit code %d\n",
exitCode);
+ if ((res = JNI_ENV_PTR(vm)->DetachCurrentThread(JNI_ENV_ARG1(vm))) != 0) {
+ NSK_COMPLAIN1("TEST WARNING: agent B: DetachCurrentThread() returns: %d\n", res);
+ }
return exitCode;
}
/*********************/
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/jni_interception/JI06/ji06t001/ji06t001.c Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/jni_interception/JI06/ji06t001/ji06t001.c Wed Jul 11 19:30:26 2018 -0400
@@ -62,6 +62,18 @@
#define TRIES 30
#define MAX_THREADS 5
+// Helper for thread detach and terminate
+#define THREAD_return(status) \
+ do { \
+ int res = JNI_ENV_PTR(vm)->DetachCurrentThread(JNI_ENV_ARG1(vm)); \
+ if (res != 0) \
+ NSK_COMPLAIN1("TEST WARNING: DetachCurrentThread() returns: %d\n", res); \
+ else \
+ NSK_DISPLAY0("Detaching thread ...\n"); \
+ return status; \
+ } while (0)
+
+
static const char *javaField = "_ji06t001a";
static const char *classSig =
"Lnsk/jvmti/scenarios/jni_interception/JI06/ji06t001a;";
@@ -225,16 +237,16 @@
thrStarted[indx-1] = 1; /* the thread is started */
if (enterMonitor(env, "waitingThread") == STATUS_FAILED)
- return STATUS_FAILED;
+ THREAD_return(STATUS_FAILED);
if (verbose)
printf("waitingThread: thread #%d entered the monitor\n",
indx);
if (exitMonitor(env, "waitingThread") == STATUS_FAILED)
- return STATUS_FAILED;
+ THREAD_return(STATUS_FAILED);
NSK_DISPLAY2("waitingThread: thread #%d exits the monitor\n\treturning %d\n",
indx, exitCode);
- return exitCode;
+ THREAD_return(exitCode);
}
static int ownerThread(void *context) {
@@ -254,7 +266,7 @@
NSK_DISPLAY0("ownerThread: trying to enter the monitor ...\n");
if (enterMonitor(env, "ownerThread") == STATUS_FAILED)
- return STATUS_FAILED;
+ THREAD_return(STATUS_FAILED);
monEntered = 1; /* the monitor has been entered */
NSK_DISPLAY1("ownerThread: entered the monitor: monEntered=%d\n\
@@ -272,12 +284,12 @@
} while(releaseMon != 1);
if (exitMonitor(env, "ownerThread") == STATUS_FAILED)
- return STATUS_FAILED;
+ THREAD_return(STATUS_FAILED);
NSK_DISPLAY1("ownerThread: exits the monitor\n\treturning %d\n",
exitCode);
- return exitCode;
+ THREAD_return(exitCode);
}
static int redirectorThread(void *context) {
@@ -301,7 +313,7 @@
NSK_DISPLAY1("redirectorThread: the MonitorEnter() redirected\n\treturning %d\n",
exitCode);
- return exitCode;
+ THREAD_return(exitCode);
}
/*********************/
--- a/test/hotspot/jtreg/vmTestbase/vm/mlvm/tools/Indify.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/hotspot/jtreg/vmTestbase/vm/mlvm/tools/Indify.java Wed Jul 11 19:30:26 2018 -0400
@@ -4,9 +4,7 @@
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
--- a/test/jdk/ProblemList.txt Mon Jul 09 15:24:43 2018 -0400
+++ b/test/jdk/ProblemList.txt Wed Jul 11 19:30:26 2018 -0400
@@ -128,7 +128,7 @@
java/awt/dnd/BadSerializaionTest/BadSerializationTest.java 8039082 generic-all
java/awt/dnd/MissingEventsOnModalDialog/MissingEventsOnModalDialogTest.java 8164464 linux-all,macosx-all
java/awt/dnd/URIListBetweenJVMsTest/URIListBetweenJVMsTest.html 8171510 macosx-all
-java/awt/dnd/7171812/bug7171812.java 8041447 macosx-all
+javax/swing/dnd/7171812/bug7171812.java 8041447 macosx-all
java/awt/Focus/ChoiceFocus/ChoiceFocus.java 8169103 windows-all,macosx-all
java/awt/Focus/ClearLwQueueBreakTest/ClearLwQueueBreakTest.java 8198618 macosx-all
java/awt/Focus/ConsumeNextKeyTypedOnModalShowTest/ConsumeNextKeyTypedOnModalShowTest.java 6986252 macosx-all
@@ -196,7 +196,6 @@
java/awt/TrayIcon/ActionEventTest/ActionEventTest.java 8150540 windows-all
java/awt/TrayIcon/ModalityTest/ModalityTest.java 8150540 windows-all,macosx-all
java/awt/TrayIcon/MouseEventMask/MouseEventMaskTest.java 8150540 windows-all
-java/awt/TrayIcon/MouseEventMask/MouseEventMovedTest.java 8150540 windows-all
java/awt/TrayIcon/MouseMovedTest/MouseMovedTest.java 8150540 windows-all
java/awt/TrayIcon/SecurityCheck/FunctionalityCheck/FunctionalityCheck.java 8150540 windows-all
java/awt/TrayIcon/TrayIconEventModifiers/TrayIconEventModifiersTest.java 8150540 windows-all
@@ -244,7 +243,6 @@
sun/java2d/SunGraphics2D/SourceClippingBlitTest/SourceClippingBlitTest.java 8196185 generic-all
sun/java2d/pipe/InterpolationQualityTest.java 8171303 windows-all,linux-all,macosx-all
java/awt/FullScreen/DisplayChangeVITest/DisplayChangeVITest.java 8169469 windows-all
-java/awt/Graphics/ClippedCopyAreaTest/ClippedCopyAreaTest.java 8196436 linux-all
java/awt/Graphics2D/DrawString/DrawRotatedStringUsingRotatedFont.java 8197796 generic-all
java/awt/TextArea/TextAreaScrolling/TextAreaScrolling.java 8196300 windows-all
java/awt/print/PrinterJob/Margins.java 8196301 windows-all
@@ -399,8 +397,6 @@
java/awt/Mouse/EnterExitEvents/FullscreenEnterEventTest.java 8051455 macosx-all
java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Standard.java 7124407 macosx-all
java/awt/Mouse/RemovedComponentMouseListener/RemovedComponentMouseListener.java 8157170 macosx-all
-java/awt/Focus/ForwardingFocusToProxyMotifTest/ForwardingFocusToProxyMotifTest.java 8196436 linux-all
-java/awt/Window/OverrideRedirectRemoved/ChildWindowProblem.java 8196438 linux-all
java/awt/Modal/ToBack/ToBackAppModal1Test.java 8196441 linux-all,macosx-all
java/awt/Modal/ToBack/ToBackAppModal2Test.java 8196441 linux-all,macosx-all
java/awt/Modal/ToBack/ToBackAppModal3Test.java 8196441 linux-all,macosx-all
@@ -475,8 +471,6 @@
java/awt/Focus/WindowUpdateFocusabilityTest/WindowUpdateFocusabilityTest.html 8202926 linux-all
java/awt/datatransfer/ConstructFlavoredObjectTest/ConstructFlavoredObjectTest.java 8202860 linux-all
java/awt/dnd/DisposeFrameOnDragCrash/DisposeFrameOnDragTest.java 8202790 macosx-all,linux-all
-java/awt/Clipboard/NoDataConversionFailureTest/NoDataConversionFailureTest.html 8202791 macosx-all
-java/awt/Clipboard/ImageTransferTest/ImageTransferTest.html 8202792 macosx-all
java/awt/FileDialog/FilenameFilterTest/FilenameFilterTest.html 8202882 linux-all
java/awt/MenuBar/8007006/bug8007006.java 8202886 macosx-all
java/awt/Frame/FramesGC/FramesGC.java 8079069 macosx-all
@@ -608,7 +602,6 @@
javax/net/ssl/DTLS/RespondToRetransmit.java 8169086 macosx-x64
javax/net/ssl/DTLS/CipherSuite.java 8202059 macosx-x64
-sun/security/krb5/auto/UnboundSSL.java 8180265 windows-all
sun/security/provider/KeyStore/DKSTest.sh 8180266 windows-all
sun/security/pkcs11/Cipher/ReinitCipher.java 8204203 windows-all
@@ -714,7 +707,6 @@
javax/swing/JSplitPane/4201995/bug4201995.java 8079127 generic-all
javax/swing/JTree/DnD/LastNodeLowerHalfDrop.java 8159131 linux-all
javax/swing/JTree/4633594/JTreeFocusTest.java 8173125 macosx-all
-javax/swing/JTree/8003400/Test8003401.java 8011259 macosx-all,linux-all
javax/swing/JFileChooser/8041694/bug8041694.java 8196302 windows-all
javax/swing/AbstractButton/6711682/bug6711682.java 8060765 windows-all,macosx-all
javax/swing/Action/8133039/bug8133039.java 8196089 windows-all,macosx-all
@@ -795,7 +787,7 @@
javax/swing/PopupFactory/8048506/bug8048506.java 8202660 windows-all
javax/swing/JTextArea/TextViewOOM/TextViewOOM.java 8167355 generic-all
javax/swing/JEditorPane/8195095/ImageViewTest.java 8202656 windows-all
-javax/swing/text/Utilities/8142966/SwingFontMetricsTest.java 8202663 windows-all
+javax/swing/text/Utilities/8142966/SwingFontMetricsTest.java 8199529 windows-all
javax/swing/JPopupMenu/8075063/ContextMenuScrollTest.java 202880 linux-all
javax/swing/dnd/8139050/NativeErrorsInTableDnD.java 8202765 macosx-all,linux-all
javax/swing/Popup/TaskbarPositionTest.java 8065097 macosx-all,linux-all
@@ -816,9 +808,7 @@
# core_tools
tools/pack200/CommandLineTests.java 8059906 generic-all
-
-tools/jimage/JImageExtractTest.java 8198405,8198819 generic-all
-tools/jimage/JImageListTest.java 8198405 windows-all
+tools/jimage/JImageListTest.java 8206445 windows-all
############################################################################
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/crypto/provider/Cipher/ChaCha20/unittest/ChaCha20CipherUnitTest.java Wed Jul 11 19:30:26 2018 -0400
@@ -0,0 +1,252 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8153029
+ * @library /test/lib
+ * @run main ChaCha20CipherUnitTest
+ * @summary Unit test for com.sun.crypto.provider.ChaCha20Cipher.
+ */
+
+import java.nio.ByteBuffer;
+import java.security.AlgorithmParameters;
+import java.security.InvalidAlgorithmParameterException;
+import java.security.NoSuchAlgorithmException;
+import java.security.SecureRandom;
+import java.util.Arrays;
+
+import javax.crypto.Cipher;
+import javax.crypto.spec.ChaCha20ParameterSpec;
+import javax.crypto.spec.IvParameterSpec;
+import javax.crypto.spec.SecretKeySpec;
+
+import jdk.test.lib.Utils;
+
+public class ChaCha20CipherUnitTest {
+
+ private static final byte[] NONCE
+ = Utils.toByteArray("012345670123456701234567");
+ private static final SecretKeySpec KEY = new SecretKeySpec(
+ Utils.toByteArray(
+ "0123456701234567012345670123456701234567012345670123456701234567"),
+ "ChaCha20");
+ private static final ChaCha20ParameterSpec CHACHA20_PARAM_SPEC
+ = new ChaCha20ParameterSpec(NONCE, 0);
+ private static final IvParameterSpec IV_PARAM_SPEC
+ = new IvParameterSpec(NONCE);
+
+ public static void main(String[] args) throws Exception {
+ testTransformations();
+ testInit();
+ testAEAD();
+ testGetBlockSize();
+ }
+
+ private static void testTransformations() throws Exception {
+ System.out.println("== transformations ==");
+
+ checkTransformation("ChaCha20", true);
+ checkTransformation("ChaCha20/None/NoPadding", true);
+ checkTransformation("ChaCha20-Poly1305", true);
+ checkTransformation("ChaCha20-Poly1305/None/NoPadding", true);
+
+ checkTransformation("ChaCha20/ECB/NoPadding", false);
+ checkTransformation("ChaCha20/None/PKCS5Padding", false);
+ checkTransformation("ChaCha20-Poly1305/ECB/NoPadding", false);
+ checkTransformation("ChaCha20-Poly1305/None/PKCS5Padding", false);
+ }
+
+ private static void checkTransformation(String transformation,
+ boolean expected) throws Exception {
+ try {
+ Cipher.getInstance(transformation);
+ if (!expected) {
+ throw new RuntimeException(
+ "Unexpected transformation: " + transformation);
+ } else {
+ System.out.println("Expected transformation: " + transformation);
+ }
+ } catch (NoSuchAlgorithmException e) {
+ if (!expected) {
+ System.out.println("Unexpected transformation: " + transformation);
+ } else {
+ throw new RuntimeException("Unexpected fail: " + transformation, e);
+ }
+ }
+ }
+
+ private static void testInit() throws Exception {
+ testInitOnCrypt(Cipher.ENCRYPT_MODE);
+ testInitOnCrypt(Cipher.DECRYPT_MODE);
+ testInitOnWrap(Cipher.WRAP_MODE);
+ testInitOnWrap(Cipher.UNWRAP_MODE);
+ }
+
+ private static void testInitOnCrypt(int opMode) throws Exception {
+ System.out.println("== init (" + getOpModeName(opMode) + ") ==");
+
+ Cipher.getInstance("ChaCha20").init(opMode, KEY, CHACHA20_PARAM_SPEC);
+ Cipher.getInstance("ChaCha20").init(opMode, KEY,
+ CHACHA20_PARAM_SPEC, new SecureRandom());
+
+ try {
+ Cipher.getInstance("ChaCha20").init(opMode, KEY, IV_PARAM_SPEC);
+ throw new RuntimeException("ChaCha20ParameterSpec is needed");
+ } catch (InvalidAlgorithmParameterException e) {
+ System.out.println("Expected " + e);
+ }
+
+ Cipher.getInstance("ChaCha20-Poly1305").init(opMode, KEY,
+ IV_PARAM_SPEC);
+ Cipher.getInstance("ChaCha20-Poly1305").init(opMode, KEY,
+ IV_PARAM_SPEC, new SecureRandom());
+
+ try {
+ Cipher.getInstance("ChaCha20-Poly1305").init(opMode, KEY,
+ CHACHA20_PARAM_SPEC);
+ throw new RuntimeException("IvParameterSpec is needed");
+ } catch (InvalidAlgorithmParameterException e) {
+ System.out.println("Expected " + e);
+ }
+
+ AlgorithmParameters algorithmParameters =
+ AlgorithmParameters.getInstance("ChaCha20-Poly1305");
+ algorithmParameters.init(
+ new byte[] { 4, 12, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8 });
+ try {
+ Cipher.getInstance("ChaCha20").init(opMode, KEY,
+ algorithmParameters, new SecureRandom());
+ throw new RuntimeException(
+ "ChaCha20 cipher doesn't accept AlgorithmParameters");
+ } catch (InvalidAlgorithmParameterException e) {
+ System.out.println("Expected " + e);
+ }
+ Cipher.getInstance("ChaCha20-Poly1305").init(opMode, KEY,
+ algorithmParameters, new SecureRandom());
+ }
+
+ private static void testInitOnWrap(int opMode) throws Exception {
+ String opModeName = getOpModeName(opMode);
+ System.out.println("== init (" + opModeName + ") ==");
+
+ Cipher chacha20Cipher = Cipher.getInstance("ChaCha20");
+ try {
+ chacha20Cipher.init(opMode, KEY, new SecureRandom());
+ throw new RuntimeException(
+ "Unexpected opration mode: " + opModeName);
+ } catch (Exception e) {
+ if (e instanceof UnsupportedOperationException) {
+ System.out.println("Expected " + e);
+ } else {
+ throw new RuntimeException("Unexpected exception: " + e);
+ }
+ }
+ }
+
+ private static void testAEAD() throws Exception {
+ byte[] expectedPlainttext = Utils.toByteArray("01234567");
+ byte[] ciphertext = testUpdateAAD(Cipher.ENCRYPT_MODE, expectedPlainttext);
+ byte[] plaintext = testUpdateAAD(Cipher.DECRYPT_MODE, ciphertext);
+ if (!Arrays.equals(plaintext, expectedPlainttext)) {
+ System.out.println("ciphertext: " + Arrays.toString(ciphertext));
+ System.out.println("plaintext: " + Arrays.toString(plaintext));
+ throw new RuntimeException("AEAD failed");
+ }
+ }
+
+ private static byte[] testUpdateAAD(int opMode, byte[] input)
+ throws Exception {
+ String opModeName = getOpModeName(opMode);
+ System.out.println("== updateAAD (" + opModeName + ") ==");
+
+ byte[] aad = Utils.toByteArray("0000");
+ ByteBuffer aadBuf = ByteBuffer.wrap(aad);
+
+ Cipher cipher = Cipher.getInstance("ChaCha20");
+ cipher.init(opMode, KEY, CHACHA20_PARAM_SPEC);
+ try {
+ cipher.updateAAD(aadBuf);
+ throw new RuntimeException("ChaCha20 cipher cannot apply AAD");
+ } catch (IllegalStateException e) {
+ System.out.println("Expected " + e);
+ }
+
+ Cipher aeadCipher = Cipher.getInstance("ChaCha20-Poly1305");
+ try {
+ aeadCipher.updateAAD(aadBuf);
+ throw new RuntimeException(
+ "Cannot update AAD on uninitialized Cipher");
+ } catch (IllegalStateException e) {
+ System.out.println("Expected " + e);
+ }
+ aeadCipher.init(opMode, KEY, IV_PARAM_SPEC);
+ aeadCipher.update(input);
+ try {
+ aeadCipher.updateAAD(aad);
+ throw new RuntimeException(
+ "Cannot update AAD after plaintext/cipertext update");
+ } catch (IllegalStateException e) {
+ System.out.println("Expected " + e);
+ }
+
+ aeadCipher = Cipher.getInstance("ChaCha20-Poly1305");
+ aeadCipher.init(opMode, KEY, IV_PARAM_SPEC);
+ aeadCipher.updateAAD(aadBuf);
+ return aeadCipher.doFinal(input);
+ }
+
+ private static void testGetBlockSize() throws Exception {
+ testGetBlockSize(Cipher.ENCRYPT_MODE);
+ testGetBlockSize(Cipher.DECRYPT_MODE);
+ }
+
+ private static void testGetBlockSize(int opMode) throws Exception {
+ System.out.println("== getBlockSize (" + getOpModeName(opMode) + ") ==");
+
+ Cipher cipher = Cipher.getInstance("ChaCha20");
+ cipher.init(opMode, KEY, CHACHA20_PARAM_SPEC);
+ if (cipher.getBlockSize() != 0) {
+ throw new RuntimeException("Block size must be 0");
+ }
+ }
+
+ private static String getOpModeName(int opMode) {
+ switch (opMode) {
+ case Cipher.ENCRYPT_MODE:
+ return "ENCRYPT";
+
+ case Cipher.DECRYPT_MODE:
+ return "DECRYPT";
+
+ case Cipher.WRAP_MODE:
+ return "WRAP";
+
+ case Cipher.UNWRAP_MODE:
+ return "UNWRAP";
+
+ default:
+ return "";
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/crypto/provider/Cipher/ChaCha20/unittest/ChaCha20Poly1305ParametersUnitTest.java Wed Jul 11 19:30:26 2018 -0400
@@ -0,0 +1,148 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8153029
+ * @library /test/lib
+ * @run main ChaCha20Poly1305ParametersUnitTest
+ * @summary Unit test for com.sun.crypto.provider.ChaCha20Poly1305Parameters.
+ */
+
+import java.io.IOException;
+import java.security.AlgorithmParameters;
+import java.security.spec.InvalidParameterSpecException;
+import java.util.Arrays;
+
+import javax.crypto.spec.ChaCha20ParameterSpec;
+import javax.crypto.spec.IvParameterSpec;
+
+public class ChaCha20Poly1305ParametersUnitTest {
+
+ private static final String ALGORITHM = "ChaCha20-Poly1305";
+
+ private static final byte[] NONCE = {
+ 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8 };
+ private static final byte[] PARAM = {
+ 4, 12, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8 };
+
+ private static final byte[] BAD_NONCE = {
+ 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
+ private static final byte[] BAD_PARAM = {
+ 4, 13, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
+
+ public static void main(String[] args) throws Exception {
+ testInit();
+ testGetParameterSpec();
+ testGetEncoded();
+ }
+
+ private static void testInit() throws Exception {
+ System.out.println("== init ==");
+
+ AlgorithmParameters ap = AlgorithmParameters.getInstance(ALGORITHM);
+ ap.init(new IvParameterSpec(NONCE));
+ System.out.println("AlgorithmParameters: " + ap);
+
+ ap = AlgorithmParameters.getInstance(ALGORITHM);
+ ap.init(PARAM);
+
+ ap = AlgorithmParameters.getInstance(ALGORITHM);
+ try {
+ ap.init(new ChaCha20ParameterSpec(NONCE, 0));
+ throw new RuntimeException("IvParameterSpec is needed");
+ } catch (InvalidParameterSpecException e) {
+ System.out.println("Expected " + e);
+ }
+
+ ap = AlgorithmParameters.getInstance(ALGORITHM);
+ try {
+ ap.init(new IvParameterSpec(BAD_NONCE));
+ throw new RuntimeException("Nonce must be 96 bits in length");
+ } catch (InvalidParameterSpecException e) {
+ System.out.println("Expected " + e);
+ }
+
+ ap = AlgorithmParameters.getInstance(ALGORITHM);
+ try {
+ ap.init(BAD_PARAM);
+ throw new RuntimeException("Nonce must be 96 bits in length");
+ } catch (IOException e) {
+ System.out.println("Expected " + e);
+ }
+ }
+
+ private static void testGetParameterSpec() throws Exception {
+ System.out.println("== getParameterSpec ==");
+
+ AlgorithmParameters ap = AlgorithmParameters.getInstance(ALGORITHM);
+ ap.init(PARAM);
+
+ IvParameterSpec paramSpec = ap.getParameterSpec(IvParameterSpec.class);
+ byte[] nonce = paramSpec.getIV();
+ System.out.println("Nonce: " + Arrays.toString(nonce));
+ Arrays.equals(nonce, NONCE);
+
+ try {
+ ap.getParameterSpec(ChaCha20ParameterSpec.class);
+ throw new RuntimeException("IvParameterSpec is needed");
+ } catch (InvalidParameterSpecException e) {
+ System.out.println("Expected " + e);
+ }
+ }
+
+ private static void testGetEncoded() throws Exception {
+ System.out.println("== getEncoded ==");
+
+ AlgorithmParameters ap = AlgorithmParameters.getInstance(ALGORITHM);
+ ap.init(PARAM);
+
+ byte[] defaultFormatEncoded = ap.getEncoded();
+ System.out.println("Default format encoding: "
+ + Arrays.toString(defaultFormatEncoded));
+ if (!Arrays.equals(defaultFormatEncoded, PARAM)) {
+ throw new RuntimeException("Default format encoding failed");
+ }
+
+ byte[] asn1FormatEncoded = ap.getEncoded("ASN.1");
+ System.out.println("ASN.1 format encoding: "
+ + Arrays.toString(asn1FormatEncoded));
+ if (!Arrays.equals(asn1FormatEncoded, PARAM)) {
+ throw new RuntimeException("ASN.1 format encoding failed");
+ }
+
+ byte[] nullFormatEncoded = ap.getEncoded(null);
+ System.out.println("Null format encoding: "
+ + Arrays.toString(nullFormatEncoded));
+ if (!Arrays.equals(nullFormatEncoded, PARAM)) {
+ throw new RuntimeException("Null format encoding failed");
+ }
+
+ try {
+ ap.getEncoded("BAD");
+ throw new RuntimeException("Format must be ASN.1");
+ } catch (IOException e) {
+ System.out.println("Expected " + e);
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/crypto/provider/Cipher/ChaCha20/unittest/Poly1305UnitTestDriver.java Wed Jul 11 19:30:26 2018 -0400
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8153029
+ * @modules java.base/com.sun.crypto.provider
+ * @run main java.base/com.sun.crypto.provider.Poly1305UnitTest
+ * @summary Unit test for com.sun.crypto.provider.Poly1305.
+ */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/crypto/provider/Cipher/ChaCha20/unittest/java.base/com/sun/crypto/provider/Poly1305UnitTest.java Wed Jul 11 19:30:26 2018 -0400
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package com.sun.crypto.provider;
+
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+
+import javax.crypto.spec.SecretKeySpec;
+
+public class Poly1305UnitTest {
+
+ public static void main(String[] args) throws Exception {
+ byte[] key = new byte[] {
+ 28, -110, 64, -91, -21, 85, -45, -118,
+ -13, 51, -120, -122, 4, -10, -75, -16,
+ 71, 57, 23, -63, 64, 43, -128, 9,
+ -99, -54, 92, -68, 32, 112, 117, -64
+ };
+
+ Poly1305 authenticator = new Poly1305();
+ if (authenticator.engineGetMacLength() != 16) {
+ throw new RuntimeException(
+ "The length of Poly1305 MAC must be 16-bytes.");
+ }
+
+ authenticator.engineInit(new SecretKeySpec(key, 0, 32,
+ "Poly1305"), null);
+
+ byte[] message = new byte[] {
+ 39, 84, 119, 97, 115, 32, 98, 114,
+ 105, 108, 108, 105, 103, 44, 32, 97,
+ 110, 100, 32, 116, 104, 101, 32, 115,
+ 108, 105, 116, 104, 121, 32, 116, 111,
+ 118, 101, 115, 10, 68, 105, 100, 32,
+ 103, 121, 114, 101, 32, 97, 110, 100,
+ 32, 103, 105, 109, 98, 108, 101, 32,
+ 105, 110, 32, 116, 104, 101, 32, 119,
+ 97, 98, 101, 58, 10, 65, 108, 108,
+ 32, 109, 105, 109, 115, 121, 32, 119,
+ 101, 114, 101, 32, 116, 104, 101, 32,
+ 98, 111, 114, 111, 103, 111, 118, 101,
+ 115, 44, 10, 65, 110, 100, 32, 116,
+ 104, 101, 32, 109, 111, 109, 101, 32,
+ 114, 97, 116, 104, 115, 32, 111, 117,
+ 116, 103, 114, 97, 98, 101, 46
+ };
+
+ authenticator.engineUpdate(
+ ByteBuffer.wrap(Arrays.copyOfRange(message, 0, 8)));
+ authenticator.engineUpdate(message, 8, 104);
+ authenticator.engineUpdate(message, 112, 7);
+ for (int i = 119; i < message.length; i++) {
+ authenticator.engineUpdate(message[i]);
+ }
+
+ byte[] tag = authenticator.engineDoFinal();
+ byte[] expectedTag = new byte[] {
+ 69, 65, 102, -102, 126, -86, -18, 97,
+ -25, 8, -36, 124, -68, -59, -21, 98
+ };
+ if (!Arrays.equals(tag, expectedTag)) {
+ throw new RuntimeException(
+ "Unexpected tag: " + Arrays.toString(tag));
+ }
+ }
+}
--- a/test/jdk/com/sun/jndi/dns/Test6991580.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/jdk/com/sun/jndi/dns/Test6991580.java Wed Jul 11 19:30:26 2018 -0400
@@ -33,10 +33,11 @@
/*
* @test
* @bug 6991580 8080108 8133035
- * @requires os.family != "windows"
* @summary IPv6 Nameservers in resolv.conf throws NumberFormatException
* @modules java.desktop
* jdk.naming.dns/com.sun.jndi.dns
+ * @requires os.family != "windows"
+ * @build IPv6NameserverPlatformParsingTest
* @run main/manual Test6991580
*/
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/security/auth/UnixPrincipalHashCode.java Wed Jul 11 19:30:26 2018 -0400
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * @test
+ * @bug 8198352
+ * @requires os.family != "windows"
+ * @run main/othervm/policy=uphc.policy
+ * -Djava.security.auth.login.config=uphc.conf
+ * UnixPrincipalHashCode
+ * @summary java.util.MissingResourceException: sun.security.util.AuthResources
+ * when trying to use com.sun.security.auth.module.UnixLoginModule
+ */
+
+import javax.security.auth.Subject;
+import javax.security.auth.login.LoginContext;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.security.PrivilegedAction;
+import java.util.List;
+
+public class UnixPrincipalHashCode {
+ public static void main(java.lang.String[] args) throws Exception {
+ Files.write(Path.of("uphc.conf"), List.of(
+ "entry {",
+ " com.sun.security.auth.module.UnixLoginModule required;",
+ "};"));
+ LoginContext lc = new LoginContext("entry");
+ lc.login();
+ Subject subject = lc.getSubject();
+ PrivilegedAction action = () -> {
+ System.out.println(subject);
+ return null;
+ };
+ Subject.doAsPrivileged(subject, action, null);
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/com/sun/security/auth/uphc.policy Wed Jul 11 19:30:26 2018 -0400
@@ -0,0 +1,6 @@
+grant {
+ permission java.io.FilePermission "./-", "write";
+ permission javax.security.auth.AuthPermission "modifyPrincipals";
+ permission javax.security.auth.AuthPermission "createLoginContext";
+ permission javax.security.auth.AuthPermission "doAsPrivileged";
+};
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/beans/Beans/TypoInBeanDescription.java Wed Jul 11 19:30:26 2018 -0400
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.beans.BeanInfo;
+import java.beans.IntrospectionException;
+import java.beans.Introspector;
+import java.io.IOException;
+import java.net.URI;
+import java.nio.file.FileSystem;
+import java.nio.file.FileSystems;
+import java.nio.file.FileVisitResult;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.SimpleFileVisitor;
+import java.nio.file.attribute.BasicFileAttributes;
+
+/**
+ * @test
+ * @bug 8205454
+ */
+public final class TypoInBeanDescription {
+
+ private static final String[] typos = {"&", "<", ">", """};
+
+ public static void main(final String[] args) throws IOException {
+ FileSystem fs = FileSystems.getFileSystem(URI.create("jrt:/"));
+ Files.walkFileTree(fs.getPath("/modules/java.desktop"), new SimpleFileVisitor<>() {
+ @Override
+ public FileVisitResult visitFile(Path file,
+ BasicFileAttributes attrs) {
+ file = file.subpath(2, file.getNameCount());
+ String name = file.toString();
+ if (name.endsWith(".class")) {
+ name = name.substring(0, name.indexOf(".")).replace('/', '.');
+
+ final Class<?> type;
+ try {
+ type = Class.forName(name);
+ } catch (Throwable e) {
+ return FileVisitResult.CONTINUE;
+ }
+ final BeanInfo beanInfo;
+ try {
+ beanInfo = Introspector.getBeanInfo(type);
+ } catch (IntrospectionException e) {
+ return FileVisitResult.CONTINUE;
+ }
+ test(beanInfo);
+ }
+ return FileVisitResult.CONTINUE;
+ }
+ });
+ }
+
+ private static void test(final BeanInfo beanInfo) {
+ for (var pd : beanInfo.getPropertyDescriptors()) {
+ String d = pd.getShortDescription();
+ String n = pd.getName();
+ String dn = pd.getDisplayName();
+ for (String typo : typos) {
+ if (d.contains(typo) || n.contains(typo) || dn.contains(typo)) {
+ throw new RuntimeException("Wrong name: " + beanInfo.getBeanDescriptor());
+ }
+ }
+ }
+ }
+}
--- a/test/jdk/java/lang/Class/GetPackageBootLoaderChildLayer.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/jdk/java/lang/Class/GetPackageBootLoaderChildLayer.java Wed Jul 11 19:30:26 2018 -0400
@@ -23,6 +23,7 @@
/**
* @test
+ * @requires !vm.graal.enabled
* @modules jdk.attach
* @run main/othervm --limit-modules jdk.attach -Djdk.attach.allowAttachSelf
* GetPackageBootLoaderChildLayer
--- a/test/jdk/java/net/httpclient/CancelledResponse.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/jdk/java/net/httpclient/CancelledResponse.java Wed Jul 11 19:30:26 2018 -0400
@@ -339,9 +339,11 @@
Thread.sleep(10);
}
out.println("sent " + s);
- } catch (SSLException | SocketException x) {
- // if SSL then we might get a "Broken Pipe", otherwise
- // a "Socket closed".
+ } catch (SSLException | SocketException | RuntimeException x) {
+ // if SSL then we might get a "Broken Pipe", or a
+ // RuntimeException wrapping an InvalidAlgorithmParameterException
+ // (probably if the channel is closed during the handshake),
+ // otherwise we get a "Socket closed".
boolean expected = cancelled.get();
if (sent > 0 && expected) {
System.out.println("Connection closed by peer as expected: " + x);
@@ -349,6 +351,7 @@
} else {
System.out.println("Unexpected exception (sent="
+ sent + ", cancelled=" + expected + "): " + x);
+ if (x instanceof RuntimeException) throw (RuntimeException) x;
throw new RuntimeException(x);
}
} catch (IOException | InterruptedException e) {
--- a/test/jdk/java/net/httpclient/MockServer.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/jdk/java/net/httpclient/MockServer.java Wed Jul 11 19:30:26 2018 -0400
@@ -284,7 +284,7 @@
}
try {
socket.close();
- } catch (IOException e) {}
+ } catch (Throwable e) {}
synchronized (removals) {
removals.add(this);
}
@@ -339,7 +339,7 @@
closed = true;
try {
ss.close();
- } catch (IOException e) {
+ } catch (Throwable e) {
e.printStackTrace();
}
for (Connection c : sockets) {
--- a/test/jdk/java/net/httpclient/ShortResponseBody.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/jdk/java/net/httpclient/ShortResponseBody.java Wed Jul 11 19:30:26 2018 -0400
@@ -264,19 +264,47 @@
// can be used to prolong request body publication
static final class InfiniteInputStream extends InputStream {
+ int count = 0;
+ int k16 = 0;
@Override
public int read() throws IOException {
+ if (++count == 1) {
+ System.out.println("Start sending 1 byte");
+ }
+ if (count > 16 * 1024) {
+ k16++;
+ System.out.println("... 16K sent.");
+ count = count % (16 * 1024);
+ }
+ if (k16 > 128) {
+ System.out.println("WARNING: InfiniteInputStream: " +
+ "more than 128 16k buffers generated: returning EOF");
+ return -1;
+ }
return 1;
}
@Override
public int read(byte[] buf, int offset, int length) {
//int count = offset;
- //length = Math.max(0, Math.min(buf.length - offset, length));
+ length = Math.max(0, Math.min(buf.length - offset, length));
//for (; count < length; count++)
// buf[offset++] = 0x01;
//return count;
- return Math.max(0, Math.min(buf.length - offset, length));
+ if (count == 0) {
+ System.out.println("Start sending " + length);
+ } else if (count > 16 * 1024) {
+ k16++;
+ System.out.println("... 16K sent.");
+ count = count % (16 * 1024);
+ }
+ if (k16 > 128) {
+ System.out.println("WARNING: InfiniteInputStream: " +
+ "more than 128 16k buffers generated: returning EOF");
+ return -1;
+ }
+ count += length;
+ return length;
}
}
@@ -493,10 +521,13 @@
out.print(requestMethod + " ");
URI uriPath = readRequestPath(is);
out.println(uriPath);
- readRequestHeaders(is);
+ String headers = readRequestHeaders(is);
String query = uriPath.getRawQuery();
- assert query != null;
+ if (query == null) {
+ out.println("Request headers: [" + headers + "]");
+ }
+ assert query != null : "null query for uriPath: " + uriPath;
String qv = query.split("=")[1];
int len;
if (qv.equals("all")) {
@@ -542,9 +573,11 @@
}
// Read until the end of a HTTP request headers
- static void readRequestHeaders(InputStream is) throws IOException {
+ static String readRequestHeaders(InputStream is) throws IOException {
int requestEndCount = 0, r;
+ StringBuilder sb = new StringBuilder();
while ((r = is.read()) != -1) {
+ sb.append((char) r);
if (r == requestEnd[requestEndCount]) {
requestEndCount++;
if (requestEndCount == 4) {
@@ -554,6 +587,7 @@
requestEndCount = 0;
}
}
+ return sb.toString();
}
}
--- a/test/jdk/java/net/httpclient/SplitResponse.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/jdk/java/net/httpclient/SplitResponse.java Wed Jul 11 19:30:26 2018 -0400
@@ -32,6 +32,7 @@
import java.util.concurrent.CompletableFuture;
import javax.net.ssl.SSLContext;
import javax.net.ServerSocketFactory;
+import javax.net.ssl.SSLException;
import javax.net.ssl.SSLServerSocketFactory;
import java.net.http.HttpClient;
import java.net.http.HttpClient.Version;
@@ -268,7 +269,7 @@
String onechar = s.substring(i, i + 1);
try {
conn.send(onechar);
- } catch(SocketException x) {
+ } catch(SocketException | SSLException x) {
if (!useSSL || i != len - 1) throw x;
if (x.getMessage().contains("closed by remote host")) {
String osname = System.getProperty("os.name", "unknown");
--- a/test/jdk/java/net/httpclient/http2/FixedThreadPoolTest.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/jdk/java/net/httpclient/http2/FixedThreadPoolTest.java Wed Jul 11 19:30:26 2018 -0400
@@ -177,13 +177,24 @@
System.err.println("DONE");
}
+ // expect highest supported version we know about
+ static String expectedTLSVersion(SSLContext ctx) {
+ SSLParameters params = ctx.getSupportedSSLParameters();
+ String[] protocols = params.getProtocols();
+ for (String prot : protocols) {
+ if (prot.equals("TLSv1.3"))
+ return "TLSv1.3";
+ }
+ return "TLSv1.2";
+ }
+
static void paramsTest() throws Exception {
System.err.println("paramsTest");
Http2TestServer server = new Http2TestServer(true, 0, exec, sslContext);
server.addHandler((t -> {
SSLSession s = t.getSSLSession();
String prot = s.getProtocol();
- if (prot.equals("TLSv1.2")) {
+ if (prot.equals(expectedTLSVersion(sslContext))) {
t.sendResponseHeaders(200, -1);
} else {
System.err.printf("Protocols =%s\n", prot);
--- a/test/jdk/java/net/httpclient/http2/TLSConnection.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/jdk/java/net/httpclient/http2/TLSConnection.java Wed Jul 11 19:30:26 2018 -0400
@@ -32,6 +32,7 @@
import java.net.http.HttpRequest;
import java.net.http.HttpRequest.BodyPublishers;
import java.net.http.HttpResponse.BodyHandlers;
+import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLParameters;
import javax.net.ssl.SSLSession;
@@ -57,6 +58,19 @@
private static final SSLParameters USE_DEFAULT_SSL_PARAMETERS = new SSLParameters();
+ // expect highest supported version we know about
+ static String expectedTLSVersion(SSLContext ctx) throws Exception {
+ if (ctx == null)
+ ctx = SSLContext.getDefault();
+ SSLParameters params = ctx.getSupportedSSLParameters();
+ String[] protocols = params.getProtocols();
+ for (String prot : protocols) {
+ if (prot.equals("TLSv1.3"))
+ return "TLSv1.3";
+ }
+ return "TLSv1.2";
+ }
+
public static void main(String[] args) throws Exception {
// re-enable 3DES
Security.setProperty("jdk.tls.disabledAlgorithms", "");
@@ -92,7 +106,7 @@
"---\nTest #2: default SSL parameters, "
+ "expect successful connection",
() -> connect(uriString, USE_DEFAULT_SSL_PARAMETERS));
- success &= checkProtocol(handler.getSSLSession(), "TLSv1.2");
+ success &= checkProtocol(handler.getSSLSession(), expectedTLSVersion(null));
// set SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA cipher suite
// which has less priority in default cipher suite list
--- a/test/jdk/java/net/httpclient/whitebox/java.net.http/jdk/internal/net/http/SSLEchoTubeTest.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/jdk/java/net/httpclient/whitebox/java.net.http/jdk/internal/net/http/SSLEchoTubeTest.java Wed Jul 11 19:30:26 2018 -0400
@@ -350,7 +350,7 @@
@Override
public void cancel() {
- cancelled.set(true);
+ queue.add(EOF);
}
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/util/ArrayDeque/WhiteBox.java Wed Jul 11 19:30:26 2018 -0400
@@ -0,0 +1,153 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file:
+ *
+ * Written by Martin Buchholz with assistance from members of JCP
+ * JSR-166 Expert Group and released to the public domain, as
+ * explained at http://creativecommons.org/publicdomain/zero/1.0/
+ */
+
+/*
+ * @test
+ * @modules java.base/java.util:open
+ * @run testng WhiteBox
+ * @summary White box tests of implementation details
+ */
+
+import static org.testng.Assert.*;
+import org.testng.annotations.Test;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.lang.invoke.MethodHandles;
+import java.lang.invoke.VarHandle;
+import java.util.ArrayDeque;
+import java.util.concurrent.ThreadLocalRandom;
+
+@Test
+public class WhiteBox {
+ final ThreadLocalRandom rnd = ThreadLocalRandom.current();
+ final VarHandle ELEMENTS, HEAD, TAIL;
+
+ WhiteBox() throws ReflectiveOperationException {
+ Class<?> klazz = ArrayDeque.class;
+ MethodHandles.Lookup lookup
+ = MethodHandles.privateLookupIn(klazz, MethodHandles.lookup());
+ ELEMENTS = lookup.findVarHandle(klazz, "elements", Object[].class);
+ HEAD = lookup.findVarHandle(klazz, "head", int.class);
+ TAIL = lookup.findVarHandle(klazz, "tail", int.class);
+ }
+
+ Object[] elements(ArrayDeque d) { return (Object[]) ELEMENTS.get(d); }
+ int head(ArrayDeque d) { return (int) HEAD.get(d); }
+ int tail(ArrayDeque d) { return (int) TAIL.get(d); }
+
+ void checkCapacity(ArrayDeque d, int capacity) {
+ assertTrue(d.isEmpty());
+ assertEquals(0, head(d));
+ assertEquals(0, tail(d));
+ Object[] initialElements = elements(d);
+
+ assertInvariants(d);
+ for (int i = capacity; i--> 0; ) {
+ d.add(rnd.nextInt(42));
+ assertSame(elements(d), initialElements);
+ assertInvariants(d);
+ }
+
+ d.add(rnd.nextInt(42));
+ assertNotSame(elements(d), initialElements);
+ assertInvariants(d);
+ }
+
+ @Test
+ public void defaultConstructor() {
+ checkCapacity(new ArrayDeque(), 16);
+ }
+
+ @Test
+ public void shouldNotResizeWhenInitialCapacityProvided() {
+ int initialCapacity = rnd.nextInt(20);
+ checkCapacity(new ArrayDeque(initialCapacity), initialCapacity);
+ }
+
+ byte[] serialBytes(Object o) {
+ try {
+ ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ ObjectOutputStream oos = new ObjectOutputStream(bos);
+ oos.writeObject(o);
+ oos.flush();
+ oos.close();
+ return bos.toByteArray();
+ } catch (Exception fail) {
+ throw new AssertionError(fail);
+ }
+ }
+
+ @SuppressWarnings("unchecked")
+ <T> T serialClone(T o) {
+ try {
+ ObjectInputStream ois = new ObjectInputStream
+ (new ByteArrayInputStream(serialBytes(o)));
+ T clone = (T) ois.readObject();
+ assertNotSame(o, clone);
+ assertSame(o.getClass(), clone.getClass());
+ return clone;
+ } catch (Exception fail) {
+ throw new AssertionError(fail);
+ }
+ }
+
+ @Test
+ public void testSerialization() {
+ ArrayDeque[] ds = { new ArrayDeque(), new ArrayDeque(rnd.nextInt(20)) };
+ for (ArrayDeque d : ds) {
+ if (rnd.nextBoolean()) d.add(99);
+ ArrayDeque clone = serialClone(d);
+ assertInvariants(clone);
+ assertNotSame(elements(d), elements(clone));
+ assertEquals(d, clone);
+ }
+ }
+
+ /** Checks conditions which should always be true. */
+ void assertInvariants(ArrayDeque d) {
+ final Object[] elements = elements(d);
+ final int head = head(d);
+ final int tail = tail(d);
+ final int capacity = elements.length;
+ assertTrue(0 <= head && head < capacity);
+ assertTrue(0 <= tail && tail < capacity);
+ assertTrue(capacity > 0);
+ assertTrue(d.size() < capacity);
+ assertTrue((head == tail) ^ (elements[head] != null));
+ assertNull(elements[tail]);
+ assertTrue((head == tail) ^ (elements[Math.floorMod(tail - 1, capacity)] != null));
+ }
+}
--- a/test/jdk/java/util/concurrent/forkjoin/FJExceptionTableLeak.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/jdk/java/util/concurrent/forkjoin/FJExceptionTableLeak.java Wed Jul 11 19:30:26 2018 -0400
@@ -34,77 +34,102 @@
/*
* @test
- * @bug 8004138
+ * @bug 8004138 8205576
* @modules java.base/java.util.concurrent:open
+ * @run testng FJExceptionTableLeak
* @summary Checks that ForkJoinTask thrown exceptions are not leaked.
* This whitebox test is sensitive to forkjoin implementation details.
*/
+import static org.testng.Assert.*;
+import org.testng.annotations.Test;
+
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import java.lang.ref.ReferenceQueue;
import java.lang.ref.WeakReference;
-import java.lang.reflect.Field;
+import java.lang.invoke.MethodHandles;
+import java.lang.invoke.VarHandle;
import java.util.ArrayList;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ForkJoinPool;
import java.util.concurrent.ForkJoinTask;
import java.util.concurrent.RecursiveAction;
+import java.util.concurrent.ThreadLocalRandom;
+import java.util.concurrent.locks.ReentrantLock;
import java.util.function.BooleanSupplier;
+@Test
public class FJExceptionTableLeak {
+ final ThreadLocalRandom rnd = ThreadLocalRandom.current();
+ final VarHandle NEXT, EX;
+ final Object[] exceptionTable;
+ final ReentrantLock exceptionTableLock;
+
+ FJExceptionTableLeak() throws ReflectiveOperationException {
+ MethodHandles.Lookup lookup = MethodHandles.privateLookupIn(
+ ForkJoinTask.class, MethodHandles.lookup());
+ Class<?> nodeClass = Class.forName(
+ ForkJoinTask.class.getName() + "$ExceptionNode");
+ VarHandle exceptionTableHandle = lookup.findStaticVarHandle(
+ ForkJoinTask.class, "exceptionTable", arrayClass(nodeClass));
+ VarHandle exceptionTableLockHandle = lookup.findStaticVarHandle(
+ ForkJoinTask.class, "exceptionTableLock", ReentrantLock.class);
+ exceptionTable = (Object[]) exceptionTableHandle.get();
+ exceptionTableLock = (ReentrantLock) exceptionTableLockHandle.get();
+
+ NEXT = lookup.findVarHandle(nodeClass, "next", nodeClass);
+ EX = lookup.findVarHandle(nodeClass, "ex", Throwable.class);
+ }
+
+ static <T> Class<T[]> arrayClass(Class<T> klazz) {
+ try {
+ return (Class<T[]>) Class.forName("[L" + klazz.getName() + ";");
+ } catch (ReflectiveOperationException ex) {
+ throw new Error(ex);
+ }
+ }
+
+ Object next(Object node) { return NEXT.get(node); }
+ Throwable ex(Object node) { return (Throwable) EX.get(node); }
+
static class FailingTaskException extends RuntimeException {}
static class FailingTask extends RecursiveAction {
public void compute() { throw new FailingTaskException(); }
}
- static int bucketsInuse(Object[] exceptionTable) {
- int count = 0;
- for (Object x : exceptionTable)
- if (x != null) count++;
- return count;
+ /** Counts all FailingTaskExceptions still recorded in exceptionTable. */
+ int retainedExceptions() {
+ exceptionTableLock.lock();
+ try {
+ int count = 0;
+ for (Object node : exceptionTable)
+ for (; node != null; node = next(node))
+ if (ex(node) instanceof FailingTaskException)
+ count++;
+ return count;
+ } finally {
+ exceptionTableLock.unlock();
+ }
}
- public static void main(String[] args) throws Exception {
- final ForkJoinPool pool = new ForkJoinPool(4);
- final Field exceptionTableField =
- ForkJoinTask.class.getDeclaredField("exceptionTable");
- exceptionTableField.setAccessible(true);
- final Object[] exceptionTable = (Object[]) exceptionTableField.get(null);
-
- if (bucketsInuse(exceptionTable) != 0) throw new AssertionError();
-
- final ArrayList<FailingTask> tasks = new ArrayList<>();
+ @Test
+ public void exceptionTableCleanup() throws Exception {
+ ArrayList<FailingTask> failedTasks = failedTasks();
- // Keep submitting failing tasks until most of the exception
- // table buckets are in use
- do {
- for (int i = 0; i < exceptionTable.length; i++) {
- FailingTask task = new FailingTask();
- pool.execute(task);
- tasks.add(task); // retain strong refs to all tasks, for now
- }
- for (FailingTask task : tasks) {
- try {
- task.join();
- throw new AssertionError("should throw");
- } catch (FailingTaskException success) {}
- }
- } while (bucketsInuse(exceptionTable) < exceptionTable.length * 3 / 4);
-
- // Retain a strong ref to one last failing task;
- // task.join() will trigger exception table expunging.
- FailingTask lastTask = tasks.get(0);
+ // Retain a strong ref to one last failing task
+ FailingTask lastTask = failedTasks.get(rnd.nextInt(failedTasks.size()));
// Clear all other strong refs, making exception table cleanable
- tasks.clear();
+ failedTasks.clear();
BooleanSupplier exceptionTableIsClean = () -> {
try {
+ // Trigger exception table expunging as side effect
lastTask.join();
throw new AssertionError("should throw");
} catch (FailingTaskException expected) {}
- int count = bucketsInuse(exceptionTable);
+ int count = retainedExceptions();
if (count == 0)
throw new AssertionError("expected to find last task");
return count == 1;
@@ -112,6 +137,35 @@
gcAwait(exceptionTableIsClean);
}
+ /** Sequestered into a separate method to inhibit GC retention. */
+ ArrayList<FailingTask> failedTasks()
+ throws Exception {
+ final ForkJoinPool pool = new ForkJoinPool(rnd.nextInt(1, 4));
+
+ assertEquals(0, retainedExceptions());
+
+ final ArrayList<FailingTask> tasks = new ArrayList<>();
+
+ for (int i = exceptionTable.length; i--> 0; ) {
+ FailingTask task = new FailingTask();
+ pool.execute(task);
+ tasks.add(task); // retain strong refs to all tasks, for now
+ task = null; // excessive GC retention paranoia
+ }
+ for (FailingTask task : tasks) {
+ try {
+ task.join();
+ throw new AssertionError("should throw");
+ } catch (FailingTaskException success) {}
+ task = null; // excessive GC retention paranoia
+ }
+
+ if (rnd.nextBoolean())
+ gcAwait(() -> retainedExceptions() == tasks.size());
+
+ return tasks;
+ }
+
// --------------- GC finalization infrastructure ---------------
/** No guarantees, but effective in practice. */
--- a/test/jdk/java/util/zip/TestExtraTime.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/jdk/java/util/zip/TestExtraTime.java Wed Jul 11 19:30:26 2018 -0400
@@ -23,7 +23,8 @@
/**
* @test
- * @bug 4759491 6303183 7012868 8015666 8023713 8068790 8076641 8075526 8130914 8161942
+ * @bug 4759491 6303183 7012868 8015666 8023713 8068790 8076641 8075526 8130914
+ * 8161942 8206389
* @summary Test ZOS and ZIS timestamp in extra field correctly
*/
@@ -96,6 +97,7 @@
testNullHandling();
testTagOnlyHandling();
testTimeConversions();
+ testNullMtime();
}
static void test(FileTime mtime, FileTime atime, FileTime ctime,
@@ -192,9 +194,11 @@
ze.getTime(),
ze.getLastModifiedTime().to(TimeUnit.MILLISECONDS));
*/
- if (mtime.to(TimeUnit.SECONDS) !=
- ze.getLastModifiedTime().to(TimeUnit.SECONDS))
+ if (mtime != null &&
+ mtime.to(TimeUnit.SECONDS) !=
+ ze.getLastModifiedTime().to(TimeUnit.SECONDS)) {
throw new RuntimeException("Timestamp: storing mtime failed!");
+ }
if (atime != null &&
atime.to(TimeUnit.SECONDS) !=
ze.getLastAccessTime().to(TimeUnit.SECONDS))
@@ -305,4 +309,52 @@
Files.delete(zpath);
}
}
+
+ static void checkLastModifiedTimeDOS(FileTime mtime, ZipEntry ze) {
+ FileTime lmt = ze.getLastModifiedTime();
+ if ((lmt.to(TimeUnit.SECONDS) >>> 1) != (mtime.to(TimeUnit.SECONDS) >>> 1) ||
+ lmt.to(TimeUnit.MILLISECONDS) != ze.getTime() ||
+ lmt.to(TimeUnit.MILLISECONDS) % 1000 != 0) {
+ throw new RuntimeException("Timestamp: storing mtime in dos format failed!");
+ }
+ }
+
+ static void testNullMtime() throws Throwable {
+ Instant now = Instant.now();
+ FileTime ctime = FileTime.from(now);
+ FileTime atime = FileTime.from(now.plusSeconds(7));
+ FileTime mtime = FileTime.from(now.plusSeconds(13));
+ System.out.printf("--------------------%nTesting: [%s]/[%s]/[%s]%n",
+ mtime, atime, ctime);
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ try (ZipOutputStream zos = new ZipOutputStream(baos)) {
+ ZipEntry ze = new ZipEntry("TestExtraTime.java");
+ ze.setCreationTime(ctime);
+ ze.setLastAccessTime(atime);
+ // ze.setLastModifiedTime(now);
+ ze.setTime(mtime.toMillis());
+ zos.putNextEntry(ze);
+ zos.write(new byte[] { 1,2 ,3, 4});
+ }
+
+ try (ZipInputStream zis = new ZipInputStream(
+ new ByteArrayInputStream(baos.toByteArray()))) {
+ ZipEntry ze = zis.getNextEntry();
+ // check LOC
+ check(null, atime, ctime, ze, null);
+ checkLastModifiedTimeDOS(mtime, ze);
+ }
+
+ Path zpath = Paths.get(System.getProperty("test.dir", "."),
+ "TestExtraTime.zip");
+ Files.copy(new ByteArrayInputStream(baos.toByteArray()), zpath);
+ try (ZipFile zf = new ZipFile(zpath.toFile())) {
+ ZipEntry ze = zf.getEntry("TestExtraTime.java");
+ // check CEN
+ checkLastModifiedTimeDOS(mtime, ze);
+ } finally {
+ Files.delete(zpath);
+ }
+ }
}
--- a/test/jdk/javax/net/ssl/SSLSession/TestEnabledProtocols.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/jdk/javax/net/ssl/SSLSession/TestEnabledProtocols.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -33,313 +33,251 @@
* session
* 4701722 protocol mismatch exceptions should be consistent between
* SSLv3 and TLSv1
+ * @library /javax/net/ssl/templates
* @run main/othervm TestEnabledProtocols
* @author Ram Marti
*/
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import java.security.*;
-import javax.net.ssl.*;
-import java.security.cert.*;
-
-public class TestEnabledProtocols {
-
- /*
- * For each of the valid protocols combinations, start a server thread
- * that sets up an SSLServerSocket supporting that protocol. Then run
- * a client thread that attemps to open a connection with all
- * possible protocol combinataion. Verify that we get handshake
- * exceptions correctly. Whenever the connection is established
- * successfully, verify that the negotiated protocol was correct.
- * See results file in this directory for complete results.
- */
+import java.io.InputStream;
+import java.io.InterruptedIOException;
+import java.io.OutputStream;
+import java.security.Security;
+import java.util.Arrays;
- static final String[][] protocolStrings = {
- {"TLSv1"},
- {"TLSv1", "SSLv2Hello"},
- {"TLSv1", "SSLv3"},
- {"SSLv3", "SSLv2Hello"},
- {"SSLv3"},
- {"TLSv1", "SSLv3", "SSLv2Hello"}
- };
+import javax.net.ssl.SSLException;
+import javax.net.ssl.SSLHandshakeException;
+import javax.net.ssl.SSLServerSocket;
+import javax.net.ssl.SSLSocket;
- static final boolean [][] eXceptionArray = {
- // Do we expect exception? Protocols supported by the server
- { false, true, false, true, true, true }, // TLSv1
- { false, false, false, true, true, false}, // TLSv1,SSLv2Hello
- { false, true, false, true, false, true }, // TLSv1,SSLv3
- { true, true, false, false, false, false}, // SSLv3, SSLv2Hello
- { true, true, false, true, false, true }, // SSLv3
- { false, false, false, false, false, false } // TLSv1,SSLv3,SSLv2Hello
- };
-
- static final String[][] protocolSelected = {
- // TLSv1
- { "TLSv1", null, "TLSv1", null, null, null },
-
- // TLSv1,SSLv2Hello
- { "TLSv1", "TLSv1", "TLSv1", null, null, "TLSv1"},
-
- // TLSv1,SSLv3
- { "TLSv1", null, "TLSv1", null, "SSLv3", null },
-
- // SSLv3, SSLv2Hello
- { null, null, "SSLv3", "SSLv3", "SSLv3", "SSLv3"},
+public class TestEnabledProtocols extends SSLSocketTemplate {
- // SSLv3
- { null, null, "SSLv3", null, "SSLv3", null },
-
- // TLSv1,SSLv3,SSLv2Hello
- { "TLSv1", "TLSv1", "TLSv1", "SSLv3", "SSLv3", "TLSv1" }
-
- };
-
- /*
- * Where do we find the keystores?
- */
- final static String pathToStores = "../etc";
- static String passwd = "passphrase";
- static String keyStoreFile = "keystore";
- static String trustStoreFile = "truststore";
-
- /*
- * Is the server ready to serve?
- */
- volatile static boolean serverReady = false;
-
- /*
- * Turn on SSL debugging?
- */
- final static boolean debug = false;
+ private final String[] serverProtocols;
+ private final String[] clientProtocols;
+ private final boolean exceptionExpected;
+ private final String selectedProtocol;
- // use any free port by default
- volatile int serverPort = 0;
-
- volatile Exception clientException = null;
-
- public static void main(String[] args) throws Exception {
- // reset the security property to make sure that the algorithms
- // and keys used in this test are not disabled.
- Security.setProperty("jdk.tls.disabledAlgorithms", "");
+ public TestEnabledProtocols(String[] serverProtocols,
+ String[] clientProtocols, boolean exceptionExpected,
+ String selectedProtocol) {
+ this.serverProtocols = serverProtocols;
+ this.clientProtocols = clientProtocols;
+ this.exceptionExpected = exceptionExpected;
+ this.selectedProtocol = selectedProtocol;
+ }
- String keyFilename =
- System.getProperty("test.src", "./") + "/" + pathToStores +
- "/" + keyStoreFile;
- String trustFilename =
- System.getProperty("test.src", "./") + "/" + pathToStores +
- "/" + trustStoreFile;
-
- System.setProperty("javax.net.ssl.keyStore", keyFilename);
- System.setProperty("javax.net.ssl.keyStorePassword", passwd);
- System.setProperty("javax.net.ssl.trustStore", trustFilename);
- System.setProperty("javax.net.ssl.trustStorePassword", passwd);
-
- if (debug)
- System.setProperty("javax.net.debug", "all");
-
- new TestEnabledProtocols();
+ @Override
+ protected void configureServerSocket(SSLServerSocket sslServerSocket) {
+ sslServerSocket.setEnabledProtocols(serverProtocols);
}
- TestEnabledProtocols() throws Exception {
- /*
- * Start the tests.
- */
- SSLServerSocketFactory sslssf =
- (SSLServerSocketFactory) SSLServerSocketFactory.getDefault();
- SSLServerSocket sslServerSocket =
- (SSLServerSocket) sslssf.createServerSocket(serverPort);
- serverPort = sslServerSocket.getLocalPort();
- // sslServerSocket.setNeedClientAuth(true);
+ @Override
+ protected void runServerApplication(SSLSocket socket) throws Exception {
+ try {
+ socket.startHandshake();
+
+ InputStream in = socket.getInputStream();
+ OutputStream out = socket.getOutputStream();
+ out.write(280);
+ in.read();
+ } catch (SSLHandshakeException se) {
+ // ignore it; this is part of the testing
+ // log it for debugging
+ System.out.println("Server SSLHandshakeException:");
+ se.printStackTrace(System.out);
+ } catch (InterruptedIOException ioe) {
+ // must have been interrupted, no harm
+ } catch (SSLException ssle) {
+ // The client side may have closed the socket.
+ System.out.println("Server SSLException:");
+ ssle.printStackTrace(System.out);
+ } catch (Exception e) {
+ System.out.println("Server exception:");
+ e.printStackTrace(System.out);
+ throw new RuntimeException(e);
+ }
+ }
+
+ @Override
+ protected void runClientApplication(SSLSocket sslSocket) throws Exception {
+ try {
+ System.out.println("=== Starting new test run ===");
+ showProtocols("server", serverProtocols);
+ showProtocols("client", clientProtocols);
- for (int i = 0; i < protocolStrings.length; i++) {
- String [] serverProtocols = protocolStrings[i];
- startServer ss = new startServer(serverProtocols,
- sslServerSocket, protocolStrings.length);
- ss.setDaemon(true);
- ss.start();
- for (int j = 0; j < protocolStrings.length; j++) {
- String [] clientProtocols = protocolStrings[j];
- startClient sc = new startClient(
- clientProtocols, serverProtocols,
- eXceptionArray[i][j], protocolSelected[i][j]);
- sc.start();
- sc.join();
- if (clientException != null) {
- ss.requestStop();
- throw clientException;
- }
+ sslSocket.setEnabledProtocols(clientProtocols);
+ sslSocket.startHandshake();
+
+ String protocolName = sslSocket.getSession().getProtocol();
+ System.out.println("Protocol name after getSession is " +
+ protocolName);
+
+ if (protocolName.equals(selectedProtocol)) {
+ System.out.println("** Success **");
+ } else {
+ System.out.println("** FAILURE ** ");
+ throw new RuntimeException
+ ("expected protocol " + selectedProtocol +
+ " but using " + protocolName);
}
- ss.requestStop();
- System.out.println("Waiting for the server to complete");
- ss.join();
+
+ InputStream in = sslSocket.getInputStream();
+ OutputStream out = sslSocket.getOutputStream();
+ in.read();
+ out.write(280);
+ } catch (SSLHandshakeException e) {
+ if (!exceptionExpected) {
+ System.out.println(
+ "Client got UNEXPECTED SSLHandshakeException:");
+ e.printStackTrace(System.out);
+ System.out.println("** FAILURE **");
+ throw new RuntimeException(e);
+ } else {
+ System.out.println(
+ "Client got expected SSLHandshakeException:");
+ e.printStackTrace(System.out);
+ System.out.println("** Success **");
+ }
+ } catch (Exception e) {
+ System.out.println("Client got UNEXPECTED Exception:");
+ e.printStackTrace(System.out);
+ System.out.println("** FAILURE **");
+ throw new RuntimeException(e);
}
}
- class startServer extends Thread {
- private String[] enabledP = null;
- SSLServerSocket sslServerSocket = null;
- int numExpConns;
- volatile boolean stopRequested = false;
+ public static void main(String[] args) throws Exception {
+ Security.setProperty("jdk.tls.disabledAlgorithms", "");
- public startServer(String[] enabledProtocols,
- SSLServerSocket sslServerSocket,
- int numExpConns) {
- super("Server Thread");
- serverReady = false;
- enabledP = enabledProtocols;
- this.sslServerSocket = sslServerSocket;
- sslServerSocket.setEnabledProtocols(enabledP);
- this.numExpConns = numExpConns;
- }
+ runCase(new String[] { "TLSv1" },
+ new String[] { "TLSv1" },
+ false, "TLSv1");
+ runCase(new String[] { "TLSv1" },
+ new String[] { "TLSv1", "SSLv2Hello" },
+ true, null);
+ runCase(new String[] { "TLSv1" },
+ new String[] { "TLSv1", "SSLv3" },
+ false, "TLSv1");
+ runCase(new String[] { "TLSv1" },
+ new String[] { "SSLv3", "SSLv2Hello" },
+ true, null);
+ runCase(new String[] { "TLSv1" },
+ new String[] { "SSLv3" },
+ true, null);
+ runCase(new String[] { "TLSv1" },
+ new String[] { "TLSv1", "SSLv3", "SSLv2Hello" },
+ true, null);
- public void requestStop() {
- stopRequested = true;
- }
+ runCase(new String[] { "TLSv1", "SSLv2Hello" },
+ new String[] { "TLSv1" },
+ false, "TLSv1");
+ runCase(new String[] { "TLSv1", "SSLv2Hello" },
+ new String[] { "TLSv1", "SSLv2Hello" },
+ false, "TLSv1");
+ runCase(new String[] { "TLSv1", "SSLv2Hello" },
+ new String[] { "TLSv1", "SSLv3" },
+ false, "TLSv1");
+ runCase(new String[] { "TLSv1", "SSLv2Hello" },
+ new String[] { "SSLv3", "SSLv2Hello" },
+ true, null);
+ runCase(new String[] { "TLSv1", "SSLv2Hello" },
+ new String[] { "SSLv3" },
+ true, null);
+ runCase(new String[] { "TLSv1", "SSLv2Hello" },
+ new String[] { "TLSv1", "SSLv3", "SSLv2Hello" },
+ false, "TLSv1");
- public void run() {
- int conns = 0;
- while (!stopRequested) {
- SSLSocket socket = null;
- try {
- serverReady = true;
- socket = (SSLSocket)sslServerSocket.accept();
- conns++;
-
- // set ready to false. this is just to make the
- // client wait and synchronise exception messages
- serverReady = false;
- socket.startHandshake();
- SSLSession session = socket.getSession();
- session.invalidate();
+ runCase(new String[] { "TLSv1", "SSLv3" },
+ new String[] { "TLSv1" },
+ false, "TLSv1");
+ runCase(new String[] { "TLSv1", "SSLv3" },
+ new String[] { "TLSv1", "SSLv2Hello" },
+ true, null);
+ runCase(new String[] { "TLSv1", "SSLv3" },
+ new String[] { "TLSv1", "SSLv3" },
+ false, "TLSv1");
+ runCase(new String[] { "TLSv1", "SSLv3" },
+ new String[] { "SSLv3", "SSLv2Hello" },
+ true, null);
+ runCase(new String[] { "TLSv1", "SSLv3" },
+ new String[] { "SSLv3" },
+ false, "SSLv3");
+ runCase(new String[] { "TLSv1", "SSLv3" },
+ new String[] { "TLSv1", "SSLv3", "SSLv2Hello" },
+ true, null);
- InputStream in = socket.getInputStream();
- OutputStream out = socket.getOutputStream();
- out.write(280);
- in.read();
+ runCase(new String[] { "SSLv3", "SSLv2Hello" },
+ new String[] { "TLSv1" },
+ true, null);
+ runCase(new String[] { "SSLv3", "SSLv2Hello" },
+ new String[] { "TLSv1", "SSLv2Hello" },
+ true, null);
+ runCase(new String[] { "SSLv3", "SSLv2Hello" },
+ new String[] { "TLSv1", "SSLv3" },
+ false, "SSLv3");
+ runCase(new String[] { "SSLv3", "SSLv2Hello" },
+ new String[] { "SSLv3", "SSLv2Hello" },
+ false, "SSLv3");
+ runCase(new String[] { "SSLv3", "SSLv2Hello" },
+ new String[] { "SSLv3" },
+ false, "SSLv3");
+ runCase(new String[] { "SSLv3", "SSLv2Hello" },
+ new String[] { "TLSv1", "SSLv3", "SSLv2Hello" },
+ false, "SSLv3");
- socket.close();
- // sleep for a while so that the server thread can be
- // stopped
- Thread.sleep(30);
- } catch (SSLHandshakeException se) {
- // ignore it; this is part of the testing
- // log it for debugging
- System.out.println("Server SSLHandshakeException:");
- se.printStackTrace(System.out);
- } catch (java.io.InterruptedIOException ioe) {
- // must have been interrupted, no harm
- break;
- } catch (java.lang.InterruptedException ie) {
- // must have been interrupted, no harm
- break;
- } catch (SSLException ssle) {
- // The client side may have closed the socket.
- System.out.println("Server SSLException:");
- ssle.printStackTrace(System.out);
- } catch (Exception e) {
- System.out.println("Server exception:");
- e.printStackTrace(System.out);
- throw new RuntimeException(e);
- } finally {
- try {
- if (socket != null) {
- socket.close();
- }
- } catch (IOException e) {
- // ignore
- }
- }
- if (conns >= numExpConns) {
- break;
- }
- }
- }
+ runCase(new String[] { "SSLv3" },
+ new String[] { "TLSv1" },
+ true, null);
+ runCase(new String[] { "SSLv3" },
+ new String[] { "TLSv1", "SSLv2Hello" },
+ true, null);
+ runCase(new String[] { "SSLv3" },
+ new String[] { "TLSv1", "SSLv3" },
+ false, "SSLv3");
+ runCase(new String[] { "SSLv3" },
+ new String[] { "SSLv3", "SSLv2Hello" },
+ true, null);
+ runCase(new String[] { "SSLv3" },
+ new String[] { "SSLv3" },
+ false, "SSLv3");
+ runCase(new String[] { "SSLv3" },
+ new String[] { "TLSv1", "SSLv3", "SSLv2Hello" },
+ true, null);
+
+ runCase(new String[] { "TLSv1", "SSLv3", "SSLv2Hello" },
+ new String[] { "TLSv1" },
+ false, "TLSv1");
+ runCase(new String[] { "TLSv1", "SSLv3", "SSLv2Hello" },
+ new String[] { "TLSv1", "SSLv2Hello" },
+ false, "TLSv1");
+ runCase(new String[] { "TLSv1", "SSLv3", "SSLv2Hello" },
+ new String[] { "TLSv1", "SSLv3" },
+ false, "TLSv1");
+ runCase(new String[] { "TLSv1", "SSLv3", "SSLv2Hello" },
+ new String[] { "SSLv3", "SSLv2Hello" },
+ false, "SSLv3");
+ runCase(new String[] { "TLSv1", "SSLv3", "SSLv2Hello" },
+ new String[] { "SSLv3" },
+ false, "SSLv3");
+ runCase(new String[] { "TLSv1", "SSLv3", "SSLv2Hello" },
+ new String[] { "TLSv1", "SSLv3", "SSLv2Hello" },
+ false, "TLSv1");
+ }
+
+ private static void runCase(
+ String[] serverProtocols,
+ String[] clientProtocols,
+ boolean exceptionExpected,
+ String selectedProtocol) throws Exception {
+ new TestEnabledProtocols(
+ serverProtocols,
+ clientProtocols,
+ exceptionExpected,
+ selectedProtocol).run();
}
private static void showProtocols(String name, String[] protocols) {
- System.out.println("Enabled protocols on the " + name + " are: " + Arrays.asList(protocols));
+ System.out.printf("Enabled protocols on the %s are: %s%n",
+ name,
+ Arrays.asList(protocols));
}
-
- class startClient extends Thread {
- boolean hsCompleted = false;
- boolean exceptionExpected = false;
- private String[] enabledP = null;
- private String[] serverP = null; // used to print the result
- private String protocolToUse = null;
-
- startClient(String[] enabledProtocol,
- String[] serverP,
- boolean eXception,
- String protocol) throws Exception {
- super("Client Thread");
- this.enabledP = enabledProtocol;
- this.serverP = serverP;
- this.exceptionExpected = eXception;
- this.protocolToUse = protocol;
- }
-
- public void run() {
- SSLSocket sslSocket = null;
- try {
- while (!serverReady) {
- Thread.sleep(50);
- }
- System.out.flush();
- System.out.println("=== Starting new test run ===");
- showProtocols("server", serverP);
- showProtocols("client", enabledP);
-
- SSLSocketFactory sslsf =
- (SSLSocketFactory)SSLSocketFactory.getDefault();
- sslSocket = (SSLSocket)
- sslsf.createSocket("localhost", serverPort);
- sslSocket.setEnabledProtocols(enabledP);
- sslSocket.startHandshake();
-
- SSLSession session = sslSocket.getSession();
- session.invalidate();
- String protocolName = session.getProtocol();
- System.out.println("Protocol name after getSession is " +
- protocolName);
-
- if (protocolName.equals(protocolToUse)) {
- System.out.println("** Success **");
- } else {
- System.out.println("** FAILURE ** ");
- throw new RuntimeException
- ("expected protocol " + protocolToUse +
- " but using " + protocolName);
- }
-
- InputStream in = sslSocket.getInputStream();
- OutputStream out = sslSocket.getOutputStream();
- in.read();
- out.write(280);
-
- sslSocket.close();
-
- } catch (SSLHandshakeException e) {
- if (!exceptionExpected) {
- System.out.println("Client got UNEXPECTED SSLHandshakeException:");
- e.printStackTrace(System.out);
- System.out.println("** FAILURE **");
- clientException = e;
- } else {
- System.out.println("Client got expected SSLHandshakeException:");
- e.printStackTrace(System.out);
- System.out.println("** Success **");
- }
- } catch (RuntimeException e) {
- clientException = e;
- } catch (Exception e) {
- System.out.println("Client got UNEXPECTED Exception:");
- e.printStackTrace(System.out);
- System.out.println("** FAILURE **");
- clientException = e;
- }
- }
- }
-
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/javax/net/ssl/TLSCommon/TestSessionLocalPrincipal.java Wed Jul 11 19:30:26 2018 -0400
@@ -0,0 +1,344 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.security.KeyFactory;
+import java.security.KeyStore;
+import java.security.Principal;
+import java.security.PrivateKey;
+import java.security.Security;
+import java.security.cert.Certificate;
+import java.security.cert.CertificateFactory;
+import java.security.spec.PKCS8EncodedKeySpec;
+import java.util.Base64;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ThreadFactory;
+import javax.net.ssl.KeyManagerFactory;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLServerSocket;
+import javax.net.ssl.SSLServerSocketFactory;
+import javax.net.ssl.SSLSocket;
+import javax.net.ssl.SSLSocketFactory;
+import javax.net.ssl.TrustManagerFactory;
+
+/*
+ * @test
+ * @bug 8206355
+ * @summary Test principal that was sent to the peer during handshake.
+ * @run main/othervm TestSessionLocalPrincipal
+ */
+public class TestSessionLocalPrincipal {
+
+ public static void main(String[] args) throws Exception {
+
+ Security.setProperty("jdk.tls.disabledAlgorithms", "");
+ for (String tlsProtocol : new String[]{
+ "TLSv1.3", "TLSv1.2", "TLSv1.1", "TLSv1"}) {
+ for (boolean clientAuth : new boolean[]{true, false}) {
+ System.out.printf("Protocol %s: Client side auth enabled: %s%n",
+ tlsProtocol, clientAuth);
+ CountDownLatch serverReady = new CountDownLatch(1);
+ Server server = new Server(tlsProtocol, clientAuth,
+ serverReady);
+ server.start();
+
+ // Wait till server is ready to accept connection.
+ serverReady.await();
+ new Client(tlsProtocol, clientAuth, server.port).doClientSide();
+ if (server.serverExc != null) {
+ throw new RuntimeException(server.serverExc);
+ }
+ }
+ }
+ }
+
+ public static class Server implements Runnable {
+
+ private volatile int port = 0;
+ private final String tlsProtocol;
+ private final boolean clientAuth;
+ private final CountDownLatch latch;
+ private volatile Exception serverExc;
+
+ public Server(String tlsProtocol, boolean clientAuth,
+ CountDownLatch latch) {
+ this.tlsProtocol = tlsProtocol;
+ this.clientAuth = clientAuth;
+ this.latch = latch;
+ }
+
+ public void start() {
+
+ ExecutorService executor = null;
+ try {
+ executor = Executors.newCachedThreadPool(new ThreadFactory() {
+ @Override
+ public Thread newThread(Runnable r) {
+ Thread t = Executors.defaultThreadFactory()
+ .newThread(r);
+ t.setDaemon(true);
+ return t;
+ }
+ });
+ executor.execute(this);
+ } finally {
+ if (executor != null) {
+ executor.shutdown();
+ }
+ }
+ }
+
+ /*
+ * Define the server side operation.
+ */
+ void doServerSide() throws Exception {
+
+ SSLContext ctx = getSSLContext(tlsProtocol);
+ SSLServerSocketFactory sslssf = ctx.getServerSocketFactory();
+ SSLServerSocket sslServerSocket
+ = (SSLServerSocket) sslssf.createServerSocket(port);
+ port = sslServerSocket.getLocalPort();
+ System.out.println("Server listining on port: " + port);
+ sslServerSocket.setEnabledProtocols(new String[]{tlsProtocol});
+ /*
+ * Signal Client, the server is ready to accept client request.
+ */
+ latch.countDown();
+ try (SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept()) {
+ sslSocket.setNeedClientAuth(this.clientAuth);
+ sslSocket.setSoTimeout(5000);
+ try (InputStream sslIS = sslSocket.getInputStream();
+ OutputStream sslOS = sslSocket.getOutputStream();) {
+ sslIS.read();
+ sslOS.write(85);
+ sslOS.flush();
+ }
+ } finally {
+ sslServerSocket.close();
+ }
+ }
+
+ @Override
+ public void run() {
+ try {
+ doServerSide();
+ } catch (Exception e) {
+ // Print the exception for debug purpose.
+ e.printStackTrace(System.out);
+ serverExc = e;
+ }
+ }
+ }
+
+ /*
+ * Define the client side of the test.
+ */
+ public static class Client {
+
+ private final int serverPort;
+ private final String tlsProtocol;
+ private final boolean clientAuth;
+
+ public Client(String tlsProtocol, boolean clientAuth, int serverPort) {
+ this.tlsProtocol = tlsProtocol;
+ this.clientAuth = clientAuth;
+ this.serverPort = serverPort;
+ }
+
+ void doClientSide() throws Exception {
+
+ SSLContext ctx = getSSLContext(this.tlsProtocol);
+ SSLSocketFactory sslsf = ctx.getSocketFactory();
+ try (SSLSocket sslSocket
+ = (SSLSocket) sslsf.createSocket("localhost", serverPort)) {
+ sslSocket.setEnabledProtocols(new String[]{this.tlsProtocol});
+ Principal principal = sslSocket.getSession().getLocalPrincipal();
+ if (this.clientAuth && principal == null) {
+ throw new RuntimeException("Principal can not be null");
+ }
+ if (!this.clientAuth && principal != null) {
+ throw new RuntimeException("Principal should be null");
+ }
+ try (InputStream sslIS = sslSocket.getInputStream();
+ OutputStream sslOS = sslSocket.getOutputStream()) {
+ sslOS.write(86);
+ sslOS.flush();
+ sslIS.read();
+ }
+ }
+ }
+ }
+
+ // get the ssl context
+ protected static SSLContext getSSLContext(String tlsProtocol)
+ throws Exception {
+
+ // Generate certificate from cert string
+ CertificateFactory cf = CertificateFactory.getInstance("X.509");
+
+ // Create a key store
+ KeyStore ts = KeyStore.getInstance("PKCS12");
+ KeyStore ks = KeyStore.getInstance("PKCS12");
+ ts.load(null, null);
+ ks.load(null, null);
+ char passphrase[] = "passphrase".toCharArray();
+
+ // Import the trusted cert
+ ts.setCertificateEntry("trusted-cert-"
+ + KeyType.rsa_pkcs1_sha256.getKeyType(),
+ cf.generateCertificate(new ByteArrayInputStream(
+ KeyType.rsa_pkcs1_sha256.getTrustedCert().getBytes())));
+
+ boolean hasKeyMaterials = KeyType.rsa_pkcs1_sha256.getEndCert() != null
+ && KeyType.rsa_pkcs1_sha256.getPrivateKey() != null;
+ if (hasKeyMaterials) {
+
+ // Generate the private key.
+ PKCS8EncodedKeySpec priKeySpec = new PKCS8EncodedKeySpec(
+ Base64.getMimeDecoder().decode(
+ KeyType.rsa_pkcs1_sha256.getPrivateKey()));
+ KeyFactory kf = KeyFactory.getInstance(
+ KeyType.rsa_pkcs1_sha256.getKeyType());
+ PrivateKey priKey = kf.generatePrivate(priKeySpec);
+
+ // Generate certificate chain
+ Certificate keyCert = cf.generateCertificate(
+ new ByteArrayInputStream(
+ KeyType.rsa_pkcs1_sha256.getEndCert().getBytes()));
+ Certificate[] chain = new Certificate[]{keyCert};
+
+ // Import the key entry.
+ ks.setKeyEntry("cert-" + KeyType.rsa_pkcs1_sha256.getKeyType(),
+ priKey, passphrase, chain);
+ }
+
+ // Create SSL context
+ TrustManagerFactory tmf = TrustManagerFactory.getInstance("PKIX");
+ tmf.init(ts);
+
+ SSLContext context = SSLContext.getInstance(tlsProtocol);
+ if (hasKeyMaterials) {
+ KeyManagerFactory kmf = KeyManagerFactory.getInstance("NewSunX509");
+ kmf.init(ks, passphrase);
+ context.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
+ } else {
+ context.init(null, tmf.getTrustManagers(), null);
+ }
+ return context;
+ }
+}
+
+enum KeyType {
+
+ rsa_pkcs1_sha256(
+ "RSA",
+ /**
+ * Signature Algorithm: sha256WithRSAEncryption
+ * Issuer: CN = localhost
+ * Validity Not Before: Jun 4 15:22:04 2018 GMT
+ * Not After: May 30 15:22:04 2038 GMT
+ * Subject: CN = localhost
+ * Public Key Algorithm: rsaEncryption
+ */
+ "-----BEGIN CERTIFICATE-----\n"
+ + "MIIDBjCCAe6gAwIBAgIUc8yTYekR2LuXkkCJYqWlS/pBMKIwDQYJKoZIhvcNAQEL\n"
+ + "BQAwFDESMBAGA1UEAwwJbG9jYWxob3N0MB4XDTE4MDYwNDE1MjIwNFoXDTM4MDUz\n"
+ + "MDE1MjIwNFowFDESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEF\n"
+ + "AAOCAQ8AMIIBCgKCAQEA2jDPGMogc9dq2w5b+FHqbfaGPokRmyObiU8y/l/dqkM5\n"
+ + "9IV+qj8VQUI4NtpdCTWr16812z4AjXrk5HIBrECfQbHPUcm1rme5YVZ0WxV0+Ufy\n"
+ + "hDmrGwDLhkxGqc3hOhRrlF2wdXeUfjIzhvS9+S/401++t/jvq+cqFF1BHnzYOu+l\n"
+ + "nbi/o95Oqo8MlwiRqg3xy3fNRfqXk7DWy+QT8s+Vc3Pcj1EW6K0iJJ23BVTdv6YT\n"
+ + "Ja5IKiWL4XsLht3fWvZwF+PoYfKb+JYflt0rafpxg9xkowe7GnGh2SpV7bJaH/QN\n"
+ + "3PTFEKQWgWHjWwjR171GOzSaEgaklvKde6+zNWeYKwIDAQABo1AwTjAdBgNVHQ4E\n"
+ + "FgQUqCtGe8/Ky4O6pH7xeTUy9yrv4n0wHwYDVR0jBBgwFoAUqCtGe8/Ky4O6pH7x\n"
+ + "eTUy9yrv4n0wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAuqch30im\n"
+ + "M09sARarbfK3OExqYK2xoyuUscgTqQNDpNL2gMdXY9e0lTmGVgw9pVYtNZPZRxem\n"
+ + "jR5an2XegvG9qVU6vLENDwLCqZgsTb2gvmXngiG8NVcYd81GNqD228mkgBosNJku\n"
+ + "6BR+C8zlURzsNEt657eVvIp9ObGomdAbWhpdqihBD180PP18DIBWopyfHfJtT5FA\n"
+ + "U2kSPBp+P1EtdceW0zfwv3rF8hwRbnQBzuoYrZfn2PiMYaGUqOgbqUltCMD/Dp9G\n"
+ + "xK0nfAXEwIqHWWnijGwAd6YrszMjBUcSGmlehdF+XZK6jHNlw64RB4WTfavr+rY0\n"
+ + "dTe6g4o5GYr9nQ==\n"
+ + "-----END CERTIFICATE-----\n",
+ //
+ // Private key.
+ //
+ "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDaMM8YyiBz12rb\n"
+ + "Dlv4Uept9oY+iRGbI5uJTzL+X92qQzn0hX6qPxVBQjg22l0JNavXrzXbPgCNeuTk\n"
+ + "cgGsQJ9Bsc9RybWuZ7lhVnRbFXT5R/KEOasbAMuGTEapzeE6FGuUXbB1d5R+MjOG\n"
+ + "9L35L/jTX763+O+r5yoUXUEefNg676WduL+j3k6qjwyXCJGqDfHLd81F+peTsNbL\n"
+ + "5BPyz5Vzc9yPURborSIknbcFVN2/phMlrkgqJYvhewuG3d9a9nAX4+hh8pv4lh+W\n"
+ + "3Stp+nGD3GSjB7sacaHZKlXtslof9A3c9MUQpBaBYeNbCNHXvUY7NJoSBqSW8p17\n"
+ + "r7M1Z5grAgMBAAECggEAHs/7vw10TcejEHJTrJqs14CT7qresKDzqw1jLycMn6nE\n"
+ + "unJLs/EaqE+Yrq5hqxZIQTo+CcsUuuYbAuPStqedleJtW6h3nryJImTaI67BCR8O\n"
+ + "8XtPXY3cMAf/hqVLZC9UDey5Ka2Ma9HdEvbnCRSsN/VycnqWJhmMCLouowaQZqoE\n"
+ + "VopscUix8GqELv0vEo2CszZfUjtSVbNTlNgwDf5U7eSKXMuFsnSn/LE7AMvHsEyo\n"
+ + "HatxogwlM/WjpTnf/WIeJY3VhaK10IsP6OEgUn/p4VtI2DQ/TJdgYrvD5vhjY8ip\n"
+ + "XuUPuPILRvJWo8dRXJqa4diXB12q5YhP8iiOp4BgkQKBgQD1GtlOR+JVgOzpQ11h\n"
+ + "s5/iJOsczee80pQscbSRJnzSsIaP9WM8CyJgvbPxIQxLUQeYnxM/bxNKkpJtzxRK\n"
+ + "pob+v4NoRn8PTpqbOp1obmWJT7uHTaoeavQo7r7uZI4i3eEgHCCQkMzpqzz7UFTY\n"
+ + "2Yst7bBTPUivlSVQQBEc8bLpeQKBgQDj47EjpAlh8DmJRTElg58t+XJehXGTqmlx\n"
+ + "nYu8DQLSzGbOQ/Z4srakC1mkM0LHCmULIIWk3KhV1GBCeArv7DlZ9A1SkI95bsq9\n"
+ + "GBeQpovL0PXKkOOWMJBklP/CTECO4eyA8r6c1d8wytBb6MrJ8bi74DdT+JlFjK5A\n"
+ + "zNoeNx6JwwKBgQCehIPABeuSYvRVlDTDqFkh98B6+4wBaatc5xjhuyOFW5dbaVeJ\n"
+ + "kKXmLSpAK6B44WnpQhA/uUWfuBWtoPy9nt+1yARjnxwzuSFyfUEqNiPC32coBYmd\n"
+ + "bIyGIIopQa1PTXJ4wtgoxw1PnmitHHITYPaLeKrN2te0fuAH+7dVodeU+QKBgAct\n"
+ + "VJbaw7Dh7+3yz+lui8TW5lMzwK/13fxGCfCSOFSLO3Gjkk+a0UW5VclmE+RQ333K\n"
+ + "OGtIx8RsO9vcC/wiZGwA06qWAu7AHoJ2D8fudtikbBlFFuXUAbgpOSTVYfMeCmTF\n"
+ + "QFuQIMdYm9dJLZnOkxLXrOZoHeui0poX2Ya6FawhAoGAAI/QCyDbuvnJzGmjSbvl\n"
+ + "5Ndr9lNAansCXaUzXuVLp6dD6PnB8HVCE8tdETZrcXseyTBeltaxAhj+tCybJvDO\n"
+ + "sV8UmPR0w9ibExmUIVGX5BpoRlB/KWxEG3ar/wJbUZVZ2oSdIAZvCvdbN956SLDg\n"
+ + "Pg5M5wrRqs71s2EiIJd0HrU="
+ );
+ private final String keyType;
+ private final String trustedCert;
+ private final String endCert;
+ private final String privateKey;
+
+ private KeyType(String keyType, String selfCert, String privateKey) {
+ this.keyType = keyType;
+ this.trustedCert = selfCert;
+ this.endCert = selfCert;
+ this.privateKey = privateKey;
+ }
+
+ public String getKeyType() {
+ return keyType;
+ }
+
+ public String getTrustedCert() {
+ return trustedCert;
+ }
+
+ public String getEndCert() {
+ return endCert;
+ }
+
+ public String getPrivateKey() {
+ return privateKey;
+ }
+}
--- a/test/jdk/javax/net/ssl/compatibility/Compatibility.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/jdk/javax/net/ssl/compatibility/Compatibility.java Wed Jul 11 19:30:26 2018 -0400
@@ -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,6 +51,7 @@
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
+import java.util.stream.Stream;
import jdk.test.lib.process.OutputAnalyzer;
@@ -157,10 +158,6 @@
"ServerStatus=%s, ClientStatus=%s, CaseStatus=%s%n",
serverStatus, clientStatus, testCase.getStatus());
- // Confirm the server has stopped.
- if(new File(Utils.PORT_LOG).exists()) {
- throw new RuntimeException("Server doesn't stop.");
- }
System.out.println("----- Case end -----");
}
}
@@ -236,10 +233,12 @@
private static List<String> jdkList(String listFileProp) throws IOException {
String listFile = System.getProperty(listFileProp);
System.out.println(listFileProp + "=" + listFile);
- if (listFile != null && new File(listFile).exists()) {
- return Files.lines(Paths.get(listFile))
- .filter(line -> { return !line.trim().isEmpty(); })
- .collect(Collectors.toList());
+ if (listFile != null && Files.exists(Paths.get(listFile))) {
+ try (Stream<String> lines = Files.lines(Paths.get(listFile))) {
+ return lines.filter(line -> {
+ return !line.trim().isEmpty();
+ }).collect(Collectors.toList());
+ }
} else {
return new ArrayList<>();
}
@@ -263,12 +262,13 @@
// Retrieves the latest server port from port.log.
private static int getServerPort() throws IOException {
- if (!new File(Utils.PORT_LOG).exists()) {
+ if (!Files.exists(Paths.get(Utils.PORT_LOG))) {
return -1;
}
- return Integer.valueOf(
- Files.lines(Paths.get(Utils.PORT_LOG)).findFirst().get());
+ try (Stream<String> lines = Files.lines(Paths.get(Utils.PORT_LOG))) {
+ return Integer.valueOf(lines.findFirst().get());
+ }
}
private static OutputAnalyzer runServer(String jdkPath,
--- a/test/jdk/javax/net/ssl/compatibility/Server.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/jdk/javax/net/ssl/compatibility/Server.java Wed Jul 11 19:30:26 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -146,10 +146,9 @@
server.close();
}
- // Cleanups port.log.
- File file = new File(Utils.PORT_LOG);
- if (file.exists()) {
- file.delete();
+ // Cleanups port log.
+ if (!new File(Utils.PORT_LOG).delete()) {
+ throw new RuntimeException("Cannot delete port log");
}
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/javax/sound/sampled/Clip/AutoCloseTimeCheck.java Wed Jul 11 19:30:26 2018 -0400
@@ -0,0 +1,128 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.applet.AudioClip;
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.file.Files;
+import java.util.concurrent.TimeUnit;
+
+import javax.sound.sampled.AudioFileFormat.Type;
+import javax.sound.sampled.AudioFormat;
+import javax.sound.sampled.AudioInputStream;
+import javax.sound.sampled.AudioSystem;
+
+import static javax.sound.sampled.AudioFormat.Encoding.PCM_SIGNED;
+import static javax.sound.sampled.AudioSystem.NOT_SPECIFIED;
+
+/**
+ * @test
+ * @bug 8202264
+ */
+public final class AutoCloseTimeCheck {
+
+ public static void main(final String[] args) throws Exception {
+ // Prepare the audio file
+ File file = new File("audio.wav");
+ try {
+ AudioFormat format =
+ new AudioFormat(PCM_SIGNED, 44100, 8, 1, 1, 44100, false);
+ AudioSystem.write(getStream(format), Type.WAVE, file);
+ } catch (final Exception ignored) {
+ return; // the test is not applicable
+ }
+ try {
+ testSmallDelay(file);
+ testBigDelay(file);
+ } finally {
+ Files.delete(file.toPath());
+ }
+ }
+
+ /**
+ * Checks that after a big period of non-activity the clip will be closed
+ * and the "Direct Clip" thread will stop.
+ */
+ private static void testBigDelay(final File file) throws Exception {
+ AudioClip clip = (AudioClip) file.toURL().getContent();
+ clip.loop();
+ clip.stop();
+ sleep(20000); // 20 sec for slow systems
+ if (count() != 0) {
+ throw new RuntimeException("Thread was found");
+ }
+ }
+
+ /**
+ * Checks that after small period of non-activity the clip will not be
+ * closed and the "Direct Clip" thread will alive.
+ */
+ private static void testSmallDelay(final File file) throws IOException {
+ AudioClip clip = (AudioClip) file.toURL().getContent();
+ long threadID = 0;
+ // Will run the test no more than 15 seconds
+ long endtime = System.nanoTime() + TimeUnit.SECONDS.toNanos(15);
+ while (endtime - System.nanoTime() > 0) {
+ clip.loop();
+ sleep(500);
+
+ long data = count();
+ if (data != threadID) {
+ System.out.println("Playing on new thread: " + data + " at "
+ + new java.util.Date());
+ if (threadID == 0) {
+ threadID = data;
+ } else {
+ throw new RuntimeException("Thread was changed");
+ }
+ }
+
+ clip.stop();
+ sleep(500);
+ }
+ }
+
+ private static void sleep(int millis) {
+ try {
+ Thread.sleep(millis);
+ } catch (InterruptedException ignored) {
+ }
+ }
+
+ private static long count() {
+ for (final Thread t : Thread.getAllStackTraces().keySet()) {
+ if (t.getName().equals("Direct Clip")) {
+ return t.getId();
+ }
+ }
+ return 0;
+ }
+
+ private static AudioInputStream getStream(final AudioFormat format) {
+ final int dataSize = 5000 * format.getFrameSize();
+ final InputStream in = new ByteArrayInputStream(new byte[dataSize]);
+ return new AudioInputStream(in, format, NOT_SPECIFIED);
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/javax/swing/reliability/HangDuringStaticInitialization.java Wed Jul 11 19:30:26 2018 -0400
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.net.URI;
+import java.nio.file.FileSystem;
+import java.nio.file.FileSystems;
+import java.nio.file.FileVisitResult;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.SimpleFileVisitor;
+import java.nio.file.attribute.BasicFileAttributes;
+
+/**
+ * @test
+ * @bug 8189604
+ * @run main/othervm -Djava.awt.headless=false HangDuringStaticInitialization
+ * @run main/othervm -Djava.awt.headless=true HangDuringStaticInitialization
+ */
+public final class HangDuringStaticInitialization {
+
+ public static void main(final String[] args) throws Exception {
+ FileSystem fs = FileSystems.getFileSystem(URI.create("jrt:/"));
+ test(fs, "/modules/java.desktop");
+ test(fs, "/modules/java.datatransfer");
+ }
+
+ private static void test(FileSystem fs, String s) throws Exception {
+ Files.walkFileTree(fs.getPath(s), new SimpleFileVisitor<>() {
+ @Override
+ public FileVisitResult visitFile(Path file,
+ BasicFileAttributes attrs) {
+ file = file.subpath(2, file.getNameCount());
+ String name = file.toString();
+ if (name.endsWith(".class")) {
+ name = name.substring(0, name.indexOf(".")).replace('/', '.');
+ try {
+ Class.forName(name, true, null);
+ } catch (Throwable e) {
+ // only the crash / hang will be considered as failure
+ }
+ }
+ return FileVisitResult.CONTINUE;
+ }
+ });
+ }
+}
\ No newline at end of file
--- a/test/jdk/jdk/internal/platform/docker/MetricsMemoryTester.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/jdk/jdk/internal/platform/docker/MetricsMemoryTester.java Wed Jul 11 19:30:26 2018 -0400
@@ -95,10 +95,11 @@
private static void testKernelMemoryLimit(String value) {
long limit = getMemoryValue(value);
- if (limit != Metrics.systemMetrics().getKernelMemoryLimit()) {
+ long kmemlimit = Metrics.systemMetrics().getKernelMemoryLimit();
+ if (kmemlimit != 0 && limit != kmemlimit) {
throw new RuntimeException("Kernel Memory limit not equal, expected : ["
+ limit + "]" + ", got : ["
- + Metrics.systemMetrics().getKernelMemoryLimit() + "]");
+ + kmemlimit + "]");
}
System.out.println("TEST PASSED!!!");
}
--- a/test/jdk/jdk/jfr/event/os/TestCPUInformation.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/jdk/jdk/jfr/event/os/TestCPUInformation.java Wed Jul 11 19:30:26 2018 -0400
@@ -53,8 +53,8 @@
Events.assertField(event, "hwThreads").atLeast(1);
Events.assertField(event, "cores").atLeast(1);
Events.assertField(event, "sockets").atLeast(1);
- Events.assertField(event, "cpu").containsAny("Intel", "AMD", "Unknown x86", "sparc", "ARM", "PPC", "PowerPC", "AArch64");
- Events.assertField(event, "description").containsAny("Intel", "AMD", "Unknown x86", "SPARC", "ARM", "PPC", "PowerPC", "AArch64");
+ Events.assertField(event, "cpu").containsAny("Intel", "AMD", "Unknown x86", "sparc", "ARM", "PPC", "PowerPC", "AArch64", "s390");
+ Events.assertField(event, "description").containsAny("Intel", "AMD", "Unknown x86", "SPARC", "ARM", "PPC", "PowerPC", "AArch64", "zArch");
}
}
}
--- a/test/jdk/sun/nio/cs/TestIBMBugs.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/jdk/sun/nio/cs/TestIBMBugs.java Wed Jul 11 19:30:26 2018 -0400
@@ -30,6 +30,7 @@
import java.io.*;
import java.nio.*;
import java.nio.charset.*;
+import java.util.Arrays;
public class TestIBMBugs {
@@ -173,6 +174,53 @@
}
}
+ private static void bug8202329() throws Exception {
+ String original = "\\\u007E\u00A5\u203E"; // [backslash][tilde][yen][overscore]
+ byte[] expectedBytes; // bytes after conversion
+ String expectedStringfromBytes; // String constructed from bytes
+
+ Charset charset; // charset used for conversion
+
+ ByteBuffer bb; // Buffer that holds encoded bytes
+ byte[] ba; // byte array that holds encoded bytes
+
+ CharBuffer cb; // Buffer that holds decoded chars
+
+
+ // Test IBM943, where \ and ~ are encoded to unmappable i.e., 0x3f
+ // and [yen] and [overscore] are encoded to 0x5c and 0x7e
+ charset = Charset.forName("IBM943");
+ expectedBytes = new byte[] {0x3f, 0x3f, 0x5c, 0x7e};
+ expectedStringfromBytes = "??\u00A5\u203E";
+ bb = charset.encode(original);
+ ba = new byte[bb.remaining()];
+ bb.get(ba, 0, ba.length);
+ if(!Arrays.equals(ba, expectedBytes)) {
+ throw new Exception("IBM943 failed to encode");
+ }
+ cb = charset.decode(ByteBuffer.wrap(expectedBytes));
+ if(!cb.toString().equals(expectedStringfromBytes)) {
+ throw new Exception("IBM943 failed to decode");
+ }
+
+
+ // Test IBM943C, where \ and ~ are encoded to 0x5c and 0x7e
+ // and [yen] and [overscore] are encoded to 0x5c and 0x7e
+ charset = Charset.forName("IBM943C");
+ expectedBytes = new byte[] {0x5c, 0x7e, 0x5c, 0x7e};
+ expectedStringfromBytes = "\\~\\~";
+ bb = charset.encode(original);
+ ba = new byte[bb.remaining()];
+ bb.get(ba, 0, ba.length);
+ if(!Arrays.equals(ba, expectedBytes)) {
+ throw new Exception("IBM943C failed to encode");
+ }
+ cb = charset.decode(ByteBuffer.wrap(expectedBytes));
+ if(!cb.toString().equals(expectedStringfromBytes)) {
+ throw new Exception("IBM943C failed to decode");
+ }
+ }
+
public static void main (String[] args) throws Exception {
bug6577466();
// need to be tested before any other IBM949C test case
@@ -183,5 +231,6 @@
bug6371619();
bug6371431();
bug6569191();
+ bug8202329();
}
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/sun/util/resources/cldr/Bug8204603.java Wed Jul 11 19:30:26 2018 -0400
@@ -0,0 +1,124 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+ /*
+ * @test
+ * @bug 8204603
+ * @summary Test that correct data is retrieved for zh_CN and zh_TW locales
+ * and CLDR provider supports all locales for which aliases exist.
+ * @modules java.base/sun.util.locale.provider
+ * jdk.localedata
+ * @run main Bug8204603
+ */
+
+import java.text.DateFormatSymbols;
+import java.text.DecimalFormatSymbols;
+import java.util.Calendar;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
+import sun.util.locale.provider.LocaleProviderAdapter;
+
+/**
+ * This test is dependent on a particular version of CLDR data.
+ */
+public class Bug8204603 {
+
+ /**
+ * List of all locales for which CLDR provides alias Mappings. e.g alias of
+ * zh-HK is zh-Hant-HK
+ */
+ private static final List<Locale> ALIAS_LOCALES
+ = List.of(Locale.forLanguageTag("az-AZ"), Locale.forLanguageTag("bs-BA"),
+ Locale.forLanguageTag("ha-Latn-GH"), Locale.forLanguageTag("ha-Latn-NE"),
+ Locale.forLanguageTag("ha-Latn-NG"), Locale.forLanguageTag("i-lux"),
+ Locale.forLanguageTag("kk-Cyrl-KZ"), Locale.forLanguageTag("ks-Arab-IN"),
+ Locale.forLanguageTag("ky-Cyrl-KG"), Locale.forLanguageTag("lb"),
+ Locale.forLanguageTag("lb"), Locale.forLanguageTag("mn-Cyrl-MN"),
+ Locale.forLanguageTag("mo"), Locale.forLanguageTag("ms-Latn-BN"),
+ Locale.forLanguageTag("ms-Latn-MY"), Locale.forLanguageTag("ms-Latn-SG"),
+ Locale.forLanguageTag("pa-IN"), Locale.forLanguageTag("pa-PK"),
+ Locale.forLanguageTag("scc"), Locale.forLanguageTag("scr"),
+ Locale.forLanguageTag("sh"), Locale.forLanguageTag("shi-MA"),
+ Locale.forLanguageTag("sr-BA"), Locale.forLanguageTag("sr-RS"),
+ Locale.forLanguageTag("sr-XK"), Locale.forLanguageTag("tl"),
+ Locale.forLanguageTag("tzm-Latn-MA"), Locale.forLanguageTag("ug-Arab-CN"),
+ Locale.forLanguageTag("uz-AF"), Locale.forLanguageTag("uz-UZ"),
+ Locale.forLanguageTag("vai-LR"), Locale.forLanguageTag("vai-LR"),
+ Locale.forLanguageTag("yue-CN"), Locale.forLanguageTag("yue-HK"),
+ Locale.forLanguageTag("zh-CN"), Locale.forLanguageTag("zh-HK"),
+ Locale.forLanguageTag("zh-MO"), Locale.forLanguageTag("zh-SG"),
+ Locale.forLanguageTag("zh-TW"));
+
+ private static final Map<Locale, String> CALENDAR_DATA_MAP = Map.of(
+ Locale.forLanguageTag("zh-CN"), "\u5468\u65E5",
+ Locale.forLanguageTag("zh-TW"), "\u9031\u65E5");
+ private static final Map<Locale, String> NAN_DATA_MAP = Map.of(
+ Locale.forLanguageTag("zh-CN"), "NaN",
+ Locale.forLanguageTag("zh-TW"), "\u975E\u6578\u503C");
+
+ public static void main(String[] args) {
+ testCldrSupportedLocales();
+ CALENDAR_DATA_MAP.forEach((k, v) -> testCalendarData(k, v));
+ NAN_DATA_MAP.forEach((k, v) -> testNanData(k, v));
+ }
+
+ /**
+ * tests that CLDR provider should return true for alias locales.
+ *
+ */
+ private static void testCldrSupportedLocales() {
+ LocaleProviderAdapter cldr = LocaleProviderAdapter.forType(LocaleProviderAdapter.Type.CLDR);
+ Set<Locale> availableLocs = Set.of(cldr.getAvailableLocales());
+ Set<String> langtags = new HashSet<>();
+ availableLocs.forEach(loc -> langtags.add(loc.toLanguageTag()));
+ ALIAS_LOCALES.stream().filter(loc -> !cldr.isSupportedProviderLocale(loc, langtags)).findAny()
+ .ifPresent(l -> {
+ throw new RuntimeException("Locale " + l
+ + " is not supported by CLDR locale provider");
+ });
+ }
+
+ private static void testCalendarData(Locale loc, String expected) {
+ DateFormatSymbols dfs = DateFormatSymbols.getInstance(loc);
+ String[] shortDays = dfs.getShortWeekdays();
+ String actual = shortDays[Calendar.SUNDAY];
+ if (!actual.equals(expected)) {
+ throw new RuntimeException("Calendar data mismatch for locale: "
+ + loc + ", expected is: " + expected + ", actual is: " + actual);
+ }
+ }
+
+ private static void testNanData(Locale loc, String expected) {
+ DecimalFormatSymbols dfs = DecimalFormatSymbols.getInstance(loc);
+ String actual = dfs.getNaN();
+ if (!actual.equals(expected)) {
+ throw new RuntimeException("NaN mismatch for locale: "
+ + loc + ", expected is: " + expected + ", actual is: " + actual);
+ }
+ }
+}
--- a/test/jdk/tools/jimage/JImageExtractTest.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/jdk/tools/jimage/JImageExtractTest.java Wed Jul 11 19:30:26 2018 -0400
@@ -34,11 +34,10 @@
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
-import java.nio.file.attribute.FileAttribute;
-import java.nio.file.attribute.PosixFilePermission;
-import java.nio.file.attribute.PosixFilePermissions;
+import java.nio.file.attribute.*;
import java.util.Arrays;
import java.util.HashSet;
+import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
@@ -47,12 +46,13 @@
public class JImageExtractTest extends JImageCliTest {
public void testExtract() throws IOException {
+ Set<Path> notJImageModules = Files.walk(Paths.get("."),1).collect(Collectors.toSet());
jimage("extract", getImagePath())
.assertSuccess()
.resultChecker(r -> {
assertTrue(r.output.isEmpty(), "Output is not expected");
});
- verifyExplodedImage(Paths.get("."));
+ verifyExplodedImage(Paths.get("."), notJImageModules);
}
public void testExtractHelp() {
@@ -68,12 +68,13 @@
public void testExtractToDir() throws IOException {
Path tmp = Files.createTempDirectory(Paths.get("."), getClass().getName());
+ Set<Path> notJImageModules = Files.walk(tmp,1).collect(Collectors.toSet());
jimage("extract", "--dir", tmp.toString(), getImagePath())
.assertSuccess()
.resultChecker(r -> {
assertTrue(r.output.isEmpty(), "Output is not expected");
});
- verifyExplodedImage(tmp);
+ verifyExplodedImage(tmp, notJImageModules);
}
public void testExtractNoImageSpecified() {
@@ -105,13 +106,14 @@
public void testExtractToNotExistingDir() throws IOException {
Path tmp = Files.createTempDirectory(Paths.get("."), getClass().getName());
+ Set<Path> notJImageModules = Files.walk(tmp,1).collect(Collectors.toSet());
Files.delete(tmp);
jimage("extract", "--dir", tmp.toString(), getImagePath())
.assertSuccess()
.resultChecker(r -> {
assertTrue(r.output.isEmpty(), "Output is not expected");
});
- verifyExplodedImage(tmp);
+ verifyExplodedImage(tmp, notJImageModules);
}
public void testExtractFromDir() {
@@ -132,20 +134,35 @@
// nothing to test
return;
}
-
+ Set<Path> notJImageModules = Files.walk(tmp,1).collect(Collectors.toSet());
jimage("extract", "--dir", symlink.toString(), getImagePath())
.assertSuccess()
.resultChecker(r -> {
assertTrue(r.output.isEmpty(), "Output is not expected");
});
- verifyExplodedImage(tmp);
+ verifyExplodedImage(tmp, notJImageModules);
}
public void testExtractToReadOnlyDir() throws IOException {
- Set<PosixFilePermission> perms = PosixFilePermissions.fromString("r-xr--r--");
- FileAttribute<Set<PosixFilePermission>> atts = PosixFilePermissions.asFileAttribute(perms);
- Path tmp = Files.createTempDirectory(Paths.get("."), getClass().getName(), atts);
- jimage("extract", "--dir", tmp.toString(), getImagePath())
+ Path filePath = Files.createTempDirectory(Paths.get("."), getClass().getName());
+ Set<String> supportedAttr = filePath.getFileSystem().supportedFileAttributeViews();
+ if (supportedAttr.contains("posix")) {
+ Files.setPosixFilePermissions(filePath, PosixFilePermissions.fromString("r-xr--r--"));
+ } else if (supportedAttr.contains("acl")) {
+ System.out.println("Entered into acl block");
+ UserPrincipal fileOwner = Files.getOwner(filePath);
+ AclFileAttributeView view = Files.getFileAttributeView(filePath, AclFileAttributeView.class);
+ AclEntry entry = AclEntry.newBuilder()
+ .setType(AclEntryType.DENY)
+ .setPrincipal(fileOwner)
+ .setPermissions(AclEntryPermission.WRITE_DATA)
+ .setFlags(AclEntryFlag.FILE_INHERIT, AclEntryFlag.DIRECTORY_INHERIT)
+ .build();
+ List<AclEntry> acl = view.getAcl();
+ acl.add(0, entry);
+ view.setAcl(acl);
+ }
+ jimage("extract", "--dir", filePath.toString(), getImagePath())
.assertFailure()
.assertShowsError();
}
@@ -167,15 +184,16 @@
.assertShowsError();
}
- private void verifyExplodedImage(Path imagePath) throws IOException {
+ private void verifyExplodedImage(Path imagePath, Set<Path> notJImageModules) throws IOException {
Set<Path> allModules = Files.walk(imagePath, 1).collect(Collectors.toSet());
assertTrue(allModules.stream().anyMatch(p -> "java.base".equals(p.getFileName().toString())),
"Exploded image contains java.base module.");
-
Set<Path> badModules = allModules.stream()
.filter(p -> !Files.exists(p.resolve("module-info.class")))
.collect(Collectors.toSet());
- assertEquals(badModules, new HashSet<Path>() {{ add(imagePath); }},
+ // filter bad modules which are not part of jimage
+ badModules.removeAll(notJImageModules);
+ assertEquals(badModules, new HashSet<Path>() {{}},
"There are no exploded modules with missing 'module-info.class'");
}
--- a/test/langtools/jdk/javadoc/doclet/testHtmlVersion/TestHtmlVersion.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/langtools/jdk/javadoc/doclet/testHtmlVersion/TestHtmlVersion.java Wed Jul 11 19:30:26 2018 -0400
@@ -352,7 +352,7 @@
"<section role=\"region\">\n"
+ "<h2>Package</h2>\n",
"<section role=\"region\">\n"
- + "<h2>Class/Interface</h2>\n",
+ + "<h2>Class or Interface</h2>\n",
"<footer role=\"contentinfo\">\n"
+ "<nav role=\"navigation\">\n"
+ "<!-- ======= START OF BOTTOM NAVBAR ====== -->");
@@ -1266,7 +1266,7 @@
"<li class=\"blockList\">\n"
+ "<h2>Package</h2>",
"<li class=\"blockList\">\n"
- + "<h2>Class/Interface</h2>");
+ + "<h2>Class or Interface</h2>");
// Test for a regular class page and members (nested class, field, constructore and method)
checkOutput("pkg/AnotherClass.html", true,
--- a/test/langtools/jdk/javadoc/tool/modules/ReleaseOptions.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/langtools/jdk/javadoc/tool/modules/ReleaseOptions.java Wed Jul 11 19:30:26 2018 -0400
@@ -58,7 +58,7 @@
Task.Result result = execNegativeTask("--release", "8",
"--patch-module", "m=" + mpath.toString(),
"p");
- assertMessagePresent(".*not allowed with target 1.8.*");
+ assertMessagePresent(".*not allowed with target 8.*");
assertMessageNotPresent(".*Exception*");
assertMessageNotPresent(".java.lang.AssertionError.*");
}
@@ -92,7 +92,7 @@
Task.Result result = execNegativeTask("--release", "8",
"--module-source-path", src.toString(),
"--module", "m");
- assertMessagePresent(".*not allowed with target 1.8.*");
+ assertMessagePresent(".*not allowed with target 8.*");
assertMessageNotPresent(".*Exception*");
assertMessageNotPresent(".java.lang.AssertionError.*");
}
--- a/test/langtools/tools/javac/modules/AddLimitMods.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/langtools/tools/javac/modules/AddLimitMods.java Wed Jul 11 19:30:26 2018 -0400
@@ -264,7 +264,7 @@
.writeAll()
.getOutputLines(Task.OutputKind.DIRECT);
- if (!actual.contains("- compiler.err.option.not.allowed.with.target: --add-modules, 1.8")) {
+ if (!actual.contains("- compiler.err.option.not.allowed.with.target: --add-modules, 8")) {
throw new IllegalStateException("incorrect errors; actual=" + actual);
}
--- a/test/langtools/tools/javac/modules/AnnotationProcessing.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/langtools/tools/javac/modules/AnnotationProcessing.java Wed Jul 11 19:30:26 2018 -0400
@@ -95,6 +95,7 @@
public class AnnotationProcessing extends ModuleTestBase {
public static void main(String... args) throws Exception {
+ System.out.println(System.getProperties());
new AnnotationProcessing().runTests();
}
@@ -568,7 +569,7 @@
"--module-source-path", moduleSrc.toString());
assertFileExists(classes, "m1x", "api1", "Impl.class");
- deleteFile(m1.resolve("test").resolve("Test.java"));
+ tb.deleteFiles(m1.resolve("test").resolve("Test.java"));
//resource class output:
runCompiler(base,
@@ -623,7 +624,7 @@
assertFileExists(classes, "m1x", pack, "Pass.class");
assertFileNotExists(classes, "m2x", pack, "Pass.class");
- deleteFile(m1.resolve("test").resolve("Test.java"));
+ tb.deleteFiles(m1.resolve("test").resolve("Test.java"));
runCompiler(base,
moduleSrc,
@@ -694,36 +695,6 @@
}
}
- private void deleteFile(Path file) throws IOException {
- long startTime = System.currentTimeMillis();
-
- do {
- Files.delete(file);
- if (!Files.exists(file)) {
- return;
- }
- System.err.println("!! File not deleted !!");
- System.gc(); // allow finalizers and cleaners to run
- try {
- Thread.sleep(RETRY_DELETE_MILLIS);
- } catch (InterruptedException e) {
- throw new IOException("Interrupted while deleting " + file, e);
- }
- } while ((System.currentTimeMillis() - startTime) <= MAX_RETRY_DELETE_MILLIS);
-
- throw new IOException("Can't delete " + file);
- }
-
-
- private static final int RETRY_DELETE_MILLIS;
- private static final int MAX_RETRY_DELETE_MILLIS;
-
- static {
- boolean isWindows = System.getProperty("os.name").startsWith("Windows");
- RETRY_DELETE_MILLIS = isWindows ? 500 : 0;
- MAX_RETRY_DELETE_MILLIS = isWindows ? 15 * 1000 : 0;
- }
-
public static abstract class GeneratingAP extends AbstractProcessor {
public void createSource(CreateFileObject file, String name, String content) {
@@ -872,7 +843,7 @@
options);
assertFileExists(classes, modulePath, "impl", "Impl.class");
- deleteFile(m1.resolve("test").resolve("Test.java"));
+ tb.deleteFiles(m1.resolve("test").resolve("Test.java"));
//resource class output:
runCompiler(base,
@@ -899,7 +870,7 @@
"expectFilerException(() -> filer.getResource(StandardLocation.SOURCE_PATH, \"m1x/impl\", \"resource\"))",
"-sourcepath", m1.toString());
- deleteFile(m1.resolve("impl").resolve("resource"));
+ tb.deleteFiles(m1.resolve("impl").resolve("resource"));
//can read resources from the system module path if module name given:
runCompiler(base,
@@ -960,7 +931,7 @@
"-sourcepath", m1.toString());
}
- deleteFile(m1.resolve("module-info.java"));
+ tb.deleteFiles(m1.resolve("module-info.java"));
tb.writeJavaFiles(m1,
"package test; class Test { }");
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/langtools/tools/javac/processing/rounds/GenerateAnonymousClass.java Wed Jul 11 19:30:26 2018 -0400
@@ -0,0 +1,95 @@
+/*
+ * Copyright (c) 2018, Google LLC. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8204630
+ * @summary generating an anonymous class with Filer#createClassFile causes an NPE in
+ * JavacProcessingEnvironment
+ * @library /tools/lib /tools/javac/lib/
+ * @modules jdk.compiler/com.sun.tools.javac.api
+ * jdk.compiler/com.sun.tools.javac.main
+ * jdk.compiler/com.sun.tools.javac.processing
+ * jdk.compiler/com.sun.tools.javac.util
+ * jdk.jdeps/com.sun.tools.javap
+ * @clean *
+ * @build toolbox.ToolBox toolbox.JavacTask
+ * @build GenerateAnonymousClass JavacTestingAbstractProcessor
+ * @compile/ref=GenerateAnonymousClass.out -XDaccessInternalAPI -processor GenerateAnonymousClass -XDrawDiagnostics GenerateAnonymousClass.java
+ */
+
+import com.sun.tools.javac.processing.JavacProcessingEnvironment;
+import com.sun.tools.javac.processing.PrintingProcessor.PrintingElementVisitor;
+import com.sun.tools.javac.util.Log;
+import com.sun.tools.javac.util.Log.WriterKind;
+import java.io.*;
+import java.util.*;
+import javax.annotation.processing.*;
+import javax.lang.model.element.*;
+import javax.tools.*;
+import toolbox.JavacTask;
+import toolbox.ToolBox;
+
+public class GenerateAnonymousClass extends JavacTestingAbstractProcessor {
+ int round = 1;
+
+ @Override
+ public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
+ Log log = Log.instance(((JavacProcessingEnvironment) processingEnv).getContext());
+ PrintWriter pw = log.getWriter(WriterKind.NOTICE);
+
+ pw.println("round: " + round);
+
+ TypeElement generatedClass = processingEnv.getElementUtils().getTypeElement("T");
+ if (generatedClass != null) {
+ new PrintingElementVisitor(pw, processingEnv.getElementUtils()).visit(generatedClass);
+ pw.flush();
+ }
+
+ if (round++ == 1) {
+ ToolBox tb = new ToolBox();
+ ToolBox.MemoryFileManager mfm = new ToolBox.MemoryFileManager();
+ new JavacTask(tb).fileManager(mfm).sources(GENERATED).run();
+
+ try (OutputStream out = filer.createClassFile("T").openOutputStream()) {
+ out.write(mfm.getFileBytes(StandardLocation.CLASS_OUTPUT, "T"));
+ } catch (IOException e) {
+ processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, e.toString());
+ }
+ try (OutputStream out = filer.createClassFile("T$1").openOutputStream()) {
+ out.write(mfm.getFileBytes(StandardLocation.CLASS_OUTPUT, "T$1"));
+ } catch (IOException e) {
+ processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, e.toString());
+ }
+ }
+
+ return false;
+ }
+
+ private static final String GENERATED =
+ "public class T {\n"
+ + " public void test() {\n"
+ + " new Object() {};\n"
+ + " }\n"
+ + "}";
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/langtools/tools/javac/processing/rounds/GenerateAnonymousClass.out Wed Jul 11 19:30:26 2018 -0400
@@ -0,0 +1,17 @@
+round: 1
+round: 2
+
+public class T {
+
+ public T();
+
+ public void test();
+}
+round: 3
+
+public class T {
+
+ public T();
+
+ public void test();
+}
--- a/test/langtools/tools/lib/toolbox/ToolBox.java Mon Jul 09 15:24:43 2018 -0400
+++ b/test/langtools/tools/lib/toolbox/ToolBox.java Wed Jul 11 19:30:26 2018 -0400
@@ -34,8 +34,10 @@
import java.io.Writer;
import java.net.URI;
import java.nio.charset.Charset;
+import java.nio.file.DirectoryNotEmptyException;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
+import java.nio.file.NoSuchFileException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.SimpleFileVisitor;
@@ -43,8 +45,11 @@
import java.nio.file.attribute.BasicFileAttributes;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collection;
import java.util.Collections;
+import java.util.Deque;
import java.util.HashMap;
+import java.util.LinkedList;
import java.util.List;
import java.util.Locale;
import java.util.Map;
@@ -98,6 +103,12 @@
public static final String testSrc = System.getProperty("test.src");
/** The location of the test JDK for this test, or null if not set. */
public static final String testJDK = System.getProperty("test.jdk");
+ /** The timeout factor for slow systems. */
+ public static final float timeoutFactor;
+ static {
+ String ttf = System.getProperty("test.timeout.factor");
+ timeoutFactor = (ttf == null) ? 1.0f : Float.valueOf(ttf);
+ }
/** The current directory. */
public static final Path currDir = Paths.get(".");
@@ -109,7 +120,7 @@
* Checks if the host OS is some version of Windows.
* @return true if the host OS is some version of Windows
*/
- public boolean isWindows() {
+ public static boolean isWindows() {
return osName.toLowerCase(Locale.ENGLISH).startsWith("windows");
}
@@ -238,21 +249,50 @@
}
/**
- * Deletes one or more files.
- * Any directories to be deleted must be empty.
+ * Deletes one or more files, awaiting confirmation that the files
+ * no longer exist. Any directories to be deleted must be empty.
* <p>Similar to the shell command: {@code rm files}.
- * @param files the files to be deleted
+ * @param files the names of the files to be deleted
* @throws IOException if an error occurred while deleting the files
*/
public void deleteFiles(String... files) throws IOException {
- if (files.length == 0)
- throw new IllegalArgumentException("no files specified");
- for (String file : files)
- Files.delete(Paths.get(file));
+ deleteFiles(List.of(files).stream().map(Paths::get).collect(Collectors.toList()));
+ }
+
+ /**
+ * Deletes one or more files, awaiting confirmation that the files
+ * no longer exist. Any directories to be deleted must be empty.
+ * <p>Similar to the shell command: {@code rm files}.
+ * @param paths the paths for the files to be deleted
+ * @throws IOException if an error occurred while deleting the files
+ */
+ public void deleteFiles(Path... paths) throws IOException {
+ deleteFiles(List.of(paths));
}
/**
- * Deletes all content of a directory (but not the directory itself).
+ * Deletes one or more files, awaiting confirmation that the files
+ * no longer exist. Any directories to be deleted must be empty.
+ * <p>Similar to the shell command: {@code rm files}.
+ * @param paths the paths for the files to be deleted
+ * @throws IOException if an error occurred while deleting the files
+ */
+ public void deleteFiles(List<Path> paths) throws IOException {
+ if (paths.isEmpty())
+ throw new IllegalArgumentException("no files specified");
+ IOException ioe = null;
+ for (Path path : paths) {
+ ioe = deleteFile(path, ioe);
+ }
+ if (ioe != null) {
+ throw ioe;
+ }
+ ensureDeleted(paths);
+ }
+
+ /**
+ * Deletes all content of a directory (but not the directory itself),
+ * awaiting confirmation that the content has been deleted.
* @param root the directory to be cleaned
* @throws IOException if an error occurs while cleaning the directory
*/
@@ -261,9 +301,23 @@
throw new IOException(root + " is not a directory");
}
Files.walkFileTree(root, new SimpleFileVisitor<Path>() {
+ private IOException ioe = null;
+ // for each directory we visit, maintain a list of the files that we try to delete
+ private Deque<List<Path>> dirFiles = new LinkedList<>();
+
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes a) throws IOException {
- Files.delete(file);
+ ioe = deleteFile(file, ioe);
+ dirFiles.peekFirst().add(file);
+ return FileVisitResult.CONTINUE;
+ }
+
+ @Override
+ public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes a) throws IOException {
+ if (!dir.equals(root)) {
+ dirFiles.peekFirst().add(dir);
+ }
+ dirFiles.addFirst(new ArrayList<>());
return FileVisitResult.CONTINUE;
}
@@ -272,8 +326,12 @@
if (e != null) {
throw e;
}
+ if (ioe != null) {
+ throw ioe;
+ }
+ ensureDeleted(dirFiles.removeFirst());
if (!dir.equals(root)) {
- Files.delete(dir);
+ ioe = deleteFile(dir, ioe);
}
return FileVisitResult.CONTINUE;
}
@@ -281,6 +339,67 @@
}
/**
+ * Internal method to delete a file, using {@code Files.delete}.
+ * It does not wait to confirm deletion, nor does it retry.
+ * If an exception occurs it is either returned or added to the set of
+ * suppressed exceptions for an earlier exception.
+ * @param path the path for the file to be deleted
+ * @param ioe the earlier exception, or null
+ * @return the earlier exception or an exception that occurred while
+ * trying to delete the file
+ */
+ private IOException deleteFile(Path path, IOException ioe) {
+ try {
+ Files.delete(path);
+ } catch (IOException e) {
+ if (ioe == null) {
+ ioe = e;
+ } else {
+ ioe.addSuppressed(e);
+ }
+ }
+ return ioe;
+ }
+
+ /**
+ * Wait until it is confirmed that a set of files have been deleted.
+ * @param paths the paths for the files to be deleted
+ * @throws IOException if a file has not been deleted
+ */
+ private void ensureDeleted(Collection<Path> paths)
+ throws IOException {
+ for (Path path : paths) {
+ ensureDeleted(path);
+ }
+ }
+
+ /**
+ * Wait until it is confirmed that a file has been deleted.
+ * @param path the path for the file to be deleted
+ * @throws IOException if problems occur while deleting the file
+ */
+ private void ensureDeleted(Path path) throws IOException {
+ long startTime = System.currentTimeMillis();
+ do {
+ // Note: Files.notExists is not the same as !Files.exists
+ if (Files.notExists(path)) {
+ return;
+ }
+ System.gc(); // allow finalizers and cleaners to run
+ try {
+ Thread.sleep(RETRY_DELETE_MILLIS);
+ } catch (InterruptedException e) {
+ throw new IOException("Interrupted while waiting for file to be deleted: " + path, e);
+ }
+ } while ((System.currentTimeMillis() - startTime) <= MAX_RETRY_DELETE_MILLIS);
+
+ throw new IOException("File not deleted: " + path);
+ }
+
+ private static final int RETRY_DELETE_MILLIS = isWindows() ? (int)(500 * timeoutFactor): 0;
+ private static final int MAX_RETRY_DELETE_MILLIS = isWindows() ? (int)(15 * 1000 * timeoutFactor) : 0;
+
+ /**
* Moves a file.
* If the given destination exists and is a directory, the file will be moved
* to that directory. Otherwise, the file will be moved to the destination,