diff --git a/.hgignore b/.hgignore index 9aab81ce35d..023de87e688 100644 --- a/.hgignore +++ b/.hgignore @@ -3,8 +3,7 @@ ^.idea/ nbproject/private/ ^webrev -^.hgtip -^.bridge2 +^.src-rev$ ^.jib/ .DS_Store .metadata/ diff --git a/.hgtags b/.hgtags index b4a0d1d76aa..cc1f425ff14 100644 --- a/.hgtags +++ b/.hgtags @@ -389,3 +389,5 @@ d62173b931bf5b6bffc6e80a9060bb2e8b8efc75 jdk-9+143 31f5023200d42185b70c4c00ba5672391e4642d0 jdk-9+144 3ee4e7827413fa5c5c4fca58597b0ad89e921bfb jdk-9+145 581331db696a62dd411926ba7fd437252252a71d jdk-9+146 +f4e854a77aa38749bd90f722b06974a56e7233d5 jdk-9+147 +5c71ea43933b6c7e8a85eb1a4eb2213011b95d82 jdk-9+148 diff --git a/.hgtags-top-repo b/.hgtags-top-repo index 58e9fe724f4..cb9368a1832 100644 --- a/.hgtags-top-repo +++ b/.hgtags-top-repo @@ -389,3 +389,5 @@ f64afae7f1a5608e438585bbf0bc23785e69cba0 jdk-9+141 8d337fd6333e28c48aa87880144b840aad82baaf jdk-9+144 ff98aa9ec9fae991e426ce5926fc9036d25f5562 jdk-9+145 a22e2671d88f6b22a4aa82e3966986542ed2a381 jdk-9+146 +5f6920274c48eb00d31afee6c034826a754c13d9 jdk-9+147 +3ffc3e886c74736e387f3685e86b557cdea706c8 jdk-9+148 diff --git a/common/autoconf/boot-jdk.m4 b/common/autoconf/boot-jdk.m4 index ab2bd9a87d7..f75f3adfa2a 100644 --- a/common/autoconf/boot-jdk.m4 +++ b/common/autoconf/boot-jdk.m4 @@ -98,7 +98,7 @@ AC_DEFUN([BOOTJDK_DO_CHECK], fi ]) -# Test: Is bootjdk explicitely set by command line arguments? +# Test: Is bootjdk explicitly set by command line arguments? AC_DEFUN([BOOTJDK_CHECK_ARGUMENTS], [ if test "x$with_boot_jdk" != x; then @@ -238,7 +238,7 @@ AC_DEFUN([BOOTJDK_CHECK_TOOL_IN_BOOTJDK], $1=$BOOT_JDK/bin/$2 if test ! -x [$]$1; then AC_MSG_RESULT(not found) - AC_MSG_NOTICE([Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk]) + AC_MSG_NOTICE([Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk]) AC_MSG_ERROR([Could not find $2 in the Boot JDK]) fi AC_MSG_RESULT(ok) @@ -262,7 +262,7 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK], # we detected something (if so, the path to the jdk is in BOOT_JDK). But we # must check if this is indeed valid; otherwise we'll continue looking. - # Test: Is bootjdk explicitely set by command line arguments? + # Test: Is bootjdk explicitly set by command line arguments? BOOTJDK_DO_CHECK([BOOTJDK_CHECK_ARGUMENTS]) if test "x$with_boot_jdk" != x && test "x$BOOT_JDK_FOUND" = xno; then # Having specified an argument which is incorrect will produce an instant failure; @@ -286,7 +286,7 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK], if test "x$BOOT_JDK_FOUND" = xno; then HELP_MSG_MISSING_DEPENDENCY([openjdk]) AC_MSG_NOTICE([Could not find a valid Boot JDK. $HELP_MSG]) - AC_MSG_NOTICE([This might be fixed by explicitely setting --with-boot-jdk]) + AC_MSG_NOTICE([This might be fixed by explicitly setting --with-boot-jdk]) AC_MSG_ERROR([Cannot continue]) fi diff --git a/common/autoconf/build-performance.m4 b/common/autoconf/build-performance.m4 index 863875065a6..fd77fe8c2b0 100644 --- a/common/autoconf/build-performance.m4 +++ b/common/autoconf/build-performance.m4 @@ -217,6 +217,13 @@ AC_DEFUN([BPERF_SETUP_CCACHE], AC_DEFUN([BPERF_SETUP_CCACHE_USAGE], [ if test "x$CCACHE" != x; then + if test "x$OPENJDK_BUILD_OS" = "xmacosx"; then + HAS_BAD_CCACHE=[`$ECHO $CCACHE_VERSION | \ + $GREP -e '^1\.' -e '^2\.' -e '^3\.0\.' -e '^3\.1\.'`] + if test "x$HAS_BAD_CCACHE" != "x"; then + AC_MSG_ERROR([On macosx, ccache 3.2 or later is required, found $CCACHE_VERSION]) + fi + fi if test "x$USE_PRECOMPILED_HEADER" = "x1"; then HAS_BAD_CCACHE=[`$ECHO $CCACHE_VERSION | \ $GREP -e '^1.*' -e '^2.*' -e '^3\.0.*' -e '^3\.1\.[0123]$'`] diff --git a/common/autoconf/buildjdk-spec.gmk.in b/common/autoconf/buildjdk-spec.gmk.in index dba07605a22..ddd388c0f1c 100644 --- a/common/autoconf/buildjdk-spec.gmk.in +++ b/common/autoconf/buildjdk-spec.gmk.in @@ -86,73 +86,13 @@ DISABLE_WARNING_PREFIX := @BUILD_CC_DISABLE_WARNING_PREFIX@ # Save speed and disk space by not enabling debug symbols for the buildjdk ENABLE_DEBUG_SYMBOLS := false -#################################################### -# -# Legacy Hotspot support +# Control wether Hotspot builds gtest tests +BUILD_GTEST := false -# Legacy setting: OPT or DBG -VARIANT := OPT -# Legacy setting: true or false -FASTDEBUG := false -# Legacy setting: debugging the class files? -DEBUG_CLASSFILES := false +JVM_VARIANTS := server # Some users still set EXTRA_*FLAGS on the make command line. Must # make sure to override that when building buildjdk. override EXTRA_CFLAGS := override EXTRA_CXXFLAGS := override EXTRA_LDFLAGS := - -# The HOSTCC/HOSTCXX is Hotspot terminology for the BUILD_CC/BUILD_CXX, i.e. the -# compiler that produces code that can be run on the build platform. -HOSTCC := $(BUILD_CC) -HOSTCXX := $(BUILD_CXX) - -# Old name for OPENJDK_TARGET_OS (aix,bsd,hpux,linux,macosx,solaris,windows etc) -PLATFORM := $(OPENJDK_BUILD_OS) -# 32 or 64 bit -ARCH_DATA_MODEL := $(OPENJDK_BUILD_CPU_BITS) - -ALT_BOOTDIR := $(BOOT_JDK) -# Yet another name for arch used for an extra subdir below the jvm lib. -# Uses i386 and amd64, instead of x86 and x86_64. -LIBARCH := @OPENJDK_BUILD_CPU_LEGACY_LIB@ -# Set the cpu architecture. Some users still set ARCH on the make command line. Must -# make sure to override that when building buildjdk. -override ARCH := $(OPENJDK_BUILD_CPU_ARCH) -# Legacy setting for building for a 64 bit machine. -# If yes then this expands to _LP64 := 1 -ifeq ($(OPENJDK_BUILD_CPU_BITS), 64) - _LP64 := 1 -endif - -ALT_OUTPUTDIR := $(HOTSPOT_OUTPUTDIR) -ALT_EXPORT_PATH := $(HOTSPOT_DIST) - -JVM_INTERPRETER := @JVM_INTERPRETER@ -ifeq ($(JVM_INTERPRETER), cpp) - CC_INTERP=true -endif - -HOTSPOT_MAKE_ARGS := product docs export_product - -# Control wether Hotspot builds gtest tests -BUILD_GTEST := false - -USE_PRECOMPILED_HEADER := @USE_PRECOMPILED_HEADER@ - -# Hotspot expects the variable FULL_DEBUG_SYMBOLS=1/0 to control debug symbols -# creation. -FULL_DEBUG_SYMBOLS := 0 -ZIP_DEBUGINFO_FILES := 0 -# Disable stripping -STRIP_POLICY := none - -JVM_VARIANTS := server -JVM_VARIANT_SERVER := true -JVM_VARIANT_CLIENT := false -JVM_VARIANT_MINIMAL1 := false -JVM_VARIANT_KERNEL := false -JVM_VARIANT_ZERO := false -JVM_VARIANT_ZEROSHARK := false -JVM_VARIANT_CORE := false diff --git a/common/autoconf/configure.ac b/common/autoconf/configure.ac index bb5491ba0b4..4879d05622b 100644 --- a/common/autoconf/configure.ac +++ b/common/autoconf/configure.ac @@ -182,7 +182,6 @@ TOOLCHAIN_POST_DETECTION # Finally do some processing after the detection phase TOOLCHAIN_SETUP_BUILD_COMPILERS -TOOLCHAIN_SETUP_LEGACY TOOLCHAIN_MISC_CHECKS # Setup the JTReg Regression Test Harness. diff --git a/common/autoconf/flags.m4 b/common/autoconf/flags.m4 index ba1e8dbc4b1..767f6bed510 100644 --- a/common/autoconf/flags.m4 +++ b/common/autoconf/flags.m4 @@ -1378,7 +1378,7 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_MISC], AC_MSG_CHECKING([if native warnings are errors]) if test "x$enable_warnings_as_errors" = "xyes"; then - AC_MSG_RESULT([yes (explicitely set)]) + AC_MSG_RESULT([yes (explicitly set)]) WARNINGS_AS_ERRORS=true elif test "x$enable_warnings_as_errors" = "xno"; then AC_MSG_RESULT([no]) diff --git a/common/autoconf/generated-configure.sh b/common/autoconf/generated-configure.sh index 9179032971e..79ef6b5bfca 100644 --- a/common/autoconf/generated-configure.sh +++ b/common/autoconf/generated-configure.sh @@ -671,6 +671,8 @@ LLVM_LIBS LLVM_LDFLAGS LLVM_CFLAGS LLVM_CONFIG +LIBFFI_LIB_FILE +ENABLE_LIBFFI_BUNDLING LIBFFI_LIBS LIBFFI_CFLAGS ALSA_LIBS @@ -700,8 +702,6 @@ JVM_FEATURES_client JVM_FEATURES_server INCLUDE_DTRACE GCOV_ENABLED -STRIP_POLICY -DEBUG_BINARIES ZIP_EXTERNAL_DEBUG_SYMBOLS COPY_DEBUG_SYMBOLS COMPILE_WITH_DEBUG_SYMBOLS @@ -791,11 +791,6 @@ JTREGEXE HOTSPOT_TOOLCHAIN_TYPE USING_BROKEN_SUSE_LD PACKAGE_PATH -USE_CLANG -HOTSPOT_LD -HOTSPOT_CXX -HOTSPOT_RC -HOTSPOT_MT BUILD_AS BUILD_LDCXX BUILD_LD @@ -1215,6 +1210,7 @@ with_alsa_lib with_libffi with_libffi_include with_libffi_lib +enable_libffi_bundling with_libjpeg with_giflib with_libpng @@ -1974,8 +1970,8 @@ Optional Features: --enable-debug set the debug level to fastdebug (shorthand for --with-debug-level=fastdebug) [disabled] --enable-headless-only only build headless (no GUI) support [disabled] - --enable-unlimited-crypto - Enable unlimited crypto policy [disabled] + --disable-unlimited-crypto + Disable unlimited crypto policy [enabled] --disable-keep-packaged-modules Do not keep packaged modules in jdk image [enable] --enable-static-build enable static library build [disabled] @@ -1997,6 +1993,9 @@ Optional Features: disable bundling of the freetype library with the build result [enabled on Windows or when using --with-freetype, disabled otherwise] + --enable-libffi-bundling + enable bundling of libffi.so to make the built JDK + runnable on more systems --enable-jtreg-failure-handler forces build of the jtreg failure handler to be enabled, missing dependencies become fatal errors. @@ -3851,7 +3850,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # $1 A command line (typically autoconf macro) to execute -# Test: Is bootjdk explicitely set by command line arguments? +# Test: Is bootjdk explicitly set by command line arguments? # Test: Is $JAVA_HOME set? @@ -4178,7 +4177,7 @@ apt_help() { ffi) PKGHANDLER_COMMAND="sudo apt-get install libffi-dev" ;; x11) - PKGHANDLER_COMMAND="sudo apt-get install libX11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev" ;; + PKGHANDLER_COMMAND="sudo apt-get install libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev" ;; ccache) PKGHANDLER_COMMAND="sudo apt-get install ccache" ;; dtrace) @@ -4911,7 +4910,7 @@ TOOLCHAIN_DESCRIPTION_xlc="IBM XL C/C++" # Minimum supported versions, empty means unspecified TOOLCHAIN_MINIMUM_VERSION_clang="3.2" TOOLCHAIN_MINIMUM_VERSION_gcc="4.3" -TOOLCHAIN_MINIMUM_VERSION_microsoft="" +TOOLCHAIN_MINIMUM_VERSION_microsoft="16.00.30319.01" # VS2010 TOOLCHAIN_MINIMUM_VERSION_solstudio="5.13" TOOLCHAIN_MINIMUM_VERSION_xlc="" @@ -4982,10 +4981,6 @@ TOOLCHAIN_MINIMUM_VERSION_xlc="" # for this, we can only do this after these have been setup. -# Setup legacy variables that are still needed as alternative ways to refer to -# parts of the toolchain. - - # Do some additional checks on the detected tools. @@ -5093,7 +5088,7 @@ VS_SDK_PLATFORM_NAME_2013= #CUSTOM_AUTOCONF_INCLUDE # Do not change or remove the following line, it is needed for consistency checks: -DATE_WHEN_GENERATED=1479997904 +DATE_WHEN_GENERATED=1481104795 ############################################################################### # @@ -15523,7 +15518,7 @@ test -n "$target_alias" && ;; esac - # ..and setup our own variables. (Do this explicitely to facilitate searching) + # ..and setup our own variables. (Do this explicitly to facilitate searching) OPENJDK_BUILD_OS="$VAR_OS" if test "x$VAR_OS_TYPE" != x; then OPENJDK_BUILD_OS_TYPE="$VAR_OS_TYPE" @@ -15662,7 +15657,7 @@ $as_echo "$OPENJDK_BUILD_OS-$OPENJDK_BUILD_CPU" >&6; } ;; esac - # ... and setup our own variables. (Do this explicitely to facilitate searching) + # ... and setup our own variables. (Do this explicitly to facilitate searching) OPENJDK_TARGET_OS="$VAR_OS" if test "x$VAR_OS_TYPE" != x; then OPENJDK_TARGET_OS_TYPE="$VAR_OS_TYPE" @@ -24240,7 +24235,7 @@ fi if test "${enable_unlimited_crypto+set}" = set; then : enableval=$enable_unlimited_crypto; else - enable_unlimited_crypto=no + enable_unlimited_crypto=yes fi if test "x$enable_unlimited_crypto" = "xyes"; then @@ -24400,7 +24395,7 @@ fi as_fn_error $? "Version string contains + but both 'BUILD' and 'OPT' are missing" "$LINENO" 5 fi # Stop the version part process from setting default values. - # We still allow them to explicitely override though. + # We still allow them to explicitly override though. NO_DEFAULT_VERSION_PARTS=true else as_fn_error $? "--with-version-string fails to parse as a valid version string: $with_version_string" "$LINENO" 5 @@ -24462,11 +24457,10 @@ $as_echo "$as_me: WARNING: --with-version-opt value has been sanitized from '$wi fi else if test "x$NO_DEFAULT_VERSION_PARTS" != xtrue; then - # Default is to calculate a string like this .. - timestamp=`$DATE '+%Y-%m-%d-%H%M%S'` + # Default is to calculate a string like this 'adhoc..' # Outer [ ] to quote m4. basedirname=`$BASENAME "$TOPDIR" | $TR -d -c '[a-z][A-Z][0-9].-'` - VERSION_OPT="$timestamp.$USERNAME.$basedirname" + VERSION_OPT="adhoc.$USERNAME.$basedirname" fi fi @@ -24769,7 +24763,7 @@ fi # we detected something (if so, the path to the jdk is in BOOT_JDK). But we # must check if this is indeed valid; otherwise we'll continue looking. - # Test: Is bootjdk explicitely set by command line arguments? + # Test: Is bootjdk explicitly set by command line arguments? if test "x$BOOT_JDK_FOUND" = xno; then # Now execute the test @@ -29887,8 +29881,8 @@ $as_echo "$BOOT_JDK_VERSION" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find a valid Boot JDK. $HELP_MSG" >&5 $as_echo "$as_me: Could not find a valid Boot JDK. $HELP_MSG" >&6;} - { $as_echo "$as_me:${as_lineno-$LINENO}: This might be fixed by explicitely setting --with-boot-jdk" >&5 -$as_echo "$as_me: This might be fixed by explicitely setting --with-boot-jdk" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: This might be fixed by explicitly setting --with-boot-jdk" >&5 +$as_echo "$as_me: This might be fixed by explicitly setting --with-boot-jdk" >&6;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi @@ -29910,8 +29904,8 @@ $as_echo_n "checking for java in Boot JDK... " >&6; } if test ! -x $JAVA; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5 -$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&5 +$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&6;} as_fn_error $? "Could not find java in the Boot JDK" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 @@ -29938,8 +29932,8 @@ $as_echo_n "checking for java in Boot JDK... " >&6; } if test ! -x $JAVA; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5 -$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&5 +$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&6;} as_fn_error $? "Could not find java in the Boot JDK" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 @@ -30048,8 +30042,8 @@ $as_echo_n "checking for javac in Boot JDK... " >&6; } if test ! -x $JAVAC; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5 -$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&5 +$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&6;} as_fn_error $? "Could not find javac in the Boot JDK" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 @@ -30076,8 +30070,8 @@ $as_echo_n "checking for javac in Boot JDK... " >&6; } if test ! -x $JAVAC; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5 -$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&5 +$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&6;} as_fn_error $? "Could not find javac in the Boot JDK" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 @@ -30186,8 +30180,8 @@ $as_echo_n "checking for javah in Boot JDK... " >&6; } if test ! -x $JAVAH; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5 -$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&5 +$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&6;} as_fn_error $? "Could not find javah in the Boot JDK" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 @@ -30214,8 +30208,8 @@ $as_echo_n "checking for javah in Boot JDK... " >&6; } if test ! -x $JAVAH; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5 -$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&5 +$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&6;} as_fn_error $? "Could not find javah in the Boot JDK" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 @@ -30324,8 +30318,8 @@ $as_echo_n "checking for jar in Boot JDK... " >&6; } if test ! -x $JAR; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5 -$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&5 +$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&6;} as_fn_error $? "Could not find jar in the Boot JDK" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 @@ -30352,8 +30346,8 @@ $as_echo_n "checking for jar in Boot JDK... " >&6; } if test ! -x $JAR; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5 -$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&5 +$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&6;} as_fn_error $? "Could not find jar in the Boot JDK" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 @@ -30462,8 +30456,8 @@ $as_echo_n "checking for jarsigner in Boot JDK... " >&6; } if test ! -x $JARSIGNER; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5 -$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&5 +$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&6;} as_fn_error $? "Could not find jarsigner in the Boot JDK" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 @@ -30490,8 +30484,8 @@ $as_echo_n "checking for jarsigner in Boot JDK... " >&6; } if test ! -x $JARSIGNER; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5 -$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&5 +$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&6;} as_fn_error $? "Could not find jarsigner in the Boot JDK" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 @@ -31198,6 +31192,12 @@ $as_echo "$as_me: The path of IMPORT_MODULES_TOPDIR, which resolves as \"$path\" if test -d "$IMPORT_MODULES_TOPDIR/modules_src"; then IMPORT_MODULES_SRC="$IMPORT_MODULES_TOPDIR/modules_src" fi + # Workaround for using different imported module-info.java in Jake due to a + # change in format. Remove once new format is standard in JDK 9 and javafx + # delivers just that. + if test -d "$IMPORT_MODULES_TOPDIR/modules_src_jake"; then + IMPORT_MODULES_SRC="$IMPORT_MODULES_TOPDIR/modules_src_jake $IMPORT_MODULES_SRC" + fi if test -d "$IMPORT_MODULES_TOPDIR/make"; then IMPORT_MODULES_MAKE="$IMPORT_MODULES_TOPDIR/make" fi @@ -33578,9 +33578,11 @@ $as_echo "$as_me: Please use --enable-ccache instead of providing a wrapped comp if test "x$TOOLCHAIN_TYPE" = xsolstudio; then # cc -V output typically looks like # cc: Sun C 5.12 Linux_i386 2011/11/16 + # or + # cc: Studio 12.5 Sun C 5.14 SunOS_sparc 2016/05/31 COMPILER_VERSION_OUTPUT=`$COMPILER -V 2>&1` # Check that this is likely to be the Solaris Studio cc. - $ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "^.*: Sun $COMPILER_NAME" > /dev/null + $ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "^.* Sun $COMPILER_NAME" > /dev/null if test $? -ne 0; then ALT_VERSION_OUTPUT=`$COMPILER --version 2>&1` { $as_echo "$as_me:${as_lineno-$LINENO}: The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required $TOOLCHAIN_TYPE compiler." >&5 @@ -34875,9 +34877,11 @@ $as_echo "$as_me: Please use --enable-ccache instead of providing a wrapped comp if test "x$TOOLCHAIN_TYPE" = xsolstudio; then # cc -V output typically looks like # cc: Sun C 5.12 Linux_i386 2011/11/16 + # or + # cc: Studio 12.5 Sun C 5.14 SunOS_sparc 2016/05/31 COMPILER_VERSION_OUTPUT=`$COMPILER -V 2>&1` # Check that this is likely to be the Solaris Studio cc. - $ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "^.*: Sun $COMPILER_NAME" > /dev/null + $ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "^.* Sun $COMPILER_NAME" > /dev/null if test $? -ne 0; then ALT_VERSION_OUTPUT=`$COMPILER --version 2>&1` { $as_echo "$as_me:${as_lineno-$LINENO}: The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required $TOOLCHAIN_TYPE compiler." >&5 @@ -35261,9 +35265,9 @@ $as_echo "$as_me: WARNING: This typically indicates a broken setup, and is not s fi # We only check CC_VERSION_NUMBER since we assume CXX_VERSION_NUMBER is equal. - if [[ "[$]CC_VERSION_NUMBER" =~ (.*\.){3} ]] ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: C compiler version number has more than three parts (X.Y.Z): $CC_VERSION_NUMBER. Comparisons might be wrong." >&5 -$as_echo "$as_me: WARNING: C compiler version number has more than three parts (X.Y.Z): $CC_VERSION_NUMBER. Comparisons might be wrong." >&2;} + if [[ "[$]CC_VERSION_NUMBER" =~ (.*\.){4} ]] ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: C compiler version number has more than four parts (W.X.Y.Z): $CC_VERSION_NUMBER. Comparisons might be wrong." >&5 +$as_echo "$as_me: WARNING: C compiler version number has more than four parts (W.X.Y.Z): $CC_VERSION_NUMBER. Comparisons might be wrong." >&2;} fi if [[ "[$]CC_VERSION_NUMBER" =~ [0-9]{6} ]] ; then @@ -35271,7 +35275,7 @@ $as_echo "$as_me: WARNING: C compiler version number has more than three parts ( $as_echo "$as_me: WARNING: C compiler version number has a part larger than 99999: $CC_VERSION_NUMBER. Comparisons might be wrong." >&2;} fi - COMPARABLE_ACTUAL_VERSION=`$AWK -F. '{ printf("%05d%05d%05d\n", $1, $2, $3) }' <<< "$CC_VERSION_NUMBER"` + COMPARABLE_ACTUAL_VERSION=`$AWK -F. '{ printf("%05d%05d%05d%05d\n", $1, $2, $3, $4) }' <<< "$CC_VERSION_NUMBER"` if test "x$TOOLCHAIN_MINIMUM_VERSION" != x; then @@ -35329,8 +35333,8 @@ $as_echo "$as_me: WARNING: C compiler version number has a part larger than 9999 # Need to assign to a variable since m4 is blocked from modifying parts in []. REFERENCE_VERSION=$TOOLCHAIN_MINIMUM_VERSION - if [[ "$REFERENCE_VERSION" =~ (.*\.){3} ]] ; then - as_fn_error $? "Internal error: Cannot compare to $TOOLCHAIN_MINIMUM_VERSION, only three parts (X.Y.Z) is supported" "$LINENO" 5 + if [[ "$REFERENCE_VERSION" =~ (.*\.){4} ]] ; then + as_fn_error $? "Internal error: Cannot compare to $TOOLCHAIN_MINIMUM_VERSION, only four parts (W.X.Y.Z) is supported" "$LINENO" 5 fi if [[ "$REFERENCE_VERSION" =~ [0-9]{6} ]] ; then @@ -35338,7 +35342,7 @@ $as_echo "$as_me: WARNING: C compiler version number has a part larger than 9999 fi # Version comparison method inspired by http://stackoverflow.com/a/24067243 - COMPARABLE_REFERENCE_VERSION=`$AWK -F. '{ printf("%05d%05d%05d\n", $1, $2, $3) }' <<< "$REFERENCE_VERSION"` + COMPARABLE_REFERENCE_VERSION=`$AWK -F. '{ printf("%05d%05d%05d%05d\n", $1, $2, $3, $4) }' <<< "$REFERENCE_VERSION"` if test $COMPARABLE_ACTUAL_VERSION -ge $COMPARABLE_REFERENCE_VERSION ; then : @@ -46956,9 +46960,11 @@ $as_echo "$as_me: Rewriting BUILD_STRIP to \"$new_complete\"" >&6;} if test "x$TOOLCHAIN_TYPE" = xsolstudio; then # cc -V output typically looks like # cc: Sun C 5.12 Linux_i386 2011/11/16 + # or + # cc: Studio 12.5 Sun C 5.14 SunOS_sparc 2016/05/31 COMPILER_VERSION_OUTPUT=`$COMPILER -V 2>&1` # Check that this is likely to be the Solaris Studio cc. - $ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "^.*: Sun $COMPILER_NAME" > /dev/null + $ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "^.* Sun $COMPILER_NAME" > /dev/null if test $? -ne 0; then ALT_VERSION_OUTPUT=`$COMPILER --version 2>&1` { $as_echo "$as_me:${as_lineno-$LINENO}: The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required $TOOLCHAIN_TYPE compiler." >&5 @@ -47076,9 +47082,11 @@ $as_echo "$as_me: Using $TOOLCHAIN_TYPE $COMPILER_NAME compiler version $COMPILE if test "x$TOOLCHAIN_TYPE" = xsolstudio; then # cc -V output typically looks like # cc: Sun C 5.12 Linux_i386 2011/11/16 + # or + # cc: Studio 12.5 Sun C 5.14 SunOS_sparc 2016/05/31 COMPILER_VERSION_OUTPUT=`$COMPILER -V 2>&1` # Check that this is likely to be the Solaris Studio cc. - $ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "^.*: Sun $COMPILER_NAME" > /dev/null + $ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "^.* Sun $COMPILER_NAME" > /dev/null if test $? -ne 0; then ALT_VERSION_OUTPUT=`$COMPILER --version 2>&1` { $as_echo "$as_me:${as_lineno-$LINENO}: The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required $TOOLCHAIN_TYPE compiler." >&5 @@ -47198,9 +47206,9 @@ $as_echo "$as_me: WARNING: This typically indicates a broken setup, and is not s fi # We only check CC_VERSION_NUMBER since we assume CXX_VERSION_NUMBER is equal. - if [[ "[$]BUILD_CC_VERSION_NUMBER" =~ (.*\.){3} ]] ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: C compiler version number has more than three parts (X.Y.Z): $BUILD_CC_VERSION_NUMBER. Comparisons might be wrong." >&5 -$as_echo "$as_me: WARNING: C compiler version number has more than three parts (X.Y.Z): $BUILD_CC_VERSION_NUMBER. Comparisons might be wrong." >&2;} + if [[ "[$]BUILD_CC_VERSION_NUMBER" =~ (.*\.){4} ]] ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: C compiler version number has more than four parts (W.X.Y.Z): $BUILD_CC_VERSION_NUMBER. Comparisons might be wrong." >&5 +$as_echo "$as_me: WARNING: C compiler version number has more than four parts (W.X.Y.Z): $BUILD_CC_VERSION_NUMBER. Comparisons might be wrong." >&2;} fi if [[ "[$]BUILD_CC_VERSION_NUMBER" =~ [0-9]{6} ]] ; then @@ -47208,7 +47216,7 @@ $as_echo "$as_me: WARNING: C compiler version number has more than three parts ( $as_echo "$as_me: WARNING: C compiler version number has a part larger than 99999: $BUILD_CC_VERSION_NUMBER. Comparisons might be wrong." >&2;} fi - OPENJDK_BUILD_COMPARABLE_ACTUAL_VERSION=`$AWK -F. '{ printf("%05d%05d%05d\n", $1, $2, $3) }' <<< "$BUILD_CC_VERSION_NUMBER"` + OPENJDK_BUILD_COMPARABLE_ACTUAL_VERSION=`$AWK -F. '{ printf("%05d%05d%05d%05d\n", $1, $2, $3, $4) }' <<< "$BUILD_CC_VERSION_NUMBER"` else # If we are not cross compiling, use the normal target compilers for @@ -47234,9 +47242,9 @@ $as_echo "$as_me: WARNING: This typically indicates a broken setup, and is not s fi # We only check CC_VERSION_NUMBER since we assume CXX_VERSION_NUMBER is equal. - if [[ "[$]CC_VERSION_NUMBER" =~ (.*\.){3} ]] ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: C compiler version number has more than three parts (X.Y.Z): $CC_VERSION_NUMBER. Comparisons might be wrong." >&5 -$as_echo "$as_me: WARNING: C compiler version number has more than three parts (X.Y.Z): $CC_VERSION_NUMBER. Comparisons might be wrong." >&2;} + if [[ "[$]CC_VERSION_NUMBER" =~ (.*\.){4} ]] ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: C compiler version number has more than four parts (W.X.Y.Z): $CC_VERSION_NUMBER. Comparisons might be wrong." >&5 +$as_echo "$as_me: WARNING: C compiler version number has more than four parts (W.X.Y.Z): $CC_VERSION_NUMBER. Comparisons might be wrong." >&2;} fi if [[ "[$]CC_VERSION_NUMBER" =~ [0-9]{6} ]] ; then @@ -47244,7 +47252,7 @@ $as_echo "$as_me: WARNING: C compiler version number has more than three parts ( $as_echo "$as_me: WARNING: C compiler version number has a part larger than 99999: $CC_VERSION_NUMBER. Comparisons might be wrong." >&2;} fi - OPENJDK_BUILD_COMPARABLE_ACTUAL_VERSION=`$AWK -F. '{ printf("%05d%05d%05d\n", $1, $2, $3) }' <<< "$CC_VERSION_NUMBER"` + OPENJDK_BUILD_COMPARABLE_ACTUAL_VERSION=`$AWK -F. '{ printf("%05d%05d%05d%05d\n", $1, $2, $3, $4) }' <<< "$CC_VERSION_NUMBER"` fi @@ -47259,68 +47267,6 @@ $as_echo "$as_me: WARNING: C compiler version number has a part larger than 9999 - if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then - # For hotspot, we need these in Windows mixed path, - # so rewrite them all. Need added .exe suffix. - HOTSPOT_CXX="$CXX.exe" - HOTSPOT_LD="$LD.exe" - HOTSPOT_MT="$MT.exe" - HOTSPOT_RC="$RC.exe" - - unix_path="$HOTSPOT_CXX" - if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then - windows_path=`$CYGPATH -m "$unix_path"` - HOTSPOT_CXX="$windows_path" - elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then - windows_path=`cmd //c echo $unix_path` - HOTSPOT_CXX="$windows_path" - fi - - - unix_path="$HOTSPOT_LD" - if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then - windows_path=`$CYGPATH -m "$unix_path"` - HOTSPOT_LD="$windows_path" - elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then - windows_path=`cmd //c echo $unix_path` - HOTSPOT_LD="$windows_path" - fi - - - unix_path="$HOTSPOT_MT" - if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then - windows_path=`$CYGPATH -m "$unix_path"` - HOTSPOT_MT="$windows_path" - elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then - windows_path=`cmd //c echo $unix_path` - HOTSPOT_MT="$windows_path" - fi - - - unix_path="$HOTSPOT_RC" - if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then - windows_path=`$CYGPATH -m "$unix_path"` - HOTSPOT_RC="$windows_path" - elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then - windows_path=`cmd //c echo $unix_path` - HOTSPOT_RC="$windows_path" - fi - - - - else - HOTSPOT_CXX="$CXX" - HOTSPOT_LD="$LD" - fi - - - - if test "x$TOOLCHAIN_TYPE" = xclang; then - USE_CLANG=true - fi - - - # The package path is used only on macosx? @@ -49914,8 +49860,8 @@ $as_echo "$supports" >&6; } # Need to assign to a variable since m4 is blocked from modifying parts in []. REFERENCE_VERSION=6 - if [[ "$REFERENCE_VERSION" =~ (.*\.){3} ]] ; then - as_fn_error $? "Internal error: Cannot compare to 6, only three parts (X.Y.Z) is supported" "$LINENO" 5 + if [[ "$REFERENCE_VERSION" =~ (.*\.){4} ]] ; then + as_fn_error $? "Internal error: Cannot compare to 6, only four parts (W.X.Y.Z) is supported" "$LINENO" 5 fi if [[ "$REFERENCE_VERSION" =~ [0-9]{6} ]] ; then @@ -49923,7 +49869,7 @@ $as_echo "$supports" >&6; } fi # Version comparison method inspired by http://stackoverflow.com/a/24067243 - COMPARABLE_REFERENCE_VERSION=`$AWK -F. '{ printf("%05d%05d%05d\n", $1, $2, $3) }' <<< "$REFERENCE_VERSION"` + COMPARABLE_REFERENCE_VERSION=`$AWK -F. '{ printf("%05d%05d%05d%05d\n", $1, $2, $3, $4) }' <<< "$REFERENCE_VERSION"` if test $COMPARABLE_ACTUAL_VERSION -ge $COMPARABLE_REFERENCE_VERSION ; then : @@ -50214,8 +50160,8 @@ $as_echo "$as_me: GCC >= 6 detected; adding ${NO_DELETE_NULL_POINTER_CHECKS_CFLA # Need to assign to a variable since m4 is blocked from modifying parts in []. REFERENCE_VERSION=4.8 - if [[ "$REFERENCE_VERSION" =~ (.*\.){3} ]] ; then - as_fn_error $? "Internal error: Cannot compare to 4.8, only three parts (X.Y.Z) is supported" "$LINENO" 5 + if [[ "$REFERENCE_VERSION" =~ (.*\.){4} ]] ; then + as_fn_error $? "Internal error: Cannot compare to 4.8, only four parts (W.X.Y.Z) is supported" "$LINENO" 5 fi if [[ "$REFERENCE_VERSION" =~ [0-9]{6} ]] ; then @@ -50223,7 +50169,7 @@ $as_echo "$as_me: GCC >= 6 detected; adding ${NO_DELETE_NULL_POINTER_CHECKS_CFLA fi # Version comparison method inspired by http://stackoverflow.com/a/24067243 - COMPARABLE_REFERENCE_VERSION=`$AWK -F. '{ printf("%05d%05d%05d\n", $1, $2, $3) }' <<< "$REFERENCE_VERSION"` + COMPARABLE_REFERENCE_VERSION=`$AWK -F. '{ printf("%05d%05d%05d%05d\n", $1, $2, $3, $4) }' <<< "$REFERENCE_VERSION"` if test $COMPARABLE_ACTUAL_VERSION -ge $COMPARABLE_REFERENCE_VERSION ; then : @@ -50737,8 +50683,8 @@ $as_echo "$supports" >&6; } # Need to assign to a variable since m4 is blocked from modifying parts in []. REFERENCE_VERSION=6 - if [[ "$REFERENCE_VERSION" =~ (.*\.){3} ]] ; then - as_fn_error $? "Internal error: Cannot compare to 6, only three parts (X.Y.Z) is supported" "$LINENO" 5 + if [[ "$REFERENCE_VERSION" =~ (.*\.){4} ]] ; then + as_fn_error $? "Internal error: Cannot compare to 6, only four parts (W.X.Y.Z) is supported" "$LINENO" 5 fi if [[ "$REFERENCE_VERSION" =~ [0-9]{6} ]] ; then @@ -50746,7 +50692,7 @@ $as_echo "$supports" >&6; } fi # Version comparison method inspired by http://stackoverflow.com/a/24067243 - COMPARABLE_REFERENCE_VERSION=`$AWK -F. '{ printf("%05d%05d%05d\n", $1, $2, $3) }' <<< "$REFERENCE_VERSION"` + COMPARABLE_REFERENCE_VERSION=`$AWK -F. '{ printf("%05d%05d%05d%05d\n", $1, $2, $3, $4) }' <<< "$REFERENCE_VERSION"` if test $OPENJDK_BUILD_COMPARABLE_ACTUAL_VERSION -ge $COMPARABLE_REFERENCE_VERSION ; then : @@ -51037,8 +50983,8 @@ $as_echo "$as_me: GCC >= 6 detected; adding ${NO_DELETE_NULL_POINTER_CHECKS_CFLA # Need to assign to a variable since m4 is blocked from modifying parts in []. REFERENCE_VERSION=4.8 - if [[ "$REFERENCE_VERSION" =~ (.*\.){3} ]] ; then - as_fn_error $? "Internal error: Cannot compare to 4.8, only three parts (X.Y.Z) is supported" "$LINENO" 5 + if [[ "$REFERENCE_VERSION" =~ (.*\.){4} ]] ; then + as_fn_error $? "Internal error: Cannot compare to 4.8, only four parts (W.X.Y.Z) is supported" "$LINENO" 5 fi if [[ "$REFERENCE_VERSION" =~ [0-9]{6} ]] ; then @@ -51046,7 +50992,7 @@ $as_echo "$as_me: GCC >= 6 detected; adding ${NO_DELETE_NULL_POINTER_CHECKS_CFLA fi # Version comparison method inspired by http://stackoverflow.com/a/24067243 - COMPARABLE_REFERENCE_VERSION=`$AWK -F. '{ printf("%05d%05d%05d\n", $1, $2, $3) }' <<< "$REFERENCE_VERSION"` + COMPARABLE_REFERENCE_VERSION=`$AWK -F. '{ printf("%05d%05d%05d%05d\n", $1, $2, $3, $4) }' <<< "$REFERENCE_VERSION"` if test $OPENJDK_BUILD_COMPARABLE_ACTUAL_VERSION -ge $COMPARABLE_REFERENCE_VERSION ; then : @@ -51917,8 +51863,8 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if native warnings are errors" >&5 $as_echo_n "checking if native warnings are errors... " >&6; } if test "x$enable_warnings_as_errors" = "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (explicitely set)" >&5 -$as_echo "yes (explicitely set)" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (explicitly set)" >&5 +$as_echo "yes (explicitly set)" >&6; } WARNINGS_AS_ERRORS=true elif test "x$enable_warnings_as_errors" = "xno"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -52583,28 +52529,14 @@ $as_echo "$NATIVE_DEBUG_SYMBOLS" >&6; } COMPILE_WITH_DEBUG_SYMBOLS=true COPY_DEBUG_SYMBOLS=true ZIP_EXTERNAL_DEBUG_SYMBOLS=true - - # Hotspot legacy support, not relevant with COPY_DEBUG_SYMBOLS=true - DEBUG_BINARIES=false - STRIP_POLICY=min_strip - elif test "x$NATIVE_DEBUG_SYMBOLS" = xnone; then COMPILE_WITH_DEBUG_SYMBOLS=false COPY_DEBUG_SYMBOLS=false ZIP_EXTERNAL_DEBUG_SYMBOLS=false - - DEBUG_BINARIES=false - STRIP_POLICY=no_strip elif test "x$NATIVE_DEBUG_SYMBOLS" = xinternal; then COMPILE_WITH_DEBUG_SYMBOLS=true COPY_DEBUG_SYMBOLS=false ZIP_EXTERNAL_DEBUG_SYMBOLS=false - - # Hotspot legacy support, will turn on -g when COPY_DEBUG_SYMBOLS=false - DEBUG_BINARIES=true - STRIP_POLICY=no_strip - STRIP="" - elif test "x$NATIVE_DEBUG_SYMBOLS" = xexternal; then if test "x$OPENJDK_TARGET_OS" = xsolaris || test "x$OPENJDK_TARGET_OS" = xlinux; then @@ -52618,10 +52550,6 @@ $as_echo "$NATIVE_DEBUG_SYMBOLS" >&6; } COMPILE_WITH_DEBUG_SYMBOLS=true COPY_DEBUG_SYMBOLS=true ZIP_EXTERNAL_DEBUG_SYMBOLS=false - - # Hotspot legacy support, not relevant with COPY_DEBUG_SYMBOLS=true - DEBUG_BINARIES=false - STRIP_POLICY=min_strip else as_fn_error $? "Allowed native debug symbols are: none, internal, external, zipped" "$LINENO" 5 fi @@ -52670,10 +52598,6 @@ $as_echo "$as_me: WARNING: Please use --with-native-debug-symbols=zipped ." >&2; - # Legacy values - - - # Check whether --enable-native-coverage was given. if test "${enable_native_coverage+set}" = set; then : @@ -53195,7 +53119,7 @@ fi if test "x$with_msvcr_dll" != x; then - # If given explicitely by user, do not probe. If not present, fail directly. + # If given explicitly by user, do not probe. If not present, fail directly. DLL_NAME="$MSVCR_NAME" POSSIBLE_MSVC_DLL="$with_msvcr_dll" @@ -54544,7 +54468,7 @@ fi if test "x$MSVCP_NAME" != "x"; then if test "x$with_msvcp_dll" != x; then - # If given explicitely by user, do not probe. If not present, fail directly. + # If given explicitly by user, do not probe. If not present, fail directly. DLL_NAME="$MSVCP_NAME" POSSIBLE_MSVC_DLL="$with_msvcp_dll" @@ -55903,7 +55827,7 @@ $as_echo "$as_me: WARNING: X11 is not used, so --with-x is ignored" >&2;} if test "x${with_x}" != x && test "x${with_x}" != xyes; then # The user has specified a X11 base directory. Use it for includes and - # libraries, unless explicitely overridden. + # libraries, unless explicitly overridden. if test "x$x_includes" = xNONE; then x_includes="${with_x}/include" fi @@ -62715,6 +62639,11 @@ if test "${with_libffi_lib+set}" = set; then : withval=$with_libffi_lib; fi + # Check whether --enable-libffi-bundling was given. +if test "${enable_libffi_bundling+set}" = set; then : + enableval=$enable_libffi_bundling; +fi + if test "x$NEEDS_LIB_FFI" = xfalse; then if (test "x${with_libffi}" != x && test "x${with_libffi}" != xno) || \ @@ -62733,6 +62662,7 @@ $as_echo "$as_me: WARNING: libffi not used, so --with-libffi[-*] is ignored" >&2 fi if test "x${with_libffi}" != x; then + LIBFFI_LIB_PATH="${with_libffi}/lib" LIBFFI_LIBS="-L${with_libffi}/lib -lffi" LIBFFI_CFLAGS="-I${with_libffi}/include" LIBFFI_FOUND=yes @@ -62742,6 +62672,7 @@ $as_echo "$as_me: WARNING: libffi not used, so --with-libffi[-*] is ignored" >&2 LIBFFI_FOUND=yes fi if test "x${with_libffi_lib}" != x; then + LIBFFI_LIB_PATH="${with_libffi_lib}" LIBFFI_LIBS="-L${with_libffi_lib} -lffi" LIBFFI_FOUND=yes fi @@ -62951,12 +62882,75 @@ $as_echo "$LIBFFI_WORKS" >&6; } as_fn_error $? "Found libffi but could not link and compile with it. $HELP_MSG" "$LINENO" 5 fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libffi should be bundled" >&5 +$as_echo_n "checking if libffi should be bundled... " >&6; } + if test "x$enable_libffi_bundling" = "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ENABLE_LIBFFI_BUNDLING=false + elif test "x$enable_libffi_bundling" = "xno"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, forced" >&5 +$as_echo "no, forced" >&6; } + ENABLE_LIBFFI_BUNDLING=false + elif test "x$enable_libffi_bundling" = "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, forced" >&5 +$as_echo "yes, forced" >&6; } + ENABLE_LIBFFI_BUNDLING=true + else + as_fn_error $? "Invalid value for --enable-libffi-bundling" "$LINENO" 5 + fi + + # Find the libffi.so.X to bundle + if test "x${ENABLE_LIBFFI_BUNDLING}" = "xtrue"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libffi lib file location" >&5 +$as_echo_n "checking for libffi lib file location... " >&6; } + if test "x${LIBFFI_LIB_PATH}" != x; then + if test -e ${LIBFFI_LIB_PATH}/libffi.so.?; then + LIBFFI_LIB_FILE="${LIBFFI_LIB_PATH}/libffi.so.?" + else + as_fn_error $? "Could not locate libffi.so.? for bundling in ${LIBFFI_LIB_PATH}" "$LINENO" 5 + fi + else + # If we don't have an explicit path, look in a few obvious places + if test "x${OPENJDK_TARGET_CPU}" = "xx86"; then + if test -e ${SYSROOT}/usr/lib/libffi.so.? ; then + LIBFFI_LIB_FILE="${SYSROOT}/usr/lib/libffi.so.?" + elif test -e ${SYSROOT}/usr/lib/i386-linux-gnu/libffi.so.? ; then + LIBFFI_LIB_FILE="${SYSROOT}/usr/lib/i386-linux-gnu/libffi.so.?" + else + as_fn_error $? "Could not locate libffi.so.? for bundling" "$LINENO" 5 + fi + elif test "x${OPENJDK_TARGET_CPU}" = "xx86_64"; then + if test -e ${SYSROOT}/usr/lib64/libffi.so.? ; then + LIBFFI_LIB_FILE="${SYSROOT}/usr/lib64/libffi.so.?" + elif test -e ${SYSROOT}/usr/lib/x86_64-linux-gnu/libffi.so.? ; then + LIBFFI_LIB_FILE="${SYSROOT}/usr/lib/x86_64-linux-gnu/libffi.so.?" + else + as_fn_error $? "Could not locate libffi.so.? for bundling" "$LINENO" 5 + fi + else + # Fallback on the default /usr/lib dir + if test -e ${SYSROOT}/usr/lib/libffi.so.? ; then + LIBFFI_LIB_FILE="${SYSROOT}/usr/lib/libffi.so.?" + else + as_fn_error $? "Could not locate libffi.so.? for bundling" "$LINENO" 5 + fi + fi + fi + # Make sure the wildcard is evaluated + LIBFFI_LIB_FILE="$(ls ${LIBFFI_LIB_FILE})" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${LIBFFI_LIB_FILE}" >&5 +$as_echo "${LIBFFI_LIB_FILE}" >&6; } + fi fi + + if [[ " $JVM_VARIANTS " =~ " zeroshark " ]] ; then # Extract the first word of "llvm-config", so it can be a program name with args. set dummy llvm-config; ac_word=$2 @@ -65525,6 +65519,13 @@ $as_echo "$as_me: WARNING: --with-ccache-dir has no meaning when ccache is not e if test "x$CCACHE" != x; then if test "x$CCACHE" != x; then + if test "x$OPENJDK_BUILD_OS" = "xmacosx"; then + HAS_BAD_CCACHE=`$ECHO $CCACHE_VERSION | \ + $GREP -e '^1\.' -e '^2\.' -e '^3\.0\.' -e '^3\.1\.'` + if test "x$HAS_BAD_CCACHE" != "x"; then + as_fn_error $? "On macosx, ccache 3.2 or later is required, found $CCACHE_VERSION" "$LINENO" 5 + fi + fi if test "x$USE_PRECOMPILED_HEADER" = "x1"; then HAS_BAD_CCACHE=`$ECHO $CCACHE_VERSION | \ $GREP -e '^1.*' -e '^2.*' -e '^3\.0.*' -e '^3\.1\.[0123]$'` diff --git a/common/autoconf/help.m4 b/common/autoconf/help.m4 index e7ccdca3cf3..98e2a9258b5 100644 --- a/common/autoconf/help.m4 +++ b/common/autoconf/help.m4 @@ -116,7 +116,7 @@ apt_help() { ffi) PKGHANDLER_COMMAND="sudo apt-get install libffi-dev" ;; x11) - PKGHANDLER_COMMAND="sudo apt-get install libX11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev" ;; + PKGHANDLER_COMMAND="sudo apt-get install libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev" ;; ccache) PKGHANDLER_COMMAND="sudo apt-get install ccache" ;; dtrace) diff --git a/common/autoconf/jdk-options.m4 b/common/autoconf/jdk-options.m4 index 8becdf3669c..acc0dccf8c4 100644 --- a/common/autoconf/jdk-options.m4 +++ b/common/autoconf/jdk-options.m4 @@ -163,9 +163,9 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_OPTIONS], AC_SUBST(CACERTS_FILE) # Enable or disable unlimited crypto - AC_ARG_ENABLE(unlimited-crypto, [AS_HELP_STRING([--enable-unlimited-crypto], - [Enable unlimited crypto policy @<:@disabled@:>@])],, - [enable_unlimited_crypto=no]) + AC_ARG_ENABLE(unlimited-crypto, [AS_HELP_STRING([--disable-unlimited-crypto], + [Disable unlimited crypto policy @<:@enabled@:>@])],, + [enable_unlimited_crypto=yes]) if test "x$enable_unlimited_crypto" = "xyes"; then UNLIMITED_CRYPTO=true else @@ -265,28 +265,14 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_SYMBOLS], COMPILE_WITH_DEBUG_SYMBOLS=true COPY_DEBUG_SYMBOLS=true ZIP_EXTERNAL_DEBUG_SYMBOLS=true - - # Hotspot legacy support, not relevant with COPY_DEBUG_SYMBOLS=true - DEBUG_BINARIES=false - STRIP_POLICY=min_strip - elif test "x$NATIVE_DEBUG_SYMBOLS" = xnone; then COMPILE_WITH_DEBUG_SYMBOLS=false COPY_DEBUG_SYMBOLS=false ZIP_EXTERNAL_DEBUG_SYMBOLS=false - - DEBUG_BINARIES=false - STRIP_POLICY=no_strip elif test "x$NATIVE_DEBUG_SYMBOLS" = xinternal; then COMPILE_WITH_DEBUG_SYMBOLS=true COPY_DEBUG_SYMBOLS=false ZIP_EXTERNAL_DEBUG_SYMBOLS=false - - # Hotspot legacy support, will turn on -g when COPY_DEBUG_SYMBOLS=false - DEBUG_BINARIES=true - STRIP_POLICY=no_strip - STRIP="" - elif test "x$NATIVE_DEBUG_SYMBOLS" = xexternal; then if test "x$OPENJDK_TARGET_OS" = xsolaris || test "x$OPENJDK_TARGET_OS" = xlinux; then @@ -300,10 +286,6 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_SYMBOLS], COMPILE_WITH_DEBUG_SYMBOLS=true COPY_DEBUG_SYMBOLS=true ZIP_EXTERNAL_DEBUG_SYMBOLS=false - - # Hotspot legacy support, not relevant with COPY_DEBUG_SYMBOLS=true - DEBUG_BINARIES=false - STRIP_POLICY=min_strip else AC_MSG_ERROR([Allowed native debug symbols are: none, internal, external, zipped]) fi @@ -321,10 +303,6 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_SYMBOLS], AC_SUBST(COMPILE_WITH_DEBUG_SYMBOLS) AC_SUBST(COPY_DEBUG_SYMBOLS) AC_SUBST(ZIP_EXTERNAL_DEBUG_SYMBOLS) - - # Legacy values - AC_SUBST(DEBUG_BINARIES) - AC_SUBST(STRIP_POLICY) ]) ################################################################################ diff --git a/common/autoconf/jdk-version.m4 b/common/autoconf/jdk-version.m4 index 4846c12647c..949f4276fd4 100644 --- a/common/autoconf/jdk-version.m4 +++ b/common/autoconf/jdk-version.m4 @@ -110,7 +110,7 @@ AC_DEFUN_ONCE([JDKVER_SETUP_JDK_VERSION_NUMBERS], AC_MSG_ERROR([Version string contains + but both 'BUILD' and 'OPT' are missing]) fi # Stop the version part process from setting default values. - # We still allow them to explicitely override though. + # We still allow them to explicitly override though. NO_DEFAULT_VERSION_PARTS=true else AC_MSG_ERROR([--with-version-string fails to parse as a valid version string: $with_version_string]) @@ -160,11 +160,10 @@ AC_DEFUN_ONCE([JDKVER_SETUP_JDK_VERSION_NUMBERS], fi else if test "x$NO_DEFAULT_VERSION_PARTS" != xtrue; then - # Default is to calculate a string like this .. - timestamp=`$DATE '+%Y-%m-%d-%H%M%S'` + # Default is to calculate a string like this 'adhoc..' # Outer [ ] to quote m4. [ basedirname=`$BASENAME "$TOPDIR" | $TR -d -c '[a-z][A-Z][0-9].-'` ] - VERSION_OPT="$timestamp.$USERNAME.$basedirname" + VERSION_OPT="adhoc.$USERNAME.$basedirname" fi fi diff --git a/common/autoconf/lib-ffi.m4 b/common/autoconf/lib-ffi.m4 index b4b36f12e5b..2a714f3a0b9 100644 --- a/common/autoconf/lib-ffi.m4 +++ b/common/autoconf/lib-ffi.m4 @@ -35,6 +35,8 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBFFI], [specify directory for the libffi include files])]) AC_ARG_WITH(libffi-lib, [AS_HELP_STRING([--with-libffi-lib], [specify directory for the libffi library])]) + AC_ARG_ENABLE(libffi-bundling, [AS_HELP_STRING([--enable-libffi-bundling], + [enable bundling of libffi.so to make the built JDK runnable on more systems])]) if test "x$NEEDS_LIB_FFI" = xfalse; then if (test "x${with_libffi}" != x && test "x${with_libffi}" != xno) || \ @@ -52,6 +54,7 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBFFI], fi if test "x${with_libffi}" != x; then + LIBFFI_LIB_PATH="${with_libffi}/lib" LIBFFI_LIBS="-L${with_libffi}/lib -lffi" LIBFFI_CFLAGS="-I${with_libffi}/include" LIBFFI_FOUND=yes @@ -61,6 +64,7 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBFFI], LIBFFI_FOUND=yes fi if test "x${with_libffi_lib}" != x; then + LIBFFI_LIB_PATH="${with_libffi_lib}" LIBFFI_LIBS="-L${with_libffi_lib} -lffi" LIBFFI_FOUND=yes fi @@ -109,8 +113,65 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBFFI], HELP_MSG_MISSING_DEPENDENCY([ffi]) AC_MSG_ERROR([Found libffi but could not link and compile with it. $HELP_MSG]) fi + + AC_MSG_CHECKING([if libffi should be bundled]) + if test "x$enable_libffi_bundling" = "x"; then + AC_MSG_RESULT([no]) + ENABLE_LIBFFI_BUNDLING=false + elif test "x$enable_libffi_bundling" = "xno"; then + AC_MSG_RESULT([no, forced]) + ENABLE_LIBFFI_BUNDLING=false + elif test "x$enable_libffi_bundling" = "xyes"; then + AC_MSG_RESULT([yes, forced]) + ENABLE_LIBFFI_BUNDLING=true + else + AC_MSG_ERROR([Invalid value for --enable-libffi-bundling]) + fi + + # Find the libffi.so.X to bundle + if test "x${ENABLE_LIBFFI_BUNDLING}" = "xtrue"; then + AC_MSG_CHECKING([for libffi lib file location]) + if test "x${LIBFFI_LIB_PATH}" != x; then + if test -e ${LIBFFI_LIB_PATH}/libffi.so.?; then + LIBFFI_LIB_FILE="${LIBFFI_LIB_PATH}/libffi.so.?" + else + AC_MSG_ERROR([Could not locate libffi.so.? for bundling in ${LIBFFI_LIB_PATH}]) + fi + else + # If we don't have an explicit path, look in a few obvious places + if test "x${OPENJDK_TARGET_CPU}" = "xx86"; then + if test -e ${SYSROOT}/usr/lib/libffi.so.? ; then + LIBFFI_LIB_FILE="${SYSROOT}/usr/lib/libffi.so.?" + elif test -e ${SYSROOT}/usr/lib/i386-linux-gnu/libffi.so.? ; then + LIBFFI_LIB_FILE="${SYSROOT}/usr/lib/i386-linux-gnu/libffi.so.?" + else + AC_MSG_ERROR([Could not locate libffi.so.? for bundling]) + fi + elif test "x${OPENJDK_TARGET_CPU}" = "xx86_64"; then + if test -e ${SYSROOT}/usr/lib64/libffi.so.? ; then + LIBFFI_LIB_FILE="${SYSROOT}/usr/lib64/libffi.so.?" + elif test -e ${SYSROOT}/usr/lib/x86_64-linux-gnu/libffi.so.? ; then + LIBFFI_LIB_FILE="${SYSROOT}/usr/lib/x86_64-linux-gnu/libffi.so.?" + else + AC_MSG_ERROR([Could not locate libffi.so.? for bundling]) + fi + else + # Fallback on the default /usr/lib dir + if test -e ${SYSROOT}/usr/lib/libffi.so.? ; then + LIBFFI_LIB_FILE="${SYSROOT}/usr/lib/libffi.so.?" + else + AC_MSG_ERROR([Could not locate libffi.so.? for bundling]) + fi + fi + fi + # Make sure the wildcard is evaluated + LIBFFI_LIB_FILE="$(ls ${LIBFFI_LIB_FILE})" + AC_MSG_RESULT([${LIBFFI_LIB_FILE}]) + fi fi AC_SUBST(LIBFFI_CFLAGS) AC_SUBST(LIBFFI_LIBS) + AC_SUBST(ENABLE_LIBFFI_BUNDLING) + AC_SUBST(LIBFFI_LIB_FILE) ]) diff --git a/common/autoconf/lib-x11.m4 b/common/autoconf/lib-x11.m4 index 0614299e849..d4b878d8c54 100644 --- a/common/autoconf/lib-x11.m4 +++ b/common/autoconf/lib-x11.m4 @@ -42,7 +42,7 @@ AC_DEFUN_ONCE([LIB_SETUP_X11], if test "x${with_x}" != x && test "x${with_x}" != xyes; then # The user has specified a X11 base directory. Use it for includes and - # libraries, unless explicitely overridden. + # libraries, unless explicitly overridden. if test "x$x_includes" = xNONE; then x_includes="${with_x}/include" fi diff --git a/common/autoconf/platform.m4 b/common/autoconf/platform.m4 index e7ffe4a2fa5..392a23ad4cd 100644 --- a/common/autoconf/platform.m4 +++ b/common/autoconf/platform.m4 @@ -162,7 +162,7 @@ AC_DEFUN([PLATFORM_EXTRACT_TARGET_AND_BUILD], # Convert the autoconf OS/CPU value to our own data, into the VAR_OS/CPU variables. PLATFORM_EXTRACT_VARS_FROM_OS($build_os) PLATFORM_EXTRACT_VARS_FROM_CPU($build_cpu) - # ..and setup our own variables. (Do this explicitely to facilitate searching) + # ..and setup our own variables. (Do this explicitly to facilitate searching) OPENJDK_BUILD_OS="$VAR_OS" if test "x$VAR_OS_TYPE" != x; then OPENJDK_BUILD_OS_TYPE="$VAR_OS_TYPE" @@ -192,7 +192,7 @@ AC_DEFUN([PLATFORM_EXTRACT_TARGET_AND_BUILD], # Convert the autoconf OS/CPU value to our own data, into the VAR_OS/CPU variables. PLATFORM_EXTRACT_VARS_FROM_OS($host_os) PLATFORM_EXTRACT_VARS_FROM_CPU($host_cpu) - # ... and setup our own variables. (Do this explicitely to facilitate searching) + # ... and setup our own variables. (Do this explicitly to facilitate searching) OPENJDK_TARGET_OS="$VAR_OS" if test "x$VAR_OS_TYPE" != x; then OPENJDK_TARGET_OS_TYPE="$VAR_OS_TYPE" diff --git a/common/autoconf/source-dirs.m4 b/common/autoconf/source-dirs.m4 index 940707e81a0..81137cf95ff 100644 --- a/common/autoconf/source-dirs.m4 +++ b/common/autoconf/source-dirs.m4 @@ -126,6 +126,12 @@ AC_DEFUN_ONCE([SRCDIRS_SETUP_IMPORT_MODULES], if test -d "$IMPORT_MODULES_TOPDIR/modules_src"; then IMPORT_MODULES_SRC="$IMPORT_MODULES_TOPDIR/modules_src" fi + # Workaround for using different imported module-info.java in Jake due to a + # change in format. Remove once new format is standard in JDK 9 and javafx + # delivers just that. + if test -d "$IMPORT_MODULES_TOPDIR/modules_src_jake"; then + IMPORT_MODULES_SRC="$IMPORT_MODULES_TOPDIR/modules_src_jake $IMPORT_MODULES_SRC" + fi if test -d "$IMPORT_MODULES_TOPDIR/make"; then IMPORT_MODULES_MAKE="$IMPORT_MODULES_TOPDIR/make" fi diff --git a/common/autoconf/spec.gmk.in b/common/autoconf/spec.gmk.in index 1d7cdf263ed..fa16d6bc266 100644 --- a/common/autoconf/spec.gmk.in +++ b/common/autoconf/spec.gmk.in @@ -319,6 +319,8 @@ ALSA_LIBS:=@ALSA_LIBS@ ALSA_CFLAGS:=@ALSA_CFLAGS@ LIBFFI_LIBS:=@LIBFFI_LIBS@ LIBFFI_CFLAGS:=@LIBFFI_CFLAGS@ +ENABLE_LIBFFI_BUNDLING:=@ENABLE_LIBFFI_BUNDLING@ +LIBFFI_LIB_FILE:=@LIBFFI_LIB_FILE@ PACKAGE_PATH=@PACKAGE_PATH@ diff --git a/common/autoconf/toolchain.m4 b/common/autoconf/toolchain.m4 index db3d39e2655..16b0df04b4f 100644 --- a/common/autoconf/toolchain.m4 +++ b/common/autoconf/toolchain.m4 @@ -53,7 +53,7 @@ TOOLCHAIN_DESCRIPTION_xlc="IBM XL C/C++" # Minimum supported versions, empty means unspecified TOOLCHAIN_MINIMUM_VERSION_clang="3.2" TOOLCHAIN_MINIMUM_VERSION_gcc="4.3" -TOOLCHAIN_MINIMUM_VERSION_microsoft="" +TOOLCHAIN_MINIMUM_VERSION_microsoft="16.00.30319.01" # VS2010 TOOLCHAIN_MINIMUM_VERSION_solstudio="5.13" TOOLCHAIN_MINIMUM_VERSION_xlc="" @@ -69,15 +69,15 @@ AC_DEFUN([TOOLCHAIN_PREPARE_FOR_VERSION_COMPARISONS], fi # We only check CC_VERSION_NUMBER since we assume CXX_VERSION_NUMBER is equal. - if [ [[ "[$]$1CC_VERSION_NUMBER" =~ (.*\.){3} ]] ]; then - AC_MSG_WARN([C compiler version number has more than three parts (X.Y.Z): [$]$1CC_VERSION_NUMBER. Comparisons might be wrong.]) + if [ [[ "[$]$1CC_VERSION_NUMBER" =~ (.*\.){4} ]] ]; then + AC_MSG_WARN([C compiler version number has more than four parts (W.X.Y.Z): [$]$1CC_VERSION_NUMBER. Comparisons might be wrong.]) fi if [ [[ "[$]$1CC_VERSION_NUMBER" =~ [0-9]{6} ]] ]; then AC_MSG_WARN([C compiler version number has a part larger than 99999: [$]$1CC_VERSION_NUMBER. Comparisons might be wrong.]) fi - $2COMPARABLE_ACTUAL_VERSION=`$AWK -F. '{ printf("%05d%05d%05d\n", [$]1, [$]2, [$]3) }' <<< "[$]$1CC_VERSION_NUMBER"` + $2COMPARABLE_ACTUAL_VERSION=`$AWK -F. '{ printf("%05d%05d%05d%05d\n", [$]1, [$]2, [$]3, [$]4) }' <<< "[$]$1CC_VERSION_NUMBER"` ]) # Check if the configured compiler (C and C++) is of a specific version or @@ -94,8 +94,8 @@ BASIC_DEFUN_NAMED([TOOLCHAIN_CHECK_COMPILER_VERSION], # Need to assign to a variable since m4 is blocked from modifying parts in []. REFERENCE_VERSION=ARG_VERSION - if [ [[ "$REFERENCE_VERSION" =~ (.*\.){3} ]] ]; then - AC_MSG_ERROR([Internal error: Cannot compare to ARG_VERSION, only three parts (X.Y.Z) is supported]) + if [ [[ "$REFERENCE_VERSION" =~ (.*\.){4} ]] ]; then + AC_MSG_ERROR([Internal error: Cannot compare to ARG_VERSION, only four parts (W.X.Y.Z) is supported]) fi if [ [[ "$REFERENCE_VERSION" =~ [0-9]{6} ]] ]; then @@ -103,7 +103,7 @@ BASIC_DEFUN_NAMED([TOOLCHAIN_CHECK_COMPILER_VERSION], fi # Version comparison method inspired by http://stackoverflow.com/a/24067243 - COMPARABLE_REFERENCE_VERSION=`$AWK -F. '{ printf("%05d%05d%05d\n", [$]1, [$]2, [$]3) }' <<< "$REFERENCE_VERSION"` + COMPARABLE_REFERENCE_VERSION=`$AWK -F. '{ printf("%05d%05d%05d%05d\n", [$]1, [$]2, [$]3, [$]4) }' <<< "$REFERENCE_VERSION"` if test [$]ARG_PREFIX[COMPARABLE_ACTUAL_VERSION] -ge $COMPARABLE_REFERENCE_VERSION ; then : @@ -333,9 +333,11 @@ AC_DEFUN([TOOLCHAIN_EXTRACT_COMPILER_VERSION], if test "x$TOOLCHAIN_TYPE" = xsolstudio; then # cc -V output typically looks like # cc: Sun C 5.12 Linux_i386 2011/11/16 + # or + # cc: Studio 12.5 Sun C 5.14 SunOS_sparc 2016/05/31 COMPILER_VERSION_OUTPUT=`$COMPILER -V 2>&1` # Check that this is likely to be the Solaris Studio cc. - $ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "^.*: Sun $COMPILER_NAME" > /dev/null + $ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "^.* Sun $COMPILER_NAME" > /dev/null if test $? -ne 0; then ALT_VERSION_OUTPUT=`$COMPILER --version 2>&1` AC_MSG_NOTICE([The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required $TOOLCHAIN_TYPE compiler.]) @@ -827,7 +829,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_BUILD_COMPILERS], BUILD_SYSROOT_CFLAGS="$SYSROOT_CFLAGS" BUILD_SYSROOT_LDFLAGS="$SYSROOT_LDFLAGS" BUILD_AR="$AR" - + TOOLCHAIN_PREPARE_FOR_VERSION_COMPARISONS([], [OPENJDK_BUILD_]) fi @@ -842,36 +844,6 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_BUILD_COMPILERS], AC_SUBST(BUILD_AR) ]) -# Setup legacy variables that are still needed as alternative ways to refer to -# parts of the toolchain. -AC_DEFUN_ONCE([TOOLCHAIN_SETUP_LEGACY], -[ - if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then - # For hotspot, we need these in Windows mixed path, - # so rewrite them all. Need added .exe suffix. - HOTSPOT_CXX="$CXX.exe" - HOTSPOT_LD="$LD.exe" - HOTSPOT_MT="$MT.exe" - HOTSPOT_RC="$RC.exe" - BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH(HOTSPOT_CXX) - BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH(HOTSPOT_LD) - BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH(HOTSPOT_MT) - BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH(HOTSPOT_RC) - AC_SUBST(HOTSPOT_MT) - AC_SUBST(HOTSPOT_RC) - else - HOTSPOT_CXX="$CXX" - HOTSPOT_LD="$LD" - fi - AC_SUBST(HOTSPOT_CXX) - AC_SUBST(HOTSPOT_LD) - - if test "x$TOOLCHAIN_TYPE" = xclang; then - USE_CLANG=true - fi - AC_SUBST(USE_CLANG) -]) - # Do some additional checks on the detected tools. AC_DEFUN_ONCE([TOOLCHAIN_MISC_CHECKS], [ diff --git a/common/autoconf/toolchain_windows.m4 b/common/autoconf/toolchain_windows.m4 index 4a40fa63a91..f2304df0fe9 100644 --- a/common/autoconf/toolchain_windows.m4 +++ b/common/autoconf/toolchain_windows.m4 @@ -566,7 +566,7 @@ AC_DEFUN([TOOLCHAIN_SETUP_VS_RUNTIME_DLLS], [path to microsoft C runtime dll (msvcr*.dll) (Windows only) @<:@probed@:>@])]) if test "x$with_msvcr_dll" != x; then - # If given explicitely by user, do not probe. If not present, fail directly. + # If given explicitly by user, do not probe. If not present, fail directly. TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL($MSVCR_NAME, [$with_msvcr_dll], [--with-msvcr-dll]) if test "x$MSVC_DLL" = x; then AC_MSG_ERROR([Could not find a proper $MSVCR_NAME as specified by --with-msvcr-dll]) @@ -589,7 +589,7 @@ AC_DEFUN([TOOLCHAIN_SETUP_VS_RUNTIME_DLLS], if test "x$MSVCP_NAME" != "x"; then if test "x$with_msvcp_dll" != x; then - # If given explicitely by user, do not probe. If not present, fail directly. + # If given explicitly by user, do not probe. If not present, fail directly. TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL($MSVCP_NAME, [$with_msvcp_dll], [--with-msvcp-dll]) if test "x$MSVC_DLL" = x; then AC_MSG_ERROR([Could not find a proper $MSVCP_NAME as specified by --with-msvcp-dll]) diff --git a/common/bin/compare.sh b/common/bin/compare.sh index ba60485ea53..de909e0154c 100644 --- a/common/bin/compare.sh +++ b/common/bin/compare.sh @@ -1295,8 +1295,8 @@ if [ "$SKIP_DEFAULT" != "true" ]; then OTHER_JDK="$OTHER/images/jdk" OTHER_JRE="$OTHER/images/jre" echo "Selecting jdk images for compare" - elif [ -d "$(ls -d $THIS/licensee-src/build/*/images/jdk)" ] \ - && [ -d "$(ls -d $OTHER/licensee-src/build/*/images/jdk)" ] + elif [ -d "$(ls -d $THIS/licensee-src/build/*/images/jdk 2> /dev/null)" ] \ + && [ -d "$(ls -d $OTHER/licensee-src/build/*/images/jdk 2> /dev/null)" ] then echo "Selecting licensee images for compare" # Simply override the THIS and OTHER dir with the build dir from diff --git a/common/conf/jib-profiles.js b/common/conf/jib-profiles.js index fa3c5749f8c..8c0f3a7d23b 100644 --- a/common/conf/jib-profiles.js +++ b/common/conf/jib-profiles.js @@ -346,6 +346,35 @@ var getJibProfilesProfiles = function (input, common) { // Generate debug profiles for the open jprt profiles profiles = concatObjects(profiles, generateDebugProfiles(common, openOnlyProfiles)); + // Profiles for building the zero jvm variant. These are used for verification + // in JPRT. + var zeroProfiles = { + "linux-x64-zero": { + target_os: "linux", + target_cpu: "x64", + dependencies: concat(common.dependencies, "devkit"), + configure_args: concat(common.configure_args, + "--with-zlib=system", + "--with-jvm-variants=zero", + "--enable-libffi-bundling"), + default_make_targets: common.default_make_targets + }, + + "linux-x86-zero": { + target_os: "linux", + target_cpu: "x86", + build_cpu: "x64", + dependencies: concat(common.dependencies, "devkit"), + configure_args: concat(common.configure_args, common.configure_args_32bit, + "--with-zlib=system", + "--with-jvm-variants=zero", + "--enable-libffi-bundling"), + default_make_targets: common.default_make_targets + }, + } + profiles = concatObjects(profiles, zeroProfiles); + profiles = concatObjects(profiles, generateDebugProfiles(common, zeroProfiles)); + // Profiles used to run tests. Used in JPRT. var testOnlyProfiles = { @@ -380,7 +409,7 @@ var getJibProfilesDependencies = function (input, common) { + (input.build_cpu == "x86" ? "i586" : input.build_cpu); var devkit_platform_revisions = { - linux_x64: "gcc4.9.2-OEL6.4+1.0", + linux_x64: "gcc4.9.2-OEL6.4+1.1", macosx_x64: "Xcode6.3-MacOSX10.9+1.0", solaris_x64: "SS12u4-Solaris11u1+1.0", solaris_sparcv9: "SS12u4-Solaris11u1+1.0", @@ -427,7 +456,7 @@ var getJibProfilesDependencies = function (input, common) { jtreg: { server: "javare", revision: "4.2", - build_number: "b03", + build_number: "b04", checksum_file: "MD5_VALUES", file: "jtreg_bin-4.2.zip", environment_name: "JT_HOME", diff --git a/corba/.hgignore b/corba/.hgignore index 5e6b22f24ee..d782b284ae1 100644 --- a/corba/.hgignore +++ b/corba/.hgignore @@ -2,5 +2,4 @@ ^dist/ ^webrev /nbproject/private/ -^.hgtip .DS_Store diff --git a/corba/.hgtags b/corba/.hgtags index 9adfbbce6b1..02f91e90c58 100644 --- a/corba/.hgtags +++ b/corba/.hgtags @@ -389,3 +389,5 @@ b32f998da32b488ec7c4e9dbb3c750841b48e74d jdk-9+141 d4f1dae174098e799c48948e866054c52e11a186 jdk-9+144 a44b156ae7f06bf41b9bece30df7775e482395dd jdk-9+145 ecd74b41ab65bf228837b5bdf99690638d55425c jdk-9+146 +dc49e0922a8e4387cbf8670bbe1dc51c9874b74b jdk-9+147 +f95cc86b6ac22ec1ade5d4f825dc7782adeea228 jdk-9+148 diff --git a/corba/src/java.corba/share/classes/module-info.java b/corba/src/java.corba/share/classes/module-info.java index 58cff065605..10a26f0bc21 100644 --- a/corba/src/java.corba/share/classes/module-info.java +++ b/corba/src/java.corba/share/classes/module-info.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -26,9 +26,10 @@ /** * Defines the Java binding of the OMG CORBA APIs, and the RMI-IIOP API. */ +@Deprecated(since="9", forRemoval=true) module java.corba { - requires public java.desktop; - requires public java.rmi; + requires transitive java.desktop; + requires transitive java.rmi; requires java.logging; requires java.naming; requires java.transaction; @@ -65,14 +66,13 @@ module java.corba { exports org.omg.PortableServer.portable; exports org.omg.SendingContext; exports org.omg.stub.java.rmi; - exports com.sun.corba.se.impl.util to - jdk.rmic; - exports com.sun.jndi.cosnaming to - java.naming; - exports com.sun.jndi.url.corbaname to - java.naming; - exports com.sun.jndi.url.iiop to - java.naming; - exports com.sun.jndi.url.iiopname to - java.naming; + + // rmic --iiop + exports com.sun.corba.se.impl.util to jdk.rmic; + + // JNDI CosNaming provider + opens com.sun.jndi.cosnaming to java.naming; // jndiprovider.properties + exports com.sun.jndi.url.corbaname to java.naming; + exports com.sun.jndi.url.iiop to java.naming; + exports com.sun.jndi.url.iiopname to java.naming; } diff --git a/hotspot/.hgignore b/hotspot/.hgignore index f7628dd32dc..d3a43d0999e 100644 --- a/hotspot/.hgignore +++ b/hotspot/.hgignore @@ -8,7 +8,6 @@ ^src/share/tools/IdealGraphVisualizer/dist/ ^src/share/tools/IdealGraphVisualizer/nbplatform/ .igv.log -^.hgtip .DS_Store ^\.mx.jvmci/env ^\.mx.jvmci/.*\.pyc diff --git a/hotspot/.hgtags b/hotspot/.hgtags index c7fc0f3084c..3a531937f19 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -549,3 +549,5 @@ d87d5d430c42342f0320ca7f5cbe0cbd1f9d62ba jdk-9+143 6187b582d02aee38341dc8ce4011906e9b364e9f jdk-9+144 61e7ea56312351657e69198c503a6f7bf865af83 jdk-9+145 a82cb5350cad96a0b4de496afebe3ded89f27efa jdk-9+146 +132a72c782071cc11ab25cc7c9ee167c3632fea4 jdk-9+147 +5e4e893520ecdbd517c6ed6375f0885664fe62c4 jdk-9+148 diff --git a/hotspot/make/copy/Copy-java.base.gmk b/hotspot/make/copy/Copy-java.base.gmk index ffb6e30dae5..2185b60396e 100644 --- a/hotspot/make/copy/Copy-java.base.gmk +++ b/hotspot/make/copy/Copy-java.base.gmk @@ -65,3 +65,17 @@ $(INCLUDE_DST_DIR)/$(JNI_MD_SUBDIR)/jni_md.h: $(JNI_MD_H_SRC) #TARGETS += $(INCLUDE_DST_DIR)/$(JNI_MD_SUBDIR)/jni_md.h ################################################################################ +# Optionally copy libffi.so.? into the the image + +ifeq ($(ENABLE_LIBFFI_BUNDLING), true) + $(eval $(call SetupCopyFiles, COPY_LIBFFI, \ + FILES := $(LIBFFI_LIB_FILE), \ + DEST := $(call FindLibDirForModule, $(MODULE)), \ + FLATTEN := true, \ + MACRO := install-file-nolink, \ + )) + + TARGETS += $(COPY_LIBFFI) +endif + +################################################################################ diff --git a/hotspot/make/symbols/symbols-unix b/hotspot/make/symbols/symbols-unix index cee0c5f71a8..90326d263dc 100644 --- a/hotspot/make/symbols/symbols-unix +++ b/hotspot/make/symbols/symbols-unix @@ -190,8 +190,6 @@ JVM_AddModuleExportsToAll JVM_AddModuleExportsToAllUnnamed JVM_AddModulePackage JVM_AddReadsModule -JVM_CanReadModule JVM_DefineModule -JVM_IsExportedToModule JVM_SetBootLoaderUnnamedModule JVM_GetModuleByPackageName diff --git a/hotspot/make/test/JtregNative.gmk b/hotspot/make/test/JtregNative.gmk index 78e78d774e5..cdead40d6d1 100644 --- a/hotspot/make/test/JtregNative.gmk +++ b/hotspot/make/test/JtregNative.gmk @@ -55,6 +55,9 @@ BUILD_HOTSPOT_JTREG_NATIVE_SRC := \ $(HOTSPOT_TOPDIR)/test/compiler/calls \ $(HOTSPOT_TOPDIR)/test/compiler/native \ $(HOTSPOT_TOPDIR)/test/serviceability/jvmti/GetNamedModule \ + $(HOTSPOT_TOPDIR)/test/serviceability/jvmti/AddModuleReads \ + $(HOTSPOT_TOPDIR)/test/serviceability/jvmti/AddModuleExportsAndOpens \ + $(HOTSPOT_TOPDIR)/test/serviceability/jvmti/AddModuleUsesAndProvides \ $(HOTSPOT_TOPDIR)/test/testlibrary/jvmti \ $(HOTSPOT_TOPDIR)/test/compiler/jvmci/jdk.vm.ci.code.test \ $(HOTSPOT_TOPDIR)/test/serviceability/jvmti/GetModulesInfo \ @@ -81,6 +84,9 @@ ifeq ($(TOOLCHAIN_TYPE), solstudio) BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_liboverflow := -lc BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libSimpleClassFileLoadHook := -lc BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libGetNamedModuleTest := -lc + BUILD_HOTSPOT_JTREG_LIBRARIES_LDFLAGS_libAddModuleReadsTest := -lc + BUILD_HOTSPOT_JTREG_LIBRARIES_LDFLAGS_libAddModuleExportsAndOpensTest := -lc + BUILD_HOTSPOT_JTREG_LIBRARIES_LDFLAGS_libAddModuleUsesAndProvidesTest := -lc BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libMAAClassFileLoadHook := -lc BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libMAAClassLoadPrepare := -lc BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libMAAThreadStart := -lc diff --git a/hotspot/src/jdk.vm.ci/share/classes/module-info.java b/hotspot/src/jdk.vm.ci/share/classes/module-info.java index f1a766e43f5..e62eed3da6b 100644 --- a/hotspot/src/jdk.vm.ci/share/classes/module-info.java +++ b/hotspot/src/jdk.vm.ci/share/classes/module-info.java @@ -30,9 +30,7 @@ module jdk.vm.ci { uses jdk.vm.ci.hotspot.HotSpotJVMCIBackendFactory; provides jdk.vm.ci.hotspot.HotSpotJVMCIBackendFactory with - jdk.vm.ci.hotspot.aarch64.AArch64HotSpotJVMCIBackendFactory; - provides jdk.vm.ci.hotspot.HotSpotJVMCIBackendFactory with - jdk.vm.ci.hotspot.amd64.AMD64HotSpotJVMCIBackendFactory; - provides jdk.vm.ci.hotspot.HotSpotJVMCIBackendFactory with + jdk.vm.ci.hotspot.aarch64.AArch64HotSpotJVMCIBackendFactory, + jdk.vm.ci.hotspot.amd64.AMD64HotSpotJVMCIBackendFactory, jdk.vm.ci.hotspot.sparc.SPARCHotSpotJVMCIBackendFactory; } diff --git a/hotspot/src/share/vm/classfile/moduleEntry.hpp b/hotspot/src/share/vm/classfile/moduleEntry.hpp index 82f0747a2ae..6301d4ed2b3 100644 --- a/hotspot/src/share/vm/classfile/moduleEntry.hpp +++ b/hotspot/src/share/vm/classfile/moduleEntry.hpp @@ -36,6 +36,8 @@ #include "utilities/ostream.hpp" #define UNNAMED_MODULE "Unnamed Module" +#define JAVAPKG "java/" +#define JAVAPKG_LEN 5 class ModuleClosure; diff --git a/hotspot/src/share/vm/classfile/modules.cpp b/hotspot/src/share/vm/classfile/modules.cpp index a4cdacc6035..9c4aa894f64 100644 --- a/hotspot/src/share/vm/classfile/modules.cpp +++ b/hotspot/src/share/vm/classfile/modules.cpp @@ -34,6 +34,7 @@ #include "classfile/packageEntry.hpp" #include "classfile/stringTable.hpp" #include "classfile/symbolTable.hpp" +#include "classfile/systemDictionary.hpp" #include "classfile/vmSymbols.hpp" #include "logging/log.hpp" #include "memory/resourceArea.hpp" @@ -44,6 +45,7 @@ #include "runtime/handles.inline.hpp" #include "runtime/javaCalls.hpp" #include "runtime/reflection.hpp" +#include "utilities/stringUtils.hpp" #include "utilities/utf8.hpp" static bool verify_module_name(char *module_name) { @@ -290,6 +292,14 @@ void Modules::define_module(jobject module, jstring version, const char* module_version = get_module_version(version); + oop loader = java_lang_reflect_Module::loader(module_handle()); + // Make sure loader is not the jdk.internal.reflect.DelegatingClassLoader. + if (loader != java_lang_ClassLoader::non_reflection_class_loader(loader)) { + THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), + "Class loader is an invalid delegating class loader"); + } + Handle h_loader = Handle(THREAD, loader); + objArrayOop packages_oop = objArrayOop(JNIHandles::resolve(packages)); objArrayHandle packages_h(THREAD, packages_oop); int num_packages = (packages_h == NULL ? 0 : packages_h->length()); @@ -310,6 +320,21 @@ void Modules::define_module(jobject module, jstring version, err_msg("Invalid package name: %s for module: %s", package_name, module_name)); } + + // Only modules defined to either the boot or platform class loader, can define a "java/" package. + if (!h_loader.is_null() && + !SystemDictionary::is_platform_class_loader(h_loader) && + strncmp(package_name, JAVAPKG, JAVAPKG_LEN) == 0) { + const char* class_loader_name = SystemDictionary::loader_name(h_loader()); + StringUtils::replace_no_expand(package_name, "/", "."); + const char* msg_text1 = "Class loader (instance of): "; + const char* msg_text2 = " tried to define prohibited package name: "; + size_t len = strlen(msg_text1) + strlen(class_loader_name) + strlen(msg_text2) + strlen(package_name) + 1; + char* message = NEW_RESOURCE_ARRAY_IN_THREAD(THREAD, char, len); + jio_snprintf(message, len, "%s%s%s%s", msg_text1, class_loader_name, msg_text2, package_name); + THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), message); + } + Symbol* pkg_symbol = SymbolTable::new_symbol(package_name, CHECK); // append_if_missing() returns FALSE if entry already exists. if (!pkg_list->append_if_missing(pkg_symbol)) { @@ -319,20 +344,6 @@ void Modules::define_module(jobject module, jstring version, } } - oop loader = java_lang_reflect_Module::loader(module_handle()); - // Make sure loader is not the sun.reflect.DelegatingClassLoader. - if (loader != java_lang_ClassLoader::non_reflection_class_loader(loader)) { - THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), - "Class loader is an invalid delegating class loader"); - } - Handle h_loader = Handle(THREAD, loader); - - // Check that loader is a subclass of java.lang.ClassLoader. - if (loader != NULL && !java_lang_ClassLoader::is_subclass(h_loader->klass())) { - THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), - "Class loader is not a subclass of java.lang.ClassLoader"); - } - ModuleEntryTable* module_table = get_module_entry_table(h_loader, CHECK); assert(module_table != NULL, "module entry table shouldn't be null"); @@ -595,122 +606,6 @@ void Modules::add_reads_module(jobject from_module, jobject to_module, TRAPS) { } } -jboolean Modules::can_read_module(jobject asking_module, jobject target_module, TRAPS) { - if (asking_module == NULL) { - THROW_MSG_(vmSymbols::java_lang_NullPointerException(), - "asking_module is null", JNI_FALSE); - } - - ModuleEntry* asking_module_entry = get_module_entry(asking_module, CHECK_false); - if (asking_module_entry == NULL) { - THROW_MSG_(vmSymbols::java_lang_IllegalArgumentException(), - "asking_module is invalid", JNI_FALSE); - } - - // Calling can_read_all_unnamed() with NULL tests if a module is loose. - if (target_module == NULL) { - return asking_module_entry->can_read_all_unnamed(); - } - - ModuleEntry* target_module_entry = get_module_entry(target_module, CHECK_false); - if (target_module_entry == NULL) { - THROW_MSG_(vmSymbols::java_lang_IllegalArgumentException(), - "target_module is invalid", JNI_FALSE); - } - - ResourceMark rm(THREAD); - log_debug(modules)("can_read_module(): module %s trying to read module %s, allowed = %s", - asking_module_entry->is_named() ? - asking_module_entry->name()->as_C_string() : UNNAMED_MODULE, - target_module_entry->is_named() ? - target_module_entry->name()->as_C_string() : UNNAMED_MODULE, - BOOL_TO_STR(asking_module_entry == target_module_entry || - (asking_module_entry->can_read_all_unnamed() && - !target_module_entry->is_named()) || - asking_module_entry->can_read(target_module_entry))); - - // Return true if: - // 1. the modules are the same, or - // 2. the asking_module is unnamed (because unnamed modules read everybody), or - // 3. the asking_module is loose and the target module is unnamed, or - // 4. if can_read() returns true. - if (asking_module_entry == target_module_entry || - (asking_module_entry->can_read_all_unnamed() && !target_module_entry->is_named())) { - return true; - } - return asking_module_entry->can_read(target_module_entry); -} - -jboolean Modules::is_exported_to_module(jobject from_module, jstring package, - jobject to_module, TRAPS) { - if (package == NULL) { - THROW_MSG_(vmSymbols::java_lang_NullPointerException(), - "package is null", JNI_FALSE); - } - if (from_module == NULL) { - THROW_MSG_(vmSymbols::java_lang_NullPointerException(), - "from_module is null", JNI_FALSE); - } - ModuleEntry* from_module_entry = get_module_entry(from_module, CHECK_false); - if (from_module_entry == NULL) { - THROW_MSG_(vmSymbols::java_lang_IllegalArgumentException(), - "from_module is invalid", JNI_FALSE); - } - ModuleEntry* to_module_entry; - if (to_module == NULL) { - THROW_MSG_(vmSymbols::java_lang_NullPointerException(), - "to_module is null", JNI_FALSE); - } - to_module_entry = get_module_entry(to_module, CHECK_false); - if (to_module_entry == NULL) { - THROW_MSG_(vmSymbols::java_lang_IllegalArgumentException(), - "to_module is invalid", JNI_FALSE); - } - - PackageEntry *package_entry = get_package_entry(from_module_entry, package, - CHECK_false); - ResourceMark rm(THREAD); - if (package_entry == NULL) { - THROW_MSG_(vmSymbols::java_lang_IllegalArgumentException(), - err_msg("Package not found in from_module: %s", - from_module_entry->is_named() ? - from_module_entry->name()->as_C_string() : UNNAMED_MODULE), - JNI_FALSE); - } - if (package_entry->module() != from_module_entry) { - THROW_MSG_(vmSymbols::java_lang_IllegalArgumentException(), - err_msg("Package: %s found in module %s, not in from_module: %s", - package_entry->name()->as_C_string(), - package_entry->module()->is_named() ? - package_entry->module()->name()->as_C_string() : UNNAMED_MODULE, - from_module_entry->is_named() ? - from_module_entry->name()->as_C_string() : UNNAMED_MODULE), - JNI_FALSE); - } - - log_debug(modules)("is_exported_to_module: package %s from module %s checking" - " if exported to module %s, exported? = %s", - package_entry->name()->as_C_string(), - from_module_entry->is_named() ? - from_module_entry->name()->as_C_string() : UNNAMED_MODULE, - to_module_entry->is_named() ? - to_module_entry->name()->as_C_string() : UNNAMED_MODULE, - BOOL_TO_STR(!from_module_entry->is_named() || - package_entry->is_unqual_exported() || - from_module_entry == to_module_entry || - package_entry->is_qexported_to(to_module_entry))); - - // Return true if: - // 1. from_module is unnamed because unnamed modules export all their packages (by default), or - // 2. if the package is unqualifiedly exported, or - // 3. if the modules are the same, or - // 4. if the package is exported to to_module - return (!from_module_entry->is_named() || - package_entry->is_unqual_exported() || - from_module_entry == to_module_entry || - package_entry->is_qexported_to(to_module_entry)); -} - // This method is called by JFR and JNI. jobject Modules::get_module(jclass clazz, TRAPS) { assert(ModuleEntryTable::javabase_defined(), "Attempt to call get_module before java.base is defined"); @@ -860,11 +755,27 @@ void Modules::add_module_package(jobject module, jstring package, TRAPS) { err_msg("Invalid package name: %s", package_name)); } + ClassLoaderData *loader_data = module_entry->loader_data(); + + // Only modules defined to either the boot or platform class loader, can define a "java/" package. + if (!loader_data->is_the_null_class_loader_data() && + !loader_data->is_platform_class_loader_data() && + strncmp(package_name, JAVAPKG, JAVAPKG_LEN) == 0) { + const char* class_loader_name = SystemDictionary::loader_name(loader_data); + StringUtils::replace_no_expand(package_name, "/", "."); + const char* msg_text1 = "Class loader (instance of): "; + const char* msg_text2 = " tried to define prohibited package name: "; + size_t len = strlen(msg_text1) + strlen(class_loader_name) + strlen(msg_text2) + strlen(package_name) + 1; + char* message = NEW_RESOURCE_ARRAY_IN_THREAD(THREAD, char, len); + jio_snprintf(message, len, "%s%s%s%s", msg_text1, class_loader_name, msg_text2, package_name); + THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), message); + } + log_debug(modules)("add_module_package(): Adding package %s to module %s", package_name, module_entry->name()->as_C_string()); TempNewSymbol pkg_symbol = SymbolTable::new_symbol(package_name, CHECK); - PackageEntryTable* package_table = module_entry->loader_data()->packages(); + PackageEntryTable* package_table = loader_data->packages(); assert(package_table != NULL, "Missing package_table"); bool pkg_exists = false; diff --git a/hotspot/src/share/vm/classfile/modules.hpp b/hotspot/src/share/vm/classfile/modules.hpp index 2d0c3311a05..25d02bf845c 100644 --- a/hotspot/src/share/vm/classfile/modules.hpp +++ b/hotspot/src/share/vm/classfile/modules.hpp @@ -93,24 +93,6 @@ public: // module does not exist. static void add_reads_module(jobject from_module, jobject to_module, TRAPS); - // can_read_module returns TRUE if module asking_module can read module target_module, - // or if they are the same module, or if the asking_module is loose and target_module - // is null. - // - // Throws IllegalArgumentException if: - // * either asking_module or target_module is not a java.lang.reflect.Module - static jboolean can_read_module(jobject asking_module, jobject target_module, TRAPS); - - // If package is valid then this returns TRUE if module from_module exports - // package to module to_module, if from_module and to_module are the same - // module, or if package is exported without qualification. - // - // IllegalArgumentException is throw if: - // * Either to_module or from_module does not exist - // * package is syntactically incorrect - // * package is not in from_module - static jboolean is_exported_to_module(jobject from_module, jstring package, jobject to_module, TRAPS); - // Return the java.lang.reflect.Module object for this class object. static jobject get_module(jclass clazz, TRAPS); diff --git a/hotspot/src/share/vm/classfile/vmSymbols.hpp b/hotspot/src/share/vm/classfile/vmSymbols.hpp index fd3b3fe4173..31e3519bfde 100644 --- a/hotspot/src/share/vm/classfile/vmSymbols.hpp +++ b/hotspot/src/share/vm/classfile/vmSymbols.hpp @@ -451,8 +451,6 @@ template(loader_name, "loader") \ template(module_name, "module") \ template(getModule_name, "getModule") \ - template(addReads_name, "addReads") \ - template(addReads_signature, "(Ljava/lang/reflect/Module;Ljava/lang/reflect/Module;)V") \ template(input_stream_void_signature, "(Ljava/io/InputStream;)V") \ template(definePackage_name, "definePackage") \ template(definePackage_signature, "(Ljava/lang/String;Ljava/lang/reflect/Module;)Ljava/lang/Package;") \ @@ -645,6 +643,15 @@ /* JVMTI/java.lang.instrument support and VM Attach mechanism */ \ template(jdk_internal_module_Modules, "jdk/internal/module/Modules") \ template(jdk_internal_vm_VMSupport, "jdk/internal/vm/VMSupport") \ + template(addReads_name, "addReads") \ + template(addReads_signature, "(Ljava/lang/reflect/Module;Ljava/lang/reflect/Module;)V") \ + template(addExports_name, "addExports") \ + template(addOpens_name, "addOpens") \ + template(addExports_signature, "(Ljava/lang/reflect/Module;Ljava/lang/String;Ljava/lang/reflect/Module;)V") \ + template(addUses_name, "addUses") \ + template(addUses_signature, "(Ljava/lang/reflect/Module;Ljava/lang/Class;)V") \ + template(addProvides_name, "addProvides") \ + template(addProvides_signature, "(Ljava/lang/reflect/Module;Ljava/lang/Class;Ljava/lang/Class;)V") \ template(transformedByAgent_name, "transformedByAgent") \ template(transformedByAgent_signature, "(Ljava/lang/reflect/Module;)V") \ template(appendToClassPathForInstrumentation_name, "appendToClassPathForInstrumentation") \ diff --git a/hotspot/src/share/vm/oops/instanceKlass.cpp b/hotspot/src/share/vm/oops/instanceKlass.cpp index 7e6c3c809fb..32c224592b9 100644 --- a/hotspot/src/share/vm/oops/instanceKlass.cpp +++ b/hotspot/src/share/vm/oops/instanceKlass.cpp @@ -26,6 +26,7 @@ #include "classfile/classFileParser.hpp" #include "classfile/classFileStream.hpp" #include "classfile/javaClasses.hpp" +#include "classfile/moduleEntry.hpp" #include "classfile/systemDictionary.hpp" #include "classfile/systemDictionaryShared.hpp" #include "classfile/verifier.hpp" @@ -2383,18 +2384,17 @@ Klass* InstanceKlass::compute_enclosing_class_impl(instanceKlassHandle self, // Only boot and platform class loaders can define classes in "java/" packages. void InstanceKlass::check_prohibited_package(Symbol* class_name, - Handle class_loader, - TRAPS) { - const char* javapkg = "java/"; + Handle class_loader, + TRAPS) { ResourceMark rm(THREAD); if (!class_loader.is_null() && !SystemDictionary::is_platform_class_loader(class_loader) && class_name != NULL && - strncmp(class_name->as_C_string(), javapkg, strlen(javapkg)) == 0) { + strncmp(class_name->as_C_string(), JAVAPKG, JAVAPKG_LEN) == 0) { TempNewSymbol pkg_name = InstanceKlass::package_from_name(class_name, CHECK); assert(pkg_name != NULL, "Error in parsing package name starting with 'java/'"); char* name = pkg_name->as_C_string(); - const char* class_loader_name = InstanceKlass::cast(class_loader()->klass())->name()->as_C_string(); + const char* class_loader_name = SystemDictionary::loader_name(class_loader()); StringUtils::replace_no_expand(name, "/", "."); const char* msg_text1 = "Class loader (instance of): "; const char* msg_text2 = " tried to load prohibited package name: "; diff --git a/hotspot/src/share/vm/prims/jni.cpp b/hotspot/src/share/vm/prims/jni.cpp index bb67d13caa3..f519e5e2788 100644 --- a/hotspot/src/share/vm/prims/jni.cpp +++ b/hotspot/src/share/vm/prims/jni.cpp @@ -3475,40 +3475,6 @@ JNI_ENTRY(jobject, jni_GetModule(JNIEnv* env, jclass clazz)) JNI_END -JNI_ENTRY(void, jni_AddModuleReads(JNIEnv* env, jobject m1, jobject m2)) - JNIWrapper("AddModuleReads"); - if (m1 == NULL || m2 == NULL) { - THROW(vmSymbols::java_lang_NullPointerException()); - } - JavaValue result(T_VOID); - Handle m1_h(THREAD, JNIHandles::resolve(m1)); - if (!java_lang_reflect_Module::is_instance(m1_h())) { - THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), "Bad m1 object"); - } - Handle m2_h(THREAD, JNIHandles::resolve(m2)); - if (!java_lang_reflect_Module::is_instance(m2_h())) { - THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), "Bad m2 object"); - } - JavaCalls::call_static(&result, - KlassHandle(THREAD, SystemDictionary::module_Modules_klass()), - vmSymbols::addReads_name(), - vmSymbols::addReads_signature(), - m1_h, - m2_h, - THREAD); -JNI_END - - -JNI_ENTRY(jboolean, jni_CanReadModule(JNIEnv* env, jobject m1, jobject m2)) - JNIWrapper("CanReadModule"); - if (m1 == NULL || m2 == NULL) { - THROW_(vmSymbols::java_lang_NullPointerException(), JNI_FALSE); - } - jboolean res = Modules::can_read_module(m1, m2, CHECK_false); - return res; -JNI_END - - // Structure containing all jni functions struct JNINativeInterface_ jni_NativeInterface = { NULL, @@ -3792,9 +3758,7 @@ struct JNINativeInterface_ jni_NativeInterface = { // Module features - jni_GetModule, - jni_AddModuleReads, - jni_CanReadModule + jni_GetModule }; diff --git a/hotspot/src/share/vm/prims/jni.h b/hotspot/src/share/vm/prims/jni.h index 96996885a07..d5de88d0dd8 100644 --- a/hotspot/src/share/vm/prims/jni.h +++ b/hotspot/src/share/vm/prims/jni.h @@ -770,12 +770,6 @@ struct JNINativeInterface_ { jobject (JNICALL *GetModule) (JNIEnv* env, jclass clazz); - - void (JNICALL *AddModuleReads) - (JNIEnv* env, jobject m1, jobject m2); - - jboolean (JNICALL *CanReadModule) - (JNIEnv* env, jobject m1, jobject m2); }; /* @@ -1874,14 +1868,6 @@ struct JNIEnv_ { return functions->GetModule(this, clazz); } - void AddModuleReads(jobject fromModule, jobject sourceModule) { - functions->AddModuleReads(this, fromModule, sourceModule); - } - - jboolean CanReadModule(jobject askingModule, jobject sourceModule) { - return functions->CanReadModule(this, askingModule, sourceModule); - } - #endif /* __cplusplus */ }; diff --git a/hotspot/src/share/vm/prims/jniCheck.cpp b/hotspot/src/share/vm/prims/jniCheck.cpp index d6b703574d0..ea80b5b8110 100644 --- a/hotspot/src/share/vm/prims/jniCheck.cpp +++ b/hotspot/src/share/vm/prims/jniCheck.cpp @@ -2001,37 +2001,6 @@ JNI_ENTRY_CHECKED(jobject, return result; JNI_END -JNI_ENTRY_CHECKED(void, - checked_jni_AddModuleReads(JNIEnv *env, - jobject fromModule, - jobject sourceModule)) - functionEnter(thr); - IN_VM( - jniCheck::validate_object(thr, fromModule); - if (sourceModule != NULL) { - jniCheck::validate_object(thr, sourceModule); - } - ) - UNCHECKED()->AddModuleReads(env,fromModule,sourceModule); - functionExit(thr); -JNI_END - -JNI_ENTRY_CHECKED(jboolean, - checked_jni_CanReadModule(JNIEnv *env, - jobject askingModule, - jobject sourceModule)) - functionEnter(thr); - IN_VM( - jniCheck::validate_object(thr, askingModule); - if (sourceModule != NULL) { - jniCheck::validate_object(thr, sourceModule); - } - ) - jboolean result = UNCHECKED()->CanReadModule(env,askingModule,sourceModule); - functionExit(thr); - return result; -JNI_END - /* * Structure containing all checked jni functions */ @@ -2317,9 +2286,7 @@ struct JNINativeInterface_ checked_jni_NativeInterface = { // Module Features - checked_jni_GetModule, - checked_jni_AddModuleReads, - checked_jni_CanReadModule + checked_jni_GetModule }; diff --git a/hotspot/src/share/vm/prims/jvm.cpp b/hotspot/src/share/vm/prims/jvm.cpp index 51bc575cf99..6a1b4dda087 100644 --- a/hotspot/src/share/vm/prims/jvm.cpp +++ b/hotspot/src/share/vm/prims/jvm.cpp @@ -1008,8 +1008,8 @@ JVM_END // Module support ////////////////////////////////////////////////////////////////////////////// -JVM_ENTRY(void, JVM_DefineModule(JNIEnv *env, jobject module, jstring version, jstring location, - jobjectArray packages)) +JVM_ENTRY(void, JVM_DefineModule(JNIEnv *env, jobject module, jboolean is_open, jstring version, + jstring location, jobjectArray packages)) JVMWrapper("JVM_DefineModule"); Modules::define_module(module, version, location, packages, CHECK); JVM_END @@ -1039,16 +1039,6 @@ JVM_ENTRY (void, JVM_AddReadsModule(JNIEnv *env, jobject from_module, jobject so Modules::add_reads_module(from_module, source_module, CHECK); JVM_END -JVM_ENTRY(jboolean, JVM_CanReadModule(JNIEnv *env, jobject asking_module, jobject source_module)) - JVMWrapper("JVM_CanReadModule"); - return Modules::can_read_module(asking_module, source_module, THREAD); -JVM_END - -JVM_ENTRY(jboolean, JVM_IsExportedToModule(JNIEnv *env, jobject from_module, jstring package, jobject to_module)) - JVMWrapper("JVM_IsExportedToModule"); - return Modules::is_exported_to_module(from_module, package, to_module, THREAD); -JVM_END - JVM_ENTRY (void, JVM_AddModulePackage(JNIEnv *env, jobject module, jstring package)) JVMWrapper("JVM_AddModulePackage"); Modules::add_module_package(module, package, CHECK); diff --git a/hotspot/src/share/vm/prims/jvm.h b/hotspot/src/share/vm/prims/jvm.h index 47bf5a0d023..c713645024e 100644 --- a/hotspot/src/share/vm/prims/jvm.h +++ b/hotspot/src/share/vm/prims/jvm.h @@ -413,8 +413,8 @@ JVM_DefineClassWithSource(JNIEnv *env, const char *name, jobject loader, */ JNIEXPORT void JNICALL -JVM_DefineModule(JNIEnv *env, jobject module, jstring version, jstring location, - jobjectArray packages); +JVM_DefineModule(JNIEnv *env, jobject module, jboolean is_open, jstring version, + jstring location, jobjectArray packages); JNIEXPORT void JNICALL JVM_SetBootLoaderUnnamedModule(JNIEnv *env, jobject module); @@ -431,12 +431,6 @@ JVM_AddModuleExportsToAll(JNIEnv *env, jobject from_module, jstring package); JNIEXPORT void JNICALL JVM_AddReadsModule(JNIEnv *env, jobject from_module, jobject source_module); -JNIEXPORT jboolean JNICALL -JVM_CanReadModule(JNIEnv *env, jobject asking_module, jobject source_module); - -JNIEXPORT jboolean JNICALL -JVM_IsExportedToModule(JNIEnv *env, jobject from_module, jstring package, jobject to_module); - JNIEXPORT void JNICALL JVM_AddModulePackage(JNIEnv* env, jobject module, jstring package); diff --git a/hotspot/src/share/vm/prims/jvmti.xml b/hotspot/src/share/vm/prims/jvmti.xml index bcbfc998567..28144da3a39 100644 --- a/hotspot/src/share/vm/prims/jvmti.xml +++ b/hotspot/src/share/vm/prims/jvmti.xml @@ -863,14 +863,12 @@ Agent_OnUnload_L(JavaVM *vm) - Agents that instrument code in named modules may need to arrange for those - modules to read other modules. If code is instrumented to invoke a method - in a support class in another module, then the module of the instrumented - code should read the module of the supporting class. Furthermore, the - supporting class will only be accessible to the instrumented code if - it is public and in a package that is exported by its module. - Agents can use the JNI functions CanReadModule and - AddModuleReads to test and update a module to read another. + Agents can use the functions , + , , + and + to update a module to expand the set of modules that it reads, the set of + packages that it exports or opens to other modules, or the services that it + uses and provides.

As an aid to agents that deploy supporting classes on the search path of the bootstrap class loader, or the search path of the class loader that @@ -6561,6 +6559,227 @@ class C2 extends C1 implements I2 { + + + Add Module Reads + + Update a module to read another module. This function is a no-op + when is an unnamed module. + This function facilitates the instrumentation of code + in named modules where that instrumentation requires + expanding the set of modules that a module reads. + + new + + + + + + + The module to update. + + + + + + The additional module to read. + + + + + + If is not a module object. + + + If is not a module object. + + + + + + Add Module Exports + + Update a module to export a package to another module. + This function is a no-op when + is an unnamed module or an open module. + This function facilitates the instrumentation of code + in named modules where that instrumentation requires + expanding the set of packages that a module exports. + + new + + + + + + + The module to update. + + + + + + The exported package name. + + + + + + The module the package is exported to. + If the to_module is not a subclass of + java.lang.reflect.Module this function returns + . + + + + + + If is not a module object. + + + If is not a module object. + + + If the package + does not belong to the module. + + + + + + Add Module Opens + + Update a module to open a package to another module. + This function is a no-op when + is an unnamed module or an open module. + This function facilitates the instrumentation of code + in modules where that instrumentation requires + expanding the set of packages that a module opens to + other modules. + + new + + + + + + + The module to update. + + + + + + The package name of the package to open. + + + + + + The module with the package to open. + If the to_module is not a subclass of + java.lang.reflect.Module this function returns + . + + + + + + If is not a module object. + + + If is not a module object. + + + If the package + does not belong to the module. + + + + + + Add Module Uses + + Updates a module to add a service to the set of services that + a module uses. This function is a no-op when the module + is an unnamed module. + This function facilitates the instrumentation of code + in named modules where that instrumentation requires + expanding the set of services that a module is using. + + new + + + + + + + The module to update. + + + + + + The service to use. + + + + + + If is not a module object. + + + If is not a class object. + + + + + + Add Module Provides + + Updates a module to add a service to the set of services that + a module provides. This function is a no-op when the module + is an unnamed module. + This function facilitates the instrumentation of code + in named modules where that instrumentation requires + changes to the services that are provided. + + new + + + + + + + The module to update. + + + + + + The service to provide. + + + + + + The implementation class for the provided service. + + + + + + If is not a module object. + + + If is not a class object. + + + If is not a class object. + + + + @@ -11371,6 +11590,9 @@ myInit() { Invalid field. + + Invalid module. + Invalid method. @@ -14492,17 +14714,17 @@ typedef void (JNICALL *jvmtiEventVMInit) Added support for statically linked agents. - + Support for modules: - The majorversion is 9 now - The ClassFileLoadHook events are not sent during the primordial phase anymore. - - Add new function GetAllModules - - Add new capability can_generate_early_vmstart - Allow CompiledMethodLoad events at start phase - - Add new capability can_generate_early_class_hook_events - - Add new function GetNamedModule - - + - Add new capabilities: + - can_generate_early_vmstart + - can_generate_early_class_hook_events + - Add new functions: + - GetAllModules + - AddModuleReads, AddModuleExports, AddModuleOpens, AddModuleUses, AddModuleProvides Clarified can_redefine_any_classes, can_retransform_any_classes and IsModifiableClass API to disallow some implementation defined classes. diff --git a/hotspot/src/share/vm/prims/jvmtiEnv.cpp b/hotspot/src/share/vm/prims/jvmtiEnv.cpp index 3b8ce659894..f9dc315a552 100644 --- a/hotspot/src/share/vm/prims/jvmtiEnv.cpp +++ b/hotspot/src/share/vm/prims/jvmtiEnv.cpp @@ -227,6 +227,119 @@ JvmtiEnv::GetNamedModule(jobject class_loader, const char* package_name, jobject } /* end GetNamedModule */ +// module - pre-checked for NULL +// to_module - pre-checked for NULL +jvmtiError +JvmtiEnv::AddModuleReads(jobject module, jobject to_module) { + JavaThread* THREAD = JavaThread::current(); + + // check module + Handle h_module(THREAD, JNIHandles::resolve(module)); + if (!java_lang_reflect_Module::is_instance(h_module())) { + return JVMTI_ERROR_INVALID_MODULE; + } + // check to_module + Handle h_to_module(THREAD, JNIHandles::resolve(to_module)); + if (!java_lang_reflect_Module::is_instance(h_to_module())) { + return JVMTI_ERROR_INVALID_MODULE; + } + return JvmtiExport::add_module_reads(h_module, h_to_module, THREAD); +} /* end AddModuleReads */ + + +// module - pre-checked for NULL +// pkg_name - pre-checked for NULL +// to_module - pre-checked for NULL +jvmtiError +JvmtiEnv::AddModuleExports(jobject module, const char* pkg_name, jobject to_module) { + JavaThread* THREAD = JavaThread::current(); + Handle h_pkg = java_lang_String::create_from_str(pkg_name, THREAD); + + // check module + Handle h_module(THREAD, JNIHandles::resolve(module)); + if (!java_lang_reflect_Module::is_instance(h_module())) { + return JVMTI_ERROR_INVALID_MODULE; + } + // check to_module + Handle h_to_module(THREAD, JNIHandles::resolve(to_module)); + if (!java_lang_reflect_Module::is_instance(h_to_module())) { + return JVMTI_ERROR_INVALID_MODULE; + } + return JvmtiExport::add_module_exports(h_module, h_pkg, h_to_module, THREAD); +} /* end AddModuleExports */ + + +// module - pre-checked for NULL +// pkg_name - pre-checked for NULL +// to_module - pre-checked for NULL +jvmtiError +JvmtiEnv::AddModuleOpens(jobject module, const char* pkg_name, jobject to_module) { + JavaThread* THREAD = JavaThread::current(); + Handle h_pkg = java_lang_String::create_from_str(pkg_name, THREAD); + + // check module + Handle h_module(THREAD, JNIHandles::resolve(module)); + if (!java_lang_reflect_Module::is_instance(h_module())) { + return JVMTI_ERROR_INVALID_MODULE; + } + // check to_module + Handle h_to_module(THREAD, JNIHandles::resolve(to_module)); + if (!java_lang_reflect_Module::is_instance(h_to_module())) { + return JVMTI_ERROR_INVALID_MODULE; + } + return JvmtiExport::add_module_opens(h_module, h_pkg, h_to_module, THREAD); +} /* end AddModuleOpens */ + + +// module - pre-checked for NULL +// service - pre-checked for NULL +jvmtiError +JvmtiEnv::AddModuleUses(jobject module, jclass service) { + JavaThread* THREAD = JavaThread::current(); + + // check module + Handle h_module(THREAD, JNIHandles::resolve(module)); + if (!java_lang_reflect_Module::is_instance(h_module())) { + return JVMTI_ERROR_INVALID_MODULE; + } + // check service + Handle h_service(THREAD, JNIHandles::resolve_external_guard(service)); + if (!java_lang_Class::is_instance(h_service()) || + java_lang_Class::is_primitive(h_service())) { + return JVMTI_ERROR_INVALID_CLASS; + } + return JvmtiExport::add_module_uses(h_module, h_service, THREAD); +} /* end AddModuleUses */ + + +// module - pre-checked for NULL +// service - pre-checked for NULL +// impl_class - pre-checked for NULL +jvmtiError +JvmtiEnv::AddModuleProvides(jobject module, jclass service, jclass impl_class) { + JavaThread* THREAD = JavaThread::current(); + + // check module + Handle h_module(THREAD, JNIHandles::resolve(module)); + if (!java_lang_reflect_Module::is_instance(h_module())) { + return JVMTI_ERROR_INVALID_MODULE; + } + // check service + Handle h_service(THREAD, JNIHandles::resolve_external_guard(service)); + if (!java_lang_Class::is_instance(h_service()) || + java_lang_Class::is_primitive(h_service())) { + return JVMTI_ERROR_INVALID_CLASS; + } + // check impl_class + Handle h_impl_class(THREAD, JNIHandles::resolve_external_guard(impl_class)); + if (!java_lang_Class::is_instance(h_impl_class()) || + java_lang_Class::is_primitive(h_impl_class())) { + return JVMTI_ERROR_INVALID_CLASS; + } + return JvmtiExport::add_module_provides(h_module, h_service, h_impl_class, THREAD); +} /* end AddModuleProvides */ + + // // Class functions // diff --git a/hotspot/src/share/vm/prims/jvmtiExport.cpp b/hotspot/src/share/vm/prims/jvmtiExport.cpp index a388f29dc9e..69110397b9e 100644 --- a/hotspot/src/share/vm/prims/jvmtiExport.cpp +++ b/hotspot/src/share/vm/prims/jvmtiExport.cpp @@ -434,6 +434,165 @@ JvmtiExport::add_default_read_edges(Handle h_module, TRAPS) { } } +jvmtiError +JvmtiExport::add_module_reads(Handle module, Handle to_module, TRAPS) { + if (!Universe::is_module_initialized()) { + return JVMTI_ERROR_NONE; // extra safety + } + assert(!module.is_null(), "module should always be set"); + assert(!to_module.is_null(), "to_module should always be set"); + + // Invoke the addReads method + JavaValue result(T_VOID); + JavaCalls::call_static(&result, + SystemDictionary::module_Modules_klass(), + vmSymbols::addReads_name(), + vmSymbols::addReads_signature(), + module, + to_module, + THREAD); + + if (HAS_PENDING_EXCEPTION) { + LogTarget(Trace, jvmti) log; + LogStreamCHeap log_stream(log); + java_lang_Throwable::print(PENDING_EXCEPTION, &log_stream); + log_stream.cr(); + CLEAR_PENDING_EXCEPTION; + return JVMTI_ERROR_INTERNAL; + } + return JVMTI_ERROR_NONE; +} + +jvmtiError +JvmtiExport::add_module_exports(Handle module, Handle pkg_name, Handle to_module, TRAPS) { + if (!Universe::is_module_initialized()) { + return JVMTI_ERROR_NONE; // extra safety + } + assert(!module.is_null(), "module should always be set"); + assert(!to_module.is_null(), "to_module should always be set"); + assert(!pkg_name.is_null(), "pkg_name should always be set"); + + // Invoke the addExports method + JavaValue result(T_VOID); + JavaCalls::call_static(&result, + SystemDictionary::module_Modules_klass(), + vmSymbols::addExports_name(), + vmSymbols::addExports_signature(), + module, + pkg_name, + to_module, + THREAD); + + if (HAS_PENDING_EXCEPTION) { + Symbol* ex_name = PENDING_EXCEPTION->klass()->name(); + LogTarget(Trace, jvmti) log; + LogStreamCHeap log_stream(log); + java_lang_Throwable::print(PENDING_EXCEPTION, &log_stream); + log_stream.cr(); + CLEAR_PENDING_EXCEPTION; + if (ex_name == vmSymbols::java_lang_IllegalArgumentException()) { + return JVMTI_ERROR_ILLEGAL_ARGUMENT; + } + return JVMTI_ERROR_INTERNAL; + } + return JVMTI_ERROR_NONE; +} + +jvmtiError +JvmtiExport::add_module_opens(Handle module, Handle pkg_name, Handle to_module, TRAPS) { + if (!Universe::is_module_initialized()) { + return JVMTI_ERROR_NONE; // extra safety + } + assert(!module.is_null(), "module should always be set"); + assert(!to_module.is_null(), "to_module should always be set"); + assert(!pkg_name.is_null(), "pkg_name should always be set"); + + // Invoke the addOpens method + JavaValue result(T_VOID); + JavaCalls::call_static(&result, + SystemDictionary::module_Modules_klass(), + vmSymbols::addOpens_name(), + vmSymbols::addExports_signature(), + module, + pkg_name, + to_module, + THREAD); + + if (HAS_PENDING_EXCEPTION) { + Symbol* ex_name = PENDING_EXCEPTION->klass()->name(); + LogTarget(Trace, jvmti) log; + LogStreamCHeap log_stream(log); + java_lang_Throwable::print(PENDING_EXCEPTION, &log_stream); + log_stream.cr(); + CLEAR_PENDING_EXCEPTION; + if (ex_name == vmSymbols::java_lang_IllegalArgumentException()) { + return JVMTI_ERROR_ILLEGAL_ARGUMENT; + } + return JVMTI_ERROR_INTERNAL; + } + return JVMTI_ERROR_NONE; +} + +jvmtiError +JvmtiExport::add_module_uses(Handle module, Handle service, TRAPS) { + if (!Universe::is_module_initialized()) { + return JVMTI_ERROR_NONE; // extra safety + } + assert(!module.is_null(), "module should always be set"); + assert(!service.is_null(), "service should always be set"); + + // Invoke the addUses method + JavaValue result(T_VOID); + JavaCalls::call_static(&result, + SystemDictionary::module_Modules_klass(), + vmSymbols::addUses_name(), + vmSymbols::addUses_signature(), + module, + service, + THREAD); + + if (HAS_PENDING_EXCEPTION) { + LogTarget(Trace, jvmti) log; + LogStreamCHeap log_stream(log); + java_lang_Throwable::print(PENDING_EXCEPTION, &log_stream); + log_stream.cr(); + CLEAR_PENDING_EXCEPTION; + return JVMTI_ERROR_INTERNAL; + } + return JVMTI_ERROR_NONE; +} + +jvmtiError +JvmtiExport::add_module_provides(Handle module, Handle service, Handle impl_class, TRAPS) { + if (!Universe::is_module_initialized()) { + return JVMTI_ERROR_NONE; // extra safety + } + assert(!module.is_null(), "module should always be set"); + assert(!service.is_null(), "service should always be set"); + assert(!impl_class.is_null(), "impl_class should always be set"); + + // Invoke the addProvides method + JavaValue result(T_VOID); + JavaCalls::call_static(&result, + SystemDictionary::module_Modules_klass(), + vmSymbols::addProvides_name(), + vmSymbols::addProvides_signature(), + module, + service, + impl_class, + THREAD); + + if (HAS_PENDING_EXCEPTION) { + LogTarget(Trace, jvmti) log; + LogStreamCHeap log_stream(log); + java_lang_Throwable::print(PENDING_EXCEPTION, &log_stream); + log_stream.cr(); + CLEAR_PENDING_EXCEPTION; + return JVMTI_ERROR_INTERNAL; + } + return JVMTI_ERROR_NONE; +} + void JvmtiExport::decode_version_values(jint version, int * major, int * minor, int * micro) { diff --git a/hotspot/src/share/vm/prims/jvmtiExport.hpp b/hotspot/src/share/vm/prims/jvmtiExport.hpp index 6b11139cb20..d280f21a761 100644 --- a/hotspot/src/share/vm/prims/jvmtiExport.hpp +++ b/hotspot/src/share/vm/prims/jvmtiExport.hpp @@ -218,6 +218,21 @@ class JvmtiExport : public AllStatic { // Add read edges to the unnamed modules of the bootstrap and app class loaders static void add_default_read_edges(Handle h_module, TRAPS) NOT_JVMTI_RETURN; + // Add a read edge to the module + static jvmtiError add_module_reads(Handle module, Handle to_module, TRAPS); + + // Updates a module to export a package + static jvmtiError add_module_exports(Handle module, Handle pkg_name, Handle to_module, TRAPS); + + // Updates a module to open a package + static jvmtiError add_module_opens(Handle module, Handle pkg_name, Handle to_module, TRAPS); + + // Add a used service to the module + static jvmtiError add_module_uses(Handle module, Handle service, TRAPS); + + // Add a service provider to the module + static jvmtiError add_module_provides(Handle module, Handle service, Handle impl_class, TRAPS); + // let JVMTI know that the JVM_OnLoad code is running static void enter_onload_phase() NOT_JVMTI_RETURN; diff --git a/hotspot/src/share/vm/prims/whitebox.cpp b/hotspot/src/share/vm/prims/whitebox.cpp index 6ef4f96ed08..ba4f6b8b928 100644 --- a/hotspot/src/share/vm/prims/whitebox.cpp +++ b/hotspot/src/share/vm/prims/whitebox.cpp @@ -1415,14 +1415,6 @@ WB_ENTRY(void, WB_AddReadsModule(JNIEnv* env, jobject o, jobject from_module, jo Modules::add_reads_module(from_module, source_module, CHECK); WB_END -WB_ENTRY(jboolean, WB_CanReadModule(JNIEnv* env, jobject o, jobject asking_module, jobject source_module)) - return Modules::can_read_module(asking_module, source_module, THREAD); -WB_END - -WB_ENTRY(jboolean, WB_IsExportedToModule(JNIEnv* env, jobject o, jobject from_module, jstring package, jobject to_module)) - return Modules::is_exported_to_module(from_module, package, to_module, THREAD); -WB_END - WB_ENTRY(void, WB_AddModulePackage(JNIEnv* env, jobject o, jclass module, jstring package)) Modules::add_module_package(module, package, CHECK); WB_END @@ -1866,10 +1858,6 @@ static JNINativeMethod methods[] = { (void*)&WB_AddModuleExports }, {CC"AddReadsModule", CC"(Ljava/lang/Object;Ljava/lang/Object;)V", (void*)&WB_AddReadsModule }, - {CC"CanReadModule", CC"(Ljava/lang/Object;Ljava/lang/Object;)Z", - (void*)&WB_CanReadModule }, - {CC"IsExportedToModule", CC"(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)Z", - (void*)&WB_IsExportedToModule }, {CC"AddModulePackage", CC"(Ljava/lang/Object;Ljava/lang/String;)V", (void*)&WB_AddModulePackage }, {CC"GetModuleByPackageName", CC"(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;", diff --git a/hotspot/src/share/vm/runtime/arguments.cpp b/hotspot/src/share/vm/runtime/arguments.cpp index b02fa54e95f..f9f1e232ab5 100644 --- a/hotspot/src/share/vm/runtime/arguments.cpp +++ b/hotspot/src/share/vm/runtime/arguments.cpp @@ -170,6 +170,8 @@ bool needs_module_property_warning = false; #define ADDEXPORTS_LEN 10 #define ADDREADS "addreads" #define ADDREADS_LEN 8 +#define ADDOPENS "addopens" +#define ADDOPENS_LEN 8 #define PATCH "patch" #define PATCH_LEN 5 #define ADDMODS "addmods" @@ -196,6 +198,7 @@ bool Arguments::is_internal_module_property(const char* property) { const char* property_suffix = property + MODULE_PROPERTY_PREFIX_LEN; if (matches_property_suffix(property_suffix, ADDEXPORTS, ADDEXPORTS_LEN) || matches_property_suffix(property_suffix, ADDREADS, ADDREADS_LEN) || + matches_property_suffix(property_suffix, ADDOPENS, ADDOPENS_LEN) || matches_property_suffix(property_suffix, PATCH, PATCH_LEN) || matches_property_suffix(property_suffix, ADDMODS, ADDMODS_LEN) || matches_property_suffix(property_suffix, LIMITMODS, LIMITMODS_LEN) || @@ -2555,6 +2558,7 @@ bool Arguments::parse_uintx(const char* value, unsigned int addreads_count = 0; unsigned int addexports_count = 0; +unsigned int addopens_count = 0; unsigned int addmods_count = 0; unsigned int patch_mod_count = 0; @@ -2809,6 +2813,10 @@ jint Arguments::parse_each_vm_init_arg(const JavaVMInitArgs* args, bool* patch_m if (!create_numbered_property("jdk.module.addexports", tail, addexports_count++)) { return JNI_ENOMEM; } + } else if (match_option(option, "--add-opens=", &tail)) { + if (!create_numbered_property("jdk.module.addopens", tail, addopens_count++)) { + return JNI_ENOMEM; + } } else if (match_option(option, "--add-modules=", &tail)) { if (!create_numbered_property("jdk.module.addmods", tail, addmods_count++)) { return JNI_ENOMEM; diff --git a/hotspot/src/share/vm/runtime/javaCalls.cpp b/hotspot/src/share/vm/runtime/javaCalls.cpp index 5c544b4b5dc..5874699a1fc 100644 --- a/hotspot/src/share/vm/runtime/javaCalls.cpp +++ b/hotspot/src/share/vm/runtime/javaCalls.cpp @@ -285,6 +285,14 @@ void JavaCalls::call_static(JavaValue* result, KlassHandle klass, Symbol* name, } +void JavaCalls::call_static(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, Handle arg1, Handle arg2, Handle arg3, TRAPS) { + JavaCallArguments args; // One oop argument + args.push_oop(arg1); + args.push_oop(arg2); + args.push_oop(arg3); + call_static(result, klass, name, signature, &args, CHECK); +} + // ------------------------------------------------- // Implementation of JavaCalls (low level) diff --git a/hotspot/src/share/vm/runtime/javaCalls.hpp b/hotspot/src/share/vm/runtime/javaCalls.hpp index dd67b7e6bc5..efe1f8b9813 100644 --- a/hotspot/src/share/vm/runtime/javaCalls.hpp +++ b/hotspot/src/share/vm/runtime/javaCalls.hpp @@ -210,6 +210,7 @@ class JavaCalls: AllStatic { static void call_static(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, TRAPS); static void call_static(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, Handle arg1, TRAPS); static void call_static(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, Handle arg1, Handle arg2, TRAPS); + static void call_static(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, Handle arg1, Handle arg2, Handle arg3, TRAPS); // Low-level interface static void call(JavaValue* result, const methodHandle& method, JavaCallArguments* args, TRAPS); diff --git a/hotspot/test/Makefile b/hotspot/test/Makefile index 6e38234f52d..e37f990e49c 100644 --- a/hotspot/test/Makefile +++ b/hotspot/test/Makefile @@ -4,7 +4,9 @@ # # This code is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License version 2 only, as -# published by the Free Software Foundation. +# published by the Free Software 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 @@ -22,262 +24,59 @@ # # -# -# Makefile to run various hotspot tests -# +NATIVE_TEST_PATH := hotspot/jtreg/native -ALT_MAKE ?= closed +TREAT_EXIT_CODE_1_AS_0 := true -GETMIXEDPATH=echo +CLEAN_BEFORE_PREP := true -# Utilities used -AWK = awk -CAT = cat -CD = cd -CHMOD = chmod -CP = cp -CUT = cut -DIRNAME = dirname -ECHO = echo -EGREP = egrep -EXPAND = expand -FIND = find -MKDIR = mkdir -PWD = pwd -SED = sed -SORT = sort -TEE = tee -UNAME = uname -UNIQ = uniq -WC = wc -ZIPEXE = zip +USE_JTREG_VERSION := 4.1 -define NEWLINE +USE_JTREG_ASSERT := false +LIMIT_JTREG_VM_MEMORY := false -endef +IGNORE_MARKED_TESTS := true # Get OS name from uname (Cygwin inexplicably adds _NT-5.1) -UNAME_S := $(shell $(UNAME) -s | $(CUT) -f1 -d_) +UNAME_S := $(shell uname -s | cut -f1 -d_) + ifeq ($(UNAME_S), SunOS) - PLATFORM = solaris - SLASH_JAVA = /java - ARCH = $(shell uname -p) - ifeq ($(ARCH), i386) - ARCH=i586 - endif NUM_CORES := $(shell LC_MESSAGES=C /usr/sbin/psrinfo -v | grep -c on-line) endif ifeq ($(UNAME_S), Linux) - PLATFORM = linux - SLASH_JAVA = /java - ARCH = $(shell uname -m) - ifeq ($(ARCH), i386) - ARCH = i586 - endif NUM_CORES := $(shell cat /proc/cpuinfo | grep -c processor) endif ifeq ($(UNAME_S), Darwin) - PLATFORM = bsd - SLASH_JAVA = /java - ARCH = $(shell uname -m) - ifeq ($(ARCH), i386) - ARCH = i586 - endif NUM_CORES := $(shell /usr/sbin/sysctl -n hw.ncpu) endif -ifeq ($(findstring BSD,$(UNAME_S)), BSD) - PLATFORM = bsd - SLASH_JAVA = /java - ARCH = $(shell uname -m) - ifeq ($(ARCH), i386) - ARCH = i586 - endif -endif -ifeq ($(PLATFORM),) - # detect whether we're running in MKS or cygwin - ifeq ($(UNAME_S), Windows_NT) # MKS - GETMIXEDPATH=dosname -s - endif - ifeq ($(findstring CYGWIN,$(UNAME_S)), CYGWIN) - GETMIXEDPATH=cygpath -m - endif - PLATFORM = windows - SLASH_JAVA = J: - ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),ia64) - ARCH = ia64 - else - ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),AMD64) - ARCH = x64 - else - ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)),EM64T) - ARCH = x64 - else - ARCH = i586 - endif - endif - endif - EXESUFFIX = .exe +ifeq ($(findstring CYGWIN,$(UNAME_S)), CYGWIN) ifneq ($(NUMBER_OF_PROCESSORS), ) NUM_CORES := $(NUMBER_OF_PROCESSORS) else ifneq ($(HOTSPOT_BUILD_JOBS), ) NUM_CORES := $(HOTSPOT_BUILD_JOBS) + else + NUM_CORES := 1 # fallback endif endif endif -ifdef ALT_SLASH_JAVA - SLASH_JAVA = $(ALT_SLASH_JAVA) +# Concurrency based on min(cores / 2, 12) +CONCURRENCY := $(shell expr $(NUM_CORES) / 2) +ifeq ($(CONCURRENCY), 0) + CONCURRENCY := 1 +else ifeq ($(shell expr $(CONCURRENCY) \> 12), 1) + CONCURRENCY := 12 endif -# Root of this test area (important to use full paths in some places) -TEST_ROOT := $(shell pwd) +# Make sure MaxRAMFraction is high enough to not cause OOM or swapping since we may end up with a lot of JVM's +JTREG_BASIC_OPTIONS += -vmoption:-XX:MaxRAMFraction=$(shell expr $(CONCURRENCY) \* 4) -# Root of all test results -ifdef TEST_OUTPUT_DIR - $(shell $(MKDIR) -p $(TEST_OUTPUT_DIR)/jtreg) - ABS_TEST_OUTPUT_DIR := \ - $(shell $(CD) $(TEST_OUTPUT_DIR)/jtreg && $(PWD)) -else - ifdef ALT_OUTPUTDIR - ABS_OUTPUTDIR = $(shell $(CD) $(ALT_OUTPUTDIR) && $(PWD)) - else - ABS_OUTPUTDIR = $(shell $(CD) $(TEST_ROOT)/.. && $(PWD)) - endif - - ABS_PLATFORM_BUILD_ROOT = $(ABS_OUTPUTDIR) - ABS_TEST_OUTPUT_DIR := $(ABS_PLATFORM_BUILD_ROOT)/testoutput/$(UNIQUE_DIR) -endif - -# Expect JPRT to set PRODUCT_HOME (the product or jdk in this case to test) -ifndef PRODUCT_HOME - # Try to use images/jdk if it exists - ABS_JDK_IMAGE = $(ABS_PLATFORM_BUILD_ROOT)/images/jdk - PRODUCT_HOME := \ - $(shell \ - if [ -d $(ABS_JDK_IMAGE) ] ; then \ - $(ECHO) "$(ABS_JDK_IMAGE)"; \ - else \ - $(ECHO) "$(ABS_PLATFORM_BUILD_ROOT)"; \ - fi) - PRODUCT_HOME := $(PRODUCT_HOME) -endif - -# Expect JPRT to set JAVA_ARGS (e.g. -server etc.) -JAVA_OPTIONS = -ifdef JAVA_ARGS - JAVA_OPTIONS = $(JAVA_ARGS) -endif - -# jtreg -nativepath

-# -# Local make tests will be TEST_IMAGE_DIR and JPRT with jprt.use.reg.test.bundle=true -# should be JPRT_TESTNATIVE_PATH -ifdef TEST_IMAGE_DIR - TESTNATIVE_DIR = $(TEST_IMAGE_DIR) -else ifdef JPRT_TESTNATIVE_PATH - TESTNATIVE_DIR = $(JPRT_TESTNATIVE_PATH) -endif -ifdef TESTNATIVE_DIR - JTREG_NATIVE_PATH = -nativepath:$(shell $(GETMIXEDPATH) "$(TESTNATIVE_DIR)/hotspot/jtreg/native") -endif - -# jtreg failure handler config -ifeq ($(FAILURE_HANDLER_DIR), ) - ifneq ($(TESTNATIVE_DIR), ) - FAILURE_HANDLER_DIR := $(TESTNATIVE_DIR)/failure_handler - endif -endif -ifneq ($(FAILURE_HANDLER_DIR), ) - FAILURE_HANDLER_DIR_MIXED := $(shell $(GETMIXEDPATH) "$(FAILURE_HANDLER_DIR)") - JTREG_FAILURE_HANDLER_OPTIONS := \ - -timeoutHandlerDir:$(FAILURE_HANDLER_DIR_MIXED)/jtregFailureHandler.jar \ - -observerDir:$(FAILURE_HANDLER_DIR_MIXED)/jtregFailureHandler.jar \ - -timeoutHandler:jdk.test.failurehandler.jtreg.GatherProcessInfoTimeoutHandler \ - -observer:jdk.test.failurehandler.jtreg.GatherDiagnosticInfoObserver \ - -timeoutHandlerTimeout:0 - ifeq ($(PLATFORM), windows) - JTREG_FAILURE_HANDLER_OPTIONS += -J-Djava.library.path="$(FAILURE_HANDLER_DIR_MIXED)" - endif -endif - -# Expect JPRT to set JPRT_ARCHIVE_BUNDLE (path to zip bundle for results) -ARCHIVE_BUNDLE = $(ABS_TEST_OUTPUT_DIR)/ARCHIVE_BUNDLE.zip -ifdef JPRT_ARCHIVE_BUNDLE - ARCHIVE_BUNDLE = $(JPRT_ARCHIVE_BUNDLE) -endif - -# How to create the test bundle (pass or fail, we want to create this) -# Follow command with ";$(BUNDLE_UP_AND_EXIT)", so it always gets executed. -ZIP_UP_RESULTS = ( $(MKDIR) -p `$(DIRNAME) $(ARCHIVE_BUNDLE)` \ - && $(CD) $(ABS_TEST_OUTPUT_DIR) \ - && $(CHMOD) -R a+r . \ - && $(ZIPEXE) -q -r $(ARCHIVE_BUNDLE) . ) - -# important results files -SUMMARY_TXT = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/JTreport/text/summary.txt") -STATS_TXT_NAME = Stats.txt -STATS_TXT = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/$(STATS_TXT_NAME)") -RUNLIST = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/runlist.txt") -PASSLIST = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/passlist.txt") -FAILLIST = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/faillist.txt") -EXITCODE = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/exitcode.txt") - -TESTEXIT = \ - if [ ! -s $(EXITCODE) ] ; then \ - $(ECHO) "ERROR: EXITCODE file not filled in."; \ - $(ECHO) "1" > $(EXITCODE); \ - fi ; \ - testExitCode=`$(CAT) $(EXITCODE)`; \ - $(ECHO) "EXIT CODE: $${testExitCode}"; \ - exit $${testExitCode} - -BUNDLE_UP_AND_EXIT = \ -( \ - jtregExitCode=$$? && \ - _summary="$(SUMMARY_TXT)"; \ - if [ $${jtregExitCode} = 1 ] ; then \ - jtregExitCode=0; \ - fi; \ - $(RM) -f $(STATS_TXT) $(RUNLIST) $(PASSLIST) $(FAILLIST) $(EXITCODE); \ - $(ECHO) "$${jtregExitCode}" > $(EXITCODE); \ - if [ -r "$${_summary}" ] ; then \ - $(ECHO) "Summary: $(UNIQUE_DIR)" > $(STATS_TXT); \ - $(EXPAND) $${_summary} | $(EGREP) -v ' Not run\.' > $(RUNLIST); \ - $(EGREP) ' Passed\.' $(RUNLIST) \ - | $(EGREP) -v ' Error\.' \ - | $(EGREP) -v ' Failed\.' > $(PASSLIST); \ - ( $(EGREP) ' Failed\.' $(RUNLIST); \ - $(EGREP) ' Error\.' $(RUNLIST); \ - $(EGREP) -v ' Passed\.' $(RUNLIST) ) \ - | $(SORT) | $(UNIQ) > $(FAILLIST); \ - if [ $${jtregExitCode} != 0 -o -s $(FAILLIST) ] ; then \ - $(EXPAND) $(FAILLIST) \ - | $(CUT) -d' ' -f1 \ - | $(SED) -e 's@^@FAILED: @' >> $(STATS_TXT); \ - if [ $${jtregExitCode} = 0 ] ; then \ - jtregExitCode=1; \ - fi; \ - fi; \ - runc="`$(CAT) $(RUNLIST) | $(WC) -l | $(AWK) '{print $$1;}'`"; \ - passc="`$(CAT) $(PASSLIST) | $(WC) -l | $(AWK) '{print $$1;}'`"; \ - failc="`$(CAT) $(FAILLIST) | $(WC) -l | $(AWK) '{print $$1;}'`"; \ - exclc="FIXME CODETOOLS-7900176"; \ - $(ECHO) "TEST STATS: name=$(UNIQUE_DIR) run=$${runc} pass=$${passc} fail=$${failc}" \ - >> $(STATS_TXT); \ - else \ - $(ECHO) "Missing file: $${_summary}" >> $(STATS_TXT); \ - fi; \ - if [ -f $(STATS_TXT) ] ; then \ - $(CAT) $(STATS_TXT); \ - fi; \ - $(ZIP_UP_RESULTS) ; \ - $(TESTEXIT) \ -) +# Include the common base file with most of the logic +include ../../test/TestCommon.gmk ################################################################ - # Default make rule (runs jtreg_tests) all: hotspot_all @$(ECHO) "Testing completed successfully" @@ -292,106 +91,10 @@ hotspot_%: hotspot_internal: $(ALT_OUTPUTDIR)/jdk/bin/java -XX:+ExecuteInternalVMTests -XX:+ShowMessageBoxOnError -version -# Prep for output -prep: clean - @$(MKDIR) -p $(ABS_TEST_OUTPUT_DIR) - @$(MKDIR) -p `dirname $(ARCHIVE_BUNDLE)` - -# Cleanup -clean: - @$(RM) -r $(ABS_TEST_OUTPUT_DIR) - @$(RM) $(ARCHIVE_BUNDLE) - ################################################################ - -# jtreg tests - -# Expect JT_HOME to be set for jtreg tests. (home for jtreg) -ifndef JT_HOME - JT_HOME = $(SLASH_JAVA)/re/jtreg/4.1/promoted/latest/binaries/jtreg - ifdef JPRT_JTREG_HOME - JT_HOME = $(JPRT_JTREG_HOME) - endif -endif - -# When called from JPRT the TESTDIRS variable is set to the jtreg tests to run -ifdef TESTDIRS - TEST_SELECTION = $(TESTDIRS) -endif - -# Concurrency based on min(cores / 2, 12) -ifdef NUM_CORES - CONCURRENCY := $(shell expr $(NUM_CORES) / 2) - ifeq ($(CONCURRENCY), 0) - CONCURRENCY := 1 - else ifeq ($(shell expr $(CONCURRENCY) \> 12), 1) - CONCURRENCY := 12 - endif -else - CONCURRENCY := 1 -endif -JTREG_BASIC_OPTIONS += -concurrency:$(CONCURRENCY) - -# Make sure MaxRAMFraction is high enough to not cause OOM or swapping since we may end up with a lot of JVM's -JTREG_BASIC_OPTIONS += -vmoption:-XX:MaxRAMFraction=$(shell expr $(CONCURRENCY) \* 4) - -ifdef EXTRA_JTREG_OPTIONS - JTREG_BASIC_OPTIONS += $(EXTRA_JTREG_OPTIONS) -endif - -# Default JTREG to run -JTREG = $(JT_HOME)/bin/jtreg - -# Use agent mode -JTREG_BASIC_OPTIONS += -agentvm -# Only run automatic tests -JTREG_BASIC_OPTIONS += -a -# Report details on all failed or error tests, times too -JTREG_BASIC_OPTIONS += -v:fail,error,time -# Retain all files for failing tests -JTREG_BASIC_OPTIONS += -retain:fail,error -# Ignore tests are not run and completely silent about it -JTREG_IGNORE_OPTION = -ignore:quiet -JTREG_BASIC_OPTIONS += $(JTREG_IGNORE_OPTION) -# Multiply by 4 the timeout factor -JTREG_TIMEOUT_OPTION = -timeoutFactor:4 -JTREG_BASIC_OPTIONS += $(JTREG_TIMEOUT_OPTION) -# Set other vm and test options -JTREG_TEST_OPTIONS = $(JAVA_ARGS:%=-javaoptions:%) $(JAVA_OPTIONS:%=-vmoption:%) $(JAVA_VM_ARGS:%=-vmoption:%) - -# Option to tell jtreg to not run tests marked with "ignore" -ifeq ($(PLATFORM), windows) - JTREG_KEY_OPTION = -k:!ignore -else - JTREG_KEY_OPTION = -k:\!ignore -endif -JTREG_BASIC_OPTIONS += $(JTREG_KEY_OPTION) - +ALT_MAKE ?= closed -include $(ALT_MAKE)/Makefile -# Make sure jtreg exists -$(JTREG): $(JT_HOME) - -jtreg_tests: prep $(PRODUCT_HOME) $(JTREG) - ( \ - ( JT_HOME=$(shell $(GETMIXEDPATH) "$(JT_HOME)"); \ - export JT_HOME; \ - $(shell $(GETMIXEDPATH) "$(JTREG)") \ - $(JTREG_BASIC_OPTIONS) \ - -r:$(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/JTreport") \ - -w:$(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/JTwork") \ - -jdk:$(shell $(GETMIXEDPATH) "$(PRODUCT_HOME)") \ - $(JTREG_NATIVE_PATH) \ - $(JTREG_FAILURE_HANDLER_OPTIONS) \ - $(JTREG_EXCLUSIONS) \ - $(JTREG_TEST_OPTIONS) \ - $(TEST_SELECTION) \ - ) ; \ - $(BUNDLE_UP_AND_EXIT) \ - ) 2>&1 | $(TEE) $(ABS_TEST_OUTPUT_DIR)/output.txt ; $(TESTEXIT) - -PHONY_LIST += jtreg_tests - # flags used to execute java in test targets TEST_FLAGS += -version -Xinternalversion -X -help @@ -471,6 +174,12 @@ PHONY_LIST += hotspot_servertest servertest # Run the native gtest tests from the test image +define NEWLINE + + +endef + + hotspot_gtest: $(foreach v, $(JVM_VARIANTS), \ $(MAKE) hotspot_gtest$v $(NEWLINE) ) @@ -481,9 +190,3 @@ hotspot_gtestserver hotspot_gtestclient hotspot_gtestminimal: hotspot_gtest%: PHONY_LIST += hotspot_gtest hotspot_gtestserver hotspot_gtestclient \ hotspot_gtestminimal - -################################################################ -# Phony targets (e.g. these are not filenames) -.PHONY: all clean prep $(PHONY_LIST) - -################################################################ diff --git a/hotspot/test/TEST.ROOT b/hotspot/test/TEST.ROOT index 4fe2b2a0e51..cce42af12df 100644 --- a/hotspot/test/TEST.ROOT +++ b/hotspot/test/TEST.ROOT @@ -47,8 +47,8 @@ requires.properties= \ vm.gc.ConcMarkSweep \ vm.debug -# Tests using jtreg 4.2 b03 features -requiredVersion=4.2 b03 +# Tests using jtreg 4.2 b04 features +requiredVersion=4.2 b04 # Path to libraries in the topmost test directory. This is needed so @library # does not need ../../ notation to reach them diff --git a/hotspot/test/compiler/c2/Test7190310_unsafe.java b/hotspot/test/compiler/c2/Test7190310_unsafe.java index fb2b6f9f26a..5bb7d757d14 100644 --- a/hotspot/test/compiler/c2/Test7190310_unsafe.java +++ b/hotspot/test/compiler/c2/Test7190310_unsafe.java @@ -25,7 +25,8 @@ * @test * @bug 7190310 * @summary Inlining WeakReference.get(), and hoisting $referent may lead to non-terminating loops - * @modules java.base/jdk.internal.misc + * @modules java.base/jdk.internal.misc:+open + * @modules java.base/java.lang.ref:open * * @run main/othervm -Xbatch compiler.c2.Test7190310_unsafe */ diff --git a/hotspot/test/compiler/codegen/Test8011901.java b/hotspot/test/compiler/codegen/Test8011901.java index 6a865c1e894..c7c40ba5227 100644 --- a/hotspot/test/compiler/codegen/Test8011901.java +++ b/hotspot/test/compiler/codegen/Test8011901.java @@ -25,7 +25,7 @@ * @test * @bug 8011901 * @summary instruct xaddL_no_res shouldn't allow 64 bit constants. - * @modules java.base/jdk.internal.misc + * @modules java.base/jdk.internal.misc:+open * * @run main/othervm -XX:-BackgroundCompilation compiler.codegen.Test8011901 */ diff --git a/hotspot/test/compiler/escapeAnalysis/TestUnsafePutAddressNullObjMustNotEscape.java b/hotspot/test/compiler/escapeAnalysis/TestUnsafePutAddressNullObjMustNotEscape.java index 27015125fc5..d9b2f49172d 100644 --- a/hotspot/test/compiler/escapeAnalysis/TestUnsafePutAddressNullObjMustNotEscape.java +++ b/hotspot/test/compiler/escapeAnalysis/TestUnsafePutAddressNullObjMustNotEscape.java @@ -25,7 +25,7 @@ * @test * @bug 8038048 * @summary assert(null_obj->escape_state() == PointsToNode::NoEscape,etc) - * @modules java.base/jdk.internal.misc + * @modules java.base/jdk.internal.misc:+open * * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:+DoEscapeAnalysis * -XX:-TieredCompilation -Xbatch diff --git a/hotspot/test/compiler/intrinsics/bigInteger/MontgomeryMultiplyTest.java b/hotspot/test/compiler/intrinsics/bigInteger/MontgomeryMultiplyTest.java index b524ca47b08..42e312c7472 100644 --- a/hotspot/test/compiler/intrinsics/bigInteger/MontgomeryMultiplyTest.java +++ b/hotspot/test/compiler/intrinsics/bigInteger/MontgomeryMultiplyTest.java @@ -27,7 +27,8 @@ * @bug 8130150 8131779 8139907 * @summary Verify that the Montgomery multiply and square intrinsic works and correctly checks their arguments. * @requires vm.flavor == "server" - * @modules java.base/jdk.internal.misc + * @modules java.base/jdk.internal.misc:open + * @modules java.base/java.math:open * @library /test/lib * * @build sun.hotspot.WhiteBox diff --git a/hotspot/test/compiler/intrinsics/unsafe/AllocateUninitializedArray.java b/hotspot/test/compiler/intrinsics/unsafe/AllocateUninitializedArray.java index 388643cc9fe..fe761caa973 100644 --- a/hotspot/test/compiler/intrinsics/unsafe/AllocateUninitializedArray.java +++ b/hotspot/test/compiler/intrinsics/unsafe/AllocateUninitializedArray.java @@ -25,7 +25,7 @@ * @test * @bug 8150465 * @summary Unsafe methods to produce uninitialized arrays - * @modules java.base/jdk.internal.misc + * @modules java.base/jdk.internal.misc:+open * * @run main/othervm -ea -Diters=200 -Xint * compiler.intrinsics.unsafe.AllocateUninitializedArray diff --git a/hotspot/test/compiler/intrinsics/unsafe/TestUnsafeUnalignedMismatchedAccesses.java b/hotspot/test/compiler/intrinsics/unsafe/TestUnsafeUnalignedMismatchedAccesses.java index eed16e7b282..f08a3ab3166 100644 --- a/hotspot/test/compiler/intrinsics/unsafe/TestUnsafeUnalignedMismatchedAccesses.java +++ b/hotspot/test/compiler/intrinsics/unsafe/TestUnsafeUnalignedMismatchedAccesses.java @@ -25,7 +25,7 @@ * @test * @bug 8136473 * @summary Mismatched stores on same slice possible with Unsafe.Put*Unaligned methods - * @modules java.base/jdk.internal.misc + * @modules java.base/jdk.internal.misc:+open * * @run main/othervm -XX:-UseOnStackReplacement -XX:-BackgroundCompilation * compiler.intrinsics.unsafe.TestUnsafeUnalignedMismatchedAccesses diff --git a/hotspot/test/compiler/intrinsics/unsafe/UnsafeGetAddressTest.java b/hotspot/test/compiler/intrinsics/unsafe/UnsafeGetAddressTest.java index faa5a0bde69..f02308e4638 100644 --- a/hotspot/test/compiler/intrinsics/unsafe/UnsafeGetAddressTest.java +++ b/hotspot/test/compiler/intrinsics/unsafe/UnsafeGetAddressTest.java @@ -25,7 +25,7 @@ * @test * @bug 6653795 * @summary C2 intrinsic for Unsafe.getAddress performs pointer sign extension on 32-bit systems - * @modules java.base/jdk.internal.misc + * @modules java.base/jdk.internal.misc:+open * * @run main compiler.intrinsics.unsafe.UnsafeGetAddressTest */ diff --git a/hotspot/test/compiler/intrinsics/unsafe/UnsafeTwoCASLong.java b/hotspot/test/compiler/intrinsics/unsafe/UnsafeTwoCASLong.java index 30b604c8dd8..8f65f1d5e04 100644 --- a/hotspot/test/compiler/intrinsics/unsafe/UnsafeTwoCASLong.java +++ b/hotspot/test/compiler/intrinsics/unsafe/UnsafeTwoCASLong.java @@ -25,7 +25,7 @@ * @test * @bug 8143930 * @summary C1 LinearScan asserts when compiling two back-to-back CompareAndSwapLongs - * @modules java.base/jdk.internal.misc + * @modules java.base/jdk.internal.misc:+open * * @run testng/othervm -Diters=200000 -XX:TieredStopAtLevel=1 * compiler.intrinsics.unsafe.UnsafeTwoCASLong diff --git a/hotspot/test/compiler/jsr292/RedefineMethodUsedByMultipleMethodHandles.java b/hotspot/test/compiler/jsr292/RedefineMethodUsedByMultipleMethodHandles.java index a8d142e9b69..e923258e480 100644 --- a/hotspot/test/compiler/jsr292/RedefineMethodUsedByMultipleMethodHandles.java +++ b/hotspot/test/compiler/jsr292/RedefineMethodUsedByMultipleMethodHandles.java @@ -30,6 +30,7 @@ * java.compiler * java.instrument * java.management + * jdk.attach * * @run main/othervm compiler.jsr292.RedefineMethodUsedByMultipleMethodHandles */ @@ -42,7 +43,6 @@ import jdk.internal.org.objectweb.asm.ClassWriter; import jdk.internal.org.objectweb.asm.MethodVisitor; import jdk.internal.org.objectweb.asm.Opcodes; -import javax.tools.ToolProvider; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; @@ -132,7 +132,7 @@ public class RedefineMethodUsedByMultipleMethodHandles { int p = vmName.indexOf('@'); assert p != -1 : "VM name not in @ format: " + vmName; String pid = vmName.substring(0, p); - ClassLoader cl = ToolProvider.getSystemToolClassLoader(); + ClassLoader cl = ClassLoader.getSystemClassLoader(); Class c = Class.forName("com.sun.tools.attach.VirtualMachine", true, cl); Method attach = c.getDeclaredMethod("attach", String.class); Method loadAgent = c.getDeclaredMethod("loadAgent", String.class); diff --git a/hotspot/test/compiler/jvmci/compilerToVM/GetResolvedJavaMethodTest.java b/hotspot/test/compiler/jvmci/compilerToVM/GetResolvedJavaMethodTest.java index 24a60d4992e..2349b9e654e 100644 --- a/hotspot/test/compiler/jvmci/compilerToVM/GetResolvedJavaMethodTest.java +++ b/hotspot/test/compiler/jvmci/compilerToVM/GetResolvedJavaMethodTest.java @@ -27,8 +27,8 @@ * @requires (vm.simpleArch == "x64" | vm.simpleArch == "sparcv9" | vm.simpleArch == "aarch64") * @library / /test/lib * @library ../common/patches - * @modules java.base/jdk.internal.misc - * @modules jdk.vm.ci/jdk.vm.ci.hotspot + * @modules java.base/jdk.internal.misc:+open + * @modules jdk.vm.ci/jdk.vm.ci.hotspot:+open * * @build jdk.vm.ci/jdk.vm.ci.hotspot.CompilerToVMHelper * jdk.vm.ci/jdk.vm.ci.hotspot.PublicMetaspaceWrapperObject diff --git a/hotspot/test/compiler/jvmci/compilerToVM/GetSymbolTest.java b/hotspot/test/compiler/jvmci/compilerToVM/GetSymbolTest.java index d8f256f0b52..8f46daaa278 100644 --- a/hotspot/test/compiler/jvmci/compilerToVM/GetSymbolTest.java +++ b/hotspot/test/compiler/jvmci/compilerToVM/GetSymbolTest.java @@ -27,10 +27,10 @@ * @requires (vm.simpleArch == "x64" | vm.simpleArch == "sparcv9" | vm.simpleArch == "aarch64") * @library / /test/lib * @library ../common/patches - * @modules java.base/jdk.internal.misc + * @modules java.base/jdk.internal.misc:+open * @modules java.base/jdk.internal.org.objectweb.asm * java.base/jdk.internal.org.objectweb.asm.tree - * jdk.vm.ci/jdk.vm.ci.hotspot + * @modules jdk.vm.ci/jdk.vm.ci.hotspot:+open * jdk.vm.ci/jdk.vm.ci.code * jdk.vm.ci/jdk.vm.ci.meta * @build jdk.vm.ci/jdk.vm.ci.hotspot.CompilerToVMHelper diff --git a/hotspot/test/compiler/jvmci/compilerToVM/JVM_RegisterJVMCINatives.java b/hotspot/test/compiler/jvmci/compilerToVM/JVM_RegisterJVMCINatives.java index c6b63be07f2..0c4e466cd0f 100644 --- a/hotspot/test/compiler/jvmci/compilerToVM/JVM_RegisterJVMCINatives.java +++ b/hotspot/test/compiler/jvmci/compilerToVM/JVM_RegisterJVMCINatives.java @@ -26,8 +26,8 @@ * @bug 8136421 * @requires (vm.simpleArch == "x64" | vm.simpleArch == "sparcv9" | vm.simpleArch == "aarch64") * @library /test/lib / - * @modules java.base/jdk.internal.misc - * @modules jdk.vm.ci/jdk.vm.ci.hotspot + * @modules java.base/jdk.internal.misc:open + * @modules jdk.vm.ci/jdk.vm.ci.hotspot:open * jdk.vm.ci/jdk.vm.ci.runtime * @run main/othervm -XX:+UnlockExperimentalVMOptions * -Dcompiler.jvmci.compilerToVM.JVM_RegisterJVMCINatives.positive=true diff --git a/hotspot/test/compiler/jvmci/jdk.vm.ci.hotspot.test/src/jdk/vm/ci/hotspot/test/MethodHandleAccessProviderTest.java b/hotspot/test/compiler/jvmci/jdk.vm.ci.hotspot.test/src/jdk/vm/ci/hotspot/test/MethodHandleAccessProviderTest.java index 601b1925bea..a7d2cdd6e85 100644 --- a/hotspot/test/compiler/jvmci/jdk.vm.ci.hotspot.test/src/jdk/vm/ci/hotspot/test/MethodHandleAccessProviderTest.java +++ b/hotspot/test/compiler/jvmci/jdk.vm.ci.hotspot.test/src/jdk/vm/ci/hotspot/test/MethodHandleAccessProviderTest.java @@ -27,9 +27,10 @@ * @bug 8161068 * @requires (vm.simpleArch == "x64" | vm.simpleArch == "sparcv9" | vm.simpleArch == "aarch64") * @library /test/lib /compiler/jvmci/jdk.vm.ci.hotspot.test/src + * @modules java.base/java.lang.invoke:+open * @modules jdk.vm.ci/jdk.vm.ci.meta * jdk.vm.ci/jdk.vm.ci.runtime - * jdk.vm.ci/jdk.vm.ci.hotspot + * @modules jdk.vm.ci/jdk.vm.ci.hotspot:+open * @run testng/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI * jdk.vm.ci.hotspot.test.MethodHandleAccessProviderTest */ diff --git a/hotspot/test/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/RedefineClassTest.java b/hotspot/test/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/RedefineClassTest.java index f56aa751d5f..f859ddfda59 100644 --- a/hotspot/test/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/RedefineClassTest.java +++ b/hotspot/test/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/RedefineClassTest.java @@ -27,6 +27,7 @@ * @library ../../../../../ * @modules jdk.vm.ci/jdk.vm.ci.meta * jdk.vm.ci/jdk.vm.ci.runtime + * jdk.attach * java.base/jdk.internal.misc * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI jdk.vm.ci.runtime.test.RedefineClassTest */ @@ -37,7 +38,6 @@ import jdk.vm.ci.meta.ResolvedJavaMethod; import org.junit.Assert; import org.junit.Test; -import javax.tools.ToolProvider; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; @@ -137,7 +137,7 @@ public class RedefineClassTest extends TypeUniverse { int p = vmName.indexOf('@'); assumeTrue(p != -1); String pid = vmName.substring(0, p); - ClassLoader cl = ToolProvider.getSystemToolClassLoader(); + ClassLoader cl = ClassLoader.getSystemClassLoader(); Class c = Class.forName("com.sun.tools.attach.VirtualMachine", true, cl); Method attach = c.getDeclaredMethod("attach", String.class); Method loadAgent = c.getDeclaredMethod("loadAgent", String.class, String.class); diff --git a/hotspot/test/compiler/rangechecks/TestExplicitRangeChecks.java b/hotspot/test/compiler/rangechecks/TestExplicitRangeChecks.java index 232134d9fcd..75adaa3551b 100644 --- a/hotspot/test/compiler/rangechecks/TestExplicitRangeChecks.java +++ b/hotspot/test/compiler/rangechecks/TestExplicitRangeChecks.java @@ -26,7 +26,7 @@ * @bug 8073480 * @summary explicit range checks should be recognized by C2 * @library /test/lib / - * @modules java.base/jdk.internal.misc + * @modules java.base/jdk.internal.misc:+open * @build sun.hotspot.WhiteBox * @run driver ClassFileInstaller sun.hotspot.WhiteBox * @run main/othervm -ea -Xmixed -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI diff --git a/hotspot/test/compiler/runtime/Test8010927.java b/hotspot/test/compiler/runtime/Test8010927.java index ba50aeb9647..32b62035176 100644 --- a/hotspot/test/compiler/runtime/Test8010927.java +++ b/hotspot/test/compiler/runtime/Test8010927.java @@ -26,7 +26,7 @@ * @bug 8010927 * @summary Kitchensink crashed with SIGSEGV, Problematic frame: v ~StubRoutines::checkcast_arraycopy * @library /test/lib - * @modules java.base/jdk.internal.misc + * @modules java.base/jdk.internal.misc:+open * @build sun.hotspot.WhiteBox * @run driver ClassFileInstaller sun.hotspot.WhiteBox * sun.hotspot.WhiteBox$WhiteBoxPermission diff --git a/hotspot/test/compiler/unsafe/GetUnsafeObjectG1PreBarrier.java b/hotspot/test/compiler/unsafe/GetUnsafeObjectG1PreBarrier.java index be07553cac2..d68cfca860a 100644 --- a/hotspot/test/compiler/unsafe/GetUnsafeObjectG1PreBarrier.java +++ b/hotspot/test/compiler/unsafe/GetUnsafeObjectG1PreBarrier.java @@ -26,7 +26,7 @@ * @bug 8016474 * @summary The bug only happens with C1 and G1 using a different ObjectAlignmentInBytes than KlassAlignmentInBytes (which is 8) * - * @modules java.base/jdk.internal.misc + * @modules java.base/jdk.internal.misc:+open * @run main/othervm -Xbatch -XX:+IgnoreUnrecognizedVMOptions -XX:ObjectAlignmentInBytes=32 * compiler.unsafe.GetUnsafeObjectG1PreBarrier */ diff --git a/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestBoolean.java b/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestBoolean.java index e98e8b43e9f..50e505bd840 100644 --- a/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestBoolean.java +++ b/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestBoolean.java @@ -26,7 +26,7 @@ * @bug 8143628 * @summary Test unsafe access for boolean * - * @modules java.base/jdk.internal.misc + * @modules java.base/jdk.internal.misc:+open * @run testng/othervm -Diters=100 -Xint compiler.unsafe.JdkInternalMiscUnsafeAccessTestBoolean * @run testng/othervm -Diters=20000 -XX:TieredStopAtLevel=1 compiler.unsafe.JdkInternalMiscUnsafeAccessTestBoolean * @run testng/othervm -Diters=20000 -XX:-TieredCompilation compiler.unsafe.JdkInternalMiscUnsafeAccessTestBoolean diff --git a/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestByte.java b/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestByte.java index 78282444e1b..e35e5904d93 100644 --- a/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestByte.java +++ b/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestByte.java @@ -26,7 +26,7 @@ * @bug 8143628 * @summary Test unsafe access for byte * - * @modules java.base/jdk.internal.misc + * @modules java.base/jdk.internal.misc:+open * @run testng/othervm -Diters=100 -Xint compiler.unsafe.JdkInternalMiscUnsafeAccessTestByte * @run testng/othervm -Diters=20000 -XX:TieredStopAtLevel=1 compiler.unsafe.JdkInternalMiscUnsafeAccessTestByte * @run testng/othervm -Diters=20000 -XX:-TieredCompilation compiler.unsafe.JdkInternalMiscUnsafeAccessTestByte diff --git a/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestChar.java b/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestChar.java index c774f6b68b2..0bb36c898bc 100644 --- a/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestChar.java +++ b/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestChar.java @@ -26,7 +26,7 @@ * @bug 8143628 * @summary Test unsafe access for char * - * @modules java.base/jdk.internal.misc + * @modules java.base/jdk.internal.misc:+open * @run testng/othervm -Diters=100 -Xint compiler.unsafe.JdkInternalMiscUnsafeAccessTestChar * @run testng/othervm -Diters=20000 -XX:TieredStopAtLevel=1 compiler.unsafe.JdkInternalMiscUnsafeAccessTestChar * @run testng/othervm -Diters=20000 -XX:-TieredCompilation compiler.unsafe.JdkInternalMiscUnsafeAccessTestChar diff --git a/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestDouble.java b/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestDouble.java index 8a366bf0be4..48a98c619fd 100644 --- a/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestDouble.java +++ b/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestDouble.java @@ -26,7 +26,7 @@ * @bug 8143628 * @summary Test unsafe access for double * - * @modules java.base/jdk.internal.misc + * @modules java.base/jdk.internal.misc:+open * @run testng/othervm -Diters=100 -Xint compiler.unsafe.JdkInternalMiscUnsafeAccessTestDouble * @run testng/othervm -Diters=20000 -XX:TieredStopAtLevel=1 compiler.unsafe.JdkInternalMiscUnsafeAccessTestDouble * @run testng/othervm -Diters=20000 -XX:-TieredCompilation compiler.unsafe.JdkInternalMiscUnsafeAccessTestDouble diff --git a/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestFloat.java b/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestFloat.java index 03df5ea5c03..2a91a7c20c3 100644 --- a/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestFloat.java +++ b/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestFloat.java @@ -26,7 +26,7 @@ * @bug 8143628 * @summary Test unsafe access for float * - * @modules java.base/jdk.internal.misc + * @modules java.base/jdk.internal.misc:+open * @run testng/othervm -Diters=100 -Xint compiler.unsafe.JdkInternalMiscUnsafeAccessTestFloat * @run testng/othervm -Diters=20000 -XX:TieredStopAtLevel=1 compiler.unsafe.JdkInternalMiscUnsafeAccessTestFloat * @run testng/othervm -Diters=20000 -XX:-TieredCompilation compiler.unsafe.JdkInternalMiscUnsafeAccessTestFloat diff --git a/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestInt.java b/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestInt.java index 61498e623e1..b55e3672427 100644 --- a/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestInt.java +++ b/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestInt.java @@ -26,7 +26,7 @@ * @bug 8143628 * @summary Test unsafe access for int * - * @modules java.base/jdk.internal.misc + * @modules java.base/jdk.internal.misc:+open * @run testng/othervm -Diters=100 -Xint compiler.unsafe.JdkInternalMiscUnsafeAccessTestInt * @run testng/othervm -Diters=20000 -XX:TieredStopAtLevel=1 compiler.unsafe.JdkInternalMiscUnsafeAccessTestInt * @run testng/othervm -Diters=20000 -XX:-TieredCompilation compiler.unsafe.JdkInternalMiscUnsafeAccessTestInt diff --git a/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestLong.java b/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestLong.java index 3a07e8e89be..fc78b375071 100644 --- a/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestLong.java +++ b/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestLong.java @@ -26,7 +26,7 @@ * @bug 8143628 * @summary Test unsafe access for long * - * @modules java.base/jdk.internal.misc + * @modules java.base/jdk.internal.misc:+open * @run testng/othervm -Diters=100 -Xint compiler.unsafe.JdkInternalMiscUnsafeAccessTestLong * @run testng/othervm -Diters=20000 -XX:TieredStopAtLevel=1 compiler.unsafe.JdkInternalMiscUnsafeAccessTestLong * @run testng/othervm -Diters=20000 -XX:-TieredCompilation compiler.unsafe.JdkInternalMiscUnsafeAccessTestLong diff --git a/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestObject.java b/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestObject.java index 1c5c2d0d701..039b472ccf7 100644 --- a/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestObject.java +++ b/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestObject.java @@ -26,7 +26,7 @@ * @bug 8143628 * @summary Test unsafe access for Object * - * @modules java.base/jdk.internal.misc + * @modules java.base/jdk.internal.misc:+open * @run testng/othervm -Diters=100 -Xint compiler.unsafe.JdkInternalMiscUnsafeAccessTestObject * @run testng/othervm -Diters=20000 -XX:TieredStopAtLevel=1 compiler.unsafe.JdkInternalMiscUnsafeAccessTestObject * @run testng/othervm -Diters=20000 -XX:-TieredCompilation compiler.unsafe.JdkInternalMiscUnsafeAccessTestObject diff --git a/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestShort.java b/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestShort.java index 30deaa8f6e5..f854979c73f 100644 --- a/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestShort.java +++ b/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestShort.java @@ -26,7 +26,7 @@ * @bug 8143628 * @summary Test unsafe access for short * - * @modules java.base/jdk.internal.misc + * @modules java.base/jdk.internal.misc:+open * @run testng/othervm -Diters=100 -Xint compiler.unsafe.JdkInternalMiscUnsafeAccessTestShort * @run testng/othervm -Diters=20000 -XX:TieredStopAtLevel=1 compiler.unsafe.JdkInternalMiscUnsafeAccessTestShort * @run testng/othervm -Diters=20000 -XX:-TieredCompilation compiler.unsafe.JdkInternalMiscUnsafeAccessTestShort diff --git a/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeUnalignedAccess.java b/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeUnalignedAccess.java index f5b76819f14..53ccfd7c339 100644 --- a/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeUnalignedAccess.java +++ b/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeUnalignedAccess.java @@ -25,7 +25,7 @@ * @test * @bug 8158260 * @summary Test unaligned Unsafe accesses - * @modules java.base/jdk.internal.misc + * @modules java.base/jdk.internal.misc:+open * * @run main/othervm -Diters=20000 -XX:-UseOnStackReplacement -XX:-BackgroundCompilation * compiler.unsafe.JdkInternalMiscUnsafeUnalignedAccess diff --git a/hotspot/test/compiler/unsafe/TestUnsafeLoadControl.java b/hotspot/test/compiler/unsafe/TestUnsafeLoadControl.java index fde5d53dcd1..70c04b5ad85 100644 --- a/hotspot/test/compiler/unsafe/TestUnsafeLoadControl.java +++ b/hotspot/test/compiler/unsafe/TestUnsafeLoadControl.java @@ -25,7 +25,7 @@ * @test * @bug 8077504 * @summary Unsafe load can loose control dependency and cause crash - * @modules java.base/jdk.internal.misc + * @modules java.base/jdk.internal.misc:+open * * @run main/othervm -XX:-BackgroundCompilation -XX:-UseOnStackReplacement * compiler.unsafe.TestUnsafeLoadControl diff --git a/hotspot/test/gc/g1/TestStringDeduplicationAgeThreshold.java b/hotspot/test/gc/g1/TestStringDeduplicationAgeThreshold.java index aa5192d843e..8e303852a26 100644 --- a/hotspot/test/gc/g1/TestStringDeduplicationAgeThreshold.java +++ b/hotspot/test/gc/g1/TestStringDeduplicationAgeThreshold.java @@ -28,7 +28,8 @@ * @key gc * @requires vm.gc.G1 * @library /test/lib - * @modules java.base/jdk.internal.misc + * @modules java.base/jdk.internal.misc:open + * @modules java.base/java.lang:open * java.management */ diff --git a/hotspot/test/gc/g1/TestStringDeduplicationFullGC.java b/hotspot/test/gc/g1/TestStringDeduplicationFullGC.java index be88c99cdd1..3f21d68b4e0 100644 --- a/hotspot/test/gc/g1/TestStringDeduplicationFullGC.java +++ b/hotspot/test/gc/g1/TestStringDeduplicationFullGC.java @@ -28,7 +28,8 @@ * @key gc * @requires vm.gc.G1 * @library /test/lib - * @modules java.base/jdk.internal.misc + * @modules java.base/jdk.internal.misc:open + * @modules java.base/java.lang:open * java.management */ diff --git a/hotspot/test/gc/g1/TestStringDeduplicationInterned.java b/hotspot/test/gc/g1/TestStringDeduplicationInterned.java index 48f4b598d31..c5b82e24343 100644 --- a/hotspot/test/gc/g1/TestStringDeduplicationInterned.java +++ b/hotspot/test/gc/g1/TestStringDeduplicationInterned.java @@ -28,7 +28,8 @@ * @key gc * @requires vm.gc.G1 * @library /test/lib - * @modules java.base/jdk.internal.misc + * @modules java.base/jdk.internal.misc:open + * @modules java.base/java.lang:open * java.management */ diff --git a/hotspot/test/gc/g1/TestStringDeduplicationPrintOptions.java b/hotspot/test/gc/g1/TestStringDeduplicationPrintOptions.java index bb47eb52c7f..aa321a4ce49 100644 --- a/hotspot/test/gc/g1/TestStringDeduplicationPrintOptions.java +++ b/hotspot/test/gc/g1/TestStringDeduplicationPrintOptions.java @@ -28,7 +28,8 @@ * @key gc * @requires vm.gc.G1 * @library /test/lib - * @modules java.base/jdk.internal.misc + * @modules java.base/jdk.internal.misc:open + * @modules java.base/java.lang:open * java.management */ diff --git a/hotspot/test/gc/g1/TestStringDeduplicationTableRehash.java b/hotspot/test/gc/g1/TestStringDeduplicationTableRehash.java index 7c52c36612c..3c2c44ed040 100644 --- a/hotspot/test/gc/g1/TestStringDeduplicationTableRehash.java +++ b/hotspot/test/gc/g1/TestStringDeduplicationTableRehash.java @@ -28,7 +28,8 @@ * @key gc * @requires vm.gc.G1 * @library /test/lib - * @modules java.base/jdk.internal.misc + * @modules java.base/jdk.internal.misc:open + * @modules java.base/java.lang:open * java.management */ diff --git a/hotspot/test/gc/g1/TestStringDeduplicationTableResize.java b/hotspot/test/gc/g1/TestStringDeduplicationTableResize.java index 2a72f4042e2..8dd2b3285ca 100644 --- a/hotspot/test/gc/g1/TestStringDeduplicationTableResize.java +++ b/hotspot/test/gc/g1/TestStringDeduplicationTableResize.java @@ -28,7 +28,8 @@ * @key gc * @requires vm.gc.G1 * @library /test/lib - * @modules java.base/jdk.internal.misc + * @modules java.base/jdk.internal.misc:open + * @modules java.base/java.lang:open * java.management */ diff --git a/hotspot/test/gc/g1/TestStringDeduplicationTools.java b/hotspot/test/gc/g1/TestStringDeduplicationTools.java index b4760317a12..f07240e4b62 100644 --- a/hotspot/test/gc/g1/TestStringDeduplicationTools.java +++ b/hotspot/test/gc/g1/TestStringDeduplicationTools.java @@ -190,6 +190,7 @@ class TestStringDeduplicationTools { "-Xmx" + Xmx + "m", "-XX:+UseG1GC", "-XX:+UnlockDiagnosticVMOptions", + "--add-opens=java.base/java.lang=ALL-UNNAMED", "-XX:+VerifyAfterGC" // Always verify after GC }; diff --git a/hotspot/test/gc/g1/TestStringDeduplicationYoungGC.java b/hotspot/test/gc/g1/TestStringDeduplicationYoungGC.java index 4cbc744a6f6..71bb53dd30d 100644 --- a/hotspot/test/gc/g1/TestStringDeduplicationYoungGC.java +++ b/hotspot/test/gc/g1/TestStringDeduplicationYoungGC.java @@ -28,7 +28,8 @@ * @key gc * @requires vm.gc.G1 * @library /test/lib - * @modules java.base/jdk.internal.misc + * @modules java.base/jdk.internal.misc:open + * @modules java.base/java.lang:open * java.management */ diff --git a/hotspot/test/gc/stress/gcbasher/TestGCBasher.java b/hotspot/test/gc/stress/gcbasher/TestGCBasher.java index 1229f01e097..bda2aa79a4d 100644 --- a/hotspot/test/gc/stress/gcbasher/TestGCBasher.java +++ b/hotspot/test/gc/stress/gcbasher/TestGCBasher.java @@ -38,7 +38,8 @@ public class TestGCBasher { FileSystem fs = FileSystems.getFileSystem(URI.create("jrt:/")); Stream s = Files.walk(fs.getPath("/")); for (Path p : (Iterable)s::iterator) { - if (p.toString().endsWith(".class")) { + if (p.toString().endsWith(".class") && + !p.getFileName().toString().equals("module-info.class")) { byte[] data = Files.readAllBytes(p); Decompiler d = new Decompiler(data); ClassInfo ci = d.getClassInfo(); diff --git a/hotspot/test/runtime/LocalLong/LocalLongTest.java b/hotspot/test/runtime/LocalLong/LocalLongTest.java index 2c6d8bf2035..718f0c42942 100644 --- a/hotspot/test/runtime/LocalLong/LocalLongTest.java +++ b/hotspot/test/runtime/LocalLong/LocalLongTest.java @@ -39,6 +39,10 @@ public class LocalLongTest { public static void main(String... args) throws Exception { if (Platform.is64bit()) { ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-Xint", + "--add-opens", + "java.base/java.lang=ALL-UNNAMED", + "--add-opens", + "java.base/java.lang.invoke=ALL-UNNAMED", "LocalLongHelper"); OutputAnalyzer o = new OutputAnalyzer(pb.start()); o.shouldHaveExitValue(0); diff --git a/hotspot/test/runtime/Throwable/StackTraceLogging.java b/hotspot/test/runtime/Throwable/StackTraceLogging.java index c9aa912b6ad..c86da3a2c29 100644 --- a/hotspot/test/runtime/Throwable/StackTraceLogging.java +++ b/hotspot/test/runtime/Throwable/StackTraceLogging.java @@ -52,6 +52,8 @@ public class StackTraceLogging { public static void main(String[] args) throws Exception { ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-Xlog:stacktrace=info", "-XX:MaxJavaStackTraceDepth=1024", + "--add-opens", + "java.base/java.lang=ALL-UNNAMED", "TestThrowable"); analyzeOutputOn(pb); } diff --git a/hotspot/test/runtime/Throwable/TestThrowable.java b/hotspot/test/runtime/Throwable/TestThrowable.java index fca76e1b927..34e4bd1f7eb 100644 --- a/hotspot/test/runtime/Throwable/TestThrowable.java +++ b/hotspot/test/runtime/Throwable/TestThrowable.java @@ -25,7 +25,8 @@ * @test * @bug 8150778 * @summary Test exception depths, and code to get stack traces - * @modules java.base/jdk.internal.misc + * @modules java.base/jdk.internal.misc:open + * @modules java.base/java.lang:open * @library /test/lib * @run main/othervm -XX:MaxJavaStackTraceDepth=1024 TestThrowable */ diff --git a/hotspot/test/runtime/Throwable/ThrowableIntrospectionSegfault.java b/hotspot/test/runtime/Throwable/ThrowableIntrospectionSegfault.java index e3eecb42d7a..a242d3afcd7 100644 --- a/hotspot/test/runtime/Throwable/ThrowableIntrospectionSegfault.java +++ b/hotspot/test/runtime/Throwable/ThrowableIntrospectionSegfault.java @@ -25,7 +25,8 @@ * @test * @bug 8033735 * @summary check backtrace field introspection - * @modules java.base/jdk.internal.misc + * @modules java.base/jdk.internal.misc:open + * @modules java.base/java.lang:open * @run main ThrowableIntrospectionSegfault */ diff --git a/hotspot/test/runtime/getSysPackage/GetSysPkgTest.java b/hotspot/test/runtime/getSysPackage/GetSysPkgTest.java index fb87f8fbc1e..d3f3ca700d6 100644 --- a/hotspot/test/runtime/getSysPackage/GetSysPkgTest.java +++ b/hotspot/test/runtime/getSysPackage/GetSysPkgTest.java @@ -100,7 +100,7 @@ public class GetSysPkgTest { ClassFileInstaller.writeClassToDisk("GetSysPkg_package/GetSysClass", klassbuf); ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-Xbootclasspath/a:bl_dir", - "--add-exports=java.base/jdk.internal.loader=ALL-UNNAMED", "-cp", "." + File.pathSeparator + + "--add-opens=java.base/jdk.internal.loader=ALL-UNNAMED", "-cp", "." + File.pathSeparator + System.getProperty("test.classes"), "GetSysPkgTest", "do_tests"); OutputAnalyzer output = new OutputAnalyzer(pb.start()); output.shouldHaveExitValue(0); diff --git a/hotspot/test/runtime/modules/AccessCheck/CheckRead.java b/hotspot/test/runtime/modules/AccessCheck/CheckRead.java index 986fd092cc3..6143f0b94b0 100644 --- a/hotspot/test/runtime/modules/AccessCheck/CheckRead.java +++ b/hotspot/test/runtime/modules/AccessCheck/CheckRead.java @@ -69,7 +69,7 @@ public class CheckRead { // Packages: p1 // Packages exported: p1 is exported unqualifiedly ModuleDescriptor descriptor_m1 = - new ModuleDescriptor.Builder("m1") + ModuleDescriptor.module("m1") .requires("java.base") .requires("m3") .exports("p1") @@ -80,9 +80,9 @@ public class CheckRead { // Packages: p2 // Packages exported: p2 is exported to m1 ModuleDescriptor descriptor_m2 = - new ModuleDescriptor.Builder("m2") + ModuleDescriptor.module("m2") .requires("java.base") - .exports("p2", "m1") + .exports("p2", Set.of("m1")) .build(); // Define module: m3 @@ -90,10 +90,10 @@ public class CheckRead { // Packages: p3 // Packages exported: none ModuleDescriptor descriptor_m3 = - new ModuleDescriptor.Builder("m3") + ModuleDescriptor.module("m3") .requires("java.base") .requires("m2") - .conceals("p3") + .contains("p3") .build(); // Set up a ModuleFinder containing all modules for this layer. diff --git a/hotspot/test/runtime/modules/AccessCheck/DiffCL_CheckRead.java b/hotspot/test/runtime/modules/AccessCheck/DiffCL_CheckRead.java index e084f73e8df..b0b64a46d95 100644 --- a/hotspot/test/runtime/modules/AccessCheck/DiffCL_CheckRead.java +++ b/hotspot/test/runtime/modules/AccessCheck/DiffCL_CheckRead.java @@ -69,7 +69,7 @@ public class DiffCL_CheckRead { // Packages: p1 // Packages exported: p1 is exported unqualifiedly ModuleDescriptor descriptor_m1 = - new ModuleDescriptor.Builder("m1") + ModuleDescriptor.module("m1") .requires("java.base") .requires("m3") .exports("p1") @@ -80,9 +80,9 @@ public class DiffCL_CheckRead { // Packages: p2 // Packages exported: p2 is exported to m1 ModuleDescriptor descriptor_m2 = - new ModuleDescriptor.Builder("m2") + ModuleDescriptor.module("m2") .requires("java.base") - .exports("p2", "m1") + .exports("p2", Set.of("m1")) .build(); // Define module: m3 @@ -90,10 +90,10 @@ public class DiffCL_CheckRead { // Packages: p3 // Packages exported: none ModuleDescriptor descriptor_m3 = - new ModuleDescriptor.Builder("m3") + ModuleDescriptor.module("m3") .requires("java.base") .requires("m2") - .conceals("p3") + .contains("p3") .build(); // Set up a ModuleFinder containing all modules for this layer. diff --git a/hotspot/test/runtime/modules/AccessCheck/DiffCL_ExpQualOther.java b/hotspot/test/runtime/modules/AccessCheck/DiffCL_ExpQualOther.java index edbca757818..b7088553bad 100644 --- a/hotspot/test/runtime/modules/AccessCheck/DiffCL_ExpQualOther.java +++ b/hotspot/test/runtime/modules/AccessCheck/DiffCL_ExpQualOther.java @@ -70,7 +70,7 @@ public class DiffCL_ExpQualOther { // Packages: p1 // Packages exported: p1 is exported unqualifiedly ModuleDescriptor descriptor_m1 = - new ModuleDescriptor.Builder("m1") + ModuleDescriptor.module("m1") .requires("java.base") .requires("m2") .requires("m3") @@ -82,9 +82,9 @@ public class DiffCL_ExpQualOther { // Packages: p2 // Packages exported: p2 is exported to m3 ModuleDescriptor descriptor_m2 = - new ModuleDescriptor.Builder("m2") + ModuleDescriptor.module("m2") .requires("java.base") - .exports("p2", "m3") + .exports("p2", Set.of("m3")) .build(); // Define module: m3 @@ -92,10 +92,10 @@ public class DiffCL_ExpQualOther { // Packages: p3 // Packages exported: none ModuleDescriptor descriptor_m3 = - new ModuleDescriptor.Builder("m3") + ModuleDescriptor.module("m3") .requires("java.base") .requires("m2") - .conceals("p3") + .contains("p3") .build(); // Set up a ModuleFinder containing all modules for this layer. diff --git a/hotspot/test/runtime/modules/AccessCheck/DiffCL_ExpQualToM1.java b/hotspot/test/runtime/modules/AccessCheck/DiffCL_ExpQualToM1.java index 32098106e7f..8ca888b312f 100644 --- a/hotspot/test/runtime/modules/AccessCheck/DiffCL_ExpQualToM1.java +++ b/hotspot/test/runtime/modules/AccessCheck/DiffCL_ExpQualToM1.java @@ -68,7 +68,7 @@ public class DiffCL_ExpQualToM1 { // Packages: p1 // Packages exported: p1 is exported to unqualifiedly ModuleDescriptor descriptor_m1 = - new ModuleDescriptor.Builder("m1") + ModuleDescriptor.module("m1") .requires("java.base") .requires("m2") .exports("p1") @@ -79,9 +79,9 @@ public class DiffCL_ExpQualToM1 { // Packages: p2 // Packages exported: package p2 is exported to m1 ModuleDescriptor descriptor_m2 = - new ModuleDescriptor.Builder("m2") + ModuleDescriptor.module("m2") .requires("java.base") - .exports("p2", "m1") + .exports("p2", Set.of("m1")) .build(); // Set up a ModuleFinder containing all modules for this layer. diff --git a/hotspot/test/runtime/modules/AccessCheck/DiffCL_ExpUnqual.java b/hotspot/test/runtime/modules/AccessCheck/DiffCL_ExpUnqual.java index c8d156e73e5..e38d54166ed 100644 --- a/hotspot/test/runtime/modules/AccessCheck/DiffCL_ExpUnqual.java +++ b/hotspot/test/runtime/modules/AccessCheck/DiffCL_ExpUnqual.java @@ -69,7 +69,7 @@ public class DiffCL_ExpUnqual { // Packages: p1 // Packages exported: p1 is exported unqualifiedly ModuleDescriptor descriptor_m1 = - new ModuleDescriptor.Builder("m1") + ModuleDescriptor.module("m1") .requires("java.base") .requires("m2") .exports("p1") @@ -80,7 +80,7 @@ public class DiffCL_ExpUnqual { // Packages: p2 // Packages exported: package p2 is exported to m1 ModuleDescriptor descriptor_m2 = - new ModuleDescriptor.Builder("m2") + ModuleDescriptor.module("m2") .requires("java.base") .exports("p2") .build(); diff --git a/hotspot/test/runtime/modules/AccessCheck/DiffCL_PkgNotExp.java b/hotspot/test/runtime/modules/AccessCheck/DiffCL_PkgNotExp.java index afc3ec811ce..0cc88f7a69b 100644 --- a/hotspot/test/runtime/modules/AccessCheck/DiffCL_PkgNotExp.java +++ b/hotspot/test/runtime/modules/AccessCheck/DiffCL_PkgNotExp.java @@ -68,7 +68,7 @@ public class DiffCL_PkgNotExp { // Packages: p1 // Packages exported: p1 is exported unqualifiedly ModuleDescriptor descriptor_m1 = - new ModuleDescriptor.Builder("m1") + ModuleDescriptor.module("m1") .requires("java.base") .requires("m2") .exports("p1") @@ -79,9 +79,9 @@ public class DiffCL_PkgNotExp { // Packages: p2 // Packages exported: none ModuleDescriptor descriptor_m2 = - new ModuleDescriptor.Builder("m2") + ModuleDescriptor.module("m2") .requires("java.base") - .conceals("p2") + .contains("p2") .build(); // Set up a ModuleFinder containing all modules for this layer. diff --git a/hotspot/test/runtime/modules/AccessCheck/DiffCL_Umod.java b/hotspot/test/runtime/modules/AccessCheck/DiffCL_Umod.java index 5f88ede128b..2a5c723c76f 100644 --- a/hotspot/test/runtime/modules/AccessCheck/DiffCL_Umod.java +++ b/hotspot/test/runtime/modules/AccessCheck/DiffCL_Umod.java @@ -80,7 +80,7 @@ public class DiffCL_Umod { // Packages: p1 // Packages exported: p1 is exported unqualifiedly ModuleDescriptor descriptor_m1 = - new ModuleDescriptor.Builder("m1") + ModuleDescriptor.module("m1") .requires("java.base") .exports("p1") .build(); @@ -129,7 +129,7 @@ public class DiffCL_Umod { // Packages: p1 // Packages exported: p1 is exported unqualifiedly ModuleDescriptor descriptor_m1 = - new ModuleDescriptor.Builder("m1") + ModuleDescriptor.module("m1") .requires("java.base") .exports("p1") .build(); @@ -178,7 +178,7 @@ public class DiffCL_Umod { // Packages: p1 // Packages exported: p1 is exported unqualifiedly ModuleDescriptor descriptor_m1 = - new ModuleDescriptor.Builder("m1") + ModuleDescriptor.module("m1") .requires("java.base") .exports("p1") .build(); diff --git a/hotspot/test/runtime/modules/AccessCheck/DiffCL_UmodUpkg.java b/hotspot/test/runtime/modules/AccessCheck/DiffCL_UmodUpkg.java index b7bb37072e9..b8420c2e5c6 100644 --- a/hotspot/test/runtime/modules/AccessCheck/DiffCL_UmodUpkg.java +++ b/hotspot/test/runtime/modules/AccessCheck/DiffCL_UmodUpkg.java @@ -75,7 +75,7 @@ public class DiffCL_UmodUpkg { // Packages: p3 // Packages exported: p3 is exported unqualifiedly ModuleDescriptor descriptor_m1 = - new ModuleDescriptor.Builder("m1") + ModuleDescriptor.module("m1") .requires("java.base") .exports("p3") .build(); @@ -124,7 +124,7 @@ public class DiffCL_UmodUpkg { // Packages: p3 // Packages exported: p3 is exported unqualifiedly ModuleDescriptor descriptor_m1 = - new ModuleDescriptor.Builder("m1") + ModuleDescriptor.module("m1") .requires("java.base") .exports("p3") .build(); diff --git a/hotspot/test/runtime/modules/AccessCheck/ExpQualOther.java b/hotspot/test/runtime/modules/AccessCheck/ExpQualOther.java index d1c4b207af2..330d7239f3a 100644 --- a/hotspot/test/runtime/modules/AccessCheck/ExpQualOther.java +++ b/hotspot/test/runtime/modules/AccessCheck/ExpQualOther.java @@ -70,7 +70,7 @@ public class ExpQualOther { // Packages: p1 // Packages exported: p1 is exported unqualifiedly ModuleDescriptor descriptor_m1 = - new ModuleDescriptor.Builder("m1") + ModuleDescriptor.module("m1") .requires("java.base") .requires("m2") .requires("m3") @@ -82,9 +82,9 @@ public class ExpQualOther { // Packages: p2 // Packages exported: p2 is exported to m3 ModuleDescriptor descriptor_m2 = - new ModuleDescriptor.Builder("m2") + ModuleDescriptor.module("m2") .requires("java.base") - .exports("p2", "m3") + .exports("p2", Set.of("m3")) .build(); // Define module: m3 @@ -92,10 +92,10 @@ public class ExpQualOther { // Packages: p3 // Packages exported: none ModuleDescriptor descriptor_m3 = - new ModuleDescriptor.Builder("m3") + ModuleDescriptor.module("m3") .requires("java.base") .requires("m2") - .conceals("p3") + .contains("p3") .build(); // Set up a ModuleFinder containing all modules for this layer. diff --git a/hotspot/test/runtime/modules/AccessCheck/ExpQualToM1.java b/hotspot/test/runtime/modules/AccessCheck/ExpQualToM1.java index 035008cb1b7..31de4576d90 100644 --- a/hotspot/test/runtime/modules/AccessCheck/ExpQualToM1.java +++ b/hotspot/test/runtime/modules/AccessCheck/ExpQualToM1.java @@ -58,7 +58,7 @@ public class ExpQualToM1 { // Packages: p1 // Packages exported: p1 is exported unqualifiedly ModuleDescriptor descriptor_m1 = - new ModuleDescriptor.Builder("m1") + ModuleDescriptor.module("m1") .requires("java.base") .requires("m2") .exports("p1") @@ -69,9 +69,9 @@ public class ExpQualToM1 { // Packages: p2 // Packages exported: p2 is exported qualifiedly to m1 ModuleDescriptor descriptor_m2 = - new ModuleDescriptor.Builder("m2") + ModuleDescriptor.module("m2") .requires("java.base") - .exports("p2", "m1") + .exports("p2", Set.of("m1")) .build(); // Set up a ModuleFinder containing all modules for this layer. diff --git a/hotspot/test/runtime/modules/AccessCheck/ExpUnqual.java b/hotspot/test/runtime/modules/AccessCheck/ExpUnqual.java index 2c321ceb9b2..03a377027de 100644 --- a/hotspot/test/runtime/modules/AccessCheck/ExpUnqual.java +++ b/hotspot/test/runtime/modules/AccessCheck/ExpUnqual.java @@ -58,7 +58,7 @@ public class ExpUnqual { // Packages: p1 // Packages exported: p1 is exported unqualifiedly ModuleDescriptor descriptor_m1 = - new ModuleDescriptor.Builder("m1") + ModuleDescriptor.module("m1") .requires("java.base") .requires("m2") .exports("p1") @@ -69,7 +69,7 @@ public class ExpUnqual { // Packages: p2 // Packages exported: p2 is exported unqualifiedly ModuleDescriptor descriptor_m2 = - new ModuleDescriptor.Builder("m2") + ModuleDescriptor.module("m2") .requires("java.base") .exports("p2") .build(); diff --git a/hotspot/test/runtime/modules/AccessCheck/ExportAllUnnamed.java b/hotspot/test/runtime/modules/AccessCheck/ExportAllUnnamed.java index 7d5fb596aaf..c9a89c8ba9f 100644 --- a/hotspot/test/runtime/modules/AccessCheck/ExportAllUnnamed.java +++ b/hotspot/test/runtime/modules/AccessCheck/ExportAllUnnamed.java @@ -71,7 +71,7 @@ public class ExportAllUnnamed { // Packages: none // Packages exported: none ModuleDescriptor descriptor_m1 = - new ModuleDescriptor.Builder("m1") + ModuleDescriptor.module("m1") .requires("java.base") .requires("m2") .build(); @@ -81,9 +81,9 @@ public class ExportAllUnnamed { // Packages: p2 // Packages exported: p2 is exported unqualifiedly ModuleDescriptor descriptor_m2 = - new ModuleDescriptor.Builder("m2") + ModuleDescriptor.module("m2") .requires("java.base") - .exports("p2", "m1") + .exports("p2", Set.of("m1")) .build(); // Set up a ModuleFinder containing all modules for this layer. diff --git a/hotspot/test/runtime/modules/AccessCheck/PkgNotExp.java b/hotspot/test/runtime/modules/AccessCheck/PkgNotExp.java index 86e26c5cc8e..4f592a19002 100644 --- a/hotspot/test/runtime/modules/AccessCheck/PkgNotExp.java +++ b/hotspot/test/runtime/modules/AccessCheck/PkgNotExp.java @@ -68,7 +68,7 @@ public class PkgNotExp { // Packages: p1 // Packages exported: p1 is exported unqualifiedly ModuleDescriptor descriptor_m1 = - new ModuleDescriptor.Builder("m1") + ModuleDescriptor.module("m1") .requires("java.base") .requires("m2") .exports("p1") @@ -79,9 +79,9 @@ public class PkgNotExp { // Packages: p2 // Packages exported: none ModuleDescriptor descriptor_m2 = - new ModuleDescriptor.Builder("m2") + ModuleDescriptor.module("m2") .requires("java.base") - .conceals("p2") + .contains("p2") .build(); // Set up a ModuleFinder containing all modules for this layer. diff --git a/hotspot/test/runtime/modules/AccessCheck/Umod.java b/hotspot/test/runtime/modules/AccessCheck/Umod.java index e8d0a04d050..255950c7f37 100644 --- a/hotspot/test/runtime/modules/AccessCheck/Umod.java +++ b/hotspot/test/runtime/modules/AccessCheck/Umod.java @@ -80,7 +80,7 @@ public class Umod { // Packages: p1 // Packages exported: p1 is exported unqualifiedly ModuleDescriptor descriptor_m1 = - new ModuleDescriptor.Builder("m1") + ModuleDescriptor.module("m1") .requires("java.base") .exports("p1") .build(); @@ -126,7 +126,7 @@ public class Umod { // Packages: p1 // Packages exported: p1 is exported unqualifiedly ModuleDescriptor descriptor_m1 = - new ModuleDescriptor.Builder("m1") + ModuleDescriptor.module("m1") .requires("java.base") .exports("p1") .build(); @@ -172,7 +172,7 @@ public class Umod { // Packages: p1 // Packages exported: p1 is exported unqualifiedly ModuleDescriptor descriptor_m1 = - new ModuleDescriptor.Builder("m1") + ModuleDescriptor.module("m1") .requires("java.base") .exports("p1") .build(); diff --git a/hotspot/test/runtime/modules/AccessCheck/UmodDiffCL_ExpQualOther.java b/hotspot/test/runtime/modules/AccessCheck/UmodDiffCL_ExpQualOther.java index 2a9db0f2733..5fcc629096c 100644 --- a/hotspot/test/runtime/modules/AccessCheck/UmodDiffCL_ExpQualOther.java +++ b/hotspot/test/runtime/modules/AccessCheck/UmodDiffCL_ExpQualOther.java @@ -70,7 +70,7 @@ public class UmodDiffCL_ExpQualOther { // Packages: none // Packages exported: none ModuleDescriptor descriptor_m1 = - new ModuleDescriptor.Builder("m1") + ModuleDescriptor.module("m1") .requires("java.base") .requires("m2") .build(); @@ -80,9 +80,9 @@ public class UmodDiffCL_ExpQualOther { // Packages: p2 // Packages exported: none ModuleDescriptor descriptor_m2 = - new ModuleDescriptor.Builder("m2") + ModuleDescriptor.module("m2") .requires("java.base") - .exports("p2", "m1") + .exports("p2", Set.of("m1")) .build(); // Set up a ModuleFinder containing all modules for this layer. diff --git a/hotspot/test/runtime/modules/AccessCheck/UmodDiffCL_ExpUnqual.java b/hotspot/test/runtime/modules/AccessCheck/UmodDiffCL_ExpUnqual.java index c83998de6bc..ade483acd46 100644 --- a/hotspot/test/runtime/modules/AccessCheck/UmodDiffCL_ExpUnqual.java +++ b/hotspot/test/runtime/modules/AccessCheck/UmodDiffCL_ExpUnqual.java @@ -70,7 +70,7 @@ public class UmodDiffCL_ExpUnqual { // Packages: none // Packages exported: none ModuleDescriptor descriptor_m1 = - new ModuleDescriptor.Builder("m1") + ModuleDescriptor.module("m1") .requires("java.base") .requires("m2") .build(); @@ -80,7 +80,7 @@ public class UmodDiffCL_ExpUnqual { // Packages: p2 // Packages exported: none ModuleDescriptor descriptor_m2 = - new ModuleDescriptor.Builder("m2") + ModuleDescriptor.module("m2") .requires("java.base") .exports("p2") .build(); diff --git a/hotspot/test/runtime/modules/AccessCheck/UmodDiffCL_PkgNotExp.java b/hotspot/test/runtime/modules/AccessCheck/UmodDiffCL_PkgNotExp.java index b4d0461a1cd..b5ec6c6a6b0 100644 --- a/hotspot/test/runtime/modules/AccessCheck/UmodDiffCL_PkgNotExp.java +++ b/hotspot/test/runtime/modules/AccessCheck/UmodDiffCL_PkgNotExp.java @@ -69,7 +69,7 @@ public class UmodDiffCL_PkgNotExp { // Packages: none // Packages exported: none ModuleDescriptor descriptor_m1 = - new ModuleDescriptor.Builder("m1") + ModuleDescriptor.module("m1") .requires("java.base") .requires("m2") .build(); @@ -79,9 +79,9 @@ public class UmodDiffCL_PkgNotExp { // Packages: p2 // Packages exported: none ModuleDescriptor descriptor_m2 = - new ModuleDescriptor.Builder("m2") + ModuleDescriptor.module("m2") .requires("java.base") - .conceals("p2") + .contains("p2") .build(); // Set up a ModuleFinder containing all modules for this layer. diff --git a/hotspot/test/runtime/modules/AccessCheck/UmodUPkg.java b/hotspot/test/runtime/modules/AccessCheck/UmodUPkg.java index 4ad9b24a0ea..7cfcdabe42b 100644 --- a/hotspot/test/runtime/modules/AccessCheck/UmodUPkg.java +++ b/hotspot/test/runtime/modules/AccessCheck/UmodUPkg.java @@ -75,7 +75,7 @@ public class UmodUPkg { // Packages: p3 // Packages exported: p3 is exported unqualifiedly ModuleDescriptor descriptor_m1 = - new ModuleDescriptor.Builder("m1") + ModuleDescriptor.module("m1") .requires("java.base") .exports("p3") .build(); @@ -121,7 +121,7 @@ public class UmodUPkg { // Packages: p3 // Packages exported: p3 is exported unqualifiedly ModuleDescriptor descriptor_m1 = - new ModuleDescriptor.Builder("m1") + ModuleDescriptor.module("m1") .requires("java.base") .exports("p3") .build(); diff --git a/hotspot/test/runtime/modules/AccessCheck/UmodUpkgDiffCL_ExpQualOther.java b/hotspot/test/runtime/modules/AccessCheck/UmodUpkgDiffCL_ExpQualOther.java index 3a64481c561..01ec39aa1a5 100644 --- a/hotspot/test/runtime/modules/AccessCheck/UmodUpkgDiffCL_ExpQualOther.java +++ b/hotspot/test/runtime/modules/AccessCheck/UmodUpkgDiffCL_ExpQualOther.java @@ -70,7 +70,7 @@ public class UmodUpkgDiffCL_ExpQualOther { // Packages: none // Packages exported: none ModuleDescriptor descriptor_m1 = - new ModuleDescriptor.Builder("m1") + ModuleDescriptor.module("m1") .requires("java.base") .requires("m2") .build(); @@ -80,9 +80,9 @@ public class UmodUpkgDiffCL_ExpQualOther { // Packages: p6 // Packages exported: p6 exported to m1 ModuleDescriptor descriptor_m2 = - new ModuleDescriptor.Builder("m2") + ModuleDescriptor.module("m2") .requires("java.base") - .exports("p6", "m1") + .exports("p6", Set.of("m1")) .build(); // Set up a ModuleFinder containing all modules for this layer. diff --git a/hotspot/test/runtime/modules/AccessCheck/UmodUpkgDiffCL_NotExp.java b/hotspot/test/runtime/modules/AccessCheck/UmodUpkgDiffCL_NotExp.java index b06cf17e04d..68dd3778b5c 100644 --- a/hotspot/test/runtime/modules/AccessCheck/UmodUpkgDiffCL_NotExp.java +++ b/hotspot/test/runtime/modules/AccessCheck/UmodUpkgDiffCL_NotExp.java @@ -69,7 +69,7 @@ public class UmodUpkgDiffCL_NotExp { // Packages: none // Packages exported: none ModuleDescriptor descriptor_m1 = - new ModuleDescriptor.Builder("m1") + ModuleDescriptor.module("m1") .requires("java.base") .requires("m2") .build(); @@ -79,9 +79,9 @@ public class UmodUpkgDiffCL_NotExp { // Packages: p6 // Packages exported: none ModuleDescriptor descriptor_m2 = - new ModuleDescriptor.Builder("m2") + ModuleDescriptor.module("m2") .requires("java.base") - .conceals("p6") + .contains("p6") .build(); // Set up a ModuleFinder containing all modules for this layer. diff --git a/hotspot/test/runtime/modules/AccessCheck/UmodUpkg_ExpQualOther.java b/hotspot/test/runtime/modules/AccessCheck/UmodUpkg_ExpQualOther.java index 33f7482dc33..68abe56b7a1 100644 --- a/hotspot/test/runtime/modules/AccessCheck/UmodUpkg_ExpQualOther.java +++ b/hotspot/test/runtime/modules/AccessCheck/UmodUpkg_ExpQualOther.java @@ -69,7 +69,7 @@ public class UmodUpkg_ExpQualOther { // Packages: none // Packages exported: none ModuleDescriptor descriptor_m1 = - new ModuleDescriptor.Builder("m1") + ModuleDescriptor.module("m1") .requires("java.base") .requires("m2") .requires("m3") @@ -80,9 +80,9 @@ public class UmodUpkg_ExpQualOther { // Packages: p6 // Packages exported: p6 is exported to m3 ModuleDescriptor descriptor_m2 = - new ModuleDescriptor.Builder("m2") + ModuleDescriptor.module("m2") .requires("java.base") - .exports("p6", "m3") + .exports("p6", Set.of("m3")) .build(); // Define module: m3 @@ -90,7 +90,7 @@ public class UmodUpkg_ExpQualOther { // Packages: p3 // Packages exported: none ModuleDescriptor descriptor_m3 = - new ModuleDescriptor.Builder("m3") + ModuleDescriptor.module("m3") .requires("java.base") .build(); diff --git a/hotspot/test/runtime/modules/AccessCheck/UmodUpkg_NotExp.java b/hotspot/test/runtime/modules/AccessCheck/UmodUpkg_NotExp.java index f3cda29cea8..da69805e580 100644 --- a/hotspot/test/runtime/modules/AccessCheck/UmodUpkg_NotExp.java +++ b/hotspot/test/runtime/modules/AccessCheck/UmodUpkg_NotExp.java @@ -67,7 +67,7 @@ public class UmodUpkg_NotExp { // Packages: none // Packages exported: none ModuleDescriptor descriptor_m1 = - new ModuleDescriptor.Builder("m1") + ModuleDescriptor.module("m1") .requires("java.base") .requires("m2") .build(); @@ -77,9 +77,9 @@ public class UmodUpkg_NotExp { // Packages: p6 // Packages exported: none ModuleDescriptor descriptor_m2 = - new ModuleDescriptor.Builder("m2") + ModuleDescriptor.module("m2") .requires("java.base") - .conceals("p6") + .contains("p6") .build(); // Set up a ModuleFinder containing all modules for this layer. diff --git a/hotspot/test/runtime/modules/AccessCheck/Umod_ExpQualOther.java b/hotspot/test/runtime/modules/AccessCheck/Umod_ExpQualOther.java index 74288ef865d..0f5aaf21585 100644 --- a/hotspot/test/runtime/modules/AccessCheck/Umod_ExpQualOther.java +++ b/hotspot/test/runtime/modules/AccessCheck/Umod_ExpQualOther.java @@ -69,7 +69,7 @@ public class Umod_ExpQualOther { // Packages: none // Packages exported: none ModuleDescriptor descriptor_m1 = - new ModuleDescriptor.Builder("m1") + ModuleDescriptor.module("m1") .requires("java.base") .requires("m2") .requires("m3") @@ -80,9 +80,9 @@ public class Umod_ExpQualOther { // Packages: p2 // Packages exported: p2 is exported to m3 ModuleDescriptor descriptor_m2 = - new ModuleDescriptor.Builder("m2") + ModuleDescriptor.module("m2") .requires("java.base") - .exports("p2", "m3") + .exports("p2", Set.of("m3")) .build(); // Define module: m3 @@ -90,7 +90,7 @@ public class Umod_ExpQualOther { // Packages: p3 // Packages exported: none ModuleDescriptor descriptor_m3 = - new ModuleDescriptor.Builder("m3") + ModuleDescriptor.module("m3") .requires("java.base") .build(); diff --git a/hotspot/test/runtime/modules/AccessCheck/Umod_ExpUnqual.java b/hotspot/test/runtime/modules/AccessCheck/Umod_ExpUnqual.java index dd69c1318b1..db90a08bd44 100644 --- a/hotspot/test/runtime/modules/AccessCheck/Umod_ExpUnqual.java +++ b/hotspot/test/runtime/modules/AccessCheck/Umod_ExpUnqual.java @@ -69,7 +69,7 @@ public class Umod_ExpUnqual { // Packages: none // Packages exported: none ModuleDescriptor descriptor_m1 = - new ModuleDescriptor.Builder("m1") + ModuleDescriptor.module("m1") .requires("java.base") .requires("m2") .build(); @@ -79,7 +79,7 @@ public class Umod_ExpUnqual { // Packages: p2 // Packages exported: p2 is exported unqualifiedly ModuleDescriptor descriptor_m2 = - new ModuleDescriptor.Builder("m2") + ModuleDescriptor.module("m2") .requires("java.base") .exports("p2") .build(); diff --git a/hotspot/test/runtime/modules/AccessCheck/Umod_PkgNotExp.java b/hotspot/test/runtime/modules/AccessCheck/Umod_PkgNotExp.java index e15687ebb8b..d140cf84d69 100644 --- a/hotspot/test/runtime/modules/AccessCheck/Umod_PkgNotExp.java +++ b/hotspot/test/runtime/modules/AccessCheck/Umod_PkgNotExp.java @@ -67,7 +67,7 @@ public class Umod_PkgNotExp { // Packages: none // Packages exported: none ModuleDescriptor descriptor_m1 = - new ModuleDescriptor.Builder("m1") + ModuleDescriptor.module("m1") .requires("java.base") .requires("m2") .build(); @@ -77,9 +77,9 @@ public class Umod_PkgNotExp { // Packages: p2 // Packages exported: none ModuleDescriptor descriptor_m2 = - new ModuleDescriptor.Builder("m2") + ModuleDescriptor.module("m2") .requires("java.base") - .conceals("p2") + .contains("p2") .build(); // Set up a ModuleFinder containing all modules for this layer. diff --git a/hotspot/test/runtime/modules/IgnoreModulePropertiesTest.java b/hotspot/test/runtime/modules/IgnoreModulePropertiesTest.java index 31b0fb5b7e3..352a04fb625 100644 --- a/hotspot/test/runtime/modules/IgnoreModulePropertiesTest.java +++ b/hotspot/test/runtime/modules/IgnoreModulePropertiesTest.java @@ -72,6 +72,6 @@ public class IgnoreModulePropertiesTest { testOption("--add-reads", "xyzz=yyzd", "jdk.module.addreads.0", "WARNING: Unknown module: xyzz"); testOption("--add-exports", "java.base/xyzz=yyzd", "jdk.module.addexports.0", "WARNING: package xyzz not in java.base"); - testOption("--patch-module", "=d", "jdk.module.patch.0", "IllegalArgumentException"); + testOption("--patch-module", "=d", "jdk.module.patch.0", "Missing module name"); } } diff --git a/hotspot/test/runtime/modules/JVMAddModulePackage.java b/hotspot/test/runtime/modules/JVMAddModulePackage.java index 502b4497b51..62106f8597f 100644 --- a/hotspot/test/runtime/modules/JVMAddModulePackage.java +++ b/hotspot/test/runtime/modules/JVMAddModulePackage.java @@ -33,6 +33,7 @@ */ import static jdk.test.lib.Asserts.*; +import java.sql.Time; public class JVMAddModulePackage { @@ -123,6 +124,29 @@ public class JVMAddModulePackage { // Expected } + // Add package named "java" to an module defined to a class loader other than the boot or platform loader. + try { + // module1 is defined to a MyClassLoader class loader. + ModuleHelper.AddModulePackage(module1, "java/foo"); + throw new RuntimeException("Failed to get the expected IAE"); + } catch(IllegalArgumentException e) { + if (!e.getMessage().contains("prohibited package name")) { + throw new RuntimeException("Failed to get expected IAE message for prohibited package name: " + e.getMessage()); + } + } + + // Package "javabar" should be ok + ModuleHelper.AddModulePackage(module1, "javabar"); + + // Package named "java" defined to the boot class loader, should be ok + Object module_javabase = module1.getClass().getModule(); + ModuleHelper.AddModulePackage(module_javabase, "java/foo"); + + // Package named "java" defined to the platform class loader, should be ok + // The module java.sql is defined to the platform class loader. + java.sql.Time jst = new java.sql.Time(45000); // milliseconds + Object module_javasql = jst.getClass().getModule(); + ModuleHelper.AddModulePackage(module_javasql, "java/foo"); } static class MyClassLoader extends ClassLoader { } diff --git a/hotspot/test/runtime/modules/JVMCanReadModule.java b/hotspot/test/runtime/modules/JVMCanReadModule.java deleted file mode 100644 index c6707d20cee..00000000000 --- a/hotspot/test/runtime/modules/JVMCanReadModule.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -/* - * @test - * @modules java.base/jdk.internal.misc - * @library /test/lib .. - * @build sun.hotspot.WhiteBox - * @compile/module=java.base java/lang/reflect/ModuleHelper.java - * @run main ClassFileInstaller sun.hotspot.WhiteBox - * sun.hotspot.WhiteBox$WhiteBoxPermission - * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI JVMCanReadModule - */ - -import static jdk.test.lib.Asserts.*; - -public class JVMCanReadModule { - - public static void main(String args[]) throws Throwable { - MyClassLoader asking_cl = new MyClassLoader(); - MyClassLoader target_cl = new MyClassLoader(); - Object asking_module, target_module; - boolean result; - - asking_module = ModuleHelper.ModuleObject("asking_module", asking_cl, new String[] { "mypackage" }); - assertNotNull(asking_module, "Module should not be null"); - ModuleHelper.DefineModule(asking_module, "9.0", "asking_module/here", new String[] { "mypackage" }); - target_module = ModuleHelper.ModuleObject("target_module", target_cl, new String[] { "yourpackage" }); - assertNotNull(target_module, "Module should not be null"); - ModuleHelper.DefineModule(target_module, "9.0", "target_module/here", new String[] { "yourpackage" }); - - // Set up relationship - ModuleHelper.AddReadsModule(asking_module, target_module); - - // Null asking_module argument, expect an NPE - try { - result = ModuleHelper.CanReadModule(null, target_module); - throw new RuntimeException("Failed to get the expected NPE"); - } catch(NullPointerException e) { - // Expected - } - - // Bad asking_module argument, expect an IAE - try { - result = ModuleHelper.CanReadModule(asking_cl, target_module); - throw new RuntimeException("Failed to get the expected IAE"); - } catch(IllegalArgumentException e) { - // Expected - } - - // Bad target_module argument, expect an IAE - try { - result = ModuleHelper.CanReadModule(asking_module, asking_cl); - throw new RuntimeException("Failed to get the expected IAE"); - } catch(IllegalArgumentException e) { - // Expected - } - - // Verify strict modules can not read the unnamed module - result = ModuleHelper.CanReadModule(target_module, null); - assertFalse(result, "target_module can not read unnamed module"); - - // Verify asking_module can read itself - result = ModuleHelper.CanReadModule(asking_module, asking_module); - assertTrue(result, "asking_module can read itself"); - - // Verify asking_module can read target_module - result = ModuleHelper.CanReadModule(asking_module, target_module); - assertTrue(result, "asking_module can read target_module"); - - // Verify target_module cannot read asking_module - result = ModuleHelper.CanReadModule(target_module, asking_module); - assertTrue(!result, "target_module cannot read asking_module"); - } - - static class MyClassLoader extends ClassLoader { } -} diff --git a/hotspot/test/runtime/modules/JVMDefineModule.java b/hotspot/test/runtime/modules/JVMDefineModule.java index f4a838ac55a..bc080e5f6c7 100644 --- a/hotspot/test/runtime/modules/JVMDefineModule.java +++ b/hotspot/test/runtime/modules/JVMDefineModule.java @@ -33,6 +33,7 @@ */ import static jdk.test.lib.Asserts.*; +import java.sql.Time; public class JVMDefineModule { @@ -238,6 +239,39 @@ public class JVMDefineModule { } } + // Package named "java" defined to a class loader other than the boot or platform class loader, expect an IAE + m = ModuleHelper.ModuleObject("modulejavapkg1", cl, new String[] { "java/foo" }); + try { + // module m is defined to an instance of MyClassLoader class loader + ModuleHelper.DefineModule(m, "9.0", "modulejavapkg1", new String[] { "java/foo" }); + throw new RuntimeException("Failed to get expected IAE for package java/foo"); + } catch(IllegalArgumentException e) { + if (!e.getMessage().contains("prohibited package name")) { + throw new RuntimeException("Failed to get expected IAE message for prohibited package name: " + e.getMessage()); + } + } + + // Package named "javabar" defined to a class loader other than the boot or platform class loader, should be ok + m = ModuleHelper.ModuleObject("modulejavapkg2", cl, new String[] { "javabar" }); + assertNotNull(m, "Module should not be null"); + ModuleHelper.DefineModule(m, "9.0", "modulejavapkg2", new String[] { "javabar" }); + + // Package named "java" defined to the boot class loader, should be ok + // m's type is a java.lang.Object, module is java.base + // java.base module is defined to the boot loader + ClassLoader boot_loader = m.getClass().getClassLoader(); + m = ModuleHelper.ModuleObject("modulejavapkg3", boot_loader, new String[] { "java/foo" }); + assertNotNull(m, "Module should not be null"); + ModuleHelper.DefineModule(m, "9.0", "modulejavapkg3", new String[] { "java/foo" }); + + // Package named "java" defined to the platform class loader, should be ok + // java.sql module defined to the platform class loader. + java.sql.Time jst = new java.sql.Time(45 * 1000); + ClassLoader platform_loader = jst.getClass().getClassLoader(); + m = ModuleHelper.ModuleObject("modulejavapkg4", platform_loader, new String[] { "java/foo" }); + assertNotNull(m, "Module should not be null"); + ModuleHelper.DefineModule(m, "9.0", "modulejavapkg4", new String[] { "java/foo" }); + // module version that is null, should be okay m = ModuleHelper.ModuleObject("module8", cl, new String[] { "a_package_8" }); assertNotNull(m, "Module should not be null"); diff --git a/hotspot/test/runtime/modules/JVMIsExportedToModule.java b/hotspot/test/runtime/modules/JVMIsExportedToModule.java deleted file mode 100644 index 3f58cb5d66a..00000000000 --- a/hotspot/test/runtime/modules/JVMIsExportedToModule.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -/* - * @test - * @modules java.base/jdk.internal.misc - * @library /test/lib .. - * @build sun.hotspot.WhiteBox - * @compile/module=java.base java/lang/reflect/ModuleHelper.java - * @run main ClassFileInstaller sun.hotspot.WhiteBox - * sun.hotspot.WhiteBox$WhiteBoxPermission - * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI JVMIsExportedToModule - */ - -import static jdk.test.lib.Asserts.*; - -public class JVMIsExportedToModule { - - public static void main(String args[]) throws Throwable { - MyClassLoader from_cl = new MyClassLoader(); - MyClassLoader to_cl = new MyClassLoader(); - Object from_module, to_module; - boolean result; - - from_module = ModuleHelper.ModuleObject("from_module", from_cl, new String[] { "mypackage", "this/package" }); - assertNotNull(from_module, "Module from_module should not be null"); - ModuleHelper.DefineModule(from_module, "9.0", "from_module/here", new String[] { "mypackage", "this/package" }); - to_module = ModuleHelper.ModuleObject("to_module", to_cl, new String[] { "yourpackage", "that/package" }); - assertNotNull(to_module, "Module to_module should not be null"); - ModuleHelper.DefineModule(to_module, "9.0", "to_module/here", new String[] { "yourpackage", "that/package" }); - - Object unnamed_module = JVMIsExportedToModule.class.getModule(); - assertNotNull(unnamed_module, "Module unnamed_module should not be null"); - - // Null from_module argument, expect an NPE - try { - result = ModuleHelper.IsExportedToModule(null, "mypackage", to_module); - throw new RuntimeException("Failed to get the expected NPE for null from_module"); - } catch(NullPointerException e) { - // Expected - } - - // Null to_module argument, expect an NPE - try { - result = ModuleHelper.IsExportedToModule(from_module, "mypackage", null); - throw new RuntimeException("Failed to get expected NPE for null to_module"); - } catch(NullPointerException e) { - // Expected - } - - // Null package argument, expect an NPE - try { - result = ModuleHelper.IsExportedToModule(from_module, null, to_module); - throw new RuntimeException("Failed to get the expected NPE for null package"); - } catch(NullPointerException e) { - // Expected - } - - // Bad from_module argument, expect an IAE - try { - result = ModuleHelper.IsExportedToModule(to_cl, "mypackage", to_module); - throw new RuntimeException("Failed to get the expected IAE for bad from_module"); - } catch(IllegalArgumentException e) { - // Expected - } - - // Bad to_module argument, expect an IAE - try { - result = ModuleHelper.IsExportedToModule(from_module, "mypackage", from_cl); - throw new RuntimeException("Failed to get the expected IAE"); - } catch(IllegalArgumentException e) { - // Expected - } - - // Check that package is exported to its own module - result = ModuleHelper.IsExportedToModule(from_module, "mypackage", from_module); - assertTrue(result, "Package is always exported to itself"); - - // Package is not in to_module, expect an IAE - try { - result = ModuleHelper.IsExportedToModule(from_module, "yourpackage", from_cl); - throw new RuntimeException("Failed to get the expected IAE for package not in to_module"); - } catch(IllegalArgumentException e) { - // Expected - } - - // Package is accessible when exported to unnamed module - ModuleHelper.AddModuleExportsToAll(from_module, "mypackage"); - result = ModuleHelper.IsExportedToModule(from_module, "mypackage", to_module); - assertTrue(result, "Package exported to unnamed module is visible to named module"); - - result = ModuleHelper.IsExportedToModule(from_module, "mypackage", unnamed_module); - assertTrue(result, "Package exported to unnamed module is visible to unnamed module"); - - // Package is accessible only to named module when exported to named module - ModuleHelper.AddModuleExports(from_module, "this/package", to_module); - result = ModuleHelper.IsExportedToModule(from_module, "this/package", to_module); - assertTrue(result, "Package exported to named module is visible to named module"); - result = ModuleHelper.IsExportedToModule(from_module, "this/package", unnamed_module); - assertTrue(!result, "Package exported to named module is not visible to unnamed module"); - } - - static class MyClassLoader extends ClassLoader { } -} diff --git a/hotspot/test/runtime/modules/ModuleHelper.java b/hotspot/test/runtime/modules/ModuleHelper.java index 2761b48ff4a..2f0d7f6ec11 100644 --- a/hotspot/test/runtime/modules/ModuleHelper.java +++ b/hotspot/test/runtime/modules/ModuleHelper.java @@ -73,17 +73,6 @@ public class ModuleHelper { java.lang.reflect.ModuleHelper.addExportsNoSync((Module)m, pkg, (Module)null); } - public static boolean CanReadModule(Object from, Object to) throws Throwable { - WhiteBox wb = WhiteBox.getWhiteBox(); - return wb.CanReadModule(from, to); - } - - public static boolean IsExportedToModule(Object from, String pkg, - Object to) throws Throwable { - WhiteBox wb = WhiteBox.getWhiteBox(); - return wb.IsExportedToModule(from, pkg, to); - } - public static Module ModuleObject(String name, ClassLoader loader, String[] pkgs) throws Throwable { Set pkg_set = new HashSet<>(); if (pkgs != null) { @@ -95,7 +84,7 @@ public class ModuleHelper { } ModuleDescriptor descriptor = - new ModuleDescriptor.Builder(name).conceals(pkg_set).build(); + ModuleDescriptor.module(name).contains(pkg_set).build(); URI uri = URI.create("module:/" + name); return java.lang.reflect.ModuleHelper.newModule(loader, descriptor); diff --git a/hotspot/test/runtime/modules/ModuleStress/ModuleNonBuiltinCLMain.java b/hotspot/test/runtime/modules/ModuleStress/ModuleNonBuiltinCLMain.java index a8390f0fd5d..79e56f2a457 100644 --- a/hotspot/test/runtime/modules/ModuleStress/ModuleNonBuiltinCLMain.java +++ b/hotspot/test/runtime/modules/ModuleStress/ModuleNonBuiltinCLMain.java @@ -57,7 +57,7 @@ public class ModuleNonBuiltinCLMain { // Packages: p1 // Packages exported: p1 is exported to unqualifiedly ModuleDescriptor descriptor_m1 = - new ModuleDescriptor.Builder("m1") + ModuleDescriptor.module("m1") .requires("java.base") .requires("m2") .exports("p1") @@ -71,7 +71,7 @@ public class ModuleNonBuiltinCLMain { targets.add("m1"); targets.add("m3"); ModuleDescriptor descriptor_m2 = - new ModuleDescriptor.Builder("m2") + ModuleDescriptor.module("m2") .requires("java.base") .requires("m3") .exports("p2", targets) @@ -82,7 +82,7 @@ public class ModuleNonBuiltinCLMain { // Packages: p3 // Packages exported: none ModuleDescriptor descriptor_m3 = - new ModuleDescriptor.Builder("m3") + ModuleDescriptor.module("m3") .requires("java.base") .build(); diff --git a/hotspot/test/runtime/modules/ModuleStress/ModuleSameCLMain.java b/hotspot/test/runtime/modules/ModuleStress/ModuleSameCLMain.java index b14a9a9b060..cdbc9002405 100644 --- a/hotspot/test/runtime/modules/ModuleStress/ModuleSameCLMain.java +++ b/hotspot/test/runtime/modules/ModuleStress/ModuleSameCLMain.java @@ -55,7 +55,7 @@ public class ModuleSameCLMain { // Packages: p1 // Packages exported: p1 is exported to unqualifiedly ModuleDescriptor descriptor_m1 = - new ModuleDescriptor.Builder("m1") + ModuleDescriptor.module("m1") .requires("java.base") .requires("m2") .exports("p1") @@ -66,9 +66,9 @@ public class ModuleSameCLMain { // Packages: p2 // Packages exported: package p2 is exported to m1 ModuleDescriptor descriptor_m2 = - new ModuleDescriptor.Builder("m2") + ModuleDescriptor.module("m2") .requires("java.base") - .exports("p2", "m1") + .exports("p2", Set.of("m1")) .build(); // Set up a ModuleFinder containing all modules for this layer. diff --git a/hotspot/test/runtime/modules/getModuleJNI/GetModule.java b/hotspot/test/runtime/modules/getModuleJNI/GetModule.java index c9ef4952d4d..01d00648cd9 100644 --- a/hotspot/test/runtime/modules/getModuleJNI/GetModule.java +++ b/hotspot/test/runtime/modules/getModuleJNI/GetModule.java @@ -35,10 +35,6 @@ public class GetModule { } static native Object callGetModule(java.lang.Class clazz); - static native void callAddModuleReads(java.lang.reflect.Module from_module, - java.lang.reflect.Module source_module); - static native boolean callCanReadModule(java.lang.reflect.Module asking_module, - java.lang.reflect.Module source_module); public static void main(String[] args) { Module module; @@ -144,71 +140,6 @@ public class GetModule { } catch(NullPointerException e) { // Expected } - - - // Tests for JNI_AddModuleReads() // - - Module javaScriptingModule = javax.script.Bindings.class.getModule(); - if (javaScriptingModule == null) { - throw new RuntimeException("Failed to get java.scripting module"); - } - Module javaLoggingModule = java.util.logging.Level.class.getModule(); - if (javaLoggingModule == null) { - throw new RuntimeException("Failed to get java.logging module"); - } - - if (callCanReadModule(javaLoggingModule, javaScriptingModule)) { - throw new RuntimeException( - "Expected FALSE because javaLoggingModule cannot read javaScriptingModule"); - } - - callAddModuleReads(javaLoggingModule, javaScriptingModule); - callAddModuleReads(javaScriptingModule, GetModule.class.getModule()); // unnamed module - - try { - callAddModuleReads(null, javaLoggingModule); - throw new RuntimeException( - "Expected NullPointerException for bad from_module not thrown"); - } catch(NullPointerException e) { - // expected - } - - try { - callAddModuleReads(javaLoggingModule, null); - throw new RuntimeException( - "Expected NullPointerException for bad source_module not thrown"); - } catch(NullPointerException e) { - // expected - } - - - // Tests for JNI_CanReadModule() // - - if (!callCanReadModule(javaLoggingModule, javaScriptingModule)) { - throw new RuntimeException( - "Expected TRUE because javaLoggingModule can read javaScriptingModule"); - } - - if (callCanReadModule(javaBaseModule, javaScriptingModule)) { - throw new RuntimeException( - "Expected FALSE because javaBaseModule cannnot read javaScriptingModule"); - } - - try { - callCanReadModule(javaLoggingModule, null); - throw new RuntimeException( - "Expected NullPointerException for bad sourceModule not thrown"); - } catch(NullPointerException e) { - // expected - } - - try { - callCanReadModule(null, javaScriptingModule); - throw new RuntimeException( - "Expected NullPointerException for bad asking_module not thrown"); - } catch(NullPointerException e) { - // expected - } } static class MyClassLoader extends ClassLoader { } diff --git a/hotspot/test/runtime/modules/getModuleJNI/libGetModule.c b/hotspot/test/runtime/modules/getModuleJNI/libGetModule.c index a7b1b6d2dc0..e21424f2f1b 100644 --- a/hotspot/test/runtime/modules/getModuleJNI/libGetModule.c +++ b/hotspot/test/runtime/modules/getModuleJNI/libGetModule.c @@ -28,15 +28,3 @@ Java_GetModule_callGetModule(JNIEnv *env, jclass unused, jclass clazz) { jobject res = (jobject)((*env)->GetModule(env, clazz)); return res; } - -JNIEXPORT void JNICALL -Java_GetModule_callAddModuleReads(JNIEnv *env, jclass unused, jobject from_module, jobject source_module) { - (*env)->AddModuleReads(env, from_module, source_module); -} - -JNIEXPORT jboolean JNICALL -Java_GetModule_callCanReadModule(JNIEnv *env, jclass unused, jobject asking_module, jobject source_module) { - jboolean res = (*env)->CanReadModule(env, asking_module, source_module); - return res; -} - diff --git a/hotspot/test/serviceability/attach/AttachWithStalePidFile.java b/hotspot/test/serviceability/attach/AttachWithStalePidFile.java index 8be22f0988a..99cc9434399 100644 --- a/hotspot/test/serviceability/attach/AttachWithStalePidFile.java +++ b/hotspot/test/serviceability/attach/AttachWithStalePidFile.java @@ -26,7 +26,8 @@ * @bug 7162400 * @key regression * @summary Regression test for attach issue where stale pid files in /tmp lead to connection issues - * @modules java.base/jdk.internal.misc + * @modules java.base/jdk.internal.misc:open + * @modules java.base/java.lang:open * @modules jdk.attach/sun.tools.attach * @library /test/lib * @run main AttachWithStalePidFile diff --git a/hotspot/test/serviceability/jdwp/AllModulesCommandTest.java b/hotspot/test/serviceability/jdwp/AllModulesCommandTest.java index 16ae4a1d615..92a2aa4e003 100644 --- a/hotspot/test/serviceability/jdwp/AllModulesCommandTest.java +++ b/hotspot/test/serviceability/jdwp/AllModulesCommandTest.java @@ -32,7 +32,7 @@ import static jdk.test.lib.Asserts.assertTrue; * @test * @summary Tests the modules-related JDWP commands * @library /test/lib - * @ignore 8168478 + * @ignore 8170541 * @modules jdk.jdwp.agent * @modules java.base/jdk.internal.misc * @compile AllModulesCommandTestDebuggee.java @@ -96,8 +96,7 @@ public class AllModulesCommandTest implements DebuggeeLauncher.Listener { if (modName != null) { // JDWP reports unnamed modules, ignore them jdwpModuleNames.add(modName); } - // Assert the JDWP CANREAD and CLASSLOADER commands - assertCanRead(modId, modName); + // Assert the CLASSLOADER commands assertClassLoader(modId, modName); } @@ -134,13 +133,6 @@ public class AllModulesCommandTest implements DebuggeeLauncher.Listener { } } - private void assertCanRead(long modId, String modName) throws IOException { - // Simple assert for the CANREAD command - JdwpCanReadReply reply = new JdwpCanReadCmd(modId, modId).send(channel); - assertReply(reply); - assertTrue(reply.canRead(), "canRead() reports false for reading from the same module '" + modName + "', moduleId=" + modId); - } - private void assertClassLoader(long modId, String modName) throws IOException { // Verify that the module classloader id is valid JdwpClassLoaderReply reply = new JdwpClassLoaderCmd(modId).send(channel); diff --git a/hotspot/test/serviceability/jvmti/AddModuleExportsAndOpens/MyPackage/AddModuleExportsAndOpensTest.java b/hotspot/test/serviceability/jvmti/AddModuleExportsAndOpens/MyPackage/AddModuleExportsAndOpensTest.java new file mode 100644 index 00000000000..04446a6c87d --- /dev/null +++ b/hotspot/test/serviceability/jvmti/AddModuleExportsAndOpens/MyPackage/AddModuleExportsAndOpensTest.java @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package MyPackage; + +/** + * @test + * @summary Verifies the JVMTI AddModuleExports and AddModuleOpens API + * @compile AddModuleExportsAndOpensTest.java + * @run main/othervm/native -agentlib:AddModuleExportsAndOpensTest MyPackage.AddModuleExportsAndOpensTest + */ + +import java.io.PrintStream; +import java.lang.reflect.Module; + +public class AddModuleExportsAndOpensTest { + + static { + try { + System.loadLibrary("AddModuleExportsAndOpensTest"); + } catch (UnsatisfiedLinkError ule) { + System.err.println("Could not load AddModuleExportsAndOpensTest library"); + System.err.println("java.library.path: " + + System.getProperty("java.library.path")); + throw ule; + } + } + + native static int check(Module baseModule, Module thisModule); + + public static void main(String args[]) { + Module baseModule = Object.class.getModule(); + Module thisModule = AddModuleExportsAndOpensTest.class.getClassLoader().getUnnamedModule(); + int status = check(baseModule, thisModule); + if (status != 0) { + throw new RuntimeException("Non-zero status returned from the agent: " + status); + } + } +} diff --git a/hotspot/test/serviceability/jvmti/AddModuleExportsAndOpens/libAddModuleExportsAndOpensTest.c b/hotspot/test/serviceability/jvmti/AddModuleExportsAndOpens/libAddModuleExportsAndOpensTest.c new file mode 100644 index 00000000000..351dfc4505c --- /dev/null +++ b/hotspot/test/serviceability/jvmti/AddModuleExportsAndOpens/libAddModuleExportsAndOpensTest.c @@ -0,0 +1,298 @@ +/* + * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +#include +#include +#include "jvmti.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef JNI_ENV_ARG + +#ifdef __cplusplus +#define JNI_ENV_ARG(x, y) y +#define JNI_ENV_PTR(x) x +#else +#define JNI_ENV_ARG(x,y) x, y +#define JNI_ENV_PTR(x) (*x) +#endif + +#endif + +#define TranslateError(err) "JVMTI error" + +#define PASSED 0 +#define FAILED 2 + +static const char *EXC_CNAME = "java/lang/Exception"; +static const char* MOD_CNAME = "Ljava/lang/reflect/Module;"; + +static jvmtiEnv *jvmti = NULL; +static jint result = PASSED; + +static jint Agent_Initialize(JavaVM *jvm, char *options, void *reserved); + +JNIEXPORT +jint JNICALL Agent_OnLoad(JavaVM *jvm, char *options, void *reserved) { + return Agent_Initialize(jvm, options, reserved); +} + +JNIEXPORT +jint JNICALL Agent_OnAttach(JavaVM *jvm, char *options, void *reserved) { + return Agent_Initialize(jvm, options, reserved); +} + +JNIEXPORT +jint JNICALL JNI_OnLoad(JavaVM *jvm, void *reserved) { + return JNI_VERSION_1_8; +} + +static +jint Agent_Initialize(JavaVM *jvm, char *options, void *reserved) { + jint res = JNI_ENV_PTR(jvm)->GetEnv(JNI_ENV_ARG(jvm, (void **) &jvmti), + JVMTI_VERSION_9); + if (res != JNI_OK || jvmti == NULL) { + printf(" Error: wrong result of a valid call to GetEnv!\n"); + return JNI_ERR; + } + + return JNI_OK; +} + +static +jint throw_exc(JNIEnv *env, char *msg) { + jclass exc_class = JNI_ENV_PTR(env)->FindClass(JNI_ENV_ARG(env, EXC_CNAME)); + + if (exc_class == NULL) { + printf("throw_exc: Error in FindClass(env, %s)\n", EXC_CNAME); + return -1; + } + return JNI_ENV_PTR(env)->ThrowNew(JNI_ENV_ARG(env, exc_class), msg); +} + +static +jclass jlrM(JNIEnv *env) { + jclass cls = NULL; + + cls = JNI_ENV_PTR(env)->FindClass(JNI_ENV_ARG(env, MOD_CNAME)); + if (cls == NULL) { + printf(" Error in JNI FindClass: %s\n", MOD_CNAME); + } + return cls; +} + +jmethodID +get_method(JNIEnv *env, jclass clazz, const char * name, const char *sig) { + jmethodID method = NULL; + + method = JNI_ENV_PTR(env)->GetMethodID(JNI_ENV_ARG(env, clazz), name, sig); + if (method == NULL) { + printf(" Error in JNI GetMethodID %s with signature %s", name, sig); + } + return method; +} + +static +jboolean is_exported(JNIEnv *env, jobject module, const char* pkg, jboolean open) { + static jmethodID mIsExported = NULL; + jstring jstr = NULL; + jboolean res = JNI_FALSE; + + if (mIsExported == NULL) { + const char* sign = "(Ljava/lang/String;)Z"; + const char* name = open ? "isOpen" : "isExported"; + mIsExported = get_method(env, jlrM(env), name, sign); + } + jstr = JNI_ENV_PTR(env)->NewStringUTF(JNI_ENV_ARG(env, pkg)); + res = JNI_ENV_PTR(env)->CallBooleanMethod(JNI_ENV_ARG(env, module), + mIsExported, jstr); + return res; +} + +static +jboolean is_exported_to(JNIEnv *env, jobject module, const char* pkg, jobject to_module, + jboolean open) { + static jmethodID mIsExportedTo = NULL; + jstring jstr = NULL; + jboolean res = JNI_FALSE; + + if (mIsExportedTo == NULL) { + const char* sign = "(Ljava/lang/String;Ljava/lang/reflect/Module;)Z"; + const char* name = open ? "isOpen" : "isExported"; + mIsExportedTo = get_method(env, jlrM(env), name, sign); + } + jstr = JNI_ENV_PTR(env)->NewStringUTF(JNI_ENV_ARG(env, pkg)); + res = JNI_ENV_PTR(env)->CallBooleanMethod(JNI_ENV_ARG(env, module), + mIsExportedTo, jstr, to_module); + return res; +} + +static +jvmtiError add_module_exports(jobject baseModule, const char* pkg, jobject thisModule, + jboolean open) { + jvmtiError err = JVMTI_ERROR_NONE; + if (open) { + err = (*jvmti)->AddModuleOpens(jvmti, baseModule, pkg, thisModule); + } else { + err = (*jvmti)->AddModuleExports(jvmti, baseModule, pkg, thisModule); + } + return err; +} + +static +jint check_add_module_exports(JNIEnv *env, + jclass cls, + jobject baseModule, + jobject thisModule, + jboolean open) { + static char strbuf[128] = { '\0' }; + jvmtiError err = JVMTI_ERROR_NONE; + const char* pkg = open ? "jdk.internal.math" + : "jdk.internal.misc"; + const char* bad_pkg = "my.bad.pkg"; + const char* jvmti_fn = open ? "AddModuleOpens" + : "AddModuleExports"; + jboolean exported = JNI_FALSE; + + // Export from NULL module + printf("Check #N1:\n"); + err = add_module_exports(NULL, pkg, thisModule, open); + if (err != JVMTI_ERROR_NULL_POINTER) { + printf("#N1: jvmtiError from %s: %d\n", jvmti_fn, err); + throw_exc(env, "Check #N1: failed to return JVMTI_ERROR_NULL_POINTER for module==NULL"); + return FAILED; + } + + // Export NULL package + printf("Check #N2:\n"); + err = add_module_exports(baseModule, NULL, thisModule, open); + if (err != JVMTI_ERROR_NULL_POINTER) { + printf("#N2: jvmtiError from %s: %d\n", jvmti_fn, err); + throw_exc(env, "Check #N2: failed to return JVMTI_ERROR_NULL_POINTER for pkg==NULL"); + return FAILED; + } + + // Export to NULL module + printf("Check #N3:\n"); + err = add_module_exports(baseModule, pkg, NULL, open); + if (err != JVMTI_ERROR_NULL_POINTER) { + printf("#N3: jvmtiError from %s: %d\n", jvmti_fn, err); + throw_exc(env, "Check #N3: failed to return JVMTI_ERROR_NULL_POINTER for to_module==NULL"); + return FAILED; + } + + // Export a bad package + printf("Check #I0:\n"); + err = add_module_exports(baseModule, bad_pkg, thisModule, open); + if (err != JVMTI_ERROR_ILLEGAL_ARGUMENT) { + printf("#I0: jvmtiError from %s: %d\n", jvmti_fn, err); + throw_exc(env, "Check #I0: did not get expected JVMTI_ERROR_ILLEGAL_ARGUMENT for invalid package"); + return FAILED; + } + + // Export from invalid module (cls) + printf("Check #I1:\n"); + err = add_module_exports((jobject)cls, pkg, thisModule, open); + if (err != JVMTI_ERROR_INVALID_MODULE) { + printf("#I1: jvmtiError from %s: %d\n", jvmti_fn, err); + throw_exc(env, "Check #I1: did not get expected JVMTI_ERROR_INVALID_MODULE for invalid module"); + return FAILED; + } + + // Export to invalid module (cls) + printf("Check #I2:\n"); + err = add_module_exports(baseModule, pkg, (jobject)cls, open); + if (err != JVMTI_ERROR_INVALID_MODULE) { + printf("#I2: jvmtiError from %s: %d\n", jvmti_fn, err); + throw_exc(env, "Check #I2: did not get expected JVMTI_ERROR_INVALID_MODULE for invalid to_module"); + return FAILED; + } + + // Check the pkg is not exported from baseModule to thisModule + printf("Check #C0:\n"); + exported = is_exported_to(env, baseModule, pkg, thisModule, open); + if (exported != JNI_FALSE) { + sprintf(strbuf, "Check #C0: unexpected export of %s from base to this", pkg); + throw_exc(env, strbuf); + return FAILED; + } + + // Add export of the pkg from baseModule to thisModule + printf("Check #C1:\n"); + err = add_module_exports(baseModule, pkg, thisModule, open); + if (err != JVMTI_ERROR_NONE) { + printf("#C1: jvmtiError from %s: %d\n", jvmti_fn, err); + sprintf(strbuf, "Check #C1: error in add export of %s from base to this", pkg); + throw_exc(env, strbuf); + return FAILED; + } + + // Check the pkg is exported from baseModule to thisModule + printf("Check #C2:\n"); + exported = is_exported_to(env, baseModule, pkg, thisModule, open); + if (exported == JNI_FALSE) { + sprintf(strbuf, "Check #C2: failed to export %s from base to this", pkg); + throw_exc(env, strbuf); + return FAILED; + } + + // Check the pkg is not exported to all modules + printf("Check #C3:\n"); + exported = is_exported(env, baseModule, pkg, open); + if (exported != JNI_FALSE) { + sprintf(strbuf, "Check #C3: unexpected export of %s from base to all modules", pkg); + throw_exc(env, strbuf); + return FAILED; + } + return PASSED; +} + +JNIEXPORT jint JNICALL +Java_MyPackage_AddModuleExportsAndOpensTest_check(JNIEnv *env, + jclass cls, + jobject baseModule, + jobject thisModule) { + if (jvmti == NULL) { + throw_exc(env, "JVMTI client was not properly loaded!\n"); + return FAILED; + } + + printf("\n*** Checks for JVMTI AddModuleExports ***\n\n"); + result = check_add_module_exports(env, cls, baseModule, thisModule, JNI_FALSE); + if (result != PASSED) { + return result; + } + + printf("\n*** Checks for JVMTI AddModuleOpens ***\n\n"); + result = check_add_module_exports(env, cls, baseModule, thisModule, JNI_TRUE); + if (result != PASSED) { + return result; + } + return result; +} + +#ifdef __cplusplus +} +#endif diff --git a/hotspot/test/serviceability/jvmti/AddModuleReads/MyPackage/AddModuleReadsTest.java b/hotspot/test/serviceability/jvmti/AddModuleReads/MyPackage/AddModuleReadsTest.java new file mode 100644 index 00000000000..940172af807 --- /dev/null +++ b/hotspot/test/serviceability/jvmti/AddModuleReads/MyPackage/AddModuleReadsTest.java @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package MyPackage; + +/** + * @test + * @summary Verifies the JVMTI AddModuleReads API + * @compile AddModuleReadsTest.java + * @run main/othervm/native -agentlib:AddModuleReadsTest MyPackage.AddModuleReadsTest + */ + +import java.io.PrintStream; +import java.lang.instrument.Instrumentation; +import java.lang.reflect.Module; + +public class AddModuleReadsTest { + + static { + try { + System.loadLibrary("AddModuleReadsTest"); + } catch (UnsatisfiedLinkError ule) { + System.err.println("Could not load AddModuleReadsTest library"); + System.err.println("java.library.path: " + + System.getProperty("java.library.path")); + throw ule; + } + } + + native static int check(Module unnamed, Module base, Module instrument); + + public static void main(String args[]) { + Module unnamed = AddModuleReadsTest.class.getClassLoader().getUnnamedModule(); + Module base = Object.class.getModule(); + Module instrument = Instrumentation.class.getModule(); + int status = check(unnamed, base, instrument); + if (status != 0) { + throw new RuntimeException("Non-zero status returned from the agent: " + status); + } + } +} diff --git a/hotspot/test/serviceability/jvmti/AddModuleReads/libAddModuleReadsTest.c b/hotspot/test/serviceability/jvmti/AddModuleReads/libAddModuleReadsTest.c new file mode 100644 index 00000000000..8d339144847 --- /dev/null +++ b/hotspot/test/serviceability/jvmti/AddModuleReads/libAddModuleReadsTest.c @@ -0,0 +1,265 @@ +/* + * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +#include +#include +#include "jvmti.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef JNI_ENV_ARG + +#ifdef __cplusplus +#define JNI_ENV_ARG(x, y) y +#define JNI_ENV_PTR(x) x +#else +#define JNI_ENV_ARG(x,y) x, y +#define JNI_ENV_PTR(x) (*x) +#endif + +#endif + +#define TranslateError(err) "JVMTI error" + +#define PASSED 0 +#define FAILED 2 + +static const char *EXC_CNAME = "java/lang/Exception"; +static const char* MOD_CNAME = "Ljava/lang/reflect/Module;"; + +static jvmtiEnv *jvmti = NULL; +static jint result = PASSED; + +static jint Agent_Initialize(JavaVM *jvm, char *options, void *reserved); + +JNIEXPORT +jint JNICALL Agent_OnLoad(JavaVM *jvm, char *options, void *reserved) { + return Agent_Initialize(jvm, options, reserved); +} + +JNIEXPORT +jint JNICALL Agent_OnAttach(JavaVM *jvm, char *options, void *reserved) { + return Agent_Initialize(jvm, options, reserved); +} + +JNIEXPORT +jint JNICALL JNI_OnLoad(JavaVM *jvm, void *reserved) { + return JNI_VERSION_1_8; +} + +static +jint Agent_Initialize(JavaVM *jvm, char *options, void *reserved) { + jint res = JNI_ENV_PTR(jvm)->GetEnv(JNI_ENV_ARG(jvm, (void **) &jvmti), + JVMTI_VERSION_9); + if (res != JNI_OK || jvmti == NULL) { + printf(" Error: wrong result of a valid call to GetEnv!\n"); + return JNI_ERR; + } + return JNI_OK; +} + +static +jint throw_exc(JNIEnv *env, char *msg) { + jclass exc_class = JNI_ENV_PTR(env)->FindClass(JNI_ENV_ARG(env, EXC_CNAME)); + + if (exc_class == NULL) { + printf("throw_exc: Error in FindClass(env, %s)\n", EXC_CNAME); + return -1; + } + return JNI_ENV_PTR(env)->ThrowNew(JNI_ENV_ARG(env, exc_class), msg); +} + +static +jclass jlrM(JNIEnv *env) { + jclass cls = NULL; + + cls = JNI_ENV_PTR(env)->FindClass(JNI_ENV_ARG(env, MOD_CNAME)); + if (cls == NULL) { + printf(" Error in JNI FindClass: %s\n", MOD_CNAME); + } + return cls; +} + +jmethodID +get_method(JNIEnv *env, jclass clazz, const char * name, const char *sig) { + jmethodID method = NULL; + + method = JNI_ENV_PTR(env)->GetMethodID(JNI_ENV_ARG(env, clazz), name, sig); + if (method == NULL) { + printf(" Error in JNI GetMethodID %s with signature %s", name, sig); + } + return method; +} + +static +jboolean can_module_read(JNIEnv *env, jobject module, jobject to_module) { + static jmethodID mCanRead = NULL; + jboolean res = JNI_FALSE; + + if (mCanRead == NULL) { + const char* sign = "(Ljava/lang/reflect/Module;)Z"; + mCanRead = get_method(env, jlrM(env), "canRead", sign); + } + res = JNI_ENV_PTR(env)->CallBooleanMethod(JNI_ENV_ARG(env, module), + mCanRead, to_module); + return res; +} + +static +jint check_add_module_reads(JNIEnv *env, + jclass cls, + jobject unnamedModule, + jobject baseModule, + jobject instrModule) { + jvmtiError err = JVMTI_ERROR_NONE; + jboolean can = JNI_FALSE; + + // Add an invalid read edge from NULL module + printf("Check #N1:\n"); + err = (*jvmti)->AddModuleReads(jvmti, NULL, baseModule); + if (err != JVMTI_ERROR_NULL_POINTER) { + printf("#N1: jvmtiError from AddModuleReads: %d\n", err); + throw_exc(env, "Check #N1: failed to return JVMTI_ERROR_NULL_POINTER for module==NULL"); + return FAILED; + } + + // Add an invalid read edge to NULL module + printf("Check #N2:\n"); + err = (*jvmti)->AddModuleReads(jvmti, baseModule, NULL); + if (err != JVMTI_ERROR_NULL_POINTER) { + printf("#N2: jvmtiError from AddModuleReads: %d\n", err); + throw_exc(env, "Check #N2: failed to return JVMTI_ERROR_NULL_POINTER for to_module==NULL"); + return FAILED; + } + + // Add an invalid read edge from invalid module (cls) + printf("Check #I1:\n"); + err = (*jvmti)->AddModuleReads(jvmti, cls, baseModule); + if (err != JVMTI_ERROR_INVALID_MODULE) { + printf("#I1: jvmtiError from AddModuleReads: %d\n", err); + throw_exc(env, "Check #I1: failed to return JVMTI_ERROR_INVALID_MODULE for module==cls"); + return FAILED; + } + + // Add an invalid read edge to invalid module (cls) + printf("Check #I2:\n"); + err = (*jvmti)->AddModuleReads(jvmti, baseModule, cls); + if (err != JVMTI_ERROR_INVALID_MODULE) { + printf("#I2: jvmtiError from AddModuleReads: %d\n", err); + throw_exc(env, "Check #I2: failed to return JVMTI_ERROR_INVALID_MODULE for to_module==cls"); + return FAILED; + } + + // Check the edge baseModule->instrModule is absent + printf("Check #C0:\n"); + can = can_module_read(env, baseModule, instrModule); + if (can != JNI_FALSE) { + throw_exc(env, "Check #C0: read edge from base to instr is unexpected"); + return FAILED; + } + + // Add read edge baseModule->instrModule + printf("Check #C1:\n"); + err = (*jvmti)->AddModuleReads(jvmti, baseModule, instrModule); + if (err != JVMTI_ERROR_NONE) { + printf("#C1: jvmtiError from AddModuleReads: %d\n", err); + throw_exc(env, "Check #C1: error in add reads from base to instr"); + return FAILED; + } + + // Check the read edge baseModule->instrModule is present now + printf("Check #C2:\n"); + can = can_module_read(env, baseModule, instrModule); + if (can == JNI_FALSE) { + throw_exc(env, "Check #C2: failed to add reads from base to instr"); + return FAILED; + } + + // Check the read edge baseModule->unnamedModule is absent + printf("Check #C3:\n"); + can = can_module_read(env, baseModule, unnamedModule); + if (can != JNI_FALSE) { + throw_exc(env, "Check #C3: got unexpected read edge from base to unnamed"); + return FAILED; + } + + // Add read edge baseModule->unnamedModule + printf("Check #C4:\n"); + err = (*jvmti)->AddModuleReads(jvmti, baseModule, unnamedModule); + if (err != JVMTI_ERROR_NONE) { + printf("#C4: jvmtiError from AddModuleReads: %d\n", err); + throw_exc(env, "Check #C4: failed to ignore adding read edge from base to unnamed"); + return FAILED; + } + + // Check the read edge baseModule->unnamedModule is present now + printf("Check #C5:\n"); + can = can_module_read(env, baseModule, unnamedModule); + if (can == JNI_FALSE) { + throw_exc(env, "Check #C5: did not get expected read edge from base to unnamed"); + return FAILED; + } + + // Check the read edge unnamedModule->instrModule is absent + printf("Check #C6:\n"); + can = can_module_read(env, unnamedModule, instrModule); + if (can == JNI_FALSE) { + throw_exc(env, "Check #C6: did not get expected read edge from unnamed to instr"); + return FAILED; + } + + // Add read edge unnamedModule->instrModule + printf("Check #C7:\n"); + err = (*jvmti)->AddModuleReads(jvmti, unnamedModule, instrModule); + if (err != JVMTI_ERROR_NONE) { + printf("#C7: jvmtiError from AddModuleReads: %d\n", err); + throw_exc(env, "Check #C7: failed to ignore adding read edge from unnamed to instr"); + return FAILED; + } + return PASSED; +} + +JNIEXPORT jint JNICALL +Java_MyPackage_AddModuleReadsTest_check(JNIEnv *env, + jclass cls, + jobject unnamedModule, + jobject baseModule, + jobject instrModule) { + if (jvmti == NULL) { + throw_exc(env, "JVMTI client was not properly loaded!\n"); + return FAILED; + } + + printf("\n*** Checks for JVMTI AddModuleReads ***\n\n"); + result = check_add_module_reads(env, cls, unnamedModule, baseModule, instrModule); + if (result != PASSED) { + return result; + } + return result; +} + +#ifdef __cplusplus +} +#endif diff --git a/hotspot/test/serviceability/jvmti/AddModuleUsesAndProvides/MyPackage/AddModuleUsesAndProvidesTest.java b/hotspot/test/serviceability/jvmti/AddModuleUsesAndProvides/MyPackage/AddModuleUsesAndProvidesTest.java new file mode 100644 index 00000000000..e6d9d57c01d --- /dev/null +++ b/hotspot/test/serviceability/jvmti/AddModuleUsesAndProvides/MyPackage/AddModuleUsesAndProvidesTest.java @@ -0,0 +1,84 @@ +/* + * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package MyPackage; + +/** + * @test + * @summary Basic test for JVMTI AddModuleUses and AddModuleProvides + * @build java.base/java.lang.TestProvider + * java.base/jdk.internal.test.TestProviderImpl + * @compile AddModuleUsesAndProvidesTest.java + * @run main/othervm/native -agentlib:AddModuleUsesAndProvidesTest MyPackage.AddModuleUsesAndProvidesTest + */ + +import java.io.PrintStream; +import java.lang.TestProvider; +import java.lang.reflect.Module; + +public class AddModuleUsesAndProvidesTest { + + static { + try { + System.loadLibrary("AddModuleUsesAndProvidesTest"); + } catch (UnsatisfiedLinkError ule) { + System.err.println("Could not load AddModuleUsesAndProvidesTest library"); + System.err.println("java.library.path: " + + System.getProperty("java.library.path")); + throw ule; + } + } + + native static int checkUses(Module baseModule, Class service); + native static int checkProvides(Module baseModule, Class service, Class serviceImpl); + + public static void main(String args[]) throws Exception { + Module baseModule = Object.class.getModule(); + Class service = TestProvider.class; + Class serviceImpl = Class.forName("jdk.internal.test.TestProviderImpl"); + + System.out.println("\n*** Checks for JVMTI AddModuleUses ***\n"); + + int status = checkUses(baseModule, service); + if (status != 0) { + throw new RuntimeException("Non-zero status returned from the agent: " + status); + } + + System.out.println("\n*** Checks for JVMTI AddModuleProvides ***\n"); + + System.out.println("Check #PC1:"); + if (TestProvider.providers().iterator().hasNext()) { + throw new RuntimeException("Check #PC1: Unexpectedly service is provided"); + } + + status = checkProvides(baseModule, service, serviceImpl); + if (status != 0) { + throw new RuntimeException("Non-zero status returned from the agent: " + status); + } + + System.out.println("Check #PC3:"); + if (!TestProvider.providers().iterator().hasNext()) { + throw new RuntimeException("Check #PC3: Unexpectedly service is not provided"); + } + } +} diff --git a/hotspot/test/serviceability/jvmti/AddModuleUsesAndProvides/MyPackage/java.base/java/lang/TestProvider.java b/hotspot/test/serviceability/jvmti/AddModuleUsesAndProvides/MyPackage/java.base/java/lang/TestProvider.java new file mode 100644 index 00000000000..696d2e9f798 --- /dev/null +++ b/hotspot/test/serviceability/jvmti/AddModuleUsesAndProvides/MyPackage/java.base/java/lang/TestProvider.java @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package java.lang; + +import java.util.ServiceLoader; + +public interface TestProvider { + public static Iterable providers() { + return ServiceLoader.load(TestProvider.class); + } +} diff --git a/hotspot/test/serviceability/jvmti/AddModuleUsesAndProvides/MyPackage/java.base/jdk/internal/test/TestProviderImpl.java b/hotspot/test/serviceability/jvmti/AddModuleUsesAndProvides/MyPackage/java.base/jdk/internal/test/TestProviderImpl.java new file mode 100644 index 00000000000..b87f43c2796 --- /dev/null +++ b/hotspot/test/serviceability/jvmti/AddModuleUsesAndProvides/MyPackage/java.base/jdk/internal/test/TestProviderImpl.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package jdk.internal.test; + +import java.lang.TestProvider; + +public class TestProviderImpl implements TestProvider { + public TestProviderImpl() { } +} + diff --git a/hotspot/test/serviceability/jvmti/AddModuleUsesAndProvides/libAddModuleUsesAndProvidesTest.c b/hotspot/test/serviceability/jvmti/AddModuleUsesAndProvides/libAddModuleUsesAndProvidesTest.c new file mode 100644 index 00000000000..0d993f6d909 --- /dev/null +++ b/hotspot/test/serviceability/jvmti/AddModuleUsesAndProvides/libAddModuleUsesAndProvidesTest.c @@ -0,0 +1,280 @@ +/* + * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +#include +#include +#include "jvmti.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef JNI_ENV_ARG + +#ifdef __cplusplus +#define JNI_ENV_ARG(x, y) y +#define JNI_ENV_PTR(x) x +#else +#define JNI_ENV_ARG(x,y) x, y +#define JNI_ENV_PTR(x) (*x) +#endif + +#endif + +#define TranslateError(err) "JVMTI error" + +#define PASSED 0 +#define FAILED 2 + +static const char *EXC_CNAME = "java/lang/Exception"; +static const char* MOD_CNAME = "Ljava/lang/reflect/Module;"; + +static jvmtiEnv *jvmti = NULL; +static jint result = PASSED; + +static jint Agent_Initialize(JavaVM *jvm, char *options, void *reserved); + +JNIEXPORT +jint JNICALL Agent_OnLoad(JavaVM *jvm, char *options, void *reserved) { + return Agent_Initialize(jvm, options, reserved); +} + +JNIEXPORT +jint JNICALL Agent_OnAttach(JavaVM *jvm, char *options, void *reserved) { + return Agent_Initialize(jvm, options, reserved); +} + +JNIEXPORT +jint JNICALL JNI_OnLoad(JavaVM *jvm, void *reserved) { + return JNI_VERSION_1_8; +} + +static +jint Agent_Initialize(JavaVM *jvm, char *options, void *reserved) { + jint res = JNI_ENV_PTR(jvm)->GetEnv(JNI_ENV_ARG(jvm, (void **) &jvmti), + JVMTI_VERSION_9); + if (res != JNI_OK || jvmti == NULL) { + printf(" Error: wrong result of a valid call to GetEnv!\n"); + return JNI_ERR; + } + + return JNI_OK; +} + +static +jint throw_exc(JNIEnv *env, char *msg) { + jclass exc_class = JNI_ENV_PTR(env)->FindClass(JNI_ENV_ARG(env, EXC_CNAME)); + + if (exc_class == NULL) { + printf("throw_exc: Error in FindClass(env, %s)\n", EXC_CNAME); + return -1; + } + return JNI_ENV_PTR(env)->ThrowNew(JNI_ENV_ARG(env, exc_class), msg); +} + +static +jclass jlrM(JNIEnv *env) { + jclass cls = NULL; + + cls = JNI_ENV_PTR(env)->FindClass(JNI_ENV_ARG(env, MOD_CNAME)); + if (cls == NULL) { + printf(" Error in JNI FindClass: %s\n", MOD_CNAME); + } + return cls; +} + +jmethodID +get_method(JNIEnv *env, jclass clazz, const char * name, const char *sig) { + jmethodID method = NULL; + + method = JNI_ENV_PTR(env)->GetMethodID(JNI_ENV_ARG(env, clazz), name, sig); + if (method == NULL) { + printf(" Error in JNI GetMethodID %s with signature %s", name, sig); + } + return method; +} + +static +jboolean can_use_service(JNIEnv *env, jobject module, jclass service) { + static jmethodID mCanUse = NULL; + jboolean res = JNI_FALSE; + + if (mCanUse == NULL) { + const char* sign = "(Ljava/lang/Class;)Z"; + mCanUse = get_method(env, jlrM(env), "canUse", sign); + } + res = JNI_ENV_PTR(env)->CallBooleanMethod(JNI_ENV_ARG(env, module), + mCanUse, service); + return res; +} + +JNIEXPORT jint JNICALL +Java_MyPackage_AddModuleUsesAndProvidesTest_checkUses(JNIEnv *env, + jclass cls, + jobject baseModule, + jclass service) { + jvmtiError err = JVMTI_ERROR_NONE; + jboolean used = JNI_FALSE; + + // Add a service to use to NULL module + printf("Check #UN1:\n"); + err = (*jvmti)->AddModuleUses(jvmti, NULL, service); + if (err != JVMTI_ERROR_NULL_POINTER) { + printf("#UN1: jvmtiError from AddModuleUses: %d\n", err); + throw_exc(env, "Check #UN1: failed to return JVMTI_ERROR_NULL_POINTER for module==NULL"); + return FAILED; + } + + // Add NULL service to use to baseModule + printf("Check #UN2:\n"); + err = (*jvmti)->AddModuleUses(jvmti, baseModule, NULL); + if (err != JVMTI_ERROR_NULL_POINTER) { + printf("#UN2: jvmtiError from AddModuleUses: %d\n", err); + throw_exc(env, "Check #UN2: failed to return JVMTI_ERROR_NULL_POINTER for service==NULL"); + return FAILED; + } + + // Add service to use to invalid module (cls) + printf("Check #UI1:\n"); + err = (*jvmti)->AddModuleUses(jvmti, (jobject)cls, service); + if (err != JVMTI_ERROR_INVALID_MODULE) { + printf("#UI1: jvmtiError from AddModuleUses: %d\n", err); + throw_exc(env, "Check #UI1: did not get expected JVMTI_ERROR_INVALID_MODULE for invalid module"); + return FAILED; + } + + // Add invalid service (thisModule) to use to baseModule + printf("Check #UI2:\n"); + err = (*jvmti)->AddModuleUses(jvmti, baseModule, baseModule); + if (err != JVMTI_ERROR_INVALID_CLASS) { + printf("#UI2: jvmtiError from AddModuleUses: %d\n", err); + throw_exc(env, "Check #UI2: did not get expected JVMTI_ERROR_INVALID_CLASS for invalid service"); + return FAILED; + } + + // Check if the service can not be used + printf("Check #UC1:\n"); + used = can_use_service(env, baseModule, service); + if (used != JNI_FALSE) { + throw_exc(env, "Check #UC1: unexpected use of service"); + return FAILED; + } + + // Add uses of a correct service + printf("Check #UC2:\n"); + err = (*jvmti)->AddModuleUses(jvmti, baseModule, service); + if (err != JVMTI_ERROR_NONE) { + printf("#UC2: jvmtiError from AddModuleUses: %d\n", err); + throw_exc(env, "Check #UC2: got unexpected JVMTI error"); + return FAILED; + } + + // Check if the service can not be used + printf("Check #UC3:\n"); + used = can_use_service(env, baseModule, service); + if (used == JNI_FALSE) { + throw_exc(env, "Check #UC3: service can not be used unexpectedly"); + return FAILED; + } + fflush(0); + return PASSED; +} + +JNIEXPORT jint JNICALL +Java_MyPackage_AddModuleUsesAndProvidesTest_checkProvides(JNIEnv *env, + jclass cls, + jobject baseModule, + jclass service, + jclass serviceImpl) { + jvmtiError err = JVMTI_ERROR_NONE; + jboolean provided = JNI_FALSE; + + // Add provides to NULL module + printf("Check #PN1:\n"); + err = (*jvmti)->AddModuleProvides(jvmti, NULL, service, serviceImpl); + if (err != JVMTI_ERROR_NULL_POINTER) { + printf("#PN1: jvmtiError from AddModuleProvides: %d\n", err); + throw_exc(env, "Check #PN1: failed to return JVMTI_ERROR_NULL_POINTER for module==NULL"); + return FAILED; + } + + // Add provides with NULL service + printf("Check #PN2:\n"); + err = (*jvmti)->AddModuleProvides(jvmti, baseModule, NULL, serviceImpl); + if (err != JVMTI_ERROR_NULL_POINTER) { + printf("#PN2: jvmtiError from AddModuleProvides: %d\n", err); + throw_exc(env, "Check #PN2: failed to return JVMTI_ERROR_NULL_POINTER for service==NULL"); + return FAILED; + } + + // Add provides with NULL serviceImpl + printf("Check #PN3:\n"); + err = (*jvmti)->AddModuleProvides(jvmti, baseModule, service, NULL); + if (err != JVMTI_ERROR_NULL_POINTER) { + printf("#PN3: jvmtiError from AddModuleProvides: %d\n", err); + throw_exc(env, "Check #PN3: failed to return JVMTI_ERROR_NULL_POINTER for serviceImpl==NULL"); + return FAILED; + } + + // Add provides to invalid module (cls) + printf("Check #PI1:\n"); + err = (*jvmti)->AddModuleProvides(jvmti, (jobject)cls, service, serviceImpl); + if (err != JVMTI_ERROR_INVALID_MODULE) { + printf("#PI1: jvmtiError from AddModuleProvides: %d\n", err); + throw_exc(env, "Check #PI1: did not get expected JVMTI_ERROR_INVALID_MODULE for invalid module"); + return FAILED; + } + + // Add provides with invalid service (baseModule) + printf("Check #PI2:\n"); + err = (*jvmti)->AddModuleProvides(jvmti, baseModule, baseModule, serviceImpl); + if (err != JVMTI_ERROR_INVALID_CLASS) { + printf("#PI2: jvmtiError from AddModuleProvides: %d\n", err); + throw_exc(env, "Check #PI2: did not get expected JVMTI_ERROR_INVALID_CLASS for invalid service"); + return FAILED; + } + + // Add provides with invalid serviceImpl (baseModule) + printf("Check #PI3:\n"); + err = (*jvmti)->AddModuleProvides(jvmti, baseModule, service, baseModule); + if (err != JVMTI_ERROR_INVALID_CLASS) { + printf("#PI3: jvmtiError from AddModuleProvides: %d\n", err); + throw_exc(env, "Check #PI3: did not get expected JVMTI_ERROR_INVALID_CLASS for invalid serviceImpl"); + return FAILED; + } + + // Add provides to baseModule with correct service and serviceImpl + printf("Check #PC2:\n"); + err = (*jvmti)->AddModuleProvides(jvmti, baseModule, service, serviceImpl); + if (err != JVMTI_ERROR_NONE) { + printf("#PC2: jvmtiError from AddModuleExports: %d\n", err); + throw_exc(env, "Check #PC2: error in add provides to baseModule with correct service and serviceImpl"); + return FAILED; + } + fflush(0); + return PASSED; +} + +#ifdef __cplusplus +} +#endif diff --git a/hotspot/test/serviceability/jvmti/GetModulesInfo/JvmtiGetAllModulesTest.java b/hotspot/test/serviceability/jvmti/GetModulesInfo/JvmtiGetAllModulesTest.java index 5fa6c9e4402..7cd5041e5d2 100644 --- a/hotspot/test/serviceability/jvmti/GetModulesInfo/JvmtiGetAllModulesTest.java +++ b/hotspot/test/serviceability/jvmti/GetModulesInfo/JvmtiGetAllModulesTest.java @@ -72,8 +72,7 @@ public class JvmtiGetAllModulesTest { // Load a new named module ModuleDescriptor descriptor - = new ModuleDescriptor.Builder(MY_MODULE_NAME) - .build(); + = ModuleDescriptor.module(MY_MODULE_NAME).build(); ModuleFinder finder = finderOf(descriptor); ClassLoader loader = new ClassLoader() {}; Configuration parent = Layer.boot().configuration(); diff --git a/hotspot/test/serviceability/sa/TestInstanceKlassSize.java b/hotspot/test/serviceability/sa/TestInstanceKlassSize.java index 4af527eaa46..e99b2a949df 100644 --- a/hotspot/test/serviceability/sa/TestInstanceKlassSize.java +++ b/hotspot/test/serviceability/sa/TestInstanceKlassSize.java @@ -46,6 +46,7 @@ import java.util.*; * @library /test/lib * @modules java.base/jdk.internal.misc * @compile -XDignore.symbol.file=true + * --add-modules=jdk.hotspot.agent * --add-exports=jdk.hotspot.agent/sun.jvm.hotspot=ALL-UNNAMED * --add-exports=jdk.hotspot.agent/sun.jvm.hotspot.utilities=ALL-UNNAMED * --add-exports=jdk.hotspot.agent/sun.jvm.hotspot.oops=ALL-UNNAMED diff --git a/hotspot/test/serviceability/sa/TestInstanceKlassSizeForInterface.java b/hotspot/test/serviceability/sa/TestInstanceKlassSizeForInterface.java index f6a9c3f0bf8..abf5412dad4 100644 --- a/hotspot/test/serviceability/sa/TestInstanceKlassSizeForInterface.java +++ b/hotspot/test/serviceability/sa/TestInstanceKlassSizeForInterface.java @@ -39,6 +39,7 @@ import jdk.test.lib.Asserts; * @library /test/lib * @modules java.base/jdk.internal.misc * @compile -XDignore.symbol.file=true + * --add-modules=jdk.hotspot.agent * --add-exports=jdk.hotspot.agent/sun.jvm.hotspot=ALL-UNNAMED * --add-exports=jdk.hotspot.agent/sun.jvm.hotspot.utilities=ALL-UNNAMED * --add-exports=jdk.hotspot.agent/sun.jvm.hotspot.oops=ALL-UNNAMED diff --git a/jaxp/.hgignore b/jaxp/.hgignore index 195f7dbfed1..1c1d4fc1a3f 100644 --- a/jaxp/.hgignore +++ b/jaxp/.hgignore @@ -4,4 +4,3 @@ ^drop_included/ ^webrev /nbproject/private/ -^.hgtip diff --git a/jaxp/.hgtags b/jaxp/.hgtags index b0676a90a3d..70aeffbb0b5 100644 --- a/jaxp/.hgtags +++ b/jaxp/.hgtags @@ -389,3 +389,5 @@ ce81d03ad7320dca3d673374c1a33bc0efd9136a jdk-9+143 99be33734ff62b75116b1202d49a4d4e1bda4226 jdk-9+144 71558b38bad786f11350790cef7d2c6409813e91 jdk-9+145 09eda28b98e4b9cae1d29e94f0cf1a01cc42c207 jdk-9+146 +149559dd882ddca2c78355641a46db9138b12763 jdk-9+147 +c45db75bfe8bc20bb80b4a009ae3f69c9cd2d885 jdk-9+148 diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_de.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_de.java index 21881d40189..d1a408f6762 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_de.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_de.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: XSLTErrorResources_de.java /st_wptg_1.9.0.0.0jdk/2 2016/04/13 06:43:54 gmolloy Exp $ - */ package com.sun.org.apache.xalan.internal.res; import java.util.ListResourceBundle; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_es.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_es.java index 7294a36feeb..ef0b0f6af22 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_es.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_es.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: XSLTErrorResources_es.java /st_wptg_1.8.0.0.0jdk/2 2013/09/16 09:06:34 gmolloy Exp $ - */ package com.sun.org.apache.xalan.internal.res; import java.util.ListResourceBundle; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_fr.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_fr.java index 6d6af1c8438..2ffbbba856b 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_fr.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_fr.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: XSLTErrorResources_fr.java /st_wptg_1.9.0.0.0jdk/2 2016/04/12 05:13:35 gmolloy Exp $ - */ package com.sun.org.apache.xalan.internal.res; import java.util.ListResourceBundle; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_it.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_it.java index d25eb67d962..aae3c36dfc8 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_it.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_it.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: XSLTErrorResources_it.java /st_wptg_1.8.0.0.0jdk/2 2013/09/16 07:02:00 gmolloy Exp $ - */ package com.sun.org.apache.xalan.internal.res; import java.util.ListResourceBundle; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_ja.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_ja.java index bc6faf600fd..7460d3efef8 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_ja.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_ja.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: XSLTErrorResources_ja.java /st_wptg_1.9.0.0.0jdk/2 2016/04/12 00:37:07 gmolloy Exp $ - */ package com.sun.org.apache.xalan.internal.res; import java.util.ListResourceBundle; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_ko.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_ko.java index ab6dad8bb41..fe292ee08d6 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_ko.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_ko.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: XSLTErrorResources_ko.java /st_wptg_1.9.0.0.0jdk/2 2016/04/12 02:39:50 gmolloy Exp $ - */ package com.sun.org.apache.xalan.internal.res; import java.util.ListResourceBundle; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_pt_BR.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_pt_BR.java index 5f3c4ca70c3..7eedeb87ff9 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_pt_BR.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_pt_BR.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: XSLTErrorResources_pt_BR.java /st_wptg_1.9.0.0.0jdk/2 2016/04/12 18:01:34 gmolloy Exp $ - */ package com.sun.org.apache.xalan.internal.res; import java.util.ListResourceBundle; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_sv.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_sv.java index 8e66a1b9c69..183697b5025 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_sv.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_sv.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: XSLTErrorResources_sv.java /st_wptg_1.9.0.0.0jdk/2 2016/04/14 01:57:20 gmolloy Exp $ - */ package com.sun.org.apache.xalan.internal.res; import java.util.ListResourceBundle; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_zh_CN.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_zh_CN.java index cb336ab9ad1..bd8f9a5dd67 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_zh_CN.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_zh_CN.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: XSLTErrorResources_zh_CN.java /st_wptg_1.8.0.0.0jdk/3 2013/11/11 11:39:28 gmolloy Exp $ - */ package com.sun.org.apache.xalan.internal.res; import java.util.ListResourceBundle; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_zh_TW.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_zh_TW.java index 83f79120474..ee8a11b35f6 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_zh_TW.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_zh_TW.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: XSLTErrorResources_zh_TW.java /st_wptg_1.9.0.0.0jdk/2 2016/04/11 20:46:43 gmolloy Exp $ - */ package com.sun.org.apache.xalan.internal.res; import java.util.ListResourceBundle; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_de.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_de.java index e72f7fac60d..425707e4792 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_de.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_de.java @@ -1,15 +1,15 @@ /* - * reserved comment block - * DO NOT REMOVE OR ALTER! + * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved. */ /* - * Copyright 2001-2004 The Apache Software Foundation. + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: ErrorMessages_de.java /st_wptg_1.9.0.0.0jdk/2 2016/04/13 06:43:54 gmolloy Exp $ - */ package com.sun.org.apache.xalan.internal.xsltc.compiler.util; @@ -172,6 +169,13 @@ public class ErrorMessages_de extends ListResourceBundle { {ErrorMsg.INVALID_URI_ERR, "Ung\u00FCltiger URI \"{0}\"."}, + /* + * Note to translators: This message is displayed when the URI + * mentioned in the substitution text is not well-formed syntactically. + */ + {ErrorMsg.CATALOG_EXCEPTION, + "JAXP08090001: CatalogResolver ist mit dem Katalog \"{0}\" aktiviert, eine CatalogException wird jedoch zur\u00FCckgegeben."}, + /* * Note to translators: The file or URI named in the substitution text * exists but could not be opened. @@ -268,6 +272,13 @@ public class ErrorMessages_de extends ListResourceBundle { {ErrorMsg.CIRCULAR_INCLUDE_ERR, "Zyklisches import/include. Stylesheet \"{0}\" bereits geladen."}, + /* + * Note to translators: "xsl:import" and "xsl:include" are keywords that + * should not be translated. + */ + {ErrorMsg.IMPORT_PRECEDE_OTHERS_ERR, + "Die untergeordneten Elemente des xsl:import-Elements m\u00FCssen vor allen anderen untergeordneten Elementen eines xsl:stylesheet-Elements stehen, einschlie\u00DFlich eventueller untergeordneter Elemente des xsl:include-Elements."}, + /* * Note to translators: A result-tree fragment is a portion of a * resulting XML document represented as a tree. "" is a diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_es.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_es.java index 3276bba1341..111b251d48d 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_es.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_es.java @@ -1,15 +1,15 @@ /* - * reserved comment block - * DO NOT REMOVE OR ALTER! + * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved. */ /* - * Copyright 2001-2004 The Apache Software Foundation. + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: ErrorMessages_es.java /st_wptg_1.9.0.0.0jdk/2 2016/04/14 05:09:25 gmolloy Exp $ - */ package com.sun.org.apache.xalan.internal.xsltc.compiler.util; @@ -172,6 +169,13 @@ public class ErrorMessages_es extends ListResourceBundle { {ErrorMsg.INVALID_URI_ERR, "URI ''{0}'' no v\u00E1lido."}, + /* + * Note to translators: This message is displayed when the URI + * mentioned in the substitution text is not well-formed syntactically. + */ + {ErrorMsg.CATALOG_EXCEPTION, + "JAXP08090001: CatalogResolver est\u00E1 activado con el cat\u00E1logo \"{0}\", pero se ha devuelto una excepci\u00F3n CatalogException."}, + /* * Note to translators: The file or URI named in the substitution text * exists but could not be opened. @@ -268,6 +272,13 @@ public class ErrorMessages_es extends ListResourceBundle { {ErrorMsg.CIRCULAR_INCLUDE_ERR, "Import/include circular. La hoja de estilo ''{0}'' ya se ha cargado."}, + /* + * Note to translators: "xsl:import" and "xsl:include" are keywords that + * should not be translated. + */ + {ErrorMsg.IMPORT_PRECEDE_OTHERS_ERR, + "Los secundarios del elemento xsl:import deben preceder al resto de secundarios de elementos de un elemento xsl:stylesheet, incluidos los secundarios de elementos xsl:include."}, + /* * Note to translators: A result-tree fragment is a portion of a * resulting XML document represented as a tree. "" is a diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_fr.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_fr.java index 17817177af3..1123464069e 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_fr.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_fr.java @@ -1,15 +1,15 @@ /* - * reserved comment block - * DO NOT REMOVE OR ALTER! + * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved. */ /* - * Copyright 2001-2004 The Apache Software Foundation. + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: ErrorMessages_fr.java /st_wptg_1.9.0.0.0jdk/2 2016/04/12 05:13:35 gmolloy Exp $ - */ package com.sun.org.apache.xalan.internal.xsltc.compiler.util; @@ -172,6 +169,13 @@ public class ErrorMessages_fr extends ListResourceBundle { {ErrorMsg.INVALID_URI_ERR, "URI ''{0}'' non valide."}, + /* + * Note to translators: This message is displayed when the URI + * mentioned in the substitution text is not well-formed syntactically. + */ + {ErrorMsg.CATALOG_EXCEPTION, + "JAXP08090001 : le CatalogResolver est activ\u00E9 avec le catalogue \"{0}\", mais une exception CatalogException est renvoy\u00E9e."}, + /* * Note to translators: The file or URI named in the substitution text * exists but could not be opened. @@ -268,6 +272,13 @@ public class ErrorMessages_fr extends ListResourceBundle { {ErrorMsg.CIRCULAR_INCLUDE_ERR, "Op\u00E9ration import/include circulaire. La feuille de style ''{0}'' est d\u00E9j\u00E0 charg\u00E9e."}, + /* + * Note to translators: "xsl:import" and "xsl:include" are keywords that + * should not be translated. + */ + {ErrorMsg.IMPORT_PRECEDE_OTHERS_ERR, + "Les enfants d'\u00E9l\u00E9ment xsl:import doivent pr\u00E9c\u00E9der tous les autres enfants d'\u00E9l\u00E9ment d'un \u00E9l\u00E9ment xsl:stylesheet, y compris tout enfant d'\u00E9l\u00E9ment xsl:include."}, + /* * Note to translators: A result-tree fragment is a portion of a * resulting XML document represented as a tree. "" is a diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_it.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_it.java index 4a3f4a0e2f3..ab05118b8a1 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_it.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_it.java @@ -1,15 +1,15 @@ /* - * reserved comment block - * DO NOT REMOVE OR ALTER! + * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved. */ /* - * Copyright 2001-2004 The Apache Software Foundation. + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: ErrorMessages_it.java /st_wptg_1.9.0.0.0jdk/2 2016/04/12 03:53:19 gmolloy Exp $ - */ package com.sun.org.apache.xalan.internal.xsltc.compiler.util; @@ -172,6 +169,13 @@ public class ErrorMessages_it extends ListResourceBundle { {ErrorMsg.INVALID_URI_ERR, "URI ''{0}'' non valido."}, + /* + * Note to translators: This message is displayed when the URI + * mentioned in the substitution text is not well-formed syntactically. + */ + {ErrorMsg.CATALOG_EXCEPTION, + "JAXP08090001: il CatalogResolver \u00E8 abilitato con il catalogo \"{0}\", ma viene restituita una CatalogException."}, + /* * Note to translators: The file or URI named in the substitution text * exists but could not be opened. @@ -268,6 +272,13 @@ public class ErrorMessages_it extends ListResourceBundle { {ErrorMsg.CIRCULAR_INCLUDE_ERR, "Importazione/inclusione circolare. Il foglio di stile ''{0}'' \u00E8 gi\u00E0 stato caricato."}, + /* + * Note to translators: "xsl:import" and "xsl:include" are keywords that + * should not be translated. + */ + {ErrorMsg.IMPORT_PRECEDE_OTHERS_ERR, + "Gli elementi figlio dell'elemento xsl:import devono precedere tutti gli elementi figlio di xsl:stylesheet, inclusi eventuali elementi figlio di xsl:include."}, + /* * Note to translators: A result-tree fragment is a portion of a * resulting XML document represented as a tree. "" is a diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_ja.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_ja.java index 33be81feba8..1b6a3ef0aba 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_ja.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_ja.java @@ -1,15 +1,15 @@ /* - * reserved comment block - * DO NOT REMOVE OR ALTER! + * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved. */ /* - * Copyright 2001-2004 The Apache Software Foundation. + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: ErrorMessages_ja.java /st_wptg_1.9.0.0.0jdk/2 2016/04/12 00:37:07 gmolloy Exp $ - */ package com.sun.org.apache.xalan.internal.xsltc.compiler.util; @@ -172,6 +169,13 @@ public class ErrorMessages_ja extends ListResourceBundle { {ErrorMsg.INVALID_URI_ERR, "URI ''{0}''\u304C\u7121\u52B9\u3067\u3059\u3002"}, + /* + * Note to translators: This message is displayed when the URI + * mentioned in the substitution text is not well-formed syntactically. + */ + {ErrorMsg.CATALOG_EXCEPTION, + "JAXP08090001: CatalogResolver\u306F\u30AB\u30BF\u30ED\u30B0\"{0}\"\u3067\u6709\u52B9\u3067\u3059\u304C\u3001CatalogException\u304C\u8FD4\u3055\u308C\u307E\u3059\u3002"}, + /* * Note to translators: The file or URI named in the substitution text * exists but could not be opened. @@ -268,6 +272,13 @@ public class ErrorMessages_ja extends ListResourceBundle { {ErrorMsg.CIRCULAR_INCLUDE_ERR, "\u30A4\u30F3\u30DD\u30FC\u30C8\u307E\u305F\u306F\u30A4\u30F3\u30AF\u30EB\u30FC\u30C9\u304C\u5FAA\u74B0\u3057\u3066\u3044\u307E\u3059\u3002\u30B9\u30BF\u30A4\u30EB\u30B7\u30FC\u30C8''{0}''\u306F\u3059\u3067\u306B\u30ED\u30FC\u30C9\u3055\u308C\u3066\u3044\u307E\u3059\u3002"}, + /* + * Note to translators: "xsl:import" and "xsl:include" are keywords that + * should not be translated. + */ + {ErrorMsg.IMPORT_PRECEDE_OTHERS_ERR, + "xsl:import\u8981\u7D20\u306E\u5B50\u306F\u3001xsl:stylesheet\u8981\u7D20\u306E\u4ED6\u306E\u3059\u3079\u3066\u306E\u8981\u7D20\u306E\u5B50(\u3059\u3079\u3066\u306Exsl:include\u8981\u7D20\u306E\u5B50\u3092\u542B\u3080)\u3088\u308A\u524D\u306B\u7F6E\u304F\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002"}, + /* * Note to translators: A result-tree fragment is a portion of a * resulting XML document represented as a tree. "" is a diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_ko.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_ko.java index 177c05dca2d..1de0bb1e5aa 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_ko.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_ko.java @@ -1,15 +1,15 @@ /* - * reserved comment block - * DO NOT REMOVE OR ALTER! + * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved. */ /* - * Copyright 2001-2004 The Apache Software Foundation. + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: ErrorMessages_ko.java /st_wptg_1.9.0.0.0jdk/2 2016/04/12 02:39:51 gmolloy Exp $ - */ package com.sun.org.apache.xalan.internal.xsltc.compiler.util; @@ -172,6 +169,13 @@ public class ErrorMessages_ko extends ListResourceBundle { {ErrorMsg.INVALID_URI_ERR, "URI ''{0}''\uC774(\uAC00) \uBD80\uC801\uD569\uD569\uB2C8\uB2E4."}, + /* + * Note to translators: This message is displayed when the URI + * mentioned in the substitution text is not well-formed syntactically. + */ + {ErrorMsg.CATALOG_EXCEPTION, + "JAXP08090001: CatalogResolver\uAC00 \"{0}\" \uCE74\uD0C8\uB85C\uADF8\uC5D0 \uC0AC\uC6A9\uC73C\uB85C \uC124\uC815\uB418\uC5C8\uC9C0\uB9CC CatalogException\uC774 \uBC18\uD658\uB418\uC5C8\uC2B5\uB2C8\uB2E4."}, + /* * Note to translators: The file or URI named in the substitution text * exists but could not be opened. @@ -268,6 +272,13 @@ public class ErrorMessages_ko extends ListResourceBundle { {ErrorMsg.CIRCULAR_INCLUDE_ERR, "\uC21C\uD658 import/include\uC785\uB2C8\uB2E4. ''{0}'' \uC2A4\uD0C0\uC77C\uC2DC\uD2B8\uAC00 \uC774\uBBF8 \uB85C\uB4DC\uB418\uC5C8\uC2B5\uB2C8\uB2E4."}, + /* + * Note to translators: "xsl:import" and "xsl:include" are keywords that + * should not be translated. + */ + {ErrorMsg.IMPORT_PRECEDE_OTHERS_ERR, + "xsl:import \uC694\uC18C \uD558\uC704\uB294 xsl:include \uC694\uC18C \uD558\uC704\uB97C \uD3EC\uD568\uD574 xsl:stylesheet \uC694\uC18C\uC758 \uBAA8\uB4E0 \uB2E4\uB978 \uC694\uC18C \uD558\uC704 \uC55E\uC5D0 \uC640\uC57C \uD569\uB2C8\uB2E4."}, + /* * Note to translators: A result-tree fragment is a portion of a * resulting XML document represented as a tree. "" is a diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_pt_BR.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_pt_BR.java index c73cdf4690a..25e16e53925 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_pt_BR.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_pt_BR.java @@ -1,15 +1,15 @@ /* - * reserved comment block - * DO NOT REMOVE OR ALTER! + * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved. */ /* - * Copyright 2001-2004 The Apache Software Foundation. + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: ErrorMessages_pt_BR.java /st_wptg_1.9.0.0.0jdk/2 2016/04/12 18:01:34 gmolloy Exp $ - */ package com.sun.org.apache.xalan.internal.xsltc.compiler.util; @@ -172,6 +169,13 @@ public class ErrorMessages_pt_BR extends ListResourceBundle { {ErrorMsg.INVALID_URI_ERR, "URI inv\u00E1lido ''{0}''."}, + /* + * Note to translators: This message is displayed when the URI + * mentioned in the substitution text is not well-formed syntactically. + */ + {ErrorMsg.CATALOG_EXCEPTION, + "JAXP08090001: O CatalogResolver foi ativado com o cat\u00E1logo \"{0}\", mas uma CatalogException foi retornada."}, + /* * Note to translators: The file or URI named in the substitution text * exists but could not be opened. @@ -268,6 +272,13 @@ public class ErrorMessages_pt_BR extends ListResourceBundle { {ErrorMsg.CIRCULAR_INCLUDE_ERR, "Import/Include circular. Folha de estilos ''{0}'' j\u00E1 carregada."}, + /* + * Note to translators: "xsl:import" and "xsl:include" are keywords that + * should not be translated. + */ + {ErrorMsg.IMPORT_PRECEDE_OTHERS_ERR, + "Os filhos do elemento xsl:import devem preceder todos os outros filhos de um elemento xsl:stylesheet, inclusive quaisquer filhos do elemento xsl:include."}, + /* * Note to translators: A result-tree fragment is a portion of a * resulting XML document represented as a tree. "" is a diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_sv.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_sv.java index 3f83c11c270..9ab3dccf9b9 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_sv.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_sv.java @@ -1,15 +1,15 @@ /* - * reserved comment block - * DO NOT REMOVE OR ALTER! + * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved. */ /* - * Copyright 2001-2004 The Apache Software Foundation. + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: ErrorMessages_sv.java /st_wptg_1.9.0.0.0jdk/2 2016/04/14 01:57:20 gmolloy Exp $ - */ package com.sun.org.apache.xalan.internal.xsltc.compiler.util; @@ -172,6 +169,13 @@ public class ErrorMessages_sv extends ListResourceBundle { {ErrorMsg.INVALID_URI_ERR, "Ogiltig URI ''{0}''."}, + /* + * Note to translators: This message is displayed when the URI + * mentioned in the substitution text is not well-formed syntactically. + */ + {ErrorMsg.CATALOG_EXCEPTION, + "JAXP08090001: CatalogResolver \u00E4r aktiverat med katalogen \"{0}\", men ett CatalogException returneras."}, + /* * Note to translators: The file or URI named in the substitution text * exists but could not be opened. @@ -268,6 +272,13 @@ public class ErrorMessages_sv extends ListResourceBundle { {ErrorMsg.CIRCULAR_INCLUDE_ERR, "Cirkul\u00E4r import/include. Formatmallen ''{0}'' har redan laddats."}, + /* + * Note to translators: "xsl:import" and "xsl:include" are keywords that + * should not be translated. + */ + {ErrorMsg.IMPORT_PRECEDE_OTHERS_ERR, + "Underordnade till xsl:import-elementet m\u00E5ste komma f\u00F6re alla andra underordnade till element f\u00F6r ett xsl:stylesheet-element, inklusive alla underordnade till xsl:include-elementet."}, + /* * Note to translators: A result-tree fragment is a portion of a * resulting XML document represented as a tree. "" is a diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_zh_CN.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_zh_CN.java index 198130576d2..569fe5fe3fb 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_zh_CN.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_zh_CN.java @@ -1,15 +1,15 @@ /* - * reserved comment block - * DO NOT REMOVE OR ALTER! + * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved. */ /* - * Copyright 2001-2004 The Apache Software Foundation. + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: ErrorMessages_zh_CN.java /st_wptg_1.9.0.0.0jdk/2 2016/04/13 05:10:27 gmolloy Exp $ - */ package com.sun.org.apache.xalan.internal.xsltc.compiler.util; @@ -172,6 +169,13 @@ public class ErrorMessages_zh_CN extends ListResourceBundle { {ErrorMsg.INVALID_URI_ERR, "URI ''{0}'' \u65E0\u6548\u3002"}, + /* + * Note to translators: This message is displayed when the URI + * mentioned in the substitution text is not well-formed syntactically. + */ + {ErrorMsg.CATALOG_EXCEPTION, + "JAXP08090001: \u5DF2\u5BF9\u76EE\u5F55 \"{0}\" \u542F\u7528 CatalogResolver, \u4F46\u8FD4\u56DE\u4E86 CatalogException\u3002"}, + /* * Note to translators: The file or URI named in the substitution text * exists but could not be opened. @@ -268,6 +272,13 @@ public class ErrorMessages_zh_CN extends ListResourceBundle { {ErrorMsg.CIRCULAR_INCLUDE_ERR, "\u5FAA\u73AF import/include\u3002\u5DF2\u52A0\u8F7D\u6837\u5F0F\u8868 ''{0}''\u3002"}, + /* + * Note to translators: "xsl:import" and "xsl:include" are keywords that + * should not be translated. + */ + {ErrorMsg.IMPORT_PRECEDE_OTHERS_ERR, + "xsl:import \u5143\u7D20\u5B50\u7EA7\u5FC5\u987B\u4F4D\u4E8E xsl:stylesheet \u5143\u7D20\u7684\u6240\u6709\u5176\u4ED6\u5143\u7D20\u5B50\u7EA7 (\u5305\u62EC\u4EFB\u4F55 xsl:include \u5143\u7D20\u5B50\u7EA7) \u4E4B\u524D\u3002"}, + /* * Note to translators: A result-tree fragment is a portion of a * resulting XML document represented as a tree. "" is a diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_zh_TW.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_zh_TW.java index 87788f8bbf6..5ab9c32979f 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_zh_TW.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_zh_TW.java @@ -1,15 +1,15 @@ /* - * reserved comment block - * DO NOT REMOVE OR ALTER! + * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved. */ /* - * Copyright 2001-2004 The Apache Software Foundation. + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: ErrorMessages_zh_TW.java /st_wptg_1.9.0.0.0jdk/2 2016/04/11 20:46:43 gmolloy Exp $ - */ package com.sun.org.apache.xalan.internal.xsltc.compiler.util; @@ -172,6 +169,13 @@ public class ErrorMessages_zh_TW extends ListResourceBundle { {ErrorMsg.INVALID_URI_ERR, "\u7121\u6548\u7684 URI ''{0}''\u3002"}, + /* + * Note to translators: This message is displayed when the URI + * mentioned in the substitution text is not well-formed syntactically. + */ + {ErrorMsg.CATALOG_EXCEPTION, + "JAXP08090001: CatalogResolver \u5DF2\u555F\u7528\u76EE\u9304 \"{0}\"\uFF0C\u4F46\u50B3\u56DE CatalogException\u3002"}, + /* * Note to translators: The file or URI named in the substitution text * exists but could not be opened. @@ -268,6 +272,13 @@ public class ErrorMessages_zh_TW extends ListResourceBundle { {ErrorMsg.CIRCULAR_INCLUDE_ERR, "\u5FAA\u74B0\u532F\u5165/\u5305\u542B\u3002\u5DF2\u7D93\u8F09\u5165\u6A23\u5F0F\u8868 ''{0}''\u3002"}, + /* + * Note to translators: "xsl:import" and "xsl:include" are keywords that + * should not be translated. + */ + {ErrorMsg.IMPORT_PRECEDE_OTHERS_ERR, + "xsl:import \u5143\u7D20\u5B50\u9805\u5FC5\u9808\u5728 xsl:stylesheet \u5143\u7D20\u7684\u6240\u6709\u5176\u4ED6\u5143\u7D20\u5B50\u9805\u4E4B\u524D\uFF0C\u5305\u62EC\u4EFB\u4F55 xsl:include \u5143\u7D20\u5B50\u9805\u3002"}, + /* * Note to translators: A result-tree fragment is a portion of a * resulting XML document represented as a tree. "" is a diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_de.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_de.java index 747ae526d4e..b86e7dedcca 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_de.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_de.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: ErrorMessages_de.java,v 1.2.4.1 2005/09/14 05:13:15 pvedula Exp $ - */ package com.sun.org.apache.xalan.internal.xsltc.runtime; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_es.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_es.java index 7810adaf78e..350d75fae40 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_es.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_es.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: ErrorMessages_es.java,v 1.2.4.1 2005/09/14 05:14:39 pvedula Exp $ - */ package com.sun.org.apache.xalan.internal.xsltc.runtime; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_fr.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_fr.java index 28089e97bb3..f60f2a52ec9 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_fr.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_fr.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: ErrorMessages_fr.java,v 1.2.4.1 2005/09/14 05:15:37 pvedula Exp $ - */ package com.sun.org.apache.xalan.internal.xsltc.runtime; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_it.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_it.java index 3fa594b215e..e4a7b2d18f5 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_it.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_it.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: ErrorMessages_it.java,v 1.2.4.1 2005/09/14 05:22:16 pvedula Exp $ - */ package com.sun.org.apache.xalan.internal.xsltc.runtime; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_ja.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_ja.java index ce4f1708f5e..3cd3712c611 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_ja.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_ja.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: ErrorMessages_ja.java,v 1.2.4.1 2005/09/14 05:46:36 pvedula Exp $ - */ package com.sun.org.apache.xalan.internal.xsltc.runtime; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_ko.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_ko.java index 6ede7dfdd8a..e24a7c103be 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_ko.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_ko.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: ErrorMessages_ko.java,v 1.2.4.1 2005/09/14 05:48:33 pvedula Exp $ - */ package com.sun.org.apache.xalan.internal.xsltc.runtime; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_pt_BR.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_pt_BR.java index 6004632a832..45e2654bf1f 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_pt_BR.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_pt_BR.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: ErrorMessages_pt_BR.java /st_wptg_1.8.0.0.0jdk/2 2013/09/11 12:46:53 gmolloy Exp $ - */ package com.sun.org.apache.xalan.internal.xsltc.runtime; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_sv.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_sv.java index 7ec8715981d..2c2b40eca2b 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_sv.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_sv.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: ErrorMessages_sv.java /st_wptg_1.9.0.0.0jdk/2 2016/04/14 01:57:20 gmolloy Exp $ - */ package com.sun.org.apache.xalan.internal.xsltc.runtime; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_zh_CN.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_zh_CN.java index becb972f8ea..a34d42c933e 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_zh_CN.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_zh_CN.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: ErrorMessages_zh_CN.java /st_wptg_1.8.0.0.0jdk/3 2013/11/11 11:39:28 gmolloy Exp $ - */ package com.sun.org.apache.xalan.internal.xsltc.runtime; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_zh_TW.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_zh_TW.java index 50972c6cb2e..67e3831f810 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_zh_TW.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_zh_TW.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: ErrorMessages_zh_TW.java,v 1.2.4.1 2005/09/14 06:56:12 pvedula Exp $ - */ package com.sun.org.apache.xalan.internal.xsltc.runtime; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesImpl.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesImpl.java index 37a346e9ea1..746418b217d 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesImpl.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesImpl.java @@ -471,8 +471,7 @@ public final class TemplatesImpl implements Templates, Serializable { String pn = _tfactory.getPackageName(); assert pn != null && pn.length() > 0; - ModuleDescriptor descriptor - = new ModuleDescriptor.Builder(mn) + ModuleDescriptor descriptor = ModuleDescriptor.module(mn) .requires("java.xml") .exports(pn) .build(); diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/XMLStreamReaderImpl.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/XMLStreamReaderImpl.java index d1af91a2834..9b961b31040 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/XMLStreamReaderImpl.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/XMLStreamReaderImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -607,7 +607,8 @@ public class XMLStreamReaderImpl implements javax.xml.stream.XMLStreamReader { //get the new scanner state to old scanner's previous state fScanner.reset(fPropertyManager); fScanner.setPropertyManager(fPropertyManager); - fEntityScanner = (XMLEntityScanner)fEntityManager.getEntityScanner() ; + fEntityScanner = fEntityManager.getEntityScanner(); + fEntityScanner.registerListener(fScanner); fEntityManager.fCurrentEntity.mayReadChunks = true; fScanner.setScannerState(XMLEvent.START_DOCUMENT); diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_de.properties b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_de.properties index 695e08c7e7a..260836c67d1 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_de.properties +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_de.properties @@ -298,7 +298,10 @@ EntityExpansionLimit=JAXP00010001: Der Parser hat mehr als {0} Entityerweiterungen in diesem Dokument gefunden. Dies ist der von JDK vorgeschriebene Grenzwert. ElementAttributeLimit=JAXP00010002: Element "{0}" hat mehr als {1} Attribute. "{1}" ist der von JDK vorgeschriebene Grenzwert. MaxEntitySizeLimit=JAXP00010003: Die L\u00E4nge von Entity "{0}" ist "{1}" und \u00FCberschreitet den Grenzwert "{2}", der von "{3}" festgelegt wurde. - TotalEntitySizeLimit=JAXP00010004: Die akkumulierte Gr\u00F6\u00DFe von Entitys ist "{1}" und \u00FCberschreitet den Grenzwert "{2}", der von "{3}" festgelegt wurde. + TotalEntitySizeLimit=JAXP00010004: Die akkumulierte Gr\u00F6\u00DFe von Entitys ist "{0}" und \u00FCberschreitet den Grenzwert "{1}", der von "{2}" festgelegt wurde. MaxXMLNameLimit=JAXP00010005: Die L\u00E4nge von Entity "{0}" ist "{1}" und \u00FCberschreitet den Grenzwert "{2}", der von "{3}" festgelegt wurde. MaxElementDepthLimit=JAXP00010006: Die Tiefe von Element "{0}" ist "{1}" und \u00FCberschreitet den Grenzwert "{2}", der von "{3}" festgelegt wurde. + EntityReplacementLimit=JAXP00010007: Die Gesamtanzahl von Knoten in Entityreferenzen betr\u00E4gt "{0}". Das liegt \u00FCber dem von "{2}" festgelegten Grenzwert "{1}". +# Catalog 09 + CatalogException=JAXP00090001: CatalogResolver ist mit dem Katalog "{0}" aktiviert, eine CatalogException wird jedoch zur\u00FCckgegeben. diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_es.properties b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_es.properties index fb365c4cb19..72de65107ea 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_es.properties +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_es.properties @@ -298,7 +298,10 @@ EntityExpansionLimit=JAXP00010001: el analizador ha encontrado m\u00E1s de "{0}"ampliaciones de entidad en este documento; \u00E9ste es el l\u00EDmite impuesto por el JDK. ElementAttributeLimit=JAXP00010002: el elemento "{0}" tiene m\u00E1s de "{1}" atributos, "{1}" es el l\u00EDmite impuesto por el JDK. MaxEntitySizeLimit=JAXP00010003: la longitud de la entidad "{0}" es "{1}", que excede el l\u00EDmite de "{2}" que ha definido "{3}". - TotalEntitySizeLimit=JAXP00010004: el tama\u00F1o acumulado de las entidades es "{1}" y excede el l\u00EDmite de "{2}" definido por "{3}". + TotalEntitySizeLimit=JAXP00010004: el tama\u00F1o acumulado de las entidades es "{0}" y excede el l\u00EDmite de "{1}" definido por "{2}". MaxXMLNameLimit=JAXP00010005: la longitud de la entidad "{0}" es "{1}" y excede el l\u00EDmite de "{2}" definido por "{3}". MaxElementDepthLimit=JAXP00010006: El elemento "{0}" tiene una profundidad de "{1}" que excede el l\u00EDmite "{2}" definido por "{3}". + EntityReplacementLimit=JAXP00010007: El n\u00FAmero total de nodos en las referencias de entidad es de "{0}" que supera el l\u00EDmite de "{1}" definido por "{2}". +# Catalog 09 + CatalogException=JAXP00090001: CatalogResolver est\u00E1 activado con el cat\u00E1logo "{0}", pero se ha devuelto una excepci\u00F3n CatalogException. diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_fr.properties b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_fr.properties index 7ad06f06bd7..80f2ca1da6f 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_fr.properties +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_fr.properties @@ -298,7 +298,10 @@ EntityExpansionLimit=JAXP00010001 : L''analyseur a rencontr\u00E9 plus de "{0}" d\u00E9veloppements d''entit\u00E9 dans ce document. Il s''agit de la limite impos\u00E9e par le JDK. ElementAttributeLimit=JAXP00010002 : L''\u00E9l\u00E9ment "{0}" a plus de "{1}" attributs. "{1}" est la limite impos\u00E9e par le JDK. MaxEntitySizeLimit=JAXP00010003 : La longueur de l''entit\u00E9 "{0}" est de "{1}". Cette valeur d\u00E9passe la limite de "{2}" d\u00E9finie par "{3}". - TotalEntitySizeLimit=JAXP00010004 : La taille cumul\u00E9e des entit\u00E9s est "{1}" et d\u00E9passe la limite de "{2}" d\u00E9finie par "{3}". + TotalEntitySizeLimit=JAXP00010004 : La taille cumul\u00E9e des entit\u00E9s est "{0}" et d\u00E9passe la limite de "{1}" d\u00E9finie par "{2}". MaxXMLNameLimit=JAXP00010005 : La longueur de l''entit\u00E9 "{0}" est de "{1}". Cette valeur d\u00E9passe la limite de "{2}" d\u00E9finie par "{3}". MaxElementDepthLimit=JAXP00010006 : l''\u00E9l\u00E9ment "{0}" a une profondeur de "{1}" qui d\u00E9passe la limite de "{2}" d\u00E9finie par "{3}". + EntityReplacementLimit=JAXP00010007 : Le nombre total de noeuds dans les r\u00E9f\u00E9rences d''entit\u00E9 est "{0}", soit plus que la limite de "{1}" d\u00E9finie par "{2}". +# Catalog 09 + CatalogException=JAXP00090001 : le CatalogResolver est activ\u00E9 avec le catalogue "{0}", mais une exception CatalogException est renvoy\u00E9e. diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_it.properties b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_it.properties index c6ba84c06b5..2cb84b9b70a 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_it.properties +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_it.properties @@ -298,7 +298,10 @@ EntityExpansionLimit=JAXP00010001: il parser ha rilevato pi\u00F9 "{0}" espansioni di entit\u00E0 nel documento. Questo \u00E8 il limite imposto dal kit JDK. ElementAttributeLimit=JAXP00010002: l''elemento "{0}" contiene pi\u00F9 di "{1}" attributi. "{1}" \u00E8 il limite imposto dal kit JDK. MaxEntitySizeLimit=JAXP00010003: la lunghezza dell''entit\u00E0 "{0}" \u00E8 "{1}". Tale valore supera il limite "{2}" definito da "{3}". - TotalEntitySizeLimit=JAXP00010004: le dimensioni accumulate delle entit\u00E0 sono pari a "{1}". Tale valore supera il limite "{2}" definito da "{3}". + TotalEntitySizeLimit=JAXP00010004: le dimensioni accumulate delle entit\u00E0 sono pari a "{0}". Tale valore supera il limite "{1}" definito da "{2}". MaxXMLNameLimit=JAXP00010005: la lunghezza dell''entit\u00E0 "{0}" \u00E8 "{1}". Tale valore supera il limite "{2}" definito da "{3}". MaxElementDepthLimit=JAXP00010006: la profondit\u00E0 dell''elemento "{0}" \u00E8 "{1}". Tale valore supera il limite "{2}" definito da "{3}". + EntityReplacementLimit=JAXP00010007: il numero totale di nodi nei riferimenti entit\u00E0 \u00E8 "{0}". Tale valore supera il limite di "{1}" impostato da "{2}". +# Catalog 09 + CatalogException=JAXP00090001: il CatalogResolver \u00E8 abilitato con il catalogo "{0}", ma viene restituita una CatalogException. diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ja.properties b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ja.properties index a6a356a6b5d..e93ada14ae1 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ja.properties +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ja.properties @@ -298,7 +298,10 @@ EntityExpansionLimit=JAXP00010001: \u30D1\u30FC\u30B5\u30FC\u306B\u3088\u3063\u3066\u3001\u3053\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u5185\u3067"{0}"\u3092\u8D85\u3048\u308B\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u62E1\u5F35\u304C\u691C\u51FA\u3055\u308C\u307E\u3057\u305F\u3002\u3053\u308C\u306F\u3001JDK\u306B\u3088\u308B\u5236\u9650\u3067\u3059\u3002 ElementAttributeLimit=JAXP00010002: \u8981\u7D20"{0}"\u306B"{1}"\u3092\u8D85\u3048\u308B\u5C5E\u6027\u304C\u5B58\u5728\u3057\u307E\u3059\u3002"{1}"\u306F\u3001JDK\u306B\u3088\u308B\u5236\u9650\u3067\u3059\u3002 MaxEntitySizeLimit=JAXP00010003: \u30A8\u30F3\u30C6\u30A3\u30C6\u30A3"{0}"\u306E\u9577\u3055\u306F"{1}"\u3067\u3001"{3}"\u3067\u8A2D\u5B9A\u3055\u308C\u305F\u5236\u9650"{2}"\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002 - TotalEntitySizeLimit=JAXP00010004: \u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u306E\u7D2F\u7A4D\u30B5\u30A4\u30BA"{1}"\u306F\u3001"{3}"\u3067\u8A2D\u5B9A\u3055\u308C\u305F\u5236\u9650"{2}"\u3092\u8D85\u3048\u307E\u3057\u305F\u3002 + TotalEntitySizeLimit=JAXP00010004: \u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u306E\u7D2F\u7A4D\u30B5\u30A4\u30BA"{0}"\u306F\u3001"{2}"\u3067\u8A2D\u5B9A\u3055\u308C\u305F\u5236\u9650"{1}"\u3092\u8D85\u3048\u307E\u3057\u305F\u3002 MaxXMLNameLimit=JAXP00010005: \u30A8\u30F3\u30C6\u30A3\u30C6\u30A3"{0}"\u306E\u9577\u3055\u306F"{1}"\u3067\u3001"{3}"\u3067\u8A2D\u5B9A\u3055\u308C\u305F\u5236\u9650"{2}"\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002 MaxElementDepthLimit=JAXP00010006: \u8981\u7D20"{0}"\u306E\u6DF1\u3055\u306F"{1}"\u3067\u3001"{3}"\u3067\u8A2D\u5B9A\u3055\u308C\u305F\u5236\u9650"{2}"\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002 + EntityReplacementLimit=JAXP00010007: \u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u53C2\u7167\u306E\u5408\u8A08\u30CE\u30FC\u30C9\u6570\u306F"{0}"\u3067\u3001"{2}"\u3067\u8A2D\u5B9A\u3055\u308C\u305F\u5236\u9650"{1}"\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002 +# Catalog 09 + CatalogException=JAXP00090001: CatalogResolver\u306F\u30AB\u30BF\u30ED\u30B0"{0}"\u3067\u6709\u52B9\u3067\u3059\u304C\u3001CatalogException\u304C\u8FD4\u3055\u308C\u307E\u3059\u3002 diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ko.properties b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ko.properties index 690ff6804ff..a7ab6af1571 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ko.properties +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ko.properties @@ -298,7 +298,10 @@ EntityExpansionLimit=JAXP00010001: \uAD6C\uBB38 \uBD84\uC11D\uAE30\uAC00 \uC774 \uBB38\uC11C\uC5D0\uC11C "{0}"\uAC1C\uB97C \uCD08\uACFC\uD558\uB294 \uC5D4\uD2F0\uD2F0 \uD655\uC7A5\uC744 \uBC1C\uACAC\uD588\uC2B5\uB2C8\uB2E4. \uC774\uB294 JDK\uC5D0\uC11C \uC801\uC6A9\uD558\uB294 \uC81C\uD55C\uC785\uB2C8\uB2E4. ElementAttributeLimit=JAXP00010002: "{0}" \uC694\uC18C\uC5D0 "{1}"\uAC1C\uB97C \uCD08\uACFC\uD558\uB294 \uC18D\uC131\uC774 \uC788\uC2B5\uB2C8\uB2E4. "{1}"\uC740(\uB294) JDK\uC5D0\uC11C \uC801\uC6A9\uD558\uB294 \uC81C\uD55C\uC785\uB2C8\uB2E4. MaxEntitySizeLimit=JAXP00010003: "{0}" \uC5D4\uD2F0\uD2F0\uC758 \uAE38\uC774\uAC00 "{3}"\uC5D0\uC11C \uC124\uC815\uB41C "{2}" \uC81C\uD55C\uC744 \uCD08\uACFC\uD558\uB294 "{1}"\uC785\uB2C8\uB2E4. - TotalEntitySizeLimit=JAXP00010004: \uC5D4\uD2F0\uD2F0\uC758 \uB204\uC801 \uD06C\uAE30\uAC00 "{3}"\uC5D0\uC11C \uC124\uC815\uD55C "{2}" \uC81C\uD55C\uC744 \uCD08\uACFC\uD558\uB294 "{1}"\uC785\uB2C8\uB2E4. + TotalEntitySizeLimit=JAXP00010004: \uC5D4\uD2F0\uD2F0\uC758 \uB204\uC801 \uD06C\uAE30\uAC00 "{2}"\uC5D0\uC11C \uC124\uC815\uD55C "{1}" \uC81C\uD55C\uC744 \uCD08\uACFC\uD558\uB294 "{0}"\uC785\uB2C8\uB2E4. MaxXMLNameLimit=JAXP00010005: "{0}" \uC5D4\uD2F0\uD2F0\uC758 \uAE38\uC774\uAC00 "{3}"\uC5D0\uC11C \uC124\uC815\uD55C "{2}" \uC81C\uD55C\uC744 \uCD08\uACFC\uD558\uB294 "{1}"\uC785\uB2C8\uB2E4. MaxElementDepthLimit=JAXP00010006: "{0}" \uC694\uC18C\uC758 \uAE4A\uC774\uAC00 "{3}"\uC5D0\uC11C \uC124\uC815\uB41C "{2}" \uC81C\uD55C\uC744 \uCD08\uACFC\uD558\uB294 "{1}"\uC785\uB2C8\uB2E4. + EntityReplacementLimit=JAXP00010007: \uC5D4\uD2F0\uD2F0 \uCC38\uC870\uC758 \uCD1D \uB178\uB4DC \uC218\uAC00 "{2}"\uC5D0\uC11C \uC124\uC815\uD55C "{1}" \uC81C\uD55C\uC744 \uCD08\uACFC\uD558\uB294 "{0}"\uC785\uB2C8\uB2E4. +# Catalog 09 + CatalogException=JAXP00090001: CatalogResolver\uAC00 "{0}" \uCE74\uD0C8\uB85C\uADF8\uC5D0 \uC0AC\uC6A9\uC73C\uB85C \uC124\uC815\uB418\uC5C8\uC9C0\uB9CC CatalogException\uC774 \uBC18\uD658\uB418\uC5C8\uC2B5\uB2C8\uB2E4. diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_pt_BR.properties b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_pt_BR.properties index e9767121a5f..c899c343cff 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_pt_BR.properties +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_pt_BR.properties @@ -298,7 +298,10 @@ EntityExpansionLimit=JAXP00010001: O parser detectou mais de "{0}" expans\u00F5es da entidade neste documento. Este \u00E9 o limite imposto pelo JDK. ElementAttributeLimit=JAXP00010002: o elemento "{0}" tem mais de "{1}" atributos. "{1}" \u00E9 o limite imposto pelo JDK. MaxEntitySizeLimit=JAXP00010003: o tamanho da entidade "{0}" \u00E9 "{1}", o que excede o limite de "{2}" definido por "{3}". - TotalEntitySizeLimit=JAXP00010004: o tamanho acumulado de entidades \u00E9 "{1}", o que excedeu o limite de "{2}" definido por "{3}". + TotalEntitySizeLimit=JAXP00010004: o tamanho acumulado de entidades \u00E9 "{0}", o que excedeu o limite de "{1}" definido por "{2}". MaxXMLNameLimit=JAXP00010005: o tamanho da entidade "{0}" \u00E9 "{1}", o que excede o limite de "{2}" definido por "{3}". MaxElementDepthLimit=JAXP00010006: o elemento "{0}" tem uma profundidade de "{1}" que excede o limite de "{2}" definido por "{3}". + EntityReplacementLimit=JAXP00010007: O n\u00FAmero total de n\u00F3s nas refer\u00EAncias da entidade \u00E9 de "{0}", o que est\u00E1 acima do limite de "{1}" definido por "{2}". +# Catalog 09 + CatalogException=JAXP00090001: O CatalogResolver foi ativado com o cat\u00E1logo "{0}", mas uma CatalogException foi retornada. diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_sv.properties b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_sv.properties index 19cddc6928c..712333526eb 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_sv.properties +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_sv.properties @@ -298,7 +298,10 @@ EntityExpansionLimit=JAXP00010001: Parsern har p\u00E5tr\u00E4ffat fler \u00E4n "{0}" enhetstill\u00E4gg i dokumentet - gr\u00E4nsv\u00E4rdet f\u00F6r JDK har uppn\u00E5tts. ElementAttributeLimit=JAXP00010002: Elementet "{0}" har fler \u00E4n "{1}" attribut, "{1}" \u00E4r gr\u00E4nsv\u00E4rdet f\u00F6r JDK. MaxEntitySizeLimit=JAXP00010003: L\u00E4ngden p\u00E5 enheten "{0}" \u00E4r "{1}" som \u00F6verskriver gr\u00E4nsv\u00E4rdet p\u00E5 "{2}" som anges av "{3}". - TotalEntitySizeLimit=JAXP00010004: Den ackumulerade storleken f\u00F6r enheter \u00E4r "{1}", vilket \u00F6verskrider gr\u00E4nsv\u00E4rdet "{2}" som anges av "{3}". + TotalEntitySizeLimit=JAXP00010004: Den ackumulerade storleken f\u00F6r enheter \u00E4r "{0}", vilket \u00F6verskrider gr\u00E4nsv\u00E4rdet "{1}" som anges av "{2}". MaxXMLNameLimit=JAXP00010005: L\u00E4ngden p\u00E5 enheten "{0}" \u00E4r "{1}", vilket \u00F6verskrider gr\u00E4nsv\u00E4rdet "{2}" som anges av "{3}". MaxElementDepthLimit=JAXP00010006: Elementet "{0}" har djupet "{1}" vilket \u00E4r st\u00F6rre \u00E4n gr\u00E4nsen "{2}" som anges av "{3}". + EntityReplacementLimit=JAXP00010007: Det totala antalet noder i enhetsreferenser \u00E4r "{0}", vilket \u00E4r \u00F6ver gr\u00E4nsen "{1}" som har angetts av "{2}". +# Catalog 09 + CatalogException=JAXP00090001: CatalogResolver \u00E4r aktiverat med katalogen "{0}", men ett CatalogException returneras. diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_CN.properties b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_CN.properties index 9b5de28d13c..62a88dd914b 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_CN.properties +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_CN.properties @@ -298,7 +298,10 @@ EntityExpansionLimit=JAXP00010001: \u89E3\u6790\u5668\u5728\u6B64\u6587\u6863\u4E2D\u9047\u5230\u591A\u4E2A "{0}" \u5B9E\u4F53\u6269\u5C55; \u8FD9\u662F JDK \u65BD\u52A0\u7684\u9650\u5236\u3002 ElementAttributeLimit=JAXP00010002: \u5143\u7D20 "{0}" \u5177\u6709\u591A\u4E2A "{1}" \u5C5E\u6027, "{1}" \u662F JDK \u65BD\u52A0\u7684\u9650\u5236\u3002 MaxEntitySizeLimit=JAXP00010003: \u5B9E\u4F53 "{0}" \u7684\u957F\u5EA6\u4E3A "{1}", \u8D85\u8FC7\u4E86 "{3}" \u8BBE\u7F6E\u7684 "{2}" \u9650\u5236\u3002 - TotalEntitySizeLimit=JAXP00010004: \u5B9E\u4F53\u7684\u7D2F\u8BA1\u5927\u5C0F\u4E3A "{1}", \u8D85\u8FC7\u4E86 "{3}" \u8BBE\u7F6E\u7684 "{2}" \u9650\u5236\u3002 + TotalEntitySizeLimit=JAXP00010004: \u5B9E\u4F53\u7684\u7D2F\u8BA1\u5927\u5C0F\u4E3A "{0}", \u8D85\u8FC7\u4E86 "{2}" \u8BBE\u7F6E\u7684 "{1}" \u9650\u5236\u3002 MaxXMLNameLimit=JAXP00010005: \u5B9E\u4F53 "{0}" \u7684\u957F\u5EA6\u4E3A "{1}", \u8D85\u8FC7\u4E86 "{3}" \u8BBE\u7F6E\u7684 "{2}" \u9650\u5236\u3002 MaxElementDepthLimit=JAXP00010006: \u5143\u7D20 "{0}" \u7684\u6DF1\u5EA6 "{1}" \u8D85\u8FC7\u4E86 "{3}" \u8BBE\u7F6E\u7684\u9650\u5236 "{2}"\u3002 + EntityReplacementLimit=JAXP00010007: \u5B9E\u4F53\u5F15\u7528\u4E2D\u7684\u8282\u70B9\u603B\u6570\u4E3A "{0}", \u8D85\u8FC7\u4E86 "{2}" \u8BBE\u7F6E\u7684\u9650\u5236 "{1}"\u3002 +# Catalog 09 + CatalogException=JAXP00090001: \u5DF2\u5BF9\u76EE\u5F55 "{0}" \u542F\u7528 CatalogResolver, \u4F46\u8FD4\u56DE\u4E86 CatalogException\u3002 diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_TW.properties b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_TW.properties index 31eafd355fb..95a7052228e 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_TW.properties +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_TW.properties @@ -298,7 +298,10 @@ EntityExpansionLimit=JAXP00010001: \u5256\u6790\u5668\u5728\u6B64\u6587\u4EF6\u4E2D\u9047\u5230 "{0}" \u500B\u4EE5\u4E0A\u7684\u5BE6\u9AD4\u64F4\u5145; \u9019\u662F JDK \u6240\u898F\u5B9A\u7684\u9650\u5236\u3002 ElementAttributeLimit=JAXP00010002: \u5143\u7D20 "{0}" \u5177\u6709\u8D85\u904E "{1}" \u500B\u4EE5\u4E0A\u7684\u5C6C\u6027\uFF0C"{1}" \u662F JDK \u6240\u898F\u5B9A\u7684\u9650\u5236\u3002 MaxEntitySizeLimit=JAXP00010003: \u5BE6\u9AD4 "{0}" \u7684\u9577\u5EA6\u70BA "{1}"\uFF0C\u8D85\u904E "{3}" \u6240\u8A2D\u5B9A\u7684 "{2}" \u9650\u5236\u3002 - TotalEntitySizeLimit=JAXP00010004: \u5BE6\u9AD4\u7684\u7D2F\u7A4D\u5927\u5C0F\u70BA "{1}"\uFF0C\u8D85\u904E "{3}" \u6240\u8A2D\u5B9A\u7684 "{2}" \u9650\u5236\u3002 + TotalEntitySizeLimit=JAXP00010004: \u5BE6\u9AD4\u7684\u7D2F\u7A4D\u5927\u5C0F\u70BA "{0}"\uFF0C\u8D85\u904E "{2}" \u6240\u8A2D\u5B9A\u7684 "{1}" \u9650\u5236\u3002 MaxXMLNameLimit=JAXP00010005: \u5BE6\u9AD4 "{0}" \u7684\u9577\u5EA6\u70BA "{1}"\uFF0C\u8D85\u904E "{3}" \u6240\u8A2D\u5B9A\u7684 "{2}" \u9650\u5236\u3002 MaxElementDepthLimit=JAXP00010006: \u5143\u7D20 "{0}" \u7684\u6DF1\u5EA6\u70BA "{1}"\uFF0C\u8D85\u904E "{3}" \u8A2D\u5B9A\u7684 "{2}" \u9650\u5236\u3002 + EntityReplacementLimit=JAXP00010007: \u5BE6\u9AD4\u53C3\u7167\u4E2D\u7684\u7BC0\u9EDE\u7E3D\u6578\u70BA "{0}"\uFF0C\u8D85\u904E "{2}" \u6240\u8A2D\u5B9A\u7684 "{1}" \u9650\u5236\u3002 +# Catalog 09 + CatalogException=JAXP00090001: CatalogResolver \u5DF2\u555F\u7528\u76EE\u9304 "{0}"\uFF0C\u4F46\u50B3\u56DE CatalogException\u3002 diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_de.properties b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_de.properties index aa7f3abec25..549f517840c 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_de.properties +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_de.properties @@ -62,5 +62,3 @@ parser.quantifier.2=Ung\u00FCltiger Quantifizierer. Ung\u00FCltige Menge, oder e parser.quantifier.3=Ung\u00FCltiger Quantifizierer. Eine Stelle oder '}' wird erwartet. parser.quantifier.4=Ung\u00FCltiger Quantifizierer. Mindestmenge muss <= Maximalmenge sein. parser.quantifier.5=Ung\u00FCltiger Quantifizierer. Ein Mengenwert\u00FCberlauf. -null -null diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_es.properties b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_es.properties index 4d173b3bfda..46850e84415 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_es.properties +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_es.properties @@ -62,5 +62,3 @@ parser.quantifier.2=Cuantificador no v\u00E1lido. La cantidad no es v\u00E1lida parser.quantifier.3=Cuantificador no v\u00E1lido. Se esperaba un d\u00EDgito o '}'. parser.quantifier.4=Cuantificador no v\u00E1lido. Una cantidad m\u00EDnima debe ser <= una cantidad m\u00E1xima. parser.quantifier.5=Cuantificador no v\u00E1lido. Desbordamiento de un valor de cantidad. -null -null diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_fr.properties b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_fr.properties index c7e202658b5..e7a86dfd747 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_fr.properties +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_fr.properties @@ -62,5 +62,3 @@ parser.quantifier.2=Quantificateur non valide. Quantit\u00E9 non valide ou accol parser.quantifier.3=Quantificateur non valide. Un chiffre ou une accolade ('}') est attendu. parser.quantifier.4=Quantificateur non valide. Une quantit\u00E9 minimale doit \u00EAtre <= une quantit\u00E9 maximale. parser.quantifier.5=Quantificateur non valide. D\u00E9bordement de la valeur de quantit\u00E9. -null -null diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_it.properties b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_it.properties index 0d37e320b18..9d2ad0bd183 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_it.properties +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_it.properties @@ -62,5 +62,3 @@ parser.quantifier.2=Quantificatore non valido. Quantit\u00E0 non valida o '}' ma parser.quantifier.3=Quantificatore non valido. \u00C8 prevista una cifra o '}'. parser.quantifier.4=Quantificatore non valido.Una quantit\u00E0 minima deve essere <= di una quantit\u00E0 massima. parser.quantifier.5=Quantificatore non valido. Overflow del valore di quantit\u00E0. -null -null diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_ja.properties b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_ja.properties index 6e491ff6739..fcc5ed576fb 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_ja.properties +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_ja.properties @@ -62,5 +62,3 @@ parser.quantifier.2=\u7121\u52B9\u306A\u6570\u91CF\u8A5E\u3067\u3059\u3002'}'\u3 parser.quantifier.3=\u7121\u52B9\u306A\u6570\u91CF\u8A5E\u3067\u3059\u3002\u6570\u5B57\u307E\u305F\u306F'}'\u304C\u5FC5\u8981\u3067\u3059\u3002 parser.quantifier.4=\u7121\u52B9\u306A\u6570\u91CF\u8A5E\u3067\u3059\u3002\u6700\u5C0F\u6570\u91CF\u306F\u6700\u5927\u6570\u91CF\u4EE5\u4E0B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002 parser.quantifier.5=\u7121\u52B9\u306A\u6570\u91CF\u8A5E\u3067\u3059\u3002\u6570\u91CF\u5024\u304C\u30AA\u30FC\u30D0\u30FC\u30D5\u30ED\u30FC\u3057\u3066\u3044\u307E\u3059\u3002 -null -null diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_ko.properties b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_ko.properties index be2298dcdb9..39a1a34db7a 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_ko.properties +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_ko.properties @@ -62,5 +62,3 @@ parser.quantifier.2=\uC218\uB7C9\uC0AC\uAC00 \uBD80\uC801\uD569\uD569\uB2C8\uB2E parser.quantifier.3=\uC218\uB7C9\uC0AC\uAC00 \uBD80\uC801\uD569\uD569\uB2C8\uB2E4. \uC22B\uC790\uB098 '}'\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4. parser.quantifier.4=\uC218\uB7C9\uC0AC\uAC00 \uBD80\uC801\uD569\uD569\uB2C8\uB2E4. \uCD5C\uC18C \uC218\uB7C9\uC740 \uCD5C\uB300 \uC218\uB7C9 \uC774\uD558\uC5EC\uC57C \uD569\uB2C8\uB2E4. parser.quantifier.5=\uC218\uB7C9\uC0AC\uAC00 \uBD80\uC801\uD569\uD569\uB2C8\uB2E4. \uC218\uB7C9 \uAC12 \uC624\uBC84\uD50C\uB85C\uC6B0\uC785\uB2C8\uB2E4. -null -null diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_pt_BR.properties b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_pt_BR.properties index 5f37ed343b6..21f6922ddfe 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_pt_BR.properties +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_pt_BR.properties @@ -62,5 +62,3 @@ parser.quantifier.2=Quantificador inv\u00E1lido. A quantidade \u00E9 inv\u00E1li parser.quantifier.3=Quantificador inv\u00E1lido. \u00C9 esperado um d\u00EDgito ou '}'. parser.quantifier.4=Quantificador inv\u00E1lido. Uma quantidade m\u00EDnima deve ser <= uma quantidade m\u00E1xima. parser.quantifier.5=Quantificador inv\u00E1lido. Um overflow do valor de quantidade. -null -null diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_sv.properties b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_sv.properties index 72df477956a..71deb9b6bc5 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_sv.properties +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_sv.properties @@ -62,5 +62,3 @@ parser.quantifier.2=Ogiltig kvantifierare. Ogiltig kvantitet eller '}' saknas. parser.quantifier.3=Ogiltig kvantifierare. En siffra eller '}' f\u00F6rv\u00E4ntas. parser.quantifier.4=Ogiltig kvantifierare. En minkvantitet m\u00E5ste vara <= en maxkvantitet. parser.quantifier.5=Ogiltig kvantifierare. Ett kvantitetsv\u00E4rdesspill. -null -null diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_zh_CN.properties b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_zh_CN.properties index 9b15963bf83..ee68bbdbcea 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_zh_CN.properties +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_zh_CN.properties @@ -62,5 +62,3 @@ parser.quantifier.2=\u9650\u5B9A\u7B26\u65E0\u6548\u3002\u7F3A\u5C11\u6709\u6548 parser.quantifier.3=\u9650\u5B9A\u7B26\u65E0\u6548\u3002\u5E94\u4E3A\u6570\u5B57\u6216 '}'\u3002 parser.quantifier.4=\u9650\u5B9A\u7B26\u65E0\u6548\u3002\u6700\u5C0F\u6570\u91CF\u5FC5\u987B\u5C0F\u4E8E\u7B49\u4E8E\u6700\u5927\u6570\u91CF\u3002 parser.quantifier.5=\u9650\u5B9A\u7B26\u65E0\u6548\u3002\u6570\u91CF\u503C\u6EA2\u51FA\u3002 -null -null diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_zh_TW.properties b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_zh_TW.properties index dd6d35503c0..dff398b7502 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_zh_TW.properties +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/message_zh_TW.properties @@ -62,5 +62,3 @@ parser.quantifier.2=\u7121\u6548\u7684\u6578\u91CF\u8A5E. \u7121\u6548\u7684\u65 parser.quantifier.3=\u7121\u6548\u7684\u6578\u91CF\u8A5E. \u9810\u671F\u61C9\u70BA\u6578\u5B57\u6216 '}'. parser.quantifier.4=\u7121\u6548\u7684\u6578\u91CF\u8A5E. \u6700\u5C0F\u6578\u91CF\u5FC5\u9808\u5C0F\u65BC\u6216\u7B49\u65BC\u6700\u5927\u6578\u91CF. parser.quantifier.5=\u7121\u6548\u7684\u6578\u91CF\u8A5E. \u6578\u91CF\u503C\u6EA2\u4F4D. -null -null diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_de.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_de.java index 1d5d39a7794..3492aefc9df 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_de.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_de.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: XMLErrorResources_de.java /st_wptg_1.8.0.0.0jdk/2 2013/09/16 04:56:10 gmolloy Exp $ - */ package com.sun.org.apache.xml.internal.res; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_es.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_es.java index a2ec7cf292c..471473283d8 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_es.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_es.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: XMLErrorResources_es.java /st_wptg_1.8.0.0.0jdk/2 2013/09/16 09:06:34 gmolloy Exp $ - */ package com.sun.org.apache.xml.internal.res; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_fr.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_fr.java index 95d0282b07b..8155bf4889c 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_fr.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_fr.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: XMLErrorResources_fr.java /st_wptg_1.8.0.0.0jdk/2 2013/09/16 07:05:15 gmolloy Exp $ - */ package com.sun.org.apache.xml.internal.res; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_it.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_it.java index ff457b52618..a86b206b956 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_it.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_it.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: XMLErrorResources_it.java /st_wptg_1.8.0.0.0jdk/2 2013/09/16 07:02:00 gmolloy Exp $ - */ package com.sun.org.apache.xml.internal.res; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_ja.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_ja.java index f2d650cf59b..dfa387b18de 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_ja.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_ja.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: XMLErrorResources_ja.java /st_wptg_1.9.0.0.0jdk/2 2016/04/12 00:37:07 gmolloy Exp $ - */ package com.sun.org.apache.xml.internal.res; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_ko.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_ko.java index e90f1c9f7a2..4936488bbd9 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_ko.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_ko.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: XMLErrorResources_ko.java /st_wptg_1.9.0.0.0jdk/2 2016/04/12 02:39:51 gmolloy Exp $ - */ package com.sun.org.apache.xml.internal.res; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_pt_BR.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_pt_BR.java index 1b667924574..814b19c283f 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_pt_BR.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_pt_BR.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: XMLErrorResources_pt_BR.java /st_wptg_1.9.0.0.0jdk/2 2016/04/12 18:01:34 gmolloy Exp $ - */ package com.sun.org.apache.xml.internal.res; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_sv.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_sv.java index afc1fdf39e5..7be3c6ccf0f 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_sv.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_sv.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: XMLErrorResources_sv.java /st_wptg_1.9.0.0.0jdk/2 2016/04/14 01:57:20 gmolloy Exp $ - */ package com.sun.org.apache.xml.internal.res; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_zh_CN.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_zh_CN.java index fc68b6edc25..c500135f6c1 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_zh_CN.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_zh_CN.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: XMLErrorResources_zh_CN.java /st_wptg_1.9.0.0.0jdk/2 2016/04/13 05:10:27 gmolloy Exp $ - */ package com.sun.org.apache.xml.internal.res; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_zh_TW.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_zh_TW.java index 8c68bbabb9a..e1d1976fe1c 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_zh_TW.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLErrorResources_zh_TW.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: XMLErrorResources_zh_TW.java /st_wptg_1.8.0.0.0jdk/2 2013/09/14 02:16:34 gmolloy Exp $ - */ package com.sun.org.apache.xml.internal.res; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_de.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_de.java index d2ec1f0ef59..bc444738f1a 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_de.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_de.java @@ -19,9 +19,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: SerializerMessages_de.java /st_wptg_1.9.0.0.0jdk/2 2016/04/13 06:43:54 gmolloy Exp $ - */ package com.sun.org.apache.xml.internal.serializer.utils; import java.util.ListResourceBundle; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_es.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_es.java index 13ce6f1f7f6..e8775a39925 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_es.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_es.java @@ -19,9 +19,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: SerializerMessages_es.java /st_wptg_1.9.0.0.0jdk/2 2016/04/14 05:09:25 gmolloy Exp $ - */ package com.sun.org.apache.xml.internal.serializer.utils; import java.util.ListResourceBundle; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_fr.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_fr.java index 353411558f9..0b17dd3f41b 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_fr.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_fr.java @@ -19,9 +19,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: SerializerMessages_fr.java /st_wptg_1.9.0.0.0jdk/2 2016/04/12 05:13:35 gmolloy Exp $ - */ package com.sun.org.apache.xml.internal.serializer.utils; import java.util.ListResourceBundle; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_it.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_it.java index de6c15234ce..8dd11fd9ef9 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_it.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_it.java @@ -19,9 +19,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: SerializerMessages_it.java /st_wptg_1.9.0.0.0jdk/2 2016/04/12 03:53:19 gmolloy Exp $ - */ package com.sun.org.apache.xml.internal.serializer.utils; import java.util.ListResourceBundle; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_ja.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_ja.java index f496d2cdde6..b35b94d853a 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_ja.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_ja.java @@ -19,9 +19,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: SerializerMessages_ja.java /st_wptg_1.9.0.0.0jdk/2 2016/04/12 00:37:07 gmolloy Exp $ - */ package com.sun.org.apache.xml.internal.serializer.utils; import java.util.ListResourceBundle; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_ko.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_ko.java index b6dad3a1630..a9fd4229cb7 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_ko.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_ko.java @@ -19,9 +19,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: SerializerMessages_ko.java /st_wptg_1.9.0.0.0jdk/2 2016/04/12 02:39:51 gmolloy Exp $ - */ package com.sun.org.apache.xml.internal.serializer.utils; import java.util.ListResourceBundle; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_pt_BR.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_pt_BR.java index e8080e7b213..264facaf952 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_pt_BR.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_pt_BR.java @@ -19,9 +19,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: SerializerMessages_pt_BR.java /st_wptg_1.9.0.0.0jdk/2 2016/04/12 18:01:34 gmolloy Exp $ - */ package com.sun.org.apache.xml.internal.serializer.utils; import java.util.ListResourceBundle; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_sv.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_sv.java index d38d469f09e..25d70ef664c 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_sv.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_sv.java @@ -19,9 +19,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: SerializerMessages_sv.java /st_wptg_1.9.0.0.0jdk/2 2016/04/14 01:57:20 gmolloy Exp $ - */ package com.sun.org.apache.xml.internal.serializer.utils; import java.util.ListResourceBundle; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_zh_CN.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_zh_CN.java index b8b74e56586..e54cab59c1a 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_zh_CN.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_zh_CN.java @@ -19,9 +19,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: SerializerMessages_zh_CN.java /st_wptg_1.9.0.0.0jdk/2 2016/04/13 05:10:27 gmolloy Exp $ - */ package com.sun.org.apache.xml.internal.serializer.utils; import java.util.ListResourceBundle; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_zh_TW.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_zh_TW.java index 21fd777273b..0ea0667a547 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_zh_TW.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/SerializerMessages_zh_TW.java @@ -19,9 +19,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: SerializerMessages_zh_TW.java /st_wptg_1.9.0.0.0jdk/2 2016/04/11 20:46:43 gmolloy Exp $ - */ package com.sun.org.apache.xml.internal.serializer.utils; import java.util.ListResourceBundle; diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_de.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_de.java index 9092f94f6c9..d5221305e48 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_de.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_de.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: XPATHErrorResources_de.java /st_wptg_1.9.0.0.0jdk/2 2016/04/13 06:43:54 gmolloy Exp $ - */ package com.sun.org.apache.xpath.internal.res; import java.util.ListResourceBundle; @@ -93,6 +90,7 @@ public class XPATHErrorResources_de extends ListResourceBundle public static final String ER_CURRENT_TAKES_NO_ARGS = "ER_CURRENT_TAKES_NO_ARGS"; public static final String ER_DOCUMENT_REPLACED = "ER_DOCUMENT_REPLACED"; + public static final String ER_CONTEXT_CAN_NOT_BE_NULL = "ER_CONTEXT_CAN_NOT_BE_NULL"; public static final String ER_CONTEXT_HAS_NO_OWNERDOC = "ER_CONTEXT_HAS_NO_OWNERDOC"; public static final String ER_LOCALNAME_HAS_TOO_MANY_ARGS = @@ -368,6 +366,9 @@ public static final String ER_IGNORABLE_WHITESPACE_NOT_HANDLED = { ER_DOCUMENT_REPLACED, "document()-Funktionsimplementierung wurde durch com.sun.org.apache.xalan.internal.xslt.FuncDocument ersetzt."}, + { ER_CONTEXT_CAN_NOT_BE_NULL, + "Der Kontext darf nicht Null sein, wenn der Vorgang kontextabh\u00E4ngig ist."}, + { ER_CONTEXT_HAS_NO_OWNERDOC, "Kontext hat kein Eigent\u00FCmerdokument."}, diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_es.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_es.java index e7013f2ad5f..fd72d0fd837 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_es.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_es.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: XPATHErrorResources_es.java /st_wptg_1.8.0.0.0jdk/2 2013/09/16 09:06:34 gmolloy Exp $ - */ package com.sun.org.apache.xpath.internal.res; import java.util.ListResourceBundle; @@ -93,6 +90,7 @@ public class XPATHErrorResources_es extends ListResourceBundle public static final String ER_CURRENT_TAKES_NO_ARGS = "ER_CURRENT_TAKES_NO_ARGS"; public static final String ER_DOCUMENT_REPLACED = "ER_DOCUMENT_REPLACED"; + public static final String ER_CONTEXT_CAN_NOT_BE_NULL = "ER_CONTEXT_CAN_NOT_BE_NULL"; public static final String ER_CONTEXT_HAS_NO_OWNERDOC = "ER_CONTEXT_HAS_NO_OWNERDOC"; public static final String ER_LOCALNAME_HAS_TOO_MANY_ARGS = @@ -368,6 +366,9 @@ public static final String ER_IGNORABLE_WHITESPACE_NOT_HANDLED = { ER_DOCUMENT_REPLACED, "La implantaci\u00F3n de la funci\u00F3n document() se ha sustituido por com.sun.org.apache.xalan.internal.xslt.FuncDocument!"}, + { ER_CONTEXT_CAN_NOT_BE_NULL, + "El contexto no puede ser nulo si la operaci\u00F3n depende del contexto."}, + { ER_CONTEXT_HAS_NO_OWNERDOC, "El contexto no tiene un documento de propietario."}, diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_fr.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_fr.java index fc6572d09bc..ec738603e07 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_fr.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_fr.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: XPATHErrorResources_fr.java /st_wptg_1.9.0.0.0jdk/2 2016/04/12 05:13:35 gmolloy Exp $ - */ package com.sun.org.apache.xpath.internal.res; import java.util.ListResourceBundle; @@ -93,6 +90,7 @@ public class XPATHErrorResources_fr extends ListResourceBundle public static final String ER_CURRENT_TAKES_NO_ARGS = "ER_CURRENT_TAKES_NO_ARGS"; public static final String ER_DOCUMENT_REPLACED = "ER_DOCUMENT_REPLACED"; + public static final String ER_CONTEXT_CAN_NOT_BE_NULL = "ER_CONTEXT_CAN_NOT_BE_NULL"; public static final String ER_CONTEXT_HAS_NO_OWNERDOC = "ER_CONTEXT_HAS_NO_OWNERDOC"; public static final String ER_LOCALNAME_HAS_TOO_MANY_ARGS = @@ -368,6 +366,9 @@ public static final String ER_IGNORABLE_WHITESPACE_NOT_HANDLED = { ER_DOCUMENT_REPLACED, "L'impl\u00E9mentation de la fonction document() a \u00E9t\u00E9 remplac\u00E9e par com.sun.org.apache.xalan.internal.xslt.FuncDocument."}, + { ER_CONTEXT_CAN_NOT_BE_NULL, + "Le contexte ne peut pas \u00EAtre NULL lorsque l'op\u00E9ration en d\u00E9pend."}, + { ER_CONTEXT_HAS_NO_OWNERDOC, "le contexte ne poss\u00E8de pas de document propri\u00E9taire."}, diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_it.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_it.java index 62f6e9a13d3..ad4df661a69 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_it.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_it.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: XPATHErrorResources_it.java /st_wptg_1.9.0.0.0jdk/2 2016/04/12 03:53:19 gmolloy Exp $ - */ package com.sun.org.apache.xpath.internal.res; import java.util.ListResourceBundle; @@ -93,6 +90,7 @@ public class XPATHErrorResources_it extends ListResourceBundle public static final String ER_CURRENT_TAKES_NO_ARGS = "ER_CURRENT_TAKES_NO_ARGS"; public static final String ER_DOCUMENT_REPLACED = "ER_DOCUMENT_REPLACED"; + public static final String ER_CONTEXT_CAN_NOT_BE_NULL = "ER_CONTEXT_CAN_NOT_BE_NULL"; public static final String ER_CONTEXT_HAS_NO_OWNERDOC = "ER_CONTEXT_HAS_NO_OWNERDOC"; public static final String ER_LOCALNAME_HAS_TOO_MANY_ARGS = @@ -368,6 +366,9 @@ public static final String ER_IGNORABLE_WHITESPACE_NOT_HANDLED = { ER_DOCUMENT_REPLACED, "L'implementazione della funzione document() \u00E8 stata sostituita da com.sun.org.apache.xalan.internal.xslt.FuncDocument."}, + { ER_CONTEXT_CAN_NOT_BE_NULL, + "Il contesto non pu\u00F2 essere nullo quando l'operazione dipende dal contesto."}, + { ER_CONTEXT_HAS_NO_OWNERDOC, "il contesto non dispone di un documento proprietario."}, diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_ja.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_ja.java index e0a85145f34..fc35ad604a2 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_ja.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_ja.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: XPATHErrorResources_ja.java /st_wptg_1.8.0.0.0jdk/2 2013/09/12 17:39:58 gmolloy Exp $ - */ package com.sun.org.apache.xpath.internal.res; import java.util.ListResourceBundle; @@ -93,6 +90,7 @@ public class XPATHErrorResources_ja extends ListResourceBundle public static final String ER_CURRENT_TAKES_NO_ARGS = "ER_CURRENT_TAKES_NO_ARGS"; public static final String ER_DOCUMENT_REPLACED = "ER_DOCUMENT_REPLACED"; + public static final String ER_CONTEXT_CAN_NOT_BE_NULL = "ER_CONTEXT_CAN_NOT_BE_NULL"; public static final String ER_CONTEXT_HAS_NO_OWNERDOC = "ER_CONTEXT_HAS_NO_OWNERDOC"; public static final String ER_LOCALNAME_HAS_TOO_MANY_ARGS = @@ -368,6 +366,9 @@ public static final String ER_IGNORABLE_WHITESPACE_NOT_HANDLED = { ER_DOCUMENT_REPLACED, "document()\u95A2\u6570\u306E\u5B9F\u88C5\u306Fcom.sun.org.apache.xalan.internal.xslt.FuncDocument\u306B\u3088\u3063\u3066\u7F6E\u63DB\u3055\u308C\u307E\u3057\u305F\u3002"}, + { ER_CONTEXT_CAN_NOT_BE_NULL, + "\u64CD\u4F5C\u304C\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u306B\u4F9D\u5B58\u3057\u3066\u3044\u308B\u5834\u5408\u3001\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3092null\u306B\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002"}, + { ER_CONTEXT_HAS_NO_OWNERDOC, "\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u306B\u6240\u6709\u8005\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u304C\u3042\u308A\u307E\u305B\u3093\u3002"}, diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_ko.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_ko.java index b7fac89b9d2..6e6097dfb36 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_ko.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_ko.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: XPATHErrorResources_ko.java /st_wptg_1.9.0.0.0jdk/2 2016/04/12 02:39:51 gmolloy Exp $ - */ package com.sun.org.apache.xpath.internal.res; import java.util.ListResourceBundle; @@ -93,6 +90,7 @@ public class XPATHErrorResources_ko extends ListResourceBundle public static final String ER_CURRENT_TAKES_NO_ARGS = "ER_CURRENT_TAKES_NO_ARGS"; public static final String ER_DOCUMENT_REPLACED = "ER_DOCUMENT_REPLACED"; + public static final String ER_CONTEXT_CAN_NOT_BE_NULL = "ER_CONTEXT_CAN_NOT_BE_NULL"; public static final String ER_CONTEXT_HAS_NO_OWNERDOC = "ER_CONTEXT_HAS_NO_OWNERDOC"; public static final String ER_LOCALNAME_HAS_TOO_MANY_ARGS = @@ -368,6 +366,9 @@ public static final String ER_IGNORABLE_WHITESPACE_NOT_HANDLED = { ER_DOCUMENT_REPLACED, "document() \uD568\uC218 \uAD6C\uD604\uC774 com.sun.org.apache.xalan.internal.xslt.FuncDocument\uB85C \uB300\uCCB4\uB418\uC5C8\uC2B5\uB2C8\uB2E4!"}, + { ER_CONTEXT_CAN_NOT_BE_NULL, + "\uC791\uC5C5\uC774 \uCEE8\uD14D\uC2A4\uD2B8\uC5D0 \uC885\uC18D\uC801\uC77C \uB54C \uCEE8\uD14D\uC2A4\uD2B8\uB294 \uB110\uC77C \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."}, + { ER_CONTEXT_HAS_NO_OWNERDOC, "\uCEE8\uD14D\uC2A4\uD2B8\uC5D0 \uC18C\uC720\uC790 \uBB38\uC11C\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4!"}, diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_pt_BR.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_pt_BR.java index 188dbbc2401..259d5a92de3 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_pt_BR.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_pt_BR.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: XPATHErrorResources_pt_BR.java /st_wptg_1.8.0.0.0jdk/2 2013/09/11 12:46:54 gmolloy Exp $ - */ package com.sun.org.apache.xpath.internal.res; import java.util.ListResourceBundle; @@ -93,6 +90,7 @@ public class XPATHErrorResources_pt_BR extends ListResourceBundle public static final String ER_CURRENT_TAKES_NO_ARGS = "ER_CURRENT_TAKES_NO_ARGS"; public static final String ER_DOCUMENT_REPLACED = "ER_DOCUMENT_REPLACED"; + public static final String ER_CONTEXT_CAN_NOT_BE_NULL = "ER_CONTEXT_CAN_NOT_BE_NULL"; public static final String ER_CONTEXT_HAS_NO_OWNERDOC = "ER_CONTEXT_HAS_NO_OWNERDOC"; public static final String ER_LOCALNAME_HAS_TOO_MANY_ARGS = @@ -368,6 +366,9 @@ public static final String ER_IGNORABLE_WHITESPACE_NOT_HANDLED = { ER_DOCUMENT_REPLACED, "a implementa\u00E7\u00E3o da fun\u00E7\u00E3o document() foi substitu\u00EDda por com.sun.org.apache.xalan.internal.xslt.FuncDocument!"}, + { ER_CONTEXT_CAN_NOT_BE_NULL, + "O contexto n\u00E3o pode ser nulo porque a opera\u00E7\u00E3o \u00E9 dependente de contexto."}, + { ER_CONTEXT_HAS_NO_OWNERDOC, "o contexto n\u00E3o tem um documento de propriet\u00E1rio!"}, diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_sv.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_sv.java index 7f2b78fa6dc..880336d0b28 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_sv.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_sv.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: XPATHErrorResources_sv.java /st_wptg_1.9.0.0.0jdk/2 2016/04/14 01:57:20 gmolloy Exp $ - */ package com.sun.org.apache.xpath.internal.res; import java.util.ListResourceBundle; @@ -93,6 +90,7 @@ public class XPATHErrorResources_sv extends ListResourceBundle public static final String ER_CURRENT_TAKES_NO_ARGS = "ER_CURRENT_TAKES_NO_ARGS"; public static final String ER_DOCUMENT_REPLACED = "ER_DOCUMENT_REPLACED"; + public static final String ER_CONTEXT_CAN_NOT_BE_NULL = "ER_CONTEXT_CAN_NOT_BE_NULL"; public static final String ER_CONTEXT_HAS_NO_OWNERDOC = "ER_CONTEXT_HAS_NO_OWNERDOC"; public static final String ER_LOCALNAME_HAS_TOO_MANY_ARGS = @@ -368,6 +366,9 @@ public static final String ER_IGNORABLE_WHITESPACE_NOT_HANDLED = { ER_DOCUMENT_REPLACED, "Implementeringen av funktionen document() har inte ersatts av com.sun.org.apache.xalan.internal.xslt.FuncDocument!"}, + { ER_CONTEXT_CAN_NOT_BE_NULL, + "Kontexten kan inte vara null n\u00E4r \u00E5tg\u00E4rden \u00E4r kontextberoende."}, + { ER_CONTEXT_HAS_NO_OWNERDOC, "context har inget \u00E4gardokument!"}, diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_zh_CN.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_zh_CN.java index 9965c4cb35a..6cdaea4f9b2 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_zh_CN.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_zh_CN.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: XPATHErrorResources_zh_CN.java /st_wptg_1.8.0.0.0jdk/3 2013/11/11 11:39:28 gmolloy Exp $ - */ package com.sun.org.apache.xpath.internal.res; import java.util.ListResourceBundle; @@ -93,6 +90,7 @@ public class XPATHErrorResources_zh_CN extends ListResourceBundle public static final String ER_CURRENT_TAKES_NO_ARGS = "ER_CURRENT_TAKES_NO_ARGS"; public static final String ER_DOCUMENT_REPLACED = "ER_DOCUMENT_REPLACED"; + public static final String ER_CONTEXT_CAN_NOT_BE_NULL = "ER_CONTEXT_CAN_NOT_BE_NULL"; public static final String ER_CONTEXT_HAS_NO_OWNERDOC = "ER_CONTEXT_HAS_NO_OWNERDOC"; public static final String ER_LOCALNAME_HAS_TOO_MANY_ARGS = @@ -368,6 +366,9 @@ public static final String ER_IGNORABLE_WHITESPACE_NOT_HANDLED = { ER_DOCUMENT_REPLACED, "document() \u51FD\u6570\u5B9E\u73B0\u5DF2\u66FF\u6362\u4E3A com.sun.org.apache.xalan.internal.xslt.FuncDocument!"}, + { ER_CONTEXT_CAN_NOT_BE_NULL, + "\u8BE5\u64CD\u4F5C\u4E0E\u4E0A\u4E0B\u6587\u76F8\u5173\u65F6, \u4E0A\u4E0B\u6587\u4E0D\u80FD\u4E3A\u7A7A\u503C\u3002"}, + { ER_CONTEXT_HAS_NO_OWNERDOC, "\u4E0A\u4E0B\u6587\u6CA1\u6709\u6240\u6709\u8005\u6587\u6863!"}, diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_zh_TW.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_zh_TW.java index e4fd3ed4cc9..531eb0250ba 100644 --- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_zh_TW.java +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_zh_TW.java @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: XPATHErrorResources_zh_TW.java /st_wptg_1.9.0.0.0jdk/2 2016/04/11 20:46:43 gmolloy Exp $ - */ package com.sun.org.apache.xpath.internal.res; import java.util.ListResourceBundle; @@ -93,6 +90,7 @@ public class XPATHErrorResources_zh_TW extends ListResourceBundle public static final String ER_CURRENT_TAKES_NO_ARGS = "ER_CURRENT_TAKES_NO_ARGS"; public static final String ER_DOCUMENT_REPLACED = "ER_DOCUMENT_REPLACED"; + public static final String ER_CONTEXT_CAN_NOT_BE_NULL = "ER_CONTEXT_CAN_NOT_BE_NULL"; public static final String ER_CONTEXT_HAS_NO_OWNERDOC = "ER_CONTEXT_HAS_NO_OWNERDOC"; public static final String ER_LOCALNAME_HAS_TOO_MANY_ARGS = @@ -368,6 +366,9 @@ public static final String ER_IGNORABLE_WHITESPACE_NOT_HANDLED = { ER_DOCUMENT_REPLACED, "document() \u51FD\u6578\u5BE6\u884C\u5DF2\u7531 com.sun.org.apache.xalan.internal.xslt.FuncDocument \u53D6\u4EE3\u3002"}, + { ER_CONTEXT_CAN_NOT_BE_NULL, + "\u5982\u679C\u4F5C\u696D\u8207\u76F8\u95DC\u8CC7\u8A0A\u74B0\u5883\u76F8\u4F9D\uFF0C\u5247\u76F8\u95DC\u8CC7\u8A0A\u74B0\u5883\u4E0D\u53EF\u4EE5\u662F\u7A7A\u503C\u3002"}, + { ER_CONTEXT_HAS_NO_OWNERDOC, "\u76F8\u95DC\u8CC7\u8A0A\u74B0\u5883\u4E0D\u5177\u6709\u64C1\u6709\u8005\u6587\u4EF6\uFF01"}, diff --git a/jaxp/src/java.xml/share/classes/javax/xml/datatype/DatatypeFactory.java b/jaxp/src/java.xml/share/classes/javax/xml/datatype/DatatypeFactory.java index 001b682e42b..a53f93df2ee 100644 --- a/jaxp/src/java.xml/share/classes/javax/xml/datatype/DatatypeFactory.java +++ b/jaxp/src/java.xml/share/classes/javax/xml/datatype/DatatypeFactory.java @@ -30,6 +30,7 @@ import java.math.BigInteger; import java.util.GregorianCalendar; import java.util.regex.Matcher; import java.util.regex.Pattern; +import com.sun.org.apache.xerces.internal.jaxp.datatype.DatatypeFactoryImpl; /** * Factory that creates new {@code javax.xml.datatype} {@code Object}s that map XML to/from Java {@code Object}s. @@ -135,6 +136,20 @@ public abstract class DatatypeFactory { protected DatatypeFactory() { } + /** + * Creates a new instance of the {@code DatatypeFactory} {@linkplain + * #DATATYPEFACTORY_IMPLEMENTATION_CLASS builtin system-default + * implementation}. + * + * @return A new instance of the {@code DatatypeFactory} builtin + * system-default implementation. + * + * @since 9 + */ + public static DatatypeFactory newDefaultInstance() { + return new DatatypeFactoryImpl(); + } + /** * Obtain a new instance of a {@code DatatypeFactory}. * diff --git a/jaxp/src/java.xml/share/classes/javax/xml/parsers/DocumentBuilderFactory.java b/jaxp/src/java.xml/share/classes/javax/xml/parsers/DocumentBuilderFactory.java index 71fed6c2c15..f04eccfbd20 100644 --- a/jaxp/src/java.xml/share/classes/javax/xml/parsers/DocumentBuilderFactory.java +++ b/jaxp/src/java.xml/share/classes/javax/xml/parsers/DocumentBuilderFactory.java @@ -25,6 +25,7 @@ package javax.xml.parsers; +import com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl; import javax.xml.validation.Schema; /** @@ -53,6 +54,19 @@ public abstract class DocumentBuilderFactory { protected DocumentBuilderFactory () { } + /** + * Creates a new instance of the {@code DocumentBuilderFactory} builtin + * system-default implementation. + * + * @return A new instance of the {@code DocumentBuilderFactory} builtin + * system-default implementation. + * + * @since 9 + */ + public static DocumentBuilderFactory newDefaultInstance() { + return new DocumentBuilderFactoryImpl(); + } + /** * Obtain a new instance of a * {@code DocumentBuilderFactory}. This static method creates @@ -93,7 +107,8 @@ public abstract class DocumentBuilderFactory { * *
  • *

    - * Otherwise, the system-default implementation is returned. + * Otherwise, the {@linkplain #newDefaultInstance() system-default} + * implementation is returned. *

  • * * diff --git a/jaxp/src/java.xml/share/classes/javax/xml/parsers/SAXParserFactory.java b/jaxp/src/java.xml/share/classes/javax/xml/parsers/SAXParserFactory.java index 1732047ee5e..08deb5123d9 100644 --- a/jaxp/src/java.xml/share/classes/javax/xml/parsers/SAXParserFactory.java +++ b/jaxp/src/java.xml/share/classes/javax/xml/parsers/SAXParserFactory.java @@ -25,6 +25,7 @@ package javax.xml.parsers; +import com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl; import javax.xml.validation.Schema; import org.xml.sax.SAXException; import org.xml.sax.SAXNotRecognizedException; @@ -58,6 +59,19 @@ public abstract class SAXParserFactory { } + /** + * Creates a new instance of the {@code SAXParserFactory} builtin + * system-default implementation. + * + * @return A new instance of the {@code SAXParserFactory} builtin + * system-default implementation. + * + * @since 9 + */ + public static SAXParserFactory newDefaultInstance() { + return new SAXParserFactoryImpl(); + } + /** * Obtain a new instance of a {@code SAXParserFactory}. This * static method creates a new factory instance @@ -97,7 +111,8 @@ public abstract class SAXParserFactory { * *
  • *

    - * Otherwise the system-default implementation is returned. + * Otherwise, the {@linkplain #newDefaultInstance() system-default} + * implementation is returned. *

  • * * diff --git a/jaxp/src/java.xml/share/classes/javax/xml/stream/XMLEventFactory.java b/jaxp/src/java.xml/share/classes/javax/xml/stream/XMLEventFactory.java index 1ec4d382711..37e5f7a8772 100644 --- a/jaxp/src/java.xml/share/classes/javax/xml/stream/XMLEventFactory.java +++ b/jaxp/src/java.xml/share/classes/javax/xml/stream/XMLEventFactory.java @@ -27,6 +27,7 @@ */ package javax.xml.stream; +import com.sun.xml.internal.stream.events.XMLEventFactoryImpl; import java.util.Iterator; import javax.xml.namespace.NamespaceContext; import javax.xml.namespace.QName; @@ -53,6 +54,19 @@ public abstract class XMLEventFactory { static final String DEFAULIMPL = "com.sun.xml.internal.stream.events.XMLEventFactoryImpl"; + /** + * Creates a new instance of the {@code XMLEventFactory} builtin + * system-default implementation. + * + * @return A new instance of the {@code XMLEventFactory} builtin + * system-default implementation. + * + * @since 9 + */ + public static XMLEventFactory newDefaultFactory() { + return new XMLEventFactoryImpl(); + } + /** * Creates a new instance of the factory in exactly the same manner as the * {@link #newFactory()} method. @@ -108,7 +122,8 @@ public abstract class XMLEventFactory { * *
  • *

    - * Otherwise, the system-default implementation is returned. + * Otherwise, the {@linkplain #newDefaultFactory() system-default} + * implementation is returned. *

  • * *

    diff --git a/jaxp/src/java.xml/share/classes/javax/xml/stream/XMLInputFactory.java b/jaxp/src/java.xml/share/classes/javax/xml/stream/XMLInputFactory.java index 191a6df6f19..cb936ac6fde 100644 --- a/jaxp/src/java.xml/share/classes/javax/xml/stream/XMLInputFactory.java +++ b/jaxp/src/java.xml/share/classes/javax/xml/stream/XMLInputFactory.java @@ -28,6 +28,7 @@ package javax.xml.stream; +import com.sun.xml.internal.stream.XMLInputFactoryImpl; import javax.xml.stream.util.XMLEventAllocator; import javax.xml.transform.Source; @@ -143,6 +144,19 @@ public abstract class XMLInputFactory { protected XMLInputFactory(){} + /** + * Creates a new instance of the {@code XMLInputFactory} builtin + * system-default implementation. + * + * @return A new instance of the {@code XMLInputFactory} builtin + * system-default implementation. + * + * @since 9 + */ + public static XMLInputFactory newDefaultFactory() { + return new XMLInputFactoryImpl(); + } + /** * Creates a new instance of the factory in exactly the same manner as the * {@link #newFactory()} method. @@ -195,7 +209,8 @@ public abstract class XMLInputFactory { * ClassLoader#getSystemClassLoader() system class loader} will be used. * *

  • - *

    Otherwise, the system-default implementation is returned. + *

    Otherwise, the {@linkplain #newDefaultFactory() system-default} + * implementation is returned. *

  • * *

    diff --git a/jaxp/src/java.xml/share/classes/javax/xml/stream/XMLOutputFactory.java b/jaxp/src/java.xml/share/classes/javax/xml/stream/XMLOutputFactory.java index caa230594db..939cb67f34a 100644 --- a/jaxp/src/java.xml/share/classes/javax/xml/stream/XMLOutputFactory.java +++ b/jaxp/src/java.xml/share/classes/javax/xml/stream/XMLOutputFactory.java @@ -28,6 +28,7 @@ package javax.xml.stream; +import com.sun.xml.internal.stream.XMLOutputFactoryImpl; import javax.xml.transform.Result; /** @@ -120,6 +121,19 @@ public abstract class XMLOutputFactory { protected XMLOutputFactory(){} + /** + * Creates a new instance of the {@code XMLOutputFactory} builtin + * system-default implementation. + * + * @return A new instance of the {@code XMLOutputFactory} builtin + * system-default implementation. + * + * @since 9 + */ + public static XMLOutputFactory newDefaultFactory() { + return new XMLOutputFactoryImpl(); + } + /** * Creates a new instance of the factory in exactly the same manner as the * {@link #newFactory()} method. @@ -175,7 +189,8 @@ public abstract class XMLOutputFactory { * *

  • *

    - * Otherwise, the system-default implementation is returned. + * Otherwise, the {@linkplain #newDefaultFactory() system-default} + * implementation is returned. *

  • * *

    diff --git a/jaxp/src/java.xml/share/classes/javax/xml/transform/TransformerFactory.java b/jaxp/src/java.xml/share/classes/javax/xml/transform/TransformerFactory.java index b0957826a0b..44774e44087 100644 --- a/jaxp/src/java.xml/share/classes/javax/xml/transform/TransformerFactory.java +++ b/jaxp/src/java.xml/share/classes/javax/xml/transform/TransformerFactory.java @@ -25,6 +25,8 @@ package javax.xml.transform; +import com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl; + /** *

    A TransformerFactory instance can be used to create * {@link javax.xml.transform.Transformer} and @@ -50,6 +52,19 @@ public abstract class TransformerFactory { + /** + * Creates a new instance of the {@code TransformerFactory} builtin + * system-default implementation. + * + * @return A new instance of the {@code TransformerFactory} builtin + * system-default implementation. + * + * @since 9 + */ + public static TransformerFactory newDefaultInstance() { + return TransformerFactoryImpl.newTransformerFactoryNoServiceLoader(); + } + /** * Obtain a new instance of a {@code TransformerFactory}. * This static method creates a new factory instance. @@ -89,7 +104,8 @@ public abstract class TransformerFactory { * *

  • *

    - * Otherwise, the system-default implementation is returned. + * Otherwise, the {@linkplain #newDefaultInstance() system-default} + * implementation is returned. *

  • * * diff --git a/jaxp/src/java.xml/share/classes/javax/xml/validation/SchemaFactory.java b/jaxp/src/java.xml/share/classes/javax/xml/validation/SchemaFactory.java index 8152b675c7e..2bcc73e1be1 100644 --- a/jaxp/src/java.xml/share/classes/javax/xml/validation/SchemaFactory.java +++ b/jaxp/src/java.xml/share/classes/javax/xml/validation/SchemaFactory.java @@ -25,6 +25,7 @@ package javax.xml.validation; +import com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchemaFactory; import java.io.File; import java.net.URL; import javax.xml.transform.Source; @@ -123,6 +124,24 @@ public abstract class SchemaFactory { protected SchemaFactory() { } + /** + * Creates a new instance of the {@code SchemaFactory} builtin + * system-default implementation. + * + * @implSpec The {@code SchemaFactory} builtin + * system-default implementation is only required to support the + * W3C XML Schema 1.0, + * but may support additional schema languages. + * + * @return A new instance of the {@code SchemaFactory} builtin + * system-default implementation. + * + * @since 9 + */ + public static SchemaFactory newDefaultInstance() { + return XMLSchemaFactory.newXMLSchemaFactoryNoServiceLoader(); + } + /** * Lookup an implementation of the {@code SchemaFactory} that supports the specified * schema language and return it. @@ -179,7 +198,8 @@ public abstract class SchemaFactory { *
  • *

    * Platform default {@code SchemaFactory} is located - * in a implementation specific way. There must be a platform default + * in an implementation specific way. There must be a + * {@linkplain #newDefaultInstance() platform default} * {@code SchemaFactory} for W3C XML Schema. *

  • * diff --git a/jaxp/src/java.xml/share/classes/javax/xml/xpath/XPathFactory.java b/jaxp/src/java.xml/share/classes/javax/xml/xpath/XPathFactory.java index 220e6eaba0f..a5b0a4755da 100644 --- a/jaxp/src/java.xml/share/classes/javax/xml/xpath/XPathFactory.java +++ b/jaxp/src/java.xml/share/classes/javax/xml/xpath/XPathFactory.java @@ -25,6 +25,8 @@ package javax.xml.xpath; +import com.sun.org.apache.xpath.internal.jaxp.XPathFactoryImpl; + /** *

    An {@code XPathFactory} instance can be used to create * {@link javax.xml.xpath.XPath} objects.

    @@ -73,6 +75,25 @@ public abstract class XPathFactory { protected XPathFactory() { } + /** + * Creates a new instance of the {@code XPathFactory} builtin + * system-default implementation. + * + * @implSpec The {@code XPathFactory} builtin + * system-default implementation is only required to support the + * {@link #DEFAULT_OBJECT_MODEL_URI default object model}, the + * {@linkplain org.w3c.dom W3C DOM}, but may support additional + * object models. + * + * @return A new instance of the {@code XPathFactory} builtin + * system-default implementation. + * + * @since 9 + */ + public static XPathFactory newDefaultInstance() { + return XPathFactoryImpl.newXPathFactoryNoServiceLoader(); + } + /** *

    Get a new {@code XPathFactory} instance using the default object model, * {@link #DEFAULT_OBJECT_MODEL_URI}, @@ -153,8 +174,11 @@ public abstract class XPathFactory { * *

  • *

    - * Platform default {@code XPathFactory} is located in a platform specific way. - * There must be a platform default XPathFactory for the W3C DOM, i.e. {@link #DEFAULT_OBJECT_MODEL_URI}. + * Platform default {@code XPathFactory} is located in a platform + * specific way. + * There must be a {@linkplain #newDefaultInstance() platform default} + * {@code XPathFactory} for the W3C DOM, i.e. + * {@link #DEFAULT_OBJECT_MODEL_URI}. *

  • * *

    If everything fails, an {@code XPathFactoryConfigurationException} will be thrown. diff --git a/jaxp/src/jdk.xml.dom/share/classes/module-info.java b/jaxp/src/jdk.xml.dom/share/classes/module-info.java index af8529c3f80..6828629b489 100644 --- a/jaxp/src/jdk.xml.dom/share/classes/module-info.java +++ b/jaxp/src/jdk.xml.dom/share/classes/module-info.java @@ -24,7 +24,7 @@ */ module jdk.xml.dom { - requires public java.xml; + requires transitive java.xml; exports org.w3c.dom.css; exports org.w3c.dom.html; exports org.w3c.dom.stylesheets; diff --git a/jaxp/test/Makefile b/jaxp/test/Makefile index 7bb73544de6..d440a624048 100644 --- a/jaxp/test/Makefile +++ b/jaxp/test/Makefile @@ -1,5 +1,5 @@ # -# Copyright (c) 1995, 2014, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1995, 2016, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -23,237 +23,16 @@ # questions. # -# -# Makefile to run various JAXP tests -# +default: all -.DEFAULT : all +USE_JTREG_VERSION := 4.1 -# Empty these to get rid of some default rules -.SUFFIXES: -.SUFFIXES: .java -CO= -GET= - -# Utilities used -AWK = awk -CAT = cat -CD = cd -CHMOD = chmod -CP = cp -CUT = cut -DIRNAME = dirname -ECHO = echo -EGREP = egrep -EXPAND = expand -FIND = find -MKDIR = mkdir -PWD = pwd -SED = sed -SORT = sort -TEE = tee -UNAME = uname -UNIQ = uniq -WC = wc -ZIPEXE = zip - -# Get OS name from uname (Cygwin inexplicably adds _NT-5.1) -UNAME_S := $(shell $(UNAME) -s | $(CUT) -f1 -d_) - -# Commands to run on paths to make mixed paths for java on windows -ifeq ($(UNAME_S), CYGWIN) - # Location of developer shared files - SLASH_JAVA = J: - GETMIXEDPATH = cygpath -m -else - # Location of developer shared files - SLASH_JAVA = /java - - GETMIXEDPATH=$(ECHO) -endif - -# Root of this test area (important to use full paths in some places) -TEST_ROOT := $(shell $(PWD)) - -# Root of all test results -ifdef TEST_OUTPUT_DIR - $(shell $(MKDIR) -p $(TEST_OUTPUT_DIR)/jtreg) - ABS_TEST_OUTPUT_DIR := \ - $(shell $(CD) $(TEST_OUTPUT_DIR)/jtreg && $(PWD)) -else - ifdef ALT_OUTPUTDIR - ABS_OUTPUTDIR = $(shell $(CD) $(ALT_OUTPUTDIR) && $(PWD)) - else - ABS_OUTPUTDIR = $(shell $(CD) $(TEST_ROOT)/.. && $(PWD)) - endif - - ABS_PLATFORM_BUILD_ROOT = $(ABS_OUTPUTDIR) - ABS_TEST_OUTPUT_DIR := $(ABS_PLATFORM_BUILD_ROOT)/testoutput/$(UNIQUE_DIR) -endif - -# Expect JPRT to set PRODUCT_HOME (the product or jdk in this case to test) -ifndef PRODUCT_HOME - # Try to use j2sdk-image if it exists - ABS_JDK_IMAGE = $(ABS_PLATFORM_BUILD_ROOT)/images/j2sdk-image - PRODUCT_HOME := \ - $(shell \ - if [ -d $(ABS_JDK_IMAGE) ] ; then \ - $(ECHO) "$(ABS_JDK_IMAGE)"; \ - else \ - $(ECHO) "$(ABS_PLATFORM_BUILD_ROOT)"; \ - fi) - PRODUCT_HOME := $(PRODUCT_HOME) -endif - -# Expect JPRT to set JPRT_PRODUCT_ARGS (e.g. -server etc.) -# Should be passed into 'java' only. -# Could include: -d64 -server -client OR any java option -ifdef JPRT_PRODUCT_ARGS - JAVA_ARGS = $(JPRT_PRODUCT_ARGS) -endif - -# Expect JPRT to set JPRT_PRODUCT_VM_ARGS (e.g. -Xcomp etc.) -# Should be passed into anything running the vm (java, javac, javadoc, ...). -ifdef JPRT_PRODUCT_VM_ARGS - JAVA_VM_ARGS = $(JPRT_PRODUCT_VM_ARGS) -endif - -# Expect JPRT to set JPRT_ARCHIVE_BUNDLE (path to zip bundle for results) -ifdef JPRT_ARCHIVE_BUNDLE - ARCHIVE_BUNDLE = $(JPRT_ARCHIVE_BUNDLE) -else - ARCHIVE_BUNDLE = $(ABS_TEST_OUTPUT_DIR)/ARCHIVE_BUNDLE.zip -endif - -# How to create the test bundle (pass or fail, we want to create this) -# Follow command with ";$(BUNDLE_UP_AND_EXIT)", so it always gets executed. -ZIP_UP_RESULTS = ( $(MKDIR) -p `$(DIRNAME) $(ARCHIVE_BUNDLE)` \ - && $(CD) $(ABS_TEST_OUTPUT_DIR) \ - && $(CHMOD) -R a+r . \ - && $(ZIPEXE) -q -r $(ARCHIVE_BUNDLE) . ) - -# important results files -SUMMARY_TXT = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/JTreport/text/summary.txt") -STATS_TXT_NAME = Stats.txt -STATS_TXT = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/$(STATS_TXT_NAME)") -RUNLIST = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/runlist.txt") -PASSLIST = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/passlist.txt") -FAILLIST = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/faillist.txt") -EXITCODE = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/exitcode.txt") - -TESTEXIT = \ - if [ ! -s $(EXITCODE) ] ; then \ - $(ECHO) "ERROR: EXITCODE file not filled in."; \ - $(ECHO) "1" > $(EXITCODE); \ - fi ; \ - testExitCode=`$(CAT) $(EXITCODE)`; \ - $(ECHO) "EXIT CODE: $${testExitCode}"; \ - exit $${testExitCode} - -BUNDLE_UP_AND_EXIT = \ -( \ - jtregExitCode=$$? && \ - _summary="$(SUMMARY_TXT)"; \ - $(RM) -f $(STATS_TXT) $(RUNLIST) $(PASSLIST) $(FAILLIST) $(EXITCODE); \ - $(ECHO) "$${jtregExitCode}" > $(EXITCODE); \ - if [ -r "$${_summary}" ] ; then \ - $(ECHO) "Summary: $(UNIQUE_DIR)" > $(STATS_TXT); \ - $(EXPAND) $${_summary} | $(EGREP) -v ' Not run\.' > $(RUNLIST); \ - $(EGREP) ' Passed\.' $(RUNLIST) \ - | $(EGREP) -v ' Error\.' \ - | $(EGREP) -v ' Failed\.' > $(PASSLIST); \ - ( $(EGREP) ' Failed\.' $(RUNLIST); \ - $(EGREP) ' Error\.' $(RUNLIST); \ - $(EGREP) -v ' Passed\.' $(RUNLIST) ) \ - | $(SORT) | $(UNIQ) > $(FAILLIST); \ - if [ $${jtregExitCode} != 0 -o -s $(FAILLIST) ] ; then \ - $(EXPAND) $(FAILLIST) \ - | $(CUT) -d' ' -f1 \ - | $(SED) -e 's@^@FAILED: @' >> $(STATS_TXT); \ - if [ $${jtregExitCode} = 0 ] ; then \ - jtregExitCode=1; \ - fi; \ - fi; \ - runc="`$(CAT) $(RUNLIST) | $(WC) -l | $(AWK) '{print $$1;}'`"; \ - passc="`$(CAT) $(PASSLIST) | $(WC) -l | $(AWK) '{print $$1;}'`"; \ - failc="`$(CAT) $(FAILLIST) | $(WC) -l | $(AWK) '{print $$1;}'`"; \ - exclc="FIXME CODETOOLS-7900176"; \ - $(ECHO) "TEST STATS: name=$(UNIQUE_DIR) run=$${runc} pass=$${passc} fail=$${failc}" \ - >> $(STATS_TXT); \ - else \ - $(ECHO) "Missing file: $${_summary}" >> $(STATS_TXT); \ - fi; \ - if [ -f $(STATS_TXT) ] ; then \ - $(CAT) $(STATS_TXT); \ - fi; \ - $(ZIP_UP_RESULTS) ; \ - $(TESTEXIT) \ -) - -################################################################ +include ../../test/TestCommon.gmk # Default make rule (runs default JAXP tests) all: jaxp_all @$(ECHO) "Testing completed successfully" -# Prep for output -# Change execute permissions on shared library files. -# Files in repositories should never have execute permissions, but -# there are some tests that have pre-built shared libraries, and these -# windows dll files must have execute permission. Adding execute -# permission may happen automatically on windows when using certain -# versions of mercurial but it cannot be guaranteed. And blindly -# adding execute permission might be seen as a mercurial 'change', so -# we avoid adding execute permission to repository files. But testing -# from a plain source tree needs the chmod a+rx. Applying the chmod to -# all shared libraries not just dll files. And with CYGWIN and sshd -# service, you may need CYGWIN=ntsec for this to work. -prep: - @$(MKDIR) -p $(ABS_TEST_OUTPUT_DIR) - @$(MKDIR) -p `$(DIRNAME) $(ARCHIVE_BUNDLE)` - @if [ ! -d $(TEST_ROOT)/../.hg ] ; then \ - $(FIND) $(TEST_ROOT) \( -name \*.dll -o -name \*.DLL -o -name \*.so \) \ - -exec $(CHMOD) a+rx {} \; ; \ - fi - -# Cleanup -clean: - @$(RM) -r $(ABS_TEST_OUTPUT_DIR) - @$(RM) $(ARCHIVE_BUNDLE) - -################################################################ - -# jtreg tests - -# Expect JT_HOME to be set for jtreg tests. (home for jtreg) -ifndef JT_HOME - JT_HOME = $(SLASH_JAVA)/re/jtreg/4.1/promoted/latest/binaries/jtreg - ifdef JPRT_JTREG_HOME - JT_HOME = $(JPRT_JTREG_HOME) - endif -endif - -# Problematic tests to be excluded -PROBLEM_LISTS=$(call MixedDirs,$(wildcard ProblemList.txt closed/ProblemList.txt)) - -# Create exclude list for this platform and arch -ifdef NO_EXCLUDES - JTREG_EXCLUSIONS = -else - JTREG_EXCLUSIONS = $(PROBLEM_LISTS:%=-exclude:%) -endif - -# convert list of directories to dos paths -define MixedDirs -$(foreach i,$1,$(shell $(GETMIXEDPATH) "${i}")) -endef - -define SummaryInfo -$(ECHO) "########################################################" -$(CAT) $(?:%=$(ABS_TEST_OUTPUT_DIR)/%/$(STATS_TXT_NAME)) -$(ECHO) "########################################################" -endef - # ------------------------------------------------------------------ jaxp_%: @@ -261,72 +40,3 @@ jaxp_%: for each in $@; do \ $(MAKE) -j 1 TEST_SELECTION=":$$each" UNIQUE_DIR=$$each jtreg_tests; \ done - -# ------------------------------------------------------------------ - -ifdef CONCURRENCY - JTREG_BASIC_OPTIONS += -concurrency:$(CONCURRENCY) -endif -ifdef EXTRA_JTREG_OPTIONS - JTREG_BASIC_OPTIONS += $(EXTRA_JTREG_OPTIONS) -endif - -# Default JTREG to run -JTREG = $(JT_HOME)/bin/jtreg -# run in agentvm mode -JTREG_BASIC_OPTIONS += -agentvm -# Only run automatic tests -JTREG_BASIC_OPTIONS += -a -# Always turn on assertions -JTREG_ASSERT_OPTION = -ea -esa -JTREG_BASIC_OPTIONS += $(JTREG_ASSERT_OPTION) -# Report details on all failed or error tests, times too -JTREG_BASIC_OPTIONS += -v:fail,error,time -# Retain all files for failing tests -JTREG_BASIC_OPTIONS += -retain:fail,error -# Ignore tests are not run and completely silent about it -JTREG_IGNORE_OPTION = -ignore:quiet -JTREG_BASIC_OPTIONS += $(JTREG_IGNORE_OPTION) -# Multiple by 4 the timeout numbers -JTREG_TIMEOUT_OPTION = -timeoutFactor:4 -JTREG_BASIC_OPTIONS += $(JTREG_TIMEOUT_OPTION) -# Set the max memory for jtreg control vm -JTREG_MEMORY_OPTION = -J-Xmx512m -JTREG_BASIC_OPTIONS += $(JTREG_MEMORY_OPTION) -# Set other vm and test options -JTREG_TEST_OPTIONS = $(JAVA_ARGS:%=-javaoptions:%) $(JAVA_VM_ARGS:%=-vmoption:%) -# Set the GC options for test vms -#JTREG_GC_OPTION = -vmoption:-XX:+UseSerialGC -#JTREG_TEST_OPTIONS += $(JTREG_GC_OPTION) -# Set the max memory for jtreg target test vms -JTREG_TESTVM_MEMORY_OPTION = -vmoption:-Xmx512m -JTREG_TEST_OPTIONS += $(JTREG_TESTVM_MEMORY_OPTION) - -# Make sure jtreg exists -$(JTREG): $(JT_HOME) - -# Run jtreg -jtreg_tests: prep $(PRODUCT_HOME) $(JTREG) - ( \ - ( JT_HOME=$(shell $(GETMIXEDPATH) "$(JT_HOME)"); \ - export JT_HOME; \ - $(shell $(GETMIXEDPATH) "$(JTREG)") \ - $(JTREG_BASIC_OPTIONS) \ - -r:$(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/JTreport") \ - -w:$(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)/JTwork") \ - -jdk:$(shell $(GETMIXEDPATH) "$(PRODUCT_HOME)") \ - $(JTREG_EXCLUSIONS) \ - $(JTREG_TEST_OPTIONS) \ - $(TEST_SELECTION) \ - ) ; \ - $(BUNDLE_UP_AND_EXIT) \ - ) 2>&1 | $(TEE) $(ABS_TEST_OUTPUT_DIR)/output.txt ; $(TESTEXIT) - -PHONY_LIST += jtreg_tests - -################################################################ - -# Phony targets (e.g. these are not filenames) -.PHONY: all clean prep $(PHONY_LIST) - -################################################################ diff --git a/jaxp/test/TEST.ROOT b/jaxp/test/TEST.ROOT index 11ad18dbae6..5f7295efea1 100644 --- a/jaxp/test/TEST.ROOT +++ b/jaxp/test/TEST.ROOT @@ -23,7 +23,7 @@ modules=java.xml groups=TEST.groups # Minimum jtreg version -requiredVersion=4.2 b03 +requiredVersion=4.2 b04 # Use new module options useNewOptions=true diff --git a/jaxp/test/javax/xml/jaxp/functional/catalog/DeferFeatureTest.java b/jaxp/test/javax/xml/jaxp/functional/catalog/DeferFeatureTest.java index b5368158ab1..f9e25de8bd6 100644 --- a/jaxp/test/javax/xml/jaxp/functional/catalog/DeferFeatureTest.java +++ b/jaxp/test/javax/xml/jaxp/functional/catalog/DeferFeatureTest.java @@ -45,6 +45,7 @@ import org.testng.annotations.Test; * @test * @bug 8077931 * @library /javax/xml/jaxp/libs + * @modules java.xml/javax.xml.catalog:open * @run testng/othervm -DrunSecMngr=true catalog.DeferFeatureTest * @run testng/othervm catalog.DeferFeatureTest * @summary This case tests whether the catalogs specified in delegateSystem, diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/datatype/ptests/FactoryNewInstanceTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/datatype/ptests/FactoryNewInstanceTest.java index 26aada36bcf..f00259f613b 100644 --- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/datatype/ptests/FactoryNewInstanceTest.java +++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/datatype/ptests/FactoryNewInstanceTest.java @@ -24,6 +24,9 @@ package javax.xml.datatype.ptests; import static org.testng.Assert.assertNotNull; +import static org.testng.Assert.assertNotSame; +import static org.testng.Assert.assertSame; +import static org.testng.Assert.assertEquals; import javax.xml.datatype.DatatypeConfigurationException; import javax.xml.datatype.DatatypeFactory; @@ -37,6 +40,7 @@ import org.testng.annotations.Test; /* * @test + * @bug 8169778 * @library /javax/xml/jaxp/libs * @run testng/othervm -DrunSecMngr=true javax.xml.datatype.ptests.FactoryNewInstanceTest * @run testng/othervm javax.xml.datatype.ptests.FactoryNewInstanceTest @@ -45,13 +49,30 @@ import org.testng.annotations.Test; @Listeners({jaxp.library.BasePolicy.class}) public class FactoryNewInstanceTest { - private static final String DATATYPE_FACTORY_CLASSNAME = "com.sun.org.apache.xerces.internal.jaxp.datatype.DatatypeFactoryImpl"; + private static final String DEFAULT_IMPL_CLASS = + "com.sun.org.apache.xerces.internal.jaxp.datatype.DatatypeFactoryImpl"; + private static final String DATATYPE_FACTORY_CLASSNAME = DEFAULT_IMPL_CLASS; @DataProvider(name = "parameters") public Object[][] getValidateParameters() { return new Object[][] { { DATATYPE_FACTORY_CLASSNAME, null }, { DATATYPE_FACTORY_CLASSNAME, this.getClass().getClassLoader() } }; } + /** + * Test if newDefaultInstance() method returns an instance + * of the expected factory. + * @throws Exception If any errors occur. + */ + @Test + public void testDefaultInstance() throws Exception { + DatatypeFactory dtf1 = DatatypeFactory.newDefaultInstance(); + DatatypeFactory dtf2 = DatatypeFactory.newInstance(); + assertNotSame(dtf1, dtf2, "same instance returned:"); + assertSame(dtf1.getClass(), dtf2.getClass(), + "unexpected class mismatch for newDefaultInstance():"); + assertEquals(dtf1.getClass().getName(), DEFAULT_IMPL_CLASS); + } + /* * test for DatatypeFactory.newInstance(java.lang.String factoryClassName, * java.lang.ClassLoader classLoader) factoryClassName points to correct diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/DocumentBuilderFactoryTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/DocumentBuilderFactoryTest.java index bc5cc4c9fcc..c4d1aff87ff 100644 --- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/DocumentBuilderFactoryTest.java +++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/DocumentBuilderFactoryTest.java @@ -34,6 +34,8 @@ import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertNull; import static org.testng.Assert.assertTrue; +import static org.testng.Assert.assertSame; +import static org.testng.Assert.assertNotSame; import java.io.BufferedReader; import java.io.Closeable; @@ -66,7 +68,7 @@ import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; /** - * @bug 8080907 + * @bug 8080907 8169778 * This checks the methods of DocumentBuilderFactoryImpl. */ /* @@ -77,10 +79,17 @@ import org.xml.sax.helpers.DefaultHandler; */ @Listeners({jaxp.library.FilePolicy.class}) public class DocumentBuilderFactoryTest { + + /** + * DocumentBuilderFactory builtin system-default implementation class name. + */ + private static final String DEFAULT_IMPL_CLASS = + "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl"; + /** * DocumentBuilderFactory implementation class name. */ - private static final String DOCUMENT_BUILDER_FACTORY_CLASSNAME = "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl"; + private static final String DOCUMENT_BUILDER_FACTORY_CLASSNAME = DEFAULT_IMPL_CLASS; /** * Provide valid DocumentBuilderFactory instantiation parameters. @@ -92,6 +101,21 @@ public class DocumentBuilderFactoryTest { return new Object[][] { { DOCUMENT_BUILDER_FACTORY_CLASSNAME, null }, { DOCUMENT_BUILDER_FACTORY_CLASSNAME, this.getClass().getClassLoader() } }; } + /** + * Test if newDefaultInstance() method returns an instance + * of the expected factory. + * @throws Exception If any errors occur. + */ + @Test + public void testDefaultInstance() throws Exception { + DocumentBuilderFactory dbf1 = DocumentBuilderFactory.newDefaultInstance(); + DocumentBuilderFactory dbf2 = DocumentBuilderFactory.newInstance(); + assertNotSame(dbf1, dbf2, "same instance returned:"); + assertSame(dbf1.getClass(), dbf2.getClass(), + "unexpected class mismatch for newDefaultInstance():"); + assertEquals(dbf1.getClass().getName(), DEFAULT_IMPL_CLASS); + } + /** * Test for DocumentBuilderFactory.newInstance(java.lang.String * factoryClassName, java.lang.ClassLoader classLoader) factoryClassName diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserFactTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserFactTest.java index c294abe51fb..2effec0126f 100644 --- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserFactTest.java +++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserFactTest.java @@ -24,6 +24,9 @@ package javax.xml.parsers.ptests; import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertTrue; +import static org.testng.Assert.assertNotSame; +import static org.testng.Assert.assertSame; +import static org.testng.Assert.assertEquals; import javax.xml.parsers.SAXParserFactory; @@ -35,6 +38,7 @@ import org.testng.annotations.Test; */ /* * @test + * @bug 8169778 * @library /javax/xml/jaxp/libs * @run testng/othervm -DrunSecMngr=true javax.xml.parsers.ptests.SAXParserFactTest * @run testng/othervm javax.xml.parsers.ptests.SAXParserFactTest @@ -48,6 +52,23 @@ public class SAXParserFactTest { private static final String VALIDATION = "http://xml.org/sax/features/validation"; private static final String EXTERNAL_G_ENTITIES = "http://xml.org/sax/features/external-general-entities"; private static final String EXTERNAL_P_ENTITIES = "http://xml.org/sax/features/external-parameter-entities"; + private static final String DEFAULT_IMPL_CLASS = + "com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl"; + + /** + * Test if newDefaultInstance() method returns an instance + * of the expected factory. + * @throws Exception If any errors occur. + */ + @Test + public void testDefaultInstance() throws Exception { + SAXParserFactory spf1 = SAXParserFactory.newDefaultInstance(); + SAXParserFactory spf2 = SAXParserFactory.newInstance(); + assertNotSame(spf1, spf2, "same instance returned:"); + assertSame(spf1.getClass(), spf2.getClass(), + "unexpected class mismatch for newDefaultInstance():"); + assertEquals(spf1.getClass().getName(), DEFAULT_IMPL_CLASS); + } /** * Test if newSAXParser() method returns SAXParser. diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/stream/ptests/XMLEventFactoryNewInstanceTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/stream/ptests/XMLEventFactoryNewInstanceTest.java index b272cd10cac..645a26e82ee 100644 --- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/stream/ptests/XMLEventFactoryNewInstanceTest.java +++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/stream/ptests/XMLEventFactoryNewInstanceTest.java @@ -27,6 +27,9 @@ import static jaxp.library.JAXPTestUtilities.setSystemProperty; import static jaxp.library.JAXPTestUtilities.clearSystemProperty; import static org.testng.Assert.assertNotNull; +import static org.testng.Assert.assertNotSame; +import static org.testng.Assert.assertSame; +import static org.testng.Assert.assertEquals; import javax.xml.stream.XMLEventFactory; @@ -38,6 +41,7 @@ import org.testng.annotations.Test; /* * @test + * @bug 8169778 * @library /javax/xml/jaxp/libs * @run testng/othervm -DrunSecMngr=true javax.xml.stream.ptests.XMLEventFactoryNewInstanceTest * @run testng/othervm javax.xml.stream.ptests.XMLEventFactoryNewInstanceTest @@ -46,12 +50,31 @@ import org.testng.annotations.Test; @Listeners({jaxp.library.BasePolicy.class}) public class XMLEventFactoryNewInstanceTest { - private static final String XMLEVENT_FACTORY_CLASSNAME = "com.sun.xml.internal.stream.events.XMLEventFactoryImpl"; - private static final String XMLEVENT_FACRORY_ID = "javax.xml.stream.XMLEventFactory"; + private static final String DEFAULT_IMPL_CLASS = + "com.sun.xml.internal.stream.events.XMLEventFactoryImpl"; + private static final String XMLEVENT_FACTORY_CLASSNAME = DEFAULT_IMPL_CLASS; + private static final String XMLEVENT_FACTORY_ID = "javax.xml.stream.XMLEventFactory"; @DataProvider(name = "parameters") public Object[][] getValidateParameters() { - return new Object[][] { { XMLEVENT_FACRORY_ID, null }, { XMLEVENT_FACRORY_ID, this.getClass().getClassLoader() } }; + return new Object[][] { + { XMLEVENT_FACTORY_ID, null }, + { XMLEVENT_FACTORY_ID, this.getClass().getClassLoader() } }; + } + + /** + * Test if newDefaultFactory() method returns an instance + * of the expected factory. + * @throws Exception If any errors occur. + */ + @Test + public void testDefaultInstance() throws Exception { + XMLEventFactory ef1 = XMLEventFactory.newDefaultFactory(); + XMLEventFactory ef2 = XMLEventFactory.newFactory(); + assertNotSame(ef1, ef2, "same instance returned:"); + assertSame(ef1.getClass(), ef2.getClass(), + "unexpected class mismatch for newDefaultFactory():"); + assertEquals(ef1.getClass().getName(), DEFAULT_IMPL_CLASS); } /* @@ -62,12 +85,12 @@ public class XMLEventFactoryNewInstanceTest { */ @Test(dataProvider = "parameters") public void testNewFactory(String factoryId, ClassLoader classLoader) { - setSystemProperty(XMLEVENT_FACRORY_ID, XMLEVENT_FACTORY_CLASSNAME); + setSystemProperty(XMLEVENT_FACTORY_ID, XMLEVENT_FACTORY_CLASSNAME); try { XMLEventFactory xef = XMLEventFactory.newFactory(factoryId, classLoader); assertNotNull(xef); } finally { - clearSystemProperty(XMLEVENT_FACRORY_ID); + clearSystemProperty(XMLEVENT_FACTORY_ID); } } diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/stream/ptests/XMLInputFactoryNewInstanceTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/stream/ptests/XMLInputFactoryNewInstanceTest.java index 9b77ac4b1af..e747396ff9e 100644 --- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/stream/ptests/XMLInputFactoryNewInstanceTest.java +++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/stream/ptests/XMLInputFactoryNewInstanceTest.java @@ -27,6 +27,9 @@ import static jaxp.library.JAXPTestUtilities.setSystemProperty; import static jaxp.library.JAXPTestUtilities.clearSystemProperty; import static org.testng.Assert.assertNotNull; +import static org.testng.Assert.assertNotSame; +import static org.testng.Assert.assertSame; +import static org.testng.Assert.assertEquals; import javax.xml.stream.XMLInputFactory; @@ -38,6 +41,7 @@ import org.testng.annotations.Test; /* * @test + * @bug 8169778 * @library /javax/xml/jaxp/libs * @run testng/othervm -DrunSecMngr=true javax.xml.stream.ptests.XMLInputFactoryNewInstanceTest * @run testng/othervm javax.xml.stream.ptests.XMLInputFactoryNewInstanceTest @@ -46,12 +50,31 @@ import org.testng.annotations.Test; @Listeners({jaxp.library.BasePolicy.class}) public class XMLInputFactoryNewInstanceTest { - private static final String XMLINPUT_FACTORY_CLASSNAME = "com.sun.xml.internal.stream.XMLInputFactoryImpl"; - private static final String XMLINPUT_FACRORY_ID = "javax.xml.stream.XMLInputFactory"; + private static final String DEFAULT_IMPL_CLASS = + "com.sun.xml.internal.stream.XMLInputFactoryImpl"; + private static final String XMLINPUT_FACTORY_CLASSNAME = DEFAULT_IMPL_CLASS; + private static final String XMLINPUT_FACTORY_ID = "javax.xml.stream.XMLInputFactory"; @DataProvider(name = "parameters") public Object[][] getValidateParameters() { - return new Object[][] { { XMLINPUT_FACRORY_ID, null }, { XMLINPUT_FACRORY_ID, this.getClass().getClassLoader() } }; + return new Object[][] { + { XMLINPUT_FACTORY_ID, null }, + { XMLINPUT_FACTORY_ID, this.getClass().getClassLoader() } }; + } + + /** + * Test if newDefaultFactory() method returns an instance + * of the expected factory. + * @throws Exception If any errors occur. + */ + @Test + public void testDefaultInstance() throws Exception { + XMLInputFactory if1 = XMLInputFactory.newDefaultFactory(); + XMLInputFactory if2 = XMLInputFactory.newFactory(); + assertNotSame(if1, if2, "same instance returned:"); + assertSame(if1.getClass(), if2.getClass(), + "unexpected class mismatch for newDefaultFactory():"); + assertEquals(if1.getClass().getName(), DEFAULT_IMPL_CLASS); } /* @@ -62,12 +85,12 @@ public class XMLInputFactoryNewInstanceTest { */ @Test(dataProvider = "parameters") public void testNewFactory(String factoryId, ClassLoader classLoader) { - setSystemProperty(XMLINPUT_FACRORY_ID, XMLINPUT_FACTORY_CLASSNAME); + setSystemProperty(XMLINPUT_FACTORY_ID, XMLINPUT_FACTORY_CLASSNAME); try { XMLInputFactory xif = XMLInputFactory.newFactory(factoryId, classLoader); assertNotNull(xif); } finally { - clearSystemProperty(XMLINPUT_FACRORY_ID); + clearSystemProperty(XMLINPUT_FACTORY_ID); } } diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/stream/ptests/XMLOutputFactoryNewInstanceTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/stream/ptests/XMLOutputFactoryNewInstanceTest.java new file mode 100644 index 00000000000..e901977e968 --- /dev/null +++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/stream/ptests/XMLOutputFactoryNewInstanceTest.java @@ -0,0 +1,107 @@ +/* + * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package javax.xml.stream.ptests; + +import static jaxp.library.JAXPTestUtilities.setSystemProperty; +import static jaxp.library.JAXPTestUtilities.clearSystemProperty; + +import static org.testng.Assert.assertNotNull; +import static org.testng.Assert.assertNotSame; +import static org.testng.Assert.assertSame; +import static org.testng.Assert.assertEquals; + +import javax.xml.stream.XMLOutputFactory; + +import jaxp.library.JAXPDataProvider; + +import org.testng.annotations.DataProvider; +import org.testng.annotations.Listeners; +import org.testng.annotations.Test; + +/* + * @test + * @bug 8169778 + * @library /javax/xml/jaxp/libs + * @run testng/othervm -DrunSecMngr=true javax.xml.stream.ptests.XMLOutputFactoryNewInstanceTest + * @run testng/othervm javax.xml.stream.ptests.XMLOutputFactoryNewInstanceTest + * @summary Tests for XMLOutputFactory.newFactory(factoryId , classLoader) + */ +@Listeners({jaxp.library.BasePolicy.class}) +public class XMLOutputFactoryNewInstanceTest { + + private static final String DEFAULT_IMPL_CLASS = + "com.sun.xml.internal.stream.XMLOutputFactoryImpl"; + private static final String XMLOUTPUT_FACTORY_CLASSNAME = DEFAULT_IMPL_CLASS; + private static final String XMLOUTPUT_FACTORY_ID = "javax.xml.stream.XMLOutputFactory"; + + @DataProvider(name = "parameters") + public Object[][] getValidateParameters() { + return new Object[][] { + { XMLOUTPUT_FACTORY_ID, null }, + { XMLOUTPUT_FACTORY_ID, this.getClass().getClassLoader() } }; + } + + /** + * Test if newDefaultFactory() method returns an instance + * of the expected factory. + * @throws Exception If any errors occur. + */ + @Test + public void testDefaultInstance() throws Exception { + XMLOutputFactory of1 = XMLOutputFactory.newDefaultFactory(); + XMLOutputFactory of2 = XMLOutputFactory.newFactory(); + assertNotSame(of1, of2, "same instance returned:"); + assertSame(of1.getClass(), of2.getClass(), + "unexpected class mismatch for newDefaultFactory():"); + assertEquals(of1.getClass().getName(), DEFAULT_IMPL_CLASS); + } + + /* + * test for XMLOutputFactory.newFactory(java.lang.String factoryId, + * java.lang.ClassLoader classLoader) factoryClassName points to correct + * implementation of javax.xml.stream.XMLOutputFactory , should return + * newInstance of XMLOutputFactory + */ + @Test(dataProvider = "parameters") + public void testNewFactory(String factoryId, ClassLoader classLoader) { + setSystemProperty(XMLOUTPUT_FACTORY_ID, XMLOUTPUT_FACTORY_CLASSNAME); + try { + XMLOutputFactory xif = XMLOutputFactory.newFactory(factoryId, classLoader); + assertNotNull(xif); + } finally { + clearSystemProperty(XMLOUTPUT_FACTORY_ID); + } + } + + /* + * test for XMLOutputFactory.newFactory(java.lang.String factoryClassName, + * java.lang.ClassLoader classLoader) factoryClassName is null , should + * throw NullPointerException + */ + @Test(expectedExceptions = NullPointerException.class, dataProvider = "new-instance-neg", dataProviderClass = JAXPDataProvider.class) + public void testNewFactoryNeg(String factoryId, ClassLoader classLoader) { + XMLOutputFactory.newFactory(factoryId, classLoader); + } + +} diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerFactoryTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerFactoryTest.java index 5f1fbb29500..ec5d2d4f387 100644 --- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerFactoryTest.java +++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerFactoryTest.java @@ -28,6 +28,9 @@ import static jaxp.library.JAXPTestUtilities.USER_DIR; import static jaxp.library.JAXPTestUtilities.compareWithGold; import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertTrue; +import static org.testng.Assert.assertNotSame; +import static org.testng.Assert.assertSame; +import static org.testng.Assert.assertEquals; import java.io.FileInputStream; import java.io.FileOutputStream; @@ -55,16 +58,23 @@ import org.w3c.dom.Document; */ /* * @test + * @bug 8169778 * @library /javax/xml/jaxp/libs * @run testng/othervm -DrunSecMngr=true javax.xml.transform.ptests.TransformerFactoryTest * @run testng/othervm javax.xml.transform.ptests.TransformerFactoryTest */ @Listeners({jaxp.library.FilePolicy.class}) public class TransformerFactoryTest { + /** + * TransformerFactory builtin system-default implementation class name. + */ + private static final String DEFAULT_IMPL_CLASS = + "com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl"; + /** * TransformerFactory implementation class name. */ - private static final String TRANSFORMER_FACTORY_CLASSNAME = "com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl"; + private static final String TRANSFORMER_FACTORY_CLASSNAME = DEFAULT_IMPL_CLASS; /** * Provide valid TransformerFactory instantiation parameters. @@ -76,6 +86,21 @@ public class TransformerFactoryTest { return new Object[][] { { TRANSFORMER_FACTORY_CLASSNAME, null }, { TRANSFORMER_FACTORY_CLASSNAME, this.getClass().getClassLoader() } }; } + /** + * Test if newDefaultInstance() method returns an instance + * of the expected factory. + * @throws Exception If any errors occur. + */ + @Test + public void testDefaultInstance() throws Exception { + TransformerFactory tf1 = TransformerFactory.newDefaultInstance(); + TransformerFactory tf2 = TransformerFactory.newInstance(); + assertNotSame(tf1, tf2, "same instance returned:"); + assertSame(tf1.getClass(), tf2.getClass(), + "unexpected class mismatch for newDefaultInstance():"); + assertEquals(tf1.getClass().getName(), DEFAULT_IMPL_CLASS); + } + /** * Test for TransformerFactory.newInstance(java.lang.String * factoryClassName, java.lang.ClassLoader classLoader) factoryClassName diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/validation/ptests/SchemaFactoryTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/validation/ptests/SchemaFactoryTest.java index c3a12612a05..920723c4a56 100644 --- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/validation/ptests/SchemaFactoryTest.java +++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/validation/ptests/SchemaFactoryTest.java @@ -28,6 +28,9 @@ import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertNull; import static org.testng.Assert.assertSame; import static org.testng.Assert.assertTrue; +import static org.testng.Assert.assertFalse; +import static org.testng.Assert.assertNotSame; +import static org.testng.Assert.assertEquals; import java.io.ByteArrayInputStream; import java.io.File; @@ -66,7 +69,7 @@ import org.xml.sax.SAXParseException; /* * @test - * @bug 8080907 + * @bug 8080907 8169778 * @library /javax/xml/jaxp/libs * @run testng/othervm -DrunSecMngr=true javax.xml.validation.ptests.SchemaFactoryTest * @run testng/othervm javax.xml.validation.ptests.SchemaFactoryTest @@ -102,6 +105,25 @@ public class SchemaFactoryTest { { W3C_XML_SCHEMA_NS_URI, SCHEMA_FACTORY_CLASSNAME, this.getClass().getClassLoader() } }; } + /** + * Test if newDefaultInstance() method returns an instance + * of the expected factory. + * @throws Exception If any errors occur. + */ + @Test + public void testDefaultInstance() throws Exception { + SchemaFactory sf1 = SchemaFactory.newDefaultInstance(); + SchemaFactory sf2 = SchemaFactory.newInstance(W3C_XML_SCHEMA_NS_URI); + assertNotSame(sf1, sf2, "same instance returned:"); + assertSame(sf1.getClass(), sf2.getClass(), + "unexpected class mismatch for newDefaultInstance():"); + assertEquals(sf1.getClass().getName(), DEFAULT_IMPL_CLASS); + assertTrue(sf1.isSchemaLanguageSupported(W3C_XML_SCHEMA_NS_URI), + "isSchemaLanguageSupported(W3C_XML_SCHEMA_NS_URI):"); + assertFalse(sf1.isSchemaLanguageSupported(UNRECOGNIZED_NAME), + "isSchemaLanguageSupported(UNRECOGNIZED_NAME):"); + } + /* * test for SchemaFactory.newInstance(java.lang.String schemaLanguage, * java.lang.String factoryClassName, java.lang.ClassLoader classLoader) @@ -394,7 +416,10 @@ public class SchemaFactoryTest { private static final String UNRECOGNIZED_NAME = "http://xml.org/sax/features/namespace-prefixes"; - private static final String SCHEMA_FACTORY_CLASSNAME = "com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchemaFactory"; + private static final String DEFAULT_IMPL_CLASS = + "com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchemaFactory"; + + private static final String SCHEMA_FACTORY_CLASSNAME = DEFAULT_IMPL_CLASS; private SchemaFactory sf; private XMLInputFactory ifac; diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathFactoryTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathFactoryTest.java index 8a9c51aa284..b0e778204d2 100644 --- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathFactoryTest.java +++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathFactoryTest.java @@ -24,7 +24,13 @@ package javax.xml.xpath.ptests; import static javax.xml.xpath.XPathConstants.DOM_OBJECT_MODEL; +import static javax.xml.xpath.XPathFactory.DEFAULT_OBJECT_MODEL_URI; import static org.testng.Assert.assertNotNull; +import static org.testng.Assert.assertNotSame; +import static org.testng.Assert.assertSame; +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertTrue; +import static org.testng.Assert.assertFalse; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathFactory; @@ -41,6 +47,7 @@ import org.testng.annotations.Test; */ /* * @test + * @bug 8169778 * @library /javax/xml/jaxp/libs * @run testng/othervm -DrunSecMngr=true javax.xml.xpath.ptests.XPathFactoryTest * @run testng/othervm javax.xml.xpath.ptests.XPathFactoryTest @@ -57,10 +64,16 @@ public class XPathFactoryTest { */ private static final String INVALID_URL = "http://java.sun.com/jaxp/xpath/dom1"; + /** + * XPathFactory builtin system-default implementation class name. + */ + private static final String DEFAULT_IMPL_CLASS = + "com.sun.org.apache.xpath.internal.jaxp.XPathFactoryImpl"; + /** * XPathFactory implementation class name. */ - private static final String XPATH_FACTORY_CLASSNAME = "com.sun.org.apache.xpath.internal.jaxp.XPathFactoryImpl"; + private static final String XPATH_FACTORY_CLASSNAME = DEFAULT_IMPL_CLASS; /** @@ -73,6 +86,25 @@ public class XPathFactoryTest { return new Object[][] { { VALID_URL, XPATH_FACTORY_CLASSNAME, null }, { VALID_URL, XPATH_FACTORY_CLASSNAME, this.getClass().getClassLoader() } }; } + /** + * Test if newDefaultInstance() method returns an instance + * of the expected factory. + * @throws Exception If any errors occur. + */ + @Test + public void testDefaultInstance() throws Exception { + XPathFactory xpf1 = XPathFactory.newDefaultInstance(); + XPathFactory xpf2 = XPathFactory.newInstance(DEFAULT_OBJECT_MODEL_URI); + assertNotSame(xpf1, xpf2, "same instance returned:"); + assertSame(xpf1.getClass(), xpf2.getClass(), + "unexpected class mismatch for newDefaultInstance():"); + assertEquals(xpf1.getClass().getName(), DEFAULT_IMPL_CLASS); + assertTrue(xpf1.isObjectModelSupported(DEFAULT_OBJECT_MODEL_URI), + "isObjectModelSupported(DEFAULT_OBJECT_MODEL_URI):"); + assertFalse(xpf1.isObjectModelSupported(INVALID_URL), + "isObjectModelSupported(INVALID_URL):"); + } + /** * Test for XPathFactory.newInstance(java.lang.String uri, java.lang.String * factoryClassName, java.lang.ClassLoader classLoader) factoryClassName diff --git a/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/DefaultFactoryWrapperTest.java b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/DefaultFactoryWrapperTest.java new file mode 100644 index 00000000000..0e16d9b5db3 --- /dev/null +++ b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/DefaultFactoryWrapperTest.java @@ -0,0 +1,90 @@ +/* + * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +import static javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI; +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertSame; + +import java.io.StringReader; +import java.io.StringWriter; +import java.lang.reflect.Layer; +import java.lang.reflect.Module; + +import javax.xml.datatype.DatatypeFactory; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.SAXParserFactory; +import javax.xml.stream.XMLEventFactory; +import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLOutputFactory; +import javax.xml.transform.TransformerFactory; +import javax.xml.validation.SchemaFactory; +import javax.xml.xpath.XPathFactory; + +import org.testng.annotations.DataProvider; +import org.testng.annotations.Test; + +/* + * @test + * @library src/DefaultFactoryWrapperTest + * @build xmlwrapperprovider/* + * @run testng/othervm --add-modules=xmlwrapperprovider DefaultFactoryWrapperTest + * @bug 8169948 8169778 + * @summary test customized provider wraps the built-in system-default implementation of JAXP factories + */ +public class DefaultFactoryWrapperTest { + private static final Module XML_MODULE = Layer.boot().findModule("java.xml").get(); + + private static final String PROVIDER_PACKAGE = "xwp"; + + /* + * Return JAXP factory and corresponding factory function. + */ + @DataProvider(name = "jaxpFactories") + public Object[][] jaxpFactories() throws Exception { + return new Object[][] { + { DocumentBuilderFactory.newInstance(), (Produce)factory -> ((DocumentBuilderFactory)factory).newDocumentBuilder() }, + { SAXParserFactory.newInstance(), (Produce)factory -> ((SAXParserFactory)factory).newSAXParser() }, + { SchemaFactory.newInstance(W3C_XML_SCHEMA_NS_URI), (Produce)factory -> ((SchemaFactory)factory).newSchema() }, + { TransformerFactory.newInstance(), (Produce)factory -> ((TransformerFactory)factory).newTransformer() }, + { XMLEventFactory.newInstance(), (Produce)factory -> ((XMLEventFactory)factory).createStartDocument() }, + { XMLInputFactory.newInstance(), (Produce)factory -> ((XMLInputFactory)factory).createXMLEventReader(new StringReader("")) }, + { XMLOutputFactory.newInstance(), (Produce)factory -> ((XMLOutputFactory)factory).createXMLEventWriter(new StringWriter()) }, + { XPathFactory.newInstance(), (Produce)factory -> ((XPathFactory)factory).newXPath() }, + { DatatypeFactory.newInstance(), (Produce)factory -> ((DatatypeFactory)factory).newXMLGregorianCalendar() } + }; + } + + /* + * Verify the factory comes from customized provider, and produces a built-in type. + */ + @Test(dataProvider = "jaxpFactories") + public void testFactory(Object factory, Produce p) throws Exception { + assertEquals(factory.getClass().getPackageName(), PROVIDER_PACKAGE); + assertSame(p.produce(factory).getClass().getModule(), XML_MODULE); + } + + @FunctionalInterface + public interface Produce { + R produce(T t) throws Exception; + } +} diff --git a/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/DefaultFactoryWrapperTest/xmlwrapperprovider/module-info.java b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/DefaultFactoryWrapperTest/xmlwrapperprovider/module-info.java new file mode 100644 index 00000000000..4bd7c0dfef6 --- /dev/null +++ b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/DefaultFactoryWrapperTest/xmlwrapperprovider/module-info.java @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +module xmlwrapperprovider { + requires java.xml; + + provides javax.xml.parsers.DocumentBuilderFactory with xwp.DocumentBuilderFactoryWrapper; + provides javax.xml.parsers.SAXParserFactory with xwp.SAXParserFactoryWrapper; + provides javax.xml.stream.XMLInputFactory with xwp.XMLInputFactoryWrapper; + provides javax.xml.stream.XMLOutputFactory with xwp.XMLOutputFactoryWrapper; + provides javax.xml.transform.TransformerFactory with xwp.TransformerFactoryWrapper; + provides javax.xml.validation.SchemaFactory with xwp.SchemaFactoryWrapper; + provides javax.xml.xpath.XPathFactory with xwp.XPathFactoryWrapper; + provides javax.xml.datatype.DatatypeFactory with xwp.DatatypeFactoryWrapper; + provides javax.xml.stream.XMLEventFactory with xwp.XMLEventFactoryWrapper; +} diff --git a/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/DefaultFactoryWrapperTest/xmlwrapperprovider/xwp/DatatypeFactoryWrapper.java b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/DefaultFactoryWrapperTest/xmlwrapperprovider/xwp/DatatypeFactoryWrapper.java new file mode 100644 index 00000000000..42a46a3ede0 --- /dev/null +++ b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/DefaultFactoryWrapperTest/xmlwrapperprovider/xwp/DatatypeFactoryWrapper.java @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package xwp; + +import java.math.BigDecimal; +import java.math.BigInteger; +import java.util.GregorianCalendar; + +import javax.xml.datatype.DatatypeFactory; +import javax.xml.datatype.Duration; +import javax.xml.datatype.XMLGregorianCalendar; + +public class DatatypeFactoryWrapper extends DatatypeFactory { + private DatatypeFactory defaultImpl = DatatypeFactory.newDefaultInstance(); + + @Override + public Duration newDuration(String lexicalRepresentation) { + return defaultImpl.newDuration(lexicalRepresentation); + } + + @Override + public Duration newDuration(long durationInMilliSeconds) { + return defaultImpl.newDuration(durationInMilliSeconds); + } + + @Override + public Duration newDuration(boolean isPositive, BigInteger years, BigInteger months, BigInteger days, + BigInteger hours, BigInteger minutes, BigDecimal seconds) { + return defaultImpl.newDuration(isPositive, years, months, days, hours, minutes, seconds); + } + + @Override + public XMLGregorianCalendar newXMLGregorianCalendar() { + return defaultImpl.newXMLGregorianCalendar(); + } + + @Override + public XMLGregorianCalendar newXMLGregorianCalendar(String lexicalRepresentation) { + return defaultImpl.newXMLGregorianCalendar(lexicalRepresentation); + } + + @Override + public XMLGregorianCalendar newXMLGregorianCalendar(GregorianCalendar cal) { + return defaultImpl.newXMLGregorianCalendar(cal); + } + + @Override + public XMLGregorianCalendar newXMLGregorianCalendar(BigInteger year, int month, int day, int hour, + int minute, int second, BigDecimal fractionalSecond, int timezone) { + return defaultImpl.newXMLGregorianCalendar(year, month, day, hour, minute, second, fractionalSecond, timezone); + } + +} diff --git a/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/DefaultFactoryWrapperTest/xmlwrapperprovider/xwp/DocumentBuilderFactoryWrapper.java b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/DefaultFactoryWrapperTest/xmlwrapperprovider/xwp/DocumentBuilderFactoryWrapper.java new file mode 100644 index 00000000000..db8de811cf5 --- /dev/null +++ b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/DefaultFactoryWrapperTest/xmlwrapperprovider/xwp/DocumentBuilderFactoryWrapper.java @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package xwp; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; + +public class DocumentBuilderFactoryWrapper extends DocumentBuilderFactory { + private DocumentBuilderFactory defaultImpl = DocumentBuilderFactory.newDefaultInstance(); + + @Override + public DocumentBuilder newDocumentBuilder() throws ParserConfigurationException { + return defaultImpl.newDocumentBuilder(); + } + + @Override + public void setAttribute(String name, Object value) throws IllegalArgumentException { + defaultImpl.setAttribute(name, value); + } + + @Override + public Object getAttribute(String name) throws IllegalArgumentException { + return defaultImpl.getAttribute(name); + } + + @Override + public void setFeature(String name, boolean value) throws ParserConfigurationException { + defaultImpl.setFeature(name, value); + } + + @Override + public boolean getFeature(String name) throws ParserConfigurationException { + return defaultImpl.getFeature(name); + } + +} diff --git a/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/DefaultFactoryWrapperTest/xmlwrapperprovider/xwp/SAXParserFactoryWrapper.java b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/DefaultFactoryWrapperTest/xmlwrapperprovider/xwp/SAXParserFactoryWrapper.java new file mode 100644 index 00000000000..4e9880de945 --- /dev/null +++ b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/DefaultFactoryWrapperTest/xmlwrapperprovider/xwp/SAXParserFactoryWrapper.java @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package xwp; + +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; + +import org.xml.sax.SAXException; +import org.xml.sax.SAXNotRecognizedException; +import org.xml.sax.SAXNotSupportedException; + +public class SAXParserFactoryWrapper extends SAXParserFactory { + private SAXParserFactory defaultImpl = SAXParserFactory.newDefaultInstance(); + + @Override + public SAXParser newSAXParser() throws ParserConfigurationException, SAXException { + return defaultImpl.newSAXParser(); + } + + @Override + public void setFeature(String name, boolean value) throws ParserConfigurationException, + SAXNotRecognizedException, SAXNotSupportedException { + defaultImpl.setFeature(name, value); + } + + @Override + public boolean getFeature(String name) throws ParserConfigurationException, SAXNotRecognizedException, + SAXNotSupportedException { + return defaultImpl.getFeature(name); + } + +} diff --git a/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/DefaultFactoryWrapperTest/xmlwrapperprovider/xwp/SchemaFactoryWrapper.java b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/DefaultFactoryWrapperTest/xmlwrapperprovider/xwp/SchemaFactoryWrapper.java new file mode 100644 index 00000000000..681b336139a --- /dev/null +++ b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/DefaultFactoryWrapperTest/xmlwrapperprovider/xwp/SchemaFactoryWrapper.java @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package xwp; + +import javax.xml.transform.Source; +import javax.xml.validation.Schema; +import javax.xml.validation.SchemaFactory; + +import org.w3c.dom.ls.LSResourceResolver; +import org.xml.sax.ErrorHandler; +import org.xml.sax.SAXException; + +public class SchemaFactoryWrapper extends SchemaFactory { + private SchemaFactory defaultImpl = SchemaFactory.newDefaultInstance(); + + @Override + public boolean isSchemaLanguageSupported(String schemaLanguage) { + return defaultImpl.isSchemaLanguageSupported(schemaLanguage); + } + + @Override + public void setErrorHandler(ErrorHandler errorHandler) { + defaultImpl.setErrorHandler(errorHandler); + } + + @Override + public ErrorHandler getErrorHandler() { + return defaultImpl.getErrorHandler(); + } + + @Override + public void setResourceResolver(LSResourceResolver resourceResolver) { + defaultImpl.setResourceResolver(resourceResolver); + } + + @Override + public LSResourceResolver getResourceResolver() { + return defaultImpl.getResourceResolver(); + } + + @Override + public Schema newSchema(Source[] schemas) throws SAXException { + return defaultImpl.newSchema(schemas); + } + + @Override + public Schema newSchema() throws SAXException { + return defaultImpl.newSchema(); + } + +} diff --git a/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/DefaultFactoryWrapperTest/xmlwrapperprovider/xwp/TransformerFactoryWrapper.java b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/DefaultFactoryWrapperTest/xmlwrapperprovider/xwp/TransformerFactoryWrapper.java new file mode 100644 index 00000000000..7d104888c06 --- /dev/null +++ b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/DefaultFactoryWrapperTest/xmlwrapperprovider/xwp/TransformerFactoryWrapper.java @@ -0,0 +1,98 @@ +/* + * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package xwp; + +import javax.xml.transform.ErrorListener; +import javax.xml.transform.Source; +import javax.xml.transform.Templates; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerConfigurationException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.URIResolver; + +public class TransformerFactoryWrapper extends TransformerFactory { + private TransformerFactory defaultImpl = TransformerFactory.newDefaultInstance(); + + @Override + public Transformer newTransformer(Source source) throws TransformerConfigurationException { + return defaultImpl.newTransformer(source); + } + + @Override + public Transformer newTransformer() throws TransformerConfigurationException { + return defaultImpl.newTransformer(); + } + + @Override + public Templates newTemplates(Source source) throws TransformerConfigurationException { + return defaultImpl.newTemplates(source); + } + + @Override + public Source getAssociatedStylesheet(Source source, String media, String title, String charset) + throws TransformerConfigurationException { + return defaultImpl.getAssociatedStylesheet(source, media, title, charset); + } + + @Override + public void setURIResolver(URIResolver resolver) { + defaultImpl.setURIResolver(resolver); + } + + @Override + public URIResolver getURIResolver() { + return defaultImpl.getURIResolver(); + } + + @Override + public void setFeature(String name, boolean value) throws TransformerConfigurationException { + defaultImpl.setFeature(name, value); + } + + @Override + public boolean getFeature(String name) { + return defaultImpl.getFeature(name); + } + + @Override + public void setAttribute(String name, Object value) { + defaultImpl.setAttribute(name, value); + } + + @Override + public Object getAttribute(String name) { + return defaultImpl.getAttribute(name); + } + + @Override + public void setErrorListener(ErrorListener listener) { + defaultImpl.setErrorListener(listener); + } + + @Override + public ErrorListener getErrorListener() { + return defaultImpl.getErrorListener(); + } + +} diff --git a/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/DefaultFactoryWrapperTest/xmlwrapperprovider/xwp/XMLEventFactoryWrapper.java b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/DefaultFactoryWrapperTest/xmlwrapperprovider/xwp/XMLEventFactoryWrapper.java new file mode 100644 index 00000000000..575154aeeee --- /dev/null +++ b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/DefaultFactoryWrapperTest/xmlwrapperprovider/xwp/XMLEventFactoryWrapper.java @@ -0,0 +1,181 @@ +/* + * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package xwp; + +import java.util.Iterator; + +import javax.xml.namespace.NamespaceContext; +import javax.xml.namespace.QName; +import javax.xml.stream.Location; +import javax.xml.stream.XMLEventFactory; +import javax.xml.stream.events.Attribute; +import javax.xml.stream.events.Characters; +import javax.xml.stream.events.Comment; +import javax.xml.stream.events.DTD; +import javax.xml.stream.events.EndDocument; +import javax.xml.stream.events.EndElement; +import javax.xml.stream.events.EntityDeclaration; +import javax.xml.stream.events.EntityReference; +import javax.xml.stream.events.Namespace; +import javax.xml.stream.events.ProcessingInstruction; +import javax.xml.stream.events.StartDocument; +import javax.xml.stream.events.StartElement; + +public class XMLEventFactoryWrapper extends XMLEventFactory { + private XMLEventFactory defaultImpl = XMLEventFactory.newDefaultFactory(); + + @Override + public void setLocation(Location location) { + defaultImpl.setLocation(location); + } + + @Override + public Attribute createAttribute(String prefix, String namespaceURI, String localName, String value) { + return defaultImpl.createAttribute(prefix, namespaceURI, localName, value); + } + + @Override + public Attribute createAttribute(String localName, String value) { + return defaultImpl.createAttribute(localName, value); + } + + @Override + public Attribute createAttribute(QName name, String value) { + return defaultImpl.createAttribute(name, value); + } + + @Override + public Namespace createNamespace(String namespaceURI) { + return defaultImpl.createNamespace(namespaceURI); + } + + @Override + public Namespace createNamespace(String prefix, String namespaceUri) { + return defaultImpl.createNamespace(prefix, namespaceUri); + } + + @Override + public StartElement createStartElement(QName name, Iterator attributes, Iterator namespaces) { + return defaultImpl.createStartElement(name, attributes, namespaces); + } + + @Override + public StartElement createStartElement(String prefix, String namespaceUri, String localName) { + return defaultImpl.createStartElement(prefix, namespaceUri, localName); + } + + @Override + public StartElement createStartElement(String prefix, String namespaceUri, String localName, + Iterator attributes, Iterator namespaces) { + return defaultImpl.createStartElement(prefix, namespaceUri, localName, attributes, namespaces); + } + + @Override + public StartElement createStartElement(String prefix, String namespaceUri, String localName, + Iterator attributes, Iterator namespaces, NamespaceContext context) { + return defaultImpl.createStartElement(prefix, namespaceUri, localName, attributes, namespaces, context); + } + + @Override + public EndElement createEndElement(QName name, Iterator namespaces) { + return defaultImpl.createEndElement(name, namespaces); + } + + @Override + public EndElement createEndElement(String prefix, String namespaceUri, String localName) { + return defaultImpl.createEndElement(prefix, namespaceUri, localName); + } + + @Override + public EndElement createEndElement(String prefix, String namespaceUri, String localName, + Iterator namespaces) { + return defaultImpl.createEndElement(prefix, namespaceUri, localName, namespaces); + } + + @Override + public Characters createCharacters(String content) { + return defaultImpl.createCharacters(content); + } + + @Override + public Characters createCData(String content) { + return defaultImpl.createCData(content); + } + + @Override + public Characters createSpace(String content) { + return defaultImpl.createSpace(content); + } + + @Override + public Characters createIgnorableSpace(String content) { + return defaultImpl.createIgnorableSpace(content); + } + + @Override + public StartDocument createStartDocument() { + return defaultImpl.createStartDocument(); + } + + @Override + public StartDocument createStartDocument(String encoding, String version, boolean standalone) { + return defaultImpl.createStartDocument(encoding, version, standalone); + } + + @Override + public StartDocument createStartDocument(String encoding, String version) { + return defaultImpl.createStartDocument(encoding, version); + } + + @Override + public StartDocument createStartDocument(String encoding) { + return defaultImpl.createStartDocument(encoding); + } + + @Override + public EndDocument createEndDocument() { + return defaultImpl.createEndDocument(); + } + + @Override + public EntityReference createEntityReference(String name, EntityDeclaration declaration) { + return defaultImpl.createEntityReference(name, declaration); + } + + @Override + public Comment createComment(String text) { + return defaultImpl.createComment(text); + } + + @Override + public ProcessingInstruction createProcessingInstruction(String target, String data) { + return defaultImpl.createProcessingInstruction(target, data); + } + + @Override + public DTD createDTD(String dtd) { + return defaultImpl.createDTD(dtd); + } + +} diff --git a/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/DefaultFactoryWrapperTest/xmlwrapperprovider/xwp/XMLInputFactoryWrapper.java b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/DefaultFactoryWrapperTest/xmlwrapperprovider/xwp/XMLInputFactoryWrapper.java new file mode 100644 index 00000000000..c19fc20a209 --- /dev/null +++ b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/DefaultFactoryWrapperTest/xmlwrapperprovider/xwp/XMLInputFactoryWrapper.java @@ -0,0 +1,167 @@ +/* + * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package xwp; + +import java.io.InputStream; +import java.io.Reader; + +import javax.xml.stream.EventFilter; +import javax.xml.stream.StreamFilter; +import javax.xml.stream.XMLEventReader; +import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLReporter; +import javax.xml.stream.XMLResolver; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; +import javax.xml.stream.util.XMLEventAllocator; +import javax.xml.transform.Source; + +public class XMLInputFactoryWrapper extends XMLInputFactory { + private XMLInputFactory defaultImpl = XMLInputFactory.newDefaultFactory(); + + @Override + public XMLStreamReader createXMLStreamReader(Reader reader) throws XMLStreamException { + return defaultImpl.createXMLStreamReader(reader); + } + + @Override + public XMLStreamReader createXMLStreamReader(Source source) throws XMLStreamException { + return defaultImpl.createXMLStreamReader(source); + } + + @Override + public XMLStreamReader createXMLStreamReader(InputStream stream) throws XMLStreamException { + return defaultImpl.createXMLStreamReader(stream); + } + + @Override + public XMLStreamReader createXMLStreamReader(InputStream stream, String encoding) + throws XMLStreamException { + return defaultImpl.createXMLStreamReader(stream, encoding); + } + + @Override + public XMLStreamReader createXMLStreamReader(String systemId, InputStream stream) + throws XMLStreamException { + return defaultImpl.createXMLStreamReader(systemId, stream); + } + + @Override + public XMLStreamReader createXMLStreamReader(String systemId, Reader reader) throws XMLStreamException { + return defaultImpl.createXMLStreamReader(systemId, reader); + } + + @Override + public XMLEventReader createXMLEventReader(Reader reader) throws XMLStreamException { + return defaultImpl.createXMLEventReader(reader); + } + + @Override + public XMLEventReader createXMLEventReader(String systemId, Reader reader) throws XMLStreamException { + return defaultImpl.createXMLEventReader(systemId, reader); + } + + @Override + public XMLEventReader createXMLEventReader(XMLStreamReader reader) throws XMLStreamException { + return defaultImpl.createXMLEventReader(reader); + } + + @Override + public XMLEventReader createXMLEventReader(Source source) throws XMLStreamException { + return defaultImpl.createXMLEventReader(source); + } + + @Override + public XMLEventReader createXMLEventReader(InputStream stream) throws XMLStreamException { + return defaultImpl.createXMLEventReader(stream); + } + + @Override + public XMLEventReader createXMLEventReader(InputStream stream, String encoding) throws XMLStreamException { + return defaultImpl.createXMLEventReader(stream, encoding); + } + + @Override + public XMLEventReader createXMLEventReader(String systemId, InputStream stream) throws XMLStreamException { + return defaultImpl.createXMLEventReader(systemId, stream); + } + + @Override + public XMLStreamReader createFilteredReader(XMLStreamReader reader, StreamFilter filter) + throws XMLStreamException { + return defaultImpl.createFilteredReader(reader, filter); + } + + @Override + public XMLEventReader createFilteredReader(XMLEventReader reader, EventFilter filter) + throws XMLStreamException { + return defaultImpl.createFilteredReader(reader, filter); + } + + @Override + public XMLResolver getXMLResolver() { + return defaultImpl.getXMLResolver(); + } + + @Override + public void setXMLResolver(XMLResolver resolver) { + defaultImpl.setXMLResolver(resolver); + } + + @Override + public XMLReporter getXMLReporter() { + return defaultImpl.getXMLReporter(); + } + + @Override + public void setXMLReporter(XMLReporter reporter) { + defaultImpl.setXMLReporter(reporter); + } + + @Override + public void setProperty(String name, Object value) throws IllegalArgumentException { + defaultImpl.setProperty(name, value); + } + + @Override + public Object getProperty(String name) throws IllegalArgumentException { + return defaultImpl.getProperty(name); + } + + @Override + public boolean isPropertySupported(String name) { + return defaultImpl.isPropertySupported(name); + } + + @Override + public void setEventAllocator(XMLEventAllocator allocator) { + defaultImpl.setEventAllocator(allocator); + } + + @Override + public XMLEventAllocator getEventAllocator() { + return defaultImpl.getEventAllocator(); + } + +} diff --git a/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/DefaultFactoryWrapperTest/xmlwrapperprovider/xwp/XMLOutputFactoryWrapper.java b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/DefaultFactoryWrapperTest/xmlwrapperprovider/xwp/XMLOutputFactoryWrapper.java new file mode 100644 index 00000000000..9ebcc2937b5 --- /dev/null +++ b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/DefaultFactoryWrapperTest/xmlwrapperprovider/xwp/XMLOutputFactoryWrapper.java @@ -0,0 +1,95 @@ +/* + * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package xwp; + +import java.io.OutputStream; +import java.io.Writer; + +import javax.xml.stream.XMLEventWriter; +import javax.xml.stream.XMLOutputFactory; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamWriter; +import javax.xml.transform.Result; + +public class XMLOutputFactoryWrapper extends XMLOutputFactory { + private XMLOutputFactory defaultImpl = XMLOutputFactory.newDefaultFactory(); + + @Override + public XMLStreamWriter createXMLStreamWriter(Writer stream) throws XMLStreamException { + return defaultImpl.createXMLStreamWriter(stream); + } + + @Override + public XMLStreamWriter createXMLStreamWriter(OutputStream stream) throws XMLStreamException { + return defaultImpl.createXMLStreamWriter(stream); + } + + @Override + public XMLStreamWriter createXMLStreamWriter(OutputStream stream, String encoding) + throws XMLStreamException { + return defaultImpl.createXMLStreamWriter(stream, encoding); + } + + @Override + public XMLStreamWriter createXMLStreamWriter(Result result) throws XMLStreamException { + return defaultImpl.createXMLStreamWriter(result); + } + + @Override + public XMLEventWriter createXMLEventWriter(Result result) throws XMLStreamException { + return defaultImpl.createXMLEventWriter(result); + } + + @Override + public XMLEventWriter createXMLEventWriter(OutputStream stream) throws XMLStreamException { + return defaultImpl.createXMLEventWriter(stream); + } + + @Override + public XMLEventWriter createXMLEventWriter(OutputStream stream, String encoding) + throws XMLStreamException { + return defaultImpl.createXMLEventWriter(stream, encoding); + } + + @Override + public XMLEventWriter createXMLEventWriter(Writer stream) throws XMLStreamException { + return defaultImpl.createXMLEventWriter(stream); + } + + @Override + public void setProperty(String name, Object value) throws IllegalArgumentException { + defaultImpl.setProperty(name, value); + } + + @Override + public Object getProperty(String name) throws IllegalArgumentException { + return defaultImpl.getProperty(name); + } + + @Override + public boolean isPropertySupported(String name) { + return defaultImpl.isPropertySupported(name); + } + +} diff --git a/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/DefaultFactoryWrapperTest/xmlwrapperprovider/xwp/XPathFactoryWrapper.java b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/DefaultFactoryWrapperTest/xmlwrapperprovider/xwp/XPathFactoryWrapper.java new file mode 100644 index 00000000000..7c9f0a9e19c --- /dev/null +++ b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/DefaultFactoryWrapperTest/xmlwrapperprovider/xwp/XPathFactoryWrapper.java @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package xwp; + +import javax.xml.xpath.XPath; +import javax.xml.xpath.XPathFactory; +import javax.xml.xpath.XPathFactoryConfigurationException; +import javax.xml.xpath.XPathFunctionResolver; +import javax.xml.xpath.XPathVariableResolver; + +public class XPathFactoryWrapper extends XPathFactory { + private XPathFactory defaultImpl = XPathFactory.newDefaultInstance(); + + @Override + public boolean isObjectModelSupported(String objectModel) { + return defaultImpl.isObjectModelSupported(objectModel); + } + + @Override + public void setFeature(String name, boolean value) throws XPathFactoryConfigurationException { + defaultImpl.setFeature(name, value); + } + + @Override + public boolean getFeature(String name) throws XPathFactoryConfigurationException { + return defaultImpl.getFeature(name); + } + + @Override + public void setXPathVariableResolver(XPathVariableResolver resolver) { + defaultImpl.setXPathVariableResolver(resolver); + } + + @Override + public void setXPathFunctionResolver(XPathFunctionResolver resolver) { + defaultImpl.setXPathFunctionResolver(resolver); + } + + @Override + public XPath newXPath() { + return defaultImpl.newXPath(); + } + +} diff --git a/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/unnamed/Main.java b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/unnamed/Main.java index ee3e3e004d5..35d210369b2 100644 --- a/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/unnamed/Main.java +++ b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/unnamed/Main.java @@ -23,6 +23,7 @@ import static javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI; +import java.lang.module.ModuleDescriptor.Provides; import java.lang.reflect.Layer; import java.lang.reflect.Module; import java.util.Arrays; @@ -48,7 +49,8 @@ public class Main { .map(xmlProviderName -> Layer.boot().findModule(xmlProviderName).get()) .mapToLong( // services provided by the implementation in provider module - provider -> provider.getDescriptor().provides().keySet().stream() + provider -> provider.getDescriptor().provides().stream() + .map(Provides::service) .filter(serviceName -> { allServices.remove(serviceName); // remove service provided by // customized module from allServices diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug8167340_1-0.xml b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug8167340_1-0.xml new file mode 100644 index 00000000000..5ac75d2f99b --- /dev/null +++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug8167340_1-0.xml @@ -0,0 +1,9 @@ + + + +NCE00ZZ +NC100ZZ +NCE60ZZ +TUFQHR1RRh0fU1RMHENPTR1NVUNSTTFBH1QcQVRSHR1IRUFERVJJRB8yMTA3NTgxMjkyNjU0NjI0MmE5HEJMQh0xMTU2NB1UHVBBUlQxDQoqKlBBU1NFTkdFUiBOQU1FIExJU1QqKg0KTFAvUUYxLzIxU0VQDQpTWUREWEINCjAwMSAgMDFUUkFKUkZWSy9WQldLVlVOUCBNOEZQMzQgRiAgSVggMjBTRVAgSERRMUYgICAgIA0KMDAyICAwMVVTRUlFSk5KL0VFQVpZWEdUIE04R1dKTCBGICBJWCAyMFNFUCBIRFExRiAgICAgDQowMDMgIDAyV0lMS0lOUy9KVURJIE1SUyAgN1FKUFhVIEEgIEhLIDE5REVDIFNZRFFGMDhBQSANCjAwNCAgMDJXSUxLSU5TL1BFVEVSIERSICA3UUpQWFUgQSAgSEsgMTlERUMgU1lEUUYwOEFBIA0KMDA1ICowMUxJTk5FVFQvTEVBTk5FTVJTIDM4OTkzNCBDICBISyAwNUFQUiBEWEJFSyAgICAgDQowMDYgIDAxREFWSUVTL0pFTk5JRkVSTVIgMkNNMjNOIEkgIEhLIDEzTUFSIFNXSTFHICAgICANCjAwNyAgMDJHT1VMT1BPVUxPUy9NRUxJUyAzQzhWT08gSSAgSEsgMThNQVIgU1lEUUYwOFdXIA0KMDA4ICAwMkdPVUxPUE9VTE9TL1NBTSBNIDNDOFZPTyBJICBISyAxOE1BUiBTWURRRjA4V1cgDQowMDkgIDAxTUFZRklFTEQvUkFZTU9ORCAgOEgyR0I0IEkgIEhLIDA3SkFOIFNZREE4MzIzNiANCjAxMCAgMDJNVVJSQVkvS0FUSEVSSU5FTSA2OVNWQzIgSSAgSEsgMTBERUMgU1dJMUcgICAgIA0KMDExICAwMk9IQVJFL0pBTkVNUyAgICAgIDY5U1ZDMiBJICBISyAxMERFQyBTV0kxRyAgICAgDQowMTIgIDAxUEVSS0lOUy9UUkFDRVkgTUkgWlNWQ0JIIEkgIEhLIDE4RkVCIE1FTFFGMDMwMyANCjAxMyAgMDFST0RSSUdVRVovTUFSSUEgTSA2Nlo0NlggSSAgSEsgMDdERUMgTUVMVEIzMTg2IA0KMDE0ICAwMVNFRFdJQ0svVklDVE9SSUEgIDJIWDk2QyBJICBISyAwMk1BUiBTWURRRjA4QUEgDQowMTUgIDAxRkVIRVIvR0VPUkdFIE1SICAgNTkzRjdQIFQgIEhLIDE2Tk9WIEhCQVFGMDMwMiANCjAxNiAgMDJXSEVFTEFIQU4vSEVMRU5NUiBaTktLTlggVCAgSEsgMTVGRUIgU1dJMUcgICAgIA0KMDE3ICAwMldIRUVMQUhBTi9QQVRSSUNLIFpOS0tOWCBUICBISyAxNUZFQiBTV0kxRyAgICAgDQowMTggIDAyR1JJRkZJTi9MQVVSQU1TICAgNFhUNFFZIFMgIEhLIDIxT0NUIFNXSTFHICAgICANCjAxOSAgMDJSRVlOT0xEUy9OSUNPTEFNUyA0WFQ0UVkgUyAgSEsgMjFPQ1QgU1dJMUcgICAgIA0KMDIwICAwMVJPQkVSVFNPTi9KT0hOQ0xBIDQ2M1ZZTyBTICBISyAyMkFQUiBTV0kxRyAgICAgDQowMjEgKjAxU0NIVVNDSEtFL0NIUklTVEkgNUtUWTVSIFMgIEhLIDAyTk9WIERYQkVLICAgICANCjAyMiAqMDJCVUVTQ0hFUi9JTkVTTVJTICAyUERLMkMgUSAgSEsgMDZNQVIgRFhCRUsgICAgIA0KMDIzICowMkxPSE1BTk4vTUFUVEhJQVNNIDJQREsyQyBRICBISyAwNk1BUiBEWEJFSyAgICAgDQowMjQgIDAyQUNDQVJESS9QQU9MTyBNUiAgNDc4VVhVIE8gIEhLIDAyTUFSIFJPTUlHMjIwQiANCjAyNSAgMDJBU0hCWS9TQU1BTlRIQSBEUiAzVVJGSjkgTyAgSEsgMjlNQVIgU1lEUUYwOFZWIA0KMDI2ICAwMkJFTkpBTUlOL0FMT05NUiAgIDNZVVJRWCBPICBISyAzMU1BUiBTV0kxRyAgICAgDQowMjcgIDAyQkVOSkFNSU4vSkVTU0lDQU0gM1lVUlFYIE8gIEhLIDMxTUFSIFNXSTFHICAgICANCjAyOCAgMDJCT0JJUy9NRVJMSU5EQURSICBaMzNMV1MgTyAgSEsgMjRGRUIgU1dJMUcgICAgIA0KMDI5ICAwMUJPVFRPTUxFWS9QQVVMIE1SIFlYSjJVQiBPICBISyAwMUZFQiBTWURRRjA4QUEgDQowMzAgIDA1Q0VQVVMvRVZJRSBNSVNTICAgMlVSQTdMIE8gIEhLIDA5TUFSIFNZRFFGMDhBQSANCjAzMSAgMDVDRVBVUy9KT0hOIE1SICAgICAyVVJBN0wgTyAgSEsgMDlNQVIgU1lEUUYwOEFBIA0KMDMyICAwNUNFUFVTL0xVS0EgTVIgICAgIDJVUkE3TCBPICBISyAwOU1BUiBTWURRRjA4QUEgDQowMzMgIDA1Q0VQVVMvTUlMQSBNSVNTICAgMlVSQTdMIE8gIEhLIDA5TUFSIFNZRFFGMDhBQSANCjAzNCAgMDFDSFJJU1RPUEhFUi9BWUFOVCAzOE9STzcgTyAgSEsgMDVBUFIgU1lEUUYwOEFBIA0KMDM1ICAwMUQgU0lMVkEvTUlOT0xJIE1TIDNaSkhENCBPICBISyAzMU1BUiBTWURRRjA4V1cgDQowMzYgIDAyR1JFQ08vTUlDSEVMQSBNUlMgNDc4VVhVIE8gIEhLIDAyTUFSIFJPTUlHMjIwQiANCjAzNyAgMDVISUxMUy9BTUVMSUEgTUlTUyBZRFZPRlQgTyAgSEsgMjFKQU4gU1lEUUYwOEFBIA0KMDM4ICAwNUhJTExTL0hBUlJJU09OIE1TIFlEVk9GVCBPICBISyAyMUpBTiBTWURRRjA4QUEgDQowMzkgIDA1SElMTFMvTUVMSU5EQSBNUlMgWURWT0ZUIE8gIEhLIDIxSkFOIFNZRFFGMDhBQSANCjA0MCAgMDVISUxMUy9NSUNIQUVMIE1SICBZRFZPRlQgTyAgSEsgMjFKQU4gU1lEUUYwOEFBIA0KMDQxICAwNUhJTExTL1JVQlkgTUlTUyAgIFlEVk9GVCBPICBISyAyMUpBTiBTWURRRjA4QUEgDQowNDIgIDA0SFVHSEVTL0NIUklTVE9QSEUgWVJRSVRHIE8gIEhLIDI4SkFOIFNZRFFGMDhBQSANCjA0MyAgMDRIVUdIRVMvREFWSUQgTVIgICBZUlFJVEcgTyAgSEsgMjhKQU4gU1lEUUYwOEFBIA0KMDQ0ICAwNEhVR0hFUy9KRU5OSUZFUiBNIFlSUUlURyBPICBISyAyOEpBTiBTWURRRjA4QUEgDQowNDUgIDA0SFVHSEVTL0tBVEhFUklORSAgWVJRSVRHIE8gIEhLIDI4SkFOIFNZRFFGMDhBQSANCjA0NiAgMDFJUk9OUy9KRUFORVRURSBNUyBaU1ZEV0ogTyAgSEsgMThGRUIgTUVMUUYwMzAzIA0KMDQ3ICowM0pFU1NJTUFOL0xJTFlNSVNTIDNUMkNaWCBPICBISyAyOE1BUiBEWEJFSyAgICAgDQowNDggKjAzSkVTU0lNQU4vTUFUSUxEQU0gM1QyQ1pYIE8gIEhLIDI4TUFSIERYQkVLICAgICANCjA0OSAqMDNKRVNTSU1BTi9TQVJBSE1SUyAzVDJDWlggTyAgSEsgMjhNQVIgRFhCRUsgICAgIA0KMDUwICAwM0tBTExPR0hMSUFOL0FSU0hPIDNZVTNCSyBPICBISyAwMUFQUiBTV0kxRyAgICAgDQowNTEgIDAzS0FMTE9HSExJQU4vR0FSRUggM1lVM0JLIE8gIEhLIDAxQVBSIFNXSTFHICAgICANCjA1MiAgMDNLQUxMT0dITElBTi9WSUtFTiAzWVUzQksgTyAgSEsgMDFBUFIgU1dJMUcgICAgIA0KMDUzICAwMktBTE5JTlMvUkVJTklTTVIgIFozM0xXUyBPICBISyAyNEZFQiBTV0kxRyAgICAgDQowNTQgIDAyS0VBTkUvRU1NQVNIQVJPTk0gWVBPQ1AzIE8gIEhLIDI4SkFOIFNXSTFHICAgICANCjA1NSAgMDJLRUFORS9TQVJBQUxMSVNPTiBZUE9DUDMgTyAgSEsgMjhKQU4gU1dJMUcgICAgIA0KMDU2ICAwMktJTkcvV0lMTElBTSBEUiAgIDNVUkZKOSBPICBISyAyOU1BUiBTWURRRjA4VlYgDQowNTcgIDAxS1VSVUtVTEFTVVJJWUEvTkEgMzQzVk1EIE8gIEhLIDAyQVBSIFNZRFFGMDhXVyANCjA1OCAqMDRNRVJSSVRUL0FOVEhPTllKQSA4TUZaVUggTyAgSEsgMTFKQU4gRFhCRUsgICAgIA0KMDU5ICowNE1FUlJJVFQvRUxMQVJPU0VNIDhNRlpVSCBPICBISyAxMUpBTiBEWEJFSyAgICAgDQowNjAgKjA0TUVSUklUVC9IQU5OQUhFVkUgOE1GWlVIIE8gIEhLIDExSkFOIERYQkVLICAgICANCjA2MSAgMDJNRVlSSUNLL01FTEFOSUUgTSBZOEU2S1IgTyAgSEsgMDZGRUIgU1lEUUYwOFVVIA0KMDYyICAwMk1FWVJJQ0svU0lNT04gTVIgIFk4RTZLUiBPICBISyAwNkZFQiBTWURRRjA4VVUgDQowNjMgIDAxTU9SUklTL1NURVBIQU5JRSAgMkJNUVA3IE8gIEhLIDI4RkVCIFNZRFFGMDhXVyANCjA2NCAqMDNOSUNIT0xTT04vQkVOSkFNSSAzU1lYQkIgTyAgSEsgMjhNQVIgRFhCRUsgICAgIA0KMDY1ICowM05JQ0hPTFNPTi9KQU1FU1JPIDNTWVhCQiBPICBISyAyOE1BUiBEWEJFSyAgICAgDQowNjYgKjAzTklDSE9MU09OL0tJUlNUWUwgM1NZWEJCIE8gIEhLIDI4TUFSIERYQkVLICAgICANCjA2NyAqMDRQRVJWQU4vU1VTQU5KQU5KQSA4TUZaVUggTyAgSEsgMTFKQU4gRFhCRUsgICAgIA0KMDY4ICAwMVNQRUFSUy9TQUNISUtPIE1SIDdIRklOQyBPICBISyAxM0RFQyBTWURRRjA4QUEgDQowNjkgIDA1VEFZTE9SL0FOTkVUVEUgTVMgMlVSQTdMIE8gIEhLIDA5TUFSIFNZRFFGMDhBQSANCjA3MCAgMDJCUkFETEVZL0FORFJFVyBNUiAzM0NFVVIgUCAgSEsgMDRPQ1QgU1lEUUYwOFJSIA0KMDcxICAwMkJSQURMRVkvQkVMSU5EQSBNIDMzQ0VVUiBQICBISyAwNE9DVCBTWURRRjA4UlIgDQowNzIgIDAySk9TRVBIL01JQ0hBRUwgTVIgWks3MzlPIFUgIEhLIDE0RkVCIE1FTFFGMDMwMyANCjA3MyAgMDJPQ09OTk9SL0RFSVJEUkUgTSBaSzczOU8gVSAgSEsgMTRGRUIgTUVMUUYwMzAzIA0KMDc0ICAwMkJFTkpBTUlOL0pPTkFUSEFOIDNYOTNYVSBYICBISyAzMU1BUiBTWURRRjA4VFQgDQowNzUgIDAyQkVOSkFNSU4vTElTQSBNUlMgM1g5M1hVIFggIEhLIDMxTUFSIFNZRFFGMDhUVCANCjA3NiAgMDNET05FTEFJTi9SRUJFQ0NBICAzV1BPT0kgWCAgSEsgMzBNQVIgU1lEUUYwOFJSIA0KMDc3ICAwM0RPTkVMSUFOL0pVTElBIE1JIDNXUE9PSSBYICBISyAzME1BUiBTWURRRjA4UlIgDQowNzggIDAzR09PRE1BTi9MSU5EWSBNSVMgM1dQT09JIFggIEhLIDMwTUFSIFNZRFFGMDhSUiANCjA3OSAgMDNNQU5TRklFTEQvSE9MTFkgTSA0NUJWUDIgWCAgSEsgMjFBUFIgU1lEUUYwOFVVIA0KMDgwICAwM01BTlNGSUVMRC9TVEVWRU4gIDQ1QlZQMiBYICBISyAyMUFQUiBTWURRRjA4VVUgDQowODEgIDAzTk9STUFOL0NBUk9MWU4gTUkgNDVCVlAyIFggIEhLIDIxQVBSIFNZRFFGMDhVVSANCjA4MiAgMDFGRUhFUi9DSFJJU1RJTkUgTSA1OTNERkcgWiAgSEsgMTZOT1YgSEJBUUYwMzAyIA0KU1lETEhSDQowODMgIDAxRE9PRlVTL0EgICAgICAgICAgNVA2QUVXIEMgIEhLIDI2SlVMIFNXSTFHICAgICANCjA4NCAgMDFOSUNPTEwvS0FUSEVSSU5FRCA1RE5aRVYgRCAgSEsgMjZBUFIgU1dJMUcgICAgIA0KMDg1ICAwMVNDT0xZRVIvUklDSEFSRE1SIDQzTkNUWSBEICBISyAyNkFQUiBTV0kxRyAgICAgDQowODYgIDAyQU5ERVJTT04vUkVCRUNDQSAgN0FZTzVaIEkgIEhLIDA4REVDIFNZRFFGMDhCQiANCjA4NyAgMDJCQVJXSUNLL0xJTkRBIFBSTyBZVVNPNUQgSSAgSEsgMzFKQU4gU1lEUUYwOFVVIA0KMDg4ICAwMkJBUldJQ0svT0xXWU4gTVMgIFlVU081RCBJICBISyAzMUpBTiBTWURRRjA4VVUgDQowODkgIDAyQkVOTkVUVC9BTEVYQU5ERVIgN0FZTzVaIEkgIEhLIDA4REVDIFNZRFFGMDhCQiANCjA5MCAgMDJCRU5ORVRUL0RBVklEIE1SICA3QkZGTjQgSSAgSEsgMDlERUMgU1lEUUYwOEJCIA0KMDkxICAwMkRBVy9MRVNMRVkgTVMgICAgIDdCRkZONCBJICBISyAwOURFQyBTWURRRjA4QkIgDQowOTIgIDAxSFVOVC9BTElTT04gRFIgICAgNEFFTFpCIEkgIEhLIDA1QVBSIFNZRFFGMDhVVSANCjA5MyAgMDFLT1NUT1BPVUxPUy9FTElaQSAzS1hUQ0kgSSAgSEsgMDhBUFIgSERRMVMgICAgIA0KMDk0ICAwNUxFV1RIV0FJVEUvQU5OQUJFIDNPMkFVOCBJICBISyAyNE1BUiBTWURRRjA4QUEgDQowOTUgIDA1TEVXVEhXQUlURS9CUkVUVCAgM08yQVU4IEkgIEhLIDI0TUFSIFNZRFFGMDhBQSANCjA5NiAgMDVMRVdUSFdBSVRFL0NIQVJMSSAzTzJBVTggSSAgSEsgMjRNQVIgU1lEUUYwOEFBIA0KMDk3ICAwNUxFV1RIV0FJVEUvTElTQSBNIDNPMkFVOCBJICBISyAyNE1BUiBTWURRRjA4QUEgDQowOTggIDA1TEVXVEhXQUlURS9NQURESUUgM08yQVU4IEkgIEhLIDI0TUFSIFNZRFFGMDhBQSANCjA5OSAgMDFPQlJJRU4vTUFSS01SICAgICAyTE1NMlkgSSAgSEsgMDRNQVIgU1dJMUcgICAgIA0KMTAwICAwMVNDT0xZRVIvUklDSEFSRCBNIDVFV1RBRyBJICBISyAyNkFQUiBTWURSSDMxMDAgDQoxMDEgIDAxU01BUlQvTklDSE9MQVMgTVIgN0RMSUlQIEkgIEhLIDA1RkVCIE1FTFRCMzE0NiANCjEwMiAgMDFDQU1QQkVMTC9LSU1NUlMgICA4T0JBOFUgUiAgSEsgMTJKQU4gU1dJMUcgICAgIA0KMTAzICAwMkFJVEtFTi9SSE9OQU1SUyAgIDI2WThOTCBUICBISyAxNU1BUiBTV0kxRyAgICAgDQoxMDQgIDAyQUlUS0VOL1JPQkVSVE1SICAgMjZZOE5MIFQgIEhLIDE1TUFSIFNXSTFHICAgICANCjEwNSAgMDFDSElLTy9UQU5ZQSBNSVNTICAzOU1WVU0gVCAgSEsgMDVBUFIgSEJBUUYwMzAyIA0KMTA2ICAwMUdSQUhBTS9UT0REIE1SICAgIFk2V001VCBUICBISyAwN0ZFQiBNRUxUQjMxNDYgDQoxMDcgIDAxTExFV0VMTFlOIEpPTkVTL0cgNUJSU0dEIFQgIEhLIDI1QVBSIFNZRFFGMDhXVyANCjEwOCAgMDFQRURFTi9FTElTQUJFVEhNQSA0UVFIRVIgVCAgSEsgMTRBUFIgU1dJMUcgICAgIA0KMTA5ICAwMUNBUlRFUi9NSUNIQUVMIE1SIDVDS0M5OCBTICBISyAyNUFQUiBMT05VMTIxMDIgDQoxMTAgIDAyQ0xBUksvU1VTQU4gTVJTICAgM1k5TUpVIFMgIEhLIDMxTUFSIFNZRFFGMDhWViANCjExMSAgMDJDTEFSSy9URVJFTkNFIE1SICAzWTlNSlUgUyAgSEsgMzFNQVIgU1lEUUYwOFZWIA0KMTEyICAwMkNVVEhCRVJUL0pBQ1FVRUxJIDJUMktFQiBTICBISyAwOE1BUiBTV0kxRyAgICAgDQoxMTMgIDAyQ1VUSEJFUlQvTkVJTE1SICAgMlQyS0VCIFMgIEhLIDA4TUFSIFNXSTFHICAgICANCjExNCAgMDFGRVJSQVJJL0NBUk9MSU5FICBaU1E0QkYgUyAgSEsgMThGRUIgUEFSUUYwOFdXIA0KMTE1ICAwMUhBU1NBTEwvTUFSSyBNUiAgIDRBRElORiBTICBISyAwNUFQUiBTWURRRjA4VVUgDQoxMTYgIDAxTE9ZVEVTVC9NRU1CRVIgTVIgNU8yRUVPIFMgIEhLIDA3SlVMIFNZRFFGMDhCQiANCjExNyAgMDJOT1JXT09EL1BBTUVMQU1SUyBaUjZTV1cgUyAgSEsgMThGRUIgU1dJMUcgICAgIA0KMTE4ICAwMk5PUldPT0QvUlVTU0VMTE1SIFpSNlNXVyBTICBISyAxOEZFQiBTV0kxRyAgICAgDQoxMTkgIDAxTEVBVEhFUi9BTVkgTUlTUyAgWjdQNUtDIE4gIEhLIDI1RkVCIExPTlFGMDhBQSANCjEyMCAgMDJBU0hUT04vSk9TSFVBICAgICA1S1NLODggUSAgSEsgMjlBUFIgSERRMVMgICAgIA0KMTIxICAwMUFTSFRPTi9NQVJLIExBV1JFIDVLQ1lIUiBRICBISyAyOUFQUiBIRFExUyAgICAgDQoxMjIgIDAyQVNIVE9OL1RPQlkgICAgICAgNUtTSzg4IFEgIEhLIDI5QVBSIEhEUTFTICAgICANCjEyMyAgMDVCQVJOVU0vQ0hBUkxFUyBNUiAzRkUzNEcgTyAgSEsgMThNQVIgU1lEUUYwOFdXIA0KMTI0ICAwNUJBUk5VTS9DSFJJUyBNUiAgIDNGRTM0RyBPICBISyAxOE1BUiBTWURRRjA4V1cgDQoxMjUgIDA1QkFSTlVNL0dFT1JHSUUgTVIgM0ZFMzRHIE8gIEhLIDE4TUFSIFNZRFFGMDhXVyANCjEyNiAgMDVCQVJOVU0vSEFSUlkgTVIgICAzRkUzNEcgTyAgSEsgMThNQVIgU1lEUUYwOFdXIA0KMTI3ICAwNUJBUk5VTS9NQVggTVIgICAgIDNGRTM0RyBPICBISyAxOE1BUiBTWURRRjA4V1cgDQoxMjggIDAxQk9PS0VSL0NIUklTVElORU0gWTY0Uk9UIE8gIEhLIDA1RkVCIFNXSTFHICAgICANCjEyOSAgMDJCUkFOREVOQlVSR0VSL0FNWSAyM1RMNUYgTyAgSEsgMTNNQVIgTUVMUUYwMzAzIA0KMTMwICAwMkJSQU5ERU5CVVJHRVIvSkVTIDIzVEw1RiBPICBISyAxM01BUiBNRUxRRjAzMDMgDQoxMzEgIDAyQ0FDSEEvRVJJQ0tTT04gTVIgMk5NQVlFIE8gIEhLIDA1TUFSIFNZRFRCMzI0OSANCjEzMiAgMDJDQUNIQS9ST1NFTExJRSBNUiAyTk1BWUUgTyAgSEsgMDVNQVIgU1lEVEIzMjQ5IA0KMTMzICAwNkVTUElSSVRVL0ZFUk5BTkRPIDJLTzZHTyBPICBISyAwM01BUiBTWURUQjMyNDkgDQoxMzQgIDA2RVNQSVJJVFUvTE9MSVRBIE0gMktPNkdPIE8gIEhLIDAzTUFSIFNZRFRCMzI0OSANCjEzNSAgMDRGT1JNSUNBL0FOVEhPTllNUiA2QVhEVkcgTyAgSEsgMTlOT1YgU1dJMUcgICAgIA0KMTM2ICAwNEZPUk1JQ0EvU1VTQU5KRUFOIDZBWERWRyBPICBISyAxOU5PViBTV0kxRyAgICAgDQoxMzcgIDAyR0FSTkhBTS9CUklESUUgTUkgMjlNSjJNIE8gIEhLIDE2TUFSIExPTlUxMjhXUCANCjEzOCAgMDRKT0hOL0FZREVOIERPVUdMQSA0MkNTN0cgTyAgSEsgMTlBUFIgU1lEUUYwOEFBIA0KMTM5ICAwNEpPSE4vR0VPUkdJQSBMQVVSIDQyQ1M3RyBPICBISyAxOUFQUiBTWURRRjA4QUEgDQoxNDAgIDA0Sk9ITi9OSUNIT0xBUyBKQU0gNDJDUzdHIE8gIEhLIDE5QVBSIFNZRFFGMDhBQSANCjE0MSAgMDRKT0hOL1NBTUFOVEhBIEpBTiA0MkNTN0cgTyAgSEsgMTlBUFIgU1lEUUYwOEFBIA0KMTQyICAwMkxFVkkvQ0hSSVNUT1BIRVIgIFlBRkxHSCBPICBISyAxOUpBTiBTWURUQjMyMTkgDQoxNDMgIDAyTEVWSS9LRVJSWSBNUlMgICAgWUFGTEdIIE8gIEhLIDE5SkFOIFNZRFRCMzIxOSANCjE0NCAgMDNNQUNLUy9DQVRIRVJJTkVNUyAyQVM1REUgTyAgSEsgMjdGRUIgU1dJMUcgICAgIA0KMTQ1ICAwM01BQ0tTL0pVRElUSE1TICAgIDJBUzVERSBPICBISyAyN0ZFQiBTV0kxRyAgICAgDQoxNDYgIDA0TUNDUkVESUUvQ0hFTFNFQSAgWU5IT1BKIE8gIEhLIDI3SkFOIFNZRFRCMzIxOSANCjE0NyAgMDRNQ0NSRURJRS9DUkFJRyBNUiBZTkhPUEogTyAgSEsgMjdKQU4gU1lEVEIzMjE5IA0KMTQ4ICAwNE1DQ1JFRElFL1NURVBIQU5JIFlOSE9QSiBPICBISyAyN0pBTiBTWURUQjMyMTkgDQoxNDkgIDA0TUNDUkVESUUvVEhPTUFTIE0gWU5IT1BKIE8gIEhLIDI3SkFOIFNZRFRCMzIxOSANCjE1MCAgMDZNT0pJQ0EvRUxBSU5FIE1SUyAyS082R08gTyAgSEsgMDNNQVIgU1lEVEIzMjQ5IA0KMTUxICAwNE1VUlBIWS9BSURBTk1SICAgIDZBWERWRyBPICBISyAxOU5PViBTV0kxRyAgICAgDQoxNTIgIDA0TVVSUEhZL0pFTk5JRkVSQU4gNkFYRFZHIE8gIEhLIDE5Tk9WIFNXSTFHICAgICANCjE1MyAgMDZORVJBL1NZTFZJQSBNUyAgICAyS082R08gTyAgSEsgMDNNQVIgU1lEVEIzMjQ5IA0KMTU0ICAwMU8gTkVJTEwvU1RFUEhBTklFIDJJWUNCVCBPICBISyAwMk1BUiBMT05RRjA4V1cgDQoxNTUgIDAyUEFMTUVSL0pBWk1JTiBNSVMgMjlNSjJNIE8gIEhLIDE2TUFSIExPTlUxMjhXUCANCjE1NiAgMDZTQU4gSlVBTi9BUVVJTElOQSAyS082R08gTyAgSEsgMDNNQVIgU1lEVEIzMjQ5IA0KMTU3ICAwMlNIQURFWS9HQVJSWU1SICAgIFlVSkFETiBPICBISyAwMUZFQiBTV0kxRyAgICAgDQoxNTggIDAxU0hFUklEQU4vU0FSQSBNSVMgMzRUQ1lVIE8gIEhLIDAyQVBSIFNZRFFGMDhXVyANCjE1OSAgMDNTVUxMSVZBTi9DTEFJUkVNUyAyQVM1REUgTyAgSEsgMjdGRUIgU1dJMUcgICAgIA0KMTYwICAwMlRIT01BUy9LQVRIRVJJTkVNIFlVSkFETiBPICBISyAwMUZFQiBTV0kxRyAgICAgDQoxNjEgIDAxVFJFRFJFQS9HQUlMTVMgICAgMzg1VDk2IE8gIEhLIDA1QVBSIFNXSTFHICAgICANCjE2MiAgMDZWSVNUQS9BTkdFTElUQSBNUiAyS082R08gTyAgSEsgMDNNQVIgU1lEVEIzMjQ5IA0KMTYzICAwMldFU1RMQUtFL0NIUklTVE9QIDdaSTZBRCBPICBISyAyNkRFQyBMT05VMTI4VVAgDQoxNjQgIDAyV0VTVExBS0UvSkFORVQgTVIgN1pJNkFEIE8gIEhLIDI2REVDIExPTlUxMjhVUCANCjE2NUcgMDIvMDBWRVJTQVJJICAgICAgICAzT0k4TUsgRyAgSEsgMjRNQVIgUk9NUUYwMzAxIA0KMTY2RyAyMS8wMFZFUlNBUkkgICAgICAgIDdJN0JTUiBHICBISyAxNUpBTiBST01RRjAxMjAgDQoxNjcgIDAyQkFJUkQvRklPTkEgICAgICAgMkpVN05OIFAgIEhLIDAzTUFSIEhEUUFBICAgICANCjE2OCAgMDJDVVJUSVMvUkVCRUNDQSAgICAySlU3Tk4gUCAgSEsgMDNNQVIgSERRQUEgICAgIA0KMTY5ICAwNEhBUkFQSU4vRElBTkUgTVJTIDVHMkxKSiBVICBISyAzMU9DVCBNRUxRRjAzMDMgDQoxNzAgIDA0SEFSQVBJTi9FRFlOIE1SICAgNUcyTEpKIFUgIEhLIDMxT0NUIE1FTFFGMDMwMyANCjE3MSAgMDRIQVJBUElOL0tBSVlBIE1JUyA1RzJMSkogVSAgSEsgMzFPQ1QgTUVMUUYwMzAzIA0KMTcyICAwNEhBUkFQSU4vUEFVTCBNUiAgIDVHMkxKSiBVICBISyAzMU9DVCBNRUxRRjAzMDMgDQoxNzMgIDAxQlJBTkRFTkJVUkdFUi9HQVYgMjNUTEpMIFggIEhLIDEzTUFSIE1FTFFGMDMwMyANCjE3NCAgMDFCVVJHRVNTIE9SVE9OL1NVUyBZRkhMTlkgWCAgSEsgMjJKQU4gU1lEUUYwOFdXIA0KMTc1ICAwMUZBTExPTi9HRU9SR0lBIE1JIFpIR0U0UiBYICBISyAxMUZFQiBTWURRRjA4UlIgDQoxNzYgIDAyS0lFTFkvQU5HRUxBIE1TICAgWkI2SDlWIFggIEhLIDA5RkVCIFNZRFFGMDhXVyANCjE3NyAgMDJLSU5EUkVEL1NJTU9OIE1SICA3UVRXVzggWCAgSEsgMTlERUMgU1lEUUYwOFJSIA0KMTc4ICAwMktPVkFDSC9KVUxJRSBNUyAgIDdRVFdXOCBYICBISyAxOURFQyBTWURRRjA4UlIgDQoxNzkgIDAyTUNDUkVBL1NPUEhJRSBNSVMgWkI2SDlWIFggIEhLIDA5RkVCIFNZRFFGMDhXVyANCjE4MCAgMDFXSUxTT04vQU5HRUxBIE1SUyAzV0hVN1UgWCAgSEsgMzBNQVIgQUtMUUYwOFBQIA0KMTgxICAwMkhBUkFQSU4vTkFUSEFOIE1SIDVHMk1UMiBaICBISyAzMU9DVCBNRUxRRjAzMDMgDQoxODIgIDAySEFSQVBJTi9UWUxFUiBNUiAgNUcyTVQyIFogIEhLIDMxT0NUIE1FTFFGMDMwMyANCjE4MyAgMDFIT0xFL0pJTEwgTVMgICAgICA1WDlWWEIgWiAgSEsgMTBOT1YgU1lEUUYwOFJSIA0KRFhCTEhSDQoxODQgIDAyR0VEREVTL0pBTkVUIE1SUyAgMzg0QkRHIFMgIEhLIDA3QVBSIENIQ0hGMzEwNSANCjE4NSAgMDJHRURERVMvUk9XRU4gTVIgICAzODRCREcgUyAgSEsgMDdBUFIgQ0hDSEYzMTA1IA0KMTg2ICowMU1PT05FU0FXTVkvQVBQTEFNIDJFSU01SyBOICBISyAwOE1BUiBEWEJFSyAgICAgDQoxODcgKjAyUE9SVEVSL0FNQU5EQSAgICAgMjhEWUNaIE4gIEhLIDE1TUFSIERYQkVLICAgICANCjE4OCAqMDJQT1JURVIvTklDSE9MQVMgICAyOERZQ1ogTiAgSEsgMTVNQVIgRFhCRUsgICAgIA0KMTg5ICowM0VZQVNVL0FTVEVSTVJTICAgIFo5TzNOSCBRICBISyAyNkZFQiBEWEJFSyAgICAgDQoxOTAgKjAzR0VCUkVNSUNIQUVML1NBTVMgWjlPM05IIFEgIEhLIDI2RkVCIERYQkVLICAgICANCjE5MSAqMDNTQU1TT04vRVpSQU1TVFIgICBaOU8zTkggUSAgSEsgMjZGRUIgRFhCRUsgICAgIA0KMTkyICAwMURBTklFTFMvQUJJR0FJTCAgIDRLWFlRQyBPICBISyAxMUFQUiBMT05FRDM4QUEgDQoxOTMgKjAxTUFLL1NVTVlVRU5NUiAgICAgMlU3ODlTIE8gIEhLIDA5TUFSIERYQkVLICAgICANCjE5NCAgMDJNQ0xFQU4vR0FSUllNUiAgICA0S0tESEsgTyAgSEsgMTFBUFIgU1dJMUcgICAgIA0KMTk1ICAwMk1DTEVBTi9TSE9OQU1SUyAgIDRLS0RISyBPICBISyAxMUFQUiBTV0kxRyAgICAgDQoxOTYgKjAyU0VPVy9KSUFOR0xJTk1SICAgWUNDREQ3IE8gIEhLIDIwSkFOIERYQkVLICAgICANCjE5NyAqMDJTRU9XL1pJVElOR01JU1MgICBZQ0NERDcgTyAgSEsgMjBKQU4gRFhCRUsgICAgIA0KMTk4ICowMlNNSVRIL0pBTUVTS0VWSU4gIDROU05OVyBPICBISyAxMkFQUiBEWEJFSyAgICAgDQoxOTkgKjAyU01JVEgvVFJBQ0VZQU5OICAgNE5TTk5XIE8gIEhLIDEyQVBSIERYQkVLICAgICANCjIwMCAqMDFTVVJFU0hLVU1BUi9TVUNISSA0TkRaM0cgTyAgSEsgMTJBUFIgRFhCRUsgICAgIA0KMjAxICowMVRBTi9MSVFJTk1JU1MgICAgIFk3OVk0QSBPICBISyAwNkZFQiBEWEJFSyAgICAgDQoyMDIgIDAyUFVUVEVSUy9BUk5PTERVUyAgM0lVWk00IFAgIEhLIDIxTUFSIEhEUUFBICAgICANCjIwMyAgMDJSSUVMQS9NQVJJQSAgICAgICAzSVVaTTQgUCAgSEsgMjFNQVIgSERRQUEgICAgIA0KMjA0ICAwMkhBUlJJU09OL01BTkRZIE1SIDdWM1pSVyBVICBISyAyM0RFQyBCS0tRRjA4UlIgDQoyMDUgIDAySEFSUklTT04vTklDSE9MQVMgN1YzWlJXIFUgIEhLIDIzREVDIEJLS1FGMDhSUiANCkVORCBPRiBESVNQTEFZHFJORx0dTEkfMRxTVFgdVEJSHEVRTh0xHEVRTh01HFJORx0dTEkfMh8yMTIcRVFOHTIcRFVNHEFUQx0dVG8cQ09NHU5DRTAwWlofVBxBVEMdHVRvHENPTR1OQzEwMFpaH1QcQVRDHR1UbxxDT00dTkNFNjBaWh9UHA== + + \ No newline at end of file diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug8167340_1-1.xml b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug8167340_1-1.xml new file mode 100644 index 00000000000..2cc90b64351 --- /dev/null +++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug8167340_1-1.xml @@ -0,0 +1,9 @@ + + + +NCE00ZZ +NC100ZZ +NCE60ZZ +TUFQHR1RRh0fU1RMHENPTR1NVUNSTTFBH1QcQVRSHR1IRUFERVJJRB8yMTA3NTgxMjkyNjU0NjI0MmE5HEJMQh0xMTU2NB1UHVBBUlQxDQoqKlBBU1NFTkdFUiBOQU1FIExJU1QqKg0KTFAvUUYxLzIxU0VQDQpTWUREWEINCjAwMSAgMDFUUkFKUkZWSy9WQldLVlVOUCBNOEZQMzQgRiAgSVggMjBTRVAgSERRMUYgICAgIA0KMDAyICAwMVVTRUlFSk5KL0VFQVpZWEdUIE04R1dKTCBGICBJWCAyMFNFUCBIRFExRiAgICAgDQowMDMgIDAyV0lMS0lOUy9KVURJIE1SUyAgN1FKUFhVIEEgIEhLIDE5REVDIFNZRFFGMDhBQSANCjAwNCAgMDJXSUxLSU5TL1BFVEVSIERSICA3UUpQWFUgQSAgSEsgMTlERUMgU1lEUUYwOEFBIA0KMDA1ICowMUxJTk5FVFQvTEVBTk5FTVJTIDM4OTkzNCBDICBISyAwNUFQUiBEWEJFSyAgICAgDQowMDYgIDAxREFWSUVTL0pFTk5JRkVSTVIgMkNNMjNOIEkgIEhLIDEzTUFSIFNXSTFHICAgICANCjAwNyAgMDJHT1VMT1BPVUxPUy9NRUxJUyAzQzhWT08gSSAgSEsgMThNQVIgU1lEUUYwOFdXIA0KMDA4ICAwMkdPVUxPUE9VTE9TL1NBTSBNIDNDOFZPTyBJICBISyAxOE1BUiBTWURRRjA4V1cgDQowMDkgIDAxTUFZRklFTEQvUkFZTU9ORCAgOEgyR0I0IEkgIEhLIDA3SkFOIFNZREE4MzIzNiANCjAxMCAgMDJNVVJSQVkvS0FUSEVSSU5FTSA2OVNWQzIgSSAgSEsgMTBERUMgU1dJMUcgICAgIA0KMDExICAwMk9IQVJFL0pBTkVNUyAgICAgIDY5U1ZDMiBJICBISyAxMERFQyBTV0kxRyAgICAgDQowMTIgIDAxUEVSS0lOUy9UUkFDRVkgTUkgWlNWQ0JIIEkgIEhLIDE4RkVCIE1FTFFGMDMwMyANCjAxMyAgMDFST0RSSUdVRVovTUFSSUEgTSA2Nlo0NlggSSAgSEsgMDdERUMgTUVMVEIzMTg2IA0KMDE0ICAwMVNFRFdJQ0svVklDVE9SSUEgIDJIWDk2QyBJICBISyAwMk1BUiBTWURRRjA4QUEgDQowMTUgIDAxRkVIRVIvR0VPUkdFIE1SICAgNTkzRjdQIFQgIEhLIDE2Tk9WIEhCQVFGMDMwMiANCjAxNiAgMDJXSEVFTEFIQU4vSEVMRU5NUiBaTktLTlggVCAgSEsgMTVGRUIgU1dJMUcgICAgIA0KMDE3ICAwMldIRUVMQUhBTi9QQVRSSUNLIFpOS0tOWCBUICBISyAxNUZFQiBTV0kxRyAgICAgDQowMTggIDAyR1JJRkZJTi9MQVVSQU1TICAgNFhUNFFZIFMgIEhLIDIxT0NUIFNXSTFHICAgICANCjAxOSAgMDJSRVlOT0xEUy9OSUNPTEFNUyA0WFQ0UVkgUyAgSEsgMjFPQ1QgU1dJMUcgICAgIA0KMDIwICAwMVJPQkVSVFNPTi9KT0hOQ0xBIDQ2M1ZZTyBTICBISyAyMkFQUiBTV0kxRyAgICAgDQowMjEgKjAxU0NIVVNDSEtFL0NIUklTVEkgNUtUWTVSIFMgIEhLIDAyTk9WIERYQkVLICAgICANCjAyMiAqMDJCVUVTQ0hFUi9JTkVTTVJTICAyUERLMkMgUSAgSEsgMDZNQVIgRFhCRUsgICAgIA0KMDIzICowMkxPSE1BTk4vTUFUVEhJQVNNIDJQREsyQyBRICBISyAwNk1BUiBEWEJFSyAgICAgDQowMjQgIDAyQUNDQVJESS9QQU9MTyBNUiAgNDc4VVhVIE8gIEhLIDAyTUFSIFJPTUlHMjIwQiANCjAyNSAgMDJBU0hCWS9TQU1BTlRIQSBEUiAzVVJGSjkgTyAgSEsgMjlNQVIgU1lEUUYwOFZWIA0KMDI2ICAwMkJFTkpBTUlOL0FMT05NUiAgIDNZVVJRWCBPICBISyAzMU1BUiBTV0kxRyAgICAgDQowMjcgIDAyQkVOSkFNSU4vSkVTU0lDQU0gM1lVUlFYIE8gIEhLIDMxTUFSIFNXSTFHICAgICANCjAyOCAgMDJCT0JJUy9NRVJMSU5EQURSICBaMzNMV1MgTyAgSEsgMjRGRUIgU1dJMUcgICAgIA0KMDI5ICAwMUJPVFRPTUxFWS9QQVVMIE1SIFlYSjJVQiBPICBISyAwMUZFQiBTWURRRjA4QUEgDQowMzAgIDA1Q0VQVVMvRVZJRSBNSVNTICAgMlVSQTdMIE8gIEhLIDA5TUFSIFNZRFFGMDhBQSANCjAzMSAgMDVDRVBVUy9KT0hOIE1SICAgICAyVVJBN0wgTyAgSEsgMDlNQVIgU1lEUUYwOEFBIA0KMDMyICAwNUNFUFVTL0xVS0EgTVIgICAgIDJVUkE3TCBPICBISyAwOU1BUiBTWURRRjA4QUEgDQowMzMgIDA1Q0VQVVMvTUlMQSBNSVNTICAgMlVSQTdMIE8gIEhLIDA5TUFSIFNZRFFGMDhBQSANCjAzNCAgMDFDSFJJU1RPUEhFUi9BWUFOVCAzOE9STzcgTyAgSEsgMDVBUFIgU1lEUUYwOEFBIA0KMDM1ICAwMUQgU0lMVkEvTUlOT0xJIE1TIDNaSkhENCBPICBISyAzMU1BUiBTWURRRjA4V1cgDQowMzYgIDAyR1JFQ08vTUlDSEVMQSBNUlMgNDc4VVhVIE8gIEhLIDAyTUFSIFJPTUlHMjIwQiANCjAzNyAgMDVISUxMUy9BTUVMSUEgTUlTUyBZRFZPRlQgTyAgSEsgMjFKQU4gU1lEUUYwOEFBIA0KMDM4ICAwNUhJTExTL0hBUlJJU09OIE1TIFlEVk9GVCBPICBISyAyMUpBTiBTWURRRjA4QUEgDQowMzkgIDA1SElMTFMvTUVMSU5EQSBNUlMgWURWT0ZUIE8gIEhLIDIxSkFOIFNZRFFGMDhBQSANCjA0MCAgMDVISUxMUy9NSUNIQUVMIE1SICBZRFZPRlQgTyAgSEsgMjFKQU4gU1lEUUYwOEFBIA0KMDQxICAwNUhJTExTL1JVQlkgTUlTUyAgIFlEVk9GVCBPICBISyAyMUpBTiBTWURRRjA4QUEgDQowNDIgIDA0SFVHSEVTL0NIUklTVE9QSEUgWVJRSVRHIE8gIEhLIDI4SkFOIFNZRFFGMDhBQSANCjA0MyAgMDRIVUdIRVMvREFWSUQgTVIgICBZUlFJVEcgTyAgSEsgMjhKQU4gU1lEUUYwOEFBIA0KMDQ0ICAwNEhVR0hFUy9KRU5OSUZFUiBNIFlSUUlURyBPICBISyAyOEpBTiBTWURRRjA4QUEgDQowNDUgIDA0SFVHSEVTL0tBVEhFUklORSAgWVJRSVRHIE8gIEhLIDI4SkFOIFNZRFFGMDhBQSANCjA0NiAgMDFJUk9OUy9KRUFORVRURSBNUyBaU1ZEV0ogTyAgSEsgMThGRUIgTUVMUUYwMzAzIA0KMDQ3ICowM0pFU1NJTUFOL0xJTFlNSVNTIDNUMkNaWCBPICBISyAyOE1BUiBEWEJFSyAgICAgDQowNDggKjAzSkVTU0lNQU4vTUFUSUxEQU0gM1QyQ1pYIE8gIEhLIDI4TUFSIERYQkVLICAgICANCjA0OSAqMDNKRVNTSU1BTi9TQVJBSE1SUyAzVDJDWlggTyAgSEsgMjhNQVIgRFhCRUsgICAgIA0KMDUwICAwM0tBTExPR0hMSUFOL0FSU0hPIDNZVTNCSyBPICBISyAwMUFQUiBTV0kxRyAgICAgDQowNTEgIDAzS0FMTE9HSExJQU4vR0FSRUggM1lVM0JLIE8gIEhLIDAxQVBSIFNXSTFHICAgICANCjA1MiAgMDNLQUxMT0dITElBTi9WSUtFTiAzWVUzQksgTyAgSEsgMDFBUFIgU1dJMUcgICAgIA0KMDUzICAwMktBTE5JTlMvUkVJTklTTVIgIFozM0xXUyBPICBISyAyNEZFQiBTV0kxRyAgICAgDQowNTQgIDAyS0VBTkUvRU1NQVNIQVJPTk0gWVBPQ1AzIE8gIEhLIDI4SkFOIFNXSTFHICAgICANCjA1NSAgMDJLRUFORS9TQVJBQUxMSVNPTiBZUE9DUDMgTyAgSEsgMjhKQU4gU1dJMUcgICAgIA0KMDU2ICAwMktJTkcvV0lMTElBTSBEUiAgIDNVUkZKOSBPICBISyAyOU1BUiBTWURRRjA4VlYgDQowNTcgIDAxS1VSVUtVTEFTVVJJWUEvTkEgMzQzVk1EIE8gIEhLIDAyQVBSIFNZRFFGMDhXVyANCjA1OCAqMDRNRVJSSVRUL0FOVEhPTllKQSA4TUZaVUggTyAgSEsgMTFKQU4gRFhCRUsgICAgIA0KMDU5ICowNE1FUlJJVFQvRUxMQVJPU0VNIDhNRlpVSCBPICBISyAxMUpBTiBEWEJFSyAgICAgDQowNjAgKjA0TUVSUklUVC9IQU5OQUhFVkUgOE1GWlVIIE8gIEhLIDExSkFOIERYQkVLICAgICANCjA2MSAgMDJNRVlSSUNLL01FTEFOSUUgTSBZOEU2S1IgTyAgSEsgMDZGRUIgU1lEUUYwOFVVIA0KMDYyICAwMk1FWVJJQ0svU0lNT04gTVIgIFk4RTZLUiBPICBISyAwNkZFQiBTWURRRjA4VVUgDQowNjMgIDAxTU9SUklTL1NURVBIQU5JRSAgMkJNUVA3IE8gIEhLIDI4RkVCIFNZRFFGMDhXVyANCjA2NCAqMDNOSUNIT0xTT04vQkVOSkFNSSAzU1lYQkIgTyAgSEsgMjhNQVIgRFhCRUsgICAgIA0KMDY1ICowM05JQ0hPTFNPTi9KQU1FU1JPIDNTWVhCQiBPICBISyAyOE1BUiBEWEJFSyAgICAgDQowNjYgKjAzTklDSE9MU09OL0tJUlNUWUwgM1NZWEJCIE8gIEhLIDI4TUFSIERYQkVLICAgICANCjA2NyAqMDRQRVJWQU4vU1VTQU5KQU5KQSA4TUZaVUggTyAgSEsgMTFKQU4gRFhCRUsgICAgIA0KMDY4ICAwMVNQRUFSUy9TQUNISUtPIE1SIDdIRklOQyBPICBISyAxM0RFQyBTWURRRjA4QUEgDQowNjkgIDA1VEFZTE9SL0FOTkVUVEUgTVMgMlVSQTdMIE8gIEhLIDA5TUFSIFNZRFFGMDhBQSANCjA3MCAgMDJCUkFETEVZL0FORFJFVyBNUiAzM0NFVVIgUCAgSEsgMDRPQ1QgU1lEUUYwOFJSIA0KMDcxICAwMkJSQURMRVkvQkVMSU5EQSBNIDMzQ0VVUiBQICBISyAwNE9DVCBTWURRRjA4UlIgDQowNzIgIDAySk9TRVBIL01JQ0hBRUwgTVIgWks3MzlPIFUgIEhLIDE0RkVCIE1FTFFGMDMwMyANCjA3MyAgMDJPQ09OTk9SL0RFSVJEUkUgTSBaSzczOU8gVSAgSEsgMTRGRUIgTUVMUUYwMzAzIA0KMDc0ICAwMkJFTkpBTUlOL0pPTkFUSEFOIDNYOTNYVSBYICBISyAzMU1BUiBTWURRRjA4VFQgDQowNzUgIDAyQkVOSkFNSU4vTElTQSBNUlMgM1g5M1hVIFggIEhLIDMxTUFSIFNZRFFGMDhUVCANCjA3NiAgMDNET05FTEFJTi9SRUJFQ0NBICAzV1BPT0kgWCAgSEsgMzBNQVIgU1lEUUYwOFJSIA0KMDc3ICAwM0RPTkVMSUFOL0pVTElBIE1JIDNXUE9PSSBYICBISyAzME1BUiBTWURRRjA4UlIgDQowNzggIDAzR09PRE1BTi9MSU5EWSBNSVMgM1dQT09JIFggIEhLIDMwTUFSIFNZRFFGMDhSUiANCjA3OSAgMDNNQU5TRklFTEQvSE9MTFkgTSA0NUJWUDIgWCAgSEsgMjFBUFIgU1lEUUYwOFVVIA0KMDgwICAwM01BTlNGSUVMRC9TVEVWRU4gIDQ1QlZQMiBYICBISyAyMUFQUiBTWURRRjA4VVUgDQowODEgIDAzTk9STUFOL0NBUk9MWU4gTUkgNDVCVlAyIFggIEhLIDIxQVBSIFNZRFFGMDhVVSANCjA4MiAgMDFGRUhFUi9DSFJJU1RJTkUgTSA1OTNERkcgWiAgSEsgMTZOT1YgSEJBUUYwMzAyIA0KU1lETEhSDQowODMgIDAxRE9PRlVTL0EgICAgICAgICAgNVA2QUVXIEMgIEhLIDI2SlVMIFNXSTFHICAgICANCjA4NCAgMDFOSUNPTEwvS0FUSEVSSU5FRCA1RE5aRVYgRCAgSEsgMjZBUFIgU1dJMUcgICAgIA0KMDg1ICAwMVNDT0xZRVIvUklDSEFSRE1SIDQzTkNUWSBEICBISyAyNkFQUiBTV0kxRyAgICAgDQowODYgIDAyQU5ERVJTT04vUkVCRUNDQSAgN0FZTzVaIEkgIEhLIDA4REVDIFNZRFFGMDhCQiANCjA4NyAgMDJCQVJXSUNLL0xJTkRBIFBSTyBZVVNPNUQgSSAgSEsgMzFKQU4gU1lEUUYwOFVVIA0KMDg4ICAwMkJBUldJQ0svT0xXWU4gTVMgIFlVU081RCBJICBISyAzMUpBTiBTWURRRjA4VVUgDQowODkgIDAyQkVOTkVUVC9BTEVYQU5ERVIgN0FZTzVaIEkgIEhLIDA4REVDIFNZRFFGMDhCQiANCjA5MCAgMDJCRU5ORVRUL0RBVklEIE1SICA3QkZGTjQgSSAgSEsgMDlERUMgU1lEUUYwOEJCIA0KMDkxICAwMkRBVy9MRVNMRVkgTVMgICAgIDdCRkZONCBJICBISyAwOURFQyBTWURRRjA4QkIgDQowOTIgIDAxSFVOVC9BTElTT04gRFIgICAgNEFFTFpCIEkgIEhLIDA1QVBSIFNZRFFGMDhVVSANCjA5MyAgMDFLT1NUT1BPVUxPUy9FTElaQSAzS1hUQ0kgSSAgSEsgMDhBUFIgSERRMVMgICAgIA0KMDk0ICAwNUxFV1RIV0FJVEUvQU5OQUJFIDNPMkFVOCBJICBISyAyNE1BUiBTWURRRjA4QUEgDQowOTUgIDA1TEVXVEhXQUlURS9CUkVUVCAgM08yQVU4IEkgIEhLIDI0TUFSIFNZRFFGMDhBQSANCjA5NiAgMDVMRVdUSFdBSVRFL0NIQVJMSSAzTzJBVTggSSAgSEsgMjRNQVIgU1lEUUYwOEFBIA0KMDk3ICAwNUxFV1RIV0FJVEUvTElTQSBNIDNPMkFVOCBJICBISyAyNE1BUiBTWURRRjA4QUEgDQowOTggIDA1TEVXVEhXQUlURS9NQURESUUgM08yQVU4IEkgIEhLIDI0TUFSIFNZRFFGMDhBQSANCjA5OSAgMDFPQlJJRU4vTUFSS01SICAgICAyTE1NMlkgSSAgSEsgMDRNQVIgU1dJMUcgICAgIA0KMTAwICAwMVNDT0xZRVIvUklDSEFSRCBNIDVFV1RBRyBJICBISyAyNkFQUiBTWURSSDMxMDAgDQoxMDEgIDAxU01BUlQvTklDSE9MQVMgTVIgN0RMSUlQIEkgIEhLIDA1RkVCIE1FTFRCMzE0NiANCjEwMiAgMDFDQU1QQkVMTC9LSU1NUlMgICA4T0JBOFUgUiAgSEsgMTJKQU4gU1dJMUcgICAgIA0KMTAzICAwMkFJVEtFTi9SSE9OQU1SUyAgIDI2WThOTCBUICBISyAxNU1BUiBTV0kxRyAgICAgDQoxMDQgIDAyQUlUS0VOL1JPQkVSVE1SICAgMjZZOE5MIFQgIEhLIDE1TUFSIFNXSTFHICAgICANCjEwNSAgMDFDSElLTy9UQU5ZQSBNSVNTICAzOU1WVU0gVCAgSEsgMDVBUFIgSEJBUUYwMzAyIA0KMTA2ICAwMUdSQUhBTS9UT0REIE1SICAgIFk2V001VCBUICBISyAwN0ZFQiBNRUxUQjMxNDYgDQoxMDcgIDAxTExFV0VMTFlOIEpPTkVTL0cgNUJSU0dEIFQgIEhLIDI1QVBSIFNZRFFGMDhXVyANCjEwOCAgMDFQRURFTi9FTElTQUJFVEhNQSA0UVFIRVIgVCAgSEsgMTRBUFIgU1dJMUcgICAgIA0KMTA5ICAwMUNBUlRFUi9NSUNIQUVMIE1SIDVDS0M5OCBTICBISyAyNUFQUiBMT05VMTIxMDIgDQoxMTAgIDAyQ0xBUksvU1VTQU4gTVJTICAgM1k5TUpVIFMgIEhLIDMxTUFSIFNZRFFGMDhWViANCjExMSAgMDJDTEFSSy9URVJFTkNFIE1SICAzWTlNSlUgUyAgSEsgMzFNQVIgU1lEUUYwOFZWIA0KMTEyICAwMkNVVEhCRVJUL0pBQ1FVRUxJIDJUMktFQiBTICBISyAwOE1BUiBTV0kxRyAgICAgDQoxMTMgIDAyQ1VUSEJFUlQvTkVJTE1SICAgMlQyS0VCIFMgIEhLIDA4TUFSIFNXSTFHICAgICANCjExNCAgMDFGRVJSQVJJL0NBUk9MSU5FICBaU1E0QkYgUyAgSEsgMThGRUIgUEFSUUYwOFdXIA0KMTE1ICAwMUhBU1NBTEwvTUFSSyBNUiAgIDRBRElORiBTICBISyAwNUFQUiBTWURRRjA4VVUgDQoxMTYgIDAxTE9ZVEVTVC9NRU1CRVIgTVIgNU8yRUVPIFMgIEhLIDA3SlVMIFNZRFFGMDhCQiANCjExNyAgMDJOT1JXT09EL1BBTUVMQU1SUyBaUjZTV1cgUyAgSEsgMThGRUIgU1dJMUcgICAgIA0KMTE4ICAwMk5PUldPT0QvUlVTU0VMTE1SIFpSNlNXVyBTICBISyAxOEZFQiBTV0kxRyAgICAgDQoxMTkgIDAxTEVBVEhFUi9BTVkgTUlTUyAgWjdQNUtDIE4gIEhLIDI1RkVCIExPTlFGMDhBQSANCjEyMCAgMDJBU0hUT04vSk9TSFVBICAgICA1S1NLODggUSAgSEsgMjlBUFIgSERRMVMgICAgIA0KMTIxICAwMUFTSFRPTi9NQVJLIExBV1JFIDVLQ1lIUiBRICBISyAyOUFQUiBIRFExUyAgICAgDQoxMjIgIDAyQVNIVE9OL1RPQlkgICAgICAgNUtTSzg4IFEgIEhLIDI5QVBSIEhEUTFTICAgICANCjEyMyAgMDVCQVJOVU0vQ0hBUkxFUyBNUiAzRkUzNEcgTyAgSEsgMThNQVIgU1lEUUYwOFdXIA0KMTI0ICAwNUJBUk5VTS9DSFJJUyBNUiAgIDNGRTM0RyBPICBISyAxOE1BUiBTWURRRjA4V1cgDQoxMjUgIDA1QkFSTlVNL0dFT1JHSUUgTVIgM0ZFMzRHIE8gIEhLIDE4TUFSIFNZRFFGMDhXVyANCjEyNiAgMDVCQVJOVU0vSEFSUlkgTVIgICAzRkUzNEcgTyAgSEsgMThNQVIgU1lEUUYwOFdXIA0KMTI3ICAwNUJBUk5VTS9NQVggTVIgICAgIDNGRTM0RyBPICBISyAxOE1BUiBTWURRRjA4V1cgDQoxMjggIDAxQk9PS0VSL0NIUklTVElORU0gWTY0Uk9UIE8gIEhLIDA1RkVCIFNXSTFHICAgICANCjEyOSAgMDJCUkFOREVOQlVSR0VSL0FNWSAyM1RMNUYgTyAgSEsgMTNNQVIgTUVMUUYwMzAzIA0KMTMwICAwMkJSQU5ERU5CVVJHRVIvSkVTIDIzVEw1RiBPICBISyAxM01BUiBNRUxRRjAzMDMgDQoxMzEgIDAyQ0FDSEEvRVJJQ0tTT04gTVIgMk5NQVlFIE8gIEhLIDA1TUFSIFNZRFRCMzI0OSANCjEzMiAgMDJDQUNIQS9ST1NFTExJRSBNUiAyTk1BWUUgTyAgSEsgMDVNQVIgU1lEVEIzMjQ5IA0KMTMzICAwNkVTUElSSVRVL0ZFUk5BTkRPIDJLTzZHTyBPICBISyAwM01BUiBTWURUQjMyNDkgDQoxMzQgIDA2RVNQSVJJVFUvTE9MSVRBIE0gMktPNkdPIE8gIEhLIDAzTUFSIFNZRFRCMzI0OSANCjEzNSAgMDRGT1JNSUNBL0FOVEhPTllNUiA2QVhEVkcgTyAgSEsgMTlOT1YgU1dJMUcgICAgIA0KMTM2ICAwNEZPUk1JQ0EvU1VTQU5KRUFOIDZBWERWRyBPICBISyAxOU5PViBTV0kxRyAgICAgDQoxMzcgIDAyR0FSTkhBTS9CUklESUUgTUkgMjlNSjJNIE8gIEhLIDE2TUFSIExPTlUxMjhXUCANCjEzOCAgMDRKT0hOL0FZREVOIERPVUdMQSA0MkNTN0cgTyAgSEsgMTlBUFIgU1lEUUYwOEFBIA0KMTM5ICAwNEpPSE4vR0VPUkdJQSBMQVVSIDQyQ1M3RyBPICBISyAxOUFQUiBTWURRRjA4QUEgDQoxNDAgIDA0Sk9ITi9OSUNIT0xBUyBKQU0gNDJDUzdHIE8gIEhLIDE5QVBSIFNZRFFGMDhBQSANCjE0MSAgMDRKT0hOL1NBTUFOVEhBIEpBTiA0MkNTN0cgTyAgSEsgMTlBUFIgU1lEUUYwOEFBIA0KMTQyICAwMkxFVkkvQ0hSSVNUT1BIRVIgIFlBRkxHSCBPICBISyAxOUpBTiBTWURUQjMyMTkgDQoxNDMgIDAyTEVWSS9LRVJSWSBNUlMgICAgWUFGTEdIIE8gIEhLIDE5SkFOIFNZRFRCMzIxOSANCjE0NCAgMDNNQUNLUy9DQVRIRVJJTkVNUyAyQVM1REUgTyAgSEsgMjdGRUIgU1dJMUcgICAgIA0KMTQ1ICAwM01BQ0tTL0pVRElUSE1TICAgIDJBUzVERSBPICBISyAyN0ZFQiBTV0kxRyAgICAgDQoxNDYgIDA0TUNDUkVESUUvQ0hFTFNFQSAgWU5IT1BKIE8gIEhLIDI3SkFOIFNZRFRCMzIxOSANCjE0NyAgMDRNQ0NSRURJRS9DUkFJRyBNUiBZTkhPUEogTyAgSEsgMjdKQU4gU1lEVEIzMjE5IA0KMTQ4ICAwNE1DQ1JFRElFL1NURVBIQU5JIFlOSE9QSiBPICBISyAyN0pBTiBTWURUQjMyMTkgDQoxNDkgIDA0TUNDUkVESUUvVEhPTUFTIE0gWU5IT1BKIE8gIEhLIDI3SkFOIFNZRFRCMzIxOSANCjE1MCAgMDZNT0pJQ0EvRUxBSU5FIE1SUyAyS082R08gTyAgSEsgMDNNQVIgU1lEVEIzMjQ5IA0KMTUxICAwNE1VUlBIWS9BSURBTk1SICAgIDZBWERWRyBPICBISyAxOU5PViBTV0kxRyAgICAgDQoxNTIgIDA0TVVSUEhZL0pFTk5JRkVSQU4gNkFYRFZHIE8gIEhLIDE5Tk9WIFNXSTFHICAgICANCjE1MyAgMDZORVJBL1NZTFZJQSBNUyAgICAyS082R08gTyAgSEsgMDNNQVIgU1lEVEIzMjQ5IA0KMTU0ICAwMU8gTkVJTEwvU1RFUEhBTklFIDJJWUNCVCBPICBISyAwMk1BUiBMT05RRjA4V1cgDQoxNTUgIDAyUEFMTUVSL0pBWk1JTiBNSVMgMjlNSjJNIE8gIEhLIDE2TUFSIExPTlUxMjhXUCANCjE1NiAgMDZTQU4gSlVBTi9BUVVJTElOQSAyS082R08gTyAgSEsgMDNNQVIgU1lEVEIzMjQ5IA0KMTU3ICAwMlNIQURFWS9HQVJSWU1SICAgIFlVSkFETiBPICBISyAwMUZFQiBTV0kxRyAgICAgDQoxNTggIDAxU0hFUklEQU4vU0FSQSBNSVMgMzRUQ1lVIE8gIEhLIDAyQVBSIFNZRFFGMDhXVyANCjE1OSAgMDNTVUxMSVZBTi9DTEFJUkVNUyAyQVM1REUgTyAgSEsgMjdGRUIgU1dJMUcgICAgIA0KMTYwICAwMlRIT01BUy9LQVRIRVJJTkVNIFlVSkFETiBPICBISyAwMUZFQiBTV0kxRyAgICAgDQoxNjEgIDAxVFJFRFJFQS9HQUlMTVMgICAgMzg1VDk2IE8gIEhLIDA1QVBSIFNXSTFHICAgICANCjE2MiAgMDZWSVNUQS9BTkdFTElUQSBNUiAyS082R08gTyAgSEsgMDNNQVIgU1lEVEIzMjQ5IA0KMTYzICAwMldFU1RMQUtFL0NIUklTVE9QIDdaSTZBRCBPICBISyAyNkRFQyBMT05VMTI4VVAgDQoxNjQgIDAyV0VTVExBS0UvSkFORVQgTVIgN1pJNkFEIE8gIEhLIDI2REVDIExPTlUxMjhVUCANCjE2NUcgMDIvMDBWRVJTQVJJICAgICAgICAzT0k4TUsgRyAgSEsgMjRNQVIgUk9NUUYwMzAxIA0KMTY2RyAyMS8wMFZFUlNBUkkgICAgICAgIDdJN0JTUiBHICBISyAxNUpBTiBST01RRjAxMjAgDQoxNjcgIDAyQkFJUkQvRklPTkEgICAgICAgMkpVN05OIFAgIEhLIDAzTUFSIEhEUUFBICAgICANCjE2OCAgMDJDVVJUSVMvUkVCRUNDQSAgICAySlU3Tk4gUCAgSEsgMDNNQVIgSERRQUEgICAgIA0KMTY5ICAwNEhBUkFQSU4vRElBTkUgTVJTIDVHMkxKSiBVICBISyAzMU9DVCBNRUxRRjAzMDMgDQoxNzAgIDA0SEFSQVBJTi9FRFlOIE1SICAgNUcyTEpKIFUgIEhLIDMxT0NUIE1FTFFGMDMwMyANCjE3MSAgMDRIQVJBUElOL0tBSVlBIE1JUyA1RzJMSkogVSAgSEsgMzFPQ1QgTUVMUUYwMzAzIA0KMTcyICAwNEhBUkFQSU4vUEFVTCBNUiAgIDVHMkxKSiBVICBISyAzMU9DVCBNRUxRRjAzMDMgDQoxNzMgIDAxQlJBTkRFTkJVUkdFUi9HQVYgMjNUTEpMIFggIEhLIDEzTUFSIE1FTFFGMDMwMyANCjE3NCAgMDFCVVJHRVNTIE9SVE9OL1NVUyBZRkhMTlkgWCAgSEsgMjJKQU4gU1lEUUYwOFdXIA0KMTc1ICAwMUZBTExPTi9HRU9SR0lBIE1JIFpIR0U0UiBYICBISyAxMUZFQiBTWURRRjA4UlIgDQoxNzYgIDAyS0lFTFkvQU5HRUxBIE1TICAgWkI2SDlWIFggIEhLIDA5RkVCIFNZRFFGMDhXVyANCjE3NyAgMDJLSU5EUkVEL1NJTU9OIE1SICA3UVRXVzggWCAgSEsgMTlERUMgU1lEUUYwOFJSIA0KMTc4ICAwMktPVkFDSC9KVUxJRSBNUyAgIDdRVFdXOCBYICBISyAxOURFQyBTWURRRjA4UlIgDQoxNzkgIDAyTUNDUkVBL1NPUEhJRSBNSVMgWkI2SDlWIFggIEhLIDA5RkVCIFNZRFFGMDhXVyANCjE4MCAgMDFXSUxTT04vQU5HRUxBIE1SUyAzV0hVN1UgWCAgSEsgMzBNQVIgQUtMUUYwOFBQIA0KMTgxICAwMkhBUkFQSU4vTkFUSEFOIE1SIDVHMk1UMiBaICBISyAzMU9DVCBNRUxRRjAzMDMgDQoxODIgIDAySEFSQVBJTi9UWUxFUiBNUiAgNUcyTVQyIFogIEhLIDMxT0NUIE1FTFFGMDMwMyANCjE4MyAgMDFIT0xFL0pJTEwgTVMgICAgICA1WDlWWEIgWiAgSEsgMTBOT1YgU1lEUUYwOFJSIA0KRFhCTEhSDQoxODQgIDAyR0VEREVTL0pBTkVUIE1SUyAgMzg0QkRHIFMgIEhLIDA3QVBSIENIQ0hGMzEwNSANCjE4NSAgMDJHRURERVMvUk9XRU4gTVIgICAzODRCREcgUyAgSEsgMDdBUFIgQ0hDSEYzMTA1IA0KMTg2ICowMU1PT05FU0FXTVkvQVBQTEFNIDJFSU01SyBOICBISyAwOE1BUiBEWEJFSyAgICAgDQoxODcgKjAyUE9SVEVSL0FNQU5EQSAgICAgMjhEWUNaIE4gIEhLIDE1TUFSIERYQkVLICAgICANCjE4OCAqMDJQT1JURVIvTklDSE9MQVMgICAyOERZQ1ogTiAgSEsgMTVNQVIgRFhCRUsgICAgIA0KMTg5ICowM0VZQVNVL0FTVEVSTVJTICAgIFo5TzNOSCBRICBISyAyNkZFQiBEWEJFSyAgICAgDQoxOTAgKjAzR0VCUkVNSUNIQUVML1NBTVMgWjlPM05IIFEgIEhLIDI2RkVCIERYQkVLICAgICANCjE5MSAqMDNTQU1TT04vRVpSQU1TVFIgICBaOU8zTkggUSAgSEsgMjZGRUIgRFhCRUsgICAgIA0KMTkyICAwMURBTklFTFMvQUJJR0FJTCAgIDRLWFlRQyBPICBISyAxMUFQUiBMT05FRDM4QUEgDQoxOTMgKjAxTUFLL1NVTVlVRU5NUiAgICAgMlU3ODlTIE8gIEhLIDA5TUFSIERYQkVLICAgICANCjE5NCAgMDJNQ0xFQU4vR0FSUllNUiAgICA0S0tESEsgTyAgSEsgMTFBUFIgU1dJMUcgICAgIA0KMTk1ICAwMk1DTEVBTi9TSE9OQU1SUyAgIDRLS0RISyBPICBISyAxMUFQUiBTV0kxRyAgICAgDQoxOTYgKjAyU0VPVy9KSUFOR0xJTk1SICAgWUNDREQ3IE8gIEhLIDIwSkFOIERYQkVLICAgICANCjE5NyAqMDJTRU9XL1pJVElOR01JU1MgICBZQ0NERDcgTyAgSEsgMjBKQU4gRFhCRUsgICAgIA0KMTk4ICowMlNNSVRIL0pBTUVTS0VWSU4gIDROU05OVyBPICBISyAxMkFQUiBEWEJFSyAgICAgDQoxOTkgKjAyU01JVEgvVFJBQ0VZQU5OICAgNE5TTk5XIE8gIEhLIDEyQVBSIERYQkVLICAgICANCjIwMCAqMDFTVVJFU0hLVU1BUi9TVUNISSA0TkRaM0cgTyAgSEsgMTJBUFIgRFhCRUsgICAgIA0KMjAxICowMVRBTi9MSVFJTk1JU1MgICAgIFk3OVk0QSBPICBISyAwNkZFQiBEWEJFSyAgICAgDQoyMDIgIDAyUFVUVEVSUy9BUk5PTERVUyAgM0lVWk00IFAgIEhLIDIxTUFSIEhEUUFBICAgICANCjIwMyAgMDJSSUVMQS9NQVJJQSAgICAgICAzSVVaTTQgUCAgSEsgMjFNQVIgSERRQUEgICAgIA0KMjA0ICAwMkhBUlJJU09OL01BTkRZIE1SIDdWM1pSVyBVICBISyAyM0RFQyBCS0tRRjA4UlIgDQoyMDUgIDAySEFSUklTT04vTklDSE9MQVMgN1YzWlJXIFUgIEhLIDIzREVDIEJLS1FGMDhSUiANCkVORCBPRiBESVNQTEFZHFJORx0dTEkfMRxTVFgdVEJSHEVRTh0xHEVRTh01HFJORx0dTEkfMh8yMTIcRVFOHTIcRFVNHEFUQx0dVG8cQ09NHU5DRTAwWlofVBxBVEMdHVRvHENPTR1OQzEwMFpaH1QcQVRDHR1UbxxDT00dTkNFNjBaWh9UHA== + + \ No newline at end of file diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/StreamReaderTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/StreamReaderTest.java index 39a1c85bafb..2a8a75ec1fc 100644 --- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/StreamReaderTest.java +++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/StreamReaderTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -28,18 +28,45 @@ import javax.xml.stream.XMLStreamConstants; import javax.xml.stream.XMLStreamReader; import org.testng.Assert; +import org.testng.annotations.DataProvider; import org.testng.annotations.Listeners; import org.testng.annotations.Test; /* * @test + * @bug 8167340 * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest * @run testng/othervm -DrunSecMngr=true stream.XMLStreamReaderTest.StreamReaderTest * @run testng/othervm stream.XMLStreamReaderTest.StreamReaderTest - * @summary Test XMLStreamReader.hasName() returns false for ENTITY_REFERENCE. + * @summary Verifies patches for StreamReader bugs */ @Listeners({jaxp.library.FilePolicy.class}) public class StreamReaderTest { + /** + * Verifies that after switching to a different XML Version (1.1), the parser + * is initialized properly (the listener was not registered in this case). + * + * @param path the path to XML source + * @throws Exception + */ + @Test(dataProvider = "getPaths") + public void testSwitchXMLVersions(String path) throws Exception { + XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance(); + xmlInputFactory.setProperty("javax.xml.stream.isCoalescing", true); + XMLStreamReader xmlStreamReader = xmlInputFactory.createXMLStreamReader( + this.getClass().getResourceAsStream(path)); + + while (xmlStreamReader.hasNext()) { + int event = xmlStreamReader.next(); + if (event == XMLStreamConstants.START_ELEMENT) { + if (xmlStreamReader.getLocalName().equals("body")) { + String elementText = xmlStreamReader.getElementText(); + Assert.assertTrue(!elementText.contains(""), + "Fail: elementText contains "); + } + } + } + } /** * CR 6631264 / sjsxp Issue 45: @@ -50,7 +77,8 @@ public class StreamReaderTest { public void testHasNameOnEntityEvent() throws Exception { XMLInputFactory xif = XMLInputFactory.newInstance(); xif.setProperty(XMLInputFactory.IS_REPLACING_ENTITY_REFERENCES, false); - XMLStreamReader r = xif.createXMLStreamReader(this.getClass().getResourceAsStream("ExternalDTD.xml")); + XMLStreamReader r = xif.createXMLStreamReader( + this.getClass().getResourceAsStream("ExternalDTD.xml")); while (r.next() != XMLStreamConstants.ENTITY_REFERENCE) { System.out.println("event type: " + r.getEventType()); continue; @@ -61,4 +89,15 @@ public class StreamReaderTest { Assert.assertFalse(r.hasName()); // fails } + /* + DataProvider: provides paths to xml sources + Data: path to xml source + */ + @DataProvider(name = "getPaths") + public Object[][] getPaths() { + return new Object[][]{ + {"Bug8167340_1-0.xml"}, + {"Bug8167340_1-1.xml"} + }; + } } diff --git a/jaxws/.hgignore b/jaxws/.hgignore index 94668d195b7..00a3c015497 100644 --- a/jaxws/.hgignore +++ b/jaxws/.hgignore @@ -4,5 +4,4 @@ ^drop_included/ ^webrev /nbproject/private/ -^.hgtip .DS_Store diff --git a/jaxws/.hgtags b/jaxws/.hgtags index 9ab79ccac2c..005ff37c46c 100644 --- a/jaxws/.hgtags +++ b/jaxws/.hgtags @@ -392,3 +392,5 @@ b2c18f755228d1d19a86cd7d5fa1abb6b1495dfb jdk-9+141 92523c51d6a48b0a83912ba3cc43bc57b8159c2a jdk-9+144 29277a4e73077269358859c43bd6658593fc0410 jdk-9+145 1461e3e07876ea61bd0a07355a43912c9b04022a jdk-9+146 +be37411855de5b76035bef6f1b0d90d8607f2205 jdk-9+147 +c8c9c334743caf8155c9809b6b4ac315d3a66476 jdk-9+148 diff --git a/jaxws/src/java.activation/share/classes/module-info.java b/jaxws/src/java.activation/share/classes/module-info.java index 1ba4eb115ec..00d40e18550 100644 --- a/jaxws/src/java.activation/share/classes/module-info.java +++ b/jaxws/src/java.activation/share/classes/module-info.java @@ -27,7 +27,7 @@ * Defines the JavaBeans Activation Framework (JAF) API. */ module java.activation { - requires public java.datatransfer; + requires transitive java.datatransfer; requires java.logging; exports javax.activation; diff --git a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/reflect/opt/AccessorInjector.java b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/reflect/opt/AccessorInjector.java index adc2610b8f6..1be59952231 100644 --- a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/reflect/opt/AccessorInjector.java +++ b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/reflect/opt/AccessorInjector.java @@ -39,7 +39,7 @@ class AccessorInjector { private static final Logger logger = Util.getClassLogger(); - protected static final boolean noOptimize = + protected static final boolean noOptimize = Runtime.version().major() >= 9 || Util.getSystemProperty(ClassTailor.class.getName()+".noOptimize")!=null; static { diff --git a/jaxws/src/java.xml.bind/share/classes/module-info.java b/jaxws/src/java.xml.bind/share/classes/module-info.java index 708945a98fc..1a6abaf0bf0 100644 --- a/jaxws/src/java.xml.bind/share/classes/module-info.java +++ b/jaxws/src/java.xml.bind/share/classes/module-info.java @@ -27,8 +27,8 @@ * Defines the Java Architecture for XML Binding (JAXB) API. */ module java.xml.bind { - requires public java.activation; - requires public java.xml; + requires transitive java.activation; + requires transitive java.xml; requires java.compiler; requires java.desktop; requires java.logging; @@ -91,6 +91,10 @@ module java.xml.bind { java.xml.ws, jdk.xml.bind, jdk.xml.ws; + opens com.sun.xml.internal.bind.v2.model.nav to + java.xml.ws, + jdk.xml.bind, + jdk.xml.ws; exports com.sun.xml.internal.bind.v2.model.runtime to java.xml.ws; exports com.sun.xml.internal.bind.v2.model.util to diff --git a/jaxws/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/model/RuntimeModeler.java b/jaxws/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/model/RuntimeModeler.java index 87d085746f5..29f852ed033 100644 --- a/jaxws/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/model/RuntimeModeler.java +++ b/jaxws/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/model/RuntimeModeler.java @@ -346,6 +346,7 @@ public class RuntimeModeler { } private boolean noWrapperGen() { + if (Runtime.version().major() >= 9) return true; Object o = config.properties().get(SuppressDocLitWrapperGeneration); return (o!= null && o instanceof Boolean) ? ((Boolean) o) : false; } diff --git a/jaxws/src/java.xml.ws/share/classes/module-info.java b/jaxws/src/java.xml.ws/share/classes/module-info.java index 09668d41fe4..def2ec6be19 100644 --- a/jaxws/src/java.xml.ws/share/classes/module-info.java +++ b/jaxws/src/java.xml.ws/share/classes/module-info.java @@ -28,9 +28,9 @@ * the Web Services Metadata API. */ module java.xml.ws { - requires public java.activation; - requires public java.xml; - requires public java.xml.bind; + requires transitive java.activation; + requires transitive java.xml; + requires transitive java.xml.bind; requires java.annotations.common; requires java.desktop; requires java.logging; @@ -55,6 +55,8 @@ module java.xml.ws { exports javax.xml.ws.spi.http; exports javax.xml.ws.wsaddressing; + opens javax.xml.ws.wsaddressing to java.xml.bind; + exports com.oracle.webservices.internal.api.databinding to jdk.xml.ws; exports com.sun.xml.internal.ws.addressing to @@ -102,10 +104,13 @@ module java.xml.ws { jdk.xml.ws; // XML document content needs to be exported - exports com.sun.xml.internal.ws.runtime.config to java.xml.bind; + opens com.sun.xml.internal.ws.runtime.config to java.xml.bind; // com.sun.xml.internal.ws.fault.SOAPFaultBuilder uses JAXBContext.newInstance - exports com.sun.xml.internal.ws.fault to java.xml.bind; + opens com.sun.xml.internal.ws.fault to java.xml.bind; + + // classes passed to JAXBContext.newInstance for deep reflection + opens com.sun.xml.internal.ws.addressing to java.xml.bind; // JAF data handlers exports com.sun.xml.internal.messaging.saaj.soap to diff --git a/jaxws/src/jdk.xml.bind/share/classes/module-info.java b/jaxws/src/jdk.xml.bind/share/classes/module-info.java index 06faf9dddd2..8757ce45f33 100644 --- a/jaxws/src/jdk.xml.bind/share/classes/module-info.java +++ b/jaxws/src/jdk.xml.bind/share/classes/module-info.java @@ -56,18 +56,19 @@ module jdk.xml.bind { jdk.xml.ws; // XML document content needs to be exported - exports com.sun.tools.internal.xjc.reader.xmlschema.bindinfo to + opens com.sun.tools.internal.xjc.reader.xmlschema.bindinfo to java.xml.bind; // com.sun.tools.internal.xjc.reader.xmlschema.bindinfo.BindInfo uses JAXBContext exports com.sun.tools.internal.xjc.generator.bean to java.xml.bind; uses com.sun.tools.internal.xjc.Plugin; - provides com.sun.tools.internal.xjc.Plugin with com.sun.tools.internal.xjc.addon.accessors.PluginImpl; - provides com.sun.tools.internal.xjc.Plugin with com.sun.tools.internal.xjc.addon.at_generated.PluginImpl; - provides com.sun.tools.internal.xjc.Plugin with com.sun.tools.internal.xjc.addon.code_injector.PluginImpl; - provides com.sun.tools.internal.xjc.Plugin with com.sun.tools.internal.xjc.addon.episode.PluginImpl; - provides com.sun.tools.internal.xjc.Plugin with com.sun.tools.internal.xjc.addon.locator.SourceLocationAddOn; - provides com.sun.tools.internal.xjc.Plugin with com.sun.tools.internal.xjc.addon.sync.SynchronizedMethodAddOn; + provides com.sun.tools.internal.xjc.Plugin with + com.sun.tools.internal.xjc.addon.accessors.PluginImpl, + com.sun.tools.internal.xjc.addon.at_generated.PluginImpl, + com.sun.tools.internal.xjc.addon.code_injector.PluginImpl, + com.sun.tools.internal.xjc.addon.episode.PluginImpl, + com.sun.tools.internal.xjc.addon.locator.SourceLocationAddOn, + com.sun.tools.internal.xjc.addon.sync.SynchronizedMethodAddOn; } diff --git a/jaxws/src/jdk.xml.ws/share/classes/module-info.java b/jaxws/src/jdk.xml.ws/share/classes/module-info.java index 9e5d44da047..dbec9c537b0 100644 --- a/jaxws/src/jdk.xml.ws/share/classes/module-info.java +++ b/jaxws/src/jdk.xml.ws/share/classes/module-info.java @@ -33,6 +33,7 @@ module jdk.xml.ws { requires jdk.xml.bind; uses com.sun.tools.internal.ws.wscompile.Plugin; - provides com.sun.tools.internal.ws.wscompile.Plugin with com.sun.tools.internal.ws.wscompile.plugin.at_generated.PluginImpl; + provides com.sun.tools.internal.ws.wscompile.Plugin with + com.sun.tools.internal.ws.wscompile.plugin.at_generated.PluginImpl; } diff --git a/jdk/.hgtags b/jdk/.hgtags index fe87fc38b47..8aee88cad73 100644 --- a/jdk/.hgtags +++ b/jdk/.hgtags @@ -390,3 +390,4 @@ efa71dc820eb8bd5a6c9f2f66f39c383ac3ee99d jdk-9+144 99b7853cfbd8227c4441de4b6119c10742556840 jdk-9+145 6e4ff59afb5d0adf21a72c4ff534326594a99e5d jdk-9+146 c41140100bf1e5c10c7b8f3bde91c16eff7485f5 jdk-9+147 +9098b2b9d997d65af0026fc2f39cf75234e26bc5 jdk-9+148 diff --git a/jdk/THIRD_PARTY_README b/jdk/THIRD_PARTY_README deleted file mode 100644 index 767609febcb..00000000000 --- a/jdk/THIRD_PARTY_README +++ /dev/null @@ -1,3605 +0,0 @@ -DO NOT TRANSLATE OR LOCALIZE. ------------------------------ - -%% This notice is provided with respect to ASM Bytecode Manipulation -Framework v5.0, which may be included with JRE 8, and JDK 8, and -OpenJDK 8. - ---- begin of LICENSE --- - -Copyright (c) 2000-2011 France Télécom -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. 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. - -3. Neither the name of the copyright holders nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -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. - ---- end of LICENSE --- - --------------------------------------------------------------------------------- - -%% This notice is provided with respect to BSDiff v4.3, which may be -included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - -Copyright 2003-2005 Colin Percival -All rights reserved - -Redistribution and use in source and binary forms, with or without -modification, are permitted providing that the following conditions -are met: -1. Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -2. 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 AUTHOR ``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 AUTHOR 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. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to CodeViewer 1.0, which may be -included with JDK 8. - ---- begin of LICENSE --- - -Copyright 1999 by CoolServlets.com. - -Any errors or suggested improvements to this class can be reported as -instructed on CoolServlets.com. We hope you enjoy this program... your -comments will encourage further development! This software is distributed -under the terms of the BSD License. Redistribution and use in source and -binary forms, with or without modification, are permitted provided that the -following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -2. 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. - -Neither name of CoolServlets.com nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY COOLSERVLETS.COM 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 AUTHOR 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." - - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to Cryptix AES 3.2.0, which may be -included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - -Cryptix General License - -Copyright (c) 1995-2005 The Cryptix Foundation Limited. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - 1. Redistributions of source code must retain the copyright notice, - this list of conditions and the following disclaimer. - - 2. 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 CRYPTIX FOUNDATION LIMITED 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 CRYPTIX FOUNDATION LIMITED 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. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to CUP Parser Generator for -Java 0.10k, which may be included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - -Copyright 1996-1999 by Scott Hudson, Frank Flannery, C. Scott Ananian - -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose and without fee is hereby granted, provided -that the above copyright notice appear in all copies and that both the -copyright notice and this permission notice and warranty disclaimer appear in -supporting documentation, and that the names of the authors or their -employers not be used in advertising or publicity pertaining to distribution of -the software without specific, written prior permission. - -The authors and their employers disclaim all warranties with regard to -this software, including all implied warranties of merchantability and fitness. -In no event shall the authors or their employers be liable for any special, -indirect or consequential damages or any damages whatsoever resulting from -loss of use, data or profits, whether in an action of contract, negligence or -other tortious action, arising out of or in connection with the use or -performance of this software. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to Document Object Model (DOM) Level 2 -& 3, which may be included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - -W3C SOFTWARE NOTICE AND LICENSE - -http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231 - -This work (and included software, documentation such as READMEs, or other -related items) is being provided by the copyright holders under the following -license. By obtaining, using and/or copying this work, you (the licensee) -agree that you have read, understood, and will comply with the following terms -and conditions. - -Permission to copy, modify, and distribute this software and its -documentation, with or without modification, for any purpose and without fee -or royalty is hereby granted, provided that you include the following on ALL -copies of the software and documentation or portions thereof, including -modifications: - - 1.The full text of this NOTICE in a location viewable to users of the - redistributed or derivative work. - - 2.Any pre-existing intellectual property disclaimers, notices, or terms and - conditions. If none exist, the W3C Software Short Notice should be included - (hypertext is preferred, text is permitted) within the body of any - redistributed or derivative code. - - 3.Notice of any changes or modifications to the files, including the date - changes were made. (We recommend you provide URIs to the location from - which the code is derived.) - -THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS -MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT -LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR -PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY -THIRD PARTY PATENTS,COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. - -COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL -OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR -DOCUMENTATION. The name and trademarks of copyright holders may NOT be used -in advertising or publicity pertaining to the software without specific, -written prior permission. Title to copyright in this software and any -associated documentation will at all times remain with copyright holders. - -____________________________________ - -This formulation of W3C's notice and license became active on December 31 -2002. This version removes the copyright ownership notice such that this -license can be used with materials other than those owned by the W3C, reflects -that ERCIM is now a host of the W3C, includes references to this specific -dated version of the license, and removes the ambiguous grant of "use". -Otherwise, this version is the same as the previous version and is written so -as to preserve the Free Software Foundation's assessment of GPL compatibility -and OSI's certification under the Open Source Definition. Please see our -Copyright FAQ for common questions about using materials from our site, -including specific terms and conditions for packages like libwww, Amaya, and -Jigsaw. Other questions about this notice can be directed to -site-policy@w3.org. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to Dynalink v0.5, which may be -included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - -Copyright (c) 2009-2013, Attila Szegedi - -All rights reserved.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. * Neither the name of Attila -Szegedi nor the names of its contributors may be used to endorse or promote -products derived from this software without specific prior written permission. - -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 HOLDER 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 THEPOSSIBILITY OF SUCH DAMAGE. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to Elliptic Curve Cryptography, which -may be included with JRE 8, JDK 8, and OpenJDK 8. - -You are receiving a copy of the Elliptic Curve Cryptography library in source -form with the JDK 8 and OpenJDK 8 source distributions, and as object code in -the JRE 8 & JDK 8 runtimes. - -In the case of the JRE 8 & JDK 8 runtimes, the terms of the Oracle license do -NOT apply to the Elliptic Curve Cryptography library; it is licensed under the -following license, separately from Oracle's JDK & JRE. If you do not wish to -install the Elliptic Curve Cryptography library, you may delete the library -named libsunec.so (on Solaris and Linux systems) or sunec.dll (on Windows -systems) from the JRE bin directory reserved for native libraries. - - ---- begin of LICENSE --- - - GNU LESSER GENERAL PUBLIC LICENSE - Version 2.1, February 1999 - - Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Lesser General Public License, applies to some -specially designated software packages--typically libraries--of the -Free Software Foundation and other authors who decide to use it. You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations below. - - When we speak of free software, we are referring to freedom of use, -not price. Our General Public Licenses are designed to make sure that -you have the freedom to distribute copies of free software (and charge -for this service if you wish); that you receive source code or can get -it if you want it; that you can change the software and use pieces of -it in new free programs; and that you are informed that you can do -these things. - - To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -rights. These restrictions translate to certain responsibilities for -you if you distribute copies of the library or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link other code with the library, you must provide -complete object files to the recipients, so that they can relink them -with the library after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. - - To protect each distributor, we want to make it very clear that -there is no warranty for the free library. Also, if the library is -modified by someone else and passed on, the recipients should know -that what they have is not the original version, so that the original -author's reputation will not be affected by problems that might be -introduced by others. - - Finally, software patents pose a constant threat to the existence of -any free program. We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. - - Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License. This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License. We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. - - When a program is linked with a library, whether statically or using -a shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library. The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom. The Lesser General -Public License permits more lax criteria for linking other code with -the library. - - We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License. It also provides other free software developers Less -of an advantage over competing non-free programs. These disadvantages -are the reason we use the ordinary General Public License for many -libraries. However, the Lesser license provides advantages in certain -special circumstances. - - For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it becomes -a de-facto standard. To achieve this, non-free programs must be -allowed to use the library. A more frequent case is that a free -library does the same job as widely used non-free libraries. In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. - - In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software. For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. - - Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, whereas the latter must -be combined with the library in order to run. - - GNU LESSER GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser General Public License (also called "this License"). -Each licensee is addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also combine or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (1) uses at run time a - copy of the library already present on the user's computer system, - rather than copying library functions into the executable, and (2) - will operate properly with a modified version of the library, if - the user installs one, as long as the modified version is - interface-compatible with the version that the work was made with. - - c) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - d) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - e) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the materials to be distributed need not include anything that is -normally distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties with -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Lesser General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Libraries - - If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms of the -ordinary General Public License). - - To apply these terms, attach the following notices to the library. It is -safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the library, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James Random Hacker. - - , 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to ECMAScript Language -Specification ECMA-262 Edition 5.1 which may be included with -JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - -Copyright notice -Copyright © 2011 Ecma International -Ecma International -Rue du Rhone 114 -CH-1204 Geneva -Tel: +41 22 849 6000 -Fax: +41 22 849 6001 -Web: http://www.ecma-international.org - -This document and possible translations of it may be copied and furnished to -others, and derivative works that comment on or otherwise explain it or assist -in its implementation may be prepared, copied, published, and distributed, in -whole or in part, without restriction of any kind, provided that the above -copyright notice and this section are included on all such copies and derivative -works. However, this document itself may not be modified in any way, including -by removing the copyright notice or references to Ecma International, except as -needed for the purpose of developing any document or deliverable produced by -Ecma International (in which case the rules applied to copyrights must be -followed) or as required to translate it into languages other than English. The -limited permissions granted above are perpetual and will not be revoked by Ecma -International or its successors or assigns. This document and the information -contained herein is provided on an "AS IS" basis and ECMA INTERNATIONAL -DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY -WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY OWNERSHIP -RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR -PURPOSE." Software License - -All Software contained in this document ("Software)" is protected by copyright -and is being made available under the "BSD License", included below. This -Software may be subject to third party rights (rights from parties other than -Ecma International), including patent rights, and no licenses under such third -party rights are granted under this license even if the third party concerned is -a member of Ecma International. SEE THE ECMA CODE OF CONDUCT IN PATENT MATTERS -AVAILABLE AT http://www.ecma-international.org/memento/codeofconduct.htm FOR -INFORMATION REGARDING THE LICENSING OF PATENT CLAIMS THAT ARE REQUIRED TO -IMPLEMENT ECMA INTERNATIONAL STANDARDS*. Redistribution and use in source and -binary forms, with or without modification, are permitted provided that the -following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this -list of conditions and the following disclaimer. - -2. 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. - -3. Neither the name of the authors nor Ecma International may be used to endorse -or promote products derived from this software without specific prior written -permission. - -THIS SOFTWARE IS PROVIDED BY THE ECMA INTERNATIONAL "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 ECMA INTERNATIONAL 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. ---- end of LICENSE --- - -%% This notice is provided with respect to Dynalink library which is included -with the Nashorn technology. - ---- begin of LICENSE --- -Copyright (c) 2009-2013, Attila Szegedi - -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. -* Neither the name of the copyright holder nor the names of - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -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 COPYRIGHT HOLDER -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. ---- end of LICENSE --- - -%% This notice is provided with respect to Joni library which is included -with the Nashorn technology. - ---- begin of LICENSE --- -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to FontConfig 2.5, which may be -included with JRE 8, JDK 8, and OpenJDK 8 source distributions on -Linux and Solaris. - ---- begin of LICENSE --- - -Copyright © 2001,2003 Keith Packard - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that the -above copyright notice appear in all copies and that both that copyright -notice and this permission notice appear in supporting documentation, and that -the name of Keith Packard not be used in advertising or publicity pertaining -to distribution of the software without specific, written prior permission. -Keith Packard makes no representations about the suitability of this software -for any purpose. It is provided "as is" without express or implied warranty. - -KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING -ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL KEITH -PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY -DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to IAIK PKCS#11 Wrapper, -which may be included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - -IAIK PKCS#11 Wrapper License - -Copyright (c) 2002 Graz University of Technology. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -2. 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. - -3. The end-user documentation included with the redistribution, if any, must - include the following acknowledgment: - - "This product includes software developed by IAIK of Graz University of - Technology." - - Alternately, this acknowledgment may appear in the software itself, if and - wherever such third-party acknowledgments normally appear. - -4. The names "Graz University of Technology" and "IAIK of Graz University of - Technology" must not be used to endorse or promote products derived from this - software without prior written permission. - -5. Products derived from this software may not be called "IAIK PKCS Wrapper", - nor may "IAIK" appear in their name, without prior written permission of - Graz University of Technology. - -THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED 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 -LICENSOR 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. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to ICU4C 4.0.1 and ICU4J 4.4, which -may be included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - -Copyright (c) 1995-2010 International Business Machines Corporation and others - -All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, and/or sell copies of the -Software, and to permit persons to whom the Software is furnished to do so, -provided that the above copyright notice(s) and this permission notice appear -in all copies of the Software and that both the above copyright notice(s) and -this permission notice appear in supporting documentation. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN -NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE -LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY -DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -Except as contained in this notice, the name of a copyright holder shall not -be used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization of the copyright holder. -All trademarks and registered trademarks mentioned herein are the property of -their respective owners. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to IJG JPEG 6b, which may be -included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - -This software is copyright (C) 1991-1998, Thomas G. Lane. -All Rights Reserved except as specified below. - -Permission is hereby granted to use, copy, modify, and distribute this -software (or portions thereof) for any purpose, without fee, subject to these -conditions: -(1) If any part of the source code for this software is distributed, then this -README file must be included, with this copyright and no-warranty notice -unaltered; and any additions, deletions, or changes to the original files -must be clearly indicated in accompanying documentation. -(2) If only executable code is distributed, then the accompanying -documentation must state that "this software is based in part on the work of -the Independent JPEG Group". -(3) Permission for use of this software is granted only if the user accepts -full responsibility for any undesirable consequences; the authors accept -NO LIABILITY for damages of any kind. - -These conditions apply to any software derived from or based on the IJG code, -not just to the unmodified library. If you use our work, you ought to -acknowledge us. - -Permission is NOT granted for the use of any IJG author's name or company name -in advertising or publicity relating to this software or products derived from -it. This software may be referred to only as "the Independent JPEG Group's -software". - -We specifically permit and encourage the use of this software as the basis of -commercial products, provided that all warranty or liability claims are -assumed by the product vendor. - ---- end of LICENSE --- - --------------------------------------------------------------------------------- - -%% This notice is provided with respect to Joni v1.1.9, which may be -included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to JOpt-Simple v3.0, which may be -included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - - Copyright (c) 2004-2009 Paul R. Holser, Jr. - - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to - permit persons to whom the Software is furnished to do so, subject to - the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE - LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION - OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION - WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ---- end of LICENSE --- - --------------------------------------------------------------------------------- - -%% This notice is provided with respect to JSON, which may be included -with JRE 8 & JDK 8. - ---- begin of LICENSE --- - -Copyright (c) 2002 JSON.org - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -The Software shall be used for Good, not Evil. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to Kerberos functionality, which -which may be included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - - (C) Copyright IBM Corp. 1999 All Rights Reserved. - Copyright 1997 The Open Group Research Institute. All rights reserved. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to Kerberos functionality from -FundsXpress, INC., which may be included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - - Copyright (C) 1998 by the FundsXpress, INC. - - All rights reserved. - - Export of this software from the United States of America may require - a specific license from the United States Government. It is the - responsibility of any person or organization contemplating export to - obtain such a license before exporting. - - WITHIN THAT CONSTRAINT, permission to use, copy, modify, and - distribute this software and its documentation for any purpose and - without fee is hereby granted, provided that the above copyright - notice appear in all copies and that both that copyright notice and - this permission notice appear in supporting documentation, and that - the name of FundsXpress. not be used in advertising or publicity pertaining - to distribution of the software without specific, written prior - permission. FundsXpress makes no representations about the suitability of - this software for any purpose. It is provided "as is" without express - or implied warranty. - - THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. - - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to Kronos OpenGL headers, which may be -included with JDK 8 and OpenJDK 8 source distributions. - ---- begin of LICENSE --- - - Copyright (c) 2007 The Khronos Group Inc. - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and/or associated documentation files (the "Materials"), to - deal in the Materials without restriction, including without limitation the - rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - sell copies of the Materials, and to permit persons to whom the Materials are - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Materials. - - THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS IN THE - MATERIALS. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% Portions Copyright Eastman Kodak Company 1992 - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to libpng 1.5.4, which may be -included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - -This copy of the libpng notices is provided for your convenience. In case of -any discrepancy between this copy and the notices in the file png.h that is -included in the libpng distribution, the latter shall prevail. - -COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: - -If you modify libpng you may insert additional notices immediately following -this sentence. - -This code is released under the libpng license. - -libpng versions 1.2.6, August 15, 2004, through 1.5.4, July 7, 2011, are -Copyright (c) 2004, 2006-2011 Glenn Randers-Pehrson, and are -distributed according to the same disclaimer and license as libpng-1.2.5 -with the following individual added to the list of Contributing Authors - - Cosmin Truta - -libpng versions 1.0.7, July 1, 2000, through 1.2.5 - October 3, 2002, are -Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are -distributed according to the same disclaimer and license as libpng-1.0.6 -with the following individuals added to the list of Contributing Authors - - Simon-Pierre Cadieux - Eric S. Raymond - Gilles Vollant - -and with the following additions to the disclaimer: - - There is no warranty against interference with your enjoyment of the - library or against infringement. There is no warranty that our - efforts or the library will fulfill any of your particular purposes - or needs. This library is provided with all faults, and the entire - risk of satisfactory quality, performance, accuracy, and effort is with - the user. - -libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are -Copyright (c) 1998, 1999 Glenn Randers-Pehrson, and are -distributed according to the same disclaimer and license as libpng-0.96, -with the following individuals added to the list of Contributing Authors: - - Tom Lane - Glenn Randers-Pehrson - Willem van Schaik - -libpng versions 0.89, June 1996, through 0.96, May 1997, are -Copyright (c) 1996, 1997 Andreas Dilger -Distributed according to the same disclaimer and license as libpng-0.88, -with the following individuals added to the list of Contributing Authors: - - John Bowler - Kevin Bracey - Sam Bushell - Magnus Holmgren - Greg Roelofs - Tom Tanner - -libpng versions 0.5, May 1995, through 0.88, January 1996, are -Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. - -For the purposes of this copyright and license, "Contributing Authors" -is defined as the following set of individuals: - - Andreas Dilger - Dave Martindale - Guy Eric Schalnat - Paul Schmidt - Tim Wegner - -The PNG Reference Library is supplied "AS IS". The Contributing Authors -and Group 42, Inc. disclaim all warranties, expressed or implied, -including, without limitation, the warranties of merchantability and of -fitness for any purpose. The Contributing Authors and Group 42, Inc. -assume no liability for direct, indirect, incidental, special, exemplary, -or consequential damages, which may result from the use of the PNG -Reference Library, even if advised of the possibility of such damage. - -Permission is hereby granted to use, copy, modify, and distribute this -source code, or portions hereof, for any purpose, without fee, subject -to the following restrictions: - -1. The origin of this source code must not be misrepresented. - -2. Altered versions must be plainly marked as such and must not - be misrepresented as being the original source. - -3. This Copyright notice may not be removed or altered from any - source or altered source distribution. - -The Contributing Authors and Group 42, Inc. specifically permit, without -fee, and encourage the use of this source code as a component to -supporting the PNG file format in commercial products. If you use this -source code in a product, acknowledgment is not required but would be -appreciated. - - -A "png_get_copyright" function is available, for convenient use in "about" -boxes and the like: - - printf("%s",png_get_copyright(NULL)); - -Also, the PNG logo (in PNG format, of course) is supplied in the -files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31). - -Libpng is OSI Certified Open Source Software. OSI Certified Open Source is a -certification mark of the Open Source Initiative. - -Glenn Randers-Pehrson -glennrp at users.sourceforge.net -July 7, 2011 - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to libungif 4.1.3, which may be -included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - -The GIFLIB distribution is Copyright (c) 1997 Eric S. Raymond - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to Little CMS 2.4, which may be -included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - -Little CMS -Copyright (c) 1998-2010 Marti Maria Saguer - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% Lucida is a registered trademark or trademark of Bigelow & Holmes in the -U.S. and other countries. - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to Mesa 3D Graphics Library v4.1, -which may be included with JRE 8, JDK 8, and OpenJDK 8 source distributions. - ---- begin of LICENSE --- - - Mesa 3-D graphics library - Version: 4.1 - - Copyright (C) 1999-2002 Brian Paul All Rights Reserved. - - Permission is hereby granted, free of charge, to any person obtaining a - copy of this software and associated documentation files (the "Software"), - to deal in the Software without restriction, including without limitation - the rights to use, copy, modify, merge, publish, distribute, sublicense, - and/or sell copies of the Software, and to permit persons to whom the - Software is furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included - in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to Mozilla Network Security -Services (NSS), which is supplied with the JDK test suite in the OpenJDK -source code repository. It is licensed under Mozilla Public License (MPL), -version 2.0. - -The NSS libraries are supplied in executable form, built from unmodified -NSS source code labeled with the "NSS_3_16_RTM" HG tag. - -The NSS source code is available in the OpenJDK source code repository at: - jdk/test/sun/security/pkcs11/nss/src - -The NSS libraries are available in the OpenJDK source code repository at: - jdk/test/sun/security/pkcs11/nss/lib - ---- begin of LICENSE --- - -Mozilla Public License Version 2.0 -================================== - -1. Definitions --------------- - -1.1. "Contributor" - means each individual or legal entity that creates, contributes to - the creation of, or owns Covered Software. - -1.2. "Contributor Version" - means the combination of the Contributions of others (if any) used - by a Contributor and that particular Contributor's Contribution. - -1.3. "Contribution" - means Covered Software of a particular Contributor. - -1.4. "Covered Software" - means Source Code Form to which the initial Contributor has attached - the notice in Exhibit A, the Executable Form of such Source Code - Form, and Modifications of such Source Code Form, in each case - including portions thereof. - -1.5. "Incompatible With Secondary Licenses" - means - - (a) that the initial Contributor has attached the notice described - in Exhibit B to the Covered Software; or - - (b) that the Covered Software was made available under the terms of - version 1.1 or earlier of the License, but not also under the - terms of a Secondary License. - -1.6. "Executable Form" - means any form of the work other than Source Code Form. - -1.7. "Larger Work" - means a work that combines Covered Software with other material, in - a separate file or files, that is not Covered Software. - -1.8. "License" - means this document. - -1.9. "Licensable" - means having the right to grant, to the maximum extent possible, - whether at the time of the initial grant or subsequently, any and - all of the rights conveyed by this License. - -1.10. "Modifications" - means any of the following: - - (a) any file in Source Code Form that results from an addition to, - deletion from, or modification of the contents of Covered - Software; or - - (b) any new file in Source Code Form that contains any Covered - Software. - -1.11. "Patent Claims" of a Contributor - means any patent claim(s), including without limitation, method, - process, and apparatus claims, in any patent Licensable by such - Contributor that would be infringed, but for the grant of the - License, by the making, using, selling, offering for sale, having - made, import, or transfer of either its Contributions or its - Contributor Version. - -1.12. "Secondary License" - means either the GNU General Public License, Version 2.0, the GNU - Lesser General Public License, Version 2.1, the GNU Affero General - Public License, Version 3.0, or any later versions of those - licenses. - -1.13. "Source Code Form" - means the form of the work preferred for making modifications. - -1.14. "You" (or "Your") - means an individual or a legal entity exercising rights under this - License. For legal entities, "You" includes any entity that - controls, is controlled by, or is under common control with You. For - purposes of this definition, "control" means (a) the power, direct - or indirect, to cause the direction or management of such entity, - whether by contract or otherwise, or (b) ownership of more than - fifty percent (50%) of the outstanding shares or beneficial - ownership of such entity. - -2. License Grants and Conditions --------------------------------- - -2.1. Grants - -Each Contributor hereby grants You a world-wide, royalty-free, -non-exclusive license: - -(a) under intellectual property rights (other than patent or trademark) - Licensable by such Contributor to use, reproduce, make available, - modify, display, perform, distribute, and otherwise exploit its - Contributions, either on an unmodified basis, with Modifications, or - as part of a Larger Work; and - -(b) under Patent Claims of such Contributor to make, use, sell, offer - for sale, have made, import, and otherwise transfer either its - Contributions or its Contributor Version. - -2.2. Effective Date - -The licenses granted in Section 2.1 with respect to any Contribution -become effective for each Contribution on the date the Contributor first -distributes such Contribution. - -2.3. Limitations on Grant Scope - -The licenses granted in this Section 2 are the only rights granted under -this License. No additional rights or licenses will be implied from the -distribution or licensing of Covered Software under this License. -Notwithstanding Section 2.1(b) above, no patent license is granted by a -Contributor: - -(a) for any code that a Contributor has removed from Covered Software; - or - -(b) for infringements caused by: (i) Your and any other third party's - modifications of Covered Software, or (ii) the combination of its - Contributions with other software (except as part of its Contributor - Version); or - -(c) under Patent Claims infringed by Covered Software in the absence of - its Contributions. - -This License does not grant any rights in the trademarks, service marks, -or logos of any Contributor (except as may be necessary to comply with -the notice requirements in Section 3.4). - -2.4. Subsequent Licenses - -No Contributor makes additional grants as a result of Your choice to -distribute the Covered Software under a subsequent version of this -License (see Section 10.2) or under the terms of a Secondary License (if -permitted under the terms of Section 3.3). - -2.5. Representation - -Each Contributor represents that the Contributor believes its -Contributions are its original creation(s) or it has sufficient rights -to grant the rights to its Contributions conveyed by this License. - -2.6. Fair Use - -This License is not intended to limit any rights You have under -applicable copyright doctrines of fair use, fair dealing, or other -equivalents. - -2.7. Conditions - -Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted -in Section 2.1. - -3. Responsibilities -------------------- - -3.1. Distribution of Source Form - -All distribution of Covered Software in Source Code Form, including any -Modifications that You create or to which You contribute, must be under -the terms of this License. You must inform recipients that the Source -Code Form of the Covered Software is governed by the terms of this -License, and how they can obtain a copy of this License. You may not -attempt to alter or restrict the recipients' rights in the Source Code -Form. - -3.2. Distribution of Executable Form - -If You distribute Covered Software in Executable Form then: - -(a) such Covered Software must also be made available in Source Code - Form, as described in Section 3.1, and You must inform recipients of - the Executable Form how they can obtain a copy of such Source Code - Form by reasonable means in a timely manner, at a charge no more - than the cost of distribution to the recipient; and - -(b) You may distribute such Executable Form under the terms of this - License, or sublicense it under different terms, provided that the - license for the Executable Form does not attempt to limit or alter - the recipients' rights in the Source Code Form under this License. - -3.3. Distribution of a Larger Work - -You may create and distribute a Larger Work under terms of Your choice, -provided that You also comply with the requirements of this License for -the Covered Software. If the Larger Work is a combination of Covered -Software with a work governed by one or more Secondary Licenses, and the -Covered Software is not Incompatible With Secondary Licenses, this -License permits You to additionally distribute such Covered Software -under the terms of such Secondary License(s), so that the recipient of -the Larger Work may, at their option, further distribute the Covered -Software under the terms of either this License or such Secondary -License(s). - -3.4. Notices - -You may not remove or alter the substance of any license notices -(including copyright notices, patent notices, disclaimers of warranty, -or limitations of liability) contained within the Source Code Form of -the Covered Software, except that You may alter any license notices to -the extent required to remedy known factual inaccuracies. - -3.5. Application of Additional Terms - -You may choose to offer, and to charge a fee for, warranty, support, -indemnity or liability obligations to one or more recipients of Covered -Software. However, You may do so only on Your own behalf, and not on -behalf of any Contributor. You must make it absolutely clear that any -such warranty, support, indemnity, or liability obligation is offered by -You alone, and You hereby agree to indemnify every Contributor for any -liability incurred by such Contributor as a result of warranty, support, -indemnity or liability terms You offer. You may include additional -disclaimers of warranty and limitations of liability specific to any -jurisdiction. - -4. Inability to Comply Due to Statute or Regulation ---------------------------------------------------- - -If it is impossible for You to comply with any of the terms of this -License with respect to some or all of the Covered Software due to -statute, judicial order, or regulation then You must: (a) comply with -the terms of this License to the maximum extent possible; and (b) -describe the limitations and the code they affect. Such description must -be placed in a text file included with all distributions of the Covered -Software under this License. Except to the extent prohibited by statute -or regulation, such description must be sufficiently detailed for a -recipient of ordinary skill to be able to understand it. - -5. Termination --------------- - -5.1. The rights granted under this License will terminate automatically -if You fail to comply with any of its terms. However, if You become -compliant, then the rights granted under this License from a particular -Contributor are reinstated (a) provisionally, unless and until such -Contributor explicitly and finally terminates Your grants, and (b) on an -ongoing basis, if such Contributor fails to notify You of the -non-compliance by some reasonable means prior to 60 days after You have -come back into compliance. Moreover, Your grants from a particular -Contributor are reinstated on an ongoing basis if such Contributor -notifies You of the non-compliance by some reasonable means, this is the -first time You have received notice of non-compliance with this License -from such Contributor, and You become compliant prior to 30 days after -Your receipt of the notice. - -5.2. If You initiate litigation against any entity by asserting a patent -infringement claim (excluding declaratory judgment actions, -counter-claims, and cross-claims) alleging that a Contributor Version -directly or indirectly infringes any patent, then the rights granted to -You by any and all Contributors for the Covered Software under Section -2.1 of this License shall terminate. - -5.3. In the event of termination under Sections 5.1 or 5.2 above, all -end user license agreements (excluding distributors and resellers) which -have been validly granted by You or Your distributors under this License -prior to termination shall survive termination. - -************************************************************************ -* * -* 6. Disclaimer of Warranty * -* ------------------------- * -* * -* Covered Software is provided under this License on an "as is" * -* basis, without warranty of any kind, either expressed, implied, or * -* statutory, including, without limitation, warranties that the * -* Covered Software is free of defects, merchantable, fit for a * -* particular purpose or non-infringing. The entire risk as to the * -* quality and performance of the Covered Software is with You. * -* Should any Covered Software prove defective in any respect, You * -* (not any Contributor) assume the cost of any necessary servicing, * -* repair, or correction. This disclaimer of warranty constitutes an * -* essential part of this License. No use of any Covered Software is * -* authorized under this License except under this disclaimer. * -* * -************************************************************************ - -************************************************************************ -* * -* 7. Limitation of Liability * -* -------------------------- * -* * -* Under no circumstances and under no legal theory, whether tort * -* (including negligence), contract, or otherwise, shall any * -* Contributor, or anyone who distributes Covered Software as * -* permitted above, be liable to You for any direct, indirect, * -* special, incidental, or consequential damages of any character * -* including, without limitation, damages for lost profits, loss of * -* goodwill, work stoppage, computer failure or malfunction, or any * -* and all other commercial damages or losses, even if such party * -* shall have been informed of the possibility of such damages. This * -* limitation of liability shall not apply to liability for death or * -* personal injury resulting from such party's negligence to the * -* extent applicable law prohibits such limitation. Some * -* jurisdictions do not allow the exclusion or limitation of * -* incidental or consequential damages, so this exclusion and * -* limitation may not apply to You. * -* * -************************************************************************ - -8. Litigation -------------- - -Any litigation relating to this License may be brought only in the -courts of a jurisdiction where the defendant maintains its principal -place of business and such litigation shall be governed by laws of that -jurisdiction, without reference to its conflict-of-law provisions. -Nothing in this Section shall prevent a party's ability to bring -cross-claims or counter-claims. - -9. Miscellaneous ----------------- - -This License represents the complete agreement concerning the subject -matter hereof. If any provision of this License is held to be -unenforceable, such provision shall be reformed only to the extent -necessary to make it enforceable. Any law or regulation which provides -that the language of a contract shall be construed against the drafter -shall not be used to construe this License against a Contributor. - -10. Versions of the License ---------------------------- - -10.1. New Versions - -Mozilla Foundation is the license steward. Except as provided in Section -10.3, no one other than the license steward has the right to modify or -publish new versions of this License. Each version will be given a -distinguishing version number. - -10.2. Effect of New Versions - -You may distribute the Covered Software under the terms of the version -of the License under which You originally received the Covered Software, -or under the terms of any subsequent version published by the license -steward. - -10.3. Modified Versions - -If you create software not governed by this License, and you want to -create a new license for such software, you may create and use a -modified version of this License if you rename the license and remove -any references to the name of the license steward (except to note that -such modified license differs from this License). - -10.4. Distributing Source Code Form that is Incompatible With Secondary -Licenses - -If You choose to distribute Source Code Form that is Incompatible With -Secondary Licenses under the terms of this version of the License, the -notice described in Exhibit B of this License must be attached. - -Exhibit A - Source Code Form License Notice -------------------------------------------- - - This Source Code Form is subject to the terms of the Mozilla Public - License, v. 2.0. If a copy of the MPL was not distributed with this - file, You can obtain one at http://mozilla.org/MPL/2.0/. - -If it is not possible or desirable to put the notice in a particular -file, then You may include the notice in a location (such as a LICENSE -file in a relevant directory) where a recipient would be likely to look -for such a notice. - -You may add additional accurate notices of copyright ownership. - -Exhibit B - "Incompatible With Secondary Licenses" Notice ---------------------------------------------------------- - - This Source Code Form is "Incompatible With Secondary Licenses", as - defined by the Mozilla Public License, v. 2.0. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to PC/SC Lite for Suse Linux v.1.1.1, -which may be included with JRE 8, JDK 8, and OpenJDK 8 on Linux and Solaris. - ---- begin of LICENSE --- - -Copyright (c) 1999-2004 David Corcoran -Copyright (c) 1999-2004 Ludovic Rousseau -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. -2. 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. -3. All advertising materials mentioning features or use of this software - must display the following acknowledgement: - This product includes software developed by: - David Corcoran - http://www.linuxnet.com (MUSCLE) -4. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - -Changes to this license can be made only by the copyright author with -explicit written consent. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to PorterStemmer v4, which may be -included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - -See: http://tartarus.org/~martin/PorterStemmer - -The software is completely free for any purpose, unless notes at the head of -the program text indicates otherwise (which is rare). In any case, the notes -about licensing are never more restrictive than the BSD License. - -In every case where the software is not written by me (Martin Porter), this -licensing arrangement has been endorsed by the contributor, and it is -therefore unnecessary to ask the contributor again to confirm it. - -I have not asked any contributors (or their employers, if they have them) for -proofs that they have the right to distribute their software in this way. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to Relax NG Object/Parser v.20050510, -which may be included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - -Copyright (c) Kohsuke Kawaguchi - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: The above copyright -notice and this permission notice shall be included in all copies or -substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to RelaxNGCC v1.12, which may be -included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - -Copyright (c) 2000-2003 Daisuke Okajima and Kohsuke Kawaguchi. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -2. 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. - -3. The end-user documentation included with the redistribution, if any, must - include the following acknowledgment: - - "This product includes software developed by Daisuke Okajima - and Kohsuke Kawaguchi (http://relaxngcc.sf.net/)." - -Alternately, this acknowledgment may appear in the software itself, if and -wherever such third-party acknowledgments normally appear. - -4. The names of the copyright holders must not be used to endorse or promote - products derived from this software without prior written permission. For - written permission, please contact the copyright holders. - -5. Products derived from this software may not be called "RELAXNGCC", nor may - "RELAXNGCC" appear in their name, without prior written permission of the - copyright holders. - -THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED 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 APACHE -SOFTWARE FOUNDATION OR ITS 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. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to SAX 2.0.1, which may be included -with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - - SAX is free! - - In fact, it's not possible to own a license to SAX, since it's been placed in - the public domain. - - No Warranty - - Because SAX is released to the public domain, there is no warranty for the - design or for the software implementation, to the extent permitted by - applicable law. Except when otherwise stated in writing the copyright holders - and/or other parties provide SAX "as is" without warranty of any kind, either - expressed or implied, including, but not limited to, the implied warranties - of merchantability and fitness for a particular purpose. The entire risk as - to the quality and performance of SAX is with you. Should SAX prove - defective, you assume the cost of all necessary servicing, repair or - correction. - - In no event unless required by applicable law or agreed to in writing will - any copyright holder, or any other party who may modify and/or redistribute - SAX, be liable to you for damages, including any general, special, incidental - or consequential damages arising out of the use or inability to use SAX - (including but not limited to loss of data or data being rendered inaccurate - or losses sustained by you or third parties or a failure of the SAX to - operate with any other programs), even if such holder or other party has been - advised of the possibility of such damages. - - Copyright Disclaimers - - This page includes statements to that effect by David Megginson, who would - have been able to claim copyright for the original work. SAX 1.0 - - Version 1.0 of the Simple API for XML (SAX), created collectively by the - membership of the XML-DEV mailing list, is hereby released into the public - domain. - - No one owns SAX: you may use it freely in both commercial and non-commercial - applications, bundle it with your software distribution, include it on a - CD-ROM, list the source code in a book, mirror the documentation at your own - web site, or use it in any other way you see fit. - - David Megginson, sax@megginson.com - 1998-05-11 - - SAX 2.0 - - I hereby abandon any property rights to SAX 2.0 (the Simple API for XML), and - release all of the SAX 2.0 source code, compiled code, and documentation - contained in this distribution into the Public Domain. SAX comes with NO - WARRANTY or guarantee of fitness for any purpose. - - David Megginson, david@megginson.com - 2000-05-05 - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to SoftFloat version 2b, which may be -included with JRE 8, JDK 8, and OpenJDK 8 on Linux/ARM. - ---- begin of LICENSE --- - -Use of any of this software is governed by the terms of the license below: - -SoftFloat was written by me, John R. Hauser. This work was made possible in -part by the International Computer Science Institute, located at Suite 600, -1947 Center Street, Berkeley, California 94704. Funding was partially -provided by the National Science Foundation under grant MIP-9311980. The -original version of this code was written as part of a project to build -a fixed-point vector processor in collaboration with the University of -California at Berkeley, overseen by Profs. Nelson Morgan and John Wawrzynek. - -THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort -has been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT -TIMES RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO -PERSONS AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL -LOSSES, COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO -FURTHERMORE EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER -SCIENCE INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES, -COSTS, OR OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE -SOFTWARE. - -Derivative works are acceptable, even for commercial purposes, provided -that the minimal documentation requirements stated in the source code are -satisfied. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to Sparkle 1.5, -which may be included with JRE 8 on Mac OS X. - ---- begin of LICENSE --- - -Copyright (c) 2012 Sparkle.org and Andy Matuschak - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% Portions licensed from Taligent, Inc. - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to Thai Dictionary, which may be -included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - -Copyright (C) 1982 The Royal Institute, Thai Royal Government. - -Copyright (C) 1998 National Electronics and Computer Technology Center, -National Science and Technology Development Agency, -Ministry of Science Technology and Environment, -Thai Royal Government. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to Unicode 6.2.0 & CLDR 21.0.1 -which may be included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - -Unicode Terms of Use - -For the general privacy policy governing access to this site, see the Unicode -Privacy Policy. For trademark usage, see the Unicode® Consortium Name and -Trademark Usage Policy. - -A. Unicode Copyright. - 1. Copyright © 1991-2013 Unicode, Inc. All rights reserved. - - 2. Certain documents and files on this website contain a legend indicating - that "Modification is permitted." Any person is hereby authorized, - without fee, to modify such documents and files to create derivative - works conforming to the Unicode® Standard, subject to Terms and - Conditions herein. - - 3. Any person is hereby authorized, without fee, to view, use, reproduce, - and distribute all documents and files solely for informational - purposes in the creation of products supporting the Unicode Standard, - subject to the Terms and Conditions herein. - - 4. Further specifications of rights and restrictions pertaining to the use - of the particular set of data files known as the "Unicode Character - Database" can be found in Exhibit 1. - - 5. Each version of the Unicode Standard has further specifications of - rights and restrictions of use. For the book editions (Unicode 5.0 and - earlier), these are found on the back of the title page. The online - code charts carry specific restrictions. All other files, including - online documentation of the core specification for Unicode 6.0 and - later, are covered under these general Terms of Use. - - 6. No license is granted to "mirror" the Unicode website where a fee is - charged for access to the "mirror" site. - - 7. Modification is not permitted with respect to this document. All copies - of this document must be verbatim. - -B. Restricted Rights Legend. Any technical data or software which is licensed - to the United States of America, its agencies and/or instrumentalities - under this Agreement is commercial technical data or commercial computer - software developed exclusively at private expense as defined in FAR 2.101, - or DFARS 252.227-7014 (June 1995), as applicable. For technical data, use, - duplication, or disclosure by the Government is subject to restrictions as - set forth in DFARS 202.227-7015 Technical Data, Commercial and Items (Nov - 1995) and this Agreement. For Software, in accordance with FAR 12-212 or - DFARS 227-7202, as applicable, use, duplication or disclosure by the - Government is subject to the restrictions set forth in this Agreement. - -C. Warranties and Disclaimers. - 1. This publication and/or website may include technical or typographical - errors or other inaccuracies . Changes are periodically added to the - information herein; these changes will be incorporated in new editions - of the publication and/or website. Unicode may make improvements and/or - changes in the product(s) and/or program(s) described in this - publication and/or website at any time. - - 2. If this file has been purchased on magnetic or optical media from - Unicode, Inc. the sole and exclusive remedy for any claim will be - exchange of the defective media within ninety (90) days of original - purchase. - - 3. EXCEPT AS PROVIDED IN SECTION C.2, THIS PUBLICATION AND/OR SOFTWARE IS - PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND EITHER EXPRESS, IMPLIED, - OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. - UNICODE AND ITS LICENSORS ASSUME NO RESPONSIBILITY FOR ERRORS OR - OMISSIONS IN THIS PUBLICATION AND/OR SOFTWARE OR OTHER DOCUMENTS WHICH - ARE REFERENCED BY OR LINKED TO THIS PUBLICATION OR THE UNICODE WEBSITE. - -D. Waiver of Damages. In no event shall Unicode or its licensors be liable for - any special, incidental, indirect or consequential damages of any kind, or - any damages whatsoever, whether or not Unicode was advised of the - possibility of the damage, including, without limitation, those resulting - from the following: loss of use, data or profits, in connection with the - use, modification or distribution of this information or its derivatives. - -E.Trademarks & Logos. - 1. The Unicode Word Mark and the Unicode Logo are trademarks of Unicode, - Inc. “The Unicode Consortium” and “Unicode, Inc.” are trade names of - Unicode, Inc. Use of the information and materials found on this - website indicates your acknowledgement of Unicode, Inc.’s exclusive - worldwide rights in the Unicode Word Mark, the Unicode Logo, and the - Unicode trade names. - - 2. The Unicode Consortium Name and Trademark Usage Policy (“Trademark - Policy”) are incorporated herein by reference and you agree to abide by - the provisions of the Trademark Policy, which may be changed from time - to time in the sole discretion of Unicode, Inc. - - 3. All third party trademarks referenced herein are the property of their - respective owners. - -Miscellaneous. - 1. Jurisdiction and Venue. This server is operated from a location in the - State of California, United States of America. Unicode makes no - representation that the materials are appropriate for use in other - locations. If you access this server from other locations, you are - responsible for compliance with local laws. This Agreement, all use of - this site and any claims and damages resulting from use of this site are - governed solely by the laws of the State of California without regard to - any principles which would apply the laws of a different jurisdiction. - The user agrees that any disputes regarding this site shall be resolved - solely in the courts located in Santa Clara County, California. The user - agrees said courts have personal jurisdiction and agree to waive any - right to transfer the dispute to any other forum. - - 2. Modification by Unicode. Unicode shall have the right to modify this - Agreement at any time by posting it to this site. The user may not - assign any part of this Agreement without Unicode’s prior written - consent. - - 3. Taxes. The user agrees to pay any taxes arising from access to this - website or use of the information herein, except for those based on - Unicode’s net income. - - 4. Severability. If any provision of this Agreement is declared invalid or - unenforceable, the remaining provisions of this Agreement shall remain - in effect. - - 5. Entire Agreement. This Agreement constitutes the entire agreement - between the parties. - -EXHIBIT 1 -UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE - -Unicode Data Files include all data files under the directories -http://www.unicode.org/Public/, http://www.unicode.org/reports/, and -http://www.unicode.org/cldr/data/. Unicode Data Files do not include PDF -online code charts under the directory http://www.unicode.org/Public/. -Software includes any source code published in the Unicode Standard or under -the directories http://www.unicode.org/Public/, -http://www.unicode.org/reports/, and http://www.unicode.org/cldr/data/. - -NOTICE TO USER: Carefully read the following legal agreement. BY DOWNLOADING, -INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S DATA FILES ("DATA -FILES"), AND/OR SOFTWARE ("SOFTWARE"), YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO -BE BOUND BY, ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT -AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES OR -SOFTWARE. - -COPYRIGHT AND PERMISSION NOTICE - -Copyright © 1991-2012 Unicode, Inc. All rights reserved. Distributed under the -Terms of Use in http://www.unicode.org/copyright.html. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of the Unicode data files and any associated documentation (the "Data Files") -or Unicode software and any associated documentation (the "Software") to deal -in the Data Files or Software without restriction, including without -limitation the rights to use, copy, modify, merge, publish, distribute, and/or -sell copies of the Data Files or Software, and to permit persons to whom the -Data Files or Software are furnished to do so, provided that (a) the above -copyright notice(s) and this permission notice appear with all copies of the -Data Files or Software, (b) both the above copyright notice(s) and this -permission notice appear in associated documentation, and (c) there is clear -notice in each modified Data File or in the Software as well as in the -documentation associated with the Data File(s) or Software that the data or -software has been modified. - -THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY -KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD -PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN -THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL -DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR -PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS -ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE -DATA FILES OR SOFTWARE. - -Except as contained in this notice, the name of a copyright holder shall not -be used in advertising or otherwise to promote the sale, use or other dealings -in these Data Files or Software without prior written authorization of the -copyright holder. - -Unicode and the Unicode logo are trademarks of Unicode, Inc. in the United -States and other countries. All third party trademarks referenced herein are -the property of their respective owners. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to UPX v3.01, which may be included -with JRE 8 on Windows. - ---- begin of LICENSE --- - -Use of any of this software is governed by the terms of the license below: - - - ooooo ooo ooooooooo. ooooooo ooooo - `888' `8' `888 `Y88. `8888 d8' - 888 8 888 .d88' Y888..8P - 888 8 888ooo88P' `8888' - 888 8 888 .8PY888. - `88. .8' 888 d8' `888b - `YbodP' o888o o888o o88888o - - - The Ultimate Packer for eXecutables - Copyright (c) 1996-2000 Markus Oberhumer & Laszlo Molnar - http://wildsau.idv.uni-linz.ac.at/mfx/upx.html - http://www.nexus.hu/upx - http://upx.tsx.org - - -PLEASE CAREFULLY READ THIS LICENSE AGREEMENT, ESPECIALLY IF YOU PLAN -TO MODIFY THE UPX SOURCE CODE OR USE A MODIFIED UPX VERSION. - - -ABSTRACT -======== - - UPX and UCL are copyrighted software distributed under the terms - of the GNU General Public License (hereinafter the "GPL"). - - The stub which is imbedded in each UPX compressed program is part - of UPX and UCL, and contains code that is under our copyright. The - terms of the GNU General Public License still apply as compressing - a program is a special form of linking with our stub. - - As a special exception we grant the free usage of UPX for all - executables, including commercial programs. - See below for details and restrictions. - - -COPYRIGHT -========= - - UPX and UCL are copyrighted software. All rights remain with the authors. - - UPX is Copyright (C) 1996-2000 Markus Franz Xaver Johannes Oberhumer - UPX is Copyright (C) 1996-2000 Laszlo Molnar - - UCL is Copyright (C) 1996-2000 Markus Franz Xaver Johannes Oberhumer - - -GNU GENERAL PUBLIC LICENSE -========================== - - UPX and the UCL library are free software; you can redistribute them - and/or modify them under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of - the License, or (at your option) any later version. - - UPX and UCL are distributed in the hope that they will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. - - -SPECIAL EXCEPTION FOR COMPRESSED EXECUTABLES -============================================ - - The stub which is imbedded in each UPX compressed program is part - of UPX and UCL, and contains code that is under our copyright. The - terms of the GNU General Public License still apply as compressing - a program is a special form of linking with our stub. - - Hereby Markus F.X.J. Oberhumer and Laszlo Molnar grant you special - permission to freely use and distribute all UPX compressed programs - (including commercial ones), subject to the following restrictions: - - 1. You must compress your program with a completely unmodified UPX - version; either with our precompiled version, or (at your option) - with a self compiled version of the unmodified UPX sources as - distributed by us. - 2. This also implies that the UPX stub must be completely unmodfied, i.e. - the stub imbedded in your compressed program must be byte-identical - to the stub that is produced by the official unmodified UPX version. - 3. The decompressor and any other code from the stub must exclusively get - used by the unmodified UPX stub for decompressing your program at - program startup. No portion of the stub may get read, copied, - called or otherwise get used or accessed by your program. - - -ANNOTATIONS -=========== - - - You can use a modified UPX version or modified UPX stub only for - programs that are compatible with the GNU General Public License. - - - We grant you special permission to freely use and distribute all UPX - compressed programs. But any modification of the UPX stub (such as, - but not limited to, removing our copyright string or making your - program non-decompressible) will immediately revoke your right to - use and distribute a UPX compressed program. - - - UPX is not a software protection tool; by requiring that you use - the unmodified UPX version for your proprietary programs we - make sure that any user can decompress your program. This protects - both you and your users as nobody can hide malicious code - - any program that cannot be decompressed is highly suspicious - by definition. - - - You can integrate all or part of UPX and UCL into projects that - are compatible with the GNU GPL, but obviously you cannot grant - any special exceptions beyond the GPL for our code in your project. - - - We want to actively support manufacturers of virus scanners and - similar security software. Please contact us if you would like to - incorporate parts of UPX or UCL into such a product. - - - -Markus F.X.J. Oberhumer Laszlo Molnar -markus.oberhumer@jk.uni-linz.ac.at ml1050@cdata.tvnet.hu - -Linz, Austria, 25 Feb 2000 - -Additional License(s) - -The UPX license file is at http://upx.sourceforge.net/upx-license.html. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to Xfree86-VidMode Extension 1.0, -which may be included with JRE 8, JDK 8, and OpenJDK 8 on Linux and Solaris. - ---- begin of LICENSE --- - -Version 1.1 of XFree86 ProjectLicence. - -Copyright (C) 1994-2004 The XFree86 Project, Inc. All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicence, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so,subject to the following conditions: - - 1. Redistributions of source code must retain the above copyright - notice,this list of conditions, and the following disclaimer. - - 2. 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, and in the same place - and form as other copyright, license and disclaimer information. - - 3. The end-user documentation included with the redistribution, if any,must - include the following acknowledgment: "This product includes - software developed by The XFree86 Project, Inc (http://www.xfree86.org/) and - its contributors", in the same place and form as other third-party - acknowledgments. Alternately, this acknowledgment may appear in the software - itself, in the same form and location as other such third-party - acknowledgments. - - 4. Except as contained in this notice, the name of The XFree86 Project,Inc - shall not be used in advertising or otherwise to promote the sale, use - or other dealings in this Software without prior written authorization from - The XFree86 Project, Inc. - - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 XFREE86 PROJECT, INC OR ITS 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. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to X Window System 6.8.2, which may be -included with JRE 8, JDK 8, and OpenJDK 8 on Linux and Solaris. - ---- begin of LICENSE --- - - Licenses -The X.Org Foundation March 2004 - -1. Introduction - -The X.org Foundation X Window System distribution is a compilation of code and -documentation from many sources. This document is intended primarily as a -guide to the licenses used in the distribution: you must check each file -and/or package for precise redistribution terms. None-the-less, this summary -may be useful to many users. No software incorporating the XFree86 1.1 license -has been incorporated. - -This document is based on the compilation from XFree86. - -2. XFree86 License - -XFree86 code without an explicit copyright is covered by the following -copyright/license: - -Copyright (C) 1994-2003 The XFree86 Project, Inc. All Rights Reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of the XFree86 Project shall not -be used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization from the XFree86 Project. - -3. Other Licenses - -Portions of code are covered by the following licenses/copyrights. See -individual files for the copyright dates. - -3.1. X/MIT Copyrights - -3.1.1. X Consortium - -Copyright (C) X Consortium - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE X -CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of the X Consortium shall not be -used in advertising or otherwise to promote the sale, use or other dealings in -this Software without prior written authorization from the X Consortium. - -X Window System is a trademark of X Consortium, Inc. - -3.1.2. The Open Group - -Copyright The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that the -above copyright notice appear in all copies and that both that copyright -notice and this permission notice appear in supporting documentation. - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of The Open Group shall not be -used in advertising or otherwise to promote the sale, use or other dealings in -this Software without prior written authorization from The Open Group. 3.2. -Berkeley-based copyrights: - -o -3.2.1. General - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. 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. - - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. 3.2.2. UCB/LBL - -Copyright (c) 1993 The Regents of the University of California. All rights -reserved. - -This software was developed by the Computer Systems Engineering group at -Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and contributed to -Berkeley. - -All advertising materials mentioning features or use of this software must -display the following acknowledgement: This product includes software -developed by the University of California, Lawrence Berkeley Laboratory. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. 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. - - 3. All advertising materials mentioning features or use of this software - must display the following acknowledgement: This product includes software - developed by the University of California, Berkeley and its contributors. - - 4. Neither the name of the University nor the names of its contributors may - be used to endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. 3.2.3. The -NetBSD Foundation, Inc. - -Copyright (c) 2003 The NetBSD Foundation, Inc. All rights reserved. - -This code is derived from software contributed to The NetBSD Foundation by Ben -Collver - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. 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. - - 3. All advertising materials mentioning features or use of this software - must display the following acknowledgement: This product includes software - developed by the NetBSD Foundation, Inc. and its contributors. - - 4. Neither the name of The NetBSD Foundation nor the names of its - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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. 3.2.4. Theodore -Ts'o. - -Copyright Theodore Ts'o, 1994, 1995, 1996, 1997, 1998, 1999. All rights -reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - and the entire permission notice in its entirety, including the disclaimer - of warranties. - - 2. 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. - - 3. he name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE, ALL OF WHICH ARE HEREBY DISCLAIMED. IN NO -EVENT SHALL THE AUTHOR 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 NOT ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. 3.2.5. Theo de Raadt and Damien Miller - -Copyright (c) 1995,1999 Theo de Raadt. All rights reserved. Copyright (c) -2001-2002 Damien Miller. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. 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 AUTHOR ``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 AUTHOR 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. 3.2.6. Todd C. Miller - -Copyright (c) 1998 Todd C. Miller - -Permission to use, copy, modify, and distribute this software for any purpose -with or without fee is hereby granted, provided that the above copyright -notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND TODD C. MILLER DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL TODD C. MILLER BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 3.2.7. Thomas -Winischhofer - -Copyright (C) 2001-2004 Thomas Winischhofer - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. 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. - - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESSED 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 AUTHOR 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. 3.3. NVIDIA Corp - -Copyright (c) 1996 NVIDIA, Corp. All rights reserved. - -NOTICE TO USER: The source code is copyrighted under U.S. and international -laws. NVIDIA, Corp. of Sunnyvale, California owns the copyright and as design -patents pending on the design and interface of the NV chips. Users and -possessors of this source code are hereby granted a nonexclusive, royalty-free -copyright and design patent license to use this code in individual and -commercial software. - -Any use of this source code must include, in the user documentation and -internal comments to the code, notices to the end user as follows: - -Copyright (c) 1996 NVIDIA, Corp. NVIDIA design patents pending in the U.S. and -foreign countries. - -NVIDIA, CORP. MAKES NO REPRESENTATION ABOUT THE SUITABILITY OF THIS SOURCE -CODE FOR ANY PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED -WARRANTY OF ANY KIND. NVIDIA, CORP. DISCLAIMS ALL WARRANTIES WITH REGARD TO -THIS SOURCE CODE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL NVIDIA, CORP. BE LIABLE -FOR ANY SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY -DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOURCE CODE. 3.4. GLX Public -License - -GLX PUBLIC LICENSE (Version 1.0 (2/11/99)) ("License") - -Subject to any third party claims, Silicon Graphics, Inc. ("SGI") hereby -grants permission to Recipient (defined below), under Recipient's copyrights -in the Original Software (defined below), to use, copy, modify, merge, -publish, distribute, sublicense and/or sell copies of Subject Software -(defined below), and to permit persons to whom the Subject Software is -furnished in accordance with this License to do the same, subject to all of -the following terms and conditions, which Recipient accepts by engaging in any -such use, copying, modifying, merging, publishing, distributing, sublicensing -or selling: - -1. Definitions. - - (a) "Original Software" means source code of computer software code which - is described in Exhibit A as Original Software. - - (b) "Modifications" means any addition to or deletion from the substance - or structure of either the Original Software or any previous - Modifications. When Subject Software is released as a series of files, a - Modification means (i) any addition to or deletion from the contents of a - file containing Original Software or previous Modifications and (ii) any - new file that contains any part of the Original Code or previous - Modifications. - - (c) "Subject Software" means the Original Software or Modifications or the - combination of the Original Software and Modifications, or portions of any - of the foregoing. - - (d) "Recipient" means an individual or a legal entity exercising rights - under, and complying with all of the terms of, this License. For legal - entities, "Recipient" includes any entity which controls, is controlled - by, or is under common control with Recipient. For purposes of this - definition, "control" of an entity means (a) the power, direct or - indirect, to direct or manage such entity, or (b) ownership of fifty - percent (50%) or more of the outstanding shares or beneficial ownership of - such entity. - -2. Redistribution of Source Code Subject to These Terms. Redistributions of -Subject Software in source code form must retain the notice set forth in -Exhibit A, below, in every file. A copy of this License must be included in -any documentation for such Subject Software where the recipients' rights -relating to Subject Software are described. Recipient may distribute the -source code version of Subject Software under a license of Recipient's choice, -which may contain terms different from this License, provided that (i) -Recipient is in compliance with the terms of this License, and (ii) the -license terms include this Section 2 and Sections 3, 4, 7, 8, 10, 12 and 13 of -this License, which terms may not be modified or superseded by any other terms -of such license. If Recipient distributes the source code version under a -different license Recipient must make it absolutely clear that any terms which -differ from this License are offered by Recipient alone, not by SGI. Recipient -hereby agrees to indemnify SGI for any liability incurred by SGI as a result -of any such terms Recipient offers. - -3. Redistribution in Executable Form. The notice set forth in Exhibit A must -be conspicuously included in any notice in an executable version of Subject -Software, related documentation or collateral in which Recipient describes the -user's rights relating to the Subject Software. Recipient may distribute the -executable version of Subject Software under a license of Recipient's choice, -which may contain terms different from this License, provided that (i) -Recipient is in compliance with the terms of this License, and (ii) the -license terms include this Section 3 and Sections 4, 7, 8, 10, 12 and 13 of -this License, which terms may not be modified or superseded by any other terms -of such license. If Recipient distributes the executable version under a -different license Recipient must make it absolutely clear that any terms which -differ from this License are offered by Recipient alone, not by SGI. Recipient -hereby agrees to indemnify SGI for any liability incurred by SGI as a result -of any such terms Recipient offers. - -4. Termination. This License and the rights granted hereunder will terminate -automatically if Recipient fails to comply with terms herein and fails to cure -such breach within 30 days of the breach. Any sublicense to the Subject -Software which is properly granted shall survive any termination of this -License absent termination by the terms of such sublicense. Provisions which, -by their nature, must remain in effect beyond the termination of this License -shall survive. - -5. No Trademark Rights. This License does not grant any rights to use any -trade name, trademark or service mark whatsoever. No trade name, trademark or -service mark of SGI may be used to endorse or promote products derived from -the Subject Software without prior written permission of SGI. - -6. No Other Rights. This License does not grant any rights with respect to the -OpenGL API or to any software or hardware implementation thereof or to any -other software whatsoever, nor shall any other rights or licenses not -expressly granted hereunder arise by implication, estoppel or otherwise with -respect to the Subject Software. Title to and ownership of the Original -Software at all times remains with SGI. All rights in the Original Software -not expressly granted under this License are reserved. - -7. Compliance with Laws; Non-Infringement. Recipient shall comply with all -applicable laws and regulations in connection with use and distribution of the -Subject Software, including but not limited to, all export and import control -laws and regulations of the U.S. government and other countries. Recipient may -not distribute Subject Software that (i) in any way infringes (directly or -contributorily) the rights (including patent, copyright, trade secret, -trademark or other intellectual property rights of any kind) of any other -person or entity or (ii) breaches any representation or warranty, express, -implied or statutory, which under any applicable law it might be deemed to -have been distributed. - -8. Claims of Infringement. If Recipient at any time has knowledge of any one -or more third party claims that reproduction, modification, use, distribution, -import or sale of Subject Software (including particular functionality or code -incorporated in Subject Software) infringes the third party's intellectual -property rights, Recipient must place in a well-identified web page bearing -the title "LEGAL" a description of each such claim and a description of the -party making each such claim in sufficient detail that a user of the Subject -Software will know whom to contact regarding the claim. Also, upon gaining -such knowledge of any such claim, Recipient must conspicuously include the URL -for such web page in the Exhibit A notice required under Sections 2 and 3, -above, and in the text of any related documentation, license agreement or -collateral in which Recipient describes end user's rights relating to the -Subject Software. If Recipient obtains such knowledge after it makes Subject -Software available to any other person or entity, Recipient shall take other -steps (such as notifying appropriate mailing lists or newsgroups) reasonably -calculated to inform those who received the Subject Software that new -knowledge has been obtained. - -9. DISCLAIMER OF WARRANTY. SUBJECT SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, -WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT -LIMITATION, WARRANTIES THAT THE SUBJECT SOFTWARE IS FREE OF DEFECTS, -MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON- INFRINGING. SGI ASSUMES NO -RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE. SHOULD ANY SOFTWARE -PROVE DEFECTIVE IN ANY RESPECT, SGI ASSUMES NO COST OR LIABILITY FOR ANY -SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN -ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY SUBJECT SOFTWARE IS AUTHORIZED -HEREUNDER EXCEPT UNDER THIS DISCLAIMER. - -10. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, -WHETHER TORT (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE OR STRICT LIABILITY), -CONTRACT, OR OTHERWISE, SHALL SGI OR ANY SGI LICENSOR BE LIABLE FOR ANY -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY -CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK -STOPPAGE, LOSS OF DATA, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER -COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF -THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY -TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SGI's NEGLIGENCE TO -THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT -ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO -THAT EXCLUSION AND LIMITATION MAY NOT APPLY TO RECIPIENT. - -11. Indemnity. Recipient shall be solely responsible for damages arising, -directly or indirectly, out of its utilization of rights under this License. -Recipient will defend, indemnify and hold harmless Silicon Graphics, Inc. from -and against any loss, liability, damages, costs or expenses (including the -payment of reasonable attorneys fees) arising out of Recipient's use, -modification, reproduction and distribution of the Subject Software or out of -any representation or warranty made by Recipient. - -12. U.S. Government End Users. The Subject Software is a "commercial item" -consisting of "commercial computer software" as such terms are defined in -title 48 of the Code of Federal Regulations and all U.S. Government End Users -acquire only the rights set forth in this License and are subject to the terms -of this License. - -13. Miscellaneous. This License represents the complete agreement concerning -subject matter hereof. If any provision of this License is held to be -unenforceable, such provision shall be reformed so as to achieve as nearly as -possible the same economic effect as the original provision and the remainder -of this License will remain in effect. This License shall be governed by and -construed in accordance with the laws of the United States and the State of -California as applied to agreements entered into and to be performed entirely -within California between California residents. Any litigation relating to -this License shall be subject to the exclusive jurisdiction of the Federal -Courts of the Northern District of California (or, absent subject matter -jurisdiction in such courts, the courts of the State of California), with -venue lying exclusively in Santa Clara County, California, with the losing -party responsible for costs, including without limitation, court costs and -reasonable attorneys fees and expenses. The application of the United Nations -Convention on Contracts for the International Sale of Goods is expressly -excluded. Any law or regulation which provides that the language of a contract -shall be construed against the drafter shall not apply to this License. - -Exhibit A - -The contents of this file are subject to Sections 2, 3, 4, 7, 8, 10, 12 and 13 -of the GLX Public License Version 1.0 (the "License"). You may not use this -file except in compliance with those sections of the License. You may obtain a -copy of the License at Silicon Graphics, Inc., attn: Legal Services, 2011 N. -Shoreline Blvd., Mountain View, CA 94043 or at -http://www.sgi.com/software/opensource/glx/license.html. - -Software distributed under the License is distributed on an "AS IS" basis. ALL -WARRANTIES ARE DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED -WARRANTIES OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR PURPOSE OR OF NON- -INFRINGEMENT. See the License for the specific language governing rights and -limitations under the License. - -The Original Software is GLX version 1.2 source code, released February, 1999. -The developer of the Original Software is Silicon Graphics, Inc. Those -portions of the Subject Software created by Silicon Graphics, Inc. are -Copyright (c) 1991-9 Silicon Graphics, Inc. All Rights Reserved. 3.5. CID -Font Code Public License - -CID FONT CODE PUBLIC LICENSE (Version 1.0 (3/31/99))("License") - -Subject to any applicable third party claims, Silicon Graphics, Inc. ("SGI") -hereby grants permission to Recipient (defined below), under SGI's copyrights -in the Original Software (defined below), to use, copy, modify, merge, -publish, distribute, sublicense and/or sell copies of Subject Software -(defined below) in both source code and executable form, and to permit persons -to whom the Subject Software is furnished in accordance with this License to -do the same, subject to all of the following terms and conditions, which -Recipient accepts by engaging in any such use, copying, modifying, merging, -publication, distributing, sublicensing or selling: - -1. Definitions. - - a. "Original Software" means source code of computer software code that is - described in Exhibit A as Original Software. - - b. "Modifications" means any addition to or deletion from the substance or - structure of either the Original Software or any previous Modifications. - When Subject Software is released as a series of files, a Modification - means (i) any addition to or deletion from the contents of a file - containing Original Software or previous Modifications and (ii) any new - file that contains any part of the Original Code or previous - Modifications. - - c. "Subject Software" means the Original Software or Modifications or the - combination of the Original Software and Modifications, or portions of any - of the foregoing. - - d. "Recipient" means an individual or a legal entity exercising rights - under the terms of this License. For legal entities, "Recipient" includes - any entity that controls, is controlled by, or is under common control - with Recipient. For purposes of this definition, "control" of an entity - means (i) the power, direct or indirect, to direct or manage such entity, - or (ii) ownership of fifty percent (50%) or more of the outstanding shares - or beneficial ownership of such entity. - - e. "Required Notice" means the notice set forth in Exhibit A to this - License. - - f. "Accompanying Technology" means any software or other technology that - is not a Modification and that is distributed or made publicly available - by Recipient with the Subject Software. Separate software files that do - not contain any Original Software or any previous Modification shall not - be deemed a Modification, even if such software files are aggregated as - part of a product, or in any medium of storage, with any file that does - contain Original Software or any previous Modification. - -2. License Terms. All distribution of the Subject Software must be made -subject to the terms of this License. A copy of this License and the Required -Notice must be included in any documentation for Subject Software where -Recipient's rights relating to Subject Software and/or any Accompanying -Technology are described. Distributions of Subject Software in source code -form must also include the Required Notice in every file distributed. In -addition, a ReadMe file entitled "Important Legal Notice" must be distributed -with each distribution of one or more files that incorporate Subject Software. -That file must be included with distributions made in both source code and -executable form. A copy of the License and the Required Notice must be -included in that file. Recipient may distribute Accompanying Technology under -a license of Recipient's choice, which may contain terms different from this -License, provided that (i) Recipient is in compliance with the terms of this -License, (ii) such other license terms do not modify or supersede the terms of -this License as applicable to the Subject Software, (iii) Recipient hereby -indemnifies SGI for any liability incurred by SGI as a result of the -distribution of Accompanying Technology or the use of other license terms. - -3. Termination. This License and the rights granted hereunder will terminate -automatically if Recipient fails to comply with terms herein and fails to cure -such breach within 30 days of the breach. Any sublicense to the Subject -Software that is properly granted shall survive any termination of this -License absent termination by the terms of such sublicense. Provisions which, -by their nature, must remain in effect beyond the termination of this License -shall survive. - -4. Trademark Rights. This License does not grant any rights to use any trade -name, trademark or service mark whatsoever. No trade name, trademark or -service mark of SGI may be used to endorse or promote products derived from or -incorporating any Subject Software without prior written permission of SGI. - -5. No Other Rights. No rights or licenses not expressly granted hereunder -shall arise by implication, estoppel or otherwise. Title to and ownership of -the Original Software at all times remains with SGI. All rights in the -Original Software not expressly granted under this License are reserved. - -6. Compliance with Laws; Non-Infringement. Recipient shall comply with all -applicable laws and regulations in connection with use and distribution of the -Subject Software, including but not limited to, all export and import control -laws and regulations of the U.S. government and other countries. Recipient may -not distribute Subject Software that (i) in any way infringes (directly or -contributorily) the rights (including patent, copyright, trade secret, -trademark or other intellectual property rights of any kind) of any other -person or entity, or (ii) breaches any representation or warranty, express, -implied or statutory, which under any applicable law it might be deemed to -have been distributed. - -7. Claims of Infringement. If Recipient at any time has knowledge of any one -or more third party claims that reproduction, modification, use, distribution, -import or sale of Subject Software (including particular functionality or code -incorporated in Subject Software) infringes the third party's intellectual -property rights, Recipient must place in a well-identified web page bearing -the title "LEGAL" a description of each such claim and a description of the -party making each such claim in sufficient detail that a user of the Subject -Software will know whom to contact regarding the claim. Also, upon gaining -such knowledge of any such claim, Recipient must conspicuously include the URL -for such web page in the Required Notice, and in the text of any related -documentation, license agreement or collateral in which Recipient describes -end user's rights relating to the Subject Software. If Recipient obtains such -knowledge after it makes Subject Software available to any other person or -entity, Recipient shall take other steps (such as notifying appropriate -mailing lists or newsgroups) reasonably calculated to provide such knowledge -to those who received the Subject Software. - -8. DISCLAIMER OF WARRANTY. SUBJECT SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, -WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT -LIMITATION, WARRANTIES THAT THE SUBJECT SOFTWARE IS FREE OF DEFECTS, -MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. SGI ASSUMES NO -RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE. SHOULD ANY SOFTWARE -PROVE DEFECTIVE IN ANY RESPECT, SGI ASSUMES NO COST OR LIABILITY FOR ANY -SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN -ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY SUBJECT SOFTWARE IS AUTHORIZED -HEREUNDER EXCEPT UNDER THIS DISCLAIMER. - -9. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, -WHETHER TORT (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE OR STRICT LIABILITY), -CONTRACT, OR OTHERWISE, SHALL SGI OR ANY SGI LICENSOR BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SUBJECT SOFTWARE OR -THE USE OR OTHER DEALINGS IN THE SUBJECT SOFTWARE. SOME JURISDICTIONS DO NOT -ALLOW THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES, SO THIS EXCLUSION AND -LIMITATION MAY NOT APPLY TO RECIPIENT TO THE EXTENT SO DISALLOWED. - -10. Indemnity. Recipient shall be solely responsible for damages arising, -directly or indirectly, out of its utilization of rights under this License. -Recipient will defend, indemnify and hold SGI and its successors and assigns -harmless from and against any loss, liability, damages, costs or expenses -(including the payment of reasonable attorneys fees) arising out of -(Recipient's use, modification, reproduction and distribution of the Subject -Software or out of any representation or warranty made by Recipient. - -11. U.S. Government End Users. The Subject Software is a "commercial item" -consisting of "commercial computer software" as such terms are defined in -title 48 of the Code of Federal Regulations and all U.S. Government End Users -acquire only the rights set forth in this License and are subject to the terms -of this License. - -12. Miscellaneous. This License represents the complete agreement concerning -subject matter hereof. If any provision of this License is held to be -unenforceable by any judicial or administrative authority having proper -jurisdiction with respect thereto, such provision shall be reformed so as to -achieve as nearly as possible the same economic effect as the original -provision and the remainder of this License will remain in effect. This -License shall be governed by and construed in accordance with the laws of the -United States and the State of California as applied to agreements entered -into and to be performed entirely within California between California -residents. Any litigation relating to this License shall be subject to the -exclusive jurisdiction of the Federal Courts of the Northern District of -California (or, absent subject matter jurisdiction in such courts, the courts -of the State of California), with venue lying exclusively in Santa Clara -County, California, with the losing party responsible for costs, including -without limitation, court costs and reasonable attorneys fees and expenses. -The application of the United Nations Convention on Contracts for the -International Sale of Goods is expressly excluded. Any law or regulation that -provides that the language of a contract shall be construed against the -drafter shall not apply to this License. - -Exhibit A - -Copyright (c) 1994-1999 Silicon Graphics, Inc. - -The contents of this file are subject to the CID Font Code Public License -Version 1.0 (the "License"). You may not use this file except in compliance -with the License. You may obtain a copy of the License at Silicon Graphics, -Inc., attn: Legal Services, 2011 N. Shoreline Blvd., Mountain View, CA 94043 -or at http://www.sgi.com/software/opensource/cid/license.html - -Software distributed under the License is distributed on an "AS IS" basis. ALL -WARRANTIES ARE DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED -WARRANTIES OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR PURPOSE OR OF -NON-INFRINGEMENT. See the License for the specific language governing rights -and limitations under the License. - -The Original Software (as defined in the License) is CID font code that was -developed by Silicon Graphics, Inc. Those portions of the Subject Software (as -defined in the License) that were created by Silicon Graphics, Inc. are -Copyright (c) 1994-1999 Silicon Graphics, Inc. All Rights Reserved. - -[NOTE: When using this text in connection with Subject Software delivered -solely in object code form, Recipient may replace the words "this file" with -"this software" in both the first and second sentences.] 3.6. Bitstream Vera -Fonts Copyright - -The fonts have a generous copyright, allowing derivative works (as long as -"Bitstream" or "Vera" are not in the names), and full redistribution (so long -as they are not *sold* by themselves). They can be be bundled, redistributed -and sold with any software. - -The fonts are distributed under the following copyright: - -Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is a -trademark of Bitstream, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of the fonts accompanying this license ("Fonts") and associated documentation -files (the "Font Software"), to reproduce and distribute the Font Software, -including without limitation the rights to use, copy, merge, publish, -distribute, and/or sell copies of the Font Software, and to permit persons to -whom the Font Software is furnished to do so, subject to the following -conditions: - -The above copyright and trademark notices and this permission notice shall be -included in all copies of one or more of the Font Software typefaces. - -The Font Software may be modified, altered, or added to, and in particular the -designs of glyphs or characters in the Fonts may be modified and additional -glyphs or characters may be added to the Fonts, only if the fonts are renamed -to names not containing either the words "Bitstream" or the word "Vera". - -This License becomes null and void to the extent applicable to Fonts or Font -Software that has been modified and is distributed under the "Bitstream Vera" -names. - -The Font Software may be sold as part of a larger software package but no copy -of one or more of the Font Software typefaces may be sold by itself. - -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, -TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME FOUNDATION -BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, -SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO -USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. - -Except as contained in this notice, the names of Gnome, the Gnome Foundation, -and Bitstream Inc., shall not be used in advertising or otherwise to promote -the sale, use or other dealings in this Font Software without prior written -authorization from the Gnome Foundation or Bitstream Inc., respectively. For -further information, contact: fonts at gnome dot org. 3.7. Bigelow & Holmes -Inc and URW++ GmbH Luxi font license - -Luxi fonts copyright (c) 2001 by Bigelow & Holmes Inc. Luxi font instruction -code copyright (c) 2001 by URW++ GmbH. All Rights Reserved. Luxi is a -registered trademark of Bigelow & Holmes Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of these Fonts and associated documentation files (the "Font Software"), to -deal in the Font Software, including without limitation the rights to use, -copy, merge, publish, distribute, sublicense, and/or sell copies of the Font -Software, and to permit persons to whom the Font Software is furnished to do -so, subject to the following conditions: - -The above copyright and trademark notices and this permission notice shall be -included in all copies of one or more of the Font Software. - -The Font Software may not be modified, altered, or added to, and in particular -the designs of glyphs or characters in the Fonts may not be modified nor may -additional glyphs or characters be added to the Fonts. This License becomes -null and void when the Fonts or Font Software have been modified. - -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, -TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BIGELOW & HOLMES INC. OR URW++ -GMBH. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY -GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR -INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT -SOFTWARE. - -Except as contained in this notice, the names of Bigelow & Holmes Inc. and -URW++ GmbH. shall not be used in advertising or otherwise to promote the sale, -use or other dealings in this Font Software without prior written -authorization from Bigelow & Holmes Inc. and URW++ GmbH. - -For further information, contact: - -info@urwpp.de or design@bigelowandholmes.com - - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to zlib v1.2.5, which may be included -with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - - version 1.2.5, July 18th, 2005 - - Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - - Jean-loup Gailly Mark Adler - jloup@gzip.org madler@alumni.caltech.edu - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to the following which may be -included with JRE 8, JDK 8, and OpenJDK 8, except where noted: - - Apache Commons Math 2.2 - Apache Derby 10.10.1.2 [included with JDK 8] - Apache Jakarta BCEL 5.2 - Apache Jakarta Regexp 1.4 - Apache Santuario XML Security for Java 1.5.4 - Apache Xalan-Java 2.7.1 - Apache Xerces Java 2.10.0 - Apache XML Resolver 1.1 - Dynalink 0.5 - - ---- begin of LICENSE --- - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - diff --git a/jdk/make/copy/Copy-java.base.gmk b/jdk/make/copy/Copy-java.base.gmk index c9964cc1730..07fe8f3d56e 100644 --- a/jdk/make/copy/Copy-java.base.gmk +++ b/jdk/make/copy/Copy-java.base.gmk @@ -233,3 +233,17 @@ ifeq ($(OPENJDK_TARGET_OS), solaris) endif ################################################################################ + +# JDK license and assembly exception files to be packaged in JMOD + +JDK_LICENSE ?= $(JDK_TOPDIR)/LICENSE +JDK_NOTICE ?= $(JDK_TOPDIR)/ASSEMBLY_EXCEPTION + +$(eval $(call SetupCopyFiles, COPY_JDK_NOTICES, \ + FILES := $(JDK_LICENSE) $(JDK_NOTICE), \ + DEST := $(LEGAL_DST_DIR), \ + FLATTEN := true, \ +)) + +TARGETS += $(COPY_JDK_NOTICES) + diff --git a/jdk/make/copy/CopyCommon.gmk b/jdk/make/copy/CopyCommon.gmk index cb87c80294f..c82edd29d4e 100644 --- a/jdk/make/copy/CopyCommon.gmk +++ b/jdk/make/copy/CopyCommon.gmk @@ -26,6 +26,7 @@ INCLUDE_DST_DIR := $(SUPPORT_OUTPUTDIR)/modules_include/$(MODULE) LIB_DST_DIR := $(SUPPORT_OUTPUTDIR)/modules_libs/$(MODULE) CONF_DST_DIR := $(SUPPORT_OUTPUTDIR)/modules_conf/$(MODULE) +LEGAL_DST_DIR := $(SUPPORT_OUTPUTDIR)/modules_legal/$(MODULE) INCLUDE_DST_OS_DIR := $(INCLUDE_DST_DIR)/$(OPENJDK_TARGET_OS) diff --git a/jdk/make/data/tzdata/VERSION b/jdk/make/data/tzdata/VERSION index 3fbffda8d33..016d94c21fa 100644 --- a/jdk/make/data/tzdata/VERSION +++ b/jdk/make/data/tzdata/VERSION @@ -21,4 +21,4 @@ # or visit www.oracle.com if you need additional information or have any # questions. # -tzdata2016i +tzdata2016j diff --git a/jdk/make/data/tzdata/africa b/jdk/make/data/tzdata/africa index cbde238491e..67918afea67 100644 --- a/jdk/make/data/tzdata/africa +++ b/jdk/make/data/tzdata/africa @@ -142,7 +142,7 @@ Zone Africa/Algiers 0:12:12 - LMT 1891 Mar 15 0:01 # Cameroon # See Africa/Lagos. -# Cape Verde +# Cape Verde / Cabo Verde # # Shanks gives 1907 for the transition to CVT. # Perhaps the 1911-05-26 Portuguese decree diff --git a/jdk/make/data/tzdata/asia b/jdk/make/data/tzdata/asia index 7d540324cdb..ac207403859 100644 --- a/jdk/make/data/tzdata/asia +++ b/jdk/make/data/tzdata/asia @@ -1606,12 +1606,12 @@ Zone Asia/Amman 2:23:44 - LMT 1931 # was "blended" with the Central zone. Therefore, Kazakhstan now has # two time zones, and difference between them is one hour. The zone # closer to UTC is the former Western zone (probably still called the -# same), encompassing four provinces in the west: Aqtobe, Atyrau, -# Mangghystau, and West Kazakhstan. The other zone encompasses +# same), encompassing four provinces in the west: Aqtöbe, Atyraū, +# Mangghystaū, and West Kazakhstan. The other zone encompasses # everything else.... I guess that would make Kazakhstan time zones # de jure UTC+5 and UTC+6 respectively. -# From Stepan Golosunov (2016-03-27) ([*] means see later comments below): +# From Stepan Golosunov (2016-03-27): # Review of the linked documents from http://adilet.zan.kz/ # produced the following data for post-1991 Kazakhstan: # @@ -1657,7 +1657,7 @@ Zone Asia/Amman 2:23:44 - LMT 1931 # # This implies that on 1991-03-31 Asia/Oral remained on +04/+05 while # the rest of Kazakhstan switched from +06/+07 to +05/06 or from +05/06 -# to +04/+05. It's unclear how Kzyl-Orda oblast moved into the fifth +# to +04/+05. It's unclear how Qyzylorda oblast moved into the fifth # time belt. (By switching from +04/+05 to +05/+06 on 1991-09-29?) ... # # 1. Act of the Cabinet of Ministers of the Republic of Kazakhstan @@ -1670,25 +1670,25 @@ Zone Asia/Amman 2:23:44 - LMT 1931 # on the whole territory of Kazakhstan 1 hour forward on 1992-01-19 at # 2:00, specified DST rules. It acknowledged that Kazakhstan was # located in the fourth and the fifth time belts and specified the -# border between them to be located east of Kustanay and Aktyubinsk -# oblasts (notably including Turgai and Kzyl-Orda oblasts into the fifth +# border between them to be located east of Qostanay and Aktyubinsk +# oblasts (notably including Turgai and Qyzylorda oblasts into the fifth # time belt). # # This means switch on 1992-01-19 at 2:00 from +04/+05 to +05/+06 for -# Asia/Aqtau, Asia/Aqtobe, Asia/Oral, Atyrau and Kustanay oblasts; from -# +05/+06 to +06/+07 for Asia/Almaty and Asia/Qyzylorda (and Arkalyk) [*].... +# Asia/Aqtau, Asia/Aqtobe, Asia/Oral, Atyraū and Qostanay oblasts; from +# +05/+06 to +06/+07 for Asia/Almaty and Asia/Qyzylorda (and Arkalyk).... # # 2. Act of the Cabinet of Ministers of the Republic of Kazakhstan # from 1992-03-27 No. 284 # http://adilet.zan.kz/rus/docs/P920000284_ -# cancels extra hour ("decree time") for Uralsk and Kzyl-Orda oblasts +# cancels extra hour ("decree time") for Uralsk and Qyzylorda oblasts # since the last Sunday of March 1992, while keeping them in the fourth # and the fifth time belts respectively. # # 3. Order of the Prime Minister of the Republic of Kazakhstan # from 1994-09-23 No. 384 # http://adilet.zan.kz/rus/docs/R940000384_ -# cancels the extra hour ("decree time") on the territory of Mangystau +# cancels the extra hour ("decree time") on the territory of Mangghystaū # oblast since the last Sunday of September 1994 (saying that time on # the territory would correspond to the third time belt as a # result).... @@ -1702,14 +1702,11 @@ Zone Asia/Amman 2:23:44 - LMT 1931 # 5. Act of the Government of the Republic of Kazakhstan # from 1999-03-26 No. 305 # http://adilet.zan.kz/rus/docs/P990000305_ -# cancels the extra hour ("decree time") for Atyrau oblast since the +# cancels the extra hour ("decree time") for Atyraū oblast since the # last Sunday of March 1999 while retaining the oblast in the fourth # time belt. # -# This means change from +05/+06 to +04/+05. -# -# There is no zone for Atyrau currently (listed under Asia/Aqtau in -# zone1970.tab).[*] +# This means change from +05/+06 to +04/+05.... # # 6. Act of the Government of the Republic of Kazakhstan # from 2000-11-23 No. 1749 @@ -1719,10 +1716,10 @@ Zone Asia/Amman 2:23:44 - LMT 1931 # The only changes I noticed are in definition of the border between the # fourth and the fifth time belts. They account for changes in spelling # and administrative division (splitting of Turgai oblast in 1997 -# probably changed time in territories incorporated into Kostanay oblast -# (including Arkalyk) from +06/+07 to +05/+06) and move Kyzylorda oblast +# probably changed time in territories incorporated into Qostanay oblast +# (including Arkalyk) from +06/+07 to +05/+06) and move Qyzylorda oblast # from being in the fifth time belt and not using decree time into the -# fourth time belt (no change in practice).[*] +# fourth time belt (no change in practice). # # 7. Act of the Government of the Republic of Kazakhstan # from 2003-12-29 No. 1342 @@ -1732,7 +1729,7 @@ Zone Asia/Amman 2:23:44 - LMT 1931 # 8. Act of the Government of the Republic of Kazakhstan # from 2004-07-20 No. 775 # http://adilet.zan.kz/rus/archive/docs/P040000775_/20.07.2004 -# modified the 2000-11-23 act to move Kostanay and Kyzylorda oblasts into +# modified the 2000-11-23 act to move Qostanay and Qyzylorda oblasts into # the fifth time belt and add Aktobe oblast to the list of regions not # using extra hour ("decree time"), leaving Kazakhstan with only 2 time # zones (+04/+05 and +06/+07). The changes were to be implemented @@ -1744,14 +1741,14 @@ Zone Asia/Amman 2:23:44 - LMT 1931 # http://adilet.zan.kz/rus/docs/P040001059_ # modified the 2000-11-23 act to remove exceptions from the "decree time" # (leaving Kazakhstan in +05/+06 and +06/+07 zones), amended the -# 2004-07-20 act to implement changes for Atyrau, West Kazakhstan, -# Kostanay, Kyzylorda and Mangystau oblasts by not moving clocks -# during the 2014 transition to "winter" time. +# 2004-07-20 act to implement changes for Atyraū, West Kazakhstan, +# Qostanay, Qyzylorda and Mangghystaū oblasts by not moving clocks +# during the 2004 transition to "winter" time. # -# This means transition from +04/+05 to +05/+06 for Atyrau oblast (no +# This means transition from +04/+05 to +05/+06 for Atyraū oblast (no # zone currently), Asia/Oral, Asia/Aqtau and transition from +05/+06 to -# +06/+07 for Kostanay oblast (Kostanay and Arkalyk, no zones currently) -# and Asia/Qyzylorda on 2004-10-31 at 3:00....[*] +# +06/+07 for Qostanay oblast (Qostanay and Arkalyk, no zones currently) +# and Asia/Qyzylorda on 2004-10-31 at 3:00.... # # 10. Act of the Government of the Republic of Kazakhstan # from 2005-03-15 No. 231 @@ -1767,14 +1764,9 @@ Zone Asia/Amman 2:23:44 - LMT 1931 # Kazakh 1992-01-13 act appears to provide the same rules and 1992-03-27 # act was to be enacted on the last Sunday of March 1992. -# From Paul Eggert (2016-04-15): -# The tables below should reflect Stepan Golosunov's remarks above, -# except for the items marked "[*]" which I haven't gotten to yet. -# It looks like we will need new zones Asia/Atyrau and Asia/Qostanay -# to handle changes from 1992 through 2004 that we did not previously -# know about. +# From Paul Eggert (2016-11-07): +# The tables below reflect Golosunov's remarks, with exceptions as noted. -# # Zone NAME GMTOFF RULES FORMAT [UNTIL] # # Almaty (formerly Alma-Ata), representing most locations in Kazakhstan @@ -1787,6 +1779,8 @@ Zone Asia/Almaty 5:07:48 - LMT 1924 May 2 # or Alma-Ata 6:00 RussiaAsia +06/+07 2004 Oct 31 2:00s 6:00 - +06 # Qyzylorda (aka Kyzylorda, Kizilorda, Kzyl-Orda, etc.) (KZ-KZY) +# This currently includes Qostanay (aka Kostanay, Kustanay) (KZ-KUS); +# see comments below. Zone Asia/Qyzylorda 4:21:52 - LMT 1924 May 2 4:00 - +04 1930 Jun 21 5:00 - +05 1981 Apr 1 @@ -1798,7 +1792,21 @@ Zone Asia/Qyzylorda 4:21:52 - LMT 1924 May 2 6:00 RussiaAsia +06/+07 1992 Mar 29 2:00s 5:00 RussiaAsia +05/+06 2004 Oct 31 2:00s 6:00 - +06 -# Aqtobe (aka Aktobe, formerly Aktyubinsk) (KZ-AKT) +# The following zone is like Asia/Qyzylorda except for being one +# hour earlier from 1991-09-29 to 1992-03-29. The 1991/2 rules for +# Qostenay are unclear partly because of the 1997 Turgai +# reorganization, so this zone is commented out for now. +#Zone Asia/Qostanay 4:14:20 - LMT 1924 May 2 +# 4:00 - +04 1930 Jun 21 +# 5:00 - +05 1981 Apr 1 +# 5:00 1:00 +06 1981 Oct 1 +# 6:00 - +06 1982 Apr 1 +# 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00s +# 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00s +# 5:00 RussiaAsia +05/+06 2004 Oct 31 2:00s +# 6:00 - +06 +# +# Aqtöbe (aka Aktobe, formerly Aktyubinsk) (KZ-AKT) Zone Asia/Aqtobe 3:48:40 - LMT 1924 May 2 4:00 - +04 1930 Jun 21 5:00 - +05 1981 Apr 1 @@ -1808,14 +1816,11 @@ Zone Asia/Aqtobe 3:48:40 - LMT 1924 May 2 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00s 5:00 RussiaAsia +05/+06 2004 Oct 31 2:00s 5:00 - +05 -# Qostanay (KZ-KUS) - -# Mangghystau (KZ-MAN) +# Mangghystaū (KZ-MAN) # Aqtau was not founded until 1963, but it represents an inhabited region, # so include time stamps before 1963. Zone Asia/Aqtau 3:21:04 - LMT 1924 May 2 4:00 - +04 1930 Jun 21 - 5:00 - +05 1963 5:00 - +05 1981 Oct 1 6:00 - +06 1982 Apr 1 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00s @@ -1823,7 +1828,17 @@ Zone Asia/Aqtau 3:21:04 - LMT 1924 May 2 5:00 RussiaAsia +05/+06 1994 Sep 25 2:00s 4:00 RussiaAsia +04/+05 2004 Oct 31 2:00s 5:00 - +05 - +# Atyraū (KZ-ATY) is like Mangghystaū except it switched from +# +04/+05 to +05/+06 in spring 1999, not fall 1994. +Zone Asia/Atyrau 3:27:44 - LMT 1924 May 2 + 4:00 - +04 1930 Jun 21 + 5:00 - +05 1981 Oct 1 + 6:00 - +06 1982 Apr 1 + 5:00 RussiaAsia +05/+06 1991 Mar 31 2:00s + 4:00 RussiaAsia +04/+05 1992 Jan 19 2:00s + 5:00 RussiaAsia +05/+06 1999 Mar 28 2:00s + 4:00 RussiaAsia +04/+05 2004 Oct 31 2:00s + 5:00 - +05 # West Kazakhstan (KZ-ZAP) # From Paul Eggert (2016-03-18): # The 1989 transition is from USSR act No. 227 (1989-03-14). @@ -2639,7 +2654,7 @@ Rule Palestine 2016 max - Oct lastSat 1:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Gaza 2:17:52 - LMT 1900 Oct - 2:00 Zion EET 1948 May 15 + 2:00 Zion EET/EEST 1948 May 15 2:00 EgyptAsia EE%sT 1967 Jun 5 2:00 Zion I%sT 1996 2:00 Jordan EE%sT 1999 @@ -2652,7 +2667,7 @@ Zone Asia/Gaza 2:17:52 - LMT 1900 Oct 2:00 Palestine EE%sT Zone Asia/Hebron 2:20:23 - LMT 1900 Oct - 2:00 Zion EET 1948 May 15 + 2:00 Zion EET/EEST 1948 May 15 2:00 EgyptAsia EE%sT 1967 Jun 5 2:00 Zion I%sT 1996 2:00 Jordan EE%sT 1999 diff --git a/jdk/make/data/tzdata/europe b/jdk/make/data/tzdata/europe index df464859fb3..9cede59acda 100644 --- a/jdk/make/data/tzdata/europe +++ b/jdk/make/data/tzdata/europe @@ -924,7 +924,7 @@ Zone Europe/Sofia 1:33:16 - LMT 1880 # Cyprus # Please see the 'asia' file for Asia/Nicosia. -# Czech Republic +# Czech Republic / Czechia # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Czech 1945 only - Apr 8 2:00s 1:00 S Rule Czech 1945 only - Nov 18 2:00s 0 - @@ -2624,10 +2624,9 @@ Zone Europe/Astrakhan 3:12:12 - LMT 1924 May 3:00 - +03 2016 Mar 27 2:00s 4:00 - +04 -# From Paul Eggert (2016-03-18): +# From Paul Eggert (2016-11-11): # Europe/Volgograd covers: # 34 RU-VGG Volgograd Oblast -# 64 RU-SAR Saratov Oblast # The 1988 transition is from USSR act No. 5 (1988-01-04). Zone Europe/Volgograd 2:57:40 - LMT 1920 Jan 3 @@ -2640,6 +2639,27 @@ Zone Europe/Volgograd 2:57:40 - LMT 1920 Jan 3 4:00 - +04 2014 Oct 26 2:00s 3:00 - +03 +# From Paul Eggert (2016-11-11): +# Europe/Saratov covers: +# 64 RU-SAR Saratov Oblast + +# From Yuri Konotopov (2016-11-11): +# Dec 4, 2016 02:00 UTC+3.... Saratov Region's local time will be ... UTC+4. +# From Stepan Golosunov (2016-11-11): +# ... Byalokoz listed Saratov on 03:04:18. +# From Stepan Golosunov (2016-11-22): +# http://publication.pravo.gov.ru/Document/View/0001201611220031 + +Zone Europe/Saratov 3:04:18 - LMT 1919 Jul 1 0:00u + 3:00 - +03 1930 Jun 21 + 4:00 Russia +04/+05 1988 Mar 27 2:00s + 3:00 Russia +03/+04 1991 Mar 31 2:00s + 4:00 - +04 1992 Mar 29 2:00s + 3:00 Russia +03/+04 2011 Mar 27 2:00s + 4:00 - +04 2014 Oct 26 2:00s + 3:00 - +03 2016 Dec 4 2:00s + 4:00 - +04 + # From Paul Eggert (2016-03-18): # Europe/Kirov covers: # 43 RU-KIR Kirov Oblast diff --git a/jdk/make/data/tzdata/iso3166.tab b/jdk/make/data/tzdata/iso3166.tab index e47eefe1227..004a4a70556 100644 --- a/jdk/make/data/tzdata/iso3166.tab +++ b/jdk/make/data/tzdata/iso3166.tab @@ -98,7 +98,7 @@ CO Colombia CR Costa Rica CU Cuba CV Cape Verde -CW Curacao +CW Curaçao CX Christmas Island CY Cyprus CZ Czech Republic diff --git a/jdk/make/data/tzdata/zone.tab b/jdk/make/data/tzdata/zone.tab index 2de07ef7112..7255ea5bfb4 100644 --- a/jdk/make/data/tzdata/zone.tab +++ b/jdk/make/data/tzdata/zone.tab @@ -262,7 +262,8 @@ KY +1918-08123 America/Cayman KZ +4315+07657 Asia/Almaty Kazakhstan (most areas) KZ +4448+06528 Asia/Qyzylorda Qyzylorda/Kyzylorda/Kzyl-Orda KZ +5017+05710 Asia/Aqtobe Aqtobe/Aktobe -KZ +4431+05016 Asia/Aqtau Atyrau/Atirau/Gur'yev, Mangghystau/Mankistau +KZ +4431+05016 Asia/Aqtau Mangghystau/Mankistau +KZ +4707+05156 Asia/Atyrau Atyrau/Atirau/Gur'yev KZ +5113+05121 Asia/Oral West Kazakhstan LA +1758+10236 Asia/Vientiane LB +3353+03530 Asia/Beirut @@ -353,14 +354,15 @@ RS +4450+02030 Europe/Belgrade RU +5443+02030 Europe/Kaliningrad MSK-01 - Kaliningrad RU +554521+0373704 Europe/Moscow MSK+00 - Moscow area RU +4457+03406 Europe/Simferopol MSK+00 - Crimea -RU +4844+04425 Europe/Volgograd MSK+00 - Volgograd, Saratov +RU +4844+04425 Europe/Volgograd MSK+00 - Volgograd RU +5836+04939 Europe/Kirov MSK+00 - Kirov RU +4621+04803 Europe/Astrakhan MSK+01 - Astrakhan -RU +5312+05009 Europe/Samara MSK+01 - Samara, Udmurtia +RU +5134+04602 Europe/Saratov MSK+01 - Saratov RU +5420+04824 Europe/Ulyanovsk MSK+01 - Ulyanovsk +RU +5312+05009 Europe/Samara MSK+01 - Samara, Udmurtia RU +5651+06036 Asia/Yekaterinburg MSK+02 - Urals RU +5500+07324 Asia/Omsk MSK+03 - Omsk -RU +5502+08255 Asia/Novosibirsk MSK+03 - Novosibirsk +RU +5502+08255 Asia/Novosibirsk MSK+04 - Novosibirsk RU +5322+08345 Asia/Barnaul MSK+04 - Altai RU +5630+08458 Asia/Tomsk MSK+04 - Tomsk RU +5345+08707 Asia/Novokuznetsk MSK+04 - Kemerovo diff --git a/jdk/make/gensrc/GensrcMisc.gmk b/jdk/make/gensrc/GensrcMisc.gmk index 475b8f1d033..6b5dcf9e6b6 100644 --- a/jdk/make/gensrc/GensrcMisc.gmk +++ b/jdk/make/gensrc/GensrcMisc.gmk @@ -108,3 +108,19 @@ ifeq ($(OPENJDK_TARGET_OS), solaris) endif ################################################################################ +# Create the javax/crypto/JceSecurity.class, using the build default. +# +ifeq ($(UNLIMITED_CRYPTO), true) + JCE_DEFAULT_POLICY = unlimited +else + JCE_DEFAULT_POLICY = limited +endif + +$(eval $(call SetupTextFileProcessing, BUILD_JCESECURITY_JAVA, \ + SOURCE_FILES := $(JDK_TOPDIR)/src/java.base/share/classes/javax/crypto/JceSecurity.java.template, \ + OUTPUT_FILE := $(SUPPORT_OUTPUTDIR)/gensrc/java.base/javax/crypto/JceSecurity.java, \ + REPLACEMENTS := \ + @@JCE_DEFAULT_POLICY@@ => $(JCE_DEFAULT_POLICY), \ +)) + +GENSRC_JAVA_BASE += $(BUILD_JCESECURITY_JAVA) diff --git a/jdk/make/lib/Lib-jdk.crypto.ucrypto.gmk b/jdk/make/lib/Lib-jdk.crypto.ucrypto.gmk index 31c39f1bb69..81f51e1b73c 100644 --- a/jdk/make/lib/Lib-jdk.crypto.ucrypto.gmk +++ b/jdk/make/lib/Lib-jdk.crypto.ucrypto.gmk @@ -1,5 +1,5 @@ # -# Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -38,7 +38,6 @@ ifeq ($(OPENJDK_TARGET_OS), solaris) OPTIMIZATION := LOW, \ CFLAGS := $(CFLAGS_JDKLIB) \ $(addprefix -I, $(LIBJ2UCRYPTO_SRC)), \ - DISABLED_WARNINGS_solstudio := E_MACRO_REDEFINED, \ MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libj2ucrypto/mapfile-vers, \ LDFLAGS := $(LDFLAGS_JDKLIB), \ LIBS := $(LIBDL), \ diff --git a/jdk/make/mapfiles/libnio/mapfile-linux b/jdk/make/mapfiles/libnio/mapfile-linux index 93e59458abe..a07e4c92ce6 100644 --- a/jdk/make/mapfiles/libnio/mapfile-linux +++ b/jdk/make/mapfiles/libnio/mapfile-linux @@ -60,6 +60,7 @@ SUNWprivate_1.1 { Java_sun_nio_ch_FileChannelImpl_position0; Java_sun_nio_ch_FileChannelImpl_transferTo0; Java_sun_nio_ch_FileChannelImpl_unmap0; + Java_sun_nio_ch_FileDispatcherImpl_allocate0; Java_sun_nio_ch_FileDispatcherImpl_close0; Java_sun_nio_ch_FileDispatcherImpl_closeIntFD; Java_sun_nio_ch_FileDispatcherImpl_force0; diff --git a/jdk/make/mapfiles/libnio/mapfile-macosx b/jdk/make/mapfiles/libnio/mapfile-macosx index a3f6d5d9c1c..4f6a04867d3 100644 --- a/jdk/make/mapfiles/libnio/mapfile-macosx +++ b/jdk/make/mapfiles/libnio/mapfile-macosx @@ -43,6 +43,7 @@ SUNWprivate_1.1 { Java_sun_nio_ch_FileChannelImpl_position0; Java_sun_nio_ch_FileChannelImpl_transferTo0; Java_sun_nio_ch_FileChannelImpl_unmap0; + Java_sun_nio_ch_FileDispatcherImpl_allocate0; Java_sun_nio_ch_FileDispatcherImpl_close0; Java_sun_nio_ch_FileDispatcherImpl_closeIntFD; Java_sun_nio_ch_FileDispatcherImpl_force0; diff --git a/jdk/make/mapfiles/libnio/mapfile-solaris b/jdk/make/mapfiles/libnio/mapfile-solaris index d7a9da908ca..3e9f8491572 100644 --- a/jdk/make/mapfiles/libnio/mapfile-solaris +++ b/jdk/make/mapfiles/libnio/mapfile-solaris @@ -48,6 +48,7 @@ SUNWprivate_1.1 { Java_sun_nio_ch_FileChannelImpl_position0; Java_sun_nio_ch_FileChannelImpl_transferTo0; Java_sun_nio_ch_FileChannelImpl_unmap0; + Java_sun_nio_ch_FileDispatcherImpl_allocate0; Java_sun_nio_ch_FileDispatcherImpl_close0; Java_sun_nio_ch_FileDispatcherImpl_closeIntFD; Java_sun_nio_ch_FileDispatcherImpl_force0; diff --git a/jdk/src/java.base/macosx/classes/apple/security/KeychainStore.java b/jdk/src/java.base/macosx/classes/apple/security/KeychainStore.java index 42b312196cd..7ed9956b80c 100644 --- a/jdk/src/java.base/macosx/classes/apple/security/KeychainStore.java +++ b/jdk/src/java.base/macosx/classes/apple/security/KeychainStore.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -911,7 +911,6 @@ public final class KeychainStore extends KeyStoreSpi { return true; } - @SuppressWarnings("deprecation") private byte[] fetchPrivateKeyFromBag(byte[] privateKeyInfo) throws IOException, NoSuchAlgorithmException, CertificateException { byte[] returnValue = null; @@ -972,7 +971,6 @@ public final class KeychainStore extends KeyStoreSpi { return returnValue; } - @SuppressWarnings("deprecation") private byte[] extractKeyData(DerInputStream stream) throws IOException, NoSuchAlgorithmException, CertificateException { diff --git a/jdk/src/java.base/share/classes/com/sun/crypto/provider/ISO10126Padding.java b/jdk/src/java.base/share/classes/com/sun/crypto/provider/ISO10126Padding.java index 7377fab0a9c..a7134238e14 100644 --- a/jdk/src/java.base/share/classes/com/sun/crypto/provider/ISO10126Padding.java +++ b/jdk/src/java.base/share/classes/com/sun/crypto/provider/ISO10126Padding.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -68,10 +68,10 @@ final class ISO10126Padding implements Padding { } byte paddingOctet = (byte) (len & 0xff); - byte[] padding = new byte[len]; + byte[] padding = new byte[len - 1]; SunJCE.getRandom().nextBytes(padding); - padding[len-1] = paddingOctet; - System.arraycopy(padding, 0, in, off, len); + System.arraycopy(padding, 0, in, off, len - 1); + in[off + len - 1] = paddingOctet; return; } @@ -101,7 +101,7 @@ final class ISO10126Padding implements Padding { return -1; } - int start = off + len - ((int)lastByte & 0x0ff); + int start = off + len - padValue; if (start < off) { return -1; } diff --git a/jdk/src/java.base/share/classes/com/sun/java/util/jar/pack/DriverResource_ja.java b/jdk/src/java.base/share/classes/com/sun/java/util/jar/pack/DriverResource_ja.java index 22afce72bf8..38ce83d91d2 100644 --- a/jdk/src/java.base/share/classes/com/sun/java/util/jar/pack/DriverResource_ja.java +++ b/jdk/src/java.base/share/classes/com/sun/java/util/jar/pack/DriverResource_ja.java @@ -63,10 +63,10 @@ public class DriverResource_ja extends ListResourceBundle { "\u5727\u7E2E\u30AA\u30D7\u30B7\u30E7\u30F3", " -r\u3001--repack jar\u3092\u518D\u5727\u7E2E\u307E\u305F\u306F\u6B63\u898F\u5316\u3059\u308B\u30AA\u30D7\u30B7\u30E7\u30F3\u3067\u3001", " jarsigner\u306B\u3088\u308B\u7F72\u540D\u306B\u9069\u3057\u307E\u3059", - " -g\u3001--no-gzip \u30D7\u30EC\u30FC\u30F3\u306A\u5727\u7E2E\u30D5\u30A1\u30A4\u30EB\u3092\u51FA\u529B\u3059\u308B\u30AA\u30D7\u30B7\u30E7\u30F3\u3067\u3001", + " -g\u3001--no-gzip \u30D7\u30EC\u30FC\u30F3\u306Apack\u30D5\u30A1\u30A4\u30EB\u3092\u51FA\u529B\u3059\u308B\u30AA\u30D7\u30B7\u30E7\u30F3\u3067\u3001", " \u30D5\u30A1\u30A4\u30EB\u5727\u7E2E\u30E6\u30FC\u30C6\u30A3\u30EA\u30C6\u30A3\u306B\u3088\u308B\u5727\u7E2E\u306B\u9069\u3057\u307E\u3059", - " --gzip (\u30C7\u30D5\u30A9\u30EB\u30C8)\u5727\u7E2E\u51FA\u529B\u3092gzip\u3067", - " \u5727\u7E2E\u306E\u5F8C\u51E6\u7406\u3092\u884C\u3044\u307E\u3059", + " --gzip (\u30C7\u30D5\u30A9\u30EB\u30C8) pack\u51FA\u529B\u3092\u5F8C\u51E6\u7406\u3067\u5727\u7E2E\u3057\u307E\u3059", + " (gzip\u3092\u4F7F\u7528)", " -G\u3001--strip-debug \u5727\u7E2E\u4E2D\u306B\u30C7\u30D0\u30C3\u30B0\u5C5E\u6027(SourceFile\u3001", " LineNumberTable\u3001LocalVariableTable", " \u3001LocalVariableTypeTable)\u3092\u524A\u9664\u3057\u307E\u3059", diff --git a/jdk/src/java.base/share/classes/java/io/ObjectInputFilter.java b/jdk/src/java.base/share/classes/java/io/ObjectInputFilter.java index e222f47c41a..a0e998c7b29 100644 --- a/jdk/src/java.base/share/classes/java/io/ObjectInputFilter.java +++ b/jdk/src/java.base/share/classes/java/io/ObjectInputFilter.java @@ -350,16 +350,24 @@ public interface ObjectInputFilter { * The first pattern that matches, working from left to right, determines * the {@link Status#ALLOWED Status.ALLOWED} * or {@link Status#REJECTED Status.REJECTED} result. - * If nothing matches, the result is {@link Status#UNDECIDED Status.UNDECIDED}. + * If the limits are not exceeded and no pattern matches the class, + * the result is {@link Status#UNDECIDED Status.UNDECIDED}. * * @param pattern the pattern string to parse; not null - * @return a filter to check a class being deserialized; may be null; + * @return a filter to check a class being deserialized; * {@code null} if no patterns - * @throws IllegalArgumentException - * if a limit is missing the name, or the long value - * is not a number or is negative, - * or the module name is missing if the pattern contains "/" - * or if the package is missing for ".*" and ".**" + * @throws IllegalArgumentException if the pattern string is illegal or + * malformed and cannot be parsed. + * In particular, if any of the following is true: + *

      + *
    • if a limit is missing the name or the name is not one of + * "maxdepth", "maxrefs", "maxbytes", or "maxarray" + *
    • if the value of the limit can not be parsed by + * {@link Long#parseLong Long.parseLong} or is negative + *
    • if the pattern contains "/" and the module name is missing + * or the remaining pattern is empty + *
    • if the package is missing for ".*" and ".**" + *
    */ public static ObjectInputFilter createFilter(String pattern) { Objects.requireNonNull(pattern, "pattern"); @@ -402,14 +410,19 @@ public interface ObjectInputFilter { * Returns an ObjectInputFilter from a string of patterns. * * @param pattern the pattern string to parse - * @return a filter to check a class being deserialized; not null + * @return a filter to check a class being deserialized; + * {@code null} if no patterns * @throws IllegalArgumentException if the parameter is malformed * if the pattern is missing the name, the long value * is not a number or is negative. */ static ObjectInputFilter createFilter(String pattern) { - Global filter = new Global(pattern); - return filter.isEmpty() ? null : filter; + try { + return new Global(pattern); + } catch (UnsupportedOperationException uoe) { + // no non-empty patterns + return null; + } } /** @@ -417,8 +430,10 @@ public interface ObjectInputFilter { * * @param pattern a pattern string of filters * @throws IllegalArgumentException if the pattern is malformed + * @throws UnsupportedOperationException if there are no non-empty patterns */ private Global(String pattern) { + boolean hasLimits = false; this.pattern = pattern; maxArrayLength = Long.MAX_VALUE; // Default values are unlimited @@ -436,6 +451,7 @@ public interface ObjectInputFilter { } if (parseLimit(p)) { // If the pattern contained a limit setting, i.e. type=value + hasLimits = true; continue; } boolean negate = p.charAt(0) == '!'; @@ -510,18 +526,9 @@ public interface ObjectInputFilter { filters.add(c -> moduleName.equals(c.getModule().getName()) ? patternFilter.apply(c) : Status.UNDECIDED); } } - } - - /** - * Returns if this filter has any checks. - * @return {@code true} if the filter has any checks, {@code false} otherwise - */ - private boolean isEmpty() { - return filters.isEmpty() && - maxArrayLength == Long.MAX_VALUE && - maxDepth == Long.MAX_VALUE && - maxReferences == Long.MAX_VALUE && - maxStreamBytes == Long.MAX_VALUE; + if (filters.isEmpty() && !hasLimits) { + throw new UnsupportedOperationException("no non-empty patterns"); + } } /** diff --git a/jdk/src/java.base/share/classes/java/io/ObjectInputStream.java b/jdk/src/java.base/share/classes/java/io/ObjectInputStream.java index f2c034ed148..ed033d685e9 100644 --- a/jdk/src/java.base/share/classes/java/io/ObjectInputStream.java +++ b/jdk/src/java.base/share/classes/java/io/ObjectInputStream.java @@ -657,13 +657,11 @@ public class ObjectInputStream *
          *     Class.forName(desc.getName(), false, loader)
          * 
    - * where loader is determined as follows: if there is a - * method on the current thread's stack whose declaring class is not a - * - * platform class, then loader is - * the class loader of such class; otherwise, loader - * is the {@linkplain ClassLoader#getPlatformClassLoader() - * platform class loader}. If this call results in a + * where loader is the first class loader on the current + * thread's stack (starting from the currently executing method) that is + * neither the {@linkplain ClassLoader#getPlatformClassLoader() platform + * class loader} nor its ancestor; otherwise, loader is the + * platform class loader. If this call results in a * ClassNotFoundException and the name of the passed * ObjectStreamClass instance is the Java language keyword * for a primitive type or void, then the Class object @@ -721,13 +719,11 @@ public class ObjectInputStream *
          *     Class.forName(i, false, loader)
          * 
    - * where loader is determined as follows: if there is a - * method on the current thread's stack whose declaring class is not a - * - * platform class, then loader is - * the class loader of such class; otherwise, loader - * is the {@linkplain ClassLoader#getPlatformClassLoader() - * platform class loader}. + * where loader is the first class loader on the current + * thread's stack (starting from the currently executing method) that is + * neither the {@linkplain ClassLoader#getPlatformClassLoader() platform + * class loader} nor its ancestor; otherwise, loader is the + * platform class loader. * Unless any of the resolved interfaces are non-public, this same value * of loader is also the class loader passed to * Proxy.getProxyClass; if non-public interfaces are present, @@ -1168,6 +1164,13 @@ public class ObjectInputStream * for each class and reference in the stream. * The filter can check any or all of the class, the array length, the number * of references, the depth of the graph, and the size of the input stream. + * The depth is the number of nested {@linkplain #readObject readObject} + * calls starting with the reading of the root of the graph being deserialized + * and the current object being deserialized. + * The number of references is the cumulative number of objects and references + * to objects already read from the stream including the current object being read. + * The filter is invoked only when reading objects from the stream and for + * not primitives. *

    * If the filter returns {@link ObjectInputFilter.Status#REJECTED Status.REJECTED}, * {@code null} or throws a {@link RuntimeException}, @@ -1182,8 +1185,9 @@ public class ObjectInputStream * * @implSpec * The filter, when not {@code null}, is invoked during {@link #readObject readObject} - * and {@link #readUnshared readUnshared} for each object - * (regular or class) in the stream including the following: + * and {@link #readUnshared readUnshared} for each object (regular or class) in the stream. + * Strings are treated as primitives and do not invoke the filter. + * The filter is called for: *