--- a/.hgtags Fri Jan 15 08:53:23 2016 -0800
+++ b/.hgtags Fri Jan 15 19:18:42 2016 +0000
@@ -342,3 +342,4 @@
4edcff1b9a8875eb6380a2165dfec599e8e3f7c0 jdk-9+97
d00ad2d9049ac60815f70bff445e95df85648bd2 jdk-9+98
f9bcdce2df26678c3fe468130b535c0342c69b89 jdk-9+99
+4379223f8806626852c46c52d4e7a27a584b406e jdk-9+100
--- a/.hgtags-top-repo Fri Jan 15 08:53:23 2016 -0800
+++ b/.hgtags-top-repo Fri Jan 15 19:18:42 2016 +0000
@@ -342,3 +342,4 @@
75c3897541ecb52ee16d001ea605b12971df7303 jdk-9+97
48987460c7d49a29013963ee44d090194396bb61 jdk-9+98
7c0577bea4c65d69c5bef67023a89d2efa4fb2f7 jdk-9+99
+c1f30ac14db0eaff398429c04cd9fab92e1b4b2a jdk-9+100
--- a/common/autoconf/build-performance.m4 Fri Jan 15 08:53:23 2016 -0800
+++ b/common/autoconf/build-performance.m4 Fri Jan 15 19:18:42 2016 +0000
@@ -253,6 +253,24 @@
################################################################################
#
+# Runs icecc-create-env once and prints the error if it fails
+#
+# $1: arguments to icecc-create-env
+# $2: log file
+#
+AC_DEFUN([BPERF_RUN_ICECC_CREATE_ENV],
+[
+ cd ${CONFIGURESUPPORT_OUTPUTDIR}/icecc \
+ && ${ICECC_CREATE_ENV} $1 > $2 2>&1
+ if test "$?" != "0"; then
+ AC_MSG_NOTICE([icecc-create-env output:])
+ cat $2
+ AC_MSG_ERROR([Failed to create icecc compiler environment])
+ fi
+])
+
+################################################################################
+#
# Optionally enable distributed compilation of native code using icecc/icecream
#
AC_DEFUN([BPERF_SETUP_ICECC],
@@ -271,16 +289,18 @@
# be sent to the other hosts in the icecream cluster.
icecc_create_env_log="${CONFIGURESUPPORT_OUTPUTDIR}/icecc/icecc_create_env.log"
${MKDIR} -p ${CONFIGURESUPPORT_OUTPUTDIR}/icecc
- AC_MSG_CHECKING([for icecc build environment for target compiler])
+ # Older versions of icecc does not have the --gcc parameter
+ if ${ICECC_CREATE_ENV} | $GREP -q -e --gcc; then
+ icecc_gcc_arg="--gcc"
+ fi
if test "x${TOOLCHAIN_TYPE}" = "xgcc"; then
- cd ${CONFIGURESUPPORT_OUTPUTDIR}/icecc \
- && ${ICECC_CREATE_ENV} --gcc ${CC} ${CXX} > ${icecc_create_env_log}
+ BPERF_RUN_ICECC_CREATE_ENV([${icecc_gcc_arg} ${CC} ${CXX}], \
+ ${icecc_create_env_log})
elif test "x$TOOLCHAIN_TYPE" = "xclang"; then
# For clang, the icecc compilerwrapper is needed. It usually resides next
# to icecc-create-env.
BASIC_REQUIRE_PROGS(ICECC_WRAPPER, compilerwrapper)
- cd ${CONFIGURESUPPORT_OUTPUTDIR}/icecc \
- && ${ICECC_CREATE_ENV} --clang ${CC} ${ICECC_WRAPPER} > ${icecc_create_env_log}
+ BPERF_RUN_ICECC_CREATE_ENV([--clang ${CC} ${ICECC_WRAPPER}], ${icecc_create_env_log})
else
AC_MSG_ERROR([Can only create icecc compiler packages for toolchain types gcc and clang])
fi
@@ -289,24 +309,31 @@
# to find it.
ICECC_ENV_BUNDLE_BASENAME="`${SED} -n '/^creating/s/creating //p' ${icecc_create_env_log}`"
ICECC_ENV_BUNDLE="${CONFIGURESUPPORT_OUTPUTDIR}/icecc/${ICECC_ENV_BUNDLE_BASENAME}"
+ if test ! -f ${ICECC_ENV_BUNDLE}; then
+ AC_MSG_ERROR([icecc-create-env did not produce an environment ${ICECC_ENV_BUNDLE}])
+ fi
+ AC_MSG_CHECKING([for icecc build environment for target compiler])
AC_MSG_RESULT([${ICECC_ENV_BUNDLE}])
ICECC="ICECC_VERSION=${ICECC_ENV_BUNDLE} ICECC_CC=${CC} ICECC_CXX=${CXX} ${ICECC_CMD}"
if test "x${COMPILE_TYPE}" = "xcross"; then
# If cross compiling, create a separate env package for the build compiler
- AC_MSG_CHECKING([for icecc build environment for build compiler])
# Assume "gcc" or "cc" is gcc and "clang" is clang. Otherwise bail.
+ icecc_create_env_log_build="${CONFIGURESUPPORT_OUTPUTDIR}/icecc/icecc_create_env_build.log"
if test "x${BUILD_CC##*/}" = "xgcc" || test "x${BUILD_CC##*/}" = "xcc"; then
- cd ${CONFIGURESUPPORT_OUTPUTDIR}/icecc \
- && ${ICECC_CREATE_ENV} --gcc ${BUILD_CC} ${BUILD_CXX} > ${icecc_create_env_log}
+ BPERF_RUN_ICECC_CREATE_ENV([${icecc_gcc_arg} ${BUILD_CC} ${BUILD_CXX}], \
+ ${icecc_create_env_log_build})
elif test "x${BUILD_CC##*/}" = "xclang"; then
- cd ${CONFIGURESUPPORT_OUTPUTDIR}/icecc \
- && ${ICECC_CREATE_ENV} --clang ${BUILD_CC} ${ICECC_WRAPPER} > ${icecc_create_env_log}
+ BPERF_RUN_ICECC_CREATE_ENV([--clang ${BUILD_CC} ${ICECC_WRAPPER}], ${icecc_create_env_log_build})
else
AC_MSG_ERROR([Cannot create icecc compiler package for ${BUILD_CC}])
fi
- ICECC_ENV_BUNDLE_BASENAME="`${SED} -n '/^creating/s/creating //p' ${icecc_create_env_log}`"
+ ICECC_ENV_BUNDLE_BASENAME="`${SED} -n '/^creating/s/creating //p' ${icecc_create_env_log_build}`"
ICECC_ENV_BUNDLE="${CONFIGURESUPPORT_OUTPUTDIR}/icecc/${ICECC_ENV_BUNDLE_BASENAME}"
+ if test ! -f ${ICECC_ENV_BUNDLE}; then
+ AC_MSG_ERROR([icecc-create-env did not produce an environment ${ICECC_ENV_BUNDLE}])
+ fi
+ AC_MSG_CHECKING([for icecc build environment for build compiler])
AC_MSG_RESULT([${ICECC_ENV_BUNDLE}])
BUILD_ICECC="ICECC_VERSION=${ICECC_ENV_BUNDLE} ICECC_CC=${BUILD_CC} \
ICECC_CXX=${BUILD_CXX} ${ICECC_CMD}"
--- a/common/autoconf/flags.m4 Fri Jan 15 08:53:23 2016 -0800
+++ b/common/autoconf/flags.m4 Fri Jan 15 19:18:42 2016 +0000
@@ -128,6 +128,26 @@
else
COMPILER_TARGET_BITS_FLAG="-m"
COMPILER_COMMAND_FILE_FLAG="@"
+
+ # The solstudio linker does not support @-files.
+ if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
+ COMPILER_COMMAND_FILE_FLAG=
+ fi
+
+ # Check if @file is supported by gcc
+ if test "x$TOOLCHAIN_TYPE" = xgcc; then
+ AC_MSG_CHECKING([if @file is supported by gcc])
+ # Extra emtpy "" to prevent ECHO from interpreting '--version' as argument
+ $ECHO "" "--version" > command.file
+ if $CXX @command.file 2>&AS_MESSAGE_LOG_FD >&AS_MESSAGE_LOG_FD; then
+ AC_MSG_RESULT(yes)
+ COMPILER_COMMAND_FILE_FLAG="@"
+ else
+ AC_MSG_RESULT(no)
+ COMPILER_COMMAND_FILE_FLAG=
+ fi
+ rm -rf command.file
+ fi
fi
AC_SUBST(COMPILER_TARGET_BITS_FLAG)
AC_SUBST(COMPILER_COMMAND_FILE_FLAG)
--- a/common/autoconf/generated-configure.sh Fri Jan 15 08:53:23 2016 -0800
+++ b/common/autoconf/generated-configure.sh Fri Jan 15 19:18:42 2016 +0000
@@ -3794,6 +3794,15 @@
################################################################################
#
+# Runs icecc-create-env once and prints the error if it fails
+#
+# $1: arguments to icecc-create-env
+# $2: log file
+#
+
+
+################################################################################
+#
# Optionally enable distributed compilation of native code using icecc/icecream
#
@@ -4308,7 +4317,7 @@
#
-# 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
@@ -4801,7 +4810,7 @@
#CUSTOM_AUTOCONF_INCLUDE
# Do not change or remove the following line, it is needed for consistency checks:
-DATE_WHEN_GENERATED=1450277321
+DATE_WHEN_GENERATED=1452261921
###############################################################################
#
@@ -45930,6 +45939,29 @@
else
COMPILER_TARGET_BITS_FLAG="-m"
COMPILER_COMMAND_FILE_FLAG="@"
+
+ # The solstudio linker does not support @-files.
+ if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
+ COMPILER_COMMAND_FILE_FLAG=
+ fi
+
+ # Check if @file is supported by gcc
+ if test "x$TOOLCHAIN_TYPE" = xgcc; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if @file is supported by gcc" >&5
+$as_echo_n "checking if @file is supported by gcc... " >&6; }
+ # Extra emtpy "" to prevent ECHO from interpreting '--version' as argument
+ $ECHO "" "--version" > command.file
+ if $CXX @command.file 2>&5 >&5; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ COMPILER_COMMAND_FILE_FLAG="@"
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ COMPILER_COMMAND_FILE_FLAG=
+ fi
+ rm -rf command.file
+ fi
fi
@@ -51742,12 +51774,28 @@
fi
if test "x${with_cups}" != x; then
- CUPS_CFLAGS="-I${with_cups}/include"
- CUPS_FOUND=yes
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cups headers" >&5
+$as_echo_n "checking for cups headers... " >&6; }
+ if test -s "${with_cups}/include/cups/cups.h"; then
+ CUPS_CFLAGS="-I${with_cups}/include"
+ CUPS_FOUND=yes
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CUPS_FOUND" >&5
+$as_echo "$CUPS_FOUND" >&6; }
+ else
+ as_fn_error $? "Can't find 'include/cups/cups.h' under ${with_cups} given with the --with-cups option." "$LINENO" 5
+ fi
fi
if test "x${with_cups_include}" != x; then
- CUPS_CFLAGS="-I${with_cups_include}"
- CUPS_FOUND=yes
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cups headers" >&5
+$as_echo_n "checking for cups headers... " >&6; }
+ if test -s "${with_cups_include}/cups/cups.h"; then
+ CUPS_CFLAGS="-I${with_cups_include}"
+ CUPS_FOUND=yes
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CUPS_FOUND" >&5
+$as_echo "$CUPS_FOUND" >&6; }
+ else
+ as_fn_error $? "Can't find 'cups/cups.h' under ${with_cups_include} given with the --with-cups-include option." "$LINENO" 5
+ fi
fi
if test "x$CUPS_FOUND" = xno; then
# Are the cups headers installed in the default /usr/include location?
@@ -59543,11 +59591,23 @@
# be sent to the other hosts in the icecream cluster.
icecc_create_env_log="${CONFIGURESUPPORT_OUTPUTDIR}/icecc/icecc_create_env.log"
${MKDIR} -p ${CONFIGURESUPPORT_OUTPUTDIR}/icecc
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for icecc build environment for target compiler" >&5
-$as_echo_n "checking for icecc build environment for target compiler... " >&6; }
+ # Older versions of icecc does not have the --gcc parameter
+ if ${ICECC_CREATE_ENV} | $GREP -q -e --gcc; then
+ icecc_gcc_arg="--gcc"
+ fi
if test "x${TOOLCHAIN_TYPE}" = "xgcc"; then
- cd ${CONFIGURESUPPORT_OUTPUTDIR}/icecc \
- && ${ICECC_CREATE_ENV} --gcc ${CC} ${CXX} > ${icecc_create_env_log}
+
+ cd ${CONFIGURESUPPORT_OUTPUTDIR}/icecc \
+ && ${ICECC_CREATE_ENV} ${icecc_gcc_arg} ${CC} ${CXX} > \
+ ${icecc_create_env_log} 2>&1
+ if test "$?" != "0"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: icecc-create-env output:" >&5
+$as_echo "$as_me: icecc-create-env output:" >&6;}
+ cat \
+ ${icecc_create_env_log}
+ as_fn_error $? "Failed to create icecc compiler environment" "$LINENO" 5
+ fi
+
elif test "x$TOOLCHAIN_TYPE" = "xclang"; then
# For clang, the icecc compilerwrapper is needed. It usually resides next
# to icecc-create-env.
@@ -59755,8 +59815,16 @@
fi
- cd ${CONFIGURESUPPORT_OUTPUTDIR}/icecc \
- && ${ICECC_CREATE_ENV} --clang ${CC} ${ICECC_WRAPPER} > ${icecc_create_env_log}
+
+ cd ${CONFIGURESUPPORT_OUTPUTDIR}/icecc \
+ && ${ICECC_CREATE_ENV} --clang ${CC} ${ICECC_WRAPPER} > ${icecc_create_env_log} 2>&1
+ if test "$?" != "0"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: icecc-create-env output:" >&5
+$as_echo "$as_me: icecc-create-env output:" >&6;}
+ cat ${icecc_create_env_log}
+ as_fn_error $? "Failed to create icecc compiler environment" "$LINENO" 5
+ fi
+
else
as_fn_error $? "Can only create icecc compiler packages for toolchain types gcc and clang" "$LINENO" 5
fi
@@ -59765,26 +59833,53 @@
# to find it.
ICECC_ENV_BUNDLE_BASENAME="`${SED} -n '/^creating/s/creating //p' ${icecc_create_env_log}`"
ICECC_ENV_BUNDLE="${CONFIGURESUPPORT_OUTPUTDIR}/icecc/${ICECC_ENV_BUNDLE_BASENAME}"
+ if test ! -f ${ICECC_ENV_BUNDLE}; then
+ as_fn_error $? "icecc-create-env did not produce an environment ${ICECC_ENV_BUNDLE}" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for icecc build environment for target compiler" >&5
+$as_echo_n "checking for icecc build environment for target compiler... " >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${ICECC_ENV_BUNDLE}" >&5
$as_echo "${ICECC_ENV_BUNDLE}" >&6; }
ICECC="ICECC_VERSION=${ICECC_ENV_BUNDLE} ICECC_CC=${CC} ICECC_CXX=${CXX} ${ICECC_CMD}"
if test "x${COMPILE_TYPE}" = "xcross"; then
# If cross compiling, create a separate env package for the build compiler
+ # Assume "gcc" or "cc" is gcc and "clang" is clang. Otherwise bail.
+ icecc_create_env_log_build="${CONFIGURESUPPORT_OUTPUTDIR}/icecc/icecc_create_env_build.log"
+ if test "x${BUILD_CC##*/}" = "xgcc" || test "x${BUILD_CC##*/}" = "xcc"; then
+
+ cd ${CONFIGURESUPPORT_OUTPUTDIR}/icecc \
+ && ${ICECC_CREATE_ENV} ${icecc_gcc_arg} ${BUILD_CC} ${BUILD_CXX} > \
+ ${icecc_create_env_log_build} 2>&1
+ if test "$?" != "0"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: icecc-create-env output:" >&5
+$as_echo "$as_me: icecc-create-env output:" >&6;}
+ cat \
+ ${icecc_create_env_log_build}
+ as_fn_error $? "Failed to create icecc compiler environment" "$LINENO" 5
+ fi
+
+ elif test "x${BUILD_CC##*/}" = "xclang"; then
+
+ cd ${CONFIGURESUPPORT_OUTPUTDIR}/icecc \
+ && ${ICECC_CREATE_ENV} --clang ${BUILD_CC} ${ICECC_WRAPPER} > ${icecc_create_env_log_build} 2>&1
+ if test "$?" != "0"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: icecc-create-env output:" >&5
+$as_echo "$as_me: icecc-create-env output:" >&6;}
+ cat ${icecc_create_env_log_build}
+ as_fn_error $? "Failed to create icecc compiler environment" "$LINENO" 5
+ fi
+
+ else
+ as_fn_error $? "Cannot create icecc compiler package for ${BUILD_CC}" "$LINENO" 5
+ fi
+ ICECC_ENV_BUNDLE_BASENAME="`${SED} -n '/^creating/s/creating //p' ${icecc_create_env_log_build}`"
+ ICECC_ENV_BUNDLE="${CONFIGURESUPPORT_OUTPUTDIR}/icecc/${ICECC_ENV_BUNDLE_BASENAME}"
+ if test ! -f ${ICECC_ENV_BUNDLE}; then
+ as_fn_error $? "icecc-create-env did not produce an environment ${ICECC_ENV_BUNDLE}" "$LINENO" 5
+ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for icecc build environment for build compiler" >&5
$as_echo_n "checking for icecc build environment for build compiler... " >&6; }
- # Assume "gcc" or "cc" is gcc and "clang" is clang. Otherwise bail.
- if test "x${BUILD_CC##*/}" = "xgcc" || test "x${BUILD_CC##*/}" = "xcc"; then
- cd ${CONFIGURESUPPORT_OUTPUTDIR}/icecc \
- && ${ICECC_CREATE_ENV} --gcc ${BUILD_CC} ${BUILD_CXX} > ${icecc_create_env_log}
- elif test "x${BUILD_CC##*/}" = "xclang"; then
- cd ${CONFIGURESUPPORT_OUTPUTDIR}/icecc \
- && ${ICECC_CREATE_ENV} --clang ${BUILD_CC} ${ICECC_WRAPPER} > ${icecc_create_env_log}
- else
- as_fn_error $? "Cannot create icecc compiler package for ${BUILD_CC}" "$LINENO" 5
- fi
- ICECC_ENV_BUNDLE_BASENAME="`${SED} -n '/^creating/s/creating //p' ${icecc_create_env_log}`"
- ICECC_ENV_BUNDLE="${CONFIGURESUPPORT_OUTPUTDIR}/icecc/${ICECC_ENV_BUNDLE_BASENAME}"
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${ICECC_ENV_BUNDLE}" >&5
$as_echo "${ICECC_ENV_BUNDLE}" >&6; }
BUILD_ICECC="ICECC_VERSION=${ICECC_ENV_BUNDLE} ICECC_CC=${BUILD_CC} \
--- a/common/autoconf/lib-cups.m4 Fri Jan 15 08:53:23 2016 -0800
+++ b/common/autoconf/lib-cups.m4 Fri Jan 15 19:18:42 2016 +0000
@@ -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
@@ -48,12 +48,24 @@
fi
if test "x${with_cups}" != x; then
- CUPS_CFLAGS="-I${with_cups}/include"
- CUPS_FOUND=yes
+ AC_MSG_CHECKING([for cups headers])
+ if test -s "${with_cups}/include/cups/cups.h"; then
+ CUPS_CFLAGS="-I${with_cups}/include"
+ CUPS_FOUND=yes
+ AC_MSG_RESULT([$CUPS_FOUND])
+ else
+ AC_MSG_ERROR([Can't find 'include/cups/cups.h' under ${with_cups} given with the --with-cups option.])
+ fi
fi
if test "x${with_cups_include}" != x; then
- CUPS_CFLAGS="-I${with_cups_include}"
- CUPS_FOUND=yes
+ AC_MSG_CHECKING([for cups headers])
+ if test -s "${with_cups_include}/cups/cups.h"; then
+ CUPS_CFLAGS="-I${with_cups_include}"
+ CUPS_FOUND=yes
+ AC_MSG_RESULT([$CUPS_FOUND])
+ else
+ AC_MSG_ERROR([Can't find 'cups/cups.h' under ${with_cups_include} given with the --with-cups-include option.])
+ fi
fi
if test "x$CUPS_FOUND" = xno; then
# Are the cups headers installed in the default /usr/include location?
--- a/corba/.hgtags Fri Jan 15 08:53:23 2016 -0800
+++ b/corba/.hgtags Fri Jan 15 19:18:42 2016 +0000
@@ -342,3 +342,4 @@
10a482b863582376d4ca229090334b23b05159fc jdk-9+97
ea285530245cf4e0edf0479121a41347d3030eba jdk-9+98
180212ee1d8710691ba9944593dfc1ff3e4f1532 jdk-9+99
+791d0d3ac0138faeb6110bd840a4545bc1950df2 jdk-9+100
--- a/hotspot/.hgtags Fri Jan 15 08:53:23 2016 -0800
+++ b/hotspot/.hgtags Fri Jan 15 19:18:42 2016 +0000
@@ -502,3 +502,4 @@
de592ea5f7ba0f8a8c5afc03bd169f7690c72b6f jdk-9+97
e5b1a23be1e105417ba1c4c576ab373eb3fa2c2b jdk-9+98
f008e8cc10d5b3212fb22d58c96fa01d38654f19 jdk-9+99
+bdb0acafc63c42e84d9d8195bf2e2b25ee9c3306 jdk-9+100
--- a/hotspot/src/share/vm/prims/jvm.cpp Fri Jan 15 08:53:23 2016 -0800
+++ b/hotspot/src/share/vm/prims/jvm.cpp Fri Jan 15 19:18:42 2016 +0000
@@ -285,7 +285,7 @@
return os::javaTimeNanos();
JVM_END
-// The function below is actually exposed by sun.misc.VM and not
+// The function below is actually exposed by jdk.internal.misc.VM and not
// java.lang.System, but we choose to keep it here so that it stays next
// to JVM_CurrentTimeMillis and JVM_NanoTime
--- a/jaxp/.hgtags Fri Jan 15 08:53:23 2016 -0800
+++ b/jaxp/.hgtags Fri Jan 15 19:18:42 2016 +0000
@@ -342,3 +342,4 @@
9c107c050335d7ee63b2a8b38ca5d498f19713a2 jdk-9+97
52b01339235f24c93b679bd6b8fb36a1072ad0ac jdk-9+98
52774b544850c791f1d1c67db2601b33739b18c9 jdk-9+99
+d45bcd374f6057851e3c2dcd45607cd362afadfa jdk-9+100
--- a/jaxws/.hgtags Fri Jan 15 08:53:23 2016 -0800
+++ b/jaxws/.hgtags Fri Jan 15 19:18:42 2016 +0000
@@ -345,3 +345,4 @@
7293db4716ee25b814e14f738b9acfb85700e3fa jdk-9+97
67c84077edc3db6b24998b35970b37c01aae985e jdk-9+98
97b31ca0dd77483cf20ff99a033a455673639578 jdk-9+99
+d0a97e57d2336238edf6a4cd60aafe67deb7258d jdk-9+100
--- a/jdk/.hgtags Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/.hgtags Fri Jan 15 19:18:42 2016 +0000
@@ -342,3 +342,4 @@
fdd84b2265ddce7f50e084b7c8635189bba6f012 jdk-9+97
f86ee68d1107dad41a27efc34306e0e56244a12e jdk-9+98
e1a789be1535741274c9779f4d4ca3495196b5c3 jdk-9+99
+3d452840f48299a36842760d17c0c8402f0e1266 jdk-9+100
--- a/jdk/make/gendata/GendataBreakIterator.gmk Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/make/gendata/GendataBreakIterator.gmk Fri Jan 15 19:18:42 2016 +0000
@@ -48,7 +48,6 @@
$(eval $(call SetupJavaCompilation,BUILD_BREAKITERATOR, \
SETUP := GENERATE_OLDBYTECODE, \
SRC := $(TEXT_SRCDIR), \
- INCLUDES := $(TEXT_PKG), \
INCLUDE_FILES := $(TEXT_SOURCES), \
BIN := $(BREAK_ITERATOR_CLASSES)))
--- a/jdk/make/mapfiles/libjava/mapfile-vers Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/make/mapfiles/libjava/mapfile-vers Fri Jan 15 19:18:42 2016 +0000
@@ -216,6 +216,7 @@
Java_java_lang_SecurityManager_getClassContext;
Java_java_lang_Shutdown_halt0;
Java_java_lang_String_intern;
+ Java_java_lang_StringCoding_err;
Java_java_lang_StringUTF16_isBigEndian;
Java_java_lang_System_identityHashCode;
Java_java_lang_System_initProperties;
@@ -243,8 +244,6 @@
Java_java_util_TimeZone_getSystemTimeZoneID;
Java_java_util_TimeZone_getSystemGMTOffsetID;
Java_java_util_concurrent_atomic_AtomicLong_VMSupportsCS8;
- Java_sun_misc_MessageUtils_toStderr;
- Java_sun_misc_MessageUtils_toStdout;
Java_sun_misc_NativeSignalHandler_handle0;
Java_sun_misc_Signal_findSignal;
Java_sun_misc_Signal_handle0;
@@ -274,12 +273,12 @@
Java_sun_reflect_Reflection_getClassAccessFlags;
Java_sun_misc_Version_getJdkVersionInfo;
Java_sun_misc_Version_getJvmVersionInfo;
- Java_sun_misc_VM_latestUserDefinedLoader;
- Java_sun_misc_VM_getuid;
- Java_sun_misc_VM_geteuid;
- Java_sun_misc_VM_getgid;
- Java_sun_misc_VM_getegid;
- Java_sun_misc_VM_initialize;
+ Java_jdk_internal_misc_VM_latestUserDefinedLoader;
+ Java_jdk_internal_misc_VM_getuid;
+ Java_jdk_internal_misc_VM_geteuid;
+ Java_jdk_internal_misc_VM_getgid;
+ Java_jdk_internal_misc_VM_getegid;
+ Java_jdk_internal_misc_VM_initialize;
Java_sun_misc_VMSupport_initAgentProperties;
Java_sun_misc_VMSupport_getVMTemporaryDirectory;
--- a/jdk/make/src/classes/build/tools/dtdbuilder/DTDParser.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/make/src/classes/build/tools/dtdbuilder/DTDParser.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,8 +35,6 @@
import java.util.BitSet;
import java.text.MessageFormat;
-import sun.misc.MessageUtils;
-
/**
* A parser for DTDs. This parser roughly corresponds to the
* rules specified in "The SGML Handbook" by Charles F. Goldfarb.
--- a/jdk/make/src/classes/build/tools/spp/Spp.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/make/src/classes/build/tools/spp/Spp.java Fri Jan 15 19:18:42 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,9 +32,10 @@
* Spp: A simple regex-based stream preprocessor based on Mark Reinhold's
* sed-based spp.sh
*
- * Usage: java build.tools.spp.Spp [-be] [-Kkey] -Dvar=value ... <in >out
+ * Usage: java build.tools.spp.Spp [-be] [-nel] [-Kkey] -Dvar=value ... <in >out
*
- * Source-file constructs
+ * If -nel is declared then empty lines will not be substituted for lines of
+ * text in the template that do not appear in the output.
*
* Meaningful only at beginning of line, works with any number of keys:
*
@@ -64,9 +65,10 @@
public class Spp {
public static void main(String args[]) throws Exception {
- Map<String, String> vars = new HashMap<String, String>();
- Set<String> keys = new HashSet<String>();
+ Map<String, String> vars = new HashMap<>();
+ Set<String> keys = new HashSet<>();
boolean be = false;
+ boolean el = true;
for (String arg:args) {
if (arg.startsWith("-D")) {
@@ -76,8 +78,10 @@
keys.add(arg.substring(2));
} else if ("-be".equals(arg)) {
be = true;
+ } else if ("-nel".equals(arg)) {
+ el = false;
} else {
- System.err.println("Usage: java build.tools.spp.Spp [-be] [-Kkey] -Dvar=value ... <in >out");
+ System.err.println("Usage: java build.tools.spp.Spp [-be] [-nel] [-Kkey] -Dvar=value ... <in >out");
System.exit(-1);
}
}
@@ -85,7 +89,7 @@
StringBuffer out = new StringBuffer();
new Spp().spp(new Scanner(System.in),
out, "",
- keys, vars, be,
+ keys, vars, be, el,
false);
System.out.print(out.toString());
}
@@ -93,7 +97,7 @@
static final String LNSEP = System.getProperty("line.separator");
static final String KEY = "([a-zA-Z0-9]+)";
static final String VAR = "([a-zA-Z0-9_\\-]+)";
- static final String TEXT = "([a-zA-Z0-9&;,.<>/#() \\$]+)"; // $ -- hack embedded $var$
+ static final String TEXT = "([a-zA-Z0-9&;,.<>/#() \\?\\[\\]\\$]+)"; // $ -- hack embedded $var$
static final int GN_NOT = 1;
static final int GN_KEY = 2;
@@ -101,11 +105,11 @@
static final int GN_NO = 5;
static final int GN_VAR = 6;
- Matcher ifkey = Pattern.compile("^#if\\[(!)?" + KEY + "\\]").matcher("");
- Matcher elsekey = Pattern.compile("^#else\\[(!)?" + KEY + "\\]").matcher("");
- Matcher endkey = Pattern.compile("^#end\\[(!)?" + KEY + "\\]").matcher("");
- Matcher vardef = Pattern.compile("\\{#if\\[(!)?" + KEY + "\\]\\?" + TEXT + "(:"+ TEXT + ")?\\}|\\$" + VAR + "\\$").matcher("");
- Matcher vardef2 = Pattern.compile("\\$" + VAR + "\\$").matcher("");
+ final Matcher ifkey = Pattern.compile("^#if\\[(!)?" + KEY + "\\]").matcher("");
+ final Matcher elsekey = Pattern.compile("^#else\\[(!)?" + KEY + "\\]").matcher("");
+ final Matcher endkey = Pattern.compile("^#end\\[(!)?" + KEY + "\\]").matcher("");
+ final Matcher vardef = Pattern.compile("\\{#if\\[(!)?" + KEY + "\\]\\?" + TEXT + "(:"+ TEXT + ")?\\}|\\$" + VAR + "\\$").matcher("");
+ final Matcher vardef2 = Pattern.compile("\\$" + VAR + "\\$").matcher("");
void append(StringBuffer buf, String ln,
Set<String> keys, Map<String, String> vars) {
@@ -135,7 +139,7 @@
// return true if #end[key], #end or EOF reached
boolean spp(Scanner in, StringBuffer buf, String key,
Set<String> keys, Map<String, String> vars,
- boolean be, boolean skip) {
+ boolean be, boolean el, boolean skip) {
while (in.hasNextLine()) {
String ln = in.nextLine();
if (be) {
@@ -154,9 +158,9 @@
boolean test = keys.contains(k);
if (ifkey.group(GN_NOT) != null)
test = !test;
- buf.append(LNSEP);
- if (!spp(in, buf, k, keys, vars, be, skip || !test)) {
- spp(in, buf, k, keys, vars, be, skip || test);
+ if (el) buf.append(LNSEP);
+ if (!spp(in, buf, k, keys, vars, be, el, skip || !test)) {
+ spp(in, buf, k, keys, vars, be, el, skip || test);
}
continue;
}
@@ -164,14 +168,14 @@
if (!key.equals(elsekey.group(GN_KEY))) {
throw new Error("Mis-matched #if-else-end at line <" + ln + ">");
}
- buf.append(LNSEP);
+ if (el) buf.append(LNSEP);
return false;
}
if (endkey.reset(ln).find()) {
if (!key.equals(endkey.group(GN_KEY))) {
throw new Error("Mis-matched #if-else-end at line <" + ln + ">");
}
- buf.append(LNSEP);
+ if (el) buf.append(LNSEP);
return true;
}
if (ln.startsWith("#warn")) {
@@ -181,8 +185,9 @@
}
if (!skip) {
append(buf, ln, keys, vars);
+ if (!el) buf.append(LNSEP);
}
- buf.append(LNSEP);
+ if (el) buf.append(LNSEP);
}
return true;
}
--- a/jdk/src/java.base/share/classes/com/sun/crypto/provider/CounterMode.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/com/sun/crypto/provider/CounterMode.java Fri Jan 15 19:18:42 2016 +0000
@@ -26,7 +26,9 @@
package com.sun.crypto.provider;
import java.security.InvalidKeyException;
+import java.util.Objects;
+import jdk.internal.HotSpotIntrinsicCandidate;
/**
* This class represents ciphers in counter (CTR) mode.
@@ -138,7 +140,7 @@
* <code>cipherOffset</code>.
*
* @param in the buffer with the input data to be encrypted
- * @param inOffset the offset in <code>plain</code>
+ * @param inOff the offset in <code>plain</code>
* @param len the length of the input data
* @param out the buffer for the result
* @param outOff the offset in <code>cipher</code>
@@ -170,6 +172,15 @@
* are encrypted on demand.
*/
private int crypt(byte[] in, int inOff, int len, byte[] out, int outOff) {
+
+ cryptBlockCheck(in, inOff, len);
+ cryptBlockCheck(out, outOff, len);
+ return implCrypt(in, inOff, len, out, outOff);
+ }
+
+ // Implementation of crpyt() method. Possibly replaced with a compiler intrinsic.
+ @HotSpotIntrinsicCandidate
+ private int implCrypt(byte[] in, int inOff, int len, byte[] out, int outOff) {
int result = len;
while (len-- > 0) {
if (used >= blockSize) {
@@ -181,4 +192,23 @@
}
return result;
}
+
+ // Used to perform all checks required by the Java semantics
+ // (i.e., null checks and bounds checks) on the input parameters to crypt().
+ // Normally, the Java Runtime performs these checks, however, as crypt() is
+ // possibly replaced with compiler intrinsic, the JDK performs the
+ // required checks instead.
+ // Does not check accesses to class-internal (private) arrays.
+ private static void cryptBlockCheck(byte[] array, int offset, int len) {
+ Objects.requireNonNull(array);
+
+ if (offset < 0 || len < 0 || offset >= array.length) {
+ throw new ArrayIndexOutOfBoundsException(offset);
+ }
+
+ int largestIndex = offset + len - 1;
+ if (largestIndex < 0 || largestIndex >= array.length) {
+ throw new ArrayIndexOutOfBoundsException(largestIndex);
+ }
+ }
}
--- a/jdk/src/java.base/share/classes/java/io/ObjectInputStream.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/java/io/ObjectInputStream.java Fri Jan 15 19:18:42 2016 +0000
@@ -2135,7 +2135,7 @@
* corresponding modifications to the above class.
*/
private static ClassLoader latestUserDefinedLoader() {
- return sun.misc.VM.latestUserDefinedLoader();
+ return jdk.internal.misc.VM.latestUserDefinedLoader();
}
/**
--- a/jdk/src/java.base/share/classes/java/lang/Class.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/java/lang/Class.java Fri Jan 15 19:18:42 2016 +0000
@@ -56,6 +56,7 @@
import java.util.Objects;
import java.util.StringJoiner;
import jdk.internal.misc.Unsafe;
+import jdk.internal.misc.VM;
import jdk.internal.HotSpotIntrinsicCandidate;
import sun.reflect.CallerSensitive;
import sun.reflect.ConstantPool;
@@ -360,9 +361,9 @@
// Reflective call to get caller class is only needed if a security manager
// is present. Avoid the overhead of making this call otherwise.
caller = Reflection.getCallerClass();
- if (sun.misc.VM.isSystemDomainLoader(loader)) {
+ if (VM.isSystemDomainLoader(loader)) {
ClassLoader ccl = ClassLoader.getClassLoader(caller);
- if (!sun.misc.VM.isSystemDomainLoader(ccl)) {
+ if (!VM.isSystemDomainLoader(ccl)) {
sm.checkPermission(
SecurityConstants.GET_CLASSLOADER_PERMISSION);
}
--- a/jdk/src/java.base/share/classes/java/lang/Integer.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/java/lang/Integer.java Fri Jan 15 19:18:42 2016 +0000
@@ -28,6 +28,7 @@
import java.lang.annotation.Native;
import java.util.Objects;
import jdk.internal.HotSpotIntrinsicCandidate;
+import jdk.internal.misc.VM;
import static java.lang.String.COMPACT_STRINGS;
import static java.lang.String.LATIN1;
@@ -1018,7 +1019,7 @@
* may be controlled by the {@code -XX:AutoBoxCacheMax=<size>} option.
* During VM initialization, java.lang.Integer.IntegerCache.high property
* may be set and saved in the private system properties in the
- * sun.misc.VM class.
+ * jdk.internal.misc.VM class.
*/
private static class IntegerCache {
@@ -1030,7 +1031,7 @@
// high value may be configured by property
int h = 127;
String integerCacheHighPropValue =
- sun.misc.VM.getSavedProperty("java.lang.Integer.IntegerCache.high");
+ VM.getSavedProperty("java.lang.Integer.IntegerCache.high");
if (integerCacheHighPropValue != null) {
try {
int i = parseInt(integerCacheHighPropValue);
--- a/jdk/src/java.base/share/classes/java/lang/LiveStackFrame.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/java/lang/LiveStackFrame.java Fri Jan 15 19:18:42 2016 +0000
@@ -61,6 +61,9 @@
* local variable array is an {@link PrimitiveValue} object;
* otherwise, the element is an {@code Object}.
*
+ * <p>The returned array may contain null entries if a local variable is not
+ * live.
+ *
* @return the local variable array of this stack frame.
*/
public Object[] getLocals();
--- a/jdk/src/java.base/share/classes/java/lang/StackStreamFactory.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/java/lang/StackStreamFactory.java Fri Jan 15 19:18:42 2016 +0000
@@ -24,7 +24,7 @@
*/
package java.lang;
-import sun.misc.VM;
+import jdk.internal.misc.VM;
import java.io.PrintStream;
import java.lang.StackWalker.Option;
--- a/jdk/src/java.base/share/classes/java/lang/StringCoding.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/java/lang/StringCoding.java Fri Jan 15 19:18:42 2016 +0000
@@ -39,7 +39,6 @@
import java.nio.charset.UnsupportedCharsetException;
import java.util.Arrays;
import jdk.internal.HotSpotIntrinsicCandidate;
-import sun.misc.MessageUtils;
import sun.nio.cs.HistoricallyNamedCharset;
import sun.nio.cs.ArrayDecoder;
import sun.nio.cs.ArrayEncoder;
@@ -106,11 +105,11 @@
private static void warnUnsupportedCharset(String csn) {
if (warnUnsupportedCharset) {
- // Use sun.misc.MessageUtils rather than the Logging API or
- // System.err since this method may be called during VM
- // initialization before either is available.
- MessageUtils.err("WARNING: Default charset " + csn +
- " not supported, using ISO-8859-1 instead");
+ // Use err(String) rather than the Logging API or System.err
+ // since this method may be called during VM initialization
+ // before either is available.
+ err("WARNING: Default charset " + csn +
+ " not supported, using ISO-8859-1 instead\n");
warnUnsupportedCharset = false;
}
}
@@ -341,10 +340,9 @@
try {
return decode("ISO-8859-1", ba, off, len);
} catch (UnsupportedEncodingException x) {
- // If this code is hit during VM initialization, MessageUtils is
+ // If this code is hit during VM initialization, err(String) is
// the only way we will be able to get any kind of error message.
- MessageUtils.err("ISO-8859-1 charset not available: "
- + x.toString());
+ err("ISO-8859-1 charset not available: " + x.toString() + "\n");
// If we can not find ISO-8859-1 (a required encoding) then things
// are seriously wrong with the installation.
System.exit(1);
@@ -653,14 +651,20 @@
try {
return encode("ISO-8859-1", coder, val);
} catch (UnsupportedEncodingException x) {
- // If this code is hit during VM initialization, MessageUtils is
+ // If this code is hit during VM initialization, err(String) is
// the only way we will be able to get any kind of error message.
- MessageUtils.err("ISO-8859-1 charset not available: "
- + x.toString());
+ err("ISO-8859-1 charset not available: " + x.toString() + "\n");
// If we can not find ISO-8859-1 (a required encoding) then things
// are seriously wrong with the installation.
System.exit(1);
return null;
}
}
+
+ /**
+ * Print a message directly to stderr, bypassing all character conversion
+ * methods.
+ * @param msg message to print
+ */
+ private static native void err(String msg);
}
--- a/jdk/src/java.base/share/classes/java/lang/System.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/java/lang/System.java Fri Jan 15 19:18:42 2016 +0000
@@ -46,6 +46,7 @@
import jdk.internal.HotSpotIntrinsicCandidate;
import jdk.internal.misc.JavaLangAccess;;
import jdk.internal.misc.SharedSecrets;;
+import jdk.internal.misc.VM;
import jdk.internal.logger.LoggerFinderLoader;
import jdk.internal.logger.LazyLoggers;
import jdk.internal.logger.LocalizedLoggerWrapper;
@@ -1534,6 +1535,8 @@
* @return an instance of {@link Logger} that can be used by the calling
* class.
* @throws NullPointerException if {@code name} is {@code null}.
+ *
+ * @since 9
*/
@CallerSensitive
public static Logger getLogger(String name) {
@@ -1571,6 +1574,8 @@
* resource bundle for message localization.
* @throws NullPointerException if {@code name} is {@code null} or
* {@code bundle} is {@code null}.
+ *
+ * @since 9
*/
@CallerSensitive
public static Logger getLogger(String name, ResourceBundle bundle) {
@@ -1817,12 +1822,12 @@
// removed from the system properties.
//
// See java.lang.Integer.IntegerCache and the
- // sun.misc.VM.saveAndRemoveProperties method for example.
+ // VM.saveAndRemoveProperties method for example.
//
// Save a private copy of the system properties object that
// can only be accessed by the internal implementation. Remove
// certain system properties that are not intended for public access.
- sun.misc.VM.saveAndRemoveProperties(props);
+ VM.saveAndRemoveProperties(props);
lineSeparator = props.getProperty("line.separator");
@@ -1846,7 +1851,7 @@
// set for the class libraries. Currently this is no-op everywhere except
// for Windows where the process-wide error mode is set before the java.io
// classes are used.
- sun.misc.VM.initializeOSEnvironment();
+ VM.initializeOSEnvironment();
// The main thread is not added to its thread group in the same
// way as other threads; we must do it ourselves here.
@@ -1857,10 +1862,10 @@
setJavaLangAccess();
// Subsystems that are invoked during initialization can invoke
- // sun.misc.VM.isBooted() in order to avoid doing things that should
+ // VM.isBooted() in order to avoid doing things that should
// wait until the application class loader has been set up.
// IMPORTANT: Ensure that this remains the last initialization action!
- sun.misc.VM.booted();
+ VM.booted();
}
private static void setJavaLangAccess() {
--- a/jdk/src/java.base/share/classes/java/lang/Thread.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/java/lang/Thread.java Fri Jan 15 19:18:42 2016 +0000
@@ -1869,7 +1869,7 @@
*/
public State getState() {
// get current thread state
- return sun.misc.VM.toThreadState(threadStatus);
+ return jdk.internal.misc.VM.toThreadState(threadStatus);
}
// Added in JSR-166
--- a/jdk/src/java.base/share/classes/java/lang/ThreadGroup.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/java/lang/ThreadGroup.java Fri Jan 15 19:18:42 2016 +0000
@@ -27,7 +27,7 @@
import java.io.PrintStream;
import java.util.Arrays;
-import sun.misc.VM;
+import jdk.internal.misc.VM;
/**
* A thread group represents a set of threads. In addition, a thread
--- a/jdk/src/java.base/share/classes/java/lang/Throwable.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/java/lang/Throwable.java Fri Jan 15 19:18:42 2016 +0000
@@ -24,7 +24,7 @@
*/
package java.lang;
-import sun.misc.VM;
+import jdk.internal.misc.VM;
import java.io.*;
import java.util.*;
--- a/jdk/src/java.base/share/classes/java/lang/invoke/BoundMethodHandle.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/java/lang/invoke/BoundMethodHandle.java Fri Jan 15 19:18:42 2016 +0000
@@ -25,25 +25,25 @@
package java.lang.invoke;
-import static jdk.internal.org.objectweb.asm.Opcodes.*;
-import static java.lang.invoke.LambdaForm.*;
-import static java.lang.invoke.LambdaForm.BasicType.*;
-import static java.lang.invoke.MethodHandleStatics.*;
+import jdk.internal.vm.annotation.Stable;
+import jdk.internal.org.objectweb.asm.ClassWriter;
+import jdk.internal.org.objectweb.asm.FieldVisitor;
+import jdk.internal.org.objectweb.asm.MethodVisitor;
+import sun.invoke.util.ValueConversions;
+import sun.invoke.util.Wrapper;
import java.lang.invoke.LambdaForm.NamedFunction;
import java.lang.invoke.MethodHandles.Lookup;
import java.lang.reflect.Field;
import java.util.Arrays;
-import java.util.function.Function;
+import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
-import java.util.concurrent.ConcurrentHashMap;
+import java.util.function.Function;
-import jdk.internal.org.objectweb.asm.FieldVisitor;
-import sun.invoke.util.ValueConversions;
-import sun.invoke.util.Wrapper;
-
-import jdk.internal.org.objectweb.asm.ClassWriter;
-import jdk.internal.org.objectweb.asm.MethodVisitor;
+import static java.lang.invoke.LambdaForm.BasicType;
+import static java.lang.invoke.LambdaForm.BasicType.*;
+import static java.lang.invoke.MethodHandleStatics.*;
+import static jdk.internal.org.objectweb.asm.Opcodes.*;
/**
* The flavor of method handle which emulates an invoke instruction
@@ -459,7 +459,7 @@
static final String BMH_SIG = "L"+BMH+";";
static final String SPECIES_DATA = "java/lang/invoke/BoundMethodHandle$SpeciesData";
static final String SPECIES_DATA_SIG = "L"+SPECIES_DATA+";";
- static final String STABLE_SIG = "Ljava/lang/invoke/Stable;";
+ static final String STABLE_SIG = "Ljdk/internal/vm/annotation/Stable;";
static final String SPECIES_PREFIX_NAME = "Species_";
static final String SPECIES_PREFIX_PATH = BMH + "$" + SPECIES_PREFIX_NAME;
--- a/jdk/src/java.base/share/classes/java/lang/invoke/DirectMethodHandle.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/java/lang/invoke/DirectMethodHandle.java Fri Jan 15 19:18:42 2016 +0000
@@ -26,19 +26,23 @@
package java.lang.invoke;
import jdk.internal.misc.Unsafe;
+import jdk.internal.vm.annotation.ForceInline;
+import sun.invoke.util.ValueConversions;
+import sun.invoke.util.VerifyAccess;
+import sun.invoke.util.VerifyType;
+import sun.invoke.util.Wrapper;
+
+import java.lang.ref.WeakReference;
+import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.Arrays;
-import sun.invoke.util.VerifyAccess;
+import java.util.Objects;
+
+import static java.lang.invoke.LambdaForm.*;
import static java.lang.invoke.MethodHandleNatives.Constants.*;
-import static java.lang.invoke.LambdaForm.*;
+import static java.lang.invoke.MethodHandleStatics.UNSAFE;
+import static java.lang.invoke.MethodHandleStatics.newInternalError;
import static java.lang.invoke.MethodTypeForm.*;
-import static java.lang.invoke.MethodHandleStatics.*;
-import java.lang.ref.WeakReference;
-import java.lang.reflect.Field;
-import java.util.Objects;
-import sun.invoke.util.ValueConversions;
-import sun.invoke.util.VerifyType;
-import sun.invoke.util.Wrapper;
/**
* The flavor of method handle which implements a constant reference
--- a/jdk/src/java.base/share/classes/java/lang/invoke/DontInline.java Fri Jan 15 08:53:23 2016 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package java.lang.invoke;
-
-import java.lang.annotation.*;
-
-/**
- * Internal marker for some methods in the JSR 292 implementation.
- */
-/*non-public*/
-@Target({ElementType.METHOD, ElementType.CONSTRUCTOR})
-@Retention(RetentionPolicy.RUNTIME)
-@interface DontInline {
-}
--- a/jdk/src/java.base/share/classes/java/lang/invoke/ForceInline.java Fri Jan 15 08:53:23 2016 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package java.lang.invoke;
-
-import java.lang.annotation.*;
-
-/**
- * Internal marker for some methods in the JSR 292 implementation.
- */
-/*non-public*/
-@Target({ElementType.METHOD, ElementType.CONSTRUCTOR})
-@Retention(RetentionPolicy.RUNTIME)
-@interface ForceInline {
-}
--- a/jdk/src/java.base/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java Fri Jan 15 19:18:42 2016 +0000
@@ -625,9 +625,9 @@
if (lambdaForm.forceInline) {
// Force inlining of this invoker method.
- mv.visitAnnotation("Ljava/lang/invoke/ForceInline;", true);
+ mv.visitAnnotation("Ljdk/internal/vm/annotation/ForceInline;", true);
} else {
- mv.visitAnnotation("Ljava/lang/invoke/DontInline;", true);
+ mv.visitAnnotation("Ljdk/internal/vm/annotation/DontInline;", true);
}
if (lambdaForm.customized != null) {
@@ -1309,7 +1309,7 @@
mv.visitAnnotation("Ljava/lang/invoke/LambdaForm$Hidden;", true);
// Don't inline the interpreter entry.
- mv.visitAnnotation("Ljava/lang/invoke/DontInline;", true);
+ mv.visitAnnotation("Ljdk/internal/vm/annotation/DontInline;", true);
// create parameter array
emitIconstInsn(invokerType.parameterCount());
@@ -1368,7 +1368,7 @@
mv.visitAnnotation("Ljava/lang/invoke/LambdaForm$Hidden;", true);
// Force inlining of this invoker method.
- mv.visitAnnotation("Ljava/lang/invoke/ForceInline;", true);
+ mv.visitAnnotation("Ljdk/internal/vm/annotation/ForceInline;", true);
// Load receiver
emitAloadInsn(0);
--- a/jdk/src/java.base/share/classes/java/lang/invoke/Invokers.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/java/lang/invoke/Invokers.java Fri Jan 15 19:18:42 2016 +0000
@@ -25,6 +25,10 @@
package java.lang.invoke;
+import jdk.internal.vm.annotation.DontInline;
+import jdk.internal.vm.annotation.ForceInline;
+import jdk.internal.vm.annotation.Stable;
+
import java.lang.reflect.Array;
import java.util.Arrays;
--- a/jdk/src/java.base/share/classes/java/lang/invoke/LambdaForm.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/java/lang/invoke/LambdaForm.java Fri Jan 15 19:18:42 2016 +0000
@@ -25,18 +25,24 @@
package java.lang.invoke;
-import java.lang.annotation.*;
+import jdk.internal.vm.annotation.DontInline;
+import jdk.internal.vm.annotation.Stable;
+import sun.invoke.util.Wrapper;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.lang.reflect.Field;
import java.lang.reflect.Method;
-import java.util.List;
import java.util.Arrays;
import java.util.HashMap;
-
-import sun.invoke.util.Wrapper;
-import java.lang.reflect.Field;
+import java.util.List;
import static java.lang.invoke.LambdaForm.BasicType.*;
-import static java.lang.invoke.MethodHandleStatics.*;
-import static java.lang.invoke.MethodHandleNatives.Constants.*;
+import static java.lang.invoke.MethodHandleNatives.Constants.REF_invokeStatic;
+import static java.lang.invoke.MethodHandleStatics.debugEnabled;
+import static java.lang.invoke.MethodHandleStatics.newInternalError;
/**
* The symbolic, non-executable form of a method handle's invocation semantics.
--- a/jdk/src/java.base/share/classes/java/lang/invoke/MethodHandleImpl.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/java/lang/invoke/MethodHandleImpl.java Fri Jan 15 19:18:42 2016 +0000
@@ -33,6 +33,7 @@
import java.util.List;
import java.util.function.Function;
+import jdk.internal.vm.annotation.Stable;
import sun.invoke.empty.Empty;
import sun.invoke.util.ValueConversions;
import sun.invoke.util.VerifyType;
@@ -1487,7 +1488,7 @@
}
private static final int LEFT_ARGS = FILL_ARRAYS_COUNT - 1;
- private static final @Stable MethodHandle[] FILL_ARRAY_TO_RIGHT = new MethodHandle[MAX_ARITY+1];
+ private static final @Stable MethodHandle[] FILL_ARRAY_TO_RIGHT = new MethodHandle[MAX_ARITY + 1];
/** fill_array_to_right(N).invoke(a, argL..arg[N-1])
* fills a[L]..a[N-1] with corresponding arguments,
* and then returns a. The value L is a global constant (LEFT_ARGS).
--- a/jdk/src/java.base/share/classes/java/lang/invoke/MethodHandles.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/java/lang/invoke/MethodHandles.java Fri Jan 15 19:18:42 2016 +0000
@@ -1836,7 +1836,7 @@
return false;
}
ClassLoader loader = defc.getClassLoader();
- if (!sun.misc.VM.isSystemDomainLoader(loader)) {
+ if (!jdk.internal.misc.VM.isSystemDomainLoader(loader)) {
ClassLoader sysl = ClassLoader.getSystemClassLoader();
boolean found = false;
while (sysl != null) {
--- a/jdk/src/java.base/share/classes/java/lang/invoke/MethodType.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/java/lang/invoke/MethodType.java Fri Jan 15 19:18:42 2016 +0000
@@ -25,6 +25,7 @@
package java.lang.invoke;
+import jdk.internal.vm.annotation.Stable;
import sun.invoke.util.Wrapper;
import java.lang.ref.WeakReference;
import java.lang.ref.Reference;
--- a/jdk/src/java.base/share/classes/java/lang/invoke/MethodTypeForm.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/java/lang/invoke/MethodTypeForm.java Fri Jan 15 19:18:42 2016 +0000
@@ -25,6 +25,7 @@
package java.lang.invoke;
+import jdk.internal.vm.annotation.Stable;
import sun.invoke.util.Wrapper;
import java.lang.ref.SoftReference;
import static java.lang.invoke.MethodHandleStatics.*;
--- a/jdk/src/java.base/share/classes/java/lang/invoke/Stable.java Fri Jan 15 08:53:23 2016 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-/*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package java.lang.invoke;
-
-import java.lang.annotation.*;
-
-/**
- * A field may be annotated as stable if all of its component variables
- * changes value at most once.
- * A field's value counts as its component value.
- * If the field is typed as an array, then all the non-null components
- * of the array, of depth up to the rank of the field's array type,
- * also count as component values.
- * By extension, any variable (either array or field) which has annotated
- * as stable is called a stable variable, and its non-null or non-zero
- * value is called a stable value.
- * <p>
- * Since all fields begin with a default value of null for references
- * (resp., zero for primitives), it follows that this annotation indicates
- * that the first non-null (resp., non-zero) value stored in the field
- * will never be changed.
- * <p>
- * If the field is not of an array type, there are no array elements,
- * then the value indicated as stable is simply the value of the field.
- * If the dynamic type of the field value is an array but the static type
- * is not, the components of the array are <em>not</em> regarded as stable.
- * <p>
- * If the field is an array type, then both the field value and
- * all the components of the field value (if the field value is non-null)
- * are indicated to be stable.
- * If the field type is an array type with rank {@code N > 1},
- * then each component of the field value (if the field value is non-null),
- * is regarded as a stable array of rank {@code N-1}.
- * <p>
- * Fields which are declared {@code final} may also be annotated as stable.
- * Since final fields already behave as stable values, such an annotation
- * indicates no additional information, unless the type of the field is
- * an array type.
- * <p>
- * It is (currently) undefined what happens if a field annotated as stable
- * is given a third value. In practice, if the JVM relies on this annotation
- * to promote a field reference to a constant, it may be that the Java memory
- * model would appear to be broken, if such a constant (the second value of the field)
- * is used as the value of the field even after the field value has changed.
- */
-/* package-private */
-@Target(ElementType.FIELD)
-@Retention(RetentionPolicy.RUNTIME)
-@interface Stable {
-}
--- a/jdk/src/java.base/share/classes/java/lang/ref/Cleaner.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/java/lang/ref/Cleaner.java Fri Jan 15 19:18:42 2016 +0000
@@ -28,7 +28,7 @@
import java.util.Objects;
import java.util.concurrent.ThreadFactory;
-import jdk.internal.misc.CleanerImpl;
+import jdk.internal.ref.CleanerImpl;
/**
* {@code Cleaner} manages a set of object references and corresponding cleaning actions.
--- a/jdk/src/java.base/share/classes/java/lang/ref/Finalizer.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/java/lang/ref/Finalizer.java Fri Jan 15 19:18:42 2016 +0000
@@ -29,7 +29,7 @@
import java.security.AccessController;
import jdk.internal.misc.JavaLangAccess;
import jdk.internal.misc.SharedSecrets;
-import sun.misc.VM;
+import jdk.internal.misc.VM;
final class Finalizer extends FinalReference<Object> { /* Package-private; must be in
same package as the Reference
--- a/jdk/src/java.base/share/classes/java/lang/ref/Reference.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/java/lang/ref/Reference.java Fri Jan 15 19:18:42 2016 +0000
@@ -25,6 +25,7 @@
package java.lang.ref;
+import jdk.internal.vm.annotation.DontInline;
import sun.misc.Cleaner;
import jdk.internal.HotSpotIntrinsicCandidate;
import jdk.internal.misc.JavaLangRefAccess;
@@ -310,4 +311,120 @@
this.queue = (queue == null) ? ReferenceQueue.NULL : queue;
}
+ /**
+ * Ensures that the object referenced by the given reference remains
+ * <a href="package-summary.html#reachability"><em>strongly reachable</em></a>,
+ * regardless of any prior actions of the program that might otherwise cause
+ * the object to become unreachable; thus, the referenced object is not
+ * reclaimable by garbage collection at least until after the invocation of
+ * this method. Invocation of this method does not itself initiate garbage
+ * collection or finalization.
+ *
+ * <p> This method establishes an ordering for
+ * <a href="package-summary.html#reachability"><em>strong reachability</em></a>
+ * with respect to garbage collection. It controls relations that are
+ * otherwise only implicit in a program -- the reachability conditions
+ * triggering garbage collection. This method is designed for use in
+ * uncommon situations of premature finalization where using
+ * {@code synchronized} blocks or methods, or using other synchronization
+ * facilities are not possible or do not provide the desired control. This
+ * method is applicable only when reclamation may have visible effects,
+ * which is possible for objects with finalizers (See
+ * <a href="https://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.6">
+ * Section 12.6 17 of <cite>The Java™ Language Specification</cite></a>)
+ * that are implemented in ways that rely on ordering control for correctness.
+ *
+ * @apiNote
+ * Finalization may occur whenever the virtual machine detects that no
+ * reference to an object will ever be stored in the heap: The garbage
+ * collector may reclaim an object even if the fields of that object are
+ * still in use, so long as the object has otherwise become unreachable.
+ * This may have surprising and undesirable effects in cases such as the
+ * following example in which the bookkeeping associated with a class is
+ * managed through array indices. Here, method {@code action} uses a
+ * {@code reachabilityFence} to ensure that the {@code Resource} object is
+ * not reclaimed before bookkeeping on an associated
+ * {@code ExternalResource} has been performed; in particular here, to
+ * ensure that the array slot holding the {@code ExternalResource} is not
+ * nulled out in method {@link Object#finalize}, which may otherwise run
+ * concurrently.
+ *
+ * <pre> {@code
+ * class Resource {
+ * private static ExternalResource[] externalResourceArray = ...
+ *
+ * int myIndex;
+ * Resource(...) {
+ * myIndex = ...
+ * externalResourceArray[myIndex] = ...;
+ * ...
+ * }
+ * protected void finalize() {
+ * externalResourceArray[myIndex] = null;
+ * ...
+ * }
+ * public void action() {
+ * try {
+ * // ...
+ * int i = myIndex;
+ * Resource.update(externalResourceArray[i]);
+ * } finally {
+ * Reference.reachabilityFence(this);
+ * }
+ * }
+ * private static void update(ExternalResource ext) {
+ * ext.status = ...;
+ * }
+ * }}</pre>
+ *
+ * Here, the invocation of {@code reachabilityFence} is nonintuitively
+ * placed <em>after</em> the call to {@code update}, to ensure that the
+ * array slot is not nulled out by {@link Object#finalize} before the
+ * update, even if the call to {@code action} was the last use of this
+ * object. This might be the case if, for example a usage in a user program
+ * had the form {@code new Resource().action();} which retains no other
+ * reference to this {@code Resource}. While probably overkill here,
+ * {@code reachabilityFence} is placed in a {@code finally} block to ensure
+ * that it is invoked across all paths in the method. In a method with more
+ * complex control paths, you might need further precautions to ensure that
+ * {@code reachabilityFence} is encountered along all of them.
+ *
+ * <p> It is sometimes possible to better encapsulate use of
+ * {@code reachabilityFence}. Continuing the above example, if it were
+ * acceptable for the call to method {@code update} to proceed even if the
+ * finalizer had already executed (nulling out slot), then you could
+ * localize use of {@code reachabilityFence}:
+ *
+ * <pre> {@code
+ * public void action2() {
+ * // ...
+ * Resource.update(getExternalResource());
+ * }
+ * private ExternalResource getExternalResource() {
+ * ExternalResource ext = externalResourceArray[myIndex];
+ * Reference.reachabilityFence(this);
+ * return ext;
+ * }}</pre>
+ *
+ * <p> Method {@code reachabilityFence} is not required in constructions
+ * that themselves ensure reachability. For example, because objects that
+ * are locked cannot, in general, be reclaimed, it would suffice if all
+ * accesses of the object, in all methods of class {@code Resource}
+ * (including {@code finalize}) were enclosed in {@code synchronized (this)}
+ * blocks. (Further, such blocks must not include infinite loops, or
+ * themselves be unreachable, which fall into the corner case exceptions to
+ * the "in general" disclaimer.) However, method {@code reachabilityFence}
+ * remains a better option in cases where this approach is not as efficient,
+ * desirable, or possible; for example because it would encounter deadlock.
+ *
+ * @param ref the reference. If {@code null}, this method has no effect.
+ * @since 9
+ */
+ @DontInline
+ public static void reachabilityFence(Object ref) {
+ // Does nothing, because this method is annotated with @DontInline
+ // HotSpot needs to retain the ref and not GC it before a call to this
+ // method
+ }
+
}
--- a/jdk/src/java.base/share/classes/java/lang/ref/ReferenceQueue.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/java/lang/ref/ReferenceQueue.java Fri Jan 15 19:18:42 2016 +0000
@@ -26,6 +26,7 @@
package java.lang.ref;
import java.util.function.Consumer;
+import jdk.internal.misc.VM;
/**
* Reference queues, to which registered reference objects are appended by the
@@ -73,7 +74,7 @@
// Volatiles ensure ordering.
r.queue = ENQUEUED;
if (r instanceof FinalReference) {
- sun.misc.VM.addFinalRefCount(1);
+ VM.addFinalRefCount(1);
}
lock.notifyAll();
return true;
@@ -93,7 +94,7 @@
r.next = r;
queueLength--;
if (r instanceof FinalReference) {
- sun.misc.VM.addFinalRefCount(-1);
+ VM.addFinalRefCount(-1);
}
return r;
}
--- a/jdk/src/java.base/share/classes/java/lang/reflect/Proxy.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/java/lang/reflect/Proxy.java Fri Jan 15 19:18:42 2016 +0000
@@ -34,7 +34,7 @@
import java.util.Objects;
import java.util.concurrent.atomic.AtomicLong;
import java.util.function.BiFunction;
-import sun.misc.VM;
+import jdk.internal.misc.VM;
import sun.reflect.CallerSensitive;
import sun.reflect.Reflection;
import sun.reflect.misc.ReflectUtil;
--- a/jdk/src/java.base/share/classes/java/net/URI.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/java/net/URI.java Fri Jan 15 19:18:42 2016 +0000
@@ -1146,13 +1146,30 @@
if (part != null) {
return part;
}
- StringBuilder sb = new StringBuilder();
- appendSchemeSpecificPart(sb, null, getAuthority(), getUserInfo(),
+
+ String s = string;
+ if (s != null) {
+ // if string is defined, components will have been parsed
+ int start = 0;
+ int end = s.length();
+ if (scheme != null) {
+ start = scheme.length() + 1;
+ }
+ if (fragment != null) {
+ end -= fragment.length() + 1;
+ }
+ if (path != null && path.length() == end - start) {
+ part = path;
+ } else {
+ part = s.substring(start, end);
+ }
+ } else {
+ StringBuilder sb = new StringBuilder();
+ appendSchemeSpecificPart(sb, null, getAuthority(), getUserInfo(),
host, port, getPath(), getQuery());
- if (sb.length() == 0) {
- return null;
+ part = sb.toString();
}
- return schemeSpecificPart = sb.toString();
+ return schemeSpecificPart = part;
}
/**
@@ -2059,7 +2076,7 @@
// 5.2 (2): Reference to current document (lone fragment)
if ((child.scheme == null) && (child.authority == null)
- && child.path.equals("") && (child.fragment != null)
+ && child.path.isEmpty() && (child.fragment != null)
&& (child.query == null)) {
if ((base.fragment != null)
&& child.fragment.equals(base.fragment)) {
@@ -2647,13 +2664,6 @@
private static final long L_SCHEME = L_ALPHA | L_DIGIT | lowMask("+-.");
private static final long H_SCHEME = H_ALPHA | H_DIGIT | highMask("+-.");
- // uric_no_slash = unreserved | escaped | ";" | "?" | ":" | "@" |
- // "&" | "=" | "+" | "$" | ","
- private static final long L_URIC_NO_SLASH
- = L_UNRESERVED | L_ESCAPED | lowMask(";?:@&=+$,");
- private static final long H_URIC_NO_SLASH
- = H_UNRESERVED | H_ESCAPED | highMask(";?:@&=+$,");
-
// scope_id = alpha | digit | "_" | "."
private static final long L_SCOPE_ID
= L_ALPHANUM | lowMask("_.");
@@ -2884,23 +2894,10 @@
// -- Simple access to the input string --
- // Return a substring of the input string
- //
- private String substring(int start, int end) {
- return input.substring(start, end);
- }
-
- // Return the char at position p,
- // assuming that p < input.length()
- //
- private char charAt(int p) {
- return input.charAt(p);
- }
-
// Tells whether start < end and, if so, whether charAt(start) == c
//
private boolean at(int start, int end, char c) {
- return (start < end) && (charAt(start) == c);
+ return (start < end) && (input.charAt(start) == c);
}
// Tells whether start + s.length() < end and, if so,
@@ -2913,7 +2910,7 @@
return false;
int i = 0;
while (i < sn) {
- if (charAt(p++) != s.charAt(i)) {
+ if (input.charAt(p++) != s.charAt(i)) {
break;
}
i++;
@@ -2953,7 +2950,7 @@
// start position.
//
private int scan(int start, int end, char c) {
- if ((start < end) && (charAt(start) == c))
+ if ((start < end) && (input.charAt(start) == c))
return start + 1;
return start;
}
@@ -2968,7 +2965,7 @@
private int scan(int start, int end, String err, String stop) {
int p = start;
while (p < end) {
- char c = charAt(p);
+ char c = input.charAt(p);
if (err.indexOf(c) >= 0)
return -1;
if (stop.indexOf(c) >= 0)
@@ -2978,6 +2975,23 @@
return p;
}
+ // Scan forward from the given start position. Stop at the first char
+ // in the stop string (in which case the index of the preceding char is
+ // returned), or the end of the input string (in which case the length
+ // of the input string is returned). May return the start position if
+ // nothing matches.
+ //
+ private int scan(int start, int end, String stop) {
+ int p = start;
+ while (p < end) {
+ char c = input.charAt(p);
+ if (stop.indexOf(c) >= 0)
+ break;
+ p++;
+ }
+ return p;
+ }
+
// Scan a potential escape sequence, starting at the given position,
// with the given first char (i.e., charAt(start) == c).
//
@@ -2992,8 +3006,8 @@
if (c == '%') {
// Process escape pair
if ((p + 3 <= n)
- && match(charAt(p + 1), L_HEX, H_HEX)
- && match(charAt(p + 2), L_HEX, H_HEX)) {
+ && match(input.charAt(p + 1), L_HEX, H_HEX)
+ && match(input.charAt(p + 2), L_HEX, H_HEX)) {
return p + 3;
}
fail("Malformed escape pair", p);
@@ -3013,7 +3027,7 @@
{
int p = start;
while (p < n) {
- char c = charAt(p);
+ char c = input.charAt(p);
if (match(c, lowMask, highMask)) {
p++;
continue;
@@ -3059,7 +3073,6 @@
//
void parse(boolean rsa) throws URISyntaxException {
requireServerAuthority = rsa;
- int ssp; // Start of scheme-specific part
int n = input.length();
int p = scan(0, n, "/?#", ":");
if ((p >= 0) && at(p, n, ':')) {
@@ -3067,26 +3080,25 @@
failExpecting("scheme name", 0);
checkChar(0, L_ALPHA, H_ALPHA, "scheme name");
checkChars(1, p, L_SCHEME, H_SCHEME, "scheme name");
- scheme = substring(0, p);
+ scheme = input.substring(0, p);
p++; // Skip ':'
- ssp = p;
if (at(p, n, '/')) {
p = parseHierarchical(p, n);
} else {
- int q = scan(p, n, "", "#");
+ // opaque; need to create the schemeSpecificPart
+ int q = scan(p, n, "#");
if (q <= p)
failExpecting("scheme-specific part", p);
checkChars(p, q, L_URIC, H_URIC, "opaque part");
+ schemeSpecificPart = input.substring(p, q);
p = q;
}
} else {
- ssp = 0;
p = parseHierarchical(0, n);
}
- schemeSpecificPart = substring(ssp, p);
if (at(p, n, '#')) {
checkChars(p + 1, n, L_URIC, H_URIC, "fragment");
- fragment = substring(p + 1, n);
+ fragment = input.substring(p + 1, n);
p = n;
}
if (p < n)
@@ -3113,7 +3125,7 @@
int p = start;
if (at(p, n, '/') && at(p + 1, n, '/')) {
p += 2;
- int q = scan(p, n, "", "/?#");
+ int q = scan(p, n, "/?#");
if (q > p) {
p = parseAuthority(p, q);
} else if (q < n) {
@@ -3122,15 +3134,15 @@
} else
failExpecting("authority", p);
}
- int q = scan(p, n, "", "?#"); // DEVIATION: May be empty
+ int q = scan(p, n, "?#"); // DEVIATION: May be empty
checkChars(p, q, L_PATH, H_PATH, "path");
- path = substring(p, q);
+ path = input.substring(p, q);
p = q;
if (at(p, n, '?')) {
p++;
- q = scan(p, n, "", "#");
+ q = scan(p, n, "#");
checkChars(p, q, L_URIC, H_URIC, "query");
- query = substring(p, q);
+ query = input.substring(p, q);
p = q;
}
return p;
@@ -3154,7 +3166,7 @@
boolean serverChars;
boolean regChars;
- if (scan(p, n, "", "]") > p) {
+ if (scan(p, n, "]") > p) {
// contains a literal IPv6 address, therefore % is allowed
serverChars = (scan(p, n, L_SERVER_PERCENT, H_SERVER_PERCENT) == n);
} else {
@@ -3164,7 +3176,7 @@
if (regChars && !serverChars) {
// Must be a registry-based authority
- authority = substring(p, n);
+ authority = input.substring(p, n);
return n;
}
@@ -3176,7 +3188,7 @@
q = parseServer(p, n);
if (q < n)
failExpecting("end of authority", q);
- authority = substring(p, n);
+ authority = input.substring(p, n);
} catch (URISyntaxException x) {
// Undo results of failed parse
userInfo = null;
@@ -3198,7 +3210,7 @@
if (q < n) {
if (regChars) {
// Registry-based authority
- authority = substring(p, n);
+ authority = input.substring(p, n);
} else if (ex != null) {
// Re-throw exception; it was probably due to
// a malformed IPv6 address
@@ -3224,7 +3236,7 @@
q = scan(p, n, "/?#", "@");
if ((q >= p) && at(q, n, '@')) {
checkChars(p, q, L_USERINFO, H_USERINFO, "user info");
- userInfo = substring(p, q);
+ userInfo = input.substring(p, q);
p = q + 1; // Skip '@'
}
@@ -3235,7 +3247,7 @@
q = scan(p, n, "/?#", "]");
if ((q > p) && at(q, n, ']')) {
// look for a "%" scope id
- int r = scan (p, q, "", "%");
+ int r = scan (p, q, "%");
if (r > p) {
parseIPv6Reference(p, r);
if (r+1 == q) {
@@ -3246,7 +3258,7 @@
} else {
parseIPv6Reference(p, q);
}
- host = substring(p-1, q+1);
+ host = input.substring(p-1, q+1);
p = q + 1;
} else {
failExpecting("closing bracket for IPv6 address", q);
@@ -3261,7 +3273,7 @@
// port
if (at(p, n, ':')) {
p++;
- q = scan(p, n, "", "/");
+ q = scan(p, n, "/");
if (q > p) {
checkChars(p, q, L_DIGIT, H_DIGIT, "port number");
try {
@@ -3361,13 +3373,13 @@
// IPv4 address is followed by something - check that
// it's a ":" as this is the only valid character to
// follow an address.
- if (charAt(p) != ':') {
+ if (input.charAt(p) != ':') {
p = -1;
}
}
if (p > start)
- host = substring(start, p);
+ host = input.substring(start, p);
return p;
}
@@ -3393,7 +3405,7 @@
p = q;
q = scan(p, n, L_ALPHANUM | L_DASH, H_ALPHANUM | H_DASH);
if (q > p) {
- if (charAt(q - 1) == '-')
+ if (input.charAt(q - 1) == '-')
fail("Illegal character in hostname", q - 1);
p = q;
}
@@ -3412,11 +3424,11 @@
// for a fully qualified hostname check that the rightmost
// label starts with an alpha character.
- if (l > start && !match(charAt(l), L_ALPHA, H_ALPHA)) {
+ if (l > start && !match(input.charAt(l), L_ALPHA, H_ALPHA)) {
fail("Illegal character in hostname", l);
}
- host = substring(start, p);
+ host = input.substring(start, p);
return p;
}
--- a/jdk/src/java.base/share/classes/java/net/URL.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/java/net/URL.java Fri Jan 15 19:18:42 2016 +0000
@@ -1242,7 +1242,7 @@
private static ThreadLocal<Object> gate = new ThreadLocal<>();
private static URLStreamHandler lookupViaProviders(final String protocol) {
- if (!sun.misc.VM.isBooted())
+ if (!jdk.internal.misc.VM.isBooted())
return null;
if (gate.get() != null)
--- a/jdk/src/java.base/share/classes/java/net/URLConnection.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/java/net/URLConnection.java Fri Jan 15 19:18:42 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 2015, 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
@@ -1567,6 +1567,11 @@
}
}
+ if ((c1 == 0x49 && c2 == 0x49 && c3 == 0x2a && c4 == 0x00)
+ || (c1 == 0x4d && c2 == 0x4d && c3 == 0x00 && c4 == 0x2a)) {
+ return "image/tiff";
+ }
+
if (c1 == 0xD0 && c2 == 0xCF && c3 == 0x11 && c4 == 0xE0 &&
c5 == 0xA1 && c6 == 0xB1 && c7 == 0x1A && c8 == 0xE1) {
--- a/jdk/src/java.base/share/classes/java/nio/Bits.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/java/nio/Bits.java Fri Jan 15 19:18:42 2016 +0000
@@ -31,7 +31,7 @@
import jdk.internal.misc.JavaLangRefAccess;
import jdk.internal.misc.SharedSecrets;
import jdk.internal.misc.Unsafe;
-import sun.misc.VM;
+import jdk.internal.misc.VM;
/**
* Access to bits, native and otherwise.
--- a/jdk/src/java.base/share/classes/java/nio/Direct-X-Buffer.java.template Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/java/nio/Direct-X-Buffer.java.template Fri Jan 15 19:18:42 2016 +0000
@@ -30,7 +30,7 @@
import java.io.FileDescriptor;
import sun.misc.Cleaner;
import jdk.internal.misc.Unsafe;
-import sun.misc.VM;
+import jdk.internal.misc.VM;
import sun.nio.ch.DirectBuffer;
--- a/jdk/src/java.base/share/classes/java/nio/charset/Charset.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/java/nio/charset/Charset.java Fri Jan 15 19:18:42 2016 +0000
@@ -43,6 +43,7 @@
import java.util.ServiceConfigurationError;
import java.util.SortedMap;
import java.util.TreeMap;
+import jdk.internal.misc.VM;
import sun.misc.ASCIICaseInsensitiveComparator;
import sun.nio.cs.StandardCharsets;
import sun.nio.cs.ThreadLocalCoders;
@@ -281,7 +282,7 @@
static boolean atBugLevel(String bl) { // package-private
String level = bugLevel;
if (level == null) {
- if (!sun.misc.VM.isBooted())
+ if (!VM.isBooted())
return false;
bugLevel = level = AccessController.doPrivileged(
new GetPropertyAction("sun.nio.cs.bugLevel", ""));
@@ -394,7 +395,7 @@
// that loader to be prematurely initialized with incomplete
// information.
//
- if (!sun.misc.VM.isBooted())
+ if (!VM.isBooted())
return null;
if (gate.get() != null)
@@ -445,7 +446,7 @@
}
private static Charset lookupExtendedCharset(String charsetName) {
- if (!sun.misc.VM.isBooted()) // see lookupViaProviders()
+ if (!VM.isBooted()) // see lookupViaProviders()
return null;
CharsetProvider[] ecps = ExtendedProviderHolder.extendedProviders;
for (CharsetProvider cp : ecps) {
--- a/jdk/src/java.base/share/classes/java/time/Clock.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/java/time/Clock.java Fri Jan 15 19:18:42 2016 +0000
@@ -69,7 +69,7 @@
import java.io.Serializable;
import java.util.Objects;
import java.util.TimeZone;
-import sun.misc.VM;
+import jdk.internal.misc.VM;
/**
* A clock providing access to the current instant, date and time using a time-zone.
--- a/jdk/src/java.base/share/classes/java/time/LocalDate.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/java/time/LocalDate.java Fri Jan 15 19:18:42 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -1369,6 +1369,23 @@
if (daysToAdd == 0) {
return this;
}
+ long dom = day + daysToAdd;
+ if (dom > 0) {
+ if (dom <= 28) {
+ return new LocalDate(year, month, (int) dom);
+ } else if (dom <= 59) { // 59th Jan is 28th Feb, 59th Feb is 31st Mar
+ long monthLen = lengthOfMonth();
+ if (dom <= monthLen) {
+ return new LocalDate(year, month, (int) dom);
+ } else if (month < 12) {
+ return new LocalDate(year, month + 1, (int) (dom - monthLen));
+ } else {
+ YEAR.checkValidValue(year + 1);
+ return new LocalDate(year + 1, 1, (int) (dom - monthLen));
+ }
+ }
+ }
+
long mjDay = Math.addExact(toEpochDay(), daysToAdd);
return LocalDate.ofEpochDay(mjDay);
}
--- a/jdk/src/java.base/share/classes/java/util/Arrays.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/java/util/Arrays.java Fri Jan 15 19:18:42 2016 +0000
@@ -110,7 +110,7 @@
* Checks that {@code fromIndex} and {@code toIndex} are in
* the range and throws an exception if they aren't.
*/
- private static void rangeCheck(int arrayLength, int fromIndex, int toIndex) {
+ static void rangeCheck(int arrayLength, int fromIndex, int toIndex) {
if (fromIndex > toIndex) {
throw new IllegalArgumentException(
"fromIndex(" + fromIndex + ") > toIndex(" + toIndex + ")");
@@ -2579,11 +2579,7 @@
if (a2.length != length)
return false;
- for (int i=0; i<length; i++)
- if (a[i] != a2[i])
- return false;
-
- return true;
+ return ArraysSupport.mismatch(a, a2, length) < 0;
}
/**
@@ -2628,11 +2624,9 @@
if (aLength != bLength)
return false;
- for (int i = 0; i < aLength; i++)
- if (a[aFromIndex++] != b[bFromIndex++])
- return false;
-
- return true;
+ return ArraysSupport.mismatch(a, aFromIndex,
+ b, bFromIndex,
+ aLength) < 0;
}
/**
@@ -2657,11 +2651,7 @@
if (a2.length != length)
return false;
- for (int i=0; i<length; i++)
- if (a[i] != a2[i])
- return false;
-
- return true;
+ return ArraysSupport.mismatch(a, a2, length) < 0;
}
/**
@@ -2706,11 +2696,9 @@
if (aLength != bLength)
return false;
- for (int i = 0; i < aLength; i++)
- if (a[aFromIndex++] != b[bFromIndex++])
- return false;
-
- return true;
+ return ArraysSupport.mismatch(a, aFromIndex,
+ b, bFromIndex,
+ aLength) < 0;
}
/**
@@ -2735,11 +2723,7 @@
if (a2.length != length)
return false;
- for (int i=0; i<length; i++)
- if (a[i] != a2[i])
- return false;
-
- return true;
+ return ArraysSupport.mismatch(a, a2, length) < 0;
}
/**
@@ -2784,11 +2768,9 @@
if (aLength != bLength)
return false;
- for (int i = 0; i < aLength; i++)
- if (a[aFromIndex++] != b[bFromIndex++])
- return false;
-
- return true;
+ return ArraysSupport.mismatch(a, aFromIndex,
+ b, bFromIndex,
+ aLength) < 0;
}
/**
@@ -2814,11 +2796,7 @@
if (a2.length != length)
return false;
- for (int i=0; i<length; i++)
- if (a[i] != a2[i])
- return false;
-
- return true;
+ return ArraysSupport.mismatch(a, a2, length) < 0;
}
/**
@@ -2863,11 +2841,9 @@
if (aLength != bLength)
return false;
- for (int i = 0; i < aLength; i++)
- if (a[aFromIndex++] != b[bFromIndex++])
- return false;
-
- return true;
+ return ArraysSupport.mismatch(a, aFromIndex,
+ b, bFromIndex,
+ aLength) < 0;
}
/**
@@ -2893,11 +2869,7 @@
if (a2.length != length)
return false;
- for (int i=0; i<length; i++)
- if (a[i] != a2[i])
- return false;
-
- return true;
+ return ArraysSupport.mismatch(a, a2, length) < 0;
}
/**
@@ -2942,11 +2914,9 @@
if (aLength != bLength)
return false;
- for (int i = 0; i < aLength; i++)
- if (a[aFromIndex++] != b[bFromIndex++])
- return false;
-
- return true;
+ return ArraysSupport.mismatch(a, aFromIndex,
+ b, bFromIndex,
+ aLength) < 0;
}
/**
@@ -2971,11 +2941,7 @@
if (a2.length != length)
return false;
- for (int i=0; i<length; i++)
- if (a[i] != a2[i])
- return false;
-
- return true;
+ return ArraysSupport.mismatch(a, a2, length) < 0;
}
/**
@@ -3020,11 +2986,9 @@
if (aLength != bLength)
return false;
- for (int i = 0; i < aLength; i++)
- if (a[aFromIndex++] != b[bFromIndex++])
- return false;
-
- return true;
+ return ArraysSupport.mismatch(a, aFromIndex,
+ b, bFromIndex,
+ aLength) < 0;
}
/**
@@ -3055,14 +3019,7 @@
if (a2.length != length)
return false;
- for (int i=0; i<length; i++) {
- double v1 = a[i], v2 = a2[i];
- if (Double.doubleToRawLongBits(v1) != Double.doubleToRawLongBits(v2))
- if (!Double.isNaN(v1) || !Double.isNaN(v2))
- return false;
- }
-
- return true;
+ return ArraysSupport.mismatch(a, a2, length) < 0;
}
/**
@@ -3113,14 +3070,8 @@
if (aLength != bLength)
return false;
- for (int i = 0; i < aLength; i++) {
- Double va = a[aFromIndex++], vb = b[bFromIndex++];
- if (Double.doubleToRawLongBits(va) != Double.doubleToRawLongBits(vb))
- if (!Double.isNaN(va) || !Double.isNaN(vb))
- return false;
- }
-
- return true;
+ return ArraysSupport.mismatch(a, aFromIndex,
+ b, bFromIndex, aLength) < 0;
}
/**
@@ -3151,14 +3102,7 @@
if (a2.length != length)
return false;
- for (int i=0; i<length; i++) {
- float v1 = a[i], v2 = a2[i];
- if (Float.floatToRawIntBits(v1) != Float.floatToRawIntBits(v2))
- if (!Float.isNaN(v1) || !Float.isNaN(v2))
- return false;
- }
-
- return true;
+ return ArraysSupport.mismatch(a, a2, length) < 0;
}
/**
@@ -3209,14 +3153,8 @@
if (aLength != bLength)
return false;
- for (int i = 0; i < aLength; i++) {
- float va = a[aFromIndex++], vb = b[bFromIndex++];
- if (Float.floatToRawIntBits(va) != Float.floatToRawIntBits(vb))
- if (!Float.isNaN(va) || !Float.isNaN(vb))
- return false;
- }
-
- return true;
+ return ArraysSupport.mismatch(a, aFromIndex,
+ b, bFromIndex, aLength) < 0;
}
/**
@@ -5804,9 +5742,10 @@
if (a == null || b == null)
return a == null ? -1 : 1;
- int length = Math.min(a.length, b.length);
- for (int i = 0; i < length; i++) {
- if (a[i] != b[i]) return Boolean.compare(a[i], b[i]);
+ int i = ArraysSupport.mismatch(a, b,
+ Math.min(a.length, b.length));
+ if (i >= 0) {
+ return Boolean.compare(a[i], b[i]);
}
return a.length - b.length;
@@ -5880,11 +5819,11 @@
int aLength = aToIndex - aFromIndex;
int bLength = bToIndex - bFromIndex;
- int length = Math.min(aLength, bLength);
- for (int i = 0; i < length; i++) {
- boolean va = a[aFromIndex++];
- boolean vb = b[bFromIndex++];
- if (va != vb) return Boolean.compare(va, vb);
+ int i = ArraysSupport.mismatch(a, aFromIndex,
+ b, bFromIndex,
+ Math.min(aLength, bLength));
+ if (i >= 0) {
+ return Boolean.compare(a[aFromIndex + i], b[bFromIndex + i]);
}
return aLength - bLength;
@@ -5939,9 +5878,10 @@
if (a == null || b == null)
return a == null ? -1 : 1;
- int length = Math.min(a.length, b.length);
- for (int i = 0; i < length; i++) {
- if (a[i] != b[i]) return Byte.compare(a[i], b[i]);
+ int i = ArraysSupport.mismatch(a, b,
+ Math.min(a.length, b.length));
+ if (i >= 0) {
+ return Byte.compare(a[i], b[i]);
}
return a.length - b.length;
@@ -6014,11 +5954,11 @@
int aLength = aToIndex - aFromIndex;
int bLength = bToIndex - bFromIndex;
- int length = Math.min(aLength, bLength);
- for (int i = 0; i < length; i++) {
- byte va = a[aFromIndex++];
- byte vb = b[bFromIndex++];
- if (va != vb) return Byte.compare(va, vb);
+ int i = ArraysSupport.mismatch(a, aFromIndex,
+ b, bFromIndex,
+ Math.min(aLength, bLength));
+ if (i >= 0) {
+ return Byte.compare(a[aFromIndex + i], b[bFromIndex + i]);
}
return aLength - bLength;
@@ -6066,9 +6006,10 @@
if (a == null || b == null)
return a == null ? -1 : 1;
- int length = Math.min(a.length, b.length);
- for (int i = 0; i < length; i++) {
- if (a[i] != b[i]) return Byte.compareUnsigned(a[i], b[i]);
+ int i = ArraysSupport.mismatch(a, b,
+ Math.min(a.length, b.length));
+ if (i >= 0) {
+ return Byte.compareUnsigned(a[i], b[i]);
}
return a.length - b.length;
@@ -6133,11 +6074,11 @@
int aLength = aToIndex - aFromIndex;
int bLength = bToIndex - bFromIndex;
- int length = Math.min(aLength, bLength);
- for (int i = 0; i < length; i++) {
- byte va = a[aFromIndex++];
- byte vb = b[bFromIndex++];
- if (va != vb) return Byte.compareUnsigned(va, vb);
+ int i = ArraysSupport.mismatch(a, aFromIndex,
+ b, bFromIndex,
+ Math.min(aLength, bLength));
+ if (i >= 0) {
+ return Byte.compareUnsigned(a[aFromIndex + i], b[bFromIndex + i]);
}
return aLength - bLength;
@@ -6192,9 +6133,10 @@
if (a == null || b == null)
return a == null ? -1 : 1;
- int length = Math.min(a.length, b.length);
- for (int i = 0; i < length; i++) {
- if (a[i] != b[i]) return Short.compare(a[i], b[i]);
+ int i = ArraysSupport.mismatch(a, b,
+ Math.min(a.length, b.length));
+ if (i >= 0) {
+ return Short.compare(a[i], b[i]);
}
return a.length - b.length;
@@ -6267,11 +6209,11 @@
int aLength = aToIndex - aFromIndex;
int bLength = bToIndex - bFromIndex;
- int length = Math.min(aLength, bLength);
- for (int i = 0; i < length; i++) {
- short va = a[aFromIndex++];
- short vb = b[bFromIndex++];
- if (va != vb) return Short.compare(va, vb);
+ int i = ArraysSupport.mismatch(a, aFromIndex,
+ b, bFromIndex,
+ Math.min(aLength, bLength));
+ if (i >= 0) {
+ return Short.compare(a[aFromIndex + i], b[bFromIndex + i]);
}
return aLength - bLength;
@@ -6319,9 +6261,10 @@
if (a == null || b == null)
return a == null ? -1 : 1;
- int length = Math.min(a.length, b.length);
- for (int i = 0; i < length; i++) {
- if (a[i] != b[i]) return Short.compareUnsigned(a[i], b[i]);
+ int i = ArraysSupport.mismatch(a, b,
+ Math.min(a.length, b.length));
+ if (i >= 0) {
+ return Short.compareUnsigned(a[i], b[i]);
}
return a.length - b.length;
@@ -6385,11 +6328,11 @@
int aLength = aToIndex - aFromIndex;
int bLength = bToIndex - bFromIndex;
- int length = Math.min(aLength, bLength);
- for (int i = 0; i < length; i++) {
- short va = a[aFromIndex++];
- short vb = b[bFromIndex++];
- if (va != vb) return Short.compareUnsigned(va, vb);
+ int i = ArraysSupport.mismatch(a, aFromIndex,
+ b, bFromIndex,
+ Math.min(aLength, bLength));
+ if (i >= 0) {
+ return Short.compareUnsigned(a[aFromIndex + i], b[bFromIndex + i]);
}
return aLength - bLength;
@@ -6444,9 +6387,10 @@
if (a == null || b == null)
return a == null ? -1 : 1;
- int length = Math.min(a.length, b.length);
- for (int i = 0; i < length; i++) {
- if (a[i] != b[i]) return Character.compare(a[i], b[i]);
+ int i = ArraysSupport.mismatch(a, b,
+ Math.min(a.length, b.length));
+ if (i >= 0) {
+ return Character.compare(a[i], b[i]);
}
return a.length - b.length;
@@ -6519,11 +6463,11 @@
int aLength = aToIndex - aFromIndex;
int bLength = bToIndex - bFromIndex;
- int length = Math.min(aLength, bLength);
- for (int i = 0; i < length; i++) {
- char va = a[aFromIndex++];
- char vb = b[bFromIndex++];
- if (va != vb) return Character.compare(va, vb);
+ int i = ArraysSupport.mismatch(a, aFromIndex,
+ b, bFromIndex,
+ Math.min(aLength, bLength));
+ if (i >= 0) {
+ return Character.compare(a[aFromIndex + i], b[bFromIndex + i]);
}
return aLength - bLength;
@@ -6578,9 +6522,10 @@
if (a == null || b == null)
return a == null ? -1 : 1;
- int length = Math.min(a.length, b.length);
- for (int i = 0; i < length; i++) {
- if (a[i] != b[i]) return Integer.compare(a[i], b[i]);
+ int i = ArraysSupport.mismatch(a, b,
+ Math.min(a.length, b.length));
+ if (i >= 0) {
+ return Integer.compare(a[i], b[i]);
}
return a.length - b.length;
@@ -6653,11 +6598,11 @@
int aLength = aToIndex - aFromIndex;
int bLength = bToIndex - bFromIndex;
- int length = Math.min(aLength, bLength);
- for (int i = 0; i < length; i++) {
- int va = a[aFromIndex++];
- int vb = b[bFromIndex++];
- if (va != vb) return Integer.compare(va, vb);
+ int i = ArraysSupport.mismatch(a, aFromIndex,
+ b, bFromIndex,
+ Math.min(aLength, bLength));
+ if (i >= 0) {
+ return Integer.compare(a[aFromIndex + i], b[bFromIndex + i]);
}
return aLength - bLength;
@@ -6705,9 +6650,10 @@
if (a == null || b == null)
return a == null ? -1 : 1;
- int length = Math.min(a.length, b.length);
- for (int i = 0; i < length; i++) {
- if (a[i] != b[i]) return Integer.compareUnsigned(a[i], b[i]);
+ int i = ArraysSupport.mismatch(a, b,
+ Math.min(a.length, b.length));
+ if (i >= 0) {
+ return Integer.compareUnsigned(a[i], b[i]);
}
return a.length - b.length;
@@ -6771,11 +6717,11 @@
int aLength = aToIndex - aFromIndex;
int bLength = bToIndex - bFromIndex;
- int length = Math.min(aLength, bLength);
- for (int i = 0; i < length; i++) {
- int va = a[aFromIndex++];
- int vb = b[bFromIndex++];
- if (va != vb) return Integer.compareUnsigned(va, vb);
+ int i = ArraysSupport.mismatch(a, aFromIndex,
+ b, bFromIndex,
+ Math.min(aLength, bLength));
+ if (i >= 0) {
+ return Integer.compareUnsigned(a[aFromIndex + i], b[bFromIndex + i]);
}
return aLength - bLength;
@@ -6830,9 +6776,10 @@
if (a == null || b == null)
return a == null ? -1 : 1;
- int length = Math.min(a.length, b.length);
- for (int i = 0; i < length; i++) {
- if (a[i] != b[i]) return Long.compare(a[i], b[i]);
+ int i = ArraysSupport.mismatch(a, b,
+ Math.min(a.length, b.length));
+ if (i >= 0) {
+ return Long.compare(a[i], b[i]);
}
return a.length - b.length;
@@ -6905,11 +6852,11 @@
int aLength = aToIndex - aFromIndex;
int bLength = bToIndex - bFromIndex;
- int length = Math.min(aLength, bLength);
- for (int i = 0; i < length; i++) {
- long va = a[aFromIndex++];
- long vb = b[bFromIndex++];
- if (va != vb) return Long.compare(va, vb);
+ int i = ArraysSupport.mismatch(a, aFromIndex,
+ b, bFromIndex,
+ Math.min(aLength, bLength));
+ if (i >= 0) {
+ return Long.compare(a[aFromIndex + i], b[bFromIndex + i]);
}
return aLength - bLength;
@@ -6957,9 +6904,10 @@
if (a == null || b == null)
return a == null ? -1 : 1;
- int length = Math.min(a.length, b.length);
- for (int i = 0; i < length; i++) {
- if (a[i] != b[i]) return Long.compareUnsigned(a[i], b[i]);
+ int i = ArraysSupport.mismatch(a, b,
+ Math.min(a.length, b.length));
+ if (i >= 0) {
+ return Long.compareUnsigned(a[i], b[i]);
}
return a.length - b.length;
@@ -7023,11 +6971,11 @@
int aLength = aToIndex - aFromIndex;
int bLength = bToIndex - bFromIndex;
- int length = Math.min(aLength, bLength);
- for (int i = 0; i < length; i++) {
- long va = a[aFromIndex++];
- long vb = b[bFromIndex++];
- if (va != vb) return Long.compareUnsigned(va, vb);
+ int i = ArraysSupport.mismatch(a, aFromIndex,
+ b, bFromIndex,
+ Math.min(aLength, bLength));
+ if (i >= 0) {
+ return Long.compareUnsigned(a[aFromIndex + i], b[bFromIndex + i]);
}
return aLength - bLength;
@@ -7082,13 +7030,10 @@
if (a == null || b == null)
return a == null ? -1 : 1;
- int length = Math.min(a.length, b.length);
- for (int i = 0; i < length; i++) {
- float va = a[i], vb = b[i];
- if (Float.floatToRawIntBits(va) != Float.floatToRawIntBits(vb)) {
- int c = Float.compare(va, vb);
- if (c != 0) return c;
- }
+ int i = ArraysSupport.mismatch(a, b,
+ Math.min(a.length, b.length));
+ if (i >= 0) {
+ return Float.compare(a[i], b[i]);
}
return a.length - b.length;
@@ -7161,13 +7106,11 @@
int aLength = aToIndex - aFromIndex;
int bLength = bToIndex - bFromIndex;
- int length = Math.min(aLength, bLength);
- for (int i = 0; i < length; i++) {
- float va = a[aFromIndex++], vb = b[bFromIndex++];
- if (Float.floatToRawIntBits(va) != Float.floatToRawIntBits(vb)) {
- int c = Float.compare(va, vb);
- if (c != 0) return c;
- }
+ int i = ArraysSupport.mismatch(a, aFromIndex,
+ b, bFromIndex,
+ Math.min(aLength, bLength));
+ if (i >= 0) {
+ return Float.compare(a[aFromIndex + i], b[bFromIndex + i]);
}
return aLength - bLength;
@@ -7222,13 +7165,10 @@
if (a == null || b == null)
return a == null ? -1 : 1;
- int length = Math.min(a.length, b.length);
- for (int i = 0; i < length; i++) {
- double va = a[i], vb = b[i];
- if (Double.doubleToRawLongBits(va) != Double.doubleToRawLongBits(vb)) {
- int c = Double.compare(va, vb);
- if (c != 0) return c;
- }
+ int i = ArraysSupport.mismatch(a, b,
+ Math.min(a.length, b.length));
+ if (i >= 0) {
+ return Double.compare(a[i], b[i]);
}
return a.length - b.length;
@@ -7301,13 +7241,11 @@
int aLength = aToIndex - aFromIndex;
int bLength = bToIndex - bFromIndex;
- int length = Math.min(aLength, bLength);
- for (int i = 0; i < length; i++) {
- double va = a[aFromIndex++], vb = b[bFromIndex++];
- if (Double.doubleToRawLongBits(va) != Double.doubleToRawLongBits(vb)) {
- int c = Double.compare(va, vb);
- if (c != 0) return c;
- }
+ int i = ArraysSupport.mismatch(a, aFromIndex,
+ b, bFromIndex,
+ Math.min(aLength, bLength));
+ if (i >= 0) {
+ return Double.compare(a[aFromIndex + i], b[bFromIndex + i]);
}
return aLength - bLength;
@@ -7673,11 +7611,8 @@
if (a == b)
return -1;
- for (int i = 0; i < length; i++) {
- if (a[i] != b[i]) return i;
- }
-
- return a.length != b.length ? length : -1;
+ int i = ArraysSupport.mismatch(a, b, length);
+ return (i < 0 && a.length != b.length) ? length : i;
}
/**
@@ -7749,11 +7684,10 @@
int aLength = aToIndex - aFromIndex;
int bLength = bToIndex - bFromIndex;
int length = Math.min(aLength, bLength);
- for (int i = 0; i < length; i++) {
- if (a[aFromIndex++] != b[bFromIndex++]) return i;
- }
-
- return aLength != bLength ? length : -1;
+ int i = ArraysSupport.mismatch(a, aFromIndex,
+ b, bFromIndex,
+ length);
+ return (i < 0 && aLength != bLength) ? length : i;
}
// Mismatch byte
@@ -7804,11 +7738,8 @@
if (a == b)
return -1;
- for (int i = 0; i < length; i++) {
- if (a[i] != b[i]) return i;
- }
-
- return a.length != b.length ? length : -1;
+ int i = ArraysSupport.mismatch(a, b, length);
+ return (i < 0 && a.length != b.length) ? length : i;
}
/**
@@ -7880,11 +7811,10 @@
int aLength = aToIndex - aFromIndex;
int bLength = bToIndex - bFromIndex;
int length = Math.min(aLength, bLength);
- for (int i = 0; i < length; i++) {
- if (a[aFromIndex++] != b[bFromIndex++]) return i;
- }
-
- return aLength != bLength ? length : -1;
+ int i = ArraysSupport.mismatch(a, aFromIndex,
+ b, bFromIndex,
+ length);
+ return (i < 0 && aLength != bLength) ? length : i;
}
// Mismatch char
@@ -7935,11 +7865,8 @@
if (a == b)
return -1;
- for (int i = 0; i < length; i++) {
- if (a[i] != b[i]) return i;
- }
-
- return a.length != b.length ? length : -1;
+ int i = ArraysSupport.mismatch(a, b, length);
+ return (i < 0 && a.length != b.length) ? length : i;
}
/**
@@ -8011,11 +7938,10 @@
int aLength = aToIndex - aFromIndex;
int bLength = bToIndex - bFromIndex;
int length = Math.min(aLength, bLength);
- for (int i = 0; i < length; i++) {
- if (a[aFromIndex++] != b[bFromIndex++]) return i;
- }
-
- return aLength != bLength ? length : -1;
+ int i = ArraysSupport.mismatch(a, aFromIndex,
+ b, bFromIndex,
+ length);
+ return (i < 0 && aLength != bLength) ? length : i;
}
// Mismatch short
@@ -8066,11 +7992,8 @@
if (a == b)
return -1;
- for (int i = 0; i < length; i++) {
- if (a[i] != b[i]) return i;
- }
-
- return a.length != b.length ? length : -1;
+ int i = ArraysSupport.mismatch(a, b, length);
+ return (i < 0 && a.length != b.length) ? length : i;
}
/**
@@ -8142,11 +8065,10 @@
int aLength = aToIndex - aFromIndex;
int bLength = bToIndex - bFromIndex;
int length = Math.min(aLength, bLength);
- for (int i = 0; i < length; i++) {
- if (a[aFromIndex++] != b[bFromIndex++]) return i;
- }
-
- return aLength != bLength ? length : -1;
+ int i = ArraysSupport.mismatch(a, aFromIndex,
+ b, bFromIndex,
+ length);
+ return (i < 0 && aLength != bLength) ? length : i;
}
// Mismatch int
@@ -8197,11 +8119,8 @@
if (a == b)
return -1;
- for (int i = 0; i < length; i++) {
- if (a[i] != b[i]) return i;
- }
-
- return a.length != b.length ? length : -1;
+ int i = ArraysSupport.mismatch(a, b, length);
+ return (i < 0 && a.length != b.length) ? length : i;
}
/**
@@ -8273,11 +8192,10 @@
int aLength = aToIndex - aFromIndex;
int bLength = bToIndex - bFromIndex;
int length = Math.min(aLength, bLength);
- for (int i = 0; i < length; i++) {
- if (a[aFromIndex++] != b[bFromIndex++]) return i;
- }
-
- return aLength != bLength ? length : -1;
+ int i = ArraysSupport.mismatch(a, aFromIndex,
+ b, bFromIndex,
+ length);
+ return (i < 0 && aLength != bLength) ? length : i;
}
// Mismatch long
@@ -8328,11 +8246,8 @@
if (a == b)
return -1;
- for (int i = 0; i < length; i++) {
- if (a[i] != b[i]) return i;
- }
-
- return a.length != b.length ? length : -1;
+ int i = ArraysSupport.mismatch(a, b, length);
+ return (i < 0 && a.length != b.length) ? length : i;
}
/**
@@ -8404,11 +8319,10 @@
int aLength = aToIndex - aFromIndex;
int bLength = bToIndex - bFromIndex;
int length = Math.min(aLength, bLength);
- for (int i = 0; i < length; i++) {
- if (a[aFromIndex++] != b[bFromIndex++]) return i;
- }
-
- return aLength != bLength ? length : -1;
+ int i = ArraysSupport.mismatch(a, aFromIndex,
+ b, bFromIndex,
+ length);
+ return (i < 0 && aLength != bLength) ? length : i;
}
// Mismatch float
@@ -8459,14 +8373,8 @@
if (a == b)
return -1;
- for (int i = 0; i < length; i++) {
- float va = a[i], vb = b[i];
- if (Float.floatToRawIntBits(va) != Float.floatToRawIntBits(vb))
- if (!Float.isNaN(va) || !Float.isNaN(vb))
- return i;
- }
-
- return a.length != b.length ? length : -1;
+ int i = ArraysSupport.mismatch(a, b, length);
+ return (i < 0 && a.length != b.length) ? length : i;
}
/**
@@ -8538,14 +8446,10 @@
int aLength = aToIndex - aFromIndex;
int bLength = bToIndex - bFromIndex;
int length = Math.min(aLength, bLength);
- for (int i = 0; i < length; i++) {
- float va = a[aFromIndex++], vb = b[bFromIndex++];
- if (Float.floatToRawIntBits(va) != Float.floatToRawIntBits(vb))
- if (!Float.isNaN(va) || !Float.isNaN(vb))
- return i;
- }
-
- return aLength != bLength ? length : -1;
+ int i = ArraysSupport.mismatch(a, aFromIndex,
+ b, bFromIndex,
+ length);
+ return (i < 0 && aLength != bLength) ? length : i;
}
// Mismatch double
@@ -8596,14 +8500,8 @@
if (a == b)
return -1;
- for (int i = 0; i < length; i++) {
- double va = a[i], vb = b[i];
- if (Double.doubleToRawLongBits(va) != Double.doubleToRawLongBits(vb))
- if (!Double.isNaN(va) || !Double.isNaN(vb))
- return i;
- }
-
- return a.length != b.length ? length : -1;
+ int i = ArraysSupport.mismatch(a, b, length);
+ return (i < 0 && a.length != b.length) ? length : i;
}
/**
@@ -8675,14 +8573,10 @@
int aLength = aToIndex - aFromIndex;
int bLength = bToIndex - bFromIndex;
int length = Math.min(aLength, bLength);
- for (int i = 0; i < length; i++) {
- double va = a[aFromIndex++], vb = b[bFromIndex++];
- if (Double.doubleToRawLongBits(va) != Double.doubleToRawLongBits(vb))
- if (!Double.isNaN(va) || !Double.isNaN(vb))
- return i;
- }
-
- return aLength != bLength ? length : -1;
+ int i = ArraysSupport.mismatch(a, aFromIndex,
+ b, bFromIndex,
+ length);
+ return (i < 0 && aLength != bLength) ? length : i;
}
// Mismatch objects
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/java.base/share/classes/java/util/ArraysSupport.java Fri Jan 15 19:18:42 2016 +0000
@@ -0,0 +1,545 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package java.util;
+
+import jdk.internal.HotSpotIntrinsicCandidate;
+import jdk.internal.misc.Unsafe;
+
+/**
+ * Utility methods to find a mismatch between two primitive arrays.
+ *
+ * <p>Array equality and lexicographical comparison can be built on top of
+ * array mismatch functionality.
+ *
+ * <p>The mismatch method implementation, {@link #vectorizedMismatch}, leverages
+ * vector-based techniques to access and compare the contents of two arrays.
+ * The Java implementation uses {@code Unsafe.getLongUnaligned} to access the
+ * content of an array, thus access is supported on platforms that do not
+ * support unaligned access. For a byte[] array, 8 bytes (64 bits) can be
+ * accessed and compared as a unit rather than individually, which increases
+ * the performance when the method is compiled by the HotSpot VM. On supported
+ * platforms the mismatch implementation is intrinsified to leverage SIMD
+ * instructions. So for a byte[] array, 16 bytes (128 bits), 32 bytes
+ * (256 bits), and perhaps in the future even 64 bytes (512 bits), platform
+ * permitting, can be accessed and compared as a unit, which further increases
+ * the performance over the Java implementation.
+ *
+ * <p>None of the mismatch methods perform array bounds checks. It is the
+ * responsibility of the caller (direct or otherwise) to perform such checks
+ * before calling this method.
+ */
+class ArraysSupport {
+ static final Unsafe U = Unsafe.getUnsafe();
+
+ private static final boolean BIG_ENDIAN = U.isBigEndian();
+
+ private static final int LOG2_ARRAY_BOOLEAN_INDEX_SCALE = exactLog2(Unsafe.ARRAY_BOOLEAN_INDEX_SCALE);
+ private static final int LOG2_ARRAY_BYTE_INDEX_SCALE = exactLog2(Unsafe.ARRAY_BYTE_INDEX_SCALE);
+ private static final int LOG2_ARRAY_CHAR_INDEX_SCALE = exactLog2(Unsafe.ARRAY_CHAR_INDEX_SCALE);
+ private static final int LOG2_ARRAY_SHORT_INDEX_SCALE = exactLog2(Unsafe.ARRAY_SHORT_INDEX_SCALE);
+ private static final int LOG2_ARRAY_INT_INDEX_SCALE = exactLog2(Unsafe.ARRAY_INT_INDEX_SCALE);
+ private static final int LOG2_ARRAY_LONG_INDEX_SCALE = exactLog2(Unsafe.ARRAY_LONG_INDEX_SCALE);
+ private static final int LOG2_ARRAY_FLOAT_INDEX_SCALE = exactLog2(Unsafe.ARRAY_FLOAT_INDEX_SCALE);
+ private static final int LOG2_ARRAY_DOUBLE_INDEX_SCALE = exactLog2(Unsafe.ARRAY_DOUBLE_INDEX_SCALE);
+
+ private static final int LOG2_BYTE_BIT_SIZE = exactLog2(Byte.SIZE);
+
+ private static int exactLog2(int scale) {
+ if ((scale & (scale - 1)) != 0)
+ throw new Error("data type scale not a power of two");
+ return Integer.numberOfTrailingZeros(scale);
+ }
+
+ private ArraysSupport() {}
+
+ /**
+ * Find the relative index of the first mismatching pair of elements in two
+ * primitive arrays of the same component type. Pairs of elements will be
+ * tested in order relative to given offsets into both arrays.
+ *
+ * <p>This method does not perform type checks or bounds checks. It is the
+ * responsibility of the caller to perform such checks before calling this
+ * method.
+ *
+ * <p>The given offsets, in bytes, need not be aligned according to the
+ * given log<sub>2</sub> size the array elements. More specifically, an
+ * offset modulus the size need not be zero.
+ *
+ * @param a the first array to be tested for mismatch, or {@code null} for
+ * direct memory access
+ * @param aOffset the relative offset, in bytes, from the base address of
+ * the first array to test from, otherwise if the first array is
+ * {@code null}, an absolute address pointing to the first element to test.
+ * @param b the second array to be tested for mismatch, or {@code null} for
+ * direct memory access
+ * @param bOffset the relative offset, in bytes, from the base address of
+ * the second array to test from, otherwise if the second array is
+ * {@code null}, an absolute address pointing to the first element to test.
+ * @param length the number of array elements to test
+ * @param log2ArrayIndexScale log<sub>2</sub> of the array index scale, that
+ * corresponds to the size, in bytes, of an array element.
+ * @return if a mismatch is found a relative index, between 0 (inclusive)
+ * and {@code length} (exclusive), of the first mismatching pair of elements
+ * in the two arrays. Otherwise, if a mismatch is not found the bitwise
+ * compliment of the number of remaining pairs of elements to be checked in
+ * the tail of the two arrays.
+ */
+ @HotSpotIntrinsicCandidate
+ static int vectorizedMismatch(Object a, long aOffset,
+ Object b, long bOffset,
+ int length,
+ int log2ArrayIndexScale) {
+ // assert a.getClass().isArray();
+ // assert b.getClass().isArray();
+ // assert 0 <= length <= sizeOf(a)
+ // assert 0 <= length <= sizeOf(b)
+ // assert 0 <= log2ArrayIndexScale <= 3
+
+ int log2ValuesPerWidth = LOG2_ARRAY_LONG_INDEX_SCALE - log2ArrayIndexScale;
+ int wi = 0;
+ for (; wi < length >> log2ValuesPerWidth; wi++) {
+ long bi = ((long) wi) << LOG2_ARRAY_LONG_INDEX_SCALE;
+ long av = U.getLongUnaligned(a, aOffset + bi);
+ long bv = U.getLongUnaligned(b, bOffset + bi);
+ if (av != bv) {
+ long x = av ^ bv;
+ int o = BIG_ENDIAN
+ ? Long.numberOfLeadingZeros(x) >> (LOG2_BYTE_BIT_SIZE + log2ArrayIndexScale)
+ : Long.numberOfTrailingZeros(x) >> (LOG2_BYTE_BIT_SIZE + log2ArrayIndexScale);
+ return (wi << log2ValuesPerWidth) + o;
+ }
+ }
+
+ // Calculate the tail of remaining elements to check
+ int tail = length - (wi << log2ValuesPerWidth);
+
+ if (log2ArrayIndexScale < LOG2_ARRAY_INT_INDEX_SCALE) {
+ int wordTail = 1 << (LOG2_ARRAY_INT_INDEX_SCALE - log2ArrayIndexScale);
+ // Handle 4 bytes or 2 chars in the tail using int width
+ if (tail >= wordTail) {
+ long bi = ((long) wi) << LOG2_ARRAY_LONG_INDEX_SCALE;
+ int av = U.getIntUnaligned(a, aOffset + bi);
+ int bv = U.getIntUnaligned(b, bOffset + bi);
+ if (av != bv) {
+ int x = av ^ bv;
+ int o = BIG_ENDIAN
+ ? Integer.numberOfLeadingZeros(x) >> (LOG2_BYTE_BIT_SIZE + log2ArrayIndexScale)
+ : Integer.numberOfTrailingZeros(x) >> (LOG2_BYTE_BIT_SIZE + log2ArrayIndexScale);
+ return (wi << log2ValuesPerWidth) + o;
+ }
+ tail -= wordTail;
+ }
+ return ~tail;
+ }
+ else {
+ return ~tail;
+ }
+ }
+
+ // Booleans
+ // Each boolean element takes up one byte
+
+ static int mismatch(boolean[] a,
+ boolean[] b,
+ int length) {
+ int i = 0;
+ if (length > 7) {
+ i = vectorizedMismatch(
+ a, Unsafe.ARRAY_BOOLEAN_BASE_OFFSET,
+ b, Unsafe.ARRAY_BOOLEAN_BASE_OFFSET,
+ length, LOG2_ARRAY_BOOLEAN_INDEX_SCALE);
+ if (i >= 0)
+ return i;
+ i = length - ~i;
+ }
+ for (; i < length; i++) {
+ if (a[i] != b[i])
+ return i;
+ }
+ return -1;
+ }
+
+ static int mismatch(boolean[] a, int aFromIndex,
+ boolean[] b, int bFromIndex,
+ int length) {
+ int i = 0;
+ if (length > 7) {
+ int aOffset = Unsafe.ARRAY_BOOLEAN_BASE_OFFSET + aFromIndex;
+ int bOffset = Unsafe.ARRAY_BOOLEAN_BASE_OFFSET + bFromIndex;
+ i = vectorizedMismatch(
+ a, aOffset,
+ b, bOffset,
+ length, LOG2_ARRAY_BOOLEAN_INDEX_SCALE);
+ if (i >= 0)
+ return i;
+ i = length - ~i;
+ }
+ for (; i < length; i++) {
+ if (a[aFromIndex + i] != b[bFromIndex + i])
+ return i;
+ }
+ return -1;
+ }
+
+
+ // Bytes
+
+ /**
+ * Find the index of a mismatch between two arrays.
+ *
+ * <p>This method does not perform bounds checks. It is the responsibility
+ * of the caller to perform such bounds checks before calling this method.
+ *
+ * @param a the first array to be tested for a mismatch
+ * @param b the second array to be tested for a mismatch
+ * @param length the number of bytes from each array to check
+ * @return the index of a mismatch between the two arrays, otherwise -1 if
+ * no mismatch. The index will be within the range of (inclusive) 0 to
+ * (exclusive) the smaller of the two array lengths.
+ */
+ static int mismatch(byte[] a,
+ byte[] b,
+ int length) {
+ // ISSUE: defer to index receiving methods if performance is good
+ // assert length <= a.length
+ // assert length <= b.length
+
+ int i = 0;
+ if (length > 7) {
+ i = vectorizedMismatch(
+ a, Unsafe.ARRAY_BYTE_BASE_OFFSET,
+ b, Unsafe.ARRAY_BYTE_BASE_OFFSET,
+ length, LOG2_ARRAY_BYTE_INDEX_SCALE);
+ if (i >= 0)
+ return i;
+ // Align to tail
+ i = length - ~i;
+// assert i >= 0 && i <= 7;
+ }
+ // Tail < 8 bytes
+ for (; i < length; i++) {
+ if (a[i] != b[i])
+ return i;
+ }
+ return -1;
+ }
+
+ /**
+ * Find the relative index of a mismatch between two arrays starting from
+ * given indexes.
+ *
+ * <p>This method does not perform bounds checks. It is the responsibility
+ * of the caller to perform such bounds checks before calling this method.
+ *
+ * @param a the first array to be tested for a mismatch
+ * @param aFromIndex the index of the first element (inclusive) in the first
+ * array to be compared
+ * @param b the second array to be tested for a mismatch
+ * @param bFromIndex the index of the first element (inclusive) in the
+ * second array to be compared
+ * @param length the number of bytes from each array to check
+ * @return the relative index of a mismatch between the two arrays,
+ * otherwise -1 if no mismatch. The index will be within the range of
+ * (inclusive) 0 to (exclusive) the smaller of the two array bounds.
+ */
+ static int mismatch(byte[] a, int aFromIndex,
+ byte[] b, int bFromIndex,
+ int length) {
+ // assert 0 <= aFromIndex < a.length
+ // assert 0 <= aFromIndex + length <= a.length
+ // assert 0 <= bFromIndex < b.length
+ // assert 0 <= bFromIndex + length <= b.length
+ // assert length >= 0
+
+ int i = 0;
+ if (length > 7) {
+ int aOffset = Unsafe.ARRAY_BYTE_BASE_OFFSET + aFromIndex;
+ int bOffset = Unsafe.ARRAY_BYTE_BASE_OFFSET + bFromIndex;
+ i = vectorizedMismatch(
+ a, aOffset,
+ b, bOffset,
+ length, LOG2_ARRAY_BYTE_INDEX_SCALE);
+ if (i >= 0)
+ return i;
+ i = length - ~i;
+ }
+ for (; i < length; i++) {
+ if (a[aFromIndex + i] != b[bFromIndex + i])
+ return i;
+ }
+ return -1;
+ }
+
+
+ // Chars
+
+ static int mismatch(char[] a,
+ char[] b,
+ int length) {
+ int i = 0;
+ if (length > 3) {
+ i = vectorizedMismatch(
+ a, Unsafe.ARRAY_CHAR_BASE_OFFSET,
+ b, Unsafe.ARRAY_CHAR_BASE_OFFSET,
+ length, LOG2_ARRAY_CHAR_INDEX_SCALE);
+ if (i >= 0)
+ return i;
+ i = length - ~i;
+ }
+ for (; i < length; i++) {
+ if (a[i] != b[i])
+ return i;
+ }
+ return -1;
+ }
+
+ static int mismatch(char[] a, int aFromIndex,
+ char[] b, int bFromIndex,
+ int length) {
+ int i = 0;
+ if (length > 3) {
+ int aOffset = Unsafe.ARRAY_CHAR_BASE_OFFSET + (aFromIndex << LOG2_ARRAY_CHAR_INDEX_SCALE);
+ int bOffset = Unsafe.ARRAY_CHAR_BASE_OFFSET + (bFromIndex << LOG2_ARRAY_CHAR_INDEX_SCALE);
+ i = vectorizedMismatch(
+ a, aOffset,
+ b, bOffset,
+ length, LOG2_ARRAY_CHAR_INDEX_SCALE);
+ if (i >= 0)
+ return i;
+ i = length - ~i;
+ }
+ for (; i < length; i++) {
+ if (a[aFromIndex + i] != b[bFromIndex + i])
+ return i;
+ }
+ return -1;
+ }
+
+
+ // Shorts
+
+ static int mismatch(short[] a,
+ short[] b,
+ int length) {
+ int i = 0;
+ if (length > 3) {
+ i = vectorizedMismatch(
+ a, Unsafe.ARRAY_SHORT_BASE_OFFSET,
+ b, Unsafe.ARRAY_SHORT_BASE_OFFSET,
+ length, LOG2_ARRAY_SHORT_INDEX_SCALE);
+ if (i >= 0)
+ return i;
+ i = length - ~i;
+ }
+ for (; i < length; i++) {
+ if (a[i] != b[i])
+ return i;
+ }
+ return -1;
+ }
+
+ static int mismatch(short[] a, int aFromIndex,
+ short[] b, int bFromIndex,
+ int length) {
+ int i = 0;
+ if (length > 3) {
+ int aOffset = Unsafe.ARRAY_SHORT_BASE_OFFSET + (aFromIndex << LOG2_ARRAY_SHORT_INDEX_SCALE);
+ int bOffset = Unsafe.ARRAY_SHORT_BASE_OFFSET + (bFromIndex << LOG2_ARRAY_SHORT_INDEX_SCALE);
+ i = vectorizedMismatch(
+ a, aOffset,
+ b, bOffset,
+ length, LOG2_ARRAY_SHORT_INDEX_SCALE);
+ if (i >= 0)
+ return i;
+ i = length - ~i;
+ }
+ for (; i < length; i++) {
+ if (a[aFromIndex + i] != b[bFromIndex + i])
+ return i;
+ }
+ return -1;
+ }
+
+
+ // Ints
+
+ static int mismatch(int[] a,
+ int[] b,
+ int length) {
+ int i = 0;
+ if (length > 1) {
+ i = vectorizedMismatch(
+ a, Unsafe.ARRAY_INT_BASE_OFFSET,
+ b, Unsafe.ARRAY_INT_BASE_OFFSET,
+ length, LOG2_ARRAY_INT_INDEX_SCALE);
+ if (i >= 0)
+ return i;
+ i = length - ~i;
+ }
+ for (; i < length; i++) {
+ if (a[i] != b[i])
+ return i;
+ }
+ return -1;
+ }
+
+ static int mismatch(int[] a, int aFromIndex,
+ int[] b, int bFromIndex,
+ int length) {
+ int i = 0;
+ if (length > 1) {
+ int aOffset = Unsafe.ARRAY_INT_BASE_OFFSET + (aFromIndex << LOG2_ARRAY_INT_INDEX_SCALE);
+ int bOffset = Unsafe.ARRAY_INT_BASE_OFFSET + (bFromIndex << LOG2_ARRAY_INT_INDEX_SCALE);
+ i = vectorizedMismatch(
+ a, aOffset,
+ b, bOffset,
+ length, LOG2_ARRAY_INT_INDEX_SCALE);
+ if (i >= 0)
+ return i;
+ i = length - ~i;
+ }
+ for (; i < length; i++) {
+ if (a[aFromIndex + i] != b[bFromIndex + i])
+ return i;
+ }
+ return -1;
+ }
+
+
+ // Floats
+
+ static int mismatch(float[] a,
+ float[] b,
+ int length) {
+ return mismatch(a, 0, b, 0, length);
+ }
+
+ static int mismatch(float[] a, int aFromIndex,
+ float[] b, int bFromIndex,
+ int length) {
+ int i = 0;
+ if (length > 1) {
+ int aOffset = Unsafe.ARRAY_FLOAT_BASE_OFFSET + (aFromIndex << LOG2_ARRAY_FLOAT_INDEX_SCALE);
+ int bOffset = Unsafe.ARRAY_FLOAT_BASE_OFFSET + (bFromIndex << LOG2_ARRAY_FLOAT_INDEX_SCALE);
+ i = vectorizedMismatch(
+ a, aOffset,
+ b, bOffset,
+ length, LOG2_ARRAY_FLOAT_INDEX_SCALE);
+ // Mismatched
+ if (i >= 0) {
+ // Check if mismatch is not associated with two NaN values
+ if (!Float.isNaN(a[aFromIndex + i]) || !Float.isNaN(b[bFromIndex + i]))
+ return i;
+
+ // Mismatch on two different NaN values that are normalized to match
+ // Fall back to slow mechanism
+ // ISSUE: Consider looping over vectorizedMismatch adjusting ranges
+ // However, requires that returned value be relative to input ranges
+ i++;
+ }
+ // Matched
+ else {
+ i = length - ~i;
+ }
+ }
+ for (; i < length; i++) {
+ if (Float.floatToIntBits(a[aFromIndex + i]) != Float.floatToIntBits(b[bFromIndex + i]))
+ return i;
+ }
+ return -1;
+ }
+
+ // 64 bit sizes
+
+ // Long
+
+ static int mismatch(long[] a,
+ long[] b,
+ int length) {
+ if (length == 0) {
+ return -1;
+ }
+ int i = vectorizedMismatch(
+ a, Unsafe.ARRAY_LONG_BASE_OFFSET,
+ b, Unsafe.ARRAY_LONG_BASE_OFFSET,
+ length, LOG2_ARRAY_LONG_INDEX_SCALE);
+ return i >= 0 ? i : -1;
+ }
+
+ static int mismatch(long[] a, int aFromIndex,
+ long[] b, int bFromIndex,
+ int length) {
+ if (length == 0) {
+ return -1;
+ }
+ int aOffset = Unsafe.ARRAY_LONG_BASE_OFFSET + (aFromIndex << LOG2_ARRAY_LONG_INDEX_SCALE);
+ int bOffset = Unsafe.ARRAY_LONG_BASE_OFFSET + (bFromIndex << LOG2_ARRAY_LONG_INDEX_SCALE);
+ int i = vectorizedMismatch(
+ a, aOffset,
+ b, bOffset,
+ length, LOG2_ARRAY_LONG_INDEX_SCALE);
+ return i >= 0 ? i : -1;
+ }
+
+
+ // Double
+
+ static int mismatch(double[] a,
+ double[] b,
+ int length) {
+ return mismatch(a, 0, b, 0, length);
+ }
+
+ static int mismatch(double[] a, int aFromIndex,
+ double[] b, int bFromIndex,
+ int length) {
+ if (length == 0) {
+ return -1;
+ }
+ int aOffset = Unsafe.ARRAY_DOUBLE_BASE_OFFSET + (aFromIndex << LOG2_ARRAY_DOUBLE_INDEX_SCALE);
+ int bOffset = Unsafe.ARRAY_DOUBLE_BASE_OFFSET + (bFromIndex << LOG2_ARRAY_DOUBLE_INDEX_SCALE);
+ int i = vectorizedMismatch(
+ a, aOffset,
+ b, bOffset,
+ length, LOG2_ARRAY_DOUBLE_INDEX_SCALE);
+ if (i >= 0) {
+ // Check if mismatch is not associated with two NaN values
+ if (!Double.isNaN(a[aFromIndex + i]) || !Double.isNaN(b[bFromIndex + i]))
+ return i;
+
+ // Mismatch on two different NaN values that are normalized to match
+ // Fall back to slow mechanism
+ // ISSUE: Consider looping over vectorizedMismatch adjusting ranges
+ // However, requires that returned value be relative to input ranges
+ i++;
+ for (; i < length; i++) {
+ if (Double.doubleToLongBits(a[aFromIndex + i]) != Double.doubleToLongBits(b[bFromIndex + i]))
+ return i;
+ }
+ }
+
+ return -1;
+ }
+}
--- a/jdk/src/java.base/share/classes/jdk/Exported.java Fri Jan 15 08:53:23 2016 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-/*
- * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package jdk;
-
-import java.lang.annotation.*;
-
-/**
- * Indicates whether or not a JDK specific type or package is an
- * exported part of the JDK suitable for use outside of the JDK
- * implementation itself.
- *
- * This annotation should only be applied to types and packages
- * <em>outside</em> of the Java SE namespaces of {@code java.*} and
- * {@code javax.*} packages. For example, certain portions of {@code
- * com.sun.*} are official parts of the JDK meant to be generally
- * usable while other portions of {@code com.sun.*} are not. This
- * annotation type allows those portions to be easily and
- * programmatically distinguished.
- *
- * <p>If in one release a type or package is
- * <code>@Exported(true)</code>, in a subsequent major release such a
- * type or package can transition to <code>@Exported(false)</code>.
- *
- * <p>If a type or package is <code>@Exported(false)</code> in a
- * release, it may be removed in a subsequent major release.
- *
- * <p>If a top-level type has an <code>@Exported</code> annotation,
- * any nested member types with the top-level type should have an
- * <code>@Exported</code> annotation with the same value.
- *
- * (In exceptional cases, if a nested type is going to be removed
- * before its enclosing type, the nested type's could be
- * <code>@Exported(false)</code> while its enclosing type was
- * <code>@Exported(true)</code>.)
- *
- * Likewise, if a package has an <code>@Exported</code> annotation,
- * top-level types within that package should also have an
- * <code>@Exported</code> annotation.
- *
- * Sometimes a top-level type may have a different
- * <code>@Exported</code> value than its package.
- *
- * @since 1.8
- */
-@Documented
-@Retention(RetentionPolicy.RUNTIME)
-@Target({ElementType.TYPE, ElementType.PACKAGE})
-@Exported
-public @interface Exported {
- /**
- * Whether or not the annotated type or package is an exported
- * part of the JDK.
- * @return whether or not the annotated type or package is an exported
- * part of the JDK
- */
- boolean value() default true;
-}
--- a/jdk/src/java.base/share/classes/jdk/internal/logger/BootstrapLogger.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/jdk/internal/logger/BootstrapLogger.java Fri Jan 15 19:18:42 2016 +0000
@@ -48,7 +48,7 @@
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import sun.misc.InnocuousThread;
-import sun.misc.VM;
+import jdk.internal.misc.VM;
import sun.util.logging.PlatformLogger;
import jdk.internal.logger.LazyLoggers.LazyLoggerAccessor;
--- a/jdk/src/java.base/share/classes/jdk/internal/logger/LazyLoggers.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/jdk/internal/logger/LazyLoggers.java Fri Jan 15 19:18:42 2016 +0000
@@ -32,7 +32,7 @@
import java.lang.System.Logger;
import java.lang.ref.WeakReference;
import java.util.Objects;
-import sun.misc.VM;
+import jdk.internal.misc.VM;
import sun.util.logging.PlatformLogger;
/**
--- a/jdk/src/java.base/share/classes/jdk/internal/misc/CleanerImpl.java Fri Jan 15 08:53:23 2016 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,788 +0,0 @@
-/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package jdk.internal.misc;
-
-import java.lang.ref.Cleaner;
-import java.lang.ref.Cleaner.Cleanable;
-import java.lang.ref.PhantomReference;
-import java.lang.ref.Reference;
-import java.lang.ref.ReferenceQueue;
-import java.lang.ref.SoftReference;
-import java.lang.ref.WeakReference;
-import java.security.AccessController;
-import java.security.PrivilegedAction;
-import java.util.Objects;
-import java.util.concurrent.ThreadFactory;
-import java.util.function.Function;
-
-import sun.misc.InnocuousThread;
-
-/**
- * CleanerImpl manages a set of object references and corresponding cleaning actions.
- * CleanerImpl provides the functionality of {@link java.lang.ref.Cleaner}.
- */
-public final class CleanerImpl implements Runnable {
-
- /**
- * An object to access the CleanerImpl from a Cleaner; set by Cleaner init.
- */
- private static Function<Cleaner, CleanerImpl> cleanerImplAccess = null;
-
- /**
- * Heads of a CleanableList for each reference type.
- */
- final PhantomCleanable<?> phantomCleanableList;
-
- final WeakCleanable<?> weakCleanableList;
-
- final SoftCleanable<?> softCleanableList;
-
- // The ReferenceQueue of pending cleaning actions
- final ReferenceQueue<Object> queue;
-
- /**
- * Called by Cleaner static initialization to provide the function
- * to map from Cleaner to CleanerImpl.
- * @param access a function to map from Cleaner to CleanerImpl
- */
- public static void setCleanerImplAccess(Function<Cleaner, CleanerImpl> access) {
- if (cleanerImplAccess == null) {
- cleanerImplAccess = access;
- }
- }
-
- /**
- * Called to get the CleanerImpl for a Cleaner.
- * @param cleaner the cleaner
- * @return the corresponding CleanerImpl
- */
- private static CleanerImpl getCleanerImpl(Cleaner cleaner) {
- return cleanerImplAccess.apply(cleaner);
- }
-
- /**
- * Constructor for CleanerImpl.
- */
- public CleanerImpl() {
- queue = new ReferenceQueue<>();
- phantomCleanableList = new PhantomCleanableRef(this);
- weakCleanableList = new WeakCleanableRef(this);
- softCleanableList = new SoftCleanableRef(this);
- }
-
- /**
- * Starts the Cleaner implementation.
- * When started waits for Cleanables to be queued.
- * @param service the cleaner
- * @param threadFactory the thread factory
- */
- public void start(Cleaner service, ThreadFactory threadFactory) {
- // schedule a nop cleaning action for the service, so the associated thread
- // will continue to run at least until the service is reclaimable.
- new PhantomCleanableRef(service, service, () -> {});
-
- if (threadFactory == null) {
- threadFactory = CleanerImpl.InnocuousThreadFactory.factory();
- }
-
- // now that there's at least one cleaning action, for the service,
- // we can start the associated thread, which runs until
- // all cleaning actions have been run.
- Thread thread = threadFactory.newThread(this);
- thread.setDaemon(true);
- thread.start();
- }
-
- /**
- * Process queued Cleanables as long as the cleanable lists are not empty.
- * A Cleanable is in one of the lists for each Object and for the Cleaner
- * itself.
- * Terminates when the Cleaner is no longer reachable and
- * has been cleaned and there are no more Cleanable instances
- * for which the object is reachable.
- * <p>
- * If the thread is a ManagedLocalsThread, the threadlocals
- * are erased before each cleanup
- */
- public void run() {
- Thread t = Thread.currentThread();
- InnocuousThread mlThread = (t instanceof InnocuousThread)
- ? (InnocuousThread) t
- : null;
- while (!phantomCleanableList.isListEmpty() ||
- !weakCleanableList.isListEmpty() ||
- !softCleanableList.isListEmpty()) {
- if (mlThread != null) {
- // Clear the thread locals
- mlThread.eraseThreadLocals();
- }
- try {
- // Wait for a Ref, with a timeout to avoid getting hung
- // due to a race with clear/clean
- Cleanable ref = (Cleanable) queue.remove(60 * 1000L);
- if (ref != null) {
- ref.clean();
- }
- } catch (InterruptedException i) {
- continue; // ignore the interruption
- } catch (Throwable e) {
- // ignore exceptions from the cleanup action
- }
- }
- }
-
- /**
- * PhantomCleanable subclasses efficiently encapsulate cleanup state and
- * the cleaning action.
- * Subclasses implement the abstract {@link #performCleanup()} method
- * to provide the cleaning action.
- * When constructed, the object reference and the {@link Cleanable Cleanable}
- * are registered with the {@link Cleaner}.
- * The Cleaner invokes {@link Cleaner.Cleanable#clean() clean} after the
- * referent becomes phantom reachable.
- */
- public static abstract class PhantomCleanable<T> extends PhantomReference<T>
- implements Cleaner.Cleanable {
-
- /**
- * Links to previous and next in a doubly-linked list.
- */
- PhantomCleanable<?> prev = this, next = this;
-
- /**
- * The CleanerImpl for this Cleanable.
- */
- private final CleanerImpl cleanerImpl;
-
- /**
- * Constructs new {@code PhantomCleanable} with
- * {@code non-null referent} and {@code non-null cleaner}.
- * The {@code cleaner} is not retained; it is only used to
- * register the newly constructed {@link Cleaner.Cleanable Cleanable}.
- *
- * @param referent the referent to track
- * @param cleaner the {@code Cleaner} to register with
- */
- public PhantomCleanable(T referent, Cleaner cleaner) {
- super(Objects.requireNonNull(referent), getCleanerImpl(cleaner).queue);
- this.cleanerImpl = getCleanerImpl(cleaner);
- insert();
-
- // TODO: Replace getClass() with ReachabilityFence when it is available
- cleaner.getClass();
- referent.getClass();
- }
-
- /**
- * Construct a new root of the list; not inserted.
- */
- PhantomCleanable(CleanerImpl cleanerImpl) {
- super(null, null);
- this.cleanerImpl = cleanerImpl;
- }
-
- /**
- * Insert this PhantomCleanable after the list head.
- */
- private void insert() {
- final PhantomCleanable<?> list = cleanerImpl.phantomCleanableList;
- synchronized (list) {
- prev = list;
- next = list.next;
- next.prev = this;
- list.next = this;
- }
- }
-
- /**
- * Remove this PhantomCleanable from the list.
- *
- * @return true if Cleanable was removed or false if not because
- * it had already been removed before
- */
- private boolean remove() {
- PhantomCleanable<?> list = cleanerImpl.phantomCleanableList;
- synchronized (list) {
- if (next != this) {
- next.prev = prev;
- prev.next = next;
- prev = this;
- next = this;
- return true;
- }
- return false;
- }
- }
-
- /**
- * Returns true if the list's next reference refers to itself.
- *
- * @return true if the list is empty
- */
- boolean isListEmpty() {
- PhantomCleanable<?> list = cleanerImpl.phantomCleanableList;
- synchronized (list) {
- return list == list.next;
- }
- }
-
- /**
- * Unregister this PhantomCleanable and invoke {@link #performCleanup()},
- * ensuring at-most-once semantics.
- */
- @Override
- public final void clean() {
- if (remove()) {
- super.clear();
- performCleanup();
- }
- }
-
- /**
- * Unregister this PhantomCleanable and clear the reference.
- * Due to inherent concurrency, {@link #performCleanup()} may still be invoked.
- */
- @Override
- public void clear() {
- if (remove()) {
- super.clear();
- }
- }
-
- /**
- * The {@code performCleanup} abstract method is overridden
- * to implement the cleaning logic.
- * The {@code performCleanup} method should not be called except
- * by the {@link #clean} method which ensures at most once semantics.
- */
- protected abstract void performCleanup();
-
- /**
- * This method always throws {@link UnsupportedOperationException}.
- * Enqueuing details of {@link Cleaner.Cleanable}
- * are a private implementation detail.
- *
- * @throws UnsupportedOperationException always
- */
- @Override
- public final boolean isEnqueued() {
- throw new UnsupportedOperationException("isEnqueued");
- }
-
- /**
- * This method always throws {@link UnsupportedOperationException}.
- * Enqueuing details of {@link Cleaner.Cleanable}
- * are a private implementation detail.
- *
- * @throws UnsupportedOperationException always
- */
- @Override
- public final boolean enqueue() {
- throw new UnsupportedOperationException("enqueue");
- }
- }
-
- /**
- * WeakCleanable subclasses efficiently encapsulate cleanup state and
- * the cleaning action.
- * Subclasses implement the abstract {@link #performCleanup()} method
- * to provide the cleaning action.
- * When constructed, the object reference and the {@link Cleanable Cleanable}
- * are registered with the {@link Cleaner}.
- * The Cleaner invokes {@link Cleaner.Cleanable#clean() clean} after the
- * referent becomes weakly reachable.
- */
- public static abstract class WeakCleanable<T> extends WeakReference<T>
- implements Cleaner.Cleanable {
-
- /**
- * Links to previous and next in a doubly-linked list.
- */
- WeakCleanable<?> prev = this, next = this;
-
- /**
- * The CleanerImpl for this Cleanable.
- */
- private final CleanerImpl cleanerImpl;
-
- /**
- * Constructs new {@code WeakCleanableReference} with
- * {@code non-null referent} and {@code non-null cleaner}.
- * The {@code cleaner} is not retained by this reference; it is only used
- * to register the newly constructed {@link Cleaner.Cleanable Cleanable}.
- *
- * @param referent the referent to track
- * @param cleaner the {@code Cleaner} to register new reference with
- */
- public WeakCleanable(T referent, Cleaner cleaner) {
- super(Objects.requireNonNull(referent), getCleanerImpl(cleaner).queue);
- cleanerImpl = getCleanerImpl(cleaner);
- insert();
-
- // TODO: Replace getClass() with ReachabilityFence when it is available
- cleaner.getClass();
- referent.getClass();
- }
-
- /**
- * Construct a new root of the list; not inserted.
- */
- WeakCleanable(CleanerImpl cleanerImpl) {
- super(null, null);
- this.cleanerImpl = cleanerImpl;
- }
-
- /**
- * Insert this WeakCleanableReference after the list head.
- */
- private void insert() {
- final WeakCleanable<?> list = cleanerImpl.weakCleanableList;
- synchronized (list) {
- prev = list;
- next = list.next;
- next.prev = this;
- list.next = this;
- }
- }
-
- /**
- * Remove this WeakCleanableReference from the list.
- *
- * @return true if Cleanable was removed or false if not because
- * it had already been removed before
- */
- private boolean remove() {
- WeakCleanable<?> list = cleanerImpl.weakCleanableList;
- synchronized (list) {
- if (next != this) {
- next.prev = prev;
- prev.next = next;
- prev = this;
- next = this;
- return true;
- }
- return false;
- }
- }
-
- /**
- * Returns true if the list's next reference refers to itself.
- *
- * @return true if the list is empty
- */
- boolean isListEmpty() {
- WeakCleanable<?> list = cleanerImpl.weakCleanableList;
- synchronized (list) {
- return list == list.next;
- }
- }
-
- /**
- * Unregister this WeakCleanable reference and invoke {@link #performCleanup()},
- * ensuring at-most-once semantics.
- */
- @Override
- public final void clean() {
- if (remove()) {
- super.clear();
- performCleanup();
- }
- }
-
- /**
- * Unregister this WeakCleanable and clear the reference.
- * Due to inherent concurrency, {@link #performCleanup()} may still be invoked.
- */
- @Override
- public void clear() {
- if (remove()) {
- super.clear();
- }
- }
-
- /**
- * The {@code performCleanup} abstract method is overridden
- * to implement the cleaning logic.
- * The {@code performCleanup} method should not be called except
- * by the {@link #clean} method which ensures at most once semantics.
- */
- protected abstract void performCleanup();
-
- /**
- * This method always throws {@link UnsupportedOperationException}.
- * Enqueuing details of {@link java.lang.ref.Cleaner.Cleanable}
- * are a private implementation detail.
- *
- * @throws UnsupportedOperationException always
- */
- @Override
- public final boolean isEnqueued() {
- throw new UnsupportedOperationException("isEnqueued");
- }
-
- /**
- * This method always throws {@link UnsupportedOperationException}.
- * Enqueuing details of {@link java.lang.ref.Cleaner.Cleanable}
- * are a private implementation detail.
- *
- * @throws UnsupportedOperationException always
- */
- @Override
- public final boolean enqueue() {
- throw new UnsupportedOperationException("enqueue");
- }
- }
-
- /**
- * SoftCleanable subclasses efficiently encapsulate cleanup state and
- * the cleaning action.
- * Subclasses implement the abstract {@link #performCleanup()} method
- * to provide the cleaning action.
- * When constructed, the object reference and the {@link Cleanable Cleanable}
- * are registered with the {@link Cleaner}.
- * The Cleaner invokes {@link Cleaner.Cleanable#clean() clean} after the
- * referent becomes softly reachable.
- */
- public static abstract class SoftCleanable<T> extends SoftReference<T>
- implements Cleaner.Cleanable {
-
- /**
- * Links to previous and next in a doubly-linked list.
- */
- SoftCleanable<?> prev = this, next = this;
-
- /**
- * The CleanerImpl for this Cleanable.
- */
- private final CleanerImpl cleanerImpl;
-
- /**
- * Constructs new {@code SoftCleanableReference} with
- * {@code non-null referent} and {@code non-null cleaner}.
- * The {@code cleaner} is not retained by this reference; it is only used
- * to register the newly constructed {@link Cleaner.Cleanable Cleanable}.
- *
- * @param referent the referent to track
- * @param cleaner the {@code Cleaner} to register with
- */
- public SoftCleanable(T referent, Cleaner cleaner) {
- super(Objects.requireNonNull(referent), getCleanerImpl(cleaner).queue);
- cleanerImpl = getCleanerImpl(cleaner);
- insert();
-
- // TODO: Replace getClass() with ReachabilityFence when it is available
- cleaner.getClass();
- referent.getClass();
- }
-
- /**
- * Construct a new root of the list; not inserted.
- */
- SoftCleanable(CleanerImpl cleanerImpl) {
- super(null, null);
- this.cleanerImpl = cleanerImpl;
- }
-
- /**
- * Insert this SoftCleanableReference after the list head.
- */
- private void insert() {
- final SoftCleanable<?> list = cleanerImpl.softCleanableList;
- synchronized (list) {
- prev = list;
- next = list.next;
- next.prev = this;
- list.next = this;
- }
- }
-
- /**
- * Remove this SoftCleanableReference from the list.
- *
- * @return true if Cleanable was removed or false if not because
- * it had already been removed before
- */
- private boolean remove() {
- SoftCleanable<?> list = cleanerImpl.softCleanableList;
- synchronized (list) {
- if (next != this) {
- next.prev = prev;
- prev.next = next;
- prev = this;
- next = this;
- return true;
- }
- return false;
- }
- }
-
- /**
- * Returns true if the list's next reference refers to itself.
- *
- * @return true if the list is empty
- */
- boolean isListEmpty() {
- SoftCleanable<?> list = cleanerImpl.softCleanableList;
- synchronized (list) {
- return list == list.next;
- }
- }
-
- /**
- * Unregister this SoftCleanable reference and invoke {@link #performCleanup()},
- * ensuring at-most-once semantics.
- */
- @Override
- public final void clean() {
- if (remove()) {
- super.clear();
- performCleanup();
- }
- }
-
- /**
- * Unregister this SoftCleanable and clear the reference.
- * Due to inherent concurrency, {@link #performCleanup()} may still be invoked.
- */
- @Override
- public void clear() {
- if (remove()) {
- super.clear();
- }
- }
-
- /**
- * The {@code performCleanup} abstract method is overridden
- * to implement the cleaning logic.
- * The {@code performCleanup} method should not be called except
- * by the {@link #clean} method which ensures at most once semantics.
- */
- protected abstract void performCleanup();
-
- /**
- * This method always throws {@link UnsupportedOperationException}.
- * Enqueuing details of {@link Cleaner.Cleanable}
- * are a private implementation detail.
- *
- * @throws UnsupportedOperationException always
- */
- @Override
- public final boolean isEnqueued() {
- throw new UnsupportedOperationException("isEnqueued");
- }
-
- /**
- * This method always throws {@link UnsupportedOperationException}.
- * Enqueuing details of {@link Cleaner.Cleanable}
- * are a private implementation detail.
- *
- * @throws UnsupportedOperationException always
- */
- @Override
- public final boolean enqueue() {
- throw new UnsupportedOperationException("enqueue");
- }
- }
-
- /**
- * Perform cleaning on an unreachable PhantomReference.
- */
- public static final class PhantomCleanableRef extends PhantomCleanable<Object> {
- private final Runnable action;
-
- /**
- * Constructor for a phantom cleanable reference.
- * @param obj the object to monitor
- * @param cleaner the cleaner
- * @param action the action Runnable
- */
- public PhantomCleanableRef(Object obj, Cleaner cleaner, Runnable action) {
- super(obj, cleaner);
- this.action = action;
- }
-
- /**
- * Constructor used only for root of phantom cleanable list.
- * @param cleanerImpl the cleanerImpl
- */
- PhantomCleanableRef(CleanerImpl cleanerImpl) {
- super(cleanerImpl);
- this.action = null;
- }
-
- @Override
- protected void performCleanup() {
- action.run();
- }
-
- /**
- * Prevent access to referent even when it is still alive.
- *
- * @throws UnsupportedOperationException always
- */
- @Override
- public Object get() {
- throw new UnsupportedOperationException("get");
- }
-
- /**
- * Direct clearing of the referent is not supported.
- *
- * @throws UnsupportedOperationException always
- */
- @Override
- public void clear() {
- throw new UnsupportedOperationException("clear");
- }
- }
-
- /**
- * Perform cleaning on an unreachable WeakReference.
- */
- public static final class WeakCleanableRef extends WeakCleanable<Object> {
- private final Runnable action;
-
- /**
- * Constructor for a weak cleanable reference.
- * @param obj the object to monitor
- * @param cleaner the cleaner
- * @param action the action Runnable
- */
- WeakCleanableRef(Object obj, Cleaner cleaner, Runnable action) {
- super(obj, cleaner);
- this.action = action;
- }
-
- /**
- * Constructor used only for root of weak cleanable list.
- * @param cleanerImpl the cleanerImpl
- */
- WeakCleanableRef(CleanerImpl cleanerImpl) {
- super(cleanerImpl);
- this.action = null;
- }
-
- @Override
- protected void performCleanup() {
- action.run();
- }
-
- /**
- * Prevent access to referent even when it is still alive.
- *
- * @throws UnsupportedOperationException always
- */
- @Override
- public Object get() {
- throw new UnsupportedOperationException("get");
- }
-
- /**
- * Direct clearing of the referent is not supported.
- *
- * @throws UnsupportedOperationException always
- */
- @Override
- public void clear() {
- throw new UnsupportedOperationException("clear");
- }
- }
-
- /**
- * Perform cleaning on an unreachable SoftReference.
- */
- public static final class SoftCleanableRef extends SoftCleanable<Object> {
- private final Runnable action;
-
- /**
- * Constructor for a soft cleanable reference.
- * @param obj the object to monitor
- * @param cleaner the cleaner
- * @param action the action Runnable
- */
- SoftCleanableRef(Object obj, Cleaner cleaner, Runnable action) {
- super(obj, cleaner);
- this.action = action;
- }
-
- /**
- * Constructor used only for root of soft cleanable list.
- * @param cleanerImpl the cleanerImpl
- */
- SoftCleanableRef(CleanerImpl cleanerImpl) {
- super(cleanerImpl);
- this.action = null;
- }
-
- @Override
- protected void performCleanup() {
- action.run();
- }
-
- /**
- * Prevent access to referent even when it is still alive.
- *
- * @throws UnsupportedOperationException always
- */
- @Override
- public Object get() {
- throw new UnsupportedOperationException("get");
- }
-
- /**
- * Direct clearing of the referent is not supported.
- *
- * @throws UnsupportedOperationException always
- */
- @Override
- public void clear() {
- throw new UnsupportedOperationException("clear");
- }
-
- }
-
- /**
- * A ThreadFactory for InnocuousThreads.
- * The factory is a singleton.
- */
- static final class InnocuousThreadFactory implements ThreadFactory {
- final static ThreadFactory factory = new InnocuousThreadFactory();
-
- static ThreadFactory factory() {
- return factory;
- }
-
- public Thread newThread(Runnable r) {
- return AccessController.doPrivileged((PrivilegedAction<Thread>) () -> {
- Thread t = new InnocuousThread(r);
- t.setPriority(Thread.MAX_PRIORITY - 2);
- t.setName("Cleaner-" + t.getId());
- return t;
- });
- }
- }
-
-}
--- a/jdk/src/java.base/share/classes/jdk/internal/misc/Unsafe.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/jdk/internal/misc/Unsafe.java Fri Jan 15 19:18:42 2016 +0000
@@ -30,7 +30,7 @@
import sun.reflect.CallerSensitive;
import sun.reflect.Reflection;
-import sun.misc.VM;
+import jdk.internal.misc.VM;
import jdk.internal.HotSpotIntrinsicCandidate;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/java.base/share/classes/jdk/internal/misc/VM.java Fri Jan 15 19:18:42 2016 +0000
@@ -0,0 +1,433 @@
+/*
+ * Copyright (c) 1996, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package jdk.internal.misc;
+
+import static java.lang.Thread.State.*;
+import java.util.Properties;
+
+public class VM {
+
+ /* The following methods used to be native methods that instruct
+ * the VM to selectively suspend certain threads in low-memory
+ * situations. They are inherently dangerous and not implementable
+ * on native threads. We removed them in JDK 1.2. The skeletons
+ * remain so that existing applications that use these methods
+ * will still work.
+ */
+ private static boolean suspended = false;
+
+ /** @deprecated */
+ @Deprecated
+ public static boolean threadsSuspended() {
+ return suspended;
+ }
+
+ @SuppressWarnings("deprecation")
+ public static boolean allowThreadSuspension(ThreadGroup g, boolean b) {
+ return g.allowThreadSuspension(b);
+ }
+
+ /** @deprecated */
+ @Deprecated
+ public static boolean suspendThreads() {
+ suspended = true;
+ return true;
+ }
+
+ // Causes any suspended threadgroups to be resumed.
+ /** @deprecated */
+ @Deprecated
+ public static void unsuspendThreads() {
+ suspended = false;
+ }
+
+ // Causes threadgroups no longer marked suspendable to be resumed.
+ /** @deprecated */
+ @Deprecated
+ public static void unsuspendSomeThreads() {
+ }
+
+ /* Deprecated fields and methods -- Memory advice not supported in 1.2 */
+
+ /** @deprecated */
+ @Deprecated
+ public static final int STATE_GREEN = 1;
+
+ /** @deprecated */
+ @Deprecated
+ public static final int STATE_YELLOW = 2;
+
+ /** @deprecated */
+ @Deprecated
+ public static final int STATE_RED = 3;
+
+ /** @deprecated */
+ @Deprecated
+ public static final int getState() {
+ return STATE_GREEN;
+ }
+
+ /** @deprecated */
+ @Deprecated
+ public static void registerVMNotification(VMNotification n) { }
+
+ /** @deprecated */
+ @Deprecated
+ public static void asChange(int as_old, int as_new) { }
+
+ /** @deprecated */
+ @Deprecated
+ public static void asChange_otherthread(int as_old, int as_new) { }
+
+ /*
+ * Not supported in 1.2 because these will have to be exported as
+ * JVM functions, and we are not sure we want do that. Leaving
+ * here so it can be easily resurrected -- just remove the //
+ * comments.
+ */
+
+ /**
+ * Resume Java profiling. All profiling data is added to any
+ * earlier profiling, unless <code>resetJavaProfiler</code> is
+ * called in between. If profiling was not started from the
+ * command line, <code>resumeJavaProfiler</code> will start it.
+ * <p>
+ *
+ * NOTE: Profiling must be enabled from the command line for a
+ * java.prof report to be automatically generated on exit; if not,
+ * writeJavaProfilerReport must be invoked to write a report.
+ *
+ * @see resetJavaProfiler
+ * @see writeJavaProfilerReport
+ */
+
+ // public native static void resumeJavaProfiler();
+
+ /**
+ * Suspend Java profiling.
+ */
+ // public native static void suspendJavaProfiler();
+
+ /**
+ * Initialize Java profiling. Any accumulated profiling
+ * information is discarded.
+ */
+ // public native static void resetJavaProfiler();
+
+ /**
+ * Write the current profiling contents to the file "java.prof".
+ * If the file already exists, it will be overwritten.
+ */
+ // public native static void writeJavaProfilerReport();
+
+
+ private static volatile boolean booted = false;
+ private static final Object lock = new Object();
+
+ // Invoked by System.initializeSystemClass just before returning.
+ // Subsystems that are invoked during initialization can check this
+ // property in order to avoid doing things that should wait until the
+ // application class loader has been set up.
+ //
+ public static void booted() {
+ synchronized (lock) {
+ booted = true;
+ lock.notifyAll();
+ }
+ }
+
+ public static boolean isBooted() {
+ return booted;
+ }
+
+ // Waits until VM completes initialization
+ //
+ // This method is invoked by the Finalizer thread
+ public static void awaitBooted() throws InterruptedException {
+ synchronized (lock) {
+ while (!booted) {
+ lock.wait();
+ }
+ }
+ }
+
+ // A user-settable upper limit on the maximum amount of allocatable direct
+ // buffer memory. This value may be changed during VM initialization if
+ // "java" is launched with "-XX:MaxDirectMemorySize=<size>".
+ //
+ // The initial value of this field is arbitrary; during JRE initialization
+ // it will be reset to the value specified on the command line, if any,
+ // otherwise to Runtime.getRuntime().maxMemory().
+ //
+ private static long directMemory = 64 * 1024 * 1024;
+
+ // Returns the maximum amount of allocatable direct buffer memory.
+ // The directMemory variable is initialized during system initialization
+ // in the saveAndRemoveProperties method.
+ //
+ public static long maxDirectMemory() {
+ return directMemory;
+ }
+
+ // User-controllable flag that determines if direct buffers should be page
+ // aligned. The "-XX:+PageAlignDirectMemory" option can be used to force
+ // buffers, allocated by ByteBuffer.allocateDirect, to be page aligned.
+ private static boolean pageAlignDirectMemory;
+
+ // Returns {@code true} if the direct buffers should be page aligned. This
+ // variable is initialized by saveAndRemoveProperties.
+ public static boolean isDirectMemoryPageAligned() {
+ return pageAlignDirectMemory;
+ }
+
+ /**
+ * Returns true if the given class loader is in the system domain
+ * in which all permissions are granted.
+ */
+ public static boolean isSystemDomainLoader(ClassLoader loader) {
+ return loader == null;
+ }
+
+ /**
+ * Returns the system property of the specified key saved at
+ * system initialization time. This method should only be used
+ * for the system properties that are not changed during runtime.
+ * It accesses a private copy of the system properties so
+ * that user's locking of the system properties object will not
+ * cause the library to deadlock.
+ *
+ * Note that the saved system properties do not include
+ * the ones set by sun.misc.Version.init().
+ *
+ */
+ public static String getSavedProperty(String key) {
+ if (savedProps.isEmpty())
+ throw new IllegalStateException("Should be non-empty if initialized");
+
+ return savedProps.getProperty(key);
+ }
+
+ // TODO: the Property Management needs to be refactored and
+ // the appropriate prop keys need to be accessible to the
+ // calling classes to avoid duplication of keys.
+ private static final Properties savedProps = new Properties();
+
+ // Save a private copy of the system properties and remove
+ // the system properties that are not intended for public access.
+ //
+ // This method can only be invoked during system initialization.
+ public static void saveAndRemoveProperties(Properties props) {
+ if (booted)
+ throw new IllegalStateException("System initialization has completed");
+
+ savedProps.putAll(props);
+
+ // Set the maximum amount of direct memory. This value is controlled
+ // by the vm option -XX:MaxDirectMemorySize=<size>.
+ // The maximum amount of allocatable direct buffer memory (in bytes)
+ // from the system property sun.nio.MaxDirectMemorySize set by the VM.
+ // The system property will be removed.
+ String s = (String)props.remove("sun.nio.MaxDirectMemorySize");
+ if (s != null) {
+ if (s.equals("-1")) {
+ // -XX:MaxDirectMemorySize not given, take default
+ directMemory = Runtime.getRuntime().maxMemory();
+ } else {
+ long l = Long.parseLong(s);
+ if (l > -1)
+ directMemory = l;
+ }
+ }
+
+ // Check if direct buffers should be page aligned
+ s = (String)props.remove("sun.nio.PageAlignDirectMemory");
+ if ("true".equals(s))
+ pageAlignDirectMemory = true;
+
+ // Remove other private system properties
+ // used by java.lang.Integer.IntegerCache
+ props.remove("java.lang.Integer.IntegerCache.high");
+
+ // used by sun.launcher.LauncherHelper
+ props.remove("sun.java.launcher.diag");
+ }
+
+ // Initialize any miscellenous operating system settings that need to be
+ // set for the class libraries.
+ //
+ public static void initializeOSEnvironment() {
+ if (!booted) {
+ OSEnvironment.initialize();
+ }
+ }
+
+ /* Current count of objects pending for finalization */
+ private static volatile int finalRefCount;
+
+ /* Peak count of objects pending for finalization */
+ private static volatile int peakFinalRefCount;
+
+ /*
+ * Gets the number of objects pending for finalization.
+ *
+ * @return the number of objects pending for finalization.
+ */
+ public static int getFinalRefCount() {
+ return finalRefCount;
+ }
+
+ /*
+ * Gets the peak number of objects pending for finalization.
+ *
+ * @return the peak number of objects pending for finalization.
+ */
+ public static int getPeakFinalRefCount() {
+ return peakFinalRefCount;
+ }
+
+ /*
+ * Add {@code n} to the objects pending for finalization count.
+ *
+ * @param n an integer value to be added to the objects pending
+ * for finalization count
+ */
+ public static void addFinalRefCount(int n) {
+ // The caller must hold lock to synchronize the update.
+
+ finalRefCount += n;
+ if (finalRefCount > peakFinalRefCount) {
+ peakFinalRefCount = finalRefCount;
+ }
+ }
+
+ /**
+ * Returns Thread.State for the given threadStatus
+ */
+ public static Thread.State toThreadState(int threadStatus) {
+ if ((threadStatus & JVMTI_THREAD_STATE_RUNNABLE) != 0) {
+ return RUNNABLE;
+ } else if ((threadStatus & JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER) != 0) {
+ return BLOCKED;
+ } else if ((threadStatus & JVMTI_THREAD_STATE_WAITING_INDEFINITELY) != 0) {
+ return WAITING;
+ } else if ((threadStatus & JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT) != 0) {
+ return TIMED_WAITING;
+ } else if ((threadStatus & JVMTI_THREAD_STATE_TERMINATED) != 0) {
+ return TERMINATED;
+ } else if ((threadStatus & JVMTI_THREAD_STATE_ALIVE) == 0) {
+ return NEW;
+ } else {
+ return RUNNABLE;
+ }
+ }
+
+ /* The threadStatus field is set by the VM at state transition
+ * in the hotspot implementation. Its value is set according to
+ * the JVM TI specification GetThreadState function.
+ */
+ private static final int JVMTI_THREAD_STATE_ALIVE = 0x0001;
+ private static final int JVMTI_THREAD_STATE_TERMINATED = 0x0002;
+ private static final int JVMTI_THREAD_STATE_RUNNABLE = 0x0004;
+ private static final int JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER = 0x0400;
+ private static final int JVMTI_THREAD_STATE_WAITING_INDEFINITELY = 0x0010;
+ private static final int JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT = 0x0020;
+
+ /*
+ * Returns the first non-null class loader up the execution stack,
+ * or null if only code from the null class loader is on the stack.
+ */
+ public static native ClassLoader latestUserDefinedLoader();
+
+ /**
+ * Returns {@code true} if we are in a set UID program.
+ */
+ public static boolean isSetUID() {
+ long uid = getuid();
+ long euid = geteuid();
+ long gid = getgid();
+ long egid = getegid();
+ return uid != euid || gid != egid;
+ }
+
+ /**
+ * Returns the real user ID of the calling process,
+ * or -1 if the value is not available.
+ */
+ public static native long getuid();
+
+ /**
+ * Returns the effective user ID of the calling process,
+ * or -1 if the value is not available.
+ */
+ public static native long geteuid();
+
+ /**
+ * Returns the real group ID of the calling process,
+ * or -1 if the value is not available.
+ */
+ public static native long getgid();
+
+ /**
+ * Returns the effective group ID of the calling process,
+ * or -1 if the value is not available.
+ */
+ public static native long getegid();
+
+ /**
+ * Get a nanosecond time stamp adjustment in the form of a single long.
+ *
+ * This value can be used to create an instant using
+ * {@link java.time.Instant#ofEpochSecond(long, long)
+ * java.time.Instant.ofEpochSecond(offsetInSeconds,
+ * getNanoTimeAdjustment(offsetInSeconds))}.
+ * <p>
+ * The value returned has the best resolution available to the JVM on
+ * the current system.
+ * This is usually down to microseconds - or tenth of microseconds -
+ * depending on the OS/Hardware and the JVM implementation.
+ *
+ * @param offsetInSeconds The offset in seconds from which the nanosecond
+ * time stamp should be computed.
+ *
+ * @apiNote The offset should be recent enough - so that
+ * {@code offsetInSeconds} is within {@code +/- 2^32} seconds of the
+ * current UTC time. If the offset is too far off, {@code -1} will be
+ * returned. As such, {@code -1} must not be considered as a valid
+ * nano time adjustment, but as an exception value indicating
+ * that an offset closer to the current time should be used.
+ *
+ * @return A nanosecond time stamp adjustment in the form of a single long.
+ * If the offset is too far off the current time, this method returns -1.
+ * In that case, the caller should call this method again, passing a
+ * more accurate offset.
+ */
+ public static native long getNanoTimeAdjustment(long offsetInSeconds);
+
+ static {
+ initialize();
+ }
+ private static native void initialize();
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/java.base/share/classes/jdk/internal/misc/VMNotification.java Fri Jan 15 19:18:42 2016 +0000
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 1996, 2004, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package jdk.internal.misc;
+
+/** @deprecated */
+@Deprecated
+public interface VMNotification {
+
+ // when the vm switches allocation states, we get notified
+ // (possible semantics: if the state changes while in this
+ // notification, don't recursively notify).
+ // oldState and newState may be the same if we are just releasing
+ // suspended threads.
+ void newAllocState(int oldState, int newState,
+ boolean threadsSuspended);
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/java.base/share/classes/jdk/internal/ref/CleanerFactory.java Fri Jan 15 19:18:42 2016 +0000
@@ -0,0 +1,48 @@
+/*
+ * 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. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package jdk.internal.ref;
+
+import java.lang.ref.Cleaner;
+
+/**
+ * CleanerFactory provides a Cleaner for use within OpenJDK modules.
+ * The cleaner is created on the first reference to the CleanerFactory.
+ */
+public final class CleanerFactory {
+
+ /* The common Cleaner. */
+ private final static Cleaner commonCleaner = Cleaner.create();
+
+ /**
+ * Cleaner for use within OpenJDK modules.
+ *
+ * @return a Cleaner for use within OpenJDK modules
+ */
+ public static Cleaner cleaner() {
+ return commonCleaner;
+ }
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/java.base/share/classes/jdk/internal/ref/CleanerImpl.java Fri Jan 15 19:18:42 2016 +0000
@@ -0,0 +1,333 @@
+/*
+ * Copyright (c) 2015, 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. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package jdk.internal.ref;
+
+import java.lang.ref.Cleaner;
+import java.lang.ref.Cleaner.Cleanable;
+import java.lang.ref.ReferenceQueue;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.util.concurrent.ThreadFactory;
+import java.util.function.Function;
+
+import sun.misc.InnocuousThread;
+
+/**
+ * CleanerImpl manages a set of object references and corresponding cleaning actions.
+ * CleanerImpl provides the functionality of {@link java.lang.ref.Cleaner}.
+ */
+public final class CleanerImpl {
+
+ /**
+ * An object to access the CleanerImpl from a Cleaner; set by Cleaner init.
+ */
+ private static Function<Cleaner, CleanerImpl> cleanerImplAccess = null;
+
+ /**
+ * Heads of a CleanableList for each reference type.
+ */
+ final PhantomCleanable<?> phantomCleanableList;
+
+ final WeakCleanable<?> weakCleanableList;
+
+ final SoftCleanable<?> softCleanableList;
+
+ // The ReferenceQueue of pending cleaning actions
+ final ReferenceQueue<Object> queue;
+
+ /**
+ * Called by Cleaner static initialization to provide the function
+ * to map from Cleaner to CleanerImpl.
+ * @param access a function to map from Cleaner to CleanerImpl
+ */
+ public static void setCleanerImplAccess(Function<Cleaner, CleanerImpl> access) {
+ if (cleanerImplAccess == null) {
+ cleanerImplAccess = access;
+ } else {
+ throw new InternalError("cleanerImplAccess");
+ }
+ }
+
+ /**
+ * Called to get the CleanerImpl for a Cleaner.
+ * @param cleaner the cleaner
+ * @return the corresponding CleanerImpl
+ */
+ static CleanerImpl getCleanerImpl(Cleaner cleaner) {
+ return cleanerImplAccess.apply(cleaner);
+ }
+
+ /**
+ * Constructor for CleanerImpl.
+ */
+ public CleanerImpl() {
+ queue = new ReferenceQueue<>();
+ phantomCleanableList = new PhantomCleanableRef();
+ weakCleanableList = new WeakCleanableRef();
+ softCleanableList = new SoftCleanableRef();
+ }
+
+ /**
+ * Starts the Cleaner implementation.
+ * Ensure this is the CleanerImpl for the Cleaner.
+ * When started waits for Cleanables to be queued.
+ * @param cleaner the cleaner
+ * @param threadFactory the thread factory
+ */
+ public void start(Cleaner cleaner, ThreadFactory threadFactory) {
+ if (getCleanerImpl(cleaner) != this) {
+ throw new AssertionError("wrong cleaner");
+ }
+ // schedule a nop cleaning action for the cleaner, so the associated thread
+ // will continue to run at least until the cleaner is reclaimable.
+ new PhantomCleanableRef(cleaner, cleaner, () -> {});
+
+ if (threadFactory == null) {
+ threadFactory = CleanerImpl.InnocuousThreadFactory.factory();
+ }
+
+ // now that there's at least one cleaning action, for the cleaner,
+ // we can start the associated thread, which runs until
+ // all cleaning actions have been run.
+ Thread thread = threadFactory.newThread(this::run);
+ thread.setDaemon(true);
+ thread.start();
+ }
+
+ /**
+ * Process queued Cleanables as long as the cleanable lists are not empty.
+ * A Cleanable is in one of the lists for each Object and for the Cleaner
+ * itself.
+ * Terminates when the Cleaner is no longer reachable and
+ * has been cleaned and there are no more Cleanable instances
+ * for which the object is reachable.
+ * <p>
+ * If the thread is a ManagedLocalsThread, the threadlocals
+ * are erased before each cleanup
+ */
+ private void run() {
+ Thread t = Thread.currentThread();
+ InnocuousThread mlThread = (t instanceof InnocuousThread)
+ ? (InnocuousThread) t
+ : null;
+ while (!phantomCleanableList.isListEmpty() ||
+ !weakCleanableList.isListEmpty() ||
+ !softCleanableList.isListEmpty()) {
+ if (mlThread != null) {
+ // Clear the thread locals
+ mlThread.eraseThreadLocals();
+ }
+ try {
+ // Wait for a Ref, with a timeout to avoid getting hung
+ // due to a race with clear/clean
+ Cleanable ref = (Cleanable) queue.remove(60 * 1000L);
+ if (ref != null) {
+ ref.clean();
+ }
+ } catch (InterruptedException i) {
+ continue; // ignore the interruption
+ } catch (Throwable e) {
+ // ignore exceptions from the cleanup action
+ }
+ }
+ }
+
+ /**
+ * Perform cleaning on an unreachable PhantomReference.
+ */
+ public static final class PhantomCleanableRef extends PhantomCleanable<Object> {
+ private final Runnable action;
+
+ /**
+ * Constructor for a phantom cleanable reference.
+ * @param obj the object to monitor
+ * @param cleaner the cleaner
+ * @param action the action Runnable
+ */
+ public PhantomCleanableRef(Object obj, Cleaner cleaner, Runnable action) {
+ super(obj, cleaner);
+ this.action = action;
+ }
+
+ /**
+ * Constructor used only for root of phantom cleanable list.
+ */
+ PhantomCleanableRef() {
+ super();
+ this.action = null;
+ }
+
+ @Override
+ protected void performCleanup() {
+ action.run();
+ }
+
+ /**
+ * Prevent access to referent even when it is still alive.
+ *
+ * @throws UnsupportedOperationException always
+ */
+ @Override
+ public Object get() {
+ throw new UnsupportedOperationException("get");
+ }
+
+ /**
+ * Direct clearing of the referent is not supported.
+ *
+ * @throws UnsupportedOperationException always
+ */
+ @Override
+ public void clear() {
+ throw new UnsupportedOperationException("clear");
+ }
+ }
+
+ /**
+ * Perform cleaning on an unreachable WeakReference.
+ */
+ public static final class WeakCleanableRef extends WeakCleanable<Object> {
+ private final Runnable action;
+
+ /**
+ * Constructor for a weak cleanable reference.
+ * @param obj the object to monitor
+ * @param cleaner the cleaner
+ * @param action the action Runnable
+ */
+ WeakCleanableRef(Object obj, Cleaner cleaner, Runnable action) {
+ super(obj, cleaner);
+ this.action = action;
+ }
+
+ /**
+ * Constructor used only for root of weak cleanable list.
+ */
+ WeakCleanableRef() {
+ super();
+ this.action = null;
+ }
+
+ @Override
+ protected void performCleanup() {
+ action.run();
+ }
+
+ /**
+ * Prevent access to referent even when it is still alive.
+ *
+ * @throws UnsupportedOperationException always
+ */
+ @Override
+ public Object get() {
+ throw new UnsupportedOperationException("get");
+ }
+
+ /**
+ * Direct clearing of the referent is not supported.
+ *
+ * @throws UnsupportedOperationException always
+ */
+ @Override
+ public void clear() {
+ throw new UnsupportedOperationException("clear");
+ }
+ }
+
+ /**
+ * Perform cleaning on an unreachable SoftReference.
+ */
+ public static final class SoftCleanableRef extends SoftCleanable<Object> {
+ private final Runnable action;
+
+ /**
+ * Constructor for a soft cleanable reference.
+ * @param obj the object to monitor
+ * @param cleaner the cleaner
+ * @param action the action Runnable
+ */
+ SoftCleanableRef(Object obj, Cleaner cleaner, Runnable action) {
+ super(obj, cleaner);
+ this.action = action;
+ }
+
+ /**
+ * Constructor used only for root of soft cleanable list.
+ */
+ SoftCleanableRef() {
+ super();
+ this.action = null;
+ }
+
+ @Override
+ protected void performCleanup() {
+ action.run();
+ }
+
+ /**
+ * Prevent access to referent even when it is still alive.
+ *
+ * @throws UnsupportedOperationException always
+ */
+ @Override
+ public Object get() {
+ throw new UnsupportedOperationException("get");
+ }
+
+ /**
+ * Direct clearing of the referent is not supported.
+ *
+ * @throws UnsupportedOperationException always
+ */
+ @Override
+ public void clear() {
+ throw new UnsupportedOperationException("clear");
+ }
+
+ }
+
+ /**
+ * A ThreadFactory for InnocuousThreads.
+ * The factory is a singleton.
+ */
+ static final class InnocuousThreadFactory implements ThreadFactory {
+ final static ThreadFactory factory = new InnocuousThreadFactory();
+
+ static ThreadFactory factory() {
+ return factory;
+ }
+
+ public Thread newThread(Runnable r) {
+ return AccessController.doPrivileged((PrivilegedAction<Thread>) () -> {
+ Thread t = new InnocuousThread(r);
+ t.setPriority(Thread.MAX_PRIORITY - 2);
+ t.setName("Cleaner-" + t.getId());
+ return t;
+ });
+ }
+ }
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/java.base/share/classes/jdk/internal/ref/PhantomCleanable.java Fri Jan 15 19:18:42 2016 +0000
@@ -0,0 +1,178 @@
+/*
+ * Copyright (c) 2015, 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. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package jdk.internal.ref;
+
+import java.lang.ref.Cleaner;
+import java.lang.ref.PhantomReference;
+import java.util.Objects;
+
+/**
+ * PhantomCleanable subclasses efficiently encapsulate cleanup state and
+ * the cleaning action.
+ * Subclasses implement the abstract {@link #performCleanup()} method
+ * to provide the cleaning action.
+ * When constructed, the object reference and the {@link Cleaner.Cleanable Cleanable}
+ * are registered with the {@link Cleaner}.
+ * The Cleaner invokes {@link Cleaner.Cleanable#clean() clean} after the
+ * referent becomes phantom reachable.
+ */
+public abstract class PhantomCleanable<T> extends PhantomReference<T>
+ implements Cleaner.Cleanable {
+
+ /**
+ * Links to previous and next in a doubly-linked list.
+ */
+ PhantomCleanable<?> prev = this, next = this;
+
+ /**
+ * The list of PhantomCleanable; synchronizes insert and remove.
+ */
+ private final PhantomCleanable<?> list;
+
+ /**
+ * Constructs new {@code PhantomCleanable} with
+ * {@code non-null referent} and {@code non-null cleaner}.
+ * The {@code cleaner} is not retained; it is only used to
+ * register the newly constructed {@link Cleaner.Cleanable Cleanable}.
+ *
+ * @param referent the referent to track
+ * @param cleaner the {@code Cleaner} to register with
+ */
+ public PhantomCleanable(T referent, Cleaner cleaner) {
+ super(Objects.requireNonNull(referent), CleanerImpl.getCleanerImpl(cleaner).queue);
+ this.list = CleanerImpl.getCleanerImpl(cleaner).phantomCleanableList;
+ insert();
+
+ // TODO: Replace getClass() with ReachabilityFence when it is available
+ cleaner.getClass();
+ referent.getClass();
+ }
+
+ /**
+ * Construct a new root of the list; not inserted.
+ */
+ PhantomCleanable() {
+ super(null, null);
+ this.list = this;
+ }
+
+ /**
+ * Insert this PhantomCleanable after the list head.
+ */
+ private void insert() {
+ synchronized (list) {
+ prev = list;
+ next = list.next;
+ next.prev = this;
+ list.next = this;
+ }
+ }
+
+ /**
+ * Remove this PhantomCleanable from the list.
+ *
+ * @return true if Cleanable was removed or false if not because
+ * it had already been removed before
+ */
+ private boolean remove() {
+ synchronized (list) {
+ if (next != this) {
+ next.prev = prev;
+ prev.next = next;
+ prev = this;
+ next = this;
+ return true;
+ }
+ return false;
+ }
+ }
+
+ /**
+ * Returns true if the list's next reference refers to itself.
+ *
+ * @return true if the list is empty
+ */
+ boolean isListEmpty() {
+ synchronized (list) {
+ return list == list.next;
+ }
+ }
+
+ /**
+ * Unregister this PhantomCleanable and invoke {@link #performCleanup()},
+ * ensuring at-most-once semantics.
+ */
+ @Override
+ public final void clean() {
+ if (remove()) {
+ super.clear();
+ performCleanup();
+ }
+ }
+
+ /**
+ * Unregister this PhantomCleanable and clear the reference.
+ * Due to inherent concurrency, {@link #performCleanup()} may still be invoked.
+ */
+ @Override
+ public void clear() {
+ if (remove()) {
+ super.clear();
+ }
+ }
+
+ /**
+ * The {@code performCleanup} abstract method is overridden
+ * to implement the cleaning logic.
+ * The {@code performCleanup} method should not be called except
+ * by the {@link #clean} method which ensures at most once semantics.
+ */
+ protected abstract void performCleanup();
+
+ /**
+ * This method always throws {@link UnsupportedOperationException}.
+ * Enqueuing details of {@link Cleaner.Cleanable}
+ * are a private implementation detail.
+ *
+ * @throws UnsupportedOperationException always
+ */
+ @Override
+ public final boolean isEnqueued() {
+ throw new UnsupportedOperationException("isEnqueued");
+ }
+
+ /**
+ * This method always throws {@link UnsupportedOperationException}.
+ * Enqueuing details of {@link Cleaner.Cleanable}
+ * are a private implementation detail.
+ *
+ * @throws UnsupportedOperationException always
+ */
+ @Override
+ public final boolean enqueue() {
+ throw new UnsupportedOperationException("enqueue");
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/java.base/share/classes/jdk/internal/ref/SoftCleanable.java Fri Jan 15 19:18:42 2016 +0000
@@ -0,0 +1,178 @@
+/*
+ * Copyright (c) 2015, 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. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package jdk.internal.ref;
+
+import java.lang.ref.Cleaner;
+import java.lang.ref.SoftReference;
+import java.util.Objects;
+
+/**
+ * SoftCleanable subclasses efficiently encapsulate cleanup state and
+ * the cleaning action.
+ * Subclasses implement the abstract {@link #performCleanup()} method
+ * to provide the cleaning action.
+ * When constructed, the object reference and the {@link Cleaner.Cleanable Cleanable}
+ * are registered with the {@link Cleaner}.
+ * The Cleaner invokes {@link Cleaner.Cleanable#clean() clean} after the
+ * referent becomes softly reachable.
+ */
+public abstract class SoftCleanable<T> extends SoftReference<T>
+ implements Cleaner.Cleanable {
+
+ /**
+ * Links to previous and next in a doubly-linked list.
+ */
+ SoftCleanable<?> prev = this, next = this;
+
+ /**
+ * The list of SoftCleanable; synchronizes insert and remove.
+ */
+ private final SoftCleanable<?> list;
+
+ /**
+ * Constructs new {@code SoftCleanableReference} with
+ * {@code non-null referent} and {@code non-null cleaner}.
+ * The {@code cleaner} is not retained by this reference; it is only used
+ * to register the newly constructed {@link Cleaner.Cleanable Cleanable}.
+ *
+ * @param referent the referent to track
+ * @param cleaner the {@code Cleaner} to register with
+ */
+ public SoftCleanable(T referent, Cleaner cleaner) {
+ super(Objects.requireNonNull(referent), CleanerImpl.getCleanerImpl(cleaner).queue);
+ list = CleanerImpl.getCleanerImpl(cleaner).softCleanableList;
+ insert();
+
+ // TODO: Replace getClass() with ReachabilityFence when it is available
+ cleaner.getClass();
+ referent.getClass();
+ }
+
+ /**
+ * Construct a new root of the list; not inserted.
+ */
+ SoftCleanable() {
+ super(null, null);
+ this.list = this;
+ }
+
+ /**
+ * Insert this SoftCleanableReference after the list head.
+ */
+ private void insert() {
+ synchronized (list) {
+ prev = list;
+ next = list.next;
+ next.prev = this;
+ list.next = this;
+ }
+ }
+
+ /**
+ * Remove this SoftCleanableReference from the list.
+ *
+ * @return true if Cleanable was removed or false if not because
+ * it had already been removed before
+ */
+ private boolean remove() {
+ synchronized (list) {
+ if (next != this) {
+ next.prev = prev;
+ prev.next = next;
+ prev = this;
+ next = this;
+ return true;
+ }
+ return false;
+ }
+ }
+
+ /**
+ * Returns true if the list's next reference refers to itself.
+ *
+ * @return true if the list is empty
+ */
+ boolean isListEmpty() {
+ synchronized (list) {
+ return list == list.next;
+ }
+ }
+
+ /**
+ * Unregister this SoftCleanable reference and invoke {@link #performCleanup()},
+ * ensuring at-most-once semantics.
+ */
+ @Override
+ public final void clean() {
+ if (remove()) {
+ super.clear();
+ performCleanup();
+ }
+ }
+
+ /**
+ * Unregister this SoftCleanable and clear the reference.
+ * Due to inherent concurrency, {@link #performCleanup()} may still be invoked.
+ */
+ @Override
+ public void clear() {
+ if (remove()) {
+ super.clear();
+ }
+ }
+
+ /**
+ * The {@code performCleanup} abstract method is overridden
+ * to implement the cleaning logic.
+ * The {@code performCleanup} method should not be called except
+ * by the {@link #clean} method which ensures at most once semantics.
+ */
+ protected abstract void performCleanup();
+
+ /**
+ * This method always throws {@link UnsupportedOperationException}.
+ * Enqueuing details of {@link Cleaner.Cleanable}
+ * are a private implementation detail.
+ *
+ * @throws UnsupportedOperationException always
+ */
+ @Override
+ public final boolean isEnqueued() {
+ throw new UnsupportedOperationException("isEnqueued");
+ }
+
+ /**
+ * This method always throws {@link UnsupportedOperationException}.
+ * Enqueuing details of {@link Cleaner.Cleanable}
+ * are a private implementation detail.
+ *
+ * @throws UnsupportedOperationException always
+ */
+ @Override
+ public final boolean enqueue() {
+ throw new UnsupportedOperationException("enqueue");
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/java.base/share/classes/jdk/internal/ref/WeakCleanable.java Fri Jan 15 19:18:42 2016 +0000
@@ -0,0 +1,178 @@
+package jdk.internal.ref;
+
+/*
+ * Copyright (c) 2015, 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. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.lang.ref.Cleaner;
+import java.lang.ref.WeakReference;
+import java.util.Objects;
+
+/**
+ * WeakCleanable subclasses efficiently encapsulate cleanup state and
+ * the cleaning action.
+ * Subclasses implement the abstract {@link #performCleanup()} method
+ * to provide the cleaning action.
+ * When constructed, the object reference and the {@link Cleaner.Cleanable Cleanable}
+ * are registered with the {@link Cleaner}.
+ * The Cleaner invokes {@link Cleaner.Cleanable#clean() clean} after the
+ * referent becomes weakly reachable.
+ */
+public abstract class WeakCleanable<T> extends WeakReference<T>
+ implements Cleaner.Cleanable {
+
+ /**
+ * Links to previous and next in a doubly-linked list.
+ */
+ WeakCleanable<?> prev = this, next = this;
+
+ /**
+ * The list of WeakCleanable; synchronizes insert and remove.
+ */
+ private final WeakCleanable<?> list;
+
+ /**
+ * Constructs new {@code WeakCleanableReference} with
+ * {@code non-null referent} and {@code non-null cleaner}.
+ * The {@code cleaner} is not retained by this reference; it is only used
+ * to register the newly constructed {@link Cleaner.Cleanable Cleanable}.
+ *
+ * @param referent the referent to track
+ * @param cleaner the {@code Cleaner} to register new reference with
+ */
+ public WeakCleanable(T referent, Cleaner cleaner) {
+ super(Objects.requireNonNull(referent), CleanerImpl.getCleanerImpl(cleaner).queue);
+ list = CleanerImpl.getCleanerImpl(cleaner).weakCleanableList;
+ insert();
+
+ // TODO: Replace getClass() with ReachabilityFence when it is available
+ cleaner.getClass();
+ referent.getClass();
+ }
+
+ /**
+ * Construct a new root of the list; not inserted.
+ */
+ WeakCleanable() {
+ super(null, null);
+ this.list = this;
+ }
+
+ /**
+ * Insert this WeakCleanableReference after the list head.
+ */
+ private void insert() {
+ synchronized (list) {
+ prev = list;
+ next = list.next;
+ next.prev = this;
+ list.next = this;
+ }
+ }
+
+ /**
+ * Remove this WeakCleanableReference from the list.
+ *
+ * @return true if Cleanable was removed or false if not because
+ * it had already been removed before
+ */
+ private boolean remove() {
+ synchronized (list) {
+ if (next != this) {
+ next.prev = prev;
+ prev.next = next;
+ prev = this;
+ next = this;
+ return true;
+ }
+ return false;
+ }
+ }
+
+ /**
+ * Returns true if the list's next reference refers to itself.
+ *
+ * @return true if the list is empty
+ */
+ boolean isListEmpty() {
+ synchronized (list) {
+ return list == list.next;
+ }
+ }
+
+ /**
+ * Unregister this WeakCleanable reference and invoke {@link #performCleanup()},
+ * ensuring at-most-once semantics.
+ */
+ @Override
+ public final void clean() {
+ if (remove()) {
+ super.clear();
+ performCleanup();
+ }
+ }
+
+ /**
+ * Unregister this WeakCleanable and clear the reference.
+ * Due to inherent concurrency, {@link #performCleanup()} may still be invoked.
+ */
+ @Override
+ public void clear() {
+ if (remove()) {
+ super.clear();
+ }
+ }
+
+ /**
+ * The {@code performCleanup} abstract method is overridden
+ * to implement the cleaning logic.
+ * The {@code performCleanup} method should not be called except
+ * by the {@link #clean} method which ensures at most once semantics.
+ */
+ protected abstract void performCleanup();
+
+ /**
+ * This method always throws {@link UnsupportedOperationException}.
+ * Enqueuing details of {@link Cleaner.Cleanable}
+ * are a private implementation detail.
+ *
+ * @throws UnsupportedOperationException always
+ */
+ @Override
+ public final boolean isEnqueued() {
+ throw new UnsupportedOperationException("isEnqueued");
+ }
+
+ /**
+ * This method always throws {@link UnsupportedOperationException}.
+ * Enqueuing details of {@link Cleaner.Cleanable}
+ * are a private implementation detail.
+ *
+ * @throws UnsupportedOperationException always
+ */
+ @Override
+ public final boolean enqueue() {
+ throw new UnsupportedOperationException("enqueue");
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/java.base/share/classes/jdk/internal/vm/annotation/DontInline.java Fri Jan 15 19:18:42 2016 +0000
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package jdk.internal.vm.annotation;
+
+import java.lang.annotation.*;
+
+/**
+ * A method or constructor may be annotated as "don't inline" if the inlining of
+ * this method should not be performed by the HotSpot VM.
+ * <p>
+ * This annotation must be used sparingly. It is useful when the only
+ * reasonable alternative is to bind the name of a specific method or
+ * constructor into the HotSpot VM for special handling by the inlining policy.
+ * This annotation must not be relied on as an alternative to avoid tuning the
+ * VM's inlining policy. In a few cases, it may act as a temporary workaround
+ * until the profiling and inlining performed by the HotSpot VM is sufficiently
+ * improved.
+ *
+ * @implNote
+ * This annotation only takes effect for methods or constructors of classes
+ * loaded by the boot loader. Annotations on methods or constructors of classes
+ * loaded outside of the boot loader are ignored.
+ */
+@Target({ElementType.METHOD, ElementType.CONSTRUCTOR})
+@Retention(RetentionPolicy.RUNTIME)
+public @interface DontInline {
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/java.base/share/classes/jdk/internal/vm/annotation/ForceInline.java Fri Jan 15 19:18:42 2016 +0000
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package jdk.internal.vm.annotation;
+
+import java.lang.annotation.*;
+
+/**
+ * A method or constructor may be annotated as "force inline" if the standard
+ * inlining metrics are to be ignored when the HotSpot VM inlines the method
+ * or constructor.
+ * <p>
+ * This annotation must be used sparingly. It is useful when the only
+ * reasonable alternative is to bind the name of a specific method or
+ * constructor into the HotSpot VM for special handling by the inlining policy.
+ * This annotation must not be relied on as an alternative to avoid tuning the
+ * VM's inlining policy. In a few cases, it may act as a temporary workaround
+ * until the profiling and inlining performed by the HotSpot VM is sufficiently
+ * improved.
+ *
+ * @implNote
+ * This annotation only takes effect for methods or constructors of classes
+ * loaded by the boot loader. Annotations on methods or constructors of classes
+ * loaded outside of the boot loader are ignored.
+ */
+@Target({ElementType.METHOD, ElementType.CONSTRUCTOR})
+@Retention(RetentionPolicy.RUNTIME)
+public @interface ForceInline {
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/java.base/share/classes/jdk/internal/vm/annotation/Stable.java Fri Jan 15 19:18:42 2016 +0000
@@ -0,0 +1,90 @@
+/*
+ * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package jdk.internal.vm.annotation;
+
+import java.lang.annotation.*;
+
+/**
+ * A field may be annotated as stable if all of its component variables
+ * changes value at most once.
+ * A field's value counts as its component value.
+ * If the field is typed as an array, then all the non-null components
+ * of the array, of depth up to the rank of the field's array type,
+ * also count as component values.
+ * By extension, any variable (either array or field) which has annotated
+ * as stable is called a stable variable, and its non-null or non-zero
+ * value is called a stable value.
+ * <p>
+ * Since all fields begin with a default value of null for references
+ * (resp., zero for primitives), it follows that this annotation indicates
+ * that the first non-null (resp., non-zero) value stored in the field
+ * will never be changed.
+ * <p>
+ * If the field is not of an array type, there are no array elements,
+ * then the value indicated as stable is simply the value of the field.
+ * If the dynamic type of the field value is an array but the static type
+ * is not, the components of the array are <em>not</em> regarded as stable.
+ * <p>
+ * If the field is an array type, then both the field value and
+ * all the components of the field value (if the field value is non-null)
+ * are indicated to be stable.
+ * If the field type is an array type with rank {@code N > 1},
+ * then each component of the field value (if the field value is non-null),
+ * is regarded as a stable array of rank {@code N-1}.
+ * <p>
+ * Fields which are declared {@code final} may also be annotated as stable.
+ * Since final fields already behave as stable values, such an annotation
+ * conveys no additional information regarding change of the field's value, but
+ * still conveys information regarding change of additional components values if
+ * the type of the field is an array type (as described above).
+ * <p>
+ * The HotSpot VM relies on this annotation to promote a non-null (resp.,
+ * non-zero) component value to a constant, thereby enabling superior
+ * optimizations of code depending on such a value (such as constant folding).
+ * More specifically, the HotSpot VM will process non-null stable fields (final
+ * or otherwise) in a similar manner to static final fields with respect to
+ * promoting the field's value to a constant. Thus, placing aside the
+ * differences for null/non-null values and arrays, a final stable field is
+ * treated as if it is really final from both the Java language and the HotSpot
+ * VM.
+ * <p>
+ * It is (currently) undefined what happens if a field annotated as stable
+ * is given a third value (by explicitly updating a stable field, a component of
+ * a stable array, or a final stable field via reflection or other means).
+ * Since the HotSpot VM promotes a non-null component value to constant, it may
+ * be that the Java memory model would appear to be broken, if such a constant
+ * (the second value of the field) is used as the value of the field even after
+ * the field value has changed (to a third value).
+ *
+ * @implNote
+ * This annotation only takes effect for fields of classes loaded by the boot
+ * loader. Annoations on fields of classes loaded outside of the boot loader
+ * are ignored.
+ */
+@Target(ElementType.FIELD)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Stable {
+}
--- a/jdk/src/java.base/share/classes/jdk/net/ExtendedSocketOptions.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/jdk/net/ExtendedSocketOptions.java Fri Jan 15 19:18:42 2016 +0000
@@ -34,7 +34,6 @@
*
* @since 1.8
*/
-@jdk.Exported
public final class ExtendedSocketOptions {
private static class ExtSocketOption<T> implements SocketOption<T> {
--- a/jdk/src/java.base/share/classes/jdk/net/NetworkPermission.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/jdk/net/NetworkPermission.java Fri Jan 15 19:18:42 2016 +0000
@@ -61,7 +61,6 @@
* @since 1.8
*/
-@jdk.Exported
public final class NetworkPermission extends BasicPermission {
private static final long serialVersionUID = -2012939586906722291L;
--- a/jdk/src/java.base/share/classes/jdk/net/SocketFlow.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/jdk/net/SocketFlow.java Fri Jan 15 19:18:42 2016 +0000
@@ -45,7 +45,6 @@
*
* @since 1.8
*/
-@jdk.Exported
public class SocketFlow {
private static final int UNSET = -1;
@@ -68,7 +67,6 @@
*
* @since 1.8
*/
- @jdk.Exported
public enum Status {
/**
* Set or get socket option has not been called yet. Status
--- a/jdk/src/java.base/share/classes/jdk/net/Sockets.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/jdk/net/Sockets.java Fri Jan 15 19:18:42 2016 +0000
@@ -55,7 +55,6 @@
*
* @see java.nio.channels.NetworkChannel
*/
-@jdk.Exported
public class Sockets {
private static final HashMap<Class<?>,Set<SocketOption<?>>>
--- a/jdk/src/java.base/share/classes/jdk/net/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/jdk/net/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -30,5 +30,4 @@
* @since 1.8
*/
-@jdk.Exported
package jdk.net;
--- a/jdk/src/java.base/share/classes/sun/launcher/LauncherHelper.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/sun/launcher/LauncherHelper.java Fri Jan 15 19:18:42 2016 +0000
@@ -66,6 +66,7 @@
import java.util.jar.Attributes;
import java.util.jar.JarFile;
import java.util.jar.Manifest;
+import jdk.internal.misc.VM;
public enum LauncherHelper {
INSTANCE;
@@ -86,9 +87,9 @@
private static final String PROP_SETTINGS = "Property settings:";
private static final String LOCALE_SETTINGS = "Locale settings:";
- // sync with java.c and sun.misc.VM
+ // sync with java.c and jdk.internal.misc.VM
private static final String diagprop = "sun.java.launcher.diag";
- static final boolean trace = sun.misc.VM.getSavedProperty(diagprop) != null;
+ static final boolean trace = VM.getSavedProperty(diagprop) != null;
private static final String defaultBundleName =
"sun.launcher.resources.launcher";
--- a/jdk/src/java.base/share/classes/sun/misc/MessageUtils.java Fri Jan 15 08:53:23 2016 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,127 +0,0 @@
-/*
- * Copyright (c) 1995, 2000, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.misc;
-
-/**
- * MessageUtils: miscellaneous utilities for handling error and status
- * properties and messages.
- *
- * @author Herb Jellinek
- */
-
-public class MessageUtils {
- // can instantiate it for to allow less verbose use - via instance
- // instead of classname
-
- public MessageUtils() { }
-
- public static String subst(String patt, String arg) {
- String args[] = { arg };
- return subst(patt, args);
- }
-
- public static String subst(String patt, String arg1, String arg2) {
- String args[] = { arg1, arg2 };
- return subst(patt, args);
- }
-
- public static String subst(String patt, String arg1, String arg2,
- String arg3) {
- String args[] = { arg1, arg2, arg3 };
- return subst(patt, args);
- }
-
- public static String subst(String patt, String args[]) {
- StringBuilder result = new StringBuilder();
- int len = patt.length();
- for (int i = 0; i >= 0 && i < len; i++) {
- char ch = patt.charAt(i);
- if (ch == '%') {
- if (i != len) {
- int index = Character.digit(patt.charAt(i + 1), 10);
- if (index == -1) {
- result.append(patt.charAt(i + 1));
- i++;
- } else if (index < args.length) {
- result.append(args[index]);
- i++;
- }
- }
- } else {
- result.append(ch);
- }
- }
- return result.toString();
- }
-
- public static String substProp(String propName, String arg) {
- return subst(System.getProperty(propName), arg);
- }
-
- public static String substProp(String propName, String arg1, String arg2) {
- return subst(System.getProperty(propName), arg1, arg2);
- }
-
- public static String substProp(String propName, String arg1, String arg2,
- String arg3) {
- return subst(System.getProperty(propName), arg1, arg2, arg3);
- }
-
- /**
- * Print a message directly to stderr, bypassing all the
- * character conversion methods.
- * @param msg message to print
- */
- public static native void toStderr(String msg);
-
- /**
- * Print a message directly to stdout, bypassing all the
- * character conversion methods.
- * @param msg message to print
- */
- public static native void toStdout(String msg);
-
-
- // Short forms of the above
-
- public static void err(String s) {
- toStderr(s + "\n");
- }
-
- public static void out(String s) {
- toStdout(s + "\n");
- }
-
- // Print a stack trace to stderr
- //
- public static void where() {
- Throwable t = new Throwable();
- StackTraceElement[] es = t.getStackTrace();
- for (int i = 1; i < es.length; i++)
- toStderr("\t" + es[i].toString() + "\n");
- }
-
-}
--- a/jdk/src/java.base/share/classes/sun/misc/Unsafe.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/sun/misc/Unsafe.java Fri Jan 15 19:18:42 2016 +0000
@@ -25,13 +25,13 @@
package sun.misc;
-import java.lang.reflect.Field;
-import java.security.ProtectionDomain;
-
+import jdk.internal.HotSpotIntrinsicCandidate;
+import jdk.internal.misc.VM;
import sun.reflect.CallerSensitive;
import sun.reflect.Reflection;
-import jdk.internal.HotSpotIntrinsicCandidate;
+import java.lang.reflect.Field;
+import java.security.ProtectionDomain;
/**
@@ -1035,9 +1035,4 @@
private static void throwIllegalAccessError() {
throw new IllegalAccessError();
}
-
- // JVM interface methods
- private native boolean unalignedAccess0();
- private native boolean isBigEndian0();
-
}
--- a/jdk/src/java.base/share/classes/sun/misc/VM.java Fri Jan 15 08:53:23 2016 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,433 +0,0 @@
-/*
- * Copyright (c) 1996, 2015, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.misc;
-
-import static java.lang.Thread.State.*;
-import java.util.Properties;
-
-public class VM {
-
- /* The following methods used to be native methods that instruct
- * the VM to selectively suspend certain threads in low-memory
- * situations. They are inherently dangerous and not implementable
- * on native threads. We removed them in JDK 1.2. The skeletons
- * remain so that existing applications that use these methods
- * will still work.
- */
- private static boolean suspended = false;
-
- /** @deprecated */
- @Deprecated
- public static boolean threadsSuspended() {
- return suspended;
- }
-
- @SuppressWarnings("deprecation")
- public static boolean allowThreadSuspension(ThreadGroup g, boolean b) {
- return g.allowThreadSuspension(b);
- }
-
- /** @deprecated */
- @Deprecated
- public static boolean suspendThreads() {
- suspended = true;
- return true;
- }
-
- // Causes any suspended threadgroups to be resumed.
- /** @deprecated */
- @Deprecated
- public static void unsuspendThreads() {
- suspended = false;
- }
-
- // Causes threadgroups no longer marked suspendable to be resumed.
- /** @deprecated */
- @Deprecated
- public static void unsuspendSomeThreads() {
- }
-
- /* Deprecated fields and methods -- Memory advice not supported in 1.2 */
-
- /** @deprecated */
- @Deprecated
- public static final int STATE_GREEN = 1;
-
- /** @deprecated */
- @Deprecated
- public static final int STATE_YELLOW = 2;
-
- /** @deprecated */
- @Deprecated
- public static final int STATE_RED = 3;
-
- /** @deprecated */
- @Deprecated
- public static final int getState() {
- return STATE_GREEN;
- }
-
- /** @deprecated */
- @Deprecated
- public static void registerVMNotification(VMNotification n) { }
-
- /** @deprecated */
- @Deprecated
- public static void asChange(int as_old, int as_new) { }
-
- /** @deprecated */
- @Deprecated
- public static void asChange_otherthread(int as_old, int as_new) { }
-
- /*
- * Not supported in 1.2 because these will have to be exported as
- * JVM functions, and we are not sure we want do that. Leaving
- * here so it can be easily resurrected -- just remove the //
- * comments.
- */
-
- /**
- * Resume Java profiling. All profiling data is added to any
- * earlier profiling, unless <code>resetJavaProfiler</code> is
- * called in between. If profiling was not started from the
- * command line, <code>resumeJavaProfiler</code> will start it.
- * <p>
- *
- * NOTE: Profiling must be enabled from the command line for a
- * java.prof report to be automatically generated on exit; if not,
- * writeJavaProfilerReport must be invoked to write a report.
- *
- * @see resetJavaProfiler
- * @see writeJavaProfilerReport
- */
-
- // public native static void resumeJavaProfiler();
-
- /**
- * Suspend Java profiling.
- */
- // public native static void suspendJavaProfiler();
-
- /**
- * Initialize Java profiling. Any accumulated profiling
- * information is discarded.
- */
- // public native static void resetJavaProfiler();
-
- /**
- * Write the current profiling contents to the file "java.prof".
- * If the file already exists, it will be overwritten.
- */
- // public native static void writeJavaProfilerReport();
-
-
- private static volatile boolean booted = false;
- private static final Object lock = new Object();
-
- // Invoked by System.initializeSystemClass just before returning.
- // Subsystems that are invoked during initialization can check this
- // property in order to avoid doing things that should wait until the
- // application class loader has been set up.
- //
- public static void booted() {
- synchronized (lock) {
- booted = true;
- lock.notifyAll();
- }
- }
-
- public static boolean isBooted() {
- return booted;
- }
-
- // Waits until VM completes initialization
- //
- // This method is invoked by the Finalizer thread
- public static void awaitBooted() throws InterruptedException {
- synchronized (lock) {
- while (!booted) {
- lock.wait();
- }
- }
- }
-
- // A user-settable upper limit on the maximum amount of allocatable direct
- // buffer memory. This value may be changed during VM initialization if
- // "java" is launched with "-XX:MaxDirectMemorySize=<size>".
- //
- // The initial value of this field is arbitrary; during JRE initialization
- // it will be reset to the value specified on the command line, if any,
- // otherwise to Runtime.getRuntime().maxMemory().
- //
- private static long directMemory = 64 * 1024 * 1024;
-
- // Returns the maximum amount of allocatable direct buffer memory.
- // The directMemory variable is initialized during system initialization
- // in the saveAndRemoveProperties method.
- //
- public static long maxDirectMemory() {
- return directMemory;
- }
-
- // User-controllable flag that determines if direct buffers should be page
- // aligned. The "-XX:+PageAlignDirectMemory" option can be used to force
- // buffers, allocated by ByteBuffer.allocateDirect, to be page aligned.
- private static boolean pageAlignDirectMemory;
-
- // Returns {@code true} if the direct buffers should be page aligned. This
- // variable is initialized by saveAndRemoveProperties.
- public static boolean isDirectMemoryPageAligned() {
- return pageAlignDirectMemory;
- }
-
- /**
- * Returns true if the given class loader is in the system domain
- * in which all permissions are granted.
- */
- public static boolean isSystemDomainLoader(ClassLoader loader) {
- return loader == null;
- }
-
- /**
- * Returns the system property of the specified key saved at
- * system initialization time. This method should only be used
- * for the system properties that are not changed during runtime.
- * It accesses a private copy of the system properties so
- * that user's locking of the system properties object will not
- * cause the library to deadlock.
- *
- * Note that the saved system properties do not include
- * the ones set by sun.misc.Version.init().
- *
- */
- public static String getSavedProperty(String key) {
- if (savedProps.isEmpty())
- throw new IllegalStateException("Should be non-empty if initialized");
-
- return savedProps.getProperty(key);
- }
-
- // TODO: the Property Management needs to be refactored and
- // the appropriate prop keys need to be accessible to the
- // calling classes to avoid duplication of keys.
- private static final Properties savedProps = new Properties();
-
- // Save a private copy of the system properties and remove
- // the system properties that are not intended for public access.
- //
- // This method can only be invoked during system initialization.
- public static void saveAndRemoveProperties(Properties props) {
- if (booted)
- throw new IllegalStateException("System initialization has completed");
-
- savedProps.putAll(props);
-
- // Set the maximum amount of direct memory. This value is controlled
- // by the vm option -XX:MaxDirectMemorySize=<size>.
- // The maximum amount of allocatable direct buffer memory (in bytes)
- // from the system property sun.nio.MaxDirectMemorySize set by the VM.
- // The system property will be removed.
- String s = (String)props.remove("sun.nio.MaxDirectMemorySize");
- if (s != null) {
- if (s.equals("-1")) {
- // -XX:MaxDirectMemorySize not given, take default
- directMemory = Runtime.getRuntime().maxMemory();
- } else {
- long l = Long.parseLong(s);
- if (l > -1)
- directMemory = l;
- }
- }
-
- // Check if direct buffers should be page aligned
- s = (String)props.remove("sun.nio.PageAlignDirectMemory");
- if ("true".equals(s))
- pageAlignDirectMemory = true;
-
- // Remove other private system properties
- // used by java.lang.Integer.IntegerCache
- props.remove("java.lang.Integer.IntegerCache.high");
-
- // used by sun.launcher.LauncherHelper
- props.remove("sun.java.launcher.diag");
- }
-
- // Initialize any miscellenous operating system settings that need to be
- // set for the class libraries.
- //
- public static void initializeOSEnvironment() {
- if (!booted) {
- OSEnvironment.initialize();
- }
- }
-
- /* Current count of objects pending for finalization */
- private static volatile int finalRefCount;
-
- /* Peak count of objects pending for finalization */
- private static volatile int peakFinalRefCount;
-
- /*
- * Gets the number of objects pending for finalization.
- *
- * @return the number of objects pending for finalization.
- */
- public static int getFinalRefCount() {
- return finalRefCount;
- }
-
- /*
- * Gets the peak number of objects pending for finalization.
- *
- * @return the peak number of objects pending for finalization.
- */
- public static int getPeakFinalRefCount() {
- return peakFinalRefCount;
- }
-
- /*
- * Add {@code n} to the objects pending for finalization count.
- *
- * @param n an integer value to be added to the objects pending
- * for finalization count
- */
- public static void addFinalRefCount(int n) {
- // The caller must hold lock to synchronize the update.
-
- finalRefCount += n;
- if (finalRefCount > peakFinalRefCount) {
- peakFinalRefCount = finalRefCount;
- }
- }
-
- /**
- * Returns Thread.State for the given threadStatus
- */
- public static Thread.State toThreadState(int threadStatus) {
- if ((threadStatus & JVMTI_THREAD_STATE_RUNNABLE) != 0) {
- return RUNNABLE;
- } else if ((threadStatus & JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER) != 0) {
- return BLOCKED;
- } else if ((threadStatus & JVMTI_THREAD_STATE_WAITING_INDEFINITELY) != 0) {
- return WAITING;
- } else if ((threadStatus & JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT) != 0) {
- return TIMED_WAITING;
- } else if ((threadStatus & JVMTI_THREAD_STATE_TERMINATED) != 0) {
- return TERMINATED;
- } else if ((threadStatus & JVMTI_THREAD_STATE_ALIVE) == 0) {
- return NEW;
- } else {
- return RUNNABLE;
- }
- }
-
- /* The threadStatus field is set by the VM at state transition
- * in the hotspot implementation. Its value is set according to
- * the JVM TI specification GetThreadState function.
- */
- private static final int JVMTI_THREAD_STATE_ALIVE = 0x0001;
- private static final int JVMTI_THREAD_STATE_TERMINATED = 0x0002;
- private static final int JVMTI_THREAD_STATE_RUNNABLE = 0x0004;
- private static final int JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER = 0x0400;
- private static final int JVMTI_THREAD_STATE_WAITING_INDEFINITELY = 0x0010;
- private static final int JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT = 0x0020;
-
- /*
- * Returns the first non-null class loader up the execution stack,
- * or null if only code from the null class loader is on the stack.
- */
- public static native ClassLoader latestUserDefinedLoader();
-
- /**
- * Returns {@code true} if we are in a set UID program.
- */
- public static boolean isSetUID() {
- long uid = getuid();
- long euid = geteuid();
- long gid = getgid();
- long egid = getegid();
- return uid != euid || gid != egid;
- }
-
- /**
- * Returns the real user ID of the calling process,
- * or -1 if the value is not available.
- */
- public static native long getuid();
-
- /**
- * Returns the effective user ID of the calling process,
- * or -1 if the value is not available.
- */
- public static native long geteuid();
-
- /**
- * Returns the real group ID of the calling process,
- * or -1 if the value is not available.
- */
- public static native long getgid();
-
- /**
- * Returns the effective group ID of the calling process,
- * or -1 if the value is not available.
- */
- public static native long getegid();
-
- /**
- * Get a nanosecond time stamp adjustment in the form of a single long.
- *
- * This value can be used to create an instant using
- * {@link java.time.Instant#ofEpochSecond(long, long)
- * java.time.Instant.ofEpochSecond(offsetInSeconds,
- * getNanoTimeAdjustment(offsetInSeconds))}.
- * <p>
- * The value returned has the best resolution available to the JVM on
- * the current system.
- * This is usually down to microseconds - or tenth of microseconds -
- * depending on the OS/Hardware and the JVM implementation.
- *
- * @param offsetInSeconds The offset in seconds from which the nanosecond
- * time stamp should be computed.
- *
- * @apiNote The offset should be recent enough - so that
- * {@code offsetInSeconds} is within {@code +/- 2^32} seconds of the
- * current UTC time. If the offset is too far off, {@code -1} will be
- * returned. As such, {@code -1} must not be considered as a valid
- * nano time adjustment, but as an exception value indicating
- * that an offset closer to the current time should be used.
- *
- * @return A nanosecond time stamp adjustment in the form of a single long.
- * If the offset is too far off the current time, this method returns -1.
- * In that case, the caller should call this method again, passing a
- * more accurate offset.
- */
- public static native long getNanoTimeAdjustment(long offsetInSeconds);
-
- static {
- initialize();
- }
- private static native void initialize();
-}
--- a/jdk/src/java.base/share/classes/sun/misc/VMNotification.java Fri Jan 15 08:53:23 2016 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 1996, 2004, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.misc;
-
-/** @deprecated */
-@Deprecated
-public interface VMNotification {
-
- // when the vm switches allocation states, we get notified
- // (possible semantics: if the state changes while in this
- // notification, don't recursively notify).
- // oldState and newState may be the same if we are just releasing
- // suspended threads.
- void newAllocState(int oldState, int newState,
- boolean threadsSuspended);
-}
--- a/jdk/src/java.base/share/classes/sun/net/www/http/HttpClient.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/sun/net/www/http/HttpClient.java Fri Jan 15 19:18:42 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1994, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1994, 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
@@ -967,12 +967,6 @@
return "";
}
- @Override
- protected void finalize() throws Throwable {
- // This should do nothing. The stream finalizer will
- // close the fd.
- }
-
public void setDoNotRetry(boolean value) {
// failedOnce is used to determine if a request should be retried.
failedOnce = value;
--- a/jdk/src/java.base/share/classes/sun/net/www/protocol/jar/URLJarFile.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/sun/net/www/protocol/jar/URLJarFile.java Fri Jan 15 19:18:42 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -108,13 +108,6 @@
return false;
}
- /*
- * close the jar file.
- */
- protected void finalize() throws IOException {
- close();
- }
-
/**
* Returns the <code>ZipEntry</code> for the given entry name or
* <code>null</code> if not found.
--- a/jdk/src/java.base/share/classes/sun/nio/ch/Util.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/sun/nio/ch/Util.java Fri Jan 15 19:18:42 2016 +0000
@@ -389,7 +389,7 @@
static boolean atBugLevel(String bl) { // package-private
if (bugLevel == null) {
- if (!sun.misc.VM.isBooted())
+ if (!jdk.internal.misc.VM.isBooted())
return false;
String value = AccessController.doPrivileged(
new GetPropertyAction("sun.nio.ch.bugLevel"));
--- a/jdk/src/java.base/share/classes/sun/nio/cs/StandardCharsets.java.template Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/sun/nio/cs/StandardCharsets.java.template Fri Jan 15 19:18:42 2016 +0000
@@ -156,12 +156,12 @@
private boolean initialized = false;
- /* provider the sun.nio.cs.map property fir sjis/ms932 mapping hack
+ /* provider the sun.nio.cs.map property fir sjis/ms932 mapping hack
*/
private void init() {
if (initialized)
return;
- if (!sun.misc.VM.isBooted())
+ if (!jdk.internal.misc.VM.isBooted())
return;
initialized = true;
--- a/jdk/src/java.base/share/classes/sun/reflect/Reflection.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/sun/reflect/Reflection.java Fri Jan 15 19:18:42 2016 +0000
@@ -29,6 +29,7 @@
import java.util.HashMap;
import java.util.Map;
import jdk.internal.HotSpotIntrinsicCandidate;
+import jdk.internal.misc.VM;
/** Common utility routines used by both java.lang and
java.lang.reflect */
@@ -335,7 +336,7 @@
*/
public static boolean isCallerSensitive(Method m) {
final ClassLoader loader = m.getDeclaringClass().getClassLoader();
- if (sun.misc.VM.isSystemDomainLoader(loader) || isExtClassLoader(loader)) {
+ if (VM.isSystemDomainLoader(loader) || isExtClassLoader(loader)) {
return m.isAnnotationPresent(CallerSensitive.class);
}
return false;
--- a/jdk/src/java.base/share/classes/sun/security/ssl/SignatureAndHashAlgorithm.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/classes/sun/security/ssl/SignatureAndHashAlgorithm.java Fri Jan 15 19:18:42 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 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
@@ -153,13 +153,11 @@
getSupportedAlgorithms(AlgorithmConstraints constraints) {
Collection<SignatureAndHashAlgorithm> supported = new ArrayList<>();
- synchronized (priorityMap) {
- for (SignatureAndHashAlgorithm sigAlg : priorityMap.values()) {
- if (sigAlg.priority <= SUPPORTED_ALG_PRIORITY_MAX_NUM &&
- constraints.permits(SIGNATURE_PRIMITIVE_SET,
- sigAlg.algorithm, null)) {
- supported.add(sigAlg);
- }
+ for (SignatureAndHashAlgorithm sigAlg : priorityMap.values()) {
+ if (sigAlg.priority <= SUPPORTED_ALG_PRIORITY_MAX_NUM &&
+ constraints.permits(SIGNATURE_PRIMITIVE_SET,
+ sigAlg.algorithm, null)) {
+ supported.add(sigAlg);
}
}
@@ -417,14 +415,12 @@
supports(HashAlgorithm.SHA1, SignatureAlgorithm.ECDSA,
"SHA1withECDSA", --p);
- if (Security.getProvider("SunMSCAPI") == null) {
supports(HashAlgorithm.SHA224, SignatureAlgorithm.DSA,
"SHA224withDSA", --p);
supports(HashAlgorithm.SHA224, SignatureAlgorithm.RSA,
"SHA224withRSA", --p);
supports(HashAlgorithm.SHA224, SignatureAlgorithm.ECDSA,
"SHA224withECDSA", --p);
- }
supports(HashAlgorithm.SHA256, SignatureAlgorithm.DSA,
"SHA256withDSA", --p);
--- a/jdk/src/java.base/share/native/libjava/MessageUtils.c Fri Jan 15 08:53:23 2016 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-/*
- * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-#include <stdlib.h>
-#include <jni.h>
-#include <jni_util.h>
-#include <jlong.h>
-#include <stdio.h>
-#include <jvm.h>
-
-#include "sun_misc_MessageUtils.h"
-
-static void
-printToFile(JNIEnv *env, jstring s, FILE *file)
-{
- char *sConverted;
- int length = 0;
- int i;
- const jchar *sAsArray;
-
- if (s == NULL) {
- s = (*env)->NewStringUTF(env, "null");
- if (s == NULL) return;
- }
-
- sAsArray = (*env)->GetStringChars(env, s, NULL);
- if (!sAsArray)
- return;
- length = (*env)->GetStringLength(env, s);
- if (length == 0) {
- (*env)->ReleaseStringChars(env, s, sAsArray);
- return;
- }
- sConverted = (char *) malloc(length + 1);
- if (!sConverted) {
- (*env)->ReleaseStringChars(env, s, sAsArray);
- JNU_ThrowOutOfMemoryError(env, NULL);
- return;
- }
-
- for(i = 0; i < length; i++) {
- sConverted[i] = (0x7f & sAsArray[i]);
- }
- sConverted[length] = '\0';
- jio_fprintf(file, "%s", sConverted);
- (*env)->ReleaseStringChars(env, s, sAsArray);
- free(sConverted);
-}
-
-JNIEXPORT void JNICALL
-Java_sun_misc_MessageUtils_toStderr(JNIEnv *env, jclass cls, jstring s)
-{
- printToFile(env, s, stderr);
-}
-
-JNIEXPORT void JNICALL
-Java_sun_misc_MessageUtils_toStdout(JNIEnv *env, jclass cls, jstring s)
-{
- printToFile(env, s, stdout);
-}
--- a/jdk/src/java.base/share/native/libjava/RandomAccessFile.c Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/native/libjava/RandomAccessFile.c Fri Jan 15 19:18:42 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -103,23 +103,19 @@
JNIEXPORT jlong JNICALL
Java_java_io_RandomAccessFile_length(JNIEnv *env, jobject this) {
+
FD fd;
- jlong cur = jlong_zero;
- jlong end = jlong_zero;
+ jlong length = jlong_zero;
fd = GET_FD(this, raf_fd);
if (fd == -1) {
JNU_ThrowIOException(env, "Stream Closed");
return -1;
}
- if ((cur = IO_Lseek(fd, 0L, SEEK_CUR)) == -1) {
- JNU_ThrowIOExceptionWithLastError(env, "Seek failed");
- } else if ((end = IO_Lseek(fd, 0L, SEEK_END)) == -1) {
- JNU_ThrowIOExceptionWithLastError(env, "Seek failed");
- } else if (IO_Lseek(fd, cur, SEEK_SET) == -1) {
- JNU_ThrowIOExceptionWithLastError(env, "Seek failed");
+ if ((length = IO_GetLength(fd)) == -1) {
+ JNU_ThrowIOExceptionWithLastError(env, "GetLength failed");
}
- return end;
+ return length;
}
JNIEXPORT void JNICALL
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/java.base/share/native/libjava/StringCoding.c Fri Jan 15 19:18:42 2016 +0000
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+#include <stdlib.h>
+#include <jni.h>
+#include <jni_util.h>
+#include <stdio.h>
+#include <jvm.h>
+
+#include "java_lang_StringCoding.h"
+
+static void
+printToFile(JNIEnv *env, jstring s, FILE *file)
+{
+ char *sConverted;
+ int length = 0;
+ int i;
+ const jchar *sAsArray;
+
+ if (s == NULL) {
+ JNU_ThrowNullPointerException(env, NULL);
+ return;
+ }
+
+ sAsArray = (*env)->GetStringChars(env, s, NULL);
+ if (!sAsArray)
+ return;
+ length = (*env)->GetStringLength(env, s);
+ if (length == 0) {
+ (*env)->ReleaseStringChars(env, s, sAsArray);
+ return;
+ }
+ sConverted = (char *) malloc(length + 1);
+ if (!sConverted) {
+ (*env)->ReleaseStringChars(env, s, sAsArray);
+ JNU_ThrowOutOfMemoryError(env, NULL);
+ return;
+ }
+
+ for(i = 0; i < length; i++) {
+ sConverted[i] = (0x7f & sAsArray[i]);
+ }
+ sConverted[length] = '\0';
+ jio_fprintf(file, "%s", sConverted);
+ (*env)->ReleaseStringChars(env, s, sAsArray);
+ free(sConverted);
+}
+
+JNIEXPORT void JNICALL
+Java_java_lang_StringCoding_err(JNIEnv *env, jclass cls, jstring s)
+{
+ printToFile(env, s, stderr);
+}
--- a/jdk/src/java.base/share/native/libjava/VM.c Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/share/native/libjava/VM.c Fri Jan 15 19:18:42 2016 +0000
@@ -28,7 +28,7 @@
#include "jvm.h"
#include "jdk_util.h"
-#include "sun_misc_VM.h"
+#include "jdk_internal_misc_VM.h"
/* Only register the performance-critical methods */
static JNINativeMethod methods[] = {
@@ -36,12 +36,12 @@
};
JNIEXPORT jobject JNICALL
-Java_sun_misc_VM_latestUserDefinedLoader(JNIEnv *env, jclass cls) {
+Java_jdk_internal_misc_VM_latestUserDefinedLoader(JNIEnv *env, jclass cls) {
return JVM_LatestUserDefinedLoader(env);
}
JNIEXPORT void JNICALL
-Java_sun_misc_VM_initialize(JNIEnv *env, jclass cls) {
+Java_jdk_internal_misc_VM_initialize(JNIEnv *env, jclass cls) {
if (!JDK_InitJvmHandle()) {
JNU_ThrowInternalError(env, "Handle for JVM not found for symbol lookup");
return;
@@ -50,8 +50,8 @@
// Registers implementations of native methods described in methods[]
// above.
// In particular, registers JVM_GetNanoTimeAdjustment as the implementation
- // of the native sun.misc.VM.getNanoTimeAdjustment - avoiding the cost of
- // introducing a Java_sun_misc_VM_getNanoTimeAdjustment wrapper
+ // of the native VM.getNanoTimeAdjustment - avoiding the cost of
+ // introducing a Java_jdk_internal_misc_VM_getNanoTimeAdjustment wrapper
(*env)->RegisterNatives(env, cls,
methods, sizeof(methods)/sizeof(methods[0]));
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/java.base/unix/classes/jdk/internal/misc/OSEnvironment.java Fri Jan 15 19:18:42 2016 +0000
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package jdk.internal.misc;
+
+public class OSEnvironment {
+
+ /*
+ * Initialize any miscellaneous operating system settings that need to be set
+ * for the class libraries.
+ */
+ public static void initialize() {
+ // no-op on Solaris and Linux
+ }
+
+}
--- a/jdk/src/java.base/unix/classes/sun/misc/OSEnvironment.java Fri Jan 15 08:53:23 2016 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.misc;
-
-public class OSEnvironment {
-
- /*
- * Initialize any miscellenous operating system settings that need to be set
- * for the class libraries.
- */
- public static void initialize() {
- // no-op on Solaris and Linux
- }
-
-}
--- a/jdk/src/java.base/unix/native/libjava/VM_md.c Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/unix/native/libjava/VM_md.c Fri Jan 15 19:18:42 2016 +0000
@@ -28,25 +28,25 @@
JNIEXPORT jlong JNICALL
-Java_sun_misc_VM_getuid(JNIEnv *env, jclass thisclass) {
+Java_jdk_internal_misc_VM_getuid(JNIEnv *env, jclass thisclass) {
return getuid();
}
JNIEXPORT jlong JNICALL
-Java_sun_misc_VM_geteuid(JNIEnv *env, jclass thisclass) {
+Java_jdk_internal_misc_VM_geteuid(JNIEnv *env, jclass thisclass) {
return geteuid();
}
JNIEXPORT jlong JNICALL
-Java_sun_misc_VM_getgid(JNIEnv *env, jclass thisclass) {
+Java_jdk_internal_misc_VM_getgid(JNIEnv *env, jclass thisclass) {
return getgid();
}
JNIEXPORT jlong JNICALL
-Java_sun_misc_VM_getegid(JNIEnv *env, jclass thisclass) {
+Java_jdk_internal_misc_VM_getegid(JNIEnv *env, jclass thisclass) {
return getegid();
}
--- a/jdk/src/java.base/unix/native/libjava/io_util_md.c Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/unix/native/libjava/io_util_md.c Fri Jan 15 19:18:42 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -22,7 +22,6 @@
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
-
#include "jni.h"
#include "jni_util.h"
#include "jvm.h"
@@ -219,3 +218,14 @@
RESTARTABLE(ftruncate64(fd, length), result);
return result;
}
+
+jlong
+handleGetLength(FD fd)
+{
+ struct stat64 sb;
+ if (fstat64(fd, &sb) == 0) {
+ return sb.st_size;
+ } else {
+ return -1;
+ }
+}
--- a/jdk/src/java.base/unix/native/libjava/io_util_md.h Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/unix/native/libjava/io_util_md.h Fri Jan 15 19:18:42 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -39,7 +39,7 @@
ssize_t handleRead(FD fd, void *buf, jint len);
jint handleAvailable(FD fd, jlong *pbytes);
jint handleSetLength(FD fd, jlong length);
-
+jlong handleGetLength(FD fd);
FD handleOpen(const char *path, int oflag, int mode);
/*
@@ -72,6 +72,7 @@
#define IO_Append handleWrite
#define IO_Available handleAvailable
#define IO_SetLength handleSetLength
+#define IO_GetLength handleGetLength
#ifdef _ALLBSD_SOURCE
#define open64 open
--- a/jdk/src/java.base/unix/native/libnio/ch/NativeThread.c Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/unix/native/libnio/ch/NativeThread.c Fri Jan 15 19:18:42 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -93,6 +93,10 @@
#else
ret = pthread_kill((pthread_t)thread, INTERRUPT_SIGNAL);
#endif
+#ifdef MACOSX
+ if (ret != 0 && ret != ESRCH)
+#else
if (ret != 0)
+#endif
JNU_ThrowIOExceptionWithLastError(env, "Thread signal failed");
}
--- a/jdk/src/java.base/windows/classes/java/lang/ProcessImpl.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/windows/classes/java/lang/ProcessImpl.java Fri Jan 15 19:18:42 2016 +0000
@@ -42,8 +42,10 @@
import java.util.concurrent.TimeUnit;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+
import jdk.internal.misc.JavaIOFileDescriptorAccess;
import jdk.internal.misc.SharedSecrets;
+import jdk.internal.ref.CleanerFactory;
/* This class is for the exclusive use of ProcessBuilder.start() to
* create new processes.
@@ -417,6 +419,10 @@
handle = create(cmdstr, envblock, path,
stdHandles, redirectErrorStream);
+ // Register a cleaning function to close the handle
+ final long local_handle = handle; // local to prevent capture of this
+ CleanerFactory.cleaner().register(this, () -> closeHandle(local_handle));
+
processHandle = ProcessHandleImpl.getInternal(getProcessId0(handle));
java.security.AccessController.doPrivileged(
@@ -463,10 +469,6 @@
return stderr_stream;
}
- protected void finalize() {
- closeHandle(handle);
- }
-
private static final int STILL_ACTIVE = getStillActive();
private static native int getStillActive();
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/java.base/windows/classes/jdk/internal/misc/OSEnvironment.java Fri Jan 15 19:18:42 2016 +0000
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package jdk.internal.misc;
+
+import sun.io.Win32ErrorMode;
+
+public class OSEnvironment {
+
+ /*
+ * Initialize any miscellaneous operating system settings that need to be set
+ * for the class libraries.
+ * <p>
+ * At this time only the process-wide error mode needs to be set.
+ */
+ public static void initialize() {
+ Win32ErrorMode.initialize();
+ }
+
+}
--- a/jdk/src/java.base/windows/classes/sun/io/Win32ErrorMode.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/windows/classes/sun/io/Win32ErrorMode.java Fri Jan 15 19:18:42 2016 +0000
@@ -66,7 +66,7 @@
* has completed.
*/
public static void initialize() {
- if (!sun.misc.VM.isBooted()) {
+ if (!jdk.internal.misc.VM.isBooted()) {
String s = System.getProperty("sun.io.allowCriticalErrorMessageBox");
if (s == null || s.equals(Boolean.FALSE.toString())) {
long mode = setErrorMode(0);
--- a/jdk/src/java.base/windows/classes/sun/misc/OSEnvironment.java Fri Jan 15 08:53:23 2016 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.misc;
-
-import sun.io.Win32ErrorMode;
-
-public class OSEnvironment {
-
- /*
- * Initialize any miscellenous operating system settings that need to be set
- * for the class libraries.
- * <p>
- * At this time only the process-wide error mode needs to be set.
- */
- public static void initialize() {
- Win32ErrorMode.initialize();
- }
-
-}
--- a/jdk/src/java.base/windows/native/libjava/VM_md.c Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/windows/native/libjava/VM_md.c Fri Jan 15 19:18:42 2016 +0000
@@ -27,28 +27,28 @@
JNIEXPORT jlong JNICALL
-Java_sun_misc_VM_getuid(JNIEnv *env, jclass thisclass) {
+Java_jdk_internal_misc_VM_getuid(JNIEnv *env, jclass thisclass) {
/* -1 means function not available. */
return -1;
}
JNIEXPORT jlong JNICALL
-Java_sun_misc_VM_geteuid(JNIEnv *env, jclass thisclass) {
+Java_jdk_internal_misc_VM_geteuid(JNIEnv *env, jclass thisclass) {
/* -1 means function not available. */
return -1;
}
JNIEXPORT jlong JNICALL
-Java_sun_misc_VM_getgid(JNIEnv *env, jclass thisclass) {
+Java_jdk_internal_misc_VM_getgid(JNIEnv *env, jclass thisclass) {
/* -1 means function not available. */
return -1;
}
JNIEXPORT jlong JNICALL
-Java_sun_misc_VM_getegid(JNIEnv *env, jclass thisclass) {
+Java_jdk_internal_misc_VM_getegid(JNIEnv *env, jclass thisclass) {
/* -1 means function not available. */
return -1;
--- a/jdk/src/java.base/windows/native/libjava/io_util_md.c Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/windows/native/libjava/io_util_md.c Fri Jan 15 19:18:42 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -584,3 +584,14 @@
}
return long_to_jlong(pos.QuadPart);
}
+
+jlong
+handleGetLength(FD fd) {
+ HANDLE h = (HANDLE) fd;
+ LARGE_INTEGER length;
+ if (GetFileSizeEx(h, &length) != 0) {
+ return long_to_jlong(length.QuadPart);
+ } else {
+ return -1;
+ }
+}
--- a/jdk/src/java.base/windows/native/libjava/io_util_md.h Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.base/windows/native/libjava/io_util_md.h Fri Jan 15 19:18:42 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -44,6 +44,7 @@
int handleAvailable(FD fd, jlong *pbytes);
int handleSync(FD fd);
int handleSetLength(FD fd, jlong length);
+jlong handleGetLength(FD fd);
JNIEXPORT jint handleRead(FD fd, void *buf, jint len);
jint handleWrite(FD fd, const void *buf, jint len);
jint handleAppend(FD fd, const void *buf, jint len);
@@ -84,6 +85,7 @@
#define IO_Lseek handleLseek
#define IO_Available handleAvailable
#define IO_SetLength handleSetLength
+#define IO_GetLength handleGetLength
/*
* Setting the handle field in Java_java_io_FileDescriptor_set for
--- a/jdk/src/java.desktop/share/classes/javax/swing/text/html/parser/Parser.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.desktop/share/classes/javax/swing/text/html/parser/Parser.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,8 +35,6 @@
import java.util.Enumeration;
import java.net.URL;
-import sun.misc.MessageUtils;
-
/**
* A simple DTD-driven HTML parser. The parser reads an
* HTML file from an InputStream and calls various methods
--- a/jdk/src/java.desktop/share/classes/sun/applet/AppletPanel.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.desktop/share/classes/sun/applet/AppletPanel.java Fri Jan 15 19:18:42 2016 +0000
@@ -44,7 +44,6 @@
import sun.awt.EmbeddedFrame;
import sun.awt.SunToolkit;
import sun.misc.ManagedLocalsThread;
-import sun.misc.MessageUtils;
import sun.misc.PerformanceLogger;
import sun.security.util.SecurityConstants;
@@ -118,8 +117,6 @@
*/
Dimension currentAppletSize = new Dimension(10, 10);
- MessageUtils mu = new MessageUtils();
-
/**
* The thread to use during applet loading
*/
--- a/jdk/src/java.logging/share/classes/java/util/logging/FileHandler.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.logging/share/classes/java/util/logging/FileHandler.java Fri Jan 15 19:18:42 2016 +0000
@@ -639,7 +639,7 @@
continue;
} else if (ch2 == 'h') {
file = new File(System.getProperty("user.home"));
- if (sun.misc.VM.isSetUID()) {
+ if (jdk.internal.misc.VM.isSetUID()) {
// Ok, we are in a set UID program. For safety's sake
// we disallow attempts to open files relative to %h.
throw new IOException("can't use %h in set UID program");
--- a/jdk/src/java.management/share/classes/java/lang/management/ManagementFactory.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.management/share/classes/java/lang/management/ManagementFactory.java Fri Jan 15 19:18:42 2016 +0000
@@ -583,7 +583,7 @@
ClassLoader loader =
AccessController.doPrivileged(
(PrivilegedAction<ClassLoader>) () -> cls.getClassLoader());
- if (!sun.misc.VM.isSystemDomainLoader(loader)) {
+ if (!jdk.internal.misc.VM.isSystemDomainLoader(loader)) {
throw new IllegalArgumentException(mxbeanName +
" is not a platform MXBean");
}
--- a/jdk/src/java.management/share/classes/sun/management/ManagementFactoryHelper.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.management/share/classes/sun/management/ManagementFactoryHelper.java Fri Jan 15 19:18:42 2016 +0000
@@ -473,7 +473,7 @@
public static Thread.State toThreadState(int state) {
// suspended and native bits may be set in state
int threadStatus = state & ~JMM_THREAD_STATE_FLAG_MASK;
- return sun.misc.VM.toThreadState(threadStatus);
+ return jdk.internal.misc.VM.toThreadState(threadStatus);
}
// These values are defined in jmm.h
--- a/jdk/src/java.management/share/classes/sun/management/MemoryImpl.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.management/share/classes/sun/management/MemoryImpl.java Fri Jan 15 19:18:42 2016 +0000
@@ -59,7 +59,7 @@
}
public int getObjectPendingFinalizationCount() {
- return sun.misc.VM.getFinalRefCount();
+ return jdk.internal.misc.VM.getFinalRefCount();
}
public void gc() {
--- a/jdk/src/java.rmi/share/classes/sun/rmi/server/MarshalInputStream.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.rmi/share/classes/sun/rmi/server/MarshalInputStream.java Fri Jan 15 19:18:42 2016 +0000
@@ -262,7 +262,7 @@
* if only code from the null class loader is on the stack.
*/
private static ClassLoader latestUserDefinedLoader() {
- return sun.misc.VM.latestUserDefinedLoader();
+ return jdk.internal.misc.VM.latestUserDefinedLoader();
}
/**
--- a/jdk/src/java.scripting/share/classes/javax/script/ScriptEngineFactory.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.scripting/share/classes/javax/script/ScriptEngineFactory.java Fri Jan 15 19:18:42 2016 +0000
@@ -31,12 +31,14 @@
* <code>ScriptEngineFactory</code> is used to describe and instantiate
* <code>ScriptEngines</code>.
* <br><br>
- * Each class implementing <code>ScriptEngine</code> has a corresponding factory
- * that exposes metadata describing the engine class.
+ * Each class implementing <code>ScriptEngine</code> has a corresponding
+ * factory that exposes metadata describing the engine class.
* <br><br>The <code>ScriptEngineManager</code>
- * uses the service provider mechanism described in the <i>Jar File Specification</i> to obtain
- * instances of all <code>ScriptEngineFactories</code> available in
- * the current ClassLoader.
+ * uses the service-provider loader mechanism described in the
+ * {@link java.util.ServiceLoader} class to obtain
+ * instances of {@code ScriptEngineFactory} instances.
+ * See {@link ScriptEngineManager#ScriptEngineManager()} and
+ * {@link ScriptEngineManager#ScriptEngineManager(java.lang.ClassLoader)}.
*
* @since 1.6
*/
--- a/jdk/src/java.scripting/share/classes/javax/script/ScriptEngineManager.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.scripting/share/classes/javax/script/ScriptEngineManager.java Fri Jan 15 19:18:42 2016 +0000
@@ -33,7 +33,8 @@
* The <code>ScriptEngineManager</code> implements a discovery and instantiation
* mechanism for <code>ScriptEngine</code> classes and also maintains a
* collection of key/value pairs storing state shared by all engines created
- * by the Manager. This class uses the <a href="../../../technotes/guides/jar/jar.html#Service%20Provider">service provider</a> mechanism to enumerate all the
+ * by the Manager. This class uses the service provider mechanism described in the
+ * {@link java.util.ServiceLoader} class to enumerate all the
* implementations of <code>ScriptEngineFactory</code>. <br><br>
* The <code>ScriptEngineManager</code> provides a method to return a list of all these factories
* as well as utility methods which look up factories on the basis of language name, file extension
@@ -64,7 +65,7 @@
/**
* This constructor loads the implementations of
* <code>ScriptEngineFactory</code> visible to the given
- * <code>ClassLoader</code> using the <a href="../../../technotes/guides/jar/jar.html#Service%20Provider">service provider</a> mechanism.<br><br>
+ * <code>ClassLoader</code> using the service provider mechanism.<br><br>
* If loader is <code>null</code>, the script engine factories that are
* bundled with the platform are loaded. <br>
*
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/java.scripting/share/classes/javax/script/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -0,0 +1,94 @@
+/*
+ * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+
+<p>The scripting API consists of interfaces and classes that define
+Java™ Scripting Engines and provides
+a framework for their use in Java applications. This API is intended
+for use by application programmers who wish to execute programs
+written in scripting languages in their Java applications. The
+scripting language programs are usually provided by the end-users of
+the applications.
+</p>
+<p>The main areas of functionality of <code>javax.script</code>
+package include
+</p>
+<ol>
+<li><p><b>Script execution</b>: Scripts
+are streams of characters used as sources for programs executed by
+script engines. Script execution uses
+{@link javax.script.ScriptEngine#eval eval} methods of
+{@link javax.script.ScriptEngine ScriptEngine} and methods of the
+{@link javax.script.Invocable Invocable} interface.
+</p>
+<li><p><b>Binding</b>: This facility
+allows Java objects to be exposed to script programs as named
+variables. {@link javax.script.Bindings Bindings} and
+{@link javax.script.ScriptContext ScriptContext}
+classes are used for this purpose.
+</p>
+<li><p><b>Compilation</b>: This
+functionality allows the intermediate code generated by the
+front-end of a script engine to be stored and executed repeatedly.
+This benefits applications that execute the same script multiple
+times. These applications can gain efficiency since the engines'
+front-ends only need to execute once per script rather than once per
+script execution. Note that this functionality is optional and
+script engines may choose not to implement it. Callers need to check
+for availability of the {@link javax.script.Compilable Compilable}
+interface using an <I>instanceof</I> check.
+</p>
+<li><p><b>Invocation</b>: This
+functionality allows the reuse of intermediate code generated by a
+script engine's front-end. Whereas Compilation allows entire scripts
+represented by intermediate code to be re-executed, Invocation
+functionality allows individual procedures/methods in the scripts to
+be re-executed. As in the case with compilation, not all script
+engines are required to provide this facility. Caller has to check
+for {@link javax.script.Invocable Invocable} availability.
+</p>
+<li><p><b>Script engine discovery</b>: Applications
+written to the Scripting API might have specific requirements on
+script engines. Some may require a specific scripting language
+and/or version while others may require a specific implementation
+engine and/or version. Script engines are packaged in a specified
+way so that engines can be discovered at runtime and queried for
+attributes. The Engine discovery mechanism is based on the service-provider
+loading facility described in the {@link java.util.ServiceLoader} class.
+{@link javax.script.ScriptEngineManager ScriptEngineManager}
+includes
+{@link javax.script.ScriptEngineManager#getEngineFactories getEngineFactories} method to get all
+{@link javax.script.ScriptEngineFactory ScriptEngineFactory} instances
+discovered using this mechanism. <code>ScriptEngineFactory</code> has
+methods to query attributes about script engine.
+</p>
+</ol>
+
+@since 1.6
+*/
+
+package javax.script;
+
--- a/jdk/src/java.scripting/share/classes/javax/script/package.html Fri Jan 15 08:53:23 2016 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
-<head>
-<!--
-Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
-DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
-This code is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License version 2 only, as
-published by the Free Software Foundation. Oracle designates this
-particular file as subject to the "Classpath" exception as provided
-by Oracle in the LICENSE file that accompanied this code.
-
-This code is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-version 2 for more details (a copy is included in the LICENSE file that
-accompanied this code).
-
-You should have received a copy of the GNU General Public License version
-2 along with this work; if not, write to the Free Software Foundation,
-Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-or visit www.oracle.com if you need additional information or have any
-questions.
--->
-
-</head>
-<body bgcolor="white">
-<p>The scripting API consists of interfaces and classes that define
-Java™ Scripting Engines and provides
-a framework for their use in Java applications. This API is intended
-for use by application programmers who wish to execute programs
-written in scripting languages in their Java applications. The
-scripting language programs are usually provided by the end-users of
-the applications.
-</p>
-<p>The main areas of functionality of <code>javax.script</code>
-package include
-</p>
-<ol>
- <li><p><b>Script execution</b>: Scripts
- are streams of characters used as sources for programs executed by
- script engines. Script execution uses
- {@link javax.script.ScriptEngine#eval eval} methods of
- {@link javax.script.ScriptEngine ScriptEngine} and methods of the
- {@link javax.script.Invocable Invocable} interface.
- </p>
- <li><p><b>Binding</b>: This facility
- allows Java objects to be exposed to script programs as named
- variables. {@link javax.script.Bindings Bindings} and
- {@link javax.script.ScriptContext ScriptContext}
- classes are used for this purpose.
- </p>
- <li><p><b>Compilation</b>: This
- functionality allows the intermediate code generated by the
- front-end of a script engine to be stored and executed repeatedly.
- This benefits applications that execute the same script multiple
- times. These applications can gain efficiency since the engines'
- front-ends only need to execute once per script rather than once per
- script execution. Note that this functionality is optional and
- script engines may choose not to implement it. Callers need to check
- for availability of the {@link javax.script.Compilable Compilable}
- interface using an <I>instanceof</I> check.
- </p>
- <li><p><b>Invocation</b>: This
- functionality allows the reuse of intermediate code generated by a
- script engine's front-end. Whereas Compilation allows entire scripts
- represented by intermediate code to be re-executed, Invocation
- functionality allows individual procedures/methods in the scripts to
- be re-executed. As in the case with compilation, not all script
- engines are required to provide this facility. Caller has to check
- for {@link javax.script.Invocable Invocable} availability.
- </p>
- <li><p><b>Script engine discovery and Metadata</b>: Applications
- written to the Scripting API might have specific requirements on
- script engines. Some may require a specific scripting language
- and/or version while others may require a specific implementation
- engine and/or version. Script engines are packaged in a specified
- way so that engines can be discovered at runtime and queried for
- attributes. The Engine discovery mechanism is based on the Service
- discovery mechanism described in the <b>Jar File Specification</b>.
- Script engine implementing classes are packaged in jar files that
- include a text resource named
- <b>META-INF/services/javax.script.ScriptEngineFactory</b>. This
- resource must include a line for each
- {@link javax.script.ScriptEngineFactory ScriptEngineFactory}
- that is packaged in the jar file.
- {@link javax.script.ScriptEngineManager ScriptEngineManager}
- includes
- {@link javax.script.ScriptEngineManager#getEngineFactories getEngineFactories} method to get all
- {@link javax.script.ScriptEngineFactory ScriptEngineFactory} instances
- discovered using this mechanism. <code>ScriptEngineFactory</code> has
- methods to query attributes about script engine.
- </p>
-</ol>
-
-@since 1.6
-
-</body>
-</html>
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java Fri Jan 15 19:18:42 2016 +0000
@@ -397,7 +397,7 @@
*/
if (osname != null && !osname.startsWith("Windows")) {
- long uid = sun.misc.VM.getuid();
+ long uid = jdk.internal.misc.VM.getuid();
if (uid != -1) {
name = File.separator + "tmp" +
File.separator + stdCacheNameComponent + "_" + uid;
--- a/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/rcache/DflCache.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/rcache/DflCache.java Fri Jan 15 19:18:42 2016 +0000
@@ -60,7 +60,7 @@
*
* service_euid
*
- * in which euid is available as sun.misc.VM.geteuid().
+ * in which euid is available as jdk.internal.misc.VM.geteuid().
*
* The file has a header:
*
@@ -107,7 +107,7 @@
private static long uid;
static {
// Available on Solaris, Linux and Mac. Otherwise, -1 and no _euid suffix
- uid = sun.misc.VM.geteuid();
+ uid = jdk.internal.misc.VM.geteuid();
}
public DflCache (String source) {
--- a/jdk/src/jdk.accessibility/share/classes/com/sun/java/accessibility/util/AWTEventMonitor.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.accessibility/share/classes/com/sun/java/accessibility/util/AWTEventMonitor.java Fri Jan 15 19:18:42 2016 +0000
@@ -45,7 +45,6 @@
* level support for capturing the top-level containers as they are created.
*/
-@jdk.Exported
public class AWTEventMonitor {
/**
--- a/jdk/src/jdk.accessibility/share/classes/com/sun/java/accessibility/util/AccessibilityEventMonitor.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.accessibility/share/classes/com/sun/java/accessibility/util/AccessibilityEventMonitor.java Fri Jan 15 19:18:42 2016 +0000
@@ -43,7 +43,6 @@
*
*/
-@jdk.Exported
public class AccessibilityEventMonitor {
// listeners
--- a/jdk/src/jdk.accessibility/share/classes/com/sun/java/accessibility/util/AccessibilityListenerList.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.accessibility/share/classes/com/sun/java/accessibility/util/AccessibilityListenerList.java Fri Jan 15 19:18:42 2016 +0000
@@ -37,7 +37,6 @@
*
*/
-@jdk.Exported
public class AccessibilityListenerList {
/* A null array to be shared by all empty listener lists */
private final static Object[] NULL_ARRAY = new Object[0];
--- a/jdk/src/jdk.accessibility/share/classes/com/sun/java/accessibility/util/EventID.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.accessibility/share/classes/com/sun/java/accessibility/util/EventID.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,7 +35,6 @@
* @see SwingEventMonitor
*
*/
-@jdk.Exported
public class EventID {
/**
--- a/jdk/src/jdk.accessibility/share/classes/com/sun/java/accessibility/util/EventQueueMonitor.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.accessibility/share/classes/com/sun/java/accessibility/util/EventQueueMonitor.java Fri Jan 15 19:18:42 2016 +0000
@@ -40,7 +40,6 @@
* @see AWTEventMonitor
* @see SwingEventMonitor
*/
-@jdk.Exported
public class EventQueueMonitor
implements AWTEventListener {
--- a/jdk/src/jdk.accessibility/share/classes/com/sun/java/accessibility/util/GUIInitializedListener.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.accessibility/share/classes/com/sun/java/accessibility/util/GUIInitializedListener.java Fri Jan 15 19:18:42 2016 +0000
@@ -49,7 +49,6 @@
* @see EventQueueMonitor#removeGUIInitializedListener
*
*/
-@jdk.Exported
public interface GUIInitializedListener extends EventListener {
/**
--- a/jdk/src/jdk.accessibility/share/classes/com/sun/java/accessibility/util/SwingEventMonitor.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.accessibility/share/classes/com/sun/java/accessibility/util/SwingEventMonitor.java Fri Jan 15 19:18:42 2016 +0000
@@ -56,7 +56,6 @@
* @see AWTEventMonitor
*
*/
-@jdk.Exported
public class SwingEventMonitor extends AWTEventMonitor {
/**
--- a/jdk/src/jdk.accessibility/share/classes/com/sun/java/accessibility/util/TopLevelWindowListener.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.accessibility/share/classes/com/sun/java/accessibility/util/TopLevelWindowListener.java Fri Jan 15 19:18:42 2016 +0000
@@ -43,7 +43,6 @@
* @see EventQueueMonitor#removeTopLevelWindowListener
*
*/
-@jdk.Exported
public interface TopLevelWindowListener extends EventListener {
/**
--- a/jdk/src/jdk.accessibility/share/classes/com/sun/java/accessibility/util/Translator.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.accessibility/share/classes/com/sun/java/accessibility/util/Translator.java Fri Jan 15 19:18:42 2016 +0000
@@ -58,7 +58,6 @@
* to implement accessibility features for a toolkit. Instead of relying upon this
* code, a toolkit's components should implement interface {@code Accessible} directly.
*/
-@jdk.Exported
public class Translator extends AccessibleContext
implements Accessible, AccessibleComponent {
--- a/jdk/src/jdk.accessibility/windows/classes/com/sun/java/accessibility/internal/AccessBridge.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.accessibility/windows/classes/com/sun/java/accessibility/internal/AccessBridge.java Fri Jan 15 19:18:42 2016 +0000
@@ -53,7 +53,6 @@
* Note: This class has to be public. It's loaded from the VM like this:
* Class.forName(atName).newInstance();
*/
-@jdk.Exported(false)
final public class AccessBridge {
private static AccessBridge theAccessBridge;
--- a/jdk/src/jdk.attach/share/classes/com/sun/tools/attach/AgentInitializationException.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.attach/share/classes/com/sun/tools/attach/AgentInitializationException.java Fri Jan 15 19:18:42 2016 +0000
@@ -40,7 +40,6 @@
* the error returned by the agent's {@code Agent_OnAttach} function.
* This error code can be obtained by invoking the {@link #returnValue() returnValue} method.
*/
-@jdk.Exported
public class AgentInitializationException extends Exception {
/** use serialVersionUID for interoperability */
--- a/jdk/src/jdk.attach/share/classes/com/sun/tools/attach/AgentLoadException.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.attach/share/classes/com/sun/tools/attach/AgentLoadException.java Fri Jan 15 19:18:42 2016 +0000
@@ -36,7 +36,6 @@
* com.sun.tools.attach.VirtualMachine#loadAgentPath loadAgentPath} methods
* if the agent, or agent library, cannot be loaded.
*/
-@jdk.Exported
public class AgentLoadException extends Exception {
/** use serialVersionUID for interoperability */
--- a/jdk/src/jdk.attach/share/classes/com/sun/tools/attach/AttachNotSupportedException.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.attach/share/classes/com/sun/tools/attach/AttachNotSupportedException.java Fri Jan 15 19:18:42 2016 +0000
@@ -36,7 +36,6 @@
* AttachProvider.attachVirtualMachine} if the provider attempts to
* attach to a Java virtual machine with which it not comptatible.
*/
-@jdk.Exported
public class AttachNotSupportedException extends Exception {
/** use serialVersionUID for interoperability */
--- a/jdk/src/jdk.attach/share/classes/com/sun/tools/attach/AttachOperationFailedException.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.attach/share/classes/com/sun/tools/attach/AttachOperationFailedException.java Fri Jan 15 19:18:42 2016 +0000
@@ -37,7 +37,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public class AttachOperationFailedException extends IOException {
private static final long serialVersionUID = 2140308168167478043L;
--- a/jdk/src/jdk.attach/share/classes/com/sun/tools/attach/AttachPermission.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.attach/share/classes/com/sun/tools/attach/AttachPermission.java Fri Jan 15 19:18:42 2016 +0000
@@ -79,7 +79,6 @@
* @see com.sun.tools.attach.spi.AttachProvider
*/
-@jdk.Exported
public final class AttachPermission extends java.security.BasicPermission {
/** use serialVersionUID for interoperability */
--- a/jdk/src/jdk.attach/share/classes/com/sun/tools/attach/VirtualMachine.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.attach/share/classes/com/sun/tools/attach/VirtualMachine.java Fri Jan 15 19:18:42 2016 +0000
@@ -96,7 +96,6 @@
* @since 1.6
*/
-@jdk.Exported
public abstract class VirtualMachine {
private AttachProvider provider;
private String id;
--- a/jdk/src/jdk.attach/share/classes/com/sun/tools/attach/VirtualMachineDescriptor.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.attach/share/classes/com/sun/tools/attach/VirtualMachineDescriptor.java Fri Jan 15 19:18:42 2016 +0000
@@ -55,7 +55,6 @@
*
* @since 1.6
*/
-@jdk.Exported
public class VirtualMachineDescriptor {
private AttachProvider provider;
--- a/jdk/src/jdk.attach/share/classes/com/sun/tools/attach/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.attach/share/classes/com/sun/tools/attach/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -38,5 +38,4 @@
* @since 1.6
*/
-@jdk.Exported
package com.sun.tools.attach;
--- a/jdk/src/jdk.attach/share/classes/com/sun/tools/attach/spi/AttachProvider.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.attach/share/classes/com/sun/tools/attach/spi/AttachProvider.java Fri Jan 15 19:18:42 2016 +0000
@@ -74,7 +74,6 @@
* @since 1.6
*/
-@jdk.Exported
public abstract class AttachProvider {
private static final Object lock = new Object();
--- a/jdk/src/jdk.attach/share/classes/com/sun/tools/attach/spi/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.attach/share/classes/com/sun/tools/attach/spi/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -31,5 +31,4 @@
* @since 1.6
*/
-@jdk.Exported
package com.sun.tools.attach.spi;
--- a/jdk/src/jdk.charsets/share/classes/sun/nio/cs/ext/ExtendedCharsets.java.template Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.charsets/share/classes/sun/nio/cs/ext/ExtendedCharsets.java.template Fri Jan 15 19:18:42 2016 +0000
@@ -97,7 +97,7 @@
protected void init() {
if (initialized)
return;
- if (!sun.misc.VM.isBooted())
+ if (!jdk.internal.misc.VM.isBooted())
return;
String map = getProperty("sun.nio.cs.map");
--- a/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/Authenticator.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/Authenticator.java Fri Jan 15 19:18:42 2016 +0000
@@ -36,7 +36,6 @@
* Note. This implies that any caching of credentials or other authentication
* information must be done outside of this class.
*/
-@jdk.Exported
public abstract class Authenticator {
/**
@@ -48,7 +47,6 @@
* Indicates an authentication failure. The authentication
* attempt has completed.
*/
- @jdk.Exported
public static class Failure extends Result {
private int responseCode;
@@ -70,7 +68,6 @@
* authenticated user principal can be acquired by calling
* getPrincipal().
*/
- @jdk.Exported
public static class Success extends Result {
private HttpPrincipal principal;
@@ -92,7 +89,6 @@
* set any necessary response headers in the given HttpExchange
* before returning this Retry object.
*/
- @jdk.Exported
public static class Retry extends Result {
private int responseCode;
--- a/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/BasicAuthenticator.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/BasicAuthenticator.java Fri Jan 15 19:18:42 2016 +0000
@@ -33,7 +33,6 @@
* to provide an implementation of {@link #checkCredentials(String,String)}
* which is called to verify each incoming request.
*/
-@jdk.Exported
public abstract class BasicAuthenticator extends Authenticator {
protected String realm;
--- a/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/Filter.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/Filter.java Fri Jan 15 19:18:42 2016 +0000
@@ -39,7 +39,6 @@
* exchange handler.
* @since 1.6
*/
-@jdk.Exported
public abstract class Filter {
protected Filter () {}
@@ -49,7 +48,6 @@
* Each filter in the chain is given one of these
* so it can invoke the next filter in the chain
*/
- @jdk.Exported
public static class Chain {
/* the last element in the chain must invoke the users
* handler
--- a/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/Headers.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/Headers.java Fri Jan 15 19:18:42 2016 +0000
@@ -61,7 +61,6 @@
* as a header line containing the key but no associated value.
* @since 1.6
*/
-@jdk.Exported
public class Headers implements Map<String,List<String>> {
HashMap<String,List<String>> map;
--- a/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpContext.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpContext.java Fri Jan 15 19:18:42 2016 +0000
@@ -40,7 +40,6 @@
* context can be pre- and post-processed by each Filter in the chain.
* @since 1.6
*/
-@jdk.Exported
public abstract class HttpContext {
protected HttpContext () {
--- a/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpExchange.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpExchange.java Fri Jan 15 19:18:42 2016 +0000
@@ -64,7 +64,6 @@
* @since 1.6
*/
-@jdk.Exported
public abstract class HttpExchange {
protected HttpExchange () {
--- a/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpHandler.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpHandler.java Fri Jan 15 19:18:42 2016 +0000
@@ -32,7 +32,6 @@
* HTTP exchange is handled by one of these handlers.
* @since 1.6
*/
-@jdk.Exported
public interface HttpHandler {
/**
* Handle the given request and generate an appropriate response.
--- a/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpPrincipal.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpPrincipal.java Fri Jan 15 19:18:42 2016 +0000
@@ -33,7 +33,6 @@
* Represents a user authenticated by HTTP Basic or Digest
* authentication.
*/
-@jdk.Exported
public class HttpPrincipal implements Principal {
private String username, realm;
--- a/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpServer.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpServer.java Fri Jan 15 19:18:42 2016 +0000
@@ -87,7 +87,6 @@
* @since 1.6
*/
-@jdk.Exported
public abstract class HttpServer {
/**
--- a/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpsConfigurator.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpsConfigurator.java Fri Jan 15 19:18:42 2016 +0000
@@ -67,7 +67,6 @@
* </pre></blockquote>
* @since 1.6
*/
-@jdk.Exported
public class HttpsConfigurator {
private SSLContext context;
--- a/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpsExchange.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpsExchange.java Fri Jan 15 19:18:42 2016 +0000
@@ -39,7 +39,6 @@
* @since 1.6
*/
-@jdk.Exported
public abstract class HttpsExchange extends HttpExchange {
protected HttpsExchange () {
--- a/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpsParameters.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpsParameters.java Fri Jan 15 19:18:42 2016 +0000
@@ -49,7 +49,6 @@
* are used, and any settings made in this object are ignored.
* @since 1.6
*/
-@jdk.Exported
public abstract class HttpsParameters {
private String[] cipherSuites;
--- a/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpsServer.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpsServer.java Fri Jan 15 19:18:42 2016 +0000
@@ -45,7 +45,6 @@
* @since 1.6
*/
-@jdk.Exported
public abstract class HttpsServer extends HttpServer {
/**
--- a/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -123,5 +123,4 @@
@since 1.6
*/
-@jdk.Exported
package com.sun.net.httpserver;
--- a/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/spi/HttpServerProvider.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/spi/HttpServerProvider.java Fri Jan 15 19:18:42 2016 +0000
@@ -40,7 +40,6 @@
* {@link HttpServer} and associated classes. Applications do not normally use
* this class. See {@link #provider()} for how providers are found and loaded.
*/
-@jdk.Exported
public abstract class HttpServerProvider {
/**
--- a/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/spi/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/spi/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -27,5 +27,4 @@
* Provides a pluggable service provider interface, which allows the HTTP server
* implementation to be replaced with other implementations.
*/
-@jdk.Exported
package com.sun.net.httpserver.spi;
--- a/jdk/src/jdk.jartool/share/classes/com/sun/jarsigner/ContentSigner.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jartool/share/classes/com/sun/jarsigner/ContentSigner.java Fri Jan 15 19:18:42 2016 +0000
@@ -38,7 +38,6 @@
* @deprecated This class has been deprecated.
*/
-@jdk.Exported
@Deprecated
public abstract class ContentSigner {
--- a/jdk/src/jdk.jartool/share/classes/com/sun/jarsigner/ContentSignerParameters.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jartool/share/classes/com/sun/jarsigner/ContentSignerParameters.java Fri Jan 15 19:18:42 2016 +0000
@@ -36,7 +36,6 @@
* @author Vincent Ryan
* @deprecated This class has been deprecated.
*/
-@jdk.Exported
@Deprecated
public interface ContentSignerParameters {
--- a/jdk/src/jdk.jartool/share/classes/com/sun/jarsigner/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jartool/share/classes/com/sun/jarsigner/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,5 +35,4 @@
* to sign JAR files.
*/
-@jdk.Exported
package com.sun.jarsigner;
--- a/jdk/src/jdk.jartool/share/classes/jdk/security/jarsigner/JarSigner.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jartool/share/classes/jdk/security/jarsigner/JarSigner.java Fri Jan 15 19:18:42 2016 +0000
@@ -79,7 +79,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public final class JarSigner {
/**
@@ -88,7 +87,6 @@
*
* @since 1.9
*/
- @jdk.Exported
public static class Builder {
// Signer materials:
--- a/jdk/src/jdk.jartool/share/classes/jdk/security/jarsigner/JarSignerException.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jartool/share/classes/jdk/security/jarsigner/JarSignerException.java Fri Jan 15 19:18:42 2016 +0000
@@ -30,7 +30,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public class JarSignerException extends RuntimeException {
private static final long serialVersionUID = -4732217075689309530L;
--- a/jdk/src/jdk.jconsole/share/classes/com/sun/tools/jconsole/JConsoleContext.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jconsole/share/classes/com/sun/tools/jconsole/JConsoleContext.java Fri Jan 15 19:18:42 2016 +0000
@@ -42,7 +42,6 @@
*
* @since 1.6
*/
-@jdk.Exported
public interface JConsoleContext {
/**
* The {@link ConnectionState ConnectionState} bound property name.
@@ -53,7 +52,6 @@
* Values for the {@linkplain #CONNECTION_STATE_PROPERTY
* <i>ConnectionState</i>} bound property.
*/
- @jdk.Exported
public enum ConnectionState {
/**
* The connection has been successfully established.
--- a/jdk/src/jdk.jconsole/share/classes/com/sun/tools/jconsole/JConsolePlugin.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jconsole/share/classes/com/sun/tools/jconsole/JConsolePlugin.java Fri Jan 15 19:18:42 2016 +0000
@@ -72,7 +72,6 @@
*
* @since 1.6
*/
-@jdk.Exported
public abstract class JConsolePlugin {
private volatile JConsoleContext context = null;
private List<PropertyChangeListener> listeners = null;
--- a/jdk/src/jdk.jconsole/share/classes/com/sun/tools/jconsole/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jconsole/share/classes/com/sun/tools/jconsole/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -29,5 +29,4 @@
* @since 1.6
*/
-@jdk.Exported
package com.sun.tools.jconsole;
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/AbsentInformationException.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/AbsentInformationException.java Fri Jan 15 19:18:42 2016 +0000
@@ -31,7 +31,6 @@
* @author Gordon Hirsch
* @since 1.3
*/
-@jdk.Exported
public class AbsentInformationException extends Exception
{
private static final long serialVersionUID = 4988939309582416373L;
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/Accessible.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/Accessible.java Fri Jan 15 19:18:42 2016 +0000
@@ -36,7 +36,6 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public interface Accessible {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ArrayReference.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ArrayReference.java Fri Jan 15 19:18:42 2016 +0000
@@ -39,7 +39,6 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public interface ArrayReference extends ObjectReference {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ArrayType.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ArrayType.java Fri Jan 15 19:18:42 2016 +0000
@@ -38,7 +38,6 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public interface ArrayType extends ReferenceType {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/BooleanType.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/BooleanType.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,6 +35,5 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public interface BooleanType extends PrimitiveType {
}
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/BooleanValue.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/BooleanValue.java Fri Jan 15 19:18:42 2016 +0000
@@ -34,7 +34,6 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public interface BooleanValue extends PrimitiveValue {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/Bootstrap.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/Bootstrap.java Fri Jan 15 19:18:42 2016 +0000
@@ -34,7 +34,6 @@
* @since 1.3
*/
-@jdk.Exported
public class Bootstrap extends Object {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ByteType.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ByteType.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,6 +35,5 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public interface ByteType extends PrimitiveType {
}
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ByteValue.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ByteValue.java Fri Jan 15 19:18:42 2016 +0000
@@ -33,7 +33,6 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public interface ByteValue extends PrimitiveValue, Comparable<ByteValue> {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/CharType.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/CharType.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,6 +35,5 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public interface CharType extends PrimitiveType {
}
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/CharValue.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/CharValue.java Fri Jan 15 19:18:42 2016 +0000
@@ -34,7 +34,6 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public interface CharValue extends PrimitiveValue, Comparable<CharValue> {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ClassLoaderReference.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ClassLoaderReference.java Fri Jan 15 19:18:42 2016 +0000
@@ -39,7 +39,6 @@
* @author Gordon Hirsch
* @since 1.3
*/
-@jdk.Exported
public interface ClassLoaderReference extends ObjectReference {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ClassNotLoadedException.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ClassNotLoadedException.java Fri Jan 15 19:18:42 2016 +0000
@@ -67,7 +67,6 @@
* @author Gordon Hirsch
* @since 1.3
*/
-@jdk.Exported
public class ClassNotLoadedException extends Exception
{
private static final long serialVersionUID = -6242978768444298722L;
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ClassNotPreparedException.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ClassNotPreparedException.java Fri Jan 15 19:18:42 2016 +0000
@@ -32,7 +32,6 @@
* @author Gordon Hirsch
* @since 1.3
*/
-@jdk.Exported
public class ClassNotPreparedException extends RuntimeException {
private static final long serialVersionUID = -6120698967144079642L;
public ClassNotPreparedException()
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ClassObjectReference.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ClassObjectReference.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,7 +35,6 @@
* @author Gordon Hirsch
* @since 1.3
*/
-@jdk.Exported
public interface ClassObjectReference extends ObjectReference {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ClassType.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ClassType.java Fri Jan 15 19:18:42 2016 +0000
@@ -41,7 +41,6 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public interface ClassType extends ReferenceType {
/**
* Gets the superclass of this class.
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/DoubleType.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/DoubleType.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,6 +35,5 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public interface DoubleType extends PrimitiveType {
}
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/DoubleValue.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/DoubleValue.java Fri Jan 15 19:18:42 2016 +0000
@@ -34,7 +34,6 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public interface DoubleValue extends PrimitiveValue, Comparable<DoubleValue> {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/Field.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/Field.java Fri Jan 15 19:18:42 2016 +0000
@@ -38,7 +38,6 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public interface Field extends TypeComponent, Comparable<Field> {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/FloatType.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/FloatType.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,6 +35,5 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public interface FloatType extends PrimitiveType {
}
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/FloatValue.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/FloatValue.java Fri Jan 15 19:18:42 2016 +0000
@@ -34,7 +34,6 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public interface FloatValue extends PrimitiveValue, Comparable<FloatValue> {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/IncompatibleThreadStateException.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/IncompatibleThreadStateException.java Fri Jan 15 19:18:42 2016 +0000
@@ -32,7 +32,6 @@
* @author Gordon Hirsch
* @since 1.3
*/
-@jdk.Exported
public class IncompatibleThreadStateException extends Exception {
private static final long serialVersionUID = 6199174323414551389L;
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/InconsistentDebugInfoException.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/InconsistentDebugInfoException.java Fri Jan 15 19:18:42 2016 +0000
@@ -34,7 +34,6 @@
* @author Gordon Hirsch
* @since 1.3
*/
-@jdk.Exported
public class InconsistentDebugInfoException extends RuntimeException {
private static final long serialVersionUID = 7964236415376861808L;
public InconsistentDebugInfoException() {
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/IntegerType.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/IntegerType.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,6 +35,5 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public interface IntegerType extends PrimitiveType {
}
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/IntegerValue.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/IntegerValue.java Fri Jan 15 19:18:42 2016 +0000
@@ -34,7 +34,6 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public interface IntegerValue extends PrimitiveValue, Comparable<IntegerValue> {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/InterfaceType.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/InterfaceType.java Fri Jan 15 19:18:42 2016 +0000
@@ -43,7 +43,6 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public interface InterfaceType extends ReferenceType {
/**
* Gets the interfaces directly extended by this interface.
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/InternalException.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/InternalException.java Fri Jan 15 19:18:42 2016 +0000
@@ -32,7 +32,6 @@
* @author Gordon Hirsch
* @since 1.3
*/
-@jdk.Exported
public class InternalException extends RuntimeException {
private static final long serialVersionUID = -9171606393104480607L;
private int errorCode;
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/InvalidCodeIndexException.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/InvalidCodeIndexException.java Fri Jan 15 19:18:42 2016 +0000
@@ -34,7 +34,6 @@
* @author Gordon Hirsch
* @since 1.3
*/
-@jdk.Exported
@Deprecated
public class InvalidCodeIndexException extends RuntimeException {
private static final long serialVersionUID = 7416010225133747805L;
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/InvalidLineNumberException.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/InvalidLineNumberException.java Fri Jan 15 19:18:42 2016 +0000
@@ -34,7 +34,6 @@
* @author Gordon Hirsch
* @since 1.3
*/
-@jdk.Exported
@Deprecated
public class InvalidLineNumberException extends RuntimeException {
private static final long serialVersionUID = 4048709912372692875L;
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/InvalidStackFrameException.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/InvalidStackFrameException.java Fri Jan 15 19:18:42 2016 +0000
@@ -32,7 +32,6 @@
* @author Gordon Hirsch
* @since 1.3
*/
-@jdk.Exported
public class InvalidStackFrameException extends RuntimeException {
private static final long serialVersionUID = -1919378296505827922L;
public InvalidStackFrameException() {
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/InvalidTypeException.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/InvalidTypeException.java Fri Jan 15 19:18:42 2016 +0000
@@ -32,7 +32,6 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public class InvalidTypeException extends Exception {
private static final long serialVersionUID = 2256667231949650806L;
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/InvocationException.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/InvocationException.java Fri Jan 15 19:18:42 2016 +0000
@@ -32,7 +32,6 @@
* @author Gordon Hirsch
* @since 1.3
*/
-@jdk.Exported
public class InvocationException extends Exception {
private static final long serialVersionUID = 6066780907971918568L;
ObjectReference exception;
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/JDIPermission.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/JDIPermission.java Fri Jan 15 19:18:42 2016 +0000
@@ -78,7 +78,6 @@
*
*/
-@jdk.Exported
public final class JDIPermission extends java.security.BasicPermission {
private static final long serialVersionUID = -6988461416938786271L;
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/LocalVariable.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/LocalVariable.java Fri Jan 15 19:18:42 2016 +0000
@@ -42,7 +42,6 @@
* @since 1.3
*/
-@jdk.Exported
public interface LocalVariable extends Mirror, Comparable<LocalVariable> {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/Locatable.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/Locatable.java Fri Jan 15 19:18:42 2016 +0000
@@ -33,7 +33,6 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public interface Locatable {
/**
* Returns the {@link Location} of this mirror, if there is
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/Location.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/Location.java Fri Jan 15 19:18:42 2016 +0000
@@ -86,7 +86,6 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public interface Location extends Mirror, Comparable<Location> {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/LongType.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/LongType.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,6 +35,5 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public interface LongType extends PrimitiveType {
}
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/LongValue.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/LongValue.java Fri Jan 15 19:18:42 2016 +0000
@@ -34,7 +34,6 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public interface LongValue extends PrimitiveValue, Comparable<LongValue> {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/Method.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/Method.java Fri Jan 15 19:18:42 2016 +0000
@@ -39,7 +39,6 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public interface Method extends TypeComponent, Locatable, Comparable<Method> {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/Mirror.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/Mirror.java Fri Jan 15 19:18:42 2016 +0000
@@ -56,7 +56,6 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public interface Mirror {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/MonitorInfo.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/MonitorInfo.java Fri Jan 15 19:18:42 2016 +0000
@@ -32,7 +32,6 @@
* @since 1.6
*/
-@jdk.Exported
public interface MonitorInfo extends Mirror {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/NativeMethodException.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/NativeMethodException.java Fri Jan 15 19:18:42 2016 +0000
@@ -32,7 +32,6 @@
* @author Gordon Hirsch
* @since 1.3
*/
-@jdk.Exported
public class NativeMethodException extends RuntimeException {
private static final long serialVersionUID = 3924951669039469992L;
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ObjectCollectedException.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ObjectCollectedException.java Fri Jan 15 19:18:42 2016 +0000
@@ -32,7 +32,6 @@
* @author Gordon Hirsch
* @since 1.3
*/
-@jdk.Exported
public class ObjectCollectedException extends RuntimeException {
private static final long serialVersionUID = -1928428056197269588L;
public ObjectCollectedException() {
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ObjectReference.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ObjectReference.java Fri Jan 15 19:18:42 2016 +0000
@@ -55,7 +55,6 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public interface ObjectReference extends Value {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/PathSearchingVirtualMachine.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/PathSearchingVirtualMachine.java Fri Jan 15 19:18:42 2016 +0000
@@ -33,7 +33,6 @@
* @author Gordon Hirsch
* @since 1.3
*/
-@jdk.Exported
public interface PathSearchingVirtualMachine extends VirtualMachine {
/**
* Get the class path for this virtual machine.
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/PrimitiveType.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/PrimitiveType.java Fri Jan 15 19:18:42 2016 +0000
@@ -37,6 +37,5 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public interface PrimitiveType extends Type {
}
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/PrimitiveValue.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/PrimitiveValue.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,7 +35,6 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public interface PrimitiveValue extends Value {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ReferenceType.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ReferenceType.java Fri Jan 15 19:18:42 2016 +0000
@@ -77,7 +77,6 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public interface ReferenceType
extends Type, Comparable<ReferenceType>, Accessible
{
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ShortType.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ShortType.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,6 +35,5 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public interface ShortType extends PrimitiveType {
}
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ShortValue.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ShortValue.java Fri Jan 15 19:18:42 2016 +0000
@@ -34,7 +34,6 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public interface ShortValue extends PrimitiveValue, Comparable<ShortValue> {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/StackFrame.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/StackFrame.java Fri Jan 15 19:18:42 2016 +0000
@@ -58,7 +58,6 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public interface StackFrame extends Mirror, Locatable {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/StringReference.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/StringReference.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,7 +35,6 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public interface StringReference extends ObjectReference {
/**
* Returns the StringReference as a String. The returned string
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ThreadGroupReference.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ThreadGroupReference.java Fri Jan 15 19:18:42 2016 +0000
@@ -37,7 +37,6 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public interface ThreadGroupReference extends ObjectReference {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ThreadReference.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ThreadReference.java Fri Jan 15 19:18:42 2016 +0000
@@ -36,7 +36,6 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public interface ThreadReference extends ObjectReference {
/** Thread status is unknown */
public final int THREAD_STATUS_UNKNOWN =-1;
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/Type.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/Type.java Fri Jan 15 19:18:42 2016 +0000
@@ -127,7 +127,6 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public interface Type extends Mirror {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/TypeComponent.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/TypeComponent.java Fri Jan 15 19:18:42 2016 +0000
@@ -44,7 +44,6 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public interface TypeComponent extends Mirror, Accessible {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/VMCannotBeModifiedException.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/VMCannotBeModifiedException.java Fri Jan 15 19:18:42 2016 +0000
@@ -32,7 +32,6 @@
* @author Jim Holmlund
* @since 1.5
*/
-@jdk.Exported
public class VMCannotBeModifiedException extends UnsupportedOperationException {
private static final long serialVersionUID = -4063879815130164009L;
public VMCannotBeModifiedException() {
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/VMDisconnectedException.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/VMDisconnectedException.java Fri Jan 15 19:18:42 2016 +0000
@@ -33,7 +33,6 @@
* @author Robert Field
* @since 1.3
*/
-@jdk.Exported
public class VMDisconnectedException extends RuntimeException {
private static final long serialVersionUID = 2892975269768351637L;
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/VMMismatchException.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/VMMismatchException.java Fri Jan 15 19:18:42 2016 +0000
@@ -33,7 +33,6 @@
* @author Gordon Hirsch
* @since 1.3
*/
-@jdk.Exported
public class VMMismatchException extends RuntimeException {
private static final long serialVersionUID = 289169358790459564L;
public VMMismatchException() {
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/VMOutOfMemoryException.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/VMOutOfMemoryException.java Fri Jan 15 19:18:42 2016 +0000
@@ -32,7 +32,6 @@
* @author Gordon Hirsch
* @since 1.3
*/
-@jdk.Exported
public class VMOutOfMemoryException extends RuntimeException {
private static final long serialVersionUID = 71504228548910686L;
public VMOutOfMemoryException() {
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/Value.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/Value.java Fri Jan 15 19:18:42 2016 +0000
@@ -168,7 +168,6 @@
* @since 1.3
*/
-@jdk.Exported
public interface Value extends Mirror {
/**
* Returns the run-time type of this value.
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/VirtualMachine.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/VirtualMachine.java Fri Jan 15 19:18:42 2016 +0000
@@ -70,7 +70,6 @@
* @author James McIlree
* @since 1.3
*/
-@jdk.Exported
public interface VirtualMachine extends Mirror {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/VirtualMachineManager.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/VirtualMachineManager.java Fri Jan 15 19:18:42 2016 +0000
@@ -275,7 +275,6 @@
* @author Gordon Hirsch
* @since 1.3
*/
-@jdk.Exported
public interface VirtualMachineManager {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/VoidType.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/VoidType.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,6 +35,5 @@
* @author Robert Field
* @since 1.3
*/
-@jdk.Exported
public interface VoidType extends Type {
}
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/VoidValue.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/VoidValue.java Fri Jan 15 19:18:42 2016 +0000
@@ -32,7 +32,6 @@
* @author Robert Field
* @since 1.3
*/
-@jdk.Exported
public interface VoidValue extends Value {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/AttachingConnector.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/AttachingConnector.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,7 +35,6 @@
* @author Gordon Hirsch
* @since 1.3
*/
-@jdk.Exported
public interface AttachingConnector extends Connector {
/**
* Attaches to a running application and returns a
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/Connector.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/Connector.java Fri Jan 15 19:18:42 2016 +0000
@@ -45,7 +45,6 @@
* @author Gordon Hirsch
* @since 1.3
*/
-@jdk.Exported
public interface Connector {
/**
* Returns a short identifier for the connector. Connector implementors
@@ -92,7 +91,6 @@
* {@link Connector.IntegerArgument},
* or {@link Connector.SelectedArgument}.
*/
- @jdk.Exported
public interface Argument extends Serializable {
/**
* Returns a short, unique identifier for the argument.
@@ -158,7 +156,6 @@
* whose value is Boolean. Boolean values are represented
* by the localized versions of the strings "true" and "false".
*/
- @jdk.Exported
public interface BooleanArgument extends Argument {
/**
* Sets the value of the argument.
@@ -199,7 +196,6 @@
* whose value is an integer. Integer values are represented
* by their corresponding strings.
*/
- @jdk.Exported
public interface IntegerArgument extends Argument {
/**
* Sets the value of the argument.
@@ -261,7 +257,6 @@
* Specification for and value of a Connector argument,
* whose value is a String.
*/
- @jdk.Exported
public interface StringArgument extends Argument {
/**
* Performs basic sanity check of argument.
@@ -274,7 +269,6 @@
* Specification for and value of a Connector argument,
* whose value is a String selected from a list of choices.
*/
- @jdk.Exported
public interface SelectedArgument extends Argument {
/**
* Return the possible values for the argument
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/IllegalConnectorArgumentsException.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/IllegalConnectorArgumentsException.java Fri Jan 15 19:18:42 2016 +0000
@@ -36,7 +36,6 @@
* @author Gordon Hirsch
* @since 1.3
*/
-@jdk.Exported
public class IllegalConnectorArgumentsException extends Exception {
private static final long serialVersionUID = -3042212603611350941L;
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/LaunchingConnector.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/LaunchingConnector.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,7 +35,6 @@
* @author Gordon Hirsch
* @since 1.3
*/
-@jdk.Exported
public interface LaunchingConnector extends Connector {
/**
* Launches an application and connects to its VM. Properties
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/ListeningConnector.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/ListeningConnector.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,7 +35,6 @@
* @author Gordon Hirsch
* @since 1.3
*/
-@jdk.Exported
public interface ListeningConnector extends Connector {
/**
* Indicates whether this listening connector supports multiple
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/Transport.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/Transport.java Fri Jan 15 19:18:42 2016 +0000
@@ -42,7 +42,6 @@
* @author Gordon Hirsch
* @since 1.3
*/
-@jdk.Exported
public interface Transport {
/**
* Returns a short identifier for the transport.
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/TransportTimeoutException.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/TransportTimeoutException.java Fri Jan 15 19:18:42 2016 +0000
@@ -54,7 +54,6 @@
*
* @since 1.5
*/
-@jdk.Exported
public class TransportTimeoutException extends java.io.IOException {
private static final long serialVersionUID = 4107035242623365074L;
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/VMStartException.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/VMStartException.java Fri Jan 15 19:18:42 2016 +0000
@@ -34,7 +34,6 @@
* @author Gordon Hirsch
* @since 1.3
*/
-@jdk.Exported
public class VMStartException extends Exception {
private static final long serialVersionUID = 6408644824640801020L;
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,5 +35,4 @@
* extension.
*/
-@jdk.Exported
package com.sun.jdi.connect;
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/spi/ClosedConnectionException.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/spi/ClosedConnectionException.java Fri Jan 15 19:18:42 2016 +0000
@@ -45,7 +45,6 @@
*
* @since 1.5
*/
-@jdk.Exported
public class ClosedConnectionException extends java.io.IOException {
private static final long serialVersionUID = 3877032124297204774L;
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/spi/Connection.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/spi/Connection.java Fri Jan 15 19:18:42 2016 +0000
@@ -56,7 +56,6 @@
* @since 1.5
*/
-@jdk.Exported
public abstract class Connection {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/spi/TransportService.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/spi/TransportService.java Fri Jan 15 19:18:42 2016 +0000
@@ -77,7 +77,6 @@
* @since 1.5
*/
-@jdk.Exported
public abstract class TransportService {
/**
@@ -97,7 +96,6 @@
/**
* The transport service capabilities.
*/
- @jdk.Exported
public static abstract class Capabilities {
/**
@@ -231,7 +229,6 @@
* #stopListening stopListening} to stop the transport
* service from listening on an address.
*/
- @jdk.Exported
public static abstract class ListenKey {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/spi/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/spi/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -29,5 +29,4 @@
* implementations.
*/
-@jdk.Exported
package com.sun.jdi.connect.spi;
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/AccessWatchpointEvent.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/AccessWatchpointEvent.java Fri Jan 15 19:18:42 2016 +0000
@@ -37,6 +37,5 @@
* @author Robert Field
* @since 1.3
*/
-@jdk.Exported
public interface AccessWatchpointEvent extends WatchpointEvent {
}
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/BreakpointEvent.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/BreakpointEvent.java Fri Jan 15 19:18:42 2016 +0000
@@ -47,6 +47,5 @@
* @author Robert Field
* @since 1.3
*/
-@jdk.Exported
public interface BreakpointEvent extends LocatableEvent {
}
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/ClassPrepareEvent.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/ClassPrepareEvent.java Fri Jan 15 19:18:42 2016 +0000
@@ -39,7 +39,6 @@
* @author Robert Field
* @since 1.3
*/
-@jdk.Exported
public interface ClassPrepareEvent extends Event {
/**
* Returns the thread in which this event has occurred.
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/ClassUnloadEvent.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/ClassUnloadEvent.java Fri Jan 15 19:18:42 2016 +0000
@@ -39,7 +39,6 @@
* @author Robert Field
* @since 1.3
*/
-@jdk.Exported
public interface ClassUnloadEvent extends Event {
/**
* Returns the name of the class that has been unloaded.
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/Event.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/Event.java Fri Jan 15 19:18:42 2016 +0000
@@ -43,7 +43,6 @@
* @author Robert Field
* @since 1.3
*/
-@jdk.Exported
public interface Event extends Mirror {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/EventIterator.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/EventIterator.java Fri Jan 15 19:18:42 2016 +0000
@@ -40,7 +40,6 @@
* @since 1.3
*/
-@jdk.Exported
public interface EventIterator extends Iterator<Event> {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/EventQueue.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/EventQueue.java Fri Jan 15 19:18:42 2016 +0000
@@ -57,7 +57,6 @@
* @since 1.3
*/
-@jdk.Exported
public interface EventQueue extends Mirror {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/EventSet.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/EventSet.java Fri Jan 15 19:18:42 2016 +0000
@@ -126,7 +126,6 @@
* @since 1.3
*/
-@jdk.Exported
public interface EventSet extends Mirror, Set<Event> {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/ExceptionEvent.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/ExceptionEvent.java Fri Jan 15 19:18:42 2016 +0000
@@ -44,7 +44,6 @@
* @author Robert Field
* @since 1.3
*/
-@jdk.Exported
public interface ExceptionEvent extends LocatableEvent {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/LocatableEvent.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/LocatableEvent.java Fri Jan 15 19:18:42 2016 +0000
@@ -36,7 +36,6 @@
* @author Robert Field
* @since 1.3
*/
-@jdk.Exported
public interface LocatableEvent extends Event, Locatable {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/MethodEntryEvent.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/MethodEntryEvent.java Fri Jan 15 19:18:42 2016 +0000
@@ -43,7 +43,6 @@
* @author Robert Field
* @since 1.3
*/
-@jdk.Exported
public interface MethodEntryEvent extends LocatableEvent {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/MethodExitEvent.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/MethodExitEvent.java Fri Jan 15 19:18:42 2016 +0000
@@ -40,7 +40,6 @@
* @author Robert Field
* @since 1.3
*/
-@jdk.Exported
public interface MethodExitEvent extends LocatableEvent {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/ModificationWatchpointEvent.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/ModificationWatchpointEvent.java Fri Jan 15 19:18:42 2016 +0000
@@ -38,7 +38,6 @@
* @author Robert Field
* @since 1.3
*/
-@jdk.Exported
public interface ModificationWatchpointEvent extends WatchpointEvent {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/MonitorContendedEnterEvent.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/MonitorContendedEnterEvent.java Fri Jan 15 19:18:42 2016 +0000
@@ -39,7 +39,6 @@
* @author Swamy Venkataramanappa
* @since 1.6
*/
-@jdk.Exported
public interface MonitorContendedEnterEvent extends LocatableEvent {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/MonitorContendedEnteredEvent.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/MonitorContendedEnteredEvent.java Fri Jan 15 19:18:42 2016 +0000
@@ -38,7 +38,6 @@
* @author Swamy Venkataramanappa
* @since 1.6
*/
-@jdk.Exported
public interface MonitorContendedEnteredEvent extends LocatableEvent {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/MonitorWaitEvent.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/MonitorWaitEvent.java Fri Jan 15 19:18:42 2016 +0000
@@ -37,7 +37,6 @@
* @author Swamy Venkataramanappa
* @since 1.6
*/
-@jdk.Exported
public interface MonitorWaitEvent extends LocatableEvent {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/MonitorWaitedEvent.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/MonitorWaitedEvent.java Fri Jan 15 19:18:42 2016 +0000
@@ -37,7 +37,6 @@
* @author Swamy Venkataramanappa
* @since 1.6
*/
-@jdk.Exported
public interface MonitorWaitedEvent extends LocatableEvent {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/StepEvent.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/StepEvent.java Fri Jan 15 19:18:42 2016 +0000
@@ -46,6 +46,5 @@
* @author Robert Field
* @since 1.3
*/
-@jdk.Exported
public interface StepEvent extends LocatableEvent {
}
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/ThreadDeathEvent.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/ThreadDeathEvent.java Fri Jan 15 19:18:42 2016 +0000
@@ -45,7 +45,6 @@
* @author Robert Field
* @since 1.3
*/
-@jdk.Exported
public interface ThreadDeathEvent extends Event {
/**
* Returns the thread which is terminating.
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/ThreadStartEvent.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/ThreadStartEvent.java Fri Jan 15 19:18:42 2016 +0000
@@ -52,7 +52,6 @@
* @author Robert Field
* @since 1.3
*/
-@jdk.Exported
public interface ThreadStartEvent extends Event {
/**
* Returns the thread which has started.
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/VMDeathEvent.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/VMDeathEvent.java Fri Jan 15 19:18:42 2016 +0000
@@ -68,6 +68,5 @@
* @author Robert Field
* @since 1.3
*/
-@jdk.Exported
public interface VMDeathEvent extends Event {
}
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/VMDisconnectEvent.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/VMDisconnectEvent.java Fri Jan 15 19:18:42 2016 +0000
@@ -52,6 +52,5 @@
* @author Robert Field
* @since 1.3
*/
-@jdk.Exported
public interface VMDisconnectEvent extends Event {
}
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/VMStartEvent.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/VMStartEvent.java Fri Jan 15 19:18:42 2016 +0000
@@ -43,7 +43,6 @@
* @author Robert Field
* @since 1.3
*/
-@jdk.Exported
public interface VMStartEvent extends Event {
/**
* Returns the initial thread of the VM which has started.
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/WatchpointEvent.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/WatchpointEvent.java Fri Jan 15 19:18:42 2016 +0000
@@ -37,7 +37,6 @@
* @author Robert Field
* @since 1.3
*/
-@jdk.Exported
public interface WatchpointEvent extends LocatableEvent {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -43,5 +43,4 @@
* extension.
*/
-@jdk.Exported
package com.sun.jdi.event;
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -44,5 +44,4 @@
* extension.
*/
-@jdk.Exported
package com.sun.jdi;
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/AccessWatchpointRequest.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/AccessWatchpointRequest.java Fri Jan 15 19:18:42 2016 +0000
@@ -55,6 +55,5 @@
* @author Robert Field
* @since 1.3
*/
-@jdk.Exported
public interface AccessWatchpointRequest extends WatchpointRequest {
}
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/BreakpointRequest.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/BreakpointRequest.java Fri Jan 15 19:18:42 2016 +0000
@@ -46,7 +46,6 @@
* @author Robert Field
* @since 1.3
*/
-@jdk.Exported
public interface BreakpointRequest extends EventRequest, Locatable {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/ClassPrepareRequest.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/ClassPrepareRequest.java Fri Jan 15 19:18:42 2016 +0000
@@ -47,7 +47,6 @@
* @author Robert Field
* @since 1.3
*/
-@jdk.Exported
public interface ClassPrepareRequest extends EventRequest {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/ClassUnloadRequest.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/ClassUnloadRequest.java Fri Jan 15 19:18:42 2016 +0000
@@ -46,7 +46,6 @@
* @author Robert Field
* @since 1.3
*/
-@jdk.Exported
public interface ClassUnloadRequest extends EventRequest {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/DuplicateRequestException.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/DuplicateRequestException.java Fri Jan 15 19:18:42 2016 +0000
@@ -31,7 +31,6 @@
* @author Robert Field
* @since 1.3
*/
-@jdk.Exported
public class DuplicateRequestException extends RuntimeException {
private static final long serialVersionUID = -3719784920313411060L;
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/EventRequest.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/EventRequest.java Fri Jan 15 19:18:42 2016 +0000
@@ -78,7 +78,6 @@
* @author Robert Field
* @since 1.3
*/
-@jdk.Exported
public interface EventRequest extends Mirror {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/EventRequestManager.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/EventRequestManager.java Fri Jan 15 19:18:42 2016 +0000
@@ -44,7 +44,6 @@
* @since 1.3
*/
-@jdk.Exported
public interface EventRequestManager extends Mirror {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/ExceptionRequest.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/ExceptionRequest.java Fri Jan 15 19:18:42 2016 +0000
@@ -43,7 +43,6 @@
* @author Robert Field
* @since 1.3
*/
-@jdk.Exported
public interface ExceptionRequest extends EventRequest {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/InvalidRequestStateException.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/InvalidRequestStateException.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,7 +35,6 @@
* @author Robert Field
* @since 1.3
*/
-@jdk.Exported
public class InvalidRequestStateException extends RuntimeException {
private static final long serialVersionUID = -3774632428543322148L;
public InvalidRequestStateException()
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/MethodEntryRequest.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/MethodEntryRequest.java Fri Jan 15 19:18:42 2016 +0000
@@ -44,7 +44,6 @@
* @author Robert Field
* @since 1.3
*/
-@jdk.Exported
public interface MethodEntryRequest extends EventRequest {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/MethodExitRequest.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/MethodExitRequest.java Fri Jan 15 19:18:42 2016 +0000
@@ -44,7 +44,6 @@
* @author Robert Field
* @since 1.3
*/
-@jdk.Exported
public interface MethodExitRequest extends EventRequest {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/ModificationWatchpointRequest.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/ModificationWatchpointRequest.java Fri Jan 15 19:18:42 2016 +0000
@@ -55,6 +55,5 @@
* @author Robert Field
* @since 1.3
*/
-@jdk.Exported
public interface ModificationWatchpointRequest extends WatchpointRequest {
}
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/MonitorContendedEnterRequest.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/MonitorContendedEnterRequest.java Fri Jan 15 19:18:42 2016 +0000
@@ -45,7 +45,6 @@
* @author Swamy Venkataramanappa
* @since 1.6
*/
-@jdk.Exported
public interface MonitorContendedEnterRequest extends EventRequest {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/MonitorContendedEnteredRequest.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/MonitorContendedEnteredRequest.java Fri Jan 15 19:18:42 2016 +0000
@@ -45,7 +45,6 @@
* @author Swamy Venkataramanappa
* @since 1.6
*/
-@jdk.Exported
public interface MonitorContendedEnteredRequest extends EventRequest {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/MonitorWaitRequest.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/MonitorWaitRequest.java Fri Jan 15 19:18:42 2016 +0000
@@ -45,7 +45,6 @@
* @author Swamy Venkataramanappa
* @since 1.6
*/
-@jdk.Exported
public interface MonitorWaitRequest extends EventRequest {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/MonitorWaitedRequest.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/MonitorWaitedRequest.java Fri Jan 15 19:18:42 2016 +0000
@@ -45,7 +45,6 @@
* @author Swamy Venkataramanappa
* @since 1.6
*/
-@jdk.Exported
public interface MonitorWaitedRequest extends EventRequest {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/StepRequest.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/StepRequest.java Fri Jan 15 19:18:42 2016 +0000
@@ -43,7 +43,6 @@
* @author Robert Field
* @since 1.3
*/
-@jdk.Exported
public interface StepRequest extends EventRequest {
/** Step into any newly pushed frames */
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/ThreadDeathRequest.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/ThreadDeathRequest.java Fri Jan 15 19:18:42 2016 +0000
@@ -44,7 +44,6 @@
* @author Robert Field
* @since 1.3
*/
-@jdk.Exported
public interface ThreadDeathRequest extends EventRequest {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/ThreadStartRequest.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/ThreadStartRequest.java Fri Jan 15 19:18:42 2016 +0000
@@ -44,7 +44,6 @@
* @author Robert Field
* @since 1.3
*/
-@jdk.Exported
public interface ThreadStartRequest extends EventRequest {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/VMDeathRequest.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/VMDeathRequest.java Fri Jan 15 19:18:42 2016 +0000
@@ -56,7 +56,6 @@
* @author Robert Field
* @since 1.4
*/
-@jdk.Exported
public interface VMDeathRequest extends EventRequest {
}
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/WatchpointRequest.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/WatchpointRequest.java Fri Jan 15 19:18:42 2016 +0000
@@ -38,7 +38,6 @@
* @author Robert Field
* @since 1.3
*/
-@jdk.Exported
public interface WatchpointRequest extends EventRequest {
/**
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -42,5 +42,4 @@
* extension.
*/
-@jdk.Exported
package com.sun.jdi.request;
--- a/jdk/src/jdk.management/share/classes/com/sun/management/GarbageCollectionNotificationInfo.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.management/share/classes/com/sun/management/GarbageCollectionNotificationInfo.java Fri Jan 15 19:18:42 2016 +0000
@@ -82,7 +82,6 @@
* </ul>
**/
-@jdk.Exported
public class GarbageCollectionNotificationInfo implements CompositeDataView {
private final String gcName;
--- a/jdk/src/jdk.management/share/classes/com/sun/management/GarbageCollectorMXBean.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.management/share/classes/com/sun/management/GarbageCollectorMXBean.java Fri Jan 15 19:18:42 2016 +0000
@@ -37,7 +37,6 @@
* @author Mandy Chung
* @since 1.5
*/
-@jdk.Exported
public interface GarbageCollectorMXBean
extends java.lang.management.GarbageCollectorMXBean {
--- a/jdk/src/jdk.management/share/classes/com/sun/management/GcInfo.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.management/share/classes/com/sun/management/GcInfo.java Fri Jan 15 19:18:42 2016 +0000
@@ -63,7 +63,6 @@
* @author Mandy Chung
* @since 1.5
*/
-@jdk.Exported
public class GcInfo implements CompositeData, CompositeDataView {
private final long index;
private final long startTime;
--- a/jdk/src/jdk.management/share/classes/com/sun/management/HotSpotDiagnosticMXBean.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.management/share/classes/com/sun/management/HotSpotDiagnosticMXBean.java Fri Jan 15 19:18:42 2016 +0000
@@ -47,7 +47,6 @@
*
* @see java.lang.management.ManagementFactory#getPlatformMXBeans(Class)
*/
-@jdk.Exported
public interface HotSpotDiagnosticMXBean extends PlatformManagedObject {
/**
* Dumps the heap to the {@code outputFile} file in the same
--- a/jdk/src/jdk.management/share/classes/com/sun/management/OperatingSystemMXBean.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.management/share/classes/com/sun/management/OperatingSystemMXBean.java Fri Jan 15 19:18:42 2016 +0000
@@ -39,7 +39,6 @@
* @author Mandy Chung
* @since 1.5
*/
-@jdk.Exported
public interface OperatingSystemMXBean extends
java.lang.management.OperatingSystemMXBean {
--- a/jdk/src/jdk.management/share/classes/com/sun/management/ThreadMXBean.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.management/share/classes/com/sun/management/ThreadMXBean.java Fri Jan 15 19:18:42 2016 +0000
@@ -38,7 +38,6 @@
* @since 6u25
*/
-@jdk.Exported
public interface ThreadMXBean extends java.lang.management.ThreadMXBean {
/**
* Returns the total CPU time for each thread whose ID is
--- a/jdk/src/jdk.management/share/classes/com/sun/management/UnixOperatingSystemMXBean.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.management/share/classes/com/sun/management/UnixOperatingSystemMXBean.java Fri Jan 15 19:18:42 2016 +0000
@@ -32,7 +32,6 @@
* @author Mandy Chung
* @since 1.5
*/
-@jdk.Exported
public interface UnixOperatingSystemMXBean extends
com.sun.management.OperatingSystemMXBean {
--- a/jdk/src/jdk.management/share/classes/com/sun/management/VMOption.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.management/share/classes/com/sun/management/VMOption.java Fri Jan 15 19:18:42 2016 +0000
@@ -52,7 +52,6 @@
* @author Mandy Chung
* @since 1.6
*/
-@jdk.Exported
public class VMOption {
private String name;
private String value;
@@ -65,7 +64,6 @@
*
* @since 1.6
*/
- @jdk.Exported
public enum Origin {
/**
* The VM option has not been set and its value
--- a/jdk/src/jdk.management/share/classes/com/sun/management/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.management/share/classes/com/sun/management/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -40,5 +40,4 @@
* @since 1.5
*/
-@jdk.Exported
package com.sun.management;
--- a/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/AbstractNotificationHandler.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/AbstractNotificationHandler.java Fri Jan 15 19:18:42 2016 +0000
@@ -39,7 +39,6 @@
*
* @since 1.7
*/
-@jdk.Exported
public class AbstractNotificationHandler<T>
implements NotificationHandler<T>
{
--- a/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/Association.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/Association.java Fri Jan 15 19:18:42 2016 +0000
@@ -51,7 +51,6 @@
*
* @since 1.7
*/
-@jdk.Exported
public class Association {
private final int associationID;
private final int maxInStreams;
--- a/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/AssociationChangeNotification.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/AssociationChangeNotification.java Fri Jan 15 19:18:42 2016 +0000
@@ -29,7 +29,6 @@
*
* @since 1.7
*/
-@jdk.Exported
public abstract class AssociationChangeNotification
implements Notification
{
@@ -38,7 +37,6 @@
*
* @since 1.7
*/
- @jdk.Exported
public enum AssocChangeEvent
{
/**
--- a/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/HandlerResult.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/HandlerResult.java Fri Jan 15 19:18:42 2016 +0000
@@ -34,7 +34,6 @@
*
* @since 1.7
*/
-@jdk.Exported
public enum HandlerResult {
/**
* Try to receieve another message or notification.
--- a/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/IllegalReceiveException.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/IllegalReceiveException.java Fri Jan 15 19:18:42 2016 +0000
@@ -31,7 +31,6 @@
*
* @since 1.7
*/
-@jdk.Exported
public class IllegalReceiveException extends IllegalStateException {
private static final long serialVersionUID = 2296619040988576224L;
--- a/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/IllegalUnbindException.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/IllegalUnbindException.java Fri Jan 15 19:18:42 2016 +0000
@@ -31,7 +31,6 @@
*
* @since 1.7
*/
-@jdk.Exported
public class IllegalUnbindException extends IllegalStateException {
private static final long serialVersionUID = -310540883995532224L;
--- a/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/InvalidStreamException.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/InvalidStreamException.java Fri Jan 15 19:18:42 2016 +0000
@@ -30,7 +30,6 @@
*
* @since 1.7
*/
-@jdk.Exported
public class InvalidStreamException extends IllegalArgumentException {
private static final long serialVersionUID = -9172703378046665558L;
--- a/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/MessageInfo.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/MessageInfo.java Fri Jan 15 19:18:42 2016 +0000
@@ -56,7 +56,6 @@
*
* @since 1.7
*/
-@jdk.Exported
public abstract class MessageInfo {
/**
* Initializes a new instance of this class.
--- a/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/Notification.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/Notification.java Fri Jan 15 19:18:42 2016 +0000
@@ -37,7 +37,6 @@
*
* @since 1.7
*/
-@jdk.Exported
public interface Notification {
/**
* Returns the association that this notification is applicable to.
--- a/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/NotificationHandler.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/NotificationHandler.java Fri Jan 15 19:18:42 2016 +0000
@@ -49,7 +49,6 @@
*
* @since 1.7
*/
-@jdk.Exported
public interface NotificationHandler<T> {
/**
* Invoked when a notification is received from the SCTP stack.
--- a/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/PeerAddressChangeNotification.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/PeerAddressChangeNotification.java Fri Jan 15 19:18:42 2016 +0000
@@ -32,7 +32,6 @@
*
* @since 1.7
*/
-@jdk.Exported
public abstract class PeerAddressChangeNotification
implements Notification
{
@@ -47,7 +46,6 @@
*
* @since 1.7
*/
- @jdk.Exported
public enum AddressChangeEvent {
/**
* This address is now reachable.
--- a/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/SctpChannel.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/SctpChannel.java Fri Jan 15 19:18:42 2016 +0000
@@ -134,7 +134,6 @@
*
* @since 1.7
*/
-@jdk.Exported
public abstract class SctpChannel
extends AbstractSelectableChannel
{
--- a/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/SctpMultiChannel.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/SctpMultiChannel.java Fri Jan 15 19:18:42 2016 +0000
@@ -134,7 +134,6 @@
*
* @since 1.7
*/
-@jdk.Exported
public abstract class SctpMultiChannel
extends AbstractSelectableChannel
{
--- a/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/SctpServerChannel.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/SctpServerChannel.java Fri Jan 15 19:18:42 2016 +0000
@@ -68,7 +68,6 @@
*
* @since 1.7
*/
-@jdk.Exported
public abstract class SctpServerChannel
extends AbstractSelectableChannel
{
--- a/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/SctpSocketOption.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/SctpSocketOption.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,5 +35,4 @@
*
* @see SctpStandardSocketOptions
*/
-@jdk.Exported
public interface SctpSocketOption<T> extends SocketOption<T> { }
--- a/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/SctpStandardSocketOptions.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/SctpStandardSocketOptions.java Fri Jan 15 19:18:42 2016 +0000
@@ -34,7 +34,6 @@
*
* @since 1.7
*/
-@jdk.Exported
public class SctpStandardSocketOptions {
private SctpStandardSocketOptions() {}
/**
@@ -316,7 +315,6 @@
*
* @since 1.7
*/
- @jdk.Exported
public static class InitMaxStreams {
private int maxInStreams;
private int maxOutStreams;
--- a/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/SendFailedNotification.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/SendFailedNotification.java Fri Jan 15 19:18:42 2016 +0000
@@ -37,7 +37,6 @@
*
* @since 1.7
*/
-@jdk.Exported
public abstract class SendFailedNotification implements Notification {
/**
* Initializes a new instance of this class.
--- a/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/ShutdownNotification.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/ShutdownNotification.java Fri Jan 15 19:18:42 2016 +0000
@@ -32,7 +32,6 @@
*
* @since 1.7
*/
-@jdk.Exported
public abstract class ShutdownNotification implements Notification {
/**
* Initializes a new instance of this class.
--- a/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -72,5 +72,4 @@
* @since 1.7
*/
-@jdk.Exported
package com.sun.nio.sctp;
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/LdapPrincipal.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/LdapPrincipal.java Fri Jan 15 19:18:42 2016 +0000
@@ -45,7 +45,6 @@
*
* @since 1.6
*/
-@jdk.Exported
public final class LdapPrincipal implements Principal, java.io.Serializable {
private static final long serialVersionUID = 6820120005580754861L;
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/NTDomainPrincipal.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/NTDomainPrincipal.java Fri Jan 15 19:18:42 2016 +0000
@@ -45,7 +45,6 @@
* @see java.security.Principal
* @see javax.security.auth.Subject
*/
-@jdk.Exported
public class NTDomainPrincipal implements Principal, java.io.Serializable {
private static final long serialVersionUID = -4408637351440771220L;
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/NTNumericCredential.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/NTNumericCredential.java Fri Jan 15 19:18:42 2016 +0000
@@ -30,7 +30,6 @@
* and provides a mechanism to do same-process security impersonation.
*/
-@jdk.Exported
public class NTNumericCredential {
private long impersonationToken;
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/NTSid.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/NTSid.java Fri Jan 15 19:18:42 2016 +0000
@@ -47,7 +47,6 @@
* @see java.security.Principal
* @see javax.security.auth.Subject
*/
-@jdk.Exported
public class NTSid implements Principal, java.io.Serializable {
private static final long serialVersionUID = 4412290580770249885L;
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/NTSidDomainPrincipal.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/NTSidDomainPrincipal.java Fri Jan 15 19:18:42 2016 +0000
@@ -43,7 +43,6 @@
* @see java.security.Principal
* @see javax.security.auth.Subject
*/
-@jdk.Exported
public class NTSidDomainPrincipal extends NTSid {
private static final long serialVersionUID = 5247810785821650912L;
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/NTSidGroupPrincipal.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/NTSidGroupPrincipal.java Fri Jan 15 19:18:42 2016 +0000
@@ -40,7 +40,6 @@
* @see javax.security.auth.Subject
* @see com.sun.security.auth.NTSid
*/
-@jdk.Exported
public class NTSidGroupPrincipal extends NTSid {
private static final long serialVersionUID = -1373347438636198229L;
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/NTSidPrimaryGroupPrincipal.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/NTSidPrimaryGroupPrincipal.java Fri Jan 15 19:18:42 2016 +0000
@@ -39,7 +39,6 @@
* @see java.security.Principal
* @see javax.security.auth.Subject
*/
-@jdk.Exported
public class NTSidPrimaryGroupPrincipal extends NTSid {
private static final long serialVersionUID = 8011978367305190527L;
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/NTSidUserPrincipal.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/NTSidUserPrincipal.java Fri Jan 15 19:18:42 2016 +0000
@@ -39,7 +39,6 @@
* @see java.security.Principal
* @see javax.security.auth.Subject
*/
-@jdk.Exported
public class NTSidUserPrincipal extends NTSid {
private static final long serialVersionUID = -5573239889517749525L;
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/NTUserPrincipal.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/NTUserPrincipal.java Fri Jan 15 19:18:42 2016 +0000
@@ -41,7 +41,6 @@
* @see java.security.Principal
* @see javax.security.auth.Subject
*/
-@jdk.Exported
public class NTUserPrincipal implements Principal, java.io.Serializable {
private static final long serialVersionUID = -8737649811939033735L;
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/PolicyFile.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/PolicyFile.java Fri Jan 15 19:18:42 2016 +0000
@@ -215,7 +215,6 @@
* @see java.security.ProtectionDomain
* @see java.security.Security security properties
*/
-@jdk.Exported(false)
@Deprecated
public class PolicyFile extends javax.security.auth.Policy {
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/PrincipalComparator.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/PrincipalComparator.java Fri Jan 15 19:18:42 2016 +0000
@@ -50,7 +50,6 @@
* @see java.security.Principal
* @see javax.security.auth.Subject
*/
-@jdk.Exported
public interface PrincipalComparator {
/**
* Check if the specified {@code Subject} is implied by
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/SolarisNumericGroupPrincipal.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/SolarisNumericGroupPrincipal.java Fri Jan 15 19:18:42 2016 +0000
@@ -45,7 +45,6 @@
* @see java.security.Principal
* @see javax.security.auth.Subject
*/
-@jdk.Exported(false)
@Deprecated
public class SolarisNumericGroupPrincipal implements
Principal,
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/SolarisNumericUserPrincipal.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/SolarisNumericUserPrincipal.java Fri Jan 15 19:18:42 2016 +0000
@@ -44,7 +44,6 @@
* @see java.security.Principal
* @see javax.security.auth.Subject
*/
-@jdk.Exported(false)
@Deprecated
public class SolarisNumericUserPrincipal implements
Principal,
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/SolarisPrincipal.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/SolarisPrincipal.java Fri Jan 15 19:18:42 2016 +0000
@@ -44,7 +44,6 @@
* @see java.security.Principal
* @see javax.security.auth.Subject
*/
-@jdk.Exported(false)
@Deprecated
public class SolarisPrincipal implements Principal, java.io.Serializable {
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/UnixNumericGroupPrincipal.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/UnixNumericGroupPrincipal.java Fri Jan 15 19:18:42 2016 +0000
@@ -41,7 +41,6 @@
* @see java.security.Principal
* @see javax.security.auth.Subject
*/
-@jdk.Exported
public class UnixNumericGroupPrincipal implements
Principal,
java.io.Serializable {
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/UnixNumericUserPrincipal.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/UnixNumericUserPrincipal.java Fri Jan 15 19:18:42 2016 +0000
@@ -41,7 +41,6 @@
* @see java.security.Principal
* @see javax.security.auth.Subject
*/
-@jdk.Exported
public class UnixNumericUserPrincipal implements
Principal,
java.io.Serializable {
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/UnixPrincipal.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/UnixPrincipal.java Fri Jan 15 19:18:42 2016 +0000
@@ -41,7 +41,6 @@
* @see java.security.Principal
* @see javax.security.auth.Subject
*/
-@jdk.Exported
public class UnixPrincipal implements Principal, java.io.Serializable {
private static final long serialVersionUID = -2951667807323493631L;
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/UserPrincipal.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/UserPrincipal.java Fri Jan 15 19:18:42 2016 +0000
@@ -42,7 +42,6 @@
*
* @since 1.6
*/
-@jdk.Exported
public final class UserPrincipal implements Principal, java.io.Serializable {
private static final long serialVersionUID = 892106070870210969L;
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/X500Principal.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/X500Principal.java Fri Jan 15 19:18:42 2016 +0000
@@ -49,7 +49,6 @@
* class.
* @see javax.security.auth.x500.X500Principal
*/
-@jdk.Exported(false)
@Deprecated
public class X500Principal implements Principal, java.io.Serializable {
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/callback/TextCallbackHandler.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/callback/TextCallbackHandler.java Fri Jan 15 19:18:42 2016 +0000
@@ -46,7 +46,6 @@
* @see javax.security.auth.callback
*/
-@jdk.Exported
public class TextCallbackHandler implements CallbackHandler {
private final CallbackHandler consoleHandler;
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/callback/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/callback/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -23,5 +23,4 @@
* questions.
*/
-@jdk.Exported
package com.sun.security.auth.callback;
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/login/ConfigFile.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/login/ConfigFile.java Fri Jan 15 19:18:42 2016 +0000
@@ -83,7 +83,6 @@
* @see javax.security.auth.login.LoginContext
* @see java.security.Security security properties
*/
-@jdk.Exported
public class ConfigFile extends Configuration {
private final sun.security.provider.ConfigFile.Spi spi;
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/login/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/login/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -23,5 +23,4 @@
* questions.
*/
-@jdk.Exported
package com.sun.security.auth.login;
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/module/JndiLoginModule.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/module/JndiLoginModule.java Fri Jan 15 19:18:42 2016 +0000
@@ -151,7 +151,6 @@
* </pre>
*
*/
-@jdk.Exported
public class JndiLoginModule implements LoginModule {
private static final ResourceBundle rb = AccessController.doPrivileged(
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java Fri Jan 15 19:18:42 2016 +0000
@@ -110,7 +110,6 @@
*
* </dl>
*/
-@jdk.Exported
public class KeyStoreLoginModule implements LoginModule {
private static final ResourceBundle rb = AccessController.doPrivileged(
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/module/Krb5LoginModule.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/module/Krb5LoginModule.java Fri Jan 15 19:18:42 2016 +0000
@@ -367,7 +367,6 @@
* @author Ram Marti
*/
-@jdk.Exported
public class Krb5LoginModule implements LoginModule {
// initial state
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/module/LdapLoginModule.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/module/LdapLoginModule.java Fri Jan 15 19:18:42 2016 +0000
@@ -303,7 +303,6 @@
*
* @since 1.6
*/
-@jdk.Exported
public class LdapLoginModule implements LoginModule {
// Use the default classloader for this class to load the prompt strings.
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/module/NTLoginModule.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/module/NTLoginModule.java Fri Jan 15 19:18:42 2016 +0000
@@ -57,7 +57,6 @@
*
* @see javax.security.auth.spi.LoginModule
*/
-@jdk.Exported
public class NTLoginModule implements LoginModule {
private NTSystem ntSystem;
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/module/NTSystem.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/module/NTSystem.java Fri Jan 15 19:18:42 2016 +0000
@@ -30,7 +30,6 @@
* security information for the current user.
*
*/
-@jdk.Exported
public class NTSystem {
private native void getCurrent(boolean debug);
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/module/SolarisLoginModule.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/module/SolarisLoginModule.java Fri Jan 15 19:18:42 2016 +0000
@@ -52,7 +52,6 @@
* UnixLoginModule.
*
*/
-@jdk.Exported(false)
@Deprecated
public class SolarisLoginModule implements LoginModule {
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/module/SolarisSystem.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/module/SolarisSystem.java Fri Jan 15 19:18:42 2016 +0000
@@ -31,7 +31,6 @@
*
* @deprecated replaced by {@link UnixSystem}.
*/
-@jdk.Exported(false)
@Deprecated
public class SolarisSystem {
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/module/UnixLoginModule.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/module/UnixLoginModule.java Fri Jan 15 19:18:42 2016 +0000
@@ -47,7 +47,6 @@
* debug messages will be output to the output stream, System.out.
*
*/
-@jdk.Exported
public class UnixLoginModule implements LoginModule {
// initial state
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/module/UnixSystem.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/module/UnixSystem.java Fri Jan 15 19:18:42 2016 +0000
@@ -29,7 +29,6 @@
* This class implementation retrieves and makes available Unix
* UID/GID/groups information for the current user.
*/
-@jdk.Exported
public class UnixSystem {
private native void getUnixInfo();
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/module/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/module/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -23,5 +23,4 @@
* questions.
*/
-@jdk.Exported
package com.sun.security.auth.module;
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -23,5 +23,4 @@
* questions.
*/
-@jdk.Exported
package com.sun.security.auth;
--- a/jdk/src/jdk.security.jgss/share/classes/com/sun/security/jgss/AuthorizationDataEntry.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.jgss/share/classes/com/sun/security/jgss/AuthorizationDataEntry.java Fri Jan 15 19:18:42 2016 +0000
@@ -28,7 +28,6 @@
/**
* Kerberos 5 AuthorizationData entry.
*/
-@jdk.Exported
public final class AuthorizationDataEntry {
private final int type;
--- a/jdk/src/jdk.security.jgss/share/classes/com/sun/security/jgss/ExtendedGSSContext.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.jgss/share/classes/com/sun/security/jgss/ExtendedGSSContext.java Fri Jan 15 19:18:42 2016 +0000
@@ -34,7 +34,6 @@
* functionalities not defined by {@code org.ietf.jgss.GSSContext},
* such as querying context-specific attributes.
*/
-@jdk.Exported
public interface ExtendedGSSContext extends GSSContext {
// The impl is almost identical to GSSContextImpl with only 2 differences:
--- a/jdk/src/jdk.security.jgss/share/classes/com/sun/security/jgss/ExtendedGSSCredential.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.jgss/share/classes/com/sun/security/jgss/ExtendedGSSCredential.java Fri Jan 15 19:18:42 2016 +0000
@@ -33,7 +33,6 @@
* functionalities not defined by {@code org.ietf.jgss.GSSCredential}.
* @since 1.8
*/
-@jdk.Exported
public interface ExtendedGSSCredential extends GSSCredential {
static class ExtendedGSSCredentialImpl extends GSSCredentialImpl
--- a/jdk/src/jdk.security.jgss/share/classes/com/sun/security/jgss/GSSUtil.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.jgss/share/classes/com/sun/security/jgss/GSSUtil.java Fri Jan 15 19:18:42 2016 +0000
@@ -33,7 +33,6 @@
* GSS-API Utilities for using in conjunction with Sun Microsystem's
* implementation of Java GSS-API.
*/
-@jdk.Exported
public class GSSUtil {
/**
--- a/jdk/src/jdk.security.jgss/share/classes/com/sun/security/jgss/InquireSecContextPermission.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.jgss/share/classes/com/sun/security/jgss/InquireSecContextPermission.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,7 +35,6 @@
*
* <p>The target name is the {@link InquireType} allowed.
*/
-@jdk.Exported
public final class InquireSecContextPermission extends BasicPermission {
private static final long serialVersionUID = -7131173349668647297L;
--- a/jdk/src/jdk.security.jgss/share/classes/com/sun/security/jgss/InquireType.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.jgss/share/classes/com/sun/security/jgss/InquireType.java Fri Jan 15 19:18:42 2016 +0000
@@ -29,7 +29,6 @@
* Attribute types that can be specified as an argument of
* {@link com.sun.security.jgss.ExtendedGSSContext#inquireSecContext}
*/
-@jdk.Exported
public enum InquireType {
/**
* Attribute type for retrieving the session key of an established
--- a/jdk/src/jdk.security.jgss/share/classes/com/sun/security/jgss/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/src/jdk.security.jgss/share/classes/com/sun/security/jgss/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -23,5 +23,4 @@
* questions.
*/
-@jdk.Exported
package com.sun.security.jgss;
--- a/jdk/test/ProblemList.txt Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/test/ProblemList.txt Fri Jan 15 19:18:42 2016 +0000
@@ -1,6 +1,6 @@
###########################################################################
#
-# Copyright (c) 2009, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2009, 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
@@ -299,6 +299,9 @@
# 8074580
sun/security/pkcs11/rsa/TestKeyPairGenerator.java generic-all
+# 8146387
+javax/net/ssl/SSLSession/SessionCacheSizeTests.java windows-all,solaris-all
+
############################################################################
# jdk_sound
--- a/jdk/test/TEST.groups Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/test/TEST.groups Fri Jan 15 19:18:42 2016 +0000
@@ -77,7 +77,6 @@
sun/misc \
sun/reflect \
jdk/lambda \
- jdk/internal/jimage \
vm
# All of the java.util package
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/io/RandomAccessFile/FileLengthTest.java Fri Jan 15 19:18:42 2016 +0000
@@ -0,0 +1,137 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute 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 randomAccessFile that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 4823133
+ * @summary optimize RandomAccessFile.length() and length() is thread safe now.
+ */
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.RandomAccessFile;
+
+/**
+ *
+ * @author vyom.tewari@oracle.com
+ */
+public class FileLengthTest {
+
+ private static final int BUF_SIZE = 4096;
+ private static RandomAccessFile randomAccessFile;
+ private static Thread fileLengthCaller;
+ private static Thread fileContentReader;
+ private static StringBuilder fileContents;
+ private static volatile boolean isFailed = false;
+
+ /**
+ * this thread will call length() in loop
+ */
+ private static void startLengthThread() {
+ if (randomAccessFile == null) {
+ return;
+ }
+ fileLengthCaller = new Thread(() -> {
+ while (true) {
+ try {
+ long length = randomAccessFile.length();
+ if (length < 0) {
+ return;
+ }
+ } catch (IOException ex) {
+ return;
+ }
+ }
+ });
+ fileLengthCaller.setName("RandomAccessFile-length-caller");
+ fileLengthCaller.setDaemon(true);
+ fileLengthCaller.start();
+ }
+
+ /**
+ * this thread will call read() and store the content in internal buffer.
+ */
+ private static void startReaderThread() {
+ if (randomAccessFile == null) {
+ return;
+ }
+ fileContentReader = new Thread(() -> {
+ StringBuilder sb = new StringBuilder(BUF_SIZE);
+ int i;
+ byte arr[] = new byte[8];
+ try {
+ while ((i = randomAccessFile.read(arr)) != -1) {
+ sb.append(new String(arr, 0, i));
+ }
+ if (!sb.toString().equals(fileContents.toString())) {
+ isFailed = true;
+ }
+ } catch (IOException ex) {
+ }
+ });
+ fileContentReader.setName("RandomAccessFile-content-reader");
+ fileContentReader.setDaemon(true);
+ fileContentReader.start();
+ }
+
+ public static void main(String args[]) {
+ byte arr[] = new byte[BUF_SIZE];
+ String testFile = "testfile.txt";
+ try {
+ createDummyFile(testFile);
+ File file = new File(testFile);
+ file.deleteOnExit();
+ randomAccessFile = new RandomAccessFile(file, "r");
+ int count = randomAccessFile.read(arr);
+ randomAccessFile.seek(0);
+ fileContents = new StringBuilder(BUF_SIZE);
+ fileContents.append(new String(arr, 0, count));
+ startLengthThread();
+ startReaderThread();
+ fileContentReader.join();
+ } catch (FileNotFoundException | InterruptedException ex) {
+ } catch (IOException ex) {
+ } finally {
+ try {
+ randomAccessFile.close();
+ } catch (IOException ex) {
+ }
+ }
+ if (isFailed) {
+ throw new RuntimeException("RandomAccessFile.length() changed the underlying file pointer.");
+ }
+ }
+
+ private static void createDummyFile(String fileName) throws FileNotFoundException, IOException {
+ try (FileOutputStream outputStream = new FileOutputStream(new File(fileName))) {
+ String str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
+ int count = 0;
+ while ((count + str.length()) < BUF_SIZE) {
+ outputStream.write(str.getBytes());
+ count += str.length();
+ }
+ outputStream.flush();
+ }
+ }
+}
--- a/jdk/test/java/lang/ProcessHandle/Basic.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/test/java/lang/ProcessHandle/Basic.java Fri Jan 15 19:18:42 2016 +0000
@@ -27,8 +27,8 @@
import static org.testng.Assert.fail;
import java.io.IOException;
+import java.util.List;
import java.util.Optional;
-import java.util.List;
import java.util.stream.Collectors;
import org.testng.TestNG;
@@ -36,6 +36,8 @@
/*
* @test
+ * @library /test/lib/share/classes
+ * @run testng InfoTest
* @summary Basic tests for ProcessHandler
* @author Roger Riggs
*/
--- a/jdk/test/java/lang/ProcessHandle/InfoTest.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/test/java/lang/ProcessHandle/InfoTest.java Fri Jan 15 19:18:42 2016 +0000
@@ -21,11 +21,10 @@
* questions.
*/
+import java.io.BufferedReader;
import java.io.File;
-import java.io.BufferedReader;
import java.io.IOException;
import java.io.UncheckedIOException;
-import java.lang.ProcessBuilder;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
@@ -40,18 +39,18 @@
import java.util.Random;
import java.util.concurrent.TimeUnit;
-import jdk.testlibrary.Platform;
-import jdk.testlibrary.Utils;
-
+import jdk.test.lib.Platform;
+import jdk.test.lib.Utils;
import org.testng.Assert;
+import org.testng.TestNG;
import org.testng.annotations.Test;
-import org.testng.TestNG;
/*
* @test
* @bug 8077350 8081566 8081567 8098852 8136597
- * @build jdk.testlibrary.*
- * @library /lib/testlibrary
+ * @library /test/lib/share/classes
+ * @build jdk.test.lib.Platform jdk.test.lib.Utils
+ * @run testng InfoTest
* @summary Functions of ProcessHandle.Info
* @author Roger Riggs
* @key intermittent
--- a/jdk/test/java/lang/ProcessHandle/OnExitTest.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/test/java/lang/ProcessHandle/OnExitTest.java Fri Jan 15 19:18:42 2016 +0000
@@ -22,7 +22,6 @@
*/
import java.io.IOException;
-import java.lang.InterruptedException;
import java.time.Duration;
import java.time.Instant;
import java.util.ArrayList;
@@ -31,7 +30,7 @@
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ExecutionException;
-import jdk.testlibrary.Utils;
+import jdk.test.lib.Utils;
import org.testng.annotations.Test;
import org.testng.Assert;
@@ -39,7 +38,9 @@
/*
* @test
- * @build jdk.testlibrary.Utils
+ * @library /test/lib/share/classes
+ * @build jdk.test.lib.Platform jdk.test.lib.Utils
+ * @run testng OnExitTest
* @summary Functions of Process.onExit and ProcessHandle.onExit
* @author Roger Riggs
*/
--- a/jdk/test/java/lang/ProcessHandle/PermissionTest.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/test/java/lang/ProcessHandle/PermissionTest.java Fri Jan 15 19:18:42 2016 +0000
@@ -31,7 +31,6 @@
import java.security.ProtectionDomain;
import java.security.SecurityPermission;
import java.util.Arrays;
-import java.util.Optional;
import java.util.PropertyPermission;
import org.testng.Assert;
@@ -39,6 +38,12 @@
import org.testng.annotations.BeforeGroups;
import org.testng.annotations.Test;
+/*
+ * @test
+ * @run testng/othervm PermissionTest
+ * @summary Test Permissions to access Info
+ */
+
public class PermissionTest {
/**
* Backing up policy.
--- a/jdk/test/java/lang/ProcessHandle/ProcessUtil.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/test/java/lang/ProcessHandle/ProcessUtil.java Fri Jan 15 19:18:42 2016 +0000
@@ -23,18 +23,13 @@
import java.io.IOException;
import java.lang.management.ManagementFactory;
-import java.lang.ProcessBuilder;
import java.time.Duration;
import java.util.List;
-import java.util.Objects;
import java.util.stream.Collectors;
+import java.util.stream.Stream;
import com.sun.management.OperatingSystemMXBean;
-
-import jdk.testlibrary.Platform;
-
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
+import jdk.test.lib.Platform;
/**
* Useful utilities for testing Process and ProcessHandle.
--- a/jdk/test/java/lang/ProcessHandle/TEST.properties Fri Jan 15 08:53:23 2016 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-# ProcessHandle tests use TestNG
-TestNG.dirs = .
-lib.dirs = /lib/testlibrary
-modules = jdk.management
--- a/jdk/test/java/lang/ProcessHandle/TreeTest.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/test/java/lang/ProcessHandle/TreeTest.java Fri Jan 15 19:18:42 2016 +0000
@@ -23,30 +23,31 @@
import java.io.IOException;
-import java.util.ArrayList;
import java.time.Duration;
import java.time.Instant;
+import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Collections;
import java.util.List;
import java.util.Optional;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import java.util.concurrent.ExecutionException;
-import jdk.testlibrary.Utils;
+
+import jdk.test.lib.Utils;
import org.testng.Assert;
import org.testng.TestNG;
import org.testng.annotations.Test;
/*
* @test
- * @library /lib/testlibrary
- * Test counting and JavaChild.spawning and counting of Processes.
- * @run testng/othervm InfoTest
+ * @library /test/lib/share/classes
+ * @build jdk.test.lib.Utils
+ * @run testng/othervm TreeTest
+ * @summary Test counting and JavaChild.spawning and counting of Processes.
* @key intermittent
* @author Roger Riggs
*/
--- a/jdk/test/java/lang/StackWalker/LocalsAndOperands.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/test/java/lang/StackWalker/LocalsAndOperands.java Fri Jan 15 19:18:42 2016 +0000
@@ -86,29 +86,43 @@
System.out.println("frame: " + f);
Object[] locals = (Object[]) getLocals.invoke(f);
for (int i = 0; i < locals.length; i++) {
- System.out.format("local %d: %s type %s%n", i, locals[i], type(locals[i]));
+ System.out.format(" local %d: %s type %s\n", i, locals[i], type(locals[i]));
+
+ // check for non-null locals in LocalsAndOperands.test()
+ if (f.getClassName().equals("LocalsAndOperands") &&
+ f.getMethodName().equals("test")) {
+ if (locals[i] == null) {
+ throw new RuntimeException("kept-alive locals should not be null");
+ }
+ }
}
Object[] operands = (Object[]) getOperands.invoke(f);
for (int i = 0; i < operands.length; i++) {
- System.out.format("operand %d: %s type %s%n", i, operands[i], type(operands[i]));
+ System.out.format(" operand %d: %s type %s%n", i, operands[i],
+ type(operands[i]));
}
Object[] monitors = (Object[]) getMonitors.invoke(f);
for (int i = 0; i < monitors.length; i++) {
- System.out.format("monitor %d: %s%n", i, monitors[i]);
+ System.out.format(" monitor %d: %s%n", i, monitors[i]);
}
}
} else {
for (StackFrame f : frames) {
- if (liveStackFrameClass.isInstance(f))
+ if (liveStackFrameClass.isInstance(f)) {
throw new RuntimeException("should not be LiveStackFrame");
+ }
}
}
+ // Use local variables so they stay alive
+ System.out.println("Stayin' alive: "+x+" "+c+" "+hi+" "+l+" "+d);
}
String type(Object o) throws Exception {
- if (primitiveValueClass.isInstance(o)) {
+ if (o == null) {
+ return "null";
+ } else if (primitiveValueClass.isInstance(o)) {
char c = (char)primitiveType.invoke(o);
return String.valueOf(c);
} else {
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/lang/invoke/8076596/Test8076596.java Fri Jan 15 19:18:42 2016 +0000
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2015, 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. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/* @test
+ * @bug 8076596
+ * @run main/othervm/policy=Test8076596.security.policy/secure=Test8076596 -ea -esa Test8076596
+ */
+
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+
+public class Test8076596 extends SecurityManager {
+ public Test8076596() {
+ // 1. Using lambda
+ AccessController.doPrivileged((PrivilegedAction<Void>) () -> null);
+ // 2. Using inner class
+ AccessController.doPrivileged(new PrivilegedAction<Void>() {
+ @Override
+ public Void run() {
+ return null;
+ }
+ });
+ }
+
+ public static void main(String[] args) {
+ // empty
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/lang/invoke/8076596/Test8076596.security.policy Fri Jan 15 19:18:42 2016 +0000
@@ -0,0 +1,8 @@
+/*
+ * Security policy used by the Test8076596.
+ * Must allow file reads so that jtreg itself can run.
+ */
+
+grant {
+ permission java.io.FilePermission "*", "read";
+};
--- a/jdk/test/java/lang/invoke/FindClassSecurityManager.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/test/java/lang/invoke/FindClassSecurityManager.java Fri Jan 15 19:18:42 2016 +0000
@@ -24,6 +24,7 @@
*/
/* @test
+ * @bug 8139885
* @run main/othervm/policy=findclass.security.policy/secure=java.lang.SecurityManager -ea -esa test.java.lang.invoke.FindClassSecurityManager
*/
--- a/jdk/test/java/lang/invoke/T8139885.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/test/java/lang/invoke/T8139885.java Fri Jan 15 19:18:42 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -24,6 +24,8 @@
*/
/* @test
+ * @bug 8139885
+ * @bug 8143798
* @run testng/othervm -ea -esa test.java.lang.invoke.T8139885
*/
--- a/jdk/test/java/lang/management/MemoryMXBean/Pending.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/test/java/lang/management/MemoryMXBean/Pending.java Fri Jan 15 19:18:42 2016 +0000
@@ -24,7 +24,7 @@
/*
* @test
* @bug 4530538
- * @modules java.base/sun.misc
+ * @modules java.base/jdk.internal.misc
* java.management
* @summary Basic unit test of
* RuntimeMXBean.getObjectPendingFinalizationCount()
@@ -50,10 +50,10 @@
private static void printFinalizerInstanceCount() {
if (!trace) return;
- int count = sun.misc.VM.getFinalRefCount();
+ int count = jdk.internal.misc.VM.getFinalRefCount();
System.out.println(INDENT + "Finalizable object Count = " + count);
- count = sun.misc.VM.getPeakFinalRefCount();
+ count = jdk.internal.misc.VM.getPeakFinalRefCount();
System.out.println(INDENT + "Peak Finalizable object Count = " + count);
}
--- a/jdk/test/java/lang/ref/CleanerTest.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/test/java/lang/ref/CleanerTest.java Fri Jan 15 19:18:42 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -34,9 +34,10 @@
import java.util.function.Consumer;
import java.util.function.Supplier;
-import jdk.internal.misc.CleanerImpl.PhantomCleanable;
-import jdk.internal.misc.CleanerImpl.WeakCleanable;
-import jdk.internal.misc.CleanerImpl.SoftCleanable;
+import jdk.internal.ref.PhantomCleanable;
+import jdk.internal.ref.WeakCleanable;
+import jdk.internal.ref.SoftCleanable;
+import jdk.internal.ref.CleanerFactory;
import sun.hotspot.WhiteBox;
@@ -48,7 +49,7 @@
* @test
* @library /lib/testlibrary /test/lib
* @build sun.hotspot.WhiteBox
- * @modules java.base/jdk.internal.misc
+ * @modules java.base/jdk.internal.misc java.base/jdk.internal.ref
* @run main ClassFileInstaller sun.hotspot.WhiteBox
* @run testng/othervm
* -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -Xbootclasspath/a:.
@@ -58,7 +59,7 @@
@Test
public class CleanerTest {
// A common CleaningService used by the test for notifications
- static final Cleaner COMMON = Cleaner.create();
+ static final Cleaner COMMON = CleanerFactory.cleaner();
// Access to WhiteBox utilities
static final WhiteBox whitebox = WhiteBox.getWhiteBox();
@@ -702,4 +703,17 @@
cleaner = null;
}
+ /**
+ * Test the Cleaner from the CleanerFactory.
+ */
+ @Test
+ void testCleanerFactory() {
+ Cleaner cleaner = CleanerFactory.cleaner();
+
+ Object obj = new Object();
+ CleanableCase s = setupPhantom(cleaner, obj);
+ obj = null;
+ Assert.assertTrue(checkCleaned(s.getSemaphore()),
+ "Object cleaning should have occurred using CleanerFactor.cleaner()");
+ }
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/lang/ref/ReachabilityFenceTest.java Fri Jan 15 19:18:42 2016 +0000
@@ -0,0 +1,143 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/* @test
+ * @bug 8133348
+ * @summary Tests if reachabilityFence is working
+ *
+ * @run main/othervm -Xint -Dpremature=false ReachabilityFenceTest
+ * @run main/othervm -XX:TieredStopAtLevel=1 -Dpremature=true ReachabilityFenceTest
+ * @run main/othervm -XX:TieredStopAtLevel=2 -Dpremature=true ReachabilityFenceTest
+ * @run main/othervm -XX:TieredStopAtLevel=3 -Dpremature=true ReachabilityFenceTest
+ * @run main/othervm -XX:TieredStopAtLevel=4 -Dpremature=true ReachabilityFenceTest
+ */
+
+import java.lang.ref.Reference;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+public class ReachabilityFenceTest {
+
+ /*
+ * Implementation notes:
+ *
+ * This test has positive and negative parts.
+ *
+ * Negative test is "nonFenced", and it tests that absent of reachabilityFence, the object can
+ * be prematurely finalized -- this validates the test itself. Not every VM mode is expected to
+ * prematurely finalize the objects, and -Dpremature option communicates that to test. If a VM mode
+ * passes the negative test, then our understanding of what could happen is correct, and we can
+ * go forward.
+ *
+ * Positive test is "fenced", and it checks that given the reachabilityFence at the end of the block,
+ * the object cannot be finalized. There is no sense running a positive test when premature finalization
+ * is not expected. It is a job for negative test to verify that invariant.
+ *
+ * The test methods should be appropriately compiled, therefore we do several iterations.
+ */
+
+ // Enough to OSR and compile
+ static final int LOOP_ITERS = Integer.getInteger("LOOP_ITERS", 50000);
+
+ // Enough after which to start triggering GC and finalization
+ static final int WARMUP_LOOP_ITERS = LOOP_ITERS - Integer.getInteger("GC_ITERS", 100);
+
+ // Enough to switch from an OSR'ed method to compiled method
+ static final int MAIN_ITERS = 3;
+
+ static final boolean PREMATURE_FINALIZATION = Boolean.getBoolean("premature");
+
+ public static void main(String... args) {
+ // Negative test
+ boolean finalized = false;
+ for (int c = 0; !finalized && c < MAIN_ITERS; c++) {
+ finalized |= nonFenced();
+ }
+
+ if (PREMATURE_FINALIZATION && !finalized) {
+ throw new IllegalStateException("The object had never been finalized before timeout reached.");
+ }
+
+ if (!PREMATURE_FINALIZATION && finalized) {
+ throw new IllegalStateException("The object had been finalized without a fence, even though we don't expect it.");
+ }
+
+ if (!PREMATURE_FINALIZATION)
+ return;
+
+ // Positive test
+ finalized = false;
+ for (int c = 0; !finalized && c < MAIN_ITERS; c++) {
+ finalized |= fenced();
+ }
+
+ if (finalized) {
+ throw new IllegalStateException("The object had been prematurely finalized.");
+ }
+ }
+
+ public static boolean nonFenced() {
+ AtomicBoolean finalized = new AtomicBoolean();
+ MyFinalizeable o = new MyFinalizeable(finalized);
+
+ for (int i = 0; i < LOOP_ITERS; i++) {
+ if (finalized.get()) break;
+ if (i > WARMUP_LOOP_ITERS) {
+ System.gc();
+ System.runFinalization();
+ }
+ }
+
+ return finalized.get();
+ }
+
+ public static boolean fenced() {
+ AtomicBoolean finalized = new AtomicBoolean();
+ MyFinalizeable o = new MyFinalizeable(finalized);
+
+ for (int i = 0; i < LOOP_ITERS; i++) {
+ if (finalized.get()) break;
+ if (i > WARMUP_LOOP_ITERS) {
+ System.gc();
+ System.runFinalization();
+ }
+ }
+
+ Reference.reachabilityFence(o);
+
+ return finalized.get();
+ }
+
+ private static class MyFinalizeable {
+ private final AtomicBoolean finalized;
+
+ public MyFinalizeable(AtomicBoolean b) {
+ this.finalized = b;
+ }
+
+ @Override
+ protected void finalize() throws Throwable {
+ super.finalize();
+ finalized.set(true);
+ }
+ }
+}
\ No newline at end of file
--- a/jdk/test/java/net/DatagramSocket/SetDatagramSocketImplFactory/ADatagramSocket.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/test/java/net/DatagramSocket/SetDatagramSocketImplFactory/ADatagramSocket.java Fri Jan 15 19:18:42 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -41,7 +41,11 @@
} catch (Exception ex) {
throw new RuntimeException("Setting DatagramSocketImplFactory failed!");
}
- new QuoteServerThread().start();
+
+ QuoteServerThread server = new QuoteServerThread();
+ int port = server.getPort();
+ System.out.println("Server port is " + port);
+ server.start();
// get a datagram socket
DatagramSocket socket = new DatagramSocket();
@@ -49,7 +53,7 @@
// send request
byte[] buf = new byte[256];
InetAddress address = InetAddress.getLocalHost();
- DatagramPacket packet = new DatagramPacket(buf, buf.length, address, 4445);
+ DatagramPacket packet = new DatagramPacket(buf, buf.length, address, port);
socket.send(packet);
// get response
@@ -67,6 +71,7 @@
class QuoteServerThread extends Thread {
protected DatagramSocket socket = null;
+ private final int port;
public QuoteServerThread() throws IOException {
this("QuoteServerThread");
@@ -74,7 +79,11 @@
public QuoteServerThread(String name) throws IOException {
super(name);
- socket = new DatagramSocket(4445);
+ socket = new DatagramSocket(0);
+ port = socket.getLocalPort();
+ }
+ public int getPort(){
+ return port;
}
public void run() {
@@ -101,3 +110,4 @@
socket.close();
}
}
+
--- a/jdk/test/java/net/SocketOption/OptionsTest.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/test/java/net/SocketOption/OptionsTest.java Fri Jan 15 19:18:42 2016 +0000
@@ -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
@@ -80,8 +80,11 @@
static NetworkInterface getNetworkInterface() {
try {
Enumeration<NetworkInterface> nifs = NetworkInterface.getNetworkInterfaces();
- if (nifs.hasMoreElements()) {
- return (NetworkInterface)nifs.nextElement();
+ while (nifs.hasMoreElements()) {
+ NetworkInterface ni = (NetworkInterface)nifs.nextElement();
+ if (ni.supportsMulticast()) {
+ return ni;
+ }
}
} catch (Exception e) {
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/net/URLConnection/TIFFContentGuesser.java Fri Jan 15 19:18:42 2016 +0000
@@ -0,0 +1,66 @@
+/*
+ * 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
+ * @bug 8146041
+ * @summary java.net.URLConnection.guessContentTypeFromStream() does not
+ * recognize TIFF streams
+ */
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.net.URLConnection;
+
+public class TIFFContentGuesser {
+ private static final byte[] LITTLE_ENDIAN_MAGIC =
+ new byte[] {(byte)0x49, (byte)0x49, (byte)0x2a, (byte)0};
+ private static final byte[] BIG_ENDIAN_MAGIC =
+ new byte[] {(byte)0x4d, (byte)0x4d, (byte)0, (byte)0x2a};
+
+ private static final String TIFF_MIME_TYPE = "image/tiff";
+
+ public static void main(String[] args) throws Throwable {
+ int failures = 0;
+
+ InputStream stream = new ByteArrayInputStream(LITTLE_ENDIAN_MAGIC);
+ String contentType = URLConnection.guessContentTypeFromStream(stream);
+ if (contentType == null || !contentType.equals(TIFF_MIME_TYPE)) {
+ failures++;
+ System.err.println("Test failed for little endian magic");
+ }
+
+ stream = new ByteArrayInputStream(BIG_ENDIAN_MAGIC);
+ contentType = URLConnection.guessContentTypeFromStream(stream);
+ if (contentType == null || !contentType.equals(TIFF_MIME_TYPE)) {
+ failures++;
+ System.err.println("Test failed for big endian magic");
+ }
+
+ if (failures != 0) {
+ throw new RuntimeException
+ ("Test failed with " + failures + " error(s)");
+ }
+ }
+}
+
--- a/jdk/test/java/net/ipv6tests/TcpTest.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/test/java/net/ipv6tests/TcpTest.java Fri Jan 15 19:18:42 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2010, 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
@@ -60,8 +60,7 @@
dprintln ("Local Addresses");
dprintln (ia4addr.toString());
dprintln (ia6addr.toString());
- test1 (0);
- test1 (5100);
+ test1();
test2();
test3();
test4();
@@ -69,11 +68,9 @@
/* basic TCP connectivity test using IPv6 only and IPv4/IPv6 together */
- static void test1 (int port) throws Exception {
- server = new ServerSocket (port);
- if (port == 0) {
- port = server.getLocalPort();
- }
+ static void test1 () throws Exception {
+ server = new ServerSocket (0);
+ int port = server.getLocalPort();
// try Ipv6 only
c1 = new Socket ("::1", port);
s1 = server.accept ();
@@ -107,9 +104,7 @@
/** bind tests:
* 1. bind to specific address IPv4 only (any port)
* 2. bind to specific address IPv6 only (any port)
- * 3. bind to specific address IPv4 only (specific port)
- * 4. bind to specific address IPv4 only (specific port)
- * 5. bind to any address IPv4 (test collision)
+ * 3. bind to any address IPv4 (test collision)
*/
static void test2 () throws Exception {
@@ -147,39 +142,6 @@
server.close ();
c1.close ();
- /* now try IPv6 specific port only */
-
- server = new ServerSocket ();
- sadr = new InetSocketAddress (ia6addr, 5200);
- server.bind (sadr);
- port = server.getLocalPort();
- t_assert (port == 5200);
-
- c1 = new Socket (ia6addr, port);
- try {
- c2 = new Socket (ia4addr, port);
- throw new RuntimeException ("connect to IPv4 address should be refused");
- } catch (IOException e) { }
- server.close ();
- c1.close ();
-
- /* now try IPv4 specific port only */
-
- server = new ServerSocket ();
- sadr = new InetSocketAddress (ia4addr, 5200);
- server.bind (sadr);
- port = server.getLocalPort();
- t_assert (port == 5200);
-
- c1 = new Socket (ia4addr, port);
-
- try {
- c2 = new Socket (ia6addr, port);
- throw new RuntimeException ("connect to IPv6 address should be refused");
- } catch (IOException e) { }
- server.accept().close();
- c1.close ();
- server.close();
System.out.println ("Test2: OK");
}
@@ -242,3 +204,4 @@
System.out.println ("Test4: OK");
}
}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/nio/channels/DatagramChannel/StressNativeSignal.java Fri Jan 15 19:18:42 2016 +0000
@@ -0,0 +1,147 @@
+/*
+ * 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
+ * @bug 8050499
+ * @summary Attempt to provoke error 316 on OS X in NativeSignal.signal()
+ */
+
+import java.io.*;
+import java.net.*;
+import java.nio.ByteBuffer;
+import java.nio.channels.DatagramChannel;
+
+public class StressNativeSignal {
+ private UDPThread udpThread;
+ private ServerSocketThread serverSocketThread;
+
+ StressNativeSignal() {
+ try {
+ serverSocketThread = new ServerSocketThread();
+ serverSocketThread.start();
+
+ udpThread = new UDPThread();
+ udpThread.start();
+ } catch (Exception z) {
+ z.printStackTrace();
+ }
+ }
+
+ public static void main(String[] args) throws Throwable {
+ StressNativeSignal test = new StressNativeSignal();
+ try {
+ Thread.sleep(3000);
+ } catch (Exception z) {
+ z.printStackTrace(System.err);
+ }
+
+ test.shutdown();
+ }
+
+ public void shutdown() {
+ udpThread.terminate();
+ try {
+ udpThread.join();
+ } catch (Exception z) {
+ z.printStackTrace(System.err);
+ }
+
+ serverSocketThread.terminate();
+ try {
+ serverSocketThread.join();
+ } catch (Exception z) {
+ z.printStackTrace(System.err);
+ }
+ }
+
+ public class ServerSocketThread extends Thread {
+ private volatile boolean shouldTerminate;
+ private ServerSocket socket;
+
+ public void run() {
+ try {
+ socket = new ServerSocket(1122);
+ Socket client = socket.accept();
+ BufferedReader reader = new BufferedReader(new InputStreamReader(client.getInputStream()));
+ shouldTerminate = false;
+ while (!shouldTerminate) {
+ String msg = reader.readLine();
+ }
+ } catch (Exception z) {
+ if (!shouldTerminate) {
+ z.printStackTrace(System.err);
+ }
+ }
+ }
+
+ public void terminate() {
+ shouldTerminate = true;
+ try {
+ socket.close();
+ } catch (Exception z) {
+ z.printStackTrace(System.err);
+ // ignore
+ }
+ }
+ }
+
+ public class UDPThread extends Thread {
+ private DatagramChannel channel;
+ private volatile boolean shouldTerminate;
+
+ @Override
+ public void run() {
+ try {
+ channel = DatagramChannel.open();
+ channel.setOption(StandardSocketOptions.SO_RCVBUF, 6553600);
+ channel.bind(new InetSocketAddress(19870));
+ } catch (IOException z) {
+ z.printStackTrace(System.err);
+ }
+
+ ByteBuffer buf = ByteBuffer.allocate(6553600);
+ shouldTerminate = false;
+ while (!shouldTerminate) {
+ try {
+ buf.rewind();
+ channel.receive(buf);
+ } catch (IOException z) {
+ if (!shouldTerminate) {
+ z.printStackTrace(System.err);
+ }
+ }
+ }
+ }
+
+ public void terminate() {
+ shouldTerminate = true;
+ try {
+ channel.close();
+ } catch (Exception z) {
+ z.printStackTrace(System.err);
+ // ignore
+ }
+ }
+ }
+
+}
--- a/jdk/test/java/nio/file/attribute/BasicFileAttributeView/UnixSocketFile.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/test/java/nio/file/attribute/BasicFileAttributeView/UnixSocketFile.java Fri Jan 15 19:18:42 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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,6 +28,7 @@
*/
import java.io.File;
+import java.io.InputStream;
import java.io.IOException;
import java.nio.file.FileSystem;
import java.nio.file.FileSystems;
@@ -49,6 +50,17 @@
public static void main(String[] args)
throws InterruptedException, IOException {
+ // Use 'which' to verify that 'nc' is available and skip the test
+ // if it is not.
+ Process proc = Runtime.getRuntime().exec("which nc");
+ InputStream stdout = proc.getInputStream();
+ int b = stdout.read();
+ proc.destroy();
+ if (b == -1) {
+ System.err.println("Netcat command unavailable; skipping test.");
+ return;
+ }
+
// Create a new sub-directory of the nominal test directory in which
// 'nc' will create the socket file.
String testSubDir = System.getProperty("test.dir", ".")
@@ -62,7 +74,6 @@
// Create a process which executes the nc (netcat) utility to create
// a socket file at the indicated location.
- Process proc;
FileSystem fs = FileSystems.getDefault();
try (WatchService ws = fs.newWatchService()) {
// Watch the test sub-directory to receive notification when an
--- a/jdk/test/java/time/tck/java/time/TCKLocalDate.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/test/java/time/tck/java/time/TCKLocalDate.java Fri Jan 15 19:18:42 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -1285,12 +1285,36 @@
public void test_plusWeeks_invalidMaxMinusMin() {
LocalDate.of(Year.MAX_VALUE, 12, 25).plusWeeks(Long.MIN_VALUE);
}
+ //-----------------------------------------------------------------------
+ @DataProvider(name="PlusDays")
+ Object[][] provider_plusDays() {
+ return new Object[][] {
+ {LocalDate.of(2007, 7, 15), 1, LocalDate.of(2007, 7, 16)},
+ {LocalDate.of(2007, 7, 15), 17, LocalDate.of(2007, 8, 1)},
+ {LocalDate.of(2007, 12, 31), 1, LocalDate.of(2008, 1, 1)},
+ {LocalDate.of(2007, 1, 1), 58, LocalDate.of(2007, 2, 28)},
+ {LocalDate.of(2007, 1, 1), 59, LocalDate.of(2007, 3, 1)},
+ {LocalDate.of(2008, 1, 1), 60, LocalDate.of(2008, 3, 1)},
+ {LocalDate.of(2007, 2, 1), 27, LocalDate.of(2007, 2, 28)},
+ {LocalDate.of(2007, 2, 1), 28, LocalDate.of(2007, 3, 1)},
+ {LocalDate.of(2007, 1, 1), 29, LocalDate.of(2007, 1, 30)},
+ {LocalDate.of(2007, 1, 1), 30, LocalDate.of(2007, 1, 31)},
+ {LocalDate.of(2007, 1, 15), 13, LocalDate.of(2007, 1, 28)},
+ {LocalDate.of(2007, 1, 15), 14, LocalDate.of(2007, 1, 29)},
+ {LocalDate.of(2007, 1, 15), 15, LocalDate.of(2007, 1, 30)},
+ {LocalDate.of(2007, 1, 15), 16, LocalDate.of(2007, 1, 31)},
+ {LocalDate.of(2007, 2, 15), 13, LocalDate.of(2007, 2, 28)},
+ {LocalDate.of(2007, 2, 15), 14, LocalDate.of(2007, 3, 1)},
+ {LocalDate.of(2007, 2, 15), 15, LocalDate.of(2007, 3, 2)},
+ {LocalDate.of(2007, 2, 15), 16, LocalDate.of(2007, 3, 3)},
+ };
+ }
- @Test
- public void test_plusDays_normal() {
- LocalDate t = TEST_2007_07_15.plusDays(1);
- assertEquals(t, LocalDate.of(2007, 7, 16));
- }
+ @Test(dataProvider="PlusDays")
+ public void test_plusDays_normal(LocalDate input, int amountsToAdd, LocalDate expected) {
+ LocalDate actual = input.plusDays(amountsToAdd);
+ assertEquals(actual, expected);
+ }
@Test
public void test_plusDays_overMonths() {
--- a/jdk/test/java/util/logging/LogManager/Configuration/updateConfiguration/UpdateConfigurationTest.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/test/java/util/logging/LogManager/Configuration/updateConfiguration/UpdateConfigurationTest.java Fri Jan 15 19:18:42 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -209,8 +209,9 @@
+ barChild.getParent() +"\n\texpected: " + barRef.get());
}
Reference<? extends Logger> ref2;
- int max = 3;
+ int max = 10;
barChild = null;
+ System.gc();
while ((ref2 = queue.poll()) == null) {
System.gc();
Thread.sleep(100);
@@ -276,24 +277,27 @@
}
});
- // Now we need to forget the child, so that loggers are released,
- // and so that we can run the test with the next configuration...
-
- fooChild = null;
- System.out.println("Setting fooChild to: " + fooChild);
- while ((ref2 = queue.poll()) == null) {
- System.gc();
- Thread.sleep(1000);
+ if (suppressed == null) {
+ // Now we need to forget the child, so that loggers are released,
+ // and so that we can run the test with the next configuration...
+ // No need to do that if failed!=null however, as the first
+ // ref might not have been cleared yet and failing here would
+ // hide the original failure.
+ fooChild = null;
+ System.out.println("Setting fooChild to: " + fooChild);
+ while ((ref2 = queue.poll()) == null) {
+ System.gc();
+ Thread.sleep(1000);
+ }
+ if (ref2 != fooRef) {
+ throw new RuntimeException("Unexpected reference: "
+ + ref2 +"\n\texpected: " + fooRef);
+ }
+ if (ref2.get() != null) {
+ throw new RuntimeException("Referent not cleared: " + ref2.get());
+ }
+ System.out.println("Got fooRef after reset(), fooChild is " + fooChild);
}
- if (ref2 != fooRef) {
- throw new RuntimeException("Unexpected reference: "
- + ref2 +"\n\texpected: " + fooRef);
- }
- if (ref2.get() != null) {
- throw new RuntimeException("Referent not cleared: " + ref2.get());
- }
- System.out.println("Got fooRef after reset(), fooChild is " + fooChild);
-
}
}
if (failed != null) {
--- a/jdk/test/javax/management/ImplementationVersion/ImplVersionCommand.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/test/javax/management/ImplementationVersion/ImplVersionCommand.java Fri Jan 15 19:18:42 2016 +0000
@@ -53,21 +53,13 @@
// Check JMX implementation version vs. JVM implementation version
//
- if (Boolean.valueOf(args[1]).booleanValue()) {
- if (!mbsdVersion.equals(args[0]))
- throw new IllegalArgumentException(
- "JMX and Java Runtime implementation versions do not match!");
- // Test OK!
- //
- System.out.println("JMX and Java Runtime implementation " +
- "versions match!");
- } else {
- // Test OK!
- //
- System.out.println("JMX and Java Runtime implementation " +
- "versions do not match because the test " +
- "is using an unbundled version of JMX!");
- }
+ if (!mbsdVersion.equals(args[0]))
+ throw new IllegalArgumentException(
+ "JMX and Java Runtime implementation versions do not match!");
+ // Test OK!
+ //
+ System.out.println("JMX and Java Runtime implementation " +
+ "versions match!");
System.out.println("Bye! Bye!");
}
}
--- a/jdk/test/javax/management/ImplementationVersion/ImplVersionTest.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/test/javax/management/ImplementationVersion/ImplVersionTest.java Fri Jan 15 19:18:42 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2015, 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
@@ -25,9 +25,9 @@
* @test
* @bug 4842196
* @summary Test that there is no difference between the JMX version and the
- * JDK version when JMX is bundled into the Java platform and the application
- * is run with a security manager and the test codebase has the java permission
- * to read the "java.runtime.version" system property.
+ * JDK version when the application is run with a security manager and the
+ * test codebase has the java permission to read the "java.runtime.version"
+ * system property.
* @author Luis-Miguel Alventosa
* @modules java.management
* @run clean ImplVersionTest ImplVersionCommand
@@ -36,8 +36,6 @@
*/
import java.io.File;
-import java.security.CodeSource;
-import javax.management.MBeanServer;
public class ImplVersionTest {
@@ -70,18 +68,13 @@
System.out.println("testClasses = " + testClasses);
// Get boot class path
//
- boolean checkVersion = true;
- String bootClassPath = System.getProperty("sun.boot.class.path");
- if (bootClassPath != null &&
- bootClassPath.indexOf("jmxri.jar") != -1)
- checkVersion = false;
String command =
javaHome + File.separator + "bin" + File.separator + "java " +
" -classpath " + testClasses +
" -Djava.security.manager -Djava.security.policy==" + testSrc +
File.separator + "policy -Dtest.classes=" + testClasses +
" ImplVersionCommand " +
- System.getProperty("java.runtime.version") + " " + checkVersion;
+ System.getProperty("java.runtime.version");
System.out.println("ImplVersionCommand Exec Command = " +command);
Process proc = Runtime.getRuntime().exec(command);
new ImplVersionReader(proc, proc.getInputStream()).start();
--- a/jdk/test/javax/management/remote/mandatory/version/ImplVersionTest.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/test/javax/management/remote/mandatory/version/ImplVersionTest.java Fri Jan 15 19:18:42 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 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
@@ -25,9 +25,9 @@
* @test
* @bug 5046815
* @summary Test that RMIServer.getVersion() reflects the JDK version when
- * JMX is bundled into the Java platform and the application is run with a
- * security manager and the test codebase has the java permission to read
- * the "java.runtime.version" system property.
+ * the Java platform and the application is run with a security manager and the
+ * test codebase has the java permission to read the "java.runtime.version"
+ * system property.
* @author Luis-Miguel Alventosa, Joel Feraud
* @modules java.management
* @run clean ImplVersionTest ImplVersionCommand
@@ -36,8 +36,6 @@
*/
import java.io.File;
-import java.security.CodeSource;
-import javax.management.MBeanServer;
public class ImplVersionTest {
--- a/jdk/test/javax/net/ssl/SSLSession/SessionCacheSizeTests.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/test/javax/net/ssl/SSLSession/SessionCacheSizeTests.java Fri Jan 15 19:18:42 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -31,6 +31,7 @@
* @bug 4366807
* @summary Need new APIs to get/set session timeout and session cache size.
* @run main/othervm SessionCacheSizeTests
+ * @key intermittent
*/
import java.io.*;
@@ -108,28 +109,34 @@
void doServerSide(int serverPort, int serverConns) throws Exception {
- SSLServerSocket sslServerSocket =
- (SSLServerSocket) sslssf.createServerSocket(serverPort);
- sslServerSocket.setSoTimeout(45000); // timeout to accept a connection
- serverPorts[createdPorts++] = sslServerSocket.getLocalPort();
+ try (SSLServerSocket sslServerSocket =
+ (SSLServerSocket) sslssf.createServerSocket(serverPort)) {
+
+ // timeout to accept a connection
+ sslServerSocket.setSoTimeout(45000);
+
+ // make sure createdPorts++ is atomic
+ synchronized(serverPorts) {
+ serverPorts[createdPorts++] = sslServerSocket.getLocalPort();
- /*
- * Signal Client, we're ready for his connect.
- */
- if (createdPorts == serverPorts.length) {
- serverReady = true;
- }
- int read = 0;
- int nConnections = 0;
- /*
- * Divide the max connections among the available server ports.
- * The use of more than one server port ensures creation of more
- * than one session.
- */
- SSLSession sessions [] = new SSLSession [serverConns];
- SSLSessionContext sessCtx = sslctx.getServerSessionContext();
+ /*
+ * Signal Client, we're ready for his connect.
+ */
+ if (createdPorts == serverPorts.length) {
+ serverReady = true;
+ }
+ }
+ int read = 0;
+ int nConnections = 0;
- try {
+ /*
+ * Divide the max connections among the available server ports.
+ * The use of more than one server port ensures creation of more
+ * than one session.
+ */
+ SSLSession sessions [] = new SSLSession [serverConns];
+ SSLSessionContext sessCtx = sslctx.getServerSessionContext();
+
while (nConnections < serverConns) {
try (SSLSocket sslSocket =
(SSLSocket)sslServerSocket.accept()) {
@@ -143,8 +150,6 @@
nConnections++;
}
}
- } finally {
- sslServerSocket.close();
}
}
@@ -270,8 +275,8 @@
* Using four ports (one per each connection), we are able to create
* alteast four sessions.
*/
- volatile int serverPorts[] = new int[]{0, 0, 0, 0};
- volatile int createdPorts = 0;
+ int serverPorts[] = new int[]{0, 0, 0, 0}; // MAX_ACTIVE_CONNECTIONS: 4
+ int createdPorts = 0;
static SSLServerSocketFactory sslssf;
static SSLSocketFactory sslsf;
static SSLContext sslctx;
--- a/jdk/test/jdk/internal/jimage/JImageReadTest.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/test/jdk/internal/jimage/JImageReadTest.java Fri Jan 15 19:18:42 2016 +0000
@@ -313,7 +313,7 @@
static boolean isMetaName(String name) {
return name.startsWith("/modules")
|| name.startsWith("/packages")
- || name.startsWith("META-INF/services")
+ || name.startsWith("META-INF")
|| name.equals("bootmodules.jdata");
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/jdk/internal/misc/VM/GetNanoTimeAdjustment.java Fri Jan 15 19:18:42 2016 +0000
@@ -0,0 +1,250 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+import java.util.Objects;
+import jdk.internal.misc.VM;
+
+/**
+ * @test
+ * @bug 8068730
+ * @summary tests that VM.getgetNanoTimeAdjustment() works as expected.
+ * @modules java.base/jdk.internal.misc
+ * @run main GetNanoTimeAdjustment
+ * @author danielfuchs
+ */
+public class GetNanoTimeAdjustment {
+
+ static final int MILLIS_IN_SECOND = 1000;
+ static final int NANOS_IN_MILLI = 1000_000;
+ static final int NANOS_IN_MICRO = 1000;
+ static final int NANOS_IN_SECOND = 1000_000_000;
+
+ static final boolean verbose = true;
+
+ static final class TestAssertException extends RuntimeException {
+ TestAssertException(String msg) { super(msg); }
+ }
+
+ private static void assertEquals(long expected, long received, String msg) {
+ if (expected != received) {
+ throw new TestAssertException("Unexpected result for " + msg
+ + ".\n\texpected: " + expected
+ + "\n\tactual: " + received);
+ } else if (verbose) {
+ System.out.println("Got expected " + msg + ": " + received);
+ }
+ }
+
+ private static void assertEquals(Object expected, Object received, String msg) {
+ if (!Objects.equals(expected, received)) {
+ throw new TestAssertException("Unexpected result for " + msg
+ + ".\n\texpected: " + expected
+ + "\n\tactual: " + received);
+ } else if (verbose) {
+ System.out.println("Got expected " + msg + ": " + received);
+ }
+ }
+
+ static final long MAX_OFFSET = 0x0100000000L;
+ static final long MIN_OFFSET = -MAX_OFFSET;
+ static enum Answer {
+ YES, // isOffLimit = YES: we must get -1
+ NO, // isOffLimit = NO: we must not not get -1
+ MAYBE // isOffLimit = MAYBE: we might get -1 or a valid adjustment.
+ };
+ static long distance(long one, long two) {
+ return one > two ? Math.subtractExact(one, two)
+ : Math.subtractExact(two, one);
+ }
+
+
+ static Answer isOffLimits(long before, long after, long offset) {
+ long relativeDistanceBefore = distance(before, offset);
+ long relativeDistanceAfter = distance(after, offset);
+ if (relativeDistanceBefore >= MAX_OFFSET && relativeDistanceAfter >= MAX_OFFSET) {
+ return Answer.YES;
+ }
+ if (relativeDistanceBefore < MAX_OFFSET && relativeDistanceAfter < MAX_OFFSET) {
+ if (relativeDistanceBefore == 0 || relativeDistanceAfter == 0) {
+ return Answer.MAYBE; // unlucky case where
+ }
+ return Answer.NO;
+ }
+ return Answer.MAYBE;
+ }
+
+ static void testWithOffset(String name, long offset) {
+ System.out.println("Testing with offset: " + name);
+ long beforeMillis = System.currentTimeMillis();
+ long adjustment = VM.getNanoTimeAdjustment(offset);
+ long afterMillis = System.currentTimeMillis();
+
+ if (offset >= beforeMillis/MILLIS_IN_SECOND
+ && offset <= afterMillis/MILLIS_IN_SECOND) {
+ if (adjustment == -1) {
+ // it's possible that we have fallen in the unlucky case
+ // where -1 was the genuine result. let's go backward a bit.
+ offset = offset - 10;
+ beforeMillis = System.currentTimeMillis();
+ adjustment = VM.getNanoTimeAdjustment(offset);
+ afterMillis = System.currentTimeMillis();
+ if (adjustment == -1) {
+ throw new RuntimeException(name + ": VM says " + offset
+ + " secs is too far off, "
+ + " when time in seconds is in ["
+ + beforeMillis/MILLIS_IN_SECOND + ", "
+ + afterMillis/MILLIS_IN_SECOND
+ + "]");
+ }
+ }
+ }
+
+ Answer isOffLimit = isOffLimits(beforeMillis/MILLIS_IN_SECOND,
+ afterMillis/MILLIS_IN_SECOND, offset);
+ switch (isOffLimit) {
+ case YES:
+ if (adjustment != -1) {
+ throw new RuntimeException(name
+ + ": VM should have returned -1 for "
+ + offset
+ + " when time in seconds is in ["
+ + beforeMillis/MILLIS_IN_SECOND + ", "
+ + afterMillis/MILLIS_IN_SECOND + "]");
+ }
+ System.out.println("Got expected exception value: " + adjustment);
+ break;
+ case NO:
+ if (adjustment == -1) {
+ throw new RuntimeException(name
+ + "VM says " + offset
+ + " secs is too far off, "
+ + " when time in seconds is in ["
+ + beforeMillis/MILLIS_IN_SECOND + ", "
+ + afterMillis/MILLIS_IN_SECOND
+ + "]");
+ }
+ break;
+ case MAYBE:
+ System.out.println("Adjustment: " + adjustment);
+ System.out.println("Can't assert for -1 with offset "
+ + offset + "(" + name + ")"
+ + " when time in seconds is in ["
+ + beforeMillis/MILLIS_IN_SECOND + ", "
+ + afterMillis/MILLIS_IN_SECOND
+ + "]");
+ // not conclusive
+ }
+
+ if (isOffLimit == Answer.NO || adjustment != -1) {
+ System.out.println("Validating adjustment: " + adjustment);
+ long expectedMax = distance(offset, beforeMillis/MILLIS_IN_SECOND)
+ * NANOS_IN_SECOND
+ + (beforeMillis % MILLIS_IN_SECOND) * NANOS_IN_MILLI
+ + (afterMillis - beforeMillis + 1) * NANOS_IN_MILLI;
+ long absoluteAdjustment = distance(0, adjustment);
+ if (absoluteAdjustment > expectedMax) {
+ long adjSec = absoluteAdjustment / NANOS_IN_SECOND;
+ long adjMil = (absoluteAdjustment % NANOS_IN_SECOND) / NANOS_IN_MILLI;
+ long adjMic = (absoluteAdjustment % NANOS_IN_MILLI) / NANOS_IN_MICRO;
+ long adjNan = (absoluteAdjustment % NANOS_IN_MICRO);
+ long expSec = expectedMax / NANOS_IN_SECOND;
+ long expMil = (expectedMax % NANOS_IN_SECOND) / NANOS_IN_MILLI;
+ long expMic = (expectedMax % NANOS_IN_MILLI) / NANOS_IN_MICRO;
+ long expNan = (expectedMax % NANOS_IN_MICRO);
+ System.err.println("Excessive adjustment: " + adjSec + "s, "
+ + adjMil + "ms, " + adjMic + "mics, " + adjNan + "ns");
+ System.err.println("Epected max: " + expSec + "s, "
+ + expMil + "ms, " + expMic + "mics, " + expNan + "ns");
+
+ throw new RuntimeException(name
+ + ": Excessive adjustment: " + adjustment
+ + " when time in millis is in ["
+ + beforeMillis + ", " + afterMillis
+ + "] and offset in seconds is " + offset);
+ }
+ }
+
+ }
+
+ static void regular() {
+ System.out.println("*** Testing regular cases ***");
+ final long start = System.currentTimeMillis();
+ long offset = start/1000;
+ long adjustment = VM.getNanoTimeAdjustment(offset);
+ if (start != offset*1000) {
+ if (adjustment == -1) {
+ throw new RuntimeException("VM says " + offset
+ + " secs is too far off, but time millis is "
+ + System.currentTimeMillis());
+ }
+ }
+ if (adjustment == -1) {
+ offset = System.currentTimeMillis()/1000 - 1024;
+ adjustment = VM.getNanoTimeAdjustment(offset);
+ if (adjustment == -1) {
+ throw new RuntimeException("VM says " + offset
+ + " secs is too far off, but time millis is "
+ + System.currentTimeMillis());
+ }
+ }
+ if (adjustment > (start/1000 - offset + 20)*NANOS_IN_SECOND) {
+ throw new RuntimeException("Excessive adjustment: " + adjustment);
+ }
+ testWithOffset("System.currentTimeMillis()/1000",
+ System.currentTimeMillis()/1000);
+ testWithOffset("System.currentTimeMillis()/1000 - 1024",
+ System.currentTimeMillis()/1000 - 1024);
+ testWithOffset("System.currentTimeMillis()/1000 + 1024",
+ System.currentTimeMillis()/1000 + 1024);
+ }
+
+ static void testLimits() {
+ System.out.println("*** Testing limits ***");
+ testWithOffset("System.currentTimeMillis()/1000 - MAX_OFFSET + 1",
+ System.currentTimeMillis()/1000 - MAX_OFFSET + 1);
+ testWithOffset("System.currentTimeMillis()/1000 + MAX_OFFSET - 1",
+ System.currentTimeMillis()/1000 + MAX_OFFSET - 1);
+ testWithOffset("System.currentTimeMillis()/1000 - MAX_OFFSET",
+ System.currentTimeMillis()/1000 - MAX_OFFSET);
+ testWithOffset("System.currentTimeMillis()/1000 + MAX_OFFSET",
+ System.currentTimeMillis()/1000 + MAX_OFFSET);
+ testWithOffset("System.currentTimeMillis()/1000 - MAX_OFFSET - 1024",
+ System.currentTimeMillis()/1000 - MAX_OFFSET - 1024);
+ testWithOffset("System.currentTimeMillis()/1000 + MAX_OFFSET + 1024",
+ System.currentTimeMillis()/1000 + MAX_OFFSET + 1024);
+ testWithOffset("0", 0);
+ testWithOffset("-1", -1);
+ testWithOffset("Integer.MAX_VALUE + System.currentTimeMillis()/1000",
+ ((long)Integer.MAX_VALUE) + System.currentTimeMillis()/1000);
+ testWithOffset("System.currentTimeMillis()/1000 - Integer.MIN_VALUE",
+ System.currentTimeMillis()/1000 - Integer.MIN_VALUE);
+ testWithOffset("Long.MAX_VALUE", Long.MAX_VALUE);
+ testWithOffset("System.currentTimeMillis()/1000 - Long.MIN_VALUE",
+ (Long.MIN_VALUE + System.currentTimeMillis()/1000)*-1);
+ }
+
+ public static void main(String[] args) throws Exception {
+ regular();
+ testLimits();
+ }
+
+}
--- a/jdk/test/sun/management/jmxremote/bootstrap/JMXAgentInterfaceBinding.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/test/sun/management/jmxremote/bootstrap/JMXAgentInterfaceBinding.java Fri Jan 15 19:18:42 2016 +0000
@@ -130,7 +130,7 @@
private static class JMXConnectorThread extends Thread {
- private final InetAddress addr;
+ private final String addr;
private final int jmxPort;
private final int rmiPort;
private final boolean useSSL;
@@ -139,7 +139,7 @@
private boolean jmxConnectWorked;
private boolean rmiConnectWorked;
- private JMXConnectorThread(InetAddress addr,
+ private JMXConnectorThread(String addr,
int jmxPort,
int rmiPort,
boolean useSSL,
@@ -163,11 +163,11 @@
private void connect() throws IOException {
System.out.println(
"JMXConnectorThread: Attempting JMX connection on: "
- + addr.getHostAddress() + " on port " + jmxPort);
+ + addr + " on port " + jmxPort);
JMXServiceURL url;
try {
url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://"
- + addr.getHostAddress() + ":" + jmxPort + "/jmxrmi");
+ + addr + ":" + jmxPort + "/jmxrmi");
} catch (MalformedURLException e) {
throw new RuntimeException("Test failed.", e);
}
@@ -200,7 +200,7 @@
}
System.out.println(
"JMXConnectorThread: connection to rmi socket worked host/port = "
- + addr.getHostAddress() + "/" + rmiPort);
+ + addr + "/" + rmiPort);
rmiConnectWorked = true;
// Closing the channel without sending any data will cause an
// java.io.EOFException on the server endpoint. We don't care about this
@@ -224,7 +224,7 @@
private static class MainThread extends Thread {
private static final int WAIT_FOR_JMX_AGENT_TIMEOUT_MS = 500;
- private final InetAddress bindAddress;
+ private final String addr;
private final int jmxPort;
private final int rmiPort;
private final boolean useSSL;
@@ -233,7 +233,7 @@
private Exception excptn;
private MainThread(InetAddress bindAddress, int jmxPort, int rmiPort, boolean useSSL) {
- this.bindAddress = bindAddress;
+ this.addr = wrapAddress(bindAddress.getHostAddress());
this.jmxPort = jmxPort;
this.rmiPort = rmiPort;
this.useSSL = useSSL;
@@ -259,7 +259,7 @@
private void waitUntilReadyForConnections() {
CountDownLatch latch = new CountDownLatch(1);
JMXConnectorThread connectionTester = new JMXConnectorThread(
- bindAddress, jmxPort, rmiPort, useSSL, latch);
+ addr, jmxPort, rmiPort, useSSL, latch);
connectionTester.start();
boolean expired = false;
try {
@@ -294,4 +294,13 @@
}
}
+ /**
+ * Will wrap IPv6 address in '[]'
+ */
+ static String wrapAddress(String address) {
+ if (address.contains(":")) {
+ return "[" + address + "]";
+ }
+ return address;
+ }
}
--- a/jdk/test/sun/management/jmxremote/bootstrap/JMXInterfaceBindingTest.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/test/sun/management/jmxremote/bootstrap/JMXInterfaceBindingTest.java Fri Jan 15 19:18:42 2016 +0000
@@ -23,9 +23,11 @@
import java.io.File;
import java.net.InetAddress;
-import java.net.UnknownHostException;
+import java.net.NetworkInterface;
+import java.net.SocketException;
import java.util.ArrayList;
import java.util.List;
+import java.util.stream.Collectors;
import jdk.testlibrary.ProcessThread;
import jdk.testlibrary.ProcessTools;
@@ -72,25 +74,28 @@
"truststore";
public static final String TEST_CLASSPATH = System.getProperty("test.classes", ".");
- public void run(InetAddress[] addrs) {
+ public void run(List<InetAddress> addrs) {
System.out.println("DEBUG: Running tests with plain sockets.");
runTests(addrs, false);
System.out.println("DEBUG: Running tests with SSL sockets.");
runTests(addrs, true);
}
- private void runTests(InetAddress[] addrs, boolean useSSL) {
- ProcessThread[] jvms = new ProcessThread[addrs.length];
- for (int i = 0; i < addrs.length; i++) {
+ private void runTests(List<InetAddress> addrs, boolean useSSL) {
+ List<ProcessThread> jvms = new ArrayList<>(addrs.size());
+ int i = 1;
+ for (InetAddress addr : addrs) {
+ String address = JMXAgentInterfaceBinding.wrapAddress(addr.getHostAddress());
System.out.println();
String msg = String.format("DEBUG: Launching java tester for triplet (HOSTNAME,JMX_PORT,RMI_PORT) == (%s,%d,%d)",
- addrs[i].getHostAddress(),
+ address,
JMX_PORT,
RMI_PORT);
System.out.println(msg);
- jvms[i] = runJMXBindingTest(addrs[i], useSSL);
- jvms[i].start();
- System.out.println("DEBUG: Started " + (i + 1) + " Process(es).");
+ ProcessThread jvm = runJMXBindingTest(address, useSSL);
+ jvms.add(jvm);
+ jvm.start();
+ System.out.println("DEBUG: Started " + (i++) + " Process(es).");
}
int failedProcesses = 0;
for (ProcessThread pt: jvms) {
@@ -117,15 +122,15 @@
}
}
if (failedProcesses > 0) {
- throw new RuntimeException("Test FAILED. " + failedProcesses + " out of " + addrs.length + " process(es) failed to start the JMX agent.");
+ throw new RuntimeException("Test FAILED. " + failedProcesses + " out of " + addrs.size() + " process(es) failed to start the JMX agent.");
}
}
- private ProcessThread runJMXBindingTest(InetAddress a, boolean useSSL) {
+ private ProcessThread runJMXBindingTest(String address, boolean useSSL) {
List<String> args = new ArrayList<>();
args.add("-classpath");
args.add(TEST_CLASSPATH);
- args.add("-Dcom.sun.management.jmxremote.host=" + a.getHostAddress());
+ args.add("-Dcom.sun.management.jmxremote.host=" + address);
args.add("-Dcom.sun.management.jmxremote.port=" + JMX_PORT);
args.add("-Dcom.sun.management.jmxremote.rmi.port=" + RMI_PORT);
args.add("-Dcom.sun.management.jmxremote.authenticate=false");
@@ -138,14 +143,14 @@
args.add("-Djavax.net.ssl.trustStorePassword=trustword");
}
args.add(TEST_CLASS);
- args.add(a.getHostAddress());
+ args.add(address);
args.add(Integer.toString(JMX_PORT));
args.add(Integer.toString(RMI_PORT));
args.add(Boolean.toString(useSSL));
try {
ProcessBuilder builder = ProcessTools.createJavaProcessBuilder(args.toArray(new String[] {}));
System.out.println(ProcessTools.getCommandLine(builder));
- ProcessThread jvm = new ProcessThread("JMX-Tester-" + a.getHostAddress(), JMXInterfaceBindingTest::isJMXAgentResponseAvailable, builder);
+ ProcessThread jvm = new ProcessThread("JMX-Tester-" + address, JMXInterfaceBindingTest::isJMXAgentResponseAvailable, builder);
return jvm;
} catch (Exception e) {
throw new RuntimeException("Test failed", e);
@@ -171,8 +176,8 @@
}
public static void main(String[] args) {
- InetAddress[] addrs = getAddressesForLocalHost();
- if (addrs.length < 2) {
+ List<InetAddress> addrs = getAddressesForLocalHost();
+ if (addrs.size() < 2) {
System.out.println("Ignoring manual test since no more than one IPs are configured for 'localhost'");
return;
}
@@ -181,13 +186,24 @@
System.out.println("All tests PASSED.");
}
- private static InetAddress[] getAddressesForLocalHost() {
- InetAddress[] addrs;
+ private static List<InetAddress> getAddressesForLocalHost() {
+
try {
- addrs = InetAddress.getAllByName("localhost");
- } catch (UnknownHostException e) {
+ return NetworkInterface.networkInterfaces()
+ .flatMap(NetworkInterface::inetAddresses)
+ .filter(JMXInterfaceBindingTest::isNonloopbackLocalhost)
+ .collect(Collectors.toList());
+ } catch (SocketException e) {
throw new RuntimeException("Test failed", e);
}
- return addrs;
+ }
+
+ // we need 'real' localhost addresses only (eg. not loopback ones)
+ // so we can bind the remote JMX connector to them
+ private static boolean isNonloopbackLocalhost(InetAddress i) {
+ if (!i.isLoopbackAddress()) {
+ return i.getHostName().toLowerCase().equals("localhost");
+ }
+ return false;
}
}
--- a/jdk/test/sun/misc/VM/GetNanoTimeAdjustment.java Fri Jan 15 08:53:23 2016 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,250 +0,0 @@
-/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-import java.util.Objects;
-import sun.misc.VM;
-
-/**
- * @test
- * @bug 8068730
- * @summary tests that VM.getgetNanoTimeAdjustment() works as expected.
- * @modules java.base/sun.misc
- * @run main GetNanoTimeAdjustment
- * @author danielfuchs
- */
-public class GetNanoTimeAdjustment {
-
- static final int MILLIS_IN_SECOND = 1000;
- static final int NANOS_IN_MILLI = 1000_000;
- static final int NANOS_IN_MICRO = 1000;
- static final int NANOS_IN_SECOND = 1000_000_000;
-
- static final boolean verbose = true;
-
- static final class TestAssertException extends RuntimeException {
- TestAssertException(String msg) { super(msg); }
- }
-
- private static void assertEquals(long expected, long received, String msg) {
- if (expected != received) {
- throw new TestAssertException("Unexpected result for " + msg
- + ".\n\texpected: " + expected
- + "\n\tactual: " + received);
- } else if (verbose) {
- System.out.println("Got expected " + msg + ": " + received);
- }
- }
-
- private static void assertEquals(Object expected, Object received, String msg) {
- if (!Objects.equals(expected, received)) {
- throw new TestAssertException("Unexpected result for " + msg
- + ".\n\texpected: " + expected
- + "\n\tactual: " + received);
- } else if (verbose) {
- System.out.println("Got expected " + msg + ": " + received);
- }
- }
-
- static final long MAX_OFFSET = 0x0100000000L;
- static final long MIN_OFFSET = -MAX_OFFSET;
- static enum Answer {
- YES, // isOffLimit = YES: we must get -1
- NO, // isOffLimit = NO: we must not not get -1
- MAYBE // isOffLimit = MAYBE: we might get -1 or a valid adjustment.
- };
- static long distance(long one, long two) {
- return one > two ? Math.subtractExact(one, two)
- : Math.subtractExact(two, one);
- }
-
-
- static Answer isOffLimits(long before, long after, long offset) {
- long relativeDistanceBefore = distance(before, offset);
- long relativeDistanceAfter = distance(after, offset);
- if (relativeDistanceBefore >= MAX_OFFSET && relativeDistanceAfter >= MAX_OFFSET) {
- return Answer.YES;
- }
- if (relativeDistanceBefore < MAX_OFFSET && relativeDistanceAfter < MAX_OFFSET) {
- if (relativeDistanceBefore == 0 || relativeDistanceAfter == 0) {
- return Answer.MAYBE; // unlucky case where
- }
- return Answer.NO;
- }
- return Answer.MAYBE;
- }
-
- static void testWithOffset(String name, long offset) {
- System.out.println("Testing with offset: " + name);
- long beforeMillis = System.currentTimeMillis();
- long adjustment = VM.getNanoTimeAdjustment(offset);
- long afterMillis = System.currentTimeMillis();
-
- if (offset >= beforeMillis/MILLIS_IN_SECOND
- && offset <= afterMillis/MILLIS_IN_SECOND) {
- if (adjustment == -1) {
- // it's possible that we have fallen in the unlucky case
- // where -1 was the genuine result. let's go backward a bit.
- offset = offset - 10;
- beforeMillis = System.currentTimeMillis();
- adjustment = VM.getNanoTimeAdjustment(offset);
- afterMillis = System.currentTimeMillis();
- if (adjustment == -1) {
- throw new RuntimeException(name + ": VM says " + offset
- + " secs is too far off, "
- + " when time in seconds is in ["
- + beforeMillis/MILLIS_IN_SECOND + ", "
- + afterMillis/MILLIS_IN_SECOND
- + "]");
- }
- }
- }
-
- Answer isOffLimit = isOffLimits(beforeMillis/MILLIS_IN_SECOND,
- afterMillis/MILLIS_IN_SECOND, offset);
- switch (isOffLimit) {
- case YES:
- if (adjustment != -1) {
- throw new RuntimeException(name
- + ": VM should have returned -1 for "
- + offset
- + " when time in seconds is in ["
- + beforeMillis/MILLIS_IN_SECOND + ", "
- + afterMillis/MILLIS_IN_SECOND + "]");
- }
- System.out.println("Got expected exception value: " + adjustment);
- break;
- case NO:
- if (adjustment == -1) {
- throw new RuntimeException(name
- + "VM says " + offset
- + " secs is too far off, "
- + " when time in seconds is in ["
- + beforeMillis/MILLIS_IN_SECOND + ", "
- + afterMillis/MILLIS_IN_SECOND
- + "]");
- }
- break;
- case MAYBE:
- System.out.println("Adjustment: " + adjustment);
- System.out.println("Can't assert for -1 with offset "
- + offset + "(" + name + ")"
- + " when time in seconds is in ["
- + beforeMillis/MILLIS_IN_SECOND + ", "
- + afterMillis/MILLIS_IN_SECOND
- + "]");
- // not conclusive
- }
-
- if (isOffLimit == Answer.NO || adjustment != -1) {
- System.out.println("Validating adjustment: " + adjustment);
- long expectedMax = distance(offset, beforeMillis/MILLIS_IN_SECOND)
- * NANOS_IN_SECOND
- + (beforeMillis % MILLIS_IN_SECOND) * NANOS_IN_MILLI
- + (afterMillis - beforeMillis + 1) * NANOS_IN_MILLI;
- long absoluteAdjustment = distance(0, adjustment);
- if (absoluteAdjustment > expectedMax) {
- long adjSec = absoluteAdjustment / NANOS_IN_SECOND;
- long adjMil = (absoluteAdjustment % NANOS_IN_SECOND) / NANOS_IN_MILLI;
- long adjMic = (absoluteAdjustment % NANOS_IN_MILLI) / NANOS_IN_MICRO;
- long adjNan = (absoluteAdjustment % NANOS_IN_MICRO);
- long expSec = expectedMax / NANOS_IN_SECOND;
- long expMil = (expectedMax % NANOS_IN_SECOND) / NANOS_IN_MILLI;
- long expMic = (expectedMax % NANOS_IN_MILLI) / NANOS_IN_MICRO;
- long expNan = (expectedMax % NANOS_IN_MICRO);
- System.err.println("Excessive adjustment: " + adjSec + "s, "
- + adjMil + "ms, " + adjMic + "mics, " + adjNan + "ns");
- System.err.println("Epected max: " + expSec + "s, "
- + expMil + "ms, " + expMic + "mics, " + expNan + "ns");
-
- throw new RuntimeException(name
- + ": Excessive adjustment: " + adjustment
- + " when time in millis is in ["
- + beforeMillis + ", " + afterMillis
- + "] and offset in seconds is " + offset);
- }
- }
-
- }
-
- static void regular() {
- System.out.println("*** Testing regular cases ***");
- final long start = System.currentTimeMillis();
- long offset = start/1000;
- long adjustment = VM.getNanoTimeAdjustment(offset);
- if (start != offset*1000) {
- if (adjustment == -1) {
- throw new RuntimeException("VM says " + offset
- + " secs is too far off, but time millis is "
- + System.currentTimeMillis());
- }
- }
- if (adjustment == -1) {
- offset = System.currentTimeMillis()/1000 - 1024;
- adjustment = VM.getNanoTimeAdjustment(offset);
- if (adjustment == -1) {
- throw new RuntimeException("VM says " + offset
- + " secs is too far off, but time millis is "
- + System.currentTimeMillis());
- }
- }
- if (adjustment > (start/1000 - offset + 20)*NANOS_IN_SECOND) {
- throw new RuntimeException("Excessive adjustment: " + adjustment);
- }
- testWithOffset("System.currentTimeMillis()/1000",
- System.currentTimeMillis()/1000);
- testWithOffset("System.currentTimeMillis()/1000 - 1024",
- System.currentTimeMillis()/1000 - 1024);
- testWithOffset("System.currentTimeMillis()/1000 + 1024",
- System.currentTimeMillis()/1000 + 1024);
- }
-
- static void testLimits() {
- System.out.println("*** Testing limits ***");
- testWithOffset("System.currentTimeMillis()/1000 - MAX_OFFSET + 1",
- System.currentTimeMillis()/1000 - MAX_OFFSET + 1);
- testWithOffset("System.currentTimeMillis()/1000 + MAX_OFFSET - 1",
- System.currentTimeMillis()/1000 + MAX_OFFSET - 1);
- testWithOffset("System.currentTimeMillis()/1000 - MAX_OFFSET",
- System.currentTimeMillis()/1000 - MAX_OFFSET);
- testWithOffset("System.currentTimeMillis()/1000 + MAX_OFFSET",
- System.currentTimeMillis()/1000 + MAX_OFFSET);
- testWithOffset("System.currentTimeMillis()/1000 - MAX_OFFSET - 1024",
- System.currentTimeMillis()/1000 - MAX_OFFSET - 1024);
- testWithOffset("System.currentTimeMillis()/1000 + MAX_OFFSET + 1024",
- System.currentTimeMillis()/1000 + MAX_OFFSET + 1024);
- testWithOffset("0", 0);
- testWithOffset("-1", -1);
- testWithOffset("Integer.MAX_VALUE + System.currentTimeMillis()/1000",
- ((long)Integer.MAX_VALUE) + System.currentTimeMillis()/1000);
- testWithOffset("System.currentTimeMillis()/1000 - Integer.MIN_VALUE",
- System.currentTimeMillis()/1000 - Integer.MIN_VALUE);
- testWithOffset("Long.MAX_VALUE", Long.MAX_VALUE);
- testWithOffset("System.currentTimeMillis()/1000 - Long.MIN_VALUE",
- (Long.MIN_VALUE + System.currentTimeMillis()/1000)*-1);
- }
-
- public static void main(String[] args) throws Exception {
- regular();
- testLimits();
- }
-
-}
--- a/jdk/test/sun/security/krb5/auto/ReplayCacheTestProc.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/test/sun/security/krb5/auto/ReplayCacheTestProc.java Fri Jan 15 19:18:42 2016 +0000
@@ -78,7 +78,7 @@
mode = -1;
}
- uid = sun.misc.VM.geteuid();
+ uid = jdk.internal.misc.VM.geteuid();
KDC kdc = KDC.create(OneKDC.REALM, HOST, 0, true);
for (int i=0; i<nu; i++) {
--- a/jdk/test/sun/security/krb5/auto/TEST.properties Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/test/sun/security/krb5/auto/TEST.properties Fri Jan 15 19:18:42 2016 +0000
@@ -1,4 +1,5 @@
-modules java.base/sun.misc \
+modules java.base/jdk.internal.misc \
+ java.base/sun.misc \
java.base/sun.net.spi.nameservice \
java.base/sun.security.util \
java.security.jgss/sun.security.jgss \
--- a/jdk/test/tools/pack200/Pack200Test.java Fri Jan 15 08:53:23 2016 -0800
+++ b/jdk/test/tools/pack200/Pack200Test.java Fri Jan 15 19:18:42 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 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
@@ -31,6 +31,7 @@
/*
* @test
* @bug 6521334 6712743 8007902
+ * @key intermittent
* @summary check for memory leaks, test general packer/unpacker functionality\
* using native and java unpackers
* @compile -XDignore.symbol.file Utils.java Pack200Test.java
--- a/langtools/.hgtags Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/.hgtags Fri Jan 15 19:18:42 2016 +0000
@@ -342,3 +342,4 @@
ae8cdc734bab4f19ef8babd2434dcf024672ad38 jdk-9+97
345520da2ec17100cb512a53d541a307a195305e jdk-9+98
cb73b474703e2de266542b505cffd658bcc052da jdk-9+99
+51136404ee5e6cd5868b60d66ebd55a02170b508 jdk-9+100
--- a/langtools/src/java.compiler/share/classes/javax/lang/model/SourceVersion.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/java.compiler/share/classes/javax/lang/model/SourceVersion.java Fri Jan 15 19:18:42 2016 +0000
@@ -145,7 +145,7 @@
* The version recognized by the Java Platform, Standard Edition
* 9.
*
- * @since 1.9
+ * @since 9
*/
RELEASE_9;
--- a/langtools/src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor9.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor9.java Fri Jan 15 19:18:42 2016 +0000
@@ -57,7 +57,7 @@
* @see AbstractAnnotationValueVisitor6
* @see AbstractAnnotationValueVisitor7
* @see AbstractAnnotationValueVisitor8
- * @since 1.9
+ * @since 9
*/
@SupportedSourceVersion(RELEASE_9)
public abstract class AbstractAnnotationValueVisitor9<R, P> extends AbstractAnnotationValueVisitor8<R, P> {
--- a/langtools/src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor9.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor9.java Fri Jan 15 19:18:42 2016 +0000
@@ -61,7 +61,7 @@
* @see AbstractElementVisitor6
* @see AbstractElementVisitor7
* @see AbstractElementVisitor8
- * @since 1.9
+ * @since 9
*/
@SupportedSourceVersion(RELEASE_9)
public abstract class AbstractElementVisitor9<R, P> extends AbstractElementVisitor8<R, P> {
--- a/langtools/src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitor9.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitor9.java Fri Jan 15 19:18:42 2016 +0000
@@ -61,7 +61,7 @@
* @see AbstractTypeVisitor6
* @see AbstractTypeVisitor7
* @see AbstractTypeVisitor8
- * @since 1.9
+ * @since 9
*/
@SupportedSourceVersion(RELEASE_9)
public abstract class AbstractTypeVisitor9<R, P> extends AbstractTypeVisitor8<R, P> {
--- a/langtools/src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor9.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor9.java Fri Jan 15 19:18:42 2016 +0000
@@ -74,7 +74,7 @@
* @see ElementKindVisitor6
* @see ElementKindVisitor7
* @see ElementKindVisitor8
- * @since 1.9
+ * @since 9
*/
@SupportedSourceVersion(RELEASE_9)
public class ElementKindVisitor9<R, P> extends ElementKindVisitor8<R, P> {
--- a/langtools/src/java.compiler/share/classes/javax/lang/model/util/ElementScanner9.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/java.compiler/share/classes/javax/lang/model/util/ElementScanner9.java Fri Jan 15 19:18:42 2016 +0000
@@ -87,7 +87,7 @@
* @see ElementScanner6
* @see ElementScanner7
* @see ElementScanner8
- * @since 1.9
+ * @since 9
*/
@SupportedSourceVersion(RELEASE_9)
public class ElementScanner9<R, P> extends ElementScanner8<R, P> {
--- a/langtools/src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor9.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor9.java Fri Jan 15 19:18:42 2016 +0000
@@ -64,7 +64,7 @@
* @see SimpleAnnotationValueVisitor6
* @see SimpleAnnotationValueVisitor7
* @see SimpleAnnotationValueVisitor8
- * @since 1.9
+ * @since 9
*/
@SupportedSourceVersion(RELEASE_9)
public class SimpleAnnotationValueVisitor9<R, P> extends SimpleAnnotationValueVisitor8<R, P> {
--- a/langtools/src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor9.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor9.java Fri Jan 15 19:18:42 2016 +0000
@@ -69,7 +69,7 @@
* @see SimpleElementVisitor6
* @see SimpleElementVisitor7
* @see SimpleElementVisitor8
- * @since 1.9
+ * @since 9
*/
@SupportedSourceVersion(RELEASE_9)
public class SimpleElementVisitor9<R, P> extends SimpleElementVisitor8<R, P> {
--- a/langtools/src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor9.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor9.java Fri Jan 15 19:18:42 2016 +0000
@@ -72,7 +72,7 @@
* @see TypeKindVisitor6
* @see TypeKindVisitor7
* @see TypeKindVisitor8
- * @since 1.9
+ * @since 9
*/
@SupportedSourceVersion(RELEASE_9)
public class TypeKindVisitor9<R, P> extends TypeKindVisitor8<R, P> {
--- a/langtools/src/java.compiler/share/classes/javax/tools/FileManagerUtils.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/java.compiler/share/classes/javax/tools/FileManagerUtils.java Fri Jan 15 19:18:42 2016 +0000
@@ -32,7 +32,7 @@
/**
* Package-private utility methods to convert between files and paths.
*
- * @since 1.9
+ * @since 9
*/
class FileManagerUtils {
private FileManagerUtils() { }
--- a/langtools/src/java.compiler/share/classes/javax/tools/StandardJavaFileManager.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/java.compiler/share/classes/javax/tools/StandardJavaFileManager.java Fri Jan 15 19:18:42 2016 +0000
@@ -187,7 +187,7 @@
* a directory or if this file manager does not support any of the
* given paths.
*
- * @since 1.9
+ * @since 9
*/
default Iterable<? extends JavaFileObject> getJavaFileObjectsFromPaths(
Iterable<? extends Path> paths) {
@@ -226,7 +226,7 @@
* @throws NullPointerException if the given array contains null
* elements
*
- * @since 1.9
+ * @since 9
*/
default Iterable<? extends JavaFileObject> getJavaFileObjects(Path... paths) {
return getJavaFileObjectsFromPaths(Arrays.asList(paths));
@@ -295,7 +295,7 @@
* @throws IOException if {@code location} is an output location and
* {@code paths} does not represent an existing directory
*
- * @since 1.9
+ * @since 9
*/
default void setLocationFromPaths(Location location, Iterable<? extends Path> paths)
throws IOException {
@@ -324,7 +324,7 @@
* associated search path
*
* @see #setLocationFromPaths
- * @since 1.9
+ * @since 9
*/
default Iterable<? extends Path> getLocationAsPaths(Location location) {
return asPaths(getLocation(location));
@@ -345,7 +345,7 @@
* @throws IllegalArgumentException if the file object does not have an underlying path
* @throws UnsupportedOperationException if the operation is not supported by this file manager
*
- * @since 1.9
+ * @since 9
*/
default Path asPath(FileObject file) {
throw new UnsupportedOperationException();
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/AttributeTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/AttributeTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -33,12 +33,10 @@
*
* @since 1.8
*/
-@jdk.Exported
public interface AttributeTree extends DocTree {
/**
* The kind of an attribute value.
*/
- @jdk.Exported
enum ValueKind {
/** The attribute value is empty. */
EMPTY,
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/AuthorTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/AuthorTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,7 +35,6 @@
*
* @since 1.8
*/
-@jdk.Exported
public interface AuthorTree extends BlockTagTree {
/**
* Returns the name of the author.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/BlockTagTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/BlockTagTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -31,7 +31,6 @@
*
* @since 1.8
*/
-@jdk.Exported
public interface BlockTagTree extends DocTree {
/**
* Returns the name of the tag.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/CommentTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/CommentTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -33,7 +33,6 @@
*
* @since 1.8
*/
-@jdk.Exported
public interface CommentTree extends DocTree {
/**
* Returns the text of the comment.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/DeprecatedTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/DeprecatedTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,7 +35,6 @@
*
* @since 1.8
*/
-@jdk.Exported
public interface DeprecatedTree extends BlockTagTree {
/**
* Returns the description explaining why an item is deprecated.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/DocCommentTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/DocCommentTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -36,7 +36,6 @@
*
* @since 1.8
*/
-@jdk.Exported
public interface DocCommentTree extends DocTree {
/**
* Returns the first sentence of a documentation comment.
@@ -49,7 +48,7 @@
* before any block tags, including the first sentence.
* @return body of a documentation comment first sentence inclusive
*
- * @since 1.9
+ * @since 9
*/
default List<? extends DocTree> getFullBody() {
ArrayList<DocTree> bodyList = new ArrayList<>();
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/DocRootTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/DocRootTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -33,5 +33,4 @@
*
* @since 1.8
*/
-@jdk.Exported
public interface DocRootTree extends InlineTagTree { }
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/DocTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/DocTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -30,12 +30,10 @@
*
* @since 1.8
*/
-@jdk.Exported
public interface DocTree {
/**
* Enumerates all kinds of trees.
*/
- @jdk.Exported
enum Kind {
/**
* Used for instances of {@link AttributeTree}
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/DocTreeVisitor.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/DocTreeVisitor.java Fri Jan 15 19:18:42 2016 +0000
@@ -54,7 +54,6 @@
*
* @since 1.8
*/
-@jdk.Exported
public interface DocTreeVisitor<R,P> {
/**
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/EndElementTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/EndElementTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,7 +35,6 @@
*
* @since 1.8
*/
-@jdk.Exported
public interface EndElementTree extends DocTree {
/**
* Returns the name of this element.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/EntityTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/EntityTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -38,7 +38,6 @@
*
* @since 1.8
*/
-@jdk.Exported
public interface EntityTree extends DocTree {
/**
* Returns the name or value of the entity.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/ErroneousTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/ErroneousTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -33,7 +33,6 @@
*
* @since 1.8
*/
-@jdk.Exported
public interface ErroneousTree extends TextTree {
/**
* Returns a diagnostic object giving details about
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/IdentifierTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/IdentifierTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,7 +35,6 @@
*
* @since 1.8
*/
-@jdk.Exported
public interface IdentifierTree extends DocTree {
/**
* Returns the name of the identifier.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/IndexTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/IndexTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -33,9 +33,8 @@
* <p>
* {@index keyword optional description} <br>
*
- * @since 1.9
+ * @since 9
*/
-@jdk.Exported
public interface IndexTree extends InlineTagTree {
/**
* Returns the specified search term.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/InheritDocTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/InheritDocTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -34,5 +34,4 @@
*
* @since 1.8
*/
-@jdk.Exported
public interface InheritDocTree extends InlineTagTree { }
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/InlineTagTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/InlineTagTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -31,7 +31,6 @@
*
* @since 1.8
*/
-@jdk.Exported
public interface InlineTagTree extends DocTree {
/**
* Returns the name of the tag.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/LinkTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/LinkTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -36,7 +36,6 @@
*
* @since 1.8
*/
-@jdk.Exported
public interface LinkTree extends InlineTagTree {
/**
* Returns the reference of a link.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/LiteralTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/LiteralTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -34,7 +34,6 @@
*
* @since 1.8
*/
-@jdk.Exported
public interface LiteralTree extends InlineTagTree {
/**
* Returns the body of the {@code @code} or {@code @literal} tag.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/ParamTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/ParamTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,7 +35,6 @@
*
* @since 1.8
*/
-@jdk.Exported
public interface ParamTree extends BlockTagTree {
/**
* Returns true if this is documenting a type parameter.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/ReferenceTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/ReferenceTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -34,7 +34,6 @@
*
* @since 1.8
*/
-@jdk.Exported
public interface ReferenceTree extends DocTree {
/**
* Returns the signature of the Java language element being referenced,
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/ReturnTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/ReturnTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,7 +35,6 @@
*
* @since 1.8
*/
-@jdk.Exported
public interface ReturnTree extends BlockTagTree {
/**
* Returns the description of the return value of a method.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/SeeTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/SeeTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -38,7 +38,6 @@
*
* @since 1.8
*/
-@jdk.Exported
public interface SeeTree extends BlockTagTree {
/**
* Returns the reference.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/SerialDataTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/SerialDataTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,7 +35,6 @@
*
* @since 1.8
*/
-@jdk.Exported
public interface SerialDataTree extends BlockTagTree {
/**
* Returns the description of the serial data.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/SerialFieldTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/SerialFieldTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,7 +35,6 @@
*
* @since 1.8
*/
-@jdk.Exported
public interface SerialFieldTree extends BlockTagTree {
/**
* Returns the name of the serial field.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/SerialTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/SerialTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,7 +35,6 @@
*
* @since 1.8
*/
-@jdk.Exported
public interface SerialTree extends BlockTagTree {
/**
* Returns the description of the field, or the word
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/SinceTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/SinceTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,7 +35,6 @@
*
* @since 1.8
*/
-@jdk.Exported
public interface SinceTree extends BlockTagTree {
/**
* Returns the text explaining the availability of the item being documented.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/StartElementTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/StartElementTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -36,7 +36,6 @@
*
* @since 1.8
*/
-@jdk.Exported
public interface StartElementTree extends DocTree {
/**
* Returns the name of the element.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/TextTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/TextTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -30,7 +30,6 @@
*
* @since 1.8
*/
-@jdk.Exported
public interface TextTree extends DocTree {
/**
* Returns the text.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/ThrowsTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/ThrowsTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -38,7 +38,6 @@
*
* @since 1.8
*/
-@jdk.Exported
public interface ThrowsTree extends BlockTagTree {
/**
* Returns a name of the exception being documented.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/UnknownBlockTagTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/UnknownBlockTagTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -36,7 +36,6 @@
* @since 1.8
*
*/
-@jdk.Exported
public interface UnknownBlockTagTree extends BlockTagTree {
/**
* Returns the content of an unrecognized block tag.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/UnknownInlineTagTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/UnknownInlineTagTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -36,7 +36,6 @@
* @since 1.8
*
*/
-@jdk.Exported
public interface UnknownInlineTagTree extends InlineTagTree {
/**
* Returns the content of an unrecognized inline tag.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/ValueTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/ValueTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -33,7 +33,6 @@
*
* @since 1.8
*/
-@jdk.Exported
public interface ValueTree extends InlineTagTree {
/**
* Returns the reference to the value.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/VersionTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/VersionTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -36,7 +36,6 @@
*
* @since 1.8
*/
-@jdk.Exported
public interface VersionTree extends BlockTagTree {
/**
* Returns the body of the tag.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -31,5 +31,4 @@
* @since 1.8
* @see <a href="http://download.oracle.com/javase/6/docs/technotes/tools/solaris/javadoc.html#javadoctags">http://download.oracle.com/javase/6/docs/technotes/tools/solaris/javadoc.html#javadoctags</a>
*/
-@jdk.Exported
package com.sun.source.doctree;
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/AnnotatedTypeTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/AnnotatedTypeTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -41,7 +41,6 @@
* @author Mahmood Ali
* @since 1.8
*/
-@jdk.Exported
public interface AnnotatedTypeTree extends ExpressionTree {
/**
* Returns the annotations associated with this type expression.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/AnnotationTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/AnnotationTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -42,7 +42,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface AnnotationTree extends ExpressionTree {
/**
* Returns the annotation type.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ArrayAccessTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ArrayAccessTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -39,7 +39,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface ArrayAccessTree extends ExpressionTree {
/**
* Returns the expression for the array being accessed.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ArrayTypeTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ArrayTypeTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -39,7 +39,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface ArrayTypeTree extends Tree {
/**
* Returns the element type of this array type.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/AssertTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/AssertTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -41,7 +41,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface AssertTree extends StatementTree {
/**
* Returns the condition being asserted.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/AssignmentTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/AssignmentTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -39,7 +39,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface AssignmentTree extends ExpressionTree {
/**
* Returns the variable being assigned to.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/BinaryTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/BinaryTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -40,7 +40,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface BinaryTree extends ExpressionTree {
/**
* Returns the left (first) operand of the expression.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/BlockTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/BlockTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -45,7 +45,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface BlockTree extends StatementTree {
/**
* Returns true if and only if this is a static initializer block.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/BreakTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/BreakTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -43,7 +43,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface BreakTree extends StatementTree {
/**
* Returns the label for this {@code break} statement.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/CaseTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/CaseTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -45,7 +45,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface CaseTree extends Tree {
/**
* Returns the expression for the case, or
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/CatchTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/CatchTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -40,7 +40,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface CatchTree extends Tree {
/**
* Returns the catch variable.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ClassTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ClassTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -48,7 +48,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface ClassTree extends StatementTree {
/**
* Returns the modifiers, including any annotations,
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/CompilationUnitTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/CompilationUnitTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -37,7 +37,6 @@
* @author Peter von der Ahé
* @since 1.6
*/
-@jdk.Exported
public interface CompilationUnitTree extends Tree {
/**
* Returns the annotations listed on any package declaration
@@ -59,7 +58,7 @@
* Returns the package tree associated with this compilation unit,
* or {@code null} if there is no package declaration.
* @return the package tree
- * @since 1.9
+ * @since 9
*/
PackageTree getPackage();
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/CompoundAssignmentTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/CompoundAssignmentTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -40,7 +40,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface CompoundAssignmentTree extends ExpressionTree {
/**
* Returns the variable on the left hand side of the compound assignment.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ConditionalExpressionTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ConditionalExpressionTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -39,7 +39,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface ConditionalExpressionTree extends ExpressionTree {
/**
* Returns the condition.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ContinueTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ContinueTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -42,7 +42,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface ContinueTree extends StatementTree {
/**
* Returns the label for this {@code continue} statement.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/DoWhileLoopTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/DoWhileLoopTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -41,7 +41,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface DoWhileLoopTree extends StatementTree {
/**
* Returns the condition of the loop.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/EmptyStatementTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/EmptyStatementTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -39,5 +39,4 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface EmptyStatementTree extends StatementTree {}
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/EnhancedForLoopTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/EnhancedForLoopTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -40,7 +40,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface EnhancedForLoopTree extends StatementTree {
/**
* Returns the control variable for the loop.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ErroneousTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ErroneousTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -34,7 +34,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface ErroneousTree extends ExpressionTree {
/**
* Returns any trees that were saved in this node.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ExpressionStatementTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ExpressionStatementTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -39,7 +39,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface ExpressionStatementTree extends StatementTree {
/**
* Returns the expression constituting this statement.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ExpressionTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ExpressionTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,5 +35,4 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface ExpressionTree extends Tree {}
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ForLoopTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ForLoopTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -42,7 +42,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface ForLoopTree extends StatementTree {
/**
* Returns any initializers of the {@code for} statement.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/IdentifierTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/IdentifierTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -41,7 +41,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface IdentifierTree extends ExpressionTree {
/**
* Returns the name of the identifier.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/IfTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/IfTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -45,7 +45,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface IfTree extends StatementTree {
/**
* Returns the condition of the if-statement.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ImportTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ImportTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -41,7 +41,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface ImportTree extends Tree {
/**
* Returns true if this is a static import declaration.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/InstanceOfTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/InstanceOfTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -39,7 +39,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface InstanceOfTree extends ExpressionTree {
/**
* Returns the expression to be tested.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/IntersectionTypeTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/IntersectionTypeTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -34,7 +34,6 @@
*
* @since 1.8
*/
-@jdk.Exported
public interface IntersectionTypeTree extends Tree {
/**
* Returns the bounds of the type.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/LabeledStatementTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/LabeledStatementTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -41,7 +41,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface LabeledStatementTree extends StatementTree {
/**
* Returns the label.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/LambdaExpressionTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/LambdaExpressionTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -37,7 +37,6 @@
* (x,y)-> { return x + y; }
* }</pre>
*/
-@jdk.Exported
public interface LambdaExpressionTree extends ExpressionTree {
/**
@@ -47,7 +46,6 @@
* <li> statement lambdas, whose body is a block
* </ul>
*/
- @jdk.Exported
public enum BodyKind {
/** enum constant for expression lambdas */
EXPRESSION,
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/LineMap.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/LineMap.java Fri Jan 15 19:18:42 2016 +0000
@@ -31,7 +31,6 @@
*
* @since 1.6
*/
-@jdk.Exported
public interface LineMap {
/**
* Finds the start position of a line.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/LiteralTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/LiteralTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -40,7 +40,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface LiteralTree extends ExpressionTree {
/**
* Returns the value of the literal expression.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/MemberReferenceTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/MemberReferenceTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -39,14 +39,12 @@
*
* @since 1.8
*/
-@jdk.Exported
public interface MemberReferenceTree extends ExpressionTree {
/**
* There are two kinds of member references: (i) method references and
* (ii) constructor references
*/
- @jdk.Exported
public enum ReferenceMode {
/** enum constant for method references. */
INVOKE,
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/MemberSelectTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/MemberSelectTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -41,7 +41,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface MemberSelectTree extends ExpressionTree {
/**
* Returns the expression for which a member is to be selected.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/MethodInvocationTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/MethodInvocationTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -43,7 +43,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface MethodInvocationTree extends ExpressionTree {
/**
* Returns the type arguments for this method invocation.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/MethodTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/MethodTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -46,7 +46,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface MethodTree extends Tree {
/**
* Returns the modifiers, including any annotations for the method being declared.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ModifiersTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ModifiersTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -45,7 +45,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface ModifiersTree extends Tree {
/**
* Returns the flags in this modifiers tree.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/NewArrayTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/NewArrayTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -43,7 +43,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface NewArrayTree extends ExpressionTree {
/**
* Returns the base type of the expression.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/NewClassTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/NewClassTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -48,7 +48,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface NewClassTree extends ExpressionTree {
/**
* Returns the enclosing expression, or {@code null} if none.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/PackageTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/PackageTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -33,9 +33,8 @@
* @jls sections 7.3, and 7.4
*
* @author Paul Govereau
- * @since 1.9
+ * @since 9
*/
-@jdk.Exported
public interface PackageTree extends Tree {
/**
* Returns the annotations associated with this package declaration.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ParameterizedTypeTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ParameterizedTypeTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -41,7 +41,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface ParameterizedTypeTree extends Tree {
/**
* Returns the base type.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ParenthesizedTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ParenthesizedTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -40,7 +40,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface ParenthesizedTree extends ExpressionTree {
/**
* Returns the expression within the parentheses.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/PrimitiveTypeTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/PrimitiveTypeTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -41,7 +41,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface PrimitiveTypeTree extends Tree {
/**
* Returns the kind of this primitive type.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ReturnTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ReturnTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -40,7 +40,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface ReturnTree extends StatementTree {
/**
* Returns the expression to be returned.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/Scope.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/Scope.java Fri Jan 15 19:18:42 2016 +0000
@@ -48,7 +48,6 @@
*
* @since 1.6
*/
-@jdk.Exported
public interface Scope {
/**
* Returns the enclosing scope.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/StatementTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/StatementTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,5 +35,4 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface StatementTree extends Tree {}
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/SwitchTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/SwitchTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -43,7 +43,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface SwitchTree extends StatementTree {
/**
* Returns the expression for the {@code switch} statement.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/SynchronizedTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/SynchronizedTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -40,7 +40,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface SynchronizedTree extends StatementTree {
/**
* Returns the expression on which to synchronize.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ThrowTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ThrowTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -39,7 +39,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface ThrowTree extends StatementTree {
/**
* Returns the expression to be thrown.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/Tree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/Tree.java Fri Jan 15 19:18:42 2016 +0000
@@ -39,13 +39,11 @@
*
* @since 1.6
*/
-@jdk.Exported
public interface Tree {
/**
* Enumerates all kinds of trees.
*/
- @jdk.Exported
public enum Kind {
/**
* Used for instances of {@link AnnotatedTypeTree}
@@ -212,7 +210,7 @@
/**
* Used for instances of {@link PackageTree}.
- * @since 1.9
+ * @since 9
*/
PACKAGE(PackageTree.class),
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/TreeVisitor.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/TreeVisitor.java Fri Jan 15 19:18:42 2016 +0000
@@ -56,7 +56,6 @@
*
* @since 1.6
*/
-@jdk.Exported
public interface TreeVisitor<R,P> {
/**
* Visits an AnnotatedTypeTree node.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/TryTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/TryTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -45,7 +45,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface TryTree extends StatementTree {
/**
* Returns the block of the {@code try} statement.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/TypeCastTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/TypeCastTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -39,7 +39,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface TypeCastTree extends ExpressionTree {
/**
* Returns the target type of the cast.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/TypeParameterTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/TypeParameterTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -46,7 +46,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface TypeParameterTree extends Tree {
/**
* Returns the name of the type parameter.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/UnaryTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/UnaryTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -42,7 +42,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface UnaryTree extends ExpressionTree {
/**
* Returns the expression that is the operand of the unary operator.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/UnionTypeTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/UnionTypeTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,7 +35,6 @@
*
* @since 1.7
*/
-@jdk.Exported
public interface UnionTypeTree extends Tree {
/**
* Returns the alternative type expressions.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/VariableTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/VariableTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -42,7 +42,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface VariableTree extends StatementTree {
/**
* Returns the modifiers, including any annotations, on the declaration.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/WhileLoopTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/WhileLoopTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -41,7 +41,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface WhileLoopTree extends StatementTree {
/**
* Returns the condition of the loop.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/WildcardTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/WildcardTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -44,7 +44,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface WildcardTree extends Tree {
/**
* Returns the bound of the wildcard.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -31,5 +31,4 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
package com.sun.source.tree;
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/util/DocSourcePositions.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/util/DocSourcePositions.java Fri Jan 15 19:18:42 2016 +0000
@@ -36,7 +36,6 @@
*
* @since 1.8
*/
-@jdk.Exported
public interface DocSourcePositions extends SourcePositions {
/**
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/util/DocTreePath.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/util/DocTreePath.java Fri Jan 15 19:18:42 2016 +0000
@@ -37,7 +37,6 @@
*
* @since 1.8
*/
-@jdk.Exported
public class DocTreePath implements Iterable<DocTree> {
/**
* Returns a documentation tree path for a tree node within a compilation unit,
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/util/DocTreePathScanner.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/util/DocTreePathScanner.java Fri Jan 15 19:18:42 2016 +0000
@@ -37,7 +37,6 @@
*
* @since 1.8
*/
-@jdk.Exported
public class DocTreePathScanner<R, P> extends DocTreeScanner<R, P> {
/**
* Scans a tree from a position identified by a tree path.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/util/DocTreeScanner.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/util/DocTreeScanner.java Fri Jan 15 19:18:42 2016 +0000
@@ -68,7 +68,6 @@
*
* @since 1.8
*/
-@jdk.Exported
public class DocTreeScanner<R,P> implements DocTreeVisitor<R,P> {
/**
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/util/DocTrees.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/util/DocTrees.java Fri Jan 15 19:18:42 2016 +0000
@@ -43,7 +43,6 @@
*
* @since 1.8
*/
-@jdk.Exported
public abstract class DocTrees extends Trees {
/**
* Returns a DocTrees object for a given CompilationTask.
@@ -73,7 +72,7 @@
* Returns {@code null} if none has been specified.
* @return the break iterator
*
- * @since 1.9
+ * @since 9
*/
public abstract BreakIterator getBreakIterator();
@@ -91,7 +90,7 @@
* @param e an element whose documentation is required
* @return the doc comment tree
*
- * @since 1.9
+ * @since 9
*/
public abstract DocCommentTree getDocCommentTree(Element e);
@@ -105,7 +104,7 @@
* @param fileObject the content container
* @return the doc comment tree
*
- * @since 1.9
+ * @since 9
*/
public abstract DocCommentTree getDocCommentTree(FileObject fileObject);
@@ -122,7 +121,7 @@
* @return the doc comment tree
* @throws java.io.IOException if an exception occurs
*
- * @since 1.9
+ * @since 9
*/
public abstract DocCommentTree getDocCommentTree(Element e, String relativePath) throws IOException;
@@ -141,7 +140,7 @@
* @param list the DocTree list to interrogate
* @return the first sentence
*
- * @since 1.9
+ * @since 9
*/
public abstract List<DocTree> getFirstSentence(List<? extends DocTree> list);
@@ -173,7 +172,7 @@
* @param breakiterator a break iterator or {@code null} to specify the default
* sentence breaker
*
- * @since 1.9
+ * @since 9
*/
public abstract void setBreakIterator(BreakIterator breakiterator);
}
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/util/JavacTask.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/util/JavacTask.java Fri Jan 15 19:18:42 2016 +0000
@@ -48,7 +48,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public abstract class JavacTask implements CompilationTask {
/**
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/util/Plugin.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/util/Plugin.java Fri Jan 15 19:18:42 2016 +0000
@@ -49,7 +49,6 @@
*
* @since 1.8
*/
-@jdk.Exported
public interface Plugin {
/**
* Returns the user-friendly name of this plug-in.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/util/SimpleDocTreeVisitor.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/util/SimpleDocTreeVisitor.java Fri Jan 15 19:18:42 2016 +0000
@@ -38,7 +38,6 @@
*
* @since 1.8
*/
-@jdk.Exported
public class SimpleDocTreeVisitor<R,P> implements DocTreeVisitor<R, P> {
/**
* The default value, returned by the {@link #defaultAction default action}.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/util/SimpleTreeVisitor.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/util/SimpleTreeVisitor.java Fri Jan 15 19:18:42 2016 +0000
@@ -39,7 +39,6 @@
* @author Peter von der Ahé
* @since 1.6
*/
-@jdk.Exported
public class SimpleTreeVisitor <R,P> implements TreeVisitor<R,P> {
/**
* The default value, returned by the {@link #defaultAction default action}.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/util/SourcePositions.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/util/SourcePositions.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,7 +35,6 @@
* @author Peter von der Ahé
* @since 1.6
*/
-@jdk.Exported
public interface SourcePositions {
/**
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/util/TaskEvent.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/util/TaskEvent.java Fri Jan 15 19:18:42 2016 +0000
@@ -36,14 +36,12 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public final class TaskEvent
{
/**
* Kind of task event.
* @since 1.6
*/
- @jdk.Exported
public enum Kind {
/**
* For events related to the parsing of a file.
@@ -74,7 +72,7 @@
* This event is not sent when using {@link JavacTask#parse()},
* {@link JavacTask#analyze()} or {@link JavacTask#generate()}.
*
- * @since 1.9
+ * @since 9
*/
COMPILATION,
}
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/util/TaskListener.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/util/TaskListener.java Fri Jan 15 19:18:42 2016 +0000
@@ -32,7 +32,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public interface TaskListener
{
/**
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/util/TreePath.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/util/TreePath.java Fri Jan 15 19:18:42 2016 +0000
@@ -37,7 +37,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public class TreePath implements Iterable<Tree> {
/**
* Returns a tree path for a tree node within a compilation unit,
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/util/TreePathScanner.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/util/TreePathScanner.java Fri Jan 15 19:18:42 2016 +0000
@@ -38,7 +38,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public class TreePathScanner<R, P> extends TreeScanner<R, P> {
/**
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/util/TreeScanner.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/util/TreeScanner.java Fri Jan 15 19:18:42 2016 +0000
@@ -74,7 +74,6 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
public class TreeScanner<R,P> implements TreeVisitor<R,P> {
/**
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/util/Trees.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/util/Trees.java Fri Jan 15 19:18:42 2016 +0000
@@ -51,7 +51,6 @@
*
* @author Peter von der Ahé
*/
-@jdk.Exported
public abstract class Trees {
/**
* Returns a Trees object for a given CompilationTask.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/util/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/util/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -30,5 +30,4 @@
* @author Jonathan Gibbons
* @since 1.6
*/
-@jdk.Exported
package com.sun.source.util;
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/Main.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/Main.java Fri Jan 15 19:18:42 2016 +0000
@@ -31,7 +31,6 @@
* The programmatic interface for the Java Programming Language
* compiler, javac.
*/
-@jdk.Exported
public class Main {
/** Main entry point for the launcher.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/platform/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/platform/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -31,5 +31,4 @@
* This code and its internal interfaces are subject to change or
* deletion without notice.</b>
*/
-@jdk.Exported(false)
package com.sun.tools.javac.platform;
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/CleanProperties.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/CleanProperties.java Fri Jan 15 19:18:42 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -66,7 +66,6 @@
public boolean transform(CompilationService sjavac,
Map<String,Set<URI>> pkgSrcs,
Set<URI> visibleSrcs,
- Map<URI,Set<String>> visibleClasses,
Map<String,Set<String>> oldPackageDependencies,
URI destRoot,
Map<String,Set<URI>> packageArtifacts,
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/CompileJavaPackages.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/CompileJavaPackages.java Fri Jan 15 19:18:42 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -80,7 +80,6 @@
public boolean transform(final CompilationService sjavac,
Map<String,Set<URI>> pkgSrcs,
final Set<URI> visibleSources,
- final Map<URI,Set<String>> visibleClasses,
Map<String,Set<String>> oldPackageDependents,
URI destRoot,
final Map<String,Set<URI>> packageArtifacts,
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/CompileProperties.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/CompileProperties.java Fri Jan 15 19:18:42 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -74,7 +74,6 @@
public boolean transform(CompilationService compilationService,
Map<String,Set<URI>> pkgSrcs,
Set<URI> visibleSrcs,
- Map<URI,Set<String>> visibleClasses,
Map<String,Set<String>> oldPackageDependents,
URI destRoot,
Map<String,Set<URI>> packageArtifacts,
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/CopyFile.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/CopyFile.java Fri Jan 15 19:18:42 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -61,7 +61,6 @@
public boolean transform(CompilationService compilationService,
Map<String,Set<URI>> pkgSrcs,
Set<URI> visibleSrcs,
- Map<URI,Set<String>> visibleClasses,
Map<String,Set<String>> oldPackageDependents,
URI destRoot,
Map<String,Set<URI>> packageArtifacts,
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/JavacState.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/JavacState.java Fri Jan 15 19:18:42 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -120,13 +120,6 @@
// ones that -sourcepath is allowed to see.
Set<URI> visibleSrcs;
- // Visible classes for linking. These are the only
- // ones that -classpath is allowed to see.
- // It maps from a classpath root to the set of visible classes for that root.
- // If the set is empty, then all classes are visible for that root.
- // It can also map from a jar file to the set of visible classes for that jar file.
- Map<URI,Set<String>> visibleClasses;
-
// Setup transform that always exist.
private CompileJavaPackages compileJavaPackages = new CompileJavaPackages();
@@ -214,16 +207,6 @@
}
/**
- * Specify which classes are visible to the compiler through -classpath.
- */
- public void setVisibleClasses(Map<String,Source> vs) {
- visibleSrcs = new HashSet<>();
- for (String s : vs.keySet()) {
- Source src = vs.get(s);
- visibleSrcs.add(src.file().toURI());
- }
- }
- /**
* Returns true if this is an incremental build.
*/
public boolean isIncremental() {
@@ -820,7 +803,6 @@
boolean r = t.transform(sjavac,
srcs,
visibleSrcs,
- visibleClasses,
prev.dependents(),
outputDir.toURI(),
packageArtifacts,
@@ -954,8 +936,7 @@
}
}
// Read in the file and create another set of filenames with full paths.
- try {
- BufferedReader in = new BufferedReader(new FileReader(makefileSourceList));
+ try(BufferedReader in = new BufferedReader(new FileReader(makefileSourceList))) {
for (;;) {
String l = in.readLine();
if (l==null) break;
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/Transformer.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/Transformer.java Fri Jan 15 19:18:42 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -86,7 +86,6 @@
boolean transform(CompilationService sjavac,
Map<String,Set<URI>> pkgSrcs,
Set<URI> visibleSources,
- Map<URI,Set<String>> visibleClasses,
Map<String,Set<String>> oldPackageDependencies,
URI destRoot,
Map<String,Set<URI>> packageArtifacts,
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/javadoc/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/javadoc/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -144,5 +144,4 @@
@see com.sun.javadoc.Doclet
@see com.sun.javadoc.RootDoc
*/
-@jdk.Exported
package com.sun.javadoc;
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/markup/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/markup/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -31,5 +31,4 @@
This code and its internal interfaces are subject to change or
deletion without notice.</b>
*/
-@jdk.Exported(false)
package com.sun.tools.doclets.formats.html.markup;
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -36,5 +36,4 @@
This code and its internal interfaces are subject to change or
deletion without notice.</b>
*/
-@jdk.Exported(false)
package com.sun.tools.doclets.formats.html;
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -37,5 +37,4 @@
This code and its internal interfaces are subject to change or
deletion without notice.</b>
*/
-@jdk.Exported(false)
package com.sun.tools.doclets.internal.toolkit.builders;
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -53,5 +53,4 @@
This code and its internal interfaces are subject to change or
deletion without notice.</b>
*/
-@jdk.Exported(false)
package com.sun.tools.doclets.internal.toolkit;
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -48,5 +48,4 @@
This code and its internal interfaces are subject to change or
deletion without notice.</b>
*/
-@jdk.Exported(false)
package com.sun.tools.doclets.internal.toolkit.taglets;
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/links/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/links/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -31,5 +31,4 @@
This code and its internal interfaces are subject to change or
deletion without notice.</b>
*/
-@jdk.Exported(false)
package com.sun.tools.doclets.internal.toolkit.util.links;
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -32,5 +32,4 @@
This code and its internal interfaces are subject to change or
deletion without notice.</b>
*/
-@jdk.Exported(false)
package com.sun.tools.doclets.internal.toolkit.util;
--- a/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -32,5 +32,4 @@
This code and its internal interfaces are subject to change or
deletion without notice.</b>
*/
-@jdk.Exported(false)
package com.sun.tools.doclets;
--- a/langtools/src/jdk.jdeps/share/classes/com/sun/tools/classfile/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.jdeps/share/classes/com/sun/tools/classfile/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -33,5 +33,4 @@
This code and its internal interfaces are subject to change or
deletion without notice.</b>
*/
-@jdk.Exported(false)
package com.sun.tools.classfile;
--- a/langtools/src/jdk.jdeps/share/classes/com/sun/tools/javap/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/src/jdk.jdeps/share/classes/com/sun/tools/javap/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -31,5 +31,4 @@
This code and its internal interfaces are subject to change or
deletion without notice.</b>
*/
-@jdk.Exported(false)
package com.sun.tools.javap;
--- a/langtools/test/tools/javac/proprietary/WarnImport.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/test/tools/javac/proprietary/WarnImport.java Fri Jan 15 19:18:42 2016 +0000
@@ -9,6 +9,6 @@
* @compile/fail/ref=WarnImport.out -XDrawDiagnostics -Werror -Xlint:none WarnImport.java
*/
-import sun.misc.VM;
+import sun.security.x509.X509CertInfo;
public class WarnImport {}
--- a/langtools/test/tools/javac/proprietary/WarnImport.out Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/test/tools/javac/proprietary/WarnImport.out Fri Jan 15 19:18:42 2016 +0000
@@ -1,4 +1,4 @@
-WarnImport.java:12:16: compiler.warn.sun.proprietary: sun.misc.VM
+WarnImport.java:12:25: compiler.warn.sun.proprietary: sun.security.x509.X509CertInfo
- compiler.err.warnings.and.werror
1 error
1 warning
--- a/langtools/test/tools/javac/proprietary/WarnMethod.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/test/tools/javac/proprietary/WarnMethod.java Fri Jan 15 19:18:42 2016 +0000
@@ -3,7 +3,7 @@
* @bug 6380059
* @summary Emit warnings for proprietary packages in the boot class path
* @author Peter von der Ah\u00e9
- * @modules java.base/sun.misc
+ * @modules java.base/sun.security.x509
* @compile WarnMethod.java
* @compile/fail/ref=WarnMethod.out -XDrawDiagnostics -Werror WarnMethod.java
* @compile/fail/ref=WarnMethod.out -XDrawDiagnostics -Werror -nowarn WarnMethod.java
@@ -12,6 +12,6 @@
public class WarnMethod {
public static void main(String... args) {
- System.out.println(sun.misc.VM.getFinalRefCount());
+ System.out.println(sun.security.x509.OIDMap.getOID(""));
}
}
--- a/langtools/test/tools/javac/proprietary/WarnMethod.out Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/test/tools/javac/proprietary/WarnMethod.out Fri Jan 15 19:18:42 2016 +0000
@@ -1,4 +1,4 @@
-WarnMethod.java:15:36: compiler.warn.sun.proprietary: sun.misc.VM
+WarnMethod.java:15:45: compiler.warn.sun.proprietary: sun.security.x509.OIDMap
- compiler.err.warnings.and.werror
1 error
1 warning
--- a/langtools/test/tools/javac/proprietary/WarnStaticImport.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/test/tools/javac/proprietary/WarnStaticImport.java Fri Jan 15 19:18:42 2016 +0000
@@ -9,6 +9,6 @@
* @compile/fail/ref=WarnStaticImport.out -XDrawDiagnostics -Werror -Xlint:none WarnStaticImport.java
*/
-import static sun.misc.VM.getFinalRefCount;
+import static sun.security.x509.OIDMap.getOID;
public class WarnStaticImport {}
--- a/langtools/test/tools/javac/proprietary/WarnStaticImport.out Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/test/tools/javac/proprietary/WarnStaticImport.out Fri Jan 15 19:18:42 2016 +0000
@@ -1,4 +1,4 @@
-WarnStaticImport.java:12:23: compiler.warn.sun.proprietary: sun.misc.VM
+WarnStaticImport.java:12:32: compiler.warn.sun.proprietary: sun.security.x509.OIDMap
- compiler.err.warnings.and.werror
1 error
1 warning
--- a/langtools/test/tools/javac/tree/NoPrivateTypesExported.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/test/tools/javac/tree/NoPrivateTypesExported.java Fri Jan 15 19:18:42 2016 +0000
@@ -90,8 +90,7 @@
"java.text.",
"java.util.",
"javax.lang.model.",
- "javax.annotation.processing.SupportedSourceVersion",
- "jdk.Exported"
+ "javax.annotation.processing.SupportedSourceVersion"
));
Set<String> javaxToolsProcessingAcceptableTemp = new HashSet<>();
javaxToolsProcessingAcceptableTemp.addAll(javaxLangModelAcceptable);
--- a/langtools/test/tools/javac/util/context/T7021650.java Fri Jan 15 08:53:23 2016 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,223 +0,0 @@
-/*
- * Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/**
- * @test
- * @bug 7021650
- * @summary Fix Context issues
- * @library /tools/javac/lib
- * @modules jdk.compiler/com.sun.tools.javac.comp
- * jdk.compiler/com.sun.tools.javac.file
- * jdk.compiler/com.sun.tools.javac.main
- * jdk.compiler/com.sun.tools.javac.processing
- * jdk.compiler/com.sun.tools.javac.util
- * @build JavacTestingAbstractProcessor T7021650
- * @run main T7021650
- */
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import javax.annotation.processing.*;
-import javax.lang.model.element.*;
-import javax.tools.*;
-
-import com.sun.tools.javac.comp.Attr;
-import com.sun.tools.javac.file.JavacFileManager;
-import com.sun.tools.javac.main.Main;
-import com.sun.tools.javac.processing.JavacProcessingEnvironment;
-import com.sun.tools.javac.util.Context;
-
-public class T7021650 extends JavacTestingAbstractProcessor {
- public static void main(String... args) throws Exception {
- new T7021650().run();
- }
-
- static File testSrc = new File(System.getProperty("test.src"));
- static final int MAX_ROUNDS = 3;
-
- /**
- * Perform a compilation with custom factories registered in the context,
- * and verify that corresponding objects are created in each round.
- */
- void run() throws Exception {
- Counter myDemoCounter = new Counter();
- Counter myAttrCounter = new Counter();
-
- Context context = new Context();
- // Use a custom file manager which creates classloaders for annotation
- // processors with a sensible delegation parent, so that all instances
- // of test classes come from the same class loader. This is important
- // because the test performs class checks on the instances of classes
- // found in the context for each round or processing.
- context.put(JavaFileManager.class, new Context.Factory<JavaFileManager>() {
- public JavaFileManager make(Context c) {
- return new JavacFileManager(c, true, null) {
- @Override
- protected ClassLoader getClassLoader(URL[] urls) {
- return new URLClassLoader(urls, T7021650.class.getClassLoader());
- }
- };
- }
- });
-
- MyDemo.preRegister(context, myDemoCounter);
- MyAttr.preRegister(context, myAttrCounter);
-
- String[] args = {
- "-d", ".",
- "-processor", T7021650.class.getName(),
- "-XprintRounds",
- new File(testSrc, T7021650.class.getName() + ".java").getPath()
- };
-
- compile(context, args);
-
- // the services should only be created once in the current scheme:
- checkEqual("demoCounter", myDemoCounter.count, 1);
- checkEqual("myAttrCounter", myAttrCounter.count, 1);
- }
-
- void compile(Context context, String... args) throws Exception {
- StringWriter sw = new StringWriter();
- PrintWriter pw = new PrintWriter(sw);
- Main m = new Main("javac", pw);
- Main.Result res = m.compile(args, context);
- pw.close();
- String out = sw.toString();
- if (!out.isEmpty())
- System.err.println(out);
- if (!res.isOK())
- throw new Exception("compilation failed unexpectedly: result=" + res);
- }
-
- void checkEqual(String label, int found, int expect) throws Exception {
- if (found != expect)
- throw new Exception("unexpected value for " + label
- + ": expected " + expect
- + ": found " + found);
- }
-
- //---------------
-
- /*
- * A custom class unknown to javac but nonetheless registered in the context.
- */
- static class Demo {
- Demo(Context c) {
- c.put(Demo.class, this);
- }
-
- static Demo instance(Context context) {
- return context.get(Demo.class);
- }
- }
-
- static class MyDemo extends Demo {
- static void preRegister(Context context, final Counter counter) {
- context.put(Demo.class, new Context.Factory<Demo>() {
- public Demo make(Context c) {
- counter.count++;
- return new MyDemo(c);
- }
- });
- }
-
- MyDemo(Context c) {
- super(c);
- }
- }
-
- /**
- * A custom version of a standard javac component.
- */
- static class MyAttr extends Attr {
- static void preRegister(Context context, final Counter counter) {
- context.put(attrKey, new Context.Factory<Attr>() {
- public Attr make(Context c) {
- counter.count++;
- return new MyAttr(c);
- }
- });
- }
-
- MyAttr(Context c) {
- super(c);
- }
- }
-
- static class Counter {
- int count;
- }
-
- //---------------
-
- int round = 0;
-
- @Override
- public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
- round++;
-
- Context context = ((JavacProcessingEnvironment) processingEnv).getContext();
-
- // verify items in context as expected
- check("Demo", Demo.instance(context), MyDemo.class);
- check("Attr", Attr.instance(context), MyAttr.class);
-
- // For a few rounds, generate new source files, so that we can check whether
- // values in the context are correctly handled in subsequent processing rounds
- if (round <= MAX_ROUNDS) {
- String pkg = "p";
- String currClass = "Gen" + round;
- String curr = pkg + "." + currClass;
- String next = (pkg + ".Gen" + (round + 1));
- StringBuilder text = new StringBuilder();
- text.append("package ").append(pkg).append(";\n");
- text.append("public class ").append(currClass).append(" {\n");
- if (round < MAX_ROUNDS)
- text.append(" ").append(next).append(" x;\n");
- text.append("}\n");
-
- try {
- JavaFileObject fo = filer.createSourceFile(curr);
- Writer out = fo.openWriter();
- try {
- out.write(text.toString());
- } finally {
- out.close();
- }
- } catch (IOException e) {
- throw new Error(e);
- }
- }
-
- return true;
- }
-
- void check(String label, Object o, Class<?> clazz) {
- if (o == null)
- throw new IllegalStateException(label + ": no item found");
- if (!clazz.isAssignableFrom(o.getClass()))
- throw new IllegalStateException(label + ": unexpected class: " + o.getClass());
- }
-}
--- a/langtools/test/tools/jdeps/m/Gee.java Fri Jan 15 08:53:23 2016 -0800
+++ b/langtools/test/tools/jdeps/m/Gee.java Fri Jan 15 19:18:42 2016 +0000
@@ -26,7 +26,7 @@
class Gee extends g.G {
public sun.security.x509.X509CertInfo cert;
- public com.sun.tools.classfile.ClassFile cf; // @jdk.Exported(false)
- public com.sun.source.tree.BinaryTree tree; // @jdk.Exported
- public com.sun.management.ThreadMXBean mxbean; // @jdk.Exported on package-info
+ public com.sun.tools.classfile.ClassFile cf; // not exported
+ public com.sun.source.tree.BinaryTree tree; // exported
+ public com.sun.management.ThreadMXBean mxbean; // exported
}
--- a/make/common/NON_CORE_PKGS.gmk Fri Jan 15 08:53:23 2016 -0800
+++ b/make/common/NON_CORE_PKGS.gmk Fri Jan 15 19:18:42 2016 +0000
@@ -79,8 +79,7 @@
TREEAPI_PKGS = com.sun.source.doctree \
com.sun.source.tree \
- com.sun.source.util \
- jdk
+ com.sun.source.util
NASHORNAPI_PKGS = jdk.nashorn.api.scripting \
jdk.nashorn.api.tree
--- a/make/common/NativeCompilation.gmk Fri Jan 15 08:53:23 2016 -0800
+++ b/make/common/NativeCompilation.gmk Fri Jan 15 19:18:42 2016 +0000
@@ -783,13 +783,13 @@
$1_LD_OBJ_ARG := $$($1_ALL_OBJS)
- # If there are many object files, use an @-file.
+ # If there are many object files, use an @-file...
ifneq ($$(word 17, $$($1_ALL_OBJS)), )
$1_OBJ_FILE_LIST := $$($1_OBJECT_DIR)/_$1_objectfilenames.txt
- ifneq ($(TOOLCHAIN_TYPE),solstudio)
+ ifneq ($(COMPILER_COMMAND_FILE_FLAG),)
$1_LD_OBJ_ARG := $(COMPILER_COMMAND_FILE_FLAG)$$($1_OBJ_FILE_LIST)
else
- # The solstudio linker does not support @-files.
+ # ...except for toolchains which don't support them.
$1_LD_OBJ_ARG := `cat $$($1_OBJ_FILE_LIST)`
endif
endif
--- a/modules.xml Fri Jan 15 08:53:23 2016 -0800
+++ b/modules.xml Fri Jan 15 19:18:42 2016 +0000
@@ -205,9 +205,6 @@
<name>javax.security.cert</name>
</export>
<export>
- <name>jdk</name>
- </export>
- <export>
<name>jdk.net</name>
</export>
<export>
@@ -233,9 +230,11 @@
<to>java.logging</to>
<to>java.management</to>
<to>java.naming</to>
+ <to>java.rmi</to>
<to>java.security.jgss</to>
<to>java.sql</to>
<to>java.xml</to>
+ <to>jdk.charsets</to>
<to>jdk.management.resource</to>
<to>jdk.scripting.nashorn</to>
</export>
--- a/nashorn/.hgtags Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/.hgtags Fri Jan 15 19:18:42 2016 +0000
@@ -333,3 +333,4 @@
2beaef2b6a880c0bff8c9f57ffca33477d647f8b jdk-9+97
68a36216f70c0de4c7e36f8978995934fc72ec03 jdk-9+98
74ddd1339c57cf2c2a13e34e1760006c2e54d1fc jdk-9+99
+da397aea8adad7e6f743b60bfe0c415fc8508df5 jdk-9+100
--- a/nashorn/src/jdk.dynalink/share/classes/jdk/dynalink/beans/ClassLinker.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.dynalink/share/classes/jdk/dynalink/beans/ClassLinker.java Fri Jan 15 19:18:42 2016 +0000
@@ -102,7 +102,7 @@
setPropertyGetter("static", FOR_CLASS, ValidationType.EXACT_CLASS);
}
- private static final MethodHandle FOR_CLASS = new Lookup(MethodHandles.lookup()).findStatic(StaticClass.class,
+ private static final MethodHandle FOR_CLASS = Lookup.PUBLIC.findStatic(StaticClass.class,
"forClass", MethodType.methodType(StaticClass.class, Class.class));
}
--- a/nashorn/src/jdk.dynalink/share/classes/jdk/dynalink/beans/OverloadedDynamicMethod.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.dynalink/share/classes/jdk/dynalink/beans/OverloadedDynamicMethod.java Fri Jan 15 19:18:42 2016 +0000
@@ -112,8 +112,7 @@
/**
* Holds a list of all methods.
*/
- private final LinkedList<SingleDynamicMethod> methods;
- private final ClassLoader classLoader;
+ private final LinkedList<SingleDynamicMethod> methods = new LinkedList<>();
/**
* Creates a new overloaded dynamic method.
@@ -122,13 +121,7 @@
* @param name the name of the method
*/
OverloadedDynamicMethod(final Class<?> clazz, final String name) {
- this(new LinkedList<SingleDynamicMethod>(), clazz.getClassLoader(), getClassAndMethodName(clazz, name));
- }
-
- private OverloadedDynamicMethod(final LinkedList<SingleDynamicMethod> methods, final ClassLoader classLoader, final String name) {
- super(name);
- this.methods = methods;
- this.classLoader = classLoader;
+ super(getClassAndMethodName(clazz, name));
}
@Override
@@ -288,10 +281,6 @@
return b.toString();
};
- ClassLoader getClassLoader() {
- return classLoader;
- }
-
private static boolean isApplicableDynamically(final LinkerServices linkerServices, final MethodType callSiteType,
final SingleDynamicMethod m) {
final MethodType methodType = m.getMethodType();
--- a/nashorn/src/jdk.dynalink/share/classes/jdk/dynalink/beans/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.dynalink/share/classes/jdk/dynalink/beans/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -85,5 +85,4 @@
* Contains the linker for ordinary Java objects.
* @since 1.9
*/
-@jdk.Exported
package jdk.dynalink.beans;
--- a/nashorn/src/jdk.dynalink/share/classes/jdk/dynalink/linker/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.dynalink/share/classes/jdk/dynalink/linker/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -113,5 +113,4 @@
* </p>
* @since 1.9
*/
-@jdk.Exported
package jdk.dynalink.linker;
--- a/nashorn/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -89,5 +89,4 @@
* </p>
* @since 1.9
*/
-@jdk.Exported
package jdk.dynalink.linker.support;
--- a/nashorn/src/jdk.dynalink/share/classes/jdk/dynalink/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.dynalink/share/classes/jdk/dynalink/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -273,5 +273,4 @@
* from B will get a chance to link the call site in A when it encounters the
* object from B.
*/
-@jdk.Exported
package jdk.dynalink;
--- a/nashorn/src/jdk.dynalink/share/classes/jdk/dynalink/support/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.dynalink/share/classes/jdk/dynalink/support/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -87,5 +87,4 @@
* </p>
* @since 1.9
*/
-@jdk.Exported
package jdk.dynalink.support;
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/AbstractJSObject.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/AbstractJSObject.java Fri Jan 15 19:18:42 2016 +0000
@@ -39,7 +39,6 @@
*
* @since 1.8u40
*/
-@jdk.Exported
public abstract class AbstractJSObject implements JSObject {
/**
* Call this object as a JavaScript function. This is equivalent to
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/ClassFilter.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/ClassFilter.java Fri Jan 15 19:18:42 2016 +0000
@@ -31,7 +31,6 @@
*
* @since 1.8u40
*/
-@jdk.Exported
public interface ClassFilter {
/**
* Should the Java class of the specified name be exposed to scripts?
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/JSObject.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/JSObject.java Fri Jan 15 19:18:42 2016 +0000
@@ -37,7 +37,6 @@
*
* @since 1.8u40
*/
-@jdk.Exported
public interface JSObject {
/**
* Call this object as a JavaScript function. This is equivalent to
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/NashornException.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/NashornException.java Fri Jan 15 19:18:42 2016 +0000
@@ -44,7 +44,6 @@
*
* @since 1.8u40
*/
-@jdk.Exported
@SuppressWarnings("serial")
public abstract class NashornException extends RuntimeException {
// script file name
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/NashornScriptEngine.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/NashornScriptEngine.java Fri Jan 15 19:18:42 2016 +0000
@@ -69,7 +69,6 @@
*
* @since 1.8u40
*/
-@jdk.Exported
public final class NashornScriptEngine extends AbstractScriptEngine implements Compilable, Invocable {
/**
* Key used to associate Nashorn global object mirror with arbitrary Bindings instance.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/NashornScriptEngineFactory.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/NashornScriptEngineFactory.java Fri Jan 15 19:18:42 2016 +0000
@@ -48,7 +48,6 @@
*
* @since 1.8u40
*/
-@jdk.Exported
public final class NashornScriptEngineFactory implements ScriptEngineFactory {
@Override
public String getEngineName() {
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/ScriptObjectMirror.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/ScriptObjectMirror.java Fri Jan 15 19:18:42 2016 +0000
@@ -60,7 +60,6 @@
*
* @since 1.8u40
*/
-@jdk.Exported
public final class ScriptObjectMirror extends AbstractJSObject implements Bindings {
private static AccessControlContext getContextAccCtxt() {
final Permissions perms = new Permissions();
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/ScriptUtils.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/ScriptUtils.java Fri Jan 15 19:18:42 2016 +0000
@@ -39,7 +39,6 @@
*
* @since 1.8u40
*/
-@jdk.Exported
public final class ScriptUtils {
private ScriptUtils() {}
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/URLReader.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/URLReader.java Fri Jan 15 19:18:42 2016 +0000
@@ -39,7 +39,6 @@
*
* @since 1.8u40
*/
-@jdk.Exported
public final class URLReader extends Reader {
// underlying URL
private final URL url;
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -38,5 +38,4 @@
*
* @since 1.8u40
*/
-@jdk.Exported
package jdk.nashorn.api.scripting;
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ArrayAccessTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ArrayAccessTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,7 +35,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface ArrayAccessTree extends ExpressionTree {
/**
* Returns the array that is accessed.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ArrayLiteralTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ArrayLiteralTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -32,7 +32,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface ArrayLiteralTree extends ExpressionTree {
/**
* Returns the list of Array element expressions.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/AssignmentTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/AssignmentTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,7 +35,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface AssignmentTree extends ExpressionTree {
/**
* Returns the left hand side (LHS) of this assignment.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/BinaryTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/BinaryTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -36,7 +36,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface BinaryTree extends ExpressionTree {
/**
* Returns left hand side (LHS) of this binary expression.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/BlockTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/BlockTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -39,7 +39,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface BlockTree extends StatementTree {
/**
* Returns the list of statements in this block.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/BreakTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/BreakTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -37,7 +37,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface BreakTree extends GotoTree {
/**
* Label associated with this break statement. This is null
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/CaseTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/CaseTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -41,7 +41,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface CaseTree extends Tree {
/**
* Case expression of this 'case' statement.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/CatchTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/CatchTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -36,7 +36,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface CatchTree extends Tree {
/**
* Returns the catch parameter identifier of the exception caught.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/CompilationUnitTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/CompilationUnitTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -33,7 +33,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface CompilationUnitTree extends Tree {
/**
* Return the list of source elements in this compilation unit.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/CompoundAssignmentTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/CompoundAssignmentTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -36,7 +36,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface CompoundAssignmentTree extends ExpressionTree {
/**
* Returns the left hand side (LHS) of this assignment.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ConditionalExpressionTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ConditionalExpressionTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,7 +35,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface ConditionalExpressionTree extends ExpressionTree {
/**
* Returns the condition expression of this ternary expression.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ConditionalLoopTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ConditionalLoopTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -30,7 +30,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface ConditionalLoopTree extends LoopTree {
/**
* Returns the condition expression of this 'loop' statement.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ContinueTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ContinueTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -36,7 +36,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface ContinueTree extends GotoTree {
/**
* Label associated with this continue statement. This is null
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/DebuggerTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/DebuggerTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,6 +35,5 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface DebuggerTree extends StatementTree {
}
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/Diagnostic.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/Diagnostic.java Fri Jan 15 19:18:42 2016 +0000
@@ -42,7 +42,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface Diagnostic {
/**
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/DiagnosticListener.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/DiagnosticListener.java Fri Jan 15 19:18:42 2016 +0000
@@ -30,7 +30,6 @@
*
* @since 1.9
*/
-@jdk.Exported
@FunctionalInterface
public interface DiagnosticListener {
/**
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/DoWhileLoopTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/DoWhileLoopTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -37,7 +37,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface DoWhileLoopTree extends ConditionalLoopTree {
/**
* Returns the condition expression of this do-while statement.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/EmptyStatementTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/EmptyStatementTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,5 +35,4 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface EmptyStatementTree extends StatementTree {}
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ErroneousTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ErroneousTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -30,6 +30,5 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface ErroneousTree extends ExpressionTree {
}
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ExpressionStatementTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ExpressionStatementTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,7 +35,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface ExpressionStatementTree extends StatementTree {
/**
* Returns the expression of this expression statement.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ExpressionTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ExpressionTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -31,5 +31,4 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface ExpressionTree extends Tree {}
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ForInLoopTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ForInLoopTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -36,7 +36,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface ForInLoopTree extends LoopTree {
/**
* The for..in left hand side expression.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ForLoopTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ForLoopTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -36,7 +36,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface ForLoopTree extends ConditionalLoopTree {
/**
* Returns the initializer expression of this 'for' statement.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/FunctionCallTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/FunctionCallTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -39,7 +39,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface FunctionCallTree extends ExpressionTree {
/**
* Returns the function being called.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/FunctionDeclarationTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/FunctionDeclarationTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -39,7 +39,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface FunctionDeclarationTree extends StatementTree {
/**
* Returns the name of the function being declared.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/FunctionExpressionTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/FunctionExpressionTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -39,7 +39,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface FunctionExpressionTree extends ExpressionTree {
/**
* Returns the name of the function being declared.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/GotoTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/GotoTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -33,7 +33,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface GotoTree extends StatementTree {
/**
* Label associated with this goto statement. This is null
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/IdentifierTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/IdentifierTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,7 +35,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface IdentifierTree extends ExpressionTree {
/**
* Returns the name of this identifier.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/IfTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/IfTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -41,7 +41,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface IfTree extends StatementTree {
/**
* Returns the condition expression of this 'if' statement.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/InstanceOfTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/InstanceOfTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,7 +35,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface InstanceOfTree extends ExpressionTree {
/**
* Returns the expression whose type is being checked.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/LabeledStatementTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/LabeledStatementTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,7 +35,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface LabeledStatementTree extends StatementTree {
/**
* Returns the label associated with this statement.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/LineMap.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/LineMap.java Fri Jan 15 19:18:42 2016 +0000
@@ -31,7 +31,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface LineMap {
/**
* Find the line containing a position; a line termination
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/LiteralTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/LiteralTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -36,7 +36,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface LiteralTree extends ExpressionTree {
/**
* Returns the value of this literal.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/LoopTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/LoopTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -30,7 +30,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface LoopTree extends StatementTree {
/**
* Returns the statement contained in this 'loop' statement.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/MemberSelectTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/MemberSelectTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,7 +35,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface MemberSelectTree extends ExpressionTree {
/**
* The object expression whose member is being selected.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/NewTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/NewTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -37,7 +37,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface NewTree extends ExpressionTree {
/**
* Returns the constructor expression of this 'new' expression.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ObjectLiteralTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ObjectLiteralTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -32,7 +32,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface ObjectLiteralTree extends ExpressionTree {
/**
* Returns the list of properties of this object literal.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ParenthesizedTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ParenthesizedTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -36,7 +36,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface ParenthesizedTree extends ExpressionTree {
/**
* Returns the expression within the parenthesis.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/Parser.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/Parser.java Fri Jan 15 19:18:42 2016 +0000
@@ -38,7 +38,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface Parser {
/**
* Parses the source file and returns compilation unit tree
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/PropertyTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/PropertyTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -30,7 +30,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface PropertyTree extends Tree {
/**
* Returns the name of this property.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/RegExpLiteralTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/RegExpLiteralTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -30,7 +30,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface RegExpLiteralTree extends Tree {
/**
* Regular expression pattern to match.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ReturnTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ReturnTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -36,7 +36,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface ReturnTree extends StatementTree {
/**
* Returns the expression being returned. This is null if no value
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/StatementTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/StatementTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -31,6 +31,5 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface StatementTree extends Tree {
}
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/SwitchTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/SwitchTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -39,7 +39,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface SwitchTree extends StatementTree {
/**
* Returns the expression on which this statement switches.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ThrowTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ThrowTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,7 +35,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface ThrowTree extends StatementTree {
/**
* Returns the expression being thrown.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/Tree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/Tree.java Fri Jan 15 19:18:42 2016 +0000
@@ -33,13 +33,11 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface Tree {
/**
* Enumerates all kinds of trees.
*/
- @jdk.Exported
public enum Kind {
/**
* Used for instances of {@link ArrayAccessTree}.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/TreeVisitor.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/TreeVisitor.java Fri Jan 15 19:18:42 2016 +0000
@@ -53,7 +53,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface TreeVisitor<R,P> {
/**
* Visit assignment tree.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/TryTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/TryTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -41,7 +41,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface TryTree extends StatementTree {
/**
* Returns the 'try' block of this 'try' statement.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/UnaryTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/UnaryTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -38,7 +38,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface UnaryTree extends ExpressionTree {
/**
* Returns the expression operated by the unary operator.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/UnknownTreeException.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/UnknownTreeException.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,7 +35,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public class UnknownTreeException extends RuntimeException {
private static final long serialVersionUID = 1L;
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/VariableTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/VariableTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -35,7 +35,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface VariableTree extends StatementTree {
/**
* Returns the name of this variable.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/WhileLoopTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/WhileLoopTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -36,7 +36,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface WhileLoopTree extends ConditionalLoopTree {
/**
* The condition expression of this 'while' statement.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/WithTree.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/WithTree.java Fri Jan 15 19:18:42 2016 +0000
@@ -36,7 +36,6 @@
*
* @since 1.9
*/
-@jdk.Exported
public interface WithTree extends StatementTree {
/**
* The scope object expression for this 'with' statement.
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/package-info.java Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/package-info.java Fri Jan 15 19:18:42 2016 +0000
@@ -70,6 +70,5 @@
*
* @since 1.9
*/
-@jdk.Exported
package jdk.nashorn.api.tree;
--- a/nashorn/test/script/basic/JDK-8134488.js Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/test/script/basic/JDK-8134488.js Fri Jan 15 19:18:42 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/nashorn/test/script/basic/JDK-8134490.js Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/test/script/basic/JDK-8134490.js Fri Jan 15 19:18:42 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/nashorn/test/script/basic/JDK-8134939.js Fri Jan 15 08:53:23 2016 -0800
+++ b/nashorn/test/script/basic/JDK-8134939.js Fri Jan 15 19:18:42 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it