Merge jdk-9+101
authorduke
Wed, 05 Jul 2017 21:12:04 +0200
changeset 34918 80f67512daa1
parent 34917 2024a0c597b8 (diff)
parent 34860 59e54f3027d2 (current diff)
child 34919 3c05feabae49
child 34920 c23b15f58c2b
child 34921 ca6c7c325650
child 34927 6266d46e8cac
child 34928 23cee048ab91
child 34931 06adfd8db173
child 34932 850b1bb595e3
child 34970 05d2c272a439
child 34972 f207de5b9da6
child 34973 78e005830b24
child 34982 387e8b0026ae
child 34983 cab976ee6f21
child 34988 7e3feb2ba5b3
child 34990 b199429f15d1
child 34991 ff8be37d1164
child 35233 357bf863e7c1
Merge
--- a/.hgtags-top-repo	Wed Jul 05 21:11:03 2017 +0200
+++ b/.hgtags-top-repo	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/common/autoconf/build-performance.m4	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/common/autoconf/flags.m4	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/common/autoconf/generated-configure.sh	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/common/autoconf/lib-cups.m4	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/corba/.hgtags	Wed Jul 05 21:12:04 2017 +0200
@@ -342,3 +342,4 @@
 10a482b863582376d4ca229090334b23b05159fc jdk-9+97
 ea285530245cf4e0edf0479121a41347d3030eba jdk-9+98
 180212ee1d8710691ba9944593dfc1ff3e4f1532 jdk-9+99
+791d0d3ac0138faeb6110bd840a4545bc1950df2 jdk-9+100
--- a/hotspot/.hgtags	Wed Jul 05 21:11:03 2017 +0200
+++ b/hotspot/.hgtags	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/hotspot/src/share/vm/prims/jvm.cpp	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jaxp/.hgtags	Wed Jul 05 21:12:04 2017 +0200
@@ -342,3 +342,4 @@
 9c107c050335d7ee63b2a8b38ca5d498f19713a2 jdk-9+97
 52b01339235f24c93b679bd6b8fb36a1072ad0ac jdk-9+98
 52774b544850c791f1d1c67db2601b33739b18c9 jdk-9+99
+d45bcd374f6057851e3c2dcd45607cd362afadfa jdk-9+100
--- a/jaxws/.hgtags	Wed Jul 05 21:11:03 2017 +0200
+++ b/jaxws/.hgtags	Wed Jul 05 21:12:04 2017 +0200
@@ -345,3 +345,4 @@
 7293db4716ee25b814e14f738b9acfb85700e3fa jdk-9+97
 67c84077edc3db6b24998b35970b37c01aae985e jdk-9+98
 97b31ca0dd77483cf20ff99a033a455673639578 jdk-9+99
+d0a97e57d2336238edf6a4cd60aafe67deb7258d jdk-9+100
--- a/jdk/.hgtags	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/.hgtags	Wed Jul 05 21:12:04 2017 +0200
@@ -342,3 +342,4 @@
 fdd84b2265ddce7f50e084b7c8635189bba6f012 jdk-9+97
 f86ee68d1107dad41a27efc34306e0e56244a12e jdk-9+98
 e1a789be1535741274c9779f4d4ca3495196b5c3 jdk-9+99
+3d452840f48299a36842760d17c0c8402f0e1266 jdk-9+100
--- a/jdk/make/lib/NioLibraries.gmk	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/make/lib/NioLibraries.gmk	Wed Jul 05 21:12:04 2017 +0200
@@ -58,7 +58,10 @@
 ifeq ($(OPENJDK_TARGET_OS), aix)
   BUILD_LIBNIO_MAPFILE:=$(JDK_TOPDIR)/make/mapfiles/libnio/mapfile-$(OPENJDK_TARGET_OS)
   BUILD_LIBNIO_EXFILES += \
-      NativeThread.c
+      /NativeThread.c
+  # Notice: we really need the leading slash here because otherwise every
+  # FILE_NAME in EXCLUDE_FILES will actually match any file ending in FILE_NAME
+  # (e.g. 'NativeThread.c' will also exclude 'AixNativeThread.c').
 endif
 
 $(eval $(call SetupNativeCompilation,BUILD_LIBNIO, \
--- a/jdk/make/mapfiles/libjava/mapfile-vers	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/make/mapfiles/libjava/mapfile-vers	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/make/src/classes/build/tools/dtdbuilder/DTDParser.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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/src/java.base/share/classes/java/io/ObjectInputStream.java	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/java/io/ObjectInputStream.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/java/lang/Class.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/java/lang/Integer.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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/StackStreamFactory.java	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/java/lang/StackStreamFactory.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/java/lang/StringCoding.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/java/lang/System.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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;
@@ -1817,12 +1818,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 +1847,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 +1858,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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/java/lang/Thread.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/java/lang/ThreadGroup.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/java/lang/Throwable.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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/MethodHandles.java	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/java/lang/invoke/MethodHandles.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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/ref/Finalizer.java	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/java/lang/ref/Finalizer.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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/ReferenceQueue.java	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/java/lang/ref/ReferenceQueue.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/java/lang/reflect/Proxy.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/java/net/URI.java	Wed Jul 05 21:12:04 2017 +0200
@@ -2059,7 +2059,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 +2647,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 +2877,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 +2893,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 +2933,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 +2948,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 +2958,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 +2989,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 +3010,7 @@
         {
             int p = start;
             while (p < n) {
-                char c = charAt(p);
+                char c = input.charAt(p);
                 if (match(c, lowMask, highMask)) {
                     p++;
                     continue;
@@ -3067,13 +3064,13 @@
                     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, "", "#");
+                    int q = scan(p, n, "#");
                     if (q <= p)
                         failExpecting("scheme-specific part", p);
                     checkChars(p, q, L_URIC, H_URIC, "opaque part");
@@ -3083,10 +3080,10 @@
                 ssp = 0;
                 p = parseHierarchical(0, n);
             }
-            schemeSpecificPart = substring(ssp, p);
+            schemeSpecificPart = input.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 +3110,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 +3119,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 +3151,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 +3161,7 @@
 
             if (regChars && !serverChars) {
                 // Must be a registry-based authority
-                authority = substring(p, n);
+                authority = input.substring(p, n);
                 return n;
             }
 
@@ -3176,7 +3173,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 +3195,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 +3221,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 +3232,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 +3243,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 +3258,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 +3358,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 +3390,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 +3409,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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/java/net/URL.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/java/net/URLConnection.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/java/nio/Bits.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/java/nio/Direct-X-Buffer.java.template	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/java/nio/charset/Charset.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/java/time/Clock.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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/Duration.java	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/java/time/Duration.java	Wed Jul 05 21:12:04 2017 +0200
@@ -1194,6 +1194,7 @@
      * This instance is immutable and unaffected by this method call.
      *
      * @return the whole seconds part of the length of the duration, positive or negative
+     * @since 9
      */
     public long toSeconds() {
         return seconds;
@@ -1243,6 +1244,7 @@
      * This instance is immutable and unaffected by this method call.
      *
      * @return the number of days in the duration, may be negative
+     * @since 9
      */
     public long toDaysPart(){
         return seconds / SECONDS_PER_DAY;
@@ -1258,6 +1260,7 @@
      * This instance is immutable and unaffected by this method call.
      *
      * @return the number of hours part in the duration, may be negative
+     * @since 9
      */
     public int toHoursPart(){
         return (int) (toHours() % 24);
@@ -1273,7 +1276,7 @@
      * This instance is immutable and unaffected by this method call.
      *
      * @return the number of minutes parts in the duration, may be negative
-     * may be negative
+     * @since 9
      */
     public int toMinutesPart(){
         return (int) (toMinutes() % MINUTES_PER_HOUR);
@@ -1289,6 +1292,7 @@
      * This instance is immutable and unaffected by this method call.
      *
      * @return the number of seconds parts in the duration, may be negative
+     * @since 9
      */
     public int toSecondsPart(){
         return (int) (seconds % SECONDS_PER_MINUTE);
@@ -1306,6 +1310,7 @@
      * This instance is immutable and unaffected by this method call.
      *
      * @return the number of milliseconds part of the duration.
+     * @since 9
      */
     public int toMillisPart(){
         return nanos / 1000_000;
@@ -1322,6 +1327,7 @@
      * This instance is immutable and unaffected by this method call.
      *
      * @return the nanoseconds within the second part of the length of the duration, from 0 to 999,999,999
+     * @since 9
      */
     public int toNanosPart(){
         return nanos;
@@ -1385,7 +1391,7 @@
      * <p>
      * The format of the returned string will be {@code PTnHnMnS}, where n is
      * the relevant hours, minutes or seconds part of the duration.
-     * Any fractional seconds are placed after a decimal point i the seconds section.
+     * Any fractional seconds are placed after a decimal point in the seconds section.
      * If a section has a zero value, it is omitted.
      * The hours, minutes and seconds will all have the same sign.
      * <p>
@@ -1406,9 +1412,13 @@
         if (this == ZERO) {
             return "PT0S";
         }
-        long hours = seconds / SECONDS_PER_HOUR;
-        int minutes = (int) ((seconds % SECONDS_PER_HOUR) / SECONDS_PER_MINUTE);
-        int secs = (int) (seconds % SECONDS_PER_MINUTE);
+        long effectiveTotalSecs = seconds;
+        if (seconds < 0 && nanos > 0) {
+            effectiveTotalSecs++;
+        }
+        long hours = effectiveTotalSecs / SECONDS_PER_HOUR;
+        int minutes = (int) ((effectiveTotalSecs % SECONDS_PER_HOUR) / SECONDS_PER_MINUTE);
+        int secs = (int) (effectiveTotalSecs % SECONDS_PER_MINUTE);
         StringBuilder buf = new StringBuilder(24);
         buf.append("PT");
         if (hours != 0) {
@@ -1420,18 +1430,18 @@
         if (secs == 0 && nanos == 0 && buf.length() > 2) {
             return buf.toString();
         }
-        if (secs < 0 && nanos > 0) {
-            if (secs == -1) {
+        if (seconds < 0 && nanos > 0) {
+            if (secs == 0) {
                 buf.append("-0");
             } else {
-                buf.append(secs + 1);
+                buf.append(secs);
             }
         } else {
             buf.append(secs);
         }
         if (nanos > 0) {
             int pos = buf.length();
-            if (secs < 0) {
+            if (seconds < 0) {
                 buf.append(2 * NANOS_PER_SECOND - nanos);
             } else {
                 buf.append(nanos + NANOS_PER_SECOND);
--- a/jdk/src/java.base/share/classes/java/util/Calendar.java	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/java/util/Calendar.java	Wed Jul 05 21:12:04 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 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
@@ -2085,8 +2085,10 @@
 
         String calendarType = getCalendarType();
         int fieldValue = get(field);
-        // the standalone and narrow styles are supported only through CalendarDataProviders.
-        if (isStandaloneStyle(style) || isNarrowFormatStyle(style)) {
+        // the standalone/narrow styles and short era are supported only through
+        // CalendarNameProviders.
+        if (isStandaloneStyle(style) || isNarrowFormatStyle(style) ||
+            field == ERA && (style & SHORT) == SHORT) {
             String val = CalendarDataUtility.retrieveFieldValueName(calendarType,
                                                                     field, fieldValue,
                                                                     style, locale);
--- a/jdk/src/java.base/share/classes/java/util/JapaneseImperialCalendar.java	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/java/util/JapaneseImperialCalendar.java	Wed Jul 05 21:12:04 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -1037,14 +1037,16 @@
                 }
                 if (size < eras.length) {
                     int baseStyle = getBaseStyle(style);
-                    for (int i = size; i < eras.length; i++) {
-                        Era era = eras[i];
-                        if (baseStyle == ALL_STYLES || baseStyle == SHORT
-                                || baseStyle == NARROW_FORMAT) {
-                            names.put(era.getAbbreviation(), i);
-                        }
-                        if (baseStyle == ALL_STYLES || baseStyle == LONG) {
-                            names.put(era.getName(), i);
+                    for (int i = 0; i < eras.length; i++) {
+                        if (!names.values().contains(i)) {
+                            Era era = eras[i];
+                            if (baseStyle == ALL_STYLES || baseStyle == SHORT
+                                    || baseStyle == NARROW_FORMAT) {
+                                names.put(era.getAbbreviation(), i);
+                            }
+                            if (baseStyle == ALL_STYLES || baseStyle == LONG) {
+                                names.put(era.getName(), i);
+                            }
                         }
                     }
                 }
--- a/jdk/src/java.base/share/classes/java/util/zip/ZipFile.java	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/java/util/zip/ZipFile.java	Wed Jul 05 21:12:04 2017 +0200
@@ -1251,7 +1251,7 @@
                     idx = getEntryNext(idx);
                 }
                 /* If not addSlash, or slash is already there, we are done */
-                if (!addSlash  || name[name.length - 1] == '/') {
+                if (!addSlash  || name.length == 0 || name[name.length - 1] == '/') {
                      return -1;
                 }
                 /* Add slash and try once more */
--- a/jdk/src/java.base/share/classes/jdk/Exported.java	Wed Jul 05 21:11:03 2017 +0200
+++ /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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/jdk/internal/logger/BootstrapLogger.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/jdk/internal/logger/LazyLoggers.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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/Unsafe.java	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/jdk/internal/misc/Unsafe.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:12:04 2017 +0200
@@ -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);
+}
--- a/jdk/src/java.base/share/classes/jdk/net/ExtendedSocketOptions.java	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/jdk/net/ExtendedSocketOptions.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/jdk/net/NetworkPermission.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/jdk/net/SocketFlow.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/jdk/net/Sockets.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/jdk/net/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -30,5 +30,4 @@
  * @since 1.8
  */
 
-@jdk.Exported
 package jdk.net;
--- a/jdk/src/java.base/share/classes/sun/launcher/LauncherHelper.java	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/sun/launcher/LauncherHelper.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ /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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/sun/misc/Unsafe.java	Wed Jul 05 21:12:04 2017 +0200
@@ -32,6 +32,7 @@
 import sun.reflect.Reflection;
 
 import jdk.internal.HotSpotIntrinsicCandidate;
+import jdk.internal.misc.VM;
 
 
 /**
--- a/jdk/src/java.base/share/classes/sun/misc/VM.java	Wed Jul 05 21:11:03 2017 +0200
+++ /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	Wed Jul 05 21:11:03 2017 +0200
+++ /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/nio/ch/Util.java	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/sun/nio/ch/Util.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/sun/nio/cs/StandardCharsets.java.template	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/sun/reflect/Reflection.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/classes/sun/security/ssl/SignatureAndHashAlgorithm.java	Wed Jul 05 21:12:04 2017 +0200
@@ -417,14 +417,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	Wed Jul 05 21:11:03 2017 +0200
+++ /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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/native/libjava/RandomAccessFile.c	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/share/native/libjava/VM.c	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ /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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/unix/native/libjava/VM_md.c	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/unix/native/libjava/io_util_md.c	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/unix/native/libjava/io_util_md.h	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/unix/native/libnio/ch/NativeThread.c	Wed Jul 05 21:12:04 2017 +0200
@@ -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");
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/java.base/windows/classes/jdk/internal/misc/OSEnvironment.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/windows/classes/sun/io/Win32ErrorMode.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ /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/classes/sun/util/locale/provider/HostLocaleProviderAdapterImpl.java	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/windows/classes/sun/util/locale/provider/HostLocaleProviderAdapterImpl.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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
@@ -38,8 +38,10 @@
 import java.util.Calendar;
 import java.util.Collections;
 import java.util.Currency;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Locale;
+import java.util.Map;
 import java.util.ResourceBundle.Control;
 import java.util.Set;
 import java.util.TimeZone;
@@ -47,6 +49,7 @@
 import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.atomic.AtomicReferenceArray;
 import java.util.spi.CalendarDataProvider;
+import java.util.spi.CalendarNameProvider;
 import java.util.spi.CurrencyNameProvider;
 import java.util.spi.LocaleNameProvider;
 import sun.util.spi.CalendarProvider;
@@ -81,6 +84,9 @@
     private static final int DN_LOCALE_REGION   = 4;
     private static final int DN_LOCALE_VARIANT  = 5;
 
+    // Windows Calendar IDs
+    private static final int CAL_JAPAN  = 3;
+
     // Native Calendar ID to LDML calendar type map
     private static final String[] calIDToLDML = {
         "",
@@ -95,7 +101,8 @@
         "gregory_fr",
         "gregory_ar",
         "gregory_en",
-        "gregory_fr",
+        "gregory_fr", "", "", "", "", "", "", "", "", "", "",
+        "islamic-umalqura",
     };
 
     // Caches
@@ -362,6 +369,50 @@
         };
     }
 
+    public static CalendarNameProvider getCalendarNameProvider() {
+        return new CalendarNameProvider() {
+            @Override
+            public Locale[] getAvailableLocales() {
+                return getSupportedCalendarLocales();
+            }
+
+            @Override
+            public boolean isSupportedLocale(Locale locale) {
+                return isSupportedCalendarLocale(locale);
+            }
+
+            @Override
+            public String getDisplayName(String calendarType, int field,
+                int value, int style, Locale locale) {
+                String[] names = getCalendarDisplayStrings(removeExtensions(locale).toLanguageTag(),
+                            getCalendarIDFromLDMLType(calendarType), field, style);
+                if (names != null && value >= 0 && value < names.length) {
+                    return names[value];
+                } else {
+                    return null;
+                }
+            }
+
+            @Override
+            public Map<String, Integer> getDisplayNames(String calendarType,
+                int field, int style, Locale locale) {
+                Map<String, Integer> map = null;
+                String[] names = getCalendarDisplayStrings(removeExtensions(locale).toLanguageTag(),
+                            getCalendarIDFromLDMLType(calendarType), field, style);
+                if (names != null) {
+                    map = new HashMap<>();
+                    for (int value = 0; value < names.length; value++) {
+                        if (names[value] != null) {
+                            map.put(names[value], value);
+                        }
+                    }
+                    map = map.isEmpty() ? null : map;
+                }
+                return map;
+            }
+        };
+    }
+
     public static CalendarProvider getCalendarProvider() {
         return new CalendarProvider() {
             @Override
@@ -496,15 +547,7 @@
     }
 
     private static boolean isSupportedCalendarLocale(Locale locale) {
-        Locale base = locale;
-
-        if (base.hasExtensions() || base.getVariant() != "") {
-            // strip off extensions and variant.
-            base = new Locale.Builder()
-                            .setLocale(locale)
-                            .clearExtensions()
-                            .build();
-        }
+        Locale base = stripVariantAndExtensions(locale);
 
         if (!supportedLocaleSet.contains(base)) {
             return false;
@@ -569,11 +612,23 @@
     }
 
     private static boolean isJapaneseCalendar() {
-        return getCalendarID("ja-JP") == 3; // 3: CAL_JAPAN
+        return getCalendarID("ja-JP") == CAL_JAPAN;
+    }
+
+    private static Locale stripVariantAndExtensions(Locale locale) {
+        if (locale.hasExtensions() || locale.getVariant() != "") {
+            // strip off extensions and variant.
+            locale = new Locale.Builder()
+                            .setLocale(locale)
+                            .clearExtensions()
+                            .build();
+        }
+
+        return locale;
     }
 
     private static Locale getCalendarLocale(Locale locale) {
-        int calid = getCalendarID(locale.toLanguageTag());
+        int calid = getCalendarID(stripVariantAndExtensions(locale).toLanguageTag());
         if (calid > 0 && calid < calIDToLDML.length) {
             Locale.Builder lb = new Locale.Builder();
             String[] caltype = calIDToLDML[calid].split("_");
@@ -589,6 +644,15 @@
         return locale;
     }
 
+    private static int getCalendarIDFromLDMLType(String ldmlType) {
+        for (int i = 0; i < calIDToLDML.length; i++) {
+            if (calIDToLDML[i].startsWith(ldmlType)) {
+                return i;
+            }
+        }
+        return -1;
+    }
+
     private static Locale getNumberLocale(Locale src) {
         if (JRELocaleConstants.TH_TH.equals(src)) {
             if (isNativeDigit("th-TH")) {
@@ -639,6 +703,9 @@
     // For CalendarDataProvider
     private static native int getCalendarDataValue(String langTag, int type);
 
+    // For CalendarNameProvider
+    private static native String[] getCalendarDisplayStrings(String langTag, int calid, int field, int style);
+
     // For Locale/CurrencyNameProvider
     private static native String getDisplayString(String langTag, int key, String value);
 }
--- a/jdk/src/java.base/windows/native/libjava/HostLocaleProviderAdapter_md.c	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/windows/native/libjava/HostLocaleProviderAdapter_md.c	Wed Jul 05 21:12:04 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, 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
@@ -31,22 +31,33 @@
 
 #define BUFLEN 256
 
+// java.util.Calendar constants
+#define CALENDAR_FIELD_ERA              0           // Calendar.ERA
+#define CALENDAR_FIELD_MONTH            2           // Calendar.MONTH
+#define CALENDAR_STYLE_SHORT_MASK       0x00000001  // Calendar.SHORT
+#define CALENDAR_STYLE_STANDALONE_MASK  0x00008000  // Calendar.STANDALONE
+
 // global variables
 typedef int (WINAPI *PGLIE)(const jchar *, LCTYPE, LPWSTR, int);
 typedef int (WINAPI *PGCIE)(const jchar *, CALID, LPCWSTR, CALTYPE, LPWSTR, int, LPDWORD);
+typedef int (WINAPI *PECIEE)(CALINFO_ENUMPROCEXEX, const jchar *, CALID, LPCWSTR, CALTYPE, LPARAM);
 PGLIE pGetLocaleInfoEx;
 PGCIE pGetCalendarInfoEx;
+PECIEE pEnumCalendarInfoExEx;
 BOOL initialized = FALSE;
 
 // prototypes
 int getLocaleInfoWrapper(const jchar *langtag, LCTYPE type, LPWSTR data, int buflen);
 int getCalendarInfoWrapper(const jchar *langtag, CALID id, LPCWSTR reserved, CALTYPE type, LPWSTR data, int buflen, LPDWORD val);
 jint getCalendarID(const jchar *langtag);
-void replaceCalendarArrayElems(JNIEnv *env, jstring jlangtag, jobjectArray jarray,
-                       CALTYPE* pCalTypes, int offset, int length);
+void replaceCalendarArrayElems(JNIEnv *env, jstring jlangtag, jint calid, jobjectArray jarray,
+                       CALTYPE* pCalTypes, int offset, int length, int style);
 WCHAR * getNumberPattern(const jchar * langtag, const jint numberStyle);
 void getNumberPart(const jchar * langtag, const jint numberStyle, WCHAR * number);
 void getFixPart(const jchar * langtag, const jint numberStyle, BOOL positive, BOOL prefix, WCHAR * ret);
+int enumCalendarInfoWrapper(const jchar * langtag, CALID calid, CALTYPE type, LPWSTR buf, int buflen);
+BOOL CALLBACK EnumCalendarInfoProc(LPWSTR lpCalInfoStr, CALID calid, LPWSTR lpReserved, LPARAM lParam);
+jobjectArray getErasImpl(JNIEnv *env, jstring jlangtag, jint calid, jint style, jobjectArray eras);
 
 // from java_props_md.c
 extern __declspec(dllexport) const char * getJavaIDFromLangID(LANGID langID);
@@ -83,6 +94,8 @@
     CAL_SABBREVMONTHNAME13,
 };
 
+#define MONTHTYPES (sizeof(monthsType) / sizeof(CALTYPE))
+
 CALTYPE wDaysType[] = {
     CAL_SDAYNAME7,
     CAL_SDAYNAME1,
@@ -155,6 +168,11 @@
     }
 };
 
+
+// Localized region name for unknown regions (Windows 10)
+#define UNKNOWN_REGION  L"Unknown Region ("
+#define UNKNOWN_REGION_SIZE wcslen(UNKNOWN_REGION)
+
 /*
  * Class:     sun_util_locale_provider_HostLocaleProviderAdapterImpl
  * Method:    initialize
@@ -169,11 +187,15 @@
         pGetCalendarInfoEx = (PGCIE)GetProcAddress(
             GetModuleHandle("kernel32.dll"),
             "GetCalendarInfoEx");
+        pEnumCalendarInfoExEx = (PECIEE)GetProcAddress(
+            GetModuleHandle("kernel32.dll"),
+            "EnumCalendarInfoExEx");
         initialized =TRUE;
     }
 
     return pGetLocaleInfoEx != NULL &&
-           pGetCalendarInfoEx != NULL;
+           pGetCalendarInfoEx != NULL &&
+           pEnumCalendarInfoExEx != NULL;
 }
 
 /*
@@ -300,23 +322,7 @@
  */
 JNIEXPORT jobjectArray JNICALL Java_sun_util_locale_provider_HostLocaleProviderAdapterImpl_getEras
   (JNIEnv *env, jclass cls, jstring jlangtag, jobjectArray eras) {
-    WCHAR ad[BUFLEN];
-    const jchar *langtag = (*env)->GetStringChars(env, jlangtag, JNI_FALSE);
-    jstring tmp_string;
-    CHECK_NULL_RETURN(langtag, eras);
-
-    getCalendarInfoWrapper(langtag, getCalendarID(langtag), NULL,
-                      CAL_SERASTRING, ad, BUFLEN, NULL);
-
-    // Windows does not provide B.C. era.
-    tmp_string = (*env)->NewString(env, ad, (jsize)wcslen(ad));
-    if (tmp_string != NULL) {
-        (*env)->SetObjectArrayElement(env, eras, 1, tmp_string);
-    }
-
-    (*env)->ReleaseStringChars(env, jlangtag, langtag);
-
-    return eras;
+    return getErasImpl(env, jlangtag, -1, 0, eras);
 }
 
 /*
@@ -326,8 +332,8 @@
  */
 JNIEXPORT jobjectArray JNICALL Java_sun_util_locale_provider_HostLocaleProviderAdapterImpl_getMonths
   (JNIEnv *env, jclass cls, jstring jlangtag, jobjectArray months) {
-    replaceCalendarArrayElems(env, jlangtag, months, monthsType,
-                      0, sizeof(monthsType)/sizeof(CALTYPE));
+    replaceCalendarArrayElems(env, jlangtag, -1, months, monthsType,
+                      0, MONTHTYPES, 0);
     return months;
 }
 
@@ -338,8 +344,8 @@
  */
 JNIEXPORT jobjectArray JNICALL Java_sun_util_locale_provider_HostLocaleProviderAdapterImpl_getShortMonths
   (JNIEnv *env, jclass cls, jstring jlangtag, jobjectArray smonths) {
-    replaceCalendarArrayElems(env, jlangtag, smonths, sMonthsType,
-                      0, sizeof(sMonthsType)/sizeof(CALTYPE));
+    replaceCalendarArrayElems(env, jlangtag, -1, smonths, sMonthsType,
+                      0, MONTHTYPES, 0);
     return smonths;
 }
 
@@ -350,8 +356,8 @@
  */
 JNIEXPORT jobjectArray JNICALL Java_sun_util_locale_provider_HostLocaleProviderAdapterImpl_getWeekdays
   (JNIEnv *env, jclass cls, jstring jlangtag, jobjectArray wdays) {
-    replaceCalendarArrayElems(env, jlangtag, wdays, wDaysType,
-                      1, sizeof(wDaysType)/sizeof(CALTYPE));
+    replaceCalendarArrayElems(env, jlangtag, -1, wdays, wDaysType,
+                      1, sizeof(wDaysType)/sizeof(CALTYPE), 0);
     return wdays;
 }
 
@@ -362,8 +368,8 @@
  */
 JNIEXPORT jobjectArray JNICALL Java_sun_util_locale_provider_HostLocaleProviderAdapterImpl_getShortWeekdays
   (JNIEnv *env, jclass cls, jstring jlangtag, jobjectArray swdays) {
-    replaceCalendarArrayElems(env, jlangtag, swdays, sWDaysType,
-                      1, sizeof(sWDaysType)/sizeof(CALTYPE));
+    replaceCalendarArrayElems(env, jlangtag, -1, swdays, sWDaysType,
+                      1, sizeof(sWDaysType)/sizeof(CALTYPE), 0);
     return swdays;
 }
 
@@ -676,6 +682,41 @@
 
 /*
  * Class:     sun_util_locale_provider_HostLocaleProviderAdapterImpl
+ * Method:    getCalendarDisplayStrings
+ * Signature: (Ljava/lang/String;III)[Ljava/lang/String;
+ */
+JNIEXPORT jobjectArray JNICALL Java_sun_util_locale_provider_HostLocaleProviderAdapterImpl_getCalendarDisplayStrings
+  (JNIEnv *env, jclass cls, jstring jlangtag, jint calid, jint field, jint style) {
+    jobjectArray ret = NULL;
+    CALTYPE * pCalType = NULL;
+
+    switch (field) {
+    case CALENDAR_FIELD_ERA:
+        return getErasImpl(env, jlangtag, calid, style, NULL);
+
+    case CALENDAR_FIELD_MONTH:
+        ret = (*env)->NewObjectArray(env, MONTHTYPES,
+                (*env)->FindClass(env, "java/lang/String"), NULL);
+        if (ret != NULL) {
+            if (style & CALENDAR_STYLE_SHORT_MASK) {
+                pCalType = sMonthsType;
+            } else {
+                pCalType = monthsType;
+            }
+
+            replaceCalendarArrayElems(env, jlangtag, calid, ret, pCalType,
+                          0, MONTHTYPES, style);
+        }
+        return ret;
+
+    default:
+        // not supported
+        return NULL;
+    }
+}
+
+/*
+ * Class:     sun_util_locale_provider_HostLocaleProviderAdapterImpl
  * Method:    getDisplayString
  * Signature: (Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String;
  */
@@ -714,10 +755,15 @@
     (*env)->ReleaseStringChars(env, jStr, pjChar);
 
     if (got) {
-        return (*env)->NewString(env, buf, (jsize)wcslen(buf));
-    } else {
-        return NULL;
+        // Hack: Windows 10 returns "Unknown Region (XX)" for localized XX region name.
+        // Take that as not known.
+        if (type != sun_util_locale_provider_HostLocaleProviderAdapterImpl_DN_LOCALE_REGION ||
+            wcsncmp(UNKNOWN_REGION, buf, UNKNOWN_REGION_SIZE) != 0) {
+            return (*env)->NewString(env, buf, (jsize)wcslen(buf));
+        }
     }
+
+    return NULL;
 }
 
 int getLocaleInfoWrapper(const jchar *langtag, LCTYPE type, LPWSTR data, int buflen) {
@@ -753,35 +799,62 @@
 }
 
 jint getCalendarID(const jchar *langtag) {
-    DWORD type;
+    DWORD type = -1;
     int got = getLocaleInfoWrapper(langtag,
         LOCALE_ICALENDARTYPE | LOCALE_RETURN_NUMBER,
         (LPWSTR)&type, sizeof(type));
 
     if (got) {
-        return type;
-    } else {
-        return 0;
+        switch (type) {
+            case CAL_GREGORIAN:
+            case CAL_GREGORIAN_US:
+            case CAL_JAPAN:
+            case CAL_TAIWAN:
+            case CAL_HIJRI:
+            case CAL_THAI:
+            case CAL_GREGORIAN_ME_FRENCH:
+            case CAL_GREGORIAN_ARABIC:
+            case CAL_GREGORIAN_XLIT_ENGLISH:
+            case CAL_GREGORIAN_XLIT_FRENCH:
+            case CAL_UMALQURA:
+                break;
+
+            default:
+                // non-supported calendars return -1
+                type = -1;
+                break;
+        }
     }
+
+    return type;
 }
 
-void replaceCalendarArrayElems(JNIEnv *env, jstring jlangtag, jobjectArray jarray, CALTYPE* pCalTypes, int offset, int length) {
+void replaceCalendarArrayElems(JNIEnv *env, jstring jlangtag, jint calid, jobjectArray jarray, CALTYPE* pCalTypes, int offset, int length, int style) {
     WCHAR name[BUFLEN];
     const jchar *langtag = (*env)->GetStringChars(env, jlangtag, JNI_FALSE);
-    int calid;
     jstring tmp_string;
+    CALTYPE isGenitive;
 
     CHECK_NULL(langtag);
-    calid = getCalendarID(langtag);
+
+    if (calid < 0) {
+        calid = getCalendarID(langtag);
+    }
 
     if (calid != -1) {
         int i;
+
+        if (!(style & CALENDAR_STYLE_STANDALONE_MASK)) {
+            isGenitive = CAL_RETURN_GENITIVE_NAMES;
+        }
+
         for (i = 0; i < length; i++) {
-            getCalendarInfoWrapper(langtag, calid, NULL,
-                              pCalTypes[i], name, BUFLEN, NULL);
-            tmp_string = (*env)->NewString(env, name, (jsize)wcslen(name));
-            if (tmp_string != NULL) {
-                (*env)->SetObjectArrayElement(env, jarray, i + offset, tmp_string);
+            if (getCalendarInfoWrapper(langtag, calid, NULL,
+                              pCalTypes[i] | isGenitive, name, BUFLEN, NULL) != 0) {
+                tmp_string = (*env)->NewString(env, name, (jsize)wcslen(name));
+                if (tmp_string != NULL) {
+                    (*env)->SetObjectArrayElement(env, jarray, i + offset, tmp_string);
+                }
             }
         }
     }
@@ -924,3 +997,99 @@
 
     wcscpy(ret, fixes[!prefix][!positive][style][pattern]);
 }
+
+int enumCalendarInfoWrapper(const jchar *langtag, CALID calid, CALTYPE type, LPWSTR buf, int buflen) {
+    if (pEnumCalendarInfoExEx) {
+        if (wcscmp(L"und", (LPWSTR)langtag) == 0) {
+            // defaults to "en"
+            return pEnumCalendarInfoExEx(&EnumCalendarInfoProc, L"en",
+                calid, NULL, type, (LPARAM)buf);
+        } else {
+            return pEnumCalendarInfoExEx(&EnumCalendarInfoProc, langtag,
+                calid, NULL, type, (LPARAM)buf);
+        }
+    } else {
+        return 0;
+    }
+}
+
+BOOL CALLBACK EnumCalendarInfoProc(LPWSTR lpCalInfoStr, CALID calid, LPWSTR lpReserved, LPARAM lParam) {
+    wcscat_s((LPWSTR)lParam, BUFLEN, lpCalInfoStr);
+    wcscat_s((LPWSTR)lParam, BUFLEN, L",");
+    return TRUE;
+}
+
+jobjectArray getErasImpl(JNIEnv *env, jstring jlangtag, jint calid, jint style, jobjectArray eras) {
+    const jchar * langtag = (*env)->GetStringChars(env, jlangtag, JNI_FALSE);
+    WCHAR buf[BUFLEN];
+    jobjectArray ret = eras;
+    CALTYPE type;
+
+    CHECK_NULL_RETURN(langtag, ret);
+
+    buf[0] = '\0';
+    if (style & CALENDAR_STYLE_SHORT_MASK) {
+        type = CAL_SABBREVERASTRING;
+    } else {
+        type = CAL_SERASTRING;
+    }
+
+    if (calid < 0) {
+        calid = getCalendarID(langtag);
+    }
+
+    if (calid != -1 && enumCalendarInfoWrapper(langtag, calid, type, buf, BUFLEN)) {
+        // format in buf: "era0,era1,era2," where era0 is the current one
+        int eraCount;
+        LPWSTR current;
+        jsize array_length;
+
+        for(eraCount = 0, current = buf; *current != '\0'; current++) {
+            if (*current == L',') {
+                eraCount ++;
+            }
+        }
+
+        if (eras != NULL) {
+            array_length = (*env)->GetArrayLength(env, eras);
+        } else {
+            // +1 for the "before" era, e.g., BC, which Windows does not return.
+            array_length = (jsize)eraCount + 1;
+            ret = (*env)->NewObjectArray(env, array_length,
+                (*env)->FindClass(env, "java/lang/String"), NULL);
+        }
+
+        if (ret != NULL) {
+            int eraIndex;
+            LPWSTR era;
+
+            for(eraIndex = 0, era = current = buf; eraIndex < eraCount; era = current, eraIndex++) {
+                while (*current != L',') {
+                    current++;
+                }
+                *current++ = '\0';
+
+                if (eraCount - eraIndex < array_length &&
+                    *era != '\0') {
+                    (*env)->SetObjectArrayElement(env, ret,
+                        (jsize)(eraCount - eraIndex),
+                        (*env)->NewString(env, era, (jsize)wcslen(era)));
+                }
+            }
+
+            // Hack for the Japanese Imperial Calendar to insert Gregorian era for
+            // "Before Meiji"
+            if (calid == CAL_JAPAN) {
+                buf[0] = '\0';
+                if (enumCalendarInfoWrapper(langtag, CAL_GREGORIAN, type, buf, BUFLEN)) {
+                    jsize len = (jsize)wcslen(buf);
+                    buf[--len] = '\0'; // remove the last ','
+                    (*env)->SetObjectArrayElement(env, ret, 0, (*env)->NewString(env, buf, len));
+                }
+            }
+        }
+    }
+
+    (*env)->ReleaseStringChars(env, jlangtag, langtag);
+    return ret;
+}
--- a/jdk/src/java.base/windows/native/libjava/VM_md.c	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/windows/native/libjava/VM_md.c	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/windows/native/libjava/io_util_md.c	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.base/windows/native/libjava/io_util_md.h	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.desktop/share/classes/javax/swing/text/html/parser/Parser.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.desktop/share/classes/sun/applet/AppletPanel.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.logging/share/classes/java/util/logging/FileHandler.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.management/share/classes/java/lang/management/ManagementFactory.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.management/share/classes/sun/management/ManagementFactoryHelper.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.management/share/classes/sun/management/MemoryImpl.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.rmi/share/classes/sun/rmi/server/MarshalInputStream.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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.security.jgss/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.security.jgss/share/classes/sun/security/krb5/internal/rcache/DflCache.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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/java.sql/share/classes/java/sql/Statement.java	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/java.sql/share/classes/java/sql/Statement.java	Wed Jul 05 21:12:04 2017 +0200
@@ -1582,4 +1582,43 @@
         return len >= 1 && len <= 128
                 && Pattern.compile("[\\p{Alpha}][\\p{Alnum}_]*").matcher(identifier).matches();
     }
+
+    /**
+    * Returns a {@code String} representing a National Character Set Literal
+    * enclosed in single quotes and prefixed with a upper case letter N.
+    * Any occurrence of a single quote within the string will be replaced
+    * by two single quotes.
+    *
+    * <blockquote>
+    * <table border = 1 cellspacing=0 cellpadding=5 >
+    * <caption>Examples of the conversion:</caption>
+    * <tr>
+    * <th>Value</th>
+    * <th>Result</th>
+    * </tr>
+    * <tr> <td align='center'>Hello</td> <td align='center'>N'Hello'</td> </tr>
+    * <tr> <td align='center'>G'Day</td> <td align='center'>N'G''Day'</td> </tr>
+    * <tr> <td align='center'>'G''Day'</td>
+    * <td align='center'>N'''G''''Day'''</td> </tr>
+    * <tr> <td align='center'>I'''M</td> <td align='center'>N'I''''''M'</td>
+    * <tr> <td align='center'>N'Hello'</td> <td align='center'>N'N''Hello'''</td> </tr>
+    *
+    * </table>
+    * </blockquote>
+    * @implNote
+    * JDBC driver implementations may need to provide their own implementation
+    * of this method in order to meet the requirements of the underlying
+    * datasource. An implementation of enquoteNCharLiteral may accept a different
+    * set of characters than that accepted by the same drivers implementation of
+    * enquoteLiteral.
+    * @param val a character string
+    * @return the result of replacing every single quote character in the
+    * argument by two single quote characters where this entire result is
+    * then prefixed with 'N'.
+    * @throws NullPointerException if val is {@code null}
+    * @throws SQLException if a database access error occurs
+    */
+    default String enquoteNCharLiteral(String val)  throws SQLException {
+        return "N'" + val.replace("'", "''") +  "'";
+   }
 }
--- a/jdk/src/jdk.accessibility/share/classes/com/sun/java/accessibility/util/AWTEventMonitor.java	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.accessibility/share/classes/com/sun/java/accessibility/util/AWTEventMonitor.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.accessibility/share/classes/com/sun/java/accessibility/util/AccessibilityEventMonitor.java	Wed Jul 05 21:12:04 2017 +0200
@@ -43,7 +43,6 @@
  *
  */
 
-@jdk.Exported
 public class AccessibilityEventMonitor {
 
     // listeners
--- a/jdk/src/jdk.accessibility/share/classes/com/sun/java/accessibility/util/AccessibilityListenerList.java	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.accessibility/share/classes/com/sun/java/accessibility/util/AccessibilityListenerList.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.accessibility/share/classes/com/sun/java/accessibility/util/EventID.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.accessibility/share/classes/com/sun/java/accessibility/util/EventQueueMonitor.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.accessibility/share/classes/com/sun/java/accessibility/util/GUIInitializedListener.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.accessibility/share/classes/com/sun/java/accessibility/util/SwingEventMonitor.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.accessibility/share/classes/com/sun/java/accessibility/util/TopLevelWindowListener.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.accessibility/share/classes/com/sun/java/accessibility/util/Translator.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.accessibility/windows/classes/com/sun/java/accessibility/internal/AccessBridge.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.attach/share/classes/com/sun/tools/attach/AgentInitializationException.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.attach/share/classes/com/sun/tools/attach/AgentLoadException.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.attach/share/classes/com/sun/tools/attach/AttachNotSupportedException.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.attach/share/classes/com/sun/tools/attach/AttachOperationFailedException.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.attach/share/classes/com/sun/tools/attach/AttachPermission.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.attach/share/classes/com/sun/tools/attach/VirtualMachine.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.attach/share/classes/com/sun/tools/attach/VirtualMachineDescriptor.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.attach/share/classes/com/sun/tools/attach/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.attach/share/classes/com/sun/tools/attach/spi/AttachProvider.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.attach/share/classes/com/sun/tools/attach/spi/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.charsets/share/classes/sun/nio/cs/ext/ExtendedCharsets.java.template	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/Authenticator.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/BasicAuthenticator.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/Filter.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/Headers.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpContext.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpExchange.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpHandler.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpPrincipal.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpServer.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpsConfigurator.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpsExchange.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpsParameters.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpsServer.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/spi/HttpServerProvider.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.httpserver/share/classes/com/sun/net/httpserver/spi/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jartool/share/classes/com/sun/jarsigner/ContentSigner.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jartool/share/classes/com/sun/jarsigner/ContentSignerParameters.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jartool/share/classes/com/sun/jarsigner/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jartool/share/classes/jdk/security/jarsigner/JarSigner.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jartool/share/classes/jdk/security/jarsigner/JarSignerException.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jconsole/share/classes/com/sun/tools/jconsole/JConsoleContext.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jconsole/share/classes/com/sun/tools/jconsole/JConsolePlugin.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jconsole/share/classes/com/sun/tools/jconsole/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/AbsentInformationException.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/Accessible.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ArrayReference.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ArrayType.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/BooleanType.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/BooleanValue.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/Bootstrap.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ByteType.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ByteValue.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/CharType.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/CharValue.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ClassLoaderReference.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ClassNotLoadedException.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ClassNotPreparedException.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ClassObjectReference.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ClassType.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/DoubleType.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/DoubleValue.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/Field.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/FloatType.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/FloatValue.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/IncompatibleThreadStateException.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/InconsistentDebugInfoException.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/IntegerType.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/IntegerValue.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/InterfaceType.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/InternalException.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/InvalidCodeIndexException.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/InvalidLineNumberException.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/InvalidStackFrameException.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/InvalidTypeException.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/InvocationException.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/JDIPermission.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/LocalVariable.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/Locatable.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/Location.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/LongType.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/LongValue.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/Method.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/Mirror.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/MonitorInfo.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/NativeMethodException.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ObjectCollectedException.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ObjectReference.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/PathSearchingVirtualMachine.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/PrimitiveType.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/PrimitiveValue.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ReferenceType.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ShortType.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ShortValue.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/StackFrame.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/StringReference.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ThreadGroupReference.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/ThreadReference.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/Type.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/TypeComponent.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/VMCannotBeModifiedException.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/VMDisconnectedException.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/VMMismatchException.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/VMOutOfMemoryException.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/Value.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/VirtualMachine.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/VirtualMachineManager.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/VoidType.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/VoidValue.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/AttachingConnector.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/Connector.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/IllegalConnectorArgumentsException.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/LaunchingConnector.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/ListeningConnector.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/Transport.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/TransportTimeoutException.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/VMStartException.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/spi/ClosedConnectionException.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/spi/Connection.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/spi/TransportService.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/connect/spi/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/AccessWatchpointEvent.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/BreakpointEvent.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/ClassPrepareEvent.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/ClassUnloadEvent.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/Event.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/EventIterator.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/EventQueue.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/EventSet.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/ExceptionEvent.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/LocatableEvent.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/MethodEntryEvent.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/MethodExitEvent.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/ModificationWatchpointEvent.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/MonitorContendedEnterEvent.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/MonitorContendedEnteredEvent.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/MonitorWaitEvent.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/MonitorWaitedEvent.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/StepEvent.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/ThreadDeathEvent.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/ThreadStartEvent.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/VMDeathEvent.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/VMDisconnectEvent.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/VMStartEvent.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/WatchpointEvent.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/event/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -44,5 +44,4 @@
  * extension.
  */
 
-@jdk.Exported
 package com.sun.jdi;
--- a/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/AccessWatchpointRequest.java	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/AccessWatchpointRequest.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/BreakpointRequest.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/ClassPrepareRequest.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/ClassUnloadRequest.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/DuplicateRequestException.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/EventRequest.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/EventRequestManager.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/ExceptionRequest.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/InvalidRequestStateException.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/MethodEntryRequest.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/MethodExitRequest.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/ModificationWatchpointRequest.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/MonitorContendedEnterRequest.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/MonitorContendedEnteredRequest.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/MonitorWaitRequest.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/MonitorWaitedRequest.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/StepRequest.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/ThreadDeathRequest.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/ThreadStartRequest.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/VMDeathRequest.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/WatchpointRequest.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.jdi/share/classes/com/sun/jdi/request/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -42,5 +42,4 @@
  * extension.
  */
 
-@jdk.Exported
 package com.sun.jdi.request;
--- a/jdk/src/jdk.management/share/classes/com/sun/management/GarbageCollectionNotificationInfo.java	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.management/share/classes/com/sun/management/GarbageCollectionNotificationInfo.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.management/share/classes/com/sun/management/GarbageCollectorMXBean.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.management/share/classes/com/sun/management/GcInfo.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.management/share/classes/com/sun/management/HotSpotDiagnosticMXBean.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.management/share/classes/com/sun/management/OperatingSystemMXBean.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.management/share/classes/com/sun/management/ThreadMXBean.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.management/share/classes/com/sun/management/UnixOperatingSystemMXBean.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.management/share/classes/com/sun/management/VMOption.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.management/share/classes/com/sun/management/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/AbstractNotificationHandler.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/Association.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/AssociationChangeNotification.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/HandlerResult.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/IllegalReceiveException.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/IllegalUnbindException.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/InvalidStreamException.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/MessageInfo.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/Notification.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/NotificationHandler.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/PeerAddressChangeNotification.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/SctpChannel.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/SctpMultiChannel.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/SctpServerChannel.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/SctpSocketOption.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/SctpStandardSocketOptions.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/SendFailedNotification.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/ShutdownNotification.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.sctp/share/classes/com/sun/nio/sctp/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/LdapPrincipal.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/NTDomainPrincipal.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/NTNumericCredential.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/NTSid.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/NTSidDomainPrincipal.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/NTSidGroupPrincipal.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/NTSidPrimaryGroupPrincipal.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/NTSidUserPrincipal.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/NTUserPrincipal.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/PolicyFile.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/PrincipalComparator.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/SolarisNumericGroupPrincipal.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/SolarisNumericUserPrincipal.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/SolarisPrincipal.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/UnixNumericGroupPrincipal.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/UnixNumericUserPrincipal.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/UnixPrincipal.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/UserPrincipal.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/X500Principal.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/callback/TextCallbackHandler.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/callback/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/login/ConfigFile.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/login/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/module/JndiLoginModule.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/module/Krb5LoginModule.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/module/LdapLoginModule.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/module/NTLoginModule.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/module/NTSystem.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/module/SolarisLoginModule.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/module/SolarisSystem.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/module/UnixLoginModule.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/module/UnixSystem.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/module/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.jgss/share/classes/com/sun/security/jgss/AuthorizationDataEntry.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.jgss/share/classes/com/sun/security/jgss/ExtendedGSSContext.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.jgss/share/classes/com/sun/security/jgss/ExtendedGSSCredential.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.jgss/share/classes/com/sun/security/jgss/GSSUtil.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.jgss/share/classes/com/sun/security/jgss/InquireSecContextPermission.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.jgss/share/classes/com/sun/security/jgss/InquireType.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/src/jdk.security.jgss/share/classes/com/sun/security/jgss/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -23,5 +23,4 @@
  * questions.
  */
 
-@jdk.Exported
 package com.sun.security.jgss;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/io/RandomAccessFile/FileLengthTest.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/test/java/lang/ProcessHandle/Basic.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/test/java/lang/ProcessHandle/InfoTest.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/test/java/lang/ProcessHandle/OnExitTest.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/test/java/lang/ProcessHandle/PermissionTest.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/test/java/lang/ProcessHandle/ProcessUtil.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ /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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/test/java/lang/ProcessHandle/TreeTest.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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/management/MemoryMXBean/Pending.java	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/test/java/lang/management/MemoryMXBean/Pending.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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/net/SocketOption/OptionsTest.java	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/test/java/net/SocketOption/OptionsTest.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/test/java/net/ipv6tests/TcpTest.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/test/java/nio/file/attribute/BasicFileAttributeView/UnixSocketFile.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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/sql/testng/test/sql/StatementTests.java	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/test/java/sql/testng/test/sql/StatementTests.java	Wed Jul 05 21:12:04 2017 +0200
@@ -65,7 +65,7 @@
      * enquoteLiteral is null
      */
     @Test(expectedExceptions = NullPointerException.class)
-    public void test01()  throws SQLException {
+    public void test01() throws SQLException {
         stmt.enquoteLiteral(null);
 
     }
@@ -110,7 +110,7 @@
     }
 
     /*
-     * Validate a NullPointerException is thrown is the string passed to
+     * Validate a NullPointerException is thrown if the string passed to
      * isSimpleIdentifier is null
      */
     @Test(expectedExceptions = NullPointerException.class)
@@ -120,6 +120,24 @@
     }
 
     /*
+     * Verify that enquoteLiteral creates a  valid literal and converts every
+     * single quote to two single quotes
+     */
+    @Test(dataProvider = "validEnquotedNCharLiteralValues")
+    public void test07(String s, String expected) throws SQLException {
+        assertEquals(stmt.enquoteNCharLiteral(s), expected);
+    }
+
+    /*
+     * Validate a NullPointerException is thrown if the string passed to
+     * enquoteNCharLiteral is null
+     */
+    @Test(expectedExceptions = NullPointerException.class)
+    public void test08() throws SQLException {
+        stmt.enquoteNCharLiteral(null);
+    }
+
+    /*
      * DataProvider used to provide strings that will be used to validate
      * that enquoteLiteral converts a string to a literal and every instance of
      * a single quote will be converted into two single quotes in the literal.
@@ -169,8 +187,7 @@
             {"\"Hel\"lo\"", true},
             {"Hello" + '\0', false},
             {"", false},
-            {maxIdentifier + 'a', false},
-            };
+            {maxIdentifier + 'a', false},};
     }
 
     /*
@@ -194,4 +211,22 @@
             {"", false},};
     }
 
+    /*
+     * DataProvider used to provide strings that will be used to validate
+     * that enquoteNCharLiteral converts a string to a National Character
+     * literal and every instance of
+     * a single quote will be converted into two single quotes in the literal.
+     */
+    @DataProvider(name = "validEnquotedNCharLiteralValues")
+    protected Object[][] validEnquotedNCharLiteralValues() {
+        return new Object[][]{
+            {"Hello", "N'Hello'"},
+            {"G'Day", "N'G''Day'"},
+            {"'G''Day'", "N'''G''''Day'''"},
+            {"I'''M", "N'I''''''M'"},
+            {"N'Hello'", "N'N''Hello'''"},
+            {"The Dark Knight", "N'The Dark Knight'"}
+
+        };
+    }
 }
--- a/jdk/test/java/time/tck/java/time/TCKDuration.java	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/test/java/time/tck/java/time/TCKDuration.java	Wed Jul 05 21:12:04 2017 +0200
@@ -2893,6 +2893,9 @@
             {-1, 0, "PT-1S"},
             {-1, 1000, "PT-0.999999S"},
             {-1, 900000000, "PT-0.1S"},
+            {-60, 100_000_000, "PT-59.9S"},
+            {-59, -900_000_000, "PT-59.9S"},
+            {-60, -100_000_000, "PT-1M-0.1S"},
             {Long.MAX_VALUE, 0, "PT" + (Long.MAX_VALUE / 3600) + "H" +
                     ((Long.MAX_VALUE % 3600) / 60) + "M" + (Long.MAX_VALUE % 60) + "S"},
             {Long.MIN_VALUE, 0, "PT" + (Long.MIN_VALUE / 3600) + "H" +
--- a/jdk/test/java/util/Locale/LocaleProviders.java	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/test/java/util/Locale/LocaleProviders.java	Wed Jul 05 21:12:04 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, 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
@@ -213,7 +213,7 @@
     static void bug8013903Test() {
         if (System.getProperty("os.name").startsWith("Windows")) {
             Date sampleDate = new Date(0x10000000000L);
-            String fallbackResult = "Heisei 16.Nov.03 (Wed) AM 11:53:47";
+            String hostResult = "\u5e73\u6210 16.11.03 (Wed) AM 11:53:47";
             String jreResult = "\u5e73\u6210 16.11.03 (\u6c34) \u5348\u524d 11:53:47";
             Locale l = new Locale("ja", "JP", "JP");
             SimpleDateFormat sdf = new SimpleDateFormat("GGGG yyyy.MMM.dd '('E')' a hh:mm:ss", l);
@@ -227,11 +227,10 @@
                         result + "\", expected: \"" + jreResult);
                 }
             } else {
-                // should be FALLBACK, as Windows HOST does not return
-                // display names
-                if (!fallbackResult.equals(result)) {
+                // Windows display names. Subject to change if Windows changes its format.
+                if (!hostResult.equals(result)) {
                     throw new RuntimeException("Format failed. result: \"" +
-                        result + "\", expected: \"" + fallbackResult);
+                        result + "\", expected: \"" + hostResult);
                 }
             }
         }
--- a/jdk/test/java/util/Locale/LocaleProviders.sh	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/test/java/util/Locale/LocaleProviders.sh	Wed Jul 05 21:12:04 2017 +0200
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-# 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
@@ -24,7 +24,7 @@
 #
 # @test
 # @bug 6336885 7196799 7197573 7198834 8000245 8000615 8001440 8008577
-#      8010666 8013086 8013233 8013903 8015960 8028771 8062006
+#      8010666 8013086 8013233 8013903 8015960 8028771 8054482 8062006
 # @summary tests for "java.locale.providers" system property
 # @compile -XDignore.symbol.file LocaleProviders.java
 # @run shell/timeout=600 LocaleProviders.sh
--- a/jdk/test/java/util/zip/ZipFile/TestZipFile.java	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/test/java/util/zip/ZipFile/TestZipFile.java	Wed Jul 05 21:12:04 2017 +0200
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8142508
+ * @bug 8142508 8146431
  * @summary Tests various ZipFile apis
  * @run main/manual TestZipFile
  */
@@ -216,6 +216,13 @@
     }
 
     static void doTest0(Zip zip, ZipFile zf) throws Throwable {
+        // (0) check zero-length entry name, no AIOOBE
+        try {
+            check(zf.getEntry("") == null);;
+        } catch (Throwable t) {
+            unexpected(t);
+        }
+
         List<ZipEntry> list = new ArrayList(zip.entries.keySet());
         // (1) check entry list, in expected order
         if (!check(Arrays.equals(
--- a/jdk/test/javax/management/ImplementationVersion/ImplVersionCommand.java	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/test/javax/management/ImplementationVersion/ImplVersionCommand.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/test/javax/management/ImplementationVersion/ImplVersionTest.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/test/javax/management/remote/mandatory/version/ImplVersionTest.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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 {
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/jdk/internal/misc/VM/GetNanoTimeAdjustment.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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/misc/VM/GetNanoTimeAdjustment.java	Wed Jul 05 21:11:03 2017 +0200
+++ /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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/test/sun/security/krb5/auto/ReplayCacheTestProc.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/test/sun/security/krb5/auto/TEST.properties	Wed Jul 05 21:12:04 2017 +0200
@@ -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/sun/security/pkcs11/rsa/TestKeyPairGenerator.java	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/test/sun/security/pkcs11/rsa/TestKeyPairGenerator.java	Wed Jul 05 21:12:04 2017 +0200
@@ -107,7 +107,7 @@
         data = new byte[2048];
         // keypair generation is very slow, test only a few short keys
         int[] keyLengths = {512, 512, 1024};
-        BigInteger[] pubExps = {null, BigInteger.valueOf(3), null};
+        BigInteger[] pubExps = {null, RSAKeyGenParameterSpec.F4, null};
         KeyPair[] keyPairs = new KeyPair[3];
         RandomFactory.getRandom().nextBytes(data);
         KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", provider);
--- a/jdk/test/tools/pack200/Pack200Test.java	Wed Jul 05 21:11:03 2017 +0200
+++ b/jdk/test/tools/pack200/Pack200Test.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/.hgtags	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/java.compiler/share/classes/javax/lang/model/SourceVersion.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor9.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor9.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitor9.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor9.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/java.compiler/share/classes/javax/lang/model/util/ElementScanner9.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor9.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor9.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor9.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/java.compiler/share/classes/javax/tools/FileManagerUtils.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/java.compiler/share/classes/javax/tools/StandardJavaFileManager.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/AttributeTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/AuthorTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/BlockTagTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/CommentTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/DeprecatedTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/DocCommentTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/DocRootTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/DocTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/DocTreeVisitor.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/EndElementTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/EntityTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/ErroneousTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/IdentifierTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/IndexTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -33,9 +33,8 @@
  * <p>
  * {&#064;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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/InheritDocTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/InlineTagTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/LinkTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/LiteralTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/ParamTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/ReferenceTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/ReturnTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/SeeTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/SerialDataTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/SerialFieldTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/SerialTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/SinceTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/StartElementTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/TextTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/ThrowsTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/UnknownBlockTagTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/UnknownInlineTagTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/ValueTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/VersionTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/doctree/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/AnnotatedTypeTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/AnnotationTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ArrayAccessTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ArrayTypeTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/AssertTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/AssignmentTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/BinaryTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/BlockTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/BreakTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/CaseTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/CatchTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ClassTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/CompilationUnitTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -37,7 +37,6 @@
  * @author Peter von der Ah&eacute;
  * @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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/CompoundAssignmentTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ConditionalExpressionTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ContinueTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/DoWhileLoopTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/EmptyStatementTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/EnhancedForLoopTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ErroneousTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ExpressionStatementTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ExpressionTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ForLoopTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/IdentifierTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/IfTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ImportTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/InstanceOfTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/IntersectionTypeTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/LabeledStatementTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/LambdaExpressionTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/LineMap.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/LiteralTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/MemberReferenceTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/MemberSelectTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/MethodInvocationTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/MethodTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ModifiersTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/NewArrayTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/NewClassTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/PackageTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ParameterizedTypeTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ParenthesizedTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/PrimitiveTypeTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ReturnTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/Scope.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/StatementTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/SwitchTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/SynchronizedTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/ThrowTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/Tree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/TreeVisitor.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/TryTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/TypeCastTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/TypeParameterTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/UnaryTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/UnionTypeTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/VariableTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/WhileLoopTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/WildcardTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/tree/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/util/DocSourcePositions.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/util/DocTreePath.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/util/DocTreePathScanner.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/util/DocTreeScanner.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/util/DocTrees.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/util/JavacTask.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/util/Plugin.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/util/SimpleDocTreeVisitor.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/util/SimpleTreeVisitor.java	Wed Jul 05 21:12:04 2017 +0200
@@ -39,7 +39,6 @@
  * @author Peter von der Ah&eacute;
  * @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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/util/SourcePositions.java	Wed Jul 05 21:12:04 2017 +0200
@@ -35,7 +35,6 @@
  * @author Peter von der Ah&eacute;
  * @since 1.6
  */
-@jdk.Exported
 public interface SourcePositions {
 
     /**
--- a/langtools/src/jdk.compiler/share/classes/com/sun/source/util/TaskEvent.java	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/util/TaskEvent.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/util/TaskListener.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/util/TreePath.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/util/TreePathScanner.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/util/TreeScanner.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/util/Trees.java	Wed Jul 05 21:12:04 2017 +0200
@@ -51,7 +51,6 @@
  *
  * @author Peter von der Ah&eacute;
  */
-@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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/source/util/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/Main.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/platform/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/CleanProperties.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/CompileJavaPackages.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/CompileProperties.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/CopyFile.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/JavacState.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/Transformer.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/javadoc/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/markup/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/links/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.jdeps/share/classes/com/sun/tools/classfile/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/src/jdk.jdeps/share/classes/com/sun/tools/javap/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/test/tools/javac/proprietary/WarnImport.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/test/tools/javac/proprietary/WarnImport.out	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/test/tools/javac/proprietary/WarnMethod.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/test/tools/javac/proprietary/WarnMethod.out	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/test/tools/javac/proprietary/WarnStaticImport.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/test/tools/javac/proprietary/WarnStaticImport.out	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/test/tools/javac/tree/NoPrivateTypesExported.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ /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	Wed Jul 05 21:11:03 2017 +0200
+++ b/langtools/test/tools/jdeps/m/Gee.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/make/common/NON_CORE_PKGS.gmk	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/make/common/NativeCompilation.gmk	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/modules.xml	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/.hgtags	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.dynalink/share/classes/jdk/dynalink/beans/ClassLinker.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.dynalink/share/classes/jdk/dynalink/beans/OverloadedDynamicMethod.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.dynalink/share/classes/jdk/dynalink/beans/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.dynalink/share/classes/jdk/dynalink/linker/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.dynalink/share/classes/jdk/dynalink/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.dynalink/share/classes/jdk/dynalink/support/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/AbstractJSObject.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/ClassFilter.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/JSObject.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/NashornException.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/NashornScriptEngine.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/NashornScriptEngineFactory.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/ScriptObjectMirror.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/ScriptUtils.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/URLReader.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ArrayAccessTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ArrayLiteralTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/AssignmentTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/BinaryTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/BlockTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/BreakTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/CaseTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/CatchTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/CompilationUnitTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/CompoundAssignmentTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ConditionalExpressionTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ConditionalLoopTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ContinueTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/DebuggerTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/Diagnostic.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/DiagnosticListener.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/DoWhileLoopTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/EmptyStatementTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ErroneousTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ExpressionStatementTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ExpressionTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ForInLoopTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ForLoopTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/FunctionCallTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/FunctionDeclarationTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/FunctionExpressionTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/GotoTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/IdentifierTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/IfTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/InstanceOfTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/LabeledStatementTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/LineMap.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/LiteralTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/LoopTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/MemberSelectTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/NewTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ObjectLiteralTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ParenthesizedTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/Parser.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/PropertyTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/RegExpLiteralTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ReturnTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/StatementTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/SwitchTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ThrowTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/Tree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/TreeVisitor.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/TryTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/UnaryTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/UnknownTreeException.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/VariableTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/WhileLoopTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/WithTree.java	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/package-info.java	Wed Jul 05 21:12:04 2017 +0200
@@ -70,6 +70,5 @@
  *
  * @since 1.9
  */
-@jdk.Exported
 package jdk.nashorn.api.tree;
 
--- a/nashorn/test/script/basic/JDK-8134488.js	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/test/script/basic/JDK-8134488.js	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/test/script/basic/JDK-8134490.js	Wed Jul 05 21:12:04 2017 +0200
@@ -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	Wed Jul 05 21:11:03 2017 +0200
+++ b/nashorn/test/script/basic/JDK-8134939.js	Wed Jul 05 21:12:04 2017 +0200
@@ -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